@coralai/sps-cli 0.45.0 → 0.45.1

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.
@@ -7,8 +7,8 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
9
  <link href="https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
10
- <script type="module" crossorigin src="/assets/index-COKveGOw.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-DTOYQgOY.css">
10
+ <script type="module" crossorigin src="/assets/index-BsHLiTM2.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-BGs71Um2.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * @module console-server/routes/chat
3
- * @description Chat sessions:spawn `sps agent` 做一次性 prompt,结果缓存到内存 session
3
+ * @description Chat sessions with real-time streaming
4
4
  *
5
- * 简化版(M5 v1):
6
- * - 无流式 SSE(ACP daemon 集成留 v0.45)
7
- * - 每个 session 是一个 list of messages(user + assistant),持久化在 ~/.coral/chat-sessions/
8
- * - POST messages → spawnCliSync("agent", prompt) → assistant reply → append
9
- * - SSE endpoint 只做"消息变更"通知
5
+ * 流式策略:
6
+ * - POST /sessions/:id/messages:立刻持久化 user msg,返回 user msg + pending assistantId
7
+ * - 异步 spawn sps agent,stdout chunk 逐份推 chat.message.chunk(带 assistantId)
8
+ * - 完成时推 chat.message.complete
9
+ * - 失败推 chat.message.complete(role=error)
10
+ *
11
+ * 前端按 assistantId 累积 chunk,组装完整消息。
10
12
  */
11
13
  import { Hono } from 'hono';
12
14
  import { Logger } from '../../core/logger.js';
@@ -15,6 +17,7 @@ export interface ChatMessage {
15
17
  role: 'user' | 'assistant' | 'error';
16
18
  content: string;
17
19
  ts: string;
20
+ status?: 'streaming' | 'complete' | 'error';
18
21
  }
19
22
  export declare function createChatRoute(log: Logger): Hono;
20
23
  export declare function createChatStreamRoute(): Hono;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/console-server/routes/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAO9C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAiED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA8GjD;AAGD,wBAAgB,qBAAqB,IAAI,IAAI,CAuD5C"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/console-server/routes/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAM9C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;CAC7C;AAgMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA+EjD;AAGD,wBAAgB,qBAAqB,IAAI,IAAI,CAoE5C"}
@@ -1,18 +1,20 @@
1
1
  /**
2
2
  * @module console-server/routes/chat
3
- * @description Chat sessions:spawn `sps agent` 做一次性 prompt,结果缓存到内存 session
3
+ * @description Chat sessions with real-time streaming
4
4
  *
5
- * 简化版(M5 v1):
6
- * - 无流式 SSE(ACP daemon 集成留 v0.45)
7
- * - 每个 session 是一个 list of messages(user + assistant),持久化在 ~/.coral/chat-sessions/
8
- * - POST messages → spawnCliSync("agent", prompt) → assistant reply → append
9
- * - SSE endpoint 只做"消息变更"通知
5
+ * 流式策略:
6
+ * - POST /sessions/:id/messages:立刻持久化 user msg,返回 user msg + pending assistantId
7
+ * - 异步 spawn sps agent,stdout chunk 逐份推 chat.message.chunk(带 assistantId)
8
+ * - 完成时推 chat.message.complete
9
+ * - 失败推 chat.message.complete(role=error)
10
+ *
11
+ * 前端按 assistantId 累积 chunk,组装完整消息。
10
12
  */
11
13
  import { Hono } from 'hono';
12
14
  import { randomUUID } from 'node:crypto';
15
+ import { spawn } from 'node:child_process';
13
16
  import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync, } from 'node:fs';
14
17
  import { resolve } from 'node:path';
15
- import { spawnCliSync } from '../lib/spawnCli.js';
16
18
  import { eventBus } from '../sse/eventBus.js';
17
19
  const HOME = process.env.HOME || '/home/coral';
18
20
  const SESSIONS_DIR = resolve(HOME, '.coral', 'chat-sessions');
@@ -67,11 +69,128 @@ function formatTitle(firstMessage) {
67
69
  const clean = firstMessage.replace(/\s+/g, ' ').trim();
68
70
  return clean.length > 60 ? `${clean.slice(0, 57)}...` : clean;
69
71
  }
72
+ /**
73
+ * 清理终端 ANSI escape + 回车 + spinner 字符,保留纯文本。
74
+ */
75
+ const SPINNER_CHARS = new Set(['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']);
76
+ function cleanAnsi(raw) {
77
+ let s = raw.replace(/\u001b\[[0-9;?]*[a-zA-Z]/g, '');
78
+ s = s.replace(/\r(?!\n)/g, '');
79
+ s = Array.from(s).filter((ch) => !SPINNER_CHARS.has(ch)).join('');
80
+ return s;
81
+ }
82
+ /**
83
+ * Logger 输出的系统行([agent] / [setup] 等),不给用户看。
84
+ */
85
+ function isSystemLine(line) {
86
+ const cleaned = line.trim();
87
+ if (!cleaned)
88
+ return true;
89
+ if (/^\d{4}-\d{2}-\d{2}[T ][\d:.]+Z?\s+\[(agent|setup|ACP|console|skill|worker-\d+)\]/i.test(cleaned))
90
+ return true;
91
+ if (cleaned.startsWith('(node:') || cleaned.startsWith('Warning:'))
92
+ return true;
93
+ return false;
94
+ }
95
+ function cliEntry() {
96
+ return { node: process.argv[0] ?? 'node', entry: process.argv[1] ?? 'sps' };
97
+ }
98
+ function streamAssistantResponse(sessionId, assistantId, userContent, log) {
99
+ const { node, entry } = cliEntry();
100
+ log.info(`chat[${sessionId}]: spawning sps agent for ${assistantId}`);
101
+ const child = spawn(node, [entry, 'agent', userContent], {
102
+ stdio: ['ignore', 'pipe', 'pipe'],
103
+ env: {
104
+ ...process.env,
105
+ NODE_NO_WARNINGS: '1',
106
+ FORCE_COLOR: '0',
107
+ NO_COLOR: '1',
108
+ },
109
+ });
110
+ let accumulated = '';
111
+ let stderr = '';
112
+ let lineBuffer = '';
113
+ const emitChunk = (chunk) => {
114
+ if (!chunk)
115
+ return;
116
+ accumulated += chunk;
117
+ eventBus.publish('chat.message.chunk', {
118
+ sessionId,
119
+ assistantId,
120
+ chunk,
121
+ accumulated,
122
+ });
123
+ };
124
+ child.stdout?.on('data', (d) => {
125
+ const raw = d.toString('utf-8');
126
+ const cleaned = cleanAnsi(raw);
127
+ lineBuffer += cleaned;
128
+ const lines = lineBuffer.split('\n');
129
+ lineBuffer = lines.pop() ?? '';
130
+ const keep = lines.filter((line) => !isSystemLine(line));
131
+ if (keep.length > 0)
132
+ emitChunk(keep.join('\n') + '\n');
133
+ });
134
+ child.stderr?.on('data', (d) => {
135
+ stderr += d.toString('utf-8');
136
+ });
137
+ child.on('close', (code) => {
138
+ if (lineBuffer && !isSystemLine(lineBuffer))
139
+ emitChunk(lineBuffer);
140
+ const session = readSession(sessionId);
141
+ if (!session)
142
+ return;
143
+ const finalContent = accumulated.trim() || (code === 0 ? '(no output)' : '');
144
+ const ts = new Date().toISOString();
145
+ const msg = code === 0
146
+ ? { id: assistantId, role: 'assistant', content: finalContent, ts, status: 'complete' }
147
+ : {
148
+ id: assistantId,
149
+ role: 'error',
150
+ content: stderr.trim() || `sps agent exit ${code}`,
151
+ ts,
152
+ status: 'error',
153
+ };
154
+ session.messages.push(msg);
155
+ session.lastMessageAt = ts;
156
+ session.messageCount = session.messages.length;
157
+ writeSession(session);
158
+ eventBus.publish('chat.message.complete', {
159
+ sessionId,
160
+ assistantId,
161
+ message: msg,
162
+ });
163
+ if (code === 0)
164
+ log.ok(`chat[${sessionId}]: assistant complete (${accumulated.length} chars)`);
165
+ else
166
+ log.warn(`chat[${sessionId}]: assistant error (exit ${code})`);
167
+ });
168
+ child.on('error', (err) => {
169
+ const session = readSession(sessionId);
170
+ if (!session)
171
+ return;
172
+ const errMsg = {
173
+ id: assistantId,
174
+ role: 'error',
175
+ content: err.message,
176
+ ts: new Date().toISOString(),
177
+ status: 'error',
178
+ };
179
+ session.messages.push(errMsg);
180
+ session.messageCount = session.messages.length;
181
+ writeSession(session);
182
+ eventBus.publish('chat.message.complete', {
183
+ sessionId,
184
+ assistantId,
185
+ message: errMsg,
186
+ });
187
+ log.warn(`chat[${sessionId}]: spawn error ${err.message}`);
188
+ });
189
+ }
70
190
  export function createChatRoute(log) {
71
191
  const app = new Hono();
72
192
  app.get('/sessions', (c) => {
73
- const sessions = listSessions().map(summarize);
74
- return c.json({ data: sessions });
193
+ return c.json({ data: listSessions().map(summarize) });
75
194
  });
76
195
  app.post('/sessions', async (c) => {
77
196
  const body = await c.req.json().catch(() => ({}));
@@ -91,9 +210,8 @@ export function createChatRoute(log) {
91
210
  app.get('/sessions/:id', (c) => {
92
211
  const id = c.req.param('id');
93
212
  const s = readSession(id);
94
- if (!s) {
213
+ if (!s)
95
214
  return c.json({ type: 'not-found', title: 'Session not found', status: 404 }, 404);
96
- }
97
215
  return c.json(s);
98
216
  });
99
217
  app.delete('/sessions/:id', (c) => {
@@ -104,13 +222,17 @@ export function createChatRoute(log) {
104
222
  eventBus.publish('chat.session.deleted', { sessionId: id });
105
223
  return c.body(null, 204);
106
224
  });
225
+ /**
226
+ * POST messages: 非阻塞
227
+ * 1. 持久化 user msg → 立即返回 user + assistantId (202)
228
+ * 2. 后台 spawn sps agent,SSE 推 chunk + complete
229
+ */
107
230
  app.post('/sessions/:id/messages', async (c) => {
108
231
  const id = c.req.param('id');
109
232
  const s = readSession(id);
110
- if (!s) {
233
+ if (!s)
111
234
  return c.json({ type: 'not-found', title: 'Session not found', status: 404 }, 404);
112
- }
113
- const body = await c.req.json().catch(() => null);
235
+ const body = (await c.req.json().catch(() => null));
114
236
  if (!body?.content || typeof body.content !== 'string') {
115
237
  return c.json({ type: 'validation', title: 'content required', status: 422 }, 422);
116
238
  }
@@ -119,6 +241,7 @@ export function createChatRoute(log) {
119
241
  role: 'user',
120
242
  content: body.content,
121
243
  ts: new Date().toISOString(),
244
+ status: 'complete',
122
245
  };
123
246
  s.messages.push(userMsg);
124
247
  s.lastMessageAt = userMsg.ts;
@@ -127,46 +250,14 @@ export function createChatRoute(log) {
127
250
  s.title = formatTitle(body.content);
128
251
  writeSession(s);
129
252
  eventBus.publish('chat.message', { sessionId: id, message: userMsg });
130
- // sps agent 跑一次 prompt(非流式)
131
- log.info(`chat[${id}]: spawning sps agent`);
132
- const result = await spawnCliSync(['agent', body.content], { timeoutMs: 5 * 60 * 1000 });
133
- let assistant;
134
- if (result.exitCode === 0) {
135
- // 尝试去掉 log banner(匹配 Logger 输出的时间戳前缀)
136
- const cleaned = result.stdout
137
- .split('\n')
138
- .filter((line) => !/^\u001b?\[?\d{4}-\d{2}-\d{2}.*\[(agent|setup|ACP)\]/.test(line))
139
- .join('\n')
140
- .trim();
141
- assistant = {
142
- id: randomUUID(),
143
- role: 'assistant',
144
- content: cleaned || result.stdout.trim() || '(no output)',
145
- ts: new Date().toISOString(),
146
- };
147
- }
148
- else {
149
- assistant = {
150
- id: randomUUID(),
151
- role: 'error',
152
- content: result.stderr.trim() || result.stdout.trim() || `agent exit ${result.exitCode}`,
153
- ts: new Date().toISOString(),
154
- };
155
- }
156
- s.messages.push(assistant);
157
- s.lastMessageAt = assistant.ts;
158
- s.messageCount = s.messages.length;
159
- writeSession(s);
160
- eventBus.publish('chat.message', { sessionId: id, message: assistant });
161
- return c.json({ user: userMsg, assistant });
162
- });
163
- app.get('/sessions/:id/meta', (c) => {
164
- const id = c.req.param('id');
165
- const s = readSession(id);
166
- if (!s) {
167
- return c.json({ type: 'not-found', title: 'Session not found', status: 404 }, 404);
168
- }
169
- return c.json(summarize(s));
253
+ const assistantId = randomUUID();
254
+ eventBus.publish('chat.message.pending', {
255
+ sessionId: id,
256
+ assistantId,
257
+ ts: new Date().toISOString(),
258
+ });
259
+ streamAssistantResponse(id, assistantId, body.content, log);
260
+ return c.json({ user: userMsg, assistantId }, 202);
170
261
  });
171
262
  return app;
172
263
  }
@@ -189,14 +280,24 @@ export function createChatStreamRoute() {
189
280
  closed = true;
190
281
  }
191
282
  };
192
- const onChatMessage = (data) => {
193
- if (typeof data !== 'object' ||
194
- data === null ||
195
- data.sessionId !== sessionId)
196
- return;
197
- send('chat.message', data);
198
- };
199
- eventBus.on('chat.message', onChatMessage);
283
+ const eventTypes = [
284
+ 'chat.message',
285
+ 'chat.message.pending',
286
+ 'chat.message.chunk',
287
+ 'chat.message.complete',
288
+ ];
289
+ const handlers = [];
290
+ for (const event of eventTypes) {
291
+ const fn = (data) => {
292
+ if (typeof data !== 'object' ||
293
+ data === null ||
294
+ data.sessionId !== sessionId)
295
+ return;
296
+ send(event, data);
297
+ };
298
+ eventBus.on(event, fn);
299
+ handlers.push({ event, fn });
300
+ }
200
301
  const heartbeat = setInterval(() => {
201
302
  if (closed)
202
303
  return;
@@ -209,7 +310,8 @@ export function createChatStreamRoute() {
209
310
  }, 15_000);
210
311
  c.req.raw.signal?.addEventListener('abort', () => {
211
312
  closed = true;
212
- eventBus.off('chat.message', onChatMessage);
313
+ for (const h of handlers)
314
+ eventBus.off(h.event, h.fn);
213
315
  clearInterval(heartbeat);
214
316
  try {
215
317
  controller.close();
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/console-server/routes/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/console-server/routes/chat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralai/sps-cli",
3
- "version": "0.45.0",
3
+ "version": "0.45.1",
4
4
  "description": "SPS CLI — AI-driven development pipeline orchestrator",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",