@cognee/cognee-openclaw 2026.3.0 → 2026.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,122 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Glob matching — uses picomatch-style algorithm (*, **, ?)
3
+ //
4
+ // Fix #3: Proper glob support instead of naive regex. Handles:
5
+ // * — any non-separator chars in one segment
6
+ // ** — any depth of segments
7
+ // ? — single non-separator char
8
+ // [abc] — character class
9
+ // ---------------------------------------------------------------------------
10
+ /**
11
+ * Convert a glob pattern to a RegExp. Supports *, **, ?, and [charclass].
12
+ */
13
+ function globToRegex(pattern) {
14
+ let i = 0;
15
+ let regex = "^";
16
+ while (i < pattern.length) {
17
+ const c = pattern[i];
18
+ if (c === "*") {
19
+ if (pattern[i + 1] === "*") {
20
+ // ** — match any depth
21
+ // Consume optional trailing slash
22
+ if (pattern[i + 2] === "/") {
23
+ regex += "(?:.+/)?";
24
+ i += 3;
25
+ }
26
+ else {
27
+ regex += ".*";
28
+ i += 2;
29
+ }
30
+ }
31
+ else {
32
+ // * — match within one segment
33
+ regex += "[^/]*";
34
+ i++;
35
+ }
36
+ }
37
+ else if (c === "?") {
38
+ regex += "[^/]";
39
+ i++;
40
+ }
41
+ else if (c === "[") {
42
+ // Character class — pass through until ]
43
+ const start = i;
44
+ i++; // skip [
45
+ if (i < pattern.length && pattern[i] === "!") {
46
+ regex += "[^";
47
+ i++;
48
+ }
49
+ else {
50
+ regex += "[";
51
+ }
52
+ while (i < pattern.length && pattern[i] !== "]") {
53
+ regex += escapeRegexChar(pattern[i]);
54
+ i++;
55
+ }
56
+ regex += "]";
57
+ i++; // skip ]
58
+ }
59
+ else if (".+^${}()|\\".includes(c)) {
60
+ regex += "\\" + c;
61
+ i++;
62
+ }
63
+ else {
64
+ regex += c;
65
+ i++;
66
+ }
67
+ }
68
+ regex += "$";
69
+ return new RegExp(regex);
70
+ }
71
+ function escapeRegexChar(c) {
72
+ if ("-]\\^".includes(c))
73
+ return "\\" + c;
74
+ return c;
75
+ }
76
+ /**
77
+ * Match a file path against a glob pattern.
78
+ * Paths are normalized to forward slashes.
79
+ */
80
+ export function matchGlob(pattern, filePath) {
81
+ const normalizedPath = filePath.replace(/\\/g, "/");
82
+ const normalizedPattern = pattern.replace(/\\/g, "/");
83
+ return globToRegex(normalizedPattern).test(normalizedPath);
84
+ }
85
+ /**
86
+ * Route a file to its memory scope based on scopeRouting rules.
87
+ * First matching rule wins; falls back to defaultScope.
88
+ */
89
+ export function routeFileToScope(filePath, routes, defaultScope) {
90
+ const normalized = filePath.replace(/\\/g, "/");
91
+ for (const route of routes) {
92
+ if (matchGlob(route.pattern, normalized)) {
93
+ return route.scope;
94
+ }
95
+ }
96
+ return defaultScope;
97
+ }
98
+ /**
99
+ * Determine whether multi-scope mode is active.
100
+ * Active when at least one scope-specific dataset prefix/name is configured.
101
+ */
102
+ export function isMultiScopeEnabled(cfg) {
103
+ return !!(cfg.companyDataset || cfg.userDatasetPrefix || cfg.agentDatasetPrefix);
104
+ }
105
+ /**
106
+ * Resolve the Cognee dataset name for a given memory scope.
107
+ */
108
+ export function datasetNameForScope(scope, cfg) {
109
+ switch (scope) {
110
+ case "company":
111
+ return cfg.companyDataset || `${cfg.datasetName}-company`;
112
+ case "user":
113
+ return cfg.userDatasetPrefix
114
+ ? `${cfg.userDatasetPrefix}-${cfg.userId || "default"}`
115
+ : `${cfg.datasetName}-user-${cfg.userId || "default"}`;
116
+ case "agent":
117
+ return cfg.agentDatasetPrefix
118
+ ? `${cfg.agentDatasetPrefix}-${cfg.agentId || "default"}`
119
+ : `${cfg.datasetName}-agent-${cfg.agentId || "default"}`;
120
+ }
121
+ }
122
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CogneeHttpClient } from "./client.js";
2
+ import type { CogneePluginConfig, MemoryFile, MemoryScope, ScopedSyncIndexes, SyncIndex, SyncResult } from "./types.js";
3
+ export declare function syncFiles(client: CogneeHttpClient, changedFiles: MemoryFile[], fullFiles: MemoryFile[], syncIndex: SyncIndex, cfg: Required<CogneePluginConfig>, logger: {
4
+ info?: (msg: string) => void;
5
+ warn?: (msg: string) => void;
6
+ }, overrideDatasetName?: string): Promise<SyncResult & {
7
+ datasetId?: string;
8
+ }>;
9
+ export declare function syncFilesScoped(client: CogneeHttpClient, changedFiles: MemoryFile[], fullFiles: MemoryFile[], scopedIndexes: ScopedSyncIndexes, cfg: Required<CogneePluginConfig>, logger: {
10
+ info?: (msg: string) => void;
11
+ warn?: (msg: string) => void;
12
+ }): Promise<SyncResult & {
13
+ datasetIds: Record<MemoryScope, string | undefined>;
14
+ }>;
15
+ /** Exported so tests can override */
16
+ export declare let COGNIFY_POLL_INTERVAL_MS: number;
17
+ /** Allow tests to adjust the poll interval */
18
+ export declare function _setPollInterval(ms: number): void;
@@ -0,0 +1,219 @@
1
+ import { loadDatasetState, saveDatasetState, saveScopedSyncIndexes, saveSyncIndex } from "./persistence.js";
2
+ import { datasetNameForScope, routeFileToScope } from "./scope.js";
3
+ // ---------------------------------------------------------------------------
4
+ // Single-scope sync
5
+ // ---------------------------------------------------------------------------
6
+ export async function syncFiles(client, changedFiles, fullFiles, syncIndex, cfg, logger, overrideDatasetName) {
7
+ const result = { added: 0, updated: 0, skipped: 0, errors: 0, deleted: 0 };
8
+ const dsName = overrideDatasetName || cfg.datasetName;
9
+ let datasetId = syncIndex.datasetId;
10
+ let needsCognify = false;
11
+ for (const file of changedFiles) {
12
+ const existing = syncIndex.entries[file.path];
13
+ if (existing && existing.hash === file.hash) {
14
+ result.skipped++;
15
+ continue;
16
+ }
17
+ const dataWithMetadata = `# ${file.path}\n\n${file.content}\n\n---\nMetadata: ${JSON.stringify({ path: file.path, source: "memory" })}`;
18
+ try {
19
+ if (existing?.dataId && datasetId) {
20
+ try {
21
+ const updateResponse = await client.update({
22
+ dataId: existing.dataId,
23
+ datasetId,
24
+ data: dataWithMetadata,
25
+ });
26
+ const newDataId = updateResponse.dataId;
27
+ if (!newDataId) {
28
+ logger.warn?.(`cognee-openclaw: update for ${file.path} succeeded but could not resolve new data_id`);
29
+ }
30
+ syncIndex.entries[file.path] = { hash: file.hash, dataId: newDataId };
31
+ syncIndex.datasetId = datasetId;
32
+ syncIndex.datasetName = dsName;
33
+ result.updated++;
34
+ logger.info?.(`cognee-openclaw: updated ${file.path}`);
35
+ continue;
36
+ }
37
+ catch (updateError) {
38
+ const errorMsg = updateError instanceof Error ? updateError.message : String(updateError);
39
+ if (errorMsg.includes("404") || errorMsg.includes("409") || errorMsg.includes("not found")) {
40
+ logger.info?.(`cognee-openclaw: update failed for ${file.path}, falling back to add`);
41
+ delete existing.dataId;
42
+ }
43
+ else {
44
+ throw updateError;
45
+ }
46
+ }
47
+ }
48
+ const response = await client.add({ data: dataWithMetadata, datasetName: dsName, datasetId });
49
+ if (response.datasetId && response.datasetId !== datasetId) {
50
+ datasetId = response.datasetId;
51
+ const state = await loadDatasetState();
52
+ state[dsName] = response.datasetId;
53
+ await saveDatasetState(state);
54
+ }
55
+ syncIndex.entries[file.path] = { hash: file.hash, dataId: response.dataId };
56
+ syncIndex.datasetId = datasetId;
57
+ syncIndex.datasetName = dsName;
58
+ needsCognify = true;
59
+ result.added++;
60
+ logger.info?.(`cognee-openclaw: added ${file.path}`);
61
+ }
62
+ catch (error) {
63
+ result.errors++;
64
+ logger.warn?.(`cognee-openclaw: failed to sync ${file.path}: ${error instanceof Error ? error.message : String(error)}`);
65
+ }
66
+ }
67
+ // Handle deletions
68
+ const currentPaths = new Set(fullFiles.map(f => f.path));
69
+ for (const [path, entry] of Object.entries(syncIndex.entries)) {
70
+ if (!currentPaths.has(path) && entry.dataId && datasetId) {
71
+ const deleteResult = await client.delete({ dataId: entry.dataId, datasetId, mode: cfg.deleteMode });
72
+ if (deleteResult.deleted) {
73
+ result.deleted++;
74
+ delete syncIndex.entries[path];
75
+ logger.info?.(`cognee-openclaw: deleted ${path}`);
76
+ }
77
+ else {
78
+ const isNotFound = deleteResult.error && (deleteResult.error.includes("404") || deleteResult.error.includes("409") || deleteResult.error.includes("not found"));
79
+ if (isNotFound) {
80
+ result.deleted++;
81
+ delete syncIndex.entries[path];
82
+ logger.info?.(`cognee-openclaw: deleted ${path} (already removed from Cognee)`);
83
+ }
84
+ else {
85
+ result.errors++;
86
+ logger.warn?.(`cognee-openclaw: failed to delete ${path}${deleteResult.error ? `: ${deleteResult.error}` : ""}`);
87
+ }
88
+ }
89
+ }
90
+ }
91
+ // Fix #9: Only trigger memify AFTER polling cognify to completion
92
+ if (needsCognify && cfg.autoCognify && datasetId) {
93
+ try {
94
+ await client.cognify({ datasetIds: [datasetId] });
95
+ logger.info?.("cognee-openclaw: cognify dispatched");
96
+ if (cfg.autoMemify) {
97
+ // Poll for cognify completion before triggering memify
98
+ const memifyDatasetId = datasetId;
99
+ await waitForCognifyThenMemify(client, memifyDatasetId, logger);
100
+ }
101
+ }
102
+ catch (error) {
103
+ logger.warn?.(`cognee-openclaw: cognify failed: ${error instanceof Error ? error.message : String(error)}`);
104
+ }
105
+ }
106
+ await saveSyncIndex(syncIndex);
107
+ return { ...result, datasetId };
108
+ }
109
+ // ---------------------------------------------------------------------------
110
+ // Multi-scope sync
111
+ // ---------------------------------------------------------------------------
112
+ export async function syncFilesScoped(client, changedFiles, fullFiles, scopedIndexes, cfg, logger) {
113
+ const totalResult = { added: 0, updated: 0, skipped: 0, errors: 0, deleted: 0 };
114
+ const datasetIds = { company: undefined, user: undefined, agent: undefined };
115
+ // Group changed files by scope
116
+ const changedByScope = new Map();
117
+ for (const file of changedFiles) {
118
+ const scope = routeFileToScope(file.path, cfg.scopeRouting, cfg.defaultWriteScope);
119
+ const list = changedByScope.get(scope) ?? [];
120
+ list.push(file);
121
+ changedByScope.set(scope, list);
122
+ }
123
+ // Group all files by scope
124
+ const fullByScope = new Map();
125
+ for (const file of fullFiles) {
126
+ const scope = routeFileToScope(file.path, cfg.scopeRouting, cfg.defaultWriteScope);
127
+ const list = fullByScope.get(scope) ?? [];
128
+ list.push(file);
129
+ fullByScope.set(scope, list);
130
+ }
131
+ // Determine which scopes need processing
132
+ const allScopes = new Set([
133
+ ...changedByScope.keys(),
134
+ ...Object.keys(scopedIndexes),
135
+ ]);
136
+ for (const scope of allScopes) {
137
+ const dsName = datasetNameForScope(scope, cfg);
138
+ const scopeChanged = changedByScope.get(scope) ?? [];
139
+ const scopeFull = fullByScope.get(scope) ?? [];
140
+ if (!scopedIndexes[scope]) {
141
+ scopedIndexes[scope] = { entries: {} };
142
+ }
143
+ const scopeIndex = scopedIndexes[scope];
144
+ const currentPaths = new Set(scopeFull.map(f => f.path));
145
+ const hasDeletedFiles = Object.keys(scopeIndex.entries).some(p => !currentPaths.has(p));
146
+ if (scopeChanged.length === 0 && !hasDeletedFiles)
147
+ continue;
148
+ logger.info?.(`cognee-openclaw: [${scope}] syncing ${scopeChanged.length} changed file(s) to dataset "${dsName}"${hasDeletedFiles ? " + deletions" : ""}`);
149
+ const result = await syncFiles(client, scopeChanged, scopeFull, scopeIndex, cfg, logger, dsName);
150
+ totalResult.added += result.added;
151
+ totalResult.updated += result.updated;
152
+ totalResult.skipped += result.skipped;
153
+ totalResult.errors += result.errors;
154
+ totalResult.deleted += result.deleted;
155
+ datasetIds[scope] = result.datasetId;
156
+ }
157
+ await saveScopedSyncIndexes(scopedIndexes);
158
+ return { ...totalResult, datasetIds };
159
+ }
160
+ // ---------------------------------------------------------------------------
161
+ // Fix #9: Poll cognify status before triggering memify
162
+ // ---------------------------------------------------------------------------
163
+ /** Exported so tests can override */
164
+ export let COGNIFY_POLL_INTERVAL_MS = 5_000;
165
+ const COGNIFY_POLL_MAX_ATTEMPTS = 60; // 5 min max
166
+ /** Allow tests to adjust the poll interval */
167
+ export function _setPollInterval(ms) { COGNIFY_POLL_INTERVAL_MS = ms; }
168
+ async function waitForCognifyThenMemify(client, datasetId, logger) {
169
+ for (let attempt = 0; attempt < COGNIFY_POLL_MAX_ATTEMPTS; attempt++) {
170
+ // Wait before polling (skip on first attempt to check immediately)
171
+ if (attempt > 0) {
172
+ await new Promise(r => setTimeout(r, COGNIFY_POLL_INTERVAL_MS));
173
+ }
174
+ try {
175
+ const status = await client.datasetStatus(datasetId);
176
+ if (status === "completed" || status === "COMPLETED") {
177
+ try {
178
+ await client.memify({ datasetIds: [datasetId] });
179
+ logger.info?.("cognee-openclaw: memify dispatched after cognify completed");
180
+ }
181
+ catch (error) {
182
+ logger.warn?.(`cognee-openclaw: memify failed: ${error instanceof Error ? error.message : String(error)}`);
183
+ }
184
+ return;
185
+ }
186
+ if (status === "failed" || status === "FAILED" || status === "error") {
187
+ logger.warn?.(`cognee-openclaw: cognify failed (status: ${status}), skipping memify`);
188
+ return;
189
+ }
190
+ if (status === "unknown") {
191
+ // Endpoint exists but doesn't track this operation — fall back to optimistic memify
192
+ logger.warn?.("cognee-openclaw: could not poll cognify status, running memify optimistically");
193
+ try {
194
+ await client.memify({ datasetIds: [datasetId] });
195
+ logger.info?.("cognee-openclaw: memify dispatched (optimistic)");
196
+ }
197
+ catch (error) {
198
+ logger.warn?.(`cognee-openclaw: memify failed: ${error instanceof Error ? error.message : String(error)}`);
199
+ }
200
+ return;
201
+ }
202
+ // Still running, continue polling
203
+ }
204
+ catch {
205
+ // Status endpoint may not exist or may fail — fall back to fire-and-forget
206
+ logger.warn?.("cognee-openclaw: could not poll cognify status, running memify optimistically");
207
+ try {
208
+ await client.memify({ datasetIds: [datasetId] });
209
+ logger.info?.("cognee-openclaw: memify dispatched (optimistic)");
210
+ }
211
+ catch (error) {
212
+ logger.warn?.(`cognee-openclaw: memify failed: ${error instanceof Error ? error.message : String(error)}`);
213
+ }
214
+ return;
215
+ }
216
+ }
217
+ logger.warn?.("cognee-openclaw: cognify polling timed out, skipping memify");
218
+ }
219
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ export type CogneeSearchType = "GRAPH_COMPLETION" | "GRAPH_COMPLETION_COT" | "GRAPH_COMPLETION_CONTEXT_EXTENSION" | "GRAPH_SUMMARY_COMPLETION" | "RAG_COMPLETION" | "TRIPLET_COMPLETION" | "CHUNKS" | "CHUNKS_LEXICAL" | "SUMMARIES" | "CYPHER" | "NATURAL_LANGUAGE" | "TEMPORAL" | "CODING_RULES" | "FEELING_LUCKY";
2
+ export type CogneeDeleteMode = "soft" | "hard";
3
+ export type MemoryScope = "company" | "user" | "agent";
4
+ export declare const MEMORY_SCOPES: readonly MemoryScope[];
5
+ export type ScopeRoute = {
6
+ /** Glob-style pattern matched against the file's relative path */
7
+ pattern: string;
8
+ /** Target memory scope */
9
+ scope: MemoryScope;
10
+ };
11
+ export type CogneePluginConfig = {
12
+ baseUrl?: string;
13
+ apiKey?: string;
14
+ username?: string;
15
+ password?: string;
16
+ datasetName?: string;
17
+ companyDataset?: string;
18
+ userDatasetPrefix?: string;
19
+ agentDatasetPrefix?: string;
20
+ userId?: string;
21
+ agentId?: string;
22
+ recallScopes?: MemoryScope[];
23
+ defaultWriteScope?: MemoryScope;
24
+ scopeRouting?: ScopeRoute[];
25
+ enableSessions?: boolean;
26
+ persistSessionsAfterEnd?: boolean;
27
+ searchType?: CogneeSearchType;
28
+ searchPrompt?: string;
29
+ deleteMode?: CogneeDeleteMode;
30
+ maxResults?: number;
31
+ minScore?: number;
32
+ maxTokens?: number;
33
+ autoRecall?: boolean;
34
+ autoIndex?: boolean;
35
+ autoCognify?: boolean;
36
+ autoMemify?: boolean;
37
+ requestTimeoutMs?: number;
38
+ ingestionTimeoutMs?: number;
39
+ };
40
+ export type CogneeAddResponse = {
41
+ dataset_id: string;
42
+ dataset_name: string;
43
+ message: string;
44
+ data_id?: unknown;
45
+ data_ingestion_info?: unknown;
46
+ };
47
+ export type CogneeSearchResult = {
48
+ id: string;
49
+ text: string;
50
+ score: number;
51
+ metadata?: Record<string, unknown>;
52
+ };
53
+ export type DatasetState = Record<string, string>;
54
+ export type SyncIndex = {
55
+ datasetId?: string;
56
+ datasetName?: string;
57
+ entries: Record<string, {
58
+ hash: string;
59
+ dataId?: string;
60
+ }>;
61
+ };
62
+ /** Per-scope sync indexes, keyed by MemoryScope */
63
+ export type ScopedSyncIndexes = Partial<Record<MemoryScope, SyncIndex>>;
64
+ export type MemoryFile = {
65
+ /** Relative path from workspace root (e.g. "MEMORY.md", "memory/tools.md") */
66
+ path: string;
67
+ /** Absolute path on disk */
68
+ absPath: string;
69
+ /** File content */
70
+ content: string;
71
+ /** SHA-256 hex hash of content */
72
+ hash: string;
73
+ };
74
+ export type SyncResult = {
75
+ added: number;
76
+ updated: number;
77
+ skipped: number;
78
+ errors: number;
79
+ deleted: number;
80
+ };
@@ -0,0 +1,5 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Shared types for the Cognee OpenClaw memory plugin
3
+ // ---------------------------------------------------------------------------
4
+ export const MEMORY_SCOPES = ["company", "user", "agent"];
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAsB9E,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC"}
@@ -24,28 +24,89 @@
24
24
  },
25
25
  "datasetName": {
26
26
  "type": "string",
27
- "description": "Cognee dataset name to store memories in"
27
+ "description": "Cognee dataset name for single-scope mode (default: openclaw). Ignored when multi-scope is enabled."
28
+ },
29
+ "companyDataset": {
30
+ "type": "string",
31
+ "description": "Dataset name for company-wide shared memory. Setting this enables multi-scope mode."
32
+ },
33
+ "userDatasetPrefix": {
34
+ "type": "string",
35
+ "description": "Prefix for user-scoped datasets (becomes '{prefix}-{userId}'). Setting this enables multi-scope mode."
36
+ },
37
+ "agentDatasetPrefix": {
38
+ "type": "string",
39
+ "description": "Prefix for agent-scoped datasets (becomes '{prefix}-{agentId}'). Setting this enables multi-scope mode."
40
+ },
41
+ "userId": {
42
+ "type": "string",
43
+ "description": "User identifier for user-scoped memory (or set OPENCLAW_USER_ID env var)"
44
+ },
45
+ "agentId": {
46
+ "type": "string",
47
+ "description": "Agent identifier for agent-scoped memory (or set OPENCLAW_AGENT_ID env var, default: 'default')"
48
+ },
49
+ "recallScopes": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "enum": ["company", "user", "agent"]
54
+ },
55
+ "description": "Memory scopes to search during recall, in priority order (default: ['agent', 'user', 'company'])"
56
+ },
57
+ "defaultWriteScope": {
58
+ "type": "string",
59
+ "enum": ["company", "user", "agent"],
60
+ "description": "Default scope for files that don't match any scopeRouting pattern (default: 'agent')"
61
+ },
62
+ "scopeRouting": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "object",
66
+ "properties": {
67
+ "pattern": { "type": "string", "description": "Glob pattern to match file paths (e.g. 'memory/company/**')" },
68
+ "scope": { "type": "string", "enum": ["company", "user", "agent"] }
69
+ },
70
+ "required": ["pattern", "scope"]
71
+ },
72
+ "description": "Rules to route memory files to scopes based on path patterns. First match wins."
73
+ },
74
+ "enableSessions": {
75
+ "type": "boolean",
76
+ "description": "Enable session-based conversation tracking for multi-turn recall (default: true)"
77
+ },
78
+ "persistSessionsAfterEnd": {
79
+ "type": "boolean",
80
+ "description": "Persist session Q&A pairs into the knowledge graph after agent ends (default: true)"
28
81
  },
29
82
  "searchType": {
30
83
  "type": "string",
31
84
  "enum": [
32
85
  "GRAPH_COMPLETION",
86
+ "GRAPH_COMPLETION_COT",
87
+ "GRAPH_COMPLETION_CONTEXT_EXTENSION",
88
+ "GRAPH_SUMMARY_COMPLETION",
89
+ "RAG_COMPLETION",
90
+ "TRIPLET_COMPLETION",
33
91
  "CHUNKS",
34
- "SUMMARIES"
92
+ "CHUNKS_LEXICAL",
93
+ "SUMMARIES",
94
+ "CYPHER",
95
+ "NATURAL_LANGUAGE",
96
+ "TEMPORAL",
97
+ "CODING_RULES",
98
+ "FEELING_LUCKY"
35
99
  ],
36
- "description": "Cognee search mode"
100
+ "description": "Cognee search mode (default: FEELING_LUCKY — auto-selects best strategy per query)"
37
101
  },
38
102
  "deleteMode": {
39
103
  "type": "string",
40
- "enum": [
41
- "soft",
42
- "hard"
43
- ],
104
+ "enum": ["soft", "hard"],
44
105
  "description": "Cognee delete mode: 'soft' removes raw data only, 'hard' also removes degree-one graph nodes (default: soft)"
45
106
  },
46
107
  "maxResults": {
47
108
  "type": "number",
48
- "description": "Max recall results to inject (default: 6)"
109
+ "description": "Max recall results to inject per scope (default: 6)"
49
110
  },
50
111
  "minScore": {
51
112
  "type": "number",
@@ -53,7 +114,7 @@
53
114
  },
54
115
  "maxTokens": {
55
116
  "type": "number",
56
- "description": "Token cap for recall (default: 512)"
117
+ "description": "Token cap for recall per scope (default: 512)"
57
118
  },
58
119
  "autoRecall": {
59
120
  "type": "boolean",
@@ -67,13 +128,17 @@
67
128
  "type": "boolean",
68
129
  "description": "Run cognify after new memories are added (default: true)"
69
130
  },
131
+ "autoMemify": {
132
+ "type": "boolean",
133
+ "description": "Run memify (graph enrichment) after cognify completes (default: false)"
134
+ },
70
135
  "requestTimeoutMs": {
71
136
  "type": "number",
72
137
  "description": "HTTP timeout in milliseconds for Cognee requests (default: 60000)"
73
138
  },
74
139
  "ingestionTimeoutMs": {
75
140
  "type": "number",
76
- "description": "HTTP timeout in milliseconds for add/update (ingestion) requests, which are typically slower (default: 300000 = 5 min)"
141
+ "description": "HTTP timeout in milliseconds for add/update (ingestion) requests (default: 300000 = 5 min)"
77
142
  },
78
143
  "searchPrompt": {
79
144
  "type": "string",
@@ -101,12 +166,45 @@
101
166
  "placeholder": "default_password"
102
167
  },
103
168
  "datasetName": {
104
- "label": "Dataset Name",
169
+ "label": "Dataset Name (single-scope)",
105
170
  "placeholder": "openclaw"
106
171
  },
172
+ "companyDataset": {
173
+ "label": "Company Dataset",
174
+ "placeholder": "my-company"
175
+ },
176
+ "userDatasetPrefix": {
177
+ "label": "User Dataset Prefix",
178
+ "placeholder": "my-project-user"
179
+ },
180
+ "agentDatasetPrefix": {
181
+ "label": "Agent Dataset Prefix",
182
+ "placeholder": "my-project-agent"
183
+ },
184
+ "userId": {
185
+ "label": "User ID",
186
+ "placeholder": "${OPENCLAW_USER_ID}"
187
+ },
188
+ "agentId": {
189
+ "label": "Agent ID",
190
+ "placeholder": "default"
191
+ },
192
+ "recallScopes": {
193
+ "label": "Recall Scopes"
194
+ },
195
+ "defaultWriteScope": {
196
+ "label": "Default Write Scope",
197
+ "placeholder": "agent"
198
+ },
199
+ "enableSessions": {
200
+ "label": "Enable Sessions"
201
+ },
202
+ "persistSessionsAfterEnd": {
203
+ "label": "Persist Sessions"
204
+ },
107
205
  "searchType": {
108
206
  "label": "Search Type",
109
- "placeholder": "GRAPH_COMPLETION"
207
+ "placeholder": "FEELING_LUCKY"
110
208
  },
111
209
  "deleteMode": {
112
210
  "label": "Delete Mode",
@@ -133,6 +231,9 @@
133
231
  "autoCognify": {
134
232
  "label": "Auto-Cognify"
135
233
  },
234
+ "autoMemify": {
235
+ "label": "Auto-Memify"
236
+ },
136
237
  "requestTimeoutMs": {
137
238
  "label": "Request Timeout (ms)",
138
239
  "placeholder": "60000"
@@ -142,4 +243,4 @@
142
243
  "placeholder": "300000"
143
244
  }
144
245
  }
145
- }
246
+ }