@claude-flow/cli 3.5.1 → 3.5.3

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 (112) hide show
  1. package/README.md +156 -26
  2. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  3. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  4. package/dist/src/appliance/gguf-engine.js +425 -0
  5. package/dist/src/appliance/gguf-engine.js.map +1 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  7. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  8. package/dist/src/appliance/ruvllm-bridge.js +292 -0
  9. package/dist/src/appliance/ruvllm-bridge.js.map +1 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  11. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  12. package/dist/src/appliance/rvfa-builder.js +329 -0
  13. package/dist/src/appliance/rvfa-builder.js.map +1 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  15. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  16. package/dist/src/appliance/rvfa-distribution.js +370 -0
  17. package/dist/src/appliance/rvfa-distribution.js.map +1 -0
  18. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  19. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  20. package/dist/src/appliance/rvfa-format.js +393 -0
  21. package/dist/src/appliance/rvfa-format.js.map +1 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  23. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  24. package/dist/src/appliance/rvfa-runner.js +237 -0
  25. package/dist/src/appliance/rvfa-runner.js.map +1 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  27. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  28. package/dist/src/appliance/rvfa-signing.js +347 -0
  29. package/dist/src/appliance/rvfa-signing.js.map +1 -0
  30. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  31. package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
  32. package/dist/src/commands/appliance-advanced.js +215 -0
  33. package/dist/src/commands/appliance-advanced.js.map +1 -0
  34. package/dist/src/commands/appliance.d.ts +8 -0
  35. package/dist/src/commands/appliance.d.ts.map +1 -0
  36. package/dist/src/commands/appliance.js +406 -0
  37. package/dist/src/commands/appliance.js.map +1 -0
  38. package/dist/src/commands/benchmark.js +2 -2
  39. package/dist/src/commands/benchmark.js.map +1 -1
  40. package/dist/src/commands/claims.js +1 -1
  41. package/dist/src/commands/claims.js.map +1 -1
  42. package/dist/src/commands/config.js +1 -1
  43. package/dist/src/commands/config.js.map +1 -1
  44. package/dist/src/commands/deployment.js +1 -1
  45. package/dist/src/commands/deployment.js.map +1 -1
  46. package/dist/src/commands/doctor.d.ts.map +1 -1
  47. package/dist/src/commands/doctor.js +25 -42
  48. package/dist/src/commands/doctor.js.map +1 -1
  49. package/dist/src/commands/embeddings.js +1 -1
  50. package/dist/src/commands/embeddings.js.map +1 -1
  51. package/dist/src/commands/hooks.js +1 -1
  52. package/dist/src/commands/hooks.js.map +1 -1
  53. package/dist/src/commands/index.d.ts +2 -0
  54. package/dist/src/commands/index.d.ts.map +1 -1
  55. package/dist/src/commands/index.js +6 -0
  56. package/dist/src/commands/index.js.map +1 -1
  57. package/dist/src/commands/init.js +11 -11
  58. package/dist/src/commands/init.js.map +1 -1
  59. package/dist/src/commands/memory.d.ts.map +1 -1
  60. package/dist/src/commands/memory.js +24 -0
  61. package/dist/src/commands/memory.js.map +1 -1
  62. package/dist/src/commands/neural.js +1 -1
  63. package/dist/src/commands/neural.js.map +1 -1
  64. package/dist/src/commands/performance.js +1 -1
  65. package/dist/src/commands/performance.js.map +1 -1
  66. package/dist/src/commands/plugins.js +1 -1
  67. package/dist/src/commands/plugins.js.map +1 -1
  68. package/dist/src/commands/providers.js +1 -1
  69. package/dist/src/commands/providers.js.map +1 -1
  70. package/dist/src/commands/security.js +1 -1
  71. package/dist/src/commands/security.js.map +1 -1
  72. package/dist/src/commands/start.js +11 -11
  73. package/dist/src/commands/start.js.map +1 -1
  74. package/dist/src/commands/status.js +3 -3
  75. package/dist/src/commands/status.js.map +1 -1
  76. package/dist/src/commands/transfer-store.js +1 -1
  77. package/dist/src/commands/transfer-store.js.map +1 -1
  78. package/dist/src/index.js +2 -2
  79. package/dist/src/index.js.map +1 -1
  80. package/dist/src/init/claudemd-generator.js +1 -1
  81. package/dist/src/init/claudemd-generator.js.map +1 -1
  82. package/dist/src/init/executor.d.ts.map +1 -1
  83. package/dist/src/init/executor.js +20 -46
  84. package/dist/src/init/executor.js.map +1 -1
  85. package/dist/src/init/settings-generator.d.ts.map +1 -1
  86. package/dist/src/init/settings-generator.js +68 -40
  87. package/dist/src/init/settings-generator.js.map +1 -1
  88. package/dist/src/init/statusline-generator.d.ts +1 -1
  89. package/dist/src/init/statusline-generator.js +4 -4
  90. package/dist/src/mcp-tools/coordination-tools.js +1 -1
  91. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  92. package/dist/src/mcp-tools/daa-tools.js +5 -5
  93. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  94. package/dist/src/mcp-tools/github-tools.js +2 -2
  95. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  96. package/dist/src/mcp-tools/hooks-tools.js +1 -1
  97. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  98. package/dist/src/mcp-tools/performance-tools.js +1 -1
  99. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  100. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  101. package/dist/src/mcp-tools/system-tools.js +21 -6
  102. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  103. package/dist/src/memory/memory-initializer.d.ts +6 -0
  104. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  105. package/dist/src/memory/memory-initializer.js +54 -2
  106. package/dist/src/memory/memory-initializer.js.map +1 -1
  107. package/dist/src/runtime/headless.js +3 -3
  108. package/dist/src/runtime/headless.js.map +1 -1
  109. package/dist/src/services/claim-service.js +1 -1
  110. package/dist/src/services/claim-service.js.map +1 -1
  111. package/dist/tsconfig.tsbuildinfo +1 -1
  112. package/package.json +1 -1
@@ -0,0 +1,393 @@
1
+ /**
2
+ * RVFA (RuVector Format Appliance) — Binary format reader/writer
3
+ * for self-contained Ruflo appliances.
4
+ *
5
+ * Binary layout:
6
+ * [4B magic "RVFA"] [4B version u32LE] [4B header_len u32LE]
7
+ * [header_len B JSON header] [section data ...] [32B SHA256 footer]
8
+ */
9
+ import { createHash } from 'node:crypto';
10
+ import { gzipSync, gunzipSync } from 'node:zlib';
11
+ import { readFile } from 'node:fs/promises';
12
+ // ---------------------------------------------------------------------------
13
+ // Constants
14
+ // ---------------------------------------------------------------------------
15
+ export const RVFA_MAGIC = Buffer.from('RVFA');
16
+ export const RVFA_VERSION = 1;
17
+ const MAGIC_SIZE = 4;
18
+ const VERSION_SIZE = 4;
19
+ const HEADER_LEN_SIZE = 4;
20
+ const PREAMBLE_SIZE = MAGIC_SIZE + VERSION_SIZE + HEADER_LEN_SIZE; // 12
21
+ const SHA256_SIZE = 32;
22
+ const MAX_HEADER_JSON_SIZE = 1024 * 1024; // 1 MB
23
+ // ---------------------------------------------------------------------------
24
+ // Helpers
25
+ // ---------------------------------------------------------------------------
26
+ function sha256(data) {
27
+ return createHash('sha256').update(data).digest('hex');
28
+ }
29
+ function sha256Bytes(data) {
30
+ return createHash('sha256').update(data).digest();
31
+ }
32
+ /** Format bytes into a human-readable string (e.g. '2.3 GB'). */
33
+ export function formatSize(bytes) {
34
+ if (bytes < 0)
35
+ return '0 B';
36
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
37
+ let idx = 0;
38
+ let value = bytes;
39
+ while (value >= 1024 && idx < units.length - 1) {
40
+ value /= 1024;
41
+ idx++;
42
+ }
43
+ return idx === 0 ? `${value} ${units[idx]}` : `${value.toFixed(1)} ${units[idx]}`;
44
+ }
45
+ /** Create a sensible default header for a given profile. */
46
+ export function createDefaultHeader(profile) {
47
+ const modelDefaults = {
48
+ cloud: { provider: 'api-vault', vaultEncryption: 'aes-256-gcm' },
49
+ hybrid: {
50
+ provider: 'hybrid',
51
+ engine: 'ruvllm-0.1.0',
52
+ models: ['phi-3-mini-q4'],
53
+ vaultEncryption: 'aes-256-gcm',
54
+ },
55
+ offline: {
56
+ provider: 'ruvllm',
57
+ engine: 'ruvllm-0.1.0',
58
+ models: ['phi-3-mini-q4'],
59
+ },
60
+ };
61
+ const capDefaults = {
62
+ cloud: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'api-vault'],
63
+ hybrid: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'ruvllm', 'api-vault'],
64
+ offline: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'ruvllm'],
65
+ };
66
+ return {
67
+ magic: 'RVFA',
68
+ version: RVFA_VERSION,
69
+ name: '',
70
+ appVersion: '3.5.0',
71
+ arch: 'x86_64',
72
+ platform: 'linux',
73
+ profile,
74
+ created: new Date().toISOString(),
75
+ sections: [],
76
+ boot: {
77
+ entrypoint: '/opt/ruflo/bin/ruflo',
78
+ args: ['--appliance'],
79
+ env: {},
80
+ isolation: profile === 'cloud' ? 'container' : 'native',
81
+ },
82
+ models: modelDefaults[profile],
83
+ capabilities: capDefaults[profile],
84
+ };
85
+ }
86
+ /** Type-guard that validates an unknown value is a well-formed RvfaHeader. */
87
+ export function validateHeader(header) {
88
+ if (typeof header !== 'object' || header === null)
89
+ return false;
90
+ const h = header;
91
+ const str = (v) => typeof v === 'string';
92
+ const obj = (v) => typeof v === 'object' && v !== null;
93
+ const oneOf = (v, vals) => vals.includes(v);
94
+ if (h.magic !== 'RVFA' || typeof h.version !== 'number' || h.version < 1)
95
+ return false;
96
+ if (!str(h.name) || !str(h.appVersion) || !str(h.arch) || !str(h.platform))
97
+ return false;
98
+ if (!oneOf(h.profile, ['cloud', 'hybrid', 'offline']))
99
+ return false;
100
+ if (!str(h.created) || !Array.isArray(h.sections) || !Array.isArray(h.capabilities))
101
+ return false;
102
+ if (!obj(h.boot))
103
+ return false;
104
+ const boot = h.boot;
105
+ if (!str(boot.entrypoint) || !Array.isArray(boot.args) || !obj(boot.env))
106
+ return false;
107
+ if (!oneOf(boot.isolation, ['container', 'microvm', 'native']))
108
+ return false;
109
+ if (!obj(h.models))
110
+ return false;
111
+ if (!oneOf(h.models.provider, ['ruvllm', 'api-vault', 'hybrid']))
112
+ return false;
113
+ for (const sec of h.sections) {
114
+ if (!obj(sec))
115
+ return false;
116
+ const s = sec;
117
+ if (!str(s.id) || !str(s.type) || !str(s.sha256))
118
+ return false;
119
+ if (typeof s.offset !== 'number' || typeof s.size !== 'number')
120
+ return false;
121
+ if (typeof s.originalSize !== 'number')
122
+ return false;
123
+ if (!oneOf(s.compression, ['none', 'gzip', 'zstd']))
124
+ return false;
125
+ }
126
+ return true;
127
+ }
128
+ export class RvfaWriter {
129
+ header;
130
+ staged = [];
131
+ constructor(partial) {
132
+ const profile = partial.profile ?? 'cloud';
133
+ const defaults = createDefaultHeader(profile);
134
+ this.header = { ...defaults, ...partial, sections: [] };
135
+ }
136
+ /**
137
+ * Add a section to the appliance image.
138
+ *
139
+ * @param id Section identifier (e.g. 'kernel', 'runtime', 'ruflo').
140
+ * @param data Raw (uncompressed) section payload.
141
+ * @param options Optional compression and MIME type overrides.
142
+ */
143
+ addSection(id, data, options) {
144
+ const compression = options?.compression ?? 'gzip';
145
+ const mimeType = options?.type ?? 'application/octet-stream';
146
+ let compressed;
147
+ let actualCompression = compression;
148
+ if (compression === 'gzip') {
149
+ compressed = gzipSync(data);
150
+ }
151
+ else if (compression === 'zstd') {
152
+ // zstd not available in core Node.js — fall back to gzip
153
+ compressed = gzipSync(data);
154
+ actualCompression = 'gzip';
155
+ }
156
+ else {
157
+ compressed = data;
158
+ }
159
+ const hash = sha256(compressed);
160
+ this.staged.push({
161
+ id,
162
+ type: mimeType,
163
+ data: compressed,
164
+ originalSize: data.length,
165
+ sha256: hash,
166
+ compression: actualCompression,
167
+ });
168
+ }
169
+ /**
170
+ * Assemble the final RVFA binary image.
171
+ *
172
+ * Layout:
173
+ * [4B magic] [4B version] [4B header_len]
174
+ * [header JSON bytes]
175
+ * [section 0 bytes] [section 1 bytes] ...
176
+ * [32B SHA256 of all section bytes combined]
177
+ */
178
+ build() {
179
+ // Build section descriptors with placeholder offsets
180
+ const sectionDescriptors = this.staged.map((s) => ({
181
+ id: s.id,
182
+ type: s.type,
183
+ offset: 0,
184
+ size: s.data.length,
185
+ originalSize: s.originalSize,
186
+ sha256: s.sha256,
187
+ compression: s.compression,
188
+ }));
189
+ // Iteratively compute offsets: the header contains the offsets as JSON,
190
+ // so changing offsets can change the header length. We converge quickly.
191
+ this.header.sections = sectionDescriptors;
192
+ let headerJson = Buffer.from(JSON.stringify(this.header), 'utf-8');
193
+ let prevLen = -1;
194
+ for (let attempt = 0; attempt < 5 && headerJson.length !== prevLen; attempt++) {
195
+ prevLen = headerJson.length;
196
+ const dataAreaStart = PREAMBLE_SIZE + headerJson.length;
197
+ let cursor = dataAreaStart;
198
+ for (let i = 0; i < this.staged.length; i++) {
199
+ sectionDescriptors[i].offset = cursor;
200
+ cursor += this.staged[i].data.length;
201
+ }
202
+ this.header.sections = sectionDescriptors;
203
+ headerJson = Buffer.from(JSON.stringify(this.header), 'utf-8');
204
+ }
205
+ // Build preamble buffers
206
+ const magicBuf = Buffer.from('RVFA');
207
+ const versionBuf = Buffer.alloc(VERSION_SIZE);
208
+ versionBuf.writeUInt32LE(RVFA_VERSION, 0);
209
+ const headerLenBuf = Buffer.alloc(HEADER_LEN_SIZE);
210
+ headerLenBuf.writeUInt32LE(headerJson.length, 0);
211
+ // Concatenate section data
212
+ const sectionBuffers = this.staged.map((s) => s.data);
213
+ const allSectionData = Buffer.concat(sectionBuffers);
214
+ // Footer: SHA256 of all section data combined
215
+ const footer = sha256Bytes(allSectionData);
216
+ return Buffer.concat([
217
+ magicBuf,
218
+ versionBuf,
219
+ headerLenBuf,
220
+ headerJson,
221
+ allSectionData,
222
+ footer,
223
+ ]);
224
+ }
225
+ }
226
+ // ---------------------------------------------------------------------------
227
+ // RvfaReader
228
+ // ---------------------------------------------------------------------------
229
+ export class RvfaReader {
230
+ buf;
231
+ header;
232
+ constructor(buf, header) {
233
+ this.buf = buf;
234
+ this.header = header;
235
+ }
236
+ /** Parse an RVFA image from an in-memory Buffer. */
237
+ static fromBuffer(buf) {
238
+ if (buf.length < PREAMBLE_SIZE) {
239
+ throw new Error('Buffer too small to contain RVFA preamble');
240
+ }
241
+ // Magic
242
+ const magic = buf.subarray(0, MAGIC_SIZE).toString('ascii');
243
+ if (magic !== 'RVFA') {
244
+ throw new Error(`Invalid RVFA magic: expected "RVFA", got "${magic}"`);
245
+ }
246
+ // Version
247
+ const version = buf.readUInt32LE(MAGIC_SIZE);
248
+ if (version !== RVFA_VERSION) {
249
+ throw new Error(`Unsupported RVFA version: ${version} (expected ${RVFA_VERSION})`);
250
+ }
251
+ // Header length
252
+ const headerLen = buf.readUInt32LE(MAGIC_SIZE + VERSION_SIZE);
253
+ if (headerLen > MAX_HEADER_JSON_SIZE) {
254
+ throw new Error(`Header JSON exceeds maximum size (${headerLen} > ${MAX_HEADER_JSON_SIZE})`);
255
+ }
256
+ if (PREAMBLE_SIZE + headerLen > buf.length) {
257
+ throw new Error('Buffer too small to contain declared header');
258
+ }
259
+ // Parse header JSON
260
+ const headerSlice = buf.subarray(PREAMBLE_SIZE, PREAMBLE_SIZE + headerLen);
261
+ let parsed;
262
+ try {
263
+ parsed = JSON.parse(headerSlice.toString('utf-8'));
264
+ }
265
+ catch {
266
+ throw new Error('Failed to parse RVFA header JSON');
267
+ }
268
+ if (!validateHeader(parsed)) {
269
+ throw new Error('RVFA header failed validation');
270
+ }
271
+ const header = parsed;
272
+ // Bounds-check every section offset
273
+ const totalSize = buf.length;
274
+ for (const sec of header.sections) {
275
+ if (sec.offset < 0 || sec.size < 0) {
276
+ throw new Error(`Section "${sec.id}" has negative offset or size`);
277
+ }
278
+ if (sec.offset + sec.size > totalSize - SHA256_SIZE) {
279
+ throw new Error(`Section "${sec.id}" extends beyond buffer ` +
280
+ `(offset=${sec.offset}, size=${sec.size}, bufLen=${totalSize})`);
281
+ }
282
+ }
283
+ // Check for overlapping sections
284
+ const sorted = [...header.sections].sort((a, b) => a.offset - b.offset);
285
+ for (let i = 1; i < sorted.length; i++) {
286
+ const prev = sorted[i - 1];
287
+ const curr = sorted[i];
288
+ if (prev.offset + prev.size > curr.offset) {
289
+ throw new Error(`Sections "${prev.id}" and "${curr.id}" overlap ` +
290
+ `(${prev.offset}+${prev.size} > ${curr.offset})`);
291
+ }
292
+ }
293
+ return new RvfaReader(buf, header);
294
+ }
295
+ /** Read an RVFA image from a file path. */
296
+ static async fromFile(path) {
297
+ if (path.includes('\0')) {
298
+ throw new Error('Path contains null bytes');
299
+ }
300
+ const data = await readFile(path);
301
+ return RvfaReader.fromBuffer(data);
302
+ }
303
+ /** Return the parsed header. */
304
+ getHeader() {
305
+ return this.header;
306
+ }
307
+ /** List all sections declared in the header. */
308
+ getSections() {
309
+ return this.header.sections;
310
+ }
311
+ /**
312
+ * Extract and decompress a section by its id.
313
+ *
314
+ * @param id The section identifier (e.g. 'kernel', 'runtime').
315
+ * @returns The decompressed section payload.
316
+ */
317
+ extractSection(id) {
318
+ const sec = this.header.sections.find((s) => s.id === id);
319
+ if (!sec) {
320
+ throw new Error(`Section "${id}" not found`);
321
+ }
322
+ if (sec.offset + sec.size > this.buf.length - SHA256_SIZE) {
323
+ throw new Error(`Section "${id}" exceeds buffer bounds`);
324
+ }
325
+ const raw = this.buf.subarray(sec.offset, sec.offset + sec.size);
326
+ if (sec.compression === 'gzip') {
327
+ return gunzipSync(raw);
328
+ }
329
+ if (sec.compression === 'zstd') {
330
+ // zstd not natively supported — attempt gzip fallback (mirrors writer)
331
+ try {
332
+ return gunzipSync(raw);
333
+ }
334
+ catch {
335
+ throw new Error('zstd decompression is not supported in this environment');
336
+ }
337
+ }
338
+ // compression === 'none'
339
+ return Buffer.from(raw);
340
+ }
341
+ /**
342
+ * Verify the integrity of the RVFA image.
343
+ *
344
+ * Checks:
345
+ * 1. Magic bytes
346
+ * 2. Version number
347
+ * 3. SHA256 of each section's compressed data
348
+ * 4. SHA256 footer (all section data combined)
349
+ */
350
+ verify() {
351
+ const errors = [];
352
+ // 1. Magic
353
+ const magic = this.buf.subarray(0, MAGIC_SIZE).toString('ascii');
354
+ if (magic !== 'RVFA') {
355
+ errors.push(`Invalid magic: "${magic}"`);
356
+ }
357
+ // 2. Version
358
+ const version = this.buf.readUInt32LE(MAGIC_SIZE);
359
+ if (version !== RVFA_VERSION) {
360
+ errors.push(`Unsupported version: ${version}`);
361
+ }
362
+ // 3. Per-section SHA256
363
+ const sectionDataParts = [];
364
+ for (const sec of this.header.sections) {
365
+ if (sec.offset + sec.size > this.buf.length - SHA256_SIZE) {
366
+ errors.push(`Section "${sec.id}" extends beyond buffer`);
367
+ continue;
368
+ }
369
+ const raw = this.buf.subarray(sec.offset, sec.offset + sec.size);
370
+ sectionDataParts.push(raw);
371
+ const actual = sha256(raw);
372
+ if (actual !== sec.sha256) {
373
+ errors.push(`Section "${sec.id}" SHA256 mismatch: ` +
374
+ `expected ${sec.sha256}, got ${actual}`);
375
+ }
376
+ }
377
+ // 4. Footer SHA256
378
+ if (this.buf.length >= SHA256_SIZE) {
379
+ const allSections = Buffer.concat(sectionDataParts);
380
+ const expectedFooter = sha256Bytes(allSections);
381
+ const actualFooter = this.buf.subarray(this.buf.length - SHA256_SIZE);
382
+ if (!expectedFooter.equals(actualFooter)) {
383
+ errors.push(`Footer SHA256 mismatch: expected ${expectedFooter.toString('hex')}, ` +
384
+ `got ${actualFooter.toString('hex')}`);
385
+ }
386
+ }
387
+ else {
388
+ errors.push('Buffer too small to contain SHA256 footer');
389
+ }
390
+ return { valid: errors.length === 0, errors };
391
+ }
392
+ }
393
+ //# sourceMappingURL=rvfa-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rvfa-format.js","sourceRoot":"","sources":["../../../src/appliance/rvfa-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * RVFA Runner -- Boot and run self-contained Ruflo appliances.
3
+ *
4
+ * Supports three run modes (cli, mcp, verify) and two isolation
5
+ * strategies (native Node.js, container via Docker).
6
+ *
7
+ * @module @claude-flow/cli/appliance/rvfa-runner
8
+ */
9
+ import type { RvfaHeader } from './rvfa-format.js';
10
+ export interface RunOptions {
11
+ mode: 'cli' | 'mcp' | 'verify';
12
+ isolation: 'container' | 'native';
13
+ verbose?: boolean;
14
+ /** Passphrase for decrypting the API-key vault in the models section. */
15
+ passphrase?: string;
16
+ }
17
+ export interface RunResult {
18
+ exitCode: number;
19
+ stdout: string;
20
+ stderr: string;
21
+ /** Wall-clock duration in milliseconds. */
22
+ duration: number;
23
+ }
24
+ export declare class RvfaRunner {
25
+ private reader;
26
+ private header;
27
+ private constructor();
28
+ /** Read and parse an RVFA file from disk. Throws on invalid input. */
29
+ static fromFile(rvfaPath: string): Promise<RvfaRunner>;
30
+ /** Create a runner from an already-loaded buffer. */
31
+ static fromBuffer(buf: Buffer): RvfaRunner;
32
+ /**
33
+ * Boot the appliance: verify integrity, then dispatch to the
34
+ * requested isolation strategy and run mode.
35
+ */
36
+ boot(options: RunOptions): Promise<RunResult>;
37
+ /**
38
+ * Run natively via Node.js: extract RUFLO section to a temp dir,
39
+ * configure env vars, optionally decrypt API-key vault, and spawn.
40
+ */
41
+ runNative(options: RunOptions): Promise<RunResult>;
42
+ /**
43
+ * Run in a Docker container: generate a Dockerfile from the
44
+ * extracted sections, build the image, and run it.
45
+ */
46
+ runContainer(options: RunOptions): Promise<RunResult>;
47
+ /**
48
+ * Run the verification suite. Extracts the VERIFY section and
49
+ * executes it; falls back to a basic integrity report.
50
+ */
51
+ runVerify(options: RunOptions): Promise<RunResult>;
52
+ /** Return appliance metadata without booting. */
53
+ getInfo(): {
54
+ header: RvfaHeader;
55
+ sections: {
56
+ id: string;
57
+ size: number;
58
+ originalSize: number;
59
+ }[];
60
+ totalSize: number;
61
+ };
62
+ /**
63
+ * Decrypt an API-key vault (AES-256-GCM).
64
+ * Layout: [16-byte IV][ciphertext][16-byte auth-tag]
65
+ * Key derived via PBKDF2 with salt = "rvfa-vault-{name}".
66
+ */
67
+ private decryptVault;
68
+ }
69
+ //# sourceMappingURL=rvfa-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rvfa-runner.d.ts","sourceRoot":"","sources":["../../../src/appliance/rvfa-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAIhE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC/B,SAAS,EAAE,WAAW,GAAG,QAAQ,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+CD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO;IAKP,sEAAsE;WACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK5D,qDAAqD;IACrD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAI1C;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAWnD;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAsCxD;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IA2C3D;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAkCxD,iDAAiD;IACjD,OAAO,IAAI;QACT,MAAM,EAAE,UAAU,CAAC;QACnB,QAAQ,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/D,SAAS,EAAE,MAAM,CAAC;KACnB;IAYD;;;;OAIG;YACW,YAAY;CAkB3B"}