@redplanethq/corebrain 2.6.2 → 2.6.4
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/coding/close.d.ts.map +1 -1
- package/dist/commands/coding/close.js +13 -25
- package/dist/commands/coding/close.js.map +1 -1
- package/dist/commands/coding/list.d.ts +4 -0
- package/dist/commands/coding/list.d.ts.map +1 -1
- package/dist/commands/coding/list.js +18 -38
- package/dist/commands/coding/list.js.map +1 -1
- package/dist/commands/coding/read.d.ts +1 -0
- package/dist/commands/coding/read.d.ts.map +1 -1
- package/dist/commands/coding/read.js +36 -35
- package/dist/commands/coding/read.js.map +1 -1
- package/dist/commands/coding/resume.d.ts +1 -0
- package/dist/commands/coding/resume.d.ts.map +1 -1
- package/dist/commands/coding/resume.js +37 -31
- package/dist/commands/coding/resume.js.map +1 -1
- package/dist/commands/coding/setup.d.ts.map +1 -1
- package/dist/commands/coding/setup.js +34 -5
- package/dist/commands/coding/setup.js.map +1 -1
- package/dist/commands/coding/start.d.ts.map +1 -1
- package/dist/commands/coding/start.js +7 -32
- package/dist/commands/coding/start.js.map +1 -1
- package/dist/server/gateway-client.d.ts.map +1 -1
- package/dist/server/gateway-client.js +4 -0
- package/dist/server/gateway-client.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts +0 -22
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +237 -233
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/tui/chat.d.ts.map +1 -1
- package/dist/tui/chat.js +57 -1
- package/dist/tui/chat.js.map +1 -1
- package/dist/tui/components/tool-call-item.d.ts.map +1 -1
- package/dist/tui/components/tool-call-item.js +16 -8
- package/dist/tui/components/tool-call-item.js.map +1 -1
- package/dist/tui/hooks/use-conversation.d.ts +2 -0
- package/dist/tui/hooks/use-conversation.d.ts.map +1 -1
- package/dist/tui/hooks/use-conversation.js +8 -1
- package/dist/tui/hooks/use-conversation.js.map +1 -1
- package/dist/tui/utils/stream.d.ts +1 -1
- package/dist/tui/utils/stream.d.ts.map +1 -1
- package/dist/tui/utils/stream.js +2 -2
- package/dist/tui/utils/stream.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.d.ts +8 -6
- package/dist/utils/coding-agents/claude-code.d.ts.map +1 -1
- package/dist/utils/coding-agents/claude-code.js +77 -111
- package/dist/utils/coding-agents/claude-code.js.map +1 -1
- package/dist/utils/coding-agents/codex.d.ts +23 -0
- package/dist/utils/coding-agents/codex.d.ts.map +1 -0
- package/dist/utils/coding-agents/codex.js +243 -0
- package/dist/utils/coding-agents/codex.js.map +1 -0
- package/dist/utils/coding-agents/index.d.ts +12 -10
- package/dist/utils/coding-agents/index.d.ts.map +1 -1
- package/dist/utils/coding-agents/index.js +30 -23
- package/dist/utils/coding-agents/index.js.map +1 -1
- package/dist/utils/coding-agents/types.d.ts +37 -21
- package/dist/utils/coding-agents/types.d.ts.map +1 -1
- package/dist/utils/coding-agents/types.js +98 -1
- package/dist/utils/coding-agents/types.js.map +1 -1
- package/dist/utils/coding-runner.d.ts +1 -28
- package/dist/utils/coding-runner.d.ts.map +1 -1
- package/dist/utils/coding-runner.js +10 -85
- package/dist/utils/coding-runner.js.map +1 -1
- package/dist/utils/coding-sessions.d.ts +4 -57
- package/dist/utils/coding-sessions.d.ts.map +1 -1
- package/dist/utils/coding-sessions.js +9 -75
- package/dist/utils/coding-sessions.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/close.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,OAAO;;;mBAGlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/close.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,OAAO;;;mBAGlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAkEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAUzD"}
|
|
@@ -4,21 +4,19 @@ import * as p from '@clack/prompts';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
6
|
import { executeCodingTool } from '../../server/tools/coding-tools.js';
|
|
7
|
-
import {
|
|
7
|
+
import { listRunningSessions } from '../../utils/coding-sessions.js';
|
|
8
8
|
export const options = zod.object({
|
|
9
9
|
sessionId: zod.string().optional().describe('Session ID to close'),
|
|
10
|
-
all: zod.boolean().optional().describe('Close all sessions'),
|
|
10
|
+
all: zod.boolean().optional().describe('Close all running sessions'),
|
|
11
11
|
});
|
|
12
12
|
async function runCloseSession(opts) {
|
|
13
13
|
if (opts.all) {
|
|
14
|
-
const sessions =
|
|
14
|
+
const sessions = listRunningSessions();
|
|
15
15
|
if (sessions.length === 0) {
|
|
16
|
-
p.log.info('No sessions
|
|
16
|
+
p.log.info('No running sessions.');
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
const confirmed = await p.confirm({
|
|
20
|
-
message: `Close all ${sessions.length} sessions?`,
|
|
21
|
-
});
|
|
19
|
+
const confirmed = await p.confirm({ message: `Close all ${sessions.length} running sessions?` });
|
|
22
20
|
if (p.isCancel(confirmed) || !confirmed) {
|
|
23
21
|
p.cancel('Cancelled');
|
|
24
22
|
return;
|
|
@@ -27,28 +25,25 @@ async function runCloseSession(opts) {
|
|
|
27
25
|
spinner.start('Closing all sessions...');
|
|
28
26
|
let closed = 0;
|
|
29
27
|
for (const s of sessions) {
|
|
30
|
-
const result = await executeCodingTool('coding_close_session', {
|
|
31
|
-
sessionId: s.sessionId,
|
|
32
|
-
});
|
|
28
|
+
const result = await executeCodingTool('coding_close_session', { sessionId: s.sessionId });
|
|
33
29
|
if (result.success)
|
|
34
30
|
closed++;
|
|
35
31
|
}
|
|
36
32
|
spinner.stop(chalk.green(`Closed ${closed} sessions`));
|
|
37
33
|
return;
|
|
38
34
|
}
|
|
39
|
-
// Get session ID
|
|
40
35
|
let sessionId = opts.sessionId;
|
|
41
36
|
if (!sessionId) {
|
|
42
|
-
const sessions =
|
|
37
|
+
const sessions = listRunningSessions();
|
|
43
38
|
if (sessions.length === 0) {
|
|
44
|
-
p.log.error('No sessions found.');
|
|
39
|
+
p.log.error('No running sessions found.');
|
|
45
40
|
return;
|
|
46
41
|
}
|
|
47
42
|
const selected = await p.select({
|
|
48
43
|
message: 'Select session to close',
|
|
49
44
|
options: sessions.map((s) => ({
|
|
50
45
|
value: s.sessionId,
|
|
51
|
-
label: `${s.sessionId.slice(0, 8)}... (${s.agent})
|
|
46
|
+
label: `${s.sessionId.slice(0, 8)}... (${s.agent}) ${chalk.blue('running')}`,
|
|
52
47
|
})),
|
|
53
48
|
});
|
|
54
49
|
if (p.isCancel(selected)) {
|
|
@@ -59,28 +54,21 @@ async function runCloseSession(opts) {
|
|
|
59
54
|
}
|
|
60
55
|
const spinner = p.spinner();
|
|
61
56
|
spinner.start('Closing session...');
|
|
62
|
-
const result = await executeCodingTool('coding_close_session', {
|
|
63
|
-
sessionId,
|
|
64
|
-
});
|
|
57
|
+
const result = await executeCodingTool('coding_close_session', { sessionId });
|
|
65
58
|
if (!result.success) {
|
|
66
59
|
spinner.stop(chalk.red('Failed'));
|
|
67
60
|
p.log.error(result.error || 'Unknown error');
|
|
68
61
|
return;
|
|
69
62
|
}
|
|
70
63
|
spinner.stop(chalk.green('Closed'));
|
|
71
|
-
|
|
72
|
-
p.log.success(`Session ${res.sessionId.slice(0, 8)}... closed${res.wasRunning ? ' (was running)' : ''}`);
|
|
64
|
+
p.log.success(`Session ${sessionId.slice(0, 8)}... closed`);
|
|
73
65
|
}
|
|
74
66
|
export default function CodingClose({ options: opts }) {
|
|
75
67
|
const { exit } = useApp();
|
|
76
68
|
useEffect(() => {
|
|
77
69
|
runCloseSession(opts)
|
|
78
|
-
.catch((err) =>
|
|
79
|
-
|
|
80
|
-
})
|
|
81
|
-
.finally(() => {
|
|
82
|
-
setTimeout(() => exit(), 100);
|
|
83
|
-
});
|
|
70
|
+
.catch((err) => p.log.error(err instanceof Error ? err.message : 'Unknown error'))
|
|
71
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
84
72
|
}, [opts, exit]);
|
|
85
73
|
return null;
|
|
86
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/coding/close.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,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/coding/close.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
2
|
export declare const options: zod.ZodObject<{
|
|
3
|
+
agent: zod.ZodOptional<zod.ZodString>;
|
|
4
|
+
since: zod.ZodOptional<zod.ZodString>;
|
|
5
|
+
dir: zod.ZodOptional<zod.ZodString>;
|
|
6
|
+
offset: zod.ZodOptional<zod.ZodNumber>;
|
|
3
7
|
json: zod.ZodOptional<zod.ZodBoolean>;
|
|
4
8
|
}, zod.core.$strip>;
|
|
5
9
|
type Props = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/list.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/list.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO;;;;;;mBAMlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAiDF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAUxD"}
|
|
@@ -5,25 +5,19 @@ import chalk from 'chalk';
|
|
|
5
5
|
import zod from 'zod';
|
|
6
6
|
import { executeCodingTool } from '../../server/tools/coding-tools.js';
|
|
7
7
|
export const options = zod.object({
|
|
8
|
+
agent: zod.string().optional().describe('Filter to a specific agent (e.g. claude-code, codex-cli)'),
|
|
9
|
+
since: zod.string().optional().describe('Filter sessions updated after this date (e.g. 2024-03-01)'),
|
|
10
|
+
dir: zod.string().optional().describe('Filter to a specific directory'),
|
|
11
|
+
offset: zod.number().optional().describe('Skip N sessions (for pagination)'),
|
|
8
12
|
json: zod.boolean().optional().describe('Output as JSON'),
|
|
9
13
|
});
|
|
10
|
-
function formatTime(timestamp) {
|
|
11
|
-
const date = new Date(timestamp);
|
|
12
|
-
const now = new Date();
|
|
13
|
-
const diffMs = now.getTime() - date.getTime();
|
|
14
|
-
const diffMins = Math.floor(diffMs / 60000);
|
|
15
|
-
const diffHours = Math.floor(diffMins / 60);
|
|
16
|
-
const diffDays = Math.floor(diffHours / 24);
|
|
17
|
-
if (diffDays > 0)
|
|
18
|
-
return `${diffDays}d ago`;
|
|
19
|
-
if (diffHours > 0)
|
|
20
|
-
return `${diffHours}h ago`;
|
|
21
|
-
if (diffMins > 0)
|
|
22
|
-
return `${diffMins}m ago`;
|
|
23
|
-
return 'just now';
|
|
24
|
-
}
|
|
25
14
|
async function runListSessions(opts) {
|
|
26
|
-
const result = await executeCodingTool('coding_list_sessions', {
|
|
15
|
+
const result = await executeCodingTool('coding_list_sessions', {
|
|
16
|
+
agent: opts.agent,
|
|
17
|
+
since: opts.since,
|
|
18
|
+
dir: opts.dir,
|
|
19
|
+
offset: opts.offset,
|
|
20
|
+
});
|
|
27
21
|
if (!result.success) {
|
|
28
22
|
p.log.error(result.error || 'Unknown error');
|
|
29
23
|
return;
|
|
@@ -33,39 +27,25 @@ async function runListSessions(opts) {
|
|
|
33
27
|
console.log(JSON.stringify(res, null, 2));
|
|
34
28
|
return;
|
|
35
29
|
}
|
|
36
|
-
if (res.
|
|
30
|
+
if (res.sessions.length === 0) {
|
|
37
31
|
p.log.info('No sessions found.');
|
|
38
32
|
p.log.info("Start one with: corebrain coding start");
|
|
39
33
|
return;
|
|
40
34
|
}
|
|
41
35
|
const lines = res.sessions.map((s) => {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
? chalk.green
|
|
46
|
-
: s.status === 'closed'
|
|
47
|
-
? chalk.gray
|
|
48
|
-
: chalk.red;
|
|
49
|
-
return [
|
|
50
|
-
`${chalk.bold(s.sessionId.slice(0, 8))}`,
|
|
51
|
-
chalk.cyan(s.agent),
|
|
52
|
-
statusColor(s.status),
|
|
53
|
-
chalk.dim(s.dir),
|
|
54
|
-
chalk.dim(formatTime(s.startedAt)),
|
|
55
|
-
].join(' ');
|
|
36
|
+
const status = s.running ? chalk.blue('running') : chalk.dim(s.updatedAt.slice(0, 10));
|
|
37
|
+
const title = s.title ? chalk.white(s.title.slice(0, 55)) : chalk.dim('(no title)');
|
|
38
|
+
return [chalk.bold(s.sessionId.slice(0, 8)), chalk.cyan(s.agent), title, status, chalk.dim(s.dir)].join(' ');
|
|
56
39
|
});
|
|
57
|
-
|
|
40
|
+
const pagination = res.hasMore ? ` — showing ${res.offset + 1}–${res.offset + res.sessions.length} of ${res.total}` : '';
|
|
41
|
+
p.note(lines.join('\n'), `Sessions (${res.total})${pagination}`);
|
|
58
42
|
}
|
|
59
43
|
export default function CodingList({ options: opts }) {
|
|
60
44
|
const { exit } = useApp();
|
|
61
45
|
useEffect(() => {
|
|
62
46
|
runListSessions(opts)
|
|
63
|
-
.catch((err) =>
|
|
64
|
-
|
|
65
|
-
})
|
|
66
|
-
.finally(() => {
|
|
67
|
-
setTimeout(() => exit(), 100);
|
|
68
|
-
});
|
|
47
|
+
.catch((err) => p.log.error(err instanceof Error ? err.message : 'Unknown error'))
|
|
48
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
69
49
|
}, [opts, exit]);
|
|
70
50
|
return null;
|
|
71
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/coding/list.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,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/coding/list.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,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACnG,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACpG,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACvE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC5E,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CACzD,CAAC,CAAC;AAiBH,KAAK,UAAU,eAAe,CAAC,IAA+B;IAC7D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,sBAAsB,EAAE;QAC9D,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;QAC7C,OAAO;IACR,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAoF,CAAC;IAExG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO;IACR,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACrD,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,EAAQ;IACxD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,CAAC,IAAI,CAAC;aACnB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;aACjF,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import zod from 'zod';
|
|
2
2
|
export declare const options: zod.ZodObject<{
|
|
3
3
|
sessionId: zod.ZodOptional<zod.ZodString>;
|
|
4
|
+
dir: zod.ZodOptional<zod.ZodString>;
|
|
4
5
|
lines: zod.ZodOptional<zod.ZodNumber>;
|
|
5
6
|
offset: zod.ZodOptional<zod.ZodNumber>;
|
|
6
7
|
tail: zod.ZodOptional<zod.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/read.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/read.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,OAAO;;;;;;;mBAOlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAwIF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAUxD"}
|
|
@@ -4,19 +4,24 @@ import * as p from '@clack/prompts';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
6
|
import { executeCodingTool } from '../../server/tools/coding-tools.js';
|
|
7
|
-
import { listSessions } from '../../utils/coding-sessions.js';
|
|
8
7
|
export const options = zod.object({
|
|
9
8
|
sessionId: zod.string().optional().describe('Session ID to read'),
|
|
9
|
+
dir: zod.string().optional().describe('Working directory of the session'),
|
|
10
10
|
lines: zod.number().optional().describe('Number of lines to return'),
|
|
11
11
|
offset: zod.number().optional().describe('Line offset to start from'),
|
|
12
12
|
tail: zod.boolean().optional().describe('Return last N lines'),
|
|
13
13
|
follow: zod.boolean().optional().describe('Follow output (like tail -f)'),
|
|
14
14
|
});
|
|
15
15
|
async function runReadSession(opts) {
|
|
16
|
-
// Get session ID
|
|
17
16
|
let sessionId = opts.sessionId;
|
|
17
|
+
let dir = opts.dir;
|
|
18
18
|
if (!sessionId) {
|
|
19
|
-
const
|
|
19
|
+
const listResult = await executeCodingTool('coding_list_sessions', { limit: 20 });
|
|
20
|
+
if (!listResult.success) {
|
|
21
|
+
p.log.error(listResult.error || 'Failed to list sessions');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const { sessions } = listResult.result;
|
|
20
25
|
if (sessions.length === 0) {
|
|
21
26
|
p.log.error('No sessions found.');
|
|
22
27
|
return;
|
|
@@ -25,7 +30,11 @@ async function runReadSession(opts) {
|
|
|
25
30
|
message: 'Select session',
|
|
26
31
|
options: sessions.map((s) => ({
|
|
27
32
|
value: s.sessionId,
|
|
28
|
-
label:
|
|
33
|
+
label: [
|
|
34
|
+
chalk.bold(s.sessionId.slice(0, 8)),
|
|
35
|
+
s.title ? chalk.white(s.title.slice(0, 50)) : chalk.dim('(no title)'),
|
|
36
|
+
s.running ? chalk.blue('running') : chalk.dim(s.updatedAt.slice(0, 10)),
|
|
37
|
+
].join(' '),
|
|
29
38
|
})),
|
|
30
39
|
});
|
|
31
40
|
if (p.isCancel(selected)) {
|
|
@@ -33,10 +42,20 @@ async function runReadSession(opts) {
|
|
|
33
42
|
return;
|
|
34
43
|
}
|
|
35
44
|
sessionId = selected;
|
|
45
|
+
dir = sessions.find((s) => s.sessionId === sessionId)?.dir;
|
|
46
|
+
}
|
|
47
|
+
if (!dir) {
|
|
48
|
+
const input = await p.text({ message: 'Working directory', initialValue: process.cwd() });
|
|
49
|
+
if (p.isCancel(input)) {
|
|
50
|
+
p.cancel('Cancelled');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
dir = input;
|
|
36
54
|
}
|
|
37
55
|
const readOnce = async () => {
|
|
38
56
|
const result = await executeCodingTool('coding_read_session', {
|
|
39
57
|
sessionId,
|
|
58
|
+
dir,
|
|
40
59
|
lines: opts.lines,
|
|
41
60
|
offset: opts.offset,
|
|
42
61
|
tail: opts.tail,
|
|
@@ -48,49 +67,35 @@ async function runReadSession(opts) {
|
|
|
48
67
|
return result.result;
|
|
49
68
|
};
|
|
50
69
|
if (opts.follow) {
|
|
51
|
-
// Follow mode - continuously poll
|
|
52
70
|
p.log.info(`Following session ${sessionId}... (Ctrl+C to stop)`);
|
|
53
71
|
let lastEntryCount = 0;
|
|
54
|
-
|
|
72
|
+
let running = true;
|
|
73
|
+
while (running) {
|
|
55
74
|
const res = await readOnce();
|
|
56
75
|
if (!res)
|
|
57
|
-
|
|
58
|
-
// Only print new entries
|
|
76
|
+
break;
|
|
59
77
|
if (res.entries.length > lastEntryCount) {
|
|
60
|
-
const
|
|
61
|
-
for (const entry of newEntries) {
|
|
78
|
+
for (const entry of res.entries.slice(lastEntryCount)) {
|
|
62
79
|
console.log(JSON.stringify(entry));
|
|
63
80
|
}
|
|
64
81
|
lastEntryCount = res.entries.length;
|
|
65
82
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
let running = true;
|
|
69
|
-
while (running) {
|
|
70
|
-
running = await poll();
|
|
71
|
-
if (running) {
|
|
83
|
+
running = res.running;
|
|
84
|
+
if (running)
|
|
72
85
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
73
|
-
}
|
|
74
86
|
}
|
|
75
|
-
p.log.info('
|
|
87
|
+
p.log.info('Session completed.');
|
|
76
88
|
return;
|
|
77
89
|
}
|
|
78
|
-
// Single read
|
|
79
90
|
const res = await readOnce();
|
|
80
91
|
if (!res)
|
|
81
92
|
return;
|
|
82
|
-
const statusColor = res.status === 'running'
|
|
83
|
-
|
|
84
|
-
: res.status === 'completed'
|
|
85
|
-
? chalk.green
|
|
86
|
-
: chalk.red;
|
|
87
|
-
console.log(chalk.dim(`--- Session ${res.sessionId.slice(0, 8)} | ${res.agent} | ${statusColor(res.status)} ---`));
|
|
93
|
+
const statusColor = res.status === 'running' ? chalk.blue : res.status === 'completed' ? chalk.green : chalk.red;
|
|
94
|
+
console.log(chalk.dim(`--- Session ${res.sessionId.slice(0, 8)} | ${statusColor(res.status)} ---`));
|
|
88
95
|
console.log(chalk.dim(`Lines: ${res.returnedLines}/${res.totalLines} | Size: ${res.fileSizeHuman} | Dir: ${res.dir}`));
|
|
89
96
|
console.log();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
console.log(JSON.stringify(entry));
|
|
93
|
-
}
|
|
97
|
+
for (const entry of res.entries) {
|
|
98
|
+
console.log(JSON.stringify(entry));
|
|
94
99
|
}
|
|
95
100
|
if (res.error) {
|
|
96
101
|
console.log(chalk.red('\n--- Errors ---'));
|
|
@@ -101,12 +106,8 @@ export default function CodingRead({ options: opts }) {
|
|
|
101
106
|
const { exit } = useApp();
|
|
102
107
|
useEffect(() => {
|
|
103
108
|
runReadSession(opts)
|
|
104
|
-
.catch((err) =>
|
|
105
|
-
|
|
106
|
-
})
|
|
107
|
-
.finally(() => {
|
|
108
|
-
setTimeout(() => exit(), 100);
|
|
109
|
-
});
|
|
109
|
+
.catch((err) => p.log.error(err instanceof Error ? err.message : 'Unknown error'))
|
|
110
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
110
111
|
}, [opts, exit]);
|
|
111
112
|
return null;
|
|
112
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/commands/coding/read.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,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/commands/coding/read.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import zod from 'zod';
|
|
|
2
2
|
export declare const options: zod.ZodObject<{
|
|
3
3
|
sessionId: zod.ZodOptional<zod.ZodString>;
|
|
4
4
|
prompt: zod.ZodOptional<zod.ZodString>;
|
|
5
|
+
dir: zod.ZodOptional<zod.ZodString>;
|
|
5
6
|
}, zod.core.$strip>;
|
|
6
7
|
type Props = {
|
|
7
8
|
options: zod.infer<typeof options>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/resume.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/resume.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,OAAO;;;;mBAIlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AA2FF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,KAAK,QAU1D"}
|
|
@@ -4,25 +4,36 @@ import * as p from '@clack/prompts';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import zod from 'zod';
|
|
6
6
|
import { executeCodingTool } from '../../server/tools/coding-tools.js';
|
|
7
|
-
import { listSessions } from '../../utils/coding-sessions.js';
|
|
8
7
|
export const options = zod.object({
|
|
9
|
-
sessionId: zod.string().optional().describe('Session ID to
|
|
10
|
-
prompt: zod.string().optional().describe('
|
|
8
|
+
sessionId: zod.string().optional().describe('Session ID to continue'),
|
|
9
|
+
prompt: zod.string().optional().describe('Follow-up prompt'),
|
|
10
|
+
dir: zod.string().optional().describe('Working directory (required if sessionId provided)'),
|
|
11
11
|
});
|
|
12
12
|
async function runResumeSession(opts) {
|
|
13
|
-
// Get session ID
|
|
14
13
|
let sessionId = opts.sessionId;
|
|
14
|
+
let dir = opts.dir;
|
|
15
|
+
let agent;
|
|
15
16
|
if (!sessionId) {
|
|
16
|
-
|
|
17
|
+
// List sessions from JSONL history
|
|
18
|
+
const listResult = await executeCodingTool('coding_list_sessions', { limit: 20 });
|
|
19
|
+
if (!listResult.success) {
|
|
20
|
+
p.log.error(listResult.error || 'Failed to list sessions');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const { sessions } = listResult.result;
|
|
17
24
|
if (sessions.length === 0) {
|
|
18
|
-
p.log.error('No
|
|
25
|
+
p.log.error('No sessions found. Start one with: corebrain coding start');
|
|
19
26
|
return;
|
|
20
27
|
}
|
|
21
28
|
const selected = await p.select({
|
|
22
|
-
message: 'Select session to
|
|
29
|
+
message: 'Select session to continue',
|
|
23
30
|
options: sessions.map((s) => ({
|
|
24
31
|
value: s.sessionId,
|
|
25
|
-
label:
|
|
32
|
+
label: [
|
|
33
|
+
chalk.bold(s.sessionId.slice(0, 8)),
|
|
34
|
+
s.title ? chalk.white(s.title.slice(0, 50)) : chalk.dim('(no title)'),
|
|
35
|
+
s.running ? chalk.blue('running') : chalk.dim(s.updatedAt.slice(0, 10)),
|
|
36
|
+
].join(' '),
|
|
26
37
|
})),
|
|
27
38
|
});
|
|
28
39
|
if (p.isCancel(selected)) {
|
|
@@ -30,14 +41,21 @@ async function runResumeSession(opts) {
|
|
|
30
41
|
return;
|
|
31
42
|
}
|
|
32
43
|
sessionId = selected;
|
|
44
|
+
const picked = sessions.find((s) => s.sessionId === sessionId);
|
|
45
|
+
dir = picked?.dir;
|
|
46
|
+
agent = picked?.agent;
|
|
47
|
+
}
|
|
48
|
+
if (!dir) {
|
|
49
|
+
const input = await p.text({ message: 'Working directory', initialValue: process.cwd() });
|
|
50
|
+
if (p.isCancel(input)) {
|
|
51
|
+
p.cancel('Cancelled');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
dir = input;
|
|
33
55
|
}
|
|
34
|
-
// Get prompt
|
|
35
56
|
let prompt = opts.prompt;
|
|
36
57
|
if (!prompt) {
|
|
37
|
-
const input = await p.text({
|
|
38
|
-
message: 'Enter prompt to continue',
|
|
39
|
-
placeholder: 'Continue with...',
|
|
40
|
-
});
|
|
58
|
+
const input = await p.text({ message: 'Enter follow-up prompt', placeholder: 'Now also fix...' });
|
|
41
59
|
if (p.isCancel(input)) {
|
|
42
60
|
p.cancel('Cancelled');
|
|
43
61
|
return;
|
|
@@ -45,35 +63,23 @@ async function runResumeSession(opts) {
|
|
|
45
63
|
prompt = input;
|
|
46
64
|
}
|
|
47
65
|
const spinner = p.spinner();
|
|
48
|
-
spinner.start('
|
|
49
|
-
const result = await executeCodingTool('
|
|
50
|
-
sessionId,
|
|
51
|
-
prompt,
|
|
52
|
-
});
|
|
66
|
+
spinner.start('Sending prompt...');
|
|
67
|
+
const result = await executeCodingTool('coding_ask', { agent, prompt, dir, sessionId });
|
|
53
68
|
if (!result.success) {
|
|
54
69
|
spinner.stop(chalk.red('Failed'));
|
|
55
70
|
p.log.error(result.error || 'Unknown error');
|
|
56
71
|
return;
|
|
57
72
|
}
|
|
58
|
-
spinner.stop(chalk.green('
|
|
73
|
+
spinner.stop(chalk.green('Sent'));
|
|
59
74
|
const res = result.result;
|
|
60
|
-
p.note([
|
|
61
|
-
`${chalk.bold('Session ID:')} ${res.sessionId}`,
|
|
62
|
-
`${chalk.bold('PID:')} ${res.pid}`,
|
|
63
|
-
'',
|
|
64
|
-
chalk.dim(res.message),
|
|
65
|
-
].join('\n'), 'Session Resumed');
|
|
75
|
+
p.note([`${chalk.bold('Session ID:')} ${res.sessionId}`, `${chalk.bold('PID:')} ${res.pid}`, '', chalk.dim(res.message)].join('\n'), 'Prompt Sent');
|
|
66
76
|
}
|
|
67
77
|
export default function CodingResume({ options: opts }) {
|
|
68
78
|
const { exit } = useApp();
|
|
69
79
|
useEffect(() => {
|
|
70
80
|
runResumeSession(opts)
|
|
71
|
-
.catch((err) =>
|
|
72
|
-
|
|
73
|
-
})
|
|
74
|
-
.finally(() => {
|
|
75
|
-
setTimeout(() => exit(), 100);
|
|
76
|
-
});
|
|
81
|
+
.catch((err) => p.log.error(err instanceof Error ? err.message : 'Unknown error'))
|
|
82
|
+
.finally(() => setTimeout(() => exit(), 100));
|
|
77
83
|
}, [opts, exit]);
|
|
78
84
|
return null;
|
|
79
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/commands/coding/resume.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,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/commands/coding/resume.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/setup.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAQtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/coding/setup.tsx"],"names":[],"mappings":"AAIA,OAAO,GAAG,MAAM,KAAK,CAAC;AAQtB,eAAO,MAAM,OAAO,oCAAiB,CAAC;AAEtC,KAAK,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CACnC,CAAC;AAuIF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,MAAM,EAAE,KAAK,QAchD"}
|