@redplanethq/corebrain 1.0.0 → 2.1.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.d.ts +10 -0
- package/dist/commands/browser/close.d.ts.map +1 -0
- package/dist/commands/browser/close.js +60 -0
- package/dist/commands/browser/close.js.map +1 -0
- package/dist/commands/browser/command.d.ts +10 -0
- package/dist/commands/browser/command.d.ts.map +1 -0
- package/dist/commands/browser/command.js +67 -0
- package/dist/commands/browser/command.js.map +1 -0
- 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 +29 -0
- package/dist/commands/browser/create-profile.js.map +1 -0
- 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 +27 -0
- package/dist/commands/browser/delete-profile.js.map +1 -0
- package/dist/commands/browser/install.d.ts +8 -0
- package/dist/commands/browser/install.d.ts.map +1 -0
- package/dist/commands/browser/install.js +49 -0
- package/dist/commands/browser/install.js.map +1 -0
- package/dist/commands/browser/open.d.ts +12 -0
- package/dist/commands/browser/open.d.ts.map +1 -0
- package/dist/commands/browser/open.js +65 -0
- package/dist/commands/browser/open.js.map +1 -0
- package/dist/commands/browser/status.d.ts +8 -0
- package/dist/commands/browser/status.d.ts.map +1 -0
- package/dist/commands/browser/status.js +48 -0
- package/dist/commands/browser/status.js.map +1 -0
- package/dist/commands/coding/[agent]/config.d.ts +18 -0
- package/dist/commands/coding/[agent]/config.d.ts.map +1 -0
- package/dist/commands/coding/[agent]/config.js +91 -0
- package/dist/commands/coding/[agent]/config.js.map +1 -0
- package/dist/commands/coding/config.d.ts +23 -0
- package/dist/commands/coding/config.d.ts.map +1 -0
- package/dist/commands/coding/config.js +116 -0
- package/dist/commands/coding/config.js.map +1 -0
- package/dist/commands/coding/index.d.ts +8 -0
- package/dist/commands/coding/index.d.ts.map +1 -0
- package/dist/commands/coding/index.js +42 -0
- package/dist/commands/coding/index.js.map +1 -0
- package/dist/commands/coding/remove.d.ts +10 -0
- package/dist/commands/coding/remove.d.ts.map +1 -0
- package/dist/commands/coding/remove.js +37 -0
- package/dist/commands/coding/remove.js.map +1 -0
- package/dist/commands/coding/setup.d.ts +8 -0
- package/dist/commands/coding/setup.d.ts.map +1 -0
- package/dist/commands/coding/setup.js +114 -0
- package/dist/commands/coding/setup.js.map +1 -0
- package/dist/commands/exec/config.d.ts +14 -0
- package/dist/commands/exec/config.d.ts.map +1 -0
- package/dist/commands/exec/config.js +79 -0
- package/dist/commands/exec/config.js.map +1 -0
- package/dist/commands/gateway/config.d.ts +8 -0
- package/dist/commands/gateway/config.d.ts.map +1 -0
- package/dist/commands/gateway/config.js +192 -0
- package/dist/commands/gateway/config.js.map +1 -0
- package/dist/commands/gateway/index.d.ts +14 -0
- package/dist/commands/gateway/index.d.ts.map +1 -0
- package/dist/commands/gateway/index.js +10 -0
- package/dist/commands/gateway/index.js.map +1 -0
- package/dist/commands/gateway/off.d.ts +8 -0
- package/dist/commands/gateway/off.d.ts.map +1 -0
- package/dist/commands/gateway/off.js +70 -0
- package/dist/commands/gateway/off.js.map +1 -0
- package/dist/commands/gateway/on.d.ts +8 -0
- package/dist/commands/gateway/on.d.ts.map +1 -0
- package/dist/commands/gateway/on.js +135 -0
- package/dist/commands/gateway/on.js.map +1 -0
- package/dist/commands/gateway/restart.d.ts +8 -0
- package/dist/commands/gateway/restart.d.ts.map +1 -0
- package/dist/commands/gateway/restart.js +70 -0
- package/dist/commands/gateway/restart.js.map +1 -0
- package/dist/commands/gateway/status.d.ts +8 -0
- package/dist/commands/gateway/status.d.ts.map +1 -0
- package/dist/commands/gateway/status.js +98 -0
- package/dist/commands/gateway/status.js.map +1 -0
- package/dist/commands/gateway/uninstall.d.ts +8 -0
- package/dist/commands/gateway/uninstall.d.ts.map +1 -0
- package/dist/commands/gateway/uninstall.js +80 -0
- package/dist/commands/gateway/uninstall.js.map +1 -0
- package/dist/commands/index.d.ts +1 -5
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/me.d.ts +1 -1
- package/dist/commands/me.d.ts.map +1 -1
- package/dist/commands/server.d.ts +10 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +60 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/commands/token.d.ts +1 -1
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/components/error-message.d.ts.map +1 -1
- package/dist/components/error-message.js +6 -1
- package/dist/components/error-message.js.map +1 -1
- package/dist/components/info-message.d.ts.map +1 -1
- package/dist/components/info-message.js +5 -1
- package/dist/components/info-message.js.map +1 -1
- package/dist/components/success-message.d.ts.map +1 -1
- package/dist/components/success-message.js +5 -1
- package/dist/components/success-message.js.map +1 -1
- package/dist/components/warning-message.d.ts +2 -3
- package/dist/components/warning-message.d.ts.map +1 -1
- package/dist/components/warning-message.js +10 -4
- package/dist/components/warning-message.js.map +1 -1
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +31 -30
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +4 -36
- package/dist/config/paths.js.map +1 -1
- package/dist/config/preferences.d.ts +14 -0
- package/dist/config/preferences.d.ts.map +1 -0
- package/dist/config/preferences.js +82 -0
- package/dist/config/preferences.js.map +1 -0
- package/dist/config/themes.d.ts +5 -0
- package/dist/config/themes.d.ts.map +1 -1
- package/dist/config/themes.js +5 -0
- package/dist/config/themes.js.map +1 -1
- package/dist/server/gateway-client.d.ts +80 -0
- package/dist/server/gateway-client.d.ts.map +1 -0
- package/dist/server/gateway-client.js +280 -0
- package/dist/server/gateway-client.js.map +1 -0
- package/dist/server/gateway-entry.d.ts +7 -0
- package/dist/server/gateway-entry.d.ts.map +1 -0
- package/dist/server/gateway-entry.js +138 -0
- package/dist/server/gateway-entry.js.map +1 -0
- package/dist/server/gateway.d.ts +5 -0
- package/dist/server/gateway.d.ts.map +1 -0
- package/dist/server/gateway.js +136 -0
- package/dist/server/gateway.js.map +1 -0
- package/dist/server/tools/browser-tools.d.ts +28 -0
- package/dist/server/tools/browser-tools.d.ts.map +1 -0
- package/dist/server/tools/browser-tools.js +179 -0
- package/dist/server/tools/browser-tools.js.map +1 -0
- package/dist/server/tools/coding-tools.d.ts +27 -0
- package/dist/server/tools/coding-tools.d.ts.map +1 -0
- package/dist/server/tools/coding-tools.js +345 -0
- package/dist/server/tools/coding-tools.js.map +1 -0
- package/dist/server/tools/exec-tools.d.ts +14 -0
- package/dist/server/tools/exec-tools.d.ts.map +1 -0
- package/dist/server/tools/exec-tools.js +203 -0
- package/dist/server/tools/exec-tools.js.map +1 -0
- package/dist/types/config.d.ts +36 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/agent-browser.d.ts +63 -0
- package/dist/utils/agent-browser.d.ts.map +1 -0
- package/dist/utils/agent-browser.js +301 -0
- package/dist/utils/agent-browser.js.map +1 -0
- package/dist/utils/coding-runner.d.ts +60 -0
- package/dist/utils/coding-runner.d.ts.map +1 -0
- package/dist/utils/coding-runner.js +174 -0
- package/dist/utils/coding-runner.js.map +1 -0
- package/dist/utils/coding-sessions.d.ts +61 -0
- package/dist/utils/coding-sessions.d.ts.map +1 -0
- package/dist/utils/coding-sessions.js +112 -0
- package/dist/utils/coding-sessions.js.map +1 -0
- package/dist/utils/process.d.ts +22 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +81 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/service-manager/index.d.ts +49 -0
- package/dist/utils/service-manager/index.d.ts.map +1 -0
- package/dist/utils/service-manager/index.js +137 -0
- package/dist/utils/service-manager/index.js.map +1 -0
- package/dist/utils/service-manager/launchd.d.ts +31 -0
- package/dist/utils/service-manager/launchd.d.ts.map +1 -0
- package/dist/utils/service-manager/launchd.js +208 -0
- package/dist/utils/service-manager/launchd.js.map +1 -0
- package/dist/utils/service-manager/systemd.d.ts +31 -0
- package/dist/utils/service-manager/systemd.d.ts.map +1 -0
- package/dist/utils/service-manager/systemd.js +187 -0
- package/dist/utils/service-manager/systemd.js.map +1 -0
- package/dist/utils/tmux.d.ts +37 -0
- package/dist/utils/tmux.d.ts.map +1 -0
- package/dist/utils/tmux.js +96 -0
- package/dist/utils/tmux.js.map +1 -0
- package/package.json +15 -12
|
@@ -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 BrowserClose({ args: [sessionName] }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=close.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/close.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,eAAO,MAAM,IAAI,qCAEf,CAAC;AAEH,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;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,2CAsElE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import SuccessMessage from '../../components/success-message.js';
|
|
8
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
9
|
+
import { isAgentBrowserInstalled, browserClose, getSession } from '../../utils/agent-browser.js';
|
|
10
|
+
export const args = zod.tuple([
|
|
11
|
+
zod.string().describe('Session name to close'),
|
|
12
|
+
]);
|
|
13
|
+
export const options = zod.object({});
|
|
14
|
+
export default function BrowserClose({ args: [sessionName] }) {
|
|
15
|
+
const [status, setStatus] = useState('checking');
|
|
16
|
+
const [error, setError] = useState('');
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
let cancelled = false;
|
|
19
|
+
(async () => {
|
|
20
|
+
try {
|
|
21
|
+
const installed = await isAgentBrowserInstalled();
|
|
22
|
+
if (!installed) {
|
|
23
|
+
if (!cancelled) {
|
|
24
|
+
setStatus('not-installed');
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Check if session exists
|
|
29
|
+
const session = getSession(sessionName);
|
|
30
|
+
if (!session) {
|
|
31
|
+
if (!cancelled) {
|
|
32
|
+
setStatus('not-found');
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!cancelled) {
|
|
37
|
+
setStatus('closing');
|
|
38
|
+
}
|
|
39
|
+
const result = await browserClose(sessionName);
|
|
40
|
+
if (result.code !== 0) {
|
|
41
|
+
throw new Error(result.stderr || 'Failed to close browser');
|
|
42
|
+
}
|
|
43
|
+
if (!cancelled) {
|
|
44
|
+
setStatus('success');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
if (!cancelled) {
|
|
49
|
+
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
50
|
+
setStatus('error');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
return () => {
|
|
55
|
+
cancelled = true;
|
|
56
|
+
};
|
|
57
|
+
}, [sessionName]);
|
|
58
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'checking' ? (_jsx(Text, { dimColor: true, children: "Checking agent-browser..." })) : status === 'not-installed' ? (_jsx(ErrorMessage, { message: "agent-browser is not installed. Run `corebrain browser install` first." })) : status === 'not-found' ? (_jsx(ErrorMessage, { message: `Session "${sessionName}" not found. Use \`corebrain browser status\` to see active sessions.` })) : status === 'closing' ? (_jsxs(Text, { dimColor: true, children: ["Closing session \"", sessionName, "\"..."] })) : status === 'success' ? (_jsx(SuccessMessage, { message: `Closed session "${sessionName}"`, hideTitle: true })) : status === 'error' ? (_jsx(ErrorMessage, { message: `Failed to close browser: ${error}` })) : null }));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/browser/close.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, zod.ZodString], zod.ZodString>;
|
|
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 BrowserCommand({ args: [sessionName, command, ...commandArgs] }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/command.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,IAAI,6DAGkC,CAAC;AAEpD,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;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,KAAK,2CAmF7F"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text, Box } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
8
|
+
import { isAgentBrowserInstalled, browserCommand, getSession, isBlockedCommand } from '../../utils/agent-browser.js';
|
|
9
|
+
export const args = zod.tuple([
|
|
10
|
+
zod.string().describe('Session name'),
|
|
11
|
+
zod.string().describe('Command to run'),
|
|
12
|
+
]).rest(zod.string().describe('Command arguments'));
|
|
13
|
+
export const options = zod.object({});
|
|
14
|
+
export default function BrowserCommand({ args: [sessionName, command, ...commandArgs] }) {
|
|
15
|
+
const [status, setStatus] = useState('checking');
|
|
16
|
+
const [result, setResult] = useState(null);
|
|
17
|
+
const [error, setError] = useState('');
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
let cancelled = false;
|
|
20
|
+
(async () => {
|
|
21
|
+
try {
|
|
22
|
+
const installed = await isAgentBrowserInstalled();
|
|
23
|
+
if (!installed) {
|
|
24
|
+
if (!cancelled) {
|
|
25
|
+
setStatus('not-installed');
|
|
26
|
+
}
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Check if command is blocked
|
|
30
|
+
if (isBlockedCommand(command)) {
|
|
31
|
+
if (!cancelled) {
|
|
32
|
+
setError(`Command "${command}" is blocked. Use \`corebrain browser open\` or \`corebrain browser close\` for open/close operations.`);
|
|
33
|
+
setStatus('blocked');
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// Check if session exists
|
|
38
|
+
const session = getSession(sessionName);
|
|
39
|
+
if (!session) {
|
|
40
|
+
if (!cancelled) {
|
|
41
|
+
setStatus('not-found');
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (!cancelled) {
|
|
46
|
+
setStatus('running');
|
|
47
|
+
}
|
|
48
|
+
const cmdResult = await browserCommand(sessionName, command, commandArgs);
|
|
49
|
+
if (!cancelled) {
|
|
50
|
+
setResult(cmdResult);
|
|
51
|
+
setStatus('done');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
if (!cancelled) {
|
|
56
|
+
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
57
|
+
setStatus('error');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
})();
|
|
61
|
+
return () => {
|
|
62
|
+
cancelled = true;
|
|
63
|
+
};
|
|
64
|
+
}, [sessionName, command, commandArgs]);
|
|
65
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'checking' ? (_jsx(Text, { dimColor: true, children: "Checking agent-browser..." })) : status === 'not-installed' ? (_jsx(ErrorMessage, { message: "agent-browser is not installed. Run `corebrain browser install` first." })) : status === 'not-found' ? (_jsx(ErrorMessage, { message: `Session "${sessionName}" not found. Use \`corebrain browser open\` to create a session first.` })) : status === 'blocked' ? (_jsx(ErrorMessage, { message: error })) : status === 'running' ? (_jsxs(Text, { dimColor: true, children: ["Running: ", command, " ", commandArgs.join(' '), " on session \"", sessionName, "\""] })) : status === 'done' && result ? (_jsxs(Box, { flexDirection: "column", children: [result.stdout && _jsx(Text, { children: result.stdout }), result.stderr && _jsx(Text, { color: "red", children: result.stderr }), result.code !== 0 && _jsxs(Text, { dimColor: true, children: ["Exit code: ", result.code] })] })) : status === 'error' ? (_jsx(ErrorMessage, { message: error })) : null }));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 BrowserCreateProfile({ args: [name] }: Props): import("react/jsx-runtime").JSX.Element;
|
|
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":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,eAAO,MAAM,IAAI,qCAAqD,CAAC;AAEvE,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;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,2CA4BnE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import SuccessMessage from '../../components/success-message.js';
|
|
8
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
9
|
+
import { createProfile } from '../../utils/agent-browser.js';
|
|
10
|
+
export const args = zod.tuple([zod.string().describe('Profile name')]);
|
|
11
|
+
export const options = zod.object({});
|
|
12
|
+
export default function BrowserCreateProfile({ args: [name] }) {
|
|
13
|
+
const [status, setStatus] = useState('creating');
|
|
14
|
+
const [profilePath, setProfilePath] = useState('');
|
|
15
|
+
const [error, setError] = useState('');
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const result = createProfile(name);
|
|
18
|
+
if (result.success) {
|
|
19
|
+
setProfilePath(result.path);
|
|
20
|
+
setStatus('success');
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
setError(result.error || 'Unknown error');
|
|
24
|
+
setStatus('error');
|
|
25
|
+
}
|
|
26
|
+
}, [name]);
|
|
27
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'creating' ? (_jsxs(Text, { dimColor: true, children: ["Creating profile ", name, "..."] })) : status === 'success' ? (_jsx(SuccessMessage, { message: `Profile "${name}" created at ${profilePath}` })) : status === 'error' ? (_jsx(ErrorMessage, { message: `Failed to create profile: ${error}` })) : null }));
|
|
28
|
+
}
|
|
29
|
+
//# 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,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAOtC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAS;IACnE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAmC,UAAU,CAAC,CAAC;IACnF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;YAC1C,SAAS,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACF,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACN,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,YAC7C,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CACxB,MAAC,IAAI,IAAC,QAAQ,wCAAmB,IAAI,WAAW,CAChD,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1B,KAAC,cAAc,IAAC,OAAO,EAAE,YAAY,IAAI,gBAAgB,WAAW,EAAE,GAAI,CAC1E,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,YAAY,IAAC,OAAO,EAAE,6BAA6B,KAAK,EAAE,GAAI,CAC/D,CAAC,CAAC,CAAC,IAAI,GACe,CACxB,CAAC;AACH,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 BrowserDeleteProfile({ args: [name] }: Props): import("react/jsx-runtime").JSX.Element;
|
|
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":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,eAAO,MAAM,IAAI,qCAAqD,CAAC;AAEvE,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;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,2CA0BnE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import SuccessMessage from '../../components/success-message.js';
|
|
8
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
9
|
+
import { deleteProfile } from '../../utils/agent-browser.js';
|
|
10
|
+
export const args = zod.tuple([zod.string().describe('Profile name')]);
|
|
11
|
+
export const options = zod.object({});
|
|
12
|
+
export default function BrowserDeleteProfile({ args: [name] }) {
|
|
13
|
+
const [status, setStatus] = useState('deleting');
|
|
14
|
+
const [error, setError] = useState('');
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
const result = deleteProfile(name);
|
|
17
|
+
if (result.success) {
|
|
18
|
+
setStatus('success');
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
setError(result.error || 'Unknown error');
|
|
22
|
+
setStatus('error');
|
|
23
|
+
}
|
|
24
|
+
}, [name]);
|
|
25
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'deleting' ? (_jsxs(Text, { dimColor: true, children: ["Deleting profile ", name, "..."] })) : status === 'success' ? (_jsx(SuccessMessage, { message: `Profile "${name}" deleted` })) : status === 'error' ? (_jsx(ErrorMessage, { message: `Failed to delete profile: ${error}` })) : null }));
|
|
26
|
+
}
|
|
27
|
+
//# 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,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAOtC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAS;IACnE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAmC,UAAU,CAAC,CAAC;IACnF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;YAC1C,SAAS,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACF,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACN,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,YAC7C,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CACxB,MAAC,IAAI,IAAC,QAAQ,wCAAmB,IAAI,WAAW,CAChD,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1B,KAAC,cAAc,IAAC,OAAO,EAAE,YAAY,IAAI,WAAW,GAAI,CACxD,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,KAAC,YAAY,IAAC,OAAO,EAAE,6BAA6B,KAAK,EAAE,GAAI,CAC/D,CAAC,CAAC,CAAC,IAAI,GACe,CACxB,CAAC;AACH,CAAC"}
|
|
@@ -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 BrowserInstall(_props: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"AAEA,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;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAM,EAAE,KAAK,2CA2DnD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import SuccessMessage from '../../components/success-message.js';
|
|
8
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
9
|
+
import { isAgentBrowserInstalled, installAgentBrowser } from '../../utils/agent-browser.js';
|
|
10
|
+
export const options = zod.object({});
|
|
11
|
+
export default function BrowserInstall(_props) {
|
|
12
|
+
const [status, setStatus] = useState('checking');
|
|
13
|
+
const [error, setError] = useState('');
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
let cancelled = false;
|
|
16
|
+
(async () => {
|
|
17
|
+
try {
|
|
18
|
+
const installed = await isAgentBrowserInstalled();
|
|
19
|
+
if (installed) {
|
|
20
|
+
if (!cancelled) {
|
|
21
|
+
setStatus('already-installed');
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (!cancelled) {
|
|
26
|
+
setStatus('installing');
|
|
27
|
+
}
|
|
28
|
+
const result = await installAgentBrowser();
|
|
29
|
+
if (result.code !== 0) {
|
|
30
|
+
throw new Error(result.stderr || 'Installation failed');
|
|
31
|
+
}
|
|
32
|
+
if (!cancelled) {
|
|
33
|
+
setStatus('success');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
if (!cancelled) {
|
|
38
|
+
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
39
|
+
setStatus('error');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
})();
|
|
43
|
+
return () => {
|
|
44
|
+
cancelled = true;
|
|
45
|
+
};
|
|
46
|
+
}, []);
|
|
47
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'checking' ? (_jsx(Text, { dimColor: true, children: "Checking if agent-browser is installed..." })) : status === 'already-installed' ? (_jsx(SuccessMessage, { message: "agent-browser is already installed", hideTitle: true })) : status === 'installing' ? (_jsx(Text, { dimColor: true, children: "Installing agent-browser globally via npm..." })) : status === 'success' ? (_jsx(SuccessMessage, { message: "agent-browser installed successfully" })) : status === 'error' ? (_jsx(ErrorMessage, { message: `Failed to install agent-browser: ${error}` })) : null }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/browser/install.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const args: zod.ZodTuple<[zod.ZodString, zod.ZodString], null>;
|
|
3
|
+
export declare const options: zod.ZodObject<{
|
|
4
|
+
profile: zod.ZodDefault<zod.ZodOptional<zod.ZodString>>;
|
|
5
|
+
}, zod.core.$strip>;
|
|
6
|
+
type Props = {
|
|
7
|
+
args: zod.infer<typeof args>;
|
|
8
|
+
options: zod.infer<typeof options>;
|
|
9
|
+
};
|
|
10
|
+
export default function BrowserOpen({ args: [sessionName, url], options }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=open.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/open.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,eAAO,MAAM,IAAI,oDAGf,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;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,2CAuE/E"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import SuccessMessage from '../../components/success-message.js';
|
|
8
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
9
|
+
import { isAgentBrowserInstalled, browserOpen, canCreateSession, getSession } from '../../utils/agent-browser.js';
|
|
10
|
+
export const args = zod.tuple([
|
|
11
|
+
zod.string().describe('Session name'),
|
|
12
|
+
zod.string().describe('URL to open'),
|
|
13
|
+
]);
|
|
14
|
+
export const options = zod.object({
|
|
15
|
+
profile: zod.string().optional().default('corebrain').describe('Browser profile to use (default: corebrain)'),
|
|
16
|
+
});
|
|
17
|
+
export default function BrowserOpen({ args: [sessionName, url], options }) {
|
|
18
|
+
const [status, setStatus] = useState('checking');
|
|
19
|
+
const [error, setError] = useState('');
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
let cancelled = false;
|
|
22
|
+
(async () => {
|
|
23
|
+
try {
|
|
24
|
+
const installed = await isAgentBrowserInstalled();
|
|
25
|
+
if (!installed) {
|
|
26
|
+
if (!cancelled) {
|
|
27
|
+
setStatus('not-installed');
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Check session limit
|
|
32
|
+
const { allowed, count } = canCreateSession();
|
|
33
|
+
const existingSession = getSession(sessionName);
|
|
34
|
+
if (!existingSession && !allowed) {
|
|
35
|
+
if (!cancelled) {
|
|
36
|
+
setError(`Maximum 3 sessions allowed. Currently running: ${count}. Close a session first.`);
|
|
37
|
+
setStatus('error');
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (!cancelled) {
|
|
42
|
+
setStatus('opening');
|
|
43
|
+
}
|
|
44
|
+
const result = await browserOpen(sessionName, url, options.profile);
|
|
45
|
+
if (result.code !== 0) {
|
|
46
|
+
throw new Error(result.stderr || 'Failed to open URL');
|
|
47
|
+
}
|
|
48
|
+
if (!cancelled) {
|
|
49
|
+
setStatus('success');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (!cancelled) {
|
|
54
|
+
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
55
|
+
setStatus('error');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
return () => {
|
|
60
|
+
cancelled = true;
|
|
61
|
+
};
|
|
62
|
+
}, [sessionName, url, options.profile]);
|
|
63
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'checking' ? (_jsx(Text, { dimColor: true, children: "Checking agent-browser..." })) : status === 'not-installed' ? (_jsx(ErrorMessage, { message: "agent-browser is not installed. Run `corebrain browser install` first." })) : status === 'opening' ? (_jsxs(Text, { dimColor: true, children: ["Opening ", url, " in session \"", sessionName, "\"..."] })) : status === 'success' ? (_jsx(SuccessMessage, { message: `Opened ${url} in session "${sessionName}" (profile: ${options.profile})`, hideTitle: true })) : status === 'error' ? (_jsx(ErrorMessage, { message: `Failed to open URL: ${error}` })) : null }));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=open.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/browser/open.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 BrowserStatus(_props: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/status.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAQF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,MAAM,EAAE,KAAK,kDA2GlD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Text, Box } from 'ink';
|
|
4
|
+
import zod from 'zod';
|
|
5
|
+
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
6
|
+
import { themeContextValue } from '../../config/themes.js';
|
|
7
|
+
import ErrorMessage from '../../components/error-message.js';
|
|
8
|
+
import { isAgentBrowserInstalled, browserListSessions, browserGetProfiles } from '../../utils/agent-browser.js';
|
|
9
|
+
export const options = zod.object({});
|
|
10
|
+
export default function BrowserStatus(_props) {
|
|
11
|
+
const [status, setStatus] = useState('checking');
|
|
12
|
+
const [info, setInfo] = useState(null);
|
|
13
|
+
const [error, setError] = useState('');
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
let cancelled = false;
|
|
16
|
+
(async () => {
|
|
17
|
+
try {
|
|
18
|
+
const installed = await isAgentBrowserInstalled();
|
|
19
|
+
const sessions = browserListSessions();
|
|
20
|
+
const profiles = browserGetProfiles();
|
|
21
|
+
if (!cancelled) {
|
|
22
|
+
setInfo({ installed, sessions, profiles });
|
|
23
|
+
setStatus('ready');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
if (!cancelled) {
|
|
28
|
+
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
29
|
+
setStatus('error');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
})();
|
|
33
|
+
return () => {
|
|
34
|
+
cancelled = true;
|
|
35
|
+
};
|
|
36
|
+
}, []);
|
|
37
|
+
if (status === 'checking') {
|
|
38
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsx(Text, { dimColor: true, children: "Checking browser status..." }) }));
|
|
39
|
+
}
|
|
40
|
+
if (status === 'error') {
|
|
41
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsx(ErrorMessage, { message: error }) }));
|
|
42
|
+
}
|
|
43
|
+
if (!info) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: _jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Box, { children: _jsx(Text, { bold: true, children: "Browser Status" }) }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "agent-browser: " }), info.installed ? (_jsx(Text, { color: "green", children: "installed" })) : (_jsx(Text, { color: "red", children: "not installed" }))] }), _jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: ["Sessions (", info.sessions.length, "/3): "] }), info.sessions.length > 0 ? (_jsxs(Text, { color: "green", children: [info.sessions.length, " active"] })) : (_jsx(Text, { color: "gray", children: "none" }))] }), info.sessions.length > 0 && (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: info.sessions.map((session, i) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "\u2022 " }), _jsx(Text, { color: "cyan", children: session.sessionName }), _jsxs(Text, { dimColor: true, children: [" \u2192 ", session.url, " (profile: ", session.profile, ")"] })] }, i))) })), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Profiles: " }), info.profiles.length > 0 ? (_jsx(Text, { children: info.profiles.join(', ') })) : (_jsx(Text, { color: "gray", children: "none" }))] })] }), !info.installed && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Run `corebrain browser install` to install agent-browser" }) }))] }) }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/browser/status.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const options: zod.ZodObject<{
|
|
3
|
+
command: zod.ZodOptional<zod.ZodString>;
|
|
4
|
+
sessionArg: zod.ZodOptional<zod.ZodString>;
|
|
5
|
+
dangerouslySkipPermissions: zod.ZodOptional<zod.ZodBoolean>;
|
|
6
|
+
allowedTools: zod.ZodOptional<zod.ZodString>;
|
|
7
|
+
disallowedTools: zod.ZodOptional<zod.ZodString>;
|
|
8
|
+
modelArg: zod.ZodOptional<zod.ZodString>;
|
|
9
|
+
show: zod.ZodOptional<zod.ZodBoolean>;
|
|
10
|
+
}, zod.core.$strip>;
|
|
11
|
+
export declare const positional: zod.ZodTuple<[zod.ZodString], null>;
|
|
12
|
+
type Props = {
|
|
13
|
+
options: zod.infer<typeof options>;
|
|
14
|
+
positional: zod.infer<typeof positional>;
|
|
15
|
+
};
|
|
16
|
+
export default function CodingAgentConfig({ options: opts, positional: pos }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/commands/coding/[agent]/config.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAStB,eAAO,MAAM,OAAO;;;;;;;;mBAQlB,CAAC;AAEH,eAAO,MAAM,UAAU,qCAA8C,CAAC;AAEtE,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAC,EAAE,KAAK,2CAgGhF"}
|