gitx.do 0.0.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 +156 -0
- package/dist/durable-object/object-store.d.ts +113 -0
- package/dist/durable-object/object-store.d.ts.map +1 -0
- package/dist/durable-object/object-store.js +387 -0
- package/dist/durable-object/object-store.js.map +1 -0
- package/dist/durable-object/schema.d.ts +17 -0
- package/dist/durable-object/schema.d.ts.map +1 -0
- package/dist/durable-object/schema.js +43 -0
- package/dist/durable-object/schema.js.map +1 -0
- package/dist/durable-object/wal.d.ts +111 -0
- package/dist/durable-object/wal.d.ts.map +1 -0
- package/dist/durable-object/wal.js +200 -0
- package/dist/durable-object/wal.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/adapter.d.ts +231 -0
- package/dist/mcp/adapter.d.ts.map +1 -0
- package/dist/mcp/adapter.js +502 -0
- package/dist/mcp/adapter.js.map +1 -0
- package/dist/mcp/sandbox.d.ts +261 -0
- package/dist/mcp/sandbox.d.ts.map +1 -0
- package/dist/mcp/sandbox.js +983 -0
- package/dist/mcp/sandbox.js.map +1 -0
- package/dist/mcp/sdk-adapter.d.ts +413 -0
- package/dist/mcp/sdk-adapter.d.ts.map +1 -0
- package/dist/mcp/sdk-adapter.js +672 -0
- package/dist/mcp/sdk-adapter.js.map +1 -0
- package/dist/mcp/tools.d.ts +133 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +1604 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/ops/blame.d.ts +148 -0
- package/dist/ops/blame.d.ts.map +1 -0
- package/dist/ops/blame.js +754 -0
- package/dist/ops/blame.js.map +1 -0
- package/dist/ops/branch.d.ts +215 -0
- package/dist/ops/branch.d.ts.map +1 -0
- package/dist/ops/branch.js +608 -0
- package/dist/ops/branch.js.map +1 -0
- package/dist/ops/commit-traversal.d.ts +209 -0
- package/dist/ops/commit-traversal.d.ts.map +1 -0
- package/dist/ops/commit-traversal.js +755 -0
- package/dist/ops/commit-traversal.js.map +1 -0
- package/dist/ops/commit.d.ts +221 -0
- package/dist/ops/commit.d.ts.map +1 -0
- package/dist/ops/commit.js +606 -0
- package/dist/ops/commit.js.map +1 -0
- package/dist/ops/merge-base.d.ts +223 -0
- package/dist/ops/merge-base.d.ts.map +1 -0
- package/dist/ops/merge-base.js +581 -0
- package/dist/ops/merge-base.js.map +1 -0
- package/dist/ops/merge.d.ts +385 -0
- package/dist/ops/merge.d.ts.map +1 -0
- package/dist/ops/merge.js +1203 -0
- package/dist/ops/merge.js.map +1 -0
- package/dist/ops/tag.d.ts +182 -0
- package/dist/ops/tag.d.ts.map +1 -0
- package/dist/ops/tag.js +608 -0
- package/dist/ops/tag.js.map +1 -0
- package/dist/ops/tree-builder.d.ts +82 -0
- package/dist/ops/tree-builder.d.ts.map +1 -0
- package/dist/ops/tree-builder.js +246 -0
- package/dist/ops/tree-builder.js.map +1 -0
- package/dist/ops/tree-diff.d.ts +243 -0
- package/dist/ops/tree-diff.d.ts.map +1 -0
- package/dist/ops/tree-diff.js +657 -0
- package/dist/ops/tree-diff.js.map +1 -0
- package/dist/pack/delta.d.ts +68 -0
- package/dist/pack/delta.d.ts.map +1 -0
- package/dist/pack/delta.js +343 -0
- package/dist/pack/delta.js.map +1 -0
- package/dist/pack/format.d.ts +84 -0
- package/dist/pack/format.d.ts.map +1 -0
- package/dist/pack/format.js +261 -0
- package/dist/pack/format.js.map +1 -0
- package/dist/pack/full-generation.d.ts +327 -0
- package/dist/pack/full-generation.d.ts.map +1 -0
- package/dist/pack/full-generation.js +1159 -0
- package/dist/pack/full-generation.js.map +1 -0
- package/dist/pack/generation.d.ts +118 -0
- package/dist/pack/generation.d.ts.map +1 -0
- package/dist/pack/generation.js +459 -0
- package/dist/pack/generation.js.map +1 -0
- package/dist/pack/index.d.ts +181 -0
- package/dist/pack/index.d.ts.map +1 -0
- package/dist/pack/index.js +552 -0
- package/dist/pack/index.js.map +1 -0
- package/dist/refs/branch.d.ts +224 -0
- package/dist/refs/branch.d.ts.map +1 -0
- package/dist/refs/branch.js +170 -0
- package/dist/refs/branch.js.map +1 -0
- package/dist/refs/storage.d.ts +208 -0
- package/dist/refs/storage.d.ts.map +1 -0
- package/dist/refs/storage.js +421 -0
- package/dist/refs/storage.js.map +1 -0
- package/dist/refs/tag.d.ts +230 -0
- package/dist/refs/tag.d.ts.map +1 -0
- package/dist/refs/tag.js +188 -0
- package/dist/refs/tag.js.map +1 -0
- package/dist/storage/lru-cache.d.ts +188 -0
- package/dist/storage/lru-cache.d.ts.map +1 -0
- package/dist/storage/lru-cache.js +410 -0
- package/dist/storage/lru-cache.js.map +1 -0
- package/dist/storage/object-index.d.ts +140 -0
- package/dist/storage/object-index.d.ts.map +1 -0
- package/dist/storage/object-index.js +166 -0
- package/dist/storage/object-index.js.map +1 -0
- package/dist/storage/r2-pack.d.ts +394 -0
- package/dist/storage/r2-pack.d.ts.map +1 -0
- package/dist/storage/r2-pack.js +1062 -0
- package/dist/storage/r2-pack.js.map +1 -0
- package/dist/tiered/cdc-pipeline.d.ts +316 -0
- package/dist/tiered/cdc-pipeline.d.ts.map +1 -0
- package/dist/tiered/cdc-pipeline.js +771 -0
- package/dist/tiered/cdc-pipeline.js.map +1 -0
- package/dist/tiered/migration.d.ts +242 -0
- package/dist/tiered/migration.d.ts.map +1 -0
- package/dist/tiered/migration.js +592 -0
- package/dist/tiered/migration.js.map +1 -0
- package/dist/tiered/parquet-writer.d.ts +248 -0
- package/dist/tiered/parquet-writer.d.ts.map +1 -0
- package/dist/tiered/parquet-writer.js +555 -0
- package/dist/tiered/parquet-writer.js.map +1 -0
- package/dist/tiered/read-path.d.ts +141 -0
- package/dist/tiered/read-path.d.ts.map +1 -0
- package/dist/tiered/read-path.js +204 -0
- package/dist/tiered/read-path.js.map +1 -0
- package/dist/types/objects.d.ts +53 -0
- package/dist/types/objects.d.ts.map +1 -0
- package/dist/types/objects.js +291 -0
- package/dist/types/objects.js.map +1 -0
- package/dist/types/storage.d.ts +117 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +8 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/utils/hash.d.ts +31 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +60 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/sha1.d.ts +26 -0
- package/dist/utils/sha1.d.ts.map +1 -0
- package/dist/utils/sha1.js +127 -0
- package/dist/utils/sha1.js.map +1 -0
- package/dist/wire/capabilities.d.ts +236 -0
- package/dist/wire/capabilities.d.ts.map +1 -0
- package/dist/wire/capabilities.js +437 -0
- package/dist/wire/capabilities.js.map +1 -0
- package/dist/wire/pkt-line.d.ts +67 -0
- package/dist/wire/pkt-line.d.ts.map +1 -0
- package/dist/wire/pkt-line.js +145 -0
- package/dist/wire/pkt-line.js.map +1 -0
- package/dist/wire/receive-pack.d.ts +302 -0
- package/dist/wire/receive-pack.d.ts.map +1 -0
- package/dist/wire/receive-pack.js +885 -0
- package/dist/wire/receive-pack.js.map +1 -0
- package/dist/wire/smart-http.d.ts +321 -0
- package/dist/wire/smart-http.d.ts.map +1 -0
- package/dist/wire/smart-http.js +654 -0
- package/dist/wire/smart-http.js.map +1 -0
- package/dist/wire/upload-pack.d.ts +333 -0
- package/dist/wire/upload-pack.d.ts.map +1 -0
- package/dist/wire/upload-pack.js +850 -0
- package/dist/wire/upload-pack.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Sandbox Execution Environment
|
|
3
|
+
*
|
|
4
|
+
* Provides isolated execution environment for MCP tools with:
|
|
5
|
+
* - Resource limits (memory, CPU, time)
|
|
6
|
+
* - Capability restrictions (file, network, process)
|
|
7
|
+
* - Safe git operation execution
|
|
8
|
+
* - Audit logging
|
|
9
|
+
*
|
|
10
|
+
* SECURITY: Uses Node.js vm module for proper isolation instead of
|
|
11
|
+
* string analysis, which can be easily bypassed.
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from 'events';
|
|
14
|
+
/**
|
|
15
|
+
* Sandbox error codes
|
|
16
|
+
*/
|
|
17
|
+
export declare enum SandboxErrorCode {
|
|
18
|
+
TIMEOUT = "TIMEOUT",
|
|
19
|
+
MEMORY_LIMIT_EXCEEDED = "MEMORY_LIMIT_EXCEEDED",
|
|
20
|
+
CPU_LIMIT_EXCEEDED = "CPU_LIMIT_EXCEEDED",
|
|
21
|
+
PERMISSION_DENIED = "PERMISSION_DENIED",
|
|
22
|
+
EXECUTION_ERROR = "EXECUTION_ERROR",
|
|
23
|
+
FILE_DESCRIPTOR_LIMIT = "FILE_DESCRIPTOR_LIMIT",
|
|
24
|
+
PROCESS_LIMIT_EXCEEDED = "PROCESS_LIMIT_EXCEEDED",
|
|
25
|
+
BANDWIDTH_LIMIT_EXCEEDED = "BANDWIDTH_LIMIT_EXCEEDED",
|
|
26
|
+
DISK_LIMIT_EXCEEDED = "DISK_LIMIT_EXCEEDED",
|
|
27
|
+
SANDBOX_CRASHED = "SANDBOX_CRASHED",
|
|
28
|
+
SANDBOX_PAUSED = "SANDBOX_PAUSED"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sandbox error class
|
|
32
|
+
*/
|
|
33
|
+
export declare class SandboxError extends Error {
|
|
34
|
+
code: SandboxErrorCode;
|
|
35
|
+
data?: Record<string, unknown>;
|
|
36
|
+
stack?: string;
|
|
37
|
+
constructor(code: SandboxErrorCode, message: string, data?: Record<string, unknown>);
|
|
38
|
+
toJSON(): {
|
|
39
|
+
code: SandboxErrorCode;
|
|
40
|
+
message: string;
|
|
41
|
+
data?: Record<string, unknown>;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Sandbox state enum
|
|
46
|
+
*/
|
|
47
|
+
export declare enum SandboxState {
|
|
48
|
+
IDLE = "IDLE",
|
|
49
|
+
RUNNING = "RUNNING",
|
|
50
|
+
PAUSED = "PAUSED",
|
|
51
|
+
DESTROYED = "DESTROYED"
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Isolation level for sandbox
|
|
55
|
+
*/
|
|
56
|
+
export type IsolationLevel = 'strict' | 'normal' | 'lax';
|
|
57
|
+
/**
|
|
58
|
+
* Resource limits configuration
|
|
59
|
+
*/
|
|
60
|
+
export interface ResourceLimits {
|
|
61
|
+
memoryLimit?: number;
|
|
62
|
+
cpuTimeLimit?: number;
|
|
63
|
+
maxOpenFiles?: number;
|
|
64
|
+
maxProcesses?: number;
|
|
65
|
+
networkBandwidthLimit?: number;
|
|
66
|
+
diskWriteLimit?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Permission set for sandbox
|
|
70
|
+
*/
|
|
71
|
+
export interface PermissionSet {
|
|
72
|
+
fileRead?: boolean;
|
|
73
|
+
fileWrite?: boolean;
|
|
74
|
+
network?: boolean;
|
|
75
|
+
spawn?: boolean;
|
|
76
|
+
env?: boolean;
|
|
77
|
+
nativeModules?: boolean;
|
|
78
|
+
allowedPaths?: string[];
|
|
79
|
+
envWhitelist?: string[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Permission preset types
|
|
83
|
+
*/
|
|
84
|
+
export type PermissionPreset = 'readonly' | 'full' | 'network-only';
|
|
85
|
+
/**
|
|
86
|
+
* Sandbox configuration
|
|
87
|
+
*/
|
|
88
|
+
export interface SandboxConfig {
|
|
89
|
+
timeout?: number;
|
|
90
|
+
memoryLimit?: number;
|
|
91
|
+
cpuTimeLimit?: number;
|
|
92
|
+
maxOpenFiles?: number;
|
|
93
|
+
maxProcesses?: number;
|
|
94
|
+
networkBandwidthLimit?: number;
|
|
95
|
+
diskWriteLimit?: number;
|
|
96
|
+
isolationLevel?: IsolationLevel;
|
|
97
|
+
env?: Record<string, string>;
|
|
98
|
+
workingDirectory?: string;
|
|
99
|
+
permissions?: PermissionSet;
|
|
100
|
+
permissionPreset?: PermissionPreset;
|
|
101
|
+
resourceLimits?: ResourceLimits;
|
|
102
|
+
queueOnPause?: boolean;
|
|
103
|
+
maxConcurrentExecutions?: number;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Execution options
|
|
107
|
+
*/
|
|
108
|
+
export interface ExecutionOptions {
|
|
109
|
+
timeout?: number;
|
|
110
|
+
context?: Record<string, unknown>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Resource usage statistics
|
|
114
|
+
*/
|
|
115
|
+
export interface ResourceStats {
|
|
116
|
+
memoryUsed: number;
|
|
117
|
+
cpuTimeUsed: number;
|
|
118
|
+
executionCount: number;
|
|
119
|
+
activeHandles: number;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Resource usage in result
|
|
123
|
+
*/
|
|
124
|
+
export interface ResourceUsage {
|
|
125
|
+
memoryUsed: number;
|
|
126
|
+
cpuTimeUsed?: number;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Result metadata
|
|
130
|
+
*/
|
|
131
|
+
export interface ResultMetadata {
|
|
132
|
+
startTime: number;
|
|
133
|
+
endTime: number;
|
|
134
|
+
elapsedMs: number;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Permission violation record
|
|
138
|
+
*/
|
|
139
|
+
export interface PermissionViolation {
|
|
140
|
+
permission: string;
|
|
141
|
+
timestamp: number;
|
|
142
|
+
details?: string;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Sandbox execution result
|
|
146
|
+
*/
|
|
147
|
+
export interface SandboxResult<T = unknown> {
|
|
148
|
+
value?: T;
|
|
149
|
+
error?: SandboxError;
|
|
150
|
+
sandboxId: string;
|
|
151
|
+
metadata?: ResultMetadata;
|
|
152
|
+
resourceUsage?: ResourceUsage;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* MCP Sandbox class for isolated execution
|
|
156
|
+
*
|
|
157
|
+
* SECURITY: This implementation uses Node.js vm module with proper context
|
|
158
|
+
* isolation and runtime permission checks instead of string analysis.
|
|
159
|
+
*/
|
|
160
|
+
export declare class MCPSandbox extends EventEmitter {
|
|
161
|
+
private id;
|
|
162
|
+
private config;
|
|
163
|
+
private state;
|
|
164
|
+
private resourceStats;
|
|
165
|
+
private permissionViolations;
|
|
166
|
+
private permissions;
|
|
167
|
+
private executionQueue;
|
|
168
|
+
private activeExecutions;
|
|
169
|
+
private globalContext;
|
|
170
|
+
constructor(config?: SandboxConfig);
|
|
171
|
+
getId(): string;
|
|
172
|
+
getConfig(): SandboxConfig;
|
|
173
|
+
getState(): SandboxState;
|
|
174
|
+
getPermissions(): PermissionSet;
|
|
175
|
+
getResourceStats(): ResourceStats;
|
|
176
|
+
getResourceLimits(): ResourceLimits;
|
|
177
|
+
getPermissionViolations(): PermissionViolation[];
|
|
178
|
+
start(): Promise<void>;
|
|
179
|
+
stop(): Promise<void>;
|
|
180
|
+
pause(): Promise<void>;
|
|
181
|
+
resume(): Promise<void>;
|
|
182
|
+
cleanup(): Promise<void>;
|
|
183
|
+
destroy(): Promise<void>;
|
|
184
|
+
execute<T>(fn: (() => T) | (() => Promise<T>), options?: ExecutionOptions): Promise<SandboxResult<T>>;
|
|
185
|
+
private executeInSandbox;
|
|
186
|
+
/**
|
|
187
|
+
* Pre-check function for static analysis of potential violations
|
|
188
|
+
*
|
|
189
|
+
* SECURITY NOTE: This performs two types of checks:
|
|
190
|
+
* 1. Resource limit checks (memory, CPU, bandwidth) - defense-in-depth for obvious cases
|
|
191
|
+
* 2. Permission checks for module imports - enforced before execution starts
|
|
192
|
+
*
|
|
193
|
+
* The permission checks here are CRITICAL for security because we cannot intercept
|
|
194
|
+
* dynamic import() calls at runtime without experimental Node.js loader hooks.
|
|
195
|
+
* By analyzing the function source, we can detect which modules will be imported
|
|
196
|
+
* and block execution before it starts.
|
|
197
|
+
*
|
|
198
|
+
* This is combined with runtime fs proxy checks for additional security layers.
|
|
199
|
+
*/
|
|
200
|
+
private preCheckResourceLimits;
|
|
201
|
+
/**
|
|
202
|
+
* Create a secure require/import function that enforces runtime permission checks
|
|
203
|
+
*/
|
|
204
|
+
private createSecureImport;
|
|
205
|
+
/**
|
|
206
|
+
* Create a secure fs module proxy that checks permissions at runtime
|
|
207
|
+
*/
|
|
208
|
+
private createSecureFs;
|
|
209
|
+
/**
|
|
210
|
+
* Run function with secure context using runtime permission checks
|
|
211
|
+
*
|
|
212
|
+
* SECURITY: This replaces the previous string-analysis approach with
|
|
213
|
+
* actual runtime interception of dangerous operations.
|
|
214
|
+
*/
|
|
215
|
+
private runWithSecureContext;
|
|
216
|
+
/**
|
|
217
|
+
* Wrap the user function to intercept dynamic imports
|
|
218
|
+
*/
|
|
219
|
+
private wrapFunctionWithSecureImports;
|
|
220
|
+
/**
|
|
221
|
+
* Create an isolated process object with permission checks
|
|
222
|
+
*/
|
|
223
|
+
private createIsolatedProcess;
|
|
224
|
+
private createIsolatedEnv;
|
|
225
|
+
private createPermissionError;
|
|
226
|
+
private recordPermissionViolation;
|
|
227
|
+
private wrapError;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Create a new sandbox instance
|
|
231
|
+
*/
|
|
232
|
+
export declare function createSandbox(config?: SandboxConfig): MCPSandbox;
|
|
233
|
+
/**
|
|
234
|
+
* Sandbox pool configuration
|
|
235
|
+
*/
|
|
236
|
+
export interface SandboxPoolConfig {
|
|
237
|
+
size: number;
|
|
238
|
+
acquireTimeout?: number;
|
|
239
|
+
sandboxConfig?: SandboxConfig;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Sandbox pool for managing multiple sandbox instances
|
|
243
|
+
*/
|
|
244
|
+
export declare class SandboxPool {
|
|
245
|
+
private sandboxes;
|
|
246
|
+
private availableSandboxes;
|
|
247
|
+
private acquireTimeout;
|
|
248
|
+
private waiters;
|
|
249
|
+
private isShutdown;
|
|
250
|
+
constructor(config: SandboxPoolConfig);
|
|
251
|
+
size(): number;
|
|
252
|
+
available(): number;
|
|
253
|
+
acquire(): Promise<MCPSandbox>;
|
|
254
|
+
release(sandbox: MCPSandbox): Promise<void>;
|
|
255
|
+
shutdown(): Promise<void>;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Create a sandbox pool
|
|
259
|
+
*/
|
|
260
|
+
export declare function createSandboxPool(config: SandboxPoolConfig): SandboxPool;
|
|
261
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/mcp/sandbox.ts"],"names":[],"mappings":"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"}
|