@redplanethq/corebrain 2.1.0 → 2.3.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 +1 -1
- package/dist/commands/browser/close.d.ts.map +1 -1
- package/dist/commands/browser/close.js +39 -50
- package/dist/commands/browser/close.js.map +1 -1
- package/dist/commands/browser/command.d.ts +1 -1
- package/dist/commands/browser/command.d.ts.map +1 -1
- package/dist/commands/browser/command.js +46 -56
- package/dist/commands/browser/command.js.map +1 -1
- package/dist/commands/browser/create-profile.d.ts +1 -1
- package/dist/commands/browser/create-profile.d.ts.map +1 -1
- package/dist/commands/browser/create-profile.js +27 -21
- package/dist/commands/browser/create-profile.js.map +1 -1
- package/dist/commands/browser/delete-profile.d.ts +1 -1
- package/dist/commands/browser/delete-profile.d.ts.map +1 -1
- package/dist/commands/browser/delete-profile.js +26 -19
- package/dist/commands/browser/delete-profile.js.map +1 -1
- package/dist/commands/browser/install.d.ts +1 -1
- package/dist/commands/browser/install.d.ts.map +1 -1
- package/dist/commands/browser/install.js +31 -42
- package/dist/commands/browser/install.js.map +1 -1
- package/dist/commands/browser/open.d.ts +1 -1
- package/dist/commands/browser/open.d.ts.map +1 -1
- package/dist/commands/browser/open.js +40 -52
- package/dist/commands/browser/open.js.map +1 -1
- package/dist/commands/browser/status.d.ts +1 -1
- package/dist/commands/browser/status.d.ts.map +1 -1
- package/dist/commands/browser/status.js +36 -41
- package/dist/commands/browser/status.js.map +1 -1
- package/dist/commands/coding/config.d.ts +1 -1
- package/dist/commands/coding/config.d.ts.map +1 -1
- package/dist/commands/coding/config.js +95 -98
- package/dist/commands/coding/config.js.map +1 -1
- package/dist/commands/coding/remove.d.ts +1 -1
- package/dist/commands/coding/remove.d.ts.map +1 -1
- package/dist/commands/coding/remove.js +26 -28
- package/dist/commands/coding/remove.js.map +1 -1
- package/dist/commands/coding/setup.d.ts +1 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +56 -71
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/exec/config.d.ts +1 -1
- package/dist/commands/exec/config.d.ts.map +1 -1
- package/dist/commands/exec/config.js +71 -66
- package/dist/commands/exec/config.js.map +1 -1
- package/dist/commands/gateway/config.d.ts +9 -2
- package/dist/commands/gateway/config.d.ts.map +1 -1
- package/dist/commands/gateway/config.js +419 -156
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/gateway/off.d.ts +1 -1
- package/dist/commands/gateway/off.d.ts.map +1 -1
- package/dist/commands/gateway/off.js +53 -63
- package/dist/commands/gateway/off.js.map +1 -1
- package/dist/commands/gateway/on.d.ts +1 -1
- package/dist/commands/gateway/on.d.ts.map +1 -1
- package/dist/commands/gateway/on.js +88 -117
- package/dist/commands/gateway/on.js.map +1 -1
- package/dist/commands/gateway/restart.d.ts +1 -1
- package/dist/commands/gateway/restart.d.ts.map +1 -1
- package/dist/commands/gateway/restart.js +49 -63
- package/dist/commands/gateway/restart.js.map +1 -1
- package/dist/commands/gateway/status.d.ts +1 -1
- package/dist/commands/gateway/status.d.ts.map +1 -1
- package/dist/commands/gateway/status.js +62 -76
- package/dist/commands/gateway/status.js.map +1 -1
- package/dist/commands/gateway/uninstall.d.ts +1 -1
- package/dist/commands/gateway/uninstall.d.ts.map +1 -1
- package/dist/commands/gateway/uninstall.js +60 -72
- package/dist/commands/gateway/uninstall.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +99 -108
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +24 -45
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/me.d.ts +1 -1
- package/dist/commands/me.d.ts.map +1 -1
- package/dist/commands/me.js +40 -50
- package/dist/commands/me.js.map +1 -1
- package/dist/commands/token.d.ts +1 -1
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +19 -24
- package/dist/commands/token.js.map +1 -1
- package/dist/components/error-message.js +0 -1
- package/dist/components/error-message.js.map +1 -1
- package/dist/components/warning-message.js +0 -1
- package/dist/components/warning-message.js.map +1 -1
- package/dist/server/gateway-client.d.ts +4 -0
- package/dist/server/gateway-client.d.ts.map +1 -1
- package/dist/server/gateway-client.js +45 -6
- package/dist/server/gateway-client.js.map +1 -1
- package/dist/server/tools/exec-tools.d.ts.map +1 -1
- package/dist/server/tools/exec-tools.js +9 -0
- package/dist/server/tools/exec-tools.js.map +1 -1
- package/dist/types/config.d.ts +15 -0
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +6 -3
|
@@ -3,6 +3,6 @@ export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
|
3
3
|
type Props = {
|
|
4
4
|
options: zod.infer<typeof options>;
|
|
5
5
|
};
|
|
6
|
-
export default function CodingSetup(_props: Props):
|
|
6
|
+
export default function CodingSetup(_props: Props): null;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/setup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/setup.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAQtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAwGF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,KAAK,QAchD"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
4
5
|
import zod from 'zod';
|
|
5
6
|
import { exec } from 'node:child_process';
|
|
6
7
|
import { promisify } from 'node:util';
|
|
7
8
|
import { getPreferences, updatePreferences } from '../../config/preferences.js';
|
|
8
|
-
import SuccessMessage from '../../components/success-message.js';
|
|
9
|
-
import ErrorMessage from '../../components/error-message.js';
|
|
10
|
-
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
11
|
-
import { themeContextValue } from '../../config/themes.js';
|
|
12
9
|
const execAsync = promisify(exec);
|
|
13
10
|
export const options = zod.object({});
|
|
14
|
-
// Default configurations for known agents
|
|
15
11
|
const agentTemplates = [
|
|
16
12
|
{
|
|
17
13
|
name: 'claude-code',
|
|
@@ -24,14 +20,6 @@ const agentTemplates = [
|
|
|
24
20
|
sessionIdFields: ['session_id'],
|
|
25
21
|
},
|
|
26
22
|
},
|
|
27
|
-
{
|
|
28
|
-
name: 'codex',
|
|
29
|
-
commands: ['codex'],
|
|
30
|
-
defaultConfig: {
|
|
31
|
-
args: [],
|
|
32
|
-
resumeArgs: [],
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
23
|
];
|
|
36
24
|
async function detectAgent(template) {
|
|
37
25
|
for (const cmd of template.commands) {
|
|
@@ -53,62 +41,59 @@ async function detectAgent(template) {
|
|
|
53
41
|
}
|
|
54
42
|
return { name: template.name, command: template.commands[0], available: false };
|
|
55
43
|
}
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (result.available) {
|
|
79
|
-
const template = agentTemplates.find((t) => t.name === result.name);
|
|
80
|
-
if (template) {
|
|
81
|
-
// Only add if not already configured
|
|
82
|
-
if (!existingCoding[result.name]) {
|
|
83
|
-
existingCoding[result.name] = {
|
|
84
|
-
command: result.path || result.command,
|
|
85
|
-
...template.defaultConfig,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
updatePreferences({
|
|
92
|
-
coding: existingCoding,
|
|
93
|
-
});
|
|
94
|
-
setStatus('done');
|
|
95
|
-
}
|
|
96
|
-
catch (err) {
|
|
97
|
-
if (!cancelled) {
|
|
98
|
-
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
99
|
-
setStatus('error');
|
|
44
|
+
async function runCodingSetup() {
|
|
45
|
+
const spinner = p.spinner();
|
|
46
|
+
spinner.start('Detecting available coding agents...');
|
|
47
|
+
const detectionResults = [];
|
|
48
|
+
for (const template of agentTemplates) {
|
|
49
|
+
const result = await detectAgent(template);
|
|
50
|
+
if (result) {
|
|
51
|
+
detectionResults.push(result);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Build and save coding config
|
|
55
|
+
const currentPrefs = getPreferences();
|
|
56
|
+
const existingCoding = (currentPrefs.coding || {});
|
|
57
|
+
for (const result of detectionResults) {
|
|
58
|
+
if (result.available) {
|
|
59
|
+
const template = agentTemplates.find((t) => t.name === result.name);
|
|
60
|
+
if (template) {
|
|
61
|
+
if (!existingCoding[result.name]) {
|
|
62
|
+
existingCoding[result.name] = {
|
|
63
|
+
command: result.path || result.command,
|
|
64
|
+
...template.defaultConfig,
|
|
65
|
+
};
|
|
100
66
|
}
|
|
101
67
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
const availableCount =
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
updatePreferences({
|
|
71
|
+
coding: existingCoding,
|
|
72
|
+
});
|
|
73
|
+
const availableCount = detectionResults.filter((r) => r.available).length;
|
|
74
|
+
if (availableCount === 0) {
|
|
75
|
+
spinner.stop(chalk.yellow('No coding agents found'));
|
|
76
|
+
p.log.warning('Install:\n- claude (Anthropic Claude Code CLI)');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
spinner.stop(chalk.green(`Found ${availableCount} coding agent(s)`));
|
|
80
|
+
const lines = detectionResults.map((r) => r.available
|
|
81
|
+
? ` ${chalk.green('✓')} ${r.name}: ${r.path}`
|
|
82
|
+
: ` ${chalk.dim('✗')} ${r.name}: not found`);
|
|
83
|
+
p.note(lines.join('\n'), 'Detected Agents');
|
|
84
|
+
p.log.info("Configuration saved. Use 'corebrain coding config --agent <name>' to customize.");
|
|
85
|
+
}
|
|
86
|
+
export default function CodingSetup(_props) {
|
|
87
|
+
const { exit } = useApp();
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
runCodingSetup()
|
|
90
|
+
.catch((err) => {
|
|
91
|
+
p.log.error(`Detection failed: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
92
|
+
})
|
|
93
|
+
.finally(() => {
|
|
94
|
+
setTimeout(() => exit(), 100);
|
|
95
|
+
});
|
|
96
|
+
}, [exit]);
|
|
97
|
+
return null;
|
|
113
98
|
}
|
|
114
99
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/coding/setup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/coding/setup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,6 @@ export declare const options: zod.ZodObject<{
|
|
|
9
9
|
type Props = {
|
|
10
10
|
options: zod.infer<typeof options>;
|
|
11
11
|
};
|
|
12
|
-
export default function ExecConfigCommand({ options: opts }: Props):
|
|
12
|
+
export default function ExecConfigCommand({ options: opts }: Props): null;
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/config.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/exec/config.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,OAAO;;;;;;mBAMlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAwEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,QAcjE"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useApp } from 'ink';
|
|
3
|
+
import * as p from '@clack/prompts';
|
|
4
|
+
import chalk from 'chalk';
|
|
4
5
|
import zod from 'zod';
|
|
5
6
|
import { getPreferences, updatePreferences } from '../../config/preferences.js';
|
|
6
|
-
import SuccessMessage from '../../components/success-message.js';
|
|
7
|
-
import ErrorMessage from '../../components/error-message.js';
|
|
8
|
-
import InfoMessage from '../../components/info-message.js';
|
|
9
|
-
import { ThemeContext } from '../../hooks/useTheme.js';
|
|
10
|
-
import { themeContextValue } from '../../config/themes.js';
|
|
11
7
|
export const options = zod.object({
|
|
12
8
|
allow: zod.string().optional().describe('Allow patterns (comma-separated, e.g., "Bash(npm run *),Bash(git status)")'),
|
|
13
9
|
deny: zod.string().optional().describe('Deny patterns (comma-separated, e.g., "Bash(rm -rf *),Bash(git push *)")'),
|
|
@@ -15,65 +11,74 @@ export const options = zod.object({
|
|
|
15
11
|
clear: zod.boolean().optional().describe('Clear all exec configuration'),
|
|
16
12
|
show: zod.boolean().optional().describe('Show current config'),
|
|
17
13
|
});
|
|
14
|
+
function formatConfig(cfg) {
|
|
15
|
+
const lines = [
|
|
16
|
+
`${chalk.bold('allow:')} ${cfg.allow?.length ? cfg.allow.join(', ') : chalk.dim('(any - no restrictions)')}`,
|
|
17
|
+
`${chalk.bold('deny:')} ${cfg.deny?.length ? cfg.deny.join(', ') : chalk.dim('(none)')}`,
|
|
18
|
+
`${chalk.bold('defaultDir:')} ${cfg.defaultDir || '~/.corebrain'}`,
|
|
19
|
+
];
|
|
20
|
+
return lines.join('\n');
|
|
21
|
+
}
|
|
22
|
+
async function runExecConfig(opts) {
|
|
23
|
+
const prefs = getPreferences();
|
|
24
|
+
const existingConfig = prefs.exec || {};
|
|
25
|
+
// Clear config
|
|
26
|
+
if (opts.clear) {
|
|
27
|
+
updatePreferences({ exec: undefined });
|
|
28
|
+
p.log.success(chalk.green('Exec configuration cleared'));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Check if any config options were provided
|
|
32
|
+
const hasConfigOptions = opts.allow !== undefined ||
|
|
33
|
+
opts.deny !== undefined ||
|
|
34
|
+
opts.defaultDir !== undefined;
|
|
35
|
+
// If just showing config (no options provided or --show)
|
|
36
|
+
if (opts.show || !hasConfigOptions) {
|
|
37
|
+
p.note([
|
|
38
|
+
formatConfig(existingConfig),
|
|
39
|
+
'',
|
|
40
|
+
chalk.dim('Pattern format: Bash(command pattern *)'),
|
|
41
|
+
chalk.dim('Examples:'),
|
|
42
|
+
chalk.dim(' Bash(npm run *) - Allow npm run commands'),
|
|
43
|
+
chalk.dim(' Bash(git commit *) - Allow git commit'),
|
|
44
|
+
chalk.dim(' Bash(* --version) - Allow version checks'),
|
|
45
|
+
chalk.dim(' Bash(rm -rf *) - Deny recursive deletes'),
|
|
46
|
+
].join('\n'), 'Exec Configuration');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Build new config
|
|
50
|
+
const newConfig = { ...existingConfig };
|
|
51
|
+
if (opts.allow !== undefined) {
|
|
52
|
+
newConfig.allow = opts.allow
|
|
53
|
+
.split(',')
|
|
54
|
+
.map((p) => p.trim())
|
|
55
|
+
.filter(Boolean);
|
|
56
|
+
}
|
|
57
|
+
if (opts.deny !== undefined) {
|
|
58
|
+
newConfig.deny = opts.deny
|
|
59
|
+
.split(',')
|
|
60
|
+
.map((p) => p.trim())
|
|
61
|
+
.filter(Boolean);
|
|
62
|
+
}
|
|
63
|
+
if (opts.defaultDir !== undefined) {
|
|
64
|
+
newConfig.defaultDir = opts.defaultDir;
|
|
65
|
+
}
|
|
66
|
+
// Save config
|
|
67
|
+
updatePreferences({ exec: newConfig });
|
|
68
|
+
p.log.success(chalk.green('Updated exec configuration'));
|
|
69
|
+
p.note(formatConfig(newConfig), 'New Configuration');
|
|
70
|
+
}
|
|
18
71
|
export default function ExecConfigCommand({ options: opts }) {
|
|
19
|
-
const
|
|
20
|
-
const [config, setConfig] = useState(null);
|
|
21
|
-
const [error, setError] = useState('');
|
|
72
|
+
const { exit } = useApp();
|
|
22
73
|
useEffect(() => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
// Check if any config options were provided
|
|
33
|
-
const hasConfigOptions = opts.allow !== undefined ||
|
|
34
|
-
opts.deny !== undefined ||
|
|
35
|
-
opts.defaultDir !== undefined;
|
|
36
|
-
// If just showing config (no options provided or --show)
|
|
37
|
-
if (opts.show || !hasConfigOptions) {
|
|
38
|
-
setConfig(existingConfig);
|
|
39
|
-
setStatus('show');
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
// Build new config
|
|
43
|
-
const newConfig = { ...existingConfig };
|
|
44
|
-
if (opts.allow !== undefined) {
|
|
45
|
-
newConfig.allow = opts.allow
|
|
46
|
-
.split(',')
|
|
47
|
-
.map((p) => p.trim())
|
|
48
|
-
.filter(Boolean);
|
|
49
|
-
}
|
|
50
|
-
if (opts.deny !== undefined) {
|
|
51
|
-
newConfig.deny = opts.deny
|
|
52
|
-
.split(',')
|
|
53
|
-
.map((p) => p.trim())
|
|
54
|
-
.filter(Boolean);
|
|
55
|
-
}
|
|
56
|
-
if (opts.defaultDir !== undefined) {
|
|
57
|
-
newConfig.defaultDir = opts.defaultDir;
|
|
58
|
-
}
|
|
59
|
-
// Save config
|
|
60
|
-
updatePreferences({ exec: newConfig });
|
|
61
|
-
setConfig(newConfig);
|
|
62
|
-
setStatus('updated');
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
65
|
-
setError(err instanceof Error ? err.message : 'Unknown error');
|
|
66
|
-
setStatus('error');
|
|
67
|
-
}
|
|
68
|
-
}, [opts]);
|
|
69
|
-
const formatConfig = (cfg) => {
|
|
70
|
-
const lines = [
|
|
71
|
-
`allow: ${cfg.allow?.length ? cfg.allow.join(', ') : '(any - no restrictions)'}`,
|
|
72
|
-
`deny: ${cfg.deny?.length ? cfg.deny.join(', ') : '(none)'}`,
|
|
73
|
-
`defaultDir: ${cfg.defaultDir || '~/.corebrain'}`,
|
|
74
|
-
];
|
|
75
|
-
return lines.join('\n');
|
|
76
|
-
};
|
|
77
|
-
return (_jsx(ThemeContext.Provider, { value: themeContextValue, children: status === 'loading' ? (_jsx(Text, { dimColor: true, children: "Loading configuration..." })) : status === 'error' ? (_jsx(ErrorMessage, { message: `Config error: ${error}` })) : status === 'cleared' ? (_jsx(SuccessMessage, { message: "Exec configuration cleared" })) : status === 'show' && config ? (_jsx(InfoMessage, { message: `Exec Configuration\n\n${formatConfig(config)}\n\nPattern format: Bash(command pattern *)\nExamples:\n Bash(npm run *) - Allow npm run commands\n Bash(git commit *) - Allow git commit\n Bash(* --version) - Allow version checks\n Bash(rm -rf *) - Deny recursive deletes` })) : status === 'updated' && config ? (_jsx(SuccessMessage, { message: `Updated exec configuration\n\n${formatConfig(config)}` })) : null }));
|
|
74
|
+
runExecConfig(opts)
|
|
75
|
+
.catch((err) => {
|
|
76
|
+
p.log.error(`Config error: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
77
|
+
})
|
|
78
|
+
.finally(() => {
|
|
79
|
+
setTimeout(() => exit(), 100);
|
|
80
|
+
});
|
|
81
|
+
}, [opts, exit]);
|
|
82
|
+
return null;
|
|
78
83
|
}
|
|
79
84
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/exec/config.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/exec/config.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
|
-
export declare const options: zod.ZodObject<{
|
|
2
|
+
export declare const options: zod.ZodObject<{
|
|
3
|
+
name: zod.ZodOptional<zod.ZodString>;
|
|
4
|
+
description: zod.ZodOptional<zod.ZodString>;
|
|
5
|
+
coding: zod.ZodOptional<zod.ZodBoolean>;
|
|
6
|
+
browser: zod.ZodOptional<zod.ZodBoolean>;
|
|
7
|
+
exec: zod.ZodOptional<zod.ZodBoolean>;
|
|
8
|
+
show: zod.ZodOptional<zod.ZodBoolean>;
|
|
9
|
+
}, zod.core.$strip>;
|
|
3
10
|
type Props = {
|
|
4
11
|
options: zod.infer<typeof options>;
|
|
5
12
|
};
|
|
6
|
-
export default function GatewayConfigCommand(
|
|
13
|
+
export default function GatewayConfigCommand({ options: opts }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
7
14
|
export {};
|
|
8
15
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/config.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/config.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AA6BtB,eAAO,MAAM,OAAO;;;;;;;mBAQlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA8bF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,kDA6CpE"}
|