deeplake 0.3.25 → 0.3.27

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 (81) hide show
  1. package/dist/browser/browser/client.d.ts +4 -0
  2. package/dist/browser/browser/client.d.ts.map +1 -1
  3. package/dist/browser/browser/client.js +31 -6
  4. package/dist/browser/browser/client.js.map +1 -1
  5. package/dist/browser/shared/credentials.d.ts.map +1 -1
  6. package/dist/browser/shared/credentials.js +4 -6
  7. package/dist/browser/shared/credentials.js.map +1 -1
  8. package/dist/browser/shared/database.d.ts +3 -1
  9. package/dist/browser/shared/database.d.ts.map +1 -1
  10. package/dist/browser/shared/dlref.d.ts +3 -0
  11. package/dist/browser/shared/dlref.d.ts.map +1 -1
  12. package/dist/browser/shared/dlref.js +3 -0
  13. package/dist/browser/shared/dlref.js.map +1 -1
  14. package/dist/browser/shared/schema.d.ts.map +1 -1
  15. package/dist/browser/shared/schema.js +31 -20
  16. package/dist/browser/shared/schema.js.map +1 -1
  17. package/dist/browser/shared/token.d.ts.map +1 -1
  18. package/dist/browser/shared/token.js +1 -17
  19. package/dist/browser/shared/token.js.map +1 -1
  20. package/dist/browser/shared/wasm-common.d.ts.map +1 -1
  21. package/dist/browser/shared/wasm-common.js +24 -12
  22. package/dist/browser/shared/wasm-common.js.map +1 -1
  23. package/dist/node/node/client.d.ts +60 -2
  24. package/dist/node/node/client.d.ts.map +1 -1
  25. package/dist/node/node/client.js +139 -116
  26. package/dist/node/node/client.js.map +1 -1
  27. package/dist/node/node/formats/coco.d.ts +38 -0
  28. package/dist/node/node/formats/coco.d.ts.map +1 -1
  29. package/dist/node/node/formats/coco.js +94 -8
  30. package/dist/node/node/formats/coco.js.map +1 -1
  31. package/dist/node/node/formats/coco_panoptic.d.ts.map +1 -1
  32. package/dist/node/node/formats/coco_panoptic.js +1 -0
  33. package/dist/node/node/formats/coco_panoptic.js.map +1 -1
  34. package/dist/node/node/formats/lerobot.d.ts +42 -0
  35. package/dist/node/node/formats/lerobot.d.ts.map +1 -1
  36. package/dist/node/node/formats/lerobot.js +60 -1
  37. package/dist/node/node/formats/lerobot.js.map +1 -1
  38. package/dist/node/node/normalizers/binary.js +1 -1
  39. package/dist/node/node/normalizers/binary.js.map +1 -1
  40. package/dist/node/node/normalizers/huggingface.d.ts +20 -0
  41. package/dist/node/node/normalizers/huggingface.d.ts.map +1 -1
  42. package/dist/node/node/normalizers/huggingface.js +29 -0
  43. package/dist/node/node/normalizers/huggingface.js.map +1 -1
  44. package/dist/node/node/normalizers/image.js +1 -1
  45. package/dist/node/node/normalizers/image.js.map +1 -1
  46. package/dist/node/node/normalizers/pdf.js +2 -2
  47. package/dist/node/node/normalizers/pdf.js.map +1 -1
  48. package/dist/node/node/normalizers/text.js +1 -1
  49. package/dist/node/node/normalizers/text.js.map +1 -1
  50. package/dist/node/node/normalizers/video.js +2 -2
  51. package/dist/node/node/normalizers/video.js.map +1 -1
  52. package/dist/node/node/storage.d.ts +5 -0
  53. package/dist/node/node/storage.d.ts.map +1 -1
  54. package/dist/node/node/storage.js +141 -27
  55. package/dist/node/node/storage.js.map +1 -1
  56. package/dist/node/node/wasm.d.ts.map +1 -1
  57. package/dist/node/node/wasm.js +2 -1
  58. package/dist/node/node/wasm.js.map +1 -1
  59. package/dist/node/shared/credentials.d.ts.map +1 -1
  60. package/dist/node/shared/credentials.js +4 -6
  61. package/dist/node/shared/credentials.js.map +1 -1
  62. package/dist/node/shared/database.d.ts +3 -1
  63. package/dist/node/shared/database.d.ts.map +1 -1
  64. package/dist/node/shared/dlref.d.ts +3 -0
  65. package/dist/node/shared/dlref.d.ts.map +1 -1
  66. package/dist/node/shared/dlref.js +3 -0
  67. package/dist/node/shared/dlref.js.map +1 -1
  68. package/dist/node/shared/schema.d.ts.map +1 -1
  69. package/dist/node/shared/schema.js +31 -20
  70. package/dist/node/shared/schema.js.map +1 -1
  71. package/dist/node/shared/token.d.ts.map +1 -1
  72. package/dist/node/shared/token.js +1 -17
  73. package/dist/node/shared/token.js.map +1 -1
  74. package/dist/node/shared/wasm-common.d.ts.map +1 -1
  75. package/dist/node/shared/wasm-common.js +24 -12
  76. package/dist/node/shared/wasm-common.js.map +1 -1
  77. package/package.json +2 -1
  78. package/wasm/browser/deeplake_browser.js +1 -1
  79. package/wasm/browser/deeplake_browser.wasm +0 -0
  80. package/wasm/node/deeplake_node.js +1 -1
  81. package/wasm/node/deeplake_node.wasm +0 -0
@@ -1,4 +1,36 @@
1
1
  "use strict";
2
+ /**
3
+ * COCO (Common Objects in Context) detection/captions format normalizer.
4
+ *
5
+ * Reads a COCO dataset directory and yields column-oriented batches
6
+ * suitable for `ManagedClient.ingest()`. Works with both train and val splits.
7
+ *
8
+ * Expected directory layout:
9
+ *
10
+ * coco_root/
11
+ * ├── train2017/ (or val2017/)
12
+ * │ ├── 000000000009.jpg
13
+ * │ └── ...
14
+ * └── annotations/
15
+ * ├── instances_train2017.json
16
+ * └── captions_train2017.json [optional]
17
+ *
18
+ * Columns produced per image (one row per image):
19
+ *
20
+ * coco_image_id - COCO image ID (int)
21
+ * image - Source image file bytes (IMAGE)
22
+ * mask - Segmentation mask PNG (SEGMENT_MASK)
23
+ * width - Image width in pixels
24
+ * height - Image height in pixels
25
+ * filename - Original image filename
26
+ * captions - JSON-encoded list of caption strings
27
+ * annotations - JSON-encoded list of annotation dicts
28
+ * categories - JSON-encoded category list (same for all rows)
29
+ * num_objects - Number of object annotations for this image
30
+ *
31
+ * No external dependencies — uses built-in Node.js `zlib` for PNG encoding
32
+ * and a pure JS scanline polygon rasterizer for mask rendering.
33
+ */
2
34
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
35
  if (k2 === undefined) k2 = k;
4
36
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,6 +69,7 @@ exports.Coco = void 0;
37
69
  const fs = __importStar(require("fs"));
38
70
  const path = __importStar(require("path"));
39
71
  const zlib = __importStar(require("zlib"));
72
+ // ---- Format class ----
40
73
  class Coco {
41
74
  imagesDir;
42
75
  batchSize;
@@ -49,13 +82,17 @@ class Coco {
49
82
  this.imagesDir = options.imagesDir;
50
83
  this.batchSize = options.batchSize ?? 100;
51
84
  this.maxImages = options.maxImages ?? null;
85
+ // Detect split name from directory (e.g. "train2017", "val2017")
52
86
  this._split = path.basename(this.imagesDir);
87
+ // Annotations directory
53
88
  this._annDir =
54
89
  options.annotationsDir ??
55
90
  path.join(path.dirname(this.imagesDir), 'annotations');
91
+ // Instances JSON
56
92
  this._instancesJson =
57
93
  options.instancesJson ??
58
94
  path.join(this._annDir, `instances_${this._split}.json`);
95
+ // Captions JSON
59
96
  if (options.captionsJson === false) {
60
97
  this._captionsJson = null;
61
98
  }
@@ -91,6 +128,7 @@ class Coco {
91
128
  }
92
129
  const instances = JSON.parse(fs.readFileSync(this._instancesJson, 'utf-8'));
93
130
  const categoriesJson = JSON.stringify(instances.categories ?? []);
131
+ // Build lookup: image_id -> list of annotation dicts
94
132
  const annsByImage = new Map();
95
133
  for (const ann of instances.annotations ?? []) {
96
134
  let list = annsByImage.get(ann.image_id);
@@ -100,6 +138,7 @@ class Coco {
100
138
  }
101
139
  list.push(ann);
102
140
  }
141
+ // Load captions if available
103
142
  const capsByImage = new Map();
104
143
  if (this._captionsJson && fs.existsSync(this._captionsJson)) {
105
144
  const captionsData = JSON.parse(fs.readFileSync(this._captionsJson, 'utf-8'));
@@ -126,6 +165,7 @@ class Coco {
126
165
  const imgAnns = annsByImage.get(imageId) ?? [];
127
166
  const imgCaps = capsByImage.get(imageId) ?? [];
128
167
  const maskPng = renderMask(imgAnns, h, w);
168
+ // Build simplified annotation dicts for JSON column
129
169
  const annDicts = imgAnns.map((a) => ({
130
170
  id: a.id,
131
171
  bbox: a.bbox,
@@ -157,26 +197,40 @@ class Coco {
157
197
  }
158
198
  }
159
199
  exports.Coco = Coco;
200
+ // =====================================================================
201
+ // Mask rendering — pure JS polygon rasterizer + PNG encoder
202
+ // =====================================================================
203
+ /**
204
+ * Render a combined segmentation mask for one image.
205
+ * Each pixel is set to the `category_id` of the last annotation covering it.
206
+ * Background = 0. Returns PNG bytes as a Buffer.
207
+ */
160
208
  function renderMask(annotations, height, width) {
161
209
  if (height === 0 || width === 0) {
162
210
  return encodePng(Buffer.alloc(0), 0, 0);
163
211
  }
164
- const mask = Buffer.alloc(height * width);
212
+ const mask = Buffer.alloc(height * width); // uint8, zero-filled
165
213
  for (const ann of annotations) {
166
214
  const seg = ann.segmentation;
167
215
  if (!seg)
168
216
  continue;
169
217
  if (Array.isArray(seg)) {
218
+ // Polygon format: array of [x1,y1,x2,y2,...] arrays
170
219
  for (const poly of seg) {
171
220
  fillPolygon(mask, width, height, poly, ann.category_id);
172
221
  }
173
222
  }
174
223
  else if (seg.counts != null && seg.size != null) {
224
+ // RLE format
175
225
  decodeRleToMask(mask, width, height, seg, ann.category_id);
176
226
  }
177
227
  }
178
228
  return encodePng(mask, width, height);
179
229
  }
230
+ /**
231
+ * Scanline polygon fill.
232
+ * `coords` is a flat array: [x0, y0, x1, y1, ...].
233
+ */
180
234
  function fillPolygon(mask, width, height, coords, value) {
181
235
  const n = Math.floor(coords.length / 2);
182
236
  if (n < 3)
@@ -199,12 +253,14 @@ function fillPolygon(mask, width, height, coords, value) {
199
253
  for (let y = scanMin; y <= scanMax; y++) {
200
254
  nodeX.length = 0;
201
255
  const yf = y + 0.5;
256
+ // Build sorted list of x-intersections for this scanline
202
257
  for (let i = 0, j = n - 1; i < n; j = i++) {
203
258
  if ((ys[i] <= yf && ys[j] > yf) || (ys[j] <= yf && ys[i] > yf)) {
204
259
  nodeX.push(xs[i] + ((yf - ys[i]) / (ys[j] - ys[i])) * (xs[j] - xs[i]));
205
260
  }
206
261
  }
207
262
  nodeX.sort((a, b) => a - b);
263
+ // Fill between pairs
208
264
  for (let i = 0; i < nodeX.length - 1; i += 2) {
209
265
  const xStart = Math.max(0, Math.ceil(nodeX[i]));
210
266
  const xEnd = Math.min(width - 1, Math.floor(nodeX[i + 1]));
@@ -215,21 +271,31 @@ function fillPolygon(mask, width, height, coords, value) {
215
271
  }
216
272
  }
217
273
  }
274
+ /**
275
+ * Decode COCO RLE (Run-Length Encoding) segmentation to mask.
276
+ *
277
+ * COCO RLE can be:
278
+ * - Uncompressed: { counts: number[], size: [h, w] }
279
+ * - Compressed (string): { counts: string, size: [h, w] }
280
+ */
218
281
  function decodeRleToMask(mask, width, height, rle, value) {
219
282
  let counts;
220
283
  if (typeof rle.counts === 'string') {
284
+ // Compressed RLE — decode the string to run lengths
221
285
  counts = decodeCompressedRle(rle.counts);
222
286
  }
223
287
  else {
224
288
  counts = rle.counts;
225
289
  }
290
+ // RLE is column-major (Fortran order) in COCO
226
291
  const rleH = rle.size[0];
227
292
  const rleW = rle.size[1];
228
293
  let pixel = 0;
229
- let on = false;
294
+ let on = false; // first run is background (zeros)
230
295
  for (const count of counts) {
231
296
  if (on) {
232
297
  for (let i = 0; i < count; i++) {
298
+ // Convert column-major index to row-major
233
299
  const col = Math.floor(pixel / rleH);
234
300
  const row = pixel % rleH;
235
301
  if (row < height && col < width) {
@@ -244,6 +310,10 @@ function decodeRleToMask(mask, width, height, rle, value) {
244
310
  on = !on;
245
311
  }
246
312
  }
313
+ /**
314
+ * Decode COCO compressed RLE string to run-length counts array.
315
+ * Uses the same encoding as pycocotools maskUtils.
316
+ */
247
317
  function decodeCompressedRle(s) {
248
318
  const counts = [];
249
319
  let i = 0;
@@ -258,12 +328,14 @@ function decodeCompressedRle(s) {
258
328
  shift += 5;
259
329
  more = (c & 0x20) !== 0;
260
330
  }
331
+ // Zigzag decode
261
332
  if (x & 1) {
262
333
  x = -(x >> 1) - 1;
263
334
  }
264
335
  else {
265
336
  x = x >> 1;
266
337
  }
338
+ // Counts are relative after the first
267
339
  if (counts.length > 2) {
268
340
  x += counts[counts.length - 2];
269
341
  }
@@ -271,14 +343,23 @@ function decodeCompressedRle(s) {
271
343
  }
272
344
  return counts;
273
345
  }
346
+ // =====================================================================
347
+ // Minimal PNG encoder (grayscale 8-bit)
348
+ // =====================================================================
349
+ /**
350
+ * Encode a grayscale 8-bit image as PNG using Node.js built-in zlib.
351
+ * No external dependencies required.
352
+ */
274
353
  function encodePng(pixels, width, height) {
275
354
  if (width === 0 || height === 0) {
355
+ // Return a valid 0x0 PNG
276
356
  return createMinimalPng(0, 0, Buffer.alloc(0));
277
357
  }
358
+ // Build raw scanlines: each row is prefixed with filter byte 0 (None)
278
359
  const rawData = Buffer.alloc(height * (1 + width));
279
360
  for (let y = 0; y < height; y++) {
280
361
  const rowOffset = y * (1 + width);
281
- rawData[rowOffset] = 0;
362
+ rawData[rowOffset] = 0; // filter: None
282
363
  pixels.copy(rawData, rowOffset + 1, y * width, (y + 1) * width);
283
364
  }
284
365
  const compressed = zlib.deflateSync(rawData);
@@ -286,14 +367,15 @@ function encodePng(pixels, width, height) {
286
367
  }
287
368
  function createMinimalPng(width, height, compressedData) {
288
369
  const signature = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]);
370
+ // IHDR: width(4) + height(4) + bitDepth(1) + colorType(1) + compression(1) + filter(1) + interlace(1) = 13 bytes
289
371
  const ihdrData = Buffer.alloc(13);
290
372
  ihdrData.writeUInt32BE(width, 0);
291
373
  ihdrData.writeUInt32BE(height, 4);
292
- ihdrData[8] = 8;
293
- ihdrData[9] = 0;
294
- ihdrData[10] = 0;
295
- ihdrData[11] = 0;
296
- ihdrData[12] = 0;
374
+ ihdrData[8] = 8; // bit depth
375
+ ihdrData[9] = 0; // color type: grayscale
376
+ ihdrData[10] = 0; // compression
377
+ ihdrData[11] = 0; // filter
378
+ ihdrData[12] = 0; // interlace
297
379
  const ihdr = pngChunk('IHDR', ihdrData);
298
380
  const idat = pngChunk('IDAT', compressedData);
299
381
  const iend = pngChunk('IEND', Buffer.alloc(0));
@@ -308,6 +390,7 @@ function pngChunk(type, data) {
308
390
  crc.writeUInt32BE(crc32(crcData) >>> 0, 0);
309
391
  return Buffer.concat([length, typeBuffer, data, crc]);
310
392
  }
393
+ // CRC-32 lookup table
311
394
  const CRC_TABLE = (() => {
312
395
  const table = new Uint32Array(256);
313
396
  for (let n = 0; n < 256; n++) {
@@ -331,6 +414,9 @@ function crc32(buf) {
331
414
  }
332
415
  return crc ^ 0xffffffff;
333
416
  }
417
+ // =====================================================================
418
+ // Helpers
419
+ // =====================================================================
334
420
  function rowsToBatch(rows) {
335
421
  const keys = Object.keys(rows[0]);
336
422
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"coco.js","sourceRoot":"","sources":["../../../../src/node/formats/coco.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coco.js","sourceRoot":"","sources":["../../../../src/node/formats/coco.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"coco_panoptic.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAqBnE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAOxC,MAAM,IAAI,SAAS;IAOnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOnC,aAAa,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA2D/B"}
1
+ {"version":3,"file":"coco_panoptic.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAqBnE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAOxC,MAAM,IAAI,SAAS;IAOnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOnC,aAAa,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA4D/B"}
@@ -74,6 +74,7 @@ class CocoPanoptic {
74
74
  }
75
75
  const raw = fs.readFileSync(this.annotationsPath, 'utf-8');
76
76
  const coco = JSON.parse(raw);
77
+ // Build lookup: image_id -> annotation
77
78
  const annByImage = new Map();
78
79
  for (const ann of coco.annotations ?? []) {
79
80
  annByImage.set(ann.image_id, ann);
@@ -1 +1 @@
1
- {"version":3,"file":"coco_panoptic.js","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coco_panoptic.js","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,24 @@
1
+ /**
2
+ * LeRobot dataset format classes for DeepLake managed ingestion.
3
+ *
4
+ * Implements the normalized 3-table design:
5
+ * - LeRobotTasks: task_index + task description (from tasks.jsonl)
6
+ * - LeRobotEpisodes: episode metadata + 3 camera videos (from episodes.jsonl + mp4s)
7
+ * - LeRobotFrames: per-frame state/action scalars (from parquet files)
8
+ *
9
+ * LeRobotTasks and LeRobotEpisodes use only Node.js built-ins.
10
+ * LeRobotFrames requires an optional parquet reader (e.g. `parquetjs`).
11
+ */
1
12
  import type { Batch, Format, SchemaMap } from '../../shared/types';
2
13
  export interface LeRobotTasksOptions {
14
+ /** Root directory of the LeRobot dataset. */
3
15
  datasetDir: string;
4
16
  }
17
+ /**
18
+ * Format for LeRobot tasks.jsonl — one row per task.
19
+ *
20
+ * Columns: task_index (int), task (string)
21
+ */
5
22
  export declare class LeRobotTasks implements Format {
6
23
  private tasksFile;
7
24
  constructor(options: LeRobotTasksOptions);
@@ -9,10 +26,23 @@ export declare class LeRobotTasks implements Format {
9
26
  normalize(): Generator<Batch>;
10
27
  }
11
28
  export interface LeRobotFramesOptions {
29
+ /** Root directory of the LeRobot dataset. */
12
30
  datasetDir: string;
31
+ /** First chunk index (inclusive, default 0). */
13
32
  chunkStart?: number;
33
+ /** Last chunk index (inclusive, default 10). */
14
34
  chunkEnd?: number;
15
35
  }
36
+ /**
37
+ * Format for LeRobot parquet files — one row per frame with unpacked scalars.
38
+ *
39
+ * Reads parquet files for the specified chunk range and unpacks
40
+ * observation.state[8] and action[7] into individual float columns.
41
+ *
42
+ * Requires a parquet reader. Tries to use `@duckdb/node-bindings` first,
43
+ * then falls back to `parquetjs`. If neither is available, throws an error
44
+ * with installation instructions.
45
+ */
16
46
  export declare class LeRobotFrames implements Format {
17
47
  private datasetDir;
18
48
  private chunkStart;
@@ -22,10 +52,22 @@ export declare class LeRobotFrames implements Format {
22
52
  normalize(): Generator<Batch>;
23
53
  }
24
54
  export interface LeRobotEpisodesOptions {
55
+ /** Root directory of the LeRobot dataset. */
25
56
  datasetDir: string;
57
+ /** First chunk index (inclusive, default 0). */
26
58
  chunkStart?: number;
59
+ /** Last chunk index (inclusive, default 10). */
27
60
  chunkEnd?: number;
28
61
  }
62
+ /**
63
+ * Format for LeRobot episodes — one row per episode with video data.
64
+ *
65
+ * Pulls video files lazily per-chunk via git-lfs to manage disk space.
66
+ * After processing each chunk's videos, restores LFS pointers.
67
+ *
68
+ * Columns: episode_index (int), task (str), length (int),
69
+ * exterior_1_video (bytes), exterior_2_video (bytes), wrist_video (bytes)
70
+ */
29
71
  export declare class LeRobotEpisodes implements Format {
30
72
  private datasetDir;
31
73
  private chunkStart;
@@ -1 +1 @@
1
- {"version":3,"file":"lerobot.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/lerobot.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMnE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAIxC,MAAM,IAAI,SAAS;IAIlB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA0B/B;AAkBD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,oBAAoB;IAMzC,MAAM,IAAI,SAAS;IAIlB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA8D/B;AAeD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAgB,YAAW,MAAM;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAuC;gBAE5C,OAAO,EAAE,sBAAsB;IA4B3C,MAAM,IAAI,SAAS;IAQnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQlC,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;IAiF9B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qBAAqB;CAmC9B"}
1
+ {"version":3,"file":"lerobot.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/lerobot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMnE,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAIxC,MAAM,IAAI,SAAS;IAIlB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA0B/B;AAkBD,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,oBAAoB;IAMzC,MAAM,IAAI,SAAS;IAIlB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CAgE/B;AAeD,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,YAAW,MAAM;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAuC;gBAE5C,OAAO,EAAE,sBAAsB;IA8B3C,MAAM,IAAI,SAAS;IAQnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQlC,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;IAyF9B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qBAAqB;CAmC9B"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ /**
3
+ * LeRobot dataset format classes for DeepLake managed ingestion.
4
+ *
5
+ * Implements the normalized 3-table design:
6
+ * - LeRobotTasks: task_index + task description (from tasks.jsonl)
7
+ * - LeRobotEpisodes: episode metadata + 3 camera videos (from episodes.jsonl + mp4s)
8
+ * - LeRobotFrames: per-frame state/action scalars (from parquet files)
9
+ *
10
+ * LeRobotTasks and LeRobotEpisodes use only Node.js built-ins.
11
+ * LeRobotFrames requires an optional parquet reader (e.g. `parquetjs`).
12
+ */
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,6 +48,11 @@ exports.LeRobotEpisodes = exports.LeRobotFrames = exports.LeRobotTasks = void 0;
37
48
  const fs = __importStar(require("fs"));
38
49
  const path = __importStar(require("path"));
39
50
  const child_process_1 = require("child_process");
51
+ /**
52
+ * Format for LeRobot tasks.jsonl — one row per task.
53
+ *
54
+ * Columns: task_index (int), task (string)
55
+ */
40
56
  class LeRobotTasks {
41
57
  tasksFile;
42
58
  constructor(options) {
@@ -82,6 +98,16 @@ const ACTION_NAMES = [
82
98
  'action_roll', 'action_pitch', 'action_yaw',
83
99
  'action_gripper',
84
100
  ];
101
+ /**
102
+ * Format for LeRobot parquet files — one row per frame with unpacked scalars.
103
+ *
104
+ * Reads parquet files for the specified chunk range and unpacks
105
+ * observation.state[8] and action[7] into individual float columns.
106
+ *
107
+ * Requires a parquet reader. Tries to use `@duckdb/node-bindings` first,
108
+ * then falls back to `parquetjs`. If neither is available, throws an error
109
+ * with installation instructions.
110
+ */
85
111
  class LeRobotFrames {
86
112
  datasetDir;
87
113
  chunkStart;
@@ -122,10 +148,12 @@ class LeRobotFrames {
122
148
  batch['frame_index'].push(row.frame_index);
123
149
  batch['task_index'].push(row.task_index);
124
150
  batch['timestamp'].push(row.timestamp);
151
+ // Unpack observation.state[8]
125
152
  const state = row['observation.state'] ?? [];
126
153
  for (let i = 0; i < STATE_NAMES.length; i++) {
127
154
  batch[STATE_NAMES[i]].push(state[i] ?? 0);
128
155
  }
156
+ // Unpack action[7]
129
157
  const action = row['action'] ?? [];
130
158
  for (let i = 0; i < ACTION_NAMES.length; i++) {
131
159
  batch[ACTION_NAMES[i]].push(action[i] ?? 0);
@@ -158,6 +186,15 @@ const VIDEO_KEYS = [
158
186
  ];
159
187
  const COL_NAMES = ['exterior_1_video', 'exterior_2_video', 'wrist_video'];
160
188
  const EPISODE_COLUMNS = ['episode_index', 'task', 'length', ...COL_NAMES];
189
+ /**
190
+ * Format for LeRobot episodes — one row per episode with video data.
191
+ *
192
+ * Pulls video files lazily per-chunk via git-lfs to manage disk space.
193
+ * After processing each chunk's videos, restores LFS pointers.
194
+ *
195
+ * Columns: episode_index (int), task (str), length (int),
196
+ * exterior_1_video (bytes), exterior_2_video (bytes), wrist_video (bytes)
197
+ */
161
198
  class LeRobotEpisodes {
162
199
  datasetDir;
163
200
  chunkStart;
@@ -168,6 +205,7 @@ class LeRobotEpisodes {
168
205
  this.datasetDir = options.datasetDir;
169
206
  this.chunkStart = options.chunkStart ?? 0;
170
207
  this.chunkEnd = options.chunkEnd ?? 10;
208
+ // Load tasks for denormalization
171
209
  const tasksFile = path.join(this.datasetDir, 'meta', 'tasks.jsonl');
172
210
  this._tasks = new Map();
173
211
  if (fs.existsSync(tasksFile)) {
@@ -179,6 +217,7 @@ class LeRobotEpisodes {
179
217
  this._tasks.set(rec.task_index, rec.task);
180
218
  }
181
219
  }
220
+ // Load episodes metadata
182
221
  const episodesFile = path.join(this.datasetDir, 'meta', 'episodes.jsonl');
183
222
  this._episodes = new Map();
184
223
  if (fs.existsSync(episodesFile)) {
@@ -208,10 +247,12 @@ class LeRobotEpisodes {
208
247
  *normalize() {
209
248
  for (let chunkIdx = this.chunkStart; chunkIdx <= this.chunkEnd; chunkIdx++) {
210
249
  const chunk = `chunk-${String(chunkIdx).padStart(3, '0')}`;
250
+ // Pull this chunk's videos
211
251
  this._pullChunkVideos(chunkIdx);
212
252
  const chunkDir = path.join(this.datasetDir, 'videos', chunk);
213
253
  if (!fs.existsSync(chunkDir))
214
254
  continue;
255
+ // Find episodes from the first camera dir
215
256
  const firstCam = path.join(chunkDir, VIDEO_KEYS[0]);
216
257
  if (!fs.existsSync(firstCam))
217
258
  continue;
@@ -233,8 +274,10 @@ class LeRobotEpisodes {
233
274
  const epMeta = this._episodes.get(epIdx);
234
275
  if (!epMeta)
235
276
  continue;
277
+ // Read task text
236
278
  const taskList = epMeta.tasks ?? [];
237
279
  const taskText = taskList.filter(Boolean).join('; ');
280
+ // Read all 3 camera videos
238
281
  const videos = [];
239
282
  let skip = false;
240
283
  for (const vkey of VIDEO_KEYS) {
@@ -245,6 +288,7 @@ class LeRobotEpisodes {
245
288
  }
246
289
  const stat = fs.statSync(vpath);
247
290
  if (stat.size < 200) {
291
+ // Still an LFS pointer, not real data
248
292
  skip = true;
249
293
  break;
250
294
  }
@@ -260,14 +304,17 @@ class LeRobotEpisodes {
260
304
  }
261
305
  if (batch.episode_index.length >= 50) {
262
306
  yield batch;
307
+ // Reset using known columns only.
263
308
  for (const key of EPISODE_COLUMNS) {
264
309
  batch[key] = [];
265
310
  }
266
311
  }
267
312
  }
313
+ // Yield remaining
268
314
  if (batch.episode_index.length > 0) {
269
315
  yield batch;
270
316
  }
317
+ // Free disk: restore LFS pointers
271
318
  this._restoreChunkPointers(chunkIdx);
272
319
  }
273
320
  }
@@ -281,7 +328,7 @@ class LeRobotEpisodes {
281
328
  });
282
329
  }
283
330
  catch {
284
- // Non-fatal
331
+ // Non-fatal — may not be a git-lfs repo
285
332
  }
286
333
  }
287
334
  _restoreChunkPointers(chunkIdx) {
@@ -322,14 +369,25 @@ exports.LeRobotEpisodes = LeRobotEpisodes;
322
369
  // =====================================================================
323
370
  // Parquet reading helper
324
371
  // =====================================================================
372
+ /**
373
+ * Read a parquet file and return rows as plain objects.
374
+ * Tries `parquetjs` (pure JS). Returns null if no reader is available.
375
+ */
325
376
  function readParquetFile(filePath) {
377
+ // Try parquetjs (synchronous via parquet-wasm or similar)
378
+ // For now, use a simple approach: try to require parquetjs-lite
379
+ // which provides a synchronous reader
326
380
  try {
381
+ // Dynamic require to avoid hard dependency
327
382
  const { ParquetReader } = require('parquetjs-lite');
383
+ // parquetjs is async-only, so we use a sync wrapper approach
384
+ // This is a simplified fallback — real usage should use the async API
328
385
  throw new Error('parquetjs requires async reading — use LeRobotFrames with async normalize');
329
386
  }
330
387
  catch {
331
388
  // No parquet reader available
332
389
  }
390
+ // Fallback: try reading with duckdb CLI if available
333
391
  try {
334
392
  const result = (0, child_process_1.execFileSync)('duckdb', ['-json', '-c', `SELECT * FROM read_parquet('${filePath}')`], { timeout: 30_000, stdio: ['pipe', 'pipe', 'pipe'], maxBuffer: 100 * 1024 * 1024 });
335
393
  return JSON.parse(result.toString('utf-8'));
@@ -337,6 +395,7 @@ function readParquetFile(filePath) {
337
395
  catch {
338
396
  // duckdb not available
339
397
  }
398
+ // Fallback: try python one-liner
340
399
  try {
341
400
  const pyScript = `import pandas,json,sys;df=pandas.read_parquet("${filePath}");print(json.dumps([{k:v if not hasattr(v,'tolist') else v.tolist() for k,v in r.items()} for _,r in df.iterrows()]))`;
342
401
  const result = (0, child_process_1.execFileSync)('python3', ['-c', pyScript], { timeout: 30_000, stdio: ['pipe', 'pipe', 'pipe'], maxBuffer: 100 * 1024 * 1024 });