@redplanethq/corebrain 2.8.18 → 2.8.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/assets/assets/AppIcon.icns +0 -0
  2. package/dist/cli-bun-registry.generated.d.ts +13 -0
  3. package/dist/cli-bun-registry.generated.d.ts.map +1 -0
  4. package/dist/cli-bun-registry.generated.js +233 -0
  5. package/dist/cli-bun-registry.generated.js.map +1 -0
  6. package/dist/cli-bun.d.ts +17 -0
  7. package/dist/cli-bun.d.ts.map +1 -0
  8. package/dist/cli-bun.js +55 -0
  9. package/dist/cli-bun.js.map +1 -0
  10. package/dist/commands/browser/close-session.d.ts.map +1 -1
  11. package/dist/commands/browser/close-session.js +3 -0
  12. package/dist/commands/browser/close-session.js.map +1 -1
  13. package/dist/commands/browser/close.d.ts.map +1 -1
  14. package/dist/commands/browser/close.js +3 -0
  15. package/dist/commands/browser/close.js.map +1 -1
  16. package/dist/commands/browser/command.d.ts.map +1 -1
  17. package/dist/commands/browser/command.js +3 -0
  18. package/dist/commands/browser/command.js.map +1 -1
  19. package/dist/commands/browser/create-profile.d.ts.map +1 -1
  20. package/dist/commands/browser/create-profile.js +3 -0
  21. package/dist/commands/browser/create-profile.js.map +1 -1
  22. package/dist/commands/browser/create-session.d.ts.map +1 -1
  23. package/dist/commands/browser/create-session.js +3 -0
  24. package/dist/commands/browser/create-session.js.map +1 -1
  25. package/dist/commands/browser/delete-profile.d.ts.map +1 -1
  26. package/dist/commands/browser/delete-profile.js +3 -0
  27. package/dist/commands/browser/delete-profile.js.map +1 -1
  28. package/dist/commands/browser/delete-session.d.ts.map +1 -1
  29. package/dist/commands/browser/delete-session.js +3 -0
  30. package/dist/commands/browser/delete-session.js.map +1 -1
  31. package/dist/commands/browser/install.d.ts.map +1 -1
  32. package/dist/commands/browser/install.js +3 -0
  33. package/dist/commands/browser/install.js.map +1 -1
  34. package/dist/commands/browser/list-sessions.d.ts.map +1 -1
  35. package/dist/commands/browser/list-sessions.js +3 -0
  36. package/dist/commands/browser/list-sessions.js.map +1 -1
  37. package/dist/commands/browser/open-head.d.ts.map +1 -1
  38. package/dist/commands/browser/open-head.js +3 -0
  39. package/dist/commands/browser/open-head.js.map +1 -1
  40. package/dist/commands/browser/open.d.ts.map +1 -1
  41. package/dist/commands/browser/open.js +3 -0
  42. package/dist/commands/browser/open.js.map +1 -1
  43. package/dist/commands/browser/set-browser.d.ts.map +1 -1
  44. package/dist/commands/browser/set-browser.js +3 -0
  45. package/dist/commands/browser/set-browser.js.map +1 -1
  46. package/dist/commands/browser/status.d.ts.map +1 -1
  47. package/dist/commands/browser/status.js +3 -0
  48. package/dist/commands/browser/status.js.map +1 -1
  49. package/dist/commands/coding/agents.d.ts.map +1 -1
  50. package/dist/commands/coding/agents.js +3 -0
  51. package/dist/commands/coding/agents.js.map +1 -1
  52. package/dist/commands/coding/config.d.ts.map +1 -1
  53. package/dist/commands/coding/config.js +3 -0
  54. package/dist/commands/coding/config.js.map +1 -1
  55. package/dist/commands/coding/list.d.ts.map +1 -1
  56. package/dist/commands/coding/list.js +3 -0
  57. package/dist/commands/coding/list.js.map +1 -1
  58. package/dist/commands/coding/read.d.ts.map +1 -1
  59. package/dist/commands/coding/read.js +3 -0
  60. package/dist/commands/coding/read.js.map +1 -1
  61. package/dist/commands/coding/remove.d.ts.map +1 -1
  62. package/dist/commands/coding/remove.js +3 -0
  63. package/dist/commands/coding/remove.js.map +1 -1
  64. package/dist/commands/coding/setup.d.ts.map +1 -1
  65. package/dist/commands/coding/setup.js +3 -0
  66. package/dist/commands/coding/setup.js.map +1 -1
  67. package/dist/commands/exec/config.d.ts.map +1 -1
  68. package/dist/commands/exec/config.js +3 -0
  69. package/dist/commands/exec/config.js.map +1 -1
  70. package/dist/commands/folder/add.d.ts.map +1 -1
  71. package/dist/commands/folder/add.js +3 -0
  72. package/dist/commands/folder/add.js.map +1 -1
  73. package/dist/commands/folder/list.d.ts.map +1 -1
  74. package/dist/commands/folder/list.js +3 -0
  75. package/dist/commands/folder/list.js.map +1 -1
  76. package/dist/commands/folder/remove.d.ts.map +1 -1
  77. package/dist/commands/folder/remove.js +3 -0
  78. package/dist/commands/folder/remove.js.map +1 -1
  79. package/dist/commands/folder/scope.d.ts.map +1 -1
  80. package/dist/commands/folder/scope.js +3 -0
  81. package/dist/commands/folder/scope.js.map +1 -1
  82. package/dist/commands/gateway/config.d.ts +16 -0
  83. package/dist/commands/gateway/config.d.ts.map +1 -1
  84. package/dist/commands/gateway/config.js +21 -2
  85. package/dist/commands/gateway/config.js.map +1 -1
  86. package/dist/commands/gateway/index.d.ts +1 -1
  87. package/dist/commands/gateway/index.d.ts.map +1 -1
  88. package/dist/commands/gateway/index.js +9 -1
  89. package/dist/commands/gateway/index.js.map +1 -1
  90. package/dist/commands/gateway/list.d.ts +9 -0
  91. package/dist/commands/gateway/list.d.ts.map +1 -0
  92. package/dist/commands/gateway/list.js +63 -0
  93. package/dist/commands/gateway/list.js.map +1 -0
  94. package/dist/commands/gateway/setup.d.ts +15 -0
  95. package/dist/commands/gateway/setup.d.ts.map +1 -0
  96. package/dist/commands/gateway/setup.js +82 -0
  97. package/dist/commands/gateway/setup.js.map +1 -0
  98. package/dist/commands/gateway/status.d.ts +4 -1
  99. package/dist/commands/gateway/status.d.ts.map +1 -1
  100. package/dist/commands/gateway/status.js +97 -17
  101. package/dist/commands/gateway/status.js.map +1 -1
  102. package/dist/commands/setup.d.ts +9 -0
  103. package/dist/commands/setup.d.ts.map +1 -0
  104. package/dist/commands/setup.js +28 -0
  105. package/dist/commands/setup.js.map +1 -0
  106. package/dist/server/api/gateways.d.ts +50 -0
  107. package/dist/server/api/gateways.d.ts.map +1 -0
  108. package/dist/server/api/gateways.js +63 -0
  109. package/dist/server/api/gateways.js.map +1 -0
  110. package/dist/templates/env-overrides.d.ts +15 -0
  111. package/dist/templates/env-overrides.d.ts.map +1 -0
  112. package/dist/templates/env-overrides.js +40 -0
  113. package/dist/templates/env-overrides.js.map +1 -0
  114. package/dist/templates/gateway-compose.d.ts +14 -0
  115. package/dist/templates/gateway-compose.d.ts.map +1 -0
  116. package/dist/templates/gateway-compose.js +34 -0
  117. package/dist/templates/gateway-compose.js.map +1 -0
  118. package/dist/templates/webapp-compose.d.ts +11 -0
  119. package/dist/templates/webapp-compose.d.ts.map +1 -0
  120. package/dist/templates/webapp-compose.js +31 -0
  121. package/dist/templates/webapp-compose.js.map +1 -0
  122. package/dist/tui/chat.d.ts.map +1 -1
  123. package/dist/tui/chat.js +250 -47
  124. package/dist/tui/chat.js.map +1 -1
  125. package/dist/tui/components/approval-panel.d.ts +21 -2
  126. package/dist/tui/components/approval-panel.d.ts.map +1 -1
  127. package/dist/tui/components/approval-panel.js +87 -16
  128. package/dist/tui/components/approval-panel.js.map +1 -1
  129. package/dist/tui/components/status-line.d.ts +3 -0
  130. package/dist/tui/components/status-line.d.ts.map +1 -1
  131. package/dist/tui/components/status-line.js +9 -0
  132. package/dist/tui/components/status-line.js.map +1 -1
  133. package/dist/tui/components/task-detail.d.ts +26 -0
  134. package/dist/tui/components/task-detail.d.ts.map +1 -0
  135. package/dist/tui/components/task-detail.js +159 -0
  136. package/dist/tui/components/task-detail.js.map +1 -0
  137. package/dist/tui/components/task-list.d.ts +34 -0
  138. package/dist/tui/components/task-list.d.ts.map +1 -0
  139. package/dist/tui/components/task-list.js +245 -0
  140. package/dist/tui/components/task-list.js.map +1 -0
  141. package/dist/tui/components/tool-call-item.d.ts +6 -0
  142. package/dist/tui/components/tool-call-item.d.ts.map +1 -1
  143. package/dist/tui/components/tool-call-item.js +78 -12
  144. package/dist/tui/components/tool-call-item.js.map +1 -1
  145. package/dist/tui/hooks/use-conversation.d.ts.map +1 -1
  146. package/dist/tui/hooks/use-conversation.js +116 -35
  147. package/dist/tui/hooks/use-conversation.js.map +1 -1
  148. package/dist/tui/utils/html-to-md.d.ts +2 -0
  149. package/dist/tui/utils/html-to-md.d.ts.map +1 -0
  150. package/dist/tui/utils/html-to-md.js +17 -0
  151. package/dist/tui/utils/html-to-md.js.map +1 -0
  152. package/dist/tui/utils/stream.d.ts +58 -5
  153. package/dist/tui/utils/stream.d.ts.map +1 -1
  154. package/dist/tui/utils/stream.js +69 -0
  155. package/dist/tui/utils/stream.js.map +1 -1
  156. package/dist/utils/require-native-gateway.d.ts +11 -0
  157. package/dist/utils/require-native-gateway.d.ts.map +1 -0
  158. package/dist/utils/require-native-gateway.js +22 -0
  159. package/dist/utils/require-native-gateway.js.map +1 -0
  160. package/dist/utils/setup/docker.d.ts +10 -0
  161. package/dist/utils/setup/docker.d.ts.map +1 -0
  162. package/dist/utils/setup/docker.js +253 -0
  163. package/dist/utils/setup/docker.js.map +1 -0
  164. package/dist/utils/setup/local.d.ts +9 -0
  165. package/dist/utils/setup/local.d.ts.map +1 -0
  166. package/dist/utils/setup/local.js +226 -0
  167. package/dist/utils/setup/local.js.map +1 -0
  168. package/dist/utils/setup/railway.d.ts +9 -0
  169. package/dist/utils/setup/railway.d.ts.map +1 -0
  170. package/dist/utils/setup/railway.js +244 -0
  171. package/dist/utils/setup/railway.js.map +1 -0
  172. package/package.json +5 -3
@@ -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
- async function runGatewayStatus() {
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('Checking gateway status...');
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.warning('Gateway not installed.');
44
- p.log.info("Start with: corebrain gateway start");
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.warning('Gateway installed but stopped.');
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:')} ${chalk.green('Running')}`,
144
+ `${chalk.bold('Status:')} ${chalk.green('Running')}`,
69
145
  `${chalk.bold('Service:')} ${getServiceTypeLabel(serviceType)}`,
70
- `${chalk.bold('PID:')} ${pid || 'unknown'}`,
71
- `${chalk.bold('Uptime:')} ${gw.startedAt ? formatUptime(gw.startedAt) : 'unknown'}`,
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
- ].join('\n'), 'Gateway Status');
155
+ ]
156
+ .filter(Boolean)
157
+ .join('\n'), 'Gateway Status');
79
158
  }
80
- export default function GatewayStatus(_props) {
159
+ export default function GatewayStatus({ args: positional }) {
81
160
  const { exit } = useApp();
161
+ const id = positional?.[0];
82
162
  useEffect(() => {
83
- runGatewayStatus()
84
- .catch((err) => {
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
- setTimeout(() => exit(), 100);
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":"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"}
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"}
@@ -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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Apply a small set of overrides to a `.env.example` file fetched from the
3
+ * repo. Keeps the example's comments + advanced flags intact so users can
4
+ * discover what's available by reading their generated `.env` directly.
5
+ *
6
+ * For each override:
7
+ * - If the key already appears as `KEY=` (or `# KEY=` commented) on a line,
8
+ * replace that line with the new value (uncommenting if needed).
9
+ * - Otherwise append `KEY=value` at the bottom.
10
+ *
11
+ * Set a value to `undefined` to skip the override entirely (don't touch the
12
+ * line, don't append).
13
+ */
14
+ export declare function applyEnvOverrides(envText: string, overrides: Record<string, string | undefined>): string;
15
+ //# sourceMappingURL=env-overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-overrides.d.ts","sourceRoot":"","sources":["../../src/templates/env-overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC3C,MAAM,CAcR"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Apply a small set of overrides to a `.env.example` file fetched from the
3
+ * repo. Keeps the example's comments + advanced flags intact so users can
4
+ * discover what's available by reading their generated `.env` directly.
5
+ *
6
+ * For each override:
7
+ * - If the key already appears as `KEY=` (or `# KEY=` commented) on a line,
8
+ * replace that line with the new value (uncommenting if needed).
9
+ * - Otherwise append `KEY=value` at the bottom.
10
+ *
11
+ * Set a value to `undefined` to skip the override entirely (don't touch the
12
+ * line, don't append).
13
+ */
14
+ function escapeEnvValue(v) {
15
+ if (v === '')
16
+ return '';
17
+ if (/[\s"$#]/.test(v)) {
18
+ return `"${v.replace(/(["\\$])/g, '\\$1')}"`;
19
+ }
20
+ return v;
21
+ }
22
+ export function applyEnvOverrides(envText, overrides) {
23
+ let result = envText;
24
+ for (const [key, raw] of Object.entries(overrides)) {
25
+ if (raw === undefined)
26
+ continue;
27
+ const newLine = `${key}=${escapeEnvValue(raw)}`;
28
+ const re = new RegExp(`^[ \\t]*#?[ \\t]*${key}=.*$`, 'm');
29
+ if (re.test(result)) {
30
+ result = result.replace(re, newLine);
31
+ }
32
+ else {
33
+ if (!result.endsWith('\n'))
34
+ result += '\n';
35
+ result += newLine + '\n';
36
+ }
37
+ }
38
+ return result;
39
+ }
40
+ //# sourceMappingURL=env-overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-overrides.js","sourceRoot":"","sources":["../../src/templates/env-overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,SAAS,cAAc,CAAC,CAAS;IAChC,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,OAAe,EACf,SAA6C;IAE7C,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,oBAAoB,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,IAAI,CAAC;YAC3C,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Templates for `corebrain gateway setup --kind docker`.
3
+ *
4
+ * Single source of truth: hosting/gateway/{docker-compose.yaml,.env.example}
5
+ * on the `main` branch of github.com/RedPlanetHQ/core. Fetched at runtime so
6
+ * a CLI release doesn't need to ship a new copy when we tweak them.
7
+ *
8
+ * Per-install config (api key, security key, gateway name) is applied as a
9
+ * small overlay on top of the fetched .env.example via applyEnvOverrides.
10
+ */
11
+ export declare function fetchGatewayComposeYaml(): Promise<string>;
12
+ export declare function fetchGatewayEnvExample(): Promise<string>;
13
+ export declare const RAILWAY_TEMPLATE_CODE = "core-gateway";
14
+ //# sourceMappingURL=gateway-compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-compose.d.ts","sourceRoot":"","sources":["../../src/templates/gateway-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0BH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE/D;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE9D;AAED,eAAO,MAAM,qBAAqB,iBAAiB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Templates for `corebrain gateway setup --kind docker`.
3
+ *
4
+ * Single source of truth: hosting/gateway/{docker-compose.yaml,.env.example}
5
+ * on the `main` branch of github.com/RedPlanetHQ/core. Fetched at runtime so
6
+ * a CLI release doesn't need to ship a new copy when we tweak them.
7
+ *
8
+ * Per-install config (api key, security key, gateway name) is applied as a
9
+ * small overlay on top of the fetched .env.example via applyEnvOverrides.
10
+ */
11
+ const COMPOSE_URL = 'https://raw.githubusercontent.com/RedPlanetHQ/core/main/hosting/gateway/docker-compose.yaml';
12
+ const ENV_EXAMPLE_URL = 'https://raw.githubusercontent.com/RedPlanetHQ/core/main/hosting/gateway/.env.example';
13
+ async function fetchText(url, label) {
14
+ let res;
15
+ try {
16
+ res = await fetch(url, { signal: AbortSignal.timeout(15_000) });
17
+ }
18
+ catch (err) {
19
+ throw new Error(`Could not fetch ${label} from GitHub. Check your network and try again. ` +
20
+ `(${err instanceof Error ? err.message : String(err)})`);
21
+ }
22
+ if (!res.ok) {
23
+ throw new Error(`GitHub returned ${res.status} ${res.statusText} for ${url}. Try again in a moment.`);
24
+ }
25
+ return await res.text();
26
+ }
27
+ export async function fetchGatewayComposeYaml() {
28
+ return fetchText(COMPOSE_URL, 'gateway docker-compose.yaml');
29
+ }
30
+ export async function fetchGatewayEnvExample() {
31
+ return fetchText(ENV_EXAMPLE_URL, 'gateway .env.example');
32
+ }
33
+ export const RAILWAY_TEMPLATE_CODE = 'core-gateway';
34
+ //# sourceMappingURL=gateway-compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-compose.js","sourceRoot":"","sources":["../../src/templates/gateway-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,GAChB,6FAA6F,CAAC;AAE/F,MAAM,eAAe,GACpB,sFAAsF,CAAC;AAExF,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa;IAClD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,mBAAmB,KAAK,kDAAkD;YACzE,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CACxD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,QAAQ,GAAG,0BAA0B,CACpF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC5C,OAAO,SAAS,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC3C,OAAO,SAAS,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Templates for `corebrain setup` (self-host the CORE webapp locally).
3
+ *
4
+ * Single source of truth: hosting/docker/{docker-compose.yaml,.env.example}
5
+ * on the `main` branch of github.com/RedPlanetHQ/core. Fetched at runtime.
6
+ *
7
+ * Provider list lives in @core/types — shared with the webapp's env validator.
8
+ */
9
+ export declare function fetchWebappComposeYaml(): Promise<string>;
10
+ export declare function fetchWebappEnvExample(): Promise<string>;
11
+ //# sourceMappingURL=webapp-compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webapp-compose.d.ts","sourceRoot":"","sources":["../../src/templates/webapp-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0BH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE9D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE7D"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Templates for `corebrain setup` (self-host the CORE webapp locally).
3
+ *
4
+ * Single source of truth: hosting/docker/{docker-compose.yaml,.env.example}
5
+ * on the `main` branch of github.com/RedPlanetHQ/core. Fetched at runtime.
6
+ *
7
+ * Provider list lives in @core/types — shared with the webapp's env validator.
8
+ */
9
+ const COMPOSE_URL = 'https://raw.githubusercontent.com/RedPlanetHQ/core/main/hosting/docker/docker-compose.yaml';
10
+ const ENV_EXAMPLE_URL = 'https://raw.githubusercontent.com/RedPlanetHQ/core/main/hosting/docker/.env.example';
11
+ async function fetchText(url, label) {
12
+ let res;
13
+ try {
14
+ res = await fetch(url, { signal: AbortSignal.timeout(15_000) });
15
+ }
16
+ catch (err) {
17
+ throw new Error(`Could not fetch ${label} from GitHub. Check your network and try again. ` +
18
+ `(${err instanceof Error ? err.message : String(err)})`);
19
+ }
20
+ if (!res.ok) {
21
+ throw new Error(`GitHub returned ${res.status} ${res.statusText} for ${url}. Try again in a moment.`);
22
+ }
23
+ return await res.text();
24
+ }
25
+ export async function fetchWebappComposeYaml() {
26
+ return fetchText(COMPOSE_URL, 'webapp docker-compose.yaml');
27
+ }
28
+ export async function fetchWebappEnvExample() {
29
+ return fetchText(ENV_EXAMPLE_URL, 'webapp .env.example');
30
+ }
31
+ //# sourceMappingURL=webapp-compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webapp-compose.js","sourceRoot":"","sources":["../../src/templates/webapp-compose.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,GAChB,4FAA4F,CAAC;AAE9F,MAAM,eAAe,GACpB,qFAAqF,CAAC;AAEvF,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa;IAClD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,mBAAmB,KAAK,kDAAkD;YACzE,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CACxD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,QAAQ,GAAG,0BAA0B,CACpF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC3C,OAAO,SAAS,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IAC1C,OAAO,SAAS,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tui/chat.ts"],"names":[],"mappings":"AA8BA,wBAAgB,WAAW,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACb,IAAI,CA6pBN"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tui/chat.ts"],"names":[],"mappings":"AAmCA,wBAAgB,WAAW,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACb,IAAI,CAu4BN"}