wyrm-mcp 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/LICENSE +667 -0
  2. package/README.md +384 -0
  3. package/dist/analytics.d.ts +100 -0
  4. package/dist/analytics.d.ts.map +1 -0
  5. package/dist/analytics.js +368 -0
  6. package/dist/analytics.js.map +1 -0
  7. package/dist/auto-orchestrator.d.ts +118 -0
  8. package/dist/auto-orchestrator.d.ts.map +1 -0
  9. package/dist/auto-orchestrator.js +325 -0
  10. package/dist/auto-orchestrator.js.map +1 -0
  11. package/dist/autoconfig.d.ts +89 -0
  12. package/dist/autoconfig.d.ts.map +1 -0
  13. package/dist/autoconfig.js +576 -0
  14. package/dist/autoconfig.js.map +1 -0
  15. package/dist/cli.d.ts +148 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +281 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/cloud-backup.d.ts +100 -0
  20. package/dist/cloud-backup.d.ts.map +1 -0
  21. package/dist/cloud-backup.js +545 -0
  22. package/dist/cloud-backup.js.map +1 -0
  23. package/dist/crypto.d.ts +72 -0
  24. package/dist/crypto.d.ts.map +1 -0
  25. package/dist/crypto.js +164 -0
  26. package/dist/crypto.js.map +1 -0
  27. package/dist/database.d.ts +218 -0
  28. package/dist/database.d.ts.map +1 -0
  29. package/dist/database.js +1058 -0
  30. package/dist/database.js.map +1 -0
  31. package/dist/http-auth.d.ts +68 -0
  32. package/dist/http-auth.d.ts.map +1 -0
  33. package/dist/http-auth.js +296 -0
  34. package/dist/http-auth.js.map +1 -0
  35. package/dist/http-fast.d.ts +13 -0
  36. package/dist/http-fast.d.ts.map +1 -0
  37. package/dist/http-fast.js +325 -0
  38. package/dist/http-fast.js.map +1 -0
  39. package/dist/http-server.d.ts +12 -0
  40. package/dist/http-server.d.ts.map +1 -0
  41. package/dist/http-server.js +383 -0
  42. package/dist/http-server.js.map +1 -0
  43. package/dist/index.d.ts +19 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +1695 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/license.d.ts +177 -0
  48. package/dist/license.d.ts.map +1 -0
  49. package/dist/license.js +405 -0
  50. package/dist/license.js.map +1 -0
  51. package/dist/logger.d.ts +76 -0
  52. package/dist/logger.d.ts.map +1 -0
  53. package/dist/logger.js +195 -0
  54. package/dist/logger.js.map +1 -0
  55. package/dist/performance.d.ts +114 -0
  56. package/dist/performance.d.ts.map +1 -0
  57. package/dist/performance.js +228 -0
  58. package/dist/performance.js.map +1 -0
  59. package/dist/resilience.d.ts +146 -0
  60. package/dist/resilience.d.ts.map +1 -0
  61. package/dist/resilience.js +563 -0
  62. package/dist/resilience.js.map +1 -0
  63. package/dist/security.d.ts +68 -0
  64. package/dist/security.d.ts.map +1 -0
  65. package/dist/security.js +215 -0
  66. package/dist/security.js.map +1 -0
  67. package/dist/setup.d.ts +21 -0
  68. package/dist/setup.d.ts.map +1 -0
  69. package/dist/setup.js +261 -0
  70. package/dist/setup.js.map +1 -0
  71. package/dist/summarizer.d.ts +30 -0
  72. package/dist/summarizer.d.ts.map +1 -0
  73. package/dist/summarizer.js +139 -0
  74. package/dist/summarizer.js.map +1 -0
  75. package/dist/sync.d.ts +39 -0
  76. package/dist/sync.d.ts.map +1 -0
  77. package/dist/sync.js +356 -0
  78. package/dist/sync.js.map +1 -0
  79. package/dist/types.d.ts +267 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +30 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/vectors.d.ts +103 -0
  84. package/dist/vectors.d.ts.map +1 -0
  85. package/dist/vectors.js +311 -0
  86. package/dist/vectors.js.map +1 -0
  87. package/package.json +73 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * 🐉 Wyrm Performance Layer v2
3
+ * LRU caching, prepared statement pooling, response optimization
4
+ */
5
+ declare class MemCache {
6
+ private cache;
7
+ private defaultTTL;
8
+ private maxSize;
9
+ private hits;
10
+ private misses;
11
+ constructor(ttlSeconds?: number, maxEntries?: number);
12
+ get<T>(key: string): T | undefined;
13
+ set(key: string, data: unknown, ttlMs?: number): void;
14
+ invalidate(pattern?: string): void;
15
+ /** Evict the least-recently-used entry */
16
+ private evictLRU;
17
+ /** Remove all expired entries */
18
+ private evictExpired;
19
+ stats(): {
20
+ size: number;
21
+ maxSize: number;
22
+ keys: string[];
23
+ hits: number;
24
+ misses: number;
25
+ hitRate: string;
26
+ };
27
+ }
28
+ export declare const cache: MemCache;
29
+ export declare function compactProject(p: {
30
+ id: number;
31
+ name: string;
32
+ path: string;
33
+ stack?: string | null;
34
+ }): {
35
+ i: number;
36
+ n: string;
37
+ p: string;
38
+ s?: string;
39
+ };
40
+ export declare function compactQuest(q: {
41
+ id: number;
42
+ title: string;
43
+ priority: string;
44
+ status: string;
45
+ }): {
46
+ i: number;
47
+ t: string;
48
+ p: string;
49
+ s: string;
50
+ };
51
+ export declare function compactSession(s: {
52
+ id: number;
53
+ date: string;
54
+ summary?: string;
55
+ notes?: string;
56
+ }): {
57
+ i: number;
58
+ d: string;
59
+ s?: string;
60
+ };
61
+ export interface BatchRequest {
62
+ op: string;
63
+ args?: Record<string, unknown>;
64
+ }
65
+ export interface BatchResponse {
66
+ results: Array<{
67
+ ok: boolean;
68
+ data?: unknown;
69
+ error?: string;
70
+ }>;
71
+ time: number;
72
+ }
73
+ export declare function estimateTokens(obj: unknown): number;
74
+ export declare function estimateTokensFast(length: number): number;
75
+ export declare function truncateToTokens(text: string, maxTokens: number): string;
76
+ export declare function guardSize<T>(data: T, maxTokens?: number): T | {
77
+ truncated: true;
78
+ preview: string;
79
+ tokens: number;
80
+ };
81
+ export declare function diffObjects(prev: Record<string, unknown>, curr: Record<string, unknown>): Record<string, unknown>;
82
+ export declare class OpQueue {
83
+ private queue;
84
+ private running;
85
+ add(priority: number, op: () => Promise<unknown>): void;
86
+ private process;
87
+ }
88
+ export declare function debounce<T extends (...args: unknown[]) => unknown>(fn: T, ms: number): (...args: Parameters<T>) => void;
89
+ export declare function timed<T>(fn: () => T): {
90
+ result: T;
91
+ ms: number;
92
+ };
93
+ export declare function timedAsync<T>(fn: () => Promise<T>): Promise<{
94
+ result: T;
95
+ ms: number;
96
+ }>;
97
+ export declare class WriteCoalescer {
98
+ private pending;
99
+ private timer;
100
+ private readonly flushMs;
101
+ private readonly maxBatch;
102
+ constructor(flushMs?: number, maxBatch?: number);
103
+ /** Queue a write operation. It will be batched with others if they arrive within flushMs. */
104
+ enqueue(op: () => void): void;
105
+ /** Execute all pending writes in a single transaction */
106
+ flush(): void;
107
+ get size(): number;
108
+ }
109
+ export declare function compressArray<T extends Record<string, unknown>>(items: T[], maxItems?: number): {
110
+ columns: string[];
111
+ rows: unknown[][];
112
+ } | T[];
113
+ export {};
114
+ //# sourceMappingURL=performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../src/performance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * 🐉 Wyrm Performance Layer v2
3
+ * LRU caching, prepared statement pooling, response optimization
4
+ */
5
+ // LRU cache with TTL + max size eviction
6
+ class MemCache {
7
+ cache = new Map();
8
+ defaultTTL;
9
+ maxSize;
10
+ hits = 0;
11
+ misses = 0;
12
+ constructor(ttlSeconds = 60, maxEntries = 256) {
13
+ this.defaultTTL = ttlSeconds * 1000;
14
+ this.maxSize = maxEntries;
15
+ // Periodic cleanup of expired entries (every 30s)
16
+ if (typeof setInterval !== 'undefined') {
17
+ setInterval(() => this.evictExpired(), 30_000).unref?.();
18
+ }
19
+ }
20
+ get(key) {
21
+ const entry = this.cache.get(key);
22
+ if (!entry) {
23
+ this.misses++;
24
+ return undefined;
25
+ }
26
+ if (Date.now() > entry.expires) {
27
+ this.cache.delete(key);
28
+ this.misses++;
29
+ return undefined;
30
+ }
31
+ this.hits++;
32
+ entry.lastAccess = Date.now();
33
+ return entry.data;
34
+ }
35
+ set(key, data, ttlMs) {
36
+ // LRU eviction when at capacity
37
+ if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
38
+ this.evictLRU();
39
+ }
40
+ this.cache.set(key, {
41
+ data,
42
+ expires: Date.now() + (ttlMs ?? this.defaultTTL),
43
+ lastAccess: Date.now(),
44
+ });
45
+ }
46
+ invalidate(pattern) {
47
+ if (!pattern) {
48
+ this.cache.clear();
49
+ return;
50
+ }
51
+ for (const key of this.cache.keys()) {
52
+ if (key.includes(pattern))
53
+ this.cache.delete(key);
54
+ }
55
+ }
56
+ /** Evict the least-recently-used entry */
57
+ evictLRU() {
58
+ let oldestKey;
59
+ let oldestAccess = Infinity;
60
+ for (const [key, entry] of this.cache) {
61
+ if (entry.lastAccess < oldestAccess) {
62
+ oldestAccess = entry.lastAccess;
63
+ oldestKey = key;
64
+ }
65
+ }
66
+ if (oldestKey)
67
+ this.cache.delete(oldestKey);
68
+ }
69
+ /** Remove all expired entries */
70
+ evictExpired() {
71
+ const now = Date.now();
72
+ for (const [key, entry] of this.cache) {
73
+ if (now > entry.expires)
74
+ this.cache.delete(key);
75
+ }
76
+ }
77
+ stats() {
78
+ const total = this.hits + this.misses;
79
+ return {
80
+ size: this.cache.size,
81
+ maxSize: this.maxSize,
82
+ keys: [...this.cache.keys()],
83
+ hits: this.hits,
84
+ misses: this.misses,
85
+ hitRate: total > 0 ? `${((this.hits / total) * 100).toFixed(1)}%` : '0%',
86
+ };
87
+ }
88
+ }
89
+ // Singleton cache — 60s TTL, 256 max entries with LRU eviction
90
+ export const cache = new MemCache(60, 256);
91
+ // Compact response formats - reduce token usage
92
+ export function compactProject(p) {
93
+ return { i: p.id, n: p.name, p: p.path, ...(p.stack && { s: p.stack }) };
94
+ }
95
+ export function compactQuest(q) {
96
+ return { i: q.id, t: q.title, p: q.priority[0], s: q.status[0] };
97
+ }
98
+ export function compactSession(s) {
99
+ const summary = s.summary || s.notes?.slice(0, 100);
100
+ return { i: s.id, d: s.date.slice(0, 10), ...(summary && { s: summary }) };
101
+ }
102
+ // Token estimation - helps AI manage context
103
+ export function estimateTokens(obj) {
104
+ const str = typeof obj === 'string' ? obj : JSON.stringify(obj);
105
+ // ~4 chars per token for English text, tighter for JSON
106
+ return Math.ceil(str.length / 4);
107
+ }
108
+ // Fast token count for pre-sized buffers
109
+ export function estimateTokensFast(length) {
110
+ return Math.ceil(length / 4);
111
+ }
112
+ // Truncate to token limit
113
+ export function truncateToTokens(text, maxTokens) {
114
+ const maxChars = maxTokens * 4;
115
+ if (text.length <= maxChars)
116
+ return text;
117
+ return text.slice(0, maxChars - 3) + '...';
118
+ }
119
+ // Response size guard
120
+ export function guardSize(data, maxTokens = 4000) {
121
+ const tokens = estimateTokens(data);
122
+ if (tokens <= maxTokens)
123
+ return data;
124
+ const preview = truncateToTokens(JSON.stringify(data), 500);
125
+ return { truncated: true, preview, tokens };
126
+ }
127
+ // Diff helper - only return what changed
128
+ export function diffObjects(prev, curr) {
129
+ const diff = {};
130
+ for (const [k, v] of Object.entries(curr)) {
131
+ if (JSON.stringify(prev[k]) !== JSON.stringify(v)) {
132
+ diff[k] = v;
133
+ }
134
+ }
135
+ return diff;
136
+ }
137
+ // Priority queue for operations
138
+ export class OpQueue {
139
+ queue = [];
140
+ running = false;
141
+ add(priority, op) {
142
+ this.queue.push({ priority, op });
143
+ this.queue.sort((a, b) => b.priority - a.priority);
144
+ this.process();
145
+ }
146
+ async process() {
147
+ if (this.running)
148
+ return;
149
+ this.running = true;
150
+ while (this.queue.length > 0) {
151
+ const item = this.queue.shift();
152
+ if (item)
153
+ await item.op().catch(() => { });
154
+ }
155
+ this.running = false;
156
+ }
157
+ }
158
+ // Debounce writes
159
+ export function debounce(fn, ms) {
160
+ let timer;
161
+ return (...args) => {
162
+ clearTimeout(timer);
163
+ timer = setTimeout(() => fn(...args), ms);
164
+ };
165
+ }
166
+ // Measure execution time
167
+ export function timed(fn) {
168
+ const start = performance.now();
169
+ const result = fn();
170
+ return { result, ms: Math.round(performance.now() - start) };
171
+ }
172
+ export async function timedAsync(fn) {
173
+ const start = performance.now();
174
+ const result = await fn();
175
+ return { result, ms: Math.round(performance.now() - start) };
176
+ }
177
+ // Write coalescer - batches rapid sequential writes into single transactions
178
+ export class WriteCoalescer {
179
+ pending = [];
180
+ timer = null;
181
+ flushMs;
182
+ maxBatch;
183
+ constructor(flushMs = 50, maxBatch = 100) {
184
+ this.flushMs = flushMs;
185
+ this.maxBatch = maxBatch;
186
+ }
187
+ /** Queue a write operation. It will be batched with others if they arrive within flushMs. */
188
+ enqueue(op) {
189
+ this.pending.push(op);
190
+ if (this.pending.length >= this.maxBatch) {
191
+ this.flush();
192
+ return;
193
+ }
194
+ if (!this.timer) {
195
+ this.timer = setTimeout(() => this.flush(), this.flushMs);
196
+ this.timer.unref?.();
197
+ }
198
+ }
199
+ /** Execute all pending writes in a single transaction */
200
+ flush() {
201
+ if (this.timer) {
202
+ clearTimeout(this.timer);
203
+ this.timer = null;
204
+ }
205
+ const ops = this.pending.splice(0);
206
+ if (ops.length === 0)
207
+ return;
208
+ for (const op of ops) {
209
+ try {
210
+ op();
211
+ }
212
+ catch { /* individual op failure shouldn't stop batch */ }
213
+ }
214
+ }
215
+ get size() {
216
+ return this.pending.length;
217
+ }
218
+ }
219
+ // Response compressor - deduplicates repeated field names in JSON arrays
220
+ export function compressArray(items, maxItems = 50) {
221
+ if (items.length <= 3)
222
+ return items;
223
+ const sliced = items.slice(0, maxItems);
224
+ const columns = Object.keys(sliced[0] || {});
225
+ const rows = sliced.map(item => columns.map(c => item[c]));
226
+ return { columns, rows };
227
+ }
228
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../src/performance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Wyrm Resilience Module - Professional-grade fault tolerance
3
+ *
4
+ * @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
5
+ * @license Proprietary - See LICENSE file for details.
6
+ * @module resilience
7
+ * @version 3.0.0
8
+ *
9
+ * Features:
10
+ * - Transaction safety with automatic rollback
11
+ * - Exponential backoff retry logic
12
+ * - Circuit breaker pattern
13
+ * - Operation checkpointing
14
+ * - Crash recovery via WAL
15
+ * - Graceful degradation
16
+ */
17
+ import { WyrmLogger } from './logger.js';
18
+ export interface RetryConfig {
19
+ maxAttempts: number;
20
+ baseDelayMs: number;
21
+ maxDelayMs: number;
22
+ backoffMultiplier: number;
23
+ retryableErrors?: string[];
24
+ }
25
+ export interface CircuitBreakerConfig {
26
+ failureThreshold: number;
27
+ successThreshold: number;
28
+ timeout: number;
29
+ }
30
+ export interface CheckpointData {
31
+ id: string;
32
+ operation: string;
33
+ stage: string;
34
+ data: Record<string, unknown>;
35
+ timestamp: string;
36
+ completed: boolean;
37
+ }
38
+ export interface OperationResult<T> {
39
+ success: boolean;
40
+ data?: T;
41
+ error?: Error;
42
+ attempts: number;
43
+ recoverable: boolean;
44
+ }
45
+ type CircuitState = 'closed' | 'open' | 'half-open';
46
+ export declare class ResilienceManager {
47
+ private logger;
48
+ private checkpointDir;
49
+ private retryConfig;
50
+ private circuitConfig;
51
+ private circuitState;
52
+ private failureCount;
53
+ private successCount;
54
+ private lastFailureTime;
55
+ private activeOperations;
56
+ constructor(logger?: WyrmLogger, retryConfig?: Partial<RetryConfig>, circuitConfig?: Partial<CircuitBreakerConfig>);
57
+ /**
58
+ * Execute an operation with exponential backoff retry
59
+ */
60
+ withRetry<T>(operation: () => Promise<T>, operationName: string, config?: Partial<RetryConfig>): Promise<OperationResult<T>>;
61
+ /**
62
+ * Synchronous retry for database operations
63
+ */
64
+ withRetrySync<T>(operation: () => T, operationName: string, config?: Partial<RetryConfig>): OperationResult<T>;
65
+ /**
66
+ * Check if circuit allows operations
67
+ */
68
+ private checkCircuit;
69
+ /**
70
+ * Record a successful operation
71
+ */
72
+ private recordSuccess;
73
+ /**
74
+ * Record a failed operation
75
+ */
76
+ private recordFailure;
77
+ /**
78
+ * Get circuit breaker status
79
+ */
80
+ getCircuitStatus(): {
81
+ state: CircuitState;
82
+ failures: number;
83
+ lastFailure: number;
84
+ };
85
+ /**
86
+ * Manually reset the circuit breaker
87
+ */
88
+ resetCircuit(): void;
89
+ /**
90
+ * Create a checkpoint for an operation
91
+ */
92
+ createCheckpoint(operationId: string, operation: string, stage: string, data: Record<string, unknown>): void;
93
+ /**
94
+ * Update checkpoint stage
95
+ */
96
+ updateCheckpoint(operationId: string, stage: string, data?: Record<string, unknown>): void;
97
+ /**
98
+ * Complete a checkpoint (mark as done and remove)
99
+ */
100
+ completeCheckpoint(operationId: string): void;
101
+ /**
102
+ * Get a checkpoint by ID
103
+ */
104
+ getCheckpoint(operationId: string): CheckpointData | null;
105
+ /**
106
+ * Recover incomplete operations on startup
107
+ */
108
+ private recoverIncompleteOperations;
109
+ /**
110
+ * Get all incomplete operations for recovery
111
+ */
112
+ getIncompleteOperations(): CheckpointData[];
113
+ /**
114
+ * Execute a database transaction with automatic rollback on failure
115
+ */
116
+ executeTransaction<T>(db: {
117
+ prepare: (sql: string) => {
118
+ run: () => void;
119
+ };
120
+ }, operations: () => T): OperationResult<T>;
121
+ /**
122
+ * Write file atomically (write to temp, then rename)
123
+ */
124
+ atomicWriteFile(filePath: string, content: string): boolean;
125
+ /**
126
+ * Read file with fallback to backup
127
+ */
128
+ safeReadFile(filePath: string, backupPath?: string): string | null;
129
+ private sleep;
130
+ private sleepSync;
131
+ /**
132
+ * Generate a unique operation ID
133
+ */
134
+ generateOperationId(prefix?: string): string;
135
+ }
136
+ export declare function getResilienceManager(): ResilienceManager;
137
+ /**
138
+ * Decorator to add retry logic to a method
139
+ */
140
+ export declare function withRetry(config?: Partial<RetryConfig>): (_target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
141
+ /**
142
+ * Decorator to add checkpointing to a method
143
+ */
144
+ export declare function withCheckpoint(operationName: string): (_target: unknown, _propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
145
+ export {};
146
+ //# sourceMappingURL=resilience.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"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"}