@indigoai-us/cq 0.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/__tests__/integration.test.d.ts +8 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +233 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/budget/__tests__/budget.test.d.ts +2 -0
- package/dist/budget/__tests__/budget.test.d.ts.map +1 -0
- package/dist/budget/__tests__/budget.test.js +238 -0
- package/dist/budget/__tests__/budget.test.js.map +1 -0
- package/dist/budget/__tests__/token-tracker.test.d.ts +2 -0
- package/dist/budget/__tests__/token-tracker.test.d.ts.map +1 -0
- package/dist/budget/__tests__/token-tracker.test.js +292 -0
- package/dist/budget/__tests__/token-tracker.test.js.map +1 -0
- package/dist/budget/index.d.ts +38 -0
- package/dist/budget/index.d.ts.map +1 -0
- package/dist/budget/index.js +192 -0
- package/dist/budget/index.js.map +1 -0
- package/dist/budget/token-tracker.d.ts +62 -0
- package/dist/budget/token-tracker.d.ts.map +1 -0
- package/dist/budget/token-tracker.js +152 -0
- package/dist/budget/token-tracker.js.map +1 -0
- package/dist/budget/types.d.ts +41 -0
- package/dist/budget/types.d.ts.map +1 -0
- package/dist/budget/types.js +5 -0
- package/dist/budget/types.js.map +1 -0
- package/dist/confidence/__tests__/confidence.test.d.ts +2 -0
- package/dist/confidence/__tests__/confidence.test.d.ts.map +1 -0
- package/dist/confidence/__tests__/confidence.test.js +336 -0
- package/dist/confidence/__tests__/confidence.test.js.map +1 -0
- package/dist/confidence/erosion.d.ts +33 -0
- package/dist/confidence/erosion.d.ts.map +1 -0
- package/dist/confidence/erosion.js +42 -0
- package/dist/confidence/erosion.js.map +1 -0
- package/dist/confidence/index.d.ts +42 -0
- package/dist/confidence/index.d.ts.map +1 -0
- package/dist/confidence/index.js +168 -0
- package/dist/confidence/index.js.map +1 -0
- package/dist/confidence/types.d.ts +29 -0
- package/dist/confidence/types.d.ts.map +1 -0
- package/dist/confidence/types.js +5 -0
- package/dist/confidence/types.js.map +1 -0
- package/dist/curiosity/__tests__/curiosity.test.d.ts +2 -0
- package/dist/curiosity/__tests__/curiosity.test.d.ts.map +1 -0
- package/dist/curiosity/__tests__/curiosity.test.js +280 -0
- package/dist/curiosity/__tests__/curiosity.test.js.map +1 -0
- package/dist/curiosity/dedup.d.ts +29 -0
- package/dist/curiosity/dedup.d.ts.map +1 -0
- package/dist/curiosity/dedup.js +64 -0
- package/dist/curiosity/dedup.js.map +1 -0
- package/dist/curiosity/index.d.ts +56 -0
- package/dist/curiosity/index.d.ts.map +1 -0
- package/dist/curiosity/index.js +163 -0
- package/dist/curiosity/index.js.map +1 -0
- package/dist/curiosity/types.d.ts +29 -0
- package/dist/curiosity/types.d.ts.map +1 -0
- package/dist/curiosity/types.js +5 -0
- package/dist/curiosity/types.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +7 -0
- package/dist/index.test.js.map +1 -0
- package/dist/init.d.ts +17 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +153 -0
- package/dist/init.js.map +1 -0
- package/dist/knowledge-tree/__tests__/knowledge-tree.test.d.ts +2 -0
- package/dist/knowledge-tree/__tests__/knowledge-tree.test.d.ts.map +1 -0
- package/dist/knowledge-tree/__tests__/knowledge-tree.test.js +317 -0
- package/dist/knowledge-tree/__tests__/knowledge-tree.test.js.map +1 -0
- package/dist/knowledge-tree/format.d.ts +17 -0
- package/dist/knowledge-tree/format.d.ts.map +1 -0
- package/dist/knowledge-tree/format.js +48 -0
- package/dist/knowledge-tree/format.js.map +1 -0
- package/dist/knowledge-tree/index.d.ts +33 -0
- package/dist/knowledge-tree/index.d.ts.map +1 -0
- package/dist/knowledge-tree/index.js +182 -0
- package/dist/knowledge-tree/index.js.map +1 -0
- package/dist/knowledge-tree/types.d.ts +37 -0
- package/dist/knowledge-tree/types.d.ts.map +1 -0
- package/dist/knowledge-tree/types.js +5 -0
- package/dist/knowledge-tree/types.js.map +1 -0
- package/dist/metadata/__tests__/metadata.test.d.ts +2 -0
- package/dist/metadata/__tests__/metadata.test.d.ts.map +1 -0
- package/dist/metadata/__tests__/metadata.test.js +196 -0
- package/dist/metadata/__tests__/metadata.test.js.map +1 -0
- package/dist/metadata/__tests__/search.test.d.ts +2 -0
- package/dist/metadata/__tests__/search.test.d.ts.map +1 -0
- package/dist/metadata/__tests__/search.test.js +227 -0
- package/dist/metadata/__tests__/search.test.js.map +1 -0
- package/dist/metadata/index.d.ts +29 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +108 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/schema.d.ts +8 -0
- package/dist/metadata/schema.d.ts.map +1 -0
- package/dist/metadata/schema.js +31 -0
- package/dist/metadata/schema.js.map +1 -0
- package/dist/metadata/search.d.ts +27 -0
- package/dist/metadata/search.d.ts.map +1 -0
- package/dist/metadata/search.js +57 -0
- package/dist/metadata/search.js.map +1 -0
- package/dist/metadata/types.d.ts +17 -0
- package/dist/metadata/types.d.ts.map +1 -0
- package/dist/metadata/types.js +5 -0
- package/dist/metadata/types.js.map +1 -0
- package/dist/orchestrator/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/orchestrator/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/orchestrator/__tests__/orchestrator.test.js +354 -0
- package/dist/orchestrator/__tests__/orchestrator.test.js.map +1 -0
- package/dist/orchestrator/index.d.ts +23 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +302 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/scheduler.d.ts +32 -0
- package/dist/orchestrator/scheduler.d.ts.map +1 -0
- package/dist/orchestrator/scheduler.js +102 -0
- package/dist/orchestrator/scheduler.js.map +1 -0
- package/dist/orchestrator/types.d.ts +90 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +5 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/pipeline/__tests__/pipeline.test.d.ts +2 -0
- package/dist/pipeline/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/pipeline.test.js +320 -0
- package/dist/pipeline/__tests__/pipeline.test.js.map +1 -0
- package/dist/pipeline/index.d.ts +23 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +212 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/types.d.ts +41 -0
- package/dist/pipeline/types.d.ts.map +1 -0
- package/dist/pipeline/types.js +5 -0
- package/dist/pipeline/types.js.map +1 -0
- package/dist/providers/__tests__/providers.test.d.ts +2 -0
- package/dist/providers/__tests__/providers.test.d.ts.map +1 -0
- package/dist/providers/__tests__/providers.test.js +195 -0
- package/dist/providers/__tests__/providers.test.js.map +1 -0
- package/dist/providers/claude-model.d.ts +17 -0
- package/dist/providers/claude-model.d.ts.map +1 -0
- package/dist/providers/claude-model.js +119 -0
- package/dist/providers/claude-model.js.map +1 -0
- package/dist/providers/index.d.ts +22 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +38 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai-search.d.ts +14 -0
- package/dist/providers/openai-search.d.ts.map +1 -0
- package/dist/providers/openai-search.js +97 -0
- package/dist/providers/openai-search.js.map +1 -0
- package/dist/providers/types.d.ts +42 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +5 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/types.d.ts +122 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/vetter/__tests__/vetter.test.d.ts +2 -0
- package/dist/vetter/__tests__/vetter.test.d.ts.map +1 -0
- package/dist/vetter/__tests__/vetter.test.js +224 -0
- package/dist/vetter/__tests__/vetter.test.js.map +1 -0
- package/dist/vetter/index.d.ts +23 -0
- package/dist/vetter/index.d.ts.map +1 -0
- package/dist/vetter/index.js +177 -0
- package/dist/vetter/index.js.map +1 -0
- package/dist/vetter/resource-tracker.d.ts +49 -0
- package/dist/vetter/resource-tracker.d.ts.map +1 -0
- package/dist/vetter/resource-tracker.js +183 -0
- package/dist/vetter/resource-tracker.js.map +1 -0
- package/dist/vetter/types.d.ts +44 -0
- package/dist/vetter/types.d.ts.map +1 -0
- package/dist/vetter/types.js +5 -0
- package/dist/vetter/types.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deduplication via normalized Levenshtein distance.
|
|
3
|
+
*
|
|
4
|
+
* Two questions are considered duplicates when their normalized similarity
|
|
5
|
+
* exceeds 0.85 (i.e. normalizedLevenshtein(a, b) > 0.85).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Compute the Levenshtein edit distance between two strings.
|
|
9
|
+
*
|
|
10
|
+
* Uses the classic O(m*n) dynamic-programming approach with a single-row
|
|
11
|
+
* optimisation for memory efficiency.
|
|
12
|
+
*/
|
|
13
|
+
export declare function levenshtein(a: string, b: string): number;
|
|
14
|
+
/**
|
|
15
|
+
* Normalized Levenshtein similarity: 1 - (distance / max_length).
|
|
16
|
+
*
|
|
17
|
+
* Returns a value in [0, 1] where 1 means identical strings.
|
|
18
|
+
* Returns 1 for two empty strings.
|
|
19
|
+
*/
|
|
20
|
+
export declare function normalizedSimilarity(a: string, b: string): number;
|
|
21
|
+
/** Similarity threshold above which two questions are duplicates. */
|
|
22
|
+
export declare const DEDUP_THRESHOLD = 0.85;
|
|
23
|
+
/**
|
|
24
|
+
* Check whether `question` is a duplicate of any string in `existing`.
|
|
25
|
+
*
|
|
26
|
+
* Comparison is case-insensitive and whitespace-normalized.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isDuplicate(question: string, existing: string[]): boolean;
|
|
29
|
+
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/curiosity/dedup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BxD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,qEAAqE;AACrE,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAKzE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deduplication via normalized Levenshtein distance.
|
|
3
|
+
*
|
|
4
|
+
* Two questions are considered duplicates when their normalized similarity
|
|
5
|
+
* exceeds 0.85 (i.e. normalizedLevenshtein(a, b) > 0.85).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Compute the Levenshtein edit distance between two strings.
|
|
9
|
+
*
|
|
10
|
+
* Uses the classic O(m*n) dynamic-programming approach with a single-row
|
|
11
|
+
* optimisation for memory efficiency.
|
|
12
|
+
*/
|
|
13
|
+
export function levenshtein(a, b) {
|
|
14
|
+
const m = a.length;
|
|
15
|
+
const n = b.length;
|
|
16
|
+
if (m === 0)
|
|
17
|
+
return n;
|
|
18
|
+
if (n === 0)
|
|
19
|
+
return m;
|
|
20
|
+
// Previous row of distances (length n+1)
|
|
21
|
+
let prev = new Array(n + 1);
|
|
22
|
+
let curr = new Array(n + 1);
|
|
23
|
+
for (let j = 0; j <= n; j++)
|
|
24
|
+
prev[j] = j;
|
|
25
|
+
for (let i = 1; i <= m; i++) {
|
|
26
|
+
curr[0] = i;
|
|
27
|
+
for (let j = 1; j <= n; j++) {
|
|
28
|
+
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
29
|
+
curr[j] = Math.min(prev[j] + 1, // deletion
|
|
30
|
+
curr[j - 1] + 1, // insertion
|
|
31
|
+
prev[j - 1] + cost);
|
|
32
|
+
}
|
|
33
|
+
[prev, curr] = [curr, prev];
|
|
34
|
+
}
|
|
35
|
+
return prev[n];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Normalized Levenshtein similarity: 1 - (distance / max_length).
|
|
39
|
+
*
|
|
40
|
+
* Returns a value in [0, 1] where 1 means identical strings.
|
|
41
|
+
* Returns 1 for two empty strings.
|
|
42
|
+
*/
|
|
43
|
+
export function normalizedSimilarity(a, b) {
|
|
44
|
+
const maxLen = Math.max(a.length, b.length);
|
|
45
|
+
if (maxLen === 0)
|
|
46
|
+
return 1;
|
|
47
|
+
return 1 - levenshtein(a, b) / maxLen;
|
|
48
|
+
}
|
|
49
|
+
/** Similarity threshold above which two questions are duplicates. */
|
|
50
|
+
export const DEDUP_THRESHOLD = 0.85;
|
|
51
|
+
/**
|
|
52
|
+
* Check whether `question` is a duplicate of any string in `existing`.
|
|
53
|
+
*
|
|
54
|
+
* Comparison is case-insensitive and whitespace-normalized.
|
|
55
|
+
*/
|
|
56
|
+
export function isDuplicate(question, existing) {
|
|
57
|
+
const norm = normalize(question);
|
|
58
|
+
return existing.some((e) => normalizedSimilarity(norm, normalize(e)) > DEDUP_THRESHOLD);
|
|
59
|
+
}
|
|
60
|
+
/** Lowercase and collapse whitespace for fair comparison. */
|
|
61
|
+
function normalize(s) {
|
|
62
|
+
return s.toLowerCase().replace(/\s+/g, " ").trim();
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=dedup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/curiosity/dedup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAEnB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtB,yCAAyC;IACzC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,EAAQ,WAAW;YAC/B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,EAAI,YAAY;YAChC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CACpB,CAAC;QACJ,CAAC;QACD,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,CAAE,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAS,EAAE,CAAS;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;AACxC,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAkB;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAClE,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curiosity Queue — priority-based queue for agent-filed questions.
|
|
3
|
+
*
|
|
4
|
+
* Uses the same SQLite database as the metadata store (obtained via getDb()).
|
|
5
|
+
* The curiosity_queue table is created by calling initCuriosityQueue().
|
|
6
|
+
*/
|
|
7
|
+
import type Database from "better-sqlite3";
|
|
8
|
+
import type { CuriosityItem, AddCuriosityInput, StatusCounts } from "./types.js";
|
|
9
|
+
export type { CuriosityItem, AddCuriosityInput, CuriositySource, CuriosityStatus, StatusCounts, } from "./types.js";
|
|
10
|
+
export { levenshtein, normalizedSimilarity, isDuplicate, DEDUP_THRESHOLD } from "./dedup.js";
|
|
11
|
+
/**
|
|
12
|
+
* Create the curiosity_queue table in the given database.
|
|
13
|
+
*
|
|
14
|
+
* Call this after initMetadataDb() — pass the db instance returned by getDb().
|
|
15
|
+
*/
|
|
16
|
+
export declare function initCuriosityQueue(db?: Database.Database): void;
|
|
17
|
+
/**
|
|
18
|
+
* Add a curiosity item to the queue.
|
|
19
|
+
*
|
|
20
|
+
* Rejects duplicates: if a pending item has normalized Levenshtein similarity
|
|
21
|
+
* > 0.85 with the new question, the insert is skipped and null is returned.
|
|
22
|
+
*/
|
|
23
|
+
export declare function addCuriosity(input: AddCuriosityInput): CuriosityItem | null;
|
|
24
|
+
/**
|
|
25
|
+
* Fetch pending items ordered by priority DESC, created_at ASC.
|
|
26
|
+
*/
|
|
27
|
+
export declare function fetchPending(limit: number): CuriosityItem[];
|
|
28
|
+
/**
|
|
29
|
+
* Get a single curiosity item by ID.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getItem(id: number): CuriosityItem | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Mark an item as in_progress.
|
|
34
|
+
*/
|
|
35
|
+
export declare function markInProgress(id: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Mark an item as completed.
|
|
38
|
+
*/
|
|
39
|
+
export declare function markCompleted(id: number): void;
|
|
40
|
+
/**
|
|
41
|
+
* Mark an item as failed with an error message.
|
|
42
|
+
*/
|
|
43
|
+
export declare function markFailed(id: number, error: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Dismiss a curiosity item.
|
|
46
|
+
*/
|
|
47
|
+
export declare function dismiss(id: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Return the count of items per status.
|
|
50
|
+
*/
|
|
51
|
+
export declare function countByStatus(): StatusCounts;
|
|
52
|
+
/**
|
|
53
|
+
* Remove failed items older than the specified number of days.
|
|
54
|
+
*/
|
|
55
|
+
export declare function pruneFailed(olderThanDays: number): number;
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/curiosity/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAEjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwB7F;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAG/D;AAoBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,GAAG,IAAI,CA+B3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAO3D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAK7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK9C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAmB5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CASzD"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curiosity Queue — priority-based queue for agent-filed questions.
|
|
3
|
+
*
|
|
4
|
+
* Uses the same SQLite database as the metadata store (obtained via getDb()).
|
|
5
|
+
* The curiosity_queue table is created by calling initCuriosityQueue().
|
|
6
|
+
*/
|
|
7
|
+
import { getDb } from "../metadata/index.js";
|
|
8
|
+
import { isDuplicate } from "./dedup.js";
|
|
9
|
+
export { levenshtein, normalizedSimilarity, isDuplicate, DEDUP_THRESHOLD } from "./dedup.js";
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Schema
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
const CREATE_CURIOSITY_QUEUE = `
|
|
14
|
+
CREATE TABLE IF NOT EXISTS curiosity_queue (
|
|
15
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
16
|
+
question TEXT NOT NULL,
|
|
17
|
+
context TEXT NOT NULL DEFAULT '',
|
|
18
|
+
source TEXT NOT NULL,
|
|
19
|
+
priority INTEGER NOT NULL DEFAULT 5,
|
|
20
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
21
|
+
error TEXT,
|
|
22
|
+
created_at TEXT NOT NULL,
|
|
23
|
+
updated_at TEXT NOT NULL
|
|
24
|
+
);
|
|
25
|
+
`;
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Initialisation
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/**
|
|
30
|
+
* Create the curiosity_queue table in the given database.
|
|
31
|
+
*
|
|
32
|
+
* Call this after initMetadataDb() — pass the db instance returned by getDb().
|
|
33
|
+
*/
|
|
34
|
+
export function initCuriosityQueue(db) {
|
|
35
|
+
const conn = db ?? requireDb();
|
|
36
|
+
conn.exec(CREATE_CURIOSITY_QUEUE);
|
|
37
|
+
}
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// Helpers
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
function requireDb() {
|
|
42
|
+
const conn = getDb();
|
|
43
|
+
if (!conn)
|
|
44
|
+
throw new Error("Database not initialised — call initMetadataDb first");
|
|
45
|
+
return conn;
|
|
46
|
+
}
|
|
47
|
+
function now() {
|
|
48
|
+
return new Date().toISOString();
|
|
49
|
+
}
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// CRUD
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Add a curiosity item to the queue.
|
|
55
|
+
*
|
|
56
|
+
* Rejects duplicates: if a pending item has normalized Levenshtein similarity
|
|
57
|
+
* > 0.85 with the new question, the insert is skipped and null is returned.
|
|
58
|
+
*/
|
|
59
|
+
export function addCuriosity(input) {
|
|
60
|
+
const db = requireDb();
|
|
61
|
+
// Validate priority range
|
|
62
|
+
if (input.priority < 1 || input.priority > 10) {
|
|
63
|
+
throw new Error("Priority must be between 1 and 10");
|
|
64
|
+
}
|
|
65
|
+
// Dedup against pending items
|
|
66
|
+
const pendingQuestions = db
|
|
67
|
+
.prepare("SELECT question FROM curiosity_queue WHERE status = 'pending'")
|
|
68
|
+
.all();
|
|
69
|
+
if (isDuplicate(input.question, pendingQuestions.map((r) => r.question))) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const ts = now();
|
|
73
|
+
const result = db.prepare(`
|
|
74
|
+
INSERT INTO curiosity_queue (question, context, source, priority, status, created_at, updated_at)
|
|
75
|
+
VALUES (@question, @context, @source, @priority, 'pending', @created_at, @updated_at)
|
|
76
|
+
`).run({
|
|
77
|
+
question: input.question,
|
|
78
|
+
context: input.context,
|
|
79
|
+
source: input.source,
|
|
80
|
+
priority: input.priority,
|
|
81
|
+
created_at: ts,
|
|
82
|
+
updated_at: ts,
|
|
83
|
+
});
|
|
84
|
+
return getItem(Number(result.lastInsertRowid));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetch pending items ordered by priority DESC, created_at ASC.
|
|
88
|
+
*/
|
|
89
|
+
export function fetchPending(limit) {
|
|
90
|
+
const db = requireDb();
|
|
91
|
+
return db
|
|
92
|
+
.prepare("SELECT * FROM curiosity_queue WHERE status = 'pending' ORDER BY priority DESC, created_at ASC LIMIT ?")
|
|
93
|
+
.all(limit);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get a single curiosity item by ID.
|
|
97
|
+
*/
|
|
98
|
+
export function getItem(id) {
|
|
99
|
+
const db = requireDb();
|
|
100
|
+
return db
|
|
101
|
+
.prepare("SELECT * FROM curiosity_queue WHERE id = ?")
|
|
102
|
+
.get(id);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Mark an item as in_progress.
|
|
106
|
+
*/
|
|
107
|
+
export function markInProgress(id) {
|
|
108
|
+
const db = requireDb();
|
|
109
|
+
db.prepare("UPDATE curiosity_queue SET status = 'in_progress', updated_at = ? WHERE id = ?").run(now(), id);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Mark an item as completed.
|
|
113
|
+
*/
|
|
114
|
+
export function markCompleted(id) {
|
|
115
|
+
const db = requireDb();
|
|
116
|
+
db.prepare("UPDATE curiosity_queue SET status = 'completed', updated_at = ? WHERE id = ?").run(now(), id);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Mark an item as failed with an error message.
|
|
120
|
+
*/
|
|
121
|
+
export function markFailed(id, error) {
|
|
122
|
+
const db = requireDb();
|
|
123
|
+
db.prepare("UPDATE curiosity_queue SET status = 'failed', error = ?, updated_at = ? WHERE id = ?").run(error, now(), id);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Dismiss a curiosity item.
|
|
127
|
+
*/
|
|
128
|
+
export function dismiss(id) {
|
|
129
|
+
const db = requireDb();
|
|
130
|
+
db.prepare("UPDATE curiosity_queue SET status = 'dismissed', updated_at = ? WHERE id = ?").run(now(), id);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Return the count of items per status.
|
|
134
|
+
*/
|
|
135
|
+
export function countByStatus() {
|
|
136
|
+
const db = requireDb();
|
|
137
|
+
const rows = db
|
|
138
|
+
.prepare("SELECT status, COUNT(*) as count FROM curiosity_queue GROUP BY status")
|
|
139
|
+
.all();
|
|
140
|
+
const counts = {
|
|
141
|
+
pending: 0,
|
|
142
|
+
in_progress: 0,
|
|
143
|
+
completed: 0,
|
|
144
|
+
failed: 0,
|
|
145
|
+
dismissed: 0,
|
|
146
|
+
};
|
|
147
|
+
for (const row of rows) {
|
|
148
|
+
counts[row.status] = row.count;
|
|
149
|
+
}
|
|
150
|
+
return counts;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Remove failed items older than the specified number of days.
|
|
154
|
+
*/
|
|
155
|
+
export function pruneFailed(olderThanDays) {
|
|
156
|
+
const db = requireDb();
|
|
157
|
+
const cutoff = new Date(Date.now() - olderThanDays * 86_400_000).toISOString();
|
|
158
|
+
const result = db
|
|
159
|
+
.prepare("DELETE FROM curiosity_queue WHERE status = 'failed' AND created_at < ?")
|
|
160
|
+
.run(cutoff);
|
|
161
|
+
return result.changes;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/curiosity/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curiosity Queue type definitions.
|
|
3
|
+
*/
|
|
4
|
+
/** Valid sources for curiosity items. */
|
|
5
|
+
export type CuriositySource = "observation" | "outcome_gap" | "trend_detection" | "knowledge_gap" | "conversation_insight" | "agent" | "system";
|
|
6
|
+
/** Valid statuses for curiosity items. */
|
|
7
|
+
export type CuriosityStatus = "pending" | "in_progress" | "completed" | "failed" | "dismissed";
|
|
8
|
+
/** A row in the curiosity_queue table. */
|
|
9
|
+
export interface CuriosityItem {
|
|
10
|
+
id: number;
|
|
11
|
+
question: string;
|
|
12
|
+
context: string;
|
|
13
|
+
source: CuriositySource;
|
|
14
|
+
priority: number;
|
|
15
|
+
status: CuriosityStatus;
|
|
16
|
+
error: string | null;
|
|
17
|
+
created_at: string;
|
|
18
|
+
updated_at: string;
|
|
19
|
+
}
|
|
20
|
+
/** Input for adding a new curiosity item. */
|
|
21
|
+
export interface AddCuriosityInput {
|
|
22
|
+
question: string;
|
|
23
|
+
context: string;
|
|
24
|
+
source: CuriositySource;
|
|
25
|
+
priority: number;
|
|
26
|
+
}
|
|
27
|
+
/** Count of items grouped by status. */
|
|
28
|
+
export type StatusCounts = Record<CuriosityStatus, number>;
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/curiosity/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,sBAAsB,GACtB,OAAO,GACP,QAAQ,CAAC;AAEb,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,aAAa,GACb,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/curiosity/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { initCQ } from "./init.js";
|
|
2
|
+
export type { CQConfig, CQInstance } from "./types.js";
|
|
3
|
+
export { initKnowledgeTree, writeEntry, readEntry, listEntries, listCategories, removeEntry, createCategory, generateIndex, generateIndexRecursive, slugify, } from "./knowledge-tree/index.js";
|
|
4
|
+
export type { KnowledgeEntry, WriteEntryInput, CategoryInfo, KnowledgeFrontmatter, } from "./knowledge-tree/index.js";
|
|
5
|
+
export { initMetadataDb, closeDb, getDb, indexEntry, removeFromIndex, getMetadata, getStaleEntries, } from "./metadata/index.js";
|
|
6
|
+
export type { KnowledgeMetadata } from "./metadata/index.js";
|
|
7
|
+
export { search, rebuildIndex } from "./metadata/search.js";
|
|
8
|
+
export type { SearchResult } from "./metadata/search.js";
|
|
9
|
+
export { initCuriosityQueue, addCuriosity, fetchPending, getItem, markInProgress, markCompleted, markFailed, dismiss, countByStatus, pruneFailed, levenshtein, normalizedSimilarity, isDuplicate, DEDUP_THRESHOLD, } from "./curiosity/index.js";
|
|
10
|
+
export type { CuriosityItem, AddCuriosityInput, CuriositySource, CuriosityStatus, StatusCounts, } from "./curiosity/index.js";
|
|
11
|
+
export { setConfidenceConfig, getConfidenceConfig, getConfidence, recordVerification, recordContradiction, getRefreshCandidates, computeConfidence, daysElapsed, applyContradiction, } from "./confidence/index.js";
|
|
12
|
+
export type { ConfidenceConfig, RefreshCandidate, } from "./confidence/index.js";
|
|
13
|
+
export { createSearchProvider, createModelProvider, OpenAISearchProvider, ClaudeModelProvider, } from "./providers/index.js";
|
|
14
|
+
export type { WebSearchResult, SynthesisResult, SearchProvider, ModelProvider, } from "./providers/index.js";
|
|
15
|
+
export { runPipeline } from "./pipeline/index.js";
|
|
16
|
+
export type { PipelineResult, PipelineOptions, PipelineAction, BudgetCheck, } from "./pipeline/index.js";
|
|
17
|
+
export { vetResource, initResourceTracker, trackResourceUsage, isOverRelied, getDomainUsage, getUnderexploredDomains, getResourceUsage, } from "./vetter/index.js";
|
|
18
|
+
export type { VetResult, VetConfig, QualitySignal, VetRecommendation, ResourceUsage, DomainStats, } from "./vetter/index.js";
|
|
19
|
+
export { initBudgetTables, setBudgetConfig, getBudgetConfig, charge, checkBudget, getDailyBudgetStatus, getTotalBudgetStatus, } from "./budget/index.js";
|
|
20
|
+
export type { BudgetConfig, BudgetCheckResult, BudgetStatus, ChargeType, SelectionStrategy, ScoredEntry, } from "./budget/index.js";
|
|
21
|
+
export { TokenTracker, estimateTokens } from "./budget/index.js";
|
|
22
|
+
export { runOrchestrator, initJobLog, getRecentRuns, } from "./orchestrator/index.js";
|
|
23
|
+
export type { OrchestratorOptions, OrchestratorResult, CuriosityPhaseResult, ProactivePhaseResult, RunLogEntry, SchedulerConfig, } from "./orchestrator/index.js";
|
|
24
|
+
export { startScheduler, stopScheduler, isSchedulerRunning, matchesCron, } from "./orchestrator/scheduler.js";
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// CQ — Curiosity Queue / Knowledge Loop
|
|
2
|
+
// Main entry point
|
|
3
|
+
export { initCQ } from "./init.js";
|
|
4
|
+
export { initKnowledgeTree, writeEntry, readEntry, listEntries, listCategories, removeEntry, createCategory, generateIndex, generateIndexRecursive, slugify, } from "./knowledge-tree/index.js";
|
|
5
|
+
export { initMetadataDb, closeDb, getDb, indexEntry, removeFromIndex, getMetadata, getStaleEntries, } from "./metadata/index.js";
|
|
6
|
+
export { search, rebuildIndex } from "./metadata/search.js";
|
|
7
|
+
export { initCuriosityQueue, addCuriosity, fetchPending, getItem, markInProgress, markCompleted, markFailed, dismiss, countByStatus, pruneFailed, levenshtein, normalizedSimilarity, isDuplicate, DEDUP_THRESHOLD, } from "./curiosity/index.js";
|
|
8
|
+
export { setConfidenceConfig, getConfidenceConfig, getConfidence, recordVerification, recordContradiction, getRefreshCandidates, computeConfidence, daysElapsed, applyContradiction, } from "./confidence/index.js";
|
|
9
|
+
export { createSearchProvider, createModelProvider, OpenAISearchProvider, ClaudeModelProvider, } from "./providers/index.js";
|
|
10
|
+
export { runPipeline } from "./pipeline/index.js";
|
|
11
|
+
export { vetResource, initResourceTracker, trackResourceUsage, isOverRelied, getDomainUsage, getUnderexploredDomains, getResourceUsage, } from "./vetter/index.js";
|
|
12
|
+
export { initBudgetTables, setBudgetConfig, getBudgetConfig, charge, checkBudget, getDailyBudgetStatus, getTotalBudgetStatus, } from "./budget/index.js";
|
|
13
|
+
export { TokenTracker, estimateTokens } from "./budget/index.js";
|
|
14
|
+
export { runOrchestrator, initJobLog, getRecentRuns, } from "./orchestrator/index.js";
|
|
15
|
+
export { startScheduler, stopScheduler, isSchedulerRunning, matchesCron, } from "./orchestrator/scheduler.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,mBAAmB;AAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,OAAO,GACR,MAAM,2BAA2B,CAAC;AASnC,OAAO,EACL,cAAc,EACd,OAAO,EACP,KAAK,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,cAAc,EACd,aAAa,EACb,UAAU,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASlD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,MAAM,EACN,WAAW,EACX,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EACL,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CQ Public API — unified initialisation.
|
|
3
|
+
*
|
|
4
|
+
* initCQ(config) bootstraps the entire CQ system from a single config object
|
|
5
|
+
* and returns a CQInstance with access to all subsystems.
|
|
6
|
+
*/
|
|
7
|
+
import type { CQConfig, CQInstance } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Initialise the entire CQ system from a single configuration object.
|
|
10
|
+
*
|
|
11
|
+
* Opens the SQLite database, creates all required tables, initialises the
|
|
12
|
+
* knowledge tree directory, and optionally starts the scheduler.
|
|
13
|
+
*
|
|
14
|
+
* Call `instance.close()` when done to release all resources.
|
|
15
|
+
*/
|
|
16
|
+
export declare function initCQ(config: CQConfig): Promise<CQInstance>;
|
|
17
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuFH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMvD;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA6IlE"}
|
package/dist/init.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CQ Public API — unified initialisation.
|
|
3
|
+
*
|
|
4
|
+
* initCQ(config) bootstraps the entire CQ system from a single config object
|
|
5
|
+
* and returns a CQInstance with access to all subsystems.
|
|
6
|
+
*/
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
import { initKnowledgeTree, writeEntry, readEntry, listEntries, listCategories, removeEntry, createCategory, generateIndex, generateIndexRecursive, } from "./knowledge-tree/index.js";
|
|
9
|
+
import { initMetadataDb, closeDb, indexEntry, removeFromIndex, getMetadata, getStaleEntries, } from "./metadata/index.js";
|
|
10
|
+
import { search, rebuildIndex } from "./metadata/search.js";
|
|
11
|
+
import { setConfidenceConfig, getConfidenceConfig, getConfidence, recordVerification, recordContradiction, getRefreshCandidates, } from "./confidence/index.js";
|
|
12
|
+
import { initCuriosityQueue, addCuriosity, fetchPending, getItem, markInProgress, markCompleted, markFailed, dismiss, countByStatus, } from "./curiosity/index.js";
|
|
13
|
+
import { runPipeline } from "./pipeline/index.js";
|
|
14
|
+
import { vetResource, trackResourceUsage, isOverRelied, getDomainUsage, getUnderexploredDomains, getResourceUsage, } from "./vetter/index.js";
|
|
15
|
+
import { initResourceTrackerWithDb } from "./vetter/resource-tracker.js";
|
|
16
|
+
import { initBudgetTables, setBudgetConfig, getBudgetConfig, charge, checkBudget, getDailyBudgetStatus, getTotalBudgetStatus, } from "./budget/index.js";
|
|
17
|
+
import { TokenTracker } from "./budget/token-tracker.js";
|
|
18
|
+
import { runOrchestrator, initJobLog, getRecentRuns, } from "./orchestrator/index.js";
|
|
19
|
+
import { startScheduler, stopScheduler, isSchedulerRunning, } from "./orchestrator/scheduler.js";
|
|
20
|
+
import { createSearchProvider, createModelProvider } from "./providers/index.js";
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// initCQ
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
/**
|
|
25
|
+
* Initialise the entire CQ system from a single configuration object.
|
|
26
|
+
*
|
|
27
|
+
* Opens the SQLite database, creates all required tables, initialises the
|
|
28
|
+
* knowledge tree directory, and optionally starts the scheduler.
|
|
29
|
+
*
|
|
30
|
+
* Call `instance.close()` when done to release all resources.
|
|
31
|
+
*/
|
|
32
|
+
export async function initCQ(config) {
|
|
33
|
+
const { dataDir } = config;
|
|
34
|
+
// 1. Initialise knowledge tree directory
|
|
35
|
+
await initKnowledgeTree(dataDir);
|
|
36
|
+
// 2. Open SQLite database (metadata store)
|
|
37
|
+
const dbPath = join(dataDir, "cq.db");
|
|
38
|
+
const db = initMetadataDb(dbPath);
|
|
39
|
+
// 3. Initialise subsystem tables
|
|
40
|
+
initCuriosityQueue(db);
|
|
41
|
+
initBudgetTables();
|
|
42
|
+
initResourceTrackerWithDb(db);
|
|
43
|
+
initJobLog(db);
|
|
44
|
+
// 4. Apply optional configuration
|
|
45
|
+
if (config.confidence) {
|
|
46
|
+
setConfidenceConfig(config.confidence);
|
|
47
|
+
}
|
|
48
|
+
if (config.budget) {
|
|
49
|
+
setBudgetConfig(config.budget);
|
|
50
|
+
}
|
|
51
|
+
// 5. Set up providers
|
|
52
|
+
const searchProvider = config.providers?.search ?? createSearchProvider();
|
|
53
|
+
const modelProvider = config.providers?.model ?? createModelProvider();
|
|
54
|
+
// 6. Create token tracker (default 128k budget)
|
|
55
|
+
const tokenTracker = new TokenTracker(128_000);
|
|
56
|
+
// 7. Optionally start scheduler
|
|
57
|
+
if (config.scheduler) {
|
|
58
|
+
startScheduler({
|
|
59
|
+
cron: config.scheduler.cron,
|
|
60
|
+
orchestratorOptions: {
|
|
61
|
+
db,
|
|
62
|
+
dataDir,
|
|
63
|
+
searchProvider,
|
|
64
|
+
modelProvider,
|
|
65
|
+
},
|
|
66
|
+
onComplete: config.scheduler.onComplete,
|
|
67
|
+
onError: config.scheduler.onError,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// 8. Build the CQInstance
|
|
71
|
+
const instance = {
|
|
72
|
+
knowledge: {
|
|
73
|
+
initKnowledgeTree,
|
|
74
|
+
writeEntry,
|
|
75
|
+
readEntry,
|
|
76
|
+
listEntries,
|
|
77
|
+
listCategories,
|
|
78
|
+
removeEntry,
|
|
79
|
+
createCategory,
|
|
80
|
+
generateIndex,
|
|
81
|
+
generateIndexRecursive,
|
|
82
|
+
},
|
|
83
|
+
metadata: {
|
|
84
|
+
indexEntry,
|
|
85
|
+
removeFromIndex,
|
|
86
|
+
getMetadata,
|
|
87
|
+
getStaleEntries,
|
|
88
|
+
search,
|
|
89
|
+
rebuildIndex,
|
|
90
|
+
},
|
|
91
|
+
confidence: {
|
|
92
|
+
setConfidenceConfig,
|
|
93
|
+
getConfidenceConfig,
|
|
94
|
+
getConfidence,
|
|
95
|
+
recordVerification,
|
|
96
|
+
recordContradiction,
|
|
97
|
+
getRefreshCandidates,
|
|
98
|
+
},
|
|
99
|
+
curiosity: {
|
|
100
|
+
addCuriosity,
|
|
101
|
+
fetchPending,
|
|
102
|
+
getItem,
|
|
103
|
+
markInProgress,
|
|
104
|
+
markCompleted,
|
|
105
|
+
markFailed,
|
|
106
|
+
dismiss,
|
|
107
|
+
countByStatus,
|
|
108
|
+
},
|
|
109
|
+
pipeline: {
|
|
110
|
+
runPipeline,
|
|
111
|
+
},
|
|
112
|
+
vetter: {
|
|
113
|
+
vetResource,
|
|
114
|
+
trackResourceUsage,
|
|
115
|
+
isOverRelied,
|
|
116
|
+
getDomainUsage,
|
|
117
|
+
getUnderexploredDomains,
|
|
118
|
+
getResourceUsage,
|
|
119
|
+
},
|
|
120
|
+
budget: {
|
|
121
|
+
setBudgetConfig,
|
|
122
|
+
getBudgetConfig,
|
|
123
|
+
charge,
|
|
124
|
+
checkBudget,
|
|
125
|
+
getDailyBudgetStatus,
|
|
126
|
+
getTotalBudgetStatus,
|
|
127
|
+
},
|
|
128
|
+
tokenTracker,
|
|
129
|
+
orchestrator: {
|
|
130
|
+
runOrchestrator,
|
|
131
|
+
getRecentRuns,
|
|
132
|
+
},
|
|
133
|
+
scheduler: {
|
|
134
|
+
startScheduler,
|
|
135
|
+
stopScheduler,
|
|
136
|
+
isSchedulerRunning,
|
|
137
|
+
},
|
|
138
|
+
db,
|
|
139
|
+
dataDir,
|
|
140
|
+
searchProvider,
|
|
141
|
+
modelProvider,
|
|
142
|
+
close() {
|
|
143
|
+
// Stop scheduler if running
|
|
144
|
+
if (isSchedulerRunning()) {
|
|
145
|
+
stopScheduler();
|
|
146
|
+
}
|
|
147
|
+
// Close the SQLite database
|
|
148
|
+
closeDb();
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
return instance;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-tree.test.d.ts","sourceRoot":"","sources":["../../../src/knowledge-tree/__tests__/knowledge-tree.test.ts"],"names":[],"mappings":""}
|