labgate 0.5.36 → 0.5.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"results-mcp.js","sourceRoot":"","sources":["../../src/lib/results-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"results-mcp.js","sourceRoot":"","sources":["../../src/lib/results-mcp.ts"],"names":[],"mappings":"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"}
@@ -4,41 +4,106 @@ export interface LabgateResult {
4
4
  summary: string;
5
5
  details: string | null;
6
6
  source: string;
7
+ starred: boolean;
7
8
  session_id: string | null;
8
9
  workdir: string | null;
10
+ lineage_id: string;
11
+ version: number;
12
+ previous_result_id: string | null;
9
13
  tags: string[];
10
14
  artifacts: string[];
11
15
  metadata: Record<string, unknown> | null;
16
+ reproducibility: ResultReproducibility | null;
12
17
  created_at: string;
13
18
  updated_at: string;
14
19
  }
20
+ export type ResultExecutionStatus = 'not_run' | 'succeeded' | 'failed' | 'submitted' | 'precomputed';
21
+ export type ResultScriptKind = 'bash' | 'python' | 'slurm' | 'other';
22
+ export type ResultReproducibilityStrategy = 'run' | 'precomputed';
23
+ export interface ResultReproducibilityExecution {
24
+ status: ResultExecutionStatus;
25
+ command: string | null;
26
+ ran_at: string | null;
27
+ duration_ms: number | null;
28
+ exit_code: number | null;
29
+ signal: string | null;
30
+ stdout_tail: string | null;
31
+ stderr_tail: string | null;
32
+ slurm_job_id: string | null;
33
+ }
34
+ export interface ResultReproducibility {
35
+ script_path: string | null;
36
+ script_kind: ResultScriptKind;
37
+ script_sha256: string | null;
38
+ input_files: string[];
39
+ runtime: string | null;
40
+ requirements: string[];
41
+ strategy: ResultReproducibilityStrategy;
42
+ precomputed_reason: string | null;
43
+ execution: ResultReproducibilityExecution | null;
44
+ }
45
+ export interface ResultReproducibilityExecutionInput {
46
+ status?: string;
47
+ command?: string | null;
48
+ ran_at?: string | null;
49
+ duration_ms?: number | null;
50
+ exit_code?: number | null;
51
+ signal?: string | null;
52
+ stdout_tail?: string | null;
53
+ stderr_tail?: string | null;
54
+ slurm_job_id?: string | null;
55
+ }
56
+ export interface ResultReproducibilityInput {
57
+ script_path?: string | null;
58
+ script_kind?: string;
59
+ script_sha256?: string | null;
60
+ input_files?: string[];
61
+ runtime?: string | null;
62
+ requirements?: string[];
63
+ strategy?: string;
64
+ precomputed_reason?: string | null;
65
+ execution?: ResultReproducibilityExecutionInput | null;
66
+ }
15
67
  export interface CreateResultInput {
16
68
  id?: string;
17
69
  title: string;
18
70
  summary?: string;
19
71
  details?: string | null;
20
72
  source?: string;
73
+ starred?: boolean;
21
74
  session_id?: string | null;
22
75
  workdir?: string | null;
76
+ lineage_id?: string;
77
+ version?: number;
78
+ previous_result_id?: string | null;
79
+ version_of?: string;
23
80
  tags?: string[];
24
81
  artifacts?: string[];
25
82
  metadata?: Record<string, unknown> | null;
83
+ reproducibility?: ResultReproducibilityInput | null;
26
84
  }
27
85
  export interface UpdateResultInput {
28
86
  title?: string;
29
87
  summary?: string;
30
88
  details?: string | null;
31
89
  source?: string;
90
+ starred?: boolean;
32
91
  session_id?: string | null;
33
92
  workdir?: string | null;
93
+ lineage_id?: string;
94
+ version?: number;
95
+ previous_result_id?: string | null;
34
96
  tags?: string[];
35
97
  artifacts?: string[];
36
98
  metadata?: Record<string, unknown> | null;
99
+ reproducibility?: ResultReproducibilityInput | null;
37
100
  }
38
101
  export interface ListResultsOptions {
39
102
  search?: string;
40
103
  tag?: string;
41
104
  source?: string;
105
+ lineage?: string;
106
+ starred?: boolean;
42
107
  limit?: number;
43
108
  offset?: number;
44
109
  }
@@ -52,6 +117,7 @@ export declare class ResultsStore {
52
117
  getPath(): string;
53
118
  listResults(opts?: ListResultsOptions): ListResultsResult;
54
119
  getResult(id: string): LabgateResult | null;
120
+ listResultVersions(idOrLineage: string): LabgateResult[];
55
121
  createResult(input: CreateResultInput): LabgateResult;
56
122
  updateResult(id: string, patch: UpdateResultInput): LabgateResult | null;
57
123
  deleteResult(id: string): boolean;
@@ -36,6 +36,11 @@ function sanitizeSource(value) {
36
36
  return 'unknown';
37
37
  return source;
38
38
  }
39
+ function sanitizeBoolean(value, fallback = false) {
40
+ if (typeof value === 'boolean')
41
+ return value;
42
+ return fallback;
43
+ }
39
44
  function sanitizeStringArray(value, maxItemLen, maxItems) {
40
45
  if (!Array.isArray(value))
41
46
  return [];
@@ -74,6 +79,167 @@ function sanitizeMetadata(value) {
74
79
  }
75
80
  return Object.keys(out).length > 0 ? out : null;
76
81
  }
82
+ function sanitizePositiveInt(value, fallback, min, max) {
83
+ if (!Number.isFinite(value))
84
+ return fallback;
85
+ const intVal = Math.floor(value);
86
+ return Math.min(max, Math.max(min, intVal));
87
+ }
88
+ function sanitizeScriptKind(value) {
89
+ const normalized = sanitizeString(value, 16).toLowerCase();
90
+ if (normalized === 'bash')
91
+ return 'bash';
92
+ if (normalized === 'python')
93
+ return 'python';
94
+ if (normalized === 'slurm')
95
+ return 'slurm';
96
+ return 'other';
97
+ }
98
+ function sanitizeReproStrategy(value) {
99
+ const normalized = sanitizeString(value, 16).toLowerCase();
100
+ if (normalized === 'precomputed')
101
+ return 'precomputed';
102
+ return 'run';
103
+ }
104
+ function sanitizeExecutionStatus(value) {
105
+ const normalized = sanitizeString(value, 24).toLowerCase();
106
+ if (normalized === 'succeeded')
107
+ return 'succeeded';
108
+ if (normalized === 'failed')
109
+ return 'failed';
110
+ if (normalized === 'submitted')
111
+ return 'submitted';
112
+ if (normalized === 'precomputed')
113
+ return 'precomputed';
114
+ return 'not_run';
115
+ }
116
+ function sanitizeReproExecution(value) {
117
+ if (value === null || value === undefined)
118
+ return null;
119
+ if (typeof value !== 'object' || Array.isArray(value))
120
+ return null;
121
+ const src = value;
122
+ return {
123
+ status: sanitizeExecutionStatus(src.status),
124
+ command: sanitizeNullableString(src.command, 4096),
125
+ ran_at: sanitizeNullableString(src.ran_at, 64),
126
+ duration_ms: src.duration_ms === null || src.duration_ms === undefined
127
+ ? null
128
+ : sanitizePositiveInt(src.duration_ms, 0, 0, 7 * 24 * 60 * 60 * 1000),
129
+ exit_code: src.exit_code === null || src.exit_code === undefined
130
+ ? null
131
+ : sanitizePositiveInt(src.exit_code, 0, 0, 65535),
132
+ signal: sanitizeNullableString(src.signal, 64),
133
+ stdout_tail: sanitizeNullableString(src.stdout_tail, 20_000),
134
+ stderr_tail: sanitizeNullableString(src.stderr_tail, 20_000),
135
+ slurm_job_id: sanitizeNullableString(src.slurm_job_id, 128),
136
+ };
137
+ }
138
+ function sanitizeReproducibility(value) {
139
+ if (value === null || value === undefined)
140
+ return null;
141
+ if (typeof value !== 'object' || Array.isArray(value))
142
+ return null;
143
+ const src = value;
144
+ return {
145
+ script_path: sanitizeNullableString(src.script_path, 4096),
146
+ script_kind: sanitizeScriptKind(src.script_kind),
147
+ script_sha256: sanitizeNullableString(src.script_sha256, 128),
148
+ input_files: sanitizeStringArray(src.input_files, 4096, 500),
149
+ runtime: sanitizeNullableString(src.runtime, 2048),
150
+ requirements: sanitizeStringArray(src.requirements, 512, 200),
151
+ strategy: sanitizeReproStrategy(src.strategy),
152
+ precomputed_reason: sanitizeNullableString(src.precomputed_reason, 4000),
153
+ execution: sanitizeReproExecution(src.execution),
154
+ };
155
+ }
156
+ function mergeReproExecutionPatch(current, patch) {
157
+ if (patch === undefined)
158
+ return current;
159
+ if (patch === null)
160
+ return null;
161
+ if (typeof patch !== 'object' || Array.isArray(patch))
162
+ return current;
163
+ const src = patch;
164
+ const merged = { ...(current || {}) };
165
+ const fields = [
166
+ 'status',
167
+ 'command',
168
+ 'ran_at',
169
+ 'duration_ms',
170
+ 'exit_code',
171
+ 'signal',
172
+ 'stdout_tail',
173
+ 'stderr_tail',
174
+ 'slurm_job_id',
175
+ ];
176
+ for (const field of fields) {
177
+ if (Object.prototype.hasOwnProperty.call(src, field)) {
178
+ merged[field] = src[field];
179
+ }
180
+ }
181
+ return sanitizeReproExecution(merged);
182
+ }
183
+ function mergeReproducibilityPatch(current, patch) {
184
+ if (patch === undefined)
185
+ return current;
186
+ if (patch === null)
187
+ return null;
188
+ if (typeof patch !== 'object' || Array.isArray(patch))
189
+ return current;
190
+ const src = patch;
191
+ const merged = { ...(current || {}) };
192
+ const fields = [
193
+ 'script_path',
194
+ 'script_kind',
195
+ 'script_sha256',
196
+ 'input_files',
197
+ 'runtime',
198
+ 'requirements',
199
+ 'strategy',
200
+ 'precomputed_reason',
201
+ ];
202
+ for (const field of fields) {
203
+ if (Object.prototype.hasOwnProperty.call(src, field)) {
204
+ merged[field] = src[field];
205
+ }
206
+ }
207
+ if (Object.prototype.hasOwnProperty.call(src, 'execution')) {
208
+ merged.execution = mergeReproExecutionPatch(current?.execution || null, src.execution);
209
+ }
210
+ else if (current?.execution !== undefined) {
211
+ merged.execution = current.execution;
212
+ }
213
+ return sanitizeReproducibility(merged);
214
+ }
215
+ function normalizeLineageId(value, fallback) {
216
+ const lineage = sanitizeString(value, 128);
217
+ return lineage || fallback;
218
+ }
219
+ function sanitizeDerivedIdComponent(value) {
220
+ const cleaned = value
221
+ .replace(/[^a-zA-Z0-9._-]/g, '-')
222
+ .replace(/-+/g, '-')
223
+ .replace(/^-/, '')
224
+ .replace(/-$/, '');
225
+ return cleaned || 'result';
226
+ }
227
+ function formatVersionLabel(version) {
228
+ return `v${String(version).padStart(2, '0')}`;
229
+ }
230
+ function deriveVersionedResultId(lineageId, version, existing) {
231
+ const base = sanitizeDerivedIdComponent(sanitizeString(lineageId, 112) || 'result');
232
+ const stemRaw = `${base}-${formatVersionLabel(version)}`;
233
+ const stem = stemRaw.length > 128 ? stemRaw.slice(0, 128) : stemRaw;
234
+ let candidate = stem;
235
+ let suffix = 2;
236
+ while (existing.has(candidate)) {
237
+ const extra = `-${suffix}`;
238
+ candidate = `${stem.slice(0, Math.max(1, 128 - extra.length))}${extra}`;
239
+ suffix += 1;
240
+ }
241
+ return candidate;
242
+ }
77
243
  function clampInt(value, fallback, min, max) {
78
244
  if (!Number.isFinite(value))
79
245
  return fallback;
@@ -82,20 +248,39 @@ function clampInt(value, fallback, min, max) {
82
248
  function buildSearchText(result) {
83
249
  return [
84
250
  result.id,
251
+ result.lineage_id,
252
+ `v${result.version}`,
85
253
  result.title,
86
254
  result.summary,
87
255
  result.details || '',
88
256
  result.source,
257
+ result.starred ? 'starred' : '',
258
+ result.previous_result_id || '',
89
259
  result.session_id || '',
90
260
  result.workdir || '',
91
261
  result.tags.join(' '),
92
262
  result.artifacts.join(' '),
263
+ result.reproducibility?.script_path || '',
264
+ result.reproducibility?.script_kind || '',
265
+ result.reproducibility?.runtime || '',
266
+ result.reproducibility?.input_files.join(' ') || '',
267
+ result.reproducibility?.requirements.join(' ') || '',
268
+ result.reproducibility?.strategy || '',
269
+ result.reproducibility?.precomputed_reason || '',
270
+ result.reproducibility?.execution?.command || '',
271
+ result.reproducibility?.execution?.stdout_tail || '',
272
+ result.reproducibility?.execution?.stderr_tail || '',
273
+ result.reproducibility?.execution?.slurm_job_id || '',
93
274
  ]
94
275
  .join('\n')
95
276
  .toLowerCase();
96
277
  }
97
- function sortByUpdatedDesc(items) {
98
- return [...items].sort((a, b) => b.updated_at.localeCompare(a.updated_at));
278
+ function sortByPriority(items) {
279
+ return [...items].sort((a, b) => {
280
+ if (a.starred !== b.starred)
281
+ return (b.starred ? 1 : 0) - (a.starred ? 1 : 0);
282
+ return b.updated_at.localeCompare(a.updated_at);
283
+ });
99
284
  }
100
285
  function countParsedResults(raw) {
101
286
  try {
@@ -124,7 +309,9 @@ class ResultsStore {
124
309
  const search = sanitizeString(opts?.search, 256).toLowerCase();
125
310
  const source = sanitizeString(opts?.source, 64).toLowerCase();
126
311
  const tag = sanitizeString(opts?.tag, 64).toLowerCase();
127
- let rows = sortByUpdatedDesc(this.readFile().results);
312
+ const lineage = sanitizeString(opts?.lineage, 128);
313
+ const starred = typeof opts?.starred === 'boolean' ? opts.starred : undefined;
314
+ let rows = sortByPriority(this.readFile().results);
128
315
  if (search) {
129
316
  rows = rows.filter((r) => buildSearchText(r).includes(search));
130
317
  }
@@ -134,6 +321,12 @@ class ResultsStore {
134
321
  if (tag) {
135
322
  rows = rows.filter((r) => r.tags.some((t) => t.toLowerCase() === tag));
136
323
  }
324
+ if (lineage) {
325
+ rows = rows.filter((r) => r.lineage_id === lineage);
326
+ }
327
+ if (starred !== undefined) {
328
+ rows = rows.filter((r) => r.starred === starred);
329
+ }
137
330
  const total = rows.length;
138
331
  rows = rows.slice(safeOffset, safeOffset + safeLimit);
139
332
  return { results: rows, total };
@@ -144,15 +337,87 @@ class ResultsStore {
144
337
  return null;
145
338
  return this.readFile().results.find((r) => r.id === normalized) || null;
146
339
  }
340
+ listResultVersions(idOrLineage) {
341
+ const normalized = sanitizeString(idOrLineage, 128);
342
+ if (!normalized)
343
+ return [];
344
+ const rows = this.readFile().results;
345
+ const byId = rows.find((r) => r.id === normalized) || null;
346
+ const lineage = byId ? byId.lineage_id : normalized;
347
+ return rows
348
+ .filter((r) => r.lineage_id === lineage)
349
+ .sort((a, b) => {
350
+ if (a.version !== b.version)
351
+ return b.version - a.version;
352
+ return b.updated_at.localeCompare(a.updated_at);
353
+ });
354
+ }
147
355
  createResult(input) {
148
- const title = sanitizeString(input.title, 240);
356
+ const file = this.readFile();
357
+ const existingIds = new Set(file.results.map((r) => r.id));
358
+ let title = sanitizeString(input.title, 240);
359
+ let lineageId = sanitizeString(input.lineage_id, 128);
360
+ let version = sanitizePositiveInt(input.version, 1, 1, 10_000);
361
+ let previousResultId = sanitizeNullableString(input.previous_result_id, 128);
362
+ const versionOf = sanitizeString(input.version_of, 128);
363
+ if (versionOf) {
364
+ const base = file.results.find((r) => r.id === versionOf);
365
+ if (!base)
366
+ throw new Error(`version_of result not found: ${versionOf}`);
367
+ lineageId = base.lineage_id;
368
+ const lineageRows = file.results.filter((r) => r.lineage_id === lineageId);
369
+ const latest = lineageRows.sort((a, b) => {
370
+ if (a.version !== b.version)
371
+ return b.version - a.version;
372
+ return b.updated_at.localeCompare(a.updated_at);
373
+ })[0] || base;
374
+ version = latest.version + 1;
375
+ previousResultId = latest.id;
376
+ if (!title)
377
+ title = base.title;
378
+ }
149
379
  if (!title)
150
380
  throw new Error('title is required');
151
- const file = this.readFile();
152
- const id = sanitizeString(input.id, 128) || (0, crypto_1.randomUUID)();
381
+ if (lineageId) {
382
+ const lineageRows = file.results.filter((r) => r.lineage_id === lineageId);
383
+ if (lineageRows.length > 0) {
384
+ const latest = lineageRows.sort((a, b) => {
385
+ if (a.version !== b.version)
386
+ return b.version - a.version;
387
+ return b.updated_at.localeCompare(a.updated_at);
388
+ })[0];
389
+ const hasVersionConflict = lineageRows.some((r) => r.version === version);
390
+ if ((input.version === undefined || input.version === null) &&
391
+ (!versionOf || hasVersionConflict)) {
392
+ version = (latest?.version || 0) + 1;
393
+ if (!previousResultId && latest)
394
+ previousResultId = latest.id;
395
+ }
396
+ else if (hasVersionConflict) {
397
+ throw new Error(`version ${version} already exists for lineage ${lineageId}`);
398
+ }
399
+ }
400
+ }
401
+ let id = sanitizeString(input.id, 128);
402
+ if (!id) {
403
+ if (versionOf) {
404
+ const nextLineage = lineageId || (0, crypto_1.randomUUID)();
405
+ id = deriveVersionedResultId(nextLineage, version, existingIds);
406
+ }
407
+ else {
408
+ id = (0, crypto_1.randomUUID)();
409
+ }
410
+ }
153
411
  if (file.results.some((r) => r.id === id)) {
154
412
  throw new Error(`Result id already exists: ${id}`);
155
413
  }
414
+ const effectiveLineageId = normalizeLineageId(lineageId, id);
415
+ if (file.results.some((r) => r.lineage_id === effectiveLineageId && r.version === version)) {
416
+ throw new Error(`version ${version} already exists for lineage ${effectiveLineageId}`);
417
+ }
418
+ if (previousResultId && previousResultId === id) {
419
+ throw new Error('previous_result_id cannot equal result id');
420
+ }
156
421
  const ts = nowIso();
157
422
  const created = {
158
423
  id,
@@ -160,11 +425,16 @@ class ResultsStore {
160
425
  summary: sanitizeString(input.summary, 1000),
161
426
  details: sanitizeNullableString(input.details, 20_000),
162
427
  source: sanitizeSource(input.source),
428
+ starred: sanitizeBoolean(input.starred, false),
163
429
  session_id: sanitizeNullableString(input.session_id, 128),
164
430
  workdir: sanitizeNullableString(input.workdir, 4096),
431
+ lineage_id: effectiveLineageId,
432
+ version,
433
+ previous_result_id: sanitizeNullableString(previousResultId, 128),
165
434
  tags: sanitizeStringArray(input.tags, 64, 50),
166
435
  artifacts: sanitizeStringArray(input.artifacts, 4096, 100),
167
436
  metadata: sanitizeMetadata(input.metadata),
437
+ reproducibility: sanitizeReproducibility(input.reproducibility),
168
438
  created_at: ts,
169
439
  updated_at: ts,
170
440
  };
@@ -213,6 +483,13 @@ class ResultsStore {
213
483
  changed = true;
214
484
  }
215
485
  }
486
+ if (patch.starred !== undefined) {
487
+ const starred = sanitizeBoolean(patch.starred, false);
488
+ if (starred !== next.starred) {
489
+ next.starred = starred;
490
+ changed = true;
491
+ }
492
+ }
216
493
  if (patch.session_id !== undefined) {
217
494
  const sessionId = sanitizeNullableString(patch.session_id, 128);
218
495
  if (sessionId !== next.session_id) {
@@ -227,6 +504,29 @@ class ResultsStore {
227
504
  changed = true;
228
505
  }
229
506
  }
507
+ if (patch.lineage_id !== undefined) {
508
+ const lineageId = sanitizeString(patch.lineage_id, 128);
509
+ if (!lineageId)
510
+ throw new Error('lineage_id cannot be empty');
511
+ if (lineageId !== next.lineage_id) {
512
+ next.lineage_id = lineageId;
513
+ changed = true;
514
+ }
515
+ }
516
+ if (patch.version !== undefined) {
517
+ const version = sanitizePositiveInt(patch.version, next.version, 1, 10_000);
518
+ if (version !== next.version) {
519
+ next.version = version;
520
+ changed = true;
521
+ }
522
+ }
523
+ if (patch.previous_result_id !== undefined) {
524
+ const previousResultId = sanitizeNullableString(patch.previous_result_id, 128);
525
+ if (previousResultId !== next.previous_result_id) {
526
+ next.previous_result_id = previousResultId;
527
+ changed = true;
528
+ }
529
+ }
230
530
  if (patch.tags !== undefined) {
231
531
  const tags = sanitizeStringArray(patch.tags, 64, 50);
232
532
  if (JSON.stringify(tags) !== JSON.stringify(next.tags)) {
@@ -248,8 +548,21 @@ class ResultsStore {
248
548
  changed = true;
249
549
  }
250
550
  }
551
+ if (patch.reproducibility !== undefined) {
552
+ const reproducibility = mergeReproducibilityPatch(next.reproducibility, patch.reproducibility);
553
+ if (JSON.stringify(reproducibility) !== JSON.stringify(next.reproducibility)) {
554
+ next.reproducibility = reproducibility;
555
+ changed = true;
556
+ }
557
+ }
251
558
  if (!changed)
252
559
  return current;
560
+ if (next.previous_result_id && next.previous_result_id === next.id) {
561
+ throw new Error('previous_result_id cannot equal result id');
562
+ }
563
+ if (file.results.some((r, i) => i !== idx && r.lineage_id === next.lineage_id && r.version === next.version)) {
564
+ throw new Error(`version ${next.version} already exists for lineage ${next.lineage_id}`);
565
+ }
253
566
  next.updated_at = nowIso();
254
567
  file.results[idx] = next;
255
568
  this.writeFile(file);
@@ -342,11 +655,16 @@ class ResultsStore {
342
655
  summary: sanitizeString(r.summary, 1000),
343
656
  details: sanitizeNullableString(r.details, 20_000),
344
657
  source: sanitizeSource(r.source),
658
+ starred: sanitizeBoolean(r.starred, false),
345
659
  session_id: sanitizeNullableString(r.session_id, 128),
346
660
  workdir: sanitizeNullableString(r.workdir, 4096),
661
+ lineage_id: normalizeLineageId(r.lineage_id, id),
662
+ version: sanitizePositiveInt(r.version, 1, 1, 10_000),
663
+ previous_result_id: sanitizeNullableString(r.previous_result_id, 128),
347
664
  tags: sanitizeStringArray(r.tags, 64, 50),
348
665
  artifacts: sanitizeStringArray(r.artifacts, 4096, 100),
349
666
  metadata: sanitizeMetadata(r.metadata),
667
+ reproducibility: sanitizeReproducibility(r.reproducibility),
350
668
  created_at: created,
351
669
  updated_at: updated,
352
670
  };