@redplanethq/corebrain 2.8.18 → 2.8.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/browser/close-session.d.ts.map +1 -1
- package/dist/commands/browser/close-session.js +3 -0
- package/dist/commands/browser/close-session.js.map +1 -1
- package/dist/commands/browser/close.d.ts.map +1 -1
- package/dist/commands/browser/close.js +3 -0
- package/dist/commands/browser/close.js.map +1 -1
- package/dist/commands/browser/command.d.ts.map +1 -1
- package/dist/commands/browser/command.js +3 -0
- package/dist/commands/browser/command.js.map +1 -1
- package/dist/commands/browser/create-profile.d.ts.map +1 -1
- package/dist/commands/browser/create-profile.js +3 -0
- package/dist/commands/browser/create-profile.js.map +1 -1
- package/dist/commands/browser/create-session.d.ts.map +1 -1
- package/dist/commands/browser/create-session.js +3 -0
- package/dist/commands/browser/create-session.js.map +1 -1
- package/dist/commands/browser/delete-profile.d.ts.map +1 -1
- package/dist/commands/browser/delete-profile.js +3 -0
- package/dist/commands/browser/delete-profile.js.map +1 -1
- package/dist/commands/browser/delete-session.d.ts.map +1 -1
- package/dist/commands/browser/delete-session.js +3 -0
- package/dist/commands/browser/delete-session.js.map +1 -1
- package/dist/commands/browser/install.d.ts.map +1 -1
- package/dist/commands/browser/install.js +3 -0
- package/dist/commands/browser/install.js.map +1 -1
- package/dist/commands/browser/list-sessions.d.ts.map +1 -1
- package/dist/commands/browser/list-sessions.js +3 -0
- package/dist/commands/browser/list-sessions.js.map +1 -1
- package/dist/commands/browser/open-head.d.ts.map +1 -1
- package/dist/commands/browser/open-head.js +3 -0
- package/dist/commands/browser/open-head.js.map +1 -1
- package/dist/commands/browser/open.d.ts.map +1 -1
- package/dist/commands/browser/open.js +3 -0
- package/dist/commands/browser/open.js.map +1 -1
- package/dist/commands/browser/set-browser.d.ts.map +1 -1
- package/dist/commands/browser/set-browser.js +3 -0
- package/dist/commands/browser/set-browser.js.map +1 -1
- package/dist/commands/browser/status.d.ts.map +1 -1
- package/dist/commands/browser/status.js +3 -0
- package/dist/commands/browser/status.js.map +1 -1
- package/dist/commands/coding/agents.d.ts.map +1 -1
- package/dist/commands/coding/agents.js +3 -0
- package/dist/commands/coding/agents.js.map +1 -1
- package/dist/commands/coding/config.d.ts.map +1 -1
- package/dist/commands/coding/config.js +3 -0
- package/dist/commands/coding/config.js.map +1 -1
- package/dist/commands/coding/list.d.ts.map +1 -1
- package/dist/commands/coding/list.js +3 -0
- package/dist/commands/coding/list.js.map +1 -1
- package/dist/commands/coding/read.d.ts.map +1 -1
- package/dist/commands/coding/read.js +3 -0
- package/dist/commands/coding/read.js.map +1 -1
- package/dist/commands/coding/remove.d.ts.map +1 -1
- package/dist/commands/coding/remove.js +3 -0
- package/dist/commands/coding/remove.js.map +1 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +3 -0
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/exec/config.d.ts.map +1 -1
- package/dist/commands/exec/config.js +3 -0
- package/dist/commands/exec/config.js.map +1 -1
- package/dist/commands/folder/add.d.ts.map +1 -1
- package/dist/commands/folder/add.js +3 -0
- package/dist/commands/folder/add.js.map +1 -1
- package/dist/commands/folder/list.d.ts.map +1 -1
- package/dist/commands/folder/list.js +3 -0
- package/dist/commands/folder/list.js.map +1 -1
- package/dist/commands/folder/remove.d.ts.map +1 -1
- package/dist/commands/folder/remove.js +3 -0
- package/dist/commands/folder/remove.js.map +1 -1
- package/dist/commands/folder/scope.d.ts.map +1 -1
- package/dist/commands/folder/scope.js +3 -0
- package/dist/commands/folder/scope.js.map +1 -1
- package/dist/commands/gateway/config.d.ts +16 -0
- package/dist/commands/gateway/config.d.ts.map +1 -1
- package/dist/commands/gateway/config.js +21 -2
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/gateway/index.d.ts +1 -1
- package/dist/commands/gateway/index.d.ts.map +1 -1
- package/dist/commands/gateway/index.js +9 -1
- package/dist/commands/gateway/index.js.map +1 -1
- package/dist/commands/gateway/list.d.ts +9 -0
- package/dist/commands/gateway/list.d.ts.map +1 -0
- package/dist/commands/gateway/list.js +63 -0
- package/dist/commands/gateway/list.js.map +1 -0
- package/dist/commands/gateway/setup.d.ts +15 -0
- package/dist/commands/gateway/setup.d.ts.map +1 -0
- package/dist/commands/gateway/setup.js +82 -0
- package/dist/commands/gateway/setup.js.map +1 -0
- package/dist/commands/gateway/status.d.ts +4 -1
- package/dist/commands/gateway/status.d.ts.map +1 -1
- package/dist/commands/gateway/status.js +97 -17
- package/dist/commands/gateway/status.js.map +1 -1
- package/dist/commands/setup.d.ts +9 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +28 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/config/folders.d.ts.map +1 -1
- package/dist/config/folders.js +9 -1
- package/dist/config/folders.js.map +1 -1
- package/dist/server/api/gateways.d.ts +50 -0
- package/dist/server/api/gateways.d.ts.map +1 -0
- package/dist/server/api/gateways.js +63 -0
- package/dist/server/api/gateways.js.map +1 -0
- package/dist/server/pty/manager.d.ts +7 -0
- package/dist/server/pty/manager.d.ts.map +1 -1
- package/dist/server/pty/manager.js +37 -0
- package/dist/server/pty/manager.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +34 -1
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/templates/env-overrides.d.ts +15 -0
- package/dist/templates/env-overrides.d.ts.map +1 -0
- package/dist/templates/env-overrides.js +40 -0
- package/dist/templates/env-overrides.js.map +1 -0
- package/dist/templates/gateway-compose.d.ts +14 -0
- package/dist/templates/gateway-compose.d.ts.map +1 -0
- package/dist/templates/gateway-compose.js +34 -0
- package/dist/templates/gateway-compose.js.map +1 -0
- package/dist/templates/webapp-compose.d.ts +11 -0
- package/dist/templates/webapp-compose.d.ts.map +1 -0
- package/dist/templates/webapp-compose.js +31 -0
- package/dist/templates/webapp-compose.js.map +1 -0
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +305 -54
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/components/approval-panel.d.ts +21 -2
- package/dist/tui/components/approval-panel.d.ts.map +1 -1
- package/dist/tui/components/approval-panel.js +87 -16
- package/dist/tui/components/approval-panel.js.map +1 -1
- package/dist/tui/components/status-line.d.ts +3 -0
- package/dist/tui/components/status-line.d.ts.map +1 -1
- package/dist/tui/components/status-line.js +9 -0
- package/dist/tui/components/status-line.js.map +1 -1
- package/dist/tui/components/task-detail.d.ts +21 -0
- package/dist/tui/components/task-detail.d.ts.map +1 -0
- package/dist/tui/components/task-detail.js +105 -0
- package/dist/tui/components/task-detail.js.map +1 -0
- package/dist/tui/components/task-list.d.ts +34 -0
- package/dist/tui/components/task-list.d.ts.map +1 -0
- package/dist/tui/components/task-list.js +245 -0
- package/dist/tui/components/task-list.js.map +1 -0
- package/dist/tui/components/tool-call-item.d.ts +6 -0
- package/dist/tui/components/tool-call-item.d.ts.map +1 -1
- package/dist/tui/components/tool-call-item.js +78 -12
- package/dist/tui/components/tool-call-item.js.map +1 -1
- package/dist/tui/hooks/use-conversation.d.ts.map +1 -1
- package/dist/tui/hooks/use-conversation.js +116 -35
- package/dist/tui/hooks/use-conversation.js.map +1 -1
- package/dist/tui/utils/avatar.d.ts +7 -23
- package/dist/tui/utils/avatar.d.ts.map +1 -1
- package/dist/tui/utils/avatar.js +102 -84
- package/dist/tui/utils/avatar.js.map +1 -1
- package/dist/tui/utils/html-to-md.d.ts +2 -0
- package/dist/tui/utils/html-to-md.d.ts.map +1 -0
- package/dist/tui/utils/html-to-md.js +17 -0
- package/dist/tui/utils/html-to-md.js.map +1 -0
- package/dist/tui/utils/stream.d.ts +59 -5
- package/dist/tui/utils/stream.d.ts.map +1 -1
- package/dist/tui/utils/stream.js +69 -0
- package/dist/tui/utils/stream.js.map +1 -1
- package/dist/utils/require-native-gateway.d.ts +11 -0
- package/dist/utils/require-native-gateway.d.ts.map +1 -0
- package/dist/utils/require-native-gateway.js +22 -0
- package/dist/utils/require-native-gateway.js.map +1 -0
- package/dist/utils/setup/docker.d.ts +10 -0
- package/dist/utils/setup/docker.d.ts.map +1 -0
- package/dist/utils/setup/docker.js +253 -0
- package/dist/utils/setup/docker.js.map +1 -0
- package/dist/utils/setup/local.d.ts +9 -0
- package/dist/utils/setup/local.d.ts.map +1 -0
- package/dist/utils/setup/local.js +226 -0
- package/dist/utils/setup/local.js.map +1 -0
- package/dist/utils/setup/railway.d.ts +9 -0
- package/dist/utils/setup/railway.d.ts.map +1 -0
- package/dist/utils/setup/railway.js +244 -0
- package/dist/utils/setup/railway.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,63 @@
|
|
|
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 { getPreferences } from '../../config/preferences.js';
|
|
7
|
+
import { listGateways } from '../../server/api/gateways.js';
|
|
8
|
+
export const description = 'List all gateways registered with your CORE workspace.';
|
|
9
|
+
export const options = zod.object({});
|
|
10
|
+
function statusBadge(status) {
|
|
11
|
+
if (status === 'CONNECTED')
|
|
12
|
+
return chalk.green('● connected');
|
|
13
|
+
if (status === 'DISCONNECTED')
|
|
14
|
+
return chalk.red('○ disconnected');
|
|
15
|
+
return chalk.dim(status);
|
|
16
|
+
}
|
|
17
|
+
async function runList() {
|
|
18
|
+
const spinner = p.spinner();
|
|
19
|
+
spinner.start('Loading gateways...');
|
|
20
|
+
let gateways;
|
|
21
|
+
try {
|
|
22
|
+
gateways = await listGateways();
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
spinner.stop(chalk.red('Failed to load gateways'));
|
|
26
|
+
p.log.error(err instanceof Error ? err.message : String(err));
|
|
27
|
+
process.exitCode = 1;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
spinner.stop(`Found ${gateways.length} gateway${gateways.length === 1 ? '' : 's'}`);
|
|
31
|
+
if (gateways.length === 0) {
|
|
32
|
+
p.note([
|
|
33
|
+
'No gateways registered yet.',
|
|
34
|
+
'',
|
|
35
|
+
`Run ${chalk.cyan('corebrain gateway setup')} to add one.`,
|
|
36
|
+
].join('\n'), 'Gateways');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const prefs = getPreferences();
|
|
40
|
+
const localName = prefs.gateway?.name;
|
|
41
|
+
const localUrl = prefs.gateway?.httpBaseUrl;
|
|
42
|
+
const lines = gateways.map(g => {
|
|
43
|
+
const isLocal = (localName && g.name === localName) ||
|
|
44
|
+
(localUrl && g.baseUrl === localUrl);
|
|
45
|
+
const marker = isLocal ? chalk.cyan(' (this machine)') : '';
|
|
46
|
+
const platform = g.platform ? chalk.dim(` [${g.platform}]`) : '';
|
|
47
|
+
return [
|
|
48
|
+
`${chalk.bold(g.name)}${marker}${platform}`,
|
|
49
|
+
` ${chalk.dim('id:')} ${g.id}`,
|
|
50
|
+
` ${chalk.dim('url:')} ${g.baseUrl}`,
|
|
51
|
+
` ${statusBadge(g.status)}`,
|
|
52
|
+
].join('\n');
|
|
53
|
+
});
|
|
54
|
+
p.note(lines.join('\n\n'), 'Gateways');
|
|
55
|
+
}
|
|
56
|
+
export default function GatewayList(_props) {
|
|
57
|
+
const { exit } = useApp();
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
runList().finally(() => setTimeout(() => exit(), 100));
|
|
60
|
+
}, [exit]);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/gateway/list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const description = "Set up a new gateway and link it with CORE. Supports native (this machine), docker, and Railway.";
|
|
3
|
+
export declare const options: zod.ZodObject<{
|
|
4
|
+
kind: zod.ZodOptional<zod.ZodEnum<{
|
|
5
|
+
docker: "docker";
|
|
6
|
+
railway: "railway";
|
|
7
|
+
native: "native";
|
|
8
|
+
}>>;
|
|
9
|
+
}, zod.core.$strip>;
|
|
10
|
+
type Props = {
|
|
11
|
+
options: zod.infer<typeof options>;
|
|
12
|
+
};
|
|
13
|
+
export default function GatewaySetup({ options: opts }: Props): null;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/setup.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,WAAW,qGAC2E,CAAC;AAEpG,eAAO,MAAM,OAAO;;;;;;mBAKlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA8DF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAW1D"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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 { setupDockerGateway } from '../../utils/setup/docker.js';
|
|
7
|
+
import { setupRailwayGateway } from '../../utils/setup/railway.js';
|
|
8
|
+
export const description = 'Set up a new gateway and link it with CORE. Supports native (this machine), docker, and Railway.';
|
|
9
|
+
export const options = zod.object({
|
|
10
|
+
kind: zod
|
|
11
|
+
.enum(['native', 'docker', 'railway'])
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Skip the kind picker and go straight to native | docker | railway'),
|
|
14
|
+
});
|
|
15
|
+
async function runSetup(opts) {
|
|
16
|
+
let kind = opts.kind;
|
|
17
|
+
if (!kind) {
|
|
18
|
+
const choice = await p.select({
|
|
19
|
+
message: 'Where will this gateway run?',
|
|
20
|
+
options: [
|
|
21
|
+
{
|
|
22
|
+
value: 'native',
|
|
23
|
+
label: 'Native — this machine',
|
|
24
|
+
hint: 'launchd / systemd, full local browser + shell access',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
value: 'docker',
|
|
28
|
+
label: 'Docker — local or remote host',
|
|
29
|
+
hint: 'docker compose + optional Tailscale funnel',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
value: 'railway',
|
|
33
|
+
label: 'Railway — managed cloud',
|
|
34
|
+
hint: 'one-shot deploy via the Railway CLI (paid)',
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
initialValue: 'native',
|
|
38
|
+
});
|
|
39
|
+
if (p.isCancel(choice)) {
|
|
40
|
+
p.cancel('Setup cancelled');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
kind = choice;
|
|
44
|
+
}
|
|
45
|
+
p.intro(chalk.bgCyan(chalk.black(` Gateway Setup — ${kind} `)));
|
|
46
|
+
if (kind === 'native') {
|
|
47
|
+
// Lazy-import to avoid pulling Ink wizard deps for non-native paths.
|
|
48
|
+
const { runInteractiveConfig } = await import('./config.js');
|
|
49
|
+
const result = await runInteractiveConfig();
|
|
50
|
+
if ('cancelled' in result && result.cancelled) {
|
|
51
|
+
p.cancel('Setup cancelled');
|
|
52
|
+
}
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (kind === 'docker') {
|
|
56
|
+
const result = await setupDockerGateway();
|
|
57
|
+
if ('cancelled' in result) {
|
|
58
|
+
p.cancel('Setup cancelled');
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (kind === 'railway') {
|
|
63
|
+
const result = await setupRailwayGateway();
|
|
64
|
+
if ('cancelled' in result) {
|
|
65
|
+
p.cancel('Setup cancelled');
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export default function GatewaySetup({ options: opts }) {
|
|
71
|
+
const { exit } = useApp();
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
runSetup(opts)
|
|
74
|
+
.catch(err => {
|
|
75
|
+
p.log.error(err instanceof Error ? err.message : String(err));
|
|
76
|
+
process.exitCode = 1;
|
|
77
|
+
})
|
|
78
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
79
|
+
}, [exit, opts]);
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/gateway/setup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
|
+
export declare const description = "Show gateway status. Without an id, shows the native gateway on this machine. With an id, fetches the row from CORE.";
|
|
2
3
|
export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
4
|
+
export declare const args: zod.ZodTuple<[zod.ZodOptional<zod.ZodString>], null>;
|
|
3
5
|
type Props = {
|
|
4
6
|
options: zod.infer<typeof options>;
|
|
7
|
+
args: zod.infer<typeof args>;
|
|
5
8
|
};
|
|
6
|
-
export default function GatewayStatus(
|
|
9
|
+
export default function GatewayStatus({ args: positional }: Props): null;
|
|
7
10
|
export {};
|
|
8
11
|
//# sourceMappingURL=status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/status.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/status.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAYtB,eAAO,MAAM,WAAW,yHAC+F,CAAC;AAExH,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,eAAO,MAAM,IAAI,sDAEf,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;IACnC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;CAC7B,CAAC;AAuKF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,EAAE,KAAK,QAe9D"}
|
|
@@ -5,7 +5,12 @@ import chalk from 'chalk';
|
|
|
5
5
|
import zod from 'zod';
|
|
6
6
|
import { getPreferences } from '../../config/preferences.js';
|
|
7
7
|
import { getServiceType, getServiceName, isServiceInstalled, getServiceStatus, getServicePid, } from '../../utils/service-manager/index.js';
|
|
8
|
+
import { getGatewayById, listGateways } from '../../server/api/gateways.js';
|
|
9
|
+
export const description = 'Show gateway status. Without an id, shows the native gateway on this machine. With an id, fetches the row from CORE.';
|
|
8
10
|
export const options = zod.object({});
|
|
11
|
+
export const args = zod.tuple([
|
|
12
|
+
zod.string().describe('Gateway id from `corebrain gateway list` (optional)').optional(),
|
|
13
|
+
]);
|
|
9
14
|
function formatUptime(startedAt) {
|
|
10
15
|
const uptimeMs = Date.now() - startedAt;
|
|
11
16
|
const seconds = Math.floor(uptimeMs / 1000);
|
|
@@ -27,32 +32,90 @@ function getServiceTypeLabel(type) {
|
|
|
27
32
|
return 'systemd (Linux)';
|
|
28
33
|
return 'unknown';
|
|
29
34
|
}
|
|
30
|
-
|
|
35
|
+
function statusBadge(status) {
|
|
36
|
+
if (status === 'CONNECTED')
|
|
37
|
+
return chalk.green('● connected');
|
|
38
|
+
if (status === 'DISCONNECTED')
|
|
39
|
+
return chalk.red('○ disconnected');
|
|
40
|
+
return chalk.dim(status);
|
|
41
|
+
}
|
|
42
|
+
async function runRemoteStatus(id) {
|
|
31
43
|
const spinner = p.spinner();
|
|
32
|
-
spinner.start(
|
|
44
|
+
spinner.start(`Loading gateway ${id}...`);
|
|
45
|
+
let row;
|
|
46
|
+
try {
|
|
47
|
+
row = await getGatewayById(id);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
spinner.stop(chalk.red('Failed to load gateways from CORE'));
|
|
51
|
+
p.log.error(err instanceof Error ? err.message : String(err));
|
|
52
|
+
process.exitCode = 1;
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!row) {
|
|
56
|
+
spinner.stop(chalk.yellow('Not found'));
|
|
57
|
+
p.log.warn(`No gateway with id ${id} in this workspace.`);
|
|
58
|
+
p.log.info('Run `corebrain gateway list` to see available gateways.');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
spinner.stop(chalk.green('Found'));
|
|
62
|
+
const prefs = getPreferences();
|
|
63
|
+
const isLocal = (prefs.gateway?.name && prefs.gateway.name === row.name) ||
|
|
64
|
+
(prefs.gateway?.httpBaseUrl && prefs.gateway.httpBaseUrl === row.baseUrl);
|
|
65
|
+
const lines = [
|
|
66
|
+
`${chalk.bold('Name:')} ${row.name}${isLocal ? chalk.cyan(' (this machine)') : ''}`,
|
|
67
|
+
`${chalk.bold('Id:')} ${row.id}`,
|
|
68
|
+
`${chalk.bold('Base URL:')} ${row.baseUrl}`,
|
|
69
|
+
`${chalk.bold('Status:')} ${statusBadge(row.status)}`,
|
|
70
|
+
row.hostname ? `${chalk.bold('Host:')} ${row.hostname}` : null,
|
|
71
|
+
row.platform ? `${chalk.bold('Platform:')} ${row.platform}` : null,
|
|
72
|
+
].filter(Boolean);
|
|
73
|
+
if (isLocal) {
|
|
74
|
+
const serviceType = getServiceType();
|
|
75
|
+
if (serviceType !== 'none') {
|
|
76
|
+
const serviceName = getServiceName();
|
|
77
|
+
const installed = await isServiceInstalled(serviceName);
|
|
78
|
+
if (installed) {
|
|
79
|
+
const svcStatus = await getServiceStatus(serviceName);
|
|
80
|
+
const pid = getServicePid(serviceName);
|
|
81
|
+
lines.push('');
|
|
82
|
+
lines.push(`${chalk.bold('Service:')} ${getServiceTypeLabel(serviceType)}`);
|
|
83
|
+
lines.push(`${chalk.bold('Service status:')} ${svcStatus === 'running' ? chalk.green('running') : chalk.yellow(svcStatus)}`);
|
|
84
|
+
lines.push(`${chalk.bold('PID:')} ${pid ?? 'unknown'}`);
|
|
85
|
+
if (prefs.gateway?.startedAt) {
|
|
86
|
+
lines.push(`${chalk.bold('Uptime:')} ${formatUptime(prefs.gateway.startedAt)}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
p.note(lines.join('\n'), 'Gateway Status');
|
|
92
|
+
}
|
|
93
|
+
async function runLocalStatus() {
|
|
94
|
+
const spinner = p.spinner();
|
|
95
|
+
spinner.start('Checking native gateway status...');
|
|
33
96
|
const serviceType = getServiceType();
|
|
34
97
|
if (serviceType === 'none') {
|
|
35
98
|
spinner.stop(chalk.red('Not supported'));
|
|
36
99
|
p.log.error('Service management not supported on this platform.');
|
|
100
|
+
p.log.info('Pass a gateway id to inspect a remote gateway: `corebrain gateway status <id>`');
|
|
37
101
|
return;
|
|
38
102
|
}
|
|
39
103
|
const serviceName = getServiceName();
|
|
40
104
|
const installed = await isServiceInstalled(serviceName);
|
|
41
105
|
if (!installed) {
|
|
42
106
|
spinner.stop(chalk.yellow('Not installed'));
|
|
43
|
-
p.log.
|
|
44
|
-
p.log.info(
|
|
107
|
+
p.log.warn('No native gateway on this machine.');
|
|
108
|
+
p.log.info('Run `corebrain gateway setup` to create one, or `corebrain gateway list` to see registered gateways.');
|
|
45
109
|
return;
|
|
46
110
|
}
|
|
47
111
|
const status = await getServiceStatus(serviceName);
|
|
48
112
|
const running = status === 'running';
|
|
49
113
|
if (!running) {
|
|
50
114
|
spinner.stop(chalk.yellow('Stopped'));
|
|
51
|
-
p.log.
|
|
115
|
+
p.log.warn('Gateway installed but stopped.');
|
|
52
116
|
p.log.info("Start with: corebrain gateway start");
|
|
53
117
|
return;
|
|
54
118
|
}
|
|
55
|
-
// Get PID from service manager, fallback to preferences
|
|
56
119
|
const prefs = getPreferences();
|
|
57
120
|
let pid = getServicePid(serviceName);
|
|
58
121
|
if (!pid && prefs.gateway?.pid) {
|
|
@@ -64,30 +127,47 @@ async function runGatewayStatus() {
|
|
|
64
127
|
const tunnelLine = gw.tunnelKind && gw.tunnelKind !== 'none'
|
|
65
128
|
? `${chalk.bold('Tunnel:')} ${gw.tunnelKind}${gw.tunnelPid ? chalk.dim(` (pid ${gw.tunnelPid})`) : ''}`
|
|
66
129
|
: `${chalk.bold('Tunnel:')} ${chalk.dim('none')}`;
|
|
130
|
+
// Best-effort: try to find this gateway in the CORE workspace list to surface
|
|
131
|
+
// a CONNECTED / DISCONNECTED badge alongside the local launchd state.
|
|
132
|
+
let remoteBadge = '';
|
|
133
|
+
try {
|
|
134
|
+
const remotes = await listGateways();
|
|
135
|
+
const match = remotes.find(r => (gw.name && r.name === gw.name) || (gw.httpBaseUrl && r.baseUrl === gw.httpBaseUrl));
|
|
136
|
+
if (match) {
|
|
137
|
+
remoteBadge = `${chalk.bold('CORE:')} ${statusBadge(match.status)} ${chalk.dim(`(id: ${match.id})`)}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Silent — remote lookup is best-effort.
|
|
142
|
+
}
|
|
67
143
|
p.note([
|
|
68
|
-
`${chalk.bold('Status:')}
|
|
144
|
+
`${chalk.bold('Status:')} ${chalk.green('Running')}`,
|
|
69
145
|
`${chalk.bold('Service:')} ${getServiceTypeLabel(serviceType)}`,
|
|
70
|
-
`${chalk.bold('PID:')}
|
|
71
|
-
`${chalk.bold('Uptime:')}
|
|
146
|
+
`${chalk.bold('PID:')} ${pid || 'unknown'}`,
|
|
147
|
+
`${chalk.bold('Uptime:')} ${gw.startedAt ? formatUptime(gw.startedAt) : 'unknown'}`,
|
|
72
148
|
`${chalk.bold('HTTP port:')} ${gw.httpPort ?? chalk.dim('(default 7787)')}`,
|
|
73
149
|
`${chalk.bold('Base URL:')} ${gw.httpBaseUrl || chalk.dim('(not registered)')}`,
|
|
74
150
|
`${chalk.bold('Registered:')} ${registered ? chalk.green('yes') : chalk.yellow('no — run `corebrain gateway register`')}`,
|
|
75
151
|
tunnelLine,
|
|
152
|
+
remoteBadge || null,
|
|
76
153
|
'',
|
|
77
154
|
`${chalk.dim('Logs: ~/.corebrain/logs/gateway.log')}`,
|
|
78
|
-
]
|
|
155
|
+
]
|
|
156
|
+
.filter(Boolean)
|
|
157
|
+
.join('\n'), 'Gateway Status');
|
|
79
158
|
}
|
|
80
|
-
export default function GatewayStatus(
|
|
159
|
+
export default function GatewayStatus({ args: positional }) {
|
|
81
160
|
const { exit } = useApp();
|
|
161
|
+
const id = positional?.[0];
|
|
82
162
|
useEffect(() => {
|
|
83
|
-
|
|
84
|
-
|
|
163
|
+
const run = id ? runRemoteStatus(id) : runLocalStatus();
|
|
164
|
+
run
|
|
165
|
+
.catch(err => {
|
|
85
166
|
p.log.error(err instanceof Error ? err.message : 'Unknown error');
|
|
167
|
+
process.exitCode = 1;
|
|
86
168
|
})
|
|
87
|
-
.finally(() =>
|
|
88
|
-
|
|
89
|
-
});
|
|
90
|
-
}, [exit]);
|
|
169
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
170
|
+
}, [exit, id]);
|
|
91
171
|
return null;
|
|
92
172
|
}
|
|
93
173
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/gateway/status.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/gateway/status.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
export declare const description = "Self-host CORE locally with Docker. Drops a docker-compose.yaml + .env into a directory you choose, then brings it up.";
|
|
3
|
+
export declare const options: zod.ZodObject<{}, zod.core.$strip>;
|
|
4
|
+
type Props = {
|
|
5
|
+
options: zod.infer<typeof options>;
|
|
6
|
+
};
|
|
7
|
+
export default function SetupCommand(_props: Props): null;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,WAAW,2HACiG,CAAC;AAE1H,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAUF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,EAAE,KAAK,QAWjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { setupLocalWebapp } from '../utils/setup/local.js';
|
|
7
|
+
export const description = 'Self-host CORE locally with Docker. Drops a docker-compose.yaml + .env into a directory you choose, then brings it up.';
|
|
8
|
+
export const options = zod.object({});
|
|
9
|
+
async function runSetup() {
|
|
10
|
+
p.intro(chalk.bgCyan(chalk.black(' CORE — Local Self-Host ')));
|
|
11
|
+
const result = await setupLocalWebapp();
|
|
12
|
+
if ('cancelled' in result) {
|
|
13
|
+
p.cancel('Setup cancelled');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default function SetupCommand(_props) {
|
|
17
|
+
const { exit } = useApp();
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
runSetup()
|
|
20
|
+
.catch(err => {
|
|
21
|
+
p.log.error(err instanceof Error ? err.message : String(err));
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
})
|
|
24
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
25
|
+
}, [exit]);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GACvB,wHAAwH,CAAC;AAE1H,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAMtC,KAAK,UAAU,QAAQ;IACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAa;IACjD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,EAAE;aACR,KAAK,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACX,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,KAAK,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,KAAK,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAuC5C,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAE5C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,EAAE,CAAC;CAChB,GAAG,YAAY,CAqCf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAenD;AAED,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE;IAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;CAAC,GACnC,YAAY,CAuBd;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,GACV;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAqChD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAElE"}
|
package/dist/config/folders.js
CHANGED
|
@@ -15,8 +15,16 @@ const COREBRAIN_HOME_FOLDER = {
|
|
|
15
15
|
scopes: ['files', 'coding', 'exec'],
|
|
16
16
|
gitRepo: false,
|
|
17
17
|
};
|
|
18
|
+
// Compare against realpath too — Railway's entrypoint symlinks
|
|
19
|
+
// /home/corebrain → /mnt/volume/corebrain-home, so the realpath'd input from
|
|
20
|
+
// `resolveFolderForPath` lives under the volume path while COREBRAIN_HOME is
|
|
21
|
+
// still the symlinked form. Same trick as the stored-folder loop below.
|
|
18
22
|
function isUnderCorebrainHome(abs) {
|
|
19
|
-
|
|
23
|
+
if (abs === COREBRAIN_HOME || abs.startsWith(COREBRAIN_HOME + '/')) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
const real = realpathSafe(COREBRAIN_HOME);
|
|
27
|
+
return abs === real || abs.startsWith(real + '/');
|
|
20
28
|
}
|
|
21
29
|
// Best-effort realpath. Used only for security in `resolveFolderForPath` —
|
|
22
30
|
// the stored folder path stays in the user-supplied form so symlinked
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAKhE,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAC1E,oDAAoD;AACpD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACxD,MAAM,qBAAqB,GAAiB;IAC3C,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;IACnC,OAAO,EAAE,KAAK;CACd,CAAC;AAEF,SAAS,oBAAoB,CAAC,GAAW;IACxC,
|
|
1
|
+
{"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/config/folders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAKhE,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAC1E,oDAAoD;AACpD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACxD,MAAM,qBAAqB,GAAiB;IAC3C,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;IACnC,OAAO,EAAE,KAAK;CACd,CAAC;AAEF,+DAA+D;AAC/D,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AACxE,SAAS,oBAAoB,CAAC,GAAW;IACxC,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IAC1C,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,4EAA4E;AAC5E,4CAA4C;AAC5C,SAAS,YAAY,CAAC,CAAS;IAC9B,IAAI,CAAC;QACJ,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,CAAC;IACV,CAAC;AACF,CAAC;AAED,MAAM,UAAU,WAAW;IAC1B,OAAO,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAIzB;IACA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,GACT,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IACtE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAiB;QAC5B,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;QACzB,IAAI;QACJ,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,EAAE,UAAU,CAAC,GAAG,SAAS,OAAO,CAAC;KACxC,CAAC;IAEF,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,iBAAiB,CAAC;QACjB,OAAO,EAAE;YACR,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC;SAC7B;KACD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC5C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC7C,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,iBAAiB,CAAC;QACjB,OAAO,EAAE;YACR,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC;YAC5C,OAAO,EAAE,IAAI;SACb;KACD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,QAAgB,EAChB,EAAqC;IAErC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,OAAiC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC5B,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;YAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,GAAG,EAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,iBAAiB,CAAC;QACjB,OAAO,EAAE;YACR,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC;YAC5C,OAAO,EAAE,IAAI;SACb;KACD,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,MAAc,EACd,KAAY;IAEZ,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACJ,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACR,0EAA0E;QAC1E,sEAAsE;QACtE,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACrB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YAClD,IAAI,UAAU,CAAC,YAAY,CAAC;gBAAE,MAAM;YACpC,CAAC,IAAI,CAAC,CAAC;QACR,CAAC;QACD,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IACvD,CAAC;IAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC;IACtD,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,qBAAqB;IACrB,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACrC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU;IACvC,OAAO,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local mirror of the SDK's GatewayAgentInfo. We don't import the SDK's
|
|
3
|
+
* `z.infer<...>` types directly because the SDK ships zod@3 schemas while the
|
|
4
|
+
* CLI builds against zod@4 — the inferred types resolve as all-optional on
|
|
5
|
+
* the CLI side. Mirror keeps the contract loud and explicit here.
|
|
6
|
+
*/
|
|
7
|
+
export interface GatewayInfo {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
baseUrl: string;
|
|
12
|
+
tools: string[];
|
|
13
|
+
platform: string | null;
|
|
14
|
+
hostname: string | null;
|
|
15
|
+
status: 'CONNECTED' | 'DISCONNECTED';
|
|
16
|
+
}
|
|
17
|
+
interface ManifestResponse {
|
|
18
|
+
gateway?: {
|
|
19
|
+
name?: string;
|
|
20
|
+
hostname?: string;
|
|
21
|
+
platform?: string;
|
|
22
|
+
deployMode?: string;
|
|
23
|
+
};
|
|
24
|
+
tools?: unknown[];
|
|
25
|
+
agents?: unknown[];
|
|
26
|
+
}
|
|
27
|
+
export declare function listGateways(): Promise<GatewayInfo[]>;
|
|
28
|
+
export declare function getGatewayById(id: string): Promise<GatewayInfo | null>;
|
|
29
|
+
export interface RegisterArgs {
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
securityKey: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function registerGatewayWithApi(args: RegisterArgs): Promise<{
|
|
36
|
+
gatewayId: string;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Live-fetch a gateway's manifest using its raw security key. Returns null
|
|
40
|
+
* on any failure (not reachable, key mismatch, malformed response).
|
|
41
|
+
*/
|
|
42
|
+
export declare function fetchManifest(baseUrl: string, securityKey: string): Promise<ManifestResponse | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Poll the manifest endpoint until it returns a 200 or we time out.
|
|
45
|
+
* Used after `docker compose up -d` / `railway deploy` to confirm the
|
|
46
|
+
* gateway has booted before we register it.
|
|
47
|
+
*/
|
|
48
|
+
export declare function waitForManifest(baseUrl: string, securityKey: string, timeoutMs?: number, intervalMs?: number): Promise<boolean>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=gateways.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../../../src/server/api/gateways.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,WAAW,GAAG,cAAc,CAAC;CACrC;AAED,UAAU,gBAAgB;IACzB,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAcD,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAG3D;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAG5E;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,YAAY,GAChB,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAAC,CAM9B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAWlC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,SAAS,EAClB,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CAQlB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CoreClient } from '@redplanethq/sdk';
|
|
2
|
+
import { getConfig } from '../../config/index.js';
|
|
3
|
+
const DEFAULT_BASE_URL = 'https://app.getcore.me';
|
|
4
|
+
function getClient() {
|
|
5
|
+
const config = getConfig();
|
|
6
|
+
const apiKey = config.auth?.apiKey;
|
|
7
|
+
if (!apiKey) {
|
|
8
|
+
throw new Error('Not authenticated. Run `corebrain login` first.');
|
|
9
|
+
}
|
|
10
|
+
return new CoreClient({
|
|
11
|
+
baseUrl: config.auth?.url || DEFAULT_BASE_URL,
|
|
12
|
+
token: apiKey,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export async function listGateways() {
|
|
16
|
+
const res = await getClient().getGateways();
|
|
17
|
+
return (res.gateways ?? []);
|
|
18
|
+
}
|
|
19
|
+
export async function getGatewayById(id) {
|
|
20
|
+
const gateways = await listGateways();
|
|
21
|
+
return gateways.find(g => g.id === id) ?? null;
|
|
22
|
+
}
|
|
23
|
+
export async function registerGatewayWithApi(args) {
|
|
24
|
+
const res = await getClient().registerGateway(args);
|
|
25
|
+
if (!res.gatewayId) {
|
|
26
|
+
throw new Error('Webapp returned no gatewayId. Check the gateway is reachable.');
|
|
27
|
+
}
|
|
28
|
+
return { gatewayId: res.gatewayId };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Live-fetch a gateway's manifest using its raw security key. Returns null
|
|
32
|
+
* on any failure (not reachable, key mismatch, malformed response).
|
|
33
|
+
*/
|
|
34
|
+
export async function fetchManifest(baseUrl, securityKey) {
|
|
35
|
+
try {
|
|
36
|
+
const res = await fetch(`${baseUrl.replace(/\/$/, '')}/manifest`, {
|
|
37
|
+
headers: { authorization: `Bearer ${securityKey}` },
|
|
38
|
+
signal: AbortSignal.timeout(10_000),
|
|
39
|
+
});
|
|
40
|
+
if (!res.ok)
|
|
41
|
+
return null;
|
|
42
|
+
return (await res.json());
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Poll the manifest endpoint until it returns a 200 or we time out.
|
|
50
|
+
* Used after `docker compose up -d` / `railway deploy` to confirm the
|
|
51
|
+
* gateway has booted before we register it.
|
|
52
|
+
*/
|
|
53
|
+
export async function waitForManifest(baseUrl, securityKey, timeoutMs = 90_000, intervalMs = 2_000) {
|
|
54
|
+
const deadline = Date.now() + timeoutMs;
|
|
55
|
+
while (Date.now() < deadline) {
|
|
56
|
+
const m = await fetchManifest(baseUrl, securityKey);
|
|
57
|
+
if (m)
|
|
58
|
+
return true;
|
|
59
|
+
await new Promise(r => setTimeout(r, intervalMs));
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=gateways.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateways.js","sourceRoot":"","sources":["../../../src/server/api/gateways.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AA8BlD,SAAS,SAAS;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,UAAU,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,gBAAgB;QAC7C,KAAK,EAAE,MAAM;KACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IACjC,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAkB,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU;IAC9C,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,IAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,EAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAe,EACf,WAAmB;IAEnB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE;YACjE,OAAO,EAAE,EAAC,aAAa,EAAE,UAAU,WAAW,EAAE,EAAC;YACjD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,OAAe,EACf,WAAmB,EACnB,SAAS,GAAG,MAAM,EAClB,UAAU,GAAG,KAAK;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
|