@helmisatria/mcp-chrome-bridge 1.0.30
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 +183 -0
- package/dist/README.md +25 -0
- package/dist/agent/attachment-service.d.ts +83 -0
- package/dist/agent/attachment-service.js +370 -0
- package/dist/agent/attachment-service.js.map +1 -0
- package/dist/agent/ccr-detector.d.ts +59 -0
- package/dist/agent/ccr-detector.js +311 -0
- package/dist/agent/ccr-detector.js.map +1 -0
- package/dist/agent/chat-service.d.ts +50 -0
- package/dist/agent/chat-service.js +439 -0
- package/dist/agent/chat-service.js.map +1 -0
- package/dist/agent/db/client.d.ts +26 -0
- package/dist/agent/db/client.js +244 -0
- package/dist/agent/db/client.js.map +1 -0
- package/dist/agent/db/index.d.ts +5 -0
- package/dist/agent/db/index.js +22 -0
- package/dist/agent/db/index.js.map +1 -0
- package/dist/agent/db/schema.d.ts +711 -0
- package/dist/agent/db/schema.js +121 -0
- package/dist/agent/db/schema.js.map +1 -0
- package/dist/agent/directory-picker.d.ts +11 -0
- package/dist/agent/directory-picker.js +149 -0
- package/dist/agent/directory-picker.js.map +1 -0
- package/dist/agent/engines/claude.d.ts +79 -0
- package/dist/agent/engines/claude.js +1338 -0
- package/dist/agent/engines/claude.js.map +1 -0
- package/dist/agent/engines/codex.d.ts +48 -0
- package/dist/agent/engines/codex.js +822 -0
- package/dist/agent/engines/codex.js.map +1 -0
- package/dist/agent/engines/types.d.ts +133 -0
- package/dist/agent/engines/types.js +3 -0
- package/dist/agent/engines/types.js.map +1 -0
- package/dist/agent/message-service.d.ts +56 -0
- package/dist/agent/message-service.js +198 -0
- package/dist/agent/message-service.js.map +1 -0
- package/dist/agent/open-project.d.ts +25 -0
- package/dist/agent/open-project.js +469 -0
- package/dist/agent/open-project.js.map +1 -0
- package/dist/agent/project-service.d.ts +49 -0
- package/dist/agent/project-service.js +254 -0
- package/dist/agent/project-service.js.map +1 -0
- package/dist/agent/project-types.d.ts +27 -0
- package/dist/agent/project-types.js +3 -0
- package/dist/agent/project-types.js.map +1 -0
- package/dist/agent/session-service.d.ts +198 -0
- package/dist/agent/session-service.js +292 -0
- package/dist/agent/session-service.js.map +1 -0
- package/dist/agent/storage.d.ts +27 -0
- package/dist/agent/storage.js +73 -0
- package/dist/agent/storage.js.map +1 -0
- package/dist/agent/stream-manager.d.ts +42 -0
- package/dist/agent/stream-manager.js +243 -0
- package/dist/agent/stream-manager.js.map +1 -0
- package/dist/agent/tool-bridge.d.ts +44 -0
- package/dist/agent/tool-bridge.js +50 -0
- package/dist/agent/tool-bridge.js.map +1 -0
- package/dist/agent/types.d.ts +6 -0
- package/dist/agent/types.js +3 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +224 -0
- package/dist/cli.js.map +1 -0
- package/dist/constant/index.d.ts +60 -0
- package/dist/constant/index.js +80 -0
- package/dist/constant/index.js.map +1 -0
- package/dist/file-handler.d.ts +41 -0
- package/dist/file-handler.js +295 -0
- package/dist/file-handler.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/mcp-server-stdio.d.ts +72 -0
- package/dist/mcp/mcp-server-stdio.js +143 -0
- package/dist/mcp/mcp-server-stdio.js.map +1 -0
- package/dist/mcp/mcp-server.d.ts +36 -0
- package/dist/mcp/mcp-server.js +26 -0
- package/dist/mcp/mcp-server.js.map +1 -0
- package/dist/mcp/register-tools.d.ts +2 -0
- package/dist/mcp/register-tools.js +148 -0
- package/dist/mcp/register-tools.js.map +1 -0
- package/dist/mcp/stdio-config.json +3 -0
- package/dist/native-messaging-host.d.ts +42 -0
- package/dist/native-messaging-host.js +312 -0
- package/dist/native-messaging-host.js.map +1 -0
- package/dist/run_host.bat +194 -0
- package/dist/run_host.sh +264 -0
- package/dist/scripts/browser-config.d.ts +28 -0
- package/dist/scripts/browser-config.js +229 -0
- package/dist/scripts/browser-config.js.map +1 -0
- package/dist/scripts/build.d.ts +1 -0
- package/dist/scripts/build.js +126 -0
- package/dist/scripts/build.js.map +1 -0
- package/dist/scripts/constant.d.ts +4 -0
- package/dist/scripts/constant.js +8 -0
- package/dist/scripts/constant.js.map +1 -0
- package/dist/scripts/doctor.d.ts +70 -0
- package/dist/scripts/doctor.js +930 -0
- package/dist/scripts/doctor.js.map +1 -0
- package/dist/scripts/postinstall.d.ts +2 -0
- package/dist/scripts/postinstall.js +246 -0
- package/dist/scripts/postinstall.js.map +1 -0
- package/dist/scripts/register-dev.d.ts +1 -0
- package/dist/scripts/register-dev.js +5 -0
- package/dist/scripts/register-dev.js.map +1 -0
- package/dist/scripts/register.d.ts +2 -0
- package/dist/scripts/register.js +28 -0
- package/dist/scripts/register.js.map +1 -0
- package/dist/scripts/report.d.ts +96 -0
- package/dist/scripts/report.js +686 -0
- package/dist/scripts/report.js.map +1 -0
- package/dist/scripts/utils.d.ts +64 -0
- package/dist/scripts/utils.js +443 -0
- package/dist/scripts/utils.js.map +1 -0
- package/dist/server/index.d.ts +35 -0
- package/dist/server/index.js +312 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/agent.d.ts +21 -0
- package/dist/server/routes/agent.js +971 -0
- package/dist/server/routes/agent.js.map +1 -0
- package/dist/server/routes/index.d.ts +4 -0
- package/dist/server/routes/index.js +9 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/trace-analyzer.d.ts +14 -0
- package/dist/trace-analyzer.js +113 -0
- package/dist/trace-analyzer.js.map +1 -0
- package/dist/util/logger.d.ts +1 -0
- package/dist/util/logger.js +43 -0
- package/dist/util/logger.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateRootPath = validateRootPath;
|
|
7
|
+
exports.createProjectDirectory = createProjectDirectory;
|
|
8
|
+
exports.listProjects = listProjects;
|
|
9
|
+
exports.getProject = getProject;
|
|
10
|
+
exports.upsertProject = upsertProject;
|
|
11
|
+
exports.deleteProject = deleteProject;
|
|
12
|
+
exports.touchProjectActivity = touchProjectActivity;
|
|
13
|
+
exports.updateProjectClaudeSessionId = updateProjectClaudeSessionId;
|
|
14
|
+
/**
|
|
15
|
+
* Project Service - Database-backed implementation using Drizzle ORM.
|
|
16
|
+
*
|
|
17
|
+
* Provides CRUD operations for agent projects with:
|
|
18
|
+
* - Type-safe database queries
|
|
19
|
+
* - Path validation with security checks
|
|
20
|
+
* - Consistent with AgentProject interface from shared types
|
|
21
|
+
*/
|
|
22
|
+
const node_crypto_1 = require("node:crypto");
|
|
23
|
+
const promises_1 = require("node:fs/promises");
|
|
24
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
25
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
26
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
27
|
+
const db_1 = require("./db");
|
|
28
|
+
// ============================================================
|
|
29
|
+
// Security Configuration
|
|
30
|
+
// ============================================================
|
|
31
|
+
/**
|
|
32
|
+
* Allowed base directories for project roots.
|
|
33
|
+
* Only paths under these directories are considered safe.
|
|
34
|
+
*/
|
|
35
|
+
const ALLOWED_BASE_DIRS = [
|
|
36
|
+
node_os_1.default.homedir(),
|
|
37
|
+
process.env.USERPROFILE,
|
|
38
|
+
process.env.MCP_ALLOWED_WORKSPACE_BASE,
|
|
39
|
+
].filter((dir) => typeof dir === 'string' && dir.length > 0);
|
|
40
|
+
/**
|
|
41
|
+
* Validate a root path without creating it.
|
|
42
|
+
* Returns validation result including whether directory needs creation.
|
|
43
|
+
*/
|
|
44
|
+
async function validateRootPath(rootPath) {
|
|
45
|
+
const trimmed = rootPath.trim();
|
|
46
|
+
if (!trimmed) {
|
|
47
|
+
return {
|
|
48
|
+
valid: false,
|
|
49
|
+
absolute: '',
|
|
50
|
+
exists: false,
|
|
51
|
+
needsCreation: false,
|
|
52
|
+
error: 'Project rootPath must not be empty',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const absolute = node_path_1.default.isAbsolute(trimmed)
|
|
56
|
+
? node_path_1.default.resolve(trimmed)
|
|
57
|
+
: node_path_1.default.resolve(process.cwd(), trimmed);
|
|
58
|
+
// Security check: ensure path is under allowed base directories
|
|
59
|
+
const isAllowed = ALLOWED_BASE_DIRS.some((base) => absolute.startsWith(node_path_1.default.resolve(base)));
|
|
60
|
+
if (!isAllowed) {
|
|
61
|
+
return {
|
|
62
|
+
valid: false,
|
|
63
|
+
absolute,
|
|
64
|
+
exists: false,
|
|
65
|
+
needsCreation: false,
|
|
66
|
+
error: `Project rootPath must be under allowed directories: ${ALLOWED_BASE_DIRS.join(', ')}`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Check if path exists
|
|
70
|
+
try {
|
|
71
|
+
const s = await (0, promises_1.stat)(absolute);
|
|
72
|
+
if (!s.isDirectory()) {
|
|
73
|
+
return {
|
|
74
|
+
valid: false,
|
|
75
|
+
absolute,
|
|
76
|
+
exists: true,
|
|
77
|
+
needsCreation: false,
|
|
78
|
+
error: `Path exists but is not a directory: ${absolute}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return { valid: true, absolute, exists: true, needsCreation: false };
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
const error = err;
|
|
85
|
+
if (error.code === 'ENOENT') {
|
|
86
|
+
// Path doesn't exist but is valid - can be created
|
|
87
|
+
return { valid: true, absolute, exists: false, needsCreation: true };
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
valid: false,
|
|
91
|
+
absolute,
|
|
92
|
+
exists: false,
|
|
93
|
+
needsCreation: false,
|
|
94
|
+
error: error.message || 'Unknown error validating path',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Create a project directory after user confirmation.
|
|
100
|
+
* This should only be called after validateRootPath returns needsCreation: true.
|
|
101
|
+
*/
|
|
102
|
+
async function createProjectDirectory(absolutePath) {
|
|
103
|
+
// Re-validate for safety
|
|
104
|
+
const validation = await validateRootPath(absolutePath);
|
|
105
|
+
if (!validation.valid) {
|
|
106
|
+
throw new Error(validation.error || 'Invalid path');
|
|
107
|
+
}
|
|
108
|
+
if (validation.exists) {
|
|
109
|
+
throw new Error('Directory already exists');
|
|
110
|
+
}
|
|
111
|
+
await (0, promises_1.mkdir)(absolutePath, { recursive: true });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Normalize and validate root path.
|
|
115
|
+
* @param rootPath - The path to normalize
|
|
116
|
+
* @param allowCreate - If true, create directory if it doesn't exist
|
|
117
|
+
*/
|
|
118
|
+
async function normalizeRootPath(rootPath, allowCreate = false) {
|
|
119
|
+
const result = await validateRootPath(rootPath);
|
|
120
|
+
if (!result.valid) {
|
|
121
|
+
throw new Error(result.error || 'Invalid path');
|
|
122
|
+
}
|
|
123
|
+
if (result.needsCreation) {
|
|
124
|
+
if (allowCreate) {
|
|
125
|
+
await (0, promises_1.mkdir)(result.absolute, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
throw new Error(`Directory does not exist: ${result.absolute}. Use the validate-path API first and confirm creation with the user.`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return result.absolute;
|
|
132
|
+
}
|
|
133
|
+
// ============================================================
|
|
134
|
+
// Type Conversion
|
|
135
|
+
// ============================================================
|
|
136
|
+
/**
|
|
137
|
+
* Convert database row to AgentProject interface.
|
|
138
|
+
*/
|
|
139
|
+
function rowToProject(row) {
|
|
140
|
+
var _a, _b, _c, _d;
|
|
141
|
+
return {
|
|
142
|
+
id: row.id,
|
|
143
|
+
name: row.name,
|
|
144
|
+
description: (_a = row.description) !== null && _a !== void 0 ? _a : undefined,
|
|
145
|
+
rootPath: row.rootPath,
|
|
146
|
+
preferredCli: row.preferredCli,
|
|
147
|
+
selectedModel: (_b = row.selectedModel) !== null && _b !== void 0 ? _b : undefined,
|
|
148
|
+
activeClaudeSessionId: (_c = row.activeClaudeSessionId) !== null && _c !== void 0 ? _c : undefined,
|
|
149
|
+
useCcr: row.useCcr === '1',
|
|
150
|
+
enableChromeMcp: row.enableChromeMcp !== '0',
|
|
151
|
+
createdAt: row.createdAt,
|
|
152
|
+
updatedAt: row.updatedAt,
|
|
153
|
+
lastActiveAt: (_d = row.lastActiveAt) !== null && _d !== void 0 ? _d : undefined,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
// ============================================================
|
|
157
|
+
// Public API
|
|
158
|
+
// ============================================================
|
|
159
|
+
/**
|
|
160
|
+
* List all projects, sorted by last activity (most recent first).
|
|
161
|
+
*/
|
|
162
|
+
async function listProjects() {
|
|
163
|
+
const db = (0, db_1.getDb)();
|
|
164
|
+
const rows = await db.select().from(db_1.projects).orderBy((0, drizzle_orm_1.desc)(db_1.projects.lastActiveAt));
|
|
165
|
+
return rows.map(rowToProject);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get a single project by ID.
|
|
169
|
+
*/
|
|
170
|
+
async function getProject(id) {
|
|
171
|
+
const db = (0, db_1.getDb)();
|
|
172
|
+
const rows = await db.select().from(db_1.projects).where((0, drizzle_orm_1.eq)(db_1.projects.id, id)).limit(1);
|
|
173
|
+
return rows.length > 0 ? rowToProject(rows[0]) : undefined;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Create or update a project.
|
|
177
|
+
*/
|
|
178
|
+
async function upsertProject(input) {
|
|
179
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
180
|
+
const db = (0, db_1.getDb)();
|
|
181
|
+
const now = new Date().toISOString();
|
|
182
|
+
const rootPath = await normalizeRootPath(input.rootPath, (_a = input.allowCreate) !== null && _a !== void 0 ? _a : false);
|
|
183
|
+
const id = ((_b = input.id) === null || _b === void 0 ? void 0 : _b.trim()) || (0, node_crypto_1.randomUUID)();
|
|
184
|
+
const existing = await getProject(id);
|
|
185
|
+
// Convert booleans to strings for SQLite storage:
|
|
186
|
+
// - useCcr: '1' or null (legacy)
|
|
187
|
+
// - enableChromeMcp: '1' or '0' (non-null; defaults to enabled)
|
|
188
|
+
const useCcrValue = input.useCcr !== undefined ? (input.useCcr ? '1' : null) : (existing === null || existing === void 0 ? void 0 : existing.useCcr) ? '1' : null;
|
|
189
|
+
let enableChromeMcpValue;
|
|
190
|
+
if (typeof input.enableChromeMcp === 'boolean') {
|
|
191
|
+
enableChromeMcpValue = input.enableChromeMcp ? '1' : '0';
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
enableChromeMcpValue = (existing === null || existing === void 0 ? void 0 : existing.enableChromeMcp) === false ? '0' : '1';
|
|
195
|
+
}
|
|
196
|
+
const projectData = {
|
|
197
|
+
id,
|
|
198
|
+
name: input.name.trim(),
|
|
199
|
+
description: ((_c = input.description) === null || _c === void 0 ? void 0 : _c.trim()) || (existing === null || existing === void 0 ? void 0 : existing.description) || null,
|
|
200
|
+
rootPath,
|
|
201
|
+
preferredCli: (_e = (_d = input.preferredCli) !== null && _d !== void 0 ? _d : existing === null || existing === void 0 ? void 0 : existing.preferredCli) !== null && _e !== void 0 ? _e : null,
|
|
202
|
+
selectedModel: (_g = (_f = input.selectedModel) !== null && _f !== void 0 ? _f : existing === null || existing === void 0 ? void 0 : existing.selectedModel) !== null && _g !== void 0 ? _g : null,
|
|
203
|
+
// Preserve activeClaudeSessionId from existing project (not settable via upsert)
|
|
204
|
+
activeClaudeSessionId: (_h = existing === null || existing === void 0 ? void 0 : existing.activeClaudeSessionId) !== null && _h !== void 0 ? _h : null,
|
|
205
|
+
useCcr: useCcrValue,
|
|
206
|
+
enableChromeMcp: enableChromeMcpValue,
|
|
207
|
+
createdAt: (existing === null || existing === void 0 ? void 0 : existing.createdAt) || now,
|
|
208
|
+
updatedAt: now,
|
|
209
|
+
lastActiveAt: now,
|
|
210
|
+
};
|
|
211
|
+
if (existing) {
|
|
212
|
+
// Update existing project
|
|
213
|
+
await db.update(db_1.projects).set(projectData).where((0, drizzle_orm_1.eq)(db_1.projects.id, id));
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
// Insert new project
|
|
217
|
+
await db.insert(db_1.projects).values(projectData);
|
|
218
|
+
}
|
|
219
|
+
return rowToProject(projectData);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Delete a project by ID.
|
|
223
|
+
* Messages are automatically deleted via cascade.
|
|
224
|
+
*/
|
|
225
|
+
async function deleteProject(id) {
|
|
226
|
+
const db = (0, db_1.getDb)();
|
|
227
|
+
await db.delete(db_1.projects).where((0, drizzle_orm_1.eq)(db_1.projects.id, id));
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Update the last activity timestamp for a project.
|
|
231
|
+
*/
|
|
232
|
+
async function touchProjectActivity(id) {
|
|
233
|
+
const db = (0, db_1.getDb)();
|
|
234
|
+
const now = new Date().toISOString();
|
|
235
|
+
await db.update(db_1.projects).set({ lastActiveAt: now, updatedAt: now }).where((0, drizzle_orm_1.eq)(db_1.projects.id, id));
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Update the active Claude session ID for a project.
|
|
239
|
+
* This is called when the SDK returns a system/init message with a new session_id.
|
|
240
|
+
* Pass empty string or null to clear the session ID.
|
|
241
|
+
*/
|
|
242
|
+
async function updateProjectClaudeSessionId(id, claudeSessionId) {
|
|
243
|
+
const db = (0, db_1.getDb)();
|
|
244
|
+
const now = new Date().toISOString();
|
|
245
|
+
await db
|
|
246
|
+
.update(db_1.projects)
|
|
247
|
+
.set({
|
|
248
|
+
// Store null if empty string is passed (to clear the session)
|
|
249
|
+
activeClaudeSessionId: (claudeSessionId === null || claudeSessionId === void 0 ? void 0 : claudeSessionId.trim()) || null,
|
|
250
|
+
updatedAt: now,
|
|
251
|
+
})
|
|
252
|
+
.where((0, drizzle_orm_1.eq)(db_1.projects.id, id));
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=project-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-service.js","sourceRoot":"","sources":["../../src/agent/project-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export AgentProject from shared package and define local input types.
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentCliPreference, AgentProject } from 'chrome-mcp-shared';
|
|
5
|
+
export type { AgentProject };
|
|
6
|
+
export interface CreateOrUpdateProjectInput {
|
|
7
|
+
id?: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
rootPath: string;
|
|
11
|
+
preferredCli?: AgentCliPreference;
|
|
12
|
+
selectedModel?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Whether to use Claude Code Router (CCR) for this project.
|
|
15
|
+
*/
|
|
16
|
+
useCcr?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to enable the local Chrome MCP server integration for this project.
|
|
19
|
+
* Defaults to true when omitted.
|
|
20
|
+
*/
|
|
21
|
+
enableChromeMcp?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* If true, create the directory if it doesn't exist.
|
|
24
|
+
* Should only be set after user confirmation.
|
|
25
|
+
*/
|
|
26
|
+
allowCreate?: boolean;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-types.js","sourceRoot":"","sources":["../../src/agent/project-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { EngineName } from './engines/types';
|
|
2
|
+
/**
|
|
3
|
+
* System prompt configuration options.
|
|
4
|
+
*/
|
|
5
|
+
export type SystemPromptConfig = {
|
|
6
|
+
type: 'custom';
|
|
7
|
+
text: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'preset';
|
|
10
|
+
preset: 'claude_code';
|
|
11
|
+
append?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Tools configuration - can be a list of tool names or a preset.
|
|
15
|
+
*/
|
|
16
|
+
export type ToolsConfig = string[] | {
|
|
17
|
+
type: 'preset';
|
|
18
|
+
preset: 'claude_code';
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Session options configuration (stored as JSON).
|
|
22
|
+
*/
|
|
23
|
+
export interface SessionOptionsConfig {
|
|
24
|
+
settingSources?: string[];
|
|
25
|
+
allowedTools?: string[];
|
|
26
|
+
disallowedTools?: string[];
|
|
27
|
+
tools?: ToolsConfig;
|
|
28
|
+
betas?: string[];
|
|
29
|
+
maxThinkingTokens?: number;
|
|
30
|
+
maxTurns?: number;
|
|
31
|
+
maxBudgetUsd?: number;
|
|
32
|
+
mcpServers?: Record<string, unknown>;
|
|
33
|
+
outputFormat?: Record<string, unknown>;
|
|
34
|
+
enableFileCheckpointing?: boolean;
|
|
35
|
+
sandbox?: Record<string, unknown>;
|
|
36
|
+
env?: Record<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Optional Codex-specific configuration overrides.
|
|
39
|
+
* Only applicable when using CodexEngine.
|
|
40
|
+
*/
|
|
41
|
+
codexConfig?: Partial<import('chrome-mcp-shared').CodexEngineConfig>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Cached management information from Claude SDK.
|
|
45
|
+
*/
|
|
46
|
+
export interface ManagementInfo {
|
|
47
|
+
models?: Array<{
|
|
48
|
+
value: string;
|
|
49
|
+
displayName: string;
|
|
50
|
+
description: string;
|
|
51
|
+
}>;
|
|
52
|
+
commands?: Array<{
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
argumentHint: string;
|
|
56
|
+
}>;
|
|
57
|
+
account?: {
|
|
58
|
+
email?: string;
|
|
59
|
+
organization?: string;
|
|
60
|
+
subscriptionType?: string;
|
|
61
|
+
};
|
|
62
|
+
mcpServers?: Array<{
|
|
63
|
+
name: string;
|
|
64
|
+
status: string;
|
|
65
|
+
}>;
|
|
66
|
+
tools?: string[];
|
|
67
|
+
agents?: string[];
|
|
68
|
+
/** Plugins with name and path (SDK returns { name, path }[]) */
|
|
69
|
+
plugins?: Array<{
|
|
70
|
+
name: string;
|
|
71
|
+
path?: string;
|
|
72
|
+
}>;
|
|
73
|
+
skills?: string[];
|
|
74
|
+
slashCommands?: string[];
|
|
75
|
+
model?: string;
|
|
76
|
+
permissionMode?: string;
|
|
77
|
+
cwd?: string;
|
|
78
|
+
outputStyle?: string;
|
|
79
|
+
betas?: string[];
|
|
80
|
+
claudeCodeVersion?: string;
|
|
81
|
+
apiKeySource?: string;
|
|
82
|
+
lastUpdated?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Structured preview metadata for session list display.
|
|
86
|
+
* When present, allows rendering special styles (e.g., chip for web editor apply).
|
|
87
|
+
*/
|
|
88
|
+
export interface AgentSessionPreviewMeta {
|
|
89
|
+
/** Compact display text (e.g., user's message or "Apply changes") */
|
|
90
|
+
displayText?: string;
|
|
91
|
+
/** Client metadata for special rendering */
|
|
92
|
+
clientMeta?: {
|
|
93
|
+
kind?: 'web_editor_apply_batch' | 'web_editor_apply_single';
|
|
94
|
+
pageUrl?: string;
|
|
95
|
+
elementCount?: number;
|
|
96
|
+
elementLabels?: string[];
|
|
97
|
+
};
|
|
98
|
+
/** Full content for tooltip preview (truncated to avoid payload bloat) */
|
|
99
|
+
fullContent?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Agent session representation.
|
|
103
|
+
*/
|
|
104
|
+
export interface AgentSession {
|
|
105
|
+
id: string;
|
|
106
|
+
projectId: string;
|
|
107
|
+
engineName: string;
|
|
108
|
+
engineSessionId?: string;
|
|
109
|
+
name?: string;
|
|
110
|
+
/** Preview text from first user message, for display in session list */
|
|
111
|
+
preview?: string;
|
|
112
|
+
/** Structured preview metadata for special rendering (e.g., web editor apply chip) */
|
|
113
|
+
previewMeta?: AgentSessionPreviewMeta;
|
|
114
|
+
model?: string;
|
|
115
|
+
permissionMode: string;
|
|
116
|
+
allowDangerouslySkipPermissions: boolean;
|
|
117
|
+
systemPromptConfig?: SystemPromptConfig;
|
|
118
|
+
optionsConfig?: SessionOptionsConfig;
|
|
119
|
+
managementInfo?: ManagementInfo;
|
|
120
|
+
createdAt: string;
|
|
121
|
+
updatedAt: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Options for creating a new session.
|
|
125
|
+
*/
|
|
126
|
+
export interface CreateSessionOptions {
|
|
127
|
+
id?: string;
|
|
128
|
+
engineSessionId?: string;
|
|
129
|
+
name?: string;
|
|
130
|
+
model?: string;
|
|
131
|
+
permissionMode?: string;
|
|
132
|
+
allowDangerouslySkipPermissions?: boolean;
|
|
133
|
+
systemPromptConfig?: SystemPromptConfig;
|
|
134
|
+
optionsConfig?: SessionOptionsConfig;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Options for updating an existing session.
|
|
138
|
+
*/
|
|
139
|
+
export interface UpdateSessionInput {
|
|
140
|
+
engineSessionId?: string | null;
|
|
141
|
+
name?: string | null;
|
|
142
|
+
model?: string | null;
|
|
143
|
+
permissionMode?: string | null;
|
|
144
|
+
allowDangerouslySkipPermissions?: boolean | null;
|
|
145
|
+
systemPromptConfig?: SystemPromptConfig | null;
|
|
146
|
+
optionsConfig?: SessionOptionsConfig | null;
|
|
147
|
+
managementInfo?: ManagementInfo | null;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a new session for a project.
|
|
151
|
+
*/
|
|
152
|
+
export declare function createSession(projectId: string, engineName: EngineName, options?: CreateSessionOptions): Promise<AgentSession>;
|
|
153
|
+
/**
|
|
154
|
+
* Get a session by ID.
|
|
155
|
+
*/
|
|
156
|
+
export declare function getSession(sessionId: string): Promise<AgentSession | undefined>;
|
|
157
|
+
/**
|
|
158
|
+
* Get all sessions for a project, sorted by most recently updated.
|
|
159
|
+
* Includes preview from first user message for each session.
|
|
160
|
+
*/
|
|
161
|
+
export declare function getSessionsByProject(projectId: string): Promise<AgentSession[]>;
|
|
162
|
+
/**
|
|
163
|
+
* Get all sessions across all projects, sorted by most recently updated.
|
|
164
|
+
* Includes preview from first user message for each session.
|
|
165
|
+
*/
|
|
166
|
+
export declare function getAllSessions(): Promise<AgentSession[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Get sessions for a project filtered by engine name.
|
|
169
|
+
*/
|
|
170
|
+
export declare function getSessionsByProjectAndEngine(projectId: string, engineName: EngineName): Promise<AgentSession[]>;
|
|
171
|
+
/**
|
|
172
|
+
* Update an existing session.
|
|
173
|
+
*/
|
|
174
|
+
export declare function updateSession(sessionId: string, updates: UpdateSessionInput): Promise<void>;
|
|
175
|
+
/**
|
|
176
|
+
* Delete a session by ID.
|
|
177
|
+
* Note: Messages associated with this session are NOT automatically deleted.
|
|
178
|
+
* The caller should handle message cleanup if needed.
|
|
179
|
+
*/
|
|
180
|
+
export declare function deleteSession(sessionId: string): Promise<void>;
|
|
181
|
+
/**
|
|
182
|
+
* Update the engine session ID (e.g., Claude SDK session_id).
|
|
183
|
+
*/
|
|
184
|
+
export declare function updateEngineSessionId(sessionId: string, engineSessionId: string | null): Promise<void>;
|
|
185
|
+
/**
|
|
186
|
+
* Touch session activity - updates the updatedAt timestamp.
|
|
187
|
+
* Used when a message is sent to move the session to the top of the list.
|
|
188
|
+
*/
|
|
189
|
+
export declare function touchSessionActivity(sessionId: string): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* Update the cached management information.
|
|
192
|
+
*/
|
|
193
|
+
export declare function updateManagementInfo(sessionId: string, info: ManagementInfo | null): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* Get or create a default session for a project and engine.
|
|
196
|
+
* Useful for backwards compatibility - creates a session if none exists.
|
|
197
|
+
*/
|
|
198
|
+
export declare function getOrCreateDefaultSession(projectId: string, engineName: EngineName, options?: CreateSessionOptions): Promise<AgentSession>;
|