crewly 1.0.5 → 1.0.7
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/README.md +100 -41
- package/config/roles/orchestrator/prompt.md +26 -10
- package/config/runtime_scripts/runtime-config.json +5 -5
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +7 -5
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +7 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +17 -0
- 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 +161 -87
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +4 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +22 -5
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +14 -5
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-credentials.service.d.ts +33 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.js +103 -0
- package/dist/backend/backend/src/services/slack/slack-credentials.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +9 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +31 -2
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +12 -2
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/utils/process-cleanup.d.ts +15 -0
- package/dist/cli/cli/src/utils/process-cleanup.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/process-cleanup.js +76 -0
- package/dist/cli/cli/src/utils/process-cleanup.js.map +1 -0
- package/frontend/dist/assets/index-4c050f52.css +33 -0
- package/frontend/dist/assets/{index-419da091.js → index-523c7fce.js} +1 -1
- package/frontend/dist/index.html +3 -5
- package/package.json +1 -1
- package/config/runtime_scripts/initialize_claude.sh +0 -14
- package/config/runtime_scripts/initialize_codex.sh +0 -14
- package/frontend/dist/assets/index-5adb4dff.css +0 -33
|
@@ -11,7 +11,8 @@ import { EventEmitter } from 'events';
|
|
|
11
11
|
import { LoggerService } from '../core/logger.service.js';
|
|
12
12
|
import { getChatService } from '../chat/chat.service.js';
|
|
13
13
|
import { getTerminalGateway } from '../../websocket/terminal.gateway.js';
|
|
14
|
-
import { MESSAGE_QUEUE_CONSTANTS, ORCHESTRATOR_SESSION_NAME, CHAT_CONSTANTS, EVENT_DELIVERY_CONSTANTS, RUNTIME_TYPES, } from '../../constants.js';
|
|
14
|
+
import { MESSAGE_QUEUE_CONSTANTS, ORCHESTRATOR_SESSION_NAME, CHAT_CONSTANTS, EVENT_DELIVERY_CONSTANTS, RUNTIME_TYPES, ORCHESTRATOR_HEARTBEAT_CONSTANTS, } from '../../constants.js';
|
|
15
|
+
import { PtyActivityTrackerService } from '../agent/pty-activity-tracker.service.js';
|
|
15
16
|
import { StorageService } from '../core/storage.service.js';
|
|
16
17
|
/**
|
|
17
18
|
* QueueProcessorService dequeues messages one-at-a-time, delivers them
|
|
@@ -140,6 +141,14 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
140
141
|
return;
|
|
141
142
|
}
|
|
142
143
|
this.processing = true;
|
|
144
|
+
// Keep the orchestrator's activity tracker alive while processing so the
|
|
145
|
+
// heartbeat monitor doesn't falsely declare it idle and auto-restart it.
|
|
146
|
+
// Interval is half the heartbeat request threshold to guarantee at least
|
|
147
|
+
// one activity ping before the monitor considers the orchestrator idle.
|
|
148
|
+
const KEEPALIVE_INTERVAL_MS = ORCHESTRATOR_HEARTBEAT_CONSTANTS.HEARTBEAT_REQUEST_THRESHOLD_MS / 2;
|
|
149
|
+
const keepaliveInterval = setInterval(() => {
|
|
150
|
+
PtyActivityTrackerService.getInstance().recordActivity(ORCHESTRATOR_SESSION_NAME);
|
|
151
|
+
}, KEEPALIVE_INTERVAL_MS);
|
|
143
152
|
try {
|
|
144
153
|
this.logger.info('Processing message', {
|
|
145
154
|
messageId: message.id,
|
|
@@ -154,12 +163,11 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
154
163
|
terminalGateway.setActiveConversationId(message.conversationId);
|
|
155
164
|
}
|
|
156
165
|
}
|
|
157
|
-
//
|
|
158
|
-
//
|
|
166
|
+
// Reuse the orchestrator status fetched above to determine runtime type
|
|
167
|
+
// for prompt detection in waitForAgentReady. Without runtime-aware detection,
|
|
159
168
|
// the generic PROMPT_STREAM regex can false-positive on markdown `> `
|
|
160
169
|
// lines in Claude Code output, causing premature delivery attempts.
|
|
161
|
-
const
|
|
162
|
-
const runtimeType = orchestratorStatus?.runtimeType || RUNTIME_TYPES.CLAUDE_CODE;
|
|
170
|
+
const runtimeType = orchestratorInfo?.runtimeType || RUNTIME_TYPES.CLAUDE_CODE;
|
|
163
171
|
// Wait for orchestrator to be at prompt before attempting delivery.
|
|
164
172
|
// After processing a previous message the orchestrator may still be busy
|
|
165
173
|
// (managing agents, running commands) before returning to the input prompt.
|
|
@@ -273,6 +281,7 @@ export class QueueProcessorService extends EventEmitter {
|
|
|
273
281
|
this.responseRouter.routeError(message, errorMsg);
|
|
274
282
|
}
|
|
275
283
|
finally {
|
|
284
|
+
clearInterval(keepaliveInterval);
|
|
276
285
|
this.processing = false;
|
|
277
286
|
if (this.nextAlreadyScheduled) {
|
|
278
287
|
this.nextAlreadyScheduled = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-processor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAmB,MAAM,2BAA2B,CAAC;AAI3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,wBAAwB,EACxB,aAAa,
|
|
1
|
+
{"version":3,"file":"queue-processor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack Credentials Persistence Service
|
|
3
|
+
*
|
|
4
|
+
* Persists Slack tokens to ~/.crewly/slack-credentials.json so that
|
|
5
|
+
* tokens configured via the /settings UI survive server restarts.
|
|
6
|
+
* The file is written with 0600 permissions to protect secrets.
|
|
7
|
+
*
|
|
8
|
+
* @module services/slack/slack-credentials
|
|
9
|
+
*/
|
|
10
|
+
import { SlackConfig } from '../../types/slack.types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Save Slack credentials to disk with restricted file permissions (0600).
|
|
13
|
+
*
|
|
14
|
+
* @param config - The SlackConfig to persist.
|
|
15
|
+
*/
|
|
16
|
+
export declare function saveSlackCredentials(config: SlackConfig): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Load saved Slack credentials from disk.
|
|
19
|
+
*
|
|
20
|
+
* @returns SlackConfig if credentials file exists and is valid, null otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadSlackCredentials(): Promise<SlackConfig | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Delete saved Slack credentials from disk.
|
|
25
|
+
*/
|
|
26
|
+
export declare function deleteSlackCredentials(): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Check if saved Slack credentials exist on disk.
|
|
29
|
+
*
|
|
30
|
+
* @returns True if the credentials file exists.
|
|
31
|
+
*/
|
|
32
|
+
export declare function hasSavedCredentials(): Promise<boolean>;
|
|
33
|
+
//# sourceMappingURL=slack-credentials.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-credentials.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-credentials.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AA6BzD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB7E;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqBxE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa5D;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS5D"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack Credentials Persistence Service
|
|
3
|
+
*
|
|
4
|
+
* Persists Slack tokens to ~/.crewly/slack-credentials.json so that
|
|
5
|
+
* tokens configured via the /settings UI survive server restarts.
|
|
6
|
+
* The file is written with 0600 permissions to protect secrets.
|
|
7
|
+
*
|
|
8
|
+
* @module services/slack/slack-credentials
|
|
9
|
+
*/
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import * as fs from 'fs/promises';
|
|
12
|
+
import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
|
|
13
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
14
|
+
const logger = LoggerService.getInstance().createComponentLogger('SlackCredentials');
|
|
15
|
+
const CREDENTIALS_FILE = 'slack-credentials.json';
|
|
16
|
+
/**
|
|
17
|
+
* Get the path to the Slack credentials file.
|
|
18
|
+
*
|
|
19
|
+
* @returns Absolute path to ~/.crewly/slack-credentials.json
|
|
20
|
+
*/
|
|
21
|
+
function getCredentialsPath() {
|
|
22
|
+
const crewlyHome = path.join(process.env.HOME || '~', '.crewly');
|
|
23
|
+
return path.join(crewlyHome, CREDENTIALS_FILE);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Save Slack credentials to disk with restricted file permissions (0600).
|
|
27
|
+
*
|
|
28
|
+
* @param config - The SlackConfig to persist.
|
|
29
|
+
*/
|
|
30
|
+
export async function saveSlackCredentials(config) {
|
|
31
|
+
const filePath = getCredentialsPath();
|
|
32
|
+
const credentials = {
|
|
33
|
+
botToken: config.botToken,
|
|
34
|
+
appToken: config.appToken,
|
|
35
|
+
signingSecret: config.signingSecret,
|
|
36
|
+
defaultChannelId: config.defaultChannelId,
|
|
37
|
+
allowedUserIds: config.allowedUserIds,
|
|
38
|
+
};
|
|
39
|
+
await atomicWriteJson(filePath, credentials);
|
|
40
|
+
// Restrict permissions to owner-only (0600)
|
|
41
|
+
try {
|
|
42
|
+
await fs.chmod(filePath, 0o600);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
logger.warn('Failed to set credentials file permissions', {
|
|
46
|
+
error: error instanceof Error ? error.message : String(error),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
logger.info('Slack credentials saved to disk');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Load saved Slack credentials from disk.
|
|
53
|
+
*
|
|
54
|
+
* @returns SlackConfig if credentials file exists and is valid, null otherwise.
|
|
55
|
+
*/
|
|
56
|
+
export async function loadSlackCredentials() {
|
|
57
|
+
const filePath = getCredentialsPath();
|
|
58
|
+
const credentials = await safeReadJson(filePath, null, logger);
|
|
59
|
+
if (!credentials || !credentials.botToken || !credentials.appToken || !credentials.signingSecret) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
botToken: credentials.botToken,
|
|
64
|
+
appToken: credentials.appToken,
|
|
65
|
+
signingSecret: credentials.signingSecret,
|
|
66
|
+
defaultChannelId: credentials.defaultChannelId,
|
|
67
|
+
allowedUserIds: credentials.allowedUserIds,
|
|
68
|
+
socketMode: true,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Delete saved Slack credentials from disk.
|
|
73
|
+
*/
|
|
74
|
+
export async function deleteSlackCredentials() {
|
|
75
|
+
const filePath = getCredentialsPath();
|
|
76
|
+
try {
|
|
77
|
+
await fs.unlink(filePath);
|
|
78
|
+
logger.info('Slack credentials removed from disk');
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
if (error.code !== 'ENOENT') {
|
|
82
|
+
logger.warn('Failed to delete credentials file', {
|
|
83
|
+
error: error instanceof Error ? error.message : String(error),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if saved Slack credentials exist on disk.
|
|
90
|
+
*
|
|
91
|
+
* @returns True if the credentials file exists.
|
|
92
|
+
*/
|
|
93
|
+
export async function hasSavedCredentials() {
|
|
94
|
+
const filePath = getCredentialsPath();
|
|
95
|
+
try {
|
|
96
|
+
await fs.access(filePath);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=slack-credentials.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-credentials.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-credentials.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,13 @@ export declare function isSlackConfigured(): boolean;
|
|
|
31
31
|
* @returns SlackConfig object or null if not configured
|
|
32
32
|
*/
|
|
33
33
|
export declare function getSlackConfigFromEnv(): SlackConfig | null;
|
|
34
|
+
/**
|
|
35
|
+
* Get Slack configuration from environment variables or saved credentials.
|
|
36
|
+
* Environment variables take priority over saved credentials.
|
|
37
|
+
*
|
|
38
|
+
* @returns SlackConfig object or null if not configured
|
|
39
|
+
*/
|
|
40
|
+
export declare function getSlackConfig(): Promise<SlackConfig | null>;
|
|
34
41
|
/**
|
|
35
42
|
* Options for Slack initialization
|
|
36
43
|
*/
|
|
@@ -39,7 +46,8 @@ export interface SlackInitOptions {
|
|
|
39
46
|
messageQueueService?: MessageQueueService;
|
|
40
47
|
}
|
|
41
48
|
/**
|
|
42
|
-
* Initialize Slack integration if environment variables
|
|
49
|
+
* Initialize Slack integration if configured via environment variables
|
|
50
|
+
* or saved credentials.
|
|
43
51
|
*
|
|
44
52
|
* This function is designed to be called during application startup.
|
|
45
53
|
* It safely handles cases where Slack is not configured.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"slack-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,GAAG,IAAI,CAiB1D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqBlE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CA4B1B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAUnD"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { getSlackService } from './slack.service.js';
|
|
10
10
|
import { getSlackOrchestratorBridge } from './slack-orchestrator-bridge.js';
|
|
11
|
+
import { loadSlackCredentials } from './slack-credentials.service.js';
|
|
11
12
|
import { LoggerService } from '../core/logger.service.js';
|
|
12
13
|
const logger = LoggerService.getInstance().createComponentLogger('SlackInitializer');
|
|
13
14
|
/**
|
|
@@ -42,7 +43,35 @@ export function getSlackConfigFromEnv() {
|
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
45
|
-
*
|
|
46
|
+
* Get Slack configuration from environment variables or saved credentials.
|
|
47
|
+
* Environment variables take priority over saved credentials.
|
|
48
|
+
*
|
|
49
|
+
* @returns SlackConfig object or null if not configured
|
|
50
|
+
*/
|
|
51
|
+
export async function getSlackConfig() {
|
|
52
|
+
// Env vars take priority
|
|
53
|
+
const envConfig = getSlackConfigFromEnv();
|
|
54
|
+
if (envConfig) {
|
|
55
|
+
return envConfig;
|
|
56
|
+
}
|
|
57
|
+
// Fall back to saved credentials
|
|
58
|
+
try {
|
|
59
|
+
const savedConfig = await loadSlackCredentials();
|
|
60
|
+
if (savedConfig) {
|
|
61
|
+
logger.info('Loaded Slack credentials from saved config');
|
|
62
|
+
return savedConfig;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
logger.warn('Failed to load saved Slack credentials', {
|
|
67
|
+
error: error instanceof Error ? error.message : String(error),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Initialize Slack integration if configured via environment variables
|
|
74
|
+
* or saved credentials.
|
|
46
75
|
*
|
|
47
76
|
* This function is designed to be called during application startup.
|
|
48
77
|
* It safely handles cases where Slack is not configured.
|
|
@@ -65,7 +94,7 @@ export function getSlackConfigFromEnv() {
|
|
|
65
94
|
* ```
|
|
66
95
|
*/
|
|
67
96
|
export async function initializeSlackIfConfigured(options) {
|
|
68
|
-
const config =
|
|
97
|
+
const config = await getSlackConfig();
|
|
69
98
|
if (!config) {
|
|
70
99
|
logger.info('Not configured - skipping initialization');
|
|
71
100
|
return { attempted: false, success: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-initializer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"slack-initializer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"AAwDA,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAwGvD"}
|
|
@@ -8,6 +8,7 @@ import * as os from 'os';
|
|
|
8
8
|
import { fileURLToPath } from 'url';
|
|
9
9
|
import { ORCHESTRATOR_SETUP_TIMEOUT, DEFAULT_WEB_PORT, API_ENDPOINTS, CREWLY_HOME_DIR } from '../constants.js';
|
|
10
10
|
import { checkForUpdate, printUpdateNotification } from '../utils/version-check.js';
|
|
11
|
+
import { killZombieProcesses } from '../utils/process-cleanup.js';
|
|
11
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
12
13
|
const __dirname = path.dirname(__filename);
|
|
13
14
|
/**
|
|
@@ -60,6 +61,8 @@ export async function startCommand(options) {
|
|
|
60
61
|
}
|
|
61
62
|
return;
|
|
62
63
|
}
|
|
64
|
+
// 2b. Kill any zombie processes from previous runs
|
|
65
|
+
killZombieProcesses(webPort, (msg) => console.log(chalk.yellow(msg)));
|
|
63
66
|
// 3. Start backend server
|
|
64
67
|
console.log(chalk.blue('📡 Starting backend server...'));
|
|
65
68
|
const backendProcess = await startBackendServer(webPort);
|
|
@@ -115,8 +118,15 @@ export async function startCommand(options) {
|
|
|
115
118
|
}).catch(() => { });
|
|
116
119
|
// 7. Monitor for shutdown signals
|
|
117
120
|
setupShutdownHandlers([backendProcess]);
|
|
118
|
-
// Keep process alive
|
|
119
|
-
await new Promise(() => {
|
|
121
|
+
// Keep process alive until backend exits
|
|
122
|
+
await new Promise((resolve) => {
|
|
123
|
+
backendProcess.on('exit', (code, signal) => {
|
|
124
|
+
console.log(chalk.yellow(`\nBackend process exited (code: ${code}, signal: ${signal})`));
|
|
125
|
+
resolve();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
// Backend died — exit CLI with the same code
|
|
129
|
+
process.exit(1);
|
|
120
130
|
}
|
|
121
131
|
catch (error) {
|
|
122
132
|
console.error(chalk.red('❌ Failed to start Crewly:'), error instanceof Error ? error.message : error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for cleaning up zombie/stale Crewly backend processes.
|
|
3
|
+
*
|
|
4
|
+
* @module cli/utils/process-cleanup
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Kill any zombie backend processes from previous runs that are still holding
|
|
8
|
+
* the port or consuming resources. Uses lsof to find processes on the port
|
|
9
|
+
* and also searches for any stale crewly backend node processes.
|
|
10
|
+
*
|
|
11
|
+
* @param port - The port to check for zombie processes.
|
|
12
|
+
* @param logFn - Logging function for status messages.
|
|
13
|
+
*/
|
|
14
|
+
export declare function killZombieProcesses(port: number, logFn?: (msg: string) => void): void;
|
|
15
|
+
//# sourceMappingURL=process-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-cleanup.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/process-cleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,GAAG,IAAI,CA8DlG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for cleaning up zombie/stale Crewly backend processes.
|
|
3
|
+
*
|
|
4
|
+
* @module cli/utils/process-cleanup
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
/**
|
|
8
|
+
* Kill any zombie backend processes from previous runs that are still holding
|
|
9
|
+
* the port or consuming resources. Uses lsof to find processes on the port
|
|
10
|
+
* and also searches for any stale crewly backend node processes.
|
|
11
|
+
*
|
|
12
|
+
* @param port - The port to check for zombie processes.
|
|
13
|
+
* @param logFn - Logging function for status messages.
|
|
14
|
+
*/
|
|
15
|
+
export function killZombieProcesses(port, logFn = console.log) {
|
|
16
|
+
const myPid = process.pid;
|
|
17
|
+
// Find processes holding the port
|
|
18
|
+
try {
|
|
19
|
+
const portPids = execSync(`lsof -ti :${port}`, { encoding: 'utf8', timeout: 5000 })
|
|
20
|
+
.trim()
|
|
21
|
+
.split('\n')
|
|
22
|
+
.filter(p => p && parseInt(p) !== myPid);
|
|
23
|
+
if (portPids.length > 0) {
|
|
24
|
+
logFn(`Found ${portPids.length} zombie process(es) on port ${port}, killing...`);
|
|
25
|
+
for (const pid of portPids) {
|
|
26
|
+
try {
|
|
27
|
+
process.kill(parseInt(pid), 'SIGTERM');
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Already dead
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Give SIGTERM a moment, then SIGKILL stragglers
|
|
34
|
+
try {
|
|
35
|
+
execSync('sleep 1', { timeout: 3000 });
|
|
36
|
+
}
|
|
37
|
+
catch { /* ignore */ }
|
|
38
|
+
for (const pid of portPids) {
|
|
39
|
+
try {
|
|
40
|
+
process.kill(parseInt(pid), 'SIGKILL');
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Already dead
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// lsof returns exit code 1 if no processes found — that's fine
|
|
50
|
+
}
|
|
51
|
+
// Also kill any stale crewly backend node processes
|
|
52
|
+
try {
|
|
53
|
+
const result = execSync('ps -eo pid,command | grep "dist/backend/backend/src/index.js" | grep -v grep', { encoding: 'utf8', timeout: 5000 }).trim();
|
|
54
|
+
if (result) {
|
|
55
|
+
const stalePids = result
|
|
56
|
+
.split('\n')
|
|
57
|
+
.map(line => parseInt(line.trim()))
|
|
58
|
+
.filter(pid => !isNaN(pid) && pid !== myPid);
|
|
59
|
+
if (stalePids.length > 0) {
|
|
60
|
+
logFn(`Found ${stalePids.length} stale backend process(es), killing...`);
|
|
61
|
+
for (const pid of stalePids) {
|
|
62
|
+
try {
|
|
63
|
+
process.kill(pid, 'SIGKILL');
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Already dead
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// No stale processes found
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=process-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-cleanup.js","sourceRoot":"","sources":["../../../../../cli/src/utils/process-cleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,QAA+B,OAAO,CAAC,GAAG;IAC3F,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAE1B,kCAAkC;IAClC,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aACjF,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,SAAS,QAAQ,CAAC,MAAM,+BAA+B,IAAI,cAAc,CAAC,CAAC;YACjF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACR,eAAe;gBAChB,CAAC;YACF,CAAC;YACD,iDAAiD;YACjD,IAAI,CAAC;gBACJ,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACR,eAAe;gBAChB,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,+DAA+D;IAChE,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CACtB,8EAA8E,EAC9E,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CACnC,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM;iBACtB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;iBAClC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC;YAE9C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,SAAS,SAAS,CAAC,MAAM,wCAAwC,CAAC,CAAC;gBACzE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC9B,CAAC;oBAAC,MAAM,CAAC;wBACR,eAAe;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,2BAA2B;IAC5B,CAAC;AACF,CAAC"}
|