@ioai/lerobot-studio 1.2.0 → 1.2.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.
@@ -14,60 +14,57 @@ function a(t) {
14
14
  function o(e) {
15
15
  return e ? t.find((t) => e[t] != null) ?? null : null;
16
16
  }
17
- function s(e) {
18
- return a(e) != null;
19
- }
20
17
  //#endregion
21
18
  //#region src/core/subtask/subtaskPlan.ts
22
- function c(e) {
19
+ function s(e) {
23
20
  return e == null ? "" : String(e).trim();
24
21
  }
25
- function l(e) {
22
+ function c(e) {
26
23
  if (e == null) return null;
27
24
  let t = Number(e);
28
25
  return !Number.isSafeInteger(t) || t < 0 ? null : t;
29
26
  }
30
- function u(e) {
27
+ function l(e) {
31
28
  return `Subtask ${e}`;
32
29
  }
33
- function d(e, t = {}) {
30
+ function ee(e, t = {}) {
34
31
  let n = { ...t };
35
- for (let t of e) t != null && (n[t] == null || n[t] === "") && (n[t] = u(t));
32
+ for (let t of e) t != null && (n[t] == null || n[t] === "") && (n[t] = l(t));
36
33
  return n;
37
34
  }
38
- function f(e) {
39
- let t = Array.from(new Set(e.map((e) => c(e)).filter((e) => e.length > 0))).sort(), n = {};
35
+ function te(e) {
36
+ let t = Array.from(new Set(e.map((e) => s(e)).filter((e) => e.length > 0))).sort(), n = {};
40
37
  return t.forEach((e, t) => {
41
38
  n[t] = e;
42
39
  }), n;
43
40
  }
44
- function ee(e, t) {
41
+ function ne(e, t) {
45
42
  let n = [];
46
43
  if (t) for (let e of Object.values(t)) {
47
- let t = c(e);
44
+ let t = s(e);
48
45
  t && n.push(t);
49
46
  }
50
47
  for (let t of e) if (t) for (let e of t) {
51
- let t = c(e.label);
48
+ let t = s(e.label);
52
49
  t && n.push(t);
53
50
  }
54
51
  return n;
55
52
  }
56
- function p(e, t) {
53
+ function u(e, t) {
57
54
  if (t == null) return null;
58
55
  let n = e[t];
59
56
  return n != null && n !== "" ? n : null;
60
57
  }
61
- function m(e, t) {
62
- let n = c(t);
58
+ function re(e, t) {
59
+ let n = s(t);
63
60
  if (n) {
64
61
  for (let [t, r] of Object.entries(e)) if (r === n) return Number(t);
65
62
  }
66
63
  }
67
- function h(e, t) {
64
+ function d(e, t) {
68
65
  if (!Number.isSafeInteger(t) || t < 0) throw Error(`Invalid episode length ${t}`);
69
66
  if (!Number.isSafeInteger(e.startFrame) || !Number.isSafeInteger(e.endFrame)) throw Error("Subtask segment frames must be integers");
70
- let n = c(e.label);
67
+ let n = s(e.label);
71
68
  if (!n) throw Error("Subtask label is required");
72
69
  if (e.startFrame < 0 || e.endFrame < 0) throw Error("Subtask segment frames must be non-negative");
73
70
  if (e.startFrame > e.endFrame) throw Error("Subtask segment start must be at or before end");
@@ -78,31 +75,31 @@ function h(e, t) {
78
75
  label: n
79
76
  };
80
77
  }
81
- function g(e, t) {
78
+ function f(e, t) {
82
79
  return e.startFrame <= t.endFrame && t.startFrame <= e.endFrame;
83
80
  }
84
- function _(e, t, n) {
85
- return e.find((e, r) => r !== n && g(e, t));
81
+ function p(e, t, n) {
82
+ return e.find((e, r) => r !== n && f(e, t));
86
83
  }
87
- function v(e) {
84
+ function m(e) {
88
85
  return [...e].sort((e, t) => e.startFrame - t.startFrame);
89
86
  }
90
- function y(e, t, n) {
91
- let r = h(t, n), i = _(e, r);
87
+ function ie(e, t, n) {
88
+ let r = d(t, n), i = p(e, r);
92
89
  if (i) throw Error(`Subtask "${r.label}" overlaps "${i.label}" (${i.startFrame}-${i.endFrame})`);
93
- return v([...e, r]);
90
+ return m([...e, r]);
94
91
  }
95
- function b(e, t, n, r) {
92
+ function h(e, t, n, r) {
96
93
  if (!Number.isSafeInteger(t) || t < 0 || t >= e.length) throw Error(`Subtask segment index ${t} is out of range`);
97
- let i = h(n, r), a = _(e, i, t);
94
+ let i = d(n, r), a = p(e, i, t);
98
95
  if (a) throw Error(`Subtask "${i.label}" overlaps "${a.label}" (${a.startFrame}-${a.endFrame})`);
99
96
  let o = [...e];
100
- return o[t] = i, v(o);
97
+ return o[t] = i, m(o);
101
98
  }
102
- function x(e, t) {
99
+ function g(e, t) {
103
100
  let n = [], r = null;
104
101
  return e.forEach((e, i) => {
105
- let a = p(t, l(e));
102
+ let a = u(t, c(e));
106
103
  if (a == null) {
107
104
  r &&= (n.push(r), null);
108
105
  return;
@@ -121,13 +118,94 @@ function x(e, t) {
121
118
  };
122
119
  }), r && n.push(r), n;
123
120
  }
124
- function te(e, t) {
121
+ function _(e, t) {
122
+ return Number.isSafeInteger(t) && t > 0 && Number.isSafeInteger(e.startFrame) && Number.isSafeInteger(e.endFrame) && e.startFrame >= 0 && e.endFrame >= e.startFrame && e.endFrame < t;
123
+ }
124
+ function v(e, t) {
125
+ return e.filter((e) => _(e, t));
126
+ }
127
+ function y(e, t) {
128
+ return t <= 0 ? 0 : Math.max(0, Math.min(t - 1, e));
129
+ }
130
+ function b(e, t) {
131
+ if (!Number.isSafeInteger(t) || t <= 0) return [];
132
+ let n = m(v(e, t)), r = [], i = 0;
133
+ return n.forEach((e, t) => {
134
+ e.startFrame > i && r.push({
135
+ kind: "gap",
136
+ startFrame: i,
137
+ endFrame: e.startFrame - 1
138
+ }), r.push({
139
+ kind: "segment",
140
+ index: t,
141
+ startFrame: e.startFrame,
142
+ endFrame: e.endFrame,
143
+ label: e.label
144
+ }), i = e.endFrame + 1;
145
+ }), i < t && r.push({
146
+ kind: "gap",
147
+ startFrame: i,
148
+ endFrame: t - 1
149
+ }), r;
150
+ }
151
+ function x(e, t) {
152
+ let n = b(e, t);
153
+ for (let e = n.length - 1; e >= 0; e--) {
154
+ let t = n[e];
155
+ if (t.kind === "gap") return {
156
+ startFrame: t.startFrame,
157
+ endFrame: t.endFrame
158
+ };
159
+ }
160
+ return null;
161
+ }
162
+ function S(e, t, n) {
163
+ if (!Number.isSafeInteger(t) || !Number.isSafeInteger(n) || t < 0 || t >= n || n <= 0) return null;
164
+ let r = m(v(e, n));
165
+ if (r.some((e) => t >= e.startFrame && t <= e.endFrame)) return null;
166
+ let i = 0;
167
+ for (let e of r) if (e.endFrame < t) i = e.endFrame + 1;
168
+ else break;
169
+ return i > t ? null : {
170
+ startFrame: i,
171
+ endFrame: t
172
+ };
173
+ }
174
+ function C(e, t, n, r, i) {
175
+ let a = m(v(e, i));
176
+ if (!Number.isSafeInteger(t) || t < 0 || t >= a.length) throw Error(`Subtask segment index ${t} is out of range`);
177
+ let o = a[t], s = a.map((e) => ({ ...e }));
178
+ if (n === "end") {
179
+ let e = s[t + 1], n = o.startFrame, a = e ? e.endFrame : i - 1, c = y(Math.max(n, Math.min(a, r)), i);
180
+ s[t] = {
181
+ ...o,
182
+ endFrame: c
183
+ }, e && c >= e.startFrame && (s[t + 1] = {
184
+ ...e,
185
+ startFrame: Math.min(c + 1, e.endFrame)
186
+ });
187
+ } else {
188
+ let e = s[t - 1], n = o.endFrame, a = e ? e.startFrame : 0, c = y(Math.max(a, Math.min(n, r)), i);
189
+ s[t] = {
190
+ ...o,
191
+ startFrame: c
192
+ }, e && c <= e.endFrame && (s[t - 1] = {
193
+ ...e,
194
+ endFrame: Math.max(e.startFrame, c - 1)
195
+ });
196
+ }
197
+ return s.map((e) => d(e, i));
198
+ }
199
+ function w(e, t) {
125
200
  if (!Number.isSafeInteger(e) || e < 0) throw Error(`Invalid episode length ${e}`);
201
+ if (e === 0) return {
202
+ labeledFrames: 0,
203
+ totalFrames: 0,
204
+ gaps: [],
205
+ complete: !1
206
+ };
126
207
  let n = Array(e).fill(!1);
127
- for (let r of t) {
128
- let t = h(r, e);
129
- for (let e = t.startFrame; e <= t.endFrame; e++) n[e] = !0;
130
- }
208
+ for (let r of v(t, e)) for (let e = r.startFrame; e <= r.endFrame; e++) n[e] = !0;
131
209
  let r = [], i = null, a = 0;
132
210
  for (let t = 0; t < e; t++) n[t] ? (a += 1, i != null && (r.push({
133
211
  startFrame: i,
@@ -143,39 +221,34 @@ function te(e, t) {
143
221
  complete: e > 0 && r.length === 0
144
222
  };
145
223
  }
146
- function ne(e, t) {
147
- if (!Number.isSafeInteger(t) || t < 0) return null;
148
- let n = e.find((e) => t >= e.startFrame && t <= e.endFrame);
149
- return n ? n.label : null;
150
- }
151
- function S(e, t) {
224
+ function T(e, t) {
152
225
  return e.map((e) => {
153
- let n = c(e);
154
- return n ? m(t, n) ?? null : null;
226
+ let n = s(e);
227
+ return n ? re(t, n) ?? null : null;
155
228
  });
156
229
  }
157
- function C(e) {
230
+ function E(e) {
158
231
  let t = {};
159
232
  return e.forEach((e, n) => {
160
- let r = c(e.label);
233
+ let r = s(e.label);
161
234
  if (!r) return;
162
- let i = l(e.subtaskIndex) ?? n;
235
+ let i = c(e.subtaskIndex) ?? n;
163
236
  t[i] = r;
164
237
  }), t;
165
238
  }
166
239
  //#endregion
167
240
  //#region node_modules/comlink/dist/esm/comlink.mjs
168
- var w = Symbol("Comlink.proxy"), T = Symbol("Comlink.endpoint"), E = Symbol("Comlink.releaseProxy"), D = Symbol("Comlink.finalizer"), O = Symbol("Comlink.thrown"), k = (e) => typeof e == "object" && !!e || typeof e == "function", A = /* @__PURE__ */ new Map([["proxy", {
169
- canHandle: (e) => k(e) && e[w],
241
+ var D = Symbol("Comlink.proxy"), O = Symbol("Comlink.endpoint"), k = Symbol("Comlink.releaseProxy"), A = Symbol("Comlink.finalizer"), j = Symbol("Comlink.thrown"), M = (e) => typeof e == "object" && !!e || typeof e == "function", N = /* @__PURE__ */ new Map([["proxy", {
242
+ canHandle: (e) => M(e) && e[D],
170
243
  serialize(e) {
171
244
  let { port1: t, port2: n } = new MessageChannel();
172
- return M(e, t), [n, [n]];
245
+ return P(e, t), [n, [n]];
173
246
  },
174
247
  deserialize(e) {
175
- return e.start(), F(e);
248
+ return e.start(), L(e);
176
249
  }
177
250
  }], ["throw", {
178
- canHandle: (e) => k(e) && O in e,
251
+ canHandle: (e) => M(e) && j in e,
179
252
  serialize({ value: e }) {
180
253
  let t;
181
254
  return t = e instanceof Error ? {
@@ -194,14 +267,14 @@ var w = Symbol("Comlink.proxy"), T = Symbol("Comlink.endpoint"), E = Symbol("Com
194
267
  throw e.isError ? Object.assign(Error(e.value.message), e.value) : e.value;
195
268
  }
196
269
  }]]);
197
- function j(e, t) {
270
+ function ae(e, t) {
198
271
  for (let n of e) if (t === n || n === "*" || n instanceof RegExp && n.test(t)) return !0;
199
272
  return !1;
200
273
  }
201
- function M(e, t = globalThis, n = ["*"]) {
274
+ function P(e, t = globalThis, n = ["*"]) {
202
275
  t.addEventListener("message", function r(i) {
203
276
  if (!i || !i.data) return;
204
- if (!j(n, i.origin)) {
277
+ if (!ae(n, i.origin)) {
205
278
  console.warn(`Invalid origin '${i.origin}' for comlink proxy`);
206
279
  return;
207
280
  }
@@ -219,12 +292,12 @@ function M(e, t = globalThis, n = ["*"]) {
219
292
  l = n.apply(t, c);
220
293
  break;
221
294
  case "CONSTRUCT":
222
- l = q(new n(...c));
295
+ l = se(new n(...c));
223
296
  break;
224
297
  case "ENDPOINT":
225
298
  {
226
299
  let { port1: t, port2: n } = new MessageChannel();
227
- M(e, n), l = K(t, [t]);
300
+ P(e, n), l = oe(t, [t]);
228
301
  }
229
302
  break;
230
303
  case "RELEASE":
@@ -235,31 +308,31 @@ function M(e, t = globalThis, n = ["*"]) {
235
308
  } catch (e) {
236
309
  l = {
237
310
  value: e,
238
- [O]: 0
311
+ [j]: 0
239
312
  };
240
313
  }
241
314
  Promise.resolve(l).catch((e) => ({
242
315
  value: e,
243
- [O]: 0
316
+ [j]: 0
244
317
  })).then((n) => {
245
318
  let [i, s] = J(n);
246
- t.postMessage(Object.assign(Object.assign({}, i), { id: a }), s), o === "RELEASE" && (t.removeEventListener("message", r), P(t), D in e && typeof e[D] == "function" && e[D]());
319
+ t.postMessage(Object.assign(Object.assign({}, i), { id: a }), s), o === "RELEASE" && (t.removeEventListener("message", r), I(t), A in e && typeof e[A] == "function" && e[A]());
247
320
  }).catch((e) => {
248
321
  let [n, r] = J({
249
322
  value: /* @__PURE__ */ TypeError("Unserializable return value"),
250
- [O]: 0
323
+ [j]: 0
251
324
  });
252
325
  t.postMessage(Object.assign(Object.assign({}, n), { id: a }), r);
253
326
  });
254
327
  }), t.start && t.start();
255
328
  }
256
- function N(e) {
329
+ function F(e) {
257
330
  return e.constructor.name === "MessagePort";
258
331
  }
259
- function P(e) {
260
- N(e) && e.close();
332
+ function I(e) {
333
+ F(e) && e.close();
261
334
  }
262
- function F(e, t) {
335
+ function L(e, t) {
263
336
  let n = /* @__PURE__ */ new Map();
264
337
  return e.addEventListener("message", function(e) {
265
338
  let { data: t } = e;
@@ -270,32 +343,32 @@ function F(e, t) {
270
343
  } finally {
271
344
  n.delete(t.id);
272
345
  }
273
- }), H(e, n, [], t);
346
+ }), W(e, n, [], t);
274
347
  }
275
- function I(e) {
348
+ function R(e) {
276
349
  if (e) throw Error("Proxy has been released and is not useable");
277
350
  }
278
- function L(e) {
351
+ function z(e) {
279
352
  return X(e, /* @__PURE__ */ new Map(), { type: "RELEASE" }).then(() => {
280
- P(e);
353
+ I(e);
281
354
  });
282
355
  }
283
- var R = /* @__PURE__ */ new WeakMap(), z = "FinalizationRegistry" in globalThis && new FinalizationRegistry((e) => {
284
- let t = (R.get(e) || 0) - 1;
285
- R.set(e, t), t === 0 && L(e);
356
+ var B = /* @__PURE__ */ new WeakMap(), V = "FinalizationRegistry" in globalThis && new FinalizationRegistry((e) => {
357
+ let t = (B.get(e) || 0) - 1;
358
+ B.set(e, t), t === 0 && z(e);
286
359
  });
287
- function B(e, t) {
288
- let n = (R.get(t) || 0) + 1;
289
- R.set(t, n), z && z.register(e, t, e);
360
+ function H(e, t) {
361
+ let n = (B.get(t) || 0) + 1;
362
+ B.set(t, n), V && V.register(e, t, e);
290
363
  }
291
- function V(e) {
292
- z && z.unregister(e);
364
+ function U(e) {
365
+ V && V.unregister(e);
293
366
  }
294
- function H(e, t, n = [], r = function() {}) {
367
+ function W(e, t, n = [], r = function() {}) {
295
368
  let i = !1, a = new Proxy(r, {
296
369
  get(r, o) {
297
- if (I(i), o === E) return () => {
298
- V(a), L(e), t.clear(), i = !0;
370
+ if (R(i), o === k) return () => {
371
+ U(a), z(e), t.clear(), i = !0;
299
372
  };
300
373
  if (o === "then") {
301
374
  if (n.length === 0) return { then: () => a };
@@ -305,10 +378,10 @@ function H(e, t, n = [], r = function() {}) {
305
378
  }).then(Y);
306
379
  return r.then.bind(r);
307
380
  }
308
- return H(e, t, [...n, o]);
381
+ return W(e, t, [...n, o]);
309
382
  },
310
383
  set(r, a, o) {
311
- I(i);
384
+ R(i);
312
385
  let [s, c] = J(o);
313
386
  return X(e, t, {
314
387
  type: "SET",
@@ -317,11 +390,11 @@ function H(e, t, n = [], r = function() {}) {
317
390
  }, c).then(Y);
318
391
  },
319
392
  apply(r, a, o) {
320
- I(i);
393
+ R(i);
321
394
  let s = n[n.length - 1];
322
- if (s === T) return X(e, t, { type: "ENDPOINT" }).then(Y);
323
- if (s === "bind") return H(e, t, n.slice(0, -1));
324
- let [c, l] = W(o);
395
+ if (s === O) return X(e, t, { type: "ENDPOINT" }).then(Y);
396
+ if (s === "bind") return W(e, t, n.slice(0, -1));
397
+ let [c, l] = K(o);
325
398
  return X(e, t, {
326
399
  type: "APPLY",
327
400
  path: n.map((e) => e.toString()),
@@ -329,8 +402,8 @@ function H(e, t, n = [], r = function() {}) {
329
402
  }, l).then(Y);
330
403
  },
331
404
  construct(r, a) {
332
- I(i);
333
- let [o, s] = W(a);
405
+ R(i);
406
+ let [o, s] = K(a);
334
407
  return X(e, t, {
335
408
  type: "CONSTRUCT",
336
409
  path: n.map((e) => e.toString()),
@@ -338,24 +411,24 @@ function H(e, t, n = [], r = function() {}) {
338
411
  }, s).then(Y);
339
412
  }
340
413
  });
341
- return B(a, e), a;
414
+ return H(a, e), a;
342
415
  }
343
- function U(e) {
416
+ function G(e) {
344
417
  return Array.prototype.concat.apply([], e);
345
418
  }
346
- function W(e) {
419
+ function K(e) {
347
420
  let t = e.map(J);
348
- return [t.map((e) => e[0]), U(t.map((e) => e[1]))];
421
+ return [t.map((e) => e[0]), G(t.map((e) => e[1]))];
349
422
  }
350
- var G = /* @__PURE__ */ new WeakMap();
351
- function K(e, t) {
352
- return G.set(e, t), e;
423
+ var q = /* @__PURE__ */ new WeakMap();
424
+ function oe(e, t) {
425
+ return q.set(e, t), e;
353
426
  }
354
- function q(e) {
355
- return Object.assign(e, { [w]: !0 });
427
+ function se(e) {
428
+ return Object.assign(e, { [D]: !0 });
356
429
  }
357
430
  function J(e) {
358
- for (let [t, n] of A) if (n.canHandle(e)) {
431
+ for (let [t, n] of N) if (n.canHandle(e)) {
359
432
  let [r, i] = n.serialize(e);
360
433
  return [{
361
434
  type: "HANDLER",
@@ -366,21 +439,21 @@ function J(e) {
366
439
  return [{
367
440
  type: "RAW",
368
441
  value: e
369
- }, G.get(e) || []];
442
+ }, q.get(e) || []];
370
443
  }
371
444
  function Y(e) {
372
445
  switch (e.type) {
373
- case "HANDLER": return A.get(e.name).deserialize(e.value);
446
+ case "HANDLER": return N.get(e.name).deserialize(e.value);
374
447
  case "RAW": return e.value;
375
448
  }
376
449
  }
377
450
  function X(e, t, n, r) {
378
451
  return new Promise((i) => {
379
- let a = re();
452
+ let a = ce();
380
453
  t.set(a, i), e.start && e.start(), e.postMessage(Object.assign({ id: a }, n), r);
381
454
  });
382
455
  }
383
- function re() {
456
+ function ce() {
384
457
  return [
385
458
  ,
386
459
  ,
@@ -390,8 +463,8 @@ function re() {
390
463
  }
391
464
  //#endregion
392
465
  //#region src/platform/workers/parquet.worker.ts?worker&url
393
- var ie = "" + new URL("assets/parquet.worker-CWkXhGle.js", import.meta.url).href, ae = "" + new URL("assets/parquetImage.worker-DJN4vgFr.js", import.meta.url).href, Z = null, Q = /* @__PURE__ */ new WeakMap();
394
- async function oe() {
466
+ var le = "" + new URL("assets/parquet.worker-CWkXhGle.js", import.meta.url).href, ue = "" + new URL("assets/parquetImage.worker-DJN4vgFr.js", import.meta.url).href, Z = null, Q = /* @__PURE__ */ new WeakMap();
467
+ async function de() {
395
468
  return Z ||= import("./wasmUrl-BBlR-NOh.js").then(({ wasmUrl: e }) => fetch(e)).then((e) => {
396
469
  if (!e.ok) throw Error(`Failed to fetch WASM: ${e.status}`);
397
470
  return e.arrayBuffer();
@@ -400,7 +473,7 @@ async function oe() {
400
473
  }), (await Z).slice(0);
401
474
  }
402
475
  function $(e) {
403
- oe().then((t) => {
476
+ de().then((t) => {
404
477
  e.postMessage({
405
478
  type: "init-wasm",
406
479
  wasmBuffer: t
@@ -412,25 +485,25 @@ function $(e) {
412
485
  });
413
486
  });
414
487
  }
415
- function se() {
416
- let e = new Worker(ie, { type: "module" });
488
+ function fe() {
489
+ let e = new Worker(le, { type: "module" });
417
490
  $(e);
418
- let t = F(e);
491
+ let t = L(e);
419
492
  return Q.set(t, e), t;
420
493
  }
421
- function ce() {
422
- let e = new Worker(ae, { type: "module" });
494
+ function pe() {
495
+ let e = new Worker(ue, { type: "module" });
423
496
  $(e);
424
- let t = F(e);
497
+ let t = L(e);
425
498
  return Q.set(t, e), {
426
499
  remote: t,
427
500
  raw: e
428
501
  };
429
502
  }
430
- function le(e) {
431
- e[E]();
503
+ function me(e) {
504
+ e[k]();
432
505
  let t = Q.get(e);
433
506
  t && (t.terminate(), Q.delete(e));
434
507
  }
435
508
  //#endregion
436
- export { o as C, a as S, d as _, ee as a, i as b, m as c, l as d, c as f, v as g, x as h, f as i, S as l, b as m, se as n, te as o, C as p, le as r, ne as s, ce as t, y as u, n as v, s as x, r as y };
509
+ export { n as C, o as D, a as E, d as S, i as T, g as _, te as a, S as b, p as c, x as d, c as f, C as g, h, b as i, T as l, E as m, fe as n, ne as o, s as p, me as r, w as s, pe as t, ie as u, v, r as w, ee as x, m as y };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ioai/lerobot-studio",
3
3
  "private": false,
4
- "version": "1.2.0",
4
+ "version": "1.2.1",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.7.0",
7
7
  "scripts": {