agent-relay 4.0.20 → 4.0.22

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 (59) hide show
  1. package/README.md +8 -0
  2. package/dist/src/cli/commands/messaging.d.ts +44 -0
  3. package/dist/src/cli/commands/messaging.d.ts.map +1 -1
  4. package/dist/src/cli/commands/messaging.js +195 -8
  5. package/dist/src/cli/commands/messaging.js.map +1 -1
  6. package/dist/src/cli/lib/ssh-interactive.d.ts +11 -0
  7. package/dist/src/cli/lib/ssh-interactive.d.ts.map +1 -1
  8. package/dist/src/cli/lib/ssh-interactive.js +53 -26
  9. package/dist/src/cli/lib/ssh-interactive.js.map +1 -1
  10. package/node_modules/@agent-relay/cloud/dist/auth.d.ts +2 -2
  11. package/node_modules/@agent-relay/cloud/dist/auth.d.ts.map +1 -1
  12. package/node_modules/@agent-relay/cloud/dist/auth.js +108 -62
  13. package/node_modules/@agent-relay/cloud/dist/auth.js.map +1 -1
  14. package/node_modules/@agent-relay/cloud/package.json +2 -2
  15. package/node_modules/@agent-relay/config/package.json +1 -1
  16. package/node_modules/@agent-relay/hooks/package.json +4 -4
  17. package/node_modules/@agent-relay/sdk/package.json +2 -2
  18. package/node_modules/@agent-relay/telemetry/package.json +1 -1
  19. package/node_modules/@agent-relay/trajectory/package.json +2 -2
  20. package/node_modules/@agent-relay/user-directory/package.json +2 -2
  21. package/node_modules/@agent-relay/utils/package.json +2 -2
  22. package/node_modules/@smithy/config-resolver/package.json +2 -2
  23. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  24. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +154 -61
  25. package/node_modules/@smithy/util-endpoints/dist-es/bdd/BinaryDecisionDiagram.js +15 -0
  26. package/node_modules/@smithy/util-endpoints/dist-es/decideEndpoint.js +41 -0
  27. package/node_modules/@smithy/util-endpoints/dist-es/index.js +2 -0
  28. package/node_modules/@smithy/util-endpoints/dist-es/lib/coalesce.js +8 -0
  29. package/node_modules/@smithy/util-endpoints/dist-es/lib/index.js +3 -0
  30. package/node_modules/@smithy/util-endpoints/dist-es/lib/ite.js +3 -0
  31. package/node_modules/@smithy/util-endpoints/dist-es/lib/split.js +13 -0
  32. package/node_modules/@smithy/util-endpoints/dist-es/lib/substring.js +1 -1
  33. package/node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js +4 -1
  34. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +20 -5
  35. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js +3 -6
  36. package/node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js +1 -5
  37. package/node_modules/@smithy/util-endpoints/dist-types/bdd/BinaryDecisionDiagram.d.ts +22 -0
  38. package/node_modules/@smithy/util-endpoints/dist-types/decideEndpoint.d.ts +7 -0
  39. package/node_modules/@smithy/util-endpoints/dist-types/index.d.ts +2 -0
  40. package/node_modules/@smithy/util-endpoints/dist-types/lib/coalesce.d.ts +7 -0
  41. package/node_modules/@smithy/util-endpoints/dist-types/lib/index.d.ts +3 -0
  42. package/node_modules/@smithy/util-endpoints/dist-types/lib/ite.d.ts +6 -0
  43. package/node_modules/@smithy/util-endpoints/dist-types/lib/split.d.ts +11 -0
  44. package/node_modules/@smithy/util-endpoints/dist-types/utils/endpointFunctions.d.ts +4 -0
  45. package/node_modules/@smithy/util-endpoints/dist-types/utils/getReferenceValue.d.ts +3 -1
  46. package/node_modules/@smithy/util-endpoints/package.json +1 -1
  47. package/package.json +11 -10
  48. package/packages/cloud/dist/auth.d.ts +2 -2
  49. package/packages/cloud/dist/auth.d.ts.map +1 -1
  50. package/packages/cloud/dist/auth.js +108 -62
  51. package/packages/cloud/dist/auth.js.map +1 -1
  52. package/packages/cloud/package.json +2 -2
  53. package/packages/config/package.json +1 -1
  54. package/packages/hooks/package.json +4 -4
  55. package/packages/sdk/package.json +2 -2
  56. package/packages/telemetry/package.json +1 -1
  57. package/packages/trajectory/package.json +2 -2
  58. package/packages/user-directory/package.json +2 -2
  59. package/packages/utils/package.json +2 -2
package/README.md CHANGED
@@ -100,6 +100,14 @@ See the [plugin README](https://github.com/AgentWorkforce/skills/tree/main/plugi
100
100
 
101
101
  ---
102
102
 
103
+ ## Agent Relay CLI
104
+
105
+ Install via
106
+
107
+ ```
108
+ curl -fsSL https://raw.githubusercontent.com/AgentWorkforce/relay/main/install.sh | bash
109
+ ```
110
+
103
111
  ## License
104
112
 
105
113
  Apache-2.0 — Copyright 2026 Agent Workforce Incorporated
@@ -59,6 +59,42 @@ interface RelaycastInbox {
59
59
  unread_dms?: RelaycastUnreadDm[];
60
60
  recent_reactions?: RelaycastRecentReaction[];
61
61
  }
62
+ interface DmConversationParticipant {
63
+ agentName: string;
64
+ agent_name?: string;
65
+ }
66
+ interface DmConversationSummary {
67
+ id: string;
68
+ participants: DmConversationParticipant[];
69
+ lastMessage?: {
70
+ id: string;
71
+ text: string;
72
+ agentName?: string;
73
+ agent_name?: string;
74
+ createdAt?: string;
75
+ created_at?: string;
76
+ } | null;
77
+ last_message?: {
78
+ id: string;
79
+ text: string;
80
+ agentName?: string;
81
+ agent_name?: string;
82
+ createdAt?: string;
83
+ created_at?: string;
84
+ } | null;
85
+ unreadCount?: number;
86
+ unread_count?: number;
87
+ createdAt?: string;
88
+ created_at?: string;
89
+ }
90
+ interface DmMessageItem {
91
+ id: string;
92
+ agentName?: string;
93
+ agent_name?: string;
94
+ text: string;
95
+ createdAt?: string;
96
+ created_at?: string;
97
+ }
62
98
  export interface MessagingRelaycastClient {
63
99
  message(id: string): Promise<RelaycastMessage>;
64
100
  messages(channel: string, options?: {
@@ -67,6 +103,14 @@ export interface MessagingRelaycastClient {
67
103
  after?: string;
68
104
  }): Promise<RelaycastMessage[]>;
69
105
  inbox(): Promise<RelaycastInbox>;
106
+ dm(to: string, text: string): Promise<void>;
107
+ post(channel: string, text: string): Promise<void>;
108
+ dms: {
109
+ conversations(): Promise<DmConversationSummary[]>;
110
+ messages(conversationId: string, opts?: {
111
+ limit?: number;
112
+ }): Promise<DmMessageItem[]>;
113
+ };
70
114
  }
71
115
  export interface MessagingBrokerClient {
72
116
  sendMessage(input: {
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/messaging.ts"],"names":[],"mappings":"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"}
@@ -178,7 +178,19 @@ async function createDefaultRelaycastClient(options) {
178
178
  name: options.agentName,
179
179
  type: 'agent',
180
180
  });
181
- return relaycast.as(registration.token);
181
+ const agentClient = relaycast.as(registration.token);
182
+ // AgentClient already has dm(agent, text) — preserve the original reference before casting.
183
+ // post() bridges to AgentClient.send() which has a different name.
184
+ const originalDm = agentClient.dm.bind(agentClient);
185
+ const originalSend = agentClient.send.bind(agentClient);
186
+ const client = agentClient;
187
+ client.dm = async (to, text) => {
188
+ await originalDm(to, text);
189
+ };
190
+ client.post = async (channel, text) => {
191
+ await originalSend(channel, text);
192
+ };
193
+ return client;
182
194
  }
183
195
  function withDefaults(overrides = {}) {
184
196
  return {
@@ -198,12 +210,36 @@ export function registerMessagingCommands(program, overrides = {}) {
198
210
  .description('Send a message to an agent')
199
211
  .argument('<agent>', 'Target agent name (or * for broadcast, #channel for channel)')
200
212
  .argument('<message>', 'Message to send')
201
- .option('--from <name>', 'Sender name (defaults to broker-side human sender)')
213
+ .option('--from <name>', 'Sender name (registered identity in relaycast, defaults to "relay")')
202
214
  .option('--thread <id>', 'Thread identifier')
203
215
  .action(async (agent, message, options) => {
204
- let client;
216
+ const senderName = options.from?.trim() || 'relay';
217
+ const isChannel = agent.startsWith('#');
218
+ // Primary path: send via relaycast SDK so messages are stored and queryable
219
+ // Skip relaycast path when --thread is used since the relaycast SDK does not support threading
220
+ if (!options.thread) {
221
+ try {
222
+ const relaycastClient = await deps.createRelaycastClient({
223
+ agentName: senderName,
224
+ cwd: deps.getProjectRoot(),
225
+ });
226
+ if (isChannel) {
227
+ await relaycastClient.post(agent.slice(1), message);
228
+ }
229
+ else {
230
+ await relaycastClient.dm(agent, message);
231
+ }
232
+ deps.log(`Message sent to ${agent}`);
233
+ return;
234
+ }
235
+ catch {
236
+ // Fall through to broker path
237
+ }
238
+ }
239
+ // Fallback: broker path (for environments without relaycast API key)
240
+ let brokerClient;
205
241
  try {
206
- client = await deps.createClient(deps.getProjectRoot());
242
+ brokerClient = await deps.createClient(deps.getProjectRoot());
207
243
  }
208
244
  catch (err) {
209
245
  deps.error(`Failed to connect to broker: ${err?.message || String(err)}`);
@@ -212,7 +248,7 @@ export function registerMessagingCommands(program, overrides = {}) {
212
248
  return;
213
249
  }
214
250
  try {
215
- await client.sendMessage({
251
+ await brokerClient.sendMessage({
216
252
  to: agent,
217
253
  text: message,
218
254
  from: options.from?.trim() ? options.from.trim() : undefined,
@@ -225,7 +261,7 @@ export function registerMessagingCommands(program, overrides = {}) {
225
261
  deps.exit(1);
226
262
  }
227
263
  finally {
228
- await client.shutdown().catch(() => undefined);
264
+ await brokerClient.shutdown().catch(() => undefined);
229
265
  }
230
266
  });
231
267
  program
@@ -277,6 +313,156 @@ export function registerMessagingCommands(program, overrides = {}) {
277
313
  .action(async (options) => {
278
314
  const limit = Number.parseInt(options.limit ?? '50', 10) || 50;
279
315
  const sinceTs = parseSince(options.since);
316
+ if (options.from && !options.to) {
317
+ // Cross-context sender history: channel messages + DMs sent by this agent
318
+ const channelItems = [];
319
+ const dmItems = [];
320
+ // Part 1: channel messages from this agent
321
+ try {
322
+ const channelClient = await deps.createRelaycastClient({
323
+ agentName: '__cli_history__',
324
+ cwd: deps.getProjectRoot(),
325
+ });
326
+ const raw = (await channelClient.messages('general', { limit: Math.max(limit * 2, 100) }))
327
+ .map(normalizeMessage)
328
+ .filter(isPresent)
329
+ .filter((msg) => msg.agentName === options.from)
330
+ .filter((msg) => !sinceTs || Date.parse(msg.createdAt) >= sinceTs)
331
+ .slice(0, limit);
332
+ for (const msg of raw) {
333
+ channelItems.push({ ts: msg.createdAt, to: '#general', text: msg.text, kind: 'channel' });
334
+ }
335
+ }
336
+ catch {
337
+ // non-fatal — continue to DM section
338
+ }
339
+ // Part 2: DM messages sent by this agent
340
+ try {
341
+ const dmClient = await deps.createRelaycastClient({
342
+ agentName: options.from,
343
+ cwd: deps.getProjectRoot(),
344
+ });
345
+ const conversations = await dmClient.dms.conversations();
346
+ const perConvLimit = Math.max(Math.ceil(limit / Math.max(conversations.length, 1)), 10);
347
+ for (const conv of conversations.slice(0, 10)) {
348
+ const msgs = await dmClient.dms.messages(conv.id, { limit: perConvLimit });
349
+ const recipient = conv.participants
350
+ .filter((p) => (p.agentName || p.agent_name) !== options.from)
351
+ .map((p) => p.agentName || p.agent_name)
352
+ .join(', ') || '(self)';
353
+ for (const m of msgs) {
354
+ const sender = m.agentName || m.agent_name;
355
+ if (sender !== options.from)
356
+ continue;
357
+ const ts = m.createdAt || m.created_at || '';
358
+ if (sinceTs && Date.parse(ts) < sinceTs)
359
+ continue;
360
+ dmItems.push({ ts, to: recipient, text: m.text, kind: 'dm' });
361
+ }
362
+ }
363
+ }
364
+ catch {
365
+ // non-fatal — continue with channel results only
366
+ }
367
+ const allItems = [...channelItems, ...dmItems].sort((a, b) => Date.parse(a.ts) - Date.parse(b.ts));
368
+ if (options.json) {
369
+ deps.log(JSON.stringify(allItems.map((item) => ({
370
+ from: options.from,
371
+ to: item.to,
372
+ text: item.text,
373
+ createdAt: item.ts,
374
+ kind: item.kind,
375
+ })), null, 2));
376
+ return;
377
+ }
378
+ if (!allItems.length) {
379
+ deps.log('No messages found.');
380
+ return;
381
+ }
382
+ allItems.forEach((item) => {
383
+ const body = item.text.length > 200 ? item.text.slice(0, 197) + '...' : item.text;
384
+ if (item.kind === 'dm') {
385
+ deps.log('[' + item.ts + '] ' + options.from + ' -> ' + item.to + ' (DM): ' + body);
386
+ }
387
+ else {
388
+ deps.log('[' + item.ts + '] ' + options.from + ' -> ' + item.to + ': ' + body);
389
+ }
390
+ });
391
+ return;
392
+ }
393
+ if (options.to && !options.to.startsWith('#')) {
394
+ // DM history mode: register as the target agent and show their conversations
395
+ let dmClient;
396
+ try {
397
+ dmClient = await deps.createRelaycastClient({
398
+ agentName: options.to,
399
+ cwd: deps.getProjectRoot(),
400
+ });
401
+ }
402
+ catch (err) {
403
+ deps.error(`Failed to initialize relaycast client: ${err?.message || String(err)}`);
404
+ deps.exit(1);
405
+ return;
406
+ }
407
+ try {
408
+ const conversations = await dmClient.dms.conversations();
409
+ if (options.from) {
410
+ // Show messages in the specific conversation with --from agent
411
+ const conv = conversations.find((c) => c.participants.some((p) => (p.agentName || p.agent_name) === options.from));
412
+ if (!conv) {
413
+ deps.log(`No DM conversation found between ${options.to} and ${options.from}.`);
414
+ return;
415
+ }
416
+ const messages = await dmClient.dms.messages(conv.id, { limit });
417
+ if (options.json) {
418
+ deps.log(JSON.stringify(messages.map((m) => ({
419
+ id: m.id,
420
+ from: m.agentName || m.agent_name || 'unknown',
421
+ text: m.text,
422
+ createdAt: m.createdAt || m.created_at,
423
+ })), null, 2));
424
+ return;
425
+ }
426
+ if (!messages.length) {
427
+ deps.log('No messages found.');
428
+ return;
429
+ }
430
+ messages.forEach((m) => {
431
+ const sender = m.agentName || m.agent_name || 'unknown';
432
+ const ts = m.createdAt || m.created_at || '';
433
+ const body = m.text.length > 200 ? `${m.text.slice(0, 197)}...` : m.text;
434
+ deps.log(`[${ts}] ${sender}: ${body}`);
435
+ });
436
+ }
437
+ else {
438
+ // Show all conversations summary
439
+ if (options.json) {
440
+ deps.log(JSON.stringify(conversations, null, 2));
441
+ return;
442
+ }
443
+ if (!conversations.length) {
444
+ deps.log(`No DM conversations found for ${options.to}.`);
445
+ return;
446
+ }
447
+ deps.log(`DM conversations for ${options.to}:`);
448
+ conversations.forEach((conv) => {
449
+ const others = conv.participants
450
+ .filter((p) => (p.agentName || p.agent_name) !== options.to)
451
+ .map((p) => p.agentName || p.agent_name)
452
+ .join(', ');
453
+ const lastText = (conv.lastMessage || conv.last_message)?.text ?? '(no messages)';
454
+ const preview = lastText.length > 60 ? `${lastText.slice(0, 57)}...` : lastText;
455
+ const unread = conv.unreadCount ?? conv.unread_count ?? 0;
456
+ deps.log(` ${others || '(self)'}: "${preview}" [${unread} unread]`);
457
+ });
458
+ }
459
+ }
460
+ catch (err) {
461
+ deps.error(`Failed to fetch DM history: ${err?.message || String(err)}`);
462
+ deps.exit(1);
463
+ }
464
+ return;
465
+ }
280
466
  let relaycast;
281
467
  try {
282
468
  relaycast = await deps.createRelaycastClient({
@@ -290,7 +476,7 @@ export function registerMessagingCommands(program, overrides = {}) {
290
476
  return;
291
477
  }
292
478
  try {
293
- const channel = options.to?.startsWith('#') ? options.to.slice(1) : 'general';
479
+ const channel = options.to ? options.to.slice(1) : 'general';
294
480
  const messages = (await relaycast.messages(channel, {
295
481
  limit: Math.max(limit * 2, 100),
296
482
  }))
@@ -338,12 +524,13 @@ export function registerMessagingCommands(program, overrides = {}) {
338
524
  program
339
525
  .command('inbox')
340
526
  .description('Show unread inbox summary')
527
+ .option('--agent <name>', 'Agent whose inbox to check (defaults to cli user)')
341
528
  .option('--json', 'Output as JSON')
342
529
  .action(async (options) => {
343
530
  let relaycast;
344
531
  try {
345
532
  relaycast = await deps.createRelaycastClient({
346
- agentName: '__cli_inbox__',
533
+ agentName: options.agent?.trim() || '__cli_inbox__',
347
534
  cwd: deps.getProjectRoot(),
348
535
  });
349
536
  }
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../../../src/cli/commands/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../../../src/cli/commands/messaging.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,17 @@ export interface InteractiveSessionResult {
30
30
  exitSignal: string | null;
31
31
  authDetected: boolean;
32
32
  }
33
+ /**
34
+ * Format a remote command for execution inside an ssh2 shell() PTY.
35
+ *
36
+ * Wraps the command in `exec sh -c '…'` so the PTY closes cleanly when the
37
+ * target CLI exits (no shell-teardown race with a TUI's alt-screen flush)
38
+ * while still letting `sh` parse leading prefix assignments like
39
+ * `PATH=/foo/bin claude`. A bare `exec PATH=… claude` does not work in zsh
40
+ * because zsh's exec builtin treats `PATH=…` as the command name instead of
41
+ * a prefix assignment.
42
+ */
43
+ export declare function formatShellInvocation(command: string): string;
33
44
  /**
34
45
  * Run an interactive SSH session with PTY.
35
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ssh-interactive.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/ssh-interactive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC3G,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,iBAAiB,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE;QAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB;AAuCD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAwSnC"}
1
+ {"version":3,"file":"ssh-interactive.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/ssh-interactive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC3G,OAAO,EAAqD,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAIvG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,iBAAiB,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE;QAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB;AA0CD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAmTnC"}
@@ -7,7 +7,7 @@
7
7
  import { createServer } from 'node:net';
8
8
  import { spawn as spawnProcess } from 'node:child_process';
9
9
  import { stripAnsiCodes, findMatchingError } from '@agent-relay/config/cli-auth-config';
10
- import { loadSSH2, createAskpassScript, buildSystemSshArgs, } from './auth-ssh.js';
10
+ import { loadSSH2, createAskpassScript, buildSystemSshArgs } from './auth-ssh.js';
11
11
  // ── Helpers ──────────────────────────────────────────────────────────────────
12
12
  const color = {
13
13
  cyan: (s) => `\x1b[36m${s}\x1b[0m`,
@@ -40,6 +40,20 @@ const DEFAULT_RUNTIME = {
40
40
  createServer,
41
41
  setTimeout,
42
42
  };
43
+ /**
44
+ * Format a remote command for execution inside an ssh2 shell() PTY.
45
+ *
46
+ * Wraps the command in `exec sh -c '…'` so the PTY closes cleanly when the
47
+ * target CLI exits (no shell-teardown race with a TUI's alt-screen flush)
48
+ * while still letting `sh` parse leading prefix assignments like
49
+ * `PATH=/foo/bin claude`. A bare `exec PATH=… claude` does not work in zsh
50
+ * because zsh's exec builtin treats `PATH=…` as the command name instead of
51
+ * a prefix assignment.
52
+ */
53
+ export function formatShellInvocation(command) {
54
+ const escaped = command.replace(/'/g, `'\\''`);
55
+ return `exec sh -c '${escaped}'\n`;
56
+ }
43
57
  /**
44
58
  * Run an interactive SSH session with PTY.
45
59
  *
@@ -48,7 +62,7 @@ const DEFAULT_RUNTIME = {
48
62
  * Monitors output for success/error patterns.
49
63
  */
50
64
  export async function runInteractiveSession(options) {
51
- const { ssh, remoteCommand, successPatterns, errorPatterns, timeoutMs, io, tunnelPort = 1455, } = options;
65
+ const { ssh, remoteCommand, successPatterns, errorPatterns, timeoutMs, io, tunnelPort = 1455 } = options;
52
66
  const runtime = { ...DEFAULT_RUNTIME, ...options.runtime };
53
67
  const ssh2 = await runtime.loadSSH2();
54
68
  let execResult = null;
@@ -119,23 +133,19 @@ export async function runInteractiveSession(options) {
119
133
  sshClient.shell({ term, cols, rows }, (err, stream) => {
120
134
  if (err)
121
135
  return reject(err);
122
- // Send the command through the shell, then exit with its status
123
- stream.write(`${command}; exit $?\n`);
124
136
  let exitCode = null;
125
137
  let exitSignal = null;
126
138
  let authDetected = false;
127
139
  let outputBuffer = '';
140
+ // Don't match success/error patterns against shell MOTD — some
141
+ // sandbox images print "Last logged in: …" which would match the
142
+ // broad `/logged\s*in/i` success pattern before the target CLI
143
+ // even runs.
144
+ let patternMatchingEnabled = false;
128
145
  const stdin = process.stdin;
129
146
  const stdout = process.stdout;
130
147
  const stderr = process.stderr;
131
148
  const wasRaw = stdin.isRaw ?? false;
132
- try {
133
- stdin.setRawMode?.(true);
134
- }
135
- catch {
136
- // ignore
137
- }
138
- stdin.resume();
139
149
  const onStdinData = (data) => {
140
150
  if (authDetected && (data[0] === 0x1b || data[0] === 0x03)) {
141
151
  cleanup();
@@ -150,7 +160,6 @@ export async function runInteractiveSession(options) {
150
160
  }
151
161
  stream.write(data);
152
162
  };
153
- stdin.on('data', onStdinData);
154
163
  const cleanup = () => {
155
164
  stdin.off('data', onStdinData);
156
165
  stdout.off('resize', onResize);
@@ -175,7 +184,7 @@ export async function runInteractiveSession(options) {
175
184
  if (outputBuffer.length > 8192) {
176
185
  outputBuffer = outputBuffer.slice(-8192);
177
186
  }
178
- if (!authDetected && successPatterns.length > 0) {
187
+ if (patternMatchingEnabled && !authDetected && successPatterns.length > 0) {
179
188
  const clean = stripAnsiCodes(outputBuffer);
180
189
  for (const pattern of successPatterns) {
181
190
  if (pattern.test(clean)) {
@@ -184,7 +193,7 @@ export async function runInteractiveSession(options) {
184
193
  }
185
194
  }
186
195
  }
187
- if (!authDetected && errorPatterns.length > 0) {
196
+ if (patternMatchingEnabled && !authDetected && errorPatterns.length > 0) {
188
197
  const matched = findMatchingError(outputBuffer, errorPatterns);
189
198
  if (matched) {
190
199
  clearTimeout(timer);
@@ -210,17 +219,6 @@ export async function runInteractiveSession(options) {
210
219
  // ignore
211
220
  }
212
221
  };
213
- stdout.on('resize', onResize);
214
- const timer = runtime.setTimeout(() => {
215
- cleanup();
216
- try {
217
- stream.close();
218
- }
219
- catch {
220
- // ignore
221
- }
222
- reject(new Error(`Authentication timed out after ${Math.floor(commandTimeoutMs / 1000)}s`));
223
- }, commandTimeoutMs);
224
222
  stream.on('exit', (code, signal) => {
225
223
  if (typeof code === 'number')
226
224
  exitCode = code;
@@ -237,6 +235,30 @@ export async function runInteractiveSession(options) {
237
235
  cleanup();
238
236
  reject(streamErr instanceof Error ? streamErr : new Error(String(streamErr)));
239
237
  });
238
+ stdout.on('resize', onResize);
239
+ stdin.on('data', onStdinData);
240
+ try {
241
+ stdin.setRawMode?.(true);
242
+ }
243
+ catch {
244
+ // ignore
245
+ }
246
+ stdin.resume();
247
+ const timer = runtime.setTimeout(() => {
248
+ cleanup();
249
+ try {
250
+ stream.close();
251
+ }
252
+ catch {
253
+ // ignore
254
+ }
255
+ reject(new Error(`Authentication timed out after ${Math.floor(commandTimeoutMs / 1000)}s`));
256
+ }, commandTimeoutMs);
257
+ stream.write(formatShellInvocation(command));
258
+ // Reset the output buffer so pattern matching only considers output
259
+ // produced by the command we just wrote, not the shell's MOTD.
260
+ outputBuffer = '';
261
+ patternMatchingEnabled = true;
240
262
  });
241
263
  });
242
264
  try {
@@ -311,10 +333,15 @@ export async function runInteractiveSession(options) {
311
333
  }
312
334
  }
313
335
  }
336
+ // Authentication is only considered successful when the interactive session
337
+ // reported a positive pattern match. A shell exit code of 0 is NOT trusted:
338
+ // zsh stays alive after a failed `exec` in interactive mode, and a user
339
+ // closing the session with Ctrl+D produces exit 0 even though nothing was
340
+ // authenticated. Callers currently always supply `successPatterns`.
314
341
  return {
315
342
  exitCode: execError ? 1 : (execResult?.exitCode ?? null),
316
343
  exitSignal: execResult?.exitSignal ?? null,
317
- authDetected: execError === null && (execResult?.authDetected === true || execResult?.exitCode === 0),
344
+ authDetected: execError === null && execResult?.authDetected === true,
318
345
  };
319
346
  }
320
347
  //# sourceMappingURL=ssh-interactive.js.map