@cleocode/core 2026.3.69 → 2026.3.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/retry.d.ts.map +1 -1
- package/dist/agents/retry.js +23 -42
- package/dist/agents/retry.js.map +1 -1
- package/dist/cleo.d.ts +2 -300
- package/dist/cleo.d.ts.map +1 -1
- package/dist/cleo.js +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -0
- package/dist/config.js.map +1 -1
- package/dist/hooks/handlers/file-hooks.d.ts +5 -2
- package/dist/hooks/handlers/file-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/index.d.ts +2 -0
- package/dist/hooks/handlers/index.d.ts.map +1 -1
- package/dist/hooks/handlers/mcp-hooks.d.ts +11 -7
- package/dist/hooks/handlers/mcp-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/memory-bridge-refresh.d.ts +20 -0
- package/dist/hooks/handlers/memory-bridge-refresh.d.ts.map +1 -0
- package/dist/hooks/handlers/memory-bridge-refresh.js +42 -0
- package/dist/hooks/handlers/memory-bridge-refresh.js.map +1 -0
- package/dist/hooks/handlers/session-hooks.d.ts +10 -0
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.js +36 -0
- package/dist/hooks/handlers/session-hooks.js.map +1 -1
- package/dist/hooks/handlers/task-hooks.d.ts +4 -0
- package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/task-hooks.js +7 -0
- package/dist/hooks/handlers/task-hooks.js.map +1 -1
- package/dist/hooks/handlers/work-capture-hooks.d.ts +40 -0
- package/dist/hooks/handlers/work-capture-hooks.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5069 -4678
- package/dist/index.js.map +4 -4
- package/dist/internal.d.ts +10 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +10 -3
- package/dist/internal.js.map +1 -1
- package/dist/memory/auto-extract.d.ts +13 -0
- package/dist/memory/auto-extract.d.ts.map +1 -1
- package/dist/memory/auto-extract.js +34 -0
- package/dist/memory/auto-extract.js.map +1 -1
- package/dist/memory/brain-embedding.d.ts +13 -0
- package/dist/memory/brain-embedding.d.ts.map +1 -1
- package/dist/memory/brain-embedding.js +17 -0
- package/dist/memory/brain-embedding.js.map +1 -1
- package/dist/memory/brain-maintenance.d.ts +110 -0
- package/dist/memory/brain-maintenance.d.ts.map +1 -0
- package/dist/memory/brain-maintenance.js +98 -0
- package/dist/memory/brain-maintenance.js.map +1 -0
- package/dist/memory/brain-retrieval.d.ts +31 -5
- package/dist/memory/brain-retrieval.d.ts.map +1 -1
- package/dist/memory/brain-retrieval.js +53 -6
- package/dist/memory/brain-retrieval.js.map +1 -1
- package/dist/memory/embedding-local.d.ts +55 -0
- package/dist/memory/embedding-local.d.ts.map +1 -0
- package/dist/memory/embedding-local.js +97 -0
- package/dist/memory/embedding-local.js.map +1 -0
- package/dist/memory/embedding-queue.d.ts +90 -0
- package/dist/memory/embedding-queue.d.ts.map +1 -0
- package/dist/memory/embedding-queue.js +271 -0
- package/dist/memory/embedding-queue.js.map +1 -0
- package/dist/memory/embedding-worker.d.ts +19 -0
- package/dist/memory/embedding-worker.d.ts.map +1 -0
- package/dist/memory/embedding-worker.js +58 -0
- package/dist/memory/embedding-worker.js.map +1 -0
- package/dist/memory/memory-bridge.d.ts +21 -1
- package/dist/memory/memory-bridge.d.ts.map +1 -1
- package/dist/memory/memory-bridge.js +83 -2
- package/dist/memory/memory-bridge.js.map +1 -1
- package/dist/memory/session-memory.d.ts +26 -0
- package/dist/memory/session-memory.d.ts.map +1 -1
- package/dist/memory/session-memory.js +105 -0
- package/dist/memory/session-memory.js.map +1 -1
- package/dist/pagination.js +3 -0
- package/dist/pagination.js.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +2 -6
- package/dist/sessions/index.js.map +1 -1
- package/dist/store/brain-sqlite.js +13 -62
- package/dist/store/brain-sqlite.js.map +1 -1
- package/dist/store/migration-manager.js +151 -0
- package/dist/store/migration-manager.js.map +1 -0
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +16 -134
- package/dist/store/sqlite.js.map +1 -1
- package/dist/tasks/add.js +27 -22
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +13 -40
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/enforcement.js +12 -15
- package/dist/tasks/enforcement.js.map +1 -1
- package/dist/upgrade.js +246 -3
- package/dist/upgrade.js.map +1 -1
- package/migrations/drizzle-tasks/20260320013731_wave0-schema-hardening/migration.sql +17 -17
- package/package.json +6 -5
- package/src/agents/retry.ts +30 -24
- package/src/cleo.ts +30 -251
- package/src/config.ts +18 -0
- package/src/hooks/handlers/file-hooks.ts +29 -3
- package/src/hooks/handlers/index.ts +2 -0
- package/src/hooks/handlers/mcp-hooks.ts +32 -13
- package/src/hooks/handlers/memory-bridge-refresh.ts +47 -0
- package/src/hooks/handlers/session-hooks.ts +38 -0
- package/src/hooks/handlers/task-hooks.ts +8 -0
- package/src/hooks/handlers/work-capture-hooks.ts +184 -0
- package/src/index.ts +5 -0
- package/src/internal.ts +28 -2
- package/src/memory/__tests__/brain-automation.test.ts +941 -0
- package/src/memory/auto-extract.ts +40 -0
- package/src/memory/brain-embedding.ts +18 -0
- package/src/memory/brain-maintenance.ts +183 -0
- package/src/memory/brain-retrieval.ts +85 -7
- package/src/memory/embedding-local.ts +107 -0
- package/src/memory/embedding-queue.ts +304 -0
- package/src/memory/embedding-worker.ts +79 -0
- package/src/memory/memory-bridge.ts +101 -2
- package/src/memory/session-memory.ts +123 -0
- package/src/sessions/index.ts +2 -6
- package/src/store/__tests__/test-db-helper.js +14 -2
- package/src/store/__tests__/test-db-helper.ts +4 -1
- package/src/store/sqlite.ts +28 -0
- package/src/tasks/__tests__/complete-unblocks.test.ts +4 -1
- package/src/tasks/__tests__/complete.test.ts +18 -6
- package/src/tasks/__tests__/epic-enforcement.test.ts +4 -1
- package/src/tasks/__tests__/update.test.ts +4 -1
- package/src/tasks/complete.ts +8 -8
- package/templates/config.template.json +19 -0
- package/templates/global-config.template.json +19 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Queue Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages an async queue of embedding requests, processing them in batches
|
|
5
|
+
* via a worker thread to avoid blocking the main Node.js event loop.
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* - {@link EmbeddingQueue} is a singleton — one worker thread per process
|
|
9
|
+
* - {@link EmbeddingQueue.enqueue} adds items; the drain loop batches them
|
|
10
|
+
* - Batches up to {@link BATCH_SIZE} items per processing cycle
|
|
11
|
+
* - Falls back to `setImmediate` + direct embedding when worker threads
|
|
12
|
+
* are unavailable or the worker script cannot be resolved
|
|
13
|
+
* - Registers a `process.on('exit')` handler for graceful shutdown
|
|
14
|
+
*
|
|
15
|
+
* @epic T134
|
|
16
|
+
* @task T137
|
|
17
|
+
* @why Non-blocking embedding generation for observeBrain()
|
|
18
|
+
* @what Singleton queue + worker-thread batch processor
|
|
19
|
+
*/
|
|
20
|
+
import { existsSync } from 'node:fs';
|
|
21
|
+
import { dirname, join } from 'node:path';
|
|
22
|
+
import { fileURLToPath } from 'node:url';
|
|
23
|
+
/** Maximum items processed per worker message cycle. */
|
|
24
|
+
const BATCH_SIZE = 10;
|
|
25
|
+
/** How long to wait between drain cycles when the queue is non-empty (ms). */
|
|
26
|
+
const DRAIN_INTERVAL_MS = 50;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the absolute path to the compiled embedding-worker script.
|
|
29
|
+
*
|
|
30
|
+
* Strategy (cheap-first):
|
|
31
|
+
* 1. Adjacent to this file (tsc dev: `dist/memory/embedding-worker.js`)
|
|
32
|
+
* 2. Falls back to null when the file cannot be found (esbuild bundle context)
|
|
33
|
+
*/
|
|
34
|
+
function resolveWorkerPath() {
|
|
35
|
+
try {
|
|
36
|
+
// In ESM, __dirname is not available — use import.meta.url
|
|
37
|
+
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
38
|
+
const candidate = join(currentDir, 'embedding-worker.js');
|
|
39
|
+
if (existsSync(candidate)) {
|
|
40
|
+
return candidate;
|
|
41
|
+
}
|
|
42
|
+
// Also try ../ for cases where the queue is loaded from a subdirectory
|
|
43
|
+
const parentCandidate = join(currentDir, '..', 'memory', 'embedding-worker.js');
|
|
44
|
+
if (existsSync(parentCandidate)) {
|
|
45
|
+
return parentCandidate;
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Singleton embedding queue.
|
|
55
|
+
*
|
|
56
|
+
* Batches embedding requests and processes them via a worker thread,
|
|
57
|
+
* keeping heavy model inference off the main event loop.
|
|
58
|
+
*
|
|
59
|
+
* Use {@link getEmbeddingQueue} to obtain the shared instance.
|
|
60
|
+
*/
|
|
61
|
+
export class EmbeddingQueue {
|
|
62
|
+
queue = [];
|
|
63
|
+
worker = null;
|
|
64
|
+
workerAvailable = false;
|
|
65
|
+
draining = false;
|
|
66
|
+
shutdownPromise = null;
|
|
67
|
+
/**
|
|
68
|
+
* Store the observation ID → DB write callback so the worker result
|
|
69
|
+
* can be persisted back to brain_embeddings without coupling to SQLite here.
|
|
70
|
+
*/
|
|
71
|
+
callbacks = new Map();
|
|
72
|
+
/** Initialise the worker thread if possible. Called lazily on first enqueue. */
|
|
73
|
+
async initWorker() {
|
|
74
|
+
if (this.workerAvailable || this.worker !== null)
|
|
75
|
+
return;
|
|
76
|
+
const workerPath = resolveWorkerPath();
|
|
77
|
+
if (!workerPath) {
|
|
78
|
+
// esbuild bundle context — worker file not available, use fallback
|
|
79
|
+
this.workerAvailable = false;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const { Worker } = await import('node:worker_threads');
|
|
84
|
+
const worker = new Worker(workerPath);
|
|
85
|
+
worker.on('message', (msg) => {
|
|
86
|
+
const cb = this.callbacks.get(msg.id);
|
|
87
|
+
if (!cb)
|
|
88
|
+
return;
|
|
89
|
+
this.callbacks.delete(msg.id);
|
|
90
|
+
if (msg.embedding) {
|
|
91
|
+
const vector = Float32Array.from(msg.embedding);
|
|
92
|
+
cb(msg.id, vector).catch(() => {
|
|
93
|
+
// Persistence is best-effort; observation already saved without vector
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// On error, skip silently — observation exists without embedding
|
|
97
|
+
});
|
|
98
|
+
worker.on('error', () => {
|
|
99
|
+
// Worker crashed — disable worker path, drain remaining via fallback
|
|
100
|
+
this.worker = null;
|
|
101
|
+
this.workerAvailable = false;
|
|
102
|
+
this.callbacks.clear();
|
|
103
|
+
});
|
|
104
|
+
worker.on('exit', () => {
|
|
105
|
+
this.worker = null;
|
|
106
|
+
this.workerAvailable = false;
|
|
107
|
+
});
|
|
108
|
+
this.worker = worker;
|
|
109
|
+
this.workerAvailable = true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// worker_threads unavailable (rare)
|
|
113
|
+
this.workerAvailable = false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Add an observation to the embedding queue.
|
|
118
|
+
*
|
|
119
|
+
* The observation must already be persisted in brain_observations before
|
|
120
|
+
* calling this method. `onComplete` is called asynchronously with the
|
|
121
|
+
* generated vector once the worker finishes.
|
|
122
|
+
*
|
|
123
|
+
* @param observationId - The brain observation ID (e.g. `O-abc123-0`)
|
|
124
|
+
* @param text - Raw text to embed
|
|
125
|
+
* @param onComplete - Callback to persist the embedding vector
|
|
126
|
+
*/
|
|
127
|
+
enqueue(observationId, text, onComplete) {
|
|
128
|
+
if (this.shutdownPromise)
|
|
129
|
+
return; // queue is shutting down
|
|
130
|
+
this.callbacks.set(observationId, onComplete);
|
|
131
|
+
this.queue.push({ observationId, text });
|
|
132
|
+
if (!this.draining) {
|
|
133
|
+
this.scheduleDrain();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Schedule the next drain cycle via setImmediate. */
|
|
137
|
+
scheduleDrain() {
|
|
138
|
+
setImmediate(() => {
|
|
139
|
+
this.drain().catch(() => {
|
|
140
|
+
// Drain errors are non-fatal
|
|
141
|
+
this.draining = false;
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Process up to {@link BATCH_SIZE} items from the queue.
|
|
147
|
+
* Uses the worker thread when available, falls back to inline setImmediate.
|
|
148
|
+
*/
|
|
149
|
+
async drain() {
|
|
150
|
+
this.draining = true;
|
|
151
|
+
// Ensure worker is initialised (no-op after first call)
|
|
152
|
+
await this.initWorker();
|
|
153
|
+
while (this.queue.length > 0) {
|
|
154
|
+
const batch = this.queue.splice(0, BATCH_SIZE);
|
|
155
|
+
if (this.workerAvailable && this.worker) {
|
|
156
|
+
// Dispatch to worker thread — results arrive via 'message' event
|
|
157
|
+
for (const item of batch) {
|
|
158
|
+
this.worker.postMessage({ id: item.observationId, text: item.text });
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Fallback: process inline via setImmediate to yield to event loop
|
|
163
|
+
for (const item of batch) {
|
|
164
|
+
setImmediate(() => {
|
|
165
|
+
this.fallbackEmbed(item).catch(() => {
|
|
166
|
+
// Silently skip — observation already persisted without embedding
|
|
167
|
+
this.callbacks.delete(item.observationId);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (this.queue.length > 0) {
|
|
173
|
+
// Yield to event loop between batches
|
|
174
|
+
await new Promise((resolve) => setTimeout(resolve, DRAIN_INTERVAL_MS));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
this.draining = false;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Inline fallback embedding — used when worker thread is unavailable.
|
|
181
|
+
* Runs directly on the main thread (but inside setImmediate to yield first).
|
|
182
|
+
*/
|
|
183
|
+
async fallbackEmbed(item) {
|
|
184
|
+
const cb = this.callbacks.get(item.observationId);
|
|
185
|
+
if (!cb)
|
|
186
|
+
return;
|
|
187
|
+
this.callbacks.delete(item.observationId);
|
|
188
|
+
const { getLocalEmbeddingProvider } = await import('./embedding-local.js');
|
|
189
|
+
const provider = getLocalEmbeddingProvider();
|
|
190
|
+
const vector = await provider.embed(item.text);
|
|
191
|
+
await cb(item.observationId, vector);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Flush the queue and terminate the worker thread.
|
|
195
|
+
*
|
|
196
|
+
* Waits for in-flight worker messages to drain, then terminates.
|
|
197
|
+
* Safe to call multiple times — subsequent calls return the same promise.
|
|
198
|
+
*/
|
|
199
|
+
shutdown() {
|
|
200
|
+
if (this.shutdownPromise)
|
|
201
|
+
return this.shutdownPromise;
|
|
202
|
+
this.shutdownPromise = this.doShutdown();
|
|
203
|
+
return this.shutdownPromise;
|
|
204
|
+
}
|
|
205
|
+
async doShutdown() {
|
|
206
|
+
// Drain remaining queue items
|
|
207
|
+
if (this.queue.length > 0) {
|
|
208
|
+
await this.drain();
|
|
209
|
+
}
|
|
210
|
+
// Terminate the worker
|
|
211
|
+
if (this.worker) {
|
|
212
|
+
try {
|
|
213
|
+
await this.worker.terminate();
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Worker may already be gone
|
|
217
|
+
}
|
|
218
|
+
this.worker = null;
|
|
219
|
+
}
|
|
220
|
+
this.callbacks.clear();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** Module-level singleton. */
|
|
224
|
+
let _instance = null;
|
|
225
|
+
/**
|
|
226
|
+
* Get or create the shared EmbeddingQueue singleton.
|
|
227
|
+
*
|
|
228
|
+
* Registers a process `exit` handler on first call to flush and
|
|
229
|
+
* terminate the worker thread cleanly.
|
|
230
|
+
*
|
|
231
|
+
* @returns The shared EmbeddingQueue instance.
|
|
232
|
+
*/
|
|
233
|
+
export function getEmbeddingQueue() {
|
|
234
|
+
if (!_instance) {
|
|
235
|
+
_instance = new EmbeddingQueue();
|
|
236
|
+
// Best-effort flush on process exit (synchronous handlers only get ~50ms)
|
|
237
|
+
process.on('exit', () => {
|
|
238
|
+
_instance?.shutdown().catch(() => {
|
|
239
|
+
// exit handler — cannot await
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
// For SIGTERM/SIGINT give the queue time to flush
|
|
243
|
+
const gracefulShutdown = () => {
|
|
244
|
+
if (_instance) {
|
|
245
|
+
_instance
|
|
246
|
+
.shutdown()
|
|
247
|
+
.catch(() => { })
|
|
248
|
+
.finally(() => process.exit(0));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
process.exit(0);
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
process.once('SIGTERM', gracefulShutdown);
|
|
255
|
+
process.once('SIGINT', gracefulShutdown);
|
|
256
|
+
}
|
|
257
|
+
return _instance;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Reset the singleton (for testing only).
|
|
261
|
+
* Shuts down the existing queue before clearing the reference.
|
|
262
|
+
*
|
|
263
|
+
* @internal
|
|
264
|
+
*/
|
|
265
|
+
export async function resetEmbeddingQueue() {
|
|
266
|
+
if (_instance) {
|
|
267
|
+
await _instance.shutdown();
|
|
268
|
+
_instance = null;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=embedding-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-queue.js","sourceRoot":"","sources":["../../src/memory/embedding-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Worker Thread Script
|
|
3
|
+
*
|
|
4
|
+
* Runs inside a `worker_threads.Worker` to perform embedding generation
|
|
5
|
+
* off the main thread. Receives messages with text to embed, calls
|
|
6
|
+
* LocalEmbeddingProvider, and sends results back via parentPort.
|
|
7
|
+
*
|
|
8
|
+
* Message protocol:
|
|
9
|
+
* Inbound: { id: string; text: string }
|
|
10
|
+
* Outbound: { id: string; embedding: number[] } on success
|
|
11
|
+
* { id: string; error: string } on failure
|
|
12
|
+
*
|
|
13
|
+
* @epic T134
|
|
14
|
+
* @task T137
|
|
15
|
+
* @why Prevent @xenova/transformers model inference from blocking the main thread
|
|
16
|
+
* @what Worker thread script for async embedding generation
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=embedding-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Worker Thread Script
|
|
3
|
+
*
|
|
4
|
+
* Runs inside a `worker_threads.Worker` to perform embedding generation
|
|
5
|
+
* off the main thread. Receives messages with text to embed, calls
|
|
6
|
+
* LocalEmbeddingProvider, and sends results back via parentPort.
|
|
7
|
+
*
|
|
8
|
+
* Message protocol:
|
|
9
|
+
* Inbound: { id: string; text: string }
|
|
10
|
+
* Outbound: { id: string; embedding: number[] } on success
|
|
11
|
+
* { id: string; error: string } on failure
|
|
12
|
+
*
|
|
13
|
+
* @epic T134
|
|
14
|
+
* @task T137
|
|
15
|
+
* @why Prevent @xenova/transformers model inference from blocking the main thread
|
|
16
|
+
* @what Worker thread script for async embedding generation
|
|
17
|
+
*/
|
|
18
|
+
import { parentPort } from 'node:worker_threads';
|
|
19
|
+
if (!parentPort) {
|
|
20
|
+
throw new Error('embedding-worker.ts must be run as a worker thread');
|
|
21
|
+
}
|
|
22
|
+
const port = parentPort;
|
|
23
|
+
/**
|
|
24
|
+
* Handle a single embedding request from the queue manager.
|
|
25
|
+
* Imports LocalEmbeddingProvider lazily so the model loads once
|
|
26
|
+
* per worker lifetime.
|
|
27
|
+
*/
|
|
28
|
+
async function handleRequest(req) {
|
|
29
|
+
try {
|
|
30
|
+
const { getLocalEmbeddingProvider } = await import('./embedding-local.js');
|
|
31
|
+
const provider = getLocalEmbeddingProvider();
|
|
32
|
+
const vector = await provider.embed(req.text);
|
|
33
|
+
// Transfer as plain number[] — structured clone handles Float32Array
|
|
34
|
+
const response = {
|
|
35
|
+
id: req.id,
|
|
36
|
+
embedding: Array.from(vector),
|
|
37
|
+
};
|
|
38
|
+
port.postMessage(response);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
const response = {
|
|
42
|
+
id: req.id,
|
|
43
|
+
error: err instanceof Error ? err.message : String(err),
|
|
44
|
+
};
|
|
45
|
+
port.postMessage(response);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
port.on('message', (req) => {
|
|
49
|
+
handleRequest(req).catch((err) => {
|
|
50
|
+
// Catch any unhandled rejection in handleRequest itself
|
|
51
|
+
const response = {
|
|
52
|
+
id: req.id,
|
|
53
|
+
error: err instanceof Error ? err.message : String(err),
|
|
54
|
+
};
|
|
55
|
+
port.postMessage(response);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=embedding-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAoBjD,IAAI,CAAC,UAAU,EAAE,CAAC;IAChB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,IAAI,GAAG,UAAU,CAAC;AAExB;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAAC,GAAkB;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,qEAAqE;QACrE,MAAM,QAAQ,GAAkB;YAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SAC9B,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAgB;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAkB,EAAE,EAAE;IACxC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/B,wDAAwD;QACxD,MAAM,QAAQ,GAAgB;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -45,6 +45,26 @@ export declare function writeMemoryBridge(projectRoot: string, config?: Partial<
|
|
|
45
45
|
/**
|
|
46
46
|
* Best-effort refresh: call from session.end, tasks.complete, or memory.observe.
|
|
47
47
|
* Never throws.
|
|
48
|
+
*
|
|
49
|
+
* @param projectRoot - Absolute path to the project root.
|
|
50
|
+
* @param scope - Optional session scope for context-aware generation (T139).
|
|
51
|
+
* @param currentTaskId - Optional current task ID for scoped context (T139).
|
|
52
|
+
*/
|
|
53
|
+
export declare function refreshMemoryBridge(projectRoot: string, scope?: string, currentTaskId?: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Generate context-aware memory bridge content and write to disk.
|
|
56
|
+
*
|
|
57
|
+
* When `brain.memoryBridge.contextAware` is true and a scope is available,
|
|
58
|
+
* uses hybridSearch() to surface memories relevant to the current scope,
|
|
59
|
+
* then enforces the `brain.memoryBridge.maxTokens` budget.
|
|
60
|
+
*
|
|
61
|
+
* Falls back to standard generation if hybrid search is unavailable.
|
|
62
|
+
* Never throws.
|
|
63
|
+
*
|
|
64
|
+
* @param projectRoot - Absolute path to the project root.
|
|
65
|
+
* @param scope - Session scope string (e.g. 'global', 'epic:T###').
|
|
66
|
+
* @param currentTaskId - Optional current task ID for narrower scoping.
|
|
67
|
+
* @task T139 @epic T134
|
|
48
68
|
*/
|
|
49
|
-
export declare function
|
|
69
|
+
export declare function generateContextAwareContent(projectRoot: string, scope: string, currentTaskId?: string): Promise<void>;
|
|
50
70
|
//# sourceMappingURL=memory-bridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-bridge.d.ts","sourceRoot":"","sources":["../../src/memory/memory-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAmED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CA2GjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA8B7C;AAED
|
|
1
|
+
{"version":3,"file":"memory-bridge.d.ts","sourceRoot":"","sources":["../../src/memory/memory-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAmED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CA2GjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA8B7C;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -188,15 +188,96 @@ export async function writeMemoryBridge(projectRoot, config) {
|
|
|
188
188
|
/**
|
|
189
189
|
* Best-effort refresh: call from session.end, tasks.complete, or memory.observe.
|
|
190
190
|
* Never throws.
|
|
191
|
+
*
|
|
192
|
+
* @param projectRoot - Absolute path to the project root.
|
|
193
|
+
* @param scope - Optional session scope for context-aware generation (T139).
|
|
194
|
+
* @param currentTaskId - Optional current task ID for scoped context (T139).
|
|
191
195
|
*/
|
|
192
|
-
export async function refreshMemoryBridge(projectRoot) {
|
|
196
|
+
export async function refreshMemoryBridge(projectRoot, scope, currentTaskId) {
|
|
193
197
|
try {
|
|
194
|
-
await
|
|
198
|
+
const { loadConfig } = await import('../config.js');
|
|
199
|
+
const config = await loadConfig(projectRoot);
|
|
200
|
+
if (config.brain?.memoryBridge?.contextAware && scope) {
|
|
201
|
+
await generateContextAwareContent(projectRoot, scope, currentTaskId);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
await writeMemoryBridge(projectRoot);
|
|
205
|
+
}
|
|
195
206
|
}
|
|
196
207
|
catch (err) {
|
|
197
208
|
console.error('[CLEO] Memory bridge refresh failed:', err instanceof Error ? err.message : String(err));
|
|
198
209
|
}
|
|
199
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Generate context-aware memory bridge content and write to disk.
|
|
213
|
+
*
|
|
214
|
+
* When `brain.memoryBridge.contextAware` is true and a scope is available,
|
|
215
|
+
* uses hybridSearch() to surface memories relevant to the current scope,
|
|
216
|
+
* then enforces the `brain.memoryBridge.maxTokens` budget.
|
|
217
|
+
*
|
|
218
|
+
* Falls back to standard generation if hybrid search is unavailable.
|
|
219
|
+
* Never throws.
|
|
220
|
+
*
|
|
221
|
+
* @param projectRoot - Absolute path to the project root.
|
|
222
|
+
* @param scope - Session scope string (e.g. 'global', 'epic:T###').
|
|
223
|
+
* @param currentTaskId - Optional current task ID for narrower scoping.
|
|
224
|
+
* @task T139 @epic T134
|
|
225
|
+
*/
|
|
226
|
+
export async function generateContextAwareContent(projectRoot, scope, currentTaskId) {
|
|
227
|
+
try {
|
|
228
|
+
const { loadConfig } = await import('../config.js');
|
|
229
|
+
const config = await loadConfig(projectRoot);
|
|
230
|
+
const maxTokens = config.brain?.memoryBridge?.maxTokens ?? 2000;
|
|
231
|
+
// Build a search query from scope + currentTaskId
|
|
232
|
+
const query = currentTaskId ? `${scope} ${currentTaskId}` : scope;
|
|
233
|
+
let contextSections = [];
|
|
234
|
+
try {
|
|
235
|
+
const { hybridSearch } = await import('./brain-search.js');
|
|
236
|
+
const hits = await hybridSearch(query, projectRoot, { limit: 10 });
|
|
237
|
+
if (hits && hits.length > 0) {
|
|
238
|
+
contextSections = hits
|
|
239
|
+
.slice(0, 5)
|
|
240
|
+
.map((h) => `- [${h.id}] ${h.title ?? h.text?.slice(0, 120) ?? ''}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
// Hybrid search unavailable — fall back to standard generation
|
|
245
|
+
await writeMemoryBridge(projectRoot);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
// Build content with token budget enforcement (rough estimate: 4 chars/token)
|
|
249
|
+
const charsPerToken = 4;
|
|
250
|
+
const budgetChars = maxTokens * charsPerToken;
|
|
251
|
+
const cleoDir = join(projectRoot, '.cleo');
|
|
252
|
+
const bridgePath = join(cleoDir, 'memory-bridge.md');
|
|
253
|
+
const headerLines = [
|
|
254
|
+
'# CLEO Memory Bridge',
|
|
255
|
+
'',
|
|
256
|
+
`> Auto-generated at ${new Date().toISOString().slice(0, 19)} (context-aware: ${scope})`,
|
|
257
|
+
'> Do not edit manually. Regenerate with `cleo refresh-memory`.',
|
|
258
|
+
'',
|
|
259
|
+
];
|
|
260
|
+
const contextBlock = contextSections.length > 0 ? ['## Relevant Context', '', ...contextSections, ''] : [];
|
|
261
|
+
// Append standard content but enforce token budget
|
|
262
|
+
const standardContent = await generateMemoryBridgeContent(projectRoot);
|
|
263
|
+
const combined = [...headerLines, ...contextBlock].join('\n');
|
|
264
|
+
const remainingChars = budgetChars - combined.length;
|
|
265
|
+
const finalContent = remainingChars > 200 ? combined + '\n' + standardContent.slice(0, remainingChars) : combined;
|
|
266
|
+
if (!existsSync(cleoDir)) {
|
|
267
|
+
mkdirSync(cleoDir, { recursive: true });
|
|
268
|
+
}
|
|
269
|
+
writeFileSync(bridgePath, finalContent, 'utf-8');
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
// Best-effort — fall through to standard generation
|
|
273
|
+
try {
|
|
274
|
+
await writeMemoryBridge(projectRoot);
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
// Ignore
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
200
281
|
// ============================================================================
|
|
201
282
|
// Query helpers
|
|
202
283
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-bridge.js","sourceRoot":"","sources":["../../src/memory/memory-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-bridge.js","sourceRoot":"","sources":["../../src/memory/memory-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,32 @@ export declare function extractMemoryItems(sessionId: string, debrief: DebriefDa
|
|
|
67
67
|
* @returns Summary of what was persisted
|
|
68
68
|
*/
|
|
69
69
|
export declare function persistSessionMemory(projectRoot: string, sessionId: string, debrief: DebriefData | null | undefined): Promise<SessionMemoryResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Build a summarization prompt from debrief data.
|
|
72
|
+
*
|
|
73
|
+
* Returns a formatted prompt string that guides an LLM to produce a structured
|
|
74
|
+
* session summary (key learnings, decisions, patterns, next actions). The result
|
|
75
|
+
* can be passed to an LLM or stored directly as a `memoryPrompt` in the session
|
|
76
|
+
* end result.
|
|
77
|
+
*
|
|
78
|
+
* Returns null when debrief contains no meaningful content to summarize.
|
|
79
|
+
*
|
|
80
|
+
* @param sessionId - The session ID to summarize.
|
|
81
|
+
* @param debrief - Rich debrief data from sessionComputeDebrief().
|
|
82
|
+
* @task T140 @epic T134
|
|
83
|
+
*/
|
|
84
|
+
export declare function buildSummarizationPrompt(sessionId: string, debrief: DebriefData | null | undefined): string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Ingest a structured session summary directly into brain.db.
|
|
87
|
+
*
|
|
88
|
+
* Stores each field as a typed brain observation. Best-effort — never throws.
|
|
89
|
+
*
|
|
90
|
+
* @param projectRoot - Absolute path to project root.
|
|
91
|
+
* @param sessionId - The session ID the summary belongs to.
|
|
92
|
+
* @param summary - Structured summary with key learnings, decisions, patterns, next actions.
|
|
93
|
+
* @task T140 @epic T134
|
|
94
|
+
*/
|
|
95
|
+
export declare function ingestStructuredSummary(projectRoot: string, sessionId: string, summary: import('@cleocode/contracts').SessionSummaryInput): Promise<void>;
|
|
70
96
|
/**
|
|
71
97
|
* Retrieve session memory for a given scope.
|
|
72
98
|
* Used by briefing/handoff to enrich response with brain context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-memory.d.ts","sourceRoot":"","sources":["../../src/memory/session-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EAGrB,MAAM,sBAAsB,CAAC;AAM9B,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,iDAAiD;AACjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,sCAAsC;IACtC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,8CAA8C;IAC9C,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,8CAA8C;IAC9C,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACtC,UAAU,EAAE,CAuDd;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAsE9B;AAMD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9D,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF,OAAO,CAAC,oBAAoB,CAAC,CA2E/B"}
|
|
1
|
+
{"version":3,"file":"session-memory.d.ts","sourceRoot":"","sources":["../../src/memory/session-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EAGrB,MAAM,sBAAsB,CAAC;AAM9B,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,iDAAiD;AACjD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,sCAAsC;IACtC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,8CAA8C;IAC9C,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,8CAA8C;IAC9C,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACtC,UAAU,EAAE,CAuDd;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAsE9B;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACtC,MAAM,GAAG,IAAI,CA0Cf;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,qBAAqB,EAAE,mBAAmB,GACzD,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAMD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9D,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF,OAAO,CAAC,oBAAoB,CAAC,CA2E/B"}
|