@devflow-tools/knowledge-engine 0.17.8 → 0.18.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/LICENSE +21 -0
- package/dist/dependency-source-compiler.d.ts +1 -0
- package/dist/dependency-source-compiler.d.ts.map +1 -1
- package/dist/dependency-source-compiler.js +37 -87
- package/dist/dependency-source-compiler.js.map +1 -1
- package/dist/embedding-provider.d.ts +1 -1
- package/dist/embedding-provider.d.ts.map +1 -1
- package/dist/embedding-provider.js +54 -0
- package/dist/embedding-provider.js.map +1 -1
- package/dist/hybrid-search.d.ts +3 -1
- package/dist/hybrid-search.d.ts.map +1 -1
- package/dist/hybrid-search.js +26 -10
- package/dist/hybrid-search.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledge-compiler.d.ts +1 -4
- package/dist/knowledge-compiler.d.ts.map +1 -1
- package/dist/knowledge-compiler.js +3 -13
- package/dist/knowledge-compiler.js.map +1 -1
- package/dist/knowledge-engine.d.ts +26 -58
- package/dist/knowledge-engine.d.ts.map +1 -1
- package/dist/knowledge-engine.js +159 -412
- package/dist/knowledge-engine.js.map +1 -1
- package/dist/knowledge-ingest-runtime.d.ts +4 -1
- package/dist/knowledge-ingest-runtime.d.ts.map +1 -1
- package/dist/knowledge-ingest-runtime.js +47 -33
- package/dist/knowledge-ingest-runtime.js.map +1 -1
- package/dist/knowledge-maintenance.d.ts.map +1 -1
- package/dist/knowledge-maintenance.js +38 -54
- package/dist/knowledge-maintenance.js.map +1 -1
- package/dist/knowledge-quality.js +1 -1
- package/dist/knowledge-quality.js.map +1 -1
- package/dist/knowledge-query-planner.d.ts +1 -1
- package/dist/knowledge-query-planner.d.ts.map +1 -1
- package/dist/knowledge-query-planner.js +4 -7
- package/dist/knowledge-query-planner.js.map +1 -1
- package/dist/knowledge-query-service.d.ts +62 -0
- package/dist/knowledge-query-service.d.ts.map +1 -0
- package/dist/knowledge-query-service.js +258 -0
- package/dist/knowledge-query-service.js.map +1 -0
- package/dist/knowledge-source-lifecycle.d.ts +91 -0
- package/dist/knowledge-source-lifecycle.d.ts.map +1 -0
- package/dist/knowledge-source-lifecycle.js +152 -0
- package/dist/knowledge-source-lifecycle.js.map +1 -0
- package/dist/knowledge-source-service.d.ts +66 -0
- package/dist/knowledge-source-service.d.ts.map +1 -0
- package/dist/knowledge-source-service.js +444 -0
- package/dist/knowledge-source-service.js.map +1 -0
- package/dist/knowledge-store.d.ts +59 -16
- package/dist/knowledge-store.d.ts.map +1 -1
- package/dist/knowledge-store.js +345 -133
- package/dist/knowledge-store.js.map +1 -1
- package/dist/markdown-converter.d.ts +0 -3
- package/dist/markdown-converter.d.ts.map +1 -1
- package/dist/markdown-converter.js +5 -5
- package/dist/markdown-converter.js.map +1 -1
- package/dist/semantic-output-contract.d.ts +3 -2
- package/dist/semantic-output-contract.d.ts.map +1 -1
- package/dist/semantic-output-contract.js +13 -0
- package/dist/semantic-output-contract.js.map +1 -1
- package/dist/source-catalog.d.ts +8 -6
- package/dist/source-catalog.d.ts.map +1 -1
- package/dist/source-catalog.js +26 -22
- package/dist/source-catalog.js.map +1 -1
- package/dist/source-readiness.d.ts +3 -2
- package/dist/source-readiness.d.ts.map +1 -1
- package/dist/source-readiness.js +10 -11
- package/dist/source-readiness.js.map +1 -1
- package/dist/source-selector.d.ts +1 -1
- package/dist/source-selector.d.ts.map +1 -1
- package/dist/source-selector.js +8 -3
- package/dist/source-selector.js.map +1 -1
- package/package.json +12 -4
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
const ALLOWED = {
|
|
3
|
+
discovered: new Set(['queued', 'failed']),
|
|
4
|
+
queued: new Set(['fetched', 'stale', 'failed']),
|
|
5
|
+
fetched: new Set(['compiled', 'stale', 'failed']),
|
|
6
|
+
compiled: new Set(['indexed', 'degraded', 'stale', 'failed']),
|
|
7
|
+
indexed: new Set(['ready', 'degraded', 'stale', 'failed']),
|
|
8
|
+
ready: new Set(['queued', 'degraded', 'stale']),
|
|
9
|
+
degraded: new Set(['queued', 'indexed', 'ready', 'stale', 'failed']),
|
|
10
|
+
stale: new Set(['queued', 'failed']),
|
|
11
|
+
failed: new Set(['queued']),
|
|
12
|
+
};
|
|
13
|
+
export function createKnowledgeSourceIdentityV1(input) {
|
|
14
|
+
const body = {
|
|
15
|
+
schemaVersion: 'knowledge-source-identity.v1',
|
|
16
|
+
identityVersion: 1,
|
|
17
|
+
projectId: input.projectId,
|
|
18
|
+
scope: { kind: 'project', id: input.projectId },
|
|
19
|
+
sourceId: input.sourceId.normalize('NFKC').trim(),
|
|
20
|
+
sourceKind: input.sourceKind,
|
|
21
|
+
normalizedLocator: normalizeSourceLocator(input.sourceLocator),
|
|
22
|
+
...(input.framework?.trim() ? { framework: input.framework.normalize('NFKC').trim() } : {}),
|
|
23
|
+
...(input.packageName?.trim() ? { packageName: input.packageName.normalize('NFKC').trim() } : {}),
|
|
24
|
+
...(input.version?.trim() ? { version: input.version.normalize('NFKC').trim() } : {}),
|
|
25
|
+
...(input.versionPolicy?.expectedVersion
|
|
26
|
+
? { versionRange: input.versionPolicy.expectedVersion.normalize('NFKC').trim() }
|
|
27
|
+
: {}),
|
|
28
|
+
authority: input.authority,
|
|
29
|
+
};
|
|
30
|
+
return Object.freeze({ ...body, identityHash: stableHash(body) });
|
|
31
|
+
}
|
|
32
|
+
export function reduceKnowledgeSource(previous, input) {
|
|
33
|
+
if (previous && previous.identity.identityHash !== input.identity.identityHash) {
|
|
34
|
+
throw new Error('KNOWLEDGE_SOURCE_IDENTITY_MISMATCH');
|
|
35
|
+
}
|
|
36
|
+
if (!previous && input.to !== 'discovered')
|
|
37
|
+
throw new Error('KNOWLEDGE_SOURCE_MUST_START_DISCOVERED');
|
|
38
|
+
if (previous && previous.state !== input.to && !ALLOWED[previous.state].has(input.to)) {
|
|
39
|
+
throw new Error(`KNOWLEDGE_SOURCE_TRANSITION_INVALID:${previous.state}:${input.to}`);
|
|
40
|
+
}
|
|
41
|
+
const createdAt = input.createdAt ?? Date.now();
|
|
42
|
+
const sequence = (previous?.revision ?? 0) + 1;
|
|
43
|
+
const eventBody = {
|
|
44
|
+
identityHash: input.identity.identityHash,
|
|
45
|
+
sequence,
|
|
46
|
+
...(previous ? { from: previous.state } : {}),
|
|
47
|
+
to: input.to,
|
|
48
|
+
...(input.contentHash ? { contentHash: input.contentHash } : {}),
|
|
49
|
+
reasonCode: input.reasonCode,
|
|
50
|
+
createdAt,
|
|
51
|
+
};
|
|
52
|
+
const event = {
|
|
53
|
+
eventId: `knowledge-source-event:${stableHash(eventBody).slice(0, 32)}`,
|
|
54
|
+
...eventBody,
|
|
55
|
+
};
|
|
56
|
+
const aggregateBody = {
|
|
57
|
+
schemaVersion: 'knowledge-source-aggregate.v1',
|
|
58
|
+
identity: input.identity,
|
|
59
|
+
state: input.to,
|
|
60
|
+
revision: sequence,
|
|
61
|
+
...(input.contentHash ?? previous?.contentHash
|
|
62
|
+
? { contentHash: input.contentHash ?? previous?.contentHash }
|
|
63
|
+
: {}),
|
|
64
|
+
...(input.readiness ? { readiness: input.readiness } : previous?.readiness ? { readiness: previous.readiness } : {}),
|
|
65
|
+
lastEventId: event.eventId,
|
|
66
|
+
updatedAt: createdAt,
|
|
67
|
+
};
|
|
68
|
+
return {
|
|
69
|
+
event,
|
|
70
|
+
aggregate: { ...aggregateBody, aggregateHash: stableHash(aggregateBody) },
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export function compileKnowledgeClaims(input) {
|
|
74
|
+
const claims = [];
|
|
75
|
+
const add = (subject, predicate, object, evidence, status = 'verified') => {
|
|
76
|
+
const verificationState = validateClaimEvidence(evidence, input.page.markdown)
|
|
77
|
+
? 'source_bound'
|
|
78
|
+
: 'unverified';
|
|
79
|
+
const body = {
|
|
80
|
+
schemaVersion: 'knowledge-claim.v1',
|
|
81
|
+
identityHash: input.identity.identityHash,
|
|
82
|
+
sourceId: input.identity.sourceId,
|
|
83
|
+
pageId: input.page.id,
|
|
84
|
+
subject,
|
|
85
|
+
predicate,
|
|
86
|
+
object,
|
|
87
|
+
status: verificationState === 'source_bound' ? status : 'candidate',
|
|
88
|
+
effectiveAt: input.page.compiledAt,
|
|
89
|
+
sourceSpan: evidence,
|
|
90
|
+
sourceContentHash: input.page.contentHash,
|
|
91
|
+
extractorVersion: input.manifest.version,
|
|
92
|
+
verificationState,
|
|
93
|
+
};
|
|
94
|
+
claims.push({
|
|
95
|
+
...body,
|
|
96
|
+
claimId: `knowledge-claim:${stableHash(body).slice(0, 32)}`,
|
|
97
|
+
claimHash: stableHash(body),
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
for (const item of input.manifest.entities)
|
|
101
|
+
add(input.identity.sourceId, 'documents_entity', item.value, item.evidence);
|
|
102
|
+
for (const item of input.manifest.symbols)
|
|
103
|
+
add(input.identity.sourceId, 'documents_symbol', item.value, item.evidence);
|
|
104
|
+
for (const item of input.manifest.concepts)
|
|
105
|
+
add(input.identity.sourceId, 'documents_concept', item.value, item.evidence);
|
|
106
|
+
for (const item of input.manifest.constraints)
|
|
107
|
+
add(input.identity.sourceId, 'states_constraint', item.value, item.evidence);
|
|
108
|
+
for (const item of input.manifest.contradictions)
|
|
109
|
+
add(input.identity.sourceId, 'states_contradiction', item.value, item.evidence, 'contradicted');
|
|
110
|
+
for (const relation of input.manifest.relations)
|
|
111
|
+
add(relation.source, relation.type, relation.target, relation.evidence);
|
|
112
|
+
return claims;
|
|
113
|
+
}
|
|
114
|
+
function validateClaimEvidence(evidence, source) {
|
|
115
|
+
return Number.isSafeInteger(evidence.start)
|
|
116
|
+
&& Number.isSafeInteger(evidence.end)
|
|
117
|
+
&& evidence.start >= 0
|
|
118
|
+
&& evidence.end > evidence.start
|
|
119
|
+
&& evidence.end <= source.length
|
|
120
|
+
&& Boolean(evidence.quote.trim())
|
|
121
|
+
&& source.slice(evidence.start, evidence.end) === evidence.quote
|
|
122
|
+
&& createHash('sha256').update(evidence.quote).digest('hex') === evidence.hash;
|
|
123
|
+
}
|
|
124
|
+
function normalizeSourceLocator(value) {
|
|
125
|
+
const normalized = value.normalize('NFKC').trim();
|
|
126
|
+
try {
|
|
127
|
+
const url = new URL(normalized);
|
|
128
|
+
url.hash = '';
|
|
129
|
+
url.hostname = url.hostname.toLocaleLowerCase('en-US');
|
|
130
|
+
url.pathname = url.pathname.replace(/\/{2,}/gu, '/').replace(/\/$/u, '') || '/';
|
|
131
|
+
return url.toString();
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return normalized.replace(/\\/gu, '/').replace(/\/{2,}/gu, '/').replace(/\/$/u, '');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function stableHash(value) {
|
|
138
|
+
return createHash('sha256').update(stableJson(value)).digest('hex');
|
|
139
|
+
}
|
|
140
|
+
function stableJson(value) {
|
|
141
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean')
|
|
142
|
+
return JSON.stringify(value);
|
|
143
|
+
if (typeof value === 'number')
|
|
144
|
+
return Number.isFinite(value) ? JSON.stringify(value) : 'null';
|
|
145
|
+
if (Array.isArray(value))
|
|
146
|
+
return `[${value.map(stableJson).join(',')}]`;
|
|
147
|
+
if (!value || typeof value !== 'object')
|
|
148
|
+
return JSON.stringify(String(value));
|
|
149
|
+
const record = value;
|
|
150
|
+
return `{${Object.keys(record).sort().map(key => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(',')}}`;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=knowledge-source-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-source-lifecycle.js","sourceRoot":"","sources":["../src/knowledge-source-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { KnowledgeCoverageGap, KnowledgeReadiness, KnowledgeSourceCatalogEntry, KnowledgeSourceSchema, KnowledgeTaskKind } from '@devflow-tools/sdk';
|
|
2
|
+
import type { CompiledKnowledgeSource } from './knowledge-compiler.js';
|
|
3
|
+
import type { KnowledgeStore } from './knowledge-store.js';
|
|
4
|
+
import type { CreateKnowledgeSourceSchemaInput, SourceCatalog } from './source-catalog.js';
|
|
5
|
+
import { type KnowledgeSourceAggregateV1, type KnowledgeSourceIdentityV1 } from './knowledge-source-lifecycle.js';
|
|
6
|
+
export interface PublishKnowledgeSourceInput {
|
|
7
|
+
compiled: CompiledKnowledgeSource;
|
|
8
|
+
schema: KnowledgeSourceSchema;
|
|
9
|
+
embeddings?: Float32Array[];
|
|
10
|
+
refreshJobId?: string;
|
|
11
|
+
previousHealthyRevisionRetained?: boolean;
|
|
12
|
+
operationTimestamp: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class KnowledgeSourceService {
|
|
15
|
+
private readonly store;
|
|
16
|
+
private readonly catalog;
|
|
17
|
+
private readonly projectRoot;
|
|
18
|
+
constructor(store: KnowledgeStore, catalog: SourceCatalog, projectRoot: string);
|
|
19
|
+
registerSourceSchema(input: CreateKnowledgeSourceSchemaInput, operationTimestamp?: number): KnowledgeSourceSchema;
|
|
20
|
+
recordCoverageGap(input: Omit<KnowledgeCoverageGap, 'id' | 'projectId' | 'detectedAt'> & {
|
|
21
|
+
detectedAt?: number;
|
|
22
|
+
}): KnowledgeCoverageGap;
|
|
23
|
+
requireCoverage(input: {
|
|
24
|
+
sourceId: string;
|
|
25
|
+
entity?: string;
|
|
26
|
+
symbol?: string;
|
|
27
|
+
requiredVersion?: string;
|
|
28
|
+
taskKind?: KnowledgeTaskKind;
|
|
29
|
+
}): KnowledgeCoverageGap | null;
|
|
30
|
+
publishCompiledSource(input: PublishKnowledgeSourceInput): {
|
|
31
|
+
identity: KnowledgeSourceIdentityV1;
|
|
32
|
+
aggregate: KnowledgeSourceAggregateV1;
|
|
33
|
+
entry: KnowledgeSourceCatalogEntry;
|
|
34
|
+
snapshotId: string;
|
|
35
|
+
changed: boolean;
|
|
36
|
+
claimCount: number;
|
|
37
|
+
documentsRetired: number;
|
|
38
|
+
};
|
|
39
|
+
activateExistingRevision(input: {
|
|
40
|
+
schema: KnowledgeSourceSchema;
|
|
41
|
+
sourceLocator: string;
|
|
42
|
+
version?: string;
|
|
43
|
+
contentHash: string;
|
|
44
|
+
documents: number;
|
|
45
|
+
entities: string[];
|
|
46
|
+
symbols: string[];
|
|
47
|
+
operationTimestamp: number;
|
|
48
|
+
}): KnowledgeSourceCatalogEntry;
|
|
49
|
+
refreshIndexReadiness(entry: KnowledgeSourceCatalogEntry, operationTimestamp?: number): KnowledgeReadiness;
|
|
50
|
+
quarantineRevision(input: {
|
|
51
|
+
pageId: string;
|
|
52
|
+
sourceId: string;
|
|
53
|
+
contentHash: string;
|
|
54
|
+
reason: string;
|
|
55
|
+
expectedVersion?: string;
|
|
56
|
+
}): ReturnType<KnowledgeStore['quarantineSourceRevision']>;
|
|
57
|
+
getClaims(sourceId?: string): import("./knowledge-source-lifecycle.js").KnowledgeClaimV1[];
|
|
58
|
+
private identityFor;
|
|
59
|
+
private ensureRefreshStarted;
|
|
60
|
+
private transition;
|
|
61
|
+
private deriveReadiness;
|
|
62
|
+
private resolveCoveredGaps;
|
|
63
|
+
private recordFailure;
|
|
64
|
+
private logTransitions;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=knowledge-source-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-source-service.d.ts","sourceRoot":"","sources":["../src/knowledge-source-service.ts"],"names":[],"mappings":"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"}
|