💬 Commit message: Update 2026-02-14 07:26:55, 21 files, 749 lines

📁 Files changed: 21
📝 Lines changed: 749

  • browser.d.ts
  • browser.d.ts.map
  • browser.js
  • browser.js.map
  • mcp.js
  • mcp.js.map
  • safari.d.ts
  • safari.d.ts.map
  • safari.js
  • safari.js.map
  • safari.test.d.ts
  • safari.test.d.ts.map
  • safari.test.js
  • safari.test.js.map
  • types.d.ts
  • types.d.ts.map
  • browser.ts
  • mcp.ts
  • safari.test.ts
  • safari.ts
  • types.ts
This commit is contained in:
Adam Ladachowski
2026-02-14 07:26:55 +01:00
parent be7e371c3e
commit 1c4a7b5ef9
21 changed files with 738 additions and 11 deletions
+34
View File
@@ -4,6 +4,7 @@ import { promisify } from 'node:util';
import { webkit } from 'playwright';
const execAsync = promisify(exec);
import * as image from './image.js';
import * as safari from './safari.js';
export class ClaudeBrowser {
browser = null;
context = null;
@@ -669,6 +670,37 @@ export class ClaudeBrowser {
return { ok: false, error: 'Unknown storage action' };
}
}
async handleImportCommand(cmd) {
const context = this.getContext();
if (!context)
throw new Error('Browser not launched');
if (cmd.source === 'safari') {
const cookies = await safari.importSafariCookies({
domain: cmd.domain,
profile: cmd.profile,
});
if (cookies.length === 0) {
return {
ok: true,
imported: 0,
source: 'safari',
domains: [],
};
}
// Convert to Playwright format and add to context
const playwrightCookies = cookies.map(safari.toPlaywrightCookie);
await context.addCookies(playwrightCookies);
// Get unique domains for reporting
const domains = [...new Set(cookies.map((c) => c.domain))];
return {
ok: true,
imported: cookies.length,
source: 'safari',
domains,
};
}
return { ok: false, error: `Unknown import source: ${cmd.source}` };
}
async executeCommand(cmd) {
try {
switch (cmd.cmd) {
@@ -856,6 +888,8 @@ export class ClaudeBrowser {
size: result.size,
};
}
case 'import':
return this.handleImportCommand(cmd);
default: {
const _exhaustive = cmd;
return { ok: false, error: `Unknown command: ${_exhaustive.cmd}` };