@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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/dist/dependency-source-compiler.d.ts +1 -0
  3. package/dist/dependency-source-compiler.d.ts.map +1 -1
  4. package/dist/dependency-source-compiler.js +37 -87
  5. package/dist/dependency-source-compiler.js.map +1 -1
  6. package/dist/embedding-provider.d.ts +1 -1
  7. package/dist/embedding-provider.d.ts.map +1 -1
  8. package/dist/embedding-provider.js +54 -0
  9. package/dist/embedding-provider.js.map +1 -1
  10. package/dist/hybrid-search.d.ts +3 -1
  11. package/dist/hybrid-search.d.ts.map +1 -1
  12. package/dist/hybrid-search.js +26 -10
  13. package/dist/hybrid-search.js.map +1 -1
  14. package/dist/index.d.ts +8 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/knowledge-compiler.d.ts +1 -4
  19. package/dist/knowledge-compiler.d.ts.map +1 -1
  20. package/dist/knowledge-compiler.js +3 -13
  21. package/dist/knowledge-compiler.js.map +1 -1
  22. package/dist/knowledge-engine.d.ts +26 -58
  23. package/dist/knowledge-engine.d.ts.map +1 -1
  24. package/dist/knowledge-engine.js +159 -412
  25. package/dist/knowledge-engine.js.map +1 -1
  26. package/dist/knowledge-ingest-runtime.d.ts +4 -1
  27. package/dist/knowledge-ingest-runtime.d.ts.map +1 -1
  28. package/dist/knowledge-ingest-runtime.js +47 -33
  29. package/dist/knowledge-ingest-runtime.js.map +1 -1
  30. package/dist/knowledge-maintenance.d.ts.map +1 -1
  31. package/dist/knowledge-maintenance.js +38 -54
  32. package/dist/knowledge-maintenance.js.map +1 -1
  33. package/dist/knowledge-quality.js +1 -1
  34. package/dist/knowledge-quality.js.map +1 -1
  35. package/dist/knowledge-query-planner.d.ts +1 -1
  36. package/dist/knowledge-query-planner.d.ts.map +1 -1
  37. package/dist/knowledge-query-planner.js +4 -7
  38. package/dist/knowledge-query-planner.js.map +1 -1
  39. package/dist/knowledge-query-service.d.ts +62 -0
  40. package/dist/knowledge-query-service.d.ts.map +1 -0
  41. package/dist/knowledge-query-service.js +258 -0
  42. package/dist/knowledge-query-service.js.map +1 -0
  43. package/dist/knowledge-source-lifecycle.d.ts +91 -0
  44. package/dist/knowledge-source-lifecycle.d.ts.map +1 -0
  45. package/dist/knowledge-source-lifecycle.js +152 -0
  46. package/dist/knowledge-source-lifecycle.js.map +1 -0
  47. package/dist/knowledge-source-service.d.ts +66 -0
  48. package/dist/knowledge-source-service.d.ts.map +1 -0
  49. package/dist/knowledge-source-service.js +444 -0
  50. package/dist/knowledge-source-service.js.map +1 -0
  51. package/dist/knowledge-store.d.ts +59 -16
  52. package/dist/knowledge-store.d.ts.map +1 -1
  53. package/dist/knowledge-store.js +345 -133
  54. package/dist/knowledge-store.js.map +1 -1
  55. package/dist/markdown-converter.d.ts +0 -3
  56. package/dist/markdown-converter.d.ts.map +1 -1
  57. package/dist/markdown-converter.js +5 -5
  58. package/dist/markdown-converter.js.map +1 -1
  59. package/dist/semantic-output-contract.d.ts +3 -2
  60. package/dist/semantic-output-contract.d.ts.map +1 -1
  61. package/dist/semantic-output-contract.js +13 -0
  62. package/dist/semantic-output-contract.js.map +1 -1
  63. package/dist/source-catalog.d.ts +8 -6
  64. package/dist/source-catalog.d.ts.map +1 -1
  65. package/dist/source-catalog.js +26 -22
  66. package/dist/source-catalog.js.map +1 -1
  67. package/dist/source-readiness.d.ts +3 -2
  68. package/dist/source-readiness.d.ts.map +1 -1
  69. package/dist/source-readiness.js +10 -11
  70. package/dist/source-readiness.js.map +1 -1
  71. package/dist/source-selector.d.ts +1 -1
  72. package/dist/source-selector.d.ts.map +1 -1
  73. package/dist/source-selector.js +8 -3
  74. package/dist/source-selector.js.map +1 -1
  75. 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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"}