@agent-foundry/replay-server 1.0.0 → 1.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/.cursor/dev.mdc +941 -0
- package/.cursor/project.mdc +17 -2
- package/.env +30 -0
- package/Dockerfile +6 -0
- package/README.md +153 -12
- package/dist/cli/render.js +14 -4
- package/dist/cli/render.js.map +1 -1
- package/dist/renderer/PuppeteerRenderer.d.ts +12 -2
- package/dist/renderer/PuppeteerRenderer.d.ts.map +1 -1
- package/dist/renderer/PuppeteerRenderer.js +23 -16
- package/dist/renderer/PuppeteerRenderer.js.map +1 -1
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +200 -46
- package/dist/server/index.js.map +1 -1
- package/dist/services/BundleManager.d.ts +99 -0
- package/dist/services/BundleManager.d.ts.map +1 -0
- package/dist/services/BundleManager.js +410 -0
- package/dist/services/BundleManager.js.map +1 -0
- package/dist/services/OSSClient.d.ts +51 -0
- package/dist/services/OSSClient.d.ts.map +1 -0
- package/dist/services/OSSClient.js +207 -0
- package/dist/services/OSSClient.js.map +1 -0
- package/dist/services/index.d.ts +7 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +7 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/types.d.ts +73 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/types.js +5 -0
- package/dist/services/types.js.map +1 -0
- package/docker-compose.local.yml +8 -0
- package/env.example +30 -0
- package/package.json +7 -3
- package/restart.sh +5 -0
- package/samples/jump_arena_0_ja-mks5um2x-nksbmz.json +1907 -0
- package/scripts/render-pipeline.sh +657 -0
- package/scripts/test-bundle-preload.sh +20 -0
- package/scripts/test-service-sts.sh +176 -0
- package/src/cli/render.ts +18 -7
- package/src/renderer/PuppeteerRenderer.ts +41 -21
- package/src/server/index.ts +249 -68
- package/src/services/BundleManager.ts +503 -0
- package/src/services/OSSClient.ts +286 -0
- package/src/services/index.ts +7 -0
- package/src/services/types.ts +78 -0
package/dist/server/index.js
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* - GET /status/:jobId - Get job status
|
|
10
10
|
* - GET /download/:jobId - Download completed video
|
|
11
11
|
* - GET /bundles - List available game bundles
|
|
12
|
+
* - POST /bundles/preload - Preload a bundle
|
|
13
|
+
* - GET /bundles/stats - Get cache statistics
|
|
14
|
+
* - GET /bundles/:bundleId - Get specific bundle info
|
|
15
|
+
* - DELETE /bundles/:bundleId - Remove bundle from cache
|
|
12
16
|
*/
|
|
13
17
|
import express from 'express';
|
|
14
18
|
import cors from 'cors';
|
|
@@ -19,6 +23,8 @@ import { fileURLToPath } from 'url';
|
|
|
19
23
|
import { dirname } from 'path';
|
|
20
24
|
import { execSync } from 'child_process';
|
|
21
25
|
import { PuppeteerRenderer } from '../renderer/PuppeteerRenderer.js';
|
|
26
|
+
import { createOSSClient } from '../services/OSSClient.js';
|
|
27
|
+
import { createBundleManager, BundleManagerError } from '../services/BundleManager.js';
|
|
22
28
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
23
29
|
const app = express();
|
|
24
30
|
app.use(cors());
|
|
@@ -28,46 +34,166 @@ const PORT = process.env.PORT || 3001;
|
|
|
28
34
|
const GAME_URL = process.env.GAME_URL || 'http://localhost:5173';
|
|
29
35
|
const OUTPUT_DIR = process.env.OUTPUT_DIR || path.join(process.cwd(), 'output');
|
|
30
36
|
const BUNDLES_DIR = process.env.BUNDLES_DIR || path.join(__dirname, '../../bundles');
|
|
37
|
+
const BFF_BASE_URL = process.env.BFF_BASE_URL || 'http://localhost:11001';
|
|
38
|
+
const BFF_SERVICE_TOKEN = process.env.BFF_SERVICE_TOKEN;
|
|
39
|
+
const MAX_CACHE_SIZE = parseInt(process.env.MAX_CACHE_SIZE || '10737418240'); // 10GB default
|
|
40
|
+
// Initialize OSS Client (for downloading bundles)
|
|
41
|
+
const ossClient = createOSSClient({
|
|
42
|
+
bffBaseUrl: BFF_BASE_URL,
|
|
43
|
+
serviceToken: BFF_SERVICE_TOKEN,
|
|
44
|
+
timeout: 30000,
|
|
45
|
+
});
|
|
46
|
+
// Initialize Bundle Manager
|
|
47
|
+
const bundleManager = createBundleManager({
|
|
48
|
+
bundlesDir: BUNDLES_DIR,
|
|
49
|
+
maxCacheSize: MAX_CACHE_SIZE,
|
|
50
|
+
ossClient,
|
|
51
|
+
});
|
|
31
52
|
/**
|
|
32
|
-
* GET /bundles
|
|
53
|
+
* GET /api/bundles
|
|
33
54
|
* List available game bundles
|
|
34
|
-
* This route must be registered BEFORE the static middleware to handle /bundles requests
|
|
35
55
|
*/
|
|
36
|
-
app.get('/bundles', (req, res) => {
|
|
37
|
-
console.log('[GET /bundles] Request received');
|
|
56
|
+
app.get('/api/bundles', (req, res) => {
|
|
57
|
+
console.log('[GET /api/bundles] Request received');
|
|
38
58
|
try {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
url: `http://localhost:${PORT}/bundles/${entry.name}/`,
|
|
55
|
-
ready: hasIndex,
|
|
56
|
-
};
|
|
57
|
-
});
|
|
58
|
-
console.log('[GET /bundles] Found bundles:', bundles.length);
|
|
59
|
+
const bundles = bundleManager.listBundles().map(info => ({
|
|
60
|
+
bundleId: info.bundleId,
|
|
61
|
+
status: info.status,
|
|
62
|
+
size: info.size,
|
|
63
|
+
cachedAt: info.cachedAt,
|
|
64
|
+
lastAccessedAt: info.lastAccessedAt,
|
|
65
|
+
url: info.status === 'ready'
|
|
66
|
+
? `http://localhost:${PORT}/bundles/${info.bundleId}/`
|
|
67
|
+
: undefined,
|
|
68
|
+
ready: info.status === 'ready',
|
|
69
|
+
progress: info.progress,
|
|
70
|
+
error: info.error,
|
|
71
|
+
}));
|
|
72
|
+
const cacheStats = bundleManager.getCacheStats();
|
|
73
|
+
console.log('[GET /api/bundles] Found bundles:', bundles.length);
|
|
59
74
|
res.json({
|
|
60
75
|
bundles,
|
|
61
76
|
count: bundles.length,
|
|
62
|
-
|
|
77
|
+
cache: cacheStats,
|
|
63
78
|
});
|
|
64
79
|
}
|
|
65
80
|
catch (error) {
|
|
66
|
-
console.error('[GET /bundles] Error listing bundles:', error);
|
|
81
|
+
console.error('[GET /api/bundles] Error listing bundles:', error);
|
|
67
82
|
res.status(500).json({ error: 'Failed to list bundles' });
|
|
68
83
|
}
|
|
69
84
|
});
|
|
70
|
-
|
|
85
|
+
/**
|
|
86
|
+
* GET /api/bundles/stats
|
|
87
|
+
* Get cache and download statistics
|
|
88
|
+
*/
|
|
89
|
+
app.get('/api/bundles/stats', (req, res) => {
|
|
90
|
+
console.log('[GET /api/bundles/stats] Request received');
|
|
91
|
+
try {
|
|
92
|
+
const cacheStats = bundleManager.getCacheStats();
|
|
93
|
+
const downloadStats = bundleManager.getDownloadStats();
|
|
94
|
+
res.json({
|
|
95
|
+
cache: cacheStats,
|
|
96
|
+
downloads: downloadStats,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.error('[GET /api/bundles/stats] Error getting stats:', error);
|
|
101
|
+
res.status(500).json({ error: 'Failed to get stats' });
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* POST /api/bundles/preload
|
|
106
|
+
* Preload a bundle (async download)
|
|
107
|
+
*/
|
|
108
|
+
app.post('/api/bundles/preload', async (req, res) => {
|
|
109
|
+
console.log('[POST /api/bundles/preload] Request received');
|
|
110
|
+
try {
|
|
111
|
+
const { bundleId, bundleUrl } = req.body;
|
|
112
|
+
if (!bundleId) {
|
|
113
|
+
return res.status(400).json({ error: 'bundleId is required' });
|
|
114
|
+
}
|
|
115
|
+
if (!bundleUrl) {
|
|
116
|
+
return res.status(400).json({ error: 'bundleUrl is required' });
|
|
117
|
+
}
|
|
118
|
+
// Check if already cached
|
|
119
|
+
if (bundleManager.isCached(bundleId)) {
|
|
120
|
+
return res.json({
|
|
121
|
+
bundleId,
|
|
122
|
+
status: 'ready',
|
|
123
|
+
message: 'Bundle already cached',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// Start download in background (non-blocking)
|
|
127
|
+
bundleManager.ensureBundle(bundleId, bundleUrl).catch(error => {
|
|
128
|
+
console.error(`[POST /api/bundles/preload] Failed to download ${bundleId}:`, error);
|
|
129
|
+
});
|
|
130
|
+
res.json({
|
|
131
|
+
bundleId,
|
|
132
|
+
status: 'downloading',
|
|
133
|
+
message: 'Bundle download started',
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.error('[POST /api/bundles/preload] Error:', error);
|
|
138
|
+
res.status(500).json({ error: 'Failed to start bundle download' });
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
/**
|
|
142
|
+
* GET /api/bundles/:bundleId
|
|
143
|
+
* Get specific bundle info
|
|
144
|
+
*/
|
|
145
|
+
app.get('/api/bundles/:bundleId', (req, res) => {
|
|
146
|
+
const { bundleId } = req.params;
|
|
147
|
+
console.log(`[GET /api/bundles/${bundleId}] Request received`);
|
|
148
|
+
try {
|
|
149
|
+
const info = bundleManager.getBundleInfo(bundleId);
|
|
150
|
+
if (!info) {
|
|
151
|
+
return res.status(404).json({ error: 'Bundle not found' });
|
|
152
|
+
}
|
|
153
|
+
res.json({
|
|
154
|
+
bundleId: info.bundleId,
|
|
155
|
+
status: info.status,
|
|
156
|
+
size: info.size,
|
|
157
|
+
cachedAt: info.cachedAt,
|
|
158
|
+
lastAccessedAt: info.lastAccessedAt,
|
|
159
|
+
url: info.status === 'ready'
|
|
160
|
+
? `http://localhost:${PORT}/bundles/${info.bundleId}/`
|
|
161
|
+
: undefined,
|
|
162
|
+
ready: info.status === 'ready',
|
|
163
|
+
progress: info.progress,
|
|
164
|
+
error: info.error,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error(`[GET /api/bundles/${bundleId}] Error:`, error);
|
|
169
|
+
res.status(500).json({ error: 'Failed to get bundle info' });
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
/**
|
|
173
|
+
* DELETE /api/bundles/:bundleId
|
|
174
|
+
* Remove bundle from cache
|
|
175
|
+
*/
|
|
176
|
+
app.delete('/api/bundles/:bundleId', (req, res) => {
|
|
177
|
+
const { bundleId } = req.params;
|
|
178
|
+
console.log(`[DELETE /api/bundles/${bundleId}] Request received`);
|
|
179
|
+
try {
|
|
180
|
+
const info = bundleManager.getBundleInfo(bundleId);
|
|
181
|
+
if (!info) {
|
|
182
|
+
return res.status(404).json({ error: 'Bundle not found' });
|
|
183
|
+
}
|
|
184
|
+
bundleManager.removeBundle(bundleId);
|
|
185
|
+
res.json({
|
|
186
|
+
bundleId,
|
|
187
|
+
message: 'Bundle removed from cache',
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
console.error(`[DELETE /api/bundles/${bundleId}] Error:`, error);
|
|
192
|
+
res.status(500).json({ error: 'Failed to remove bundle' });
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
// Serve static game bundles at /bundles/<bundleId>/
|
|
196
|
+
// API routes are at /api/bundles/* to avoid conflicts
|
|
71
197
|
app.use('/bundles', express.static(BUNDLES_DIR, {
|
|
72
198
|
index: 'index.html',
|
|
73
199
|
extensions: ['html']
|
|
@@ -134,17 +260,31 @@ app.get('/debug/chrome', async (req, res) => {
|
|
|
134
260
|
});
|
|
135
261
|
/**
|
|
136
262
|
* Resolve game URL from manifest bundleId or config
|
|
263
|
+
* Now supports dynamic bundle downloading
|
|
137
264
|
*/
|
|
138
|
-
function resolveGameUrl(manifest,
|
|
265
|
+
async function resolveGameUrl(manifest, config) {
|
|
139
266
|
// 1. Explicit gameUrl in config takes precedence
|
|
140
|
-
if (
|
|
141
|
-
return
|
|
267
|
+
if (config?.gameUrl) {
|
|
268
|
+
return config.gameUrl;
|
|
142
269
|
}
|
|
143
270
|
// 2. Use bundleId from manifest to serve from local bundles
|
|
144
271
|
if (manifest.bundleId) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
272
|
+
// Get bundleUrl from manifest or config
|
|
273
|
+
const bundleUrl = manifest.bundleUrl || config?.bundleUrl;
|
|
274
|
+
// Ensure bundle is available (download if needed)
|
|
275
|
+
try {
|
|
276
|
+
await bundleManager.ensureBundle(manifest.bundleId, bundleUrl);
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
if (error instanceof BundleManagerError && error.code === 'BUNDLE_URL_REQUIRED') {
|
|
280
|
+
// Bundle not cached and no URL provided - check if it exists locally
|
|
281
|
+
if (!bundleManager.isCached(manifest.bundleId)) {
|
|
282
|
+
throw new Error(`Bundle ${manifest.bundleId} not found and no bundleUrl provided`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
throw error;
|
|
287
|
+
}
|
|
148
288
|
}
|
|
149
289
|
return `http://localhost:${PORT}/bundles/${manifest.bundleId}/`;
|
|
150
290
|
}
|
|
@@ -179,10 +319,15 @@ app.post('/render', async (req, res) => {
|
|
|
179
319
|
console.error('[POST /render] Missing required parameter: manifest or manifestUrl');
|
|
180
320
|
return res.status(400).json({ error: 'Either manifest or manifestUrl is required' });
|
|
181
321
|
}
|
|
182
|
-
// Validate manifest
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
322
|
+
// Validate manifest - basic structure only (schema-agnostic)
|
|
323
|
+
console.log('[POST /render] Manifest schema:', replayManifest.schema);
|
|
324
|
+
if (!replayManifest.schema || typeof replayManifest.schema !== 'string') {
|
|
325
|
+
console.error('[POST /render] Missing or invalid schema field');
|
|
326
|
+
return res.status(400).json({ error: 'Manifest must have a schema field' });
|
|
327
|
+
}
|
|
328
|
+
if (!replayManifest.gameId || typeof replayManifest.gameId !== 'string') {
|
|
329
|
+
console.error('[POST /render] Missing or invalid gameId field');
|
|
330
|
+
return res.status(400).json({ error: 'Manifest must have a gameId field' });
|
|
186
331
|
}
|
|
187
332
|
// Create job
|
|
188
333
|
const jobId = uuidv4();
|
|
@@ -195,18 +340,24 @@ app.post('/render', async (req, res) => {
|
|
|
195
340
|
error: null,
|
|
196
341
|
createdAt: new Date(),
|
|
197
342
|
completedAt: null,
|
|
343
|
+
bundleId: replayManifest.bundleId,
|
|
198
344
|
};
|
|
199
345
|
jobs.set(jobId, job);
|
|
200
|
-
// Resolve game URL from bundleId or config
|
|
346
|
+
// Resolve game URL from bundleId or config (async - may download bundle)
|
|
201
347
|
let gameUrl;
|
|
202
348
|
try {
|
|
203
|
-
gameUrl = resolveGameUrl(replayManifest, config
|
|
349
|
+
gameUrl = await resolveGameUrl(replayManifest, config);
|
|
204
350
|
}
|
|
205
351
|
catch (error) {
|
|
206
352
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
207
353
|
console.error('[POST /render] Failed to resolve game URL:', errorMessage);
|
|
354
|
+
jobs.delete(jobId);
|
|
208
355
|
return res.status(400).json({ error: errorMessage });
|
|
209
356
|
}
|
|
357
|
+
// Mark bundle as in use during rendering
|
|
358
|
+
if (replayManifest.bundleId) {
|
|
359
|
+
bundleManager.markInUse(replayManifest.bundleId);
|
|
360
|
+
}
|
|
210
361
|
// Start rendering in background
|
|
211
362
|
processJob(job, replayManifest, {
|
|
212
363
|
gameUrl,
|
|
@@ -297,17 +448,14 @@ app.get('/download/:jobId', (req, res) => {
|
|
|
297
448
|
* Health check endpoint
|
|
298
449
|
*/
|
|
299
450
|
app.get('/health', (req, res) => {
|
|
300
|
-
|
|
301
|
-
let bundleCount = 0;
|
|
302
|
-
if (fs.existsSync(BUNDLES_DIR)) {
|
|
303
|
-
const entries = fs.readdirSync(BUNDLES_DIR, { withFileTypes: true });
|
|
304
|
-
bundleCount = entries.filter(e => e.isDirectory()).length;
|
|
305
|
-
}
|
|
451
|
+
const cacheStats = bundleManager.getCacheStats();
|
|
306
452
|
res.json({
|
|
307
453
|
status: 'ok',
|
|
308
454
|
gameUrl: GAME_URL,
|
|
309
455
|
bundlesDir: BUNDLES_DIR,
|
|
310
|
-
bundleCount,
|
|
456
|
+
bundleCount: cacheStats.bundleCount,
|
|
457
|
+
cache: cacheStats,
|
|
458
|
+
bffBaseUrl: BFF_BASE_URL,
|
|
311
459
|
});
|
|
312
460
|
});
|
|
313
461
|
/**
|
|
@@ -337,6 +485,10 @@ async function processJob(job, manifest, config) {
|
|
|
337
485
|
job.error = error instanceof Error ? error.message : String(error);
|
|
338
486
|
}
|
|
339
487
|
job.completedAt = new Date();
|
|
488
|
+
// Mark bundle as no longer in use
|
|
489
|
+
if (job.bundleId) {
|
|
490
|
+
bundleManager.markNotInUse(job.bundleId);
|
|
491
|
+
}
|
|
340
492
|
}
|
|
341
493
|
// Start server
|
|
342
494
|
app.listen(PORT, () => {
|
|
@@ -344,5 +496,7 @@ app.listen(PORT, () => {
|
|
|
344
496
|
console.log(`📺 Default Game URL: ${GAME_URL}`);
|
|
345
497
|
console.log(`📦 Bundles directory: ${BUNDLES_DIR}`);
|
|
346
498
|
console.log(`📁 Output directory: ${OUTPUT_DIR}`);
|
|
499
|
+
console.log(`🔗 BFF Base URL: ${BFF_BASE_URL}`);
|
|
500
|
+
console.log(`💾 Max cache size: ${(MAX_CACHE_SIZE / 1024 / 1024 / 1024).toFixed(2)} GB`);
|
|
347
501
|
});
|
|
348
502
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundle Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages bundle lifecycle: download, extraction, caching, and cleanup.
|
|
5
|
+
* Uses LRU eviction to manage cache size.
|
|
6
|
+
*/
|
|
7
|
+
import type { OSSClient } from './OSSClient.js';
|
|
8
|
+
import type { BundleInfo, BundleManagerConfig, CacheStats, DownloadStats } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Error thrown by bundle manager operations
|
|
11
|
+
*/
|
|
12
|
+
export declare class BundleManagerError extends Error {
|
|
13
|
+
readonly code: string;
|
|
14
|
+
readonly bundleId?: string | undefined;
|
|
15
|
+
constructor(message: string, code: string, bundleId?: string | undefined);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Bundle Manager for downloading, caching, and serving game bundles
|
|
19
|
+
*/
|
|
20
|
+
export declare class BundleManager {
|
|
21
|
+
private readonly bundlesDir;
|
|
22
|
+
private readonly maxCacheSize;
|
|
23
|
+
private readonly ossClient;
|
|
24
|
+
private bundles;
|
|
25
|
+
private downloadPromises;
|
|
26
|
+
private bundlesInUse;
|
|
27
|
+
private downloadStats;
|
|
28
|
+
constructor(config: BundleManagerConfig & {
|
|
29
|
+
ossClient: OSSClient;
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Ensure a bundle is available (download if needed)
|
|
33
|
+
* Returns the path to the bundle directory
|
|
34
|
+
*/
|
|
35
|
+
ensureBundle(bundleId: string, bundleUrl?: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a bundle is cached and ready
|
|
38
|
+
*/
|
|
39
|
+
isCached(bundleId: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Mark bundle as in use (prevents eviction during rendering)
|
|
42
|
+
*/
|
|
43
|
+
markInUse(bundleId: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Mark bundle as no longer in use
|
|
46
|
+
*/
|
|
47
|
+
markNotInUse(bundleId: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* Download and extract a bundle
|
|
50
|
+
*/
|
|
51
|
+
private downloadBundle;
|
|
52
|
+
/**
|
|
53
|
+
* Extract TAR.GZ archive to destination directory
|
|
54
|
+
*/
|
|
55
|
+
private extractTarGz;
|
|
56
|
+
/**
|
|
57
|
+
* Ensure cache has enough space by evicting old bundles
|
|
58
|
+
*/
|
|
59
|
+
private ensureCacheSpace;
|
|
60
|
+
/**
|
|
61
|
+
* Load existing bundles from disk
|
|
62
|
+
*/
|
|
63
|
+
private loadCachedBundles;
|
|
64
|
+
/**
|
|
65
|
+
* Get directory size recursively
|
|
66
|
+
*/
|
|
67
|
+
private getDirectorySize;
|
|
68
|
+
/**
|
|
69
|
+
* List all bundles
|
|
70
|
+
*/
|
|
71
|
+
listBundles(): BundleInfo[];
|
|
72
|
+
/**
|
|
73
|
+
* Get bundle info
|
|
74
|
+
*/
|
|
75
|
+
getBundleInfo(bundleId: string): BundleInfo | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Remove bundle from cache
|
|
78
|
+
*/
|
|
79
|
+
removeBundle(bundleId: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Get cache statistics
|
|
82
|
+
*/
|
|
83
|
+
getCacheStats(): CacheStats;
|
|
84
|
+
/**
|
|
85
|
+
* Get download statistics
|
|
86
|
+
*/
|
|
87
|
+
getDownloadStats(): DownloadStats;
|
|
88
|
+
/**
|
|
89
|
+
* Get bundles directory path
|
|
90
|
+
*/
|
|
91
|
+
getBundlesDir(): string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create a bundle manager instance
|
|
95
|
+
*/
|
|
96
|
+
export declare function createBundleManager(config: BundleManagerConfig & {
|
|
97
|
+
ossClient: OSSClient;
|
|
98
|
+
}): BundleManager;
|
|
99
|
+
//# sourceMappingURL=BundleManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BundleManager.d.ts","sourceRoot":"","sources":["../../src/services/BundleManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7F;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGrB,IAAI,EAAE,MAAM;aACZ,QAAQ,CAAC,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,YAAA;CAKxC;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,aAAa,CAInB;gBAEU,MAAM,EAAE,mBAAmB,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE;IAYlE;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCzE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMnC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;YACW,cAAc;IA2G5B;;OAEG;YACW,YAAY;IAqE1B;;OAEG;YACW,gBAAgB;IA4C9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAI3B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIvD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcpC;;OAEG;IACH,aAAa,IAAI,UAAU;IAmB3B;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,aAAa,IAAI,MAAM;CAG1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,mBAAmB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GACvD,aAAa,CAEf"}
|