@inneropen/marvin-sdk 3.2.0-next.1 → 3.2.0-next.11

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,4 +1,4 @@
1
- import { m as PublishedEntryType, h as MarvinResource, M as MarvinAsset, c as MarvinCollection, e as MarvinEntryListItem, j as PublishedCollectionSummary, d as MarvinEntry, k as PublishedEntryAsset, l as PublishedEntryResource, i as MarvinSite, n as components, b as GetResourcesOptions$1 } from './index-D4PQGrOK.js';
1
+ import { q as PublishedEntryType, l as MarvinResource, M as MarvinAsset, g as MarvinCollection, a as CollectionEntry, n as PublishedCollectionSummary, h as MarvinEntry, E as EntryAsset, c as EntryCollectionContext, d as EntryResource, L as ListEntry, m as MarvinSite, f as GetResourcesOptions$1 } from './index-BVm5dIcw.js';
2
2
  import { H as HttpClient } from './HttpClient-CdF3IHM1.js';
3
3
 
4
4
  /**
@@ -306,7 +306,12 @@ declare class Collection {
306
306
  [key: string]: unknown;
307
307
  } | null | undefined;
308
308
  get entryCount(): number;
309
- get entries(): MarvinEntryListItem[];
309
+ /**
310
+ * Entries with junction context for this collection surfaced directly.
311
+ * - role, position, junctionMetadata: from this collection's junction record
312
+ * - collections: slugs of other collections the entry belongs to
313
+ */
314
+ get entries(): CollectionEntry[];
310
315
  toJSON(): MarvinCollection;
311
316
  }
312
317
 
@@ -323,22 +328,24 @@ declare class CollectionsModule {
323
328
  */
324
329
  list(): Promise<PublishedCollectionSummary[]>;
325
330
  /**
326
- * Get a single collection by slug
327
- * Returns null if collection is not found (404)
331
+ * Get a single collection by slug.
332
+ * Returns an empty array if the collection is not found (404).
328
333
  */
329
- get(slug: string): Promise<Collection | null>;
334
+ get(slug: string): Promise<Collection | []>;
330
335
  /**
331
- * Get entries in a collection
332
- * Returns empty array if collection is not found
336
+ * Get entries in a collection with junction context surfaced directly.
337
+ * Each entry has role/position/junctionMetadata from this collection's junction,
338
+ * and collections reduced to slugs of other memberships.
339
+ * Returns empty array if collection is not found.
333
340
  */
334
- entries(slug: string): Promise<MarvinEntryListItem[]>;
341
+ entries(slug: string): Promise<CollectionEntry[]>;
335
342
  /**
336
- * Try multiple collection slugs in fallback order
337
- * Returns the first collection that exists and has entries
343
+ * Try multiple collection slugs in fallback order.
344
+ * Returns entries from the first collection that exists and has entries.
338
345
  */
339
346
  fallback(slugs: string[], options?: {
340
347
  requireEntries?: boolean;
341
- }): Promise<MarvinEntryListItem[]>;
348
+ }): Promise<CollectionEntry[]>;
342
349
  }
343
350
 
344
351
  /**
@@ -372,9 +379,9 @@ declare class Entry {
372
379
  } | null | undefined;
373
380
  get publishedAt(): string | null | undefined;
374
381
  get order(): number | null | undefined;
375
- get assets(): PublishedEntryAsset[];
376
- get collections(): PublishedCollectionSummary[];
377
- get resources(): PublishedEntryResource[];
382
+ get assets(): EntryAsset[];
383
+ get collections(): EntryCollectionContext[];
384
+ get resources(): EntryResource[];
378
385
  field<T = unknown>(key: string): T | undefined;
379
386
  get fields(): Record<string, unknown>;
380
387
  toJSON(): MarvinEntry;
@@ -398,7 +405,7 @@ declare class EntriesModule {
398
405
  /**
399
406
  * Get all published entries
400
407
  */
401
- list(options?: GetEntriesOptions): Promise<MarvinEntryListItem[]>;
408
+ list(options?: GetEntriesOptions): Promise<ListEntry[]>;
402
409
  /**
403
410
  * Get a single entry by slug
404
411
  * Returns null if entry is not found (404)
@@ -407,15 +414,15 @@ declare class EntriesModule {
407
414
  /**
408
415
  * Convenience: Get all pages
409
416
  */
410
- pages(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<MarvinEntryListItem[]>;
417
+ pages(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<ListEntry[]>;
411
418
  /**
412
419
  * Convenience: Get all blog posts
413
420
  */
414
- posts(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<MarvinEntryListItem[]>;
421
+ posts(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<ListEntry[]>;
415
422
  /**
416
423
  * Convenience: Get all projects
417
424
  */
418
- projects(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<MarvinEntryListItem[]>;
425
+ projects(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<ListEntry[]>;
419
426
  }
420
427
 
421
428
  /**
@@ -506,67 +513,19 @@ declare class MarvinClient {
506
513
  /**
507
514
  * Get a single collection by slug
508
515
  */
509
- collection(slug: string): Promise<Collection | null>;
516
+ collection(slug: string): Promise<[] | Collection>;
510
517
  /**
511
518
  * Get all pages
512
519
  */
513
- pages(options?: GetEntriesOptions): Promise<{
514
- slug: string;
515
- title: string;
516
- entryType: string;
517
- entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
518
- summary?: string | null;
519
- publishedAt?: string | null;
520
- status: string;
521
- collections: string[];
522
- assetSlugs: string[];
523
- resourceSlugs: string[];
524
- metadataJson?: {
525
- [key: string]: unknown;
526
- } | null;
527
- featuredAsset?: components["schemas"]["PublishedAssetRead"] | null;
528
- order?: number | null;
529
- }[]>;
520
+ pages(options?: GetEntriesOptions): Promise<ListEntry[]>;
530
521
  /**
531
522
  * Get all blog posts
532
523
  */
533
- posts(options?: GetEntriesOptions): Promise<{
534
- slug: string;
535
- title: string;
536
- entryType: string;
537
- entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
538
- summary?: string | null;
539
- publishedAt?: string | null;
540
- status: string;
541
- collections: string[];
542
- assetSlugs: string[];
543
- resourceSlugs: string[];
544
- metadataJson?: {
545
- [key: string]: unknown;
546
- } | null;
547
- featuredAsset?: components["schemas"]["PublishedAssetRead"] | null;
548
- order?: number | null;
549
- }[]>;
524
+ posts(options?: GetEntriesOptions): Promise<ListEntry[]>;
550
525
  /**
551
526
  * Get all projects
552
527
  */
553
- projects(options?: GetEntriesOptions): Promise<{
554
- slug: string;
555
- title: string;
556
- entryType: string;
557
- entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
558
- summary?: string | null;
559
- publishedAt?: string | null;
560
- status: string;
561
- collections: string[];
562
- assetSlugs: string[];
563
- resourceSlugs: string[];
564
- metadataJson?: {
565
- [key: string]: unknown;
566
- } | null;
567
- featuredAsset?: components["schemas"]["PublishedAssetRead"] | null;
568
- order?: number | null;
569
- }[]>;
528
+ projects(options?: GetEntriesOptions): Promise<ListEntry[]>;
570
529
  /**
571
530
  * Get a single resource by slug
572
531
  */
@@ -577,7 +536,7 @@ declare class MarvinClient {
577
536
  */
578
537
  collectionFallback(slugs: string[], options?: {
579
538
  requireEntries?: boolean;
580
- }): Promise<MarvinEntryListItem[]>;
539
+ }): Promise<CollectionEntry[]>;
581
540
  /**
582
541
  * @deprecated Use workspace.site or marvin.site instead
583
542
  */
@@ -585,7 +544,7 @@ declare class MarvinClient {
585
544
  /**
586
545
  * @deprecated Use workspace.entries.list() instead
587
546
  */
588
- getEntries(options?: GetEntriesOptions): Promise<MarvinEntryListItem[]>;
547
+ getEntries(options?: GetEntriesOptions): Promise<ListEntry[]>;
589
548
  /**
590
549
  * @deprecated Use workspace.entries.get() instead
591
550
  */
@@ -601,7 +560,7 @@ declare class MarvinClient {
601
560
  /**
602
561
  * @deprecated Use workspace.collections.entries() instead
603
562
  */
604
- getCollectionEntries(slug: string): Promise<MarvinEntryListItem[]>;
563
+ getCollectionEntries(slug: string): Promise<CollectionEntry[]>;
605
564
  /**
606
565
  * @deprecated Use workspace.assets.list() instead
607
566
  */
@@ -1,4 +1,4 @@
1
- import { m as PublishedEntryType, h as MarvinResource, M as MarvinAsset, c as MarvinCollection, e as MarvinEntryListItem, j as PublishedCollectionSummary, d as MarvinEntry, k as PublishedEntryAsset, l as PublishedEntryResource, i as MarvinSite, n as components, b as GetResourcesOptions$1 } from './index-D4PQGrOK.cjs';
1
+ import { q as PublishedEntryType, l as MarvinResource, M as MarvinAsset, g as MarvinCollection, a as CollectionEntry, n as PublishedCollectionSummary, h as MarvinEntry, E as EntryAsset, c as EntryCollectionContext, d as EntryResource, L as ListEntry, m as MarvinSite, f as GetResourcesOptions$1 } from './index-BVm5dIcw.cjs';
2
2
  import { H as HttpClient } from './HttpClient-CdF3IHM1.cjs';
3
3
 
4
4
  /**
@@ -306,7 +306,12 @@ declare class Collection {
306
306
  [key: string]: unknown;
307
307
  } | null | undefined;
308
308
  get entryCount(): number;
309
- get entries(): MarvinEntryListItem[];
309
+ /**
310
+ * Entries with junction context for this collection surfaced directly.
311
+ * - role, position, junctionMetadata: from this collection's junction record
312
+ * - collections: slugs of other collections the entry belongs to
313
+ */
314
+ get entries(): CollectionEntry[];
310
315
  toJSON(): MarvinCollection;
311
316
  }
312
317
 
@@ -323,22 +328,24 @@ declare class CollectionsModule {
323
328
  */
324
329
  list(): Promise<PublishedCollectionSummary[]>;
325
330
  /**
326
- * Get a single collection by slug
327
- * Returns null if collection is not found (404)
331
+ * Get a single collection by slug.
332
+ * Returns an empty array if the collection is not found (404).
328
333
  */
329
- get(slug: string): Promise<Collection | null>;
334
+ get(slug: string): Promise<Collection | []>;
330
335
  /**
331
- * Get entries in a collection
332
- * Returns empty array if collection is not found
336
+ * Get entries in a collection with junction context surfaced directly.
337
+ * Each entry has role/position/junctionMetadata from this collection's junction,
338
+ * and collections reduced to slugs of other memberships.
339
+ * Returns empty array if collection is not found.
333
340
  */
334
- entries(slug: string): Promise<MarvinEntryListItem[]>;
341
+ entries(slug: string): Promise<CollectionEntry[]>;
335
342
  /**
336
- * Try multiple collection slugs in fallback order
337
- * Returns the first collection that exists and has entries
343
+ * Try multiple collection slugs in fallback order.
344
+ * Returns entries from the first collection that exists and has entries.
338
345
  */
339
346
  fallback(slugs: string[], options?: {
340
347
  requireEntries?: boolean;
341
- }): Promise<MarvinEntryListItem[]>;
348
+ }): Promise<CollectionEntry[]>;
342
349
  }
343
350
 
344
351
  /**
@@ -372,9 +379,9 @@ declare class Entry {
372
379
  } | null | undefined;
373
380
  get publishedAt(): string | null | undefined;
374
381
  get order(): number | null | undefined;
375
- get assets(): PublishedEntryAsset[];
376
- get collections(): PublishedCollectionSummary[];
377
- get resources(): PublishedEntryResource[];
382
+ get assets(): EntryAsset[];
383
+ get collections(): EntryCollectionContext[];
384
+ get resources(): EntryResource[];
378
385
  field<T = unknown>(key: string): T | undefined;
379
386
  get fields(): Record<string, unknown>;
380
387
  toJSON(): MarvinEntry;
@@ -398,7 +405,7 @@ declare class EntriesModule {
398
405
  /**
399
406
  * Get all published entries
400
407
  */
401
- list(options?: GetEntriesOptions): Promise<MarvinEntryListItem[]>;
408
+ list(options?: GetEntriesOptions): Promise<ListEntry[]>;
402
409
  /**
403
410
  * Get a single entry by slug
404
411
  * Returns null if entry is not found (404)
@@ -407,15 +414,15 @@ declare class EntriesModule {
407
414
  /**
408
415
  * Convenience: Get all pages
409
416
  */
410
- pages(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<MarvinEntryListItem[]>;
417
+ pages(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<ListEntry[]>;
411
418
  /**
412
419
  * Convenience: Get all blog posts
413
420
  */
414
- posts(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<MarvinEntryListItem[]>;
421
+ posts(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<ListEntry[]>;
415
422
  /**
416
423
  * Convenience: Get all projects
417
424
  */
418
- projects(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<MarvinEntryListItem[]>;
425
+ projects(options?: Omit<GetEntriesOptions, 'entryType'>): Promise<ListEntry[]>;
419
426
  }
420
427
 
421
428
  /**
@@ -506,67 +513,19 @@ declare class MarvinClient {
506
513
  /**
507
514
  * Get a single collection by slug
508
515
  */
509
- collection(slug: string): Promise<Collection | null>;
516
+ collection(slug: string): Promise<[] | Collection>;
510
517
  /**
511
518
  * Get all pages
512
519
  */
513
- pages(options?: GetEntriesOptions): Promise<{
514
- slug: string;
515
- title: string;
516
- entryType: string;
517
- entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
518
- summary?: string | null;
519
- publishedAt?: string | null;
520
- status: string;
521
- collections: string[];
522
- assetSlugs: string[];
523
- resourceSlugs: string[];
524
- metadataJson?: {
525
- [key: string]: unknown;
526
- } | null;
527
- featuredAsset?: components["schemas"]["PublishedAssetRead"] | null;
528
- order?: number | null;
529
- }[]>;
520
+ pages(options?: GetEntriesOptions): Promise<ListEntry[]>;
530
521
  /**
531
522
  * Get all blog posts
532
523
  */
533
- posts(options?: GetEntriesOptions): Promise<{
534
- slug: string;
535
- title: string;
536
- entryType: string;
537
- entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
538
- summary?: string | null;
539
- publishedAt?: string | null;
540
- status: string;
541
- collections: string[];
542
- assetSlugs: string[];
543
- resourceSlugs: string[];
544
- metadataJson?: {
545
- [key: string]: unknown;
546
- } | null;
547
- featuredAsset?: components["schemas"]["PublishedAssetRead"] | null;
548
- order?: number | null;
549
- }[]>;
524
+ posts(options?: GetEntriesOptions): Promise<ListEntry[]>;
550
525
  /**
551
526
  * Get all projects
552
527
  */
553
- projects(options?: GetEntriesOptions): Promise<{
554
- slug: string;
555
- title: string;
556
- entryType: string;
557
- entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
558
- summary?: string | null;
559
- publishedAt?: string | null;
560
- status: string;
561
- collections: string[];
562
- assetSlugs: string[];
563
- resourceSlugs: string[];
564
- metadataJson?: {
565
- [key: string]: unknown;
566
- } | null;
567
- featuredAsset?: components["schemas"]["PublishedAssetRead"] | null;
568
- order?: number | null;
569
- }[]>;
528
+ projects(options?: GetEntriesOptions): Promise<ListEntry[]>;
570
529
  /**
571
530
  * Get a single resource by slug
572
531
  */
@@ -577,7 +536,7 @@ declare class MarvinClient {
577
536
  */
578
537
  collectionFallback(slugs: string[], options?: {
579
538
  requireEntries?: boolean;
580
- }): Promise<MarvinEntryListItem[]>;
539
+ }): Promise<CollectionEntry[]>;
581
540
  /**
582
541
  * @deprecated Use workspace.site or marvin.site instead
583
542
  */
@@ -585,7 +544,7 @@ declare class MarvinClient {
585
544
  /**
586
545
  * @deprecated Use workspace.entries.list() instead
587
546
  */
588
- getEntries(options?: GetEntriesOptions): Promise<MarvinEntryListItem[]>;
547
+ getEntries(options?: GetEntriesOptions): Promise<ListEntry[]>;
589
548
  /**
590
549
  * @deprecated Use workspace.entries.get() instead
591
550
  */
@@ -601,7 +560,7 @@ declare class MarvinClient {
601
560
  /**
602
561
  * @deprecated Use workspace.collections.entries() instead
603
562
  */
604
- getCollectionEntries(slug: string): Promise<MarvinEntryListItem[]>;
563
+ getCollectionEntries(slug: string): Promise<CollectionEntry[]>;
605
564
  /**
606
565
  * @deprecated Use workspace.assets.list() instead
607
566
  */
package/dist/platform.cjs CHANGED
@@ -273,7 +273,7 @@ var HttpClient = class {
273
273
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
274
274
  const startTime = Date.now();
275
275
  if (this.debug) {
276
- this.logger.log(`[Marvin] ${method} ${url}`);
276
+ this.logger.log(`[Marvin SDK] ${method} ${url}`);
277
277
  }
278
278
  try {
279
279
  const response = await fetch(url, {
@@ -287,7 +287,7 @@ var HttpClient = class {
287
287
  const duration = Date.now() - startTime;
288
288
  if (this.debug) {
289
289
  this.logger.log(
290
- `[Marvin] ${response.status} ${response.statusText} (${duration}ms)`
290
+ `[Marvin SDK] ${response.status} ${response.statusText} (${duration}ms)`
291
291
  );
292
292
  }
293
293
  if (response.status === 401 && this.auth.handleUnauthorized) {
@@ -297,7 +297,7 @@ var HttpClient = class {
297
297
  const errorText = await response.text().catch(() => "");
298
298
  if (this.debug) {
299
299
  this.logger.error(
300
- `[Marvin] Error response: ${response.status} ${response.statusText}`,
300
+ `[Marvin SDK] Error response: ${response.status} ${response.statusText}`,
301
301
  errorText ? `Body: ${errorText}` : ""
302
302
  );
303
303
  }
@@ -307,7 +307,7 @@ var HttpClient = class {
307
307
  const delay = this.calculateRetryDelay(retryAttempt);
308
308
  if (this.debug) {
309
309
  this.logger.warn(
310
- `[Marvin] Retry ${retryAttempt + 1}/${this.retryConfig.maxRetries} after ${delay}ms (status: ${response.status})`
310
+ `[Marvin SDK] Retry ${retryAttempt + 1}/${this.retryConfig.maxRetries} after ${delay}ms (status: ${response.status})`
311
311
  );
312
312
  }
313
313
  await this.sleep(delay);
@@ -346,7 +346,7 @@ var HttpClient = class {
346
346
  const data = await response.json();
347
347
  if (this.debug) {
348
348
  const sanitized = this.sanitizeForLogging(data);
349
- this.logger.log("[Marvin] Response:", JSON.stringify(sanitized, null, 2));
349
+ this.logger.log("[Marvin SDK] Response:", JSON.stringify(sanitized, null, 2));
350
350
  }
351
351
  return data;
352
352
  } catch (error) {
@@ -360,7 +360,7 @@ var HttpClient = class {
360
360
  const delay = this.calculateRetryDelay(retryAttempt);
361
361
  if (this.debug) {
362
362
  this.logger.warn(
363
- `[Marvin] Retry ${retryAttempt + 1}/${this.retryConfig.maxRetries} after ${delay}ms (network error)`
363
+ `[Marvin SDK] Retry ${retryAttempt + 1}/${this.retryConfig.maxRetries} after ${delay}ms (network error)`
364
364
  );
365
365
  }
366
366
  await this.sleep(delay);
@@ -574,6 +574,17 @@ var CollectionsModule = class {
574
574
  const validId = this.http.validatePathParam(id, "collection ID");
575
575
  return this.http.patch(`/api/platform/collections/${validId}/entries/order`, { entries });
576
576
  }
577
+ /**
578
+ * Update junction fields (role, metadata) for an entry in a collection
579
+ */
580
+ async updateEntryJunction(collectionId, entryId, data) {
581
+ const validCollectionId = this.http.validatePathParam(collectionId, "collection ID");
582
+ const validEntryId = this.http.validatePathParam(entryId, "entry ID");
583
+ return this.http.patch(
584
+ `/api/platform/collections/${validCollectionId}/entries/${validEntryId}`,
585
+ data
586
+ );
587
+ }
577
588
  };
578
589
 
579
590
  // src/platform/resources.ts
@@ -1663,6 +1674,17 @@ var ScheduledTasksModule = class {
1663
1674
  `/api/platform/scheduled-tasks/${idOrSlug}/history${query}`
1664
1675
  );
1665
1676
  }
1677
+ /**
1678
+ * Get execution log for all tasks in the current workspace
1679
+ */
1680
+ async log(options) {
1681
+ const params = new URLSearchParams();
1682
+ if (options?.limit) {
1683
+ params.set("limit", options.limit.toString());
1684
+ }
1685
+ const query = params.toString() ? `?${params.toString()}` : "";
1686
+ return this.http.get(`/api/platform/scheduled-tasks/log${query}`);
1687
+ }
1666
1688
  /**
1667
1689
  * Get available task types
1668
1690
  */
@@ -1,5 +1,5 @@
1
1
  import { H as HttpClient } from './HttpClient-CdF3IHM1.cjs';
2
- import { n as components, A as AuthToken } from './index-D4PQGrOK.cjs';
2
+ import { r as components, A as AuthToken } from './index-BVm5dIcw.cjs';
3
3
 
4
4
  /**
5
5
  * Platform API Types
@@ -156,6 +156,13 @@ declare class CollectionsModule {
156
156
  entryId: string;
157
157
  sortOrder: number;
158
158
  }>): Promise<void>;
159
+ /**
160
+ * Update junction fields (role, metadata) for an entry in a collection
161
+ */
162
+ updateEntryJunction(collectionId: string, entryId: string, data: {
163
+ role?: string | null;
164
+ metadataJson?: Record<string, unknown> | null;
165
+ }): Promise<void>;
159
166
  }
160
167
 
161
168
  /**
@@ -1084,6 +1091,12 @@ declare class ScheduledTasksModule {
1084
1091
  history(idOrSlug: string, options?: {
1085
1092
  limit?: number;
1086
1093
  }): Promise<ScheduledTaskExecutionLog[]>;
1094
+ /**
1095
+ * Get execution log for all tasks in the current workspace
1096
+ */
1097
+ log(options?: {
1098
+ limit?: number;
1099
+ }): Promise<ScheduledTaskExecutionLog[]>;
1087
1100
  /**
1088
1101
  * Get available task types
1089
1102
  */
@@ -1,5 +1,5 @@
1
1
  import { H as HttpClient } from './HttpClient-CdF3IHM1.js';
2
- import { n as components, A as AuthToken } from './index-D4PQGrOK.js';
2
+ import { r as components, A as AuthToken } from './index-BVm5dIcw.js';
3
3
 
4
4
  /**
5
5
  * Platform API Types
@@ -156,6 +156,13 @@ declare class CollectionsModule {
156
156
  entryId: string;
157
157
  sortOrder: number;
158
158
  }>): Promise<void>;
159
+ /**
160
+ * Update junction fields (role, metadata) for an entry in a collection
161
+ */
162
+ updateEntryJunction(collectionId: string, entryId: string, data: {
163
+ role?: string | null;
164
+ metadataJson?: Record<string, unknown> | null;
165
+ }): Promise<void>;
159
166
  }
160
167
 
161
168
  /**
@@ -1084,6 +1091,12 @@ declare class ScheduledTasksModule {
1084
1091
  history(idOrSlug: string, options?: {
1085
1092
  limit?: number;
1086
1093
  }): Promise<ScheduledTaskExecutionLog[]>;
1094
+ /**
1095
+ * Get execution log for all tasks in the current workspace
1096
+ */
1097
+ log(options?: {
1098
+ limit?: number;
1099
+ }): Promise<ScheduledTaskExecutionLog[]>;
1087
1100
  /**
1088
1101
  * Get available task types
1089
1102
  */
package/dist/platform.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  MarvinValidationError,
4
4
  SessionAuth,
5
5
  init_core
6
- } from "./chunk-WJC4X7TB.js";
6
+ } from "./chunk-SVH7AMMY.js";
7
7
 
8
8
  // src/platform/client.ts
9
9
  init_core();
@@ -128,6 +128,17 @@ var CollectionsModule = class {
128
128
  const validId = this.http.validatePathParam(id, "collection ID");
129
129
  return this.http.patch(`/api/platform/collections/${validId}/entries/order`, { entries });
130
130
  }
131
+ /**
132
+ * Update junction fields (role, metadata) for an entry in a collection
133
+ */
134
+ async updateEntryJunction(collectionId, entryId, data) {
135
+ const validCollectionId = this.http.validatePathParam(collectionId, "collection ID");
136
+ const validEntryId = this.http.validatePathParam(entryId, "entry ID");
137
+ return this.http.patch(
138
+ `/api/platform/collections/${validCollectionId}/entries/${validEntryId}`,
139
+ data
140
+ );
141
+ }
131
142
  };
132
143
 
133
144
  // src/platform/resources.ts
@@ -1219,6 +1230,17 @@ var ScheduledTasksModule = class {
1219
1230
  `/api/platform/scheduled-tasks/${idOrSlug}/history${query}`
1220
1231
  );
1221
1232
  }
1233
+ /**
1234
+ * Get execution log for all tasks in the current workspace
1235
+ */
1236
+ async log(options) {
1237
+ const params = new URLSearchParams();
1238
+ if (options?.limit) {
1239
+ params.set("limit", options.limit.toString());
1240
+ }
1241
+ const query = params.toString() ? `?${params.toString()}` : "";
1242
+ return this.http.get(`/api/platform/scheduled-tasks/log${query}`);
1243
+ }
1222
1244
  /**
1223
1245
  * Get available task types
1224
1246
  */