@trentapps/manager-protocol 1.1.1
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/LICENSE +21 -0
- package/README.md +446 -0
- package/dist/analyzers/ArchitectureDetector.d.ts +44 -0
- package/dist/analyzers/ArchitectureDetector.d.ts.map +1 -0
- package/dist/analyzers/ArchitectureDetector.js +218 -0
- package/dist/analyzers/ArchitectureDetector.js.map +1 -0
- package/dist/analyzers/CSSAnalyzer.d.ts +104 -0
- package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/CSSAnalyzer.js +578 -0
- package/dist/analyzers/CSSAnalyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +5 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +5 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +174 -0
- package/dist/cli.js.map +1 -0
- package/dist/design-system/index.d.ts +6 -0
- package/dist/design-system/index.d.ts.map +1 -0
- package/dist/design-system/index.js +6 -0
- package/dist/design-system/index.js.map +1 -0
- package/dist/design-system/tokens.d.ts +106 -0
- package/dist/design-system/tokens.d.ts.map +1 -0
- package/dist/design-system/tokens.js +554 -0
- package/dist/design-system/tokens.js.map +1 -0
- package/dist/engine/AppMonitor.d.ts +162 -0
- package/dist/engine/AppMonitor.d.ts.map +1 -0
- package/dist/engine/AppMonitor.js +754 -0
- package/dist/engine/AppMonitor.js.map +1 -0
- package/dist/engine/AuditLogger.d.ts +138 -0
- package/dist/engine/AuditLogger.d.ts.map +1 -0
- package/dist/engine/AuditLogger.js +448 -0
- package/dist/engine/AuditLogger.js.map +1 -0
- package/dist/engine/GitHubApprovalManager.d.ts +106 -0
- package/dist/engine/GitHubApprovalManager.d.ts.map +1 -0
- package/dist/engine/GitHubApprovalManager.js +315 -0
- package/dist/engine/GitHubApprovalManager.js.map +1 -0
- package/dist/engine/RateLimiter.d.ts +79 -0
- package/dist/engine/RateLimiter.d.ts.map +1 -0
- package/dist/engine/RateLimiter.js +232 -0
- package/dist/engine/RateLimiter.js.map +1 -0
- package/dist/engine/RulesEngine.d.ts +77 -0
- package/dist/engine/RulesEngine.d.ts.map +1 -0
- package/dist/engine/RulesEngine.js +400 -0
- package/dist/engine/RulesEngine.js.map +1 -0
- package/dist/engine/TaskManager.d.ts +173 -0
- package/dist/engine/TaskManager.d.ts.map +1 -0
- package/dist/engine/TaskManager.js +678 -0
- package/dist/engine/TaskManager.js.map +1 -0
- package/dist/engine/index.d.ts +9 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +9 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/architecture.d.ts +9 -0
- package/dist/rules/architecture.d.ts.map +1 -0
- package/dist/rules/architecture.js +322 -0
- package/dist/rules/architecture.js.map +1 -0
- package/dist/rules/azure.d.ts +7 -0
- package/dist/rules/azure.d.ts.map +1 -0
- package/dist/rules/azure.js +138 -0
- package/dist/rules/azure.js.map +1 -0
- package/dist/rules/compliance.d.ts +9 -0
- package/dist/rules/compliance.d.ts.map +1 -0
- package/dist/rules/compliance.js +304 -0
- package/dist/rules/compliance.js.map +1 -0
- package/dist/rules/css.d.ts +10 -0
- package/dist/rules/css.d.ts.map +1 -0
- package/dist/rules/css.js +1239 -0
- package/dist/rules/css.js.map +1 -0
- package/dist/rules/flask.d.ts +7 -0
- package/dist/rules/flask.d.ts.map +1 -0
- package/dist/rules/flask.js +155 -0
- package/dist/rules/flask.js.map +1 -0
- package/dist/rules/index.d.ts +607 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +401 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/ml-ai.d.ts +7 -0
- package/dist/rules/ml-ai.d.ts.map +1 -0
- package/dist/rules/ml-ai.js +150 -0
- package/dist/rules/ml-ai.js.map +1 -0
- package/dist/rules/operational.d.ts +9 -0
- package/dist/rules/operational.d.ts.map +1 -0
- package/dist/rules/operational.js +318 -0
- package/dist/rules/operational.js.map +1 -0
- package/dist/rules/security.d.ts +9 -0
- package/dist/rules/security.d.ts.map +1 -0
- package/dist/rules/security.js +287 -0
- package/dist/rules/security.js.map +1 -0
- package/dist/rules/storage.d.ts +7 -0
- package/dist/rules/storage.d.ts.map +1 -0
- package/dist/rules/storage.js +134 -0
- package/dist/rules/storage.js.map +1 -0
- package/dist/rules/stripe.d.ts +7 -0
- package/dist/rules/stripe.d.ts.map +1 -0
- package/dist/rules/stripe.js +140 -0
- package/dist/rules/stripe.js.map +1 -0
- package/dist/rules/testing.d.ts +7 -0
- package/dist/rules/testing.d.ts.map +1 -0
- package/dist/rules/testing.js +135 -0
- package/dist/rules/testing.js.map +1 -0
- package/dist/rules/ux.d.ts +9 -0
- package/dist/rules/ux.d.ts.map +1 -0
- package/dist/rules/ux.js +280 -0
- package/dist/rules/ux.js.map +1 -0
- package/dist/rules/websocket.d.ts +7 -0
- package/dist/rules/websocket.d.ts.map +1 -0
- package/dist/rules/websocket.js +136 -0
- package/dist/rules/websocket.js.map +1 -0
- package/dist/server.d.ts +49 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +2330 -0
- package/dist/server.js.map +1 -0
- package/dist/supervisor/AgentSupervisor.d.ts +235 -0
- package/dist/supervisor/AgentSupervisor.d.ts.map +1 -0
- package/dist/supervisor/AgentSupervisor.js +596 -0
- package/dist/supervisor/AgentSupervisor.js.map +1 -0
- package/dist/supervisor/ManagedServerRegistry.d.ts +48 -0
- package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -0
- package/dist/supervisor/ManagedServerRegistry.js +145 -0
- package/dist/supervisor/ManagedServerRegistry.js.map +1 -0
- package/dist/supervisor/ProjectTracker.d.ts +188 -0
- package/dist/supervisor/ProjectTracker.d.ts.map +1 -0
- package/dist/supervisor/ProjectTracker.js +617 -0
- package/dist/supervisor/ProjectTracker.js.map +1 -0
- package/dist/supervisor/index.d.ts +6 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +6 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/types/index.d.ts +1176 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +391 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/errors.d.ts +86 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +171 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/shell.d.ts +22 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +29 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enterprise Agent Supervisor - Error Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides custom error types and error handling utilities.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base error class for Agent Supervisor errors
|
|
8
|
+
*/
|
|
9
|
+
export class AgentSupervisorError extends Error {
|
|
10
|
+
code;
|
|
11
|
+
details;
|
|
12
|
+
constructor(message, code, details) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'AgentSupervisorError';
|
|
15
|
+
this.code = code;
|
|
16
|
+
this.details = details;
|
|
17
|
+
// Maintains proper stack trace for where our error was thrown
|
|
18
|
+
if (Error.captureStackTrace) {
|
|
19
|
+
Error.captureStackTrace(this, AgentSupervisorError);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error thrown when a rule validation fails
|
|
25
|
+
*/
|
|
26
|
+
export class RuleValidationError extends AgentSupervisorError {
|
|
27
|
+
constructor(message, details) {
|
|
28
|
+
super(message, 'RULE_VALIDATION_ERROR', details);
|
|
29
|
+
this.name = 'RuleValidationError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Error thrown when a rule is not found
|
|
34
|
+
*/
|
|
35
|
+
export class RuleNotFoundError extends AgentSupervisorError {
|
|
36
|
+
constructor(ruleId) {
|
|
37
|
+
super(`Rule not found: ${ruleId}`, 'RULE_NOT_FOUND', { ruleId });
|
|
38
|
+
this.name = 'RuleNotFoundError';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Error thrown when rate limit is exceeded
|
|
43
|
+
*/
|
|
44
|
+
export class RateLimitExceededError extends AgentSupervisorError {
|
|
45
|
+
resetAt;
|
|
46
|
+
remaining;
|
|
47
|
+
constructor(limitId, resetAt, remaining = 0) {
|
|
48
|
+
super(`Rate limit exceeded: ${limitId}`, 'RATE_LIMIT_EXCEEDED', {
|
|
49
|
+
limitId,
|
|
50
|
+
resetAt: resetAt.toISOString(),
|
|
51
|
+
remaining
|
|
52
|
+
});
|
|
53
|
+
this.name = 'RateLimitExceededError';
|
|
54
|
+
this.resetAt = resetAt;
|
|
55
|
+
this.remaining = remaining;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Error thrown when an approval request is not found
|
|
60
|
+
*/
|
|
61
|
+
export class ApprovalNotFoundError extends AgentSupervisorError {
|
|
62
|
+
constructor(requestId) {
|
|
63
|
+
super(`Approval request not found: ${requestId}`, 'APPROVAL_NOT_FOUND', { requestId });
|
|
64
|
+
this.name = 'ApprovalNotFoundError';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Error thrown when an approval request has expired
|
|
69
|
+
*/
|
|
70
|
+
export class ApprovalExpiredError extends AgentSupervisorError {
|
|
71
|
+
constructor(requestId, expiredAt) {
|
|
72
|
+
super(`Approval request expired: ${requestId}`, 'APPROVAL_EXPIRED', { requestId, expiredAt });
|
|
73
|
+
this.name = 'ApprovalExpiredError';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Error thrown for configuration errors
|
|
78
|
+
*/
|
|
79
|
+
export class ConfigurationError extends AgentSupervisorError {
|
|
80
|
+
constructor(message, details) {
|
|
81
|
+
super(message, 'CONFIGURATION_ERROR', details);
|
|
82
|
+
this.name = 'ConfigurationError';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Error thrown when webhook delivery fails
|
|
87
|
+
*/
|
|
88
|
+
export class WebhookDeliveryError extends AgentSupervisorError {
|
|
89
|
+
url;
|
|
90
|
+
statusCode;
|
|
91
|
+
retryCount;
|
|
92
|
+
constructor(url, cause, statusCode, retryCount = 0) {
|
|
93
|
+
const message = typeof cause === 'string' ? cause : cause.message;
|
|
94
|
+
super(`Webhook delivery failed: ${message}`, 'WEBHOOK_DELIVERY_ERROR', {
|
|
95
|
+
url,
|
|
96
|
+
statusCode,
|
|
97
|
+
retryCount
|
|
98
|
+
});
|
|
99
|
+
this.name = 'WebhookDeliveryError';
|
|
100
|
+
this.url = url;
|
|
101
|
+
this.statusCode = statusCode;
|
|
102
|
+
this.retryCount = retryCount;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const DEFAULT_RETRY_OPTIONS = {
|
|
106
|
+
maxRetries: 3,
|
|
107
|
+
initialDelayMs: 1000,
|
|
108
|
+
maxDelayMs: 30000,
|
|
109
|
+
backoffMultiplier: 2
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Execute a function with retry logic and exponential backoff
|
|
113
|
+
*/
|
|
114
|
+
export async function withRetry(fn, options = {}) {
|
|
115
|
+
const opts = { ...DEFAULT_RETRY_OPTIONS, ...options };
|
|
116
|
+
let lastError;
|
|
117
|
+
let delay = opts.initialDelayMs;
|
|
118
|
+
for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
|
|
119
|
+
try {
|
|
120
|
+
return await fn();
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
124
|
+
if (attempt < opts.maxRetries) {
|
|
125
|
+
await sleep(delay);
|
|
126
|
+
delay = Math.min(delay * opts.backoffMultiplier, opts.maxDelayMs);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
throw lastError;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Sleep for a specified number of milliseconds
|
|
134
|
+
*/
|
|
135
|
+
function sleep(ms) {
|
|
136
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Type guard for checking if an error is an AgentSupervisorError
|
|
140
|
+
*/
|
|
141
|
+
export function isAgentSupervisorError(error) {
|
|
142
|
+
return error instanceof AgentSupervisorError;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Format an error for logging
|
|
146
|
+
*/
|
|
147
|
+
export function formatError(error) {
|
|
148
|
+
if (error instanceof AgentSupervisorError) {
|
|
149
|
+
return `[${error.code}] ${error.message}${error.details ? ` - ${JSON.stringify(error.details)}` : ''}`;
|
|
150
|
+
}
|
|
151
|
+
if (error instanceof Error) {
|
|
152
|
+
return error.message;
|
|
153
|
+
}
|
|
154
|
+
return String(error);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Safe JSON stringify that handles circular references
|
|
158
|
+
*/
|
|
159
|
+
export function safeStringify(obj) {
|
|
160
|
+
const seen = new WeakSet();
|
|
161
|
+
return JSON.stringify(obj, (_key, value) => {
|
|
162
|
+
if (typeof value === 'object' && value !== null) {
|
|
163
|
+
if (seen.has(value)) {
|
|
164
|
+
return '[Circular]';
|
|
165
|
+
}
|
|
166
|
+
seen.add(value);
|
|
167
|
+
}
|
|
168
|
+
return value;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell utility functions for secure command execution
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Escape a string for safe use in shell commands
|
|
6
|
+
*
|
|
7
|
+
* Wraps the string in single quotes and escapes any embedded single quotes.
|
|
8
|
+
* This prevents command injection vulnerabilities when passing user-controlled
|
|
9
|
+
* strings to shell commands via exec/execSync.
|
|
10
|
+
*
|
|
11
|
+
* @param str - The string to escape
|
|
12
|
+
* @returns The escaped string safe for shell usage
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const userInput = "test'; rm -rf /";
|
|
17
|
+
* const safe = escapeForShell(userInput);
|
|
18
|
+
* await execAsync(`echo ${safe}`); // Safe: prints "test'; rm -rf /" literally
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function escapeForShell(str: string | number): string;
|
|
22
|
+
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAQ3D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell utility functions for secure command execution
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Escape a string for safe use in shell commands
|
|
6
|
+
*
|
|
7
|
+
* Wraps the string in single quotes and escapes any embedded single quotes.
|
|
8
|
+
* This prevents command injection vulnerabilities when passing user-controlled
|
|
9
|
+
* strings to shell commands via exec/execSync.
|
|
10
|
+
*
|
|
11
|
+
* @param str - The string to escape
|
|
12
|
+
* @returns The escaped string safe for shell usage
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const userInput = "test'; rm -rf /";
|
|
17
|
+
* const safe = escapeForShell(userInput);
|
|
18
|
+
* await execAsync(`echo ${safe}`); // Safe: prints "test'; rm -rf /" literally
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function escapeForShell(str) {
|
|
22
|
+
// Convert numbers to strings
|
|
23
|
+
const value = String(str);
|
|
24
|
+
// Wrap in single quotes and escape any embedded single quotes
|
|
25
|
+
// 'abc' -> 'abc'
|
|
26
|
+
// 'it's' -> 'it'\''s'
|
|
27
|
+
return "'" + value.replace(/'/g, "'\\''") + "'";
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,6BAA6B;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE1B,8DAA8D;IAC9D,iBAAiB;IACjB,sBAAsB;IACtB,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAClD,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@trentapps/manager-protocol",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"description": "Enterprise Agent Supervisor - Rules Engine MCP Server for AI Agent Governance",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"agent-supervisor": "dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"start": "node dist/cli.js",
|
|
14
|
+
"dev": "tsx src/cli.ts",
|
|
15
|
+
"test": "vitest",
|
|
16
|
+
"test:run": "vitest run",
|
|
17
|
+
"lint": "eslint src --ext .ts",
|
|
18
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
19
|
+
"clean": "rm -rf dist",
|
|
20
|
+
"clean:test": "rm -rf test-results/ playwright-report/ traces/ screenshots/ videos/ && find . -name '*.png' -o -name '*.jpg' -o -name '*.jpeg' -o -name '*.webm' | grep -v node_modules | xargs rm -f 2>/dev/null || true",
|
|
21
|
+
"clean:test:old": "find test-results/ playwright-report/ traces/ screenshots/ videos/ -type f -mtime +7 -delete 2>/dev/null || true",
|
|
22
|
+
"prepublishOnly": "npm run build"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"mcp",
|
|
26
|
+
"model-context-protocol",
|
|
27
|
+
"ai-governance",
|
|
28
|
+
"agent-supervisor",
|
|
29
|
+
"rules-engine",
|
|
30
|
+
"compliance",
|
|
31
|
+
"audit",
|
|
32
|
+
"enterprise"
|
|
33
|
+
],
|
|
34
|
+
"author": "ManagerProtocol",
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
38
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
39
|
+
"better-sqlite3": "^12.5.0",
|
|
40
|
+
"uuid": "^9.0.1",
|
|
41
|
+
"ws": "^8.16.0",
|
|
42
|
+
"zod": "^3.22.4"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^20.10.0",
|
|
46
|
+
"@types/uuid": "^9.0.7",
|
|
47
|
+
"@types/ws": "^8.5.10",
|
|
48
|
+
"@typescript-eslint/eslint-plugin": "^6.13.2",
|
|
49
|
+
"@typescript-eslint/parser": "^6.13.2",
|
|
50
|
+
"eslint": "^8.55.0",
|
|
51
|
+
"prettier": "^3.1.1",
|
|
52
|
+
"tsx": "^4.6.2",
|
|
53
|
+
"typescript": "^5.3.2",
|
|
54
|
+
"vitest": "^1.0.4"
|
|
55
|
+
},
|
|
56
|
+
"engines": {
|
|
57
|
+
"node": ">=18.0.0"
|
|
58
|
+
},
|
|
59
|
+
"files": [
|
|
60
|
+
"dist",
|
|
61
|
+
"README.md"
|
|
62
|
+
]
|
|
63
|
+
}
|