@redplanethq/corebrain 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/commands/browser/close.d.ts +10 -0
  2. package/dist/commands/browser/close.d.ts.map +1 -0
  3. package/dist/commands/browser/close.js +60 -0
  4. package/dist/commands/browser/close.js.map +1 -0
  5. package/dist/commands/browser/command.d.ts +10 -0
  6. package/dist/commands/browser/command.d.ts.map +1 -0
  7. package/dist/commands/browser/command.js +67 -0
  8. package/dist/commands/browser/command.js.map +1 -0
  9. package/dist/commands/browser/create-profile.d.ts +10 -0
  10. package/dist/commands/browser/create-profile.d.ts.map +1 -0
  11. package/dist/commands/browser/create-profile.js +29 -0
  12. package/dist/commands/browser/create-profile.js.map +1 -0
  13. package/dist/commands/browser/delete-profile.d.ts +10 -0
  14. package/dist/commands/browser/delete-profile.d.ts.map +1 -0
  15. package/dist/commands/browser/delete-profile.js +27 -0
  16. package/dist/commands/browser/delete-profile.js.map +1 -0
  17. package/dist/commands/browser/install.d.ts +8 -0
  18. package/dist/commands/browser/install.d.ts.map +1 -0
  19. package/dist/commands/browser/install.js +49 -0
  20. package/dist/commands/browser/install.js.map +1 -0
  21. package/dist/commands/browser/open.d.ts +12 -0
  22. package/dist/commands/browser/open.d.ts.map +1 -0
  23. package/dist/commands/browser/open.js +65 -0
  24. package/dist/commands/browser/open.js.map +1 -0
  25. package/dist/commands/browser/status.d.ts +8 -0
  26. package/dist/commands/browser/status.d.ts.map +1 -0
  27. package/dist/commands/browser/status.js +48 -0
  28. package/dist/commands/browser/status.js.map +1 -0
  29. package/dist/commands/coding/[agent]/config.d.ts +18 -0
  30. package/dist/commands/coding/[agent]/config.d.ts.map +1 -0
  31. package/dist/commands/coding/[agent]/config.js +91 -0
  32. package/dist/commands/coding/[agent]/config.js.map +1 -0
  33. package/dist/commands/coding/config.d.ts +23 -0
  34. package/dist/commands/coding/config.d.ts.map +1 -0
  35. package/dist/commands/coding/config.js +116 -0
  36. package/dist/commands/coding/config.js.map +1 -0
  37. package/dist/commands/coding/index.d.ts +8 -0
  38. package/dist/commands/coding/index.d.ts.map +1 -0
  39. package/dist/commands/coding/index.js +42 -0
  40. package/dist/commands/coding/index.js.map +1 -0
  41. package/dist/commands/coding/remove.d.ts +10 -0
  42. package/dist/commands/coding/remove.d.ts.map +1 -0
  43. package/dist/commands/coding/remove.js +37 -0
  44. package/dist/commands/coding/remove.js.map +1 -0
  45. package/dist/commands/coding/setup.d.ts +8 -0
  46. package/dist/commands/coding/setup.d.ts.map +1 -0
  47. package/dist/commands/coding/setup.js +114 -0
  48. package/dist/commands/coding/setup.js.map +1 -0
  49. package/dist/commands/exec/config.d.ts +14 -0
  50. package/dist/commands/exec/config.d.ts.map +1 -0
  51. package/dist/commands/exec/config.js +79 -0
  52. package/dist/commands/exec/config.js.map +1 -0
  53. package/dist/commands/gateway/config.d.ts +8 -0
  54. package/dist/commands/gateway/config.d.ts.map +1 -0
  55. package/dist/commands/gateway/config.js +192 -0
  56. package/dist/commands/gateway/config.js.map +1 -0
  57. package/dist/commands/gateway/index.d.ts +14 -0
  58. package/dist/commands/gateway/index.d.ts.map +1 -0
  59. package/dist/commands/gateway/index.js +10 -0
  60. package/dist/commands/gateway/index.js.map +1 -0
  61. package/dist/commands/gateway/off.d.ts +8 -0
  62. package/dist/commands/gateway/off.d.ts.map +1 -0
  63. package/dist/commands/gateway/off.js +70 -0
  64. package/dist/commands/gateway/off.js.map +1 -0
  65. package/dist/commands/gateway/on.d.ts +8 -0
  66. package/dist/commands/gateway/on.d.ts.map +1 -0
  67. package/dist/commands/gateway/on.js +135 -0
  68. package/dist/commands/gateway/on.js.map +1 -0
  69. package/dist/commands/gateway/restart.d.ts +8 -0
  70. package/dist/commands/gateway/restart.d.ts.map +1 -0
  71. package/dist/commands/gateway/restart.js +70 -0
  72. package/dist/commands/gateway/restart.js.map +1 -0
  73. package/dist/commands/gateway/status.d.ts +8 -0
  74. package/dist/commands/gateway/status.d.ts.map +1 -0
  75. package/dist/commands/gateway/status.js +98 -0
  76. package/dist/commands/gateway/status.js.map +1 -0
  77. package/dist/commands/gateway/uninstall.d.ts +8 -0
  78. package/dist/commands/gateway/uninstall.d.ts.map +1 -0
  79. package/dist/commands/gateway/uninstall.js +80 -0
  80. package/dist/commands/gateway/uninstall.js.map +1 -0
  81. package/dist/commands/index.d.ts +1 -5
  82. package/dist/commands/index.d.ts.map +1 -1
  83. package/dist/commands/login.d.ts +1 -1
  84. package/dist/commands/login.d.ts.map +1 -1
  85. package/dist/commands/logout.d.ts +1 -1
  86. package/dist/commands/logout.d.ts.map +1 -1
  87. package/dist/commands/me.d.ts +1 -1
  88. package/dist/commands/me.d.ts.map +1 -1
  89. package/dist/commands/server.d.ts +10 -0
  90. package/dist/commands/server.d.ts.map +1 -0
  91. package/dist/commands/server.js +60 -0
  92. package/dist/commands/server.js.map +1 -0
  93. package/dist/commands/token.d.ts +1 -1
  94. package/dist/commands/token.d.ts.map +1 -1
  95. package/dist/components/error-message.d.ts.map +1 -1
  96. package/dist/components/error-message.js +6 -1
  97. package/dist/components/error-message.js.map +1 -1
  98. package/dist/components/info-message.d.ts.map +1 -1
  99. package/dist/components/info-message.js +5 -1
  100. package/dist/components/info-message.js.map +1 -1
  101. package/dist/components/success-message.d.ts.map +1 -1
  102. package/dist/components/success-message.js +5 -1
  103. package/dist/components/success-message.js.map +1 -1
  104. package/dist/components/warning-message.d.ts +2 -3
  105. package/dist/components/warning-message.d.ts.map +1 -1
  106. package/dist/components/warning-message.js +10 -4
  107. package/dist/components/warning-message.js.map +1 -1
  108. package/dist/config/index.d.ts +4 -0
  109. package/dist/config/index.d.ts.map +1 -1
  110. package/dist/config/index.js +31 -30
  111. package/dist/config/index.js.map +1 -1
  112. package/dist/config/paths.d.ts.map +1 -1
  113. package/dist/config/paths.js +4 -36
  114. package/dist/config/paths.js.map +1 -1
  115. package/dist/config/preferences.d.ts +14 -0
  116. package/dist/config/preferences.d.ts.map +1 -0
  117. package/dist/config/preferences.js +82 -0
  118. package/dist/config/preferences.js.map +1 -0
  119. package/dist/config/themes.d.ts +5 -0
  120. package/dist/config/themes.d.ts.map +1 -1
  121. package/dist/config/themes.js +5 -0
  122. package/dist/config/themes.js.map +1 -1
  123. package/dist/server/gateway-client.d.ts +80 -0
  124. package/dist/server/gateway-client.d.ts.map +1 -0
  125. package/dist/server/gateway-client.js +280 -0
  126. package/dist/server/gateway-client.js.map +1 -0
  127. package/dist/server/gateway-entry.d.ts +7 -0
  128. package/dist/server/gateway-entry.d.ts.map +1 -0
  129. package/dist/server/gateway-entry.js +138 -0
  130. package/dist/server/gateway-entry.js.map +1 -0
  131. package/dist/server/gateway.d.ts +5 -0
  132. package/dist/server/gateway.d.ts.map +1 -0
  133. package/dist/server/gateway.js +136 -0
  134. package/dist/server/gateway.js.map +1 -0
  135. package/dist/server/tools/browser-tools.d.ts +28 -0
  136. package/dist/server/tools/browser-tools.d.ts.map +1 -0
  137. package/dist/server/tools/browser-tools.js +179 -0
  138. package/dist/server/tools/browser-tools.js.map +1 -0
  139. package/dist/server/tools/coding-tools.d.ts +27 -0
  140. package/dist/server/tools/coding-tools.d.ts.map +1 -0
  141. package/dist/server/tools/coding-tools.js +345 -0
  142. package/dist/server/tools/coding-tools.js.map +1 -0
  143. package/dist/server/tools/exec-tools.d.ts +14 -0
  144. package/dist/server/tools/exec-tools.d.ts.map +1 -0
  145. package/dist/server/tools/exec-tools.js +203 -0
  146. package/dist/server/tools/exec-tools.js.map +1 -0
  147. package/dist/types/config.d.ts +36 -0
  148. package/dist/types/config.d.ts.map +1 -1
  149. package/dist/utils/agent-browser.d.ts +63 -0
  150. package/dist/utils/agent-browser.d.ts.map +1 -0
  151. package/dist/utils/agent-browser.js +301 -0
  152. package/dist/utils/agent-browser.js.map +1 -0
  153. package/dist/utils/coding-runner.d.ts +60 -0
  154. package/dist/utils/coding-runner.d.ts.map +1 -0
  155. package/dist/utils/coding-runner.js +174 -0
  156. package/dist/utils/coding-runner.js.map +1 -0
  157. package/dist/utils/coding-sessions.d.ts +61 -0
  158. package/dist/utils/coding-sessions.d.ts.map +1 -0
  159. package/dist/utils/coding-sessions.js +112 -0
  160. package/dist/utils/coding-sessions.js.map +1 -0
  161. package/dist/utils/process.d.ts +22 -0
  162. package/dist/utils/process.d.ts.map +1 -0
  163. package/dist/utils/process.js +81 -0
  164. package/dist/utils/process.js.map +1 -0
  165. package/dist/utils/service-manager/index.d.ts +49 -0
  166. package/dist/utils/service-manager/index.d.ts.map +1 -0
  167. package/dist/utils/service-manager/index.js +137 -0
  168. package/dist/utils/service-manager/index.js.map +1 -0
  169. package/dist/utils/service-manager/launchd.d.ts +31 -0
  170. package/dist/utils/service-manager/launchd.d.ts.map +1 -0
  171. package/dist/utils/service-manager/launchd.js +208 -0
  172. package/dist/utils/service-manager/launchd.js.map +1 -0
  173. package/dist/utils/service-manager/systemd.d.ts +31 -0
  174. package/dist/utils/service-manager/systemd.d.ts.map +1 -0
  175. package/dist/utils/service-manager/systemd.js +187 -0
  176. package/dist/utils/service-manager/systemd.js.map +1 -0
  177. package/dist/utils/tmux.d.ts +37 -0
  178. package/dist/utils/tmux.d.ts.map +1 -0
  179. package/dist/utils/tmux.js +96 -0
  180. package/dist/utils/tmux.js.map +1 -0
  181. package/package.json +15 -12
@@ -0,0 +1,179 @@
1
+ import zod from 'zod';
2
+ import { browserOpen, browserClose, browserCommand, browserListSessions, browserGetProfiles, isBlockedCommand, } from '../../utils/agent-browser.js';
3
+ // ============ Zod Schemas ============
4
+ export const BrowserOpenSchema = zod.object({
5
+ session_name: zod.string().describe('Unique session name'),
6
+ url: zod.string().describe('URL to open'),
7
+ profile: zod.string().optional().default('corebrain').describe('Browser profile to use (default: corebrain)'),
8
+ });
9
+ export const BrowserCloseSchema = zod.object({
10
+ session_name: zod.string().describe('Session name to close'),
11
+ });
12
+ export const BrowserCommandSchema = zod.object({
13
+ session_name: zod.string().describe('Session name to run command on'),
14
+ command: zod.string().describe('Command to run (e.g., click, fill, type, screenshot, etc.)'),
15
+ args: zod.array(zod.string()).optional().default([]).describe('Command arguments'),
16
+ });
17
+ export const BrowserListSessionsSchema = zod.object({});
18
+ export const BrowserGetProfilesSchema = zod.object({});
19
+ // ============ JSON Schemas ============
20
+ const jsonSchemas = {
21
+ browser_open: {
22
+ type: 'object',
23
+ properties: {
24
+ session_name: { type: 'string', description: 'Unique session name' },
25
+ url: { type: 'string', description: 'URL to open' },
26
+ profile: { type: 'string', description: 'Browser profile to use (default: corebrain)' },
27
+ },
28
+ required: ['session_name', 'url'],
29
+ },
30
+ browser_close: {
31
+ type: 'object',
32
+ properties: {
33
+ session_name: { type: 'string', description: 'Session name to close' },
34
+ },
35
+ required: ['session_name'],
36
+ },
37
+ browser_command: {
38
+ type: 'object',
39
+ properties: {
40
+ session_name: { type: 'string', description: 'Session name to run command on' },
41
+ command: {
42
+ type: 'string',
43
+ description: 'Command to run. Available: click, dblclick, fill, type, press, hover, select, check, uncheck, scroll, screenshot, snapshot, eval, get, is, find, wait, mouse, set, tab, frame, back, forward, reload. Blocked: open, close, cookies, storage, network, trace, highlight, console, errors, state, download',
44
+ },
45
+ args: {
46
+ type: 'array',
47
+ items: { type: 'string' },
48
+ description: 'Command arguments (selector, text, etc.)',
49
+ },
50
+ },
51
+ required: ['session_name', 'command'],
52
+ },
53
+ browser_list_sessions: {
54
+ type: 'object',
55
+ properties: {},
56
+ required: [],
57
+ description: 'List all active browser sessions (max 3)',
58
+ },
59
+ browser_get_profiles: {
60
+ type: 'object',
61
+ properties: {},
62
+ required: [],
63
+ description: 'List all available browser profiles',
64
+ },
65
+ };
66
+ // ============ Tool Definitions ============
67
+ export const browserTools = [
68
+ {
69
+ name: 'browser_open',
70
+ description: 'Open a browser session with a URL. Creates profile if it doesn\'t exist. Max 3 concurrent sessions.',
71
+ inputSchema: jsonSchemas.browser_open,
72
+ },
73
+ {
74
+ name: 'browser_close',
75
+ description: 'Close a browser session',
76
+ inputSchema: jsonSchemas.browser_close,
77
+ },
78
+ {
79
+ name: 'browser_command',
80
+ description: 'Run a browser command on a session. Commands: click, dblclick, fill, type, press, hover, select, check, uncheck, scroll, screenshot, snapshot, eval, get, is, find, wait, mouse, set, tab, frame, back, forward, reload',
81
+ inputSchema: jsonSchemas.browser_command,
82
+ },
83
+ {
84
+ name: 'browser_list_sessions',
85
+ description: 'List all active browser sessions',
86
+ inputSchema: jsonSchemas.browser_list_sessions,
87
+ },
88
+ {
89
+ name: 'browser_get_profiles',
90
+ description: 'List all available browser profiles',
91
+ inputSchema: jsonSchemas.browser_get_profiles,
92
+ },
93
+ ];
94
+ // ============ Tool Execution ============
95
+ export async function executeBrowserTool(toolName, params) {
96
+ try {
97
+ switch (toolName) {
98
+ case 'browser_open': {
99
+ const p = BrowserOpenSchema.parse(params);
100
+ const r = await browserOpen(p.session_name, p.url, p.profile);
101
+ if (r.code !== 0) {
102
+ return { success: false, error: r.stderr || 'Failed to open browser' };
103
+ }
104
+ return {
105
+ success: true,
106
+ result: {
107
+ message: `Opened ${p.url} in session "${p.session_name}"`,
108
+ session_name: p.session_name,
109
+ profile: p.profile,
110
+ },
111
+ };
112
+ }
113
+ case 'browser_close': {
114
+ const p = BrowserCloseSchema.parse(params);
115
+ const r = await browserClose(p.session_name);
116
+ if (r.code !== 0) {
117
+ return { success: false, error: r.stderr || 'Failed to close browser' };
118
+ }
119
+ return {
120
+ success: true,
121
+ result: { message: `Closed session "${p.session_name}"` },
122
+ };
123
+ }
124
+ case 'browser_command': {
125
+ const p = BrowserCommandSchema.parse(params);
126
+ // Check if command is blocked before executing
127
+ if (isBlockedCommand(p.command)) {
128
+ return {
129
+ success: false,
130
+ error: `Command "${p.command}" is blocked. Use browser_open or browser_close instead for open/close, other blocked commands are not available.`,
131
+ };
132
+ }
133
+ const r = await browserCommand(p.session_name, p.command, p.args);
134
+ if (r.code !== 0) {
135
+ return { success: false, error: r.stderr || `Failed to run "${p.command}"` };
136
+ }
137
+ return {
138
+ success: true,
139
+ result: {
140
+ message: `Executed "${p.command}" on session "${p.session_name}"`,
141
+ output: r.stdout,
142
+ },
143
+ };
144
+ }
145
+ case 'browser_list_sessions': {
146
+ BrowserListSessionsSchema.parse(params);
147
+ const sessions = browserListSessions();
148
+ return {
149
+ success: true,
150
+ result: {
151
+ sessions,
152
+ count: sessions.length,
153
+ max_sessions: 3,
154
+ },
155
+ };
156
+ }
157
+ case 'browser_get_profiles': {
158
+ BrowserGetProfilesSchema.parse(params);
159
+ const profiles = browserGetProfiles();
160
+ return {
161
+ success: true,
162
+ result: { profiles },
163
+ };
164
+ }
165
+ default:
166
+ return { success: false, error: `Unknown tool: ${toolName}` };
167
+ }
168
+ }
169
+ catch (err) {
170
+ if (err instanceof zod.ZodError) {
171
+ return { success: false, error: `Invalid parameters: ${err.message}` };
172
+ }
173
+ return {
174
+ success: false,
175
+ error: err instanceof Error ? err.message : 'Unknown error',
176
+ };
177
+ }
178
+ }
179
+ //# sourceMappingURL=browser-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-tools.js","sourceRoot":"","sources":["../../../src/server/tools/browser-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import zod from 'zod';
2
+ import type { GatewayTool } from './browser-tools.js';
3
+ export declare const StartSessionSchema: zod.ZodObject<{
4
+ agent: zod.ZodString;
5
+ prompt: zod.ZodString;
6
+ dir: zod.ZodString;
7
+ model: zod.ZodOptional<zod.ZodString>;
8
+ systemPrompt: zod.ZodOptional<zod.ZodString>;
9
+ }, zod.core.$strip>;
10
+ export declare const ResumeSessionSchema: zod.ZodObject<{
11
+ sessionId: zod.ZodString;
12
+ prompt: zod.ZodString;
13
+ }, zod.core.$strip>;
14
+ export declare const CloseSessionSchema: zod.ZodObject<{
15
+ sessionId: zod.ZodString;
16
+ }, zod.core.$strip>;
17
+ export declare const ReadSessionSchema: zod.ZodObject<{
18
+ sessionId: zod.ZodString;
19
+ }, zod.core.$strip>;
20
+ export declare const ListSessionsSchema: zod.ZodObject<{}, zod.core.$strip>;
21
+ export declare const codingTools: GatewayTool[];
22
+ export declare function executeCodingTool(toolName: string, params: Record<string, unknown>): Promise<{
23
+ success: boolean;
24
+ result?: unknown;
25
+ error?: string;
26
+ }>;
27
+ //# sourceMappingURL=coding-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coding-tools.d.ts","sourceRoot":"","sources":["../../../src/server/tools/coding-tools.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAoBjD,eAAO,MAAM,kBAAkB;;;;;;mBAM7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;mBAG9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;mBAE7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;mBAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,oCAAiB,CAAC;AA2EjD,eAAO,MAAM,WAAW,EAAE,WAAW,EA0BpC,CAAC;AA+NF,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CA+B/D"}
@@ -0,0 +1,345 @@
1
+ import zod from 'zod';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { existsSync } from 'node:fs';
4
+ import { getSession, updateSession, listSessions, createSession, closeSession as closeStoredSession, } from '../../utils/coding-sessions.js';
5
+ import { getAgentConfig, buildStartArgs, buildResumeArgs, startAgentProcess, readProcessOutput, isProcessRunning, stopProcess, } from '../../utils/coding-runner.js';
6
+ // ============ Zod Schemas ============
7
+ export const StartSessionSchema = zod.object({
8
+ agent: zod.string(),
9
+ prompt: zod.string(),
10
+ dir: zod.string(),
11
+ model: zod.string().optional(),
12
+ systemPrompt: zod.string().optional(),
13
+ });
14
+ export const ResumeSessionSchema = zod.object({
15
+ sessionId: zod.string(),
16
+ prompt: zod.string(),
17
+ });
18
+ export const CloseSessionSchema = zod.object({
19
+ sessionId: zod.string(),
20
+ });
21
+ export const ReadSessionSchema = zod.object({
22
+ sessionId: zod.string(),
23
+ });
24
+ export const ListSessionsSchema = zod.object({});
25
+ // ============ JSON Schemas ============
26
+ const jsonSchemas = {
27
+ coding_start_session: {
28
+ type: 'object',
29
+ properties: {
30
+ agent: {
31
+ type: 'string',
32
+ description: 'Coding agent to use (e.g., "claude-code")',
33
+ },
34
+ prompt: {
35
+ type: 'string',
36
+ description: 'The task/prompt to send to the agent',
37
+ },
38
+ dir: {
39
+ type: 'string',
40
+ description: 'Working directory for the session (must exist)',
41
+ },
42
+ model: {
43
+ type: 'string',
44
+ description: 'Model to use (optional)',
45
+ },
46
+ systemPrompt: {
47
+ type: 'string',
48
+ description: 'System prompt (optional)',
49
+ },
50
+ },
51
+ required: ['agent', 'prompt', 'dir'],
52
+ },
53
+ coding_resume_session: {
54
+ type: 'object',
55
+ properties: {
56
+ sessionId: {
57
+ type: 'string',
58
+ description: 'Session ID to resume',
59
+ },
60
+ prompt: {
61
+ type: 'string',
62
+ description: 'The prompt to send to continue the session',
63
+ },
64
+ },
65
+ required: ['sessionId', 'prompt'],
66
+ },
67
+ coding_close_session: {
68
+ type: 'object',
69
+ properties: {
70
+ sessionId: {
71
+ type: 'string',
72
+ description: 'Session ID to close',
73
+ },
74
+ },
75
+ required: ['sessionId'],
76
+ },
77
+ coding_read_session: {
78
+ type: 'object',
79
+ properties: {
80
+ sessionId: {
81
+ type: 'string',
82
+ description: 'Session ID to read output from',
83
+ },
84
+ },
85
+ required: ['sessionId'],
86
+ },
87
+ coding_list_sessions: {
88
+ type: 'object',
89
+ properties: {},
90
+ required: [],
91
+ description: 'List all coding sessions',
92
+ },
93
+ };
94
+ // ============ Tool Definitions ============
95
+ export const codingTools = [
96
+ {
97
+ name: 'coding_start_session',
98
+ description: 'Start a new coding session with the specified agent (runs in background)',
99
+ inputSchema: jsonSchemas.coding_start_session,
100
+ },
101
+ {
102
+ name: 'coding_resume_session',
103
+ description: 'Resume an existing coding session',
104
+ inputSchema: jsonSchemas.coding_resume_session,
105
+ },
106
+ {
107
+ name: 'coding_close_session',
108
+ description: 'Close/stop a coding session',
109
+ inputSchema: jsonSchemas.coding_close_session,
110
+ },
111
+ {
112
+ name: 'coding_read_session',
113
+ description: 'Read current output from a coding session (works while running)',
114
+ inputSchema: jsonSchemas.coding_read_session,
115
+ },
116
+ {
117
+ name: 'coding_list_sessions',
118
+ description: 'List all coding sessions',
119
+ inputSchema: jsonSchemas.coding_list_sessions,
120
+ },
121
+ ];
122
+ // ============ Tool Handlers ============
123
+ async function handleStartSession(params) {
124
+ // Check if directory exists
125
+ if (!existsSync(params.dir)) {
126
+ return {
127
+ success: false,
128
+ error: `Directory "${params.dir}" does not exist`,
129
+ };
130
+ }
131
+ // Get agent config
132
+ const config = getAgentConfig(params.agent);
133
+ if (!config) {
134
+ return {
135
+ success: false,
136
+ error: `Agent "${params.agent}" not configured. Run 'corebrain coding config --agent ${params.agent}' to set up.`,
137
+ };
138
+ }
139
+ // Generate session ID and create session
140
+ const sessionId = randomUUID();
141
+ const session = createSession({
142
+ sessionId,
143
+ agent: params.agent,
144
+ prompt: params.prompt,
145
+ dir: params.dir,
146
+ });
147
+ updateSession(session);
148
+ // Build command args
149
+ const args = buildStartArgs(config, {
150
+ prompt: params.prompt,
151
+ sessionId,
152
+ model: params.model,
153
+ systemPrompt: params.systemPrompt,
154
+ });
155
+ // Start process in background
156
+ const { pid } = startAgentProcess(sessionId, config, args, params.dir);
157
+ return {
158
+ success: true,
159
+ result: {
160
+ sessionId,
161
+ pid,
162
+ status: 'running',
163
+ message: 'Session started. Use coding_read_session to check output.',
164
+ },
165
+ };
166
+ }
167
+ async function handleResumeSession(params) {
168
+ // Get existing session
169
+ const session = getSession(params.sessionId);
170
+ if (!session) {
171
+ return {
172
+ success: false,
173
+ error: `Session "${params.sessionId}" not found`,
174
+ };
175
+ }
176
+ // Check if already running
177
+ if (isProcessRunning(params.sessionId)) {
178
+ return {
179
+ success: false,
180
+ error: `Session "${params.sessionId}" is already running`,
181
+ };
182
+ }
183
+ // Check if directory still exists
184
+ if (!existsSync(session.dir)) {
185
+ return {
186
+ success: false,
187
+ error: `Session directory "${session.dir}" no longer exists`,
188
+ };
189
+ }
190
+ // Get agent config
191
+ const config = getAgentConfig(session.agent);
192
+ if (!config) {
193
+ return {
194
+ success: false,
195
+ error: `Agent "${session.agent}" not configured`,
196
+ };
197
+ }
198
+ // Update session status
199
+ session.status = 'running';
200
+ session.prompt = params.prompt;
201
+ session.updatedAt = Date.now();
202
+ updateSession(session);
203
+ // Build resume args
204
+ const args = buildResumeArgs(config, {
205
+ prompt: params.prompt,
206
+ sessionId: params.sessionId,
207
+ });
208
+ // Start process in background
209
+ const { pid } = startAgentProcess(params.sessionId, config, args, session.dir);
210
+ return {
211
+ success: true,
212
+ result: {
213
+ sessionId: params.sessionId,
214
+ pid,
215
+ status: 'running',
216
+ message: 'Session resumed. Use coding_read_session to check output.',
217
+ },
218
+ };
219
+ }
220
+ function handleCloseSession(params) {
221
+ const session = getSession(params.sessionId);
222
+ if (!session) {
223
+ return {
224
+ success: false,
225
+ error: `Session "${params.sessionId}" not found`,
226
+ };
227
+ }
228
+ // Stop the process if running (this triggers auto-save in runner)
229
+ const wasRunning = stopProcess(params.sessionId);
230
+ // Mark as closed in sessions.json
231
+ closeStoredSession(params.sessionId);
232
+ return {
233
+ success: true,
234
+ result: {
235
+ sessionId: params.sessionId,
236
+ wasRunning,
237
+ message: 'Session closed',
238
+ },
239
+ };
240
+ }
241
+ function handleReadSession(params) {
242
+ // First check stored session exists
243
+ const session = getSession(params.sessionId);
244
+ if (!session) {
245
+ return {
246
+ success: false,
247
+ error: `Session "${params.sessionId}" not found`,
248
+ };
249
+ }
250
+ // Read from running process
251
+ const output = readProcessOutput(params.sessionId);
252
+ if (output.found) {
253
+ // Process is tracked in memory, return live output
254
+ const status = output.running
255
+ ? 'running'
256
+ : output.exitCode === 0
257
+ ? 'completed'
258
+ : 'error';
259
+ return {
260
+ success: true,
261
+ result: {
262
+ sessionId: session.sessionId,
263
+ agent: session.agent,
264
+ prompt: session.prompt,
265
+ dir: session.dir,
266
+ status,
267
+ running: output.running,
268
+ output: output.stdout,
269
+ error: output.stderr || undefined,
270
+ exitCode: output.exitCode,
271
+ startedAt: session.startedAt,
272
+ updatedAt: session.updatedAt,
273
+ },
274
+ };
275
+ }
276
+ // Process not in memory, return stored session data from sessions.json
277
+ return {
278
+ success: true,
279
+ result: {
280
+ sessionId: session.sessionId,
281
+ agent: session.agent,
282
+ prompt: session.prompt,
283
+ dir: session.dir,
284
+ status: session.status,
285
+ running: false,
286
+ output: session.output,
287
+ error: session.error,
288
+ exitCode: null,
289
+ startedAt: session.startedAt,
290
+ updatedAt: session.updatedAt,
291
+ },
292
+ };
293
+ }
294
+ function handleListSessions() {
295
+ const sessions = listSessions();
296
+ return {
297
+ success: true,
298
+ result: {
299
+ sessions: sessions.map((s) => {
300
+ // Check if process is still running
301
+ const running = isProcessRunning(s.sessionId);
302
+ return {
303
+ sessionId: s.sessionId,
304
+ agent: s.agent,
305
+ dir: s.dir,
306
+ status: running ? 'running' : s.status,
307
+ running,
308
+ startedAt: s.startedAt,
309
+ updatedAt: s.updatedAt,
310
+ };
311
+ }),
312
+ count: sessions.length,
313
+ },
314
+ };
315
+ }
316
+ // ============ Tool Execution ============
317
+ export async function executeCodingTool(toolName, params) {
318
+ try {
319
+ switch (toolName) {
320
+ case 'coding_start_session':
321
+ return await handleStartSession(StartSessionSchema.parse(params));
322
+ case 'coding_resume_session':
323
+ return await handleResumeSession(ResumeSessionSchema.parse(params));
324
+ case 'coding_close_session':
325
+ return handleCloseSession(CloseSessionSchema.parse(params));
326
+ case 'coding_read_session':
327
+ return handleReadSession(ReadSessionSchema.parse(params));
328
+ case 'coding_list_sessions':
329
+ ListSessionsSchema.parse(params);
330
+ return handleListSessions();
331
+ default:
332
+ return { success: false, error: `Unknown tool: ${toolName}` };
333
+ }
334
+ }
335
+ catch (err) {
336
+ if (err instanceof zod.ZodError) {
337
+ return { success: false, error: `Invalid parameters: ${err.message}` };
338
+ }
339
+ return {
340
+ success: false,
341
+ error: err instanceof Error ? err.message : 'Unknown error',
342
+ };
343
+ }
344
+ }
345
+ //# sourceMappingURL=coding-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coding-tools.js","sourceRoot":"","sources":["../../../src/server/tools/coding-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import zod from 'zod';
2
+ import type { GatewayTool } from './browser-tools.js';
3
+ export declare const ExecCommandSchema: zod.ZodObject<{
4
+ command: zod.ZodString;
5
+ dir: zod.ZodOptional<zod.ZodString>;
6
+ timeout: zod.ZodOptional<zod.ZodNumber>;
7
+ }, zod.core.$strip>;
8
+ export declare const execTools: GatewayTool[];
9
+ export declare function executeExecTool(toolName: string, params: Record<string, unknown>): Promise<{
10
+ success: boolean;
11
+ result?: unknown;
12
+ error?: string;
13
+ }>;
14
+ //# sourceMappingURL=exec-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec-tools.d.ts","sourceRoot":"","sources":["../../../src/server/tools/exec-tools.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAQjD,eAAO,MAAM,iBAAiB;;;;mBAI5B,CAAC;AA2BH,eAAO,MAAM,SAAS,EAAE,WAAW,EAMlC,CAAC;AA4KF,wBAAsB,eAAe,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAkB/D"}