@redplanethq/corebrain 2.4.0 → 2.5.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.
Files changed (46) hide show
  1. package/dist/commands/browser/close.d.ts +2 -1
  2. package/dist/commands/browser/close.d.ts.map +1 -1
  3. package/dist/commands/browser/close.js +22 -15
  4. package/dist/commands/browser/close.js.map +1 -1
  5. package/dist/commands/browser/command.d.ts +1 -1
  6. package/dist/commands/browser/command.d.ts.map +1 -1
  7. package/dist/commands/browser/command.js +10 -16
  8. package/dist/commands/browser/command.js.map +1 -1
  9. package/dist/commands/browser/delete-session.d.ts +10 -0
  10. package/dist/commands/browser/delete-session.d.ts.map +1 -0
  11. package/dist/commands/browser/delete-session.js +41 -0
  12. package/dist/commands/browser/delete-session.js.map +1 -0
  13. package/dist/commands/browser/install.d.ts.map +1 -1
  14. package/dist/commands/browser/install.js +41 -9
  15. package/dist/commands/browser/install.js.map +1 -1
  16. package/dist/commands/browser/list-sessions.d.ts +8 -0
  17. package/dist/commands/browser/list-sessions.d.ts.map +1 -0
  18. package/dist/commands/browser/list-sessions.js +46 -0
  19. package/dist/commands/browser/list-sessions.js.map +1 -0
  20. package/dist/commands/browser/open-head.d.ts.map +1 -1
  21. package/dist/commands/browser/open-head.js +28 -22
  22. package/dist/commands/browser/open-head.js.map +1 -1
  23. package/dist/commands/browser/open.d.ts +1 -1
  24. package/dist/commands/browser/open.d.ts.map +1 -1
  25. package/dist/commands/browser/open.js +17 -15
  26. package/dist/commands/browser/open.js.map +1 -1
  27. package/dist/commands/browser/status.d.ts.map +1 -1
  28. package/dist/commands/browser/status.js +16 -11
  29. package/dist/commands/browser/status.js.map +1 -1
  30. package/dist/commands/gateway/config.d.ts.map +1 -1
  31. package/dist/commands/gateway/config.js +18 -24
  32. package/dist/commands/gateway/config.js.map +1 -1
  33. package/dist/server/gateway-client.js +1 -1
  34. package/dist/server/gateway-client.js.map +1 -1
  35. package/dist/server/tools/browser-tools.d.ts +5 -4
  36. package/dist/server/tools/browser-tools.d.ts.map +1 -1
  37. package/dist/server/tools/browser-tools.js +79 -38
  38. package/dist/server/tools/browser-tools.js.map +1 -1
  39. package/dist/server/tools/coding-tools.d.ts.map +1 -1
  40. package/dist/server/tools/coding-tools.js +2 -2
  41. package/dist/server/tools/coding-tools.js.map +1 -1
  42. package/dist/utils/browser-use.d.ts +57 -0
  43. package/dist/utils/browser-use.d.ts.map +1 -0
  44. package/dist/utils/browser-use.js +212 -0
  45. package/dist/utils/browser-use.js.map +1 -0
  46. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import zod from 'zod';
2
2
  export declare const options: zod.ZodObject<{
3
- profile: zod.ZodDefault<zod.ZodOptional<zod.ZodString>>;
3
+ sessionName: zod.ZodOptional<zod.ZodString>;
4
+ all: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
4
5
  }, zod.core.$strip>;
5
6
  type Props = {
6
7
  options: zod.infer<typeof options>;
@@ -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;;mBAElB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAkCF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,QActD"}
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;;;mBAGlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA0CF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,QActD"}
@@ -3,45 +3,52 @@ 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 { isAgentBrowserInstalled, browserClose, profileExists } from '../../utils/agent-browser.js';
6
+ import { isBrowserUseInstalled, browserClose, browserCloseAll } from '../../utils/browser-use.js';
7
7
  export const options = zod.object({
8
- profile: zod.string().optional().default('default').describe('Browser profile to close (default: default)'),
8
+ sessionName: zod.string().optional().describe('Session name to close'),
9
+ all: zod.boolean().optional().default(false).describe('Close all sessions'),
9
10
  });
10
- async function runBrowserClose(profile) {
11
+ async function runBrowserClose(sessionName, closeAll) {
11
12
  const spinner = p.spinner();
12
- spinner.start('Checking agent-browser...');
13
- const installed = await isAgentBrowserInstalled();
13
+ spinner.start('Checking browser-use...');
14
+ const installed = await isBrowserUseInstalled();
14
15
  if (!installed) {
15
16
  spinner.stop(chalk.red('Not installed'));
16
- p.log.error('agent-browser is not installed. Run `corebrain browser install` first.');
17
+ p.log.error('browser-use is not installed. Run `corebrain browser install` first.');
17
18
  return;
18
19
  }
19
- // Check if profile exists
20
- if (!profileExists(profile)) {
21
- spinner.stop(chalk.yellow('Profile not found'));
22
- p.log.warning(`Profile "${profile}" not found. Use \`corebrain browser status\` to see available profiles.`);
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'));
23
29
  return;
24
30
  }
25
- spinner.message(`Closing browser for profile "${profile}"...`);
26
- const result = await browserClose(profile);
31
+ const session = sessionName || 'default';
32
+ spinner.message(`Closing browser for session "${session}"...`);
33
+ const result = await browserClose(session);
27
34
  if (result.code !== 0) {
28
35
  spinner.stop(chalk.red('Failed to close browser'));
29
36
  p.log.error(result.stderr || 'Failed to close browser');
30
37
  return;
31
38
  }
32
- spinner.stop(chalk.green(`Closed browser for profile "${profile}"`));
39
+ spinner.stop(chalk.green(`Closed browser for session "${session}"`));
33
40
  }
34
41
  export default function BrowserClose({ options }) {
35
42
  const { exit } = useApp();
36
43
  useEffect(() => {
37
- runBrowserClose(options.profile)
44
+ runBrowserClose(options.sessionName, options.all)
38
45
  .catch((err) => {
39
46
  p.log.error(`Failed to close browser: ${err instanceof Error ? err.message : 'Unknown error'}`);
40
47
  })
41
48
  .finally(() => {
42
49
  setTimeout(() => exit(), 100);
43
50
  });
44
- }, [options.profile, exit]);
51
+ }, [options.sessionName, options.all, exit]);
45
52
  return null;
46
53
  }
47
54
  //# sourceMappingURL=close.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7F,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CAC3G,CAAC,CAAC;AAMH,KAAK,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACtF,OAAO;IACR,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,OAAO,0EAA0E,CAAC,CAAC;QAC7G,OAAO;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,gCAAgC,OAAO,MAAM,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,yBAAyB,CAAC,CAAC;QACxD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,OAAO,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAS;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;aAC9B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACjG,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,IAAI,CAAC,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import zod from 'zod';
2
2
  export declare const args: zod.ZodTuple<[zod.ZodString], zod.ZodString>;
3
3
  export declare const options: zod.ZodObject<{
4
- profile: zod.ZodDefault<zod.ZodOptional<zod.ZodString>>;
4
+ sessionName: zod.ZodDefault<zod.ZodOptional<zod.ZodString>>;
5
5
  }, zod.core.$strip>;
6
6
  type Props = {
7
7
  args: zod.infer<typeof args>;
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,IAAI,8CAEkC,CAAC;AAEpD,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;AA0CF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,QAczF"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,IAAI,8CAEkC,CAAC;AAEpD,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;AAmCF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,QAczF"}
@@ -3,20 +3,20 @@ 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 { isAgentBrowserInstalled, browserCommand, profileExists, isBlockedCommand } from '../../utils/agent-browser.js';
6
+ import { isBrowserUseInstalled, browserCommand, isBlockedCommand } from '../../utils/browser-use.js';
7
7
  export const args = zod.tuple([
8
8
  zod.string().describe('Command to run'),
9
9
  ]).rest(zod.string().describe('Command arguments'));
10
10
  export const options = zod.object({
11
- profile: zod.string().optional().default('default').describe('Browser profile to use (default: default)'),
11
+ sessionName: zod.string().optional().default('default').describe('Session name to use (default: default)'),
12
12
  });
13
- async function runBrowserCommand(profile, command, commandArgs) {
13
+ async function runBrowserCommand(sessionName, command, commandArgs) {
14
14
  const spinner = p.spinner();
15
- spinner.start('Checking agent-browser...');
16
- const installed = await isAgentBrowserInstalled();
15
+ spinner.start('Checking browser-use...');
16
+ const installed = await isBrowserUseInstalled();
17
17
  if (!installed) {
18
18
  spinner.stop(chalk.red('Not installed'));
19
- p.log.error('agent-browser is not installed. Run `corebrain browser install` first.');
19
+ p.log.error('browser-use is not installed. Run `corebrain browser install` first.');
20
20
  return;
21
21
  }
22
22
  // Check if command is blocked
@@ -25,14 +25,8 @@ async function runBrowserCommand(profile, command, commandArgs) {
25
25
  p.log.error(`Command "${command}" is blocked. Use \`corebrain browser open\` or \`corebrain browser close\` for open/close operations.`);
26
26
  return;
27
27
  }
28
- // Check if profile exists
29
- if (!profileExists(profile)) {
30
- spinner.stop(chalk.yellow('Profile not found'));
31
- p.log.error(`Profile "${profile}" not found. Use \`corebrain browser open\` to create a profile first.`);
32
- return;
33
- }
34
- spinner.message(`Running: ${command} ${commandArgs.join(' ')} on profile "${profile}"`);
35
- const result = await browserCommand(profile, command, commandArgs);
28
+ spinner.message(`Running: ${command} ${commandArgs.join(' ')} on session "${sessionName}"`);
29
+ const result = await browserCommand(sessionName, command, commandArgs);
36
30
  spinner.stop(result.code === 0 ? chalk.green('Command completed') : chalk.yellow(`Exit code: ${result.code}`));
37
31
  if (result.stdout) {
38
32
  console.log(result.stdout);
@@ -44,14 +38,14 @@ async function runBrowserCommand(profile, command, commandArgs) {
44
38
  export default function BrowserCommand({ args: [command, ...commandArgs], options }) {
45
39
  const { exit } = useApp();
46
40
  useEffect(() => {
47
- runBrowserCommand(options.profile, command, commandArgs)
41
+ runBrowserCommand(options.sessionName, command, commandArgs)
48
42
  .catch((err) => {
49
43
  p.log.error(err instanceof Error ? err.message : 'Unknown error');
50
44
  })
51
45
  .finally(() => {
52
46
  setTimeout(() => exit(), 100);
53
47
  });
54
- }, [options.profile, command, commandArgs, exit]);
48
+ }, [options.sessionName, command, commandArgs, exit]);
55
49
  return null;
56
50
  }
57
51
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/browser/command.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 BrowserDeleteSession({ args: [name] }: Props): null;
9
+ export {};
10
+ //# sourceMappingURL=delete-session.d.ts.map
@@ -0,0 +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;AAGtB,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,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,QAcnE"}
@@ -0,0 +1,41 @@
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 { browserClose, isBrowserUseInstalled } from '../../utils/browser-use.js';
7
+ export const args = zod.tuple([zod.string().describe('Session name to delete')]);
8
+ export const options = zod.object({});
9
+ async function runDeleteSession(name) {
10
+ const spinner = p.spinner();
11
+ spinner.start('Checking browser-use...');
12
+ const installed = await isBrowserUseInstalled();
13
+ if (!installed) {
14
+ spinner.stop(chalk.red('Not installed'));
15
+ p.log.error('browser-use is not installed. Run `corebrain browser install` first.');
16
+ return;
17
+ }
18
+ spinner.message(`Closing and removing session "${name}"...`);
19
+ // browser-use manages session cleanup when closing
20
+ const result = await browserClose(name);
21
+ if (result.code !== 0) {
22
+ spinner.stop(chalk.red('Failed to delete session'));
23
+ p.log.error(result.stderr || 'Failed to delete session');
24
+ return;
25
+ }
26
+ spinner.stop(chalk.green(`Session "${name}" deleted`));
27
+ }
28
+ export default function BrowserDeleteSession({ args: [name] }) {
29
+ const { exit } = useApp();
30
+ useEffect(() => {
31
+ runDeleteSession(name)
32
+ .catch((err) => {
33
+ p.log.error(`Failed to delete session: ${err instanceof Error ? err.message : 'Unknown error'}`);
34
+ })
35
+ .finally(() => {
36
+ setTimeout(() => exit(), 100);
37
+ });
38
+ }, [name, exit]);
39
+ return null;
40
+ }
41
+ //# sourceMappingURL=delete-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-session.js","sourceRoot":"","sources":["../../../src/commands/browser/delete-session.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,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,yBAAyB,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,iCAAiC,IAAI,MAAM,CAAC,CAAC;IAE7D,mDAAmD;IACnD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAC;QACzD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAS;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,IAAI,CAAC;aACpB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAClG,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;AAGtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA0BF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAM,EAAE,KAAK,QAcnD"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAgEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAM,EAAE,KAAK,QAkBnD"}
@@ -3,31 +3,63 @@ 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 { isAgentBrowserInstalled, installAgentBrowser } from '../../utils/agent-browser.js';
6
+ import { isBrowserUseInstalled, installBrowserUse, runBrowserUseDoctor, } from '../../utils/browser-use.js';
7
7
  export const options = zod.object({});
8
8
  async function runBrowserInstall() {
9
9
  const spinner = p.spinner();
10
- spinner.start('Checking if agent-browser is installed...');
11
- const installed = await isAgentBrowserInstalled();
10
+ spinner.start('Checking if browser-use is installed...');
11
+ const installed = await isBrowserUseInstalled();
12
12
  if (installed) {
13
- spinner.stop(chalk.green('agent-browser is already installed'));
13
+ spinner.stop(chalk.green('browser-use is already installed'));
14
+ // Run doctor to validate installation
15
+ const doctorSpinner = p.spinner();
16
+ doctorSpinner.start('Running browser-use doctor...');
17
+ const doctorResult = await runBrowserUseDoctor();
18
+ if (doctorResult.code === 0) {
19
+ doctorSpinner.stop(chalk.green('Installation validated'));
20
+ if (doctorResult.stdout) {
21
+ console.log(doctorResult.stdout);
22
+ }
23
+ }
24
+ else {
25
+ doctorSpinner.stop(chalk.yellow('Doctor reported issues'));
26
+ if (doctorResult.stdout) {
27
+ console.log(doctorResult.stdout);
28
+ }
29
+ if (doctorResult.stderr) {
30
+ console.error(chalk.red(doctorResult.stderr));
31
+ }
32
+ }
14
33
  return;
15
34
  }
16
- spinner.message('Installing agent-browser globally via npm...');
17
- const result = await installAgentBrowser();
35
+ spinner.message('Installing browser-use...');
36
+ const result = await installBrowserUse();
18
37
  if (result.code !== 0) {
19
38
  spinner.stop(chalk.red('Installation failed'));
20
39
  p.log.error(result.stderr || 'Installation failed');
21
40
  return;
22
41
  }
23
- spinner.stop(chalk.green('agent-browser installed successfully'));
42
+ spinner.stop(chalk.green('browser-use installed successfully'));
43
+ // Run doctor to validate
44
+ const doctorSpinner = p.spinner();
45
+ doctorSpinner.start('Validating installation with browser-use doctor...');
46
+ const doctorResult = await runBrowserUseDoctor();
47
+ if (doctorResult.code === 0) {
48
+ doctorSpinner.stop(chalk.green('Installation validated'));
49
+ }
50
+ else {
51
+ doctorSpinner.stop(chalk.yellow('Doctor reported issues - you may need to fix these manually'));
52
+ if (doctorResult.stdout) {
53
+ console.log(doctorResult.stdout);
54
+ }
55
+ }
24
56
  }
25
57
  export default function BrowserInstall(_props) {
26
58
  const { exit } = useApp();
27
59
  useEffect(() => {
28
60
  runBrowserInstall()
29
- .catch((err) => {
30
- p.log.error(`Failed to install agent-browser: ${err instanceof Error ? err.message : 'Unknown error'}`);
61
+ .catch(err => {
62
+ p.log.error(`Failed to install browser-use: ${err instanceof Error ? err.message : 'Unknown error'}`);
31
63
  })
32
64
  .finally(() => {
33
65
  setTimeout(() => exit(), 100);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAErF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAElD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAChE,OAAO;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAAC,CAAC;QACpD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAa;IACnD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,iBAAiB,EAAE;aACjB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACzG,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
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import zod from 'zod';
2
+ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
3
+ type Props = {
4
+ options: zod.infer<typeof options>;
5
+ };
6
+ export default function BrowserListSessions(_props: Props): null;
7
+ export {};
8
+ //# sourceMappingURL=list-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sessions.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/list-sessions.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;AAoCF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,MAAM,EAAE,KAAK,QAcxD"}
@@ -0,0 +1,46 @@
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 { browserGetSessions, isBrowserUseInstalled } from '../../utils/browser-use.js';
7
+ export const options = zod.object({});
8
+ async function runListSessions() {
9
+ const spinner = p.spinner();
10
+ spinner.start('Fetching sessions...');
11
+ const installed = await isBrowserUseInstalled();
12
+ if (!installed) {
13
+ spinner.stop(chalk.red('Not installed'));
14
+ p.log.error('browser-use is not installed. Run `corebrain browser install` first.');
15
+ return;
16
+ }
17
+ const sessions = await browserGetSessions();
18
+ spinner.stop(chalk.green('Sessions retrieved'));
19
+ if (sessions.length === 0) {
20
+ p.log.info('No active sessions found.');
21
+ p.log.info('Run `corebrain browser open <url> --session-name <name>` to create a session.');
22
+ return;
23
+ }
24
+ const lines = [
25
+ `${chalk.bold('Active Sessions:')} ${chalk.green(`${sessions.length} found`)}`,
26
+ '',
27
+ ];
28
+ for (const session of sessions) {
29
+ lines.push(` ${chalk.dim('•')} ${chalk.cyan(session)}`);
30
+ }
31
+ p.note(lines.join('\n'), 'Browser Sessions');
32
+ }
33
+ export default function BrowserListSessions(_props) {
34
+ const { exit } = useApp();
35
+ useEffect(() => {
36
+ runListSessions()
37
+ .catch((err) => {
38
+ p.log.error(err instanceof Error ? err.message : 'Unknown error');
39
+ })
40
+ .finally(() => {
41
+ setTimeout(() => exit(), 100);
42
+ });
43
+ }, [exit]);
44
+ return null;
45
+ }
46
+ //# sourceMappingURL=list-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sessions.js","sourceRoot":"","sources":["../../../src/commands/browser/list-sessions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAC5F,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAa;QACvB,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,EAAE;QAC9E,EAAE;KACF,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,MAAa;IACxD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,EAAE;aACf,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,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,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"open-head.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/open-head.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAsDF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,KAAK,QAcpD"}
1
+ {"version":3,"file":"open-head.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/open-head.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;AA+DF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,KAAK,QAgBpD"}
@@ -3,54 +3,60 @@ 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 { isAgentBrowserInstalled, browserOpen, browserGetProfiles, createProfile } from '../../utils/agent-browser.js';
6
+ import { isBrowserUseInstalled, browserOpen, browserGetSessions, } from '../../utils/browser-use.js';
7
7
  const DEFAULT_URL = 'https://app.getcore.me';
8
8
  export const options = zod.object({});
9
9
  async function runOpenHead() {
10
10
  const spinner = p.spinner();
11
- spinner.start('Checking agent-browser...');
12
- const installed = await isAgentBrowserInstalled();
11
+ spinner.start('Checking browser-use...');
12
+ const installed = await isBrowserUseInstalled();
13
13
  if (!installed) {
14
14
  spinner.stop(chalk.red('Not installed'));
15
- p.log.error('agent-browser is not installed. Run `corebrain browser install` first.');
15
+ p.log.error('browser-use is not installed. Run `corebrain browser install` first.');
16
16
  return;
17
17
  }
18
18
  spinner.stop(chalk.green('Ready'));
19
- // Get available profiles
20
- let profiles = browserGetProfiles();
21
- // If no profiles exist, create a default one
22
- if (profiles.length === 0) {
23
- p.log.info('No profiles found. Creating "personal" profile...');
24
- createProfile('personal');
25
- profiles = ['personal'];
19
+ // Get available sessions
20
+ let sessions = await browserGetSessions();
21
+ // Add default session options if no sessions exist
22
+ if (sessions.length === 0) {
23
+ sessions = ['personal', 'work'];
26
24
  }
27
- // Show profile selector
28
- const selectedProfile = await p.select({
29
- message: 'Select a profile to open:',
30
- options: profiles.map(profile => ({
31
- value: profile,
32
- label: profile,
25
+ else {
26
+ // Add common options if not already present
27
+ if (!sessions.includes('personal'))
28
+ sessions.push('personal');
29
+ if (!sessions.includes('work'))
30
+ sessions.push('work');
31
+ }
32
+ // Show session selector
33
+ const selectedSession = await p.select({
34
+ message: 'Select a session to use:',
35
+ options: sessions.map(session => ({
36
+ value: session,
37
+ label: session,
33
38
  })),
34
39
  });
35
- if (p.isCancel(selectedProfile)) {
40
+ if (p.isCancel(selectedSession)) {
36
41
  p.log.info('Cancelled');
37
42
  return;
38
43
  }
39
44
  const openSpinner = p.spinner();
40
- openSpinner.start(`Opening ${DEFAULT_URL} with profile "${selectedProfile}"...`);
41
- const result = await browserOpen(DEFAULT_URL, selectedProfile);
45
+ openSpinner.start(`Opening ${DEFAULT_URL} with session "${selectedSession}" (headed)...`);
46
+ // Open in headed mode
47
+ const result = await browserOpen(DEFAULT_URL, selectedSession, true);
42
48
  if (result.code !== 0) {
43
49
  openSpinner.stop(chalk.red('Failed to open browser'));
44
50
  p.log.error(result.stderr || 'Failed to open browser');
45
51
  return;
46
52
  }
47
- openSpinner.stop(chalk.green(`Opened ${DEFAULT_URL} (profile: ${selectedProfile})`));
53
+ openSpinner.stop(chalk.green(`Opened ${DEFAULT_URL} (session: ${selectedSession}, headed)`));
48
54
  }
49
55
  export default function BrowserOpenHead(_props) {
50
56
  const { exit } = useApp();
51
57
  useEffect(() => {
52
58
  runOpenHead()
53
- .catch((err) => {
59
+ .catch(err => {
54
60
  p.log.error(`Failed: ${err instanceof Error ? err.message : 'Unknown error'}`);
55
61
  })
56
62
  .finally(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"open-head.js","sourceRoot":"","sources":["../../../src/commands/browser/open-head.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-head.js","sourceRoot":"","sources":["../../../src/commands/browser/open-head.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import zod from 'zod';
2
2
  export declare const args: zod.ZodTuple<[zod.ZodString], null>;
3
3
  export declare const options: zod.ZodObject<{
4
- profile: zod.ZodDefault<zod.ZodOptional<zod.ZodString>>;
4
+ sessionName: zod.ZodDefault<zod.ZodOptional<zod.ZodString>>;
5
5
  }, zod.core.$strip>;
6
6
  type Props = {
7
7
  args: zod.infer<typeof args>;
@@ -1 +1 @@
1
- {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/open.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,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;AA2BF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,QAclE"}
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/open.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,IAAI,qCAAoD,CAAC;AAEtE,eAAO,MAAM,OAAO;;mBAMlB,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,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAC,EAAE,KAAK,QAkBhE"}
@@ -3,42 +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 { isAgentBrowserInstalled, browserOpen } from '../../utils/agent-browser.js';
7
- export const args = zod.tuple([
8
- zod.string().describe('URL to open'),
9
- ]);
6
+ import { isBrowserUseInstalled, browserOpen } from '../../utils/browser-use.js';
7
+ export const args = zod.tuple([zod.string().describe('URL to open')]);
10
8
  export const options = zod.object({
11
- profile: zod.string().optional().default('default').describe('Browser profile to use (default: default)'),
9
+ sessionName: zod
10
+ .string()
11
+ .optional()
12
+ .default('default')
13
+ .describe('Session name for persistence (default: default)'),
12
14
  });
13
- async function runBrowserOpen(url, profile) {
15
+ async function runBrowserOpen(url, sessionName) {
14
16
  const spinner = p.spinner();
15
- spinner.start('Checking agent-browser...');
16
- const installed = await isAgentBrowserInstalled();
17
+ spinner.start('Checking browser-use...');
18
+ const installed = await isBrowserUseInstalled();
17
19
  if (!installed) {
18
20
  spinner.stop(chalk.red('Not installed'));
19
- p.log.error('agent-browser is not installed. Run `corebrain browser install` first.');
21
+ p.log.error('browser-use is not installed. Run `corebrain browser install` first.');
20
22
  return;
21
23
  }
22
- spinner.message(`Opening ${url} with profile "${profile}"...`);
23
- const result = await browserOpen(url, profile);
24
+ spinner.message(`Opening ${url} with session "${sessionName}"...`);
25
+ const result = await browserOpen(url, sessionName);
24
26
  if (result.code !== 0) {
25
27
  spinner.stop(chalk.red('Failed to open URL'));
26
28
  p.log.error(result.stderr || 'Failed to open URL');
27
29
  return;
28
30
  }
29
- spinner.stop(chalk.green(`Opened ${url} (profile: ${profile})`));
31
+ spinner.stop(chalk.green(`Opened ${url} (session: ${sessionName})`));
30
32
  }
31
33
  export default function BrowserOpen({ args: [url], options }) {
32
34
  const { exit } = useApp();
33
35
  useEffect(() => {
34
- runBrowserOpen(url, options.profile)
35
- .catch((err) => {
36
+ runBrowserOpen(url, options.sessionName)
37
+ .catch(err => {
36
38
  p.log.error(`Failed to open URL: ${err instanceof Error ? err.message : 'Unknown error'}`);
37
39
  })
38
40
  .finally(() => {
39
41
  setTimeout(() => exit(), 100);
40
42
  });
41
- }, [url, options.profile, exit]);
43
+ }, [url, options.sessionName, exit]);
42
44
  return null;
43
45
  }
44
46
  //# sourceMappingURL=open.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/browser/open.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CACzG,CAAC,CAAC;AAOH,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,OAAe;IACzD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACtF,OAAO;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,kBAAkB,OAAO,MAAM,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE/C,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAC;QACnD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAS;IAClE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;aAClC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5F,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,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjC,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/browser/open.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,qBAAqB,EAAE,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAEvE,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,GAAG;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,iDAAiD,CAAC;CAC7D,CAAC,CAAC;AAOH,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,WAAmB;IAC7D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CACV,sEAAsE,CACtE,CAAC;QACF,OAAO;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,kBAAkB,WAAW,MAAM,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAC;QACnD,OAAO;IACR,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,WAAW,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAQ;IAChE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;aACtC,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CACV,uBACC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eACtC,EAAE,CACF,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,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAErC,OAAO,IAAI,CAAC;AACb,CAAC"}