@airterm/protocol 0.5.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"}
@@ -1 +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,CAqBhG;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"}
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"}
package/dist/sharing.js CHANGED
@@ -18,7 +18,12 @@ export function allowsSharedFrame(authority, type) {
18
18
  case InnerFrameType.TransferOffer:
19
19
  case InnerFrameType.TransferChunk:
20
20
  case InnerFrameType.TransferComplete:
21
+ case InnerFrameType.AcpCreate:
22
+ case InnerFrameType.AcpCommand:
23
+ case InnerFrameType.AcpClose:
21
24
  return authority.writer;
25
+ case InnerFrameType.AcpEvent:
26
+ return false;
22
27
  default:
23
28
  // Transfer responses require direction/transfer ownership checks in
24
29
  // their individual handlers; P2P is never legal on shared sessions.
@@ -1 +1 @@
1
- {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * The private shell-integration marker schema.
3
+ *
4
+ * Markers ride the PTY byte stream inside OSC 633, namespaced under `AirTerm`
5
+ * because OSC 633 is also emitted by other shell integrations (VS Code and
6
+ * others). Only markers carrying the namespace are considered ours, and only
7
+ * markers carrying the PTY's integration token are authoritative.
8
+ *
9
+ * The parse and encode helpers live here so the shell scripts emitted by the
10
+ * CLI and the browser-side scanner cannot drift apart.
11
+ *
12
+ * Wire format, as the body following `OSC 633 ;`:
13
+ *
14
+ * AirTerm ; <version> ; <type> ; <commandId> ; <token> [ ; <payload> ]
15
+ *
16
+ * `payload` is always the remainder of the sequence, so a payload containing a
17
+ * separator survives round-tripping. Text payloads are escaped with
18
+ * {@link escapeMarkerText}.
19
+ */
20
+ /** OSC identifier carrying shell-integration markers. */
21
+ export declare const SHELL_INTEGRATION_OSC = 633;
22
+ /** Namespace token; markers without it belong to another integration. */
23
+ export declare const SHELL_INTEGRATION_NAMESPACE = "AirTerm";
24
+ /** Schema version. Bump only for incompatible field changes. */
25
+ export declare const SHELL_INTEGRATION_VERSION = 1;
26
+ /** Session feature literal negotiated through `SessionDescription.features`. */
27
+ export declare const SHELL_INTEGRATION_FEATURE = "shell-integration-v1";
28
+ /**
29
+ * Command id reserved for `ready`, which announces that hooks are installed and
30
+ * that command numbering restarts at 1.
31
+ */
32
+ export declare const SHELL_INTEGRATION_READY_COMMAND_ID = 0;
33
+ /** Highest command id a shell may use before it must re-announce `ready`. */
34
+ export declare const SHELL_INTEGRATION_COMMAND_ID_MAX = 4294967295;
35
+ /** Bounds enforced by the shell scripts at emit time and again while parsing. */
36
+ export declare const SHELL_INTEGRATION_LIMITS: {
37
+ /** Maximum length of a marker body, excluding the introducer and terminator. */
38
+ readonly markerBytes: 8192;
39
+ /** Maximum characters retained from a captured command line. */
40
+ readonly commandTextChars: 4096;
41
+ /** Maximum characters retained from a working directory. */
42
+ readonly cwdChars: 4096;
43
+ /** Maximum bytes buffered while a sequence is split across chunks. */
44
+ readonly pendingBytes: 8192;
45
+ };
46
+ /** Bytes in an integration token. */
47
+ export declare const SHELL_INTEGRATION_TOKEN_BYTES = 32;
48
+ /** Characters in an integration token (hex encoded). */
49
+ export declare const SHELL_INTEGRATION_TOKEN_CHARS: number;
50
+ export declare const SHELL_INTEGRATION_EVENT_TYPES: readonly ["ready", "prompt", "command", "execute", "finish", "cwd"];
51
+ export type ShellIntegrationEventType = (typeof SHELL_INTEGRATION_EVENT_TYPES)[number];
52
+ /**
53
+ * How much the captured command text can be trusted.
54
+ *
55
+ * - `submitted`: the shell reported the line the user submitted (zsh `preexec`).
56
+ * - `shell-fragment`: derived from a bash `DEBUG` trap, which reports pipeline
57
+ * elements, function bodies or expanded commands rather than the typed line.
58
+ * - `missing`: no text was captured for this command.
59
+ */
60
+ export type CommandTextQuality = 'submitted' | 'shell-fragment' | 'missing';
61
+ export declare const COMMAND_TEXT_QUALITIES: readonly CommandTextQuality[];
62
+ export type ShellIntegrationEvent = {
63
+ type: 'ready';
64
+ commandId: 0;
65
+ token: string;
66
+ } | {
67
+ type: 'prompt';
68
+ commandId: number;
69
+ token: string;
70
+ } | {
71
+ type: 'execute';
72
+ commandId: number;
73
+ token: string;
74
+ } | {
75
+ type: 'finish';
76
+ commandId: number;
77
+ token: string;
78
+ exitCode: number;
79
+ } | {
80
+ type: 'cwd';
81
+ commandId: number;
82
+ token: string;
83
+ cwd: string;
84
+ } | {
85
+ type: 'command';
86
+ commandId: number;
87
+ token: string;
88
+ commandText: string;
89
+ quality: CommandTextQuality;
90
+ };
91
+ /** Create a fresh per-PTY integration token. */
92
+ export declare function createIntegrationToken(random?: (target: Uint8Array) => void): string;
93
+ export declare function isIntegrationToken(value: string): boolean;
94
+ /**
95
+ * Escape text for a marker payload.
96
+ *
97
+ * Mirrors the escaping implemented by the shell scripts: backslashes and the
98
+ * separator are escaped, as is any control character so a multi-line command
99
+ * survives a single-line wire format.
100
+ */
101
+ export declare function escapeMarkerText(value: string): string;
102
+ /** Reverse {@link escapeMarkerText}; returns undefined for a malformed escape. */
103
+ export declare function unescapeMarkerText(value: string): string | undefined;
104
+ /** Encode the marker body, i.e. everything after `633;`. */
105
+ export declare function encodeShellIntegrationMarker(event: ShellIntegrationEvent): string;
106
+ /** Encode a complete OSC sequence, as written to the terminal. */
107
+ export declare function encodeShellIntegrationOsc(event: ShellIntegrationEvent): string;
108
+ /**
109
+ * Parse a marker body, i.e. the data an OSC handler receives after `633;`.
110
+ *
111
+ * Returns undefined rather than throwing for anything malformed or foreign,
112
+ * because this runs on every byte of terminal output.
113
+ */
114
+ export declare function parseShellIntegrationMarker(data: string): ShellIntegrationEvent | undefined;
115
+ export declare function isCommandTextQuality(value: string): value is CommandTextQuality;
116
+ //# sourceMappingURL=shellIntegration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellIntegration.d.ts","sourceRoot":"","sources":["../src/shellIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,yEAAyE;AACzE,eAAO,MAAM,2BAA2B,YAAY,CAAC;AAErD,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,aAAa,CAAC;AAE3D,iFAAiF;AACjF,eAAO,MAAM,wBAAwB;IACjC,gFAAgF;;IAEhF,gEAAgE;;IAEhE,4DAA4D;;IAE5D,sEAAsE;;CAEhE,CAAC;AAEX,qCAAqC;AACrC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,QAAoC,CAAC;AAE/E,eAAO,MAAM,6BAA6B,qEAOhC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GACjC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAE5E,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAI/D,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9D;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAER,gDAAgD;AAChD,wBAAgB,sBAAsB,CAClC,MAAM,GAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IACE,GACnC,MAAM,CAOR;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBtD;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsCpE;AAED,4DAA4D;AAC5D,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,qBAAqB,GAC7B,MAAM,CAkBR;AAED,kEAAkE;AAClE,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,qBAAqB,GAC7B,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,IAAI,EAAE,MAAM,GACb,qBAAqB,GAAG,SAAS,CAwGnC;AAED,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,MAAM,GACd,KAAK,IAAI,kBAAkB,CAE7B"}