agentic-qe 1.8.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
- package/CHANGELOG.md +595 -0
- package/README.md +117 -16
- package/config/constitution.schema.json +423 -0
- package/config/otel-collector.yaml +234 -0
- package/dist/App.d.ts +5 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +15 -0
- package/dist/App.js.map +1 -0
- package/dist/cli/commands/constitution.d.ts +34 -0
- package/dist/cli/commands/constitution.d.ts.map +1 -0
- package/dist/cli/commands/constitution.js +679 -0
- package/dist/cli/commands/constitution.js.map +1 -0
- package/dist/cli/commands/init-claude-md-template.js +3 -3
- package/dist/cli/commands/init.d.ts +8 -75
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +22 -2292
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/telemetry.d.ts +36 -0
- package/dist/cli/commands/telemetry.d.ts.map +1 -0
- package/dist/cli/commands/telemetry.js +364 -0
- package/dist/cli/commands/telemetry.js.map +1 -0
- package/dist/cli/index.js +66 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/agents.d.ts +22 -0
- package/dist/cli/init/agents.d.ts.map +1 -0
- package/dist/cli/init/agents.js +522 -0
- package/dist/cli/init/agents.js.map +1 -0
- package/dist/cli/init/bash-wrapper.d.ts +14 -0
- package/dist/cli/init/bash-wrapper.d.ts.map +1 -0
- package/dist/cli/init/bash-wrapper.js +47 -0
- package/dist/cli/init/bash-wrapper.js.map +1 -0
- package/dist/cli/init/claude-config.d.ts +24 -0
- package/dist/cli/init/claude-config.d.ts.map +1 -0
- package/dist/cli/init/claude-config.js +275 -0
- package/dist/cli/init/claude-config.js.map +1 -0
- package/dist/cli/init/claude-md.d.ts +19 -0
- package/dist/cli/init/claude-md.d.ts.map +1 -0
- package/dist/cli/init/claude-md.js +153 -0
- package/dist/cli/init/claude-md.js.map +1 -0
- package/dist/cli/init/commands.d.ts +6 -0
- package/dist/cli/init/commands.d.ts.map +1 -0
- package/dist/cli/init/commands.js +83 -0
- package/dist/cli/init/commands.js.map +1 -0
- package/dist/cli/init/database-init.d.ts +15 -0
- package/dist/cli/init/database-init.d.ts.map +1 -0
- package/dist/cli/init/database-init.js +203 -0
- package/dist/cli/init/database-init.js.map +1 -0
- package/dist/cli/init/directory-structure.d.ts +14 -0
- package/dist/cli/init/directory-structure.d.ts.map +1 -0
- package/dist/cli/init/directory-structure.js +107 -0
- package/dist/cli/init/directory-structure.js.map +1 -0
- package/dist/cli/init/documentation.d.ts +14 -0
- package/dist/cli/init/documentation.d.ts.map +1 -0
- package/dist/cli/init/documentation.js +195 -0
- package/dist/cli/init/documentation.js.map +1 -0
- package/dist/cli/init/fleet-config.d.ts +34 -0
- package/dist/cli/init/fleet-config.d.ts.map +1 -0
- package/dist/cli/init/fleet-config.js +269 -0
- package/dist/cli/init/fleet-config.js.map +1 -0
- package/dist/cli/init/helpers.d.ts +6 -0
- package/dist/cli/init/helpers.d.ts.map +1 -0
- package/dist/cli/init/helpers.js +94 -0
- package/dist/cli/init/helpers.js.map +1 -0
- package/dist/cli/init/index.d.ts +32 -0
- package/dist/cli/init/index.d.ts.map +1 -0
- package/dist/cli/init/index.js +294 -0
- package/dist/cli/init/index.js.map +1 -0
- package/dist/cli/init/skills.d.ts +6 -0
- package/dist/cli/init/skills.d.ts.map +1 -0
- package/dist/cli/init/skills.js +138 -0
- package/dist/cli/init/skills.js.map +1 -0
- package/dist/cli/init/utils/file-utils.d.ts +74 -0
- package/dist/cli/init/utils/file-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/file-utils.js +187 -0
- package/dist/cli/init/utils/file-utils.js.map +1 -0
- package/dist/cli/init/utils/index.d.ts +18 -0
- package/dist/cli/init/utils/index.d.ts.map +1 -0
- package/dist/cli/init/utils/index.js +48 -0
- package/dist/cli/init/utils/index.js.map +1 -0
- package/dist/cli/init/utils/log-utils.d.ts +47 -0
- package/dist/cli/init/utils/log-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/log-utils.js +68 -0
- package/dist/cli/init/utils/log-utils.js.map +1 -0
- package/dist/cli/init/utils/path-utils.d.ts +91 -0
- package/dist/cli/init/utils/path-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/path-utils.js +208 -0
- package/dist/cli/init/utils/path-utils.js.map +1 -0
- package/dist/cli/init/utils/validation-utils.d.ts +44 -0
- package/dist/cli/init/utils/validation-utils.d.ts.map +1 -0
- package/dist/cli/init/utils/validation-utils.js +68 -0
- package/dist/cli/init/utils/validation-utils.js.map +1 -0
- package/dist/cli/init/utils.d.ts +183 -0
- package/dist/cli/init/utils.d.ts.map +1 -0
- package/dist/cli/init/utils.js +354 -0
- package/dist/cli/init/utils.js.map +1 -0
- package/dist/components/Dashboard/Dashboard.d.ts +4 -0
- package/dist/components/Dashboard/Dashboard.d.ts.map +1 -0
- package/dist/components/Dashboard/Dashboard.js +148 -0
- package/dist/components/Dashboard/Dashboard.js.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts +4 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.js +138 -0
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
- package/dist/constitution/evaluators/ast-evaluator.d.ts +42 -0
- package/dist/constitution/evaluators/ast-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/ast-evaluator.js +303 -0
- package/dist/constitution/evaluators/ast-evaluator.js.map +1 -0
- package/dist/constitution/evaluators/base.d.ts +144 -0
- package/dist/constitution/evaluators/base.d.ts.map +1 -0
- package/dist/constitution/evaluators/base.js +144 -0
- package/dist/constitution/evaluators/base.js.map +1 -0
- package/dist/constitution/evaluators/index.d.ts +19 -0
- package/dist/constitution/evaluators/index.d.ts.map +1 -0
- package/dist/constitution/evaluators/index.js +56 -0
- package/dist/constitution/evaluators/index.js.map +1 -0
- package/dist/constitution/evaluators/metric-evaluator.d.ts +59 -0
- package/dist/constitution/evaluators/metric-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/metric-evaluator.js +195 -0
- package/dist/constitution/evaluators/metric-evaluator.js.map +1 -0
- package/dist/constitution/evaluators/pattern-evaluator.d.ts +66 -0
- package/dist/constitution/evaluators/pattern-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/pattern-evaluator.js +221 -0
- package/dist/constitution/evaluators/pattern-evaluator.js.map +1 -0
- package/dist/constitution/evaluators/semantic-evaluator.d.ts +68 -0
- package/dist/constitution/evaluators/semantic-evaluator.d.ts.map +1 -0
- package/dist/constitution/evaluators/semantic-evaluator.js +250 -0
- package/dist/constitution/evaluators/semantic-evaluator.js.map +1 -0
- package/dist/constitution/index.d.ts +105 -0
- package/dist/constitution/index.d.ts.map +1 -0
- package/dist/constitution/index.js +207 -0
- package/dist/constitution/index.js.map +1 -0
- package/dist/constitution/loader.d.ts +141 -0
- package/dist/constitution/loader.d.ts.map +1 -0
- package/dist/constitution/loader.js +515 -0
- package/dist/constitution/loader.js.map +1 -0
- package/dist/constitution/schema.d.ts +409 -0
- package/dist/constitution/schema.d.ts.map +1 -0
- package/dist/constitution/schema.js +71 -0
- package/dist/constitution/schema.js.map +1 -0
- package/dist/contexts/DashboardContext.d.ts +41 -0
- package/dist/contexts/DashboardContext.d.ts.map +1 -0
- package/dist/contexts/DashboardContext.js +187 -0
- package/dist/contexts/DashboardContext.js.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts +77 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.js +270 -0
- package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +375 -131
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +12 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/hooks/useKeyboardShortcuts.d.ts +12 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.js +69 -0
- package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/mcp/handlers/memory/memory-backup.js +6 -6
- package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +4 -38
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +4 -4
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/persistence/event-store.d.ts +162 -0
- package/dist/persistence/event-store.d.ts.map +1 -0
- package/dist/persistence/event-store.js +315 -0
- package/dist/persistence/event-store.js.map +1 -0
- package/dist/persistence/index.d.ts +145 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +227 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/metrics-aggregator.d.ts +187 -0
- package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
- package/dist/persistence/metrics-aggregator.js +495 -0
- package/dist/persistence/metrics-aggregator.js.map +1 -0
- package/dist/persistence/reasoning-store.d.ts +178 -0
- package/dist/persistence/reasoning-store.d.ts.map +1 -0
- package/dist/persistence/reasoning-store.js +440 -0
- package/dist/persistence/reasoning-store.js.map +1 -0
- package/dist/persistence/schema.d.ts +181 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +186 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/telemetry/bootstrap.d.ts +67 -0
- package/dist/telemetry/bootstrap.d.ts.map +1 -0
- package/dist/telemetry/bootstrap.js +320 -0
- package/dist/telemetry/bootstrap.js.map +1 -0
- package/dist/telemetry/index.d.ts +16 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +84 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/instrumentation/agent.d.ts +158 -0
- package/dist/telemetry/instrumentation/agent.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/agent.js +372 -0
- package/dist/telemetry/instrumentation/agent.js.map +1 -0
- package/dist/telemetry/instrumentation/index.d.ts +24 -0
- package/dist/telemetry/instrumentation/index.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/index.js +54 -0
- package/dist/telemetry/instrumentation/index.js.map +1 -0
- package/dist/telemetry/instrumentation/memory.d.ts +313 -0
- package/dist/telemetry/instrumentation/memory.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/memory.js +552 -0
- package/dist/telemetry/instrumentation/memory.js.map +1 -0
- package/dist/telemetry/instrumentation/task.d.ts +146 -0
- package/dist/telemetry/instrumentation/task.d.ts.map +1 -0
- package/dist/telemetry/instrumentation/task.js +305 -0
- package/dist/telemetry/instrumentation/task.js.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts +109 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.js +213 -0
- package/dist/telemetry/metrics/agent-metrics.js.map +1 -0
- package/dist/telemetry/metrics/collectors/cost.d.ts +246 -0
- package/dist/telemetry/metrics/collectors/cost.d.ts.map +1 -0
- package/dist/telemetry/metrics/collectors/cost.js +526 -0
- package/dist/telemetry/metrics/collectors/cost.js.map +1 -0
- package/dist/telemetry/metrics/collectors/pricing-config.d.ts +87 -0
- package/dist/telemetry/metrics/collectors/pricing-config.d.ts.map +1 -0
- package/dist/telemetry/metrics/collectors/pricing-config.js +207 -0
- package/dist/telemetry/metrics/collectors/pricing-config.js.map +1 -0
- package/dist/telemetry/metrics/index.d.ts +54 -0
- package/dist/telemetry/metrics/index.d.ts.map +1 -0
- package/dist/telemetry/metrics/index.js +116 -0
- package/dist/telemetry/metrics/index.js.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.js +259 -0
- package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
- package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
- package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/system-metrics.js +380 -0
- package/dist/telemetry/metrics/system-metrics.js.map +1 -0
- package/dist/telemetry/types.d.ts +195 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +90 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/visualization/api/RestEndpoints.d.ts +136 -0
- package/dist/visualization/api/RestEndpoints.d.ts.map +1 -0
- package/dist/visualization/api/RestEndpoints.js +428 -0
- package/dist/visualization/api/RestEndpoints.js.map +1 -0
- package/dist/visualization/api/WebSocketServer.d.ts +165 -0
- package/dist/visualization/api/WebSocketServer.d.ts.map +1 -0
- package/dist/visualization/api/WebSocketServer.js +518 -0
- package/dist/visualization/api/WebSocketServer.js.map +1 -0
- package/dist/visualization/core/DataTransformer.d.ts +89 -0
- package/dist/visualization/core/DataTransformer.d.ts.map +1 -0
- package/dist/visualization/core/DataTransformer.js +478 -0
- package/dist/visualization/core/DataTransformer.js.map +1 -0
- package/dist/visualization/index.d.ts +92 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +121 -0
- package/dist/visualization/index.js.map +1 -0
- package/dist/visualization/types.d.ts +148 -0
- package/dist/visualization/types.d.ts.map +1 -0
- package/dist/visualization/types.js +7 -0
- package/dist/visualization/types.js.map +1 -0
- package/dist/voting/consensus.d.ts +87 -0
- package/dist/voting/consensus.d.ts.map +1 -0
- package/dist/voting/consensus.js +568 -0
- package/dist/voting/consensus.js.map +1 -0
- package/dist/voting/index.d.ts +12 -0
- package/dist/voting/index.d.ts.map +1 -0
- package/dist/voting/index.js +36 -0
- package/dist/voting/index.js.map +1 -0
- package/dist/voting/orchestrator.d.ts +65 -0
- package/dist/voting/orchestrator.d.ts.map +1 -0
- package/dist/voting/orchestrator.js +306 -0
- package/dist/voting/orchestrator.js.map +1 -0
- package/dist/voting/panel-assembly.d.ts +54 -0
- package/dist/voting/panel-assembly.d.ts.map +1 -0
- package/dist/voting/panel-assembly.js +192 -0
- package/dist/voting/panel-assembly.js.map +1 -0
- package/dist/voting/protocol.d.ts +119 -0
- package/dist/voting/protocol.d.ts.map +1 -0
- package/dist/voting/protocol.js +18 -0
- package/dist/voting/protocol.js.map +1 -0
- package/dist/voting/types.d.ts +125 -0
- package/dist/voting/types.d.ts.map +1 -0
- package/dist/voting/types.js +7 -0
- package/dist/voting/types.js.map +1 -0
- package/package.json +43 -2
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.useDashboard = exports.DashboardProvider = void 0;
|
|
37
|
+
const react_1 = __importStar(require("react"));
|
|
38
|
+
const WebSocketClient_1 = require("../services/websocket/WebSocketClient");
|
|
39
|
+
const DashboardContext = (0, react_1.createContext)(undefined);
|
|
40
|
+
const DEFAULT_FILTERS = {
|
|
41
|
+
sessionId: null,
|
|
42
|
+
timeRange: {
|
|
43
|
+
start: null,
|
|
44
|
+
end: null,
|
|
45
|
+
},
|
|
46
|
+
agents: [],
|
|
47
|
+
searchTerm: '',
|
|
48
|
+
};
|
|
49
|
+
const DashboardProvider = ({ children }) => {
|
|
50
|
+
const [filters, setFilters] = (0, react_1.useState)(DEFAULT_FILTERS);
|
|
51
|
+
const [wsClient, setWsClient] = (0, react_1.useState)(null);
|
|
52
|
+
const [wsConnected, setWsConnected] = (0, react_1.useState)(false);
|
|
53
|
+
const [wsError, setWsError] = (0, react_1.useState)(null);
|
|
54
|
+
const [notifications, setNotifications] = (0, react_1.useState)([]);
|
|
55
|
+
const [activeView, setActiveView] = (0, react_1.useState)('overview');
|
|
56
|
+
// Initialize WebSocket connection
|
|
57
|
+
(0, react_1.useEffect)(() => {
|
|
58
|
+
const client = new WebSocketClient_1.WebSocketClient({
|
|
59
|
+
url: process.env.REACT_APP_WS_URL || 'ws://localhost:8081',
|
|
60
|
+
reconnectInterval: 3000,
|
|
61
|
+
maxReconnectAttempts: 5,
|
|
62
|
+
});
|
|
63
|
+
client.on('connect', () => {
|
|
64
|
+
setWsConnected(true);
|
|
65
|
+
setWsError(null);
|
|
66
|
+
addNotification({
|
|
67
|
+
type: 'success',
|
|
68
|
+
title: 'Connected',
|
|
69
|
+
message: 'WebSocket connection established',
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
client.on('disconnect', () => {
|
|
73
|
+
setWsConnected(false);
|
|
74
|
+
addNotification({
|
|
75
|
+
type: 'warning',
|
|
76
|
+
title: 'Disconnected',
|
|
77
|
+
message: 'WebSocket connection lost',
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
client.on('error', (error) => {
|
|
81
|
+
setWsError(error.message);
|
|
82
|
+
addNotification({
|
|
83
|
+
type: 'error',
|
|
84
|
+
title: 'Connection Error',
|
|
85
|
+
message: error.message,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
client.on('event', (event) => {
|
|
89
|
+
// Notify on important events
|
|
90
|
+
if (event.metadata?.severity === 'high' || event.metadata?.quality_gate_failed) {
|
|
91
|
+
addNotification({
|
|
92
|
+
type: event.metadata.quality_gate_failed ? 'error' : 'warning',
|
|
93
|
+
title: `Event: ${event.type}`,
|
|
94
|
+
message: event.metadata.quality_gate_failed
|
|
95
|
+
? `Quality gate violation: ${event.metadata.quality_gate_name}`
|
|
96
|
+
: event.description || 'New event received',
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
client.connect();
|
|
101
|
+
setWsClient(client);
|
|
102
|
+
return () => {
|
|
103
|
+
client.disconnect();
|
|
104
|
+
};
|
|
105
|
+
}, []);
|
|
106
|
+
const updateFilters = (0, react_1.useCallback)((newFilters) => {
|
|
107
|
+
setFilters((prev) => ({ ...prev, ...newFilters }));
|
|
108
|
+
}, []);
|
|
109
|
+
const resetFilters = (0, react_1.useCallback)(() => {
|
|
110
|
+
setFilters(DEFAULT_FILTERS);
|
|
111
|
+
}, []);
|
|
112
|
+
const addNotification = (0, react_1.useCallback)((notification) => {
|
|
113
|
+
const newNotification = {
|
|
114
|
+
...notification,
|
|
115
|
+
id: `notif-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
|
|
116
|
+
timestamp: new Date(),
|
|
117
|
+
read: false,
|
|
118
|
+
};
|
|
119
|
+
setNotifications((prev) => [newNotification, ...prev].slice(0, 50)); // Keep last 50
|
|
120
|
+
}, []);
|
|
121
|
+
const markNotificationRead = (0, react_1.useCallback)((id) => {
|
|
122
|
+
setNotifications((prev) => prev.map((notif) => (notif.id === id ? { ...notif, read: true } : notif)));
|
|
123
|
+
}, []);
|
|
124
|
+
const clearNotifications = (0, react_1.useCallback)(() => {
|
|
125
|
+
setNotifications([]);
|
|
126
|
+
}, []);
|
|
127
|
+
const exportData = (0, react_1.useCallback)(() => {
|
|
128
|
+
// Export all data to JSON
|
|
129
|
+
const data = {
|
|
130
|
+
filters,
|
|
131
|
+
notifications,
|
|
132
|
+
timestamp: new Date().toISOString(),
|
|
133
|
+
};
|
|
134
|
+
const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });
|
|
135
|
+
const url = URL.createObjectURL(blob);
|
|
136
|
+
const a = document.createElement('a');
|
|
137
|
+
a.href = url;
|
|
138
|
+
a.download = `dashboard-export-${new Date().toISOString()}.json`;
|
|
139
|
+
document.body.appendChild(a);
|
|
140
|
+
a.click();
|
|
141
|
+
document.body.removeChild(a);
|
|
142
|
+
URL.revokeObjectURL(url);
|
|
143
|
+
addNotification({
|
|
144
|
+
type: 'success',
|
|
145
|
+
title: 'Export Complete',
|
|
146
|
+
message: 'Dashboard data exported successfully',
|
|
147
|
+
});
|
|
148
|
+
}, [filters, notifications, addNotification]);
|
|
149
|
+
const refreshData = (0, react_1.useCallback)(() => {
|
|
150
|
+
// Trigger refresh event
|
|
151
|
+
if (wsClient && wsConnected) {
|
|
152
|
+
wsClient.send({ type: 'refresh', timestamp: new Date().toISOString() });
|
|
153
|
+
}
|
|
154
|
+
addNotification({
|
|
155
|
+
type: 'info',
|
|
156
|
+
title: 'Refreshing',
|
|
157
|
+
message: 'Data refresh requested',
|
|
158
|
+
});
|
|
159
|
+
}, [wsClient, wsConnected, addNotification]);
|
|
160
|
+
const value = {
|
|
161
|
+
filters,
|
|
162
|
+
updateFilters,
|
|
163
|
+
resetFilters,
|
|
164
|
+
wsClient,
|
|
165
|
+
wsConnected,
|
|
166
|
+
wsError,
|
|
167
|
+
notifications,
|
|
168
|
+
addNotification,
|
|
169
|
+
markNotificationRead,
|
|
170
|
+
clearNotifications,
|
|
171
|
+
activeView,
|
|
172
|
+
setActiveView,
|
|
173
|
+
exportData,
|
|
174
|
+
refreshData,
|
|
175
|
+
};
|
|
176
|
+
return react_1.default.createElement(DashboardContext.Provider, { value: value }, children);
|
|
177
|
+
};
|
|
178
|
+
exports.DashboardProvider = DashboardProvider;
|
|
179
|
+
const useDashboard = () => {
|
|
180
|
+
const context = (0, react_1.useContext)(DashboardContext);
|
|
181
|
+
if (context === undefined) {
|
|
182
|
+
throw new Error('useDashboard must be used within a DashboardProvider');
|
|
183
|
+
}
|
|
184
|
+
return context;
|
|
185
|
+
};
|
|
186
|
+
exports.useDashboard = useDashboard;
|
|
187
|
+
//# sourceMappingURL=DashboardContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardContext.js","sourceRoot":"","sources":["../../src/contexts/DashboardContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryManagerFactory - Singleton Pattern for Shared Memory Management
|
|
3
|
+
*
|
|
4
|
+
* Resolves the persistence issue where multiple SwarmMemoryManager instances
|
|
5
|
+
* cause data fragmentation - data written to one instance is not visible to others.
|
|
6
|
+
*
|
|
7
|
+
* Key Issues Fixed:
|
|
8
|
+
* 1. Multiple isolated instances (MCP server, AgentRegistry, Phase2Tools each created their own)
|
|
9
|
+
* 2. sql.js persistence model requires explicit save()/close() calls
|
|
10
|
+
* 3. Ensures all components share the same database connection
|
|
11
|
+
*
|
|
12
|
+
* @module MemoryManagerFactory
|
|
13
|
+
* @version 1.0.0
|
|
14
|
+
*/
|
|
15
|
+
import { SwarmMemoryManager } from './SwarmMemoryManager.js';
|
|
16
|
+
/**
|
|
17
|
+
* Resolve database path - ensures we use an absolute path in user's project
|
|
18
|
+
*
|
|
19
|
+
* Database should be in the USER'S project directory (process.cwd()),
|
|
20
|
+
* NOT in the package installation directory.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveDbPath(inputPath?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Ensure the database directory exists
|
|
25
|
+
*/
|
|
26
|
+
export declare function ensureDbDirectoryExists(dbPath: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get the shared SwarmMemoryManager singleton
|
|
29
|
+
*
|
|
30
|
+
* Ensures all components use the same database connection for consistent
|
|
31
|
+
* persistence across MCP server, AgentRegistry, handlers, and agents.
|
|
32
|
+
*
|
|
33
|
+
* @param dbPath Optional database path (relative paths resolved from cwd)
|
|
34
|
+
* @returns Shared SwarmMemoryManager instance
|
|
35
|
+
*/
|
|
36
|
+
export declare function getSharedMemoryManager(dbPath?: string): SwarmMemoryManager;
|
|
37
|
+
/**
|
|
38
|
+
* Initialize the shared memory manager asynchronously
|
|
39
|
+
*
|
|
40
|
+
* This method ensures only ONE initialization happens even if called multiple times.
|
|
41
|
+
* All callers will receive the same initialized instance.
|
|
42
|
+
*
|
|
43
|
+
* @param dbPath Optional database path
|
|
44
|
+
* @returns Promise that resolves to the initialized SwarmMemoryManager
|
|
45
|
+
*/
|
|
46
|
+
export declare function initializeSharedMemoryManager(dbPath?: string): Promise<SwarmMemoryManager>;
|
|
47
|
+
/**
|
|
48
|
+
* Check if shared memory manager is initialized
|
|
49
|
+
*/
|
|
50
|
+
export declare function hasSharedMemoryManager(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Get the path of the current shared memory manager
|
|
53
|
+
*/
|
|
54
|
+
export declare function getSharedMemoryManagerPath(): string | null;
|
|
55
|
+
/**
|
|
56
|
+
* Reset the shared memory manager singleton
|
|
57
|
+
*
|
|
58
|
+
* Use with caution - this should only be called during testing or
|
|
59
|
+
* when explicitly changing database paths.
|
|
60
|
+
*/
|
|
61
|
+
export declare function resetSharedMemoryManager(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Get database path info for debugging
|
|
64
|
+
*/
|
|
65
|
+
export declare function getDbPathInfo(): {
|
|
66
|
+
defaultPath: string;
|
|
67
|
+
currentSharedPath: string | null;
|
|
68
|
+
processCwd: string;
|
|
69
|
+
envPath: string | undefined;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Setup process exit handlers to ensure database is properly closed
|
|
73
|
+
*
|
|
74
|
+
* This is critical for sql.js which only persists to disk on close()
|
|
75
|
+
*/
|
|
76
|
+
export declare function setupExitHandlers(): void;
|
|
77
|
+
//# sourceMappingURL=MemoryManagerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryManagerFactory.d.ts","sourceRoot":"","sources":["../../../src/core/memory/MemoryManagerFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BxD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAW5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CA0B1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8BhG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAE1D;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAY9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAOA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CA2CxC"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MemoryManagerFactory - Singleton Pattern for Shared Memory Management
|
|
4
|
+
*
|
|
5
|
+
* Resolves the persistence issue where multiple SwarmMemoryManager instances
|
|
6
|
+
* cause data fragmentation - data written to one instance is not visible to others.
|
|
7
|
+
*
|
|
8
|
+
* Key Issues Fixed:
|
|
9
|
+
* 1. Multiple isolated instances (MCP server, AgentRegistry, Phase2Tools each created their own)
|
|
10
|
+
* 2. sql.js persistence model requires explicit save()/close() calls
|
|
11
|
+
* 3. Ensures all components share the same database connection
|
|
12
|
+
*
|
|
13
|
+
* @module MemoryManagerFactory
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
*/
|
|
16
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(o, k2, desc);
|
|
23
|
+
}) : (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
o[k2] = m[k];
|
|
26
|
+
}));
|
|
27
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
+
}) : function(o, v) {
|
|
30
|
+
o["default"] = v;
|
|
31
|
+
});
|
|
32
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
33
|
+
var ownKeys = function(o) {
|
|
34
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
35
|
+
var ar = [];
|
|
36
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
37
|
+
return ar;
|
|
38
|
+
};
|
|
39
|
+
return ownKeys(o);
|
|
40
|
+
};
|
|
41
|
+
return function (mod) {
|
|
42
|
+
if (mod && mod.__esModule) return mod;
|
|
43
|
+
var result = {};
|
|
44
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
45
|
+
__setModuleDefault(result, mod);
|
|
46
|
+
return result;
|
|
47
|
+
};
|
|
48
|
+
})();
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.resolveDbPath = resolveDbPath;
|
|
51
|
+
exports.ensureDbDirectoryExists = ensureDbDirectoryExists;
|
|
52
|
+
exports.getSharedMemoryManager = getSharedMemoryManager;
|
|
53
|
+
exports.initializeSharedMemoryManager = initializeSharedMemoryManager;
|
|
54
|
+
exports.hasSharedMemoryManager = hasSharedMemoryManager;
|
|
55
|
+
exports.getSharedMemoryManagerPath = getSharedMemoryManagerPath;
|
|
56
|
+
exports.resetSharedMemoryManager = resetSharedMemoryManager;
|
|
57
|
+
exports.getDbPathInfo = getDbPathInfo;
|
|
58
|
+
exports.setupExitHandlers = setupExitHandlers;
|
|
59
|
+
const path = __importStar(require("path"));
|
|
60
|
+
const fs = __importStar(require("fs-extra"));
|
|
61
|
+
const SwarmMemoryManager_js_1 = require("./SwarmMemoryManager.js");
|
|
62
|
+
// Singleton instances
|
|
63
|
+
let sharedMemoryManager = null;
|
|
64
|
+
let sharedMemoryManagerPath = null;
|
|
65
|
+
let initializationPromise = null;
|
|
66
|
+
/**
|
|
67
|
+
* Resolve database path - ensures we use an absolute path in user's project
|
|
68
|
+
*
|
|
69
|
+
* Database should be in the USER'S project directory (process.cwd()),
|
|
70
|
+
* NOT in the package installation directory.
|
|
71
|
+
*/
|
|
72
|
+
function resolveDbPath(inputPath) {
|
|
73
|
+
// If no path provided, use default in user's project
|
|
74
|
+
if (!inputPath) {
|
|
75
|
+
return path.join(process.cwd(), '.agentic-qe', 'memory.db');
|
|
76
|
+
}
|
|
77
|
+
// Special case: in-memory database
|
|
78
|
+
if (inputPath === ':memory:') {
|
|
79
|
+
return inputPath;
|
|
80
|
+
}
|
|
81
|
+
// Check environment variable override
|
|
82
|
+
const envPath = process.env.AQE_DB_PATH;
|
|
83
|
+
if (envPath) {
|
|
84
|
+
// If absolute, use as-is
|
|
85
|
+
if (path.isAbsolute(envPath)) {
|
|
86
|
+
return envPath;
|
|
87
|
+
}
|
|
88
|
+
// If relative, resolve from cwd
|
|
89
|
+
return path.join(process.cwd(), envPath);
|
|
90
|
+
}
|
|
91
|
+
// If already absolute, return as-is
|
|
92
|
+
if (path.isAbsolute(inputPath)) {
|
|
93
|
+
return inputPath;
|
|
94
|
+
}
|
|
95
|
+
// Convert relative path to absolute using cwd (user's project)
|
|
96
|
+
return path.join(process.cwd(), inputPath);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Ensure the database directory exists
|
|
100
|
+
*/
|
|
101
|
+
function ensureDbDirectoryExists(dbPath) {
|
|
102
|
+
if (dbPath === ':memory:') {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const dbDir = path.dirname(dbPath);
|
|
106
|
+
if (!fs.existsSync(dbDir)) {
|
|
107
|
+
fs.mkdirSync(dbDir, { recursive: true });
|
|
108
|
+
console.log(`[MemoryManagerFactory] Created database directory: ${dbDir}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the shared SwarmMemoryManager singleton
|
|
113
|
+
*
|
|
114
|
+
* Ensures all components use the same database connection for consistent
|
|
115
|
+
* persistence across MCP server, AgentRegistry, handlers, and agents.
|
|
116
|
+
*
|
|
117
|
+
* @param dbPath Optional database path (relative paths resolved from cwd)
|
|
118
|
+
* @returns Shared SwarmMemoryManager instance
|
|
119
|
+
*/
|
|
120
|
+
function getSharedMemoryManager(dbPath) {
|
|
121
|
+
const resolvedPath = resolveDbPath(dbPath);
|
|
122
|
+
// If singleton exists with same path, return it
|
|
123
|
+
if (sharedMemoryManager && sharedMemoryManagerPath === resolvedPath) {
|
|
124
|
+
return sharedMemoryManager;
|
|
125
|
+
}
|
|
126
|
+
// If singleton exists with different path, warn but return existing
|
|
127
|
+
// (prevents multiple database connections causing fragmentation)
|
|
128
|
+
if (sharedMemoryManager && sharedMemoryManagerPath !== resolvedPath) {
|
|
129
|
+
console.warn(`[MemoryManagerFactory] Memory manager already initialized with path: ${sharedMemoryManagerPath}. ` +
|
|
130
|
+
`Ignoring new path: ${resolvedPath}. Use resetSharedMemoryManager() to change path.`);
|
|
131
|
+
return sharedMemoryManager;
|
|
132
|
+
}
|
|
133
|
+
// Create new singleton
|
|
134
|
+
ensureDbDirectoryExists(resolvedPath);
|
|
135
|
+
console.log(`[MemoryManagerFactory] Creating shared memory manager at: ${resolvedPath}`);
|
|
136
|
+
sharedMemoryManager = new SwarmMemoryManager_js_1.SwarmMemoryManager(resolvedPath);
|
|
137
|
+
sharedMemoryManagerPath = resolvedPath;
|
|
138
|
+
return sharedMemoryManager;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Initialize the shared memory manager asynchronously
|
|
142
|
+
*
|
|
143
|
+
* This method ensures only ONE initialization happens even if called multiple times.
|
|
144
|
+
* All callers will receive the same initialized instance.
|
|
145
|
+
*
|
|
146
|
+
* @param dbPath Optional database path
|
|
147
|
+
* @returns Promise that resolves to the initialized SwarmMemoryManager
|
|
148
|
+
*/
|
|
149
|
+
async function initializeSharedMemoryManager(dbPath) {
|
|
150
|
+
// If already initializing, return the existing promise
|
|
151
|
+
if (initializationPromise) {
|
|
152
|
+
return initializationPromise;
|
|
153
|
+
}
|
|
154
|
+
// If already initialized, return the instance
|
|
155
|
+
if (sharedMemoryManager) {
|
|
156
|
+
const resolvedPath = resolveDbPath(dbPath);
|
|
157
|
+
if (sharedMemoryManagerPath === resolvedPath) {
|
|
158
|
+
return sharedMemoryManager;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Start initialization
|
|
162
|
+
initializationPromise = (async () => {
|
|
163
|
+
const manager = getSharedMemoryManager(dbPath);
|
|
164
|
+
await manager.initialize();
|
|
165
|
+
console.log(`[MemoryManagerFactory] Shared memory manager initialized at: ${sharedMemoryManagerPath}`);
|
|
166
|
+
return manager;
|
|
167
|
+
})();
|
|
168
|
+
try {
|
|
169
|
+
const result = await initializationPromise;
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
// Reset on failure so it can be retried
|
|
174
|
+
initializationPromise = null;
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check if shared memory manager is initialized
|
|
180
|
+
*/
|
|
181
|
+
function hasSharedMemoryManager() {
|
|
182
|
+
return sharedMemoryManager !== null;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get the path of the current shared memory manager
|
|
186
|
+
*/
|
|
187
|
+
function getSharedMemoryManagerPath() {
|
|
188
|
+
return sharedMemoryManagerPath;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Reset the shared memory manager singleton
|
|
192
|
+
*
|
|
193
|
+
* Use with caution - this should only be called during testing or
|
|
194
|
+
* when explicitly changing database paths.
|
|
195
|
+
*/
|
|
196
|
+
async function resetSharedMemoryManager() {
|
|
197
|
+
if (sharedMemoryManager) {
|
|
198
|
+
try {
|
|
199
|
+
await sharedMemoryManager.close();
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.warn('[MemoryManagerFactory] Error closing memory manager:', error);
|
|
203
|
+
}
|
|
204
|
+
sharedMemoryManager = null;
|
|
205
|
+
sharedMemoryManagerPath = null;
|
|
206
|
+
initializationPromise = null;
|
|
207
|
+
console.log('[MemoryManagerFactory] Shared memory manager reset');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get database path info for debugging
|
|
212
|
+
*/
|
|
213
|
+
function getDbPathInfo() {
|
|
214
|
+
return {
|
|
215
|
+
defaultPath: resolveDbPath(),
|
|
216
|
+
currentSharedPath: sharedMemoryManagerPath,
|
|
217
|
+
processCwd: process.cwd(),
|
|
218
|
+
envPath: process.env.AQE_DB_PATH
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Setup process exit handlers to ensure database is properly closed
|
|
223
|
+
*
|
|
224
|
+
* This is critical for sql.js which only persists to disk on close()
|
|
225
|
+
*/
|
|
226
|
+
function setupExitHandlers() {
|
|
227
|
+
const cleanup = async () => {
|
|
228
|
+
if (sharedMemoryManager) {
|
|
229
|
+
console.log('[MemoryManagerFactory] Closing database on process exit...');
|
|
230
|
+
try {
|
|
231
|
+
await sharedMemoryManager.close();
|
|
232
|
+
console.log('[MemoryManagerFactory] Database closed successfully');
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
console.error('[MemoryManagerFactory] Error closing database:', error);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
// Handle normal exit
|
|
240
|
+
process.on('exit', () => {
|
|
241
|
+
// Can't use async here, but close() should be synchronous for better-sqlite3
|
|
242
|
+
if (sharedMemoryManager) {
|
|
243
|
+
try {
|
|
244
|
+
// SwarmMemoryManager.close() is async but better-sqlite3 close is sync
|
|
245
|
+
sharedMemoryManager.db?.close?.();
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
console.error('[MemoryManagerFactory] Error on exit:', error);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
// Handle termination signals
|
|
253
|
+
process.on('SIGINT', async () => {
|
|
254
|
+
await cleanup();
|
|
255
|
+
process.exit(0);
|
|
256
|
+
});
|
|
257
|
+
process.on('SIGTERM', async () => {
|
|
258
|
+
await cleanup();
|
|
259
|
+
process.exit(0);
|
|
260
|
+
});
|
|
261
|
+
// Handle uncaught exceptions
|
|
262
|
+
process.on('uncaughtException', async (error) => {
|
|
263
|
+
console.error('[MemoryManagerFactory] Uncaught exception:', error);
|
|
264
|
+
await cleanup();
|
|
265
|
+
process.exit(1);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
// Setup exit handlers when module is loaded
|
|
269
|
+
setupExitHandlers();
|
|
270
|
+
//# sourceMappingURL=MemoryManagerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryManagerFactory.js","sourceRoot":"","sources":["../../../src/core/memory/MemoryManagerFactory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBH,sCA6BC;AAKD,0DAWC;AAWD,wDA0BC;AAWD,sEA8BC;AAKD,wDAEC;AAKD,gEAEC;AAQD,4DAYC;AAKD,sCAYC;AAOD,8CA2CC;AA/OD,2CAA6B;AAC7B,6CAA+B;AAC/B,mEAA6D;AAE7D,sBAAsB;AACtB,IAAI,mBAAmB,GAA8B,IAAI,CAAC;AAC1D,IAAI,uBAAuB,GAAkB,IAAI,CAAC;AAClD,IAAI,qBAAqB,GAAuC,IAAI,CAAC;AAErE;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAkB;IAC9C,qDAAqD;IACrD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,mCAAmC;IACnC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,sCAAsC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC;QACZ,yBAAyB;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,gCAAgC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,oCAAoC;IACpC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,+DAA+D;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAAc;IACpD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,MAAe;IACpD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3C,gDAAgD;IAChD,IAAI,mBAAmB,IAAI,uBAAuB,KAAK,YAAY,EAAE,CAAC;QACpE,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,oEAAoE;IACpE,iEAAiE;IACjE,IAAI,mBAAmB,IAAI,uBAAuB,KAAK,YAAY,EAAE,CAAC;QACpE,OAAO,CAAC,IAAI,CACV,wEAAwE,uBAAuB,IAAI;YACnG,sBAAsB,YAAY,kDAAkD,CACrF,CAAC;QACF,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,uBAAuB;IACvB,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,6DAA6D,YAAY,EAAE,CAAC,CAAC;IACzF,mBAAmB,GAAG,IAAI,0CAAkB,CAAC,YAAY,CAAC,CAAC;IAC3D,uBAAuB,GAAG,YAAY,CAAC;IAEvC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,6BAA6B,CAAC,MAAe;IACjE,uDAAuD;IACvD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,8CAA8C;IAC9C,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,uBAAuB,KAAK,YAAY,EAAE,CAAC;YAC7C,OAAO,mBAAmB,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,qBAAqB,GAAG,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,gEAAgE,uBAAuB,EAAE,CAAC,CAAC;QACvG,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wCAAwC;QACxC,qBAAqB,GAAG,IAAI,CAAC;QAC7B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO,mBAAmB,KAAK,IAAI,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B;IACxC,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,wBAAwB;IAC5C,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,mBAAmB,GAAG,IAAI,CAAC;QAC3B,uBAAuB,GAAG,IAAI,CAAC;QAC/B,qBAAqB,GAAG,IAAI,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAM3B,OAAO;QACL,WAAW,EAAE,aAAa,EAAE;QAC5B,iBAAiB,EAAE,uBAAuB;QAC1C,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;QACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,qBAAqB;IACrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,6EAA6E;QAC7E,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,uEAAuE;gBACtE,mBAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9C,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4CAA4C;AAC5C,iBAAiB,EAAE,CAAC"}
|
|
@@ -180,6 +180,7 @@ export declare class SwarmMemoryManager {
|
|
|
180
180
|
private initialized;
|
|
181
181
|
private accessControl;
|
|
182
182
|
private aclCache;
|
|
183
|
+
private patternCache;
|
|
183
184
|
private agentDBManager;
|
|
184
185
|
private lastModifiedTimestamps;
|
|
185
186
|
private readonly TTL_POLICY;
|
|
@@ -188,6 +189,16 @@ export declare class SwarmMemoryManager {
|
|
|
188
189
|
private queryOne;
|
|
189
190
|
private queryAll;
|
|
190
191
|
initialize(): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Store a key-value pair in memory with OpenTelemetry instrumentation
|
|
194
|
+
*
|
|
195
|
+
* Automatically instruments the memory store operation with distributed tracing.
|
|
196
|
+
* Records namespace, key, value size, TTL, and operation performance metrics.
|
|
197
|
+
*
|
|
198
|
+
* @param key - Memory key
|
|
199
|
+
* @param value - Value to store (will be JSON serialized)
|
|
200
|
+
* @param options - Store options including partition, TTL, access control
|
|
201
|
+
*/
|
|
191
202
|
store(key: string, value: any, options?: StoreOptions): Promise<void>;
|
|
192
203
|
/**
|
|
193
204
|
* Alias for store() method to maintain compatibility with MemoryStore interface
|
|
@@ -199,8 +210,38 @@ export declare class SwarmMemoryManager {
|
|
|
199
210
|
* Supports both options object and partition string
|
|
200
211
|
*/
|
|
201
212
|
get(key: string, options?: RetrieveOptions | string): Promise<any>;
|
|
213
|
+
/**
|
|
214
|
+
* Retrieve a value from memory with OpenTelemetry instrumentation
|
|
215
|
+
*
|
|
216
|
+
* Automatically instruments the memory retrieve operation with distributed tracing.
|
|
217
|
+
* Records namespace, key, whether the value was found, value size, and performance metrics.
|
|
218
|
+
*
|
|
219
|
+
* @param key - Memory key
|
|
220
|
+
* @param options - Retrieve options including partition, agentId for access control
|
|
221
|
+
* @returns Retrieved value or null if not found
|
|
222
|
+
*/
|
|
202
223
|
retrieve(key: string, options?: RetrieveOptions): Promise<any>;
|
|
224
|
+
/**
|
|
225
|
+
* Query/search memory entries by pattern with OpenTelemetry instrumentation
|
|
226
|
+
*
|
|
227
|
+
* Automatically instruments the memory search operation with distributed tracing.
|
|
228
|
+
* Records namespace, search pattern, result count, and performance metrics.
|
|
229
|
+
*
|
|
230
|
+
* @param pattern - SQL LIKE pattern for key matching
|
|
231
|
+
* @param options - Retrieve options including partition, agentId for access control
|
|
232
|
+
* @returns Array of matching memory entries
|
|
233
|
+
*/
|
|
203
234
|
query(pattern: string, options?: RetrieveOptions): Promise<MemoryEntry[]>;
|
|
235
|
+
/**
|
|
236
|
+
* Delete a key from memory with OpenTelemetry instrumentation
|
|
237
|
+
*
|
|
238
|
+
* Automatically instruments the memory delete operation with distributed tracing.
|
|
239
|
+
* Records namespace, key, and operation performance metrics.
|
|
240
|
+
*
|
|
241
|
+
* @param key - Memory key to delete
|
|
242
|
+
* @param partition - Memory partition (namespace)
|
|
243
|
+
* @param options - Delete options including agentId for access control
|
|
244
|
+
*/
|
|
204
245
|
delete(key: string, partition?: string, options?: DeleteOptions): Promise<void>;
|
|
205
246
|
clear(partition?: string): Promise<void>;
|
|
206
247
|
postHint(hint: {
|
|
@@ -239,6 +280,11 @@ export declare class SwarmMemoryManager {
|
|
|
239
280
|
storePattern(pattern: Pattern): Promise<string>;
|
|
240
281
|
getPattern(patternName: string): Promise<Pattern>;
|
|
241
282
|
incrementPatternUsage(patternName: string): Promise<void>;
|
|
283
|
+
/**
|
|
284
|
+
* Invalidate pattern cache for a specific agent
|
|
285
|
+
* Call this after any pattern mutation to maintain cache coherence
|
|
286
|
+
*/
|
|
287
|
+
private invalidatePatternCacheForAgent;
|
|
242
288
|
queryPatternsByConfidence(threshold: number): Promise<Pattern[]>;
|
|
243
289
|
/**
|
|
244
290
|
* Query patterns by agent ID and minimum confidence
|
|
@@ -247,7 +293,19 @@ export declare class SwarmMemoryManager {
|
|
|
247
293
|
* @param minConfidence Minimum confidence threshold (default: 0)
|
|
248
294
|
* @returns Array of patterns belonging to the agent
|
|
249
295
|
*/
|
|
296
|
+
/**
|
|
297
|
+
* Escape special LIKE pattern characters to prevent SQL injection
|
|
298
|
+
*/
|
|
299
|
+
private escapeLikePattern;
|
|
250
300
|
queryPatternsByAgent(agentId: string, minConfidence?: number): Promise<Pattern[]>;
|
|
301
|
+
/**
|
|
302
|
+
* Get pattern cache statistics for monitoring
|
|
303
|
+
*/
|
|
304
|
+
getPatternCacheStats(): import("./PatternCache").CacheStats;
|
|
305
|
+
/**
|
|
306
|
+
* Clear pattern cache (useful after bulk updates)
|
|
307
|
+
*/
|
|
308
|
+
clearPatternCache(): void;
|
|
251
309
|
createConsensusProposal(proposal: ConsensusProposal): Promise<void>;
|
|
252
310
|
getConsensusProposal(id: string): Promise<ConsensusProposal>;
|
|
253
311
|
voteOnConsensus(proposalId: string, agentId: string): Promise<boolean>;
|