agent-comms 9.0.3 → 9.0.4

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 (116) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +4 -0
  4. package/dist/bridges/user/web/test/web-access.unit.test.d.ts +1 -1
  5. package/dist/bridges/user/web/test/web-access.unit.test.js +19 -375
  6. package/dist/bridges/user/web/test/web-access.unit.test.js.map +1 -1
  7. package/dist/core/bridge.d.ts +11 -0
  8. package/dist/core/bridge.d.ts.map +1 -1
  9. package/dist/core/bridge.js +17 -2
  10. package/dist/core/bridge.js.map +1 -1
  11. package/dist/core/index.d.ts +1 -1
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/core/index.js +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/core/test/build-action.unit.test.d.ts +2 -0
  16. package/dist/core/test/build-action.unit.test.d.ts.map +1 -0
  17. package/dist/core/test/build-action.unit.test.js +28 -0
  18. package/dist/core/test/build-action.unit.test.js.map +1 -0
  19. package/dist/test/ci-required-checks.unit.test.d.ts +2 -0
  20. package/dist/test/ci-required-checks.unit.test.d.ts.map +1 -0
  21. package/dist/test/ci-required-checks.unit.test.js +137 -0
  22. package/dist/test/ci-required-checks.unit.test.js.map +1 -0
  23. package/dist/test/claude-command.unit.test.js +2 -21
  24. package/dist/test/claude-command.unit.test.js.map +1 -1
  25. package/dist/test/conformance/corpus-files.d.ts +11 -0
  26. package/dist/test/conformance/corpus-files.d.ts.map +1 -0
  27. package/dist/test/conformance/corpus-files.js +71 -0
  28. package/dist/test/conformance/corpus-files.js.map +1 -0
  29. package/dist/test/conformance/corpus-types.d.ts +62 -0
  30. package/dist/test/conformance/corpus-types.d.ts.map +1 -0
  31. package/dist/test/conformance/corpus-types.js +8 -0
  32. package/dist/test/conformance/corpus-types.js.map +1 -0
  33. package/dist/test/conformance/corpus.d.ts +34 -0
  34. package/dist/test/conformance/corpus.d.ts.map +1 -0
  35. package/dist/test/conformance/corpus.js +134 -0
  36. package/dist/test/conformance/corpus.js.map +1 -0
  37. package/dist/test/conformance/read-json.d.ts +2 -0
  38. package/dist/test/conformance/read-json.d.ts.map +1 -0
  39. package/dist/test/conformance/read-json.js +7 -0
  40. package/dist/test/conformance/read-json.js.map +1 -0
  41. package/dist/test/conformance/text.d.ts +10 -0
  42. package/dist/test/conformance/text.d.ts.map +1 -0
  43. package/dist/test/conformance/text.js +64 -0
  44. package/dist/test/conformance/text.js.map +1 -0
  45. package/dist/test/conformance/validate.d.ts +14 -0
  46. package/dist/test/conformance/validate.d.ts.map +1 -0
  47. package/dist/test/conformance/validate.js +85 -0
  48. package/dist/test/conformance/validate.js.map +1 -0
  49. package/dist/test/conformance-functions.helper.d.ts +19 -0
  50. package/dist/test/conformance-functions.helper.d.ts.map +1 -0
  51. package/dist/test/conformance-functions.helper.js +583 -0
  52. package/dist/test/conformance-functions.helper.js.map +1 -0
  53. package/dist/test/conformance.unit.test.d.ts +2 -0
  54. package/dist/test/conformance.unit.test.d.ts.map +1 -0
  55. package/dist/test/conformance.unit.test.js +358 -0
  56. package/dist/test/conformance.unit.test.js.map +1 -0
  57. package/dist/test/error-reporting.unit.test.js +2 -90
  58. package/dist/test/error-reporting.unit.test.js.map +1 -1
  59. package/dist/test/version-report-actions.unit.test.d.ts +1 -1
  60. package/dist/test/version-report-actions.unit.test.js +2 -55
  61. package/dist/test/version-report-actions.unit.test.js.map +1 -1
  62. package/package.json +4 -2
  63. package/src/core/bridge.ts +30 -1
  64. package/src/core/index.ts +1 -0
  65. package/dist/core/test/bridge.unit.test.d.ts +0 -5
  66. package/dist/core/test/bridge.unit.test.d.ts.map +0 -1
  67. package/dist/core/test/bridge.unit.test.js +0 -119
  68. package/dist/core/test/bridge.unit.test.js.map +0 -1
  69. package/dist/test/agent-table.unit.test.d.ts +0 -5
  70. package/dist/test/agent-table.unit.test.d.ts.map +0 -1
  71. package/dist/test/agent-table.unit.test.js +0 -53
  72. package/dist/test/agent-table.unit.test.js.map +0 -1
  73. package/dist/test/bind-retry.unit.test.d.ts +0 -2
  74. package/dist/test/bind-retry.unit.test.d.ts.map +0 -1
  75. package/dist/test/bind-retry.unit.test.js +0 -42
  76. package/dist/test/bind-retry.unit.test.js.map +0 -1
  77. package/dist/test/default-command.unit.test.d.ts +0 -2
  78. package/dist/test/default-command.unit.test.d.ts.map +0 -1
  79. package/dist/test/default-command.unit.test.js +0 -26
  80. package/dist/test/default-command.unit.test.js.map +0 -1
  81. package/dist/test/delegation-policy.unit.test.d.ts +0 -5
  82. package/dist/test/delegation-policy.unit.test.d.ts.map +0 -1
  83. package/dist/test/delegation-policy.unit.test.js +0 -52
  84. package/dist/test/delegation-policy.unit.test.js.map +0 -1
  85. package/dist/test/display-name.unit.test.d.ts +0 -5
  86. package/dist/test/display-name.unit.test.d.ts.map +0 -1
  87. package/dist/test/display-name.unit.test.js +0 -65
  88. package/dist/test/display-name.unit.test.js.map +0 -1
  89. package/dist/test/machine-list-groups.unit.test.d.ts +0 -5
  90. package/dist/test/machine-list-groups.unit.test.d.ts.map +0 -1
  91. package/dist/test/machine-list-groups.unit.test.js +0 -61
  92. package/dist/test/machine-list-groups.unit.test.js.map +0 -1
  93. package/dist/test/relay-selection.unit.test.d.ts +0 -5
  94. package/dist/test/relay-selection.unit.test.d.ts.map +0 -1
  95. package/dist/test/relay-selection.unit.test.js +0 -103
  96. package/dist/test/relay-selection.unit.test.js.map +0 -1
  97. package/dist/test/request-timeouts.unit.test.d.ts +0 -2
  98. package/dist/test/request-timeouts.unit.test.d.ts.map +0 -1
  99. package/dist/test/request-timeouts.unit.test.js +0 -28
  100. package/dist/test/request-timeouts.unit.test.js.map +0 -1
  101. package/dist/test/room-discovery.unit.test.d.ts +0 -2
  102. package/dist/test/room-discovery.unit.test.d.ts.map +0 -1
  103. package/dist/test/room-discovery.unit.test.js +0 -29
  104. package/dist/test/room-discovery.unit.test.js.map +0 -1
  105. package/dist/test/room-lookup.unit.test.d.ts +0 -2
  106. package/dist/test/room-lookup.unit.test.d.ts.map +0 -1
  107. package/dist/test/room-lookup.unit.test.js +0 -59
  108. package/dist/test/room-lookup.unit.test.js.map +0 -1
  109. package/dist/test/room-path.unit.test.d.ts +0 -2
  110. package/dist/test/room-path.unit.test.d.ts.map +0 -1
  111. package/dist/test/room-path.unit.test.js +0 -54
  112. package/dist/test/room-path.unit.test.js.map +0 -1
  113. package/dist/test/send-outcome.unit.test.d.ts +0 -2
  114. package/dist/test/send-outcome.unit.test.d.ts.map +0 -1
  115. package/dist/test/send-outcome.unit.test.js +0 -52
  116. package/dist/test/send-outcome.unit.test.js.map +0 -1
@@ -0,0 +1,583 @@
1
+ /**
2
+ * The call table the TypeScript conformance runner (`conformance.unit.test.ts`) resolves a corpus case's `function` and `schema` names in. Each entry narrows its JSON arguments, builds any object the function takes that JSON cannot carry (a Set, a Map, a callback), calls the function and returns plain data. A case never names anything but a pure function of its arguments.
3
+ */
4
+ import { AGENT_SELF_GOSSIP_KEY, DEFAULT_PRESENCE_STALE_AFTER_MS, HOSTED_ROOMS_GOSSIP_KEY, PRESENCE_GOSSIP_KEY, PRESENCE_READVERTISE_INTERVAL_MS, hostedRoomAdverts, summariseAgentSelfAdvert, summariseHostedRooms, } from "../core/gossip-extensions.js";
5
+ import { inviterAgentExtension, parseInviterAgentExtension, parseRoomStateExtension, roomStateExtension, } from "../core/room-wire-extensions.js";
6
+ import { buildAction, formatDeliveryEvent, isActionableEvent, MCP_TOOL_PARAMS, } from "../core/bridge.js";
7
+ import { retryOnAddrInUse } from "../core/bind-retry.js";
8
+ import { isClaudeCodeComm } from "../bridges/claude-code/claudeCommand.js";
9
+ import { resolveDefaultCommand } from "../core/default-command.js";
10
+ import { resolveDelegationsRemaining } from "../core/delegation-policy.js";
11
+ import { formatDisplayName, formatNames, parseDisplayName, shortId, } from "../core/display-name.js";
12
+ import { agentTable } from "../core/agent-table.js";
13
+ import { createMeshErrorReporter, describeMeshError, formatMeshError, } from "../core/error-reporting.js";
14
+ import { groupAgentsByMachine } from "../core/machine-list-groups.js";
15
+ import { PeerLinkError } from "../core/peer-link-error.js";
16
+ import { selectRelay } from "../core/relay-selection.js";
17
+ import { APPROVAL_RESPONSE_GRACE_MS, ROOM_JOIN_APPROVAL_TIMEOUT_MS, ROOM_REQUEST_TIMEOUT_MS, manageRequestTimeoutMs, } from "../core/request-timeouts.js";
18
+ import { isHostedRoomAdvert } from "../core/room-discovery.js";
19
+ import { resolveRoomId } from "../core/room-lookup.js";
20
+ import { dmRoomPath, ownerNamedRoomPath, parseRoomPath, slugRoomName, } from "../core/room-path.js";
21
+ import { accessCookieName, accessUrls, authorise, canonicalAddress, isLoopbackAddress, isWildcardHost, localWebUrl, requiresAccessToken, resolveWebBindHost, tokensMatch, } from "../bridges/user/web/web-access.js";
22
+ import { hasConnectedBefore, shouldAutoConnect, } from "../bridges/user/web/frontend/boot-logic.js";
23
+ import { parseInput, routeAction } from "../bridges/user/web/frontend/input.js";
24
+ import { deliveryEventToMessage, roomMessageToDisplay, } from "../bridges/user/web/frontend/messages.js";
25
+ import { buildProjectTree } from "../bridges/user/web/frontend/project-tree.js";
26
+ import { isServedByBridge } from "../bridges/user/web/frontend/served-by-bridge.js";
27
+ import { parseDeepLink, resolveDeepLink, syncUrl, } from "../bridges/user/web/frontend/url-sync.js";
28
+ import { RoomMessageSchema, RoomSchema } from "../core/types.js";
29
+ import { classifyManageOutcome, describeRefusal, } from "../core/send-outcome.js";
30
+ import { CommsError } from "../core/store.js";
31
+ import { AgentIdentitySchema, CommsActionSchema, DeliveryEventSchema, } from "../core/types.js";
32
+ import { formatListedAgentVersions, handleQueryVersion, } from "../core/version-report-actions.js";
33
+ function isRecord(value) {
34
+ return typeof value === "object" && value !== null && !Array.isArray(value);
35
+ }
36
+ function str(value) {
37
+ if (typeof value !== "string")
38
+ throw new TypeError("expected a string");
39
+ return value;
40
+ }
41
+ function num(value) {
42
+ if (typeof value !== "number")
43
+ throw new TypeError("expected a number");
44
+ return value;
45
+ }
46
+ function bool(value) {
47
+ if (typeof value !== "boolean")
48
+ throw new TypeError("expected a boolean");
49
+ return value;
50
+ }
51
+ function list(value) {
52
+ if (!Array.isArray(value))
53
+ throw new TypeError("expected a list");
54
+ return value;
55
+ }
56
+ function rec(value) {
57
+ if (!isRecord(value))
58
+ throw new TypeError("expected an object");
59
+ return value;
60
+ }
61
+ function strings(value) {
62
+ return list(value).map(str);
63
+ }
64
+ /** The field of an object as a string, or undefined when it is absent. */
65
+ function optStr(object, key) {
66
+ const value = object[key];
67
+ return value === undefined ? undefined : str(value);
68
+ }
69
+ function displayParts(value) {
70
+ const parts = rec(value);
71
+ const petname = optStr(parts, "petname");
72
+ const selfName = optStr(parts, "selfName");
73
+ return {
74
+ id: str(parts.id),
75
+ ...(petname !== undefined && { petname }),
76
+ ...(selfName !== undefined && { selfName }),
77
+ };
78
+ }
79
+ /** An error built the way the transport raises one: a plain error, an errno error, or a PeerLinkError around either. */
80
+ function buildError(value) {
81
+ const spec = rec(value);
82
+ const kind = str(spec.kind);
83
+ if (kind === "errno" || kind === "error") {
84
+ const error = new Error(str(spec.message));
85
+ if (kind === "errno")
86
+ error.code = str(spec.code);
87
+ return error;
88
+ }
89
+ const cause = spec.cause === undefined
90
+ ? new Error("unspecified")
91
+ : buildError(spec.cause);
92
+ const action = str(spec.action);
93
+ if (action !== "dial" && action !== "send")
94
+ throw new TypeError("unknown action");
95
+ const port = spec.port === undefined ? undefined : num(spec.port);
96
+ return new PeerLinkError(action, str(spec.peerId), port, cause);
97
+ }
98
+ function agent(id) {
99
+ return AgentIdentitySchema.parse({
100
+ id,
101
+ version: 0,
102
+ name: id,
103
+ harness: "test",
104
+ cwd: "/test",
105
+ pid: 1,
106
+ startedAt: "",
107
+ visibility: "visible",
108
+ status: "active",
109
+ tags: [],
110
+ subscribedRooms: [],
111
+ });
112
+ }
113
+ /** What an async function made of a scripted series of attempts: its result or error, and how many attempts it made. */
114
+ async function runBindRetry(script, retries, delayMs) {
115
+ const steps = list(script).map(rec);
116
+ const rejections = new Map();
117
+ let attempts = 0;
118
+ const attempt = async () => {
119
+ const index = Math.min(attempts, steps.length - 1);
120
+ const step = steps[index];
121
+ attempts += 1;
122
+ if (step === undefined)
123
+ throw new TypeError("an empty script");
124
+ const rejects = step.rejects;
125
+ if (rejects !== undefined) {
126
+ const error = rejections.get(index) ?? new Error(str(rejects));
127
+ rejections.set(index, error);
128
+ return Promise.reject(error);
129
+ }
130
+ return Promise.resolve(str(step.resolves));
131
+ };
132
+ try {
133
+ return {
134
+ result: await retryOnAddrInUse(attempt, retries, delayMs),
135
+ attempts,
136
+ };
137
+ }
138
+ catch (error) {
139
+ return {
140
+ error: error instanceof Error ? error.message : String(error),
141
+ rethrownRejection: [...rejections.values()].some((sent) => sent === error),
142
+ attempts,
143
+ };
144
+ }
145
+ }
146
+ function relaySelection(value) {
147
+ const input = rec(value);
148
+ const trusted = strings(input.trusted);
149
+ const offers = list(input.offers).map((offer) => {
150
+ const parts = rec(offer);
151
+ return {
152
+ deviceHex: str(parts.deviceHex),
153
+ addresses: strings(parts.addresses),
154
+ machineLocal: bool(parts.machineLocal),
155
+ };
156
+ });
157
+ return selectRelay({
158
+ offers,
159
+ isTrusted: (hex) => trusted.includes(hex),
160
+ ownDeviceHex: str(input.own),
161
+ publicHubUrl: str(input.publicHub),
162
+ });
163
+ }
164
+ function reporterLines(errors) {
165
+ const lines = [];
166
+ const report = createMeshErrorReporter((line) => {
167
+ lines.push(line);
168
+ });
169
+ for (const error of list(errors))
170
+ report(buildError(error));
171
+ return lines;
172
+ }
173
+ function versionStore(value) {
174
+ const spec = rec(value);
175
+ const agentComms = optStr(spec, "agentComms");
176
+ const wireMeshCore = optStr(spec, "wireMeshCore");
177
+ const ccPeer = optStr(spec, "ccPeer");
178
+ return {
179
+ ...(agentComms !== undefined && {
180
+ getPeerAgentCommsVersion: () => agentComms,
181
+ }),
182
+ ...(wireMeshCore !== undefined && {
183
+ getPeerWireMeshCoreVersion: () => wireMeshCore,
184
+ }),
185
+ ...(ccPeer !== undefined && { getPeerCcPeerVersion: () => ccPeer }),
186
+ };
187
+ }
188
+ function accessPolicy(value) {
189
+ const parts = rec(value);
190
+ const localClientAddresses = new Set(strings(parts.localClientAddresses ?? []));
191
+ return {
192
+ token: optStr(parts, "token"),
193
+ bindHost: str(parts.bindHost),
194
+ port: num(parts.port),
195
+ localClientAddresses: () => localClientAddresses,
196
+ };
197
+ }
198
+ function accessRequest(value) {
199
+ const parts = rec(value);
200
+ return {
201
+ method: str(parts.method),
202
+ url: str(parts.url),
203
+ remoteAddress: str(parts.remoteAddress),
204
+ headers: Object.fromEntries(Object.entries(rec(parts.headers)).map(([key, header]) => [
205
+ key,
206
+ str(header),
207
+ ])),
208
+ };
209
+ }
210
+ function interfaceTable(value) {
211
+ const table = {};
212
+ for (const entry of list(value).map(rec)) {
213
+ const name = str(entry.name);
214
+ const base = {
215
+ address: str(entry.address),
216
+ internal: bool(entry.internal),
217
+ mac: "00:00:00:00:00:00",
218
+ };
219
+ const info = entry.family === "IPv6"
220
+ ? {
221
+ ...base,
222
+ family: "IPv6",
223
+ netmask: "ffff:ffff:ffff:ffff::",
224
+ cidr: null,
225
+ scopeid: 0,
226
+ }
227
+ : { ...base, family: "IPv4", netmask: "255.255.255.0", cidr: null };
228
+ (table[name] ??= []).push(info);
229
+ }
230
+ return table;
231
+ }
232
+ /** The dashboard declares its own DeliveryEvent, whose optional fields cannot hold undefined, while the schema's output type allows it; a parsed event never carries an undefined field, since an absent optional key stays absent. */
233
+ function frontendEvent(value) {
234
+ return DeliveryEventSchema.parse(value);
235
+ }
236
+ function optionalString(value) {
237
+ return value === null || value === undefined ? undefined : str(value);
238
+ }
239
+ /** A Storage whose only entry is the connected flag, when one is given. */
240
+ function connectedFlagStorage(flag) {
241
+ const value = optionalString(flag);
242
+ return {
243
+ getItem: () => value ?? null,
244
+ setItem: () => undefined,
245
+ removeItem: () => undefined,
246
+ clear: () => undefined,
247
+ length: 0,
248
+ key: () => null,
249
+ };
250
+ }
251
+ function pageLocation(value) {
252
+ const parts = rec(value);
253
+ return { host: str(parts.host), protocol: str(parts.protocol) };
254
+ }
255
+ function frontendRooms(value) {
256
+ return list(value).map((entry) => {
257
+ const parts = rec(entry);
258
+ const id = str(parts.id);
259
+ return {
260
+ id,
261
+ name: optStr(parts, "name") ?? id,
262
+ type: "public",
263
+ owner: "a1",
264
+ createdAt: "",
265
+ description: optStr(parts, "description") ?? "",
266
+ members: [],
267
+ invited: [],
268
+ };
269
+ });
270
+ }
271
+ /** The URLs `syncUrl` hands to `history.replaceState`, with the globals it reads stubbed for the call and put back after. */
272
+ function syncedUrls(state) {
273
+ const parts = rec(state);
274
+ const urls = [];
275
+ const originalHistory = Reflect.get(globalThis, "history");
276
+ const originalLocation = Reflect.get(globalThis, "location");
277
+ const define = (name, value) => {
278
+ Object.defineProperty(globalThis, name, {
279
+ value,
280
+ writable: true,
281
+ configurable: true,
282
+ });
283
+ };
284
+ define("history", {
285
+ replaceState(_data, _unused, url) {
286
+ urls.push(url ?? "");
287
+ },
288
+ });
289
+ define("location", {
290
+ href: "http://localhost:19877/",
291
+ pathname: "/",
292
+ search: "",
293
+ hash: "",
294
+ });
295
+ try {
296
+ syncUrl({
297
+ currentRoom: optionalString(parts.currentRoom),
298
+ dmTarget: optionalString(parts.dmTarget),
299
+ });
300
+ }
301
+ finally {
302
+ define("history", originalHistory);
303
+ define("location", originalLocation);
304
+ }
305
+ return urls;
306
+ }
307
+ /** A room as the extension helpers read it: the fields a case names, and empty ones for the rest. */
308
+ function roomOf(value) {
309
+ const parts = rec(value);
310
+ const type = str(parts.type);
311
+ if (type !== "public" && type !== "private" && type !== "secret") {
312
+ throw new TypeError("expected a room type");
313
+ }
314
+ return RoomSchema.parse({
315
+ id: str(parts.id),
316
+ version: 0,
317
+ name: str(parts.name),
318
+ type,
319
+ owner: str(parts.owner),
320
+ createdAt: "",
321
+ description: str(parts.description),
322
+ members: [],
323
+ invited: [],
324
+ memberJoins: {},
325
+ memberLeaves: {},
326
+ invitedJoins: {},
327
+ invitedLeaves: {},
328
+ });
329
+ }
330
+ function hostedAdvert(value) {
331
+ const parts = rec(value);
332
+ const type = str(parts.type);
333
+ if (type !== "public" && type !== "private") {
334
+ throw new TypeError("expected a hosted room type");
335
+ }
336
+ return {
337
+ path: str(parts.path),
338
+ name: str(parts.name),
339
+ type,
340
+ description: str(parts.description),
341
+ };
342
+ }
343
+ function selfAdvert(value) {
344
+ const parts = rec(value);
345
+ const optional = (key) => optStr(parts, key);
346
+ const membership = optional("membership");
347
+ const machine = optional("machine");
348
+ const machineName = optional("machineName");
349
+ const principalName = optional("principalName");
350
+ return {
351
+ name: str(parts.name),
352
+ harness: str(parts.harness),
353
+ ...(membership !== undefined && { membership }),
354
+ ...(machine !== undefined && { machine }),
355
+ ...(machineName !== undefined && { machineName }),
356
+ ...(principalName !== undefined && { principalName }),
357
+ cwd: str(parts.cwd),
358
+ pid: num(parts.pid),
359
+ startedAt: str(parts.startedAt),
360
+ tags: strings(parts.tags),
361
+ subscribedRooms: strings(parts.subscribedRooms),
362
+ };
363
+ }
364
+ export const FUNCTIONS = {
365
+ "display-name.formatDisplayName": (parts) => formatDisplayName(displayParts(parts)),
366
+ "display-name.formatNames": (parts) => formatNames(displayParts(parts)),
367
+ "display-name.parseDisplayName": (raw) => parseDisplayName(str(raw)),
368
+ "display-name.shortId": (id) => shortId(str(id)),
369
+ "room-path.ownerNamedRoomPath": (owner, name) => ownerNamedRoomPath(str(owner), str(name)),
370
+ "room-path.dmRoomPath": (a, b) => dmRoomPath(str(a), str(b)),
371
+ "room-path.parseRoomPath": (path) => parseRoomPath(str(path)),
372
+ "room-path.slugRoomName": (name) => slugRoomName(str(name)),
373
+ "send-outcome.classifyManageOutcome": (outcome) => {
374
+ const parts = rec(outcome);
375
+ if (parts.result === "ok")
376
+ return classifyManageOutcome({ result: "ok" });
377
+ const message = optStr(parts, "message");
378
+ return classifyManageOutcome({
379
+ result: "error",
380
+ code: str(parts.code),
381
+ ...(message !== undefined && { message }),
382
+ });
383
+ },
384
+ "send-outcome.describeRefusal": (refusal) => {
385
+ const parts = rec(refusal);
386
+ const message = optStr(parts, "message");
387
+ return describeRefusal({
388
+ code: str(parts.code),
389
+ ...(message !== undefined && { message }),
390
+ });
391
+ },
392
+ "bridge.formatDeliveryEvent": (event) => formatDeliveryEvent(DeliveryEventSchema.parse(event)),
393
+ "bridge.isActionableEvent": (event) => isActionableEvent(DeliveryEventSchema.parse(event)),
394
+ "bridge.buildAction": (params) => buildAction(rec(params)),
395
+ "default-command.resolveDefaultCommand": (args, stdinIsTerminal) => resolveDefaultCommand(strings(args), bool(stdinIsTerminal)),
396
+ "claude-command.isClaudeCodeComm": (comm) => isClaudeCodeComm(str(comm)),
397
+ "delegation-policy.resolveDelegationsRemaining": (policy, capability, bearer, requested) => {
398
+ const parts = rec(policy);
399
+ const overrides = parts.perAgentOverrides;
400
+ const perAgentOverrides = overrides === undefined
401
+ ? undefined
402
+ : new Map(Object.entries(rec(overrides)).map(([key, set]) => [
403
+ key,
404
+ new Set(strings(set)),
405
+ ]));
406
+ const resolved = {
407
+ nonDelegable: new Set(strings(parts.nonDelegable)),
408
+ ...(perAgentOverrides !== undefined && { perAgentOverrides }),
409
+ };
410
+ if (requested === undefined) {
411
+ return resolveDelegationsRemaining(resolved, str(capability), str(bearer), undefined);
412
+ }
413
+ return resolveDelegationsRemaining(resolved, str(capability), str(bearer), num(requested));
414
+ },
415
+ "request-timeouts.manageRequestTimeoutMs": (command, approvalWindowMs) => {
416
+ const parts = rec(command);
417
+ return manageRequestTimeoutMs({ verb: str(parts.verb), params: rec(parts.params) }, num(approvalWindowMs));
418
+ },
419
+ "request-timeouts.constants": () => ({
420
+ approvalResponseGraceMs: APPROVAL_RESPONSE_GRACE_MS,
421
+ roomJoinApprovalTimeoutMs: ROOM_JOIN_APPROVAL_TIMEOUT_MS,
422
+ roomRequestTimeoutMs: ROOM_REQUEST_TIMEOUT_MS,
423
+ }),
424
+ "bind-retry.retryOnAddrInUse": async (script, retries, delayMs) => runBindRetry(script, num(retries), num(delayMs)),
425
+ "error-reporting.describeMeshError": (error) => describeMeshError(buildError(error)),
426
+ "error-reporting.formatMeshError": (error) => formatMeshError(buildError(error)),
427
+ "error-reporting.reportedLines": (errors) => reporterLines(errors),
428
+ "room-lookup.resolveRoomId": (candidates, roomIdOrName) => resolveRoomId(list(candidates).map((candidate) => {
429
+ const parts = rec(candidate);
430
+ return { id: str(parts.id), name: str(parts.name) };
431
+ }), str(roomIdOrName)),
432
+ "room-discovery.isHostedRoomAdvert": (value) => isHostedRoomAdvert(value),
433
+ "agent-table.agentTable": (rows) => {
434
+ const typed = list(rows).map((row) => {
435
+ const parts = rec(row);
436
+ return {
437
+ id: str(parts.id),
438
+ name: str(parts.name),
439
+ harness: str(parts.harness),
440
+ status: str(parts.status),
441
+ visibility: str(parts.visibility),
442
+ cwd: str(parts.cwd),
443
+ };
444
+ });
445
+ const table = agentTable(typed);
446
+ return { header: table.header, lines: typed.map((row) => table.line(row)) };
447
+ },
448
+ "machine-list-groups.groupAgentsByMachine": (agentIds, machines, ownMachine, namerTemplate) => {
449
+ const agents = strings(agentIds).map(agent);
450
+ const placed = machines === null
451
+ ? undefined
452
+ : new Map(list(machines).map((pair) => {
453
+ const [device, machine] = strings(pair);
454
+ if (device === undefined || machine === undefined)
455
+ throw new TypeError("a pair");
456
+ return [device, machine];
457
+ }));
458
+ const template = str(namerTemplate);
459
+ return groupAgentsByMachine(agents, placed, ownMachine === null ? undefined : str(ownMachine), (id) => template.replaceAll("{id}", id)).map((group) => ({
460
+ heading: group.heading,
461
+ agents: group.agents.map((member) => member.id),
462
+ }));
463
+ },
464
+ "relay-selection.selectRelay": relaySelection,
465
+ "gossip-extensions.hostedRoomAdverts": (rooms, ownerId) => hostedRoomAdverts(new Map(list(rooms).map((entry) => [str(rec(entry).id), roomOf(entry)])), str(ownerId)),
466
+ "gossip-extensions.summariseHostedRooms": (adverts) => summariseHostedRooms(list(adverts).map(hostedAdvert)),
467
+ "gossip-extensions.summariseAgentSelfAdvert": (advert) => summariseAgentSelfAdvert(selfAdvert(advert)),
468
+ "gossip-extensions.constants": () => ({
469
+ agentSelfGossipKey: AGENT_SELF_GOSSIP_KEY,
470
+ defaultPresenceStaleAfterMs: DEFAULT_PRESENCE_STALE_AFTER_MS,
471
+ hostedRoomsGossipKey: HOSTED_ROOMS_GOSSIP_KEY,
472
+ presenceGossipKey: PRESENCE_GOSSIP_KEY,
473
+ presenceReadvertiseIntervalMs: PRESENCE_READVERTISE_INTERVAL_MS,
474
+ }),
475
+ "room-wire-extensions.roomStateExtension": (room) => roomStateExtension(room === null ? undefined : roomOf(room)),
476
+ "room-wire-extensions.parseRoomStateExtension": (value) => parseRoomStateExtension(value),
477
+ "room-wire-extensions.inviterAgentExtension": (inviter) => {
478
+ const parts = rec(inviter);
479
+ return inviterAgentExtension({
480
+ ...agent(str(parts.name)),
481
+ name: str(parts.name),
482
+ cwd: str(parts.cwd),
483
+ });
484
+ },
485
+ "room-wire-extensions.parseInviterAgentExtension": (value) => parseInviterAgentExtension(value),
486
+ "input.parseInput": (text, room, dm) => parseInput(str(text), optionalString(room), optionalString(dm)),
487
+ "input.routeParsedInput": (text, room, dm) => routeAction(parseInput(str(text), optionalString(room), optionalString(dm))) ?? null,
488
+ "url-sync.parseDeepLink": (search) => parseDeepLink(str(search)),
489
+ "url-sync.resolveParsedDeepLink": (search, rooms) => {
490
+ const link = parseDeepLink(str(search));
491
+ if (link === undefined)
492
+ throw new Error("not a deep link");
493
+ return resolveDeepLink(link, frontendRooms(rooms));
494
+ },
495
+ "url-sync.syncedUrls": (state) => syncedUrls(state),
496
+ "boot-logic.hasConnectedBefore": (flag) => hasConnectedBefore(connectedFlagStorage(flag)),
497
+ "boot-logic.shouldAutoConnect": (location, flag) => shouldAutoConnect(pageLocation(location), connectedFlagStorage(flag)),
498
+ "served-by-bridge.isServedByBridge": (location) => isServedByBridge(pageLocation(location)),
499
+ "messages.deliveryEventToMessage": (event, currentRoom) => deliveryEventToMessage(frontendEvent(event), optionalString(currentRoom)),
500
+ "messages.roomMessageToDisplay": (message) => roomMessageToDisplay(RoomMessageSchema.parse(message)),
501
+ "project-tree.buildProjectTree": (agents, rooms) => buildProjectTree(list(agents).map((entry) => {
502
+ const parts = rec(entry);
503
+ const id = str(parts.id);
504
+ return {
505
+ id,
506
+ name: optStr(parts, "name") ?? `agent-${id}`,
507
+ harness: "pi",
508
+ cwd: optStr(parts, "cwd") ?? `/home/user/project-${id}`,
509
+ pid: 1,
510
+ startedAt: "",
511
+ visibility: "visible",
512
+ status: "active",
513
+ tags: [],
514
+ subscribedRooms: [],
515
+ };
516
+ }), frontendRooms(rooms)),
517
+ "web-access.authorise": (policy, request) => authorise(accessPolicy(policy), accessRequest(request)),
518
+ "web-access.accessCookieName": (port) => accessCookieName(num(port)),
519
+ "web-access.resolveWebBindHost": (option, environment) => resolveWebBindHost(option === null ? undefined : str(option), Object.fromEntries(Object.entries(rec(environment)).map(([key, v]) => [key, str(v)]))),
520
+ "web-access.wildcardAfterResolve": (spelling) => {
521
+ const host = resolveWebBindHost(str(spelling), {});
522
+ return {
523
+ requiresAccessToken: requiresAccessToken(host),
524
+ wildcard: isWildcardHost(host),
525
+ };
526
+ },
527
+ "web-access.canonicalAddress": (address) => canonicalAddress(str(address)),
528
+ "web-access.isWildcardHost": (host) => isWildcardHost(str(host)),
529
+ "web-access.localWebUrl": (host, port) => localWebUrl(str(host), num(port)),
530
+ "web-access.requiresAccessToken": (host) => requiresAccessToken(str(host)),
531
+ "web-access.isLoopbackAddress": (address) => isLoopbackAddress(str(address)),
532
+ "web-access.tokensMatch": (presented, expected) => tokensMatch(str(presented), str(expected)),
533
+ "web-access.accessUrls": (policy, interfaces) => {
534
+ const parts = rec(policy);
535
+ return accessUrls({ ...accessPolicy(parts), token: str(parts.token) }, () => interfaceTable(interfaces));
536
+ },
537
+ "version-report-actions.handleQueryVersion": async (store, action) => {
538
+ const parts = rec(store);
539
+ const query = parts.queryVersion;
540
+ const result = await handleQueryVersion(query === undefined
541
+ ? {}
542
+ : {
543
+ queryVersion: async (deviceId) => {
544
+ if (deviceId !== str(rec(action).device))
545
+ throw new Error("asked for another device");
546
+ return Promise.resolve("error" in rec(query)
547
+ ? { error: str(rec(query).error) }
548
+ : { version: str(rec(query).version) });
549
+ },
550
+ }, { action: "query_version", device: str(rec(action).device) });
551
+ return { content: result.content, isError: result.isError };
552
+ },
553
+ "version-report-actions.formatListedAgentVersions": (store, deviceId) => formatListedAgentVersions(versionStore(store), str(deviceId), false, undefined),
554
+ };
555
+ function toIssues(error) {
556
+ return {
557
+ ok: false,
558
+ issues: error.issues.map((issue) => ({
559
+ path: issue.path.map((step) => typeof step === "number" ? step : String(step)),
560
+ code: issue.code,
561
+ message: issue.message,
562
+ })),
563
+ };
564
+ }
565
+ export const SCHEMAS = {
566
+ "tool-params": (input) => {
567
+ const result = MCP_TOOL_PARAMS.safeParse(input);
568
+ return result.success
569
+ ? { ok: true, value: result.data }
570
+ : toIssues(result.error);
571
+ },
572
+ "comms-action": (input) => {
573
+ const result = CommsActionSchema.safeParse(input);
574
+ return result.success
575
+ ? { ok: true, value: result.data }
576
+ : toIssues(result.error);
577
+ },
578
+ };
579
+ /** Exposed for the CommsError code check the runner makes on a `throws` expectation. */
580
+ export function errorCode(error) {
581
+ return error instanceof CommsError ? error.code : undefined;
582
+ }
583
+ //# sourceMappingURL=conformance-functions.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance-functions.helper.js","sourceRoot":"","sources":["../../src/test/conformance-functions.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conformance.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.unit.test.d.ts","sourceRoot":"","sources":["../../src/test/conformance.unit.test.ts"],"names":[],"mappings":""}