expxagents 0.25.0 → 0.25.2

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 (126) hide show
  1. package/dist/cli/src/commands/info.d.ts +1 -2
  2. package/dist/cli/src/commands/login.d.ts +1 -2
  3. package/dist/cli/src/commands/logout.d.ts +1 -2
  4. package/dist/cli/src/commands/outdated.d.ts +1 -2
  5. package/dist/cli/src/commands/publish.d.ts +1 -2
  6. package/dist/cli/src/commands/registry-install.d.ts +1 -2
  7. package/dist/cli/src/commands/search.d.ts +1 -2
  8. package/dist/cli/src/commands/update.d.ts +1 -2
  9. package/dist/cli/src/commands/whoami.d.ts +1 -2
  10. package/dist/dashboard/assets/{BufferResource-A8ncaeYI.js → BufferResource-D79vaoFm.js} +1 -1
  11. package/dist/dashboard/assets/{CanvasRenderer-B9ePxyZx.js → CanvasRenderer-BUoxTNKV.js} +1 -1
  12. package/dist/dashboard/assets/JarvisView-DSN7xWMz.js +1 -0
  13. package/dist/dashboard/assets/{RenderTargetSystem-B6qE1bDj.js → RenderTargetSystem-B7rwTXA1.js} +1 -1
  14. package/dist/dashboard/assets/ThreeBackground-BQTdScX-.js +1 -0
  15. package/dist/dashboard/assets/{WebGLRenderer-D5vXNoQg.js → WebGLRenderer-DgdVNsZ9.js} +1 -1
  16. package/dist/dashboard/assets/{WebGPURenderer-CPOVD6U9.js → WebGPURenderer-DnQNvjEQ.js} +1 -1
  17. package/dist/dashboard/assets/{browserAll-BXl_rCrX.js → browserAll-Cbsk7DE4.js} +1 -1
  18. package/dist/dashboard/assets/index-CrlhoBta.js +783 -0
  19. package/dist/dashboard/assets/{webworkerAll-Dv96EAc4.js → webworkerAll-BLmfReEj.js} +1 -1
  20. package/dist/dashboard/index.html +1 -1
  21. package/package.json +2 -2
  22. package/dist/cli/src/__tests__/cli.test.d.ts +0 -1
  23. package/dist/cli/src/__tests__/cli.test.js +0 -23
  24. package/dist/cli/src/commands/__tests__/outdated.test.d.ts +0 -1
  25. package/dist/cli/src/commands/__tests__/outdated.test.js +0 -76
  26. package/dist/cli/src/mcp/__tests__/catalog.test.d.ts +0 -1
  27. package/dist/cli/src/mcp/__tests__/catalog.test.js +0 -101
  28. package/dist/cli/src/mcp/__tests__/detect.test.d.ts +0 -1
  29. package/dist/cli/src/mcp/__tests__/detect.test.js +0 -84
  30. package/dist/cli/src/mcp/__tests__/setup.test.d.ts +0 -1
  31. package/dist/cli/src/mcp/__tests__/setup.test.js +0 -75
  32. package/dist/cli/src/mcp/__tests__/validate.test.d.ts +0 -1
  33. package/dist/cli/src/mcp/__tests__/validate.test.js +0 -42
  34. package/dist/cli/src/pencil/__tests__/detect.test.d.ts +0 -1
  35. package/dist/cli/src/pencil/__tests__/detect.test.js +0 -71
  36. package/dist/cli/src/pencil/__tests__/property-mapper.test.d.ts +0 -1
  37. package/dist/cli/src/pencil/__tests__/property-mapper.test.js +0 -120
  38. package/dist/cli/src/pencil/__tests__/template-sync.test.d.ts +0 -1
  39. package/dist/cli/src/pencil/__tests__/template-sync.test.js +0 -95
  40. package/dist/cli/src/runners/__tests__/provider-registry.test.d.ts +0 -1
  41. package/dist/cli/src/runners/__tests__/provider-registry.test.js +0 -31
  42. package/dist/cli/src/runners/__tests__/provider-runner.test.d.ts +0 -1
  43. package/dist/cli/src/runners/__tests__/provider-runner.test.js +0 -86
  44. package/dist/cli/src/utils/__tests__/command-prefix.test.d.ts +0 -1
  45. package/dist/cli/src/utils/__tests__/command-prefix.test.js +0 -35
  46. package/dist/cli/src/utils/__tests__/global-install.test.d.ts +0 -1
  47. package/dist/cli/src/utils/__tests__/global-install.test.js +0 -25
  48. package/dist/dashboard/assets/JarvisView-BzSP9oge.js +0 -1
  49. package/dist/dashboard/assets/ThreeBackground-Ds6SAxmB.js +0 -1
  50. package/dist/dashboard/assets/index--ULBmMcf.js +0 -1195
  51. package/dist/data/opensquad.db +0 -0
  52. package/dist/data/opensquad.db-shm +0 -0
  53. package/dist/data/opensquad.db-wal +0 -0
  54. package/node_modules/expxagents-knowledge/dist/config.d.ts +0 -4
  55. package/node_modules/expxagents-knowledge/dist/config.d.ts.map +0 -1
  56. package/node_modules/expxagents-knowledge/dist/config.js +0 -37
  57. package/node_modules/expxagents-knowledge/dist/config.js.map +0 -1
  58. package/node_modules/expxagents-knowledge/dist/db/connection.d.ts +0 -6
  59. package/node_modules/expxagents-knowledge/dist/db/connection.d.ts.map +0 -1
  60. package/node_modules/expxagents-knowledge/dist/db/connection.js +0 -69
  61. package/node_modules/expxagents-knowledge/dist/db/connection.js.map +0 -1
  62. package/node_modules/expxagents-knowledge/dist/db/migrations.d.ts +0 -3
  63. package/node_modules/expxagents-knowledge/dist/db/migrations.d.ts.map +0 -1
  64. package/node_modules/expxagents-knowledge/dist/db/migrations.js +0 -46
  65. package/node_modules/expxagents-knowledge/dist/db/migrations.js.map +0 -1
  66. package/node_modules/expxagents-knowledge/dist/db/schema.d.ts +0 -3
  67. package/node_modules/expxagents-knowledge/dist/db/schema.d.ts.map +0 -1
  68. package/node_modules/expxagents-knowledge/dist/db/schema.js +0 -79
  69. package/node_modules/expxagents-knowledge/dist/db/schema.js.map +0 -1
  70. package/node_modules/expxagents-knowledge/dist/index.d.ts +0 -16
  71. package/node_modules/expxagents-knowledge/dist/index.d.ts.map +0 -1
  72. package/node_modules/expxagents-knowledge/dist/index.js +0 -16
  73. package/node_modules/expxagents-knowledge/dist/index.js.map +0 -1
  74. package/node_modules/expxagents-knowledge/dist/ingest/chunker.d.ts +0 -10
  75. package/node_modules/expxagents-knowledge/dist/ingest/chunker.d.ts.map +0 -1
  76. package/node_modules/expxagents-knowledge/dist/ingest/chunker.js +0 -221
  77. package/node_modules/expxagents-knowledge/dist/ingest/chunker.js.map +0 -1
  78. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.d.ts +0 -4
  79. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.d.ts.map +0 -1
  80. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.js +0 -56
  81. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.js.map +0 -1
  82. package/node_modules/expxagents-knowledge/dist/ingest/embedder.d.ts +0 -4
  83. package/node_modules/expxagents-knowledge/dist/ingest/embedder.d.ts.map +0 -1
  84. package/node_modules/expxagents-knowledge/dist/ingest/embedder.js +0 -25
  85. package/node_modules/expxagents-knowledge/dist/ingest/embedder.js.map +0 -1
  86. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.d.ts +0 -21
  87. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.d.ts.map +0 -1
  88. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.js +0 -54
  89. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.js.map +0 -1
  90. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.d.ts +0 -16
  91. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.d.ts.map +0 -1
  92. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.js +0 -49
  93. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.js.map +0 -1
  94. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.d.ts +0 -9
  95. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.d.ts.map +0 -1
  96. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.js +0 -116
  97. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.js.map +0 -1
  98. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.d.ts +0 -27
  99. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.d.ts.map +0 -1
  100. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.js +0 -92
  101. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.js.map +0 -1
  102. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.d.ts +0 -41
  103. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.d.ts.map +0 -1
  104. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.js +0 -62
  105. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.js.map +0 -1
  106. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.d.ts +0 -31
  107. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.d.ts.map +0 -1
  108. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.js +0 -106
  109. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.js.map +0 -1
  110. package/node_modules/expxagents-knowledge/dist/query/vector-search.d.ts +0 -26
  111. package/node_modules/expxagents-knowledge/dist/query/vector-search.d.ts.map +0 -1
  112. package/node_modules/expxagents-knowledge/dist/query/vector-search.js +0 -57
  113. package/node_modules/expxagents-knowledge/dist/query/vector-search.js.map +0 -1
  114. package/node_modules/expxagents-knowledge/dist/sources/agent-output.d.ts +0 -10
  115. package/node_modules/expxagents-knowledge/dist/sources/agent-output.d.ts.map +0 -1
  116. package/node_modules/expxagents-knowledge/dist/sources/agent-output.js +0 -29
  117. package/node_modules/expxagents-knowledge/dist/sources/agent-output.js.map +0 -1
  118. package/node_modules/expxagents-knowledge/dist/sources/watcher.d.ts +0 -6
  119. package/node_modules/expxagents-knowledge/dist/sources/watcher.d.ts.map +0 -1
  120. package/node_modules/expxagents-knowledge/dist/sources/watcher.js +0 -42
  121. package/node_modules/expxagents-knowledge/dist/sources/watcher.js.map +0 -1
  122. package/node_modules/expxagents-knowledge/dist/types.d.ts +0 -138
  123. package/node_modules/expxagents-knowledge/dist/types.d.ts.map +0 -1
  124. package/node_modules/expxagents-knowledge/dist/types.js +0 -2
  125. package/node_modules/expxagents-knowledge/dist/types.js.map +0 -1
  126. package/node_modules/expxagents-knowledge/package.json +0 -7
@@ -1,62 +0,0 @@
1
- export class GraphTraversal {
2
- db;
3
- constructor(db) {
4
- this.db = db;
5
- }
6
- findEntityByName(name) {
7
- const row = this.db
8
- .prepare('SELECT id, name, entity_type FROM entities WHERE name = ? COLLATE NOCASE')
9
- .get(name);
10
- return row ?? null;
11
- }
12
- findEntitiesByType(type) {
13
- return this.db
14
- .prepare('SELECT id, name, entity_type FROM entities WHERE entity_type = ?')
15
- .all(type);
16
- }
17
- traverse(entityId, options) {
18
- const results = [];
19
- const visited = new Set();
20
- this.dfs(entityId, options, results, visited, 1);
21
- return results;
22
- }
23
- dfs(entityId, options, results, visited, depth) {
24
- if (depth > options.maxDepth)
25
- return;
26
- visited.add(entityId);
27
- let sql = `
28
- SELECT r.relation_type, r.description, r.weight,
29
- s.id as source_id, s.name as source_name, s.entity_type as source_type,
30
- t.id as target_id, t.name as target_name, t.entity_type as target_type
31
- FROM relations r
32
- JOIN entities s ON s.id = r.source_id
33
- JOIN entities t ON t.id = r.target_id
34
- WHERE r.source_id = ?`;
35
- const params = [entityId];
36
- if (options.relationType) {
37
- sql += ' AND r.relation_type = ?';
38
- params.push(options.relationType);
39
- }
40
- const rows = this.db.prepare(sql).all(...params);
41
- for (const row of rows) {
42
- results.push({
43
- source: { id: row.source_id, name: row.source_name, entity_type: row.source_type },
44
- target: { id: row.target_id, name: row.target_name, entity_type: row.target_type },
45
- relation_type: row.relation_type,
46
- description: row.description,
47
- weight: row.weight,
48
- depth,
49
- });
50
- if (!visited.has(row.target_id)) {
51
- this.dfs(row.target_id, options, results, visited, depth + 1);
52
- }
53
- }
54
- }
55
- buildNarrative(results) {
56
- if (results.length === 0)
57
- return 'No relationships found.';
58
- const lines = results.map((r) => `${r.source.name} (${r.source.entity_type}) —[${r.relation_type}]→ ${r.target.name} (${r.target.entity_type})${r.description ? `: ${r.description}` : ''}`);
59
- return lines.join('\n');
60
- }
61
- }
62
- //# sourceMappingURL=graph-traversal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-traversal.js","sourceRoot":"","sources":["../../src/query/graph-traversal.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type Database from 'better-sqlite3';
2
- import type { Embedder, QueryScope, QueryMode, KnowledgeResult } from '../types.js';
3
- interface QueryOptions {
4
- mode?: QueryMode;
5
- scope?: QueryScope;
6
- limit?: number;
7
- }
8
- interface KnowledgeStats {
9
- documents: number;
10
- chunks: number;
11
- entities: number;
12
- relations: number;
13
- }
14
- export declare class KnowledgeQuery {
15
- private db;
16
- private vectorSearch;
17
- private graphTraversal;
18
- constructor(db: Database.Database, embedder: Embedder);
19
- query(queryText: string, options?: QueryOptions): Promise<KnowledgeResult>;
20
- private graphMode;
21
- private autoMode;
22
- private searchMode;
23
- getStats(): KnowledgeStats;
24
- listDocuments(limit?: number, offset?: number): unknown[];
25
- getDocument(id: string): unknown;
26
- deleteDocument(id: string): boolean;
27
- listEntities(type?: string, limit?: number): unknown[];
28
- getEntityRelations(entityId: string): unknown[];
29
- }
30
- export {};
31
- //# sourceMappingURL=knowledge-query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-query.d.ts","sourceRoot":"","sources":["../../src/query/knowledge-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIpF,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAc;IAKvB,OAAO,CAAC,EAAE;IAJZ,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAiB;gBAG7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAC7B,QAAQ,EAAE,QAAQ;IAMd,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;YAalE,SAAS;YAYT,QAAQ;YAaR,UAAU;IAkBxB,QAAQ,IAAI,cAAc;IAgB1B,aAAa,CAAC,KAAK,SAAK,EAAE,MAAM,SAAI,GAAG,OAAO,EAAE;IAUhD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAKnC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,EAAE;IAOlD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;CAUhD"}
@@ -1,106 +0,0 @@
1
- import { VectorSearch } from './vector-search.js';
2
- import { GraphTraversal } from './graph-traversal.js';
3
- export class KnowledgeQuery {
4
- db;
5
- vectorSearch;
6
- graphTraversal;
7
- constructor(db, embedder) {
8
- this.db = db;
9
- this.vectorSearch = new VectorSearch(db, embedder);
10
- this.graphTraversal = new GraphTraversal(db);
11
- }
12
- async query(queryText, options) {
13
- const mode = options?.mode ?? 'auto';
14
- const limit = options?.limit ?? 10;
15
- if (mode === 'graph') {
16
- return this.graphMode(queryText, limit, options?.scope);
17
- }
18
- if (mode === 'auto') {
19
- return this.autoMode(queryText, limit, options?.scope);
20
- }
21
- return this.searchMode(queryText, limit, options?.scope);
22
- }
23
- async graphMode(queryText, limit, scope) {
24
- const entity = this.graphTraversal.findEntityByName(queryText);
25
- if (entity) {
26
- const traversal = this.graphTraversal.traverse(entity.id, { maxDepth: 2 });
27
- return {
28
- results: [],
29
- graph_context: this.graphTraversal.buildNarrative(traversal),
30
- };
31
- }
32
- return this.searchMode(queryText, limit, scope);
33
- }
34
- async autoMode(queryText, limit, scope) {
35
- const GRAPH_KEYWORDS = ['depende', 'depends', 'impacta', 'impacts', 'contradiz', 'contradicts', 'relação', 'relationship', 'levou a', 'led to'];
36
- const isGraphQuery = GRAPH_KEYWORDS.some(kw => queryText.toLowerCase().includes(kw));
37
- if (isGraphQuery) {
38
- const graphResult = await this.graphMode(queryText, limit, scope);
39
- if (graphResult.graph_context && graphResult.graph_context !== 'No relationships found.') {
40
- return graphResult;
41
- }
42
- }
43
- return this.searchMode(queryText, limit, scope);
44
- }
45
- async searchMode(queryText, limit, scope) {
46
- const searchResults = await this.vectorSearch.search(queryText, { limit, scope });
47
- return {
48
- results: searchResults.map((r) => ({
49
- content: r.content,
50
- source: {
51
- document_title: r.document_title,
52
- source_type: r.source_type,
53
- squad_code: r.squad_code ?? undefined,
54
- agent_id: r.agent_id ?? undefined,
55
- path: r.source_path ?? undefined,
56
- },
57
- score: r.score,
58
- })),
59
- };
60
- }
61
- getStats() {
62
- const docs = this.db.prepare('SELECT COUNT(*) as count FROM documents').get().count;
63
- const chunks = this.db.prepare('SELECT COUNT(*) as count FROM chunks').get().count;
64
- let entities = 0;
65
- let relations = 0;
66
- try {
67
- entities = this.db.prepare('SELECT COUNT(*) as count FROM entities').get().count;
68
- relations = this.db.prepare('SELECT COUNT(*) as count FROM relations').get().count;
69
- }
70
- catch {
71
- // Tables may not exist yet (Phase 1 only)
72
- }
73
- return { documents: docs, chunks, entities, relations };
74
- }
75
- listDocuments(limit = 50, offset = 0) {
76
- return this.db
77
- .prepare(`SELECT id, source_type, source_path, squad_code, title, content_hash,
78
- extraction_status, ingested_at, updated_at
79
- FROM documents ORDER BY ingested_at DESC LIMIT ? OFFSET ?`)
80
- .all(limit, offset);
81
- }
82
- getDocument(id) {
83
- return this.db.prepare('SELECT * FROM documents WHERE id = ?').get(id);
84
- }
85
- deleteDocument(id) {
86
- const result = this.db.prepare('DELETE FROM documents WHERE id = ?').run(id);
87
- return result.changes > 0;
88
- }
89
- listEntities(type, limit = 50) {
90
- if (type) {
91
- return this.db.prepare('SELECT * FROM entities WHERE entity_type = ? ORDER BY mention_count DESC LIMIT ?').all(type, limit);
92
- }
93
- return this.db.prepare('SELECT * FROM entities ORDER BY mention_count DESC LIMIT ?').all(limit);
94
- }
95
- getEntityRelations(entityId) {
96
- return this.db.prepare(`
97
- SELECT r.*, s.name as source_name, s.entity_type as source_type,
98
- t.name as target_name, t.entity_type as target_type
99
- FROM relations r
100
- JOIN entities s ON s.id = r.source_id
101
- JOIN entities t ON t.id = r.target_id
102
- WHERE r.source_id = ? OR r.target_id = ?
103
- `).all(entityId, entityId);
104
- }
105
- }
106
- //# sourceMappingURL=knowledge-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-query.js","sourceRoot":"","sources":["../../src/query/knowledge-query.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type Database from 'better-sqlite3';
2
- import type { Embedder, QueryScope } from '../types.js';
3
- export interface SearchResult {
4
- chunk_id: string;
5
- document_id: string;
6
- content: string;
7
- score: number;
8
- document_title: string;
9
- source_type: string;
10
- squad_code: string | null;
11
- agent_id: string | null;
12
- source_path: string | null;
13
- }
14
- interface SearchOptions {
15
- limit: number;
16
- scope?: QueryScope;
17
- }
18
- export declare class VectorSearch {
19
- private db;
20
- private embedder;
21
- constructor(db: Database.Database, embedder: Embedder);
22
- search(query: string, options: SearchOptions): Promise<SearchResult[]>;
23
- private bruteForceSearch;
24
- }
25
- export {};
26
- //# sourceMappingURL=vector-search.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-search.d.ts","sourceRoot":"","sources":["../../src/query/vector-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,QAAQ;gBADR,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,QAAQ;IAGtB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK5E,OAAO,CAAC,gBAAgB;CA+CzB"}
@@ -1,57 +0,0 @@
1
- export class VectorSearch {
2
- db;
3
- embedder;
4
- constructor(db, embedder) {
5
- this.db = db;
6
- this.embedder = embedder;
7
- }
8
- async search(query, options) {
9
- const [queryVec] = await this.embedder.embed([query]);
10
- return this.bruteForceSearch(queryVec, options);
11
- }
12
- bruteForceSearch(queryVec, options) {
13
- const rows = this.db
14
- .prepare(`SELECT ces.chunk_id, ces.embedding, c.document_id, c.content,
15
- d.title as document_title, d.source_type, d.squad_code, d.agent_id, d.source_path
16
- FROM chunk_embeddings_store ces
17
- JOIN chunks c ON c.id = ces.chunk_id
18
- JOIN documents d ON d.id = c.document_id`)
19
- .all();
20
- let results = rows.map((row) => {
21
- const embedding = JSON.parse(row.embedding);
22
- const score = cosineSimilarity(queryVec, embedding);
23
- return {
24
- chunk_id: row.chunk_id,
25
- document_id: row.document_id,
26
- content: row.content,
27
- score,
28
- document_title: row.document_title,
29
- source_type: row.source_type,
30
- squad_code: row.squad_code,
31
- agent_id: row.agent_id,
32
- source_path: row.source_path,
33
- };
34
- });
35
- if (options.scope?.squad) {
36
- results = results.filter((r) => r.squad_code === options.scope.squad);
37
- }
38
- if (options.scope?.source_type) {
39
- results = results.filter((r) => r.source_type === options.scope.source_type);
40
- }
41
- results.sort((a, b) => b.score - a.score);
42
- return results.slice(0, options.limit);
43
- }
44
- }
45
- function cosineSimilarity(a, b) {
46
- let dot = 0;
47
- let normA = 0;
48
- let normB = 0;
49
- for (let i = 0; i < a.length; i++) {
50
- dot += a[i] * b[i];
51
- normA += a[i] * a[i];
52
- normB += b[i] * b[i];
53
- }
54
- const denom = Math.sqrt(normA) * Math.sqrt(normB);
55
- return denom === 0 ? 0 : dot / denom;
56
- }
57
- //# sourceMappingURL=vector-search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-search.js","sourceRoot":"","sources":["../../src/query/vector-search.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { IngestPipeline } from '../ingest/pipeline.js';
2
- interface AgentOutputEvent {
3
- squad_code: string;
4
- agent_id: string;
5
- result_summary?: string;
6
- output_files?: string[];
7
- }
8
- export declare function createAgentOutputHook(pipeline: IngestPipeline): (event: AgentOutputEvent) => Promise<void>;
9
- export {};
10
- //# sourceMappingURL=agent-output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-output.d.ts","sourceRoot":"","sources":["../../src/sources/agent-output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,IACtB,OAAO,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAAC,CAyB9E"}
@@ -1,29 +0,0 @@
1
- import fs from 'node:fs';
2
- export function createAgentOutputHook(pipeline) {
3
- return async function onAgentComplete(event) {
4
- try {
5
- if (event.output_files) {
6
- for (const file of event.output_files) {
7
- if (fs.existsSync(file)) {
8
- await pipeline.ingest(file, {
9
- squad_code: event.squad_code,
10
- agent_id: event.agent_id,
11
- source_type: 'agent_output',
12
- });
13
- }
14
- }
15
- }
16
- if (event.result_summary?.trim()) {
17
- await pipeline.ingestText(event.result_summary, `Agent output: ${event.agent_id}`, {
18
- squad_code: event.squad_code,
19
- agent_id: event.agent_id,
20
- source_type: 'agent_output',
21
- });
22
- }
23
- }
24
- catch (err) {
25
- console.error('[knowledge] auto-ingest failed:', err);
26
- }
27
- };
28
- }
29
- //# sourceMappingURL=agent-output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-output.js","sourceRoot":"","sources":["../../src/sources/agent-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAUzB,MAAM,UAAU,qBAAqB,CAAC,QAAwB;IAC5D,OAAO,KAAK,UAAU,eAAe,CAAC,KAAuB;QAC3D,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACtC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;4BAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;4BAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,WAAW,EAAE,cAAc;yBAC5B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;gBACjC,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,iBAAiB,KAAK,CAAC,QAAQ,EAAE,EAAE;oBACjF,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,cAAc;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { IngestPipeline } from '../ingest/pipeline.js';
2
- export declare function createKnowledgeWatcher(watchPaths: string[], pipeline: IngestPipeline): {
3
- ready: Promise<void>;
4
- stop: () => void;
5
- };
6
- //# sourceMappingURL=watcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/sources/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,cAAc,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA2C5C"}
@@ -1,42 +0,0 @@
1
- import chokidar from 'chokidar';
2
- import path from 'node:path';
3
- const SUPPORTED_EXTENSIONS = new Set(['.md', '.txt', '.json', '.yaml', '.yml', '.pdf']);
4
- export function createKnowledgeWatcher(watchPaths, pipeline) {
5
- const debounceTimers = new Map();
6
- const watcher = chokidar.watch(watchPaths, {
7
- ignoreInitial: false,
8
- depth: 5,
9
- ignored: (filePath) => {
10
- const base = path.basename(filePath);
11
- if (base.startsWith('.') || base.startsWith('_'))
12
- return true;
13
- return false;
14
- },
15
- });
16
- function handleFile(filePath) {
17
- const ext = path.extname(filePath).toLowerCase();
18
- if (!SUPPORTED_EXTENSIONS.has(ext))
19
- return;
20
- clearTimeout(debounceTimers.get(filePath));
21
- debounceTimers.set(filePath, setTimeout(async () => {
22
- try {
23
- await pipeline.ingest(filePath);
24
- }
25
- catch (err) {
26
- console.error(`[knowledge-watcher] Failed to ingest ${filePath}:`, err);
27
- }
28
- }, 50));
29
- }
30
- watcher.on('add', handleFile);
31
- watcher.on('change', handleFile);
32
- const ready = new Promise((resolve) => {
33
- watcher.on('ready', resolve);
34
- });
35
- const stop = () => {
36
- for (const timer of debounceTimers.values())
37
- clearTimeout(timer);
38
- watcher.close();
39
- };
40
- return { ready, stop };
41
- }
42
- //# sourceMappingURL=watcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/sources/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAExF,MAAM,UAAU,sBAAsB,CACpC,UAAoB,EACpB,QAAwB;IAExB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;IAExE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;QACzC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;IAEH,SAAS,UAAU,CAAC,QAAgB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAE3C,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,cAAc,CAAC,GAAG,CAChB,QAAQ,EACR,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wCAAwC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC1C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -1,138 +0,0 @@
1
- export type SourceType = 'external' | 'agent_output' | 'squad_memory' | 'activity_log';
2
- export type ExtractionStatus = 'pending' | 'complete' | 'failed' | 'skipped';
3
- export type EntityType = 'technology' | 'person' | 'decision' | 'concept' | 'squad' | 'agent' | 'learning';
4
- export type RelationType = 'produced' | 'depends_on' | 'learned_from' | 'contradicts' | 'decided' | 'uses' | 'replaced';
5
- export interface KnowledgeDocument {
6
- id: string;
7
- source_type: SourceType;
8
- source_path: string | null;
9
- squad_code: string | null;
10
- agent_id: string | null;
11
- title: string;
12
- mime_type: string | null;
13
- content_hash: string;
14
- extraction_status: ExtractionStatus;
15
- metadata: string | null;
16
- ingested_at: string;
17
- updated_at: string;
18
- }
19
- export interface Chunk {
20
- id: string;
21
- document_id: string;
22
- content: string;
23
- chunk_index: number;
24
- token_count: number | null;
25
- metadata: string | null;
26
- created_at: string;
27
- }
28
- export interface Entity {
29
- id: string;
30
- name: string;
31
- entity_type: EntityType;
32
- description: string | null;
33
- properties: string | null;
34
- first_seen_in: string | null;
35
- mention_count: number;
36
- created_at: string;
37
- updated_at: string;
38
- }
39
- export interface Relation {
40
- id: string;
41
- source_id: string;
42
- target_id: string;
43
- relation_type: RelationType;
44
- description: string | null;
45
- weight: number;
46
- document_id: string | null;
47
- created_at: string;
48
- }
49
- export interface ParsedDocument {
50
- title: string;
51
- content: string;
52
- mime_type: string;
53
- metadata?: Record<string, unknown>;
54
- }
55
- export interface ChunkResult {
56
- content: string;
57
- chunk_index: number;
58
- token_count: number;
59
- metadata: {
60
- heading_path?: string;
61
- section_type?: string;
62
- page_number?: number;
63
- };
64
- }
65
- export interface Embedder {
66
- embed(texts: string[]): Promise<number[][]>;
67
- readonly dimensions: number;
68
- }
69
- export interface QueryScope {
70
- squad?: string;
71
- source_type?: SourceType;
72
- entity_type?: EntityType;
73
- date_from?: string;
74
- date_to?: string;
75
- }
76
- export type QueryMode = 'search' | 'graph' | 'auto';
77
- export interface KnowledgeResultItem {
78
- content: string;
79
- source: {
80
- document_title: string;
81
- source_type: string;
82
- squad_code?: string;
83
- agent_id?: string;
84
- path?: string;
85
- };
86
- score: number;
87
- entities?: Array<{
88
- name: string;
89
- type: string;
90
- relations: string[];
91
- }>;
92
- }
93
- export interface KnowledgeResult {
94
- results: KnowledgeResultItem[];
95
- graph_context?: string;
96
- }
97
- export interface PdfMetadata {
98
- page_count: number;
99
- ocr_pages: number[];
100
- languages: string[];
101
- extraction_method: 'native' | 'ocr' | 'mixed';
102
- truncated?: boolean;
103
- }
104
- export interface PdfConfig {
105
- ocr_enabled: boolean;
106
- ocr_languages: string[];
107
- ocr_threshold: number;
108
- max_pages: number;
109
- }
110
- export interface KnowledgeConfig {
111
- enabled: boolean;
112
- db_path: string;
113
- embedder: {
114
- provider: 'auto' | 'local' | 'openai' | 'voyage';
115
- batch_size: number;
116
- };
117
- chunker: {
118
- max_tokens: number;
119
- overlap: number;
120
- };
121
- graph: {
122
- enabled: boolean;
123
- extract_on_ingest: boolean;
124
- dedup_threshold: number;
125
- };
126
- auto_ingest: {
127
- agent_outputs: boolean;
128
- activity_logs: boolean;
129
- watch_paths: string[];
130
- };
131
- limits: {
132
- max_document_size_mb: number;
133
- max_documents: number;
134
- max_entities: number;
135
- };
136
- pdf: PdfConfig;
137
- }
138
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- {
2
- "name": "expxagents-knowledge",
3
- "version": "0.1.0",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts"
7
- }