agent-relay 4.0.31 → 4.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  2. package/bin/agent-relay-broker-darwin-x64 +0 -0
  3. package/bin/agent-relay-broker-linux-arm64 +0 -0
  4. package/bin/agent-relay-broker-linux-x64 +0 -0
  5. package/dist/index.cjs +210 -75
  6. package/node_modules/@agent-relay/cloud/package.json +2 -2
  7. package/node_modules/@agent-relay/config/package.json +1 -1
  8. package/node_modules/@agent-relay/hooks/package.json +4 -4
  9. package/node_modules/@agent-relay/sdk/README.md +3 -0
  10. package/node_modules/@agent-relay/sdk/dist/relay.d.ts +16 -0
  11. package/node_modules/@agent-relay/sdk/dist/relay.d.ts.map +1 -1
  12. package/node_modules/@agent-relay/sdk/dist/relay.js +83 -0
  13. package/node_modules/@agent-relay/sdk/dist/relay.js.map +1 -1
  14. package/node_modules/@agent-relay/sdk/package.json +2 -2
  15. package/node_modules/@agent-relay/telemetry/package.json +1 -1
  16. package/node_modules/@agent-relay/trajectory/package.json +2 -2
  17. package/node_modules/@agent-relay/user-directory/package.json +2 -2
  18. package/node_modules/@agent-relay/utils/package.json +2 -2
  19. package/node_modules/agent-trajectories/dist/{chunk-2XT3DOJC.js → chunk-27AQPWHK.js} +136 -72
  20. package/node_modules/agent-trajectories/dist/chunk-27AQPWHK.js.map +1 -0
  21. package/node_modules/agent-trajectories/dist/cli/index.js +135 -71
  22. package/node_modules/agent-trajectories/dist/cli/index.js.map +1 -1
  23. package/node_modules/agent-trajectories/dist/{index-thTh5iI8.d.ts → index-C7XhwsoN.d.ts} +24 -0
  24. package/node_modules/agent-trajectories/dist/index.d.ts +2 -2
  25. package/node_modules/agent-trajectories/dist/index.js +1 -1
  26. package/node_modules/agent-trajectories/dist/sdk/index.d.ts +1 -1
  27. package/node_modules/agent-trajectories/dist/sdk/index.js +1 -1
  28. package/node_modules/agent-trajectories/package.json +1 -1
  29. package/package.json +9 -9
  30. package/packages/cloud/package.json +2 -2
  31. package/packages/config/package.json +1 -1
  32. package/packages/hooks/package.json +4 -4
  33. package/packages/sdk/README.md +3 -0
  34. package/packages/sdk/dist/relay.d.ts +16 -0
  35. package/packages/sdk/dist/relay.d.ts.map +1 -1
  36. package/packages/sdk/dist/relay.js +83 -0
  37. package/packages/sdk/dist/relay.js.map +1 -1
  38. package/packages/sdk/package.json +2 -2
  39. package/packages/telemetry/package.json +1 -1
  40. package/packages/trajectory/package.json +2 -2
  41. package/packages/user-directory/package.json +2 -2
  42. package/packages/utils/package.json +2 -2
  43. package/node_modules/agent-trajectories/dist/chunk-2XT3DOJC.js.map +0 -1
@@ -1007,7 +1007,31 @@ declare class FileStorage implements StorageAdapter {
1007
1007
  * console — so nothing leaks into test output or the CLI spinner.
1008
1008
  */
1009
1009
  private readTrajectoryOrNull;
1010
+ /**
1011
+ * Read and parse the on-disk index.
1012
+ *
1013
+ * Tolerances (belt-and-braces against the read/write race):
1014
+ * - ENOENT: first-run, return an empty index silently.
1015
+ * - Empty file: a concurrent writer truncated index.json in "w" mode
1016
+ * right before we read. Return an empty index silently — this is
1017
+ * not a real corruption, just an interleaving the mutex + atomic
1018
+ * rename should already prevent. Logging here would be noise.
1019
+ * - Non-empty but malformed JSON: genuinely corrupted on disk (hand
1020
+ * edit, disk error, etc). Log it and return an empty index so the
1021
+ * caller can recover, but keep the log so the problem is visible.
1022
+ */
1010
1023
  private loadIndex;
1024
+ private emptyIndex;
1025
+ /**
1026
+ * Atomic write: stage into a process-unique temp path in the same directory
1027
+ * and then rename over the live file. `rename` is atomic on POSIX, so
1028
+ * concurrent readers in any process either see the old complete file or
1029
+ * the new complete file — never a half-written / zero-byte state.
1030
+ *
1031
+ * Callers MUST hold `withIndexLock(this.indexPath, ...)` so the in-process
1032
+ * read-modify-write cycle stays serialized; the unique temp name also keeps
1033
+ * parallel writers in other processes from colliding on a shared tmp path.
1034
+ */
1011
1035
  private saveIndex;
1012
1036
  private updateIndex;
1013
1037
  }
@@ -1,5 +1,5 @@
1
- import { T as Trajectory } from './index-thTh5iI8.js';
2
- export { A as AddChapterInput, a as AddEventInput, b as AgentParticipation, C as Chapter, c as ChapterSchema, d as CommitInfo, e as CompleteTrajectoryInput, f as CreateTrajectoryInput, D as Decision, g as DecisionSchema, E as EventSignificance, F as FileStorage, R as Retrospective, h as RetrospectiveSchema, S as StorageAdapter, i as StorageConfig, j as TRAJECTORY_TRAILER_KEY, k as TaskReference, l as TaskSource, m as TrajectoryBuilder, n as TrajectoryClient, o as TrajectoryClientOptions, p as TrajectoryError, q as TrajectoryEvent, r as TrajectoryEventSchema, s as TrajectoryEventType, t as TrajectoryQuery, u as TrajectorySchema, v as TrajectorySession, w as TrajectoryStatus, x as TrajectorySummary, y as abandonTrajectory, z as addChapter, B as addDecision, G as addEvent, H as completeTrajectory, I as createTrajectory, J as formatTrailer, K as getCommitsBetween, L as getFilesChangedBetween, M as getTrajectoryFromCommit, N as parseTrajectoryFromMessage, O as trajectory, P as validateCompleteInput, Q as validateCreateInput, U as validateTrajectory } from './index-thTh5iI8.js';
1
+ import { T as Trajectory } from './index-C7XhwsoN.js';
2
+ export { A as AddChapterInput, a as AddEventInput, b as AgentParticipation, C as Chapter, c as ChapterSchema, d as CommitInfo, e as CompleteTrajectoryInput, f as CreateTrajectoryInput, D as Decision, g as DecisionSchema, E as EventSignificance, F as FileStorage, R as Retrospective, h as RetrospectiveSchema, S as StorageAdapter, i as StorageConfig, j as TRAJECTORY_TRAILER_KEY, k as TaskReference, l as TaskSource, m as TrajectoryBuilder, n as TrajectoryClient, o as TrajectoryClientOptions, p as TrajectoryError, q as TrajectoryEvent, r as TrajectoryEventSchema, s as TrajectoryEventType, t as TrajectoryQuery, u as TrajectorySchema, v as TrajectorySession, w as TrajectoryStatus, x as TrajectorySummary, y as abandonTrajectory, z as addChapter, B as addDecision, G as addEvent, H as completeTrajectory, I as createTrajectory, J as formatTrailer, K as getCommitsBetween, L as getFilesChangedBetween, M as getTrajectoryFromCommit, N as parseTrajectoryFromMessage, O as trajectory, P as validateCompleteInput, Q as validateCreateInput, U as validateTrajectory } from './index-C7XhwsoN.js';
3
3
  import 'zod';
4
4
 
5
5
  /**
@@ -33,7 +33,7 @@ import {
33
33
  validateCompleteInput,
34
34
  validateCreateInput,
35
35
  validateTrajectory
36
- } from "./chunk-2XT3DOJC.js";
36
+ } from "./chunk-27AQPWHK.js";
37
37
  export {
38
38
  ChapterSchema,
39
39
  DecisionSchema,
@@ -1,2 +1,2 @@
1
- export { A as AddChapterInput, a as AddEventInput, b as AgentParticipation, V as Alternative, C as Chapter, d as CommitInfo, e as CompleteTrajectoryInput, f as CreateTrajectoryInput, D as Decision, E as EventSignificance, F as FileStorage, W as Finding, X as FindingCategory, R as Retrospective, S as StorageAdapter, i as StorageConfig, j as TRAJECTORY_TRAILER_KEY, k as TaskReference, l as TaskSource, T as Trajectory, m as TrajectoryBuilder, n as TrajectoryClient, o as TrajectoryClientOptions, p as TrajectoryError, q as TrajectoryEvent, s as TrajectoryEventType, t as TrajectoryQuery, u as TrajectorySchema, v as TrajectorySession, w as TrajectoryStatus, x as TrajectorySummary, Y as compactWorkflow, J as formatTrailer, K as getCommitsBetween, L as getFilesChangedBetween, M as getTrajectoryFromCommit, N as parseTrajectoryFromMessage, O as trajectory, P as validateCompleteInput, Q as validateCreateInput, U as validateTrajectory } from '../index-thTh5iI8.js';
1
+ export { A as AddChapterInput, a as AddEventInput, b as AgentParticipation, V as Alternative, C as Chapter, d as CommitInfo, e as CompleteTrajectoryInput, f as CreateTrajectoryInput, D as Decision, E as EventSignificance, F as FileStorage, W as Finding, X as FindingCategory, R as Retrospective, S as StorageAdapter, i as StorageConfig, j as TRAJECTORY_TRAILER_KEY, k as TaskReference, l as TaskSource, T as Trajectory, m as TrajectoryBuilder, n as TrajectoryClient, o as TrajectoryClientOptions, p as TrajectoryError, q as TrajectoryEvent, s as TrajectoryEventType, t as TrajectoryQuery, u as TrajectorySchema, v as TrajectorySession, w as TrajectoryStatus, x as TrajectorySummary, Y as compactWorkflow, J as formatTrailer, K as getCommitsBetween, L as getFilesChangedBetween, M as getTrajectoryFromCommit, N as parseTrajectoryFromMessage, O as trajectory, P as validateCompleteInput, Q as validateCreateInput, U as validateTrajectory } from '../index-C7XhwsoN.js';
2
2
  import 'zod';
@@ -16,7 +16,7 @@ import {
16
16
  validateCompleteInput,
17
17
  validateCreateInput,
18
18
  validateTrajectory
19
- } from "../chunk-2XT3DOJC.js";
19
+ } from "../chunk-27AQPWHK.js";
20
20
  export {
21
21
  FileStorage,
22
22
  TRAJECTORY_TRAILER_KEY,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-trajectories",
3
- "version": "0.5.6",
3
+ "version": "0.5.7",
4
4
  "description": "Capture the complete train of thought of agent work as first-class artifacts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-relay",
3
- "version": "4.0.31",
3
+ "version": "4.0.32",
4
4
  "description": "Real-time agent-to-agent communication system",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -196,14 +196,14 @@
196
196
  },
197
197
  "homepage": "https://github.com/AgentWorkforce/relay#readme",
198
198
  "dependencies": {
199
- "@agent-relay/cloud": "4.0.31",
200
- "@agent-relay/config": "4.0.31",
201
- "@agent-relay/hooks": "4.0.31",
202
- "@agent-relay/sdk": "4.0.31",
203
- "@agent-relay/telemetry": "4.0.31",
204
- "@agent-relay/trajectory": "4.0.31",
205
- "@agent-relay/user-directory": "4.0.31",
206
- "@agent-relay/utils": "4.0.31",
199
+ "@agent-relay/cloud": "4.0.32",
200
+ "@agent-relay/config": "4.0.32",
201
+ "@agent-relay/hooks": "4.0.32",
202
+ "@agent-relay/sdk": "4.0.32",
203
+ "@agent-relay/telemetry": "4.0.32",
204
+ "@agent-relay/trajectory": "4.0.32",
205
+ "@agent-relay/user-directory": "4.0.32",
206
+ "@agent-relay/utils": "4.0.32",
207
207
  "@aws-sdk/client-s3": "3.1020.0",
208
208
  "@modelcontextprotocol/sdk": "^1.0.0",
209
209
  "@relayauth/core": "^0.1.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/cloud",
3
- "version": "4.0.31",
3
+ "version": "4.0.32",
4
4
  "description": "Cloud SDK for Agent Relay — auth, workflow execution, and provider connections",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "test:watch": "vitest"
24
24
  },
25
25
  "dependencies": {
26
- "@agent-relay/config": "4.0.31",
26
+ "@agent-relay/config": "4.0.32",
27
27
  "@aws-sdk/client-s3": "3.1020.0",
28
28
  "ignore": "^7.0.5",
29
29
  "tar": "^7.5.10"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/config",
3
- "version": "4.0.31",
3
+ "version": "4.0.32",
4
4
  "description": "Shared configuration schemas and loaders for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/hooks",
3
- "version": "4.0.31",
3
+ "version": "4.0.32",
4
4
  "description": "Hook emitter, registry, and trajectory hooks for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,9 +37,9 @@
37
37
  "test:watch": "vitest"
38
38
  },
39
39
  "dependencies": {
40
- "@agent-relay/config": "4.0.31",
41
- "@agent-relay/trajectory": "4.0.31",
42
- "@agent-relay/sdk": "4.0.31"
40
+ "@agent-relay/config": "4.0.32",
41
+ "@agent-relay/trajectory": "4.0.32",
42
+ "@agent-relay/sdk": "4.0.32"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.19.3",
@@ -38,6 +38,9 @@ const relay = new AgentRelay();
38
38
  // Event hooks
39
39
  relay.onMessageReceived = (msg) => console.log(`${msg.from}: ${msg.text}`);
40
40
  relay.onAgentIdle = ({ name, idleSecs }) => console.log(`${name} idle for ${idleSecs}s`);
41
+ relay.onAgentActivityChanged = ({ name, active, pendingDeliveries }) => {
42
+ updateThinkingBadge(name, active ? `Thinking (${pendingDeliveries})` : 'Idle');
43
+ };
41
44
 
42
45
  // Spawn agents using shorthand spawners
43
46
  const worker = await relay.claude.spawn({
@@ -49,6 +49,14 @@ export interface DeliveryState {
49
49
  status: DeliveryStateStatus;
50
50
  updatedAt: number;
51
51
  }
52
+ export type AgentActivityReason = 'delivery_queued' | 'delivery_injected' | 'delivery_active' | 'delivery_ack' | 'delivery_failed' | 'relay_inbound' | 'agent_idle' | 'agent_exited' | 'agent_released';
53
+ export interface AgentActivityChange {
54
+ name: string;
55
+ active: boolean;
56
+ pendingDeliveries: number;
57
+ reason: AgentActivityReason;
58
+ eventId?: string;
59
+ }
52
60
  export interface SpawnLifecycleContext {
53
61
  name: string;
54
62
  cli: string;
@@ -227,6 +235,7 @@ export declare class AgentRelay {
227
235
  name: string;
228
236
  idleSecs: number;
229
237
  }>;
238
+ onAgentActivityChanged: EventHook<AgentActivityChange>;
230
239
  onChannelSubscribed: ((agent: string, channels: string[]) => void) | null;
231
240
  onChannelUnsubscribed: ((agent: string, channels: string[]) => void) | null;
232
241
  /** The resolved Relaycast workspace API key (available after first spawn). */
@@ -254,6 +263,7 @@ export declare class AgentRelay {
254
263
  private readonly exitedAgents;
255
264
  private readonly idleAgents;
256
265
  private readonly deliveryStates;
266
+ private readonly agentActivityStates;
257
267
  private readonly outputListeners;
258
268
  private readonly exitResolvers;
259
269
  private exitResolverSeq;
@@ -367,6 +377,12 @@ export declare class AgentRelay {
367
377
  shutdown(): Promise<void>;
368
378
  private ensureAgentHandle;
369
379
  private updateDeliveryState;
380
+ private ensureAgentActivityState;
381
+ private getDeliveryActivityKey;
382
+ private markAgentDeliveryPending;
383
+ private closeAgentDelivery;
384
+ private clearAgentDeliveries;
385
+ private setAgentActivity;
370
386
  private resolveEventTimestamp;
371
387
  private addAgentChannels;
372
388
  private removeAgentChannels;
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,OAAO,EAAoB,KAAK,wBAAwB,EAA+B,MAAM,aAAa,CAAC;AAE3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EAEZ,oBAAoB,EACpB,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;AA8FnB,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC3F,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IACvE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,cAAe,SAAQ,qBAAqB;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;kEAC8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;qFACiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,KAAK,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC;AAE5F,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD;;4FAEwF;IACxF,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;IAC5E;;oFAEgF;IAChF,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IACxE,WAAW,CAAC,KAAK,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,oBAAoB,CAAC;KAC7B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C;;;OAGG;IACH,QAAQ,CACN,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KAAE,GAC3D,MAAM,IAAI,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,KAAK,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,oBAAoB,CAAC;KAC7B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;kEAC8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;qFACiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD,qBAAa,UAAU;IAErB,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAQ;IAC7C,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAQ;IACzC,cAAc,EAAE,SAAS,CAAC,KAAK,CAAC,CAAQ;IACxC,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,CAAQ;IACzC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAQ;IACvC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,CAAQ;IACtC,cAAc,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAQ;IAClF,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAQ;IAChD,oBAAoB,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAQ;IACzE,WAAW,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAQ;IAClE,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACjF,qBAAqB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAInF,8EAA8E;IAC9E,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,iFAAiF;IACjF,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IAGD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,YAAY,CAAC,CAA4B;IACjD,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;IACJ,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;IACJ,OAAO,CAAC,eAAe,CAAK;gBAEhB,OAAO,GAAE,iBAAsB;IA4B3C,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,qBAAqB;IAqC7B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;YAeX,8BAA8B;IAa5C;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAStD,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC;IA4DpE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IAsBvF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC;IAW1G,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IA0C1C,MAAM,IAAI,WAAW;IAMrB;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtE,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuDhG,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAYpC,0EAA0E;IACpE,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlF,uEAAuE;IACjE,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAO/D,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAKlC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,WAAW,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAM5D;;;;;;;;OAQG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAMnF,2CAA2C;IACrC,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM3C;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAG,eAAe;IAQ3F;;;;;;;;;OASG;WACU,UAAU,CACrB,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;KAAE,CAAC;IAYvE;;;;OAIG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAsDnE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAgErE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC/B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,mBAAmB;IAO3B;;8DAE0D;IAC1D,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAatB;;;;;;;OAOG;YACW,qBAAqB;IAiDnC,wFAAwF;IACxF,OAAO,CAAC,oBAAoB;YAMd,aAAa;IAgD3B,OAAO,CAAC,UAAU;IAkJlB,OAAO,CAAC,SAAS;IAoNjB,OAAO,CAAC,aAAa;YA8EP,mBAAmB;IAejC,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,uBAAuB;CAMhC"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,7 @@ export class AgentRelay {
103
103
  onDeliveryUpdate = null;
104
104
  onAgentExitRequested = null;
105
105
  onAgentIdle = null;
106
+ onAgentActivityChanged = null;
106
107
  onChannelSubscribed = null;
107
108
  onChannelUnsubscribed = null;
108
109
  // ── Public accessors ────────────────────────────────────────────────────
@@ -138,6 +139,7 @@ export class AgentRelay {
138
139
  exitedAgents = new Set();
139
140
  idleAgents = new Set();
140
141
  deliveryStates = new Map();
142
+ agentActivityStates = new Map();
141
143
  outputListeners = new Map();
142
144
  exitResolvers = new Map();
143
145
  exitResolverSeq = 0;
@@ -691,6 +693,7 @@ export class AgentRelay {
691
693
  this.exitedAgents.clear();
692
694
  this.idleAgents.clear();
693
695
  this.deliveryStates.clear();
696
+ this.agentActivityStates.clear();
694
697
  this.outputListeners.clear();
695
698
  for (const entry of this.exitResolvers.values()) {
696
699
  entry.resolve('released');
@@ -714,6 +717,70 @@ export class AgentRelay {
714
717
  updateDeliveryState(eventId, to, status, updatedAt) {
715
718
  this.deliveryStates.set(eventId, { eventId, to, status, updatedAt });
716
719
  }
720
+ ensureAgentActivityState(name) {
721
+ const existing = this.agentActivityStates.get(name);
722
+ if (existing) {
723
+ return existing;
724
+ }
725
+ const state = {
726
+ active: false,
727
+ pendingDeliveries: new Map(),
728
+ };
729
+ this.agentActivityStates.set(name, state);
730
+ return state;
731
+ }
732
+ getDeliveryActivityKey(deliveryId, eventId) {
733
+ return deliveryId || eventId;
734
+ }
735
+ markAgentDeliveryPending(name, deliveryId, eventId, reason) {
736
+ const state = this.ensureAgentActivityState(name);
737
+ state.pendingDeliveries.set(this.getDeliveryActivityKey(deliveryId, eventId), eventId);
738
+ this.setAgentActivity(name, state, state.pendingDeliveries.size > 0, reason, eventId);
739
+ }
740
+ closeAgentDelivery(name, reason, eventId, deliveryId) {
741
+ const state = this.agentActivityStates.get(name);
742
+ if (!state)
743
+ return;
744
+ const key = deliveryId && eventId ? this.getDeliveryActivityKey(deliveryId, eventId) : undefined;
745
+ if (key) {
746
+ state.pendingDeliveries.delete(key);
747
+ }
748
+ else if (eventId) {
749
+ const matchingEntry = Array.from(state.pendingDeliveries.entries()).find(([, pendingEventId]) => {
750
+ return pendingEventId === eventId;
751
+ });
752
+ if (matchingEntry) {
753
+ state.pendingDeliveries.delete(matchingEntry[0]);
754
+ }
755
+ else {
756
+ const oldestKey = state.pendingDeliveries.keys().next().value;
757
+ if (oldestKey) {
758
+ state.pendingDeliveries.delete(oldestKey);
759
+ }
760
+ }
761
+ }
762
+ this.setAgentActivity(name, state, state.pendingDeliveries.size > 0, reason, eventId);
763
+ }
764
+ clearAgentDeliveries(name, reason, eventId) {
765
+ const state = this.agentActivityStates.get(name);
766
+ if (!state)
767
+ return;
768
+ state.pendingDeliveries.clear();
769
+ this.setAgentActivity(name, state, false, reason, eventId);
770
+ }
771
+ setAgentActivity(name, state, active, reason, eventId) {
772
+ if (state.active === active) {
773
+ return;
774
+ }
775
+ state.active = active;
776
+ this.onAgentActivityChanged?.({
777
+ name,
778
+ active,
779
+ pendingDeliveries: state.pendingDeliveries.size,
780
+ reason,
781
+ eventId,
782
+ });
783
+ }
717
784
  resolveEventTimestamp(candidate) {
718
785
  return typeof candidate === 'number' ? candidate : Date.now();
719
786
  }
@@ -878,10 +945,12 @@ export class AgentRelay {
878
945
  this.unsubEvent = client.onEvent((event) => {
879
946
  switch (event.kind) {
880
947
  case 'relay_inbound': {
948
+ this.closeAgentDelivery(event.from, 'relay_inbound', event.event_id);
881
949
  if (this.knownAgents.has(event.from)) {
882
950
  this.messageReadyAgents.add(event.from);
883
951
  this.exitedAgents.delete(event.from);
884
952
  }
953
+ this.clearAgentDeliveries(event.from, 'relay_inbound', event.event_id);
885
954
  const msg = {
886
955
  eventId: event.event_id,
887
956
  from: event.from,
@@ -904,6 +973,7 @@ export class AgentRelay {
904
973
  }
905
974
  case 'agent_released': {
906
975
  const agent = this.knownAgents.get(event.name) ?? this.ensureAgentHandle(event.name, 'pty', []);
976
+ this.clearAgentDeliveries(event.name, 'agent_released');
907
977
  this.exitedAgents.add(event.name);
908
978
  this.readyAgents.delete(event.name);
909
979
  this.messageReadyAgents.delete(event.name);
@@ -919,6 +989,7 @@ export class AgentRelay {
919
989
  }
920
990
  case 'agent_exited': {
921
991
  const agent = this.knownAgents.get(event.name) ?? this.ensureAgentHandle(event.name, 'pty', []);
992
+ this.clearAgentDeliveries(event.name, 'agent_exited');
922
993
  this.exitedAgents.add(event.name);
923
994
  this.readyAgents.delete(event.name);
924
995
  this.messageReadyAgents.delete(event.name);
@@ -960,14 +1031,17 @@ export class AgentRelay {
960
1031
  break;
961
1032
  }
962
1033
  case 'delivery_queued': {
1034
+ this.markAgentDeliveryPending(event.name, event.delivery_id, event.event_id, 'delivery_queued');
963
1035
  this.updateDeliveryState(event.event_id, event.name, 'queued', this.resolveEventTimestamp(event.timestamp));
964
1036
  break;
965
1037
  }
966
1038
  case 'delivery_injected': {
1039
+ this.markAgentDeliveryPending(event.name, event.delivery_id, event.event_id, 'delivery_injected');
967
1040
  this.updateDeliveryState(event.event_id, event.name, 'injected', this.resolveEventTimestamp(event.timestamp));
968
1041
  break;
969
1042
  }
970
1043
  case 'delivery_active': {
1044
+ this.markAgentDeliveryPending(event.name, event.delivery_id, event.event_id, 'delivery_active');
971
1045
  this.updateDeliveryState(event.event_id, event.name, 'active', this.resolveEventTimestamp());
972
1046
  break;
973
1047
  }
@@ -975,7 +1049,14 @@ export class AgentRelay {
975
1049
  this.updateDeliveryState(event.event_id, event.name, 'verified', this.resolveEventTimestamp());
976
1050
  break;
977
1051
  }
1052
+ case 'delivery_ack': {
1053
+ // No-op for activity tracking. delivery_ack can arrive late, after
1054
+ // relay_inbound / idle / exit already cleared activity, so re-adding
1055
+ // pending state here would incorrectly flip the agent back to active.
1056
+ break;
1057
+ }
978
1058
  case 'delivery_failed': {
1059
+ this.closeAgentDelivery(event.name, 'delivery_failed', event.event_id, event.delivery_id);
979
1060
  this.updateDeliveryState(event.event_id, event.name, 'failed', this.resolveEventTimestamp());
980
1061
  break;
981
1062
  }
@@ -992,6 +1073,7 @@ export class AgentRelay {
992
1073
  break;
993
1074
  }
994
1075
  case 'agent_idle': {
1076
+ this.clearAgentDeliveries(event.name, 'agent_idle');
995
1077
  this.idleAgents.add(event.name);
996
1078
  this.onAgentIdle?.({
997
1079
  name: event.name,
@@ -1286,6 +1368,7 @@ export class AgentRelay {
1286
1368
  this.messageReadyAgents.delete(name);
1287
1369
  this.exitedAgents.delete(name);
1288
1370
  this.idleAgents.delete(name);
1371
+ this.agentActivityStates.delete(name);
1289
1372
  }
1290
1373
  normalizeReleaseOptions(reasonOrOptions) {
1291
1374
  if (typeof reasonOrOptions === 'string' || reasonOrOptions === undefined) {