@airterm/protocol 0.4.0 → 0.6.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.
package/dist/messages.js CHANGED
@@ -1,4 +1,8 @@
1
1
  import { automaticName } from './naming.js';
2
+ import { decodeAcpAgents, encodeAgentCapabilities, decodeAgentCapabilities, isAcpAgentId, } from './acp-agents.js';
3
+ import { isIntegrationToken } from './shellIntegration.js';
4
+ import { ACP_MIDDLEWARE_FEATURE, ACP_MIDDLEWARE_VERSION } from './acp-middleware.js';
5
+ export { readAgentCapabilities, encodeAgentCapabilities, decodeAgentCapabilities, decodeAcpAgents, isAcpAgentId, readAgentLabel, } from './acp-agents.js';
2
6
  export function encodeSessionDescription(description) {
3
7
  return encodeJson({
4
8
  ...(description.name === undefined ? {} : { name: description.name }),
@@ -6,6 +10,22 @@ export function encodeSessionDescription(description) {
6
10
  mode: description.mode,
7
11
  max_tabs: description.maxTabs,
8
12
  features: description.features ?? [],
13
+ ...(description.agents === undefined
14
+ ? {}
15
+ : {
16
+ agents: description.agents.map((agent) => ({
17
+ id: agent.id,
18
+ label: agent.label,
19
+ available: agent.available,
20
+ ...(agent.slowStart === undefined
21
+ ? {}
22
+ : { slow_start: agent.slowStart }),
23
+ ...(agent.beta === undefined ? {} : { beta: agent.beta }),
24
+ ...(agent.capabilities === undefined
25
+ ? {}
26
+ : { capabilities: encodeAgentCapabilities(agent.capabilities) }),
27
+ })),
28
+ }),
9
29
  ...(description.font === undefined
10
30
  ? {}
11
31
  : {
@@ -22,6 +42,17 @@ export function encodeSessionDescription(description) {
22
42
  running: terminal.running,
23
43
  base_offset: terminal.baseOffset.toString(),
24
44
  next_offset: terminal.nextOffset.toString(),
45
+ ...(terminal.integrationToken === undefined
46
+ ? {}
47
+ : { integration_token: terminal.integrationToken }),
48
+ ...(terminal.kind === undefined ? {} : { kind: terminal.kind }),
49
+ ...(terminal.agent === undefined ? {} : { agent: terminal.agent }),
50
+ ...(terminal.acpSessionId === undefined ? {} : { acp_session_id: terminal.acpSessionId }),
51
+ ...(terminal.acpCurrentModel === undefined ? {} : { acp_current_model: terminal.acpCurrentModel }),
52
+ ...(terminal.acpCwd === undefined ? {} : { acp_cwd: terminal.acpCwd }),
53
+ ...(terminal.acpBranch === undefined ? {} : { acp_branch: terminal.acpBranch }),
54
+ ...(terminal.acpGit === undefined ? {} : { acp_git: encodeGitStatus(terminal.acpGit) }),
55
+ ...(terminal.acpTitle === undefined ? {} : { acp_title: terminal.acpTitle }),
25
56
  })),
26
57
  });
27
58
  }
@@ -34,7 +65,10 @@ export function decodeSessionDescription(payload) {
34
65
  }
35
66
  if (value.upload_limit_bytes !== undefined && (!Number.isSafeInteger(value.upload_limit_bytes) || value.upload_limit_bytes <= 0))
36
67
  throw new Error('Invalid upload limit.');
68
+ if (value.shell_integration !== undefined && typeof value.shell_integration !== 'boolean')
69
+ throw new Error('Invalid shell integration preference.');
37
70
  const features = decodeSessionFeatures(value.features);
71
+ const agents = decodeAcpAgents(value.agents);
38
72
  const font = value.font === undefined ? undefined : decodeTerminalFont(value.font);
39
73
  if (value.name !== undefined && (typeof value.name !== 'string' || automaticName(value.name) !== value.name))
40
74
  throw new Error('Invalid session name');
@@ -45,6 +79,7 @@ export function decodeSessionDescription(payload) {
45
79
  maxTabs: value.max_tabs,
46
80
  terminals: value.terminals.map((terminal) => decodeTerminalDescription(terminal)),
47
81
  features,
82
+ ...(agents === undefined ? {} : { agents }),
48
83
  ...(font === undefined ? {} : { font }),
49
84
  };
50
85
  }
@@ -61,6 +96,11 @@ function decodeSessionFeatures(value) {
61
96
  'terminal-font-v1',
62
97
  'image-paste-v1',
63
98
  'p2p-v1',
99
+ 'shell-integration-v1',
100
+ 'acp-sessions-v1',
101
+ 'acp-agents-v1',
102
+ 'acp-elicitation-form-v1',
103
+ ACP_MIDDLEWARE_FEATURE,
64
104
  ]);
65
105
  return value.filter((feature) => supported.has(feature));
66
106
  }
@@ -174,13 +214,159 @@ function decodeTerminalDescription(value) {
174
214
  typeof value.next_offset !== 'string') {
175
215
  throw new Error('Invalid terminal description payload.');
176
216
  }
217
+ if (value.integration_token !== undefined &&
218
+ (typeof value.integration_token !== 'string' ||
219
+ !isIntegrationToken(value.integration_token))) {
220
+ throw new Error('Invalid terminal integration token.');
221
+ }
177
222
  return {
178
223
  ptyId: value.pty_id,
179
224
  title: value.title,
180
225
  running: value.running,
181
226
  baseOffset: parseUnsignedBigInt(value.base_offset),
182
227
  nextOffset: parseUnsignedBigInt(value.next_offset),
228
+ ...(value.integration_token === undefined
229
+ ? {}
230
+ : { integrationToken: value.integration_token }),
231
+ ...(value.kind === 'acp' || value.kind === 'pty' ? { kind: value.kind } : {}),
232
+ ...(typeof value.agent === 'string' ? { agent: value.agent } : {}),
233
+ ...(typeof value.acp_session_id === 'string' ? { acpSessionId: value.acp_session_id } : {}),
234
+ ...(typeof value.acp_current_model === 'string' ? { acpCurrentModel: value.acp_current_model } : {}),
235
+ ...workspaceDescription(value),
236
+ };
237
+ }
238
+ /**
239
+ * Workspace fields for an ACP terminal. A reconnecting browser restores the tab
240
+ * from this description, so an unusable value is dropped rather than thrown: the
241
+ * tab still opens, it just loses its label.
242
+ */
243
+ function workspaceDescription(value) {
244
+ const cwd = boundedPath(value.acp_cwd);
245
+ const branch = boundedBranch(value.acp_branch);
246
+ const title = boundedTitle(value.acp_title);
247
+ const git = boundedGitStatus(value.acp_git);
248
+ return {
249
+ ...(cwd === undefined ? {} : { acpCwd: cwd }),
250
+ ...(branch === undefined ? {} : { acpBranch: branch }),
251
+ ...(title === undefined ? {} : { acpTitle: title }),
252
+ ...(git === undefined ? {} : { acpGit: git }),
253
+ };
254
+ }
255
+ /**
256
+ * Writes the git status for the wire, dropping fields the reader could not show.
257
+ *
258
+ * A count that is not a usable number is left out rather than sent as something
259
+ * a viewer would render as `NaN`, and a branch that fails the ref bound is left
260
+ * out for the same reason it is on the way in.
261
+ */
262
+ function encodeGitStatus(status) {
263
+ const branch = boundedBranch(status.branch);
264
+ const commit = boundedCommit(status.commit);
265
+ const upstream = boundedBranch(status.upstream);
266
+ return {
267
+ ...(branch === undefined ? {} : { branch }),
268
+ ...(status.detached === true ? { detached: true } : {}),
269
+ ...(commit === undefined ? {} : { commit }),
270
+ ...(upstream === undefined ? {} : { upstream }),
271
+ ...countField('ahead', status.ahead),
272
+ ...countField('behind', status.behind),
273
+ ...countField('staged', status.staged),
274
+ ...countField('modified', status.modified),
275
+ ...countField('untracked', status.untracked),
276
+ ...countField('conflicted', status.conflicted),
277
+ };
278
+ }
279
+ function countField(name, value) {
280
+ return typeof value === 'number' && Number.isSafeInteger(value) && value > 0
281
+ ? { [name]: value }
282
+ : {};
283
+ }
284
+ /**
285
+ * Reads a status the CLI sent, keeping whatever survives validation.
286
+ *
287
+ * Each field stands alone: a peer that sent a branch but a malformed count still
288
+ * gets its branch shown, because dropping the whole object over one bad number
289
+ * would throw away true information.
290
+ */
291
+ function boundedGitStatus(value) {
292
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
293
+ return undefined;
294
+ }
295
+ const raw = value;
296
+ const branch = boundedBranch(raw.branch);
297
+ const commit = boundedCommit(raw.commit);
298
+ const upstream = boundedBranch(raw.upstream);
299
+ const status = {
300
+ ...(branch === undefined ? {} : { branch }),
301
+ ...(raw.detached === true ? { detached: true } : {}),
302
+ ...(commit === undefined ? {} : { commit }),
303
+ ...(upstream === undefined ? {} : { upstream }),
304
+ ...boundedCount('ahead', raw.ahead),
305
+ ...boundedCount('behind', raw.behind),
306
+ ...boundedCount('staged', raw.staged),
307
+ ...boundedCount('modified', raw.modified),
308
+ ...boundedCount('untracked', raw.untracked),
309
+ ...boundedCount('conflicted', raw.conflicted),
183
310
  };
311
+ return Object.keys(status).length === 0 ? undefined : status;
312
+ }
313
+ function boundedCount(name, value) {
314
+ return typeof value === 'number' &&
315
+ Number.isSafeInteger(value) &&
316
+ value > 0 &&
317
+ value <= GIT_COUNT_LIMIT
318
+ ? { [name]: value }
319
+ : {};
320
+ }
321
+ /** A workspace path long enough to be useful but bounded against abuse. */
322
+ function boundedPath(value) {
323
+ return typeof value === 'string' && value.length > 0 && value.length <= 4096
324
+ ? value
325
+ : undefined;
326
+ }
327
+ /**
328
+ * A git branch name is a ref, so it is bounded like one rather than trusted to
329
+ * be short: anything longer is dropped instead of truncated into a wrong name.
330
+ */
331
+ export const ACP_BRANCH_LIMIT = 256;
332
+ /**
333
+ * A commit id is abbreviated to this many characters on the CLI, so anything
334
+ * longer did not come from a repository this client read.
335
+ */
336
+ export const ACP_COMMIT_LIMIT = 64;
337
+ /**
338
+ * A working tree cannot hold more entries than a viewer could act on, so a count
339
+ * past this bound is refused rather than rendered as a number nobody produced.
340
+ */
341
+ const GIT_COUNT_LIMIT = 1_000_000;
342
+ const BRANCH_CONTROL_CHARACTERS = /[\p{Cc}\p{Cf}]/u;
343
+ /** A commit id is hex, so anything else is refused rather than shown. */
344
+ function boundedCommit(value) {
345
+ return typeof value === 'string' &&
346
+ value.length > 0 &&
347
+ value.length <= ACP_COMMIT_LIMIT &&
348
+ /^[0-9a-f]+$/i.test(value)
349
+ ? value
350
+ : undefined;
351
+ }
352
+ /**
353
+ * A branch reaches the tab bar and a path-shaped chip, so control characters
354
+ * disqualify it rather than being stripped into a different name.
355
+ */
356
+ function boundedBranch(value) {
357
+ return typeof value === 'string' &&
358
+ value.length > 0 &&
359
+ value.length <= ACP_BRANCH_LIMIT &&
360
+ !BRANCH_CONTROL_CHARACTERS.test(value)
361
+ ? value
362
+ : undefined;
363
+ }
364
+ /**
365
+ * Titles reach the tab bar, so control characters are stripped rather than
366
+ * rendered; an agent that sends an empty or unsafe title simply gets no title.
367
+ */
368
+ function boundedTitle(value) {
369
+ return typeof value === 'string' ? automaticName(value) : undefined;
184
370
  }
185
371
  function encodeJson(value) {
186
372
  return new TextEncoder().encode(JSON.stringify(value));
@@ -210,4 +396,90 @@ function parseUnsignedBigInt(value) {
210
396
  }
211
397
  return BigInt(value);
212
398
  }
399
+ /**
400
+ * Bounds for the optional fields of a create request. A field outside its bound
401
+ * is dropped, because the agent validates the semantics (an unusable directory
402
+ * is refused with an error) while these limits only keep the frame small.
403
+ */
404
+ const ACP_CREATE_MAXIMUM_CWD = 4096;
405
+ const ACP_CREATE_MAXIMUM_SESSION_ID = 256;
406
+ const ACP_CREATE_MAXIMUM_TITLE = 160;
407
+ function optionalCreateField(value, maximum) {
408
+ return typeof value === 'string' && value.length > 0 && value.length <= maximum
409
+ ? value
410
+ : undefined;
411
+ }
412
+ function encodeClientCapabilities(capabilities) {
413
+ const elicitation = capabilities?.elicitation?.form === true ? { form: true } : undefined;
414
+ const middlewareVersion = capabilities?.middlewareVersion === ACP_MIDDLEWARE_VERSION
415
+ ? ACP_MIDDLEWARE_VERSION
416
+ : undefined;
417
+ if (elicitation === undefined &&
418
+ middlewareVersion === undefined) {
419
+ return undefined;
420
+ }
421
+ return {
422
+ ...(elicitation === undefined ? {} : { elicitation }),
423
+ ...(middlewareVersion === undefined
424
+ ? {}
425
+ : { middleware_version: middlewareVersion }),
426
+ };
427
+ }
428
+ function decodeClientCapabilities(value) {
429
+ if (!isRecord(value)) {
430
+ return undefined;
431
+ }
432
+ const elicitation = value.elicitation;
433
+ const form = isRecord(elicitation) && elicitation.form === true;
434
+ const middlewareVersion = value.middleware_version === ACP_MIDDLEWARE_VERSION
435
+ ? ACP_MIDDLEWARE_VERSION
436
+ : undefined;
437
+ if (!form && middlewareVersion === undefined) {
438
+ return undefined;
439
+ }
440
+ return {
441
+ ...(form ? { elicitation: { form: true } } : {}),
442
+ ...(middlewareVersion === undefined ? {} : { middlewareVersion }),
443
+ };
444
+ }
445
+ export function encodeAcpCreate(message) {
446
+ const cwd = optionalCreateField(message.cwd, ACP_CREATE_MAXIMUM_CWD);
447
+ const sessionId = optionalCreateField(message.sessionId, ACP_CREATE_MAXIMUM_SESSION_ID);
448
+ const title = optionalCreateField(message.title, ACP_CREATE_MAXIMUM_TITLE);
449
+ const clientCapabilities = encodeClientCapabilities(message.clientCapabilities);
450
+ return encodeJson({
451
+ agent: message.agent,
452
+ ...(cwd === undefined ? {} : { cwd }),
453
+ ...(sessionId === undefined ? {} : { session_id: sessionId }),
454
+ ...(title === undefined ? {} : { title }),
455
+ ...(clientCapabilities === undefined
456
+ ? {}
457
+ : { client_capabilities: clientCapabilities }),
458
+ });
459
+ }
460
+ /**
461
+ * Reads a create request.
462
+ *
463
+ * An agent id that is missing or not a valid id decodes to an empty string, so
464
+ * the CLI refuses it the same way it refuses an id it does not know. Inventing a
465
+ * default here would silently open one agent's chat in another, and would keep
466
+ * doing so once agents are discovered rather than listed.
467
+ */
468
+ export function decodeAcpCreate(payload) {
469
+ if (payload.byteLength === 0) {
470
+ return { agent: '' };
471
+ }
472
+ const record = decodeRecord(payload);
473
+ const cwd = optionalCreateField(record.cwd, ACP_CREATE_MAXIMUM_CWD);
474
+ const sessionId = optionalCreateField(record.session_id, ACP_CREATE_MAXIMUM_SESSION_ID);
475
+ const title = optionalCreateField(record.title, ACP_CREATE_MAXIMUM_TITLE);
476
+ const clientCapabilities = decodeClientCapabilities(record.client_capabilities ?? record.clientCapabilities);
477
+ return {
478
+ agent: isAcpAgentId(record.agent) ? record.agent : '',
479
+ ...(cwd === undefined ? {} : { cwd }),
480
+ ...(sessionId === undefined ? {} : { sessionId }),
481
+ ...(title === undefined ? {} : { title }),
482
+ ...(clientCapabilities === undefined ? {} : { clientCapabilities }),
483
+ };
484
+ }
213
485
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relay-usage.d.ts","sourceRoot":"","sources":["../src/relay-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAQ3E;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAIjE"}
1
+ {"version":3,"file":"relay-usage.d.ts","sourceRoot":"","sources":["../src/relay-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAQ3E;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAOjE"}
@@ -11,8 +11,11 @@ export function decodeRelayUsage(value) {
11
11
  return { ...(value.requiresPairing === undefined ? {} : { requiresPairing: value.requiresPairing }), usedBytes: value.usedBytes, limitBytes: value.limitBytes, resetsAt: value.resetsAt, restricted: value.restricted, blocked: value.blocked, retryAt: value.retryAt };
12
12
  }
13
13
  export function isRelayCoordination(type) {
14
+ // A frame missing from this list is dropped without an error while the
15
+ // relay is quota-restricted, so every control frame belongs here.
14
16
  return [InnerFrameType.SessionDescription, InnerFrameType.SessionClose, InnerFrameType.P2PControl,
15
17
  InnerFrameType.OutputAck, InnerFrameType.RecoveryComplete, InnerFrameType.TransferCancel,
16
- InnerFrameType.ProtocolError, InnerFrameType.PtyExit].includes(type);
18
+ InnerFrameType.ProtocolError, InnerFrameType.PtyExit,
19
+ InnerFrameType.AcpCreate, InnerFrameType.AcpClose].includes(type);
17
20
  }
18
21
  //# sourceMappingURL=relay-usage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-usage.js","sourceRoot":"","sources":["../src/relay-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAU9C,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAK,KAAK,CAAC,SAAoB,GAAG,CAAC;QACzE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,IAAK,KAAK,CAAC,UAAqB,IAAI,CAAC;QAC5E,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3E,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAK,KAAK,CAAC,OAAkB,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC1H,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACzI,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAA0B,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,UAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAiB,EAAE,CAAC;AACrT,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACpD,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,UAAU;QAC7F,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,cAAc;QACxF,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"relay-usage.js","sourceRoot":"","sources":["../src/relay-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAU9C,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAK,KAAK,CAAC,SAAoB,GAAG,CAAC;QACzE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,IAAK,KAAK,CAAC,UAAqB,IAAI,CAAC;QAC5E,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3E,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAK,KAAK,CAAC,OAAkB,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC1H,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACzI,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAA0B,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,UAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAiB,EAAE,CAAC;AACrT,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACpD,uEAAuE;IACvE,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,UAAU;QAC7F,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,cAAc;QACxF,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,OAAO;QACpD,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { InnerFrameType, type InnerFrame } from './framing.js';
2
+ export declare const SHARING_VERSION: 1;
3
+ export declare const DEFAULT_MAX_OBSERVERS = 25;
4
+ export interface SharingState {
5
+ type: 'sharing-state';
6
+ accessGeneration: number;
7
+ revision: number;
8
+ writerEpoch: number;
9
+ writer: string | null;
10
+ pending: boolean;
11
+ mode: SharingMode;
12
+ participantId: string | null;
13
+ maximumObservers: number;
14
+ participants: Array<{
15
+ participantId: string;
16
+ owner: boolean;
17
+ }>;
18
+ requests: string[];
19
+ }
20
+ export type SharingMode = 'view' | 'interactive';
21
+ export interface ParticipantAuthority {
22
+ participantId: string;
23
+ owner: boolean;
24
+ writer: boolean;
25
+ accessGeneration: number;
26
+ writerEpoch: number;
27
+ }
28
+ /** The gateway supplies identity; callers must not accept browser role claims. */
29
+ export declare function allowsSharedFrame(authority: ParticipantAuthority, type: InnerFrameType): boolean;
30
+ export interface ParticipantPacket {
31
+ participantId: string;
32
+ accessGeneration: number;
33
+ writerEpoch: number;
34
+ payload: Uint8Array;
35
+ }
36
+ /** The epoch is encrypted, so delayed browser writes cannot acquire a newer grant. */
37
+ export declare function wrapSharedInput(frame: InnerFrame, epoch: number): InnerFrame;
38
+ export declare function unwrapSharedInput(frame: InnerFrame, epoch: number): InnerFrame;
39
+ /** Agent relay envelope. Browser sockets carry only the enclosed Noise frame. */
40
+ export declare function encodeParticipantPacket(packet: ParticipantPacket): Uint8Array;
41
+ export declare function decodeParticipantPacket(bytes: Uint8Array): ParticipantPacket;
42
+ //# sourceMappingURL=sharing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharing.d.ts","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,cAAc,EAAwB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAGzH,eAAO,MAAM,eAAe,EAAG,CAAU,CAAC;AAC1C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,eAAe,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AACD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,aAAa,CAAC;AACjD,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CA0BhG;AAGD,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;CACvB;AAOD,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAI5E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAO9E;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU,CAc7E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAc5E"}
@@ -0,0 +1,87 @@
1
+ import { decodeInnerFrame, encodeInnerFrame, InnerFrameType, MAX_CIPHERTEXT_BYTES } from './framing.js';
2
+ // Negotiated independently of the inner Noise framing version.
3
+ export const SHARING_VERSION = 1;
4
+ export const DEFAULT_MAX_OBSERVERS = 25;
5
+ /** The gateway supplies identity; callers must not accept browser role claims. */
6
+ export function allowsSharedFrame(authority, type) {
7
+ switch (type) {
8
+ case InnerFrameType.SessionDescription:
9
+ case InnerFrameType.ReplayRequest:
10
+ case InnerFrameType.OutputAck:
11
+ return true;
12
+ case InnerFrameType.SessionClose:
13
+ return authority.owner;
14
+ case InnerFrameType.PtyInput:
15
+ case InnerFrameType.PtyResize:
16
+ case InnerFrameType.PtyCreate:
17
+ case InnerFrameType.PtyClose:
18
+ case InnerFrameType.TransferOffer:
19
+ case InnerFrameType.TransferChunk:
20
+ case InnerFrameType.TransferComplete:
21
+ case InnerFrameType.AcpCreate:
22
+ case InnerFrameType.AcpCommand:
23
+ case InnerFrameType.AcpClose:
24
+ return authority.writer;
25
+ case InnerFrameType.AcpEvent:
26
+ return false;
27
+ default:
28
+ // Transfer responses require direction/transfer ownership checks in
29
+ // their individual handlers; P2P is never legal on shared sessions.
30
+ return false;
31
+ }
32
+ }
33
+ const HEADER_BYTES = 25;
34
+ function counter(value) {
35
+ if (!Number.isSafeInteger(value) || value < 1 || value > 0xffffffff)
36
+ throw new Error('Invalid sharing generation.');
37
+ }
38
+ /** The epoch is encrypted, so delayed browser writes cannot acquire a newer grant. */
39
+ export function wrapSharedInput(frame, epoch) {
40
+ counter(epoch);
41
+ if (frame.type === InnerFrameType.SharedInput)
42
+ throw new Error('Nested sharing envelope.');
43
+ return { type: InnerFrameType.SharedInput, ptyId: 0, sequence: BigInt(epoch), payload: encodeInnerFrame(frame) };
44
+ }
45
+ export function unwrapSharedInput(frame, epoch) {
46
+ counter(epoch);
47
+ if (frame.type !== InnerFrameType.SharedInput || frame.ptyId !== 0 || frame.sequence !== BigInt(epoch))
48
+ throw new Error('Stale shared input.');
49
+ const result = decodeInnerFrame(frame.payload);
50
+ if (result.type === InnerFrameType.SharedInput)
51
+ throw new Error('Nested sharing envelope.');
52
+ return result;
53
+ }
54
+ /** Agent relay envelope. Browser sockets carry only the enclosed Noise frame. */
55
+ export function encodeParticipantPacket(packet) {
56
+ if (!/^[a-f0-9]{32}$/.test(packet.participantId))
57
+ throw new Error('Invalid participant identity.');
58
+ counter(packet.accessGeneration);
59
+ counter(packet.writerEpoch);
60
+ if (packet.payload.length < 2 || packet.payload.length > MAX_CIPHERTEXT_BYTES + 2)
61
+ throw new Error('Invalid participant payload size.');
62
+ const result = new Uint8Array(HEADER_BYTES + packet.payload.length);
63
+ result[0] = SHARING_VERSION;
64
+ for (let i = 0; i < 16; i++)
65
+ result[i + 1] = Number.parseInt(packet.participantId.slice(i * 2, i * 2 + 2), 16);
66
+ const view = new DataView(result.buffer);
67
+ view.setUint32(17, packet.accessGeneration);
68
+ view.setUint32(21, packet.writerEpoch);
69
+ result.set(packet.payload, HEADER_BYTES);
70
+ return result;
71
+ }
72
+ export function decodeParticipantPacket(bytes) {
73
+ if (bytes.length < HEADER_BYTES + 2 || bytes.length > HEADER_BYTES + MAX_CIPHERTEXT_BYTES + 2 || bytes[0] !== SHARING_VERSION)
74
+ throw new Error('Invalid participant envelope.');
75
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
76
+ const accessGeneration = view.getUint32(17);
77
+ const writerEpoch = view.getUint32(21);
78
+ counter(accessGeneration);
79
+ counter(writerEpoch);
80
+ return {
81
+ participantId: Array.from(bytes.subarray(1, 17), byte => byte.toString(16).padStart(2, '0')).join(''),
82
+ accessGeneration,
83
+ writerEpoch,
84
+ payload: bytes.subarray(HEADER_BYTES),
85
+ };
86
+ }
87
+ //# sourceMappingURL=sharing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}