@coralai/sps-cli 0.65.57 → 0.65.59

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.
@@ -8,7 +8,7 @@
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
10
  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
11
- <script type="module" crossorigin src="/assets/index-CcjB1rT8.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-CpGlOvqu.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="/assets/index-DT-bJh9j.css">
13
13
  </head>
14
14
  <body>
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @module daemon/chatRelay
3
+ * @description chat 实况中继(daemon 内):owner 进程把 chatBus 语义事件镜像进来
4
+ * (relayPublish),任意进程按 sessionId 订阅(relaySubscribe,带 cursor 补发)。
5
+ * 目的=打破"实况是派发者特权"(coral 派发的会话在 sps console 全盲,反之亦然)。
6
+ * 设计:docs/design/chat-live-relay.md。事件不落盘、daemon 重启即清(易失可接受:
7
+ * daemon 重启时 run 本来就断,旁观端回退轮询落盘)。
8
+ * @layer daemon
9
+ */
10
+ export interface RelayFrame {
11
+ seq: number;
12
+ type: string;
13
+ payload: unknown;
14
+ }
15
+ export declare class ChatRelayHub {
16
+ private channels;
17
+ private channel;
18
+ private evictColdest;
19
+ publish(sessionId: string, type: string, payload: unknown): void;
20
+ /**
21
+ * 订阅:先补发 seq>afterSeq 的缓冲(afterSeq<0 = live-only 不补发),再持续推新。
22
+ * 返回退订函数。
23
+ */
24
+ subscribe(sessionId: string, afterSeq: number, push: (frame: RelayFrame) => void): () => void;
25
+ /** 观测用:当前通道/订阅规模。 */
26
+ stats(): {
27
+ sessions: number;
28
+ subscribers: number;
29
+ };
30
+ }
31
+ //# sourceMappingURL=chatRelay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatRelay.d.ts","sourceRoot":"","sources":["../../src/daemon/chatRelay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAaD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAqC;IAErD,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAchE;;;OAGG;IACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAChC,MAAM,IAAI;IAab,qBAAqB;IACrB,KAAK,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;CAKnD"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @module daemon/chatRelay
3
+ * @description chat 实况中继(daemon 内):owner 进程把 chatBus 语义事件镜像进来
4
+ * (relayPublish),任意进程按 sessionId 订阅(relaySubscribe,带 cursor 补发)。
5
+ * 目的=打破"实况是派发者特权"(coral 派发的会话在 sps console 全盲,反之亦然)。
6
+ * 设计:docs/design/chat-live-relay.md。事件不落盘、daemon 重启即清(易失可接受:
7
+ * daemon 重启时 run 本来就断,旁观端回退轮询落盘)。
8
+ * @layer daemon
9
+ */
10
+ const BUFFER_PER_SESSION = 512;
11
+ const MAX_SESSIONS = 256;
12
+ export class ChatRelayHub {
13
+ channels = new Map();
14
+ channel(sessionId) {
15
+ let ch = this.channels.get(sessionId);
16
+ if (!ch) {
17
+ if (this.channels.size >= MAX_SESSIONS)
18
+ this.evictColdest();
19
+ ch = { nextSeq: 1, buffer: [], subscribers: new Set(), lastTouch: Date.now() };
20
+ this.channels.set(sessionId, ch);
21
+ }
22
+ ch.lastTouch = Date.now();
23
+ return ch;
24
+ }
25
+ evictColdest() {
26
+ let coldest;
27
+ let coldestAt = Infinity;
28
+ for (const [id, ch] of this.channels) {
29
+ // 有在线订阅者的不逐出
30
+ if (ch.subscribers.size > 0)
31
+ continue;
32
+ if (ch.lastTouch < coldestAt) {
33
+ coldestAt = ch.lastTouch;
34
+ coldest = id;
35
+ }
36
+ }
37
+ if (coldest)
38
+ this.channels.delete(coldest);
39
+ }
40
+ publish(sessionId, type, payload) {
41
+ const ch = this.channel(sessionId);
42
+ const frame = { seq: ch.nextSeq++, type, payload };
43
+ ch.buffer.push(frame);
44
+ if (ch.buffer.length > BUFFER_PER_SESSION)
45
+ ch.buffer.shift();
46
+ for (const push of ch.subscribers) {
47
+ try {
48
+ push(frame);
49
+ }
50
+ catch {
51
+ /* 单个订阅者异常不影响其它 */
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * 订阅:先补发 seq>afterSeq 的缓冲(afterSeq<0 = live-only 不补发),再持续推新。
57
+ * 返回退订函数。
58
+ */
59
+ subscribe(sessionId, afterSeq, push) {
60
+ const ch = this.channel(sessionId);
61
+ if (afterSeq >= 0) {
62
+ for (const frame of ch.buffer) {
63
+ if (frame.seq > afterSeq)
64
+ push(frame);
65
+ }
66
+ }
67
+ ch.subscribers.add(push);
68
+ return () => {
69
+ ch.subscribers.delete(push);
70
+ };
71
+ }
72
+ /** 观测用:当前通道/订阅规模。 */
73
+ stats() {
74
+ let subscribers = 0;
75
+ for (const ch of this.channels.values())
76
+ subscribers += ch.subscribers.size;
77
+ return { sessions: this.channels.size, subscribers };
78
+ }
79
+ }
80
+ //# sourceMappingURL=chatRelay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatRelay.js","sourceRoot":"","sources":["../../src/daemon/chatRelay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { RelayFrame } from './chatRelay.js';
2
+ export declare class RelayPublisher {
3
+ private readonly socketPath;
4
+ private socket;
5
+ private connecting;
6
+ private lastAttempt;
7
+ constructor(socketPath?: string);
8
+ /** fire-and-forget:连不上/写失败一律静默(实况是增益不是依赖)。 */
9
+ publish(sessionId: string, type: string, payload: unknown): void;
10
+ private ensureSocket;
11
+ private teardown;
12
+ }
13
+ /**
14
+ * 订阅一个会话的实况帧。afterSeq:-1=live-only;>=0 从该游标补发。
15
+ * 迭代器在 socket 断开/daemon 退出时正常结束(不抛),由调用方决定是否重连。
16
+ */
17
+ export declare function subscribeRelay(sessionId: string, afterSeq: number, socketPath?: string): AsyncIterable<RelayFrame> & {
18
+ cancel(): void;
19
+ };
20
+ //# sourceMappingURL=relayClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relayClient.d.ts","sourceRoot":"","sources":["../../src/daemon/relayClient.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,qBAAa,cAAc;IAKb,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJvC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAK;gBAEK,UAAU,SAAiB;IAExD,8CAA8C;IAC9C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAUhE,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,QAAQ;CAQjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAiB,GAC1B,aAAa,CAAC,UAAU,CAAC,GAAG;IAAE,MAAM,IAAI,IAAI,CAAA;CAAE,CAkEhD"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @module daemon/relayClient
3
+ * @description chat 实况中继的客户端两件套(设计 docs/design/chat-live-relay.md):
4
+ * - RelayPublisher:owner 进程 → daemon 的**常驻**发布连接(token 级频率,
5
+ * fire-and-forget、无响应等待;daemon 不在 → 静默丢弃,绝不影响本地链路,
6
+ * 也绝不为镜像去拉起 daemon——回合在跑时 daemon 必然活着)。
7
+ * - subscribeRelay:旁观进程按 sessionId 订阅实况的 async 迭代器
8
+ * (NDJSON 长连接;断开即结束,重连策略由调用方定)。
9
+ * @layer daemon-client
10
+ */
11
+ import { existsSync } from 'node:fs';
12
+ import { createConnection } from 'node:net';
13
+ import { resolve } from 'node:path';
14
+ const DEFAULT_SOCKET = process.env.SPS_DAEMON_SOCKET ||
15
+ resolve(process.env.HOME || '/home/coral', '.coral', 'sessions', 'daemon.sock');
16
+ export class RelayPublisher {
17
+ socketPath;
18
+ socket = null;
19
+ connecting = false;
20
+ lastAttempt = 0;
21
+ constructor(socketPath = DEFAULT_SOCKET) {
22
+ this.socketPath = socketPath;
23
+ }
24
+ /** fire-and-forget:连不上/写失败一律静默(实况是增益不是依赖)。 */
25
+ publish(sessionId, type, payload) {
26
+ const s = this.ensureSocket();
27
+ if (!s)
28
+ return;
29
+ try {
30
+ s.write(`${JSON.stringify({ method: 'relayPublish', params: { sessionId, type, payload } })}\n`);
31
+ }
32
+ catch {
33
+ this.teardown();
34
+ }
35
+ }
36
+ ensureSocket() {
37
+ if (this.socket && !this.socket.destroyed)
38
+ return this.socket;
39
+ // 3s 退避:daemon 不在时别每个 token 都尝试 connect
40
+ const now = Date.now();
41
+ if (this.connecting || now - this.lastAttempt < 3_000)
42
+ return null;
43
+ this.lastAttempt = now;
44
+ if (!existsSync(this.socketPath))
45
+ return null;
46
+ this.connecting = true;
47
+ const s = createConnection(this.socketPath);
48
+ s.on('connect', () => {
49
+ this.connecting = false;
50
+ this.socket = s;
51
+ });
52
+ s.on('error', () => {
53
+ this.connecting = false;
54
+ this.teardown();
55
+ });
56
+ s.on('close', () => {
57
+ if (this.socket === s)
58
+ this.socket = null;
59
+ });
60
+ // 服务端对无 id 的 relayPublish 不回包;万一有数据也直接丢
61
+ s.on('data', () => { });
62
+ return null; // 首帧等下一次 publish(连接就绪后)
63
+ }
64
+ teardown() {
65
+ try {
66
+ this.socket?.destroy();
67
+ }
68
+ catch {
69
+ /* noop */
70
+ }
71
+ this.socket = null;
72
+ }
73
+ }
74
+ /**
75
+ * 订阅一个会话的实况帧。afterSeq:-1=live-only;>=0 从该游标补发。
76
+ * 迭代器在 socket 断开/daemon 退出时正常结束(不抛),由调用方决定是否重连。
77
+ */
78
+ export function subscribeRelay(sessionId, afterSeq, socketPath = DEFAULT_SOCKET) {
79
+ let socket = null;
80
+ let done = false;
81
+ const queue = [];
82
+ let wake = null;
83
+ const notify = () => {
84
+ wake?.();
85
+ wake = null;
86
+ };
87
+ const finish = () => {
88
+ if (done)
89
+ return;
90
+ done = true;
91
+ notify();
92
+ };
93
+ if (existsSync(socketPath)) {
94
+ socket = createConnection(socketPath);
95
+ let buf = '';
96
+ socket.on('connect', () => {
97
+ socket?.write(`${JSON.stringify({ id: 1, method: 'relaySubscribe', params: { sessionId, afterSeq } })}\n`);
98
+ });
99
+ socket.on('data', (chunk) => {
100
+ buf += chunk.toString();
101
+ let idx = buf.indexOf('\n');
102
+ while (idx >= 0) {
103
+ const line = buf.slice(0, idx).trim();
104
+ buf = buf.slice(idx + 1);
105
+ idx = buf.indexOf('\n');
106
+ if (!line)
107
+ continue;
108
+ try {
109
+ const msg = JSON.parse(line);
110
+ if (msg.relay && typeof msg.seq === 'number' && typeof msg.type === 'string') {
111
+ queue.push({ seq: msg.seq, type: msg.type, payload: msg.payload });
112
+ notify();
113
+ }
114
+ }
115
+ catch {
116
+ /* 非法帧跳过 */
117
+ }
118
+ }
119
+ });
120
+ socket.on('error', finish);
121
+ socket.on('close', finish);
122
+ }
123
+ else {
124
+ done = true;
125
+ }
126
+ return {
127
+ cancel() {
128
+ finish();
129
+ try {
130
+ socket?.destroy();
131
+ }
132
+ catch {
133
+ /* noop */
134
+ }
135
+ },
136
+ async *[Symbol.asyncIterator]() {
137
+ for (;;) {
138
+ while (queue.length > 0)
139
+ yield queue.shift();
140
+ if (done)
141
+ return;
142
+ await new Promise((r) => {
143
+ wake = r;
144
+ });
145
+ }
146
+ },
147
+ };
148
+ }
149
+ //# sourceMappingURL=relayClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relayClient.js","sourceRoot":"","sources":["../../src/daemon/relayClient.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  */
16
16
  export interface DaemonRequest {
17
17
  id?: number;
18
- method: 'ensureSession' | 'startRun' | 'inspect' | 'stopSession' | 'deleteSession' | 'clearRun' | 'cancelRun' | 'submitInteraction' | 'cancelInteraction' | 'shutdown' | 'subscribeRun' | 'capacity';
18
+ method: 'ensureSession' | 'startRun' | 'inspect' | 'stopSession' | 'deleteSession' | 'clearRun' | 'cancelRun' | 'submitInteraction' | 'cancelInteraction' | 'shutdown' | 'subscribeRun' | 'capacity' | 'relayPublish' | 'relaySubscribe';
19
19
  params: Record<string, unknown>;
20
20
  }
21
21
  export interface DaemonResponse {
@@ -136,6 +136,8 @@ export declare class SessionDaemon {
136
136
  */
137
137
  private lastActivity;
138
138
  private readonly startedAtMs;
139
+ /** chat 实况中继(跨进程旁观;见 docs/design/chat-live-relay.md)。 */
140
+ private readonly chatRelay;
139
141
  /** 并发权威门(总闸+FIFO 排队+origin 配额)。 */
140
142
  private readonly governor;
141
143
  /** slot → origin:ensureSession 时记录,startRun 计入配额;会话删除时清。 */
@@ -169,6 +171,7 @@ export declare class SessionDaemon {
169
171
  private shuttingDown;
170
172
  /** trigger:触发源(SIGTERM/SIGINT 信号 或 'command' socket 命令),记录到审计便于排查"会话为何被关"。 */
171
173
  private shutdown;
174
+ /** relay 帧:chat 实况中继(relaySubscribe 长连接上推送)。 */
172
175
  private send;
173
176
  private log;
174
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sessionDaemon.d.ts","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionDaemon.d.ts","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import { dirname, resolve } from 'node:path';
19
19
  import { appendAudit } from '../core/auditLog.js';
20
20
  import { getReclaimMinutes } from '../core/reclaimConfig.js';
21
21
  import { reclaimOrphanSessions } from './orphanReclaim.js';
22
+ import { ChatRelayHub } from './chatRelay.js';
22
23
  import { execFile } from 'node:child_process';
23
24
  import { promisify } from 'node:util';
24
25
  const execFileAsync = promisify(execFile);
@@ -80,6 +81,8 @@ export class SessionDaemon {
80
81
  */
81
82
  lastActivity = new Map();
82
83
  startedAtMs = Date.now();
84
+ /** chat 实况中继(跨进程旁观;见 docs/design/chat-live-relay.md)。 */
85
+ chatRelay = new ChatRelayHub();
83
86
  /** 并发权威门(总闸+FIFO 排队+origin 配额)。 */
84
87
  governor;
85
88
  /** slot → origin:ensureSession 时记录,startRun 计入配额;会话删除时清。 */
@@ -187,6 +190,30 @@ export class SessionDaemon {
187
190
  this.send(socket, { ok: false, error: 'Invalid JSON' });
188
191
  return;
189
192
  }
193
+ // relayPublish:owner 进程 fire-and-forget 镜像 chat 语义事件——无 id 不回响应(token 级频率,省往返)。
194
+ if (req.method === 'relayPublish') {
195
+ const p = req.params;
196
+ if (typeof p.sessionId === 'string' && typeof p.type === 'string') {
197
+ this.chatRelay.publish(p.sessionId, p.type, p.payload);
198
+ }
199
+ if (req.id !== undefined)
200
+ this.send(socket, { id: req.id, ok: true });
201
+ return;
202
+ }
203
+ // relaySubscribe:旁观进程按 sessionId 订阅实况(NDJSON 长连接,cursor 补发)。
204
+ if (req.method === 'relaySubscribe') {
205
+ const p = req.params;
206
+ if (typeof p.sessionId !== 'string') {
207
+ this.send(socket, { id: req.id, ok: false, error: 'sessionId required' });
208
+ socket.end();
209
+ return;
210
+ }
211
+ this.send(socket, { id: req.id, ok: true });
212
+ const unsubscribe = this.chatRelay.subscribe(p.sessionId, typeof p.afterSeq === 'number' ? p.afterSeq : -1, (frame) => this.send(socket, { relay: true, ...frame }));
213
+ socket.on('close', unsubscribe);
214
+ socket.on('error', unsubscribe);
215
+ return;
216
+ }
190
217
  // subscribeRun keeps socket open for NDJSON event streaming — handled specially
191
218
  if (req.method === 'subscribeRun') {
192
219
  // 自身已全捕获;这里再兜一层,确保任何意外都不会变成未捕获 rejection(daemon 是单点)。
@@ -672,6 +699,7 @@ export class SessionDaemon {
672
699
  catch { /* noop */ }
673
700
  process.exit(0);
674
701
  }
702
+ /** relay 帧:chat 实况中继(relaySubscribe 长连接上推送)。 */
675
703
  send(socket, msg) {
676
704
  try {
677
705
  if (!socket.destroyed) {
@@ -1 +1 @@
1
- {"version":3,"file":"sessionDaemon.js","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionDaemon.js","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,YAAY,EAA4B,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC,CAAC,EAAE,CAAC;AAEL;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE;IAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AAClE,CAAC,CAAC,EAAE,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE;IAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC,CAAC,EAAE,CAAC;AAEL;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE;IACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAuB,MAAM,2BAA2B,CAAC;AAGtF,OAAO,EAAE,oBAAoB,EAAuB,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAoE1D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACvG,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAEnG,MAAM,OAAO,aAAa;IAuBd;IACA;IAvBF,MAAM,GAAkB,IAAI,CAAC;IAC7B,SAAS,GAA0C,IAAI,CAAC;IACxD,OAAO,CAAiB;IACxB,SAAS,GAAG,CAAC,CAAC;IACd,GAAG,CAAiB;IACpB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC;;;OAGG;IACK,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1C,yDAAyD;IACxC,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;IAChD,mCAAmC;IAClB,QAAQ,CAAc;IACvC,4DAA4D;IAC3C,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxD,uDAAuD;IACtC,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE7D,YACU,aAAa,cAAc,EAC3B,UAAU,WAAW;QADrB,eAAU,GAAV,UAAU,CAAiB;QAC3B,YAAO,GAAP,OAAO,CAAc;QAE7B,oDAAoD;QACpD,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,kCAAkC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,GAAG,oBAAoB,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzD,wEAAwE;QACxE,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;oBACnD,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,GAAG,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;oBAAE,MAAM,GAAG,CAAC,CAAC,0DAA0D;YACjG,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,iBAAiB;QACjB,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjD,oDAAoD;QACpD,mCAAmC;QACnC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,2BAA2B;QAC3B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,UAAU,SAAS,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;YACxE,IAAI,CAAC;gBACH,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,OAAO,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpH,CAAC;YAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,kDAAkD;QAClD,4DAA4D;QAC5D,2DAA2D;QAC3D,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrC,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,8DAA8D;QAC9D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,oFAAoF;YACpF,IAAI,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,MAAc;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7C,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,GAAW;QACrD,IAAI,GAAkB,CAAC;QACvB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,gFAAgF;QAChF,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAkE,CAAC;YACjF,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,6DAA6D;QAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAmD,CAAC;YAClE,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAC1E,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAC1C,CAAC,CAAC,SAAS,EACX,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CACxD,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,gFAAgF;QAChF,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAClC,sDAAsD;YACtD,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtD,IAAI,CAAC,GAAG,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrF,IAAI,CAAC;oBAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,iDAAiD;gBACjD,GAAG,CAAC,GAAG,YAAY,aAAa;oBAC9B,CAAC,CAAC;wBACE,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,sCAAsC;wBACtC,oBAAoB;wBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,GAAG,EAAE,GAAG,CAAC,GAAG;qBACb;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH;;;OAGG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI;gBACJ,GAAG,EAAG,GAA+B,CAAC,GAAG,IAAI,IAAI;aAClD,CAAC,CAAC,CAAC;YACJ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACpC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE;gBACrD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACf,IAAI,CAAC;wBAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBACpE,CAAC;gBACD,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBACvB,IAAI,CAAC;wBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;wBACzF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;oBAC/B,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;oBACjB,IAAI,CAAC;wBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAAC,CAAC;gBAChF,CAAC;gBACD,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACxB,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC5D,IAAI,CAAC,GAAG,CACN,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,iBAAiB,CAAC,MAAM,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CACjH,CAAC;gBACF,IAAI,CAAC;oBACH,WAAW,CAAC;wBACV,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,UAAU;wBACnB,MAAM,EAAE,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;wBAClF,MAAM,EAAE,QAAQ;qBACjB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yCAAyC;YACzC,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,GAAkB;QACjE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAA0B,CAAC;QACnD,MAAM,aAAa,GACjB,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,QAAQ;YAC1C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa;YAC1B,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YACrE,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,wDAAwD;QACxD,wDAAwD;QACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,CAAC,CAAC;YAC/F,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY;QAErD,qFAAqF;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,IAAI,QAAQ,GAA0C,IAAI,CAAC;QAC3D,MAAM,aAAa,GAAG,GAAS,EAAE;YAC/B,IAAI,QAAQ,EAAE,CAAC;gBACb,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACvD,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC1D,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;oBAC7D,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,iFAAiF;YACjF,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAiB,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;gBACf,aAAa,EAAE,CAAC;gBAChB,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAEtB,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC1B,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;gBACxE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;oBACrC,OAAO,GAAG,IAAI,CAAC;oBACf,aAAa,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;oBAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;oBACpD,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,KAAK,MAAM,IAAI,mCAAmC,CAAC,CAAC;oBAC9E,0EAA0E;oBAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,IAAI,+BAA+B,EAAE,CAAC,CAAC;oBAC5F,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC/D,MAAM,CAAC,GAAG,EAAE,CAAC;oBACb,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBAC3C,iBAAiB;oBACnB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC;QAED,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAExE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAkB;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;QAErB,uDAAuD;QACvD,mDAAmD;QACnD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC3F,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,CAAC,CAAC,IAYF,CAAC;gBACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC9C,CAAC,CAAC,IAAc,EAChB,CAAC,CAAC,IAA6B,EAC/B,CAAC,CAAC,GAAyB,EAC3B,IAAI,CACL,CAAC;gBACF,uEAAuE;gBACvE,MAAM,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;gBAChD,IAAI,YAAY;oBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAc,EAAE,YAAY,CAAC,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACrC,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAc,CAAC;gBAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAyD,CAAC;gBACzE,0DAA0D;gBAC1D,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CACzC,IAAI,EACJ,CAAC,CAAC,MAAgB,EAClB,CAAC,CAAC,IAA6B,EAC/B,CAAC,CAAC,GAAyB,EAC3B,IAAI,CACL,CAAC;oBACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACrC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACnD,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAA0B,CAAC,CAAC;gBACvE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACnC,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBACjD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAChC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,mDAAmD;qBAC3D,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC9B,CAAC,CAAC,IAAc,EAChB,CAAC,CAAC,SAA+B,CAClC,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBAC3C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAc,CAAC;gBAC9B,kEAAkE;gBAClE,sDAAsD;gBACtD,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClG,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBACnE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBACrD,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;oBACjC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;wBAClB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;wBACpB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;wBAClB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;gBACvE,CAAC;gBACD,6EAA6E;gBAC7E,oDAAoD;gBACpD,cAAc;gBACd,MAAM,IAAI,GAAG,CAAC,CAAC,IAAc,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;gBAClD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAClC,IAAI,EACJ,CAAC,CAAC,aAAuB,EACzB,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,gBAA0B,CAC7B,CAAC;oBACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;gBACtB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;gBACvE,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAClC,CAAC,CAAC,IAAc,EAChB,CAAC,CAAC,aAAuB,EACzB,CAAC,CAAC,gBAA0B,CAC7B,CAAC;gBACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACnE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;gBAC7C,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;oBAClB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;oBACpB,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAED;gBACE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;IAED,4CAA4C;IACpC,cAAc,CAAC,IAAY;QACjC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACjD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO;YACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC;gBAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,gFAAgF;IACxE,cAAc,CACpB,OAA6D,EAC7D,GAAW;QAEX,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;QAC5D,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,YAAY,CAAC;IAC5D,CAAC;IAED,6EAA6E;IACrE,cAAc;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,UAAU,OAAO,qBAAqB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3F,IAAI,CAAC;oBACH,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3G,CAAC;gBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,qDAAqD;QACrD,IAAI,EAAE,IAAI,CAAC,SAAS,GAAG,GAAG,KAAK,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,+DAA+D;YAC/D,+CAA+C;YAC/C,yDAAyD;YACzD,CAAC;gBACC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;oBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjD,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM;wBAAE,SAAS;oBACvC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,KAAK,MAAM,CAAC,EAAE,CAAC;wBACzE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;wBACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,0DAA0D;YAC1D,4EAA4E;YAC5E,6EAA6E;YAC7E,MAAM,KAAK,GAAG,iBAAiB,EAAE,GAAG,MAAM,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;oBAAE,SAAS,CAAC,0BAA0B;gBAC5E,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,yDAAyD;oBACzD,+DAA+D;oBAC/D,qDAAqD;oBACrD,+CAA+C;oBAC/C,uDAAuD;oBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;oBAChE,MAAM,aAAa,GAAG,GAAG,GAAG,OAAO,GAAG,YAAY,CAAC;oBACnD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBAAE,SAAS;oBACxG,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,8BAA8B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBACzG,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC/B,IAAI,CAAC;4BACH,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,mCAAmC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAClI,CAAC;wBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;oBACzB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,GAAG,CAAC,mCAAmC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3G,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,4CAA4C;oBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACjC,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;gBAC1B,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;oBAC3C,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS,OAAO,mCAAmC,CAAC,CAAC;oBAC9E,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC/B,IAAI,CAAC;4BACH,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,OAAO,0BAA0B,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACzI,CAAC;wBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;oBACzB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACrG,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAEO,YAAY,GAAG,KAAK,CAAC;IAE7B,8EAA8E;IACtE,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS;QACxC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,gBAAgB;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,0BAA0B,OAAO,MAAM,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAErC,2CAA2C;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,OAAO,kCAAkC,CAAC,CAAC;QAE5E,8BAA8B;QAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtB,yDAAyD;QACzD,IAAI,CAAC;YACH,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,OAAO,QAAQ,OAAO,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9H,CAAC;QAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QAEzB,iBAAiB;QACjB,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gDAAgD;IACxC,IAAI,CAAC,MAAc,EAAE,GAAgG;QAC3H,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IAEO,GAAG,CAAC,GAAW;QACrB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC;CACF;AAED,+BAA+B;AAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAClE,IAAI,WAAW,EAAE,CAAC;IAChB,0DAA0D;IAC1D,2DAA2D;IAC3D,+CAA+C;IAC/C,iBAAiB;IACjB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,GAAY,EAAQ,EAAE;QACpD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"spsMcpServer.d.ts","sourceRoot":"","sources":["../../../src/providers/mcp/spsMcpServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CA+e9D"}
1
+ {"version":3,"file":"spsMcpServer.d.ts","sourceRoot":"","sources":["../../../src/providers/mcp/spsMcpServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAmjB9D"}
@@ -15,7 +15,7 @@
15
15
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
16
16
  import { z } from 'zod';
17
17
  import { isReviewerSkill, SkillsManager } from '../../core/skills/index.js';
18
- import { bumpUses, readEntry, saveEntry } from '../../core/memory2/store.js';
18
+ import { bumpUses, deleteEntry, readEntry, saveEntry } from '../../core/memory2/store.js';
19
19
  import { RedactedEntryDropped } from '../../core/memory2/redact.js';
20
20
  import { recallFederated } from '../../core/memory2/external/federate.js';
21
21
  import { externalGraph, externalPatterns, externalProfile, externalRelations, externalRemember, } from '../../core/memory2/external/agentMemory.js';
@@ -321,7 +321,8 @@ export function createSpsMcpServer(opts) {
321
321
  return { error: `未知 scope: ${s}` };
322
322
  };
323
323
  server.registerTool('memory_recall', {
324
- description: '相关性检索本地记忆(默认当前项目/agent + 全局)。返回 JSON:命中条目的 id/title/snippet/scope/score,再按需 memory_read 拉全文',
324
+ description: '相关性检索本地记忆(默认当前项目/agent + 全局)。返回 JSON:命中条目的 id/title/snippet/scope/score,再按需 memory_read 拉全文。' +
325
+ '命中条目可按 id 修正:内容过时 → memory_update 改原条;已经不成立 → memory_forget。',
325
326
  inputSchema: {
326
327
  query: z.string(),
327
328
  scope: z.enum(['global', 'project', 'agent']).optional(),
@@ -361,7 +362,9 @@ export function createSpsMcpServer(opts) {
361
362
  return text(JSON.stringify({ error: 'not found', id }));
362
363
  });
363
364
  server.registerTool('memory_save', {
364
- description: '存一条本地记忆(默认落当前项目/agent 作用域;scope 可覆盖)。收尾时把可复用的约定/决策/坑存一条',
365
+ description: '存一条本地记忆(默认落当前项目/agent 作用域;scope 可覆盖)。收尾时把可复用的约定/决策/坑存一条。' +
366
+ '🔴 存之前先 memory_recall 查重:同一事实已有条目 → 用 memory_update **改原条**,不要堆近似重复;' +
367
+ '发现旧条目已经错了 → memory_forget 删掉。修正要替换旧事实,不是摞在旁边。',
365
368
  inputSchema: {
366
369
  title: z.string(),
367
370
  body: z.string(),
@@ -386,6 +389,60 @@ export function createSpsMcpServer(opts) {
386
389
  throw err;
387
390
  }
388
391
  });
392
+ // ── 记忆卫生(OpenWorker 借鉴的写入纪律):修正=改原条/删错条,不堆近似重复 ─────────
393
+ server.registerTool('memory_update', {
394
+ description: '就地改写一条已有记忆(按 memory_recall/read 返回的 id):事实变了、内容要补正时用它替换原文,' +
395
+ '**不要另存一条近似重复**。省略的字段保持原值;保 created、刷 updated。',
396
+ inputSchema: {
397
+ id: z.string(),
398
+ title: z.string().optional(),
399
+ body: z.string().optional(),
400
+ category: z.enum(MEMORY_CATEGORIES).optional(),
401
+ tags: z.array(z.string()).optional(),
402
+ },
403
+ }, async ({ id, title, body, category, tags }) => {
404
+ const raw = strip(id);
405
+ for (const r of contextRefs()) {
406
+ const existing = readEntry(r, raw);
407
+ if (!existing)
408
+ continue;
409
+ try {
410
+ const e = saveEntry(r, {
411
+ id: raw,
412
+ title: title ?? existing.title,
413
+ body: body ?? existing.body,
414
+ category: category ?? existing.category,
415
+ tags: tags ?? existing.tags,
416
+ source: 'agent',
417
+ });
418
+ writeMemoryIndex(r);
419
+ return text(JSON.stringify({ updated: true, id: `${NS}${e.id}`, scope: e.scope }));
420
+ }
421
+ catch (err) {
422
+ if (err instanceof RedactedEntryDropped) {
423
+ return text(JSON.stringify({ updated: false, dropped: true, reasons: err.reasons }));
424
+ }
425
+ throw err;
426
+ }
427
+ }
428
+ return text(JSON.stringify({ updated: false, error: 'not found', id }));
429
+ });
430
+ server.registerTool('memory_forget', {
431
+ description: '删除一条已经错误/不再成立的记忆(按 id;墓碑软删,gc 期后清)。' +
432
+ '只删"错的",过时但可修的用 memory_update。',
433
+ inputSchema: { id: z.string() },
434
+ }, async ({ id }) => {
435
+ const raw = strip(id);
436
+ for (const r of contextRefs()) {
437
+ if (readEntry(r, raw)) {
438
+ const ok = deleteEntry(r, raw);
439
+ if (ok)
440
+ writeMemoryIndex(r);
441
+ return text(JSON.stringify({ deleted: ok, id: `${NS}${raw}` }));
442
+ }
443
+ }
444
+ return text(JSON.stringify({ deleted: false, error: 'not found', id }));
445
+ });
389
446
  // ─── 派生智能(agentmemory 跨会话算出的,本地产不出;external 未启用则提示)────────
390
447
  const extNote = '(external 记忆未启用:设 SPS_MEMORY_MODE=external|local+external + SPS_MEMORY_EXTERNAL_URL)';
391
448
  const jsonOr = (v, empty) => (v == null ? extNote : Array.isArray(v) && v.length === 0 ? empty : JSON.stringify(v, null, 2));