@coralai/sps-cli 0.65.93 → 0.65.95

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/console/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA6ChD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA2BD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAyT9B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAwC1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/console/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA8ChD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA2BD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAoU9B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAwC1D"}
@@ -24,45 +24,48 @@ import { serveStatic } from '@hono/node-server/serve-static';
24
24
  import { Hono } from 'hono';
25
25
  import { getCookie, setCookie } from 'hono/cookie';
26
26
  import { cors } from 'hono/cors';
27
+ import { spawnArtRun } from '../core/art/artRunLauncher.js';
28
+ import { ArtRunService } from '../core/art/artRunService.js';
29
+ import { workspacesRoot } from '../core/workspacePaths.js';
27
30
  import { startChokidarWatchers } from '../infra/chokidarWatchers.js';
28
31
  import { SseEventBus } from '../infra/sseBus.js';
32
+ import { startWorkspaceWatcher } from '../infra/workspaceWatcher.js';
29
33
  import { createContainer } from '../services/container.js';
34
+ import { createArtRoute } from './routes/art.js';
35
+ import { createArtPipelineRoute } from './routes/artPipeline.js';
36
+ import { createAuditRoute } from './routes/audit.js';
30
37
  import { createCardsRoute } from './routes/cards.js';
38
+ import { createChannelsRoute } from './routes/channels.js';
31
39
  import { createChatRoute, createChatStreamRoute } from './routes/chat.js';
40
+ import { createFlowRoute } from './routes/flow.js';
32
41
  import { createFsRoute } from './routes/fs.js';
33
- import { createPreviewRoute, previewEnabled } from './routes/preview.js';
42
+ import { createGenRoute } from './routes/gen.js';
43
+ import { createGraphRoute } from './routes/graph.js';
44
+ import { createHealthRoute } from './routes/health.js';
34
45
  import { createLogsRoute, createLogsStreamRoute } from './routes/logs.js';
46
+ import { createMcpToolsRoute } from './routes/mcpTools.js';
47
+ import { createMediaProvidersRoute } from './routes/mediaProviders.js';
48
+ import { createMemoryRoute } from './routes/memory.js';
49
+ import { createModelConfigRoute } from './routes/modelConfig.js';
35
50
  import { createPipelineRoute } from './routes/pipeline.js';
36
- import { createFlowRoute } from './routes/flow.js';
37
- import { createProjectsRoute } from './routes/projects.js';
38
- import { createTemplatesRoute } from './routes/templates.js';
39
- import { createProjectConfigRoute } from './routes/projectConfig.js';
40
- import { createAuditRoute } from './routes/audit.js';
51
+ import { createPlayRoute } from './routes/play.js';
52
+ import { createPreviewRoute, previewEnabled } from './routes/preview.js';
41
53
  import { createProcessesRoute } from './routes/processes.js';
42
- import { createGenRoute } from './routes/gen.js';
43
- import { createArtRoute } from './routes/art.js';
44
- import { createArtPipelineRoute } from './routes/artPipeline.js';
45
- import { ArtRunService } from '../core/art/artRunService.js';
46
- import { spawnArtRun } from '../core/art/artRunLauncher.js';
47
- import { createChannelsRoute } from './routes/channels.js';
48
- import { createSubagentRoute } from './routes/subagent.js';
49
- import { createTtsRoute } from './routes/tts.js';
50
- import { createGraphRoute } from './routes/graph.js';
54
+ import { createProjectConfigRoute } from './routes/projectConfig.js';
55
+ import { createProjectsRoute } from './routes/projects.js';
51
56
  import { createPromptsRoute } from './routes/prompts.js';
57
+ import { createProvidersRoute } from './routes/providers.js';
52
58
  import { createRulesRoute } from './routes/rules.js';
53
- import { createPlayRoute } from './routes/play.js';
54
59
  import { createSkillsRoute } from './routes/skills.js';
55
60
  import { createStorageRoute } from './routes/storage.js';
61
+ import { createSubagentRoute } from './routes/subagent.js';
56
62
  import { createSystemRoute } from './routes/system.js';
57
- import { createMemoryRoute } from './routes/memory.js';
58
- import { createProvidersRoute } from './routes/providers.js';
59
- import { createMediaProvidersRoute } from './routes/mediaProviders.js';
60
- import { createModelConfigRoute } from './routes/modelConfig.js';
61
- import { createHealthRoute } from './routes/health.js';
62
- import { createMcpToolsRoute } from './routes/mcpTools.js';
63
+ import { createTemplatesRoute } from './routes/templates.js';
64
+ import { createTtsRoute } from './routes/tts.js';
63
65
  import { createWorkersAggregateRoute, createWorkersRoute } from './routes/workers.js';
64
66
  import { createServiceAuthMiddleware, getCaller, withApiVersionHeader } from './serviceAuth.js';
65
67
  import { createProjectStreamRoute } from './sse/projectStream.js';
68
+ import { createWorkspaceStreamRoute } from './sse/workspaceStream.js';
66
69
  const HOME = process.env.HOME || '/home/coral';
67
70
  const CORAL_ROOT = resolve(HOME, '.coral');
68
71
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -266,6 +269,7 @@ export async function startConsoleServer(opts) {
266
269
  app.get('/api/memory-cfg', (c) => c.json({ viewerUrl: process.env.SPS_CONSOLE_MEMORY_VIEWER_URL || '' }));
267
270
  // ─── SSE ─────────────────────────────────────────────────────────────
268
271
  app.route('/stream/projects', createProjectStreamRoute(bus));
272
+ app.route('/stream/workspace', createWorkspaceStreamRoute(bus));
269
273
  app.route('/stream/logs', createLogsStreamRoute(log));
270
274
  app.route('/stream/chat', createChatStreamRoute());
271
275
  app.route('/stream/heartbeat', createHeartbeatRoute(version));
@@ -344,7 +348,17 @@ export async function startConsoleServer(opts) {
344
348
  catch (err) {
345
349
  log.warn(`watcher setup failed: ${err instanceof Error ? err.message : String(err)}`);
346
350
  }
351
+ // 工作区变更监听 → workspace.changed(供 /stream/workspace 订阅)。
352
+ // 🔴 起不来**不该拖垮 console**:它是加速器,不是正确性来源 —— 订阅方本就有对账兜底。
353
+ let workspaceWatcher = null;
354
+ void startWorkspaceWatcher({ root: workspacesRoot(), bus, log: (l) => log.info(l) })
355
+ .then((h) => {
356
+ workspaceWatcher = h;
357
+ })
358
+ .catch((err) => log.warn(`workspace watcher setup failed: ${err instanceof Error ? err.message : String(err)}`));
347
359
  const close = async () => {
360
+ if (workspaceWatcher)
361
+ await workspaceWatcher.close();
348
362
  if (watcherHandles)
349
363
  await watcherHandles.close();
350
364
  const s = server;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/console/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/console/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"play.d.ts","sourceRoot":"","sources":["../../../src/console/routes/play.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAkBvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAmGzD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,CAmBtH"}
1
+ {"version":3,"file":"play.d.ts","sourceRoot":"","sources":["../../../src/console/routes/play.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAkBvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAmGzD;AAiBD,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,CAmBtH"}
@@ -19,6 +19,7 @@
19
19
  import { createReadStream } from 'node:fs';
20
20
  import { stat } from 'node:fs/promises';
21
21
  import { extname, join } from 'node:path';
22
+ import { Readable } from 'node:stream';
22
23
  import { Hono } from 'hono';
23
24
  import { isRealUnderRoot } from '../../core/pathFence.js';
24
25
  import { verifyPlayToken } from '../../providers/serve/playToken.js';
@@ -119,20 +120,34 @@ export function createPlayRoute(deps) {
119
120
  return c.body(null, 416, { ...headers, 'content-range': `bytes */${st.size}` });
120
121
  }
121
122
  if (range) {
122
- const stream = createReadStream(target, { start: range.start, end: range.end });
123
+ const stream = toWeb(createReadStream(target, { start: range.start, end: range.end }));
123
124
  return c.body(stream, 206, {
124
125
  ...headers,
125
126
  'content-range': `bytes ${range.start}-${range.end}/${st.size}`,
126
127
  'content-length': String(range.end - range.start + 1),
127
128
  });
128
129
  }
129
- return c.body(createReadStream(target), 200, {
130
+ return c.body(toWeb(createReadStream(target)), 200, {
130
131
  ...headers,
131
132
  'content-length': String(st.size),
132
133
  });
133
134
  });
134
135
  return app;
135
136
  }
137
+ /**
138
+ * Node 流 → web 流。
139
+ *
140
+ * 🔴 **不能把 Node 流强转成 `ReadableStream` 塞给 `c.body()`。**
141
+ * 实测(2026-08-19 上线当天):`createReadStream(...) as unknown as ReadableStream` 类型是绿的,
142
+ * 运行时 undici 会抛 `ERR_INVALID_STATE: ReadableStream is already closed`,
143
+ * 而且是**未捕获异常 ⇒ 整个 console 进程退出**(所有租户一起断)。
144
+ * 表现是"**响应先回了 200,然后服务挂掉**" —— 日志里那条 200 让人以为这次请求是成功的。
145
+ * > 判据:**`as unknown as X` 是把类型系统关掉,不是把类型改对。**
146
+ * > 它压掉的那个错误会原地变成运行时错误,而运行时错误的落点可能比编译错误远得多。
147
+ */
148
+ function toWeb(stream) {
149
+ return Readable.toWeb(stream);
150
+ }
136
151
  /** 只支持单段 `bytes=a-b` / `bytes=a-` / `bytes=-n`。多段不支持 —— 回 null 当整份发,不是错。 */
137
152
  export function parseRange(header, size) {
138
153
  if (!header)
@@ -1 +1 @@
1
- {"version":3,"file":"play.js","sourceRoot":"","sources":["../../../src/console/routes/play.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"play.js","sourceRoot":"","sources":["../../../src/console/routes/play.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module console/sse/workspaceStream
3
+ * @description `/stream/workspace` —— 工作区变更的**订阅流**。谁都能连,sps 不认识订阅方。
4
+ *
5
+ * @layer console
6
+ *
7
+ * 🔴 **订阅式,不是推送式**:sps 不配置消费者、不存回调地址、不知道有几个人在听;
8
+ * 断了不管,消费者自己重连。「推给某个服务」要求 sps 知道那个服务存在 —— 那就是耦合。
9
+ *
10
+ * 🔴 **过滤器由订阅方给**(`?project=` / `?path=` 前缀),sps 不预设谁关心什么。
11
+ *
12
+ * 🔴 **它会丢事件,而且不打算做成可靠投递:**
13
+ * `Last-Event-ID` 只覆盖**断连**(内存环形缓冲),覆盖不了**重启**与"订阅晚了"。
14
+ * ⇒ 订阅方必须保留自己的对账/轮询兜底。
15
+ * > 判据:**事件是加速器,对账才是正确性来源** —— 它坏掉时的表现是"没有事件",
16
+ * > 而那和"没有变化"长得一模一样。
17
+ */
18
+ import { Hono } from 'hono';
19
+ import type { SseBusEvent, SseEventBus } from '../../infra/sseBus.js';
20
+ /** 只放行 `workspace.changed`,并按订阅方给的过滤器收窄。 */
21
+ export declare function matches(record: SseBusEvent, project?: string, pathPrefix?: string): boolean;
22
+ export declare function createWorkspaceStreamRoute(bus: SseEventBus): Hono;
23
+ //# sourceMappingURL=workspaceStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceStream.d.ts","sourceRoot":"","sources":["../../../src/console/sse/workspaceStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQtE,4CAA4C;AAC5C,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAM3F;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA0DjE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @module console/sse/workspaceStream
3
+ * @description `/stream/workspace` —— 工作区变更的**订阅流**。谁都能连,sps 不认识订阅方。
4
+ *
5
+ * @layer console
6
+ *
7
+ * 🔴 **订阅式,不是推送式**:sps 不配置消费者、不存回调地址、不知道有几个人在听;
8
+ * 断了不管,消费者自己重连。「推给某个服务」要求 sps 知道那个服务存在 —— 那就是耦合。
9
+ *
10
+ * 🔴 **过滤器由订阅方给**(`?project=` / `?path=` 前缀),sps 不预设谁关心什么。
11
+ *
12
+ * 🔴 **它会丢事件,而且不打算做成可靠投递:**
13
+ * `Last-Event-ID` 只覆盖**断连**(内存环形缓冲),覆盖不了**重启**与"订阅晚了"。
14
+ * ⇒ 订阅方必须保留自己的对账/轮询兜底。
15
+ * > 判据:**事件是加速器,对账才是正确性来源** —— 它坏掉时的表现是"没有事件",
16
+ * > 而那和"没有变化"长得一模一样。
17
+ */
18
+ import { Hono } from 'hono';
19
+ const HEARTBEAT_MS = 15_000;
20
+ function formatSse(id, event, data) {
21
+ return `id: ${id}\nevent: ${event}\ndata: ${JSON.stringify(data)}\n\n`;
22
+ }
23
+ /** 只放行 `workspace.changed`,并按订阅方给的过滤器收窄。 */
24
+ export function matches(record, project, pathPrefix) {
25
+ if (record.event !== 'workspace.changed')
26
+ return false;
27
+ const d = record.data;
28
+ if (project && d?.project !== project)
29
+ return false;
30
+ if (pathPrefix && !(d?.path ?? '').startsWith(pathPrefix))
31
+ return false;
32
+ return true;
33
+ }
34
+ export function createWorkspaceStreamRoute(bus) {
35
+ const app = new Hono();
36
+ app.get('/', (c) => {
37
+ const project = c.req.query('project') || undefined;
38
+ const pathPrefix = c.req.query('path') || undefined;
39
+ const lastEventId = Number.parseInt(c.req.header('last-event-id') ?? '0', 10) || 0;
40
+ const stream = new ReadableStream({
41
+ start(controller) {
42
+ const enc = new TextEncoder();
43
+ let closed = false;
44
+ const safeWrite = (chunk) => {
45
+ if (closed)
46
+ return;
47
+ try {
48
+ controller.enqueue(enc.encode(chunk));
49
+ }
50
+ catch {
51
+ closed = true;
52
+ }
53
+ };
54
+ // 断线补偿:只补**缓冲窗口内**的。补不齐是已知的,不假装补齐。
55
+ if (lastEventId > 0) {
56
+ for (const r of bus.since(lastEventId)) {
57
+ if (matches(r, project, pathPrefix))
58
+ safeWrite(formatSse(r.id, r.event, r.data));
59
+ }
60
+ }
61
+ const cancel = bus.subscribeRaw((record) => {
62
+ if (matches(record, project, pathPrefix))
63
+ safeWrite(formatSse(record.id, record.event, record.data));
64
+ });
65
+ const heartbeat = setInterval(() => safeWrite(`: heartbeat ${Date.now()}\n\n`), HEARTBEAT_MS);
66
+ c.req.raw.signal?.addEventListener('abort', () => {
67
+ closed = true;
68
+ cancel();
69
+ clearInterval(heartbeat);
70
+ try {
71
+ controller.close();
72
+ }
73
+ catch {
74
+ /* ignore */
75
+ }
76
+ });
77
+ },
78
+ });
79
+ return new Response(stream, {
80
+ headers: {
81
+ 'Content-Type': 'text/event-stream',
82
+ 'Cache-Control': 'no-cache, no-transform',
83
+ Connection: 'keep-alive',
84
+ 'X-Accel-Buffering': 'no',
85
+ },
86
+ });
87
+ });
88
+ return app;
89
+ }
90
+ //# sourceMappingURL=workspaceStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceStream.js","sourceRoot":"","sources":["../../../src/console/sse/workspaceStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { DomainEventBus } from '../shared/domainEvents.js';
2
+ /**
3
+ * 本节点标识。进事件是为了让**分叉可见**,不是为了排序 ——
4
+ * 同一个项目本来就只应该在一个节点上(节点亲和,见 object-storage §2.1.0);
5
+ * 两个节点对同一项目发事件说明**已经出错了**,订阅方该当故障信号报,别按时间戳合并。
6
+ */
7
+ export declare function nodeId(): string;
8
+ export interface WorkspaceWatcherOptions {
9
+ root: string;
10
+ bus: DomainEventBus;
11
+ log?: (line: string) => void;
12
+ }
13
+ export interface WorkspaceWatcherHandle {
14
+ close(): Promise<void>;
15
+ /** 当前实际监听的路径数 —— 监听面要**可观测**,否则"悄悄没在听"看不出来。 */
16
+ watching(): number;
17
+ }
18
+ /**
19
+ * 起监听。**同步阻塞地建 watcher 列表,之后异步跑**。
20
+ *
21
+ * ⚠️ 只在**已存在**的路径上建 watcher:chokidar 对不存在的路径会一直等,
22
+ * 而"等着"和"在听"从外面看一模一样。新项目要等下一次 `refresh()`。
23
+ */
24
+ export declare function startWorkspaceWatcher(opts: WorkspaceWatcherOptions): Promise<WorkspaceWatcherHandle>;
25
+ //# sourceMappingURL=workspaceWatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceWatcher.d.ts","sourceRoot":"","sources":["../../src/infra/workspaceWatcher.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,+CAA+C;IAC/C,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA+C1G"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @module infra/workspaceWatcher
3
+ * @description 工作区变更监听 → `workspace.changed` 事件。给**订阅方**用,sps 不推给任何人。
4
+ *
5
+ * @layer infra
6
+ *
7
+ * 🔴 **订阅式,不是推送式**(Eddy 2026-08-19 定):
8
+ * 「推给 studio」要求 sps 知道有个叫 studio 的东西并存它的地址 —— **那就是耦合本身**。
9
+ * 这里只产出事件;谁来听、听几个、断了要不要重连,sps 一概不知道也不配置。
10
+ *
11
+ * 🔴 **事件只说事实,不说判断:**
12
+ * ```
13
+ * ✅ "项目 P 的 docs/build-manifest.json 被写了"
14
+ * ❌ "项目 P 可以开始制作了" ← 产品判断,留在订阅方
15
+ * ```
16
+ * 一旦 sps 开始回答后者,"什么算 ready"就归它拥有了 —— 那是产品知识。
17
+ *
18
+ * 🔴 **事件是加速器,不是正确性来源。** 它会丢(重启 / 断连 / 订阅晚了),
19
+ * 而丢了的表现是"没有事件",与"没有变化"**长得一模一样**。
20
+ * ⇒ 订阅方必须保留自己的对账/轮询兜底;**别把它做成需要可靠投递的东西**。
21
+ * (同族:sidecar 那条注释 —— 文件事件会漏,漏掉零报错,对账每轮自愈。)
22
+ *
23
+ * ⚠️ **不提供全树监听**:195 个项目全树 watch 的代价不付。只盯**已声明的同步范围**
24
+ * (`~/.coral/sync-scope.json`),订阅方的过滤器在其上再收窄。
25
+ * 要盯范围外的路径 ⇒ 先把它加进声明,而不是把监听面放开。
26
+ */
27
+ import { existsSync } from 'node:fs';
28
+ import { hostname } from 'node:os';
29
+ import { join, relative, sep } from 'node:path';
30
+ import chokidar from 'chokidar';
31
+ import { discoverProjects } from '../providers/storage/scanWorkspace.js';
32
+ import { readSyncScope, scopeForProduct } from '../providers/storage/syncScope.js';
33
+ /**
34
+ * 本节点标识。进事件是为了让**分叉可见**,不是为了排序 ——
35
+ * 同一个项目本来就只应该在一个节点上(节点亲和,见 object-storage §2.1.0);
36
+ * 两个节点对同一项目发事件说明**已经出错了**,订阅方该当故障信号报,别按时间戳合并。
37
+ */
38
+ export function nodeId() {
39
+ return process.env.SPS_NODE_ID?.trim() || hostname();
40
+ }
41
+ /**
42
+ * 起监听。**同步阻塞地建 watcher 列表,之后异步跑**。
43
+ *
44
+ * ⚠️ 只在**已存在**的路径上建 watcher:chokidar 对不存在的路径会一直等,
45
+ * 而"等着"和"在听"从外面看一模一样。新项目要等下一次 `refresh()`。
46
+ */
47
+ export async function startWorkspaceWatcher(opts) {
48
+ const log = opts.log ?? (() => { });
49
+ const scope = readSyncScope();
50
+ const projects = await discoverProjects(opts.root);
51
+ const targets = [];
52
+ for (const p of projects) {
53
+ for (const entry of scopeForProduct(p.product, scope).include) {
54
+ const clean = entry.replace(/\/+$/, '');
55
+ const abs = join(p.abs, clean);
56
+ if (existsSync(abs))
57
+ targets.push({ abs, project: p.rel, projectAbs: p.abs });
58
+ }
59
+ }
60
+ const watchers = [];
61
+ const node = nodeId();
62
+ let seq = 0;
63
+ for (const t of targets) {
64
+ const w = chokidar.watch(t.abs, {
65
+ persistent: true,
66
+ ignoreInitial: true,
67
+ // 写到一半的文件不该触发事件 —— 订阅方读到半个 JSON 会归因成"文件坏了"
68
+ awaitWriteFinish: { stabilityThreshold: 200, pollInterval: 50 },
69
+ // 软链不跟随:跟随会把树外文件的变更当成本项目的动静
70
+ followSymlinks: false,
71
+ depth: 4,
72
+ });
73
+ const emit = (abs) => {
74
+ const rel = relative(t.projectAbs, abs).split(sep).join('/');
75
+ seq += 1;
76
+ // 只有事实:哪个项目、哪个相对路径、哪个节点、本节点内第几条
77
+ opts.bus.emit({ type: 'workspace.changed', project: t.project, path: rel, node, seq, ts: Date.now() });
78
+ };
79
+ w.on('add', emit).on('change', emit).on('unlink', emit);
80
+ w.on('error', (e) => log(`[workspace-watch] ${t.abs}: ${e instanceof Error ? e.message : String(e)}`));
81
+ watchers.push(w);
82
+ }
83
+ log(`[workspace-watch] 监听 ${targets.length} 个路径 · 节点 ${node}`);
84
+ return {
85
+ watching: () => targets.length,
86
+ async close() {
87
+ await Promise.all(watchers.map((w) => w.close().catch(() => { })));
88
+ },
89
+ };
90
+ }
91
+ //# sourceMappingURL=workspaceWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceWatcher.js","sourceRoot":"","sources":["../../src/infra/workspaceWatcher.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,6 @@ export type PathRejection = {
2
2
  code: 'PATH_BLOCKED';
3
3
  detail: string;
4
4
  };
5
- /**
6
- * @param rel 相对**服务根**的路径(已归一,不含前导斜杠)
7
- */
5
+ /** @param rel 相对**服务根**的路径(已归一,不含前导斜杠) */
8
6
  export declare function servablePath(rel: string): PathRejection | null;
9
7
  //# sourceMappingURL=servablePath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"servablePath.d.ts","sourceRoot":"","sources":["../../../src/providers/serve/servablePath.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiB9D"}
1
+ {"version":3,"file":"servablePath.d.ts","sourceRoot":"","sources":["../../../src/providers/serve/servablePath.ts"],"names":[],"mappings":"AA0CA,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgB9D"}
@@ -1,32 +1,43 @@
1
1
  /**
2
2
  * @module providers/serve/servablePath
3
- * @description **服务**路的**路径**判据。与 `servable`(内容判据)是**两条**,分开命名。
3
+ * @description **服务**路的**路径**判据。与 `servable`(内容判据)是两条,分开命名。
4
4
  *
5
5
  * @layer providers
6
6
  *
7
- * 🔴 **补这条的原因是一个真实的洞**(studio 2026-08-19 实测):
8
- * 我先做了内容闸(拒归档)就以为服务面守住了 —— `docs/PRD.md` **能取到 200**,
9
- * studio 自己的 `/play` 对同一路径是 404。
10
- * `docs/PRD.md` 是作者的产品设计文档,**31/31 个项目都有、路径可预测**。
11
- * > 判据:**"内容能不能给"和"这个路径该不该给"是两个问题** ——
12
- * > 一个归档判据全绿,不代表这个文件属于游戏运行时。
7
+ * 🔴🔴 **默认拒绝(扩展名白名单),不是默认放行(拦截名单)。**
8
+ * 第一版我写成了拦截名单 —— 而我自己在设计文档里写的是"服务面怕多发 用白名单"。
9
+ * studio gameforge 全量真实文件对拍,**按真实服务根重算后有 8 个判定相反**:
10
+ * ```
11
+ * .map × 4 sourcemap
12
+ * .test1 / .test2 / .test3 × 3 .bak-magenta × 1
13
+ * ```
14
+ * (初报 115 是拿**项目根**扫的,`.ts × 107` 全在有 `dist/` 的项目里、服务根够不着 ——
15
+ * **数字要按真实服务根算**;结论不变,但依据要说准。)
16
+ * > 判据:**项目树里会长出什么由 agent 决定 ⇒ 拦截名单必然追不上。**
17
+ * > `.test1` `.bak-magenta` 这种名字**谁也想不到**,而想不到的那个就是漏掉的那个。
13
18
  *
14
- * 🔴 方向:服务面**怕多发**(与发布同侧,与同步相反)⇒ 用**拒绝名单 + 结构性规则**,
15
- * 宁可拦错也不放过;拦错的表现是"少一个文件"(看得见),放过的表现是**内容被带走**(看不见)。
19
+ * 🔴 **点开头是结构性规则,不是名单**:它同时覆盖 `.claude/ .sps/ .codegraph/ .git/`
20
+ * 与 `.smoke-*.png / .preview.webp`,而且**结构性地覆盖将来新出现的点目录**。
21
+ * ⚠️ 将来若真有引擎要加载某个点文件(emscripten 的 `.data`/`.mem`):
22
+ * **做显式例外(放行那一个文件名),不要放宽这条规则**。
23
+ * 症状会是"资源加载不到",很容易让人顺手把结构性防线改成一份可枚举的名单 ——
24
+ * **而那正是它存在的理由的反面。**
16
25
  *
17
- * ⚠️ 名单会过期 —— 配套的是**拒绝时把路径报出去**,不是"尽量列全"。
26
+ * ⚠️ 无扩展名的文件也拒(扩展名会等于整个文件名,必然不在白名单里):
27
+ * 项目树里的无扩展名文件是脚本 / 数据 / 锁文件之类,不是运行时资源。
18
28
  */
19
29
  import { extname } from 'node:path';
20
- /** 顶层目录:不是游戏运行时需要的东西。 */
21
- const BLOCKED_TOP_DIRS = new Set(['docs', 'memory', 'scripts', 'node_modules', 'test', 'tests']);
22
- /** 具名文件:agent/作者的指令与内部产物,不该被玩家取走。 */
23
- const BLOCKED_NAMES = new Set([
24
- 'claude.md', 'agents.md', 'template.md', 'readme.md',
25
- 'package.json', 'package-lock.json', 'tsconfig.json',
30
+ /** 游戏运行**真正需要**的类型(studio `guardServedPath` 原文,照搬)。 */
31
+ const SERVE_EXT = new Set([
32
+ '.html', '.htm', '.js', '.mjs', '.cjs', '.css', '.json', '.wasm',
33
+ '.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg', '.ico', '.bmp', '.avif',
34
+ '.mp3', '.wav', '.ogg', '.m4a', '.aac', '.mp4', '.webm',
35
+ '.woff', '.woff2', '.ttf', '.otf',
36
+ '.glb', '.gltf', '.atlas', '.fnt', '.tmx', '.txt', '.csv', '.xml',
26
37
  ]);
27
- /**
28
- * @param rel 相对**服务根**的路径(已归一,不含前导斜杠)
29
- */
38
+ /** 目录段:不是游戏运行时需要的东西(白名单之外的第二道,便于给出更准确的拒绝原因)。 */
39
+ const BLOCKED_TOP_DIRS = new Set(['docs', 'memory', 'scripts', 'node_modules']);
40
+ /** @param rel 相对**服务根**的路径(已归一,不含前导斜杠) */
30
41
  export function servablePath(rel) {
31
42
  if (!rel)
32
43
  return { code: 'PATH_BLOCKED', detail: '空路径' };
@@ -34,20 +45,17 @@ export function servablePath(rel) {
34
45
  for (const s of segs) {
35
46
  if (!s || s === '..')
36
47
  return { code: 'PATH_BLOCKED', detail: `非法路径段:${rel}` };
37
- // 🔴 承重条款:`.claude/` `.sps/` `.git/` 全靠这一条。
38
- // 将来谁为了 `.well-known/` 放宽它,会在不知情下把这道门整个打开。
48
+ // 结构性规则 —— 见模块头,别把它换成可枚举名单
39
49
  if (s.startsWith('.'))
40
50
  return { code: 'PATH_BLOCKED', detail: `点开头路径段:${rel}` };
41
51
  }
42
52
  if (BLOCKED_TOP_DIRS.has(segs[0])) {
43
53
  return { code: 'PATH_BLOCKED', detail: `${segs[0]}/ 不是运行时内容:${rel}` };
44
54
  }
45
- const base = segs.at(-1).toLowerCase();
46
- if (BLOCKED_NAMES.has(base))
47
- return { code: 'PATH_BLOCKED', detail: `内部文件:${rel}` };
48
- // `.md` 一律不服务:游戏运行时不需要 markdown,而作者文档大多是 md
49
- if (extname(base) === '.md')
50
- return { code: 'PATH_BLOCKED', detail: `markdown 不属于运行时:${rel}` };
55
+ const ext = extname(segs.at(-1)).toLowerCase();
56
+ if (!SERVE_EXT.has(ext)) {
57
+ return { code: 'PATH_BLOCKED', detail: `${ext || '(无扩展名)'} 不在服务白名单里:${rel}` };
58
+ }
51
59
  return null;
52
60
  }
53
61
  //# sourceMappingURL=servablePath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"servablePath.js","sourceRoot":"","sources":["../../../src/providers/serve/servablePath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,yBAAyB;AACzB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACjG,qCAAqC;AACrC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;IACpD,cAAc,EAAE,mBAAmB,EAAE,eAAe;CACrD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC;QAC9E,4CAA4C;QAC5C,8CAA8C;QAC9C,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,CAAC;IACpF,4CAA4C;IAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,mBAAmB,GAAG,EAAE,EAAE,CAAC;IAC/F,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"servablePath.js","sourceRoot":"","sources":["../../../src/providers/serve/servablePath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,uDAAuD;AACvD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAChE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACzE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IACjC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAClE,CAAC,CAAC;AAEH,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AAIhF,0CAA0C;AAC1C,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC;QAC9E,2BAA2B;QAC3B,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,QAAQ,aAAa,GAAG,EAAE,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -119,7 +119,25 @@ export interface PromptDeletedEvent {
119
119
  readonly ts: number;
120
120
  }
121
121
  /** Union of all领域 events. */
122
- export type DomainEvent = CardCreatedEvent | CardUpdatedEvent | CardMovedEvent | CardDeletedEvent | WorkerDispatchedEvent | WorkerUpdatedEvent | WorkerDeletedEvent | PipelineStartedEvent | PipelineStoppedEvent | SkillLinkedEvent | SkillUnlinkedEvent | SkillPolicyChangedEvent | SkillImportedEvent | SkillUpdatedEvent | SkillDeletedEvent | PromptSavedEvent | PromptDeletedEvent;
122
+ /**
123
+ * 工作区里某个**已声明范围内**的路径被写了。
124
+ *
125
+ * 🔴 **只说事实,不说判断**:"这个路径被写了" ≠ "可以开始制作了"。
126
+ * 后者是**产品判断**,留在订阅方 —— 一旦 sps 回答它,"什么算 ready"就归 sps 拥有了。
127
+ * 🔴 `node` 进事件是为了让**分叉可见**,不是为了排序:同一个项目只应该在一个节点上,
128
+ * 两个节点对同一项目发事件说明**已经出错了**,订阅方该当故障信号报,别按时间戳合并。
129
+ */
130
+ export interface WorkspaceChangedEvent {
131
+ readonly type: 'workspace.changed';
132
+ readonly project: string;
133
+ readonly seq: number;
134
+ /** 相对项目根。 */
135
+ readonly path: string;
136
+ /** 产生这条事件的节点。 */
137
+ readonly node: string;
138
+ readonly ts: number;
139
+ }
140
+ export type DomainEvent = CardCreatedEvent | CardUpdatedEvent | CardMovedEvent | CardDeletedEvent | WorkerDispatchedEvent | WorkerUpdatedEvent | WorkerDeletedEvent | PipelineStartedEvent | PipelineStoppedEvent | SkillLinkedEvent | SkillUnlinkedEvent | SkillPolicyChangedEvent | SkillImportedEvent | SkillUpdatedEvent | SkillDeletedEvent | PromptSavedEvent | PromptDeletedEvent | WorkspaceChangedEvent;
123
141
  export type DomainEventType = DomainEvent['type'];
124
142
  /**
125
143
  * DomainEventBus —— 事件总线抽象。
@@ -1 +1 @@
1
- {"version":3,"file":"domainEvents.d.ts","sourceRoot":"","sources":["../../src/shared/domainEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domainEvents.d.ts","sourceRoot":"","sources":["../../src/shared/domainEvents.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"domainEvents.js","sourceRoot":"","sources":["../../src/shared/domainEvents.ts"],"names":[],"mappings":"AAmLA,qEAAqE;AAErE;;;GAGG;AACH,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,MAAmB;QACtB,aAAa;IACf,CAAC;IACD,SAAS,CAAC,QAAsC;QAC9C,OAAO,GAAG,EAAE;YACV,WAAW;QACb,CAAC,CAAC;IACJ,CAAC;CACF;AAED,qEAAqE;AAErE;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,GAAsC,IAAI,GAAG,EAAE,CAAC;IAEhE,IAAI,CAAC,KAAkB;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC,CAAC;YACX,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"domainEvents.js","sourceRoot":"","sources":["../../src/shared/domainEvents.ts"],"names":[],"mappings":"AAuMA,qEAAqE;AAErE;;;GAGG;AACH,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,MAAmB;QACtB,aAAa;IACf,CAAC;IACD,SAAS,CAAC,QAAsC;QAC9C,OAAO,GAAG,EAAE;YACV,WAAW;QACb,CAAC,CAAC;IACJ,CAAC;CACF;AAED,qEAAqE;AAErE;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,GAAsC,IAAI,GAAG,EAAE,CAAC;IAEhE,IAAI,CAAC,KAAkB;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC,CAAC;YACX,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralai/sps-cli",
3
- "version": "0.65.93",
3
+ "version": "0.65.95",
4
4
  "description": "SPS CLI — AI-driven development pipeline orchestrator",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",