@cogitator-ai/neuro-symbolic 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.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +494 -0
  3. package/dist/constraints/dsl.d.ts +68 -0
  4. package/dist/constraints/dsl.d.ts.map +1 -0
  5. package/dist/constraints/dsl.js +419 -0
  6. package/dist/constraints/dsl.js.map +1 -0
  7. package/dist/constraints/index.d.ts +7 -0
  8. package/dist/constraints/index.d.ts.map +1 -0
  9. package/dist/constraints/index.js +18 -0
  10. package/dist/constraints/index.js.map +1 -0
  11. package/dist/constraints/prompts.d.ts +44 -0
  12. package/dist/constraints/prompts.d.ts.map +1 -0
  13. package/dist/constraints/prompts.js +175 -0
  14. package/dist/constraints/prompts.js.map +1 -0
  15. package/dist/constraints/simple-sat-solver.d.ts +21 -0
  16. package/dist/constraints/simple-sat-solver.d.ts.map +1 -0
  17. package/dist/constraints/simple-sat-solver.js +378 -0
  18. package/dist/constraints/simple-sat-solver.js.map +1 -0
  19. package/dist/constraints/z3-wasm-solver.d.ts +20 -0
  20. package/dist/constraints/z3-wasm-solver.d.ts.map +1 -0
  21. package/dist/constraints/z3-wasm-solver.js +286 -0
  22. package/dist/constraints/z3-wasm-solver.js.map +1 -0
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +6 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/knowledge-graph/index.d.ts +5 -0
  28. package/dist/knowledge-graph/index.d.ts.map +1 -0
  29. package/dist/knowledge-graph/index.js +5 -0
  30. package/dist/knowledge-graph/index.js.map +1 -0
  31. package/dist/knowledge-graph/natural-language-query.d.ts +42 -0
  32. package/dist/knowledge-graph/natural-language-query.d.ts.map +1 -0
  33. package/dist/knowledge-graph/natural-language-query.js +271 -0
  34. package/dist/knowledge-graph/natural-language-query.js.map +1 -0
  35. package/dist/knowledge-graph/prompts.d.ts +56 -0
  36. package/dist/knowledge-graph/prompts.d.ts.map +1 -0
  37. package/dist/knowledge-graph/prompts.js +198 -0
  38. package/dist/knowledge-graph/prompts.js.map +1 -0
  39. package/dist/knowledge-graph/query-language.d.ts +43 -0
  40. package/dist/knowledge-graph/query-language.d.ts.map +1 -0
  41. package/dist/knowledge-graph/query-language.js +569 -0
  42. package/dist/knowledge-graph/query-language.js.map +1 -0
  43. package/dist/knowledge-graph/reasoning-engine.d.ts +53 -0
  44. package/dist/knowledge-graph/reasoning-engine.d.ts.map +1 -0
  45. package/dist/knowledge-graph/reasoning-engine.js +337 -0
  46. package/dist/knowledge-graph/reasoning-engine.js.map +1 -0
  47. package/dist/logic/builtins.d.ts +10 -0
  48. package/dist/logic/builtins.d.ts.map +1 -0
  49. package/dist/logic/builtins.js +527 -0
  50. package/dist/logic/builtins.js.map +1 -0
  51. package/dist/logic/index.d.ts +8 -0
  52. package/dist/logic/index.d.ts.map +1 -0
  53. package/dist/logic/index.js +8 -0
  54. package/dist/logic/index.js.map +1 -0
  55. package/dist/logic/knowledge-base.d.ts +38 -0
  56. package/dist/logic/knowledge-base.d.ts.map +1 -0
  57. package/dist/logic/knowledge-base.js +205 -0
  58. package/dist/logic/knowledge-base.js.map +1 -0
  59. package/dist/logic/parser.d.ts +19 -0
  60. package/dist/logic/parser.d.ts.map +1 -0
  61. package/dist/logic/parser.js +466 -0
  62. package/dist/logic/parser.js.map +1 -0
  63. package/dist/logic/prompts.d.ts +55 -0
  64. package/dist/logic/prompts.d.ts.map +1 -0
  65. package/dist/logic/prompts.js +230 -0
  66. package/dist/logic/prompts.js.map +1 -0
  67. package/dist/logic/proof-tree.d.ts +30 -0
  68. package/dist/logic/proof-tree.d.ts.map +1 -0
  69. package/dist/logic/proof-tree.js +281 -0
  70. package/dist/logic/proof-tree.js.map +1 -0
  71. package/dist/logic/resolver.d.ts +16 -0
  72. package/dist/logic/resolver.d.ts.map +1 -0
  73. package/dist/logic/resolver.js +382 -0
  74. package/dist/logic/resolver.js.map +1 -0
  75. package/dist/logic/unification.d.ts +17 -0
  76. package/dist/logic/unification.d.ts.map +1 -0
  77. package/dist/logic/unification.js +257 -0
  78. package/dist/logic/unification.js.map +1 -0
  79. package/dist/orchestrator.d.ts +57 -0
  80. package/dist/orchestrator.d.ts.map +1 -0
  81. package/dist/orchestrator.js +293 -0
  82. package/dist/orchestrator.js.map +1 -0
  83. package/dist/planning/action-schema.d.ts +48 -0
  84. package/dist/planning/action-schema.d.ts.map +1 -0
  85. package/dist/planning/action-schema.js +358 -0
  86. package/dist/planning/action-schema.js.map +1 -0
  87. package/dist/planning/index.d.ts +6 -0
  88. package/dist/planning/index.d.ts.map +1 -0
  89. package/dist/planning/index.js +6 -0
  90. package/dist/planning/index.js.map +1 -0
  91. package/dist/planning/invariant-checker.d.ts +39 -0
  92. package/dist/planning/invariant-checker.d.ts.map +1 -0
  93. package/dist/planning/invariant-checker.js +293 -0
  94. package/dist/planning/invariant-checker.js.map +1 -0
  95. package/dist/planning/plan-repair.d.ts +38 -0
  96. package/dist/planning/plan-repair.d.ts.map +1 -0
  97. package/dist/planning/plan-repair.js +366 -0
  98. package/dist/planning/plan-repair.js.map +1 -0
  99. package/dist/planning/plan-validator.d.ts +31 -0
  100. package/dist/planning/plan-validator.d.ts.map +1 -0
  101. package/dist/planning/plan-validator.js +379 -0
  102. package/dist/planning/plan-validator.js.map +1 -0
  103. package/dist/planning/prompts.d.ts +50 -0
  104. package/dist/planning/prompts.d.ts.map +1 -0
  105. package/dist/planning/prompts.js +186 -0
  106. package/dist/planning/prompts.js.map +1 -0
  107. package/package.json +96 -0
@@ -0,0 +1,569 @@
1
+ function parsePattern(pattern) {
2
+ const getVarOrValue = (item) => {
3
+ if (!item)
4
+ return { var: null, value: null };
5
+ if (typeof item === 'string')
6
+ return { var: null, value: item };
7
+ return { var: item.name, value: null };
8
+ };
9
+ const subject = getVarOrValue(pattern.subject);
10
+ const predicate = getVarOrValue(pattern.predicate);
11
+ const object = getVarOrValue(pattern.object);
12
+ return {
13
+ subjectVar: subject.var,
14
+ subjectValue: subject.value,
15
+ predicateVar: predicate.var,
16
+ predicateValue: predicate.value,
17
+ objectVar: object.var,
18
+ objectValue: object.value,
19
+ conditions: pattern.conditions || [],
20
+ };
21
+ }
22
+ function matchesCondition(value, condition) {
23
+ const target = condition.value;
24
+ switch (condition.operator) {
25
+ case 'eq':
26
+ return value === target;
27
+ case 'neq':
28
+ return value !== target;
29
+ case 'gt':
30
+ return typeof value === 'number' && typeof target === 'number' && value > target;
31
+ case 'gte':
32
+ return typeof value === 'number' && typeof target === 'number' && value >= target;
33
+ case 'lt':
34
+ return typeof value === 'number' && typeof target === 'number' && value < target;
35
+ case 'lte':
36
+ return typeof value === 'number' && typeof target === 'number' && value <= target;
37
+ case 'contains':
38
+ return typeof value === 'string' && typeof target === 'string' && value.includes(target);
39
+ case 'startsWith':
40
+ return typeof value === 'string' && typeof target === 'string' && value.startsWith(target);
41
+ case 'endsWith':
42
+ return typeof value === 'string' && typeof target === 'string' && value.endsWith(target);
43
+ case 'regex':
44
+ if (typeof value !== 'string' || typeof target !== 'string')
45
+ return false;
46
+ return new RegExp(target).test(value);
47
+ case 'in':
48
+ return Array.isArray(target) && target.includes(value);
49
+ case 'notIn':
50
+ return Array.isArray(target) && !target.includes(value);
51
+ default:
52
+ return false;
53
+ }
54
+ }
55
+ function getFieldValue(item, field) {
56
+ if (field === 'id')
57
+ return item.id;
58
+ if (field === 'type')
59
+ return item.type;
60
+ if (field === 'confidence')
61
+ return item.confidence;
62
+ if (field === 'source')
63
+ return item.source;
64
+ if ('name' in item) {
65
+ const node = item;
66
+ if (field === 'name')
67
+ return node.name;
68
+ if (field === 'description')
69
+ return node.description;
70
+ if (field === 'aliases')
71
+ return node.aliases;
72
+ }
73
+ if ('weight' in item) {
74
+ const edge = item;
75
+ if (field === 'weight')
76
+ return edge.weight;
77
+ if (field === 'label')
78
+ return edge.label;
79
+ if (field === 'sourceNodeId')
80
+ return edge.sourceNodeId;
81
+ if (field === 'targetNodeId')
82
+ return edge.targetNodeId;
83
+ }
84
+ if (field.startsWith('properties.') && 'properties' in item) {
85
+ const propPath = field.substring(11);
86
+ return item.properties?.[propPath];
87
+ }
88
+ return undefined;
89
+ }
90
+ async function matchPattern(pattern, ctx, existingBindings) {
91
+ const results = [];
92
+ const { adapter, agentId } = ctx;
93
+ const nodesResult = await adapter.queryNodes({
94
+ agentId,
95
+ limit: 1000,
96
+ });
97
+ if (!nodesResult.success || !nodesResult.data) {
98
+ return [];
99
+ }
100
+ const nodes = nodesResult.data;
101
+ const nodeMap = new Map();
102
+ for (const node of nodes) {
103
+ nodeMap.set(node.id, node);
104
+ }
105
+ const edgesResult = await adapter.queryEdges({
106
+ agentId,
107
+ limit: 1000,
108
+ });
109
+ if (!edgesResult.success || !edgesResult.data) {
110
+ return [];
111
+ }
112
+ const edges = edgesResult.data;
113
+ const startBindings = existingBindings.length > 0 ? existingBindings : [{}];
114
+ for (const binding of startBindings) {
115
+ for (const edge of edges) {
116
+ const sourceNode = nodeMap.get(edge.sourceNodeId);
117
+ const targetNode = nodeMap.get(edge.targetNodeId);
118
+ if (!sourceNode || !targetNode)
119
+ continue;
120
+ const newBinding = { ...binding };
121
+ let matches = true;
122
+ if (pattern.subjectValue) {
123
+ if (sourceNode.name !== pattern.subjectValue && sourceNode.id !== pattern.subjectValue) {
124
+ matches = false;
125
+ }
126
+ }
127
+ else if (pattern.subjectVar) {
128
+ const existingValue = binding[pattern.subjectVar];
129
+ if (existingValue) {
130
+ if (existingValue.id !== sourceNode.id) {
131
+ matches = false;
132
+ }
133
+ }
134
+ else {
135
+ newBinding[pattern.subjectVar] = sourceNode;
136
+ }
137
+ }
138
+ if (matches && pattern.predicateValue) {
139
+ if (edge.type !== pattern.predicateValue && edge.label !== pattern.predicateValue) {
140
+ matches = false;
141
+ }
142
+ }
143
+ else if (matches && pattern.predicateVar) {
144
+ const existingValue = binding[pattern.predicateVar];
145
+ if (existingValue) {
146
+ if (existingValue.id !== edge.id) {
147
+ matches = false;
148
+ }
149
+ }
150
+ else {
151
+ newBinding[pattern.predicateVar] = edge;
152
+ }
153
+ }
154
+ if (matches && pattern.objectValue) {
155
+ if (targetNode.name !== pattern.objectValue && targetNode.id !== pattern.objectValue) {
156
+ matches = false;
157
+ }
158
+ }
159
+ else if (matches && pattern.objectVar) {
160
+ const existingValue = binding[pattern.objectVar];
161
+ if (existingValue) {
162
+ if (existingValue.id !== targetNode.id) {
163
+ matches = false;
164
+ }
165
+ }
166
+ else {
167
+ newBinding[pattern.objectVar] = targetNode;
168
+ }
169
+ }
170
+ if (matches) {
171
+ for (const condition of pattern.conditions) {
172
+ const item = condition.field.startsWith('subject')
173
+ ? sourceNode
174
+ : condition.field.startsWith('object')
175
+ ? targetNode
176
+ : edge;
177
+ const fieldName = condition.field.replace(/^(subject|object|predicate)\./, '');
178
+ const value = getFieldValue(item, fieldName);
179
+ if (!matchesCondition(value, condition)) {
180
+ matches = false;
181
+ break;
182
+ }
183
+ }
184
+ }
185
+ if (matches) {
186
+ results.push(newBinding);
187
+ }
188
+ }
189
+ }
190
+ return results;
191
+ }
192
+ function applyFilters(bindings, filters) {
193
+ return bindings.filter((binding) => {
194
+ for (const filter of filters) {
195
+ const varName = filter.field.split('.')[0];
196
+ const fieldPath = filter.field.substring(varName.length + 1);
197
+ const boundValue = binding[varName];
198
+ if (!boundValue)
199
+ return false;
200
+ let value;
201
+ if (typeof boundValue === 'object' && boundValue !== null) {
202
+ value = getFieldValue(boundValue, fieldPath || 'name');
203
+ }
204
+ else {
205
+ value = boundValue;
206
+ }
207
+ if (!matchesCondition(value, filter)) {
208
+ return false;
209
+ }
210
+ }
211
+ return true;
212
+ });
213
+ }
214
+ function applyOrdering(bindings, orderBy) {
215
+ return [...bindings].sort((a, b) => {
216
+ for (const order of orderBy) {
217
+ const varName = order.field.split('.')[0];
218
+ const fieldPath = order.field.substring(varName.length + 1);
219
+ const aValue = a[varName];
220
+ const bValue = b[varName];
221
+ let aField;
222
+ let bField;
223
+ if (typeof aValue === 'object' && aValue !== null) {
224
+ aField = getFieldValue(aValue, fieldPath || 'name');
225
+ }
226
+ else {
227
+ aField = aValue;
228
+ }
229
+ if (typeof bValue === 'object' && bValue !== null) {
230
+ bField = getFieldValue(bValue, fieldPath || 'name');
231
+ }
232
+ else {
233
+ bField = bValue;
234
+ }
235
+ let comparison = 0;
236
+ if (aField === bField) {
237
+ comparison = 0;
238
+ }
239
+ else if (aField === undefined || aField === null) {
240
+ comparison = 1;
241
+ }
242
+ else if (bField === undefined || bField === null) {
243
+ comparison = -1;
244
+ }
245
+ else if (typeof aField === 'number' && typeof bField === 'number') {
246
+ comparison = aField - bField;
247
+ }
248
+ else {
249
+ comparison = String(aField).localeCompare(String(bField));
250
+ }
251
+ if (comparison !== 0) {
252
+ return order.direction === 'desc' ? -comparison : comparison;
253
+ }
254
+ }
255
+ return 0;
256
+ });
257
+ }
258
+ function applyAggregates(bindings, aggregates, groupBy) {
259
+ if (groupBy && groupBy.length > 0) {
260
+ const groups = new Map();
261
+ for (const binding of bindings) {
262
+ const key = groupBy
263
+ .map((field) => {
264
+ const value = binding[field];
265
+ if (typeof value === 'object' && value !== null && 'id' in value) {
266
+ return value.id;
267
+ }
268
+ return String(value);
269
+ })
270
+ .join('|');
271
+ if (!groups.has(key)) {
272
+ groups.set(key, []);
273
+ }
274
+ groups.get(key).push(binding);
275
+ }
276
+ const results = [];
277
+ for (const [, groupBindings] of groups) {
278
+ const result = {};
279
+ for (const field of groupBy) {
280
+ result[field] = groupBindings[0][field];
281
+ }
282
+ for (const agg of aggregates) {
283
+ result[agg.alias] = computeAggregate(groupBindings, agg.function, agg.field);
284
+ }
285
+ results.push(result);
286
+ }
287
+ return results;
288
+ }
289
+ if (aggregates.length > 0 && bindings.length > 0) {
290
+ const result = {};
291
+ for (const agg of aggregates) {
292
+ result[agg.alias] = computeAggregate(bindings, agg.function, agg.field);
293
+ }
294
+ return [result];
295
+ }
296
+ return bindings;
297
+ }
298
+ function computeAggregate(bindings, fn, field) {
299
+ const varName = field.split('.')[0];
300
+ const fieldPath = field.substring(varName.length + 1);
301
+ const values = [];
302
+ for (const binding of bindings) {
303
+ const boundValue = binding[varName];
304
+ if (fn === 'count' && boundValue !== undefined) {
305
+ values.push(1);
306
+ continue;
307
+ }
308
+ let value;
309
+ if (typeof boundValue === 'object' && boundValue !== null) {
310
+ value = getFieldValue(boundValue, fieldPath || 'confidence');
311
+ }
312
+ else {
313
+ value = boundValue;
314
+ }
315
+ if (typeof value === 'number') {
316
+ values.push(value);
317
+ }
318
+ }
319
+ switch (fn) {
320
+ case 'count':
321
+ return values.length;
322
+ case 'sum':
323
+ return values.reduce((a, b) => a + b, 0);
324
+ case 'avg':
325
+ return values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : 0;
326
+ case 'min':
327
+ return values.length > 0 ? Math.min(...values) : null;
328
+ case 'max':
329
+ return values.length > 0 ? Math.max(...values) : null;
330
+ default:
331
+ return null;
332
+ }
333
+ }
334
+ export async function executeQuery(query, ctx) {
335
+ const startTime = Date.now();
336
+ let bindings = [];
337
+ for (const pattern of query.patterns) {
338
+ const parsed = parsePattern(pattern);
339
+ bindings = await matchPattern(parsed, ctx, bindings);
340
+ }
341
+ if (query.filters && query.filters.length > 0) {
342
+ bindings = applyFilters(bindings, query.filters);
343
+ }
344
+ if (query.orderBy && query.orderBy.length > 0) {
345
+ bindings = applyOrdering(bindings, query.orderBy);
346
+ }
347
+ if (query.aggregates && query.aggregates.length > 0) {
348
+ bindings = applyAggregates(bindings, query.aggregates, query.groupBy);
349
+ }
350
+ if (query.offset && query.offset > 0) {
351
+ bindings = bindings.slice(query.offset);
352
+ }
353
+ if (query.limit && query.limit > 0) {
354
+ bindings = bindings.slice(0, query.limit);
355
+ }
356
+ const executionTime = Date.now() - startTime;
357
+ return {
358
+ bindings,
359
+ count: bindings.length,
360
+ executionTime,
361
+ };
362
+ }
363
+ export class GraphQueryBuilder {
364
+ query;
365
+ constructor(type = 'select') {
366
+ this.query = {
367
+ type,
368
+ patterns: [],
369
+ };
370
+ }
371
+ static select() {
372
+ return new GraphQueryBuilder('select');
373
+ }
374
+ static ask() {
375
+ return new GraphQueryBuilder('ask');
376
+ }
377
+ static construct() {
378
+ return new GraphQueryBuilder('construct');
379
+ }
380
+ static describe() {
381
+ return new GraphQueryBuilder('describe');
382
+ }
383
+ where(subject, predicate, object) {
384
+ this.query.patterns.push({ subject, predicate, object });
385
+ return this;
386
+ }
387
+ pattern(pattern) {
388
+ this.query.patterns.push(pattern);
389
+ return this;
390
+ }
391
+ filter(field, operator, value) {
392
+ if (!this.query.filters) {
393
+ this.query.filters = [];
394
+ }
395
+ this.query.filters.push({ field, operator, value });
396
+ return this;
397
+ }
398
+ orderBy(field, direction = 'asc') {
399
+ if (!this.query.orderBy) {
400
+ this.query.orderBy = [];
401
+ }
402
+ this.query.orderBy.push({ field, direction });
403
+ return this;
404
+ }
405
+ limit(n) {
406
+ this.query.limit = n;
407
+ return this;
408
+ }
409
+ offset(n) {
410
+ this.query.offset = n;
411
+ return this;
412
+ }
413
+ count(field, alias) {
414
+ if (!this.query.aggregates) {
415
+ this.query.aggregates = [];
416
+ }
417
+ this.query.aggregates.push({ function: 'count', field, alias });
418
+ return this;
419
+ }
420
+ sum(field, alias) {
421
+ if (!this.query.aggregates) {
422
+ this.query.aggregates = [];
423
+ }
424
+ this.query.aggregates.push({ function: 'sum', field, alias });
425
+ return this;
426
+ }
427
+ avg(field, alias) {
428
+ if (!this.query.aggregates) {
429
+ this.query.aggregates = [];
430
+ }
431
+ this.query.aggregates.push({ function: 'avg', field, alias });
432
+ return this;
433
+ }
434
+ min(field, alias) {
435
+ if (!this.query.aggregates) {
436
+ this.query.aggregates = [];
437
+ }
438
+ this.query.aggregates.push({ function: 'min', field, alias });
439
+ return this;
440
+ }
441
+ max(field, alias) {
442
+ if (!this.query.aggregates) {
443
+ this.query.aggregates = [];
444
+ }
445
+ this.query.aggregates.push({ function: 'max', field, alias });
446
+ return this;
447
+ }
448
+ groupBy(...fields) {
449
+ this.query.groupBy = fields;
450
+ return this;
451
+ }
452
+ build() {
453
+ return { ...this.query };
454
+ }
455
+ async execute(ctx) {
456
+ return executeQuery(this.build(), ctx);
457
+ }
458
+ }
459
+ export function variable(name, type) {
460
+ return { name, type };
461
+ }
462
+ export function parseQueryString(queryString) {
463
+ const lines = queryString
464
+ .trim()
465
+ .split('\n')
466
+ .map((l) => l.trim());
467
+ const query = { type: 'select', patterns: [] };
468
+ let currentSection = null;
469
+ for (const line of lines) {
470
+ const lower = line.toLowerCase();
471
+ if (lower.startsWith('select')) {
472
+ query.type = 'select';
473
+ currentSection = 'select';
474
+ }
475
+ else if (lower.startsWith('ask')) {
476
+ query.type = 'ask';
477
+ currentSection = 'select';
478
+ }
479
+ else if (lower.startsWith('construct')) {
480
+ query.type = 'construct';
481
+ currentSection = 'select';
482
+ }
483
+ else if (lower.startsWith('describe')) {
484
+ query.type = 'describe';
485
+ currentSection = 'select';
486
+ }
487
+ else if (lower.startsWith('where')) {
488
+ currentSection = 'where';
489
+ }
490
+ else if (lower.startsWith('filter')) {
491
+ currentSection = 'filter';
492
+ }
493
+ else if (lower.startsWith('order by')) {
494
+ currentSection = 'order';
495
+ }
496
+ else if (lower.startsWith('limit')) {
497
+ const match = /limit\s+(\d+)/i.exec(line);
498
+ if (match) {
499
+ query.limit = parseInt(match[1], 10);
500
+ }
501
+ }
502
+ else if (lower.startsWith('offset')) {
503
+ const match = /offset\s+(\d+)/i.exec(line);
504
+ if (match) {
505
+ query.offset = parseInt(match[1], 10);
506
+ }
507
+ }
508
+ else if (currentSection === 'where') {
509
+ const tripleMatch = /\?\s*(\w+)\s+(\w+)\s+(\?\s*\w+|"[^"]+"|[\w]+)/.exec(line);
510
+ if (tripleMatch) {
511
+ const subject = { name: tripleMatch[1] };
512
+ const predicate = tripleMatch[2];
513
+ const objStr = tripleMatch[3];
514
+ let object;
515
+ if (objStr.startsWith('?')) {
516
+ object = { name: objStr.substring(1).trim() };
517
+ }
518
+ else if (objStr.startsWith('"')) {
519
+ object = objStr.slice(1, -1);
520
+ }
521
+ else {
522
+ object = objStr;
523
+ }
524
+ query.patterns.push({ subject, predicate, object });
525
+ }
526
+ }
527
+ }
528
+ return query;
529
+ }
530
+ export function formatQueryResult(result) {
531
+ const lines = [];
532
+ lines.push(`Query completed in ${result.executionTime}ms`);
533
+ lines.push(`Found ${result.count} result(s)`);
534
+ lines.push('');
535
+ if (result.bindings.length === 0) {
536
+ lines.push('No results.');
537
+ return lines.join('\n');
538
+ }
539
+ const allKeys = new Set();
540
+ for (const binding of result.bindings) {
541
+ for (const key of Object.keys(binding)) {
542
+ allKeys.add(key);
543
+ }
544
+ }
545
+ const keys = Array.from(allKeys);
546
+ lines.push(keys.join('\t|\t'));
547
+ lines.push('-'.repeat(keys.length * 16));
548
+ for (const binding of result.bindings) {
549
+ const row = [];
550
+ for (const key of keys) {
551
+ const value = binding[key];
552
+ if (value === undefined || value === null) {
553
+ row.push('-');
554
+ }
555
+ else if (typeof value === 'object' && 'name' in value) {
556
+ row.push(value.name);
557
+ }
558
+ else if (typeof value === 'object' && 'label' in value) {
559
+ row.push(value.label || value.type);
560
+ }
561
+ else {
562
+ row.push(String(value));
563
+ }
564
+ }
565
+ lines.push(row.join('\t|\t'));
566
+ }
567
+ return lines.join('\n');
568
+ }
569
+ //# sourceMappingURL=query-language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-language.js","sourceRoot":"","sources":["../../src/knowledge-graph/query-language.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { GraphAdapter, GraphPath, InferredEdge, RelationType } from '@cogitator-ai/types';
2
+ export interface ReasoningConfig {
3
+ maxHops: number;
4
+ minConfidence: number;
5
+ maxInferences: number;
6
+ enableTransitivity: boolean;
7
+ enableInverse: boolean;
8
+ enableComposition: boolean;
9
+ }
10
+ export interface ReasoningContext {
11
+ adapter: GraphAdapter;
12
+ agentId: string;
13
+ config: ReasoningConfig;
14
+ }
15
+ export interface ReasoningResult {
16
+ paths: GraphPath[];
17
+ inferences: InferredEdge[];
18
+ confidence: number;
19
+ steps: ReasoningStep[];
20
+ }
21
+ export interface ReasoningStep {
22
+ type: 'traverse' | 'infer' | 'compose' | 'inverse';
23
+ description: string;
24
+ fromNode?: string;
25
+ toNode?: string;
26
+ relation?: string;
27
+ confidence: number;
28
+ }
29
+ export declare function findPath(ctx: ReasoningContext, startNodeId: string, endNodeId: string): Promise<ReasoningResult>;
30
+ export declare function multiHopQuery(ctx: ReasoningContext, startNodeId: string, relationPath: RelationType[]): Promise<ReasoningResult>;
31
+ export declare function inferTransitiveRelations(ctx: ReasoningContext): Promise<InferredEdge[]>;
32
+ export declare function inferInverseRelations(ctx: ReasoningContext): Promise<InferredEdge[]>;
33
+ export interface CompositionRule {
34
+ first: RelationType;
35
+ second: RelationType;
36
+ result: RelationType;
37
+ confidenceMultiplier: number;
38
+ }
39
+ export declare function inferComposedRelations(ctx: ReasoningContext): Promise<InferredEdge[]>;
40
+ export declare function runFullInference(ctx: ReasoningContext): Promise<InferredEdge[]>;
41
+ export declare class ReasoningEngine {
42
+ private ctx;
43
+ constructor(adapter: GraphAdapter, agentId: string, config?: Partial<ReasoningConfig>);
44
+ findPath(startNodeId: string, endNodeId: string): Promise<ReasoningResult>;
45
+ multiHopQuery(startNodeId: string, relationPath: RelationType[]): Promise<ReasoningResult>;
46
+ infer(): Promise<InferredEdge[]>;
47
+ inferTransitive(): Promise<InferredEdge[]>;
48
+ inferInverse(): Promise<InferredEdge[]>;
49
+ inferComposed(): Promise<InferredEdge[]>;
50
+ updateConfig(config: Partial<ReasoningConfig>): void;
51
+ }
52
+ export declare function createReasoningEngine(adapter: GraphAdapter, agentId: string, config?: Partial<ReasoningConfig>): ReasoningEngine;
53
+ //# sourceMappingURL=reasoning-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-engine.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/reasoning-engine.ts"],"names":[],"mappings":"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"}