@apify/mcpc 0.1.2 → 0.1.4
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/.claude/settings.local.json +35 -2
- package/.idea/codeStyles/Project.xml +4 -0
- package/.idea/workspace.xml +290 -274
- package/CONTRIBUTING.md +210 -0
- package/README.md +225 -344
- package/TODOs.md +29 -76
- package/dist/bridge/index.js +153 -86
- package/dist/bridge/index.js.map +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +9 -4
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/clean.d.ts.map +1 -1
- package/dist/cli/commands/clean.js +42 -73
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/prompts.d.ts.map +1 -1
- package/dist/cli/commands/prompts.js +24 -1
- package/dist/cli/commands/prompts.js.map +1 -1
- package/dist/cli/commands/sessions.d.ts +5 -1
- package/dist/cli/commands/sessions.d.ts.map +1 -1
- package/dist/cli/commands/sessions.js +162 -132
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/commands/tools.d.ts.map +1 -1
- package/dist/cli/commands/tools.js +39 -1
- package/dist/cli/commands/tools.js.map +1 -1
- package/dist/cli/helpers.d.ts +5 -2
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +114 -74
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/index.js +50 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +19 -3
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +395 -85
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/parser.d.ts +4 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +88 -1
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/shell-parser.d.ts.map +1 -1
- package/dist/cli/shell-parser.js.map +1 -1
- package/dist/cli/shell.js +13 -13
- package/dist/cli/shell.js.map +1 -1
- package/dist/core/factory.d.ts +4 -4
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js +4 -34
- package/dist/core/factory.js.map +1 -1
- package/dist/core/mcp-client.d.ts +2 -2
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +18 -22
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/transports.d.ts +6 -2
- package/dist/core/transports.d.ts.map +1 -1
- package/dist/core/transports.js +58 -37
- package/dist/core/transports.js.map +1 -1
- package/dist/lib/auth/keychain.d.ts.map +1 -1
- package/dist/lib/auth/keychain.js +5 -2
- package/dist/lib/auth/keychain.js.map +1 -1
- package/dist/lib/auth/oauth-flow.d.ts.map +1 -1
- package/dist/lib/auth/oauth-flow.js +14 -2
- package/dist/lib/auth/oauth-flow.js.map +1 -1
- package/dist/lib/auth/oauth-provider.d.ts +19 -8
- package/dist/lib/auth/oauth-provider.d.ts.map +1 -1
- package/dist/lib/auth/oauth-provider.js +79 -29
- package/dist/lib/auth/oauth-provider.js.map +1 -1
- package/dist/lib/auth/oauth-token-manager.d.ts +8 -0
- package/dist/lib/auth/oauth-token-manager.d.ts.map +1 -1
- package/dist/lib/auth/oauth-token-manager.js +33 -0
- package/dist/lib/auth/oauth-token-manager.js.map +1 -1
- package/dist/lib/auth/{auth-profiles.d.ts → profiles.d.ts} +7 -2
- package/dist/lib/auth/profiles.d.ts.map +1 -0
- package/dist/lib/auth/profiles.js +188 -0
- package/dist/lib/auth/profiles.js.map +1 -0
- package/dist/lib/auth/token-refresh.js +1 -1
- package/dist/lib/auth/token-refresh.js.map +1 -1
- package/dist/lib/bridge-client.js.map +1 -1
- package/dist/lib/bridge-manager.d.ts +2 -3
- package/dist/lib/bridge-manager.d.ts.map +1 -1
- package/dist/lib/bridge-manager.js +48 -63
- package/dist/lib/bridge-manager.js.map +1 -1
- package/dist/lib/cleanup.d.ts +5 -0
- package/dist/lib/cleanup.d.ts.map +1 -0
- package/dist/lib/cleanup.js +48 -0
- package/dist/lib/cleanup.js.map +1 -0
- package/dist/lib/config.d.ts +3 -3
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +5 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/logger.d.ts +5 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +10 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/schema-validator.d.ts +36 -0
- package/dist/lib/schema-validator.d.ts.map +1 -0
- package/dist/lib/schema-validator.js +220 -0
- package/dist/lib/schema-validator.js.map +1 -0
- package/dist/lib/session-client.d.ts +2 -2
- package/dist/lib/session-client.d.ts.map +1 -1
- package/dist/lib/session-client.js +9 -9
- package/dist/lib/session-client.js.map +1 -1
- package/dist/lib/sessions.d.ts +6 -1
- package/dist/lib/sessions.d.ts.map +1 -1
- package/dist/lib/sessions.js +72 -14
- package/dist/lib/sessions.js.map +1 -1
- package/dist/lib/types.d.ts +17 -25
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/utils.d.ts +4 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +24 -3
- package/dist/lib/utils.js.map +1 -1
- package/{claude-skill → docs/claude-skill}/SKILL.md +2 -2
- package/package.json +17 -8
- package/TESTING.md +0 -212
- package/dist/lib/auth/auth-profiles.d.ts.map +0 -1
- package/dist/lib/auth/auth-profiles.js +0 -105
- package/dist/lib/auth/auth-profiles.js.map +0 -1
- /package/{claude-skill → docs/claude-skill}/README.md +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-token-manager.js","sourceRoot":"","sources":["../../../src/lib/auth/oauth-token-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAEvG,MAAM,MAAM,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAGnD,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAG1C,MAAM,qBAAqB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-token-manager.js","sourceRoot":"","sources":["../../../src/lib/auth/oauth-token-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,10 @@ export declare function loadAuthProfiles(): Promise<AuthProfilesStorage>;
|
|
|
3
3
|
export declare function listAuthProfiles(): Promise<AuthProfile[]>;
|
|
4
4
|
export declare function getAuthProfile(serverUrl: string, profileName: string): Promise<AuthProfile | undefined>;
|
|
5
5
|
export declare function saveAuthProfile(profile: AuthProfile): Promise<void>;
|
|
6
|
-
export declare function
|
|
7
|
-
|
|
6
|
+
export declare function updateAuthProfileRefreshedAt(serverUrl: string, profileName: string): Promise<void>;
|
|
7
|
+
export interface DeleteAuthProfilesResult {
|
|
8
|
+
count: number;
|
|
9
|
+
affectedSessions: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function deleteAuthProfiles(serverUrl?: string, profileName?: string): Promise<DeleteAuthProfilesResult>;
|
|
12
|
+
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/profiles.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA8EpE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAGrE;AAKD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAiB/D;AAMD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAIlC;AAMD,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE;AAMD,wBAAsB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxG;AAKD,MAAM,WAAW,wBAAwB;IAEvC,KAAK,EAAE,MAAM,CAAC;IAEd,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAcD,wBAAsB,kBAAkB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAyGnC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { readFile, writeFile, rename, unlink } from 'fs/promises';
|
|
2
|
+
import { tmpdir } from 'os';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { getAuthProfilesFilePath, fileExists, ensureDir, getMcpcHome, getServerHost } from '../utils.js';
|
|
5
|
+
import { loadSessions } from '../sessions.js';
|
|
6
|
+
import { withFileLock } from '../file-lock.js';
|
|
7
|
+
import { createLogger } from '../logger.js';
|
|
8
|
+
import { ClientError } from '../errors.js';
|
|
9
|
+
import { removeKeychainOAuthClientInfo, removeKeychainOAuthTokenInfo, } from './keychain.js';
|
|
10
|
+
const logger = createLogger('auth-profiles');
|
|
11
|
+
const AUTH_PROFILES_DEFAULT_CONTENT = JSON.stringify({ profiles: {} }, null, 2);
|
|
12
|
+
async function loadAuthProfilesInternal() {
|
|
13
|
+
const filePath = getAuthProfilesFilePath();
|
|
14
|
+
if (!(await fileExists(filePath))) {
|
|
15
|
+
logger.debug('Auth profiles file does not exist, returning empty profiles');
|
|
16
|
+
return { profiles: {} };
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const content = await readFile(filePath, 'utf-8');
|
|
20
|
+
const storage = JSON.parse(content);
|
|
21
|
+
if (!storage.profiles || typeof storage.profiles !== 'object') {
|
|
22
|
+
logger.warn('Invalid auth profiles file format, returning empty profiles');
|
|
23
|
+
return { profiles: {} };
|
|
24
|
+
}
|
|
25
|
+
return storage;
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
logger.warn(`Failed to load auth profiles: ${error.message}`);
|
|
29
|
+
return { profiles: {} };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function saveAuthProfilesInternal(storage) {
|
|
33
|
+
const filePath = getAuthProfilesFilePath();
|
|
34
|
+
await ensureDir(getMcpcHome());
|
|
35
|
+
const tempFile = join(tmpdir(), `mcpc-auth-profiles-${Date.now()}-${process.pid}.json`);
|
|
36
|
+
try {
|
|
37
|
+
const content = JSON.stringify(storage, null, 2);
|
|
38
|
+
await writeFile(tempFile, content, { encoding: 'utf-8', mode: 0o600 });
|
|
39
|
+
await rename(tempFile, filePath);
|
|
40
|
+
logger.debug('Auth profiles saved successfully');
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
try {
|
|
44
|
+
await unlink(tempFile);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
}
|
|
48
|
+
throw new ClientError(`Failed to save auth profiles: ${error.message}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export async function loadAuthProfiles() {
|
|
52
|
+
const filePath = getAuthProfilesFilePath();
|
|
53
|
+
return withFileLock(filePath, loadAuthProfilesInternal, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
54
|
+
}
|
|
55
|
+
export async function listAuthProfiles() {
|
|
56
|
+
const storage = await loadAuthProfiles();
|
|
57
|
+
const profiles = [];
|
|
58
|
+
for (const serverUrl in storage.profiles) {
|
|
59
|
+
const serverProfiles = storage.profiles[serverUrl];
|
|
60
|
+
if (serverProfiles) {
|
|
61
|
+
for (const profileName in serverProfiles) {
|
|
62
|
+
const profile = serverProfiles[profileName];
|
|
63
|
+
if (profile) {
|
|
64
|
+
profiles.push(profile);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return profiles;
|
|
70
|
+
}
|
|
71
|
+
export async function getAuthProfile(serverUrl, profileName) {
|
|
72
|
+
const storage = await loadAuthProfiles();
|
|
73
|
+
const host = getServerHost(serverUrl);
|
|
74
|
+
return storage.profiles[host]?.[profileName];
|
|
75
|
+
}
|
|
76
|
+
export async function saveAuthProfile(profile) {
|
|
77
|
+
const filePath = getAuthProfilesFilePath();
|
|
78
|
+
return withFileLock(filePath, async () => {
|
|
79
|
+
const storage = await loadAuthProfilesInternal();
|
|
80
|
+
const host = getServerHost(profile.serverUrl);
|
|
81
|
+
if (!storage.profiles[host]) {
|
|
82
|
+
storage.profiles[host] = {};
|
|
83
|
+
}
|
|
84
|
+
storage.profiles[host][profile.name] = profile;
|
|
85
|
+
await saveAuthProfilesInternal(storage);
|
|
86
|
+
logger.debug(`Saved auth profile: ${profile.name} for ${host}`);
|
|
87
|
+
}, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
88
|
+
}
|
|
89
|
+
export async function updateAuthProfileRefreshedAt(serverUrl, profileName) {
|
|
90
|
+
const filePath = getAuthProfilesFilePath();
|
|
91
|
+
return withFileLock(filePath, async () => {
|
|
92
|
+
const storage = await loadAuthProfilesInternal();
|
|
93
|
+
const host = getServerHost(serverUrl);
|
|
94
|
+
const profile = storage.profiles[host]?.[profileName];
|
|
95
|
+
if (profile) {
|
|
96
|
+
profile.refreshedAt = new Date().toISOString();
|
|
97
|
+
await saveAuthProfilesInternal(storage);
|
|
98
|
+
logger.debug(`Updated refreshedAt for profile: ${profileName} on ${host}`);
|
|
99
|
+
}
|
|
100
|
+
}, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
101
|
+
}
|
|
102
|
+
export async function deleteAuthProfiles(serverUrl, profileName) {
|
|
103
|
+
const filePath = getAuthProfilesFilePath();
|
|
104
|
+
if (!(await fileExists(filePath))) {
|
|
105
|
+
return { count: 0, affectedSessions: [] };
|
|
106
|
+
}
|
|
107
|
+
const deleteSpecific = serverUrl !== undefined && profileName !== undefined;
|
|
108
|
+
return withFileLock(filePath, async () => {
|
|
109
|
+
const storage = await loadAuthProfilesInternal();
|
|
110
|
+
const profilesToDelete = [];
|
|
111
|
+
if (deleteSpecific) {
|
|
112
|
+
const host = getServerHost(serverUrl);
|
|
113
|
+
const profile = storage.profiles[host]?.[profileName];
|
|
114
|
+
if (profile) {
|
|
115
|
+
profilesToDelete.push(profile);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
for (const host in storage.profiles) {
|
|
120
|
+
const serverProfiles = storage.profiles[host];
|
|
121
|
+
if (serverProfiles) {
|
|
122
|
+
for (const name in serverProfiles) {
|
|
123
|
+
const profile = serverProfiles[name];
|
|
124
|
+
if (profile) {
|
|
125
|
+
profilesToDelete.push(profile);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (profilesToDelete.length === 0) {
|
|
132
|
+
if (!deleteSpecific) {
|
|
133
|
+
try {
|
|
134
|
+
await unlink(filePath);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return { count: 0, affectedSessions: [] };
|
|
140
|
+
}
|
|
141
|
+
const sessionsStorage = await loadSessions();
|
|
142
|
+
const affectedSessions = [];
|
|
143
|
+
for (const session of Object.values(sessionsStorage.sessions)) {
|
|
144
|
+
if (session.profileName && session.server.url) {
|
|
145
|
+
const sessionHost = getServerHost(session.server.url);
|
|
146
|
+
for (const profile of profilesToDelete) {
|
|
147
|
+
const profileHost = getServerHost(profile.serverUrl);
|
|
148
|
+
if (sessionHost === profileHost && session.profileName === profile.name) {
|
|
149
|
+
affectedSessions.push(session.name);
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
for (const profile of profilesToDelete) {
|
|
156
|
+
try {
|
|
157
|
+
await removeKeychainOAuthClientInfo(profile.serverUrl, profile.name);
|
|
158
|
+
await removeKeychainOAuthTokenInfo(profile.serverUrl, profile.name);
|
|
159
|
+
logger.debug(`Removed keychain entries for profile: ${profile.name} on ${getServerHost(profile.serverUrl)}`);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
logger.warn(`Failed to remove keychain entries for ${profile.name}:`, error);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (deleteSpecific) {
|
|
166
|
+
const host = getServerHost(serverUrl);
|
|
167
|
+
const serverProfiles = storage.profiles[host];
|
|
168
|
+
if (serverProfiles) {
|
|
169
|
+
delete serverProfiles[profileName];
|
|
170
|
+
if (Object.keys(serverProfiles).length === 0) {
|
|
171
|
+
delete storage.profiles[host];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
await saveAuthProfilesInternal(storage);
|
|
175
|
+
logger.debug(`Deleted auth profile: ${profileName} for ${host}`);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
try {
|
|
179
|
+
await unlink(filePath);
|
|
180
|
+
logger.debug('Removed profiles.json');
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return { count: profilesToDelete.length, affectedSessions };
|
|
186
|
+
}, AUTH_PROFILES_DEFAULT_CONTENT);
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/lib/auth/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAuthProfile, saveAuthProfile } from '../auth/
|
|
1
|
+
import { getAuthProfile, saveAuthProfile } from '../auth/profiles.js';
|
|
2
2
|
import { createLogger } from '../logger.js';
|
|
3
3
|
import { createReauthError, DEFAULT_AUTH_PROFILE } from './oauth-utils.js';
|
|
4
4
|
import { readKeychainOAuthTokenInfo, storeKeychainOAuthTokenInfo, readKeychainOAuthClientInfo } from './keychain.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../../src/lib/auth/token-refresh.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../../src/lib/auth/token-refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-client.js","sourceRoot":"","sources":["../../src/lib/bridge-client.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAe,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAG7C,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAGtC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC;AAEjC,MAAM,OAAO,YAAa,SAAQ,YAAY;IACpC,MAAM,GAAkB,IAAI,CAAC;IAC7B,UAAU,CAAS;IACnB,MAAM,GAAG,EAAE,CAAC;IACZ,eAAe,GAAG,IAAI,GAAG,EAI7B,CAAC;IAEL,YAAY,UAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAMD,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAEhE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,CAAC,EAAc,
|
|
1
|
+
{"version":3,"file":"bridge-client.js","sourceRoot":"","sources":["../../src/lib/bridge-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ServerConfig } from './types.js';
|
|
2
2
|
export interface StartBridgeOptions {
|
|
3
3
|
sessionName: string;
|
|
4
|
-
|
|
4
|
+
serverConfig: ServerConfig;
|
|
5
5
|
verbose?: boolean;
|
|
6
6
|
profileName?: string;
|
|
7
7
|
headers?: Record<string, string>;
|
|
8
8
|
}
|
|
9
9
|
export interface StartBridgeResult {
|
|
10
10
|
pid: number;
|
|
11
|
-
socketPath: string;
|
|
12
11
|
}
|
|
13
12
|
export declare function startBridge(options: StartBridgeOptions): Promise<StartBridgeResult>;
|
|
14
13
|
export declare function stopBridge(sessionName: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-manager.d.ts","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"bridge-manager.d.ts","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAsBhE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwFzF;AAMD,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCnE;AASD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwDnF;AAqHD,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2D5E"}
|
|
@@ -2,13 +2,13 @@ import { spawn } from 'child_process';
|
|
|
2
2
|
import { unlink } from 'fs/promises';
|
|
3
3
|
import { join, dirname } from 'path';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
|
-
import {
|
|
5
|
+
import { getSocketPath, waitForFile, isProcessAlive, fileExists, getLogsDir } from './utils.js';
|
|
6
6
|
import { updateSession, getSession } from './sessions.js';
|
|
7
7
|
import { createLogger } from './logger.js';
|
|
8
8
|
import { ClientError, NetworkError } from './errors.js';
|
|
9
9
|
import { BridgeClient } from './bridge-client.js';
|
|
10
10
|
import { readKeychainOAuthTokenInfo, readKeychainOAuthClientInfo, readKeychainSessionHeaders } from './auth/keychain.js';
|
|
11
|
-
import { getAuthProfile } from './auth/
|
|
11
|
+
import { getAuthProfile } from './auth/profiles.js';
|
|
12
12
|
const logger = createLogger('bridge-manager');
|
|
13
13
|
function getBridgeExecutable() {
|
|
14
14
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -16,20 +16,18 @@ function getBridgeExecutable() {
|
|
|
16
16
|
return join(__dirname, '..', 'bridge', 'index.js');
|
|
17
17
|
}
|
|
18
18
|
export async function startBridge(options) {
|
|
19
|
-
const { sessionName,
|
|
19
|
+
const { sessionName, serverConfig, verbose, profileName, headers } = options;
|
|
20
20
|
logger.debug(`Launching bridge for session: ${sessionName}`);
|
|
21
|
-
const socketPath =
|
|
22
|
-
if (await fileExists(socketPath)) {
|
|
21
|
+
const socketPath = getSocketPath(sessionName);
|
|
22
|
+
if (process.platform !== 'win32' && (await fileExists(socketPath))) {
|
|
23
23
|
logger.debug(`Removing existing socket: ${socketPath}`);
|
|
24
24
|
await unlink(socketPath);
|
|
25
25
|
}
|
|
26
|
-
const sanitizedTarget = { ...
|
|
27
|
-
|
|
28
|
-
delete sanitizedTarget.headers;
|
|
29
|
-
}
|
|
26
|
+
const sanitizedTarget = { ...serverConfig };
|
|
27
|
+
delete sanitizedTarget.headers;
|
|
30
28
|
const bridgeExecutable = getBridgeExecutable();
|
|
31
29
|
const targetJson = JSON.stringify(sanitizedTarget);
|
|
32
|
-
const args = [sessionName,
|
|
30
|
+
const args = [sessionName, targetJson];
|
|
33
31
|
if (verbose) {
|
|
34
32
|
args.push('--verbose');
|
|
35
33
|
}
|
|
@@ -63,10 +61,10 @@ export async function startBridge(options) {
|
|
|
63
61
|
throw new ClientError(`Bridge failed to start: socket file not created within timeout. Check bridge logs.`);
|
|
64
62
|
}
|
|
65
63
|
if (profileName || headers) {
|
|
66
|
-
await sendAuthCredentialsToBridge(socketPath,
|
|
64
|
+
await sendAuthCredentialsToBridge(socketPath, serverConfig.url || serverConfig.command || '', profileName, headers);
|
|
67
65
|
}
|
|
68
66
|
logger.debug(`Bridge started successfully for session: ${sessionName}`);
|
|
69
|
-
return { pid
|
|
67
|
+
return { pid };
|
|
70
68
|
}
|
|
71
69
|
export async function stopBridge(sessionName) {
|
|
72
70
|
logger.debug(`Stopping bridge for: ${sessionName}`);
|
|
@@ -87,7 +85,7 @@ export async function stopBridge(sessionName) {
|
|
|
87
85
|
catch (error) {
|
|
88
86
|
logger.warn('Error killing bridge process:', error);
|
|
89
87
|
}
|
|
90
|
-
logger.
|
|
88
|
+
logger.debug(`Bridge stopped for ${sessionName}`);
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
91
|
export async function restartBridge(sessionName) {
|
|
@@ -101,22 +99,23 @@ export async function restartBridge(sessionName) {
|
|
|
101
99
|
}
|
|
102
100
|
catch {
|
|
103
101
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
: { type: 'stdio', command: session.target };
|
|
102
|
+
const serverConfig = { ...session.server };
|
|
103
|
+
delete serverConfig.headers;
|
|
107
104
|
let headers;
|
|
108
|
-
|
|
105
|
+
const expectedHeaderKeys = session.server.headers ? Object.keys(session.server.headers) : [];
|
|
106
|
+
if (expectedHeaderKeys.length > 0) {
|
|
109
107
|
headers = await readKeychainSessionHeaders(sessionName);
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
const retrievedHeaderKeys = new Set(Object.keys(headers || {}));
|
|
109
|
+
const missingKeys = expectedHeaderKeys.filter(key => !retrievedHeaderKeys.has(key));
|
|
110
|
+
if (missingKeys.length > 0) {
|
|
111
|
+
throw new ClientError(`Missing HTTP header(s) in keychain for session ${sessionName}: ${missingKeys.join(', ')}. ` +
|
|
113
112
|
`The session may need to be recreated with "mcpc ${sessionName} close" followed by a new connect.`);
|
|
114
113
|
}
|
|
115
|
-
logger.debug(`Retrieved ${
|
|
114
|
+
logger.debug(`Retrieved ${expectedHeaderKeys.length} headers from keychain for failover`);
|
|
116
115
|
}
|
|
117
116
|
const bridgeOptions = {
|
|
118
117
|
sessionName,
|
|
119
|
-
|
|
118
|
+
serverConfig: serverConfig,
|
|
120
119
|
};
|
|
121
120
|
if (headers) {
|
|
122
121
|
bridgeOptions.headers = headers;
|
|
@@ -124,13 +123,10 @@ export async function restartBridge(sessionName) {
|
|
|
124
123
|
if (session.profileName) {
|
|
125
124
|
bridgeOptions.profileName = session.profileName;
|
|
126
125
|
}
|
|
127
|
-
const { pid
|
|
128
|
-
await updateSession(sessionName, {
|
|
129
|
-
pid,
|
|
130
|
-
socketPath,
|
|
131
|
-
});
|
|
126
|
+
const { pid } = await startBridge(bridgeOptions);
|
|
127
|
+
await updateSession(sessionName, { pid });
|
|
132
128
|
logger.debug(`Bridge restarted for ${sessionName} with PID: ${pid}`);
|
|
133
|
-
return { pid
|
|
129
|
+
return { pid };
|
|
134
130
|
}
|
|
135
131
|
async function sendAuthCredentialsToBridge(socketPath, serverUrl, profileName, headers) {
|
|
136
132
|
const credentials = {
|
|
@@ -176,14 +172,11 @@ async function checkBridgeHealth(socketPath) {
|
|
|
176
172
|
const client = new BridgeClient(socketPath);
|
|
177
173
|
try {
|
|
178
174
|
await client.connect();
|
|
179
|
-
await client.request('
|
|
180
|
-
return true;
|
|
175
|
+
await client.request('getServerDetails');
|
|
176
|
+
return { healthy: true };
|
|
181
177
|
}
|
|
182
178
|
catch (error) {
|
|
183
|
-
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
throw error;
|
|
179
|
+
return { healthy: false, error: error };
|
|
187
180
|
}
|
|
188
181
|
finally {
|
|
189
182
|
await client.close();
|
|
@@ -200,41 +193,33 @@ export async function ensureBridgeReady(sessionName) {
|
|
|
200
193
|
`To reconnect, run: mcpc ${sessionName} connect\n` +
|
|
201
194
|
`To remove the expired session, run: mcpc ${sessionName} close`);
|
|
202
195
|
}
|
|
203
|
-
|
|
204
|
-
throw new ClientError(`Session ${sessionName} has no socket path`);
|
|
205
|
-
}
|
|
196
|
+
const socketPath = getSocketPath(sessionName);
|
|
206
197
|
const processAlive = session.pid ? isProcessAlive(session.pid) : false;
|
|
207
198
|
if (processAlive) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
199
|
+
const result = await checkBridgeHealth(socketPath);
|
|
200
|
+
if (result.healthy) {
|
|
201
|
+
logger.debug(`Bridge for ${sessionName} is healthy`);
|
|
202
|
+
return socketPath;
|
|
203
|
+
}
|
|
204
|
+
if (result.error instanceof NetworkError) {
|
|
214
205
|
logger.warn(`Bridge process alive but socket not responding for ${sessionName}`);
|
|
215
206
|
}
|
|
216
|
-
|
|
217
|
-
throw new ClientError(`Bridge for ${sessionName} failed to connect to MCP server: ${error.message}`);
|
|
207
|
+
else if (result.error) {
|
|
208
|
+
throw new ClientError(`Bridge for ${sessionName} failed to connect to MCP server: ${result.error.message}`);
|
|
218
209
|
}
|
|
219
210
|
}
|
|
220
211
|
else {
|
|
221
|
-
logger.
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
if (error instanceof ClientError) {
|
|
234
|
-
throw error;
|
|
235
|
-
}
|
|
236
|
-
throw new ClientError(`Bridge for ${sessionName} failed to connect to MCP server: ${error.message}. ` +
|
|
237
|
-
`Check logs at ~/.mcpc/logs/bridge-${sessionName}.log for details.`);
|
|
238
|
-
}
|
|
212
|
+
logger.debug(`Bridge process not alive for ${sessionName}, will try to restart it`);
|
|
213
|
+
}
|
|
214
|
+
await restartBridge(sessionName);
|
|
215
|
+
const result = await checkBridgeHealth(socketPath);
|
|
216
|
+
if (result.healthy) {
|
|
217
|
+
logger.debug(`Bridge for ${sessionName} passed health check`);
|
|
218
|
+
return socketPath;
|
|
219
|
+
}
|
|
220
|
+
const errorMsg = result.error?.message || 'unknown error';
|
|
221
|
+
const logPath = `${getLogsDir()}/bridge-${sessionName}.log`;
|
|
222
|
+
throw new ClientError(`Bridge for ${sessionName} failed after restart: ${errorMsg}. ` +
|
|
223
|
+
`For details, check logs at ${logPath}`);
|
|
239
224
|
}
|
|
240
225
|
//# sourceMappingURL=bridge-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-manager.js","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge-manager.js","sourceRoot":"","sources":["../../src/lib/bridge-manager.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAG9C,SAAS,mBAAmB;IAG1B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAGtC,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;AA6BD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE7E,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;IAG7D,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAK9C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAID,MAAM,eAAe,GAAiB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC1D,OAAO,eAAe,CAAC,OAAO,CAAC;IAG/B,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAKD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAGnC,MAAM,aAAa,GAAiB,KAAK,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE;QAC7E,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IAGH,aAAa,CAAC,KAAK,EAAE,CAAC;IAEtB,MAAM,CAAC,KAAK,CAAC,oCAAoC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,WAAW,CAAC,wCAAwC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;IAG9B,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QAEP,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QACD,MAAM,IAAI,WAAW,CACnB,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAID,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,2BAA2B,CAC/B,UAAU,EACV,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,OAAO,IAAI,EAAE,EAC9C,WAAW,EACX,OAAO,CACR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,4CAA4C,WAAW,EAAE,CAAC,CAAC;IAExE,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB;IAClD,MAAM,CAAC,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAGD,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAGrC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAGxD,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;AAKH,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,CAAC,KAAK,CAAC,gCAAgC,WAAW,KAAK,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAGD,MAAM,YAAY,GAAiB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACzD,OAAO,YAAY,CAAC,OAAO,CAAC;IAG5B,IAAI,OAA2C,CAAC;IAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7F,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,MAAM,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CACnB,kDAAkD,WAAW,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC1F,mDAAmD,WAAW,oCAAoC,CACrG,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,aAAa,kBAAkB,CAAC,MAAM,qCAAqC,CAAC,CAAC;IAC5F,CAAC;IAGD,MAAM,aAAa,GAAuB;QACxC,WAAW;QACX,YAAY,EAAE,YAAY;KAC3B,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IAGjD,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAE1C,MAAM,CAAC,KAAK,CAAC,wBAAwB,WAAW,cAAc,GAAG,EAAE,CAAC,CAAC;IAErE,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC;AAWD,KAAK,UAAU,2BAA2B,CACxC,UAAkB,EAClB,SAAiB,EACjB,WAAoB,EACpB,OAAgC;IAGhC,MAAM,WAAW,GAAoB;QACnC,SAAS;QAET,WAAW,EAAE,WAAW,IAAI,OAAO;KACpC,CAAC;IAGF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,2BAA2B,WAAW,QAAQ,SAAS,EAAE,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,CAAC;YAEZ,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAChF,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;gBACzB,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC/C,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,yCAAyC,WAAW,EAAE,CAAC,CAAC;YACvE,CAAC;YAGD,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACrF,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC;gBACzB,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBAC3C,MAAM,CAAC,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAGD,IAAI,OAAO,EAAE,CAAC;QACZ,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAClF,CAAC;IAGD,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAGD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC/D,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAiBD,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAGvB,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;IACnD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,WAAW,CACnB,WAAW,WAAW,gBAAgB;YACtC,4DAA4D;YAC5D,2BAA2B,WAAW,YAAY;YAClD,4CAA4C,WAAW,QAAQ,CAChE,CAAC;IACJ,CAAC;IAGD,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAG9C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEvE,IAAI,YAAY,EAAE,CAAC;QAEjB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,cAAc,WAAW,aAAa,CAAC,CAAC;YACrD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,YAAY,YAAY,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,sDAAsD,WAAW,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAExB,MAAM,IAAI,WAAW,CACnB,cAAc,WAAW,qCAAqC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,gCAAgC,WAAW,0BAA0B,CAAC,CAAC;IACtF,CAAC;IAGD,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAGjC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,cAAc,WAAW,sBAAsB,CAAC,CAAC;QAC9D,OAAO,UAAU,CAAC;IACpB,CAAC;IAGD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;IAC1D,MAAM,OAAO,GAAG,GAAG,UAAU,EAAE,WAAW,WAAW,MAAM,CAAC;IAC5D,MAAM,IAAI,WAAW,CACnB,cAAc,WAAW,0BAA0B,QAAQ,IAAI;QAC/D,8BAA8B,OAAO,EAAE,CACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/lib/cleanup.ts"],"names":[],"mappings":"AAqBA,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,MAAM,CAAC,CAyDjB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { readdir, unlink, stat } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { getLogsDir, fileExists } from './utils.js';
|
|
4
|
+
import { createLogger } from './logger.js';
|
|
5
|
+
const logger = createLogger('cleanup');
|
|
6
|
+
export async function cleanupOrphanedLogFiles(activeSessions, options = {}) {
|
|
7
|
+
const { maxAgeDays = 7, skipSession } = options;
|
|
8
|
+
let deletedCount = 0;
|
|
9
|
+
const logsDir = getLogsDir();
|
|
10
|
+
if (!(await fileExists(logsDir))) {
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
const files = await readdir(logsDir);
|
|
14
|
+
const bridgeLogPattern = /^bridge-(@.+?)\.log(?:\.\d+)?$/;
|
|
15
|
+
const cutoffTime = Date.now() - maxAgeDays * 24 * 60 * 60 * 1000;
|
|
16
|
+
logger.debug(`Cleaning orphaned logs older than ${maxAgeDays} days`);
|
|
17
|
+
for (const file of files) {
|
|
18
|
+
const match = file.match(bridgeLogPattern);
|
|
19
|
+
if (!match || !match[1])
|
|
20
|
+
continue;
|
|
21
|
+
const sessionName = match[1];
|
|
22
|
+
if (skipSession && sessionName === skipSession) {
|
|
23
|
+
logger.debug(`Skipping current session's log file: ${file}`);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (!activeSessions[sessionName]) {
|
|
27
|
+
const filePath = join(logsDir, file);
|
|
28
|
+
try {
|
|
29
|
+
const fileStats = await stat(filePath);
|
|
30
|
+
const fileAge = fileStats.mtime.getTime();
|
|
31
|
+
const ageInDays = Math.floor((Date.now() - fileAge) / (24 * 60 * 60 * 1000));
|
|
32
|
+
if (fileAge < cutoffTime) {
|
|
33
|
+
await unlink(filePath);
|
|
34
|
+
deletedCount++;
|
|
35
|
+
logger.debug(`Removed orphaned log file: ${file} (age: ${ageInDays} days)`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
logger.debug(`Keeping recent orphaned log file: ${file} (age: ${ageInDays} days)`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
logger.debug(`Failed to process log file: ${file}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return deletedCount;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/lib/cleanup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAYvC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,cAAuC,EACvC,UAAyD,EAAE;IAE3D,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAGrC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;IAG1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEjE,MAAM,CAAC,KAAK,CAAC,qCAAqC,UAAU,OAAO,CAAC,CAAC;IAErE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,SAAS;QAElC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAG7B,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QAGD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;gBAG7E,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACvB,YAAY,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,UAAU,SAAS,QAAQ,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,UAAU,SAAS,QAAQ,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBAEP,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|