@opengeni/api-router 3.3.0 → 3.4.0

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.
@@ -53,8 +53,8 @@ export declare function marketplacePlugin(url: string): {
53
53
  keywords: never[];
54
54
  author: {
55
55
  name: string;
56
- email?: never;
57
56
  url?: never;
57
+ email?: never;
58
58
  };
59
59
  version: string;
60
60
  license: null;
@@ -349,9 +349,9 @@ export declare function marketplacePlugin(url: string): {
349
349
  installation: string;
350
350
  upstream: {
351
351
  source: {
352
+ url?: never;
352
353
  source: string;
353
354
  path: string;
354
- url?: never;
355
355
  };
356
356
  policy: {
357
357
  installation: string;
@@ -369,9 +369,9 @@ export declare function marketplacePlugin(url: string): {
369
369
  category: string;
370
370
  keywords: string[];
371
371
  author: {
372
+ url?: never;
372
373
  name: string;
373
374
  email?: never;
374
- url?: never;
375
375
  };
376
376
  version: string;
377
377
  license: string;
@@ -395,9 +395,9 @@ export declare function marketplacePlugin(url: string): {
395
395
  installation: string;
396
396
  upstream: {
397
397
  source: {
398
+ url?: never;
398
399
  source: string;
399
400
  path: string;
400
- url?: never;
401
401
  };
402
402
  policy: {
403
403
  installation: string;
@@ -415,9 +415,9 @@ export declare function marketplacePlugin(url: string): {
415
415
  category: string;
416
416
  keywords: never[];
417
417
  author: {
418
+ url?: never;
418
419
  name: string;
419
420
  email?: never;
420
- url?: never;
421
421
  };
422
422
  version: string;
423
423
  license: null;
@@ -441,9 +441,9 @@ export declare function marketplacePlugin(url: string): {
441
441
  installation: string;
442
442
  upstream: {
443
443
  source: {
444
+ url?: never;
444
445
  source: string;
445
446
  path: string;
446
- url?: never;
447
447
  };
448
448
  policy: {
449
449
  products?: never;
@@ -461,9 +461,9 @@ export declare function marketplacePlugin(url: string): {
461
461
  category: string;
462
462
  keywords: string[];
463
463
  author: {
464
+ url?: never;
464
465
  name: string;
465
466
  email?: never;
466
- url?: never;
467
467
  };
468
468
  version: string;
469
469
  license: string;
@@ -487,9 +487,9 @@ export declare function marketplacePlugin(url: string): {
487
487
  installation: string;
488
488
  upstream: {
489
489
  source: {
490
+ url?: never;
490
491
  source: string;
491
492
  path: string;
492
- url?: never;
493
493
  };
494
494
  policy: {
495
495
  products?: never;
@@ -507,9 +507,9 @@ export declare function marketplacePlugin(url: string): {
507
507
  category: string;
508
508
  keywords: string[];
509
509
  author: {
510
+ url?: never;
510
511
  name: string;
511
512
  email: string;
512
- url?: never;
513
513
  };
514
514
  version: string;
515
515
  license: string;
@@ -533,9 +533,9 @@ export declare function marketplacePlugin(url: string): {
533
533
  installation: string;
534
534
  upstream: {
535
535
  source: {
536
+ url?: never;
536
537
  source: string;
537
538
  path: string;
538
- url?: never;
539
539
  };
540
540
  policy: {
541
541
  products?: never;
@@ -553,9 +553,9 @@ export declare function marketplacePlugin(url: string): {
553
553
  category: string;
554
554
  keywords: never[];
555
555
  author: {
556
+ url?: never;
556
557
  email?: never;
557
558
  name: string;
558
- url?: never;
559
559
  };
560
560
  version: string;
561
561
  license: string;
@@ -576,9 +576,9 @@ export declare function marketplacePlugin(url: string): {
576
576
  installation: string;
577
577
  upstream: {
578
578
  source: {
579
+ url?: never;
579
580
  source: string;
580
581
  path: string;
581
- url?: never;
582
582
  };
583
583
  policy: {
584
584
  products?: never;
@@ -596,9 +596,9 @@ export declare function marketplacePlugin(url: string): {
596
596
  category: string;
597
597
  keywords: never[];
598
598
  author: {
599
+ url?: never;
599
600
  email?: never;
600
601
  name: string;
601
- url?: never;
602
602
  };
603
603
  version: string;
604
604
  license: null;
@@ -622,9 +622,9 @@ export declare function marketplacePlugin(url: string): {
622
622
  installation: string;
623
623
  upstream: {
624
624
  source: {
625
+ url?: never;
625
626
  source: string;
626
627
  path: string;
627
- url?: never;
628
628
  };
629
629
  policy: {
630
630
  products?: never;
@@ -769,9 +769,9 @@ export declare function marketplacePlugin(url: string): {
769
769
  category: string;
770
770
  keywords: never[];
771
771
  author: {
772
+ url?: never;
772
773
  name: string;
773
774
  email: string;
774
- url?: never;
775
775
  };
776
776
  version: string;
777
777
  license: string;
@@ -813,9 +813,9 @@ export declare function marketplacePlugin(url: string): {
813
813
  category: string;
814
814
  keywords: never[];
815
815
  author: {
816
+ url?: never;
816
817
  email?: never;
817
818
  name: string;
818
- url?: never;
819
819
  };
820
820
  version: null;
821
821
  license: null;
@@ -896,9 +896,9 @@ export declare function marketplacePlugin(url: string): {
896
896
  category: string;
897
897
  keywords: string[];
898
898
  author: {
899
+ url?: never;
899
900
  name: string;
900
901
  email: string;
901
- url?: never;
902
902
  };
903
903
  version: string;
904
904
  license: string;
@@ -940,9 +940,9 @@ export declare function marketplacePlugin(url: string): {
940
940
  category: string;
941
941
  keywords: never[];
942
942
  author: {
943
+ url?: never;
943
944
  email?: never;
944
945
  name: string;
945
- url?: never;
946
946
  };
947
947
  version: null;
948
948
  license: null;
@@ -984,9 +984,9 @@ export declare function marketplacePlugin(url: string): {
984
984
  category: string;
985
985
  keywords: string[];
986
986
  author: {
987
+ url?: never;
987
988
  email?: never;
988
989
  name: string;
989
- url?: never;
990
990
  };
991
991
  version: string;
992
992
  license: string;
@@ -1033,9 +1033,9 @@ export declare function marketplacePlugin(url: string): {
1033
1033
  category: string;
1034
1034
  keywords: string[];
1035
1035
  author: {
1036
+ url?: never;
1036
1037
  name: string;
1037
1038
  email: string;
1038
- url?: never;
1039
1039
  };
1040
1040
  version: string;
1041
1041
  license: null;
@@ -1118,9 +1118,9 @@ export declare function marketplacePlugin(url: string): {
1118
1118
  category: string;
1119
1119
  keywords: string[];
1120
1120
  author: {
1121
+ url?: never;
1121
1122
  email?: never;
1122
1123
  name: string;
1123
- url?: never;
1124
1124
  };
1125
1125
  version: string;
1126
1126
  license: null;
@@ -1162,9 +1162,9 @@ export declare function marketplacePlugin(url: string): {
1162
1162
  category: string;
1163
1163
  keywords: string[];
1164
1164
  author: {
1165
+ url?: never;
1165
1166
  email?: never;
1166
1167
  name: string;
1167
- url?: never;
1168
1168
  };
1169
1169
  version: string;
1170
1170
  license: string;
@@ -1243,9 +1243,9 @@ export declare function marketplacePlugin(url: string): {
1243
1243
  category: string;
1244
1244
  keywords: never[];
1245
1245
  author: {
1246
+ url?: never;
1246
1247
  name: string;
1247
1248
  email: string;
1248
- url?: never;
1249
1249
  };
1250
1250
  version: string;
1251
1251
  license: null;
@@ -1273,9 +1273,9 @@ export declare function marketplacePlugin(url: string): {
1273
1273
  category: string;
1274
1274
  keywords: never[];
1275
1275
  author: {
1276
+ url?: never;
1276
1277
  name: string;
1277
1278
  email: string;
1278
- url?: never;
1279
1279
  };
1280
1280
  version: string;
1281
1281
  license: null;
@@ -1306,9 +1306,9 @@ export declare function marketplacePlugin(url: string): {
1306
1306
  category: string;
1307
1307
  keywords: string[];
1308
1308
  author: {
1309
+ url?: never;
1309
1310
  name: string;
1310
1311
  email: string;
1311
- url?: never;
1312
1312
  };
1313
1313
  version: string;
1314
1314
  license: string;
@@ -1339,9 +1339,9 @@ export declare function marketplacePlugin(url: string): {
1339
1339
  category: null;
1340
1340
  keywords: string[];
1341
1341
  author: {
1342
+ url?: never;
1342
1343
  name: string;
1343
1344
  email: string;
1344
- url?: never;
1345
1345
  };
1346
1346
  version: string;
1347
1347
  license: string;
@@ -1427,9 +1427,9 @@ export declare function marketplacePlugin(url: string): {
1427
1427
  category: string;
1428
1428
  keywords: string[];
1429
1429
  author: {
1430
+ url?: never;
1430
1431
  email?: never;
1431
1432
  name: string;
1432
- url?: never;
1433
1433
  };
1434
1434
  version: string;
1435
1435
  license: string;
@@ -1471,9 +1471,9 @@ export declare function marketplacePlugin(url: string): {
1471
1471
  category: string;
1472
1472
  keywords: never[];
1473
1473
  author: {
1474
+ url?: never;
1474
1475
  email?: never;
1475
1476
  name: string;
1476
- url?: never;
1477
1477
  };
1478
1478
  version: null;
1479
1479
  license: null;
@@ -1614,9 +1614,9 @@ export declare function marketplacePlugin(url: string): {
1614
1614
  category: string;
1615
1615
  keywords: never[];
1616
1616
  author: {
1617
+ url?: never;
1617
1618
  name: string;
1618
1619
  email: string;
1619
- url?: never;
1620
1620
  };
1621
1621
  version: string;
1622
1622
  license: null;
@@ -1658,9 +1658,9 @@ export declare function marketplacePlugin(url: string): {
1658
1658
  category: null;
1659
1659
  keywords: string[];
1660
1660
  author: {
1661
+ url?: never;
1661
1662
  email?: never;
1662
1663
  name: string;
1663
- url?: never;
1664
1664
  };
1665
1665
  version: string;
1666
1666
  license: null;
@@ -1697,9 +1697,9 @@ export declare function marketplacePlugin(url: string): {
1697
1697
  category: null;
1698
1698
  keywords: never[];
1699
1699
  author: {
1700
+ url?: never;
1700
1701
  email?: never;
1701
1702
  name: string;
1702
- url?: never;
1703
1703
  };
1704
1704
  version: string;
1705
1705
  license: string;
@@ -1741,9 +1741,9 @@ export declare function marketplacePlugin(url: string): {
1741
1741
  category: string;
1742
1742
  keywords: never[];
1743
1743
  author: {
1744
+ url?: never;
1744
1745
  email?: never;
1745
1746
  name: string;
1746
- url?: never;
1747
1747
  };
1748
1748
  version: null;
1749
1749
  license: null;
@@ -1776,9 +1776,9 @@ export declare function marketplacePlugin(url: string): {
1776
1776
  category: string;
1777
1777
  keywords: never[];
1778
1778
  author: {
1779
+ url?: never;
1779
1780
  name: string;
1780
1781
  email: string;
1781
- url?: never;
1782
1782
  };
1783
1783
  version: null;
1784
1784
  license: null;
@@ -1853,9 +1853,9 @@ export declare function marketplacePlugin(url: string): {
1853
1853
  category: string;
1854
1854
  keywords: string[];
1855
1855
  author: {
1856
+ url?: never;
1856
1857
  name: string;
1857
1858
  email: string;
1858
- url?: never;
1859
1859
  };
1860
1860
  version: string;
1861
1861
  license: string;
@@ -1897,9 +1897,9 @@ export declare function marketplacePlugin(url: string): {
1897
1897
  category: string;
1898
1898
  keywords: string[];
1899
1899
  author: {
1900
+ url?: never;
1900
1901
  name: string;
1901
1902
  email: string;
1902
- url?: never;
1903
1903
  };
1904
1904
  version: string;
1905
1905
  license: string;
@@ -1941,9 +1941,9 @@ export declare function marketplacePlugin(url: string): {
1941
1941
  category: string;
1942
1942
  keywords: string[];
1943
1943
  author: {
1944
+ url?: never;
1944
1945
  name: string;
1945
1946
  email: string;
1946
- url?: never;
1947
1947
  };
1948
1948
  version: null;
1949
1949
  license: string;
@@ -1985,9 +1985,9 @@ export declare function marketplacePlugin(url: string): {
1985
1985
  category: string;
1986
1986
  keywords: string[];
1987
1987
  author: {
1988
+ url?: never;
1988
1989
  email?: never;
1989
1990
  name: string;
1990
- url?: never;
1991
1991
  };
1992
1992
  version: null;
1993
1993
  license: string;
@@ -2024,9 +2024,9 @@ export declare function marketplacePlugin(url: string): {
2024
2024
  category: string;
2025
2025
  keywords: string[];
2026
2026
  author: {
2027
+ url?: never;
2027
2028
  email?: never;
2028
2029
  name: string;
2029
- url?: never;
2030
2030
  };
2031
2031
  version: string;
2032
2032
  license: null;
@@ -2235,9 +2235,9 @@ export declare function marketplacePlugin(url: string): {
2235
2235
  category: string;
2236
2236
  keywords: string[];
2237
2237
  author: {
2238
+ url?: never;
2238
2239
  email?: never;
2239
2240
  name: string;
2240
- url?: never;
2241
2241
  };
2242
2242
  version: string;
2243
2243
  license: null;
@@ -2279,9 +2279,9 @@ export declare function marketplacePlugin(url: string): {
2279
2279
  category: null;
2280
2280
  keywords: never[];
2281
2281
  author: {
2282
+ url?: never;
2282
2283
  email?: never;
2283
2284
  name: string;
2284
- url?: never;
2285
2285
  };
2286
2286
  version: null;
2287
2287
  license: null;
@@ -2369,9 +2369,9 @@ export declare function marketplacePlugin(url: string): {
2369
2369
  category: null;
2370
2370
  keywords: string[];
2371
2371
  author: {
2372
+ url?: never;
2372
2373
  email?: never;
2373
2374
  name: string;
2374
- url?: never;
2375
2375
  };
2376
2376
  version: string;
2377
2377
  license: string;
@@ -2408,9 +2408,9 @@ export declare function marketplacePlugin(url: string): {
2408
2408
  category: string;
2409
2409
  keywords: string[];
2410
2410
  author: {
2411
+ url?: never;
2411
2412
  name: string;
2412
2413
  email: string;
2413
- url?: never;
2414
2414
  };
2415
2415
  version: string;
2416
2416
  license: null;
@@ -2657,9 +2657,9 @@ export declare function marketplacePlugin(url: string): {
2657
2657
  category: string;
2658
2658
  keywords: string[];
2659
2659
  author: {
2660
+ url?: never;
2660
2661
  name: string;
2661
2662
  email: string;
2662
- url?: never;
2663
2663
  };
2664
2664
  version: string;
2665
2665
  license: string;
@@ -83,8 +83,8 @@ export declare function scheduledTaskMcpSummary(task: ScheduledTask): {
83
83
  runMode: "existing_session" | "new_session_per_run" | "reusable_session";
84
84
  overlapPolicy: "allow_concurrent" | "buffer_one" | "skip";
85
85
  action: {
86
+ readonly sourceId?: never;
86
87
  kind: "agent_turn";
87
- sourceId?: never;
88
88
  sourceGeneration?: never;
89
89
  sourceLifecycleGeneration?: never;
90
90
  destination?: never;
@@ -221,8 +221,8 @@ export declare function boundScheduledTaskDetailMcp(task: ScheduledTask): {
221
221
  runMode: "existing_session" | "new_session_per_run" | "reusable_session";
222
222
  overlapPolicy: "allow_concurrent" | "buffer_one" | "skip";
223
223
  action: {
224
+ readonly sourceId?: never;
224
225
  kind: "agent_turn";
225
- sourceId?: never;
226
226
  sourceGeneration?: never;
227
227
  sourceLifecycleGeneration?: never;
228
228
  destination?: never;
@@ -408,8 +408,8 @@ export declare function boundScheduledTaskDetailMcp(task: ScheduledTask): {
408
408
  runMode: "existing_session" | "new_session_per_run" | "reusable_session";
409
409
  overlapPolicy: "allow_concurrent" | "buffer_one" | "skip";
410
410
  action: {
411
+ readonly sourceId?: never;
411
412
  kind: "agent_turn";
412
- sourceId?: never;
413
413
  sourceGeneration?: never;
414
414
  sourceLifecycleGeneration?: never;
415
415
  destination?: never;
@@ -601,8 +601,8 @@ export declare function boundScheduledTaskMcpPage(input: {
601
601
  runMode: "existing_session" | "new_session_per_run" | "reusable_session";
602
602
  overlapPolicy: "allow_concurrent" | "buffer_one" | "skip";
603
603
  action: {
604
+ readonly sourceId?: never;
604
605
  kind: "agent_turn";
605
- sourceId?: never;
606
606
  sourceGeneration?: never;
607
607
  sourceLifecycleGeneration?: never;
608
608
  destination?: never;
@@ -50,6 +50,7 @@ export declare function orchestrationFailureEnvelope(tool: OrchestrationToolName
50
50
  };
51
51
  } | {
52
52
  error: {
53
+ reason?: never;
53
54
  code: "nested_agent_depth_exceeded" | "nested_agent_depth_override_forbidden";
54
55
  details: {
55
56
  readonly denial: {
@@ -70,7 +71,6 @@ export declare function orchestrationFailureEnvelope(tool: OrchestrationToolName
70
71
  createdAt: string;
71
72
  };
72
73
  };
73
- reason?: never;
74
74
  retryable?: never;
75
75
  message: string;
76
76
  };
@@ -116,6 +116,16 @@ export declare function slackBotFileContentResult(result: Awaited<ReturnType<Ope
116
116
  data: string;
117
117
  })[];
118
118
  };
119
+ /**
120
+ * The first-party server as seen by MCP protocol messages that touch no tool:
121
+ * `initialize`, `ping` and notifications. It advertises exactly what the full
122
+ * server does (the same name, version and tools capability) without the
123
+ * workspace, catalog, Memory and admin reads that registering tools needs.
124
+ * Never route `tools/*` here: it lists no tools.
125
+ */
126
+ export declare function buildOpenGeniMcpProtocolServer(grant: AccessGrant): McpServer;
127
+ /** JSON-RPC methods {@link buildOpenGeniMcpProtocolServer} answers like the full server. */
128
+ export declare function isOpenGeniMcpProtocolOnlyMessage(message: unknown): boolean;
119
129
  export declare function buildOpenGeniMcpServer(deps: ApiRouteDeps, grant: AccessGrant, options?: McpServerOptions): McpServer;
120
130
  /** Only a prompt explicitly supplied through the human/API channel may redirect a user-paused goal. */
121
131
  export declare function isHumanDirectedTurn(turn: {
@@ -1,6 +1,6 @@
1
- import { InteractionActor, type AccessGrant, type FileAsset, type CreateBrowserSessionRequest as CreateBrowserSessionRequestValue, type InteractionPlacement } from "@opengeni/contracts";
1
+ import { BrowserObservation, type BrowserTarget, InteractionActor, type AccessGrant, type FileAsset, type CreateBrowserSessionRequest as CreateBrowserSessionRequestValue, type InteractionPlacement } from "@opengeni/contracts";
2
2
  import { type ApiRouteDeps, type ResolvedSessionAuthorization } from "@opengeni/core";
3
- import { type BrowserControlScreenshotOptions, type BrowserControlFrame } from "@opengeni/runtime/sandbox";
3
+ import { BrowserControlClient, type BrowserControlScreenshotOptions, type BrowserControlFrame } from "@opengeni/runtime/sandbox";
4
4
  import type { Hono } from "hono";
5
5
  import { type InteractionSecretsPort } from "../interaction-secrets.js";
6
6
  export declare function registerBrowserSessionRoutes(app: Hono, deps: ApiRouteDeps, options?: {
@@ -59,6 +59,27 @@ export declare function browserNeedsStandaloneDisplayStack(input: {
59
59
  linkedComputer: boolean;
60
60
  nativeBrowserControl: boolean;
61
61
  }): boolean;
62
+ /** Attach the controller's launch view to a create that activated exactly that
63
+ * launch in this request. Replays, failures and other bindings get nothing, so
64
+ * a caller then reads the targets and observes as before. */
65
+ export declare function withInitialView<T extends {
66
+ session: {
67
+ id: string;
68
+ lifecycle: string;
69
+ controller: {
70
+ controllerGeneration: string;
71
+ } | null;
72
+ };
73
+ operation: {
74
+ state: string;
75
+ replayed: boolean;
76
+ };
77
+ }>(response: T, launched: Awaited<ReturnType<BrowserControlClient["createSession"]>> | null): T | (T & {
78
+ initialView: {
79
+ targets: BrowserTarget[];
80
+ observation: BrowserObservation;
81
+ };
82
+ });
62
83
  export declare function parseBrowserScreenshotOptions(query: URLSearchParams): BrowserControlScreenshotOptions;
63
84
  /** Preserve the controller's definite tab diagnosis (a tab that stopped
64
85
  * answering, or one whose renderer crashed) through the public API with its
@@ -27,6 +27,7 @@ export declare function sessionListQuery(query: Record<string, string>, allowCur
27
27
  includeTotals: boolean;
28
28
  needsYouOnly: boolean;
29
29
  contentArchivedOnly: boolean;
30
+ mineOnly: boolean;
30
31
  archivedOnly: boolean;
31
32
  sortBy: "updatedAt" | "createdAt" | "name" | undefined;
32
33
  archiveStatus: "active" | "archived" | "all" | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/api-router",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "Opengeni HTTP surface: the Hono adapter/router (createApp), routes, MCP HTTP transport, and HTTP access adapters over @opengeni/core. An engine-distribution surface — its runtime closure includes engine-internal packages.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -45,29 +45,29 @@
45
45
  "@keeper-security/secrets-manager-core": "17.6.0",
46
46
  "@llamaindex/liteparse": "2.14.2",
47
47
  "@modelcontextprotocol/sdk": "^1.29.0",
48
- "@opengeni/agent-proto": "3.3.0",
49
- "@opengeni/artifact-tool": "3.3.0",
50
- "@opengeni/capabilities": "3.3.0",
51
- "@opengeni/codemode": "3.3.0",
52
- "@opengeni/codex": "3.3.0",
53
- "@opengeni/config": "3.3.0",
54
- "@opengeni/contracts": "3.3.0",
55
- "@opengeni/core": "3.3.0",
56
- "@opengeni/db": "3.3.0",
57
- "@opengeni/documents": "3.3.0",
58
- "@opengeni/events": "3.3.0",
59
- "@opengeni/github": "3.3.0",
60
- "@opengeni/interaction": "3.3.0",
61
- "@opengeni/network": "3.3.0",
62
- "@opengeni/observability": "3.3.0",
63
- "@opengeni/runtime": "3.3.0",
64
- "@opengeni/storage": "3.3.0",
65
- "@opengeni/tool-gateway": "3.3.0",
66
- "@opengeni/vaults": "3.3.0",
67
- "@opengeni/vaults-keeper": "3.3.0",
68
- "@opengeni/vaults-onepassword": "3.3.0",
69
- "@opengeni/vaults-protonpass": "3.3.0",
70
- "@opengeni/xai-subscription": "3.3.0",
48
+ "@opengeni/agent-proto": "3.4.0",
49
+ "@opengeni/artifact-tool": "3.4.0",
50
+ "@opengeni/capabilities": "3.4.0",
51
+ "@opengeni/codemode": "3.4.0",
52
+ "@opengeni/codex": "3.4.0",
53
+ "@opengeni/config": "3.4.0",
54
+ "@opengeni/contracts": "3.4.0",
55
+ "@opengeni/core": "3.4.0",
56
+ "@opengeni/db": "3.4.0",
57
+ "@opengeni/documents": "3.4.0",
58
+ "@opengeni/events": "3.4.0",
59
+ "@opengeni/github": "3.4.0",
60
+ "@opengeni/interaction": "3.4.0",
61
+ "@opengeni/network": "3.4.0",
62
+ "@opengeni/observability": "3.4.0",
63
+ "@opengeni/runtime": "3.4.0",
64
+ "@opengeni/storage": "3.4.0",
65
+ "@opengeni/tool-gateway": "3.4.0",
66
+ "@opengeni/vaults": "3.4.0",
67
+ "@opengeni/vaults-keeper": "3.4.0",
68
+ "@opengeni/vaults-onepassword": "3.4.0",
69
+ "@opengeni/vaults-protonpass": "3.4.0",
70
+ "@opengeni/xai-subscription": "3.4.0",
71
71
  "@temporalio/client": "^1.17.0",
72
72
  "ajv": "^8.20.0",
73
73
  "better-auth": "^1.6.14",