snow-flow 1.1.76 → 1.1.78
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-flow/queen/queen-memory.db +0 -0
- package/CLAUDE.md +34 -5
- package/README.md +256 -384
- package/dist/agents/base-agent.d.ts +92 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +228 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/coordinator.d.ts +200 -0
- package/dist/agents/coordinator.d.ts.map +1 -0
- package/dist/agents/coordinator.js +775 -0
- package/dist/agents/coordinator.js.map +1 -0
- package/dist/agents/flow-builder-agent.d.ts +18 -0
- package/dist/agents/flow-builder-agent.d.ts.map +1 -0
- package/dist/agents/flow-builder-agent.js +536 -0
- package/dist/agents/flow-builder-agent.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +61 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/queen-agent-example.d.ts +23 -0
- package/dist/agents/queen-agent-example.d.ts.map +1 -0
- package/dist/agents/queen-agent-example.js +241 -0
- package/dist/agents/queen-agent-example.js.map +1 -0
- package/dist/agents/queen-agent.d.ts +180 -0
- package/dist/agents/queen-agent.d.ts.map +1 -0
- package/dist/agents/queen-agent.js +909 -0
- package/dist/agents/queen-agent.js.map +1 -0
- package/dist/agents/queen-agent.test.d.ts +6 -0
- package/dist/agents/queen-agent.test.d.ts.map +1 -0
- package/dist/agents/queen-agent.test.js.map +1 -0
- package/dist/agents/script-writer-agent.d.ts +22 -0
- package/dist/agents/script-writer-agent.d.ts.map +1 -0
- package/dist/agents/script-writer-agent.js +695 -0
- package/dist/agents/script-writer-agent.js.map +1 -0
- package/dist/agents/security-agent.d.ts +23 -0
- package/dist/agents/security-agent.d.ts.map +1 -0
- package/dist/agents/security-agent.js +619 -0
- package/dist/agents/security-agent.js.map +1 -0
- package/dist/agents/test-agent.d.ts +26 -0
- package/dist/agents/test-agent.d.ts.map +1 -0
- package/dist/agents/test-agent.js +735 -0
- package/dist/agents/test-agent.js.map +1 -0
- package/dist/agents/test-agents.d.ts +7 -0
- package/dist/agents/test-agents.d.ts.map +1 -0
- package/dist/agents/test-agents.js +65 -0
- package/dist/agents/test-agents.js.map +1 -0
- package/dist/agents/widget-creator-agent.d.ts +18 -0
- package/dist/agents/widget-creator-agent.d.ts.map +1 -0
- package/dist/agents/widget-creator-agent.js +440 -0
- package/dist/agents/widget-creator-agent.js.map +1 -0
- package/dist/cli/snow-flow-cli-integration.d.ts +30 -0
- package/dist/cli/snow-flow-cli-integration.d.ts.map +1 -0
- package/dist/cli/snow-flow-cli-integration.js +385 -0
- package/dist/cli/snow-flow-cli-integration.js.map +1 -0
- package/dist/cli.js +466 -150
- package/dist/cli.js.map +1 -1
- package/dist/config/snow-flow-config.d.ts +1454 -0
- package/dist/config/snow-flow-config.d.ts.map +1 -0
- package/dist/config/snow-flow-config.js +403 -0
- package/dist/config/snow-flow-config.js.map +1 -0
- package/dist/health/system-health.d.ts +123 -0
- package/dist/health/system-health.d.ts.map +1 -0
- package/dist/health/system-health.js +580 -0
- package/dist/health/system-health.js.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts +58 -0
- package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +1 -0
- package/dist/mcp/servicenow-deployment-mcp-refactored.js +651 -0
- package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts +43 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.js +576 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp.d.ts +102 -1
- package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -1
- package/dist/mcp/servicenow-intelligent-mcp.js +2 -0
- package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
- package/dist/mcp/shared/agent-context-provider.d.ts +77 -0
- package/dist/mcp/shared/agent-context-provider.d.ts.map +1 -0
- package/dist/mcp/shared/agent-context-provider.js +292 -0
- package/dist/mcp/shared/agent-context-provider.js.map +1 -0
- package/dist/mcp/shared/base-mcp-server.d.ts +97 -0
- package/dist/mcp/shared/base-mcp-server.d.ts.map +1 -0
- package/dist/mcp/shared/base-mcp-server.js +216 -0
- package/dist/mcp/shared/base-mcp-server.js.map +1 -0
- package/dist/mcp/shared/mcp-memory-manager.d.ts +87 -0
- package/dist/mcp/shared/mcp-memory-manager.d.ts.map +1 -0
- package/dist/mcp/shared/mcp-memory-manager.js +423 -0
- package/dist/mcp/shared/mcp-memory-manager.js.map +1 -0
- package/dist/memory/index.d.ts +9 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +20 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/mcp-integration-example.d.ts +6 -0
- package/dist/memory/mcp-integration-example.d.ts.map +1 -0
- package/dist/memory/mcp-integration-example.js +282 -0
- package/dist/memory/mcp-integration-example.js.map +1 -0
- package/dist/memory/memory-client.d.ts +184 -0
- package/dist/memory/memory-client.d.ts.map +1 -0
- package/dist/memory/memory-client.js +325 -0
- package/dist/memory/memory-client.js.map +1 -0
- package/dist/memory/memory-operations.d.ts +170 -0
- package/dist/memory/memory-operations.d.ts.map +1 -0
- package/dist/memory/memory-operations.js +639 -0
- package/dist/memory/memory-operations.js.map +1 -0
- package/dist/memory/memory-system.d.ts +118 -0
- package/dist/memory/memory-system.d.ts.map +1 -0
- package/dist/memory/memory-system.js +477 -0
- package/dist/memory/memory-system.js.map +1 -0
- package/dist/memory/memory-test.d.ts +6 -0
- package/dist/memory/memory-test.d.ts.map +1 -0
- package/dist/memory/memory-test.js +162 -0
- package/dist/memory/memory-test.js.map +1 -0
- package/dist/memory/swarm-memory.d.ts +135 -0
- package/dist/memory/swarm-memory.d.ts.map +1 -0
- package/dist/memory/swarm-memory.js +378 -0
- package/dist/memory/swarm-memory.js.map +1 -0
- package/dist/monitoring/performance-tracker.d.ts +157 -0
- package/dist/monitoring/performance-tracker.d.ts.map +1 -0
- package/dist/monitoring/performance-tracker.js +571 -0
- package/dist/monitoring/performance-tracker.js.map +1 -0
- package/dist/queen/agent-factory.d.ts +3 -0
- package/dist/queen/agent-factory.d.ts.map +1 -1
- package/dist/queen/agent-factory.js +52 -0
- package/dist/queen/agent-factory.js.map +1 -1
- package/dist/queen/queen-memory.d.ts +8 -2
- package/dist/queen/queen-memory.d.ts.map +1 -1
- package/dist/queen/queen-memory.js +46 -4
- package/dist/queen/queen-memory.js.map +1 -1
- package/dist/snow-flow-system.d.ts +132 -0
- package/dist/snow-flow-system.d.ts.map +1 -0
- package/dist/snow-flow-system.js +396 -0
- package/dist/snow-flow-system.js.map +1 -0
- package/dist/types/todo.types.d.ts +61 -0
- package/dist/types/todo.types.d.ts.map +1 -0
- package/dist/types/todo.types.js +7 -0
- package/dist/types/todo.types.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +101 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +548 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -2
- package/deploy.sh +0 -366
- package/docker/base/Dockerfile.base +0 -45
- package/docker/generate-services.js +0 -244
- package/docker/nginx/Dockerfile +0 -71
- package/docker/nginx/consul-template.hcl +0 -64
- package/docker/nginx/healthcheck.sh +0 -178
- package/docker/nginx/nginx.conf +0 -210
- package/docker/nginx/supervisord.conf +0 -57
- package/docker/nginx/templates/upstreams.conf.tpl +0 -48
- package/docker/services/automation-mcp/Dockerfile +0 -32
- package/docker/services/automation-mcp/config/service.json +0 -28
- package/docker/services/automation-mcp/entrypoint.js +0 -51
- package/docker/services/deployment-mcp/Dockerfile +0 -32
- package/docker/services/deployment-mcp/entrypoint.js +0 -51
- package/docker/services/flow-composer-mcp/Dockerfile +0 -32
- package/docker/services/flow-composer-mcp/config/service.json +0 -28
- package/docker/services/flow-composer-mcp/entrypoint.js +0 -51
- package/docker/services/graph-memory-mcp/Dockerfile +0 -32
- package/docker/services/graph-memory-mcp/config/service.json +0 -28
- package/docker/services/graph-memory-mcp/entrypoint.js +0 -51
- package/docker/services/integration-mcp/Dockerfile +0 -32
- package/docker/services/integration-mcp/config/service.json +0 -28
- package/docker/services/integration-mcp/entrypoint.js +0 -51
- package/docker/services/intelligent-mcp/Dockerfile +0 -32
- package/docker/services/intelligent-mcp/config/service.json +0 -28
- package/docker/services/intelligent-mcp/entrypoint.js +0 -51
- package/docker/services/operations-mcp/Dockerfile +0 -32
- package/docker/services/operations-mcp/config/service.json +0 -28
- package/docker/services/operations-mcp/entrypoint.js +0 -51
- package/docker/services/platform-development-mcp/Dockerfile +0 -32
- package/docker/services/platform-development-mcp/config/service.json +0 -28
- package/docker/services/platform-development-mcp/entrypoint.js +0 -51
- package/docker/services/reporting-analytics-mcp/Dockerfile +0 -32
- package/docker/services/reporting-analytics-mcp/config/service.json +0 -28
- package/docker/services/reporting-analytics-mcp/entrypoint.js +0 -51
- package/docker/services/security-compliance-mcp/Dockerfile +0 -32
- package/docker/services/security-compliance-mcp/config/service.json +0 -28
- package/docker/services/security-compliance-mcp/entrypoint.js +0 -51
- package/docker/services/update-set-mcp/Dockerfile +0 -32
- package/docker/services/update-set-mcp/config/service.json +0 -28
- package/docker/services/update-set-mcp/entrypoint.js +0 -51
- package/docker-compose.override.yml +0 -132
- package/docker-compose.prod.yml +0 -340
- package/docker-compose.yml +0 -579
- package/k8s/automation-mcp.yaml +0 -232
- package/k8s/configmap.yaml +0 -237
- package/k8s/deployment-mcp.yaml +0 -232
- package/k8s/flow-composer-mcp.yaml +0 -232
- package/k8s/generate-k8s-manifests.js +0 -453
- package/k8s/graph-memory-mcp.yaml +0 -232
- package/k8s/infrastructure.yaml +0 -456
- package/k8s/ingress.yaml +0 -361
- package/k8s/integration-mcp.yaml +0 -232
- package/k8s/intelligent-mcp.yaml +0 -232
- package/k8s/kustomization.yaml +0 -111
- package/k8s/mcp-services.yaml +0 -2552
- package/k8s/monitoring.yaml +0 -515
- package/k8s/namespace.yaml +0 -80
- package/k8s/operations-mcp.yaml +0 -232
- package/k8s/platform-development-mcp.yaml +0 -232
- package/k8s/rbac.yaml +0 -140
- package/k8s/reporting-analytics-mcp.yaml +0 -232
- package/k8s/security-compliance-mcp.yaml +0 -232
- package/k8s/update-set-mcp.yaml +0 -232
- package/test-clean-install/.claude/config.json +0 -12
- package/test-clean-install/.env.example +0 -49
- package/test-clean-install/CLAUDE.md +0 -26
- package/test-clean-install/README.md +0 -23
- package/test-global-install/.claude/config.json +0 -12
- package/test-global-install/CLAUDE.md +0 -26
- package/test-global-install/README.md +0 -23
- package/test-global-install/test-global-install/.claude/config.json +0 -12
- package/test-global-install/test-global-install/CLAUDE.md +0 -26
- package/test-global-install/test-global-install/README.md +0 -23
- package/test-global-install/test-global-install/test-global-install/.claude/config.json +0 -12
- package/test-global-install/test-global-install/test-global-install/.env.example +0 -49
- package/test-global-install/test-global-install/test-global-install/CLAUDE.md +0 -26
- package/test-global-install/test-global-install/test-global-install/README.md +0 -23
- package/test-init-debug/.claude/config.json +0 -12
- package/test-init-debug/CLAUDE.md +0 -693
- package/test-init-debug/README.md +0 -392
- package/test-init-real/.claude/config.json +0 -12
- package/test-init-real/.claude/mcp-config.json +0 -128
- package/test-init-real/.claude/settings.json +0 -37
- package/test-init-real/CLAUDE.md +0 -693
- package/test-init-real/README.md +0 -392
- package/test-init-real/activate-mcp.sh +0 -15
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snow-Flow Memory System
|
|
3
|
+
* SQLite-based persistent memory with caching for agent coordination
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
export interface MemoryOptions {
|
|
7
|
+
dbPath: string;
|
|
8
|
+
schema?: {
|
|
9
|
+
version: string;
|
|
10
|
+
autoMigrate: boolean;
|
|
11
|
+
};
|
|
12
|
+
cache?: {
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
maxSize: number;
|
|
15
|
+
ttl: number;
|
|
16
|
+
};
|
|
17
|
+
ttl?: {
|
|
18
|
+
default: number;
|
|
19
|
+
session: number;
|
|
20
|
+
artifact: number;
|
|
21
|
+
metric: number;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface MemoryEntry {
|
|
25
|
+
key: string;
|
|
26
|
+
value: any;
|
|
27
|
+
ttl?: number;
|
|
28
|
+
createdAt: Date;
|
|
29
|
+
expiresAt?: Date;
|
|
30
|
+
metadata?: Record<string, any>;
|
|
31
|
+
}
|
|
32
|
+
export interface CacheStats {
|
|
33
|
+
hits: number;
|
|
34
|
+
misses: number;
|
|
35
|
+
size: number;
|
|
36
|
+
evictions: number;
|
|
37
|
+
}
|
|
38
|
+
export interface DatabaseStats {
|
|
39
|
+
size: number;
|
|
40
|
+
tableCount: number;
|
|
41
|
+
rowCounts: Record<string, number>;
|
|
42
|
+
}
|
|
43
|
+
export declare class MemorySystem extends EventEmitter {
|
|
44
|
+
private db?;
|
|
45
|
+
private logger;
|
|
46
|
+
private options;
|
|
47
|
+
private cache;
|
|
48
|
+
private cacheStats;
|
|
49
|
+
private cleanupTimer?;
|
|
50
|
+
private initialized;
|
|
51
|
+
constructor(options: MemoryOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the memory system
|
|
54
|
+
*/
|
|
55
|
+
initialize(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Store a value in memory
|
|
58
|
+
*/
|
|
59
|
+
store(key: string, value: any, ttl?: number): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Retrieve a value from memory
|
|
62
|
+
*/
|
|
63
|
+
get(key: string): Promise<any | null>;
|
|
64
|
+
/**
|
|
65
|
+
* Delete a value from memory
|
|
66
|
+
*/
|
|
67
|
+
delete(key: string): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Execute a raw SQL query
|
|
70
|
+
*/
|
|
71
|
+
execute(sql: string, params?: any[]): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Query the database
|
|
74
|
+
*/
|
|
75
|
+
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Insert data into a table
|
|
78
|
+
*/
|
|
79
|
+
insert(table: string, data: Record<string, any>): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Upsert data (insert or update)
|
|
82
|
+
*/
|
|
83
|
+
upsert(table: string, data: Record<string, any>, uniqueKeys: string[]): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Create a transaction
|
|
86
|
+
*/
|
|
87
|
+
transaction<T>(fn: () => T): T;
|
|
88
|
+
/**
|
|
89
|
+
* Get database statistics
|
|
90
|
+
*/
|
|
91
|
+
getDatabaseStats(): Promise<DatabaseStats>;
|
|
92
|
+
/**
|
|
93
|
+
* Get cache statistics
|
|
94
|
+
*/
|
|
95
|
+
getCacheStats(): Promise<CacheStats>;
|
|
96
|
+
/**
|
|
97
|
+
* Invalidate cache
|
|
98
|
+
*/
|
|
99
|
+
invalidateCache(pattern?: string): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Create emergency backup
|
|
102
|
+
*/
|
|
103
|
+
createEmergencyBackup(): Promise<string>;
|
|
104
|
+
/**
|
|
105
|
+
* Close the memory system
|
|
106
|
+
*/
|
|
107
|
+
close(): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Private helper methods
|
|
110
|
+
*/
|
|
111
|
+
private createCoreTables;
|
|
112
|
+
private runMigrations;
|
|
113
|
+
private startCleanupTimer;
|
|
114
|
+
private cleanup;
|
|
115
|
+
private checkCacheSize;
|
|
116
|
+
private estimateCacheSize;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=memory-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-system.d.ts","sourceRoot":"","sources":["../../src/memory/memory-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Snow-Flow Memory System
|
|
4
|
+
* SQLite-based persistent memory with caching for agent coordination
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.MemorySystem = void 0;
|
|
11
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
12
|
+
const events_1 = require("events");
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const logger_1 = require("../utils/logger");
|
|
16
|
+
class MemorySystem extends events_1.EventEmitter {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super();
|
|
19
|
+
this.cache = new Map();
|
|
20
|
+
this.cacheStats = { hits: 0, misses: 0, size: 0, evictions: 0 };
|
|
21
|
+
this.initialized = false;
|
|
22
|
+
this.options = options;
|
|
23
|
+
this.logger = new logger_1.Logger('MemorySystem');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the memory system
|
|
27
|
+
*/
|
|
28
|
+
async initialize() {
|
|
29
|
+
if (this.initialized)
|
|
30
|
+
return;
|
|
31
|
+
this.logger.info('Initializing Memory System...');
|
|
32
|
+
// Ensure directory exists
|
|
33
|
+
const dir = path_1.default.dirname(this.options.dbPath);
|
|
34
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
35
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
// Open database
|
|
38
|
+
this.db = new better_sqlite3_1.default(this.options.dbPath);
|
|
39
|
+
this.db.pragma('journal_mode = WAL');
|
|
40
|
+
this.db.pragma('synchronous = NORMAL');
|
|
41
|
+
// Create core tables
|
|
42
|
+
await this.createCoreTables();
|
|
43
|
+
// Run migrations if needed
|
|
44
|
+
if (this.options.schema?.autoMigrate) {
|
|
45
|
+
await this.runMigrations();
|
|
46
|
+
}
|
|
47
|
+
// Start cleanup timer
|
|
48
|
+
this.startCleanupTimer();
|
|
49
|
+
this.initialized = true;
|
|
50
|
+
this.logger.info('Memory System initialized');
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Store a value in memory
|
|
54
|
+
*/
|
|
55
|
+
async store(key, value, ttl) {
|
|
56
|
+
if (!this.db)
|
|
57
|
+
throw new Error('Memory system not initialized');
|
|
58
|
+
const ttlMs = ttl || this.options.ttl?.default || 86400000; // 24 hours default
|
|
59
|
+
const expiresAt = Date.now() + ttlMs;
|
|
60
|
+
// Store in database
|
|
61
|
+
const stmt = this.db.prepare(`
|
|
62
|
+
INSERT OR REPLACE INTO memory_store (key, value, ttl, expires_at)
|
|
63
|
+
VALUES (?, ?, ?, ?)
|
|
64
|
+
`);
|
|
65
|
+
stmt.run(key, JSON.stringify(value), ttlMs, expiresAt);
|
|
66
|
+
// Update cache if enabled
|
|
67
|
+
if (this.options.cache?.enabled) {
|
|
68
|
+
this.cache.set(key, { value, expiresAt });
|
|
69
|
+
this.checkCacheSize();
|
|
70
|
+
}
|
|
71
|
+
this.emit('memory:stored', { key, ttl: ttlMs });
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Retrieve a value from memory
|
|
75
|
+
*/
|
|
76
|
+
async get(key) {
|
|
77
|
+
if (!this.db)
|
|
78
|
+
throw new Error('Memory system not initialized');
|
|
79
|
+
// Check cache first
|
|
80
|
+
if (this.options.cache?.enabled) {
|
|
81
|
+
const cached = this.cache.get(key);
|
|
82
|
+
if (cached) {
|
|
83
|
+
if (cached.expiresAt > Date.now()) {
|
|
84
|
+
this.cacheStats.hits++;
|
|
85
|
+
return cached.value;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.cache.delete(key);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
this.cacheStats.misses++;
|
|
92
|
+
}
|
|
93
|
+
// Query database
|
|
94
|
+
const stmt = this.db.prepare(`
|
|
95
|
+
SELECT value, expires_at FROM memory_store
|
|
96
|
+
WHERE key = ? AND expires_at > ?
|
|
97
|
+
`);
|
|
98
|
+
const row = stmt.get(key, Date.now());
|
|
99
|
+
if (!row) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const value = JSON.parse(row.value);
|
|
103
|
+
// Update cache
|
|
104
|
+
if (this.options.cache?.enabled) {
|
|
105
|
+
this.cache.set(key, { value, expiresAt: row.expires_at });
|
|
106
|
+
}
|
|
107
|
+
return value;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Update an existing value
|
|
111
|
+
*/
|
|
112
|
+
async update(key, value) {
|
|
113
|
+
const existing = await this.get(key);
|
|
114
|
+
if (!existing) {
|
|
115
|
+
throw new Error(`Key not found: ${key}`);
|
|
116
|
+
}
|
|
117
|
+
await this.store(key, value);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Delete a value from memory
|
|
121
|
+
*/
|
|
122
|
+
async delete(key) {
|
|
123
|
+
if (!this.db)
|
|
124
|
+
throw new Error('Memory system not initialized');
|
|
125
|
+
const stmt = this.db.prepare('DELETE FROM memory_store WHERE key = ?');
|
|
126
|
+
stmt.run(key);
|
|
127
|
+
if (this.options.cache?.enabled) {
|
|
128
|
+
this.cache.delete(key);
|
|
129
|
+
}
|
|
130
|
+
this.emit('memory:deleted', { key });
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Execute a raw SQL query
|
|
134
|
+
*/
|
|
135
|
+
async execute(sql, params = []) {
|
|
136
|
+
if (!this.db)
|
|
137
|
+
throw new Error('Memory system not initialized');
|
|
138
|
+
const stmt = this.db.prepare(sql);
|
|
139
|
+
stmt.run(...params);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Query the database
|
|
143
|
+
*/
|
|
144
|
+
async query(sql, params = []) {
|
|
145
|
+
if (!this.db)
|
|
146
|
+
throw new Error('Memory system not initialized');
|
|
147
|
+
const stmt = this.db.prepare(sql);
|
|
148
|
+
return stmt.all(...params);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Insert data into a table
|
|
152
|
+
*/
|
|
153
|
+
async insert(table, data) {
|
|
154
|
+
if (!this.db)
|
|
155
|
+
throw new Error('Memory system not initialized');
|
|
156
|
+
const keys = Object.keys(data);
|
|
157
|
+
const values = Object.values(data);
|
|
158
|
+
const placeholders = keys.map(() => '?').join(', ');
|
|
159
|
+
const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders})`;
|
|
160
|
+
const stmt = this.db.prepare(sql);
|
|
161
|
+
stmt.run(...values);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Update data in a table
|
|
165
|
+
*/
|
|
166
|
+
async update(table, data, where) {
|
|
167
|
+
if (!this.db)
|
|
168
|
+
throw new Error('Memory system not initialized');
|
|
169
|
+
const setClause = Object.keys(data).map(k => `${k} = ?`).join(', ');
|
|
170
|
+
const whereClause = Object.keys(where).map(k => `${k} = ?`).join(' AND ');
|
|
171
|
+
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause}`;
|
|
172
|
+
const stmt = this.db.prepare(sql);
|
|
173
|
+
stmt.run(...Object.values(data), ...Object.values(where));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Upsert data (insert or update)
|
|
177
|
+
*/
|
|
178
|
+
async upsert(table, data, uniqueKeys) {
|
|
179
|
+
if (!this.db)
|
|
180
|
+
throw new Error('Memory system not initialized');
|
|
181
|
+
const keys = Object.keys(data);
|
|
182
|
+
const values = Object.values(data);
|
|
183
|
+
const placeholders = keys.map(() => '?').join(', ');
|
|
184
|
+
const updateClause = keys
|
|
185
|
+
.filter(k => !uniqueKeys.includes(k))
|
|
186
|
+
.map(k => `${k} = excluded.${k}`)
|
|
187
|
+
.join(', ');
|
|
188
|
+
const sql = `
|
|
189
|
+
INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders})
|
|
190
|
+
ON CONFLICT (${uniqueKeys.join(', ')}) DO UPDATE SET ${updateClause}
|
|
191
|
+
`;
|
|
192
|
+
const stmt = this.db.prepare(sql);
|
|
193
|
+
stmt.run(...values);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Create a transaction
|
|
197
|
+
*/
|
|
198
|
+
transaction(fn) {
|
|
199
|
+
if (!this.db)
|
|
200
|
+
throw new Error('Memory system not initialized');
|
|
201
|
+
return this.db.transaction(fn)();
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get database statistics
|
|
205
|
+
*/
|
|
206
|
+
async getDatabaseStats() {
|
|
207
|
+
if (!this.db)
|
|
208
|
+
throw new Error('Memory system not initialized');
|
|
209
|
+
const tables = this.db.prepare(`
|
|
210
|
+
SELECT name FROM sqlite_master WHERE type = 'table'
|
|
211
|
+
`).all();
|
|
212
|
+
const rowCounts = {};
|
|
213
|
+
for (const { name } of tables) {
|
|
214
|
+
const count = this.db.prepare(`SELECT COUNT(*) as count FROM ${name}`).get();
|
|
215
|
+
rowCounts[name] = count.count;
|
|
216
|
+
}
|
|
217
|
+
const dbFile = this.options.dbPath;
|
|
218
|
+
const stats = fs_1.default.statSync(dbFile);
|
|
219
|
+
return {
|
|
220
|
+
size: stats.size,
|
|
221
|
+
tableCount: tables.length,
|
|
222
|
+
rowCounts
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Get cache statistics
|
|
227
|
+
*/
|
|
228
|
+
async getCacheStats() {
|
|
229
|
+
return {
|
|
230
|
+
...this.cacheStats,
|
|
231
|
+
size: this.cache.size
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Invalidate cache
|
|
236
|
+
*/
|
|
237
|
+
async invalidateCache(pattern) {
|
|
238
|
+
if (!pattern) {
|
|
239
|
+
this.cache.clear();
|
|
240
|
+
this.logger.info('Cache cleared');
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
// Pattern-based invalidation
|
|
244
|
+
const keys = Array.from(this.cache.keys());
|
|
245
|
+
const regex = new RegExp(pattern);
|
|
246
|
+
let invalidated = 0;
|
|
247
|
+
for (const key of keys) {
|
|
248
|
+
if (regex.test(key)) {
|
|
249
|
+
this.cache.delete(key);
|
|
250
|
+
invalidated++;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
this.logger.info(`Invalidated ${invalidated} cache entries matching pattern: ${pattern}`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Create emergency backup
|
|
258
|
+
*/
|
|
259
|
+
async createEmergencyBackup() {
|
|
260
|
+
if (!this.db)
|
|
261
|
+
throw new Error('Memory system not initialized');
|
|
262
|
+
const backupPath = `${this.options.dbPath}.backup.${Date.now()}`;
|
|
263
|
+
await this.db.backup(backupPath);
|
|
264
|
+
this.logger.info(`Emergency backup created: ${backupPath}`);
|
|
265
|
+
return backupPath;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Close the memory system
|
|
269
|
+
*/
|
|
270
|
+
async close() {
|
|
271
|
+
if (this.cleanupTimer) {
|
|
272
|
+
clearInterval(this.cleanupTimer);
|
|
273
|
+
}
|
|
274
|
+
if (this.db) {
|
|
275
|
+
this.db.close();
|
|
276
|
+
this.db = undefined;
|
|
277
|
+
}
|
|
278
|
+
this.cache.clear();
|
|
279
|
+
this.initialized = false;
|
|
280
|
+
this.logger.info('Memory System closed');
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Private helper methods
|
|
284
|
+
*/
|
|
285
|
+
async createCoreTables() {
|
|
286
|
+
if (!this.db)
|
|
287
|
+
return;
|
|
288
|
+
// Core memory store
|
|
289
|
+
this.db.exec(`
|
|
290
|
+
CREATE TABLE IF NOT EXISTS memory_store (
|
|
291
|
+
key TEXT PRIMARY KEY,
|
|
292
|
+
value TEXT NOT NULL,
|
|
293
|
+
ttl INTEGER,
|
|
294
|
+
expires_at INTEGER,
|
|
295
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
296
|
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
297
|
+
);
|
|
298
|
+
|
|
299
|
+
CREATE INDEX IF NOT EXISTS idx_memory_expires ON memory_store(expires_at);
|
|
300
|
+
`);
|
|
301
|
+
// Swarm sessions
|
|
302
|
+
this.db.exec(`
|
|
303
|
+
CREATE TABLE IF NOT EXISTS swarm_sessions (
|
|
304
|
+
id TEXT PRIMARY KEY,
|
|
305
|
+
objective TEXT NOT NULL,
|
|
306
|
+
started_at TIMESTAMP NOT NULL,
|
|
307
|
+
status TEXT NOT NULL,
|
|
308
|
+
queen_agent_id TEXT,
|
|
309
|
+
completed_at TIMESTAMP,
|
|
310
|
+
metadata TEXT
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
CREATE INDEX IF NOT EXISTS idx_swarm_status ON swarm_sessions(status);
|
|
314
|
+
`);
|
|
315
|
+
// Agent coordination
|
|
316
|
+
this.db.exec(`
|
|
317
|
+
CREATE TABLE IF NOT EXISTS agent_coordination (
|
|
318
|
+
session_id TEXT NOT NULL,
|
|
319
|
+
agent_id TEXT NOT NULL,
|
|
320
|
+
agent_type TEXT NOT NULL,
|
|
321
|
+
status TEXT NOT NULL,
|
|
322
|
+
assigned_tasks TEXT,
|
|
323
|
+
progress_percentage INTEGER DEFAULT 0,
|
|
324
|
+
last_activity TIMESTAMP,
|
|
325
|
+
current_tool TEXT,
|
|
326
|
+
error_state TEXT,
|
|
327
|
+
PRIMARY KEY (session_id, agent_id)
|
|
328
|
+
);
|
|
329
|
+
|
|
330
|
+
CREATE INDEX IF NOT EXISTS idx_agent_status ON agent_coordination(status);
|
|
331
|
+
`);
|
|
332
|
+
// ServiceNow artifacts
|
|
333
|
+
this.db.exec(`
|
|
334
|
+
CREATE TABLE IF NOT EXISTS servicenow_artifacts (
|
|
335
|
+
sys_id TEXT PRIMARY KEY,
|
|
336
|
+
artifact_type TEXT NOT NULL,
|
|
337
|
+
name TEXT NOT NULL,
|
|
338
|
+
description TEXT,
|
|
339
|
+
created_by_agent TEXT,
|
|
340
|
+
session_id TEXT,
|
|
341
|
+
deployment_status TEXT,
|
|
342
|
+
update_set_id TEXT,
|
|
343
|
+
dependencies TEXT,
|
|
344
|
+
metadata TEXT,
|
|
345
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
346
|
+
);
|
|
347
|
+
|
|
348
|
+
CREATE INDEX IF NOT EXISTS idx_artifact_session ON servicenow_artifacts(session_id);
|
|
349
|
+
CREATE INDEX IF NOT EXISTS idx_artifact_type ON servicenow_artifacts(artifact_type);
|
|
350
|
+
`);
|
|
351
|
+
// Agent messages
|
|
352
|
+
this.db.exec(`
|
|
353
|
+
CREATE TABLE IF NOT EXISTS agent_messages (
|
|
354
|
+
id TEXT PRIMARY KEY,
|
|
355
|
+
session_id TEXT NOT NULL,
|
|
356
|
+
from_agent TEXT NOT NULL,
|
|
357
|
+
to_agent TEXT NOT NULL,
|
|
358
|
+
message_type TEXT NOT NULL,
|
|
359
|
+
content TEXT,
|
|
360
|
+
artifact_reference TEXT,
|
|
361
|
+
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
362
|
+
processed BOOLEAN DEFAULT FALSE
|
|
363
|
+
);
|
|
364
|
+
|
|
365
|
+
CREATE INDEX IF NOT EXISTS idx_message_session ON agent_messages(session_id);
|
|
366
|
+
CREATE INDEX IF NOT EXISTS idx_message_processed ON agent_messages(processed);
|
|
367
|
+
`);
|
|
368
|
+
// Shared context
|
|
369
|
+
this.db.exec(`
|
|
370
|
+
CREATE TABLE IF NOT EXISTS shared_context (
|
|
371
|
+
session_id TEXT NOT NULL,
|
|
372
|
+
context_key TEXT NOT NULL,
|
|
373
|
+
context_value TEXT,
|
|
374
|
+
created_by_agent TEXT,
|
|
375
|
+
expires_at TIMESTAMP,
|
|
376
|
+
access_permissions TEXT,
|
|
377
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
378
|
+
PRIMARY KEY (session_id, context_key)
|
|
379
|
+
);
|
|
380
|
+
`);
|
|
381
|
+
// Performance metrics
|
|
382
|
+
this.db.exec(`
|
|
383
|
+
CREATE TABLE IF NOT EXISTS performance_metrics (
|
|
384
|
+
id TEXT PRIMARY KEY,
|
|
385
|
+
operation TEXT NOT NULL,
|
|
386
|
+
start_time INTEGER NOT NULL,
|
|
387
|
+
end_time INTEGER,
|
|
388
|
+
duration INTEGER,
|
|
389
|
+
success BOOLEAN NOT NULL,
|
|
390
|
+
session_id TEXT,
|
|
391
|
+
agent_id TEXT,
|
|
392
|
+
metadata TEXT,
|
|
393
|
+
resource_usage TEXT,
|
|
394
|
+
error TEXT,
|
|
395
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
396
|
+
);
|
|
397
|
+
|
|
398
|
+
CREATE INDEX IF NOT EXISTS idx_perf_operation ON performance_metrics(operation);
|
|
399
|
+
CREATE INDEX IF NOT EXISTS idx_perf_session ON performance_metrics(session_id);
|
|
400
|
+
CREATE INDEX IF NOT EXISTS idx_perf_time ON performance_metrics(start_time);
|
|
401
|
+
`);
|
|
402
|
+
}
|
|
403
|
+
async runMigrations() {
|
|
404
|
+
// Implement schema migrations if needed
|
|
405
|
+
this.logger.info('Running database migrations...');
|
|
406
|
+
// Check current version
|
|
407
|
+
const versionRow = await this.get('_schema_version');
|
|
408
|
+
const currentVersion = versionRow?.version || '0.0.0';
|
|
409
|
+
const targetVersion = this.options.schema?.version || '1.0.0';
|
|
410
|
+
if (currentVersion === targetVersion) {
|
|
411
|
+
this.logger.info('Database schema is up to date');
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
// Run migrations based on version differences
|
|
415
|
+
// This is a placeholder - implement actual migration logic
|
|
416
|
+
// Update version
|
|
417
|
+
await this.store('_schema_version', { version: targetVersion });
|
|
418
|
+
this.logger.info(`Database migrated to version ${targetVersion}`);
|
|
419
|
+
}
|
|
420
|
+
startCleanupTimer() {
|
|
421
|
+
// Run cleanup every hour
|
|
422
|
+
this.cleanupTimer = setInterval(async () => {
|
|
423
|
+
await this.cleanup();
|
|
424
|
+
}, 3600000);
|
|
425
|
+
}
|
|
426
|
+
async cleanup() {
|
|
427
|
+
if (!this.db)
|
|
428
|
+
return;
|
|
429
|
+
const now = Date.now();
|
|
430
|
+
// Clean expired memory entries
|
|
431
|
+
const stmt = this.db.prepare('DELETE FROM memory_store WHERE expires_at < ?');
|
|
432
|
+
const result = stmt.run(now);
|
|
433
|
+
if (result.changes > 0) {
|
|
434
|
+
this.logger.info(`Cleaned up ${result.changes} expired memory entries`);
|
|
435
|
+
}
|
|
436
|
+
// Clean cache
|
|
437
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
438
|
+
if (entry.expiresAt < now) {
|
|
439
|
+
this.cache.delete(key);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
// Vacuum database periodically
|
|
443
|
+
const lastVacuum = await this.get('_last_vacuum');
|
|
444
|
+
if (!lastVacuum || now - lastVacuum > 86400000) { // 24 hours
|
|
445
|
+
this.db.exec('VACUUM');
|
|
446
|
+
await this.store('_last_vacuum', now);
|
|
447
|
+
this.logger.info('Database vacuumed');
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
checkCacheSize() {
|
|
451
|
+
if (!this.options.cache?.enabled)
|
|
452
|
+
return;
|
|
453
|
+
const maxSize = this.options.cache.maxSize || 100;
|
|
454
|
+
const currentSizeMB = this.estimateCacheSize();
|
|
455
|
+
if (currentSizeMB > maxSize) {
|
|
456
|
+
// Evict oldest entries
|
|
457
|
+
const entries = Array.from(this.cache.entries())
|
|
458
|
+
.sort((a, b) => a[1].expiresAt - b[1].expiresAt);
|
|
459
|
+
const toEvict = Math.floor(entries.length * 0.2); // Evict 20%
|
|
460
|
+
for (let i = 0; i < toEvict; i++) {
|
|
461
|
+
this.cache.delete(entries[i][0]);
|
|
462
|
+
this.cacheStats.evictions++;
|
|
463
|
+
}
|
|
464
|
+
this.logger.debug(`Evicted ${toEvict} cache entries due to size limit`);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
estimateCacheSize() {
|
|
468
|
+
// Rough estimate of cache size in MB
|
|
469
|
+
let size = 0;
|
|
470
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
471
|
+
size += key.length + JSON.stringify(entry.value).length;
|
|
472
|
+
}
|
|
473
|
+
return size / 1024 / 1024;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
exports.MemorySystem = MemorySystem;
|
|
477
|
+
//# sourceMappingURL=memory-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-system.js","sourceRoot":"","sources":["../../src/memory/memory-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-test.d.ts","sourceRoot":"","sources":["../../src/memory/memory-test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|