@framers/agentos 0.1.32 → 0.1.34

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 (102) hide show
  1. package/README.md +5 -2
  2. package/dist/api/AgentOS.d.ts +62 -1
  3. package/dist/api/AgentOS.d.ts.map +1 -1
  4. package/dist/api/AgentOS.js +177 -2
  5. package/dist/api/AgentOS.js.map +1 -1
  6. package/dist/api/AgentOSOrchestrator.d.ts +187 -0
  7. package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
  8. package/dist/api/AgentOSOrchestrator.js +709 -16
  9. package/dist/api/AgentOSOrchestrator.js.map +1 -1
  10. package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
  11. package/dist/cognitive_substrate/GMI.js +36 -1
  12. package/dist/cognitive_substrate/GMI.js.map +1 -1
  13. package/dist/cognitive_substrate/IGMI.d.ts +21 -0
  14. package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
  15. package/dist/cognitive_substrate/IGMI.js.map +1 -1
  16. package/dist/config/AgentOSConfig.d.ts.map +1 -1
  17. package/dist/config/AgentOSConfig.js +17 -0
  18. package/dist/config/AgentOSConfig.js.map +1 -1
  19. package/dist/config/VectorStoreConfiguration.d.ts +2 -1
  20. package/dist/config/VectorStoreConfiguration.d.ts.map +1 -1
  21. package/dist/config/VectorStoreConfiguration.js.map +1 -1
  22. package/dist/core/knowledge/Neo4jKnowledgeGraph.d.ts +89 -0
  23. package/dist/core/knowledge/Neo4jKnowledgeGraph.d.ts.map +1 -0
  24. package/dist/core/knowledge/Neo4jKnowledgeGraph.js +683 -0
  25. package/dist/core/knowledge/Neo4jKnowledgeGraph.js.map +1 -0
  26. package/dist/core/llm/providers/implementations/OllamaProvider.d.ts +14 -1
  27. package/dist/core/llm/providers/implementations/OllamaProvider.d.ts.map +1 -1
  28. package/dist/core/llm/providers/implementations/OllamaProvider.js +142 -37
  29. package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -1
  30. package/dist/core/llm/providers/implementations/OpenAIProvider.js +3 -3
  31. package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -1
  32. package/dist/core/observability/otel.d.ts +2 -0
  33. package/dist/core/observability/otel.d.ts.map +1 -1
  34. package/dist/core/observability/otel.js +14 -0
  35. package/dist/core/observability/otel.js.map +1 -1
  36. package/dist/core/orchestration/SqlTaskOutcomeTelemetryStore.d.ts +30 -0
  37. package/dist/core/orchestration/SqlTaskOutcomeTelemetryStore.d.ts.map +1 -0
  38. package/dist/core/orchestration/SqlTaskOutcomeTelemetryStore.js +123 -0
  39. package/dist/core/orchestration/SqlTaskOutcomeTelemetryStore.js.map +1 -0
  40. package/dist/core/orchestration/TurnPlanner.d.ts +89 -0
  41. package/dist/core/orchestration/TurnPlanner.d.ts.map +1 -0
  42. package/dist/core/orchestration/TurnPlanner.js +242 -0
  43. package/dist/core/orchestration/TurnPlanner.js.map +1 -0
  44. package/dist/discovery/CapabilityDiscoveryEngine.js +4 -4
  45. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  46. package/dist/discovery/CapabilityGraph.d.ts +2 -2
  47. package/dist/discovery/CapabilityGraph.d.ts.map +1 -1
  48. package/dist/discovery/CapabilityGraph.js +46 -17
  49. package/dist/discovery/CapabilityGraph.js.map +1 -1
  50. package/dist/discovery/Neo4jCapabilityGraph.d.ts +58 -0
  51. package/dist/discovery/Neo4jCapabilityGraph.d.ts.map +1 -0
  52. package/dist/discovery/Neo4jCapabilityGraph.js +226 -0
  53. package/dist/discovery/Neo4jCapabilityGraph.js.map +1 -0
  54. package/dist/discovery/index.d.ts +1 -0
  55. package/dist/discovery/index.d.ts.map +1 -1
  56. package/dist/discovery/index.js +1 -0
  57. package/dist/discovery/index.js.map +1 -1
  58. package/dist/discovery/types.d.ts +1 -1
  59. package/dist/discovery/types.d.ts.map +1 -1
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +2 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/neo4j/Neo4jConnectionManager.d.ts +59 -0
  65. package/dist/neo4j/Neo4jConnectionManager.d.ts.map +1 -0
  66. package/dist/neo4j/Neo4jConnectionManager.js +115 -0
  67. package/dist/neo4j/Neo4jConnectionManager.js.map +1 -0
  68. package/dist/neo4j/Neo4jCypherRunner.d.ts +39 -0
  69. package/dist/neo4j/Neo4jCypherRunner.d.ts.map +1 -0
  70. package/dist/neo4j/Neo4jCypherRunner.js +74 -0
  71. package/dist/neo4j/Neo4jCypherRunner.js.map +1 -0
  72. package/dist/neo4j/index.d.ts +12 -0
  73. package/dist/neo4j/index.d.ts.map +1 -0
  74. package/dist/neo4j/index.js +11 -0
  75. package/dist/neo4j/index.js.map +1 -0
  76. package/dist/neo4j/types.d.ts +27 -0
  77. package/dist/neo4j/types.d.ts.map +1 -0
  78. package/dist/neo4j/types.js +6 -0
  79. package/dist/neo4j/types.js.map +1 -0
  80. package/dist/rag/VectorStoreManager.d.ts.map +1 -1
  81. package/dist/rag/VectorStoreManager.js +6 -7
  82. package/dist/rag/VectorStoreManager.js.map +1 -1
  83. package/dist/rag/graphrag/GraphRAGEngine.d.ts.map +1 -1
  84. package/dist/rag/graphrag/GraphRAGEngine.js +42 -10
  85. package/dist/rag/graphrag/GraphRAGEngine.js.map +1 -1
  86. package/dist/rag/graphrag/Neo4jGraphRAGEngine.d.ts +95 -0
  87. package/dist/rag/graphrag/Neo4jGraphRAGEngine.d.ts.map +1 -0
  88. package/dist/rag/graphrag/Neo4jGraphRAGEngine.js +748 -0
  89. package/dist/rag/graphrag/Neo4jGraphRAGEngine.js.map +1 -0
  90. package/dist/rag/graphrag/index.d.ts +1 -0
  91. package/dist/rag/graphrag/index.d.ts.map +1 -1
  92. package/dist/rag/graphrag/index.js +1 -0
  93. package/dist/rag/graphrag/index.js.map +1 -1
  94. package/dist/rag/implementations/vector_stores/Neo4jVectorStore.d.ts +55 -0
  95. package/dist/rag/implementations/vector_stores/Neo4jVectorStore.d.ts.map +1 -0
  96. package/dist/rag/implementations/vector_stores/Neo4jVectorStore.js +369 -0
  97. package/dist/rag/implementations/vector_stores/Neo4jVectorStore.js.map +1 -0
  98. package/dist/rag/implementations/vector_stores/index.d.ts +1 -0
  99. package/dist/rag/implementations/vector_stores/index.d.ts.map +1 -1
  100. package/dist/rag/implementations/vector_stores/index.js +2 -0
  101. package/dist/rag/implementations/vector_stores/index.js.map +1 -1
  102. package/package.json +5 -1
@@ -0,0 +1,242 @@
1
+ /**
2
+ * @fileoverview Turn planner for AgentOS orchestration.
3
+ *
4
+ * The planner sits before GMI execution and determines:
5
+ * - execution policy for tool failures (fail-open vs fail-closed)
6
+ * - tool selection scope (all tools vs discovery-selected tools)
7
+ * - optional per-turn capability discovery payload
8
+ */
9
+ import { GMIError, GMIErrorCode } from '../../utils/errors.js';
10
+ const TURN_PLANNER_VERSION = 'agentos-turn-planner-v1';
11
+ const DEFAULT_TURN_PLANNER_CONFIG = {
12
+ enabled: true,
13
+ defaultToolFailureMode: 'fail_open',
14
+ allowRequestOverrides: true,
15
+ discovery: {
16
+ enabled: true,
17
+ onlyAvailable: true,
18
+ defaultKind: 'any',
19
+ includePromptContext: true,
20
+ defaultToolSelectionMode: 'discovered',
21
+ maxRetries: 1,
22
+ retryBackoffMs: 150,
23
+ },
24
+ };
25
+ async function sleep(ms) {
26
+ if (!Number.isFinite(ms) || ms <= 0)
27
+ return;
28
+ await new Promise((resolve) => setTimeout(resolve, ms));
29
+ }
30
+ function normalizeFailureMode(value) {
31
+ const normalized = String(value ?? '')
32
+ .trim()
33
+ .toLowerCase()
34
+ .replace(/\s+/g, '_')
35
+ .replace(/-/g, '_');
36
+ if (!normalized)
37
+ return null;
38
+ if (normalized === 'fail_open' || normalized === 'open')
39
+ return 'fail_open';
40
+ if (normalized === 'fail_closed' || normalized === 'closed')
41
+ return 'fail_closed';
42
+ return null;
43
+ }
44
+ function normalizeToolSelectionMode(value) {
45
+ const normalized = String(value ?? '')
46
+ .trim()
47
+ .toLowerCase()
48
+ .replace(/\s+/g, '_')
49
+ .replace(/-/g, '_');
50
+ if (!normalized)
51
+ return null;
52
+ if (normalized === 'all' || normalized === 'full')
53
+ return 'all';
54
+ if (normalized === 'discovered' || normalized === 'selected' || normalized === 'retrieved') {
55
+ return 'discovered';
56
+ }
57
+ return null;
58
+ }
59
+ function readFlag(flags, keys) {
60
+ if (!flags)
61
+ return undefined;
62
+ for (const key of keys) {
63
+ if (Object.prototype.hasOwnProperty.call(flags, key)) {
64
+ return flags[key];
65
+ }
66
+ }
67
+ return undefined;
68
+ }
69
+ function buildDiscoveryQueryOptions(capability) {
70
+ return {
71
+ kind: capability.kind,
72
+ category: capability.category,
73
+ onlyAvailable: capability.onlyAvailable,
74
+ };
75
+ }
76
+ function extractDiscoveredToolNames(result) {
77
+ const names = new Set();
78
+ for (const item of result.tier1) {
79
+ if (item.capability.kind === 'tool' && item.capability.name) {
80
+ names.add(item.capability.name);
81
+ }
82
+ }
83
+ for (const item of result.tier2) {
84
+ if (item.capability.kind === 'tool' && item.capability.name) {
85
+ names.add(item.capability.name);
86
+ }
87
+ }
88
+ return Array.from(names.values());
89
+ }
90
+ export class AgentOSTurnPlanner {
91
+ constructor(config, discoveryEngine, logger) {
92
+ this.discoveryEngine = discoveryEngine;
93
+ this.logger = logger;
94
+ this.plannerId = TURN_PLANNER_VERSION;
95
+ this.config = {
96
+ ...DEFAULT_TURN_PLANNER_CONFIG,
97
+ ...(config ?? {}),
98
+ discovery: {
99
+ ...DEFAULT_TURN_PLANNER_CONFIG.discovery,
100
+ ...(config?.discovery ?? {}),
101
+ },
102
+ };
103
+ }
104
+ isDiscoveryAvailable() {
105
+ return Boolean(this.config.discovery.enabled &&
106
+ this.discoveryEngine &&
107
+ this.discoveryEngine.isInitialized());
108
+ }
109
+ async planTurn(input) {
110
+ const startedAt = Date.now();
111
+ const customFlags = input.options?.customFlags;
112
+ let toolFailureMode = this.config.defaultToolFailureMode;
113
+ let toolSelectionMode = this.config.discovery.defaultToolSelectionMode;
114
+ if (this.config.allowRequestOverrides) {
115
+ const requestedFailureMode = normalizeFailureMode(readFlag(customFlags, [
116
+ 'toolFailureMode',
117
+ 'tool_failure_mode',
118
+ 'failureMode',
119
+ 'failMode',
120
+ ]));
121
+ if (requestedFailureMode) {
122
+ toolFailureMode = requestedFailureMode;
123
+ }
124
+ const requestedSelectionMode = normalizeToolSelectionMode(readFlag(customFlags, [
125
+ 'toolSelectionMode',
126
+ 'tool_selection_mode',
127
+ 'capabilityToolSelectionMode',
128
+ ]));
129
+ if (requestedSelectionMode) {
130
+ toolSelectionMode = requestedSelectionMode;
131
+ }
132
+ }
133
+ const capability = {
134
+ enabled: false,
135
+ query: input.userMessage.trim(),
136
+ kind: this.config.discovery.defaultKind,
137
+ category: undefined,
138
+ onlyAvailable: this.config.discovery.onlyAvailable,
139
+ selectedToolNames: [],
140
+ };
141
+ if (this.config.allowRequestOverrides) {
142
+ const requestedKind = String(readFlag(customFlags, ['capabilityDiscoveryKind', 'capability_kind']) ?? '')
143
+ .trim()
144
+ .toLowerCase();
145
+ if (requestedKind === 'tool' ||
146
+ requestedKind === 'skill' ||
147
+ requestedKind === 'extension' ||
148
+ requestedKind === 'channel' ||
149
+ requestedKind === 'voice' ||
150
+ requestedKind === 'productivity' ||
151
+ requestedKind === 'any') {
152
+ capability.kind = requestedKind;
153
+ }
154
+ const requestedCategory = readFlag(customFlags, [
155
+ 'capabilityCategory',
156
+ 'capability_category',
157
+ ]);
158
+ if (typeof requestedCategory === 'string' && requestedCategory.trim()) {
159
+ capability.category = requestedCategory.trim();
160
+ }
161
+ }
162
+ const discoveryFlagOverride = this.config.allowRequestOverrides
163
+ ? readFlag(customFlags, ['enableCapabilityDiscovery', 'capabilityDiscovery'])
164
+ : undefined;
165
+ const discoveryEnabledForTurn = typeof discoveryFlagOverride === 'boolean'
166
+ ? discoveryFlagOverride
167
+ : this.config.discovery.enabled;
168
+ const discoveryAttempted = Boolean(discoveryEnabledForTurn) &&
169
+ Boolean(capability.query) &&
170
+ this.isDiscoveryAvailable();
171
+ let discoveryAttempts = 0;
172
+ if (discoveryAttempted && this.discoveryEngine) {
173
+ capability.enabled = true;
174
+ const maxRetries = Math.max(0, Number(this.config.discovery.maxRetries ?? 0));
175
+ const backoffMs = Math.max(0, Number(this.config.discovery.retryBackoffMs ?? 0));
176
+ let lastDiscoveryError = null;
177
+ for (let attempt = 0; attempt <= maxRetries; attempt += 1) {
178
+ discoveryAttempts += 1;
179
+ try {
180
+ const result = await this.discoveryEngine.discover(capability.query, buildDiscoveryQueryOptions(capability));
181
+ capability.result = result;
182
+ capability.selectedToolNames = extractDiscoveredToolNames(result);
183
+ if (this.config.discovery.includePromptContext) {
184
+ const renderFn = this.discoveryEngine.renderForPrompt;
185
+ if (typeof renderFn === 'function') {
186
+ capability.promptContext = String(renderFn.call(this.discoveryEngine, result) ?? '');
187
+ }
188
+ }
189
+ lastDiscoveryError = null;
190
+ if (toolSelectionMode === 'discovered' &&
191
+ capability.selectedToolNames.length === 0) {
192
+ capability.fallbackReason =
193
+ 'Discovery produced no tool matches; falling back to full toolset.';
194
+ capability.fallbackApplied = true;
195
+ toolSelectionMode = 'all';
196
+ }
197
+ break;
198
+ }
199
+ catch (error) {
200
+ lastDiscoveryError = error;
201
+ if (attempt < maxRetries) {
202
+ await sleep(backoffMs);
203
+ continue;
204
+ }
205
+ }
206
+ }
207
+ if (lastDiscoveryError) {
208
+ const message = lastDiscoveryError?.message || String(lastDiscoveryError);
209
+ capability.fallbackReason = `Discovery failed after ${discoveryAttempts} attempt(s): ${message}`;
210
+ if (toolFailureMode === 'fail_closed') {
211
+ throw new GMIError(`Turn planning failed in fail-closed mode: ${message}`, GMIErrorCode.PROCESSING_ERROR, { plannerId: this.plannerId, userId: input.userId, organizationId: input.organizationId });
212
+ }
213
+ capability.fallbackApplied = true;
214
+ toolSelectionMode = 'all';
215
+ this.logger?.warn?.('Turn planner discovery failed; continuing with fail-open policy', {
216
+ plannerId: this.plannerId,
217
+ userId: input.userId,
218
+ organizationId: input.organizationId,
219
+ message,
220
+ attempts: discoveryAttempts,
221
+ });
222
+ }
223
+ }
224
+ const plan = {
225
+ policy: {
226
+ plannerVersion: TURN_PLANNER_VERSION,
227
+ toolFailureMode,
228
+ toolSelectionMode,
229
+ },
230
+ capability,
231
+ diagnostics: {
232
+ planningLatencyMs: Date.now() - startedAt,
233
+ discoveryAttempted,
234
+ discoveryApplied: Boolean(capability.result),
235
+ discoveryAttempts,
236
+ usedFallback: capability.fallbackApplied === true,
237
+ },
238
+ };
239
+ return plan;
240
+ }
241
+ }
242
+ //# sourceMappingURL=TurnPlanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnPlanner.js","sourceRoot":"","sources":["../../../src/core/orchestration/TurnPlanner.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,9 @@ export class CapabilityDiscoveryEngine {
42
42
  async initialize(sources, presetCoOccurrences) {
43
43
  // 1. Build the vector index (normalizes sources + embeds + stores)
44
44
  await this.index.buildIndex(sources);
45
- // 2. Build the relationship graph
45
+ // 2. Build the relationship graph (async — graphology loaded lazily)
46
46
  const allCapabilities = this.index.getAllCapabilities();
47
- this.graph.buildGraph(allCapabilities, presetCoOccurrences);
47
+ await this.graph.buildGraph(allCapabilities, presetCoOccurrences);
48
48
  this.indexVersion++;
49
49
  this.initialized = true;
50
50
  }
@@ -132,9 +132,9 @@ export class CapabilityDiscoveryEngine {
132
132
  for (const desc of newDescriptors) {
133
133
  await this.index.upsertCapability(desc);
134
134
  }
135
- // Rebuild graph with all capabilities
135
+ // Rebuild graph with all capabilities (async — graphology loaded lazily)
136
136
  const allCapabilities = this.index.getAllCapabilities();
137
- this.graph.buildGraph(allCapabilities);
137
+ await this.graph.buildGraph(allCapabilities);
138
138
  this.indexVersion++;
139
139
  this.assembler.invalidateCache();
140
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityDiscoveryEngine.js","sourceRoot":"","sources":["../../src/discovery/CapabilityDiscoveryEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,MAAM,OAAO,yBAAyB;IAQpC,YACE,gBAAmC,EACnC,WAAyB,EACzB,MAA2C;QANrC,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;QAO1B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAC9B,gBAAgB,EAChB,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;IACjB,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,OAA+B,EAC/B,mBAA0C;QAE1C,mEAAmE;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErC,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAE5D,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,+EAA+E;IAC/E,YAAY;IACZ,+EAA+E;IAE/E;;;;;;;;;OASG;IACH,KAAK,CAAC,QAAQ,CACZ,WAAmB,EACnB,OAA+B;QAE/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEzC,qBAAqB;QACrB,gFAAgF;QAChF,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAC3C,WAAW,EACX,UAAU,EACV;YACE,IAAI,EAAE,OAAO,EAAE,IAAI;YACnB,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,aAAa,EAAE,OAAO,EAAE,aAAa;SACtC,CACF,CAAC;QAEF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QAE3D,4BAA4B;QAC5B,IAAI,YAAY,GAAG,aAAa,CAAC;QACjC,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,IAAI,WAAW,CAAC,iBAAiB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAChC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EACnE,WAAW,CAAC,gBAAgB,CAC7B,CAAC;YAEF,4CAA4C;YAC5C,YAAY,GAAG,QAAQ;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAC7B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACxC,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAEzD,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QACxD,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CACrC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAC/B,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,+CAA+C;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE;YAC/D,eAAe;YACf,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;OAEG;IACH,mBAAmB,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,+EAA+E;IAC/E,mBAAmB;IACnB,+EAA+E;IAE/E;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,OAAyC;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,mCAAmC;QACnC,MAAM,WAAW,GAA2B;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEhE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,sCAAsC;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAEvC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,+EAA+E;IAC/E,YAAY;IACZ,+EAA+E;IAE/E,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QAMN,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAClC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAiC;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,+EAA+E;IAC/E,WAAW;IACX,+EAA+E;IAEvE,WAAW;QACjB,OAAO;YACL,KAAK,EAAE,4DAA4D;YACnE,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,aAAa,EAAE;gBACb,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,EAAE;aAChB;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,CAAC;gBACd,eAAe,EAAE,CAAC;gBAClB,oBAAoB,EAAE,CAAC;gBACvB,iBAAiB,EAAE,CAAC;gBACpB,qBAAqB,EAAE,CAAC;aACzB;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"CapabilityDiscoveryEngine.js","sourceRoot":"","sources":["../../src/discovery/CapabilityDiscoveryEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,MAAM,OAAO,yBAAyB;IAQpC,YACE,gBAAmC,EACnC,WAAyB,EACzB,MAA2C;QANrC,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;QAO1B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAC9B,gBAAgB,EAChB,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;IACjB,+EAA+E;IAE/E;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,OAA+B,EAC/B,mBAA0C;QAE1C,mEAAmE;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErC,qEAAqE;QACrE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAElE,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,+EAA+E;IAC/E,YAAY;IACZ,+EAA+E;IAE/E;;;;;;;;;OASG;IACH,KAAK,CAAC,QAAQ,CACZ,WAAmB,EACnB,OAA+B;QAE/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEzC,qBAAqB;QACrB,gFAAgF;QAChF,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAC3C,WAAW,EACX,UAAU,EACV;YACE,IAAI,EAAE,OAAO,EAAE,IAAI;YACnB,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,aAAa,EAAE,OAAO,EAAE,aAAa;SACtC,CACF,CAAC;QAEF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QAE3D,4BAA4B;QAC5B,IAAI,YAAY,GAAG,aAAa,CAAC;QACjC,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,IAAI,WAAW,CAAC,iBAAiB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAChC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EACnE,WAAW,CAAC,gBAAgB,CAC7B,CAAC;YAEF,4CAA4C;YAC5C,YAAY,GAAG,QAAQ;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAC7B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACxC,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAEzD,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QACxD,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CACrC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAC/B,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,+CAA+C;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE;YAC/D,eAAe;YACf,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;OAEG;IACH,mBAAmB,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,+EAA+E;IAC/E,mBAAmB;IACnB,+EAA+E;IAE/E;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,OAAyC;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,mCAAmC;QACnC,MAAM,WAAW,GAA2B;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEhE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,yEAAyE;QACzE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,+EAA+E;IAC/E,YAAY;IACZ,+EAA+E;IAE/E,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QAMN,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAClC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAiC;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,+EAA+E;IAC/E,WAAW;IACX,+EAA+E;IAEvE,WAAW;QACjB,OAAO;YACL,KAAK,EAAE,4DAA4D;YACnE,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,aAAa,EAAE;gBACb,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,EAAE;aAChB;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,CAAC;gBACd,eAAe,EAAE,CAAC;gBAClB,oBAAoB,EAAE,CAAC;gBACvB,iBAAiB,EAAE,CAAC;gBACpB,qBAAqB,EAAE,CAAC;aACzB;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -23,7 +23,7 @@
23
23
  import type { CapabilityDescriptor, CapabilityEdge, ICapabilityGraph, PresetCoOccurrence, RelatedCapability } from './types.js';
24
24
  export declare class CapabilityGraph implements ICapabilityGraph {
25
25
  private graph;
26
- constructor();
26
+ private ensureGraph;
27
27
  /**
28
28
  * Build the graph from capability descriptors and preset co-occurrence data.
29
29
  *
@@ -34,7 +34,7 @@ export declare class CapabilityGraph implements ICapabilityGraph {
34
34
  * 4. Add TAGGED_WITH edges (shared tags, ≥2 overlap)
35
35
  * 5. Add SAME_CATEGORY edges (weak signal)
36
36
  */
37
- buildGraph(capabilities: CapabilityDescriptor[], presetCoOccurrences?: PresetCoOccurrence[]): void;
37
+ buildGraph(capabilities: CapabilityDescriptor[], presetCoOccurrences?: PresetCoOccurrence[]): Promise<void>;
38
38
  /**
39
39
  * Get capabilities related to a given capability (1-hop neighbors).
40
40
  * Returns neighbors with edge weights, sorted by weight descending.
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityGraph.d.ts","sourceRoot":"","sources":["../../src/discovery/CapabilityGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EAEd,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAMpB,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,KAAK,CAAQ;;IAUrB;;;;;;;;;OASG;IACH,UAAU,CACR,YAAY,EAAE,oBAAoB,EAAE,EACpC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,GACzC,IAAI;IA2FP;;;OAGG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAoBrD;;;OAGG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG;QACpC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB;IA4BD;;;;;;;;;OASG;IACH,MAAM,CACJ,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EACnD,gBAAgB,EAAE,MAAM,GACvB,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsCzD,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI,IAAI;IAQb;;;OAGG;IACH,OAAO,CAAC,WAAW;CAiCpB"}
1
+ {"version":3,"file":"CapabilityGraph.d.ts","sourceRoot":"","sources":["../../src/discovery/CapabilityGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EAEd,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAwBpB,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,KAAK,CAA2B;IAExC,OAAO,CAAC,WAAW;IAanB;;;;;;;;;OASG;IACG,UAAU,CACd,YAAY,EAAE,oBAAoB,EAAE,EACpC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,GACzC,OAAO,CAAC,IAAI,CAAC;IAiGhB;;;OAGG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAsBrD;;;OAGG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG;QACpC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB;IA6BD;;;;;;;;;OASG;IACH,MAAM,CACJ,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EACnD,gBAAgB,EAAE,MAAM,GACvB,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsCzD,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI,IAAI;IAQb;;;OAGG;IACH,OAAO,CAAC,WAAW;CAkCpB"}
@@ -20,13 +20,32 @@
20
20
  * - SAME_CATEGORY: Shared category (weak signal, low weight)
21
21
  * - TAGGED_WITH: Shared tags (weighted by overlap count, ≥2 tags)
22
22
  */
23
- import Graph from 'graphology';
23
+ let _GraphCtor;
24
+ async function resolveGraphology() {
25
+ if (_GraphCtor)
26
+ return _GraphCtor;
27
+ try {
28
+ const mod = await import('graphology');
29
+ _GraphCtor = (mod.default ?? mod);
30
+ return _GraphCtor;
31
+ }
32
+ catch {
33
+ throw new Error('graphology is required for CapabilityGraph but was not found. ' +
34
+ 'Install it: npm install graphology graphology-types');
35
+ }
36
+ }
24
37
  // ============================================================================
25
38
  // GRAPHOLOGY-BASED CAPABILITY GRAPH
26
39
  // ============================================================================
27
40
  export class CapabilityGraph {
28
41
  constructor() {
29
- this.graph = new Graph({ multi: false, type: 'undirected' });
42
+ this.graph = null;
43
+ }
44
+ ensureGraph() {
45
+ if (!this.graph) {
46
+ throw new Error('CapabilityGraph not initialized. Call buildGraph() first.');
47
+ }
48
+ return this.graph;
30
49
  }
31
50
  // ============================================================================
32
51
  // BUILD
@@ -41,7 +60,12 @@ export class CapabilityGraph {
41
60
  * 4. Add TAGGED_WITH edges (shared tags, ≥2 overlap)
42
61
  * 5. Add SAME_CATEGORY edges (weak signal)
43
62
  */
44
- buildGraph(capabilities, presetCoOccurrences) {
63
+ async buildGraph(capabilities, presetCoOccurrences) {
64
+ // Lazy-load graphology on first use
65
+ const GraphCtor = await resolveGraphology();
66
+ if (!this.graph) {
67
+ this.graph = new GraphCtor({ multi: false, type: 'undirected' });
68
+ }
45
69
  // Clear any existing graph
46
70
  this.graph.clear();
47
71
  // 1. Add all capabilities as nodes
@@ -127,10 +151,13 @@ export class CapabilityGraph {
127
151
  * Returns neighbors with edge weights, sorted by weight descending.
128
152
  */
129
153
  getRelated(capabilityId) {
130
- if (!this.graph.hasNode(capabilityId))
154
+ if (!this.graph)
155
+ return [];
156
+ const g = this.ensureGraph();
157
+ if (!g.hasNode(capabilityId))
131
158
  return [];
132
159
  const related = [];
133
- this.graph.forEachEdge(capabilityId, (_edge, attrs, source, target) => {
160
+ g.forEachEdge(capabilityId, (_edge, attrs, source, target) => {
134
161
  const neighborId = source === capabilityId ? target : source;
135
162
  related.push({
136
163
  id: neighborId,
@@ -147,10 +174,11 @@ export class CapabilityGraph {
147
174
  * Returns all nodes and edges within the induced subgraph.
148
175
  */
149
176
  getSubgraph(capabilityIds) {
150
- const nodeSet = new Set(capabilityIds.filter((id) => this.graph.hasNode(id)));
177
+ const g = this.ensureGraph();
178
+ const nodeSet = new Set(capabilityIds.filter((id) => g.hasNode(id)));
151
179
  const edges = [];
152
180
  for (const nodeId of nodeSet) {
153
- this.graph.forEachEdge(nodeId, (_edge, attrs, source, target) => {
181
+ g.forEachEdge(nodeId, (_edge, attrs, source, target) => {
154
182
  // Only include edges where both endpoints are in the subgraph
155
183
  if (nodeSet.has(source) && nodeSet.has(target)) {
156
184
  // Avoid duplicates (undirected graph)
@@ -215,13 +243,13 @@ export class CapabilityGraph {
215
243
  // ACCESSORS
216
244
  // ============================================================================
217
245
  nodeCount() {
218
- return this.graph.order;
246
+ return this.graph?.order ?? 0;
219
247
  }
220
248
  edgeCount() {
221
- return this.graph.size;
249
+ return this.graph?.size ?? 0;
222
250
  }
223
251
  clear() {
224
- this.graph.clear();
252
+ this.graph?.clear();
225
253
  }
226
254
  // ============================================================================
227
255
  // INTERNAL HELPERS
@@ -231,28 +259,29 @@ export class CapabilityGraph {
231
259
  * If the edge already exists, update to the higher weight.
232
260
  */
233
261
  safeAddEdge(source, target, type, weight) {
234
- if (!this.graph.hasNode(source) || !this.graph.hasNode(target))
262
+ const g = this.ensureGraph();
263
+ if (!g.hasNode(source) || !g.hasNode(target))
235
264
  return;
236
265
  if (source === target)
237
266
  return;
238
267
  try {
239
- const existingEdge = this.graph.edge(source, target);
268
+ const existingEdge = g.edge(source, target);
240
269
  if (existingEdge) {
241
270
  // Edge exists — keep the one with higher weight or stronger type
242
- const existing = this.graph.getEdgeAttributes(existingEdge);
271
+ const existing = g.getEdgeAttributes(existingEdge);
243
272
  if (weight > existing.weight) {
244
- this.graph.setEdgeAttribute(existingEdge, 'weight', weight);
245
- this.graph.setEdgeAttribute(existingEdge, 'type', type);
273
+ g.setEdgeAttribute(existingEdge, 'weight', weight);
274
+ g.setEdgeAttribute(existingEdge, 'type', type);
246
275
  }
247
276
  }
248
277
  else {
249
- this.graph.addEdge(source, target, { type, weight });
278
+ g.addEdge(source, target, { type, weight });
250
279
  }
251
280
  }
252
281
  catch {
253
282
  // Edge might already exist in the other direction for undirected
254
283
  try {
255
- this.graph.addEdge(source, target, { type, weight });
284
+ g.addEdge(source, target, { type, weight });
256
285
  }
257
286
  catch {
258
287
  // Silently ignore — edge already exists
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityGraph.js","sourceRoot":"","sources":["../../src/discovery/CapabilityGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CapabilityGraph.js","sourceRoot":"","sources":["../../src/discovery/CapabilityGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview Neo4j-backed Capability Graph implementation.
3
+ *
4
+ * Implements `ICapabilityGraph` using Neo4j for persistent capability
5
+ * relationship storage. Designed for scaling to 1000+ capabilities
6
+ * where in-memory graphology becomes impractical.
7
+ *
8
+ * Also implements the `rerank()` method used by CapabilityDiscoveryEngine
9
+ * for graph-based re-ranking of search results.
10
+ *
11
+ * @module @framers/agentos/discovery/Neo4jCapabilityGraph
12
+ * @see ./types.ts for the ICapabilityGraph interface.
13
+ */
14
+ import type { ICapabilityGraph, CapabilityDescriptor, CapabilityEdge, RelatedCapability, PresetCoOccurrence } from './types.js';
15
+ import type { Neo4jConnectionManager } from '../neo4j/Neo4jConnectionManager.js';
16
+ export declare class Neo4jCapabilityGraph implements ICapabilityGraph {
17
+ private cypher;
18
+ constructor(connectionManager: Neo4jConnectionManager);
19
+ buildGraph(capabilities: CapabilityDescriptor[], presetCoOccurrences?: PresetCoOccurrence[]): void;
20
+ private _buildPromise;
21
+ private _ensureBuilt;
22
+ private _buildGraphAsync;
23
+ getRelated(capabilityId: string): RelatedCapability[];
24
+ /**
25
+ * Async version of getRelated for Neo4j usage.
26
+ */
27
+ getRelatedAsync(capabilityId: string): Promise<RelatedCapability[]>;
28
+ getSubgraph(capabilityIds: string[]): {
29
+ nodes: string[];
30
+ edges: CapabilityEdge[];
31
+ };
32
+ /**
33
+ * Async version of getSubgraph for Neo4j usage.
34
+ */
35
+ getSubgraphAsync(capabilityIds: string[]): Promise<{
36
+ nodes: string[];
37
+ edges: CapabilityEdge[];
38
+ }>;
39
+ nodeCount(): number;
40
+ nodeCountAsync(): Promise<number>;
41
+ edgeCount(): number;
42
+ edgeCountAsync(): Promise<number>;
43
+ clear(): void;
44
+ /**
45
+ * Re-rank search results using graph relationships.
46
+ * Matches the CapabilityGraph.rerank() signature for drop-in replacement.
47
+ */
48
+ rerank(searchResults: Array<{
49
+ id: string;
50
+ score: number;
51
+ }>, graphBoostFactor: number): Promise<Array<{
52
+ id: string;
53
+ score: number;
54
+ boosted: boolean;
55
+ }>>;
56
+ private addEdge;
57
+ }
58
+ //# sourceMappingURL=Neo4jCapabilityGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Neo4jCapabilityGraph.d.ts","sourceRoot":"","sources":["../../src/discovery/Neo4jCapabilityGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EAEd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAajF,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,MAAM,CAAoB;gBAEtB,iBAAiB,EAAE,sBAAsB;IAIrD,UAAU,CACR,YAAY,EAAE,oBAAoB,EAAE,EACpC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,GACzC,IAAI;IAOP,OAAO,CAAC,aAAa,CAAoC;YAE3C,YAAY;YAIZ,gBAAgB;IA4F9B,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAOrD;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqBzE,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,cAAc,EAAE,CAAA;KAAE;IAKlF;;OAEG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACvD,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;IAuCF,SAAS,IAAI,MAAM;IAKb,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAQvC,SAAS,IAAI,MAAM;IAIb,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAQvC,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACG,MAAM,CACV,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EACnD,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;YAkCpD,OAAO;CAetB"}