@soleri/core 8.1.0 → 9.0.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.
- package/dist/brain/brain.d.ts +1 -8
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +5 -134
- package/dist/brain/brain.js.map +1 -1
- package/dist/cognee/client.d.ts +5 -0
- package/dist/cognee/client.d.ts.map +1 -1
- package/dist/cognee/client.js +83 -16
- package/dist/cognee/client.js.map +1 -1
- package/dist/cognee/sync-manager.d.ts +67 -8
- package/dist/cognee/sync-manager.d.ts.map +1 -1
- package/dist/cognee/sync-manager.js +129 -32
- package/dist/cognee/sync-manager.js.map +1 -1
- package/dist/cognee/types.d.ts +16 -0
- package/dist/cognee/types.d.ts.map +1 -1
- package/dist/context/context-engine.d.ts +2 -5
- package/dist/context/context-engine.d.ts.map +1 -1
- package/dist/context/context-engine.js +4 -31
- package/dist/context/context-engine.js.map +1 -1
- package/dist/curator/curator.d.ts +2 -5
- package/dist/curator/curator.d.ts.map +1 -1
- package/dist/curator/curator.js +4 -23
- package/dist/curator/curator.js.map +1 -1
- package/dist/engine/bin/soleri-engine.js +6 -5
- package/dist/engine/bin/soleri-engine.js.map +1 -1
- package/dist/engine/core-ops.d.ts.map +1 -1
- package/dist/engine/core-ops.js +11 -6
- package/dist/engine/core-ops.js.map +1 -1
- package/dist/engine/module-manifest.d.ts +1 -1
- package/dist/engine/module-manifest.d.ts.map +1 -1
- package/dist/engine/module-manifest.js +1 -7
- package/dist/engine/module-manifest.js.map +1 -1
- package/dist/engine/register-engine.d.ts.map +1 -1
- package/dist/engine/register-engine.js +0 -7
- package/dist/engine/register-engine.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/intelligence/types.d.ts +7 -0
- package/dist/intelligence/types.d.ts.map +1 -1
- package/dist/persona/defaults.d.ts +16 -0
- package/dist/persona/defaults.d.ts.map +1 -0
- package/dist/persona/defaults.js +78 -0
- package/dist/persona/defaults.js.map +1 -0
- package/dist/persona/index.d.ts +5 -0
- package/dist/persona/index.d.ts.map +1 -0
- package/dist/persona/index.js +4 -0
- package/dist/persona/index.js.map +1 -0
- package/dist/persona/loader.d.ts +11 -0
- package/dist/persona/loader.d.ts.map +1 -0
- package/dist/persona/loader.js +45 -0
- package/dist/persona/loader.js.map +1 -0
- package/dist/persona/prompt-generator.d.ts +13 -0
- package/dist/persona/prompt-generator.d.ts.map +1 -0
- package/dist/persona/prompt-generator.js +89 -0
- package/dist/persona/prompt-generator.js.map +1 -0
- package/dist/persona/types.d.ts +56 -0
- package/dist/persona/types.d.ts.map +1 -0
- package/dist/persona/types.js +9 -0
- package/dist/persona/types.js.map +1 -0
- package/dist/plugins/types.d.ts +13 -13
- package/dist/runtime/admin-extra-ops.d.ts.map +1 -1
- package/dist/runtime/admin-extra-ops.js +5 -27
- package/dist/runtime/admin-extra-ops.js.map +1 -1
- package/dist/runtime/admin-ops.d.ts.map +1 -1
- package/dist/runtime/admin-ops.js +5 -37
- package/dist/runtime/admin-ops.js.map +1 -1
- package/dist/runtime/capture-ops.d.ts.map +1 -1
- package/dist/runtime/capture-ops.js +32 -16
- package/dist/runtime/capture-ops.js.map +1 -1
- package/dist/runtime/cognee-sync-ops.d.ts +2 -2
- package/dist/runtime/cognee-sync-ops.d.ts.map +1 -1
- package/dist/runtime/cognee-sync-ops.js +45 -7
- package/dist/runtime/cognee-sync-ops.js.map +1 -1
- package/dist/runtime/facades/index.d.ts +1 -1
- package/dist/runtime/facades/index.d.ts.map +1 -1
- package/dist/runtime/facades/index.js +1 -10
- package/dist/runtime/facades/index.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +14 -53
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/types.d.ts +6 -8
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/vault-linking-ops.d.ts.map +1 -1
- package/dist/runtime/vault-linking-ops.js +40 -0
- package/dist/runtime/vault-linking-ops.js.map +1 -1
- package/dist/runtime/vault-sharing-ops.d.ts.map +1 -1
- package/dist/runtime/vault-sharing-ops.js +53 -3
- package/dist/runtime/vault-sharing-ops.js.map +1 -1
- package/dist/vault/linking.d.ts +37 -0
- package/dist/vault/linking.d.ts.map +1 -1
- package/dist/vault/linking.js +73 -0
- package/dist/vault/linking.js.map +1 -1
- package/dist/vault/vault.d.ts +0 -2
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +0 -13
- package/dist/vault/vault.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/admin-extra-ops.test.ts +0 -3
- package/src/__tests__/admin-ops.test.ts +1 -5
- package/src/__tests__/brain.test.ts +1 -225
- package/src/__tests__/context-engine.test.ts +1 -6
- package/src/__tests__/core-ops.test.ts +1 -8
- package/src/__tests__/curator-extra-ops.test.ts +0 -2
- package/src/__tests__/curator-pipeline-e2e.test.ts +3 -28
- package/src/__tests__/feature-flags.test.ts +0 -1
- package/src/__tests__/health-registry.test.ts +18 -18
- package/src/__tests__/replayable-stream.test.ts +3 -3
- package/src/brain/brain.ts +4 -157
- package/src/context/context-engine.ts +3 -31
- package/src/curator/curator.ts +5 -28
- package/src/engine/bin/soleri-engine.ts +6 -5
- package/src/engine/core-ops.ts +11 -6
- package/src/engine/module-manifest.ts +1 -7
- package/src/engine/register-engine.ts +0 -7
- package/src/index.ts +20 -16
- package/src/intelligence/types.ts +8 -0
- package/src/persona/defaults.ts +96 -0
- package/src/persona/index.ts +9 -0
- package/src/persona/loader.ts +50 -0
- package/src/persona/prompt-generator.ts +109 -0
- package/src/persona/types.ts +72 -0
- package/src/runtime/admin-extra-ops.ts +5 -28
- package/src/runtime/admin-ops.ts +5 -38
- package/src/runtime/capture-ops.ts +33 -14
- package/src/runtime/facades/index.ts +1 -11
- package/src/runtime/runtime.ts +14 -54
- package/src/runtime/types.ts +6 -8
- package/src/runtime/vault-linking-ops.ts +41 -0
- package/src/runtime/vault-sharing-ops.ts +63 -4
- package/src/vault/linking.ts +94 -0
- package/src/vault/vault.ts +0 -14
- package/src/__tests__/cognee-client-gaps.test.ts +0 -474
- package/src/__tests__/cognee-client.test.ts +0 -524
- package/src/__tests__/cognee-hybrid-search.test.ts +0 -492
- package/src/__tests__/cognee-integration.test.ts +0 -80
- package/src/__tests__/cognee-sync-manager-deep.test.ts +0 -654
- package/src/__tests__/cognee-sync-manager.test.ts +0 -104
- package/src/cognee/client.ts +0 -370
- package/src/cognee/sync-manager.ts +0 -389
- package/src/cognee/types.ts +0 -62
- package/src/runtime/cognee-sync-ops.ts +0 -63
- package/src/runtime/facades/cognee-facade.ts +0 -164
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CogneeSyncManager — queued, resilient sync between the Vault SQLite DB and Cognee.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* ## Architecture
|
|
5
|
+
*
|
|
6
|
+
* Two independent mechanisms:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Drain** — pushes vault entries to Cognee via `addEntries()` API.
|
|
9
|
+
* Batch size: configurable (default 50). Retries: configurable (default 3) per item.
|
|
10
|
+
* Returns a `DrainResult` with `processed` count and `reason` when 0.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Cognify** — triggers Cognee's graph building after data ingestion.
|
|
13
|
+
* Debounced: 30s sliding window (configurable). Multiple `addEntries()` calls
|
|
14
|
+
* coalesce into one `cognify()` call. This is intentional — cognify is expensive.
|
|
15
|
+
*
|
|
16
|
+
* These are INDEPENDENT. Drain can succeed while cognify is still debounced.
|
|
17
|
+
* A drain returning `{ processed: 0 }` always includes a `reason` field explaining why.
|
|
18
|
+
* It does NOT mean cognify was skipped or debounced.
|
|
19
|
+
*
|
|
20
|
+
* For bulk operations, use `drainAll({ forceCognify: true })` to trigger cognify
|
|
21
|
+
* after each batch instead of relying on the debounce timer.
|
|
22
|
+
*
|
|
23
|
+
* ## Queue State Machine
|
|
24
|
+
*
|
|
25
|
+
* `pending` → `processing` → `completed` (success)
|
|
26
|
+
* `pending` → `processing` → `pending` (retry on error, attempts < maxRetries)
|
|
27
|
+
* `pending` → `processing` → `failed` (max retries exceeded)
|
|
7
28
|
*
|
|
8
29
|
* Ported from Salvador MCP's battle-tested cognee-sync module.
|
|
9
30
|
*/
|
|
10
31
|
import type { PersistenceProvider } from '../persistence/types.js';
|
|
11
32
|
import type { CogneeClient } from './client.js';
|
|
12
33
|
import type { IntelligenceEntry } from '../intelligence/types.js';
|
|
34
|
+
import type { DrainResult, DrainAllResult } from './types.js';
|
|
13
35
|
export type SyncOp = 'ingest' | 'update' | 'delete';
|
|
14
36
|
export type SyncStatus = 'pending' | 'processing' | 'completed' | 'failed';
|
|
15
37
|
export interface SyncQueueItem {
|
|
@@ -32,14 +54,22 @@ export interface SyncManagerStats {
|
|
|
32
54
|
queueSize: number;
|
|
33
55
|
lastDrainAt: number | null;
|
|
34
56
|
}
|
|
57
|
+
export interface SyncManagerConfig {
|
|
58
|
+
/** Max items per drain batch (default: 50) */
|
|
59
|
+
batchSize?: number;
|
|
60
|
+
/** Max retry attempts per item before marking failed (default: 3) */
|
|
61
|
+
maxRetries?: number;
|
|
62
|
+
}
|
|
35
63
|
export declare class CogneeSyncManager {
|
|
36
64
|
private db;
|
|
37
65
|
private cognee;
|
|
38
66
|
private dataset;
|
|
67
|
+
private batchSize;
|
|
68
|
+
private maxRetries;
|
|
39
69
|
private lastDrainAt;
|
|
40
70
|
private drainTimer;
|
|
41
71
|
private wasAvailable;
|
|
42
|
-
constructor(db: PersistenceProvider, cognee: CogneeClient, dataset: string);
|
|
72
|
+
constructor(db: PersistenceProvider, cognee: CogneeClient, dataset: string, config?: SyncManagerConfig);
|
|
43
73
|
private initSchema;
|
|
44
74
|
/**
|
|
45
75
|
* SHA-256 of the serialized entry fields, truncated to 16 hex characters.
|
|
@@ -55,12 +85,37 @@ export declare class CogneeSyncManager {
|
|
|
55
85
|
*/
|
|
56
86
|
enqueue(op: SyncOp, entryId: string, entry?: IntelligenceEntry): void;
|
|
57
87
|
/**
|
|
58
|
-
* Process up to
|
|
59
|
-
*
|
|
88
|
+
* Process up to `batchSize` pending items from the queue.
|
|
89
|
+
*
|
|
90
|
+
* Always returns a `DrainResult` with a `reason` when processed=0:
|
|
91
|
+
* - `cognee_unavailable`: health check failed
|
|
92
|
+
* - `auth_failed`: Cognee authentication failed (breaks batch early)
|
|
93
|
+
* - `queue_empty`: no pending items
|
|
94
|
+
* - `partial_failure`: some items failed within the batch
|
|
60
95
|
*
|
|
61
|
-
* If
|
|
96
|
+
* @param opts.forceCognify If true, trigger cognify synchronously after the batch
|
|
97
|
+
* instead of relying on the debounce timer. Useful for bulk ops.
|
|
62
98
|
*/
|
|
63
|
-
drain(
|
|
99
|
+
drain(opts?: {
|
|
100
|
+
forceCognify?: boolean;
|
|
101
|
+
}): Promise<DrainResult>;
|
|
102
|
+
/**
|
|
103
|
+
* Drain the entire queue in a loop until empty or unrecoverable error.
|
|
104
|
+
*
|
|
105
|
+
* @param opts.forceCognify Trigger cognify after each batch (default: false)
|
|
106
|
+
* @param opts.abortSignal Cancel the drain loop externally
|
|
107
|
+
* @param opts.onProgress Called after each batch with current stats
|
|
108
|
+
*/
|
|
109
|
+
drainAll(opts?: {
|
|
110
|
+
forceCognify?: boolean;
|
|
111
|
+
abortSignal?: AbortSignal;
|
|
112
|
+
onProgress?: (stats: {
|
|
113
|
+
processed: number;
|
|
114
|
+
remaining: number;
|
|
115
|
+
failed: number;
|
|
116
|
+
batch: number;
|
|
117
|
+
}) => void;
|
|
118
|
+
}): Promise<DrainAllResult>;
|
|
64
119
|
/**
|
|
65
120
|
* Find entries whose cognee_ingested_hash is NULL or doesn't match the
|
|
66
121
|
* current content hash. Enqueue dirty entries for re-ingestion.
|
|
@@ -81,6 +136,10 @@ export declare class CogneeSyncManager {
|
|
|
81
136
|
*/
|
|
82
137
|
close(): void;
|
|
83
138
|
private markCompleted;
|
|
139
|
+
/**
|
|
140
|
+
* Revert a queue item to pending (for retry) or mark as failed (max retries exceeded).
|
|
141
|
+
*/
|
|
142
|
+
private revertToRetryOrFail;
|
|
84
143
|
/**
|
|
85
144
|
* Read an entry from the entries table by ID.
|
|
86
145
|
* Returns null if the entry doesn't exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../src/cognee/sync-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../src/cognee/sync-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CogneeSyncManager — queued, resilient sync between the Vault SQLite DB and Cognee.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* ## Architecture
|
|
5
|
+
*
|
|
6
|
+
* Two independent mechanisms:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Drain** — pushes vault entries to Cognee via `addEntries()` API.
|
|
9
|
+
* Batch size: configurable (default 50). Retries: configurable (default 3) per item.
|
|
10
|
+
* Returns a `DrainResult` with `processed` count and `reason` when 0.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Cognify** — triggers Cognee's graph building after data ingestion.
|
|
13
|
+
* Debounced: 30s sliding window (configurable). Multiple `addEntries()` calls
|
|
14
|
+
* coalesce into one `cognify()` call. This is intentional — cognify is expensive.
|
|
15
|
+
*
|
|
16
|
+
* These are INDEPENDENT. Drain can succeed while cognify is still debounced.
|
|
17
|
+
* A drain returning `{ processed: 0 }` always includes a `reason` field explaining why.
|
|
18
|
+
* It does NOT mean cognify was skipped or debounced.
|
|
19
|
+
*
|
|
20
|
+
* For bulk operations, use `drainAll({ forceCognify: true })` to trigger cognify
|
|
21
|
+
* after each batch instead of relying on the debounce timer.
|
|
22
|
+
*
|
|
23
|
+
* ## Queue State Machine
|
|
24
|
+
*
|
|
25
|
+
* `pending` → `processing` → `completed` (success)
|
|
26
|
+
* `pending` → `processing` → `pending` (retry on error, attempts < maxRetries)
|
|
27
|
+
* `pending` → `processing` → `failed` (max retries exceeded)
|
|
7
28
|
*
|
|
8
29
|
* Ported from Salvador MCP's battle-tested cognee-sync module.
|
|
9
30
|
*/
|
|
10
31
|
import { createHash } from 'node:crypto';
|
|
11
|
-
// ───
|
|
12
|
-
const
|
|
13
|
-
const
|
|
32
|
+
// ─── Defaults ────────────────────────────────────────────────────────
|
|
33
|
+
const DEFAULT_BATCH_SIZE = 50;
|
|
34
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
14
35
|
// ─── CogneeSyncManager ─────────────────────────────────────────────
|
|
15
36
|
export class CogneeSyncManager {
|
|
16
37
|
db;
|
|
17
38
|
cognee;
|
|
18
39
|
dataset;
|
|
40
|
+
batchSize;
|
|
41
|
+
maxRetries;
|
|
19
42
|
lastDrainAt = null;
|
|
20
43
|
drainTimer = null;
|
|
21
44
|
wasAvailable = false;
|
|
22
|
-
constructor(db, cognee, dataset) {
|
|
45
|
+
constructor(db, cognee, dataset, config) {
|
|
23
46
|
this.db = db;
|
|
24
47
|
this.cognee = cognee;
|
|
25
48
|
this.dataset = dataset;
|
|
49
|
+
this.batchSize = config?.batchSize ?? DEFAULT_BATCH_SIZE;
|
|
50
|
+
this.maxRetries = config?.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
26
51
|
this.initSchema();
|
|
27
52
|
this.wasAvailable = cognee.isAvailable;
|
|
28
53
|
}
|
|
@@ -93,22 +118,37 @@ export class CogneeSyncManager {
|
|
|
93
118
|
}
|
|
94
119
|
// ─── Drain ────────────────────────────────────────────────────
|
|
95
120
|
/**
|
|
96
|
-
* Process up to
|
|
97
|
-
*
|
|
121
|
+
* Process up to `batchSize` pending items from the queue.
|
|
122
|
+
*
|
|
123
|
+
* Always returns a `DrainResult` with a `reason` when processed=0:
|
|
124
|
+
* - `cognee_unavailable`: health check failed
|
|
125
|
+
* - `auth_failed`: Cognee authentication failed (breaks batch early)
|
|
126
|
+
* - `queue_empty`: no pending items
|
|
127
|
+
* - `partial_failure`: some items failed within the batch
|
|
98
128
|
*
|
|
99
|
-
* If
|
|
129
|
+
* @param opts.forceCognify If true, trigger cognify synchronously after the batch
|
|
130
|
+
* instead of relying on the debounce timer. Useful for bulk ops.
|
|
100
131
|
*/
|
|
101
|
-
async drain() {
|
|
102
|
-
if
|
|
103
|
-
|
|
104
|
-
|
|
132
|
+
async drain(opts) {
|
|
133
|
+
// Refresh health cache if stale, then check availability
|
|
134
|
+
const health = await this.cognee.ensureHealthy();
|
|
135
|
+
if (!health.available) {
|
|
136
|
+
return {
|
|
137
|
+
processed: 0,
|
|
138
|
+
reason: 'cognee_unavailable',
|
|
139
|
+
errors: [health.error ?? 'Health check failed'],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Claim a batch: select pending items
|
|
105
143
|
const items = this.db.all(`SELECT * FROM cognee_sync_queue
|
|
106
144
|
WHERE status = 'pending' AND dataset = @dataset
|
|
107
145
|
ORDER BY created_at ASC
|
|
108
|
-
LIMIT @limit`, { dataset: this.dataset, limit:
|
|
109
|
-
if (items.length === 0)
|
|
110
|
-
return 0;
|
|
146
|
+
LIMIT @limit`, { dataset: this.dataset, limit: this.batchSize });
|
|
147
|
+
if (items.length === 0) {
|
|
148
|
+
return { processed: 0, reason: 'queue_empty' };
|
|
149
|
+
}
|
|
111
150
|
let processed = 0;
|
|
151
|
+
const errors = [];
|
|
112
152
|
for (const raw of items) {
|
|
113
153
|
const item = rowToQueueItem(raw);
|
|
114
154
|
// Mark as processing
|
|
@@ -123,8 +163,14 @@ export class CogneeSyncManager {
|
|
|
123
163
|
continue;
|
|
124
164
|
}
|
|
125
165
|
const result = await this.cognee.addEntries([entry]);
|
|
166
|
+
// Break early on auth failure — don't waste retries on all remaining items
|
|
167
|
+
if (result.code === 'AUTH_FAILED') {
|
|
168
|
+
this.revertToRetryOrFail(item, result.error ?? 'Auth failed');
|
|
169
|
+
errors.push(`Auth failed for ${item.entryId}: ${result.error}`);
|
|
170
|
+
return { processed, reason: 'auth_failed', errors };
|
|
171
|
+
}
|
|
126
172
|
if (result.added === 0) {
|
|
127
|
-
throw new Error(
|
|
173
|
+
throw new Error(`Cognee addEntries returned 0: ${result.error ?? 'unknown'} (code: ${result.code ?? 'none'})`);
|
|
128
174
|
}
|
|
129
175
|
// Update the ingested hash on the entries table
|
|
130
176
|
const hash = CogneeSyncManager.contentHash(entry);
|
|
@@ -136,11 +182,7 @@ export class CogneeSyncManager {
|
|
|
136
182
|
processed++;
|
|
137
183
|
}
|
|
138
184
|
else if (item.op === 'delete') {
|
|
139
|
-
|
|
140
|
-
const client = this.cognee;
|
|
141
|
-
if (typeof client.deleteEntries === 'function') {
|
|
142
|
-
await client.deleteEntries([item.entryId]);
|
|
143
|
-
}
|
|
185
|
+
await this.cognee.deleteEntries([item.entryId]);
|
|
144
186
|
// Clear the ingested hash (entry may already be gone from entries table)
|
|
145
187
|
this.db.run(`UPDATE entries SET cognee_ingested_hash = NULL WHERE id = @id`, {
|
|
146
188
|
id: item.entryId,
|
|
@@ -151,18 +193,61 @@ export class CogneeSyncManager {
|
|
|
151
193
|
}
|
|
152
194
|
catch (err) {
|
|
153
195
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this.db.run(`UPDATE cognee_sync_queue SET status = 'failed', error = @error, processed_at = unixepoch() WHERE id = @id`, { id: item.id, error: errorMsg });
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
// Back to pending for retry
|
|
160
|
-
this.db.run(`UPDATE cognee_sync_queue SET status = 'pending', error = @error WHERE id = @id`, { id: item.id, error: errorMsg });
|
|
161
|
-
}
|
|
196
|
+
errors.push(`${item.entryId}: ${errorMsg}`);
|
|
197
|
+
this.revertToRetryOrFail(item, errorMsg);
|
|
162
198
|
}
|
|
163
199
|
}
|
|
164
200
|
this.lastDrainAt = Math.floor(Date.now() / 1000);
|
|
165
|
-
|
|
201
|
+
// Force cognify if requested (bypasses debounce timer)
|
|
202
|
+
if (opts?.forceCognify && processed > 0) {
|
|
203
|
+
await this.cognee.cognify(this.dataset);
|
|
204
|
+
}
|
|
205
|
+
const reason = errors.length > 0 ? 'partial_failure' : undefined;
|
|
206
|
+
return { processed, reason, errors: errors.length > 0 ? errors : undefined };
|
|
207
|
+
}
|
|
208
|
+
// ─── Drain All ──────────────────────────────────────────────────
|
|
209
|
+
/**
|
|
210
|
+
* Drain the entire queue in a loop until empty or unrecoverable error.
|
|
211
|
+
*
|
|
212
|
+
* @param opts.forceCognify Trigger cognify after each batch (default: false)
|
|
213
|
+
* @param opts.abortSignal Cancel the drain loop externally
|
|
214
|
+
* @param opts.onProgress Called after each batch with current stats
|
|
215
|
+
*/
|
|
216
|
+
async drainAll(opts) {
|
|
217
|
+
const start = Date.now();
|
|
218
|
+
let totalProcessed = 0;
|
|
219
|
+
let totalFailed = 0;
|
|
220
|
+
let batches = 0;
|
|
221
|
+
let lastReason;
|
|
222
|
+
while (true) {
|
|
223
|
+
if (opts?.abortSignal?.aborted)
|
|
224
|
+
break;
|
|
225
|
+
const result = await this.drain({ forceCognify: opts?.forceCognify });
|
|
226
|
+
if (result.processed === 0) {
|
|
227
|
+
lastReason = result.reason;
|
|
228
|
+
// queue_empty is the normal exit; other reasons are errors
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
totalProcessed += result.processed;
|
|
232
|
+
batches++;
|
|
233
|
+
if (result.errors) {
|
|
234
|
+
totalFailed += result.errors.length;
|
|
235
|
+
}
|
|
236
|
+
const stats = this.getStats();
|
|
237
|
+
opts?.onProgress?.({
|
|
238
|
+
processed: totalProcessed,
|
|
239
|
+
remaining: stats.pending,
|
|
240
|
+
failed: totalFailed,
|
|
241
|
+
batch: batches,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
totalProcessed,
|
|
246
|
+
totalFailed,
|
|
247
|
+
batches,
|
|
248
|
+
durationMs: Date.now() - start,
|
|
249
|
+
reason: lastReason,
|
|
250
|
+
};
|
|
166
251
|
}
|
|
167
252
|
// ─── Reconciliation ───────────────────────────────────────────
|
|
168
253
|
/**
|
|
@@ -243,6 +328,18 @@ export class CogneeSyncManager {
|
|
|
243
328
|
markCompleted(id) {
|
|
244
329
|
this.db.run(`UPDATE cognee_sync_queue SET status = 'completed', processed_at = unixepoch() WHERE id = @id`, { id });
|
|
245
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Revert a queue item to pending (for retry) or mark as failed (max retries exceeded).
|
|
333
|
+
*/
|
|
334
|
+
revertToRetryOrFail(item, errorMsg) {
|
|
335
|
+
const attempts = item.attempts + 1; // Already incremented in the processing step
|
|
336
|
+
if (attempts >= this.maxRetries) {
|
|
337
|
+
this.db.run(`UPDATE cognee_sync_queue SET status = 'failed', error = @error, processed_at = unixepoch() WHERE id = @id`, { id: item.id, error: errorMsg });
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
this.db.run(`UPDATE cognee_sync_queue SET status = 'pending', error = @error WHERE id = @id`, { id: item.id, error: errorMsg });
|
|
341
|
+
}
|
|
342
|
+
}
|
|
246
343
|
/**
|
|
247
344
|
* Read an entry from the entries table by ID.
|
|
248
345
|
* Returns null if the entry doesn't exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../src/cognee/sync-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../src/cognee/sync-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/cognee/types.d.ts
CHANGED
|
@@ -37,10 +37,26 @@ export interface CogneeStatus {
|
|
|
37
37
|
latencyMs: number;
|
|
38
38
|
error?: string;
|
|
39
39
|
}
|
|
40
|
+
export type AddErrorCode = 'AUTH_FAILED' | 'COGNEE_ERROR' | 'NETWORK_ERROR' | 'UNAVAILABLE';
|
|
40
41
|
export interface CogneeAddResult {
|
|
41
42
|
added: number;
|
|
43
|
+
error?: string;
|
|
44
|
+
code?: AddErrorCode;
|
|
42
45
|
}
|
|
43
46
|
export interface CogneeCognifyResult {
|
|
44
47
|
status: string;
|
|
45
48
|
}
|
|
49
|
+
export type DrainStopReason = 'cognee_unavailable' | 'auth_failed' | 'queue_empty' | 'partial_failure';
|
|
50
|
+
export interface DrainResult {
|
|
51
|
+
processed: number;
|
|
52
|
+
reason?: DrainStopReason;
|
|
53
|
+
errors?: string[];
|
|
54
|
+
}
|
|
55
|
+
export interface DrainAllResult {
|
|
56
|
+
totalProcessed: number;
|
|
57
|
+
totalFailed: number;
|
|
58
|
+
batches: number;
|
|
59
|
+
durationMs: number;
|
|
60
|
+
reason?: DrainStopReason;
|
|
61
|
+
}
|
|
46
62
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cognee/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,GAClB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cognee/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,GAClB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,aAAa,GACb,aAAa,GACb,iBAAiB,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B"}
|
|
@@ -3,24 +3,21 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Orchestrates three signals to enrich intent classification:
|
|
5
5
|
* 1. Entity extraction (regex-based, domain-agnostic)
|
|
6
|
-
* 2. Knowledge retrieval (vault FTS +
|
|
6
|
+
* 2. Knowledge retrieval (vault FTS + brain recommendations)
|
|
7
7
|
* 3. Confidence scoring (combines entity + knowledge signals)
|
|
8
8
|
*
|
|
9
|
-
* Graceful degradation: if Cognee is unavailable, vault-only.
|
|
10
9
|
* If vault is empty, keyword confidence from IntentRouter is unchanged.
|
|
11
10
|
*/
|
|
12
11
|
import type { Vault } from '../vault/vault.js';
|
|
13
12
|
import type { Brain } from '../brain/brain.js';
|
|
14
13
|
import type { BrainIntelligence } from '../brain/intelligence.js';
|
|
15
|
-
import type { CogneeClient } from '../cognee/client.js';
|
|
16
14
|
import type { EntityExtractionResult, KnowledgeRetrievalResult, ContextAnalysis, ContextEngineConfig } from './types.js';
|
|
17
15
|
export declare class ContextEngine {
|
|
18
16
|
private vault;
|
|
19
17
|
private brain;
|
|
20
18
|
private brainIntelligence;
|
|
21
|
-
private cognee;
|
|
22
19
|
private config;
|
|
23
|
-
constructor(vault: Vault, brain: Brain, brainIntelligence: BrainIntelligence,
|
|
20
|
+
constructor(vault: Vault, brain: Brain, brainIntelligence: BrainIntelligence, config?: ContextEngineConfig);
|
|
24
21
|
extractEntities(prompt: string): EntityExtractionResult;
|
|
25
22
|
retrieveKnowledge(prompt: string, domain?: string): Promise<KnowledgeRetrievalResult>;
|
|
26
23
|
analyze(prompt: string, domain?: string): Promise<ContextAnalysis>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-engine.d.ts","sourceRoot":"","sources":["../../src/context/context-engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context-engine.d.ts","sourceRoot":"","sources":["../../src/context/context-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAGV,sBAAsB,EAEtB,wBAAwB,EACxB,eAAe,EAEf,mBAAmB,EACpB,MAAM,YAAY,CAAC;AA8EpB,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAgC;gBAG5C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,CAAC,EAAE,mBAAmB;IAe9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB;IAmCjD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAyErF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA+BxE,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;CAkBtB"}
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Orchestrates three signals to enrich intent classification:
|
|
5
5
|
* 1. Entity extraction (regex-based, domain-agnostic)
|
|
6
|
-
* 2. Knowledge retrieval (vault FTS +
|
|
6
|
+
* 2. Knowledge retrieval (vault FTS + brain recommendations)
|
|
7
7
|
* 3. Confidence scoring (combines entity + knowledge signals)
|
|
8
8
|
*
|
|
9
|
-
* Graceful degradation: if Cognee is unavailable, vault-only.
|
|
10
9
|
* If vault is empty, keyword confidence from IntentRouter is unchanged.
|
|
11
10
|
*/
|
|
12
11
|
// ─── Entity Patterns ────────────────────────────────────────────────
|
|
@@ -78,13 +77,11 @@ export class ContextEngine {
|
|
|
78
77
|
vault;
|
|
79
78
|
brain;
|
|
80
79
|
brainIntelligence;
|
|
81
|
-
cognee;
|
|
82
80
|
config;
|
|
83
|
-
constructor(vault, brain, brainIntelligence,
|
|
81
|
+
constructor(vault, brain, brainIntelligence, config) {
|
|
84
82
|
this.vault = vault;
|
|
85
83
|
this.brain = brain;
|
|
86
84
|
this.brainIntelligence = brainIntelligence;
|
|
87
|
-
this.cognee = cognee;
|
|
88
85
|
this.config = {
|
|
89
86
|
vaultSearchLimit: config?.vaultSearchLimit ?? 10,
|
|
90
87
|
cogneeSearchLimit: config?.cogneeSearchLimit ?? 10,
|
|
@@ -128,7 +125,6 @@ export class ContextEngine {
|
|
|
128
125
|
async retrieveKnowledge(prompt, domain) {
|
|
129
126
|
const items = [];
|
|
130
127
|
let vaultHits = 0;
|
|
131
|
-
let cogneeHits = 0;
|
|
132
128
|
let brainHits = 0;
|
|
133
129
|
// 1. Vault FTS search
|
|
134
130
|
try {
|
|
@@ -159,30 +155,7 @@ export class ContextEngine {
|
|
|
159
155
|
catch {
|
|
160
156
|
// Vault search failed — continue with other sources
|
|
161
157
|
}
|
|
162
|
-
// 2.
|
|
163
|
-
if (this.cognee) {
|
|
164
|
-
try {
|
|
165
|
-
const cogneeResults = await this.cognee.search(prompt, {
|
|
166
|
-
limit: this.config.cogneeSearchLimit,
|
|
167
|
-
});
|
|
168
|
-
for (const r of cogneeResults) {
|
|
169
|
-
// Avoid duplicates from vault
|
|
170
|
-
if (items.some((i) => i.id === r.id))
|
|
171
|
-
continue;
|
|
172
|
-
items.push({
|
|
173
|
-
id: r.id,
|
|
174
|
-
title: r.text.slice(0, 100),
|
|
175
|
-
score: r.score,
|
|
176
|
-
source: 'cognee',
|
|
177
|
-
});
|
|
178
|
-
cogneeHits++;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
catch {
|
|
182
|
-
// Cognee unavailable — continue without
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
// 3. Brain recommendations
|
|
158
|
+
// 2. Brain recommendations
|
|
186
159
|
try {
|
|
187
160
|
const recommendations = this.brainIntelligence.recommend({
|
|
188
161
|
domain,
|
|
@@ -206,7 +179,7 @@ export class ContextEngine {
|
|
|
206
179
|
// Sort by score descending, filter by threshold
|
|
207
180
|
items.sort((a, b) => b.score - a.score);
|
|
208
181
|
const filtered = items.filter((i) => i.score >= this.config.minScoreThreshold);
|
|
209
|
-
return { items: filtered, vaultHits, cogneeHits, brainHits };
|
|
182
|
+
return { items: filtered, vaultHits, cogneeHits: 0, brainHits };
|
|
210
183
|
}
|
|
211
184
|
// ─── Context Analysis ───────────────────────────────────────────
|
|
212
185
|
async analyze(prompt, domain) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-engine.js","sourceRoot":"","sources":["../../src/context/context-engine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context-engine.js","sourceRoot":"","sources":["../../src/context/context-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { Vault } from '../vault/vault.js';
|
|
2
2
|
import type { IntelligenceEntry } from '../intelligence/types.js';
|
|
3
|
-
import type { CogneeClient } from '../cognee/client.js';
|
|
4
3
|
import type { CuratorStatus, TagNormalizationResult, CanonicalTag, DuplicateDetectionResult, Contradiction, ContradictionStatus, GroomResult, GroomAllResult, ConsolidationOptions, ConsolidationResult, ChangelogEntry, HealthAuditResult } from './types.js';
|
|
5
4
|
export declare class Curator {
|
|
6
5
|
private vault;
|
|
7
|
-
private cognee;
|
|
8
6
|
private provider;
|
|
9
|
-
constructor(vault: Vault
|
|
7
|
+
constructor(vault: Vault);
|
|
10
8
|
private initializeTables;
|
|
11
9
|
private seedDefaultAliases;
|
|
12
10
|
getStatus(): CuratorStatus;
|
|
@@ -21,8 +19,7 @@ export declare class Curator {
|
|
|
21
19
|
resolveContradiction(id: number, resolution: 'resolved' | 'dismissed'): Contradiction | null;
|
|
22
20
|
detectContradictionsHybrid(threshold?: number): Promise<{
|
|
23
21
|
contradictions: Contradiction[];
|
|
24
|
-
|
|
25
|
-
method: 'hybrid' | 'tfidf-only';
|
|
22
|
+
method: 'tfidf-only';
|
|
26
23
|
}>;
|
|
27
24
|
groomEntry(entryId: string): GroomResult | null;
|
|
28
25
|
groomAll(): GroomAllResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curator.d.ts","sourceRoot":"","sources":["../../src/curator/curator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"curator.d.ts","sourceRoot":"","sources":["../../src/curator/curator.ts"],"names":[],"mappings":"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"}
|