mindgraph-core 0.1.0
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/embeddings/embedder-interface.d.ts +15 -0
- package/dist/embeddings/embedder-interface.d.ts.map +1 -0
- package/dist/embeddings/embedder-interface.js +2 -0
- package/dist/embeddings/embedder-interface.js.map +1 -0
- package/dist/embeddings/ollama-embedder.d.ts +21 -0
- package/dist/embeddings/ollama-embedder.d.ts.map +1 -0
- package/dist/embeddings/ollama-embedder.js +78 -0
- package/dist/embeddings/ollama-embedder.js.map +1 -0
- package/dist/embeddings/transformers-embedder.d.ts +20 -0
- package/dist/embeddings/transformers-embedder.d.ts.map +1 -0
- package/dist/embeddings/transformers-embedder.js +61 -0
- package/dist/embeddings/transformers-embedder.js.map +1 -0
- package/dist/extraction/anthropic-extractor.d.ts +17 -0
- package/dist/extraction/anthropic-extractor.d.ts.map +1 -0
- package/dist/extraction/anthropic-extractor.js +43 -0
- package/dist/extraction/anthropic-extractor.js.map +1 -0
- package/dist/extraction/basic-extractor.d.ts +17 -0
- package/dist/extraction/basic-extractor.d.ts.map +1 -0
- package/dist/extraction/basic-extractor.js +135 -0
- package/dist/extraction/basic-extractor.js.map +1 -0
- package/dist/extraction/confidence-gate.d.ts +7 -0
- package/dist/extraction/confidence-gate.d.ts.map +1 -0
- package/dist/extraction/confidence-gate.js +13 -0
- package/dist/extraction/confidence-gate.js.map +1 -0
- package/dist/extraction/contradiction-detector.d.ts +46 -0
- package/dist/extraction/contradiction-detector.d.ts.map +1 -0
- package/dist/extraction/contradiction-detector.js +205 -0
- package/dist/extraction/contradiction-detector.js.map +1 -0
- package/dist/extraction/entity-index.d.ts +31 -0
- package/dist/extraction/entity-index.d.ts.map +1 -0
- package/dist/extraction/entity-index.js +90 -0
- package/dist/extraction/entity-index.js.map +1 -0
- package/dist/extraction/entity-resolver.d.ts +28 -0
- package/dist/extraction/entity-resolver.d.ts.map +1 -0
- package/dist/extraction/entity-resolver.js +111 -0
- package/dist/extraction/entity-resolver.js.map +1 -0
- package/dist/extraction/extractor-interface.d.ts +51 -0
- package/dist/extraction/extractor-interface.d.ts.map +1 -0
- package/dist/extraction/extractor-interface.js +2 -0
- package/dist/extraction/extractor-interface.js.map +1 -0
- package/dist/extraction/llm-extractor.d.ts +21 -0
- package/dist/extraction/llm-extractor.d.ts.map +1 -0
- package/dist/extraction/llm-extractor.js +97 -0
- package/dist/extraction/llm-extractor.js.map +1 -0
- package/dist/extraction/ollama-extractor.d.ts +18 -0
- package/dist/extraction/ollama-extractor.d.ts.map +1 -0
- package/dist/extraction/ollama-extractor.js +50 -0
- package/dist/extraction/ollama-extractor.js.map +1 -0
- package/dist/extraction/open-loop-detector.d.ts +24 -0
- package/dist/extraction/open-loop-detector.d.ts.map +1 -0
- package/dist/extraction/open-loop-detector.js +187 -0
- package/dist/extraction/open-loop-detector.js.map +1 -0
- package/dist/extraction/openai-extractor.d.ts +20 -0
- package/dist/extraction/openai-extractor.d.ts.map +1 -0
- package/dist/extraction/openai-extractor.js +44 -0
- package/dist/extraction/openai-extractor.js.map +1 -0
- package/dist/extraction/prompts/entity-extraction.d.ts +2 -0
- package/dist/extraction/prompts/entity-extraction.d.ts.map +1 -0
- package/dist/extraction/prompts/entity-extraction.js +42 -0
- package/dist/extraction/prompts/entity-extraction.js.map +1 -0
- package/dist/extraction/prompts/proposition-extraction.d.ts +2 -0
- package/dist/extraction/prompts/proposition-extraction.d.ts.map +1 -0
- package/dist/extraction/prompts/proposition-extraction.js +39 -0
- package/dist/extraction/prompts/proposition-extraction.js.map +1 -0
- package/dist/extraction/prompts/thought-extraction.d.ts +2 -0
- package/dist/extraction/prompts/thought-extraction.d.ts.map +1 -0
- package/dist/extraction/prompts/thought-extraction.js +41 -0
- package/dist/extraction/prompts/thought-extraction.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/ingestion/chunk-id.d.ts +27 -0
- package/dist/ingestion/chunk-id.d.ts.map +1 -0
- package/dist/ingestion/chunk-id.js +45 -0
- package/dist/ingestion/chunk-id.js.map +1 -0
- package/dist/ingestion/chunker.d.ts +29 -0
- package/dist/ingestion/chunker.d.ts.map +1 -0
- package/dist/ingestion/chunker.js +182 -0
- package/dist/ingestion/chunker.js.map +1 -0
- package/dist/ingestion/hasher.d.ts +7 -0
- package/dist/ingestion/hasher.d.ts.map +1 -0
- package/dist/ingestion/hasher.js +18 -0
- package/dist/ingestion/hasher.js.map +1 -0
- package/dist/ingestion/pipeline.d.ts +58 -0
- package/dist/ingestion/pipeline.d.ts.map +1 -0
- package/dist/ingestion/pipeline.js +653 -0
- package/dist/ingestion/pipeline.js.map +1 -0
- package/dist/models/citation.d.ts +2 -0
- package/dist/models/citation.d.ts.map +1 -0
- package/dist/models/citation.js +2 -0
- package/dist/models/citation.js.map +1 -0
- package/dist/models/extraction-result.d.ts +2 -0
- package/dist/models/extraction-result.d.ts.map +1 -0
- package/dist/models/extraction-result.js +2 -0
- package/dist/models/extraction-result.js.map +1 -0
- package/dist/models/query-result.d.ts +2 -0
- package/dist/models/query-result.d.ts.map +1 -0
- package/dist/models/query-result.js +2 -0
- package/dist/models/query-result.js.map +1 -0
- package/dist/query/answer-builder.d.ts +15 -0
- package/dist/query/answer-builder.d.ts.map +1 -0
- package/dist/query/answer-builder.js +51 -0
- package/dist/query/answer-builder.js.map +1 -0
- package/dist/query/citation-builder.d.ts +19 -0
- package/dist/query/citation-builder.d.ts.map +1 -0
- package/dist/query/citation-builder.js +54 -0
- package/dist/query/citation-builder.js.map +1 -0
- package/dist/query/graph-data.d.ts +39 -0
- package/dist/query/graph-data.d.ts.map +1 -0
- package/dist/query/graph-data.js +115 -0
- package/dist/query/graph-data.js.map +1 -0
- package/dist/query/graph-search.d.ts +43 -0
- package/dist/query/graph-search.d.ts.map +1 -0
- package/dist/query/graph-search.js +315 -0
- package/dist/query/graph-search.js.map +1 -0
- package/dist/query/query-engine.d.ts +41 -0
- package/dist/query/query-engine.d.ts.map +1 -0
- package/dist/query/query-engine.js +178 -0
- package/dist/query/query-engine.js.map +1 -0
- package/dist/query/semantic-search.d.ts +26 -0
- package/dist/query/semantic-search.d.ts.map +1 -0
- package/dist/query/semantic-search.js +132 -0
- package/dist/query/semantic-search.js.map +1 -0
- package/dist/schema/edge-types.d.ts +95 -0
- package/dist/schema/edge-types.d.ts.map +1 -0
- package/dist/schema/edge-types.js +6 -0
- package/dist/schema/edge-types.js.map +1 -0
- package/dist/schema/node-types.d.ts +100 -0
- package/dist/schema/node-types.d.ts.map +1 -0
- package/dist/schema/node-types.js +6 -0
- package/dist/schema/node-types.js.map +1 -0
- package/dist/schema/types.d.ts +134 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +52 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/schema/validation.d.ts +6 -0
- package/dist/schema/validation.d.ts.map +1 -0
- package/dist/schema/validation.js +140 -0
- package/dist/schema/validation.js.map +1 -0
- package/dist/storage/export-import.d.ts +28 -0
- package/dist/storage/export-import.d.ts.map +1 -0
- package/dist/storage/export-import.js +189 -0
- package/dist/storage/export-import.js.map +1 -0
- package/dist/storage/memory/memory-adapter.d.ts +36 -0
- package/dist/storage/memory/memory-adapter.d.ts.map +1 -0
- package/dist/storage/memory/memory-adapter.js +231 -0
- package/dist/storage/memory/memory-adapter.js.map +1 -0
- package/dist/storage/sqlite/graph-traversal.d.ts +11 -0
- package/dist/storage/sqlite/graph-traversal.d.ts.map +1 -0
- package/dist/storage/sqlite/graph-traversal.js +79 -0
- package/dist/storage/sqlite/graph-traversal.js.map +1 -0
- package/dist/storage/sqlite/query-builder.d.ts +8 -0
- package/dist/storage/sqlite/query-builder.d.ts.map +1 -0
- package/dist/storage/sqlite/query-builder.js +55 -0
- package/dist/storage/sqlite/query-builder.js.map +1 -0
- package/dist/storage/sqlite/sqlite-adapter.d.ts +53 -0
- package/dist/storage/sqlite/sqlite-adapter.d.ts.map +1 -0
- package/dist/storage/sqlite/sqlite-adapter.js +497 -0
- package/dist/storage/sqlite/sqlite-adapter.js.map +1 -0
- package/dist/storage/storage-interface.d.ts +64 -0
- package/dist/storage/storage-interface.d.ts.map +1 -0
- package/dist/storage/storage-interface.js +2 -0
- package/dist/storage/storage-interface.js.map +1 -0
- package/dist/utils/retry-fetch.d.ts +20 -0
- package/dist/utils/retry-fetch.d.ts.map +1 -0
- package/dist/utils/retry-fetch.js +71 -0
- package/dist/utils/retry-fetch.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { RelType } from '../schema/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Hybrid semantic + full-text search.
|
|
4
|
+
* Combines vector similarity with FTS5 for best results.
|
|
5
|
+
*/
|
|
6
|
+
export class SemanticSearch {
|
|
7
|
+
constructor(storage, embedder) {
|
|
8
|
+
this.storage = storage;
|
|
9
|
+
this.embedder = embedder;
|
|
10
|
+
}
|
|
11
|
+
async search(query, options = {}) {
|
|
12
|
+
const topK = options.topK ?? 10;
|
|
13
|
+
const threshold = options.threshold ?? 0.3;
|
|
14
|
+
const hybridWeight = options.hybridWeight ?? 0.7;
|
|
15
|
+
const [vectorResults, ftsResults] = await Promise.allSettled([
|
|
16
|
+
this.vectorSearch(query, topK * 2, threshold),
|
|
17
|
+
this.ftsSearch(query, topK * 2),
|
|
18
|
+
]);
|
|
19
|
+
const vecResults = vectorResults.status === 'fulfilled' ? vectorResults.value : [];
|
|
20
|
+
const textResults = ftsResults.status === 'fulfilled' ? ftsResults.value : [];
|
|
21
|
+
// Merge and re-rank
|
|
22
|
+
const merged = this.mergeResults(vecResults, textResults, hybridWeight, topK * 2);
|
|
23
|
+
// Apply ranking heuristics
|
|
24
|
+
const ranked = await this.applyRankingHeuristics(query, merged);
|
|
25
|
+
return ranked.slice(0, topK);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* TypeScript-side ranking heuristics for "smart search" without FTS5.
|
|
29
|
+
*/
|
|
30
|
+
async applyRankingHeuristics(query, results) {
|
|
31
|
+
const queryLower = query.toLowerCase();
|
|
32
|
+
const queryTerms = queryLower.split(/\s+/).filter((w) => w.length > 2);
|
|
33
|
+
const now = Date.now();
|
|
34
|
+
const boosted = await Promise.all(results.map(async (result) => {
|
|
35
|
+
let boost = 0;
|
|
36
|
+
// Heading boost (+20%): query terms appear in chunk heading
|
|
37
|
+
const chunkNode = await this.storage.getNode(result.chunkId);
|
|
38
|
+
if (chunkNode) {
|
|
39
|
+
const heading = chunkNode.data.heading ?? '';
|
|
40
|
+
if (heading) {
|
|
41
|
+
const headingLower = heading.toLowerCase();
|
|
42
|
+
const headingMatch = queryTerms.some((t) => headingLower.includes(t));
|
|
43
|
+
if (headingMatch)
|
|
44
|
+
boost += 0.20;
|
|
45
|
+
}
|
|
46
|
+
// Recency boost (+10% decaying over 30 days)
|
|
47
|
+
const updatedAt = chunkNode.updatedAt;
|
|
48
|
+
if (updatedAt) {
|
|
49
|
+
const ageMs = now - new Date(updatedAt).getTime();
|
|
50
|
+
const ageDays = ageMs / (1000 * 60 * 60 * 24);
|
|
51
|
+
if (ageDays < 30) {
|
|
52
|
+
boost += 0.10 * (1 - ageDays / 30);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Phrase match boost (+15%): exact query phrase in text
|
|
57
|
+
const textLower = result.text.toLowerCase();
|
|
58
|
+
if (textLower.includes(queryLower)) {
|
|
59
|
+
boost += 0.15;
|
|
60
|
+
}
|
|
61
|
+
// Proposition density boost (+10%): chunk has DERIVED_FROM edges
|
|
62
|
+
const derivedEdges = await this.storage.queryEdges({
|
|
63
|
+
targetId: result.chunkId,
|
|
64
|
+
relType: RelType.DERIVED_FROM,
|
|
65
|
+
});
|
|
66
|
+
if (derivedEdges.length > 0) {
|
|
67
|
+
boost += 0.10;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
...result,
|
|
71
|
+
score: result.score * (1 + boost),
|
|
72
|
+
};
|
|
73
|
+
}));
|
|
74
|
+
return boosted.sort((a, b) => b.score - a.score);
|
|
75
|
+
}
|
|
76
|
+
async vectorSearch(query, topK, threshold) {
|
|
77
|
+
if (!this.embedder)
|
|
78
|
+
return [];
|
|
79
|
+
const queryVector = await this.embedder.embed(query);
|
|
80
|
+
return this.storage.similaritySearch({
|
|
81
|
+
vector: queryVector,
|
|
82
|
+
topK,
|
|
83
|
+
threshold,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async ftsSearch(query, limit) {
|
|
87
|
+
// Convert natural language query to FTS5 query
|
|
88
|
+
const ftsQuery = query
|
|
89
|
+
.split(/\s+/)
|
|
90
|
+
.filter((w) => w.length > 2)
|
|
91
|
+
.map((w) => `"${w}"`)
|
|
92
|
+
.join(' OR ');
|
|
93
|
+
if (!ftsQuery)
|
|
94
|
+
return [];
|
|
95
|
+
return this.storage.fullTextSearch({ query: ftsQuery, limit });
|
|
96
|
+
}
|
|
97
|
+
mergeResults(vectorResults, ftsResults, vectorWeight, topK) {
|
|
98
|
+
const merged = new Map();
|
|
99
|
+
// Normalize vector scores (already 0-1 for cosine similarity)
|
|
100
|
+
for (const result of vectorResults) {
|
|
101
|
+
merged.set(result.chunkId, {
|
|
102
|
+
...result,
|
|
103
|
+
combinedScore: result.score * vectorWeight,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// Normalize FTS scores and combine
|
|
107
|
+
const maxFtsScore = Math.max(...ftsResults.map((r) => r.score), 1);
|
|
108
|
+
const ftsWeight = 1 - vectorWeight;
|
|
109
|
+
for (const result of ftsResults) {
|
|
110
|
+
const existing = merged.get(result.chunkId);
|
|
111
|
+
const normalizedFtsScore = result.score / maxFtsScore;
|
|
112
|
+
if (existing) {
|
|
113
|
+
existing.combinedScore += normalizedFtsScore * ftsWeight;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
merged.set(result.chunkId, {
|
|
117
|
+
...result,
|
|
118
|
+
combinedScore: normalizedFtsScore * ftsWeight,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Sort by combined score and return top K
|
|
123
|
+
return Array.from(merged.values())
|
|
124
|
+
.sort((a, b) => b.combinedScore - a.combinedScore)
|
|
125
|
+
.slice(0, topK)
|
|
126
|
+
.map(({ combinedScore, ...result }) => ({
|
|
127
|
+
...result,
|
|
128
|
+
score: combinedScore,
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=semantic-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../src/query/semantic-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-edge-type property interfaces.
|
|
3
|
+
* These define the shape of `GraphEdge.data` for each RelType.
|
|
4
|
+
*/
|
|
5
|
+
import type { Provenance } from './types.js';
|
|
6
|
+
export interface HasChunkEdgeData {
|
|
7
|
+
index: number;
|
|
8
|
+
}
|
|
9
|
+
export interface DerivedFromEdgeData {
|
|
10
|
+
provenance: Provenance;
|
|
11
|
+
extractionMethod: 'basic' | 'ollama' | 'api';
|
|
12
|
+
extractedAt: string;
|
|
13
|
+
}
|
|
14
|
+
export interface MentionsEdgeData {
|
|
15
|
+
count: number;
|
|
16
|
+
spans: Array<{
|
|
17
|
+
start: number;
|
|
18
|
+
end: number;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export interface AboutEdgeData {
|
|
22
|
+
relevance: number;
|
|
23
|
+
}
|
|
24
|
+
export interface RelatedToEdgeData {
|
|
25
|
+
reason: string;
|
|
26
|
+
strength: number;
|
|
27
|
+
}
|
|
28
|
+
export interface IsAEdgeData {
|
|
29
|
+
confidence: number;
|
|
30
|
+
}
|
|
31
|
+
export interface PartOfEdgeData {
|
|
32
|
+
confidence: number;
|
|
33
|
+
}
|
|
34
|
+
export interface AliasOfEdgeData {
|
|
35
|
+
canonical: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface BelievesEdgeData {
|
|
38
|
+
confidence: number;
|
|
39
|
+
asOf: string;
|
|
40
|
+
}
|
|
41
|
+
export interface EndorsesEdgeData {
|
|
42
|
+
confidence: number;
|
|
43
|
+
asOf: string;
|
|
44
|
+
}
|
|
45
|
+
export interface SupportsEdgeData {
|
|
46
|
+
strength: number;
|
|
47
|
+
explanation: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ContradictsEdgeData {
|
|
50
|
+
strength: number;
|
|
51
|
+
method: 'negation_heuristic' | 'llm_judge';
|
|
52
|
+
sharedTargets: string[];
|
|
53
|
+
evidence: {
|
|
54
|
+
p1Span?: string;
|
|
55
|
+
p2Span?: string;
|
|
56
|
+
};
|
|
57
|
+
explanation: string;
|
|
58
|
+
}
|
|
59
|
+
export interface QualifiesEdgeData {
|
|
60
|
+
condition: string;
|
|
61
|
+
}
|
|
62
|
+
export interface PrecedesEdgeData {
|
|
63
|
+
timeGap?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface CausesEdgeData {
|
|
66
|
+
mechanism: string;
|
|
67
|
+
confidence: number;
|
|
68
|
+
}
|
|
69
|
+
export interface LocatedInEdgeData {
|
|
70
|
+
since?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface OccurredAtEdgeData {
|
|
73
|
+
date?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface AuthoredByEdgeData {
|
|
76
|
+
role: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ParticipatedInEdgeData {
|
|
79
|
+
role: string;
|
|
80
|
+
}
|
|
81
|
+
export interface FeelsEdgeData {
|
|
82
|
+
intensity: number;
|
|
83
|
+
date: string;
|
|
84
|
+
}
|
|
85
|
+
export interface TriggeredByEdgeData {
|
|
86
|
+
mechanism: string;
|
|
87
|
+
}
|
|
88
|
+
export interface HasStepEdgeData {
|
|
89
|
+
stepIndex: number;
|
|
90
|
+
}
|
|
91
|
+
export interface NextStepEdgeData {
|
|
92
|
+
transition: string;
|
|
93
|
+
}
|
|
94
|
+
export type EdgeData = HasChunkEdgeData | DerivedFromEdgeData | MentionsEdgeData | AboutEdgeData | RelatedToEdgeData | IsAEdgeData | PartOfEdgeData | AliasOfEdgeData | BelievesEdgeData | EndorsesEdgeData | SupportsEdgeData | ContradictsEdgeData | QualifiesEdgeData | PrecedesEdgeData | CausesEdgeData | LocatedInEdgeData | OccurredAtEdgeData | AuthoredByEdgeData | ParticipatedInEdgeData | FeelsEdgeData | TriggeredByEdgeData | HasStepEdgeData | NextStepEdgeData | Record<string, unknown>;
|
|
95
|
+
//# sourceMappingURL=edge-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-types.d.ts","sourceRoot":"","sources":["../../src/schema/edge-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-types.js","sourceRoot":"","sources":["../../src/schema/edge-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-node-type property interfaces.
|
|
3
|
+
* These define the shape of `GraphNode.data` for each NodeType.
|
|
4
|
+
*/
|
|
5
|
+
export interface NoteData {
|
|
6
|
+
title: string;
|
|
7
|
+
path: string;
|
|
8
|
+
contentHash: string;
|
|
9
|
+
wordCount: number;
|
|
10
|
+
tags: string[];
|
|
11
|
+
aliases: string[];
|
|
12
|
+
frontmatter: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface ChunkData {
|
|
15
|
+
notePath: string;
|
|
16
|
+
text: string;
|
|
17
|
+
heading: string | null;
|
|
18
|
+
headingLevel: number;
|
|
19
|
+
startOffset: number;
|
|
20
|
+
endOffset: number;
|
|
21
|
+
index: number;
|
|
22
|
+
contentHash: string;
|
|
23
|
+
}
|
|
24
|
+
export interface EntityData {
|
|
25
|
+
name: string;
|
|
26
|
+
entityType: 'person' | 'organization' | 'product' | 'work' | 'other';
|
|
27
|
+
aliases: string[];
|
|
28
|
+
description: string;
|
|
29
|
+
confidence: number;
|
|
30
|
+
typeCounts?: Record<string, number>;
|
|
31
|
+
}
|
|
32
|
+
export interface ConceptData {
|
|
33
|
+
name: string;
|
|
34
|
+
domain: string;
|
|
35
|
+
description: string;
|
|
36
|
+
aliases: string[];
|
|
37
|
+
confidence: number;
|
|
38
|
+
}
|
|
39
|
+
export interface LocationData {
|
|
40
|
+
name: string;
|
|
41
|
+
locationType: 'city' | 'country' | 'region' | 'address' | 'place' | 'other';
|
|
42
|
+
coordinates?: {
|
|
43
|
+
lat: number;
|
|
44
|
+
lng: number;
|
|
45
|
+
};
|
|
46
|
+
confidence: number;
|
|
47
|
+
}
|
|
48
|
+
export interface EventData {
|
|
49
|
+
name: string;
|
|
50
|
+
description: string;
|
|
51
|
+
date?: string;
|
|
52
|
+
dateGranularity?: 'day' | 'month' | 'year' | 'approximate';
|
|
53
|
+
participants: string[];
|
|
54
|
+
confidence: number;
|
|
55
|
+
}
|
|
56
|
+
export interface PropositionData {
|
|
57
|
+
statement: string;
|
|
58
|
+
domain: string;
|
|
59
|
+
confidence: number;
|
|
60
|
+
isNegated: boolean;
|
|
61
|
+
statementHash: string;
|
|
62
|
+
status?: 'assertion' | 'question' | 'uncertain' | 'todo';
|
|
63
|
+
}
|
|
64
|
+
export interface ThoughtData {
|
|
65
|
+
statement: string;
|
|
66
|
+
stance: 'for' | 'against' | 'neutral';
|
|
67
|
+
subject: string;
|
|
68
|
+
confidence: number;
|
|
69
|
+
implications: string[];
|
|
70
|
+
}
|
|
71
|
+
export interface AgentData {
|
|
72
|
+
name: string;
|
|
73
|
+
agentType: 'self' | 'person' | 'source';
|
|
74
|
+
description: string;
|
|
75
|
+
}
|
|
76
|
+
export interface EmotionData {
|
|
77
|
+
name: string;
|
|
78
|
+
valence: number;
|
|
79
|
+
arousal: number;
|
|
80
|
+
}
|
|
81
|
+
export interface EmotionalEventData {
|
|
82
|
+
emotion: string;
|
|
83
|
+
intensity: number;
|
|
84
|
+
trigger: string;
|
|
85
|
+
context: string;
|
|
86
|
+
date?: string;
|
|
87
|
+
}
|
|
88
|
+
export interface ReasoningChainData {
|
|
89
|
+
topic: string;
|
|
90
|
+
conclusion: string;
|
|
91
|
+
strength: number;
|
|
92
|
+
}
|
|
93
|
+
export interface ReasoningStepData {
|
|
94
|
+
stepIndex: number;
|
|
95
|
+
claim: string;
|
|
96
|
+
evidence: string;
|
|
97
|
+
stepType: 'premise' | 'inference' | 'conclusion';
|
|
98
|
+
}
|
|
99
|
+
export type NodeData = NoteData | ChunkData | EntityData | ConceptData | LocationData | EventData | PropositionData | ThoughtData | AgentData | EmotionData | EmotionalEventData | ReasoningChainData | ReasoningStepData;
|
|
100
|
+
//# sourceMappingURL=node-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../src/schema/node-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../src/schema/node-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export declare enum NodeType {
|
|
2
|
+
Note = "NOTE",
|
|
3
|
+
Chunk = "CHUNK",
|
|
4
|
+
Entity = "ENTITY",
|
|
5
|
+
Concept = "CONCEPT",
|
|
6
|
+
Location = "LOCATION",
|
|
7
|
+
Event = "EVENT",
|
|
8
|
+
Proposition = "PROPOSITION",
|
|
9
|
+
Thought = "THOUGHT",
|
|
10
|
+
Agent = "AGENT",
|
|
11
|
+
Emotion = "EMOTION",
|
|
12
|
+
EmotionalEvent = "EMOTIONAL_EVENT",
|
|
13
|
+
ReasoningChain = "REASONING_CHAIN",
|
|
14
|
+
ReasoningStep = "REASONING_STEP"
|
|
15
|
+
}
|
|
16
|
+
export declare enum RelType {
|
|
17
|
+
HAS_CHUNK = "HAS_CHUNK",
|
|
18
|
+
DERIVED_FROM = "DERIVED_FROM",
|
|
19
|
+
MENTIONS = "MENTIONS",
|
|
20
|
+
ABOUT = "ABOUT",
|
|
21
|
+
RELATED_TO = "RELATED_TO",
|
|
22
|
+
IS_A = "IS_A",
|
|
23
|
+
PART_OF = "PART_OF",
|
|
24
|
+
ALIAS_OF = "ALIAS_OF",
|
|
25
|
+
BELIEVES = "BELIEVES",
|
|
26
|
+
ENDORSES = "ENDORSES",
|
|
27
|
+
SUPPORTS = "SUPPORTS",
|
|
28
|
+
CONTRADICTS = "CONTRADICTS",
|
|
29
|
+
QUALIFIES = "QUALIFIES",
|
|
30
|
+
PRECEDES = "PRECEDES",
|
|
31
|
+
CAUSES = "CAUSES",
|
|
32
|
+
LOCATED_IN = "LOCATED_IN",
|
|
33
|
+
OCCURRED_AT = "OCCURRED_AT",
|
|
34
|
+
AUTHORED_BY = "AUTHORED_BY",
|
|
35
|
+
PARTICIPATED_IN = "PARTICIPATED_IN",
|
|
36
|
+
FEELS = "FEELS",
|
|
37
|
+
TRIGGERED_BY = "TRIGGERED_BY",
|
|
38
|
+
HAS_STEP = "HAS_STEP",
|
|
39
|
+
NEXT_STEP = "NEXT_STEP"
|
|
40
|
+
}
|
|
41
|
+
export interface GraphNode {
|
|
42
|
+
id: string;
|
|
43
|
+
nodeType: NodeType;
|
|
44
|
+
data: Record<string, unknown>;
|
|
45
|
+
createdAt: string;
|
|
46
|
+
updatedAt: string;
|
|
47
|
+
}
|
|
48
|
+
export interface GraphEdge {
|
|
49
|
+
id: string;
|
|
50
|
+
sourceId: string;
|
|
51
|
+
targetId: string;
|
|
52
|
+
relType: RelType;
|
|
53
|
+
data: Record<string, unknown>;
|
|
54
|
+
createdAt: string;
|
|
55
|
+
}
|
|
56
|
+
export interface Provenance {
|
|
57
|
+
notePath: string;
|
|
58
|
+
chunkId: string;
|
|
59
|
+
startOffset: number;
|
|
60
|
+
endOffset: number;
|
|
61
|
+
quoteText: string;
|
|
62
|
+
quoteHash: string;
|
|
63
|
+
}
|
|
64
|
+
export interface EmbeddingRecord {
|
|
65
|
+
chunkId: string;
|
|
66
|
+
vector: Float32Array;
|
|
67
|
+
modelId: string;
|
|
68
|
+
dimensions: number;
|
|
69
|
+
createdAt: string;
|
|
70
|
+
}
|
|
71
|
+
export interface SearchResult {
|
|
72
|
+
chunkId: string;
|
|
73
|
+
nodeId: string;
|
|
74
|
+
score: number;
|
|
75
|
+
text: string;
|
|
76
|
+
notePath: string;
|
|
77
|
+
}
|
|
78
|
+
export interface Citation {
|
|
79
|
+
notePath: string;
|
|
80
|
+
startOffset: number;
|
|
81
|
+
endOffset: number;
|
|
82
|
+
quoteText: string;
|
|
83
|
+
chunkId: string;
|
|
84
|
+
}
|
|
85
|
+
export interface BeliefEntry {
|
|
86
|
+
propositionId: string;
|
|
87
|
+
statement: string;
|
|
88
|
+
confidence: number;
|
|
89
|
+
stance: 'for' | 'against' | 'neutral';
|
|
90
|
+
noteDate: string;
|
|
91
|
+
citations: Citation[];
|
|
92
|
+
}
|
|
93
|
+
export interface ContradictionPair {
|
|
94
|
+
propositionA: BeliefEntry;
|
|
95
|
+
propositionB: BeliefEntry;
|
|
96
|
+
edgeId: string;
|
|
97
|
+
}
|
|
98
|
+
export interface QueryResult {
|
|
99
|
+
answer: string;
|
|
100
|
+
citations: Citation[];
|
|
101
|
+
beliefs?: BeliefEntry[];
|
|
102
|
+
contradictions?: ContradictionPair[];
|
|
103
|
+
beliefCard?: BeliefCard;
|
|
104
|
+
openLoops?: OpenLoop[];
|
|
105
|
+
}
|
|
106
|
+
export interface BeliefCardEntry {
|
|
107
|
+
propositionId: string;
|
|
108
|
+
statement: string;
|
|
109
|
+
confidence: number;
|
|
110
|
+
firstSeen: string;
|
|
111
|
+
lastSeen: string;
|
|
112
|
+
citations: Citation[];
|
|
113
|
+
contradictionCount: number;
|
|
114
|
+
}
|
|
115
|
+
export interface BeliefCard {
|
|
116
|
+
topic: string;
|
|
117
|
+
entries: BeliefCardEntry[];
|
|
118
|
+
totalPropositions: number;
|
|
119
|
+
avgConfidence: number;
|
|
120
|
+
dateRange: {
|
|
121
|
+
from: string;
|
|
122
|
+
to: string;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export interface OpenLoop {
|
|
126
|
+
id: string;
|
|
127
|
+
statement: string;
|
|
128
|
+
status: 'question' | 'todo' | 'uncertain' | 'wonder';
|
|
129
|
+
topic?: string;
|
|
130
|
+
occurrences: number;
|
|
131
|
+
mostRecentDate: string;
|
|
132
|
+
citations: Citation[];
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// ─── Node Type & Relationship Enums ────────────────────────────────
|
|
2
|
+
export var NodeType;
|
|
3
|
+
(function (NodeType) {
|
|
4
|
+
NodeType["Note"] = "NOTE";
|
|
5
|
+
NodeType["Chunk"] = "CHUNK";
|
|
6
|
+
NodeType["Entity"] = "ENTITY";
|
|
7
|
+
NodeType["Concept"] = "CONCEPT";
|
|
8
|
+
NodeType["Location"] = "LOCATION";
|
|
9
|
+
NodeType["Event"] = "EVENT";
|
|
10
|
+
NodeType["Proposition"] = "PROPOSITION";
|
|
11
|
+
NodeType["Thought"] = "THOUGHT";
|
|
12
|
+
NodeType["Agent"] = "AGENT";
|
|
13
|
+
NodeType["Emotion"] = "EMOTION";
|
|
14
|
+
NodeType["EmotionalEvent"] = "EMOTIONAL_EVENT";
|
|
15
|
+
NodeType["ReasoningChain"] = "REASONING_CHAIN";
|
|
16
|
+
NodeType["ReasoningStep"] = "REASONING_STEP";
|
|
17
|
+
})(NodeType || (NodeType = {}));
|
|
18
|
+
export var RelType;
|
|
19
|
+
(function (RelType) {
|
|
20
|
+
// Structural
|
|
21
|
+
RelType["HAS_CHUNK"] = "HAS_CHUNK";
|
|
22
|
+
RelType["DERIVED_FROM"] = "DERIVED_FROM";
|
|
23
|
+
// Entity relations
|
|
24
|
+
RelType["MENTIONS"] = "MENTIONS";
|
|
25
|
+
RelType["ABOUT"] = "ABOUT";
|
|
26
|
+
RelType["RELATED_TO"] = "RELATED_TO";
|
|
27
|
+
RelType["IS_A"] = "IS_A";
|
|
28
|
+
RelType["PART_OF"] = "PART_OF";
|
|
29
|
+
RelType["ALIAS_OF"] = "ALIAS_OF";
|
|
30
|
+
// Belief / epistemic
|
|
31
|
+
RelType["BELIEVES"] = "BELIEVES";
|
|
32
|
+
RelType["ENDORSES"] = "ENDORSES";
|
|
33
|
+
RelType["SUPPORTS"] = "SUPPORTS";
|
|
34
|
+
RelType["CONTRADICTS"] = "CONTRADICTS";
|
|
35
|
+
RelType["QUALIFIES"] = "QUALIFIES";
|
|
36
|
+
// Temporal / causal
|
|
37
|
+
RelType["PRECEDES"] = "PRECEDES";
|
|
38
|
+
RelType["CAUSES"] = "CAUSES";
|
|
39
|
+
// Location
|
|
40
|
+
RelType["LOCATED_IN"] = "LOCATED_IN";
|
|
41
|
+
RelType["OCCURRED_AT"] = "OCCURRED_AT";
|
|
42
|
+
// Agent relations
|
|
43
|
+
RelType["AUTHORED_BY"] = "AUTHORED_BY";
|
|
44
|
+
RelType["PARTICIPATED_IN"] = "PARTICIPATED_IN";
|
|
45
|
+
// Emotion (M3)
|
|
46
|
+
RelType["FEELS"] = "FEELS";
|
|
47
|
+
RelType["TRIGGERED_BY"] = "TRIGGERED_BY";
|
|
48
|
+
// Reasoning (M4)
|
|
49
|
+
RelType["HAS_STEP"] = "HAS_STEP";
|
|
50
|
+
RelType["NEXT_STEP"] = "NEXT_STEP";
|
|
51
|
+
})(RelType || (RelType = {}));
|
|
52
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,MAAM,CAAN,IAAY,QAcX;AAdD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,uCAA2B,CAAA;IAC3B,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,8CAAkC,CAAA;IAClC,8CAAkC,CAAA;IAClC,4CAAgC,CAAA;AAClC,CAAC,EAdW,QAAQ,KAAR,QAAQ,QAcnB;AAED,MAAM,CAAN,IAAY,OAuCX;AAvCD,WAAY,OAAO;IACjB,aAAa;IACb,kCAAuB,CAAA;IACvB,wCAA6B,CAAA;IAE7B,mBAAmB;IACnB,gCAAqB,CAAA;IACrB,0BAAe,CAAA;IACf,oCAAyB,CAAA;IACzB,wBAAa,CAAA;IACb,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;IAErB,qBAAqB;IACrB,gCAAqB,CAAA;IACrB,gCAAqB,CAAA;IACrB,gCAAqB,CAAA;IACrB,sCAA2B,CAAA;IAC3B,kCAAuB,CAAA;IAEvB,oBAAoB;IACpB,gCAAqB,CAAA;IACrB,4BAAiB,CAAA;IAEjB,WAAW;IACX,oCAAyB,CAAA;IACzB,sCAA2B,CAAA;IAE3B,kBAAkB;IAClB,sCAA2B,CAAA;IAC3B,8CAAmC,CAAA;IAEnC,eAAe;IACf,0BAAe,CAAA;IACf,wCAA6B,CAAA;IAE7B,iBAAiB;IACjB,gCAAqB,CAAA;IACrB,kCAAuB,CAAA;AACzB,CAAC,EAvCW,OAAO,KAAP,OAAO,QAuClB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type GraphNode, type GraphEdge, type Provenance } from './types.js';
|
|
2
|
+
export declare function passesConfidenceGate(data: Record<string, unknown>, threshold?: number): boolean;
|
|
3
|
+
export declare function validateNode(node: GraphNode): string[];
|
|
4
|
+
export declare function validateEdge(edge: GraphEdge, sourceNode?: GraphNode, targetNode?: GraphNode): string[];
|
|
5
|
+
export declare function validateProvenance(prov: Provenance): string[];
|
|
6
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/schema/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAMhG,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,GAAE,MAAqC,GAC/C,OAAO,CAKT;AAoBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAmBtD;AAyCD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,UAAU,CAAC,EAAE,SAAS,EACtB,UAAU,CAAC,EAAE,SAAS,GACrB,MAAM,EAAE,CAwCV;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAc7D"}
|