crewly 1.0.0 → 1.0.1
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/config/constants.ts +40 -2
- package/config/skills/_common/lib.sh +2 -1
- package/config/skills/agent/computer-use/execute.sh +151 -0
- package/config/skills/agent/computer-use/instructions.md +60 -0
- package/config/skills/agent/computer-use/skill.json +22 -0
- package/config/skills/agent/heartbeat/execute.sh +22 -0
- package/config/skills/agent/heartbeat/instructions.md +23 -0
- package/config/skills/agent/heartbeat/skill.json +20 -0
- package/config/skills/orchestrator/schedule-check/execute.sh +1 -1
- package/config/skills/orchestrator/send-pdf-to-slack/execute.sh +28 -5
- package/config/skills/orchestrator/send-pdf-to-slack/instructions.md +49 -10
- package/config/skills/orchestrator/send-pdf-to-slack/skill.json +1 -1
- package/config/skills/orchestrator/subscribe-event/execute.sh +2 -2
- package/dist/backend/backend/src/constants.d.ts +24 -2
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +13 -3
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/session/session.controller.js +16 -7
- package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +27 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +7 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +131 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.d.ts +3 -2
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js +8 -2
- package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +185 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +508 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat.service.d.ts +5 -5
- package/dist/backend/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js +3 -3
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +36 -13
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.d.ts +24 -3
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.js +15 -3
- package/dist/backend/backend/src/services/agent/disk-cleanup.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +18 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +7 -2
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +11 -3
- package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +42 -0
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +190 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js +2 -2
- package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +13 -19
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +129 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +253 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +5 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.d.ts +4 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.js +3 -1
- package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +2 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/scheduler.types.d.ts +17 -0
- package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/scheduler.types.js.map +1 -1
- package/dist/backend/config/constants.d.ts +36 -2
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +37 -2
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +1 -1
- package/dist/cli/cli/src/constants.d.ts +1 -1
- package/dist/cli/cli/src/index.js +1 -1
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/config/constants.d.ts +36 -2
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +37 -2
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +1 -1
- package/frontend/dist/assets/{index-77b6a2a0.js → index-4c56763b.js} +31 -31
- package/frontend/dist/assets/{index-5ddf71c8.css → index-c1dd0b10.css} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +8 -4
- package/config/constants.test.ts +0 -469
- package/config/quality-gates/default-gates.test.ts +0 -246
- package/config/skills/agent/nano-banana-image/.env +0 -2
- package/config/skills/agent/nano-banana-image/.env.example +0 -6
- package/config/skills/nano-banana-image/.env +0 -2
- package/config/skills/nano-banana-image/.env.example +0 -6
|
@@ -7,7 +7,7 @@ import { join } from 'path';
|
|
|
7
7
|
import { homedir } from 'os';
|
|
8
8
|
import { existsSync } from 'fs';
|
|
9
9
|
import { CREWLY_CONSTANTS, CONTINUATION_CONSTANTS, AGENT_IDENTITY_CONSTANTS } from '../../constants.js';
|
|
10
|
-
import {
|
|
10
|
+
import { PtyActivityTrackerService } from '../agent/pty-activity-tracker.service.js';
|
|
11
11
|
/**
|
|
12
12
|
* Activity Monitor Service - NEW ARCHITECTURE
|
|
13
13
|
*
|
|
@@ -153,24 +153,13 @@ export class ActivityMonitorService {
|
|
|
153
153
|
await this.storageService.updateAgentStatus(sessionName, CREWLY_CONSTANTS.AGENT_STATUSES.INACTIVE);
|
|
154
154
|
}
|
|
155
155
|
else if (agentId === AGENT_IDENTITY_CONSTANTS.ORCHESTRATOR.ID) {
|
|
156
|
-
// Orchestrator
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
OrchestratorRestartService.getInstance().attemptRestart().catch((err) => {
|
|
164
|
-
this.logger.error('Orchestrator auto-restart failed', {
|
|
165
|
-
error: err instanceof Error ? err.message : String(err),
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this.logger.debug('Orchestrator is stale but child process is alive, skipping restart', {
|
|
171
|
-
sessionName,
|
|
172
|
-
});
|
|
173
|
-
}
|
|
156
|
+
// DISABLED: Orchestrator auto-restart causes false restarts when
|
|
157
|
+
// the orchestrator is actively working but not producing PTY output.
|
|
158
|
+
// The pgrep-based child process check is unreliable on macOS.
|
|
159
|
+
// TODO: Re-enable with a more robust liveness check (e.g. API activity tracking).
|
|
160
|
+
this.logger.debug('Orchestrator is stale but auto-restart is disabled', {
|
|
161
|
+
sessionName,
|
|
162
|
+
});
|
|
174
163
|
}
|
|
175
164
|
}
|
|
176
165
|
catch (agentError) {
|
|
@@ -200,6 +189,11 @@ export class ActivityMonitorService {
|
|
|
200
189
|
const orchestratorOutput = await this.getTerminalOutput(CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME);
|
|
201
190
|
const previousOutput = this.lastTerminalOutputs.get('orchestrator') || '';
|
|
202
191
|
const outputChanged = orchestratorOutput !== previousOutput && orchestratorOutput.trim() !== '';
|
|
192
|
+
// Bridge to PtyActivityTracker so idle/heartbeat checks detect activity
|
|
193
|
+
// even when no WebSocket clients are connected
|
|
194
|
+
if (outputChanged) {
|
|
195
|
+
PtyActivityTrackerService.getInstance().recordActivity(CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME);
|
|
196
|
+
}
|
|
203
197
|
const newWorkingStatus = outputChanged ? 'in_progress' : 'idle';
|
|
204
198
|
if (workingStatusData.orchestrator.workingStatus !== newWorkingStatus) {
|
|
205
199
|
workingStatusData.orchestrator.workingStatus = newWorkingStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/activity-monitor.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"activity-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/activity-monitor.service.ts"],"names":[],"mappings":"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"}
|
package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Heartbeat Monitor Service
|
|
3
|
+
*
|
|
4
|
+
* Monitors the orchestrator's heartbeat and takes progressive action
|
|
5
|
+
* when the orchestrator becomes unresponsive:
|
|
6
|
+
*
|
|
7
|
+
* 1. Implicit heartbeat: Every API call with X-Agent-Session header
|
|
8
|
+
* automatically updates the orchestrator's heartbeat timestamp
|
|
9
|
+
* (handled by agentHeartbeatMiddleware — not this service).
|
|
10
|
+
*
|
|
11
|
+
* 2. Active heartbeat request: After HEARTBEAT_REQUEST_THRESHOLD_MS
|
|
12
|
+
* without any API activity, this service sends a heartbeat request
|
|
13
|
+
* message directly into the orchestrator's PTY session.
|
|
14
|
+
*
|
|
15
|
+
* 3. Auto-restart + resume: After an additional RESTART_THRESHOLD_MS
|
|
16
|
+
* with no response, this service triggers OrchestratorRestartService
|
|
17
|
+
* to kill and recreate the orchestrator PTY session.
|
|
18
|
+
*
|
|
19
|
+
* @module orchestrator-heartbeat-monitor.service
|
|
20
|
+
*/
|
|
21
|
+
import type { ISessionBackend } from '../session/session-backend.interface.js';
|
|
22
|
+
/**
|
|
23
|
+
* Internal state for the heartbeat monitor.
|
|
24
|
+
*/
|
|
25
|
+
export interface HeartbeatMonitorState {
|
|
26
|
+
/** Whether the monitor is currently running */
|
|
27
|
+
isRunning: boolean;
|
|
28
|
+
/** Timestamp when the heartbeat request was sent (null if none pending) */
|
|
29
|
+
heartbeatRequestSentAt: number | null;
|
|
30
|
+
/** Number of heartbeat requests sent since last successful heartbeat */
|
|
31
|
+
heartbeatRequestCount: number;
|
|
32
|
+
/** Number of auto-restarts triggered by this monitor */
|
|
33
|
+
autoRestartCount: number;
|
|
34
|
+
/** Timestamp when the service started monitoring */
|
|
35
|
+
startedAt: number | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Monitors the orchestrator's heartbeat and takes progressive action
|
|
39
|
+
* when it becomes unresponsive.
|
|
40
|
+
*
|
|
41
|
+
* The monitor uses PtyActivityTrackerService as the single source of truth
|
|
42
|
+
* for orchestrator activity. The agentHeartbeatMiddleware calls
|
|
43
|
+
* PtyActivityTrackerService.recordActivity() on every API call with
|
|
44
|
+
* X-Agent-Session header, so any skill call counts as a heartbeat.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const monitor = OrchestratorHeartbeatMonitorService.getInstance();
|
|
49
|
+
* monitor.setDependencies(sessionBackend);
|
|
50
|
+
* monitor.start();
|
|
51
|
+
* // ... later
|
|
52
|
+
* monitor.stop();
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare class OrchestratorHeartbeatMonitorService {
|
|
56
|
+
private static instance;
|
|
57
|
+
private logger;
|
|
58
|
+
/** Interval timer handle */
|
|
59
|
+
private checkTimer;
|
|
60
|
+
/** When the heartbeat request was sent to the orchestrator PTY */
|
|
61
|
+
private heartbeatRequestSentAt;
|
|
62
|
+
/** Counter for heartbeat requests sent */
|
|
63
|
+
private heartbeatRequestCount;
|
|
64
|
+
/** Counter for auto-restarts triggered */
|
|
65
|
+
private autoRestartCount;
|
|
66
|
+
/** When monitoring started */
|
|
67
|
+
private startedAt;
|
|
68
|
+
/** Session backend for writing to orchestrator PTY */
|
|
69
|
+
private sessionBackend;
|
|
70
|
+
private constructor();
|
|
71
|
+
/**
|
|
72
|
+
* Get the singleton instance.
|
|
73
|
+
*
|
|
74
|
+
* @returns The OrchestratorHeartbeatMonitorService singleton
|
|
75
|
+
*/
|
|
76
|
+
static getInstance(): OrchestratorHeartbeatMonitorService;
|
|
77
|
+
/**
|
|
78
|
+
* Reset the singleton (for testing).
|
|
79
|
+
*/
|
|
80
|
+
static resetInstance(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Inject the session backend dependency.
|
|
83
|
+
*
|
|
84
|
+
* @param sessionBackend - Session backend for accessing the orchestrator PTY
|
|
85
|
+
*/
|
|
86
|
+
setDependencies(sessionBackend: ISessionBackend): void;
|
|
87
|
+
/**
|
|
88
|
+
* Start the heartbeat monitoring loop.
|
|
89
|
+
* Applies a startup grace period before the first check.
|
|
90
|
+
*/
|
|
91
|
+
start(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Stop the heartbeat monitoring loop.
|
|
94
|
+
*/
|
|
95
|
+
stop(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Check if the monitor is currently running.
|
|
98
|
+
*
|
|
99
|
+
* @returns True if the check loop is active
|
|
100
|
+
*/
|
|
101
|
+
isRunning(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Get the current state of the heartbeat monitor.
|
|
104
|
+
*
|
|
105
|
+
* @returns Current monitor state for diagnostics
|
|
106
|
+
*/
|
|
107
|
+
getState(): HeartbeatMonitorState;
|
|
108
|
+
/**
|
|
109
|
+
* Perform a single heartbeat check cycle.
|
|
110
|
+
*
|
|
111
|
+
* Decision tree:
|
|
112
|
+
* 1. If within startup grace period → skip
|
|
113
|
+
* 2. If orchestrator session doesn't exist → skip (not started yet)
|
|
114
|
+
* 3. If recent API activity → clear any pending heartbeat request
|
|
115
|
+
* 4. If heartbeat request pending and RESTART_THRESHOLD_MS exceeded → auto-restart
|
|
116
|
+
* 5. If no activity for HEARTBEAT_REQUEST_THRESHOLD_MS → send heartbeat request
|
|
117
|
+
*/
|
|
118
|
+
performCheck(): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Send a heartbeat request message to the orchestrator PTY.
|
|
121
|
+
* This writes the heartbeat request directly into the orchestrator's terminal.
|
|
122
|
+
*/
|
|
123
|
+
private sendHeartbeatRequest;
|
|
124
|
+
/**
|
|
125
|
+
* Trigger an auto-restart of the orchestrator via OrchestratorRestartService.
|
|
126
|
+
*/
|
|
127
|
+
private triggerAutoRestart;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=orchestrator-heartbeat-monitor.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-heartbeat-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mCAAmC;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoD;IAC3E,OAAO,CAAC,MAAM,CAAkB;IAEhC,4BAA4B;IAC5B,OAAO,CAAC,UAAU,CAA+C;IAEjE,kEAAkE;IAClE,OAAO,CAAC,sBAAsB,CAAuB;IAErD,0CAA0C;IAC1C,OAAO,CAAC,qBAAqB,CAAK;IAElC,0CAA0C;IAC1C,OAAO,CAAC,gBAAgB,CAAK;IAE7B,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAuB;IAExC,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,mCAAmC;IAOzD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAO5B;;;;OAIG;IACH,eAAe,CAAC,cAAc,EAAE,eAAe,GAAG,IAAI;IAItD;;;OAGG;IACH,KAAK,IAAI,IAAI;IA0Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,QAAQ,IAAI,qBAAqB;IAUjC;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDnC;;;OAGG;YACW,oBAAoB;IA2BlC;;OAEG;YACW,kBAAkB;CAmBhC"}
|
package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js
ADDED
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Heartbeat Monitor Service
|
|
3
|
+
*
|
|
4
|
+
* Monitors the orchestrator's heartbeat and takes progressive action
|
|
5
|
+
* when the orchestrator becomes unresponsive:
|
|
6
|
+
*
|
|
7
|
+
* 1. Implicit heartbeat: Every API call with X-Agent-Session header
|
|
8
|
+
* automatically updates the orchestrator's heartbeat timestamp
|
|
9
|
+
* (handled by agentHeartbeatMiddleware — not this service).
|
|
10
|
+
*
|
|
11
|
+
* 2. Active heartbeat request: After HEARTBEAT_REQUEST_THRESHOLD_MS
|
|
12
|
+
* without any API activity, this service sends a heartbeat request
|
|
13
|
+
* message directly into the orchestrator's PTY session.
|
|
14
|
+
*
|
|
15
|
+
* 3. Auto-restart + resume: After an additional RESTART_THRESHOLD_MS
|
|
16
|
+
* with no response, this service triggers OrchestratorRestartService
|
|
17
|
+
* to kill and recreate the orchestrator PTY session.
|
|
18
|
+
*
|
|
19
|
+
* @module orchestrator-heartbeat-monitor.service
|
|
20
|
+
*/
|
|
21
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
22
|
+
import { ORCHESTRATOR_SESSION_NAME, ORCHESTRATOR_HEARTBEAT_CONSTANTS, } from '../../constants.js';
|
|
23
|
+
import { PtyActivityTrackerService } from '../agent/pty-activity-tracker.service.js';
|
|
24
|
+
import { OrchestratorRestartService } from './orchestrator-restart.service.js';
|
|
25
|
+
/**
|
|
26
|
+
* Monitors the orchestrator's heartbeat and takes progressive action
|
|
27
|
+
* when it becomes unresponsive.
|
|
28
|
+
*
|
|
29
|
+
* The monitor uses PtyActivityTrackerService as the single source of truth
|
|
30
|
+
* for orchestrator activity. The agentHeartbeatMiddleware calls
|
|
31
|
+
* PtyActivityTrackerService.recordActivity() on every API call with
|
|
32
|
+
* X-Agent-Session header, so any skill call counts as a heartbeat.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const monitor = OrchestratorHeartbeatMonitorService.getInstance();
|
|
37
|
+
* monitor.setDependencies(sessionBackend);
|
|
38
|
+
* monitor.start();
|
|
39
|
+
* // ... later
|
|
40
|
+
* monitor.stop();
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export class OrchestratorHeartbeatMonitorService {
|
|
44
|
+
static instance = null;
|
|
45
|
+
logger;
|
|
46
|
+
/** Interval timer handle */
|
|
47
|
+
checkTimer = null;
|
|
48
|
+
/** When the heartbeat request was sent to the orchestrator PTY */
|
|
49
|
+
heartbeatRequestSentAt = null;
|
|
50
|
+
/** Counter for heartbeat requests sent */
|
|
51
|
+
heartbeatRequestCount = 0;
|
|
52
|
+
/** Counter for auto-restarts triggered */
|
|
53
|
+
autoRestartCount = 0;
|
|
54
|
+
/** When monitoring started */
|
|
55
|
+
startedAt = null;
|
|
56
|
+
/** Session backend for writing to orchestrator PTY */
|
|
57
|
+
sessionBackend = null;
|
|
58
|
+
constructor() {
|
|
59
|
+
this.logger = LoggerService.getInstance().createComponentLogger('OrchestratorHeartbeatMonitor');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the singleton instance.
|
|
63
|
+
*
|
|
64
|
+
* @returns The OrchestratorHeartbeatMonitorService singleton
|
|
65
|
+
*/
|
|
66
|
+
static getInstance() {
|
|
67
|
+
if (!OrchestratorHeartbeatMonitorService.instance) {
|
|
68
|
+
OrchestratorHeartbeatMonitorService.instance = new OrchestratorHeartbeatMonitorService();
|
|
69
|
+
}
|
|
70
|
+
return OrchestratorHeartbeatMonitorService.instance;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Reset the singleton (for testing).
|
|
74
|
+
*/
|
|
75
|
+
static resetInstance() {
|
|
76
|
+
if (OrchestratorHeartbeatMonitorService.instance) {
|
|
77
|
+
OrchestratorHeartbeatMonitorService.instance.stop();
|
|
78
|
+
}
|
|
79
|
+
OrchestratorHeartbeatMonitorService.instance = null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Inject the session backend dependency.
|
|
83
|
+
*
|
|
84
|
+
* @param sessionBackend - Session backend for accessing the orchestrator PTY
|
|
85
|
+
*/
|
|
86
|
+
setDependencies(sessionBackend) {
|
|
87
|
+
this.sessionBackend = sessionBackend;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Start the heartbeat monitoring loop.
|
|
91
|
+
* Applies a startup grace period before the first check.
|
|
92
|
+
*/
|
|
93
|
+
start() {
|
|
94
|
+
if (this.checkTimer) {
|
|
95
|
+
this.logger.warn('Heartbeat monitor already running');
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.startedAt = Date.now();
|
|
99
|
+
this.heartbeatRequestSentAt = null;
|
|
100
|
+
this.heartbeatRequestCount = 0;
|
|
101
|
+
this.logger.info('Starting orchestrator heartbeat monitor', {
|
|
102
|
+
checkIntervalMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.CHECK_INTERVAL_MS,
|
|
103
|
+
heartbeatRequestThresholdMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.HEARTBEAT_REQUEST_THRESHOLD_MS,
|
|
104
|
+
restartThresholdMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.RESTART_THRESHOLD_MS,
|
|
105
|
+
startupGracePeriodMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.STARTUP_GRACE_PERIOD_MS,
|
|
106
|
+
});
|
|
107
|
+
this.checkTimer = setInterval(() => {
|
|
108
|
+
this.performCheck().catch((err) => {
|
|
109
|
+
this.logger.error('Heartbeat check failed', {
|
|
110
|
+
error: err instanceof Error ? err.message : String(err),
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}, ORCHESTRATOR_HEARTBEAT_CONSTANTS.CHECK_INTERVAL_MS);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Stop the heartbeat monitoring loop.
|
|
117
|
+
*/
|
|
118
|
+
stop() {
|
|
119
|
+
if (this.checkTimer) {
|
|
120
|
+
clearInterval(this.checkTimer);
|
|
121
|
+
this.checkTimer = null;
|
|
122
|
+
this.logger.info('Orchestrator heartbeat monitor stopped');
|
|
123
|
+
}
|
|
124
|
+
this.heartbeatRequestSentAt = null;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Check if the monitor is currently running.
|
|
128
|
+
*
|
|
129
|
+
* @returns True if the check loop is active
|
|
130
|
+
*/
|
|
131
|
+
isRunning() {
|
|
132
|
+
return this.checkTimer !== null;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the current state of the heartbeat monitor.
|
|
136
|
+
*
|
|
137
|
+
* @returns Current monitor state for diagnostics
|
|
138
|
+
*/
|
|
139
|
+
getState() {
|
|
140
|
+
return {
|
|
141
|
+
isRunning: this.isRunning(),
|
|
142
|
+
heartbeatRequestSentAt: this.heartbeatRequestSentAt,
|
|
143
|
+
heartbeatRequestCount: this.heartbeatRequestCount,
|
|
144
|
+
autoRestartCount: this.autoRestartCount,
|
|
145
|
+
startedAt: this.startedAt,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Perform a single heartbeat check cycle.
|
|
150
|
+
*
|
|
151
|
+
* Decision tree:
|
|
152
|
+
* 1. If within startup grace period → skip
|
|
153
|
+
* 2. If orchestrator session doesn't exist → skip (not started yet)
|
|
154
|
+
* 3. If recent API activity → clear any pending heartbeat request
|
|
155
|
+
* 4. If heartbeat request pending and RESTART_THRESHOLD_MS exceeded → auto-restart
|
|
156
|
+
* 5. If no activity for HEARTBEAT_REQUEST_THRESHOLD_MS → send heartbeat request
|
|
157
|
+
*/
|
|
158
|
+
async performCheck() {
|
|
159
|
+
// Guard: startup grace period
|
|
160
|
+
if (this.startedAt && (Date.now() - this.startedAt) < ORCHESTRATOR_HEARTBEAT_CONSTANTS.STARTUP_GRACE_PERIOD_MS) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
// Guard: session backend not set
|
|
164
|
+
if (!this.sessionBackend) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
// Guard: orchestrator session doesn't exist (not started yet)
|
|
168
|
+
if (!this.sessionBackend.sessionExists(ORCHESTRATOR_SESSION_NAME)) {
|
|
169
|
+
this.heartbeatRequestSentAt = null;
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const activityTracker = PtyActivityTrackerService.getInstance();
|
|
173
|
+
const idleTimeMs = activityTracker.getIdleTimeMs(ORCHESTRATOR_SESSION_NAME);
|
|
174
|
+
// If recent activity detected, clear any pending heartbeat request
|
|
175
|
+
if (idleTimeMs < ORCHESTRATOR_HEARTBEAT_CONSTANTS.HEARTBEAT_REQUEST_THRESHOLD_MS) {
|
|
176
|
+
if (this.heartbeatRequestSentAt !== null) {
|
|
177
|
+
this.logger.info('Orchestrator responded to heartbeat request, clearing pending state');
|
|
178
|
+
this.heartbeatRequestSentAt = null;
|
|
179
|
+
}
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
// If we already sent a heartbeat request, check if it's time to restart
|
|
183
|
+
if (this.heartbeatRequestSentAt !== null) {
|
|
184
|
+
const timeSinceRequest = Date.now() - this.heartbeatRequestSentAt;
|
|
185
|
+
if (timeSinceRequest >= ORCHESTRATOR_HEARTBEAT_CONSTANTS.RESTART_THRESHOLD_MS) {
|
|
186
|
+
this.logger.warn('Orchestrator did not respond to heartbeat request, triggering auto-restart', {
|
|
187
|
+
timeSinceRequestMs: timeSinceRequest,
|
|
188
|
+
idleTimeMs,
|
|
189
|
+
heartbeatRequestCount: this.heartbeatRequestCount,
|
|
190
|
+
});
|
|
191
|
+
this.heartbeatRequestSentAt = null;
|
|
192
|
+
await this.triggerAutoRestart();
|
|
193
|
+
}
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
// No activity for HEARTBEAT_REQUEST_THRESHOLD_MS — send a heartbeat request
|
|
197
|
+
this.logger.info('Orchestrator idle, sending heartbeat request', {
|
|
198
|
+
idleTimeMs,
|
|
199
|
+
});
|
|
200
|
+
await this.sendHeartbeatRequest();
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Send a heartbeat request message to the orchestrator PTY.
|
|
204
|
+
* This writes the heartbeat request directly into the orchestrator's terminal.
|
|
205
|
+
*/
|
|
206
|
+
async sendHeartbeatRequest() {
|
|
207
|
+
if (!this.sessionBackend) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
const session = this.sessionBackend.getSession(ORCHESTRATOR_SESSION_NAME);
|
|
212
|
+
if (!session) {
|
|
213
|
+
this.logger.warn('Orchestrator session not found, cannot send heartbeat request');
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
session.write(ORCHESTRATOR_HEARTBEAT_CONSTANTS.HEARTBEAT_REQUEST_MESSAGE + '\n');
|
|
217
|
+
this.heartbeatRequestSentAt = Date.now();
|
|
218
|
+
this.heartbeatRequestCount++;
|
|
219
|
+
this.logger.info('Heartbeat request sent to orchestrator PTY', {
|
|
220
|
+
heartbeatRequestCount: this.heartbeatRequestCount,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
this.logger.error('Failed to send heartbeat request to orchestrator', {
|
|
225
|
+
error: err instanceof Error ? err.message : String(err),
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Trigger an auto-restart of the orchestrator via OrchestratorRestartService.
|
|
231
|
+
*/
|
|
232
|
+
async triggerAutoRestart() {
|
|
233
|
+
try {
|
|
234
|
+
const restartService = OrchestratorRestartService.getInstance();
|
|
235
|
+
const success = await restartService.attemptRestart();
|
|
236
|
+
if (success) {
|
|
237
|
+
this.autoRestartCount++;
|
|
238
|
+
this.logger.info('Orchestrator auto-restart triggered successfully', {
|
|
239
|
+
autoRestartCount: this.autoRestartCount,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
this.logger.warn('Orchestrator auto-restart was not allowed (cooldown or concurrent restart)');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
catch (err) {
|
|
247
|
+
this.logger.error('Failed to trigger orchestrator auto-restart', {
|
|
248
|
+
error: err instanceof Error ? err.message : String(err),
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=orchestrator-heartbeat-monitor.service.js.map
|
package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-heartbeat-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty-session-backend.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"pty-session-backend.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACxD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAsC;IAEtD;;OAEG;IACH,OAAO,CAAC,eAAe,CAA6C;IAEpE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;OAEG;;IAMH;;;;;;;;;;;;;;;;;;;OAmBG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+C7E;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI9C;;;;;;;;;;OAUG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9C;;;;;;;;;;OAUG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,MAAM;IAShD;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASvC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASnC;;;;;;;;;;OAUG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAc7B;;;;;;;;;OASG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B;;;;;;;;;;;;;;OAcG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDtC;;;;;;;;OAQG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ1C;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB7D;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASvC;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;CAGtE"}
|
|
@@ -11,6 +11,7 @@ import { PtySession } from './pty-session.js';
|
|
|
11
11
|
import { PtyTerminalBuffer } from './pty-terminal-buffer.js';
|
|
12
12
|
import { LoggerService } from '../../core/logger.service.js';
|
|
13
13
|
import { PTY_CONSTANTS } from '../../../constants.js';
|
|
14
|
+
import { PtyActivityTrackerService } from '../../agent/pty-activity-tracker.service.js';
|
|
14
15
|
/**
|
|
15
16
|
* PTY Session Backend implementation.
|
|
16
17
|
*
|
|
@@ -95,9 +96,12 @@ export class PtySessionBackend {
|
|
|
95
96
|
const cols = options.cols ?? DEFAULT_TERMINAL_COLS;
|
|
96
97
|
const rows = options.rows ?? DEFAULT_TERMINAL_ROWS;
|
|
97
98
|
const terminalBuffer = new PtyTerminalBuffer(cols, rows);
|
|
98
|
-
// Pipe session output to terminal buffer
|
|
99
|
+
// Pipe session output to terminal buffer and record activity for idle detection.
|
|
100
|
+
// Recording here (at session creation) ensures activity is tracked even when
|
|
101
|
+
// no WebSocket client is viewing the terminal UI.
|
|
99
102
|
session.onData((data) => {
|
|
100
103
|
terminalBuffer.write(data);
|
|
104
|
+
PtyActivityTrackerService.getInstance().recordActivity(name);
|
|
101
105
|
});
|
|
102
106
|
// Clean up on session exit
|
|
103
107
|
session.onExit((code) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty-session-backend.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pty-session-backend.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,iBAAiB;IAC7B;;OAEG;IACK,QAAQ,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEtD;;OAEG;IACK,eAAe,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEpE;;OAEG;IACK,MAAM,CAAkB;IAEhC;;OAEG;IACH;QACC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAuB;QACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACxC,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE3D,0DAA0D;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC;QACnD,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzD,iFAAiF;QACjF,6EAA6E;QAC7E,kDAAkD;QAClD,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,yBAAyB,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,gFAAgF;QACjF,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACvC,IAAI;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI;YACJ,IAAI;SACJ,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACpB,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAY,EAAE,KAAK,GAAG,GAAG;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,IAAY;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAY;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;OAUG;IACH,iBAAiB;QAChB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACR,sDAAsD;gBACvD,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAClD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;SAChC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAExE,sDAAsD;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,oDAAoD;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;oBACrD,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACvD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,gDAAgD;QAChD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAExG,iDAAiD;QACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACR,+BAA+B;YAChC,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,MAAM,CAAC;gBACR,qCAAqC;YACtC,CAAC;QACF,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,cAAc,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,IAAY;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,eAAe;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,cAAc,EAAE,CAAC;YACpB,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,IAAY;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACD"}
|
|
@@ -26,6 +26,8 @@ export interface PersistedSessionInfo {
|
|
|
26
26
|
role?: string;
|
|
27
27
|
/** Team ID if part of a team */
|
|
28
28
|
teamId?: string;
|
|
29
|
+
/** Member ID if this is a team member session */
|
|
30
|
+
memberId?: string;
|
|
29
31
|
/** Environment variables */
|
|
30
32
|
env?: Record<string, string>;
|
|
31
33
|
/** Claude session ID for resuming conversations on restart */
|
|
@@ -85,8 +87,9 @@ export declare class SessionStatePersistence {
|
|
|
85
87
|
* @param runtimeType - Type of runtime (claude-code, gemini-cli, codex-cli)
|
|
86
88
|
* @param role - Optional role for the agent
|
|
87
89
|
* @param teamId - Optional team ID
|
|
90
|
+
* @param memberId - Optional member ID for team member sessions
|
|
88
91
|
*/
|
|
89
|
-
registerSession(name: string, options: SessionOptions, runtimeType: RuntimeType, role?: string, teamId?: string): void;
|
|
92
|
+
registerSession(name: string, options: SessionOptions, runtimeType: RuntimeType, role?: string, teamId?: string, memberId?: string): void;
|
|
90
93
|
/**
|
|
91
94
|
* Remove a session from persistence tracking.
|
|
92
95
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-state-persistence.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-state-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AAShE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAuB;IACnC,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,sDAAsD;IACtD,OAAO,CAAC,eAAe,CAAgD;IAEvE,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB,CAAqB;IAEjD,sBAAsB;IACtB,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;;OAIG;gBACS,QAAQ,CAAC,EAAE,MAAM;IAK7B
|
|
1
|
+
{"version":3,"file":"session-state-persistence.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/session/session-state-persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AAShE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAuB;IACnC,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,sDAAsD;IACtD,OAAO,CAAC,eAAe,CAAgD;IAEvE,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB,CAAqB;IAEjD,sBAAsB;IACtB,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;;OAIG;gBACS,QAAQ,CAAC,EAAE,MAAM;IAK7B;;;;;;;;;OASG;IACH,eAAe,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GACf,IAAI;IAqBP;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYrC;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1C;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIlE;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAe5D;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxC;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACH,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAI7D;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;OAKG;YACW,QAAQ;IAWtB;;;;;;;;OAQG;IACG,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1D;;;;;;;OAOG;IACG,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAkE7D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5C;;OAEG;IACH,aAAa,IAAI,IAAI;IAMrB;;;;OAIG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAcjD;AAKD;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,uBAAuB,CAKpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -61,8 +61,9 @@ export class SessionStatePersistence {
|
|
|
61
61
|
* @param runtimeType - Type of runtime (claude-code, gemini-cli, codex-cli)
|
|
62
62
|
* @param role - Optional role for the agent
|
|
63
63
|
* @param teamId - Optional team ID
|
|
64
|
+
* @param memberId - Optional member ID for team member sessions
|
|
64
65
|
*/
|
|
65
|
-
registerSession(name, options, runtimeType, role, teamId) {
|
|
66
|
+
registerSession(name, options, runtimeType, role, teamId, memberId) {
|
|
66
67
|
this.sessionMetadata.set(name, {
|
|
67
68
|
name,
|
|
68
69
|
cwd: options.cwd,
|
|
@@ -71,6 +72,7 @@ export class SessionStatePersistence {
|
|
|
71
72
|
runtimeType,
|
|
72
73
|
role,
|
|
73
74
|
teamId,
|
|
75
|
+
memberId,
|
|
74
76
|
env: options.env,
|
|
75
77
|
});
|
|
76
78
|
this.logger.debug('Registered session for persistence', { name, runtimeType, role });
|