@cognee/cognee-openclaw 2026.4.12 → 2026.5.21

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/README.md CHANGED
@@ -10,10 +10,10 @@ OpenClaw plugin that adds Cognee-backed memory with **multi-scope support** (com
10
10
  - **Session tracking**: Multi-turn conversation context via Cognee's session system
11
11
  - **14 search types**: From simple semantic search (CHUNKS) to chain-of-thought graph reasoning (GRAPH_COMPLETION_COT) to auto-selection (FEELING_LUCKY)
12
12
  - **Health check**: Verifies Cognee API connectivity before operations
13
- - **Auto-index**: Syncs memory markdown files to Cognee (add new, update changed, delete removed, skip unchanged)
14
- - **Memify support**: Optional graph enrichment after cognify for better entity consolidation
13
+ - **Auto-index**: Syncs memory markdown files to Cognee via `/remember` (add new, update changed, forget removed, skip unchanged). The `/remember` endpoint runs ingest, graph build, and graph enrichment in one server-side call.
14
+ - **In-session memory**: each recall call auto-captures the turn as a `QAEntry` in Cognee's session cache; with `AUTO_FEEDBACK=true` set on the Cognee container, follow-up messages are auto-classified as feedback and attached to the previous QA; `session_end` triggers `/improve` to bridge the session cache into the graph
15
15
  - **One-command setup**: `openclaw cognee setup` configures Cognee as the sole memory provider
16
- - **CLI commands**: `openclaw cognee setup`, `openclaw cognee index`, `openclaw cognee status`, `openclaw cognee health`, `openclaw cognee scopes`
16
+ - **CLI commands**: `openclaw cognee setup`, `openclaw cognee index`, `openclaw cognee status`, `openclaw cognee health`, `openclaw cognee scopes`, `openclaw cognee forget`, `openclaw cognee improve`
17
17
 
18
18
  ## Security: Recommended Plugin Allowlist
19
19
 
@@ -43,7 +43,7 @@ Or once published:
43
43
 
44
44
  ```bash
45
45
  # Pin to an exact version to avoid unintended updates (supply-chain best practice)
46
- openclaw plugins install @cognee/cognee-openclaw@2026.3.0
46
+ openclaw plugins install @cognee/cognee-openclaw@2026.5.21
47
47
  ```
48
48
 
49
49
  ## Quick Start
@@ -54,13 +54,14 @@ After installing, run the setup command to configure Cognee as the memory provid
54
54
  # Cognee only (replaces built-in memory)
55
55
  openclaw cognee setup
56
56
 
57
- # Or keep built-in memory alongside Cognee
57
+ # Or keep built-in memory enabled in config
58
58
  openclaw cognee setup --hybrid
59
59
  ```
60
60
 
61
61
  **Default mode** disables built-in memory providers — all recall comes from Cognee.
62
62
 
63
- **Hybrid mode** keeps `memory-core` enabled the agent uses both Cognee recall and built-in memory search.
63
+ **Hybrid mode** keeps `memory-core` enabled in config, but on OpenClaw versions with exclusive memory slots only the slot winner loads at runtime.
64
+ This plugin registers its own memory flush plan, so pre-compaction flush works when Cognee owns the memory slot.
64
65
 
65
66
  Then configure the Cognee connection in `~/.openclaw/openclaw.json`:
66
67
 
@@ -69,12 +70,16 @@ plugins:
69
70
  entries:
70
71
  cognee-openclaw:
71
72
  enabled: true
73
+ hooks:
74
+ allowConversationAccess: true # see note below
72
75
  config:
73
76
  baseUrl: "http://localhost:8000"
74
77
  apiKey: "${COGNEE_API_KEY}"
75
78
  datasetName: "my-project"
76
79
  ```
77
80
 
81
+ > `hooks.allowConversationAccess` -> OpenClaw ≥ 2026.4.27 blocks non-bundled plugins from registering the `agent_end` hook unless this flag is set. Without it, file sync memory operations after each agent turn is silently disabled. The gateway still loads the plugin, but file changes the agent makes won't reach Cognee until the next manual `openclaw cognee index` or gateway start. Restart the gateway after adding the flag: `openclaw gateway stop && openclaw gateway start`.
82
+
78
83
  ### Cognee Cloud
79
84
 
80
85
  To use Cognee Cloud instead of a local instance, set `mode` to `"cloud"`:
@@ -98,9 +103,9 @@ export COGNEE_BASE_URL=https://tenant-xxx.cloud.cognee.ai/api
98
103
  export COGNEE_API_KEY=your-api-key
99
104
  ```
100
105
 
101
- **Cloud mode supported operations**: add (new files), search, cognify, delete.
106
+ **Cloud mode supported operations**: `remember` (new files), `recall`, per-item `forget`. The `/remember` and `/recall` endpoints are verified against self-hosted Cognee 1.0.3; cloud parity for these specific routes has not been validated yet — file an issue if you hit a 404.
102
107
 
103
- **Known limitation**: Updating existing data (modifying a previously synced file) is not yet supported in cloud mode. Cognee Cloud silently ignores re-adds with the same filename. To update data, delete and re-add it manually via the [Cognee Cloud platform](https://platform.cognee.ai) or the API directly. This will be supported in a future version.
108
+ **Known limitation**: Updating existing data (modifying a previously synced file) is not supported in cloud mode `PATCH /update` is self-hosted only. In cloud mode the plugin's update path is a no-op; to edit a single file in place, delete it and re-add it via the [Cognee Cloud platform](https://platform.cognee.ai) or the API directly.
104
109
 
105
110
  ## Multi-Scope Memory
106
111
 
@@ -211,10 +216,10 @@ This lets the agent distinguish between personal context, shared knowledge, and
211
216
  | Option | Type | Default | Description |
212
217
  |--------|------|---------|-------------|
213
218
  | `searchType` | string | `GRAPH_COMPLETION` | Search strategy (see below) |
214
- | `maxResults` | number | `3` | Max memories to inject per scope |
219
+ | `maxResults` | number | `3` | Max memories to inject per scope (sent as `top_k` to Cognee) |
215
220
  | `minScore` | number | `0.3` | Minimum relevance score filter |
216
- | `maxTokens` | number | `512` | Token cap for recall context per scope |
217
221
  | `searchPrompt` | string | `""` | System prompt to guide search |
222
+ | ~~`maxTokens`~~ | number | `512` | **Deprecated** — Cognee 1.0.3's recall payload no longer accepts a token cap; use `maxResults` instead. Setting this is silently ignored. |
218
223
 
219
224
  ### Search Types
220
225
 
@@ -241,10 +246,11 @@ This lets the agent distinguish between personal context, shared knowledge, and
241
246
  | Option | Type | Default | Description |
242
247
  |--------|------|---------|-------------|
243
248
  | `autoRecall` | boolean | `true` | Inject memories before agent runs |
244
- | `autoIndex` | boolean | `true` | Sync memory files on startup and after agent runs |
245
- | `autoCognify` | boolean | `true` | Run cognify after new memories are added |
246
- | `autoMemify` | boolean | `false` | Run memify (graph enrichment) after cognify |
247
- | `deleteMode` | string | `soft` | `soft` removes raw data, `hard` also removes graph nodes |
249
+ | `autoIndex` | boolean | `true` | Sync memory files on startup, after agent runs, and on session end |
250
+ | `improveOnSessionEnd` | boolean | `true` | On `session_end`, call `/improve` with the session id to bridge session-cache QAs into the graph |
251
+ | ~~`autoCognify`~~ | boolean | `true` | **Deprecated** `/remember` runs the cognify step server-side. Setting this is silently ignored. |
252
+ | ~~`autoMemify`~~ | boolean | `false` | **Deprecated** graph enrichment now runs server-side via `/remember`'s `self_improvement` default. Setting this is silently ignored. |
253
+ | ~~`deleteMode`~~ | string | `soft` | **Deprecated** — `/forget` always runs the equivalent of `soft`; the legacy `hard` mode is gone (cognee's source explicitly warns against it). Setting this is silently ignored. |
248
254
 
249
255
  ### Timeouts
250
256
 
@@ -260,7 +266,7 @@ Note: Files are stored in Cognee using sanitized relative paths as filenames (e.
260
266
  ```bash
261
267
  # Configure Cognee as the memory provider (run once after install)
262
268
  openclaw cognee setup # Cognee only
263
- openclaw cognee setup --hybrid # Cognee + built-in memory
269
+ openclaw cognee setup --hybrid # Keep built-ins enabled in config (runtime co-load depends on slot rules)
264
270
 
265
271
  # Manually sync memory files to Cognee
266
272
  openclaw cognee index
@@ -273,14 +279,23 @@ openclaw cognee health
273
279
 
274
280
  # Show memory scope routing for current workspace files
275
281
  openclaw cognee scopes
282
+
283
+ # Wipe a dataset, or all of this user's data, from Cognee
284
+ openclaw cognee forget --dataset <name>
285
+ openclaw cognee forget --everything --confirm
286
+
287
+ # Bridge captured QAs (and any feedback) into the permanent graph
288
+ openclaw cognee improve # current dataset, all sessions
289
+ openclaw cognee improve --session-id <id> # scope to one session
276
290
  ```
277
291
 
278
292
  ## How It Works
279
293
 
280
- 1. **On startup**: Health check, then scan `memory/` directory and sync files to scope-specific Cognee datasets
281
- 2. **Before agent start**: Search each configured scope in parallel, merge results with scope labels, inject as `<cognee_memories>` context
282
- 3. **After agent end**: Re-scan memory files and sync any changes (including deletions) to the correct scope datasets
283
- 4. **State tracking**:
294
+ 1. **On startup**: Health check, then scan `memory/` directory and call `/api/v1/remember` (one batched multipart upload per scope). Cognee runs add + cognify + improve server-side.
295
+ 2. **Before each prompt**: Call `/api/v1/recall` for each configured scope in parallel, merge results with scope labels, inject as `<cognee_memories>` context. The openclaw session id is passed through; Cognee uses it to auto-capture the turn as a session QA and (with `AUTO_FEEDBACK=true`) auto-attach feedback to the prior QA when one is detected.
296
+ 3. **After each agent run**: Re-scan memory files; new files batch into `/remember`, changed files go through `PATCH /update` (self-hosted) with fallback to `/remember`, removed files are dropped via `/forget`.
297
+ 4. **On session end**: Final sync sweep. With `improveOnSessionEnd` on, also dispatches `/improve` for the just-ended session id to bridge session QAs into the permanent graph.
298
+ 5. **State tracking**:
284
299
  - `~/.openclaw/memory/cognee/datasets.json` — dataset ID mapping
285
300
  - `~/.openclaw/memory/cognee/scoped-sync-indexes.json` — per-scope file hashes and data IDs
286
301
  - `~/.openclaw/memory/cognee/sync-index.json` — legacy single-scope index
@@ -14,7 +14,7 @@ export declare class CogneeHttpClient {
14
14
  login(): Promise<void>;
15
15
  ensureAuth(): Promise<void>;
16
16
  private buildHeaders;
17
- fetchJson<T>(path: string, init: RequestInit, timeoutMs?: number, retries?: number): Promise<T>;
17
+ fetchAPI<T>(path: string, init: RequestInit, timeoutMs?: number, responseParser?: (r: Response) => Promise<T>, retries?: number): Promise<T>;
18
18
  health(): Promise<{
19
19
  status: string;
20
20
  }>;
@@ -28,6 +28,29 @@ export declare class CogneeHttpClient {
28
28
  datasetName: string;
29
29
  dataId?: string;
30
30
  }>;
31
+ remember(params: {
32
+ files: {
33
+ filePath: string;
34
+ data: string;
35
+ }[];
36
+ datasetName: string;
37
+ datasetId?: string;
38
+ sessionId?: string;
39
+ nodeSet?: string[];
40
+ runInBackground?: boolean;
41
+ customPrompt?: string;
42
+ chunksPerBatch?: number;
43
+ }): Promise<{
44
+ datasetId: string;
45
+ datasetName: string;
46
+ status?: string;
47
+ pipelineRunId?: string;
48
+ items: {
49
+ filePath: string;
50
+ uploadName: string;
51
+ dataId?: string;
52
+ }[];
53
+ }>;
31
54
  update(params: {
32
55
  dataId: string;
33
56
  datasetId: string;
@@ -50,6 +73,16 @@ export declare class CogneeHttpClient {
50
73
  deleted: boolean;
51
74
  error?: string;
52
75
  }>;
76
+ forget(params: {
77
+ dataId?: string;
78
+ dataset?: string;
79
+ everything?: boolean;
80
+ }): Promise<{
81
+ datasetId?: string;
82
+ dataId?: string;
83
+ deleted: boolean;
84
+ error?: string;
85
+ }>;
53
86
  cognify(params?: {
54
87
  datasetIds?: string[];
55
88
  }): Promise<{
@@ -60,6 +93,18 @@ export declare class CogneeHttpClient {
60
93
  }): Promise<{
61
94
  status?: string;
62
95
  }>;
96
+ improve(params: {
97
+ datasetId?: string;
98
+ datasetName?: string;
99
+ extractionTasks?: string[];
100
+ enrichmentTasks?: string[];
101
+ data?: string;
102
+ nodeName?: string[];
103
+ sessionIds?: string[];
104
+ runInBackground?: boolean;
105
+ }): Promise<{
106
+ status?: string;
107
+ }>;
63
108
  search(params: {
64
109
  queryText: string;
65
110
  searchPrompt: string;
@@ -68,6 +113,15 @@ export declare class CogneeHttpClient {
68
113
  maxTokens: number;
69
114
  sessionId?: string;
70
115
  }): Promise<CogneeSearchResult[]>;
116
+ recall(params: {
117
+ queryText: string;
118
+ searchPrompt: string;
119
+ searchType: CogneeSearchType;
120
+ datasetIds: string[];
121
+ topK?: number;
122
+ sessionId?: string;
123
+ scope?: string | string[];
124
+ }): Promise<CogneeSearchResult[]>;
71
125
  listDatasets(): Promise<{
72
126
  id: string;
73
127
  name: string;
@@ -90,7 +90,7 @@ export class CogneeHttpClient {
90
90
  }
91
91
  return {};
92
92
  }
93
- async fetchJson(path, init, timeoutMs = this.timeoutMs, retries = MAX_RETRIES) {
93
+ async fetchAPI(path, init, timeoutMs = this.timeoutMs, responseParser = async (r) => (await r.json()), retries = MAX_RETRIES) {
94
94
  await this.ensureAuth();
95
95
  let lastError;
96
96
  for (let attempt = 0; attempt <= retries; attempt++) {
@@ -124,7 +124,7 @@ export class CogneeHttpClient {
124
124
  const errorText = await retryResponse.text();
125
125
  throw new Error(`Cognee request failed (${retryResponse.status}): ${errorText}`);
126
126
  }
127
- return (await retryResponse.json());
127
+ return responseParser(retryResponse);
128
128
  }
129
129
  finally {
130
130
  clearTimeout(retryTimeout);
@@ -180,7 +180,7 @@ export class CogneeHttpClient {
180
180
  if (params.datasetId) {
181
181
  formData.append("datasetId", params.datasetId);
182
182
  }
183
- data = await this.fetchJson(addPath, { method: "POST", body: formData }, this.ingestionTimeoutMs);
183
+ data = await this.fetchAPI(addPath, { method: "POST", body: formData }, this.ingestionTimeoutMs);
184
184
  let dataId = extractDataId(data.data_id ?? data.data_ingestion_info);
185
185
  if (!dataId && data.dataset_id) {
186
186
  dataId = await this.resolveDataIdFromDataset(data.dataset_id, sanitizeFilePath(params.filePath));
@@ -190,6 +190,68 @@ export class CogneeHttpClient {
190
190
  }
191
191
  return { datasetId: data.dataset_id, datasetName: data.dataset_name, dataId };
192
192
  }
193
+ // POST /api/v1/remember — combines add + cognify (+ improve) in one call.
194
+ // Cognee 1.0.3 introduced this as the recommended path for ingesting memory:
195
+ // a single multipart upload of one or more files, the server runs the full
196
+ // pipeline, and the response carries per-file `data_id`s under `items[]`.
197
+ async remember(params) {
198
+ if (params.files.length === 0) {
199
+ throw new Error("remember: at least one file is required");
200
+ }
201
+ const path = this.isCloud ? "/remember" : "/api/v1/remember";
202
+ const formData = new FormData();
203
+ const itemMappings = [];
204
+ for (const file of params.files) {
205
+ const uploadName = sanitizeFilePath(file.filePath);
206
+ formData.append("data", new Blob([file.data], { type: "text/plain" }), uploadName);
207
+ itemMappings.push({ filePath: file.filePath, uploadName });
208
+ }
209
+ formData.append("datasetName", params.datasetName);
210
+ if (params.datasetId)
211
+ formData.append("datasetId", params.datasetId);
212
+ if (params.sessionId)
213
+ formData.append("session_id", params.sessionId);
214
+ if (params.runInBackground)
215
+ formData.append("run_in_background", "true");
216
+ if (params.customPrompt)
217
+ formData.append("custom_prompt", params.customPrompt);
218
+ if (typeof params.chunksPerBatch === "number") {
219
+ formData.append("chunks_per_batch", String(params.chunksPerBatch));
220
+ }
221
+ if (params.nodeSet && params.nodeSet.length > 0) {
222
+ for (const node of params.nodeSet)
223
+ formData.append("node_set", node);
224
+ }
225
+ const response = await this.fetchAPI(path, { method: "POST", body: formData }, this.ingestionTimeoutMs);
226
+ const datasetId = response.dataset_id ?? params.datasetId ?? "";
227
+ const datasetName = response.dataset_name ?? params.datasetName;
228
+ const responseItems = Array.isArray(response.items) ? response.items : [];
229
+ // Match each request file back to its response item by upload filename.
230
+ // Cognee's ingestion pipeline derives `Data.name` from the upload's
231
+ // filename via `Path(filename).stem`; our sanitizer already replaces
232
+ // dots with dashes, so the stem equals the sanitized name.
233
+ const itemsByName = new Map();
234
+ for (const item of responseItems) {
235
+ if (item && typeof item.name === "string") {
236
+ itemsByName.set(item.name, item);
237
+ }
238
+ }
239
+ const items = await Promise.all(itemMappings.map(async ({ filePath, uploadName }) => {
240
+ const matched = itemsByName.get(uploadName);
241
+ let dataId = matched?.id;
242
+ if (!dataId && datasetId) {
243
+ dataId = await this.resolveDataIdFromDataset(datasetId, uploadName);
244
+ }
245
+ return { filePath, uploadName, dataId };
246
+ }));
247
+ return {
248
+ datasetId,
249
+ datasetName,
250
+ status: response.status,
251
+ pipelineRunId: response.pipeline_run_id,
252
+ items,
253
+ };
254
+ }
193
255
  async update(params) {
194
256
  if (this.isCloud) {
195
257
  // Cloud: update is not supported
@@ -201,7 +263,7 @@ export class CogneeHttpClient {
201
263
  const formData = new FormData();
202
264
  const fileName = sanitizeFilePath(params.filePath);
203
265
  formData.append("data", new Blob([params.data], { type: "text/plain" }), fileName);
204
- const data = await this.fetchJson(`/api/v1/update?${query.toString()}`, { method: "PATCH", body: formData }, this.ingestionTimeoutMs);
266
+ const data = await this.fetchAPI(`/api/v1/update?${query.toString()}`, { method: "PATCH", body: formData }, this.ingestionTimeoutMs);
205
267
  let dataId = extractDataId(data.data_id ?? data.data_ingestion_info);
206
268
  if (!dataId) {
207
269
  dataId = await this.resolveDataIdFromDataset(params.datasetId, sanitizeFilePath(params.filePath));
@@ -211,7 +273,7 @@ export class CogneeHttpClient {
211
273
  async resolveDataIdFromDataset(datasetId, fileName) {
212
274
  try {
213
275
  const path = this.isCloud ? `/datasets/${datasetId}/data` : `/api/v1/datasets/${datasetId}/data`;
214
- const items = await this.fetchJson(path, { method: "GET" });
276
+ const items = await this.fetchAPI(path, { method: "GET" });
215
277
  if (!Array.isArray(items))
216
278
  return undefined;
217
279
  const match = items.find((item) => item.name === fileName);
@@ -225,11 +287,11 @@ export class CogneeHttpClient {
225
287
  try {
226
288
  if (this.isCloud) {
227
289
  // Cloud: DELETE /datasets/{datasetId}/data/{dataId}
228
- await this.fetchJson(`/datasets/${params.datasetId}/data/${params.dataId}`, { method: "DELETE" });
290
+ await this.fetchAPI(`/datasets/${params.datasetId}/data/${params.dataId}`, { method: "DELETE" });
229
291
  }
230
292
  else {
231
293
  const query = new URLSearchParams({ data_id: params.dataId, dataset_id: params.datasetId, mode: params.mode ?? "soft" });
232
- await this.fetchJson(`/api/v1/delete?${query.toString()}`, { method: "DELETE" });
294
+ await this.fetchAPI(`/api/v1/delete?${query.toString()}`, { method: "DELETE" });
233
295
  }
234
296
  return { datasetId: params.datasetId, dataId: params.dataId, deleted: true };
235
297
  }
@@ -237,9 +299,55 @@ export class CogneeHttpClient {
237
299
  return { datasetId: params.datasetId, dataId: params.dataId, deleted: false, error: error instanceof Error ? error.message : String(error) };
238
300
  }
239
301
  }
302
+ // POST /api/v1/forget — unified deletion (per-item / per-dataset / everything).
303
+ // Pass `dataset` as the name, not the UUID (cognee 1.0.3 type-coerces a
304
+ // UUID-formatted string to str and falls through to a by-name lookup).
305
+ // Cloud now uses /forget as the primary route too, with a fallback to
306
+ // legacy per-item DELETE for older deployments that don't expose /forget.
307
+ async forget(params) {
308
+ try {
309
+ const body = {};
310
+ if (params.everything)
311
+ body.everything = true;
312
+ if (params.dataset)
313
+ body.dataset = params.dataset;
314
+ if (params.dataId)
315
+ body.data_id = params.dataId;
316
+ const forgetPath = this.isCloud ? "/forget" : "/api/v1/forget";
317
+ try {
318
+ await this.fetchAPI(forgetPath, {
319
+ method: "POST",
320
+ headers: { "Content-Type": "application/json" },
321
+ body: JSON.stringify(body),
322
+ });
323
+ }
324
+ catch (error) {
325
+ // Backward compatibility: older cloud deployments may not expose /forget.
326
+ // In that case, fall back to per-item DELETE when enough identifiers are provided.
327
+ const msg = error instanceof Error ? error.message : String(error);
328
+ const missingForgetEndpoint = msg.includes("(404)") || msg.includes("(405)");
329
+ const canUseLegacyDelete = this.isCloud && !!params.dataset && !!params.dataId;
330
+ if (!missingForgetEndpoint || !canUseLegacyDelete) {
331
+ throw error;
332
+ }
333
+ await this.fetchAPI(`/datasets/${params.dataset}/data/${params.dataId}`, {
334
+ method: "DELETE",
335
+ });
336
+ }
337
+ return { datasetId: params.dataset, dataId: params.dataId, deleted: true };
338
+ }
339
+ catch (error) {
340
+ return {
341
+ datasetId: params.dataset,
342
+ dataId: params.dataId,
343
+ deleted: false,
344
+ error: error instanceof Error ? error.message : String(error),
345
+ };
346
+ }
347
+ }
240
348
  async cognify(params = {}) {
241
349
  const path = this.isCloud ? "/cognify" : "/api/v1/cognify";
242
- return this.fetchJson(path, {
350
+ return this.fetchAPI(path, {
243
351
  method: "POST",
244
352
  headers: { "Content-Type": "application/json" },
245
353
  body: JSON.stringify({ datasetIds: params.datasetIds, runInBackground: true, temporal_cognify: true }),
@@ -247,15 +355,37 @@ export class CogneeHttpClient {
247
355
  }
248
356
  async memify(params = {}) {
249
357
  const datasetId = params.datasetIds?.[0];
250
- return this.fetchJson("/api/v1/memify", {
358
+ return this.fetchAPI("/api/v1/memify", {
251
359
  method: "POST",
252
360
  headers: { "Content-Type": "application/json" },
253
361
  body: JSON.stringify({ dataset_id: datasetId }),
254
362
  });
255
363
  }
364
+ // POST /api/v1/improve — Cognee 1.0.3's memory-oriented alias for /memify.
365
+ // Adds `session_ids` so callers can bridge session-cache content into the
366
+ // permanent graph. /remember already runs improve server-side via
367
+ // self_improvement=true, so the openclaw plugin doesn't need to call this
368
+ // directly during normal sync — it's exposed for downstream consumers.
369
+ async improve(params) {
370
+ const path = this.isCloud ? "/improve" : "/api/v1/improve";
371
+ return this.fetchAPI(path, {
372
+ method: "POST",
373
+ headers: { "Content-Type": "application/json" },
374
+ body: JSON.stringify({
375
+ ...(params.datasetId ? { dataset_id: params.datasetId } : {}),
376
+ ...(params.datasetName ? { dataset_name: params.datasetName } : {}),
377
+ ...(params.extractionTasks ? { extraction_tasks: params.extractionTasks } : {}),
378
+ ...(params.enrichmentTasks ? { enrichment_tasks: params.enrichmentTasks } : {}),
379
+ ...(params.data ? { data: params.data } : {}),
380
+ ...(params.nodeName ? { node_name: params.nodeName } : {}),
381
+ ...(params.sessionIds ? { session_ids: params.sessionIds } : {}),
382
+ ...(typeof params.runInBackground === "boolean" ? { run_in_background: params.runInBackground } : {}),
383
+ }),
384
+ });
385
+ }
256
386
  async search(params) {
257
387
  const searchPath = this.isCloud ? "/search" : "/api/v1/search";
258
- const data = await this.fetchJson(searchPath, {
388
+ const data = await this.fetchAPI(searchPath, {
259
389
  method: "POST",
260
390
  headers: { "Content-Type": "application/json" },
261
391
  body: JSON.stringify({
@@ -269,23 +399,45 @@ export class CogneeHttpClient {
269
399
  });
270
400
  return normalizeSearchResults(data);
271
401
  }
402
+ // POST /api/v1/recall — Cognee 1.0.3's memory-oriented alias for /search.
403
+ // Mirrors the search payload but adds session_id + scope, so results can
404
+ // mix session-cache hits with graph hits when sessions are enabled.
405
+ async recall(params) {
406
+ const recallPath = this.isCloud ? "/recall" : "/api/v1/recall";
407
+ const data = await this.fetchAPI(recallPath, {
408
+ method: "POST",
409
+ headers: { "Content-Type": "application/json" },
410
+ body: JSON.stringify({
411
+ query: params.queryText,
412
+ search_type: params.searchType,
413
+ dataset_ids: params.datasetIds,
414
+ ...(typeof params.topK === "number" ? { top_k: params.topK } : {}),
415
+ ...(params.searchPrompt ? { system_prompt: params.searchPrompt } : {}),
416
+ ...(params.sessionId ? { session_id: params.sessionId } : {}),
417
+ ...(params.scope ? { scope: params.scope } : {}),
418
+ }),
419
+ });
420
+ return normalizeSearchResults(data);
421
+ }
272
422
  async listDatasets() {
273
423
  const path = this.isCloud ? "/datasets" : "/api/v1/datasets";
274
- return this.fetchJson(path, { method: "GET" });
424
+ return this.fetchAPI(path, { method: "GET" });
275
425
  }
276
426
  async visualise(datasetId) {
277
427
  const path = this.isCloud
278
- ? `/visualise?dataset_id=${datasetId}`
279
- : `/api/v1/visualise?dataset_id=${datasetId}`;
280
- return this.fetchJson(path, { method: "GET" });
428
+ ? `/visualize?dataset_id=${datasetId}`
429
+ : `/api/v1/visualize?dataset_id=${datasetId}`;
430
+ return this.fetchAPI(path, { method: "GET" }, this.timeoutMs, async (r) => (await r.text()));
281
431
  }
282
432
  /**
283
433
  * Poll cognify pipeline status. Returns the status string ("completed", "running", "failed", etc.).
284
434
  */
285
435
  async datasetStatus(datasetId) {
286
- const path = this.isCloud ? `/datasets/status?dataset_id=${datasetId}` : `/api/v1/datasets/status?dataset_id=${datasetId}`;
287
- const resp = await this.fetchJson(path, { method: "GET" });
288
- // Response is a dict keyed by dataset ID: { [datasetId]: "DATASET_PROCESSING_COMPLETED" }
436
+ // Cognee 1.0.3 renamed the query param from `dataset_id` to `dataset`.
437
+ const path = this.isCloud ? `/datasets/status?dataset=${datasetId}` : `/api/v1/datasets/status?dataset=${datasetId}`;
438
+ const resp = await this.fetchAPI(path, { method: "GET" });
439
+ // 1.0.3 returns lowercase enum values (e.g. "completed"); legacy responses used
440
+ // "DATASET_PROCESSING_COMPLETED". The replace below normalizes both.
289
441
  const status = resp[datasetId] ?? Object.values(resp)[0] ?? "unknown";
290
442
  return status.toLowerCase().replace("dataset_processing_", "");
291
443
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAE7C,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,8EAA8E;AAE9E,MAAM,OAAO,gBAAgB;IAKhB;IACQ;IACA;IACA;IACA;IACR;IACA;IAVH,SAAS,CAAqB;IAC9B,YAAY,CAA4B;IAEhD,YACW,OAAe,EACP,MAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,YAAoB,kBAAkB,EAC9C,qBAA6B,4BAA4B,EACzD,OAAmB,OAAO;QAN1B,YAAO,GAAP,OAAO,CAAQ;QACP,WAAM,GAAN,MAAM,CAAS;QACf,aAAQ,GAAR,QAAQ,CAAS;QACjB,aAAQ,GAAR,QAAQ,CAAS;QACjB,cAAS,GAAT,SAAS,CAA6B;QAC9C,uBAAkB,GAAlB,kBAAkB,CAAuC;QACzD,SAAI,GAAJ,IAAI,CAAsB;IACjC,CAAC;IAEL,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC7D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA8C,CAAC;YAClF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,IAAiB,EACjB,SAAS,GAAG,IAAI,CAAC,SAAS,EAC1B,OAAO,GAAG,WAAW;QAErB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,IAAI,SAAkB,CAAC;QACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;oBACrD,GAAG,IAAI;oBACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAI,IAAI,CAAC,OAAkC,EAAE;oBAChF,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,sCAAsC;gBACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5C,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;oBAC9B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBAExB,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;oBAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC1E,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;4BAC1D,GAAG,IAAI;4BACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAI,IAAI,CAAC,OAAkC,EAAE;4BAChF,MAAM,EAAE,eAAe,CAAC,MAAM;yBAC/B,CAAC,CAAC;wBACH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;4BACtB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;4BAC7C,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;wBACnF,CAAC;wBACD,OAAO,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAM,CAAC;oBAC3C,CAAC;4BAAS,CAAC;wBACT,YAAY,CAAC,YAAY,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,SAAS,GACb,KAAK,YAAY,YAAY;oBAC7B,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;gBAC1D,IAAI,SAAS,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;oBACnC,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,MAAM;QACV,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE;gBACrD,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,GAAG,CAAC,MAKT;QACC,IAAI,IAAuB,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnF,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CACzB,OAAO,EACP,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClC,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,yEAAyE,EACzE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3I,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAMZ;QACC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,iCAAiC;YACjC,0EAA0E;YAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACrH,CAAC;QAED,8BAA8B;QAC9B,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEnF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC/B,kBAAkB,KAAK,CAAC,QAAQ,EAAE,EAAE,EACpC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EACnC,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,SAAiB,EAAE,QAAgB;QAChE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,SAAS,OAAO,CAAC,CAAC,CAAC,oBAAoB,SAAS,OAAO,CAAC;YAEjG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAa,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC3D,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAIZ;QACC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,oDAAoD;gBACpD,MAAM,IAAI,CAAC,SAAS,CAAU,aAAa,MAAM,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7G,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;gBACzH,MAAM,IAAI,CAAC,SAAS,CAAU,kBAAkB,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/I,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAoC,EAAE;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAsB,IAAI,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACvG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAoC,EAAE;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,SAAS,CAAsB,gBAAgB,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAOZ;QACC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAU,UAAU,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,MAAM,CAAC,SAAS;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC;SACH,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAiC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;YACvB,CAAC,CAAC,yBAAyB,SAAS,EAAE;YACtC,CAAC,CAAC,gCAAgC,SAAS,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAU,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC,CAAC,sCAAsC,SAAS,EAAE,CAAC;QAC3H,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAyB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,0FAA0F;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACtE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,KAA6D,CAAC;IAC7E,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC9D,OAAO,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAa;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAA+B,CAAC;gBAE/C,iFAAiF;gBACjF,IAAI,IAAY,CAAC;gBACjB,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACpC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACrB,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/C,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC;qBAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACpD,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBAED,OAAO;oBACL,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;wBAC3C,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;4BACzD,CAAC,CAAC,UAAU,KAAK,EAAE;oBACvB,IAAI;oBACJ,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1D,QAAQ,EAAE,MAAM,CAAC,QAA+C;iBACjE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC1D,OAAO,sBAAsB,CAAE,IAA6B,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAWA,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAE7C,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,8EAA8E;AAE9E,MAAM,OAAO,gBAAgB;IAKhB;IACQ;IACA;IACA;IACA;IACR;IACA;IAVH,SAAS,CAAqB;IAC9B,YAAY,CAA4B;IAEhD,YACW,OAAe,EACP,MAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,YAAoB,kBAAkB,EAC9C,qBAA6B,4BAA4B,EACzD,OAAmB,OAAO;QAN1B,YAAO,GAAP,OAAO,CAAQ;QACP,WAAM,GAAN,MAAM,CAAS;QACf,aAAQ,GAAR,QAAQ,CAAS;QACjB,aAAQ,GAAR,QAAQ,CAAS;QACjB,cAAS,GAAT,SAAS,CAA6B;QAC9C,uBAAkB,GAAlB,kBAAkB,CAAuC;QACzD,SAAI,GAAJ,IAAI,CAAsB;IACjC,CAAC;IAEL,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC7D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA8C,CAAC;YAClF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,IAAiB,EACjB,SAAS,GAAG,IAAI,CAAC,SAAS,EAC1B,iBAA8C,KAAK,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAM,EAC1F,OAAO,GAAG,WAAW;QAErB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,IAAI,SAAkB,CAAC;QACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;oBACrD,GAAG,IAAI;oBACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAI,IAAI,CAAC,OAAkC,EAAE;oBAChF,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,sCAAsC;gBACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5C,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;oBAC9B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBAExB,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;oBAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC1E,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;4BAC1D,GAAG,IAAI;4BACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAI,IAAI,CAAC,OAAkC,EAAE;4BAChF,MAAM,EAAE,eAAe,CAAC,MAAM;yBAC/B,CAAC,CAAC;wBACH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;4BACtB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;4BAC7C,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;wBACnF,CAAC;wBACD,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC;oBACvC,CAAC;4BAAS,CAAC;wBACT,YAAY,CAAC,YAAY,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,SAAS,GACb,KAAK,YAAY,YAAY;oBAC7B,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;gBAC1D,IAAI,SAAS,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;oBACnC,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,MAAM;QACV,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE;gBACrD,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,GAAG,CAAC,MAKT;QACC,IAAI,IAAuB,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnF,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CACxB,OAAO,EACP,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClC,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,yEAAyE,EACzE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3I,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChF,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,KAAK,CAAC,QAAQ,CAAC,MASd;QAOC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,YAAY,GAA+C,EAAE,CAAC;QAEpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YACnF,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,eAAe;YAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,YAAY;YAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/E,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC9C,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO;gBAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,IAAI,EACJ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClC,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,CAAC;QAChE,MAAM,aAAa,GAAyB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhG,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1C,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,MAAM,GAAG,OAAO,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,CACH,CAAC;QAEF,OAAO;YACL,SAAS;YACT,WAAW;YACX,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,QAAQ,CAAC,eAAe;YACvC,KAAK;SACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAMZ;QACC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,iCAAiC;YACjC,0EAA0E;YAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACrH,CAAC;QAED,8BAA8B;QAC9B,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEnF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC9B,kBAAkB,KAAK,CAAC,QAAQ,EAAE,EAAE,EACpC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EACnC,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,SAAiB,EAAE,QAAgB;QAChE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,SAAS,OAAO,CAAC,CAAC,CAAC,oBAAoB,SAAS,OAAO,CAAC;YAEjG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAa,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC3D,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAIZ;QACC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,oDAAoD;gBACpD,MAAM,IAAI,CAAC,QAAQ,CAAU,aAAa,MAAM,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5G,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;gBACzH,MAAM,IAAI,CAAC,QAAQ,CAAU,kBAAkB,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/I,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,0EAA0E;IAC1E,KAAK,CAAC,MAAM,CAAC,MAIZ;QACC,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,UAAU;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9C,IAAI,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAClD,IAAI,MAAM,CAAC,MAAM;gBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAU,UAAU,EAAE;oBACvC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0EAA0E;gBAC1E,mFAAmF;gBACnF,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,MAAM,qBAAqB,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC7E,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC/E,IAAI,CAAC,qBAAqB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAClD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAU,aAAa,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,EAAE;oBAChF,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,OAAO;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAoC,EAAE;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAsB,IAAI,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACvG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAoC,EAAE;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAsB,gBAAgB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,kEAAkE;IAClE,0EAA0E;IAC1E,uEAAuE;IACvE,KAAK,CAAC,OAAO,CAAC,MASb;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAsB,IAAI,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtG,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAOZ;QACC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAU,UAAU,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,MAAM,CAAC,SAAS;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC;SACH,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,oEAAoE;IACpE,KAAK,CAAC,MAAM,CAAC,MAQZ;QACC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAU,UAAU,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,MAAM,CAAC,SAAS;gBACvB,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC;SACH,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAiC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;YACvB,CAAC,CAAC,yBAAyB,SAAS,EAAE;YACtC,CAAC,CAAC,gCAAgC,SAAS,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,EACJ,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,IAAI,CAAC,SAAS,EACd,KAAK,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,uEAAuE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC,CAAC,mCAAmC,SAAS,EAAE,CAAC;QACrH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAyB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,gFAAgF;QAChF,qEAAqE;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACtE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,KAA6D,CAAC;IAC7E,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAC9D,OAAO,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAa;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAA+B,CAAC;gBAE/C,iFAAiF;gBACjF,IAAI,IAAY,CAAC;gBACjB,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACpC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACrB,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/C,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC;qBAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACpD,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBAED,OAAO;oBACL,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;wBAC3C,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;4BACzD,CAAC,CAAC,UAAU,KAAK,EAAE;oBACvB,IAAI;oBACJ,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1D,QAAQ,EAAE,MAAM,CAAC,QAA+C;iBACjE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC1D,OAAO,sBAAsB,CAAE,IAA6B,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -11,6 +11,7 @@ export declare const DEFAULT_AUTO_RECALL = true;
11
11
  export declare const DEFAULT_AUTO_INDEX = true;
12
12
  export declare const DEFAULT_AUTO_COGNIFY = true;
13
13
  export declare const DEFAULT_AUTO_MEMIFY = false;
14
+ export declare const DEFAULT_IMPROVE_ON_SESSION_END = true;
14
15
  export declare const DEFAULT_REQUEST_TIMEOUT_MS = 60000;
15
16
  export declare const DEFAULT_INGESTION_TIMEOUT_MS = 300000;
16
17
  export declare const DEFAULT_RECALL_SCOPES: MemoryScope[];
@@ -13,6 +13,7 @@ export const DEFAULT_AUTO_RECALL = true;
13
13
  export const DEFAULT_AUTO_INDEX = true;
14
14
  export const DEFAULT_AUTO_COGNIFY = true;
15
15
  export const DEFAULT_AUTO_MEMIFY = false;
16
+ export const DEFAULT_IMPROVE_ON_SESSION_END = true;
16
17
  export const DEFAULT_REQUEST_TIMEOUT_MS = 60_000;
17
18
  export const DEFAULT_INGESTION_TIMEOUT_MS = 300_000;
18
19
  export const DEFAULT_RECALL_SCOPES = ["agent", "user", "company"];
@@ -60,6 +61,7 @@ export function resolveConfig(rawConfig) {
60
61
  const autoIndex = typeof raw.autoIndex === "boolean" ? raw.autoIndex : DEFAULT_AUTO_INDEX;
61
62
  const autoCognify = typeof raw.autoCognify === "boolean" ? raw.autoCognify : DEFAULT_AUTO_COGNIFY;
62
63
  const autoMemify = typeof raw.autoMemify === "boolean" ? raw.autoMemify : DEFAULT_AUTO_MEMIFY;
64
+ const improveOnSessionEnd = typeof raw.improveOnSessionEnd === "boolean" ? raw.improveOnSessionEnd : DEFAULT_IMPROVE_ON_SESSION_END;
63
65
  const requestTimeoutMs = typeof raw.requestTimeoutMs === "number" ? raw.requestTimeoutMs : DEFAULT_REQUEST_TIMEOUT_MS;
64
66
  const ingestionTimeoutMs = typeof raw.ingestionTimeoutMs === "number" ? raw.ingestionTimeoutMs : DEFAULT_INGESTION_TIMEOUT_MS;
65
67
  const apiKey = raw.apiKey && raw.apiKey.length > 0 ? resolveEnvVars(raw.apiKey)
@@ -71,6 +73,7 @@ export function resolveConfig(rawConfig) {
71
73
  const companyDataset = raw.companyDataset?.trim() || "";
72
74
  const userDatasetPrefix = raw.userDatasetPrefix?.trim() || "";
73
75
  const agentDatasetPrefix = raw.agentDatasetPrefix?.trim() || "";
76
+ const agentDatasetTemplate = raw.agentDatasetTemplate?.trim() || "";
74
77
  const userId = raw.userId?.trim() || process.env.OPENCLAW_USER_ID || "";
75
78
  const agentId = raw.agentId?.trim() || process.env.OPENCLAW_AGENT_ID || "default";
76
79
  const recallScopes = Array.isArray(raw.recallScopes) ? raw.recallScopes : DEFAULT_RECALL_SCOPES;
@@ -86,13 +89,13 @@ export function resolveConfig(rawConfig) {
86
89
  const persistSessionsAfterEnd = typeof raw.persistSessionsAfterEnd === "boolean" ? raw.persistSessionsAfterEnd : true;
87
90
  return {
88
91
  mode, baseUrl, apiKey, username, password, datasetName,
89
- companyDataset, userDatasetPrefix, agentDatasetPrefix, userId, agentId,
92
+ companyDataset, userDatasetPrefix, agentDatasetPrefix, agentDatasetTemplate, userId, agentId,
90
93
  recallScopes, defaultWriteScope, scopeRouting,
91
94
  recallInjectionPosition,
92
95
  enableSessions, persistSessionsAfterEnd,
93
96
  searchType, searchPrompt, deleteMode,
94
97
  maxResults, minScore, maxTokens,
95
- autoRecall, autoIndex, autoCognify, autoMemify,
98
+ autoRecall, autoIndex, autoCognify, autoMemify, improveOnSessionEnd,
96
99
  requestTimeoutMs, ingestionTimeoutMs,
97
100
  };
98
101
  }