@redplanethq/corebrain 2.7.2 → 2.8.0
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/dist/commands/browser/close-session.d.ts +10 -0
- package/dist/commands/browser/close-session.d.ts.map +1 -0
- package/dist/commands/browser/close-session.js +34 -0
- package/dist/commands/browser/close-session.js.map +1 -0
- package/dist/commands/browser/close.d.ts +2 -5
- package/dist/commands/browser/close.d.ts.map +1 -1
- package/dist/commands/browser/close.js +11 -38
- package/dist/commands/browser/close.js.map +1 -1
- package/dist/commands/browser/command.d.ts +3 -3
- package/dist/commands/browser/command.d.ts.map +1 -1
- package/dist/commands/browser/command.js +23 -26
- package/dist/commands/browser/command.js.map +1 -1
- package/dist/commands/browser/create-profile.d.ts +10 -0
- package/dist/commands/browser/create-profile.d.ts.map +1 -0
- package/dist/commands/browser/create-profile.js +37 -0
- package/dist/commands/browser/create-profile.js.map +1 -0
- package/dist/commands/browser/create-session.d.ts +4 -2
- package/dist/commands/browser/create-session.d.ts.map +1 -1
- package/dist/commands/browser/create-session.js +20 -10
- package/dist/commands/browser/create-session.js.map +1 -1
- package/dist/commands/browser/delete-profile.d.ts +10 -0
- package/dist/commands/browser/delete-profile.d.ts.map +1 -0
- package/dist/commands/browser/delete-profile.js +44 -0
- package/dist/commands/browser/delete-profile.js.map +1 -0
- package/dist/commands/browser/delete-session.d.ts.map +1 -1
- package/dist/commands/browser/delete-session.js +5 -13
- package/dist/commands/browser/delete-session.js.map +1 -1
- package/dist/commands/browser/install.d.ts.map +1 -1
- package/dist/commands/browser/install.js +18 -29
- package/dist/commands/browser/install.js.map +1 -1
- package/dist/commands/browser/list-sessions.d.ts.map +1 -1
- package/dist/commands/browser/list-sessions.js +8 -5
- package/dist/commands/browser/list-sessions.js.map +1 -1
- package/dist/commands/browser/open-head.d.ts.map +1 -1
- package/dist/commands/browser/open-head.js +21 -23
- package/dist/commands/browser/open-head.js.map +1 -1
- package/dist/commands/browser/open.d.ts +2 -2
- package/dist/commands/browser/open.d.ts.map +1 -1
- package/dist/commands/browser/open.js +27 -23
- package/dist/commands/browser/open.js.map +1 -1
- package/dist/commands/browser/set-browser.js +1 -1
- package/dist/commands/browser/set-browser.js.map +1 -1
- package/dist/commands/browser/status.d.ts.map +1 -1
- package/dist/commands/browser/status.js +23 -20
- package/dist/commands/browser/status.js.map +1 -1
- package/dist/commands/gateway/config.js +6 -6
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/gateway/start.js +2 -2
- package/dist/commands/gateway/start.js.map +1 -1
- package/dist/server/gateway-client.js +2 -2
- package/dist/server/gateway-client.js.map +1 -1
- package/dist/server/tools/browser-tools.d.ts +0 -16
- package/dist/server/tools/browser-tools.d.ts.map +1 -1
- package/dist/server/tools/browser-tools.js +363 -127
- package/dist/server/tools/browser-tools.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +4 -3
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +6 -4
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/hooks/use-conversation.d.ts.map +1 -1
- package/dist/tui/hooks/use-conversation.js +1 -0
- package/dist/tui/hooks/use-conversation.js.map +1 -1
- package/dist/types/config.d.ts +6 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/browser-config.d.ts +51 -0
- package/dist/utils/browser-config.d.ts.map +1 -0
- package/dist/utils/browser-config.js +293 -0
- package/dist/utils/browser-config.js.map +1 -0
- package/dist/utils/browser-manager.d.ts +27 -0
- package/dist/utils/browser-manager.d.ts.map +1 -0
- package/dist/utils/browser-manager.js +131 -0
- package/dist/utils/browser-manager.js.map +1 -0
- package/dist/utils/coding-agents/claude-code.d.ts +0 -1
- package/dist/utils/coding-agents/claude-code.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.js +0 -4
- package/dist/utils/coding-agents/claude-code.js.map +1 -1
- package/dist/utils/coding-agents/codex.d.ts +0 -1
- package/dist/utils/coding-agents/codex.d.ts.map +1 -1
- package/dist/utils/coding-agents/codex.js +0 -3
- package/dist/utils/coding-agents/codex.js.map +1 -1
- package/dist/utils/coding-agents/index.d.ts +0 -1
- package/dist/utils/coding-agents/index.d.ts.map +1 -1
- package/dist/utils/coding-agents/index.js +0 -3
- package/dist/utils/coding-agents/index.js.map +1 -1
- package/dist/utils/coding-agents/types.d.ts +0 -1
- package/dist/utils/coding-agents/types.d.ts.map +1 -1
- package/dist/utils/coding-agents/types.js +0 -1
- package/dist/utils/coding-agents/types.js.map +1 -1
- package/dist/utils/coding-runner.d.ts +2 -4
- package/dist/utils/coding-runner.d.ts.map +1 -1
- package/dist/utils/coding-runner.js +4 -7
- package/dist/utils/coding-runner.js.map +1 -1
- package/package.json +2 -1
- package/dist/utils/agent-browser.d.ts +0 -135
- package/dist/utils/agent-browser.d.ts.map +0 -1
- package/dist/utils/agent-browser.js +0 -561
- package/dist/utils/agent-browser.js.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const args: zod.ZodTuple<[zod.ZodString], null>;
|
|
3
|
+
export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
4
|
+
type Props = {
|
|
5
|
+
args: zod.infer<typeof args>;
|
|
6
|
+
options: zod.infer<typeof options>;
|
|
7
|
+
};
|
|
8
|
+
export default function BrowserCloseSession({ args: [name] }: Props): null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=close-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-session.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/close-session.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,IAAI,qCAA8D,CAAC;AAEhF,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAiBF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,KAAK,QAchE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import zod from 'zod';
|
|
6
|
+
import { closeSession } from '../../utils/browser-manager.js';
|
|
7
|
+
export const args = zod.tuple([zod.string().describe('Session name to close')]);
|
|
8
|
+
export const options = zod.object({});
|
|
9
|
+
async function runCloseSession(name) {
|
|
10
|
+
const spinner = p.spinner();
|
|
11
|
+
spinner.start(`Closing session "${name}"...`);
|
|
12
|
+
const result = await closeSession(name);
|
|
13
|
+
if (!result.success) {
|
|
14
|
+
spinner.stop(chalk.yellow(`Session "${name}" was not running`));
|
|
15
|
+
if (result.error)
|
|
16
|
+
p.log.info(result.error);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
spinner.stop(chalk.green(`Session "${name}" closed (profile data preserved)`));
|
|
20
|
+
}
|
|
21
|
+
export default function BrowserCloseSession({ args: [name] }) {
|
|
22
|
+
const { exit } = useApp();
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
runCloseSession(name)
|
|
25
|
+
.catch(err => {
|
|
26
|
+
p.log.error(`Failed: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
27
|
+
})
|
|
28
|
+
.finally(() => {
|
|
29
|
+
setTimeout(() => exit(), 100);
|
|
30
|
+
});
|
|
31
|
+
}, [name, exit]);
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=close-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-session.js","sourceRoot":"","sources":["../../../src/commands/browser/close-session.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAOtC,KAAK,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,MAAM,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,KAAK;YAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,mCAAmC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAQ;IAChE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,CAAC,IAAI,CAAC;aACnB,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
|
-
export declare const options: zod.ZodObject<{
|
|
3
|
-
sessionName: zod.ZodOptional<zod.ZodString>;
|
|
4
|
-
all: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
|
|
5
|
-
}, zod.core.$strip>;
|
|
2
|
+
export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
6
3
|
type Props = {
|
|
7
4
|
options: zod.infer<typeof options>;
|
|
8
5
|
};
|
|
9
|
-
export default function BrowserClose(
|
|
6
|
+
export default function BrowserClose(_props: Props): null;
|
|
10
7
|
export {};
|
|
11
8
|
//# sourceMappingURL=close.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,KAAK,QAcjD"}
|
|
@@ -3,52 +3,25 @@ import { useApp } from 'ink';
|
|
|
3
3
|
import * as p from '@clack/prompts';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
|
-
import {
|
|
7
|
-
export const options = zod.object({
|
|
8
|
-
|
|
9
|
-
all: zod.boolean().optional().default(false).describe('Close all sessions'),
|
|
10
|
-
});
|
|
11
|
-
async function runBrowserClose(sessionName, closeAll) {
|
|
6
|
+
import { closeAllSessions } from '../../utils/browser-manager.js';
|
|
7
|
+
export const options = zod.object({});
|
|
8
|
+
async function runCloseAll() {
|
|
12
9
|
const spinner = p.spinner();
|
|
13
|
-
spinner.start('
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
spinner.stop(chalk.red('Not installed'));
|
|
17
|
-
p.log.error('agent-browser is not installed. Run `corebrain browser install` first.');
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (closeAll) {
|
|
21
|
-
spinner.message('Closing all browser sessions...');
|
|
22
|
-
const result = await browserCloseAll();
|
|
23
|
-
if (result.code !== 0) {
|
|
24
|
-
spinner.stop(chalk.red('Failed to close all browsers'));
|
|
25
|
-
p.log.error(result.stderr || 'Failed to close all browsers');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
spinner.stop(chalk.green('Closed all browser sessions'));
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const session = sessionName || 'default';
|
|
32
|
-
spinner.message(`Closing browser for session "${session}"...`);
|
|
33
|
-
const result = await browserClose(session);
|
|
34
|
-
if (result.code !== 0) {
|
|
35
|
-
spinner.stop(chalk.red('Failed to close browser'));
|
|
36
|
-
p.log.error(result.stderr || 'Failed to close browser');
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
spinner.stop(chalk.green(`Closed browser for session "${session}"`));
|
|
10
|
+
spinner.start('Closing all browser sessions...');
|
|
11
|
+
await closeAllSessions();
|
|
12
|
+
spinner.stop(chalk.green('All browser sessions closed'));
|
|
40
13
|
}
|
|
41
|
-
export default function BrowserClose(
|
|
14
|
+
export default function BrowserClose(_props) {
|
|
42
15
|
const { exit } = useApp();
|
|
43
16
|
useEffect(() => {
|
|
44
|
-
|
|
45
|
-
.catch(
|
|
46
|
-
p.log.error(`Failed
|
|
17
|
+
runCloseAll()
|
|
18
|
+
.catch(err => {
|
|
19
|
+
p.log.error(`Failed: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
47
20
|
})
|
|
48
21
|
.finally(() => {
|
|
49
22
|
setTimeout(() => exit(), 100);
|
|
50
23
|
});
|
|
51
|
-
}, [
|
|
24
|
+
}, [exit]);
|
|
52
25
|
return null;
|
|
53
26
|
}
|
|
54
27
|
//# sourceMappingURL=close.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,WAAW;IACzB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,MAAM,gBAAgB,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAa;IACjD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,WAAW,EAAE;aACX,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
|
-
export declare const args: zod.ZodTuple<[zod.ZodString],
|
|
2
|
+
export declare const args: zod.ZodTuple<[zod.ZodString], null>;
|
|
3
3
|
export declare const options: zod.ZodObject<{
|
|
4
|
-
|
|
4
|
+
session: zod.ZodString;
|
|
5
5
|
}, zod.core.$strip>;
|
|
6
6
|
type Props = {
|
|
7
7
|
args: zod.infer<typeof args>;
|
|
8
8
|
options: zod.infer<typeof options>;
|
|
9
9
|
};
|
|
10
|
-
export default function BrowserCommand({ args: [
|
|
10
|
+
export default function BrowserCommand({ args: [script], options }: Props): null;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,IAAI,qCAEf,CAAC;AAEH,eAAO,MAAM,OAAO;;mBAElB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA6BF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,EAAE,KAAK,QActE"}
|
|
@@ -3,49 +3,46 @@ import { useApp } from 'ink';
|
|
|
3
3
|
import * as p from '@clack/prompts';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
|
-
import {
|
|
6
|
+
import { isPlaywrightReady } from '../../utils/browser-config.js';
|
|
7
|
+
import { getOrLaunchSession } from '../../utils/browser-manager.js';
|
|
7
8
|
export const args = zod.tuple([
|
|
8
|
-
zod.string().describe('
|
|
9
|
-
])
|
|
9
|
+
zod.string().describe('JavaScript expression to evaluate'),
|
|
10
|
+
]);
|
|
10
11
|
export const options = zod.object({
|
|
11
|
-
|
|
12
|
+
session: zod.string().describe('Session name to evaluate on'),
|
|
12
13
|
});
|
|
13
|
-
async function runBrowserCommand(sessionName,
|
|
14
|
+
async function runBrowserCommand(sessionName, script) {
|
|
14
15
|
const spinner = p.spinner();
|
|
15
|
-
spinner.start('Checking
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
16
|
+
spinner.start('Checking Playwright...');
|
|
17
|
+
const ready = await isPlaywrightReady();
|
|
18
|
+
if (!ready) {
|
|
18
19
|
spinner.stop(chalk.red('Not installed'));
|
|
19
|
-
p.log.error('
|
|
20
|
+
p.log.error('Playwright Chromium is not installed. Run `corebrain browser install` first.');
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
spinner.message(`Evaluating on session "${sessionName}"...`);
|
|
24
|
+
const { session, error } = await getOrLaunchSession(sessionName);
|
|
25
|
+
if (error) {
|
|
26
|
+
spinner.stop(chalk.red('Failed to get session'));
|
|
27
|
+
p.log.error(error);
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
|
-
|
|
29
|
-
const result = await
|
|
30
|
-
spinner.stop(
|
|
31
|
-
|
|
32
|
-
console.log(result.stdout);
|
|
33
|
-
}
|
|
34
|
-
if (result.stderr) {
|
|
35
|
-
console.error(chalk.red(result.stderr));
|
|
36
|
-
}
|
|
30
|
+
// eslint-disable-next-line no-new-func
|
|
31
|
+
const result = await session.page.evaluate(new Function(`return (${script})`));
|
|
32
|
+
spinner.stop(chalk.green('Done'));
|
|
33
|
+
console.log(JSON.stringify(result, null, 2));
|
|
37
34
|
}
|
|
38
|
-
export default function BrowserCommand({ args: [
|
|
35
|
+
export default function BrowserCommand({ args: [script], options }) {
|
|
39
36
|
const { exit } = useApp();
|
|
40
37
|
useEffect(() => {
|
|
41
|
-
runBrowserCommand(options.
|
|
42
|
-
.catch(
|
|
38
|
+
runBrowserCommand(options.session, script)
|
|
39
|
+
.catch(err => {
|
|
43
40
|
p.log.error(err instanceof Error ? err.message : 'Unknown error');
|
|
44
41
|
})
|
|
45
42
|
.finally(() => {
|
|
46
43
|
setTimeout(() => exit(), 100);
|
|
47
44
|
});
|
|
48
|
-
}, [options.
|
|
45
|
+
}, [options.session, script, exit]);
|
|
49
46
|
return null;
|
|
50
47
|
}
|
|
51
48
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC7D,CAAC,CAAC;AAOH,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,MAAc;IACnE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,0BAA0B,WAAW,MAAM,CAAC,CAAC;IAE7D,MAAM,EAAC,OAAO,EAAE,KAAK,EAAC,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC/D,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACR,CAAC;IAED,uCAAuC;IACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,MAAM,GAAG,CAAkB,CAAC,CAAC;IAEhG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAQ;IACtE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aACxC,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const args: zod.ZodTuple<[zod.ZodString], null>;
|
|
3
|
+
export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
4
|
+
type Props = {
|
|
5
|
+
args: zod.infer<typeof args>;
|
|
6
|
+
options: zod.infer<typeof options>;
|
|
7
|
+
};
|
|
8
|
+
export default function BrowserCreateProfile({ args: [name] }: Props): null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=create-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-profile.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/create-profile.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,IAAI,qCAAqF,CAAC;AAEvG,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAsBF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,KAAK,QAgBjE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import zod from 'zod';
|
|
6
|
+
import { createProfile, getConfiguredProfiles, getMaxProfiles } from '../../utils/browser-config.js';
|
|
7
|
+
export const args = zod.tuple([zod.string().describe('Profile name to create (e.g. personal, work)')]);
|
|
8
|
+
export const options = zod.object({});
|
|
9
|
+
async function runCreateProfile(name) {
|
|
10
|
+
const spinner = p.spinner();
|
|
11
|
+
spinner.start(`Creating profile "${name}"...`);
|
|
12
|
+
const result = createProfile(name);
|
|
13
|
+
if (!result.success) {
|
|
14
|
+
spinner.stop(chalk.red('Failed'));
|
|
15
|
+
p.log.error(result.error || 'Failed to create profile');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
spinner.stop(chalk.green(`Profile "${name}" created`));
|
|
19
|
+
const profiles = getConfiguredProfiles();
|
|
20
|
+
const maxProfiles = getMaxProfiles();
|
|
21
|
+
p.log.info(`Profiles: ${profiles.join(', ')} (${profiles.length}/${maxProfiles})`);
|
|
22
|
+
p.log.info(`Now create a session: corebrain browser create-session <session-name> --profile ${name}`);
|
|
23
|
+
}
|
|
24
|
+
export default function BrowserCreateProfile({ args: [name] }) {
|
|
25
|
+
const { exit } = useApp();
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
runCreateProfile(name)
|
|
28
|
+
.catch(err => {
|
|
29
|
+
p.log.error(`Failed to create profile: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
30
|
+
})
|
|
31
|
+
.finally(() => {
|
|
32
|
+
setTimeout(() => exit(), 100);
|
|
33
|
+
});
|
|
34
|
+
}, [name, exit]);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=create-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-profile.js","sourceRoot":"","sources":["../../../src/commands/browser/create-profile.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAE5F,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC;AAEvG,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAOtC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,MAAM,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QACxD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC;IACnF,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mFAAmF,IAAI,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAQ;IACjE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,IAAI,CAAC;aACpB,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CACV,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACnF,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
2
|
export declare const args: zod.ZodTuple<[zod.ZodString], null>;
|
|
3
|
-
export declare const options: zod.ZodObject<{
|
|
3
|
+
export declare const options: zod.ZodObject<{
|
|
4
|
+
profile: zod.ZodString;
|
|
5
|
+
}, zod.core.$strip>;
|
|
4
6
|
type Props = {
|
|
5
7
|
args: zod.infer<typeof args>;
|
|
6
8
|
options: zod.infer<typeof options>;
|
|
7
9
|
};
|
|
8
|
-
export default function BrowserCreateSession({ args: [name] }: Props): null;
|
|
10
|
+
export default function BrowserCreateSession({ args: [name], options }: Props): null;
|
|
9
11
|
export {};
|
|
10
12
|
//# sourceMappingURL=create-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-session.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/create-session.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"create-session.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/create-session.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAQtB,eAAO,MAAM,IAAI,qCAA+D,CAAC;AAEjF,eAAO,MAAM,OAAO;;mBAElB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA6BF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAC,EAAE,KAAK,QAgB1E"}
|
|
@@ -3,34 +3,44 @@ import { useApp } from 'ink';
|
|
|
3
3
|
import * as p from '@clack/prompts';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
|
-
import { createSession, getMaxSessions,
|
|
6
|
+
import { createSession, getConfiguredSessions, getConfiguredProfiles, getMaxSessions, } from '../../utils/browser-config.js';
|
|
7
7
|
export const args = zod.tuple([zod.string().describe('Session name to create')]);
|
|
8
|
-
export const options = zod.object({
|
|
9
|
-
|
|
8
|
+
export const options = zod.object({
|
|
9
|
+
profile: zod.string().describe('Profile to bind this session to (e.g. personal, work)'),
|
|
10
|
+
});
|
|
11
|
+
async function runCreateSession(name, profile) {
|
|
10
12
|
const spinner = p.spinner();
|
|
11
|
-
spinner.start(`Creating session "${name}"...`);
|
|
12
|
-
const result = createSession(name);
|
|
13
|
+
spinner.start(`Creating session "${name}" with profile "${profile}"...`);
|
|
14
|
+
const result = createSession(name, profile);
|
|
13
15
|
if (!result.success) {
|
|
14
16
|
spinner.stop(chalk.red('Failed'));
|
|
15
17
|
p.log.error(result.error || 'Failed to create session');
|
|
18
|
+
const profiles = getConfiguredProfiles();
|
|
19
|
+
if (profiles.length === 0) {
|
|
20
|
+
p.log.info('No profiles configured. Run: corebrain browser create-profile <name>');
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
p.log.info(`Available profiles: ${profiles.join(', ')}`);
|
|
24
|
+
}
|
|
16
25
|
return;
|
|
17
26
|
}
|
|
18
|
-
spinner.stop(chalk.green(`Session "${name}" created`));
|
|
27
|
+
spinner.stop(chalk.green(`Session "${name}" created (profile: ${profile})`));
|
|
19
28
|
const sessions = getConfiguredSessions();
|
|
20
29
|
const maxSessions = getMaxSessions();
|
|
21
|
-
p.log.info(`Sessions: ${sessions.
|
|
30
|
+
p.log.info(`Sessions: ${sessions.length}/${maxSessions}`);
|
|
31
|
+
p.log.info(`Run: corebrain browser open ${name}`);
|
|
22
32
|
}
|
|
23
|
-
export default function BrowserCreateSession({ args: [name] }) {
|
|
33
|
+
export default function BrowserCreateSession({ args: [name], options }) {
|
|
24
34
|
const { exit } = useApp();
|
|
25
35
|
useEffect(() => {
|
|
26
|
-
runCreateSession(name)
|
|
36
|
+
runCreateSession(name, options.profile)
|
|
27
37
|
.catch(err => {
|
|
28
38
|
p.log.error(`Failed to create session: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
29
39
|
})
|
|
30
40
|
.finally(() => {
|
|
31
41
|
setTimeout(() => exit(), 100);
|
|
32
42
|
});
|
|
33
|
-
}, [name, exit]);
|
|
43
|
+
}, [name, options.profile, exit]);
|
|
34
44
|
return null;
|
|
35
45
|
}
|
|
36
46
|
//# sourceMappingURL=create-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-session.js","sourceRoot":"","sources":["../../../src/commands/browser/create-session.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"create-session.js","sourceRoot":"","sources":["../../../src/commands/browser/create-session.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const args: zod.ZodTuple<[zod.ZodString], null>;
|
|
3
|
+
export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
4
|
+
type Props = {
|
|
5
|
+
args: zod.infer<typeof args>;
|
|
6
|
+
options: zod.infer<typeof options>;
|
|
7
|
+
};
|
|
8
|
+
export default function BrowserDeleteProfile({ args: [name] }: Props): null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=delete-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-profile.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/delete-profile.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,IAAI,qCAA+D,CAAC;AAEjF,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA4BF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,KAAK,QAgBjE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import zod from 'zod';
|
|
6
|
+
import { deleteProfile, getConfiguredProfiles, getMaxProfiles } from '../../utils/browser-config.js';
|
|
7
|
+
import { closeAllSessions } from '../../utils/browser-manager.js';
|
|
8
|
+
export const args = zod.tuple([zod.string().describe('Profile name to delete')]);
|
|
9
|
+
export const options = zod.object({});
|
|
10
|
+
async function runDeleteProfile(name) {
|
|
11
|
+
const spinner = p.spinner();
|
|
12
|
+
spinner.start(`Deleting profile "${name}"...`);
|
|
13
|
+
// Close any live sessions using this profile
|
|
14
|
+
await closeAllSessions();
|
|
15
|
+
const result = deleteProfile(name);
|
|
16
|
+
if (!result.success) {
|
|
17
|
+
spinner.stop(chalk.red('Failed'));
|
|
18
|
+
p.log.error(result.error || 'Failed to delete profile');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
spinner.stop(chalk.green(`Profile "${name}" deleted (browser data removed from disk)`));
|
|
22
|
+
const profiles = getConfiguredProfiles();
|
|
23
|
+
const maxProfiles = getMaxProfiles();
|
|
24
|
+
if (profiles.length > 0) {
|
|
25
|
+
p.log.info(`Remaining profiles: ${profiles.join(', ')} (${profiles.length}/${maxProfiles})`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
p.log.info('No profiles. Create one: corebrain browser create-profile <name>');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default function BrowserDeleteProfile({ args: [name] }) {
|
|
32
|
+
const { exit } = useApp();
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
runDeleteProfile(name)
|
|
35
|
+
.catch(err => {
|
|
36
|
+
p.log.error(`Failed to delete profile: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
37
|
+
})
|
|
38
|
+
.finally(() => {
|
|
39
|
+
setTimeout(() => exit(), 100);
|
|
40
|
+
});
|
|
41
|
+
}, [name, exit]);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=delete-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-profile.js","sourceRoot":"","sources":["../../../src/commands/browser/delete-profile.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAOtC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,MAAM,CAAC,CAAC;IAE/C,6CAA6C;IAC7C,MAAM,gBAAgB,EAAE,CAAC;IAEzB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QACxD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,4CAA4C,CAAC,CAAC,CAAC;IAExF,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC;IAC9F,CAAC;SAAM,CAAC;QACP,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAChF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAQ;IACjE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,IAAI,CAAC;aACpB,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CACV,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACnF,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-session.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/delete-session.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-session.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/delete-session.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,IAAI,qCAA+D,CAAC;AAEjF,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAwBF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,KAAK,QAgBjE"}
|
|
@@ -3,18 +3,15 @@ import { useApp } from 'ink';
|
|
|
3
3
|
import * as p from '@clack/prompts';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
|
-
import { deleteSession, getConfiguredSessions, getMaxSessions
|
|
6
|
+
import { deleteSession, getConfiguredSessions, getMaxSessions } from '../../utils/browser-config.js';
|
|
7
|
+
import { closeSession } from '../../utils/browser-manager.js';
|
|
7
8
|
export const args = zod.tuple([zod.string().describe('Session name to delete')]);
|
|
8
9
|
export const options = zod.object({});
|
|
9
10
|
async function runDeleteSession(name) {
|
|
10
11
|
const spinner = p.spinner();
|
|
11
12
|
spinner.start(`Deleting session "${name}"...`);
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
if (installed) {
|
|
15
|
-
await browserClose(name);
|
|
16
|
-
}
|
|
17
|
-
// Then remove from config
|
|
13
|
+
// Close the running instance if live
|
|
14
|
+
await closeSession(name);
|
|
18
15
|
const result = deleteSession(name);
|
|
19
16
|
if (!result.success) {
|
|
20
17
|
spinner.stop(chalk.red('Failed'));
|
|
@@ -24,12 +21,7 @@ async function runDeleteSession(name) {
|
|
|
24
21
|
spinner.stop(chalk.green(`Session "${name}" deleted`));
|
|
25
22
|
const sessions = getConfiguredSessions();
|
|
26
23
|
const maxSessions = getMaxSessions();
|
|
27
|
-
|
|
28
|
-
p.log.info(`Remaining sessions: ${sessions.join(', ')} (${sessions.length}/${maxSessions})`);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
p.log.info('No sessions configured. Create one with: corebrain browser create-session <name>');
|
|
32
|
-
}
|
|
24
|
+
p.log.info(`Remaining sessions: ${sessions.length}/${maxSessions}`);
|
|
33
25
|
}
|
|
34
26
|
export default function BrowserDeleteSession({ args: [name] }) {
|
|
35
27
|
const { exit } = useApp();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-session.js","sourceRoot":"","sources":["../../../src/commands/browser/delete-session.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"delete-session.js","sourceRoot":"","sources":["../../../src/commands/browser/delete-session.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAOtC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,MAAM,CAAC,CAAC;IAE/C,qCAAqC;IACrC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;QACxD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAQ;IACjE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,IAAI,CAAC;aACpB,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CACV,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACnF,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAStB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAStB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAoDF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAM,EAAE,KAAK,QAkBnD"}
|