@meshagent/meshagent 0.44.13 → 0.45.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/browser/index.d.ts +1 -1
  3. package/dist/browser/index.js +1 -1
  4. package/dist/browser/meshagent-client.d.ts +390 -372
  5. package/dist/browser/meshagent-client.js +841 -1040
  6. package/dist/browser/oauth-scopes.d.ts +1 -1
  7. package/dist/browser/oauth-scopes.js +64 -14
  8. package/dist/browser/participant-token.d.ts +68 -20
  9. package/dist/browser/participant-token.js +232 -61
  10. package/dist/browser/room-client.d.ts +4 -8
  11. package/dist/browser/room-client.js +4 -10
  12. package/dist/browser/services-client.d.ts +11 -0
  13. package/dist/browser/services-client.js +17 -0
  14. package/dist/browser/sqlite-client.d.ts +326 -0
  15. package/dist/browser/sqlite-client.js +630 -0
  16. package/dist/browser/toolkit-config.d.ts +7 -1
  17. package/dist/browser/toolkit-config.js +41 -22
  18. package/dist/esm/index.d.ts +1 -1
  19. package/dist/esm/index.js +1 -1
  20. package/dist/esm/meshagent-client.d.ts +390 -372
  21. package/dist/esm/meshagent-client.js +841 -1038
  22. package/dist/esm/oauth-scopes.d.ts +1 -1
  23. package/dist/esm/oauth-scopes.js +64 -14
  24. package/dist/esm/participant-token.d.ts +68 -20
  25. package/dist/esm/participant-token.js +228 -59
  26. package/dist/esm/room-client.d.ts +4 -8
  27. package/dist/esm/room-client.js +4 -10
  28. package/dist/esm/services-client.d.ts +11 -0
  29. package/dist/esm/services-client.js +17 -0
  30. package/dist/esm/sqlite-client.d.ts +326 -0
  31. package/dist/esm/sqlite-client.js +625 -0
  32. package/dist/esm/toolkit-config.d.ts +7 -1
  33. package/dist/esm/toolkit-config.js +41 -22
  34. package/dist/node/index.d.ts +1 -1
  35. package/dist/node/index.js +1 -1
  36. package/dist/node/meshagent-client.d.ts +390 -372
  37. package/dist/node/meshagent-client.js +841 -1040
  38. package/dist/node/oauth-scopes.d.ts +1 -1
  39. package/dist/node/oauth-scopes.js +64 -14
  40. package/dist/node/participant-token.d.ts +68 -20
  41. package/dist/node/participant-token.js +232 -61
  42. package/dist/node/room-client.d.ts +4 -8
  43. package/dist/node/room-client.js +4 -10
  44. package/dist/node/services-client.d.ts +11 -0
  45. package/dist/node/services-client.js +17 -0
  46. package/dist/node/sqlite-client.d.ts +326 -0
  47. package/dist/node/sqlite-client.js +630 -0
  48. package/dist/node/toolkit-config.d.ts +7 -1
  49. package/dist/node/toolkit-config.js +41 -22
  50. package/package.json +1 -1
  51. package/dist/browser/secrets-client.d.ts +0 -112
  52. package/dist/browser/secrets-client.js +0 -300
  53. package/dist/esm/secrets-client.d.ts +0 -112
  54. package/dist/esm/secrets-client.js +0 -296
  55. package/dist/node/secrets-client.d.ts +0 -112
  56. package/dist/node/secrets-client.js +0 -300
@@ -1,9 +1,27 @@
1
1
  import { ApiScope } from "./participant-token.js";
2
- export type ProjectRole = "member" | "admin" | "developer";
3
- export interface RoomShare {
2
+ export type ProjectRole = "member" | "admin" | "developer" | "room_creator" | "room_inventory" | "room_manager" | "session_inventory" | "agent_creator" | "agent_inventory" | "agent_manager" | "repository_creator" | "repository_inventory" | "repository_manager" | "feed_creator" | "feed_inventory" | "feed_manager" | "oauth_client_creator" | "oauth_client_inventory" | "oauth_client_manager" | "api_key_creator" | "api_key_inventory" | "api_key_manager" | "service_creator" | "service_inventory" | "service_manager" | "service_account_creator" | "service_account_inventory" | "service_account_manager" | "participant_token_creator" | "mailbox_creator" | "mailbox_inventory" | "mailbox_manager" | "route_creator" | "route_inventory" | "route_manager" | "scheduled_task_creator" | "scheduled_task_inventory" | "scheduled_task_manager" | "feed_subscription_creator" | "feed_subscription_inventory" | "feed_subscription_manager" | "llm_logger_creator" | "llm_logger_inventory" | "llm_logger_manager" | "llm_proxy_user" | "usage_reporter" | "billing_manager" | "group_manager";
3
+ export type ResourceRole = "viewer" | "operator" | "developer" | "admin";
4
+ export type FeedRole = "reader" | "subscriber" | "publisher" | "manager";
5
+ export type SecretRole = "use_proxy";
6
+ export type AccessRole = ProjectRole | ResourceRole | FeedRole | SecretRole | "list";
7
+ export type AccessSubjectType = "user" | "group" | "agent" | "service_account" | "userset";
8
+ export type AccessResourceType = "project" | "room" | "agent" | "group" | "repository" | "feed" | "secret";
9
+ export interface AccessSubject {
10
+ type: AccessSubjectType;
4
11
  id: string;
5
- projectId: string;
6
- settings: Record<string, unknown>;
12
+ name?: string | null;
13
+ firstName?: string | null;
14
+ lastName?: string | null;
15
+ email?: string | null;
16
+ objectType?: "project" | null;
17
+ relation?: "member" | "developer" | "agent" | null;
18
+ }
19
+ export interface AccessResource {
20
+ type: AccessResourceType;
21
+ id: string;
22
+ name?: string | null;
23
+ metadata?: Record<string, unknown> | null;
24
+ annotations?: Record<string, string> | null;
7
25
  }
8
26
  export interface RoomConnectionInfo {
9
27
  jwt: string;
@@ -40,55 +58,176 @@ export interface RoomInfo {
40
58
  metadata: Record<string, unknown>;
41
59
  annotations: Record<string, string>;
42
60
  }
61
+ export interface GroupInfo {
62
+ id: string;
63
+ name: string;
64
+ metadata: Record<string, unknown>;
65
+ annotations: Record<string, string>;
66
+ }
43
67
  export interface ProjectRoomGrant {
68
+ resource: AccessResource;
69
+ subject: AccessSubject;
70
+ directRoles: AccessRole[];
44
71
  room: RoomInfo;
45
72
  userId: string;
46
- permissions: ApiScope;
47
73
  }
48
- export interface ProjectRoomGrantCount {
49
- room: RoomInfo;
50
- count: number;
74
+ export interface AccessTestResult {
75
+ allowed: boolean;
76
+ resource?: AccessResource;
77
+ subject?: AccessSubject;
78
+ relation?: string;
51
79
  }
52
- export interface ProjectUserGrantCount {
53
- userId: string;
54
- count: number;
80
+ export interface EffectiveAccess {
81
+ resource: AccessResource;
82
+ subject: AccessSubject;
83
+ effectiveRoles: string[];
84
+ capabilities: Record<string, boolean>;
85
+ }
86
+ export interface AccessBindingsPage {
87
+ accessGrants: ProjectRoomGrant[];
88
+ }
89
+ export interface ResourcePolicyPage {
90
+ resource: AccessResource;
91
+ accessGrants: ProjectRoomGrant[];
92
+ continuationToken?: string | null;
93
+ }
94
+ export interface ProjectMember {
95
+ id: string;
96
+ email: string;
55
97
  firstName?: string | null;
56
98
  lastName?: string | null;
57
- email: string;
99
+ directRoles: ProjectRole[];
58
100
  }
59
101
  export interface ProjectMembersPage {
60
- users: Record<string, unknown>[];
61
- total: number;
102
+ users: ProjectMember[];
103
+ continuationToken?: string | null;
62
104
  }
63
- export interface ProjectUserGrantCountsPage {
64
- users: ProjectUserGrantCount[];
65
- total: number;
105
+ export interface GroupsPage {
106
+ groups: GroupInfo[];
107
+ continuationToken?: string | null;
66
108
  }
67
- export interface EnvironmentVariable {
109
+ export interface ServiceAccountInfo {
110
+ id: string;
111
+ project_id?: string;
112
+ key?: string;
68
113
  name: string;
69
- value: string;
114
+ display_name?: string | null;
115
+ description?: string | null;
116
+ metadata?: Record<string, unknown>;
117
+ annotations?: Record<string, string>;
118
+ created_at?: string | null;
119
+ updated_at?: string | null;
70
120
  }
71
- export interface RoomStorageMountSpec {
72
- path: string;
73
- subpath?: string | null;
74
- read_only?: boolean;
121
+ export interface ServiceAccountsPage {
122
+ service_accounts: ServiceAccountInfo[];
123
+ continuation_token?: string | null;
75
124
  }
76
- export interface ProjectStorageMountSpec {
77
- path: string;
78
- subpath?: string | null;
79
- read_only?: boolean;
125
+ export interface ApiKeyInfo {
126
+ id: string;
127
+ name: string;
128
+ description?: string | null;
129
+ project_id?: string | null;
130
+ service_account_id?: string | null;
131
+ created_at?: string | null;
132
+ last_used_at?: string | null;
133
+ value?: string | null;
80
134
  }
81
- export interface ImageStorageMountSpec {
82
- path: string;
83
- subpath?: string | null;
84
- read_only?: boolean;
85
- image: string;
135
+ export interface ApiKeysPage {
136
+ keys: ApiKeyInfo[];
137
+ }
138
+ export interface ApiKeysRevocationResult {
139
+ revoked: string[];
140
+ }
141
+ export interface Secret {
142
+ id: string;
143
+ project_id: string;
144
+ owner_user_id?: string | null;
145
+ owner_service_account_id?: string | null;
146
+ created_by_user_id?: string | null;
147
+ created_by_service_account_id?: string | null;
148
+ type: string;
149
+ name: string;
150
+ http_only: boolean;
151
+ metadata: Record<string, unknown>;
152
+ annotations: Record<string, unknown>;
153
+ current_version_id?: string | null;
154
+ value_base64?: string | null;
155
+ created_at: string;
156
+ updated_at: string;
157
+ }
158
+ export interface SecretVersion {
159
+ id: string;
160
+ secret_id: string;
161
+ version: number;
162
+ encryption_key_id: string;
163
+ value_sha256?: string | null;
164
+ created_by_user_id?: string | null;
165
+ created_by_service_account_id?: string | null;
166
+ created_at: string;
167
+ }
168
+ export interface SecretsPage {
169
+ secrets: Secret[];
170
+ continuation_token?: string | null;
171
+ }
172
+ export interface SecretVersionsPage {
173
+ versions: SecretVersion[];
174
+ }
175
+ export interface SecretProxyAccessGrant {
176
+ subject: AccessSubject;
177
+ roles: SecretRole[];
178
+ }
179
+ export interface SecretProxyAccessGrantsPage {
180
+ access_grants: SecretProxyAccessGrant[];
181
+ continuation_token?: string | null;
182
+ }
183
+ export interface SecretInput {
184
+ projectId?: string;
185
+ name?: string;
186
+ type?: string;
187
+ httpOnly?: boolean;
188
+ metadata?: Record<string, unknown>;
189
+ annotations?: Record<string, unknown>;
190
+ }
191
+ export interface SecretSearchInput {
192
+ filter?: string;
193
+ name?: string;
194
+ type?: string;
195
+ httpOnly?: boolean;
196
+ metadata?: Record<string, unknown>;
197
+ annotations?: Record<string, unknown>;
198
+ pageSize?: number;
199
+ continuationToken?: string;
200
+ }
201
+ export interface SecretVersionInput {
202
+ value: Uint8Array | ArrayBuffer;
203
+ setCurrent?: boolean;
204
+ }
205
+ export interface GroupMember {
206
+ subject: AccessSubject;
207
+ directRoles: Array<"member" | "manager">;
208
+ }
209
+ export interface GroupMembersPage {
210
+ members: GroupMember[];
211
+ continuationToken?: string | null;
212
+ }
213
+ export interface SecretValue {
214
+ id: string;
86
215
  }
87
- export interface FileStorageMountSpec {
216
+ export interface TokenValue {
217
+ identity: string;
218
+ api?: ApiScope | null;
219
+ role?: "user" | "agent" | "tool" | null;
220
+ }
221
+ export interface EnvironmentVariable {
222
+ name: string;
223
+ value?: string | null;
224
+ token?: TokenValue | null;
225
+ secret?: SecretValue | null;
226
+ }
227
+ export interface RoomStorageMountSpec {
88
228
  path: string;
89
229
  subpath?: string | null;
90
230
  read_only?: boolean;
91
- text: string;
92
231
  }
93
232
  export interface EmptyDirMountSpec {
94
233
  path: string;
@@ -97,13 +236,16 @@ export interface EmptyDirMountSpec {
97
236
  export interface ConfigMountSpec {
98
237
  path?: string | null;
99
238
  }
239
+ export interface FileMountSpec {
240
+ path: string;
241
+ read_only?: boolean;
242
+ text?: string | null;
243
+ }
100
244
  export interface ContainerMountSpec {
101
245
  room?: RoomStorageMountSpec[];
102
- project?: ProjectStorageMountSpec[];
103
- images?: ImageStorageMountSpec[];
104
- files?: FileStorageMountSpec[];
105
246
  empty_dirs?: EmptyDirMountSpec[];
106
247
  configs?: ConfigMountSpec[];
248
+ files?: FileMountSpec[];
107
249
  }
108
250
  export interface ServiceApiKeySpec {
109
251
  role: "admin";
@@ -168,6 +310,11 @@ export interface AgentSpec {
168
310
  email?: EmailSpec | null;
169
311
  heartbeat?: HeartbeatSpec | null;
170
312
  }
313
+ export interface ManagedAgent {
314
+ id: string;
315
+ name: string;
316
+ configuration: Record<string, unknown>;
317
+ }
171
318
  export interface ServiceMetadata {
172
319
  name: string;
173
320
  description?: string | null;
@@ -175,15 +322,19 @@ export interface ServiceMetadata {
175
322
  icon?: string | null;
176
323
  annotations?: Record<string, string> | null;
177
324
  }
325
+ export interface ServiceRunAs {
326
+ email: string;
327
+ scopes?: string[] | null;
328
+ }
178
329
  export interface ContainerSpec {
179
330
  private?: boolean | null;
180
331
  template?: "agent" | "none" | null;
181
332
  command?: string | null;
182
333
  working_dir?: string | null;
183
334
  image: string;
335
+ run_as?: ServiceRunAs | null;
336
+ pull_secret?: SecretValue | null;
184
337
  environment?: EnvironmentVariable[] | null;
185
- secrets?: string[];
186
- pull_secret?: string | null;
187
338
  storage?: ContainerMountSpec;
188
339
  on_demand?: boolean | null;
189
340
  writable_root_fs?: boolean | null;
@@ -215,6 +366,7 @@ export interface MCPEndpointSpec {
215
366
  require_approval?: "always" | "never" | null;
216
367
  oauth?: OAuthClientConfig | null;
217
368
  openai_connector_id?: string | null;
369
+ use_proxy_secret?: string | null;
218
370
  }
219
371
  export interface EndpointSpec {
220
372
  path: string;
@@ -241,61 +393,10 @@ export interface ServiceSpec {
241
393
  container?: ContainerSpec | null;
242
394
  external?: ExternalServiceSpec | null;
243
395
  }
244
- export interface TemplateEnvironmentVariable {
245
- name: string;
246
- value?: string | null;
247
- token?: Record<string, unknown> | null;
248
- }
249
- export interface ServiceTemplateContainerMountSpec {
250
- room?: RoomStorageMountSpec[] | null;
251
- project?: ProjectStorageMountSpec[] | null;
252
- images?: ImageStorageMountSpec[] | null;
253
- files?: FileStorageMountSpec[] | null;
254
- empty_dirs?: EmptyDirMountSpec[] | null;
255
- configs?: ConfigMountSpec[] | null;
256
- }
257
- export interface ContainerTemplateSpec {
258
- private?: boolean | null;
259
- command?: string | null;
260
- working_dir?: string | null;
261
- image?: string | null;
262
- environment?: TemplateEnvironmentVariable[] | null;
263
- storage?: ServiceTemplateContainerMountSpec | null;
264
- on_demand?: boolean | null;
265
- writable_root_fs?: boolean | null;
266
- }
267
- export interface ExternalServiceTemplateSpec {
268
- url: string;
269
- }
270
- export interface ServiceTemplateVariable {
271
- name: string;
272
- label?: string | null;
273
- description?: string | null;
274
- default?: string | null;
275
- required?: boolean | null;
276
- }
277
- export declare function normalizeServiceSpec(service: ServiceSpec | Record<string, unknown>): ServiceSpec;
278
396
  export declare class ServiceTemplateSpec {
279
- readonly version: string;
280
- readonly kind: string;
281
- readonly variables?: ServiceTemplateVariable[] | null;
282
- readonly metadata: ServiceMetadata;
283
- readonly ports: PortSpec[];
284
- readonly container?: ContainerTemplateSpec | null;
285
- readonly external?: ExternalServiceTemplateSpec | null;
286
- readonly agents: Record<string, unknown>[];
287
- constructor({ version, kind, variables, metadata, ports, container, external, agents, }: {
288
- version?: string;
289
- kind?: string;
290
- variables?: ServiceTemplateVariable[] | null;
291
- metadata: ServiceMetadata;
292
- ports?: PortSpec[];
293
- container?: ContainerTemplateSpec | null;
294
- external?: ExternalServiceTemplateSpec | null;
295
- agents?: Record<string, unknown>[];
296
- });
397
+ private readonly template;
398
+ private constructor();
297
399
  static fromJson(json: Record<string, unknown>): ServiceTemplateSpec;
298
- toJson(): Record<string, unknown>;
299
400
  toServiceSpec({ values }?: {
300
401
  values?: Record<string, string>;
301
402
  }): ServiceSpec;
@@ -332,6 +433,7 @@ export interface Route {
332
433
  export interface RoutesPage {
333
434
  routes: Route[];
334
435
  total: number;
436
+ continuationToken?: string | null;
335
437
  }
336
438
  export interface Mailbox {
337
439
  address: string;
@@ -342,6 +444,7 @@ export interface Mailbox {
342
444
  export interface MailboxesPage {
343
445
  mailboxes: Mailbox[];
344
446
  total: number;
447
+ continuationToken?: string | null;
345
448
  }
346
449
  export type FeedVisibility = "public" | "project" | "private";
347
450
  export interface Feed {
@@ -358,6 +461,7 @@ export interface Feed {
358
461
  export interface FeedsPage {
359
462
  feeds: Feed[];
360
463
  total: number;
464
+ continuationToken?: string | null;
361
465
  }
362
466
  export interface FeedSubscription {
363
467
  id: string;
@@ -413,64 +517,17 @@ export interface OAuthClient {
413
517
  scope: string;
414
518
  projectId: string;
415
519
  metadata: Record<string, string>;
520
+ official: boolean;
416
521
  }
417
522
  export interface OAuthClientsPage {
418
523
  clients: OAuthClient[];
419
524
  total: number;
420
525
  }
421
- export interface BaseSecret {
422
- id?: string;
423
- name: string;
424
- type: "docker" | "keys";
425
- }
426
- export interface PullSecret extends BaseSecret {
427
- type: "docker";
428
- server: string;
429
- username: string;
430
- password: string;
431
- email?: string;
432
- }
433
- export interface KeysSecret extends BaseSecret {
434
- type: "keys";
435
- data: Record<string, string>;
436
- }
437
- export type SecretLike = PullSecret | KeysSecret;
438
- export interface ManagedSecretInfo {
439
- id: string;
440
- type: string;
441
- name: string;
442
- delegatedTo?: string | null;
443
- }
444
- export interface ManagedSecret extends ManagedSecretInfo {
445
- dataBase64: string;
446
- data: Uint8Array;
447
- }
448
526
  export interface ConnectorRef {
449
527
  openaiConnectorId?: string | null;
450
528
  serverUrl?: string | null;
451
529
  clientSecretId?: string | null;
452
530
  }
453
- export interface ExternalOAuthClientRegistration {
454
- id: string;
455
- delegatedTo: string;
456
- connector?: ConnectorRef | null;
457
- oauth?: OAuthClientConfig | null;
458
- clientId: string;
459
- clientSecret?: string | null;
460
- }
461
- export interface ManagedAgent {
462
- id: string;
463
- name: string;
464
- configuration: Record<string, unknown>;
465
- }
466
- export declare class ManagedAgentGrant {
467
- readonly admin: boolean;
468
- constructor({ admin }?: {
469
- admin?: boolean;
470
- });
471
- static fromJson(json: Record<string, unknown>): ManagedAgentGrant;
472
- toJson(): Record<string, unknown>;
473
- }
474
531
  type JsonRequest = Record<string, unknown> | Array<unknown> | string | number | boolean | null;
475
532
  export declare class Meshagent {
476
533
  private readonly baseUrl;
@@ -481,28 +538,26 @@ export declare class Meshagent {
481
538
  });
482
539
  private buildUrl;
483
540
  private request;
484
- private parseRoomShare;
541
+ private secretPayload;
542
+ private secretSearchPayload;
543
+ private secretVersionPayload;
485
544
  private parseRoomSession;
486
- private parseManagedAgent;
487
545
  private parseRoom;
546
+ private parseGroup;
488
547
  private parseRoute;
489
548
  private parseFeed;
490
549
  private parseFeedSubscription;
491
550
  private parseLLMLogger;
492
551
  private parseProjectRepository;
552
+ private parseAccessResource;
553
+ private parseAccessSubject;
554
+ private serializeAccessSubject;
555
+ private serializeAccessResource;
556
+ private parseProjectMember;
557
+ private parseGroupMember;
493
558
  private parseProjectRoomGrant;
494
- private parseProjectRoomGrantCount;
495
- private parseProjectUserGrantCount;
496
559
  private parseBalance;
497
560
  private parseTransaction;
498
- private parseSecret;
499
- private parseManagedSecretInfo;
500
- private parseManagedSecret;
501
- private parseSecretPayload;
502
- private toSecretPayload;
503
- private parseConnectorRef;
504
- private serializeConnectorRef;
505
- private parseExternalOAuthClientRegistration;
506
561
  private parseOAuthClient;
507
562
  private parseRoomConnectionInfo;
508
563
  private encodePathComponent;
@@ -515,48 +570,87 @@ export declare class Meshagent {
515
570
  projectId: string;
516
571
  path: string;
517
572
  }): Promise<Uint8Array>;
518
- getProjectRole(projectId: string): Promise<ProjectRole>;
519
- createShare(projectId: string, settings?: Record<string, unknown>): Promise<{
520
- id: string;
521
- }>;
522
- deleteShare(projectId: string, shareId: string): Promise<void>;
523
- updateShare(projectId: string, shareId: string, settings?: Record<string, unknown>): Promise<void>;
524
- listShares(projectId: string): Promise<RoomShare[]>;
525
573
  createProject(name: string, settings?: Record<string, unknown>): Promise<Record<string, unknown>>;
526
574
  addUserToProject(projectId: string, userId: string, options?: {
527
- isAdmin?: boolean;
528
- isDeveloper?: boolean;
529
- canCreateRooms?: boolean;
530
- inviteRedirectUrl?: string;
531
- }): Promise<Record<string, unknown>>;
532
- addUserToProjectByEmail(projectId: string, email: string, options?: {
533
- isAdmin?: boolean;
534
- isDeveloper?: boolean;
535
- canCreateRooms?: boolean;
575
+ roles?: ProjectRole[];
576
+ email?: string;
536
577
  inviteRedirectUrl?: string;
537
578
  }): Promise<Record<string, unknown>>;
538
579
  removeUserFromProject(projectId: string, userId: string): Promise<Record<string, unknown>>;
539
580
  updateProjectSettings(projectId: string, settings: Record<string, unknown>): Promise<Record<string, unknown>>;
581
+ updateUserInProject(projectId: string, userId: string, roles: ProjectRole[]): Promise<Record<string, unknown>>;
540
582
  getUsersInProjectPage(projectId: string, options?: {
541
- count?: number;
542
- offset?: number;
583
+ pageSize?: number;
584
+ continuationToken?: string;
543
585
  filter?: string;
586
+ email?: string;
544
587
  }): Promise<ProjectMembersPage>;
545
- getUsersInProject(projectId: string): Promise<Record<string, unknown>>;
588
+ getUsersInProject(projectId: string): Promise<ProjectMember[]>;
546
589
  getUserProfile(userId: string): Promise<Record<string, unknown>>;
547
590
  updateUserProfile(userId: string, firstName: string, lastName: string): Promise<Record<string, unknown>>;
548
591
  listProjects(): Promise<Record<string, unknown>>;
549
592
  getProject(projectId: string): Promise<Record<string, unknown>>;
550
593
  getProjectByKey(projectKey: string): Promise<Record<string, unknown>>;
551
- createAgent(params: {
552
- projectId: string;
553
- configuration: Record<string, unknown>;
554
- ifNotExists?: boolean;
555
- permissions?: Record<string, ManagedAgentGrant> | null;
556
- }): Promise<ManagedAgent>;
557
- createApiKey(projectId: string, name: string, description: string): Promise<Record<string, unknown>>;
558
- deleteApiKey(projectId: string, id: string): Promise<void>;
559
- listApiKeys(projectId: string): Promise<Record<string, unknown>>;
594
+ listServiceAccounts(projectId: string, options?: {
595
+ pageSize?: number;
596
+ continuationToken?: string;
597
+ filter?: string;
598
+ view?: string;
599
+ }): Promise<ServiceAccountsPage>;
600
+ createServiceAccount(projectId: string, name: string, options?: {
601
+ displayName?: string;
602
+ description?: string;
603
+ metadata?: Record<string, unknown>;
604
+ annotations?: Record<string, string>;
605
+ }): Promise<ServiceAccountInfo>;
606
+ mintParticipantToken(projectId: string, options: {
607
+ name: string;
608
+ roomName?: string;
609
+ role?: string;
610
+ api?: Record<string, unknown>;
611
+ grants?: Record<string, unknown>[];
612
+ }): Promise<string>;
613
+ createApiKey(projectId: string, serviceAccountId: string, name: string, description: string): Promise<ApiKeyInfo>;
614
+ deleteApiKey(projectId: string, serviceAccountId: string, id: string): Promise<void>;
615
+ revokeApiKeysByMsid(projectId: string, serviceAccountId: string, msid: string): Promise<ApiKeysRevocationResult>;
616
+ listApiKeys(projectId: string, serviceAccountId: string): Promise<ApiKeysPage>;
617
+ createUserSecret(input: Required<Pick<SecretInput, "projectId" | "name">> & Omit<SecretInput, "projectId" | "name">): Promise<Secret>;
618
+ listUserSecrets(options?: {
619
+ pageSize?: number;
620
+ continuationToken?: string;
621
+ filter?: string;
622
+ }): Promise<SecretsPage>;
623
+ searchUserSecrets(input?: SecretSearchInput): Promise<SecretsPage>;
624
+ getUserSecret(secretId: string, options?: {
625
+ includeValue?: boolean;
626
+ }): Promise<Secret>;
627
+ updateUserSecret(secretId: string, input: SecretInput): Promise<Secret>;
628
+ deleteUserSecret(secretId: string): Promise<void>;
629
+ listUserSecretVersions(secretId: string): Promise<SecretVersion[]>;
630
+ createUserSecretVersion(secretId: string, input: SecretVersionInput): Promise<SecretVersion>;
631
+ listUserSecretProxyAccess(secretId: string, options?: {
632
+ pageSize?: number;
633
+ continuationToken?: string;
634
+ }): Promise<SecretProxyAccessGrantsPage>;
635
+ grantUserSecretProxyAccess(secretId: string, serviceAccountId: string): Promise<void>;
636
+ revokeUserSecretProxyAccess(secretId: string, serviceAccountId: string): Promise<void>;
637
+ createServiceAccountSecret(projectId: string, serviceAccountId: string, input: Required<Pick<SecretInput, "name">> & Omit<SecretInput, "projectId" | "name">): Promise<Secret>;
638
+ listServiceAccountSecrets(projectId: string, serviceAccountId: string, options?: {
639
+ pageSize?: number;
640
+ continuationToken?: string;
641
+ filter?: string;
642
+ }): Promise<SecretsPage>;
643
+ searchServiceAccountSecrets(projectId: string, serviceAccountId: string, input?: SecretSearchInput): Promise<SecretsPage>;
644
+ getServiceAccountSecret(projectId: string, serviceAccountId: string, secretId: string, options?: {
645
+ includeValue?: boolean;
646
+ }): Promise<Secret>;
647
+ updateServiceAccountSecret(projectId: string, serviceAccountId: string, secretId: string, input: SecretInput): Promise<Secret>;
648
+ deleteServiceAccountSecret(projectId: string, serviceAccountId: string, secretId: string): Promise<void>;
649
+ listServiceAccountSecretVersions(projectId: string, serviceAccountId: string, secretId: string): Promise<SecretVersion[]>;
650
+ createServiceAccountSecretVersion(projectId: string, serviceAccountId: string, secretId: string, input: SecretVersionInput): Promise<SecretVersion>;
651
+ listServiceAccountPullSecrets(projectId: string, serviceAccountId: string): Promise<Secret[]>;
652
+ addServiceAccountPullSecret(projectId: string, serviceAccountId: string, secretId: string): Promise<void>;
653
+ removeServiceAccountPullSecret(projectId: string, serviceAccountId: string, secretId: string): Promise<void>;
560
654
  getPricing(): Promise<Record<string, unknown>>;
561
655
  getStatus(projectId: string): Promise<boolean>;
562
656
  getBalance(projectId: string): Promise<Balance>;
@@ -594,28 +688,22 @@ export declare class Meshagent {
594
688
  getSession(projectId: string, sessionId: string): Promise<Record<string, unknown>>;
595
689
  listActiveSessions(projectId: string): Promise<RoomSession[]>;
596
690
  listRecentSessions(projectId: string): Promise<RoomSession[]>;
691
+ listRecentRoomSessions(projectId: string, roomName: string, options?: {
692
+ limit?: number;
693
+ }): Promise<RoomSession[]>;
694
+ listRecentSingleAgentSessions(projectId: string, agentName: string, options?: {
695
+ limit?: number;
696
+ }): Promise<RoomSession[]>;
697
+ createAgent(params: {
698
+ projectId: string;
699
+ configuration: Record<string, unknown>;
700
+ ifNotExists?: boolean;
701
+ permissions?: unknown[] | null;
702
+ }): Promise<ManagedAgent>;
597
703
  listSessionEvents(projectId: string, sessionId: string): Promise<Record<string, unknown>[]>;
598
704
  terminateSession(projectId: string, sessionId: string): Promise<void>;
599
705
  listSessionSpans(projectId: string, sessionId: string): Promise<Record<string, unknown>[]>;
600
706
  listSessionMetrics(projectId: string, sessionId: string): Promise<Record<string, unknown>[]>;
601
- createWebhook(projectId: string, params: {
602
- name: string;
603
- url: string;
604
- events: string[];
605
- description?: string;
606
- action?: string;
607
- payload?: Record<string, unknown> | null;
608
- }): Promise<Record<string, unknown>>;
609
- updateWebhook(projectId: string, webhookId: string, params: {
610
- name: string;
611
- url: string;
612
- events: string[];
613
- description?: string;
614
- action?: string | null;
615
- payload?: Record<string, unknown> | null;
616
- }): Promise<Record<string, unknown>>;
617
- listWebhooks(projectId: string): Promise<Record<string, unknown>>;
618
- deleteWebhook(projectId: string, webhookId: string): Promise<void>;
619
707
  createMailbox(params: {
620
708
  projectId: string;
621
709
  address: string;
@@ -632,13 +720,12 @@ export declare class Meshagent {
632
720
  }): Promise<void>;
633
721
  private parseMailbox;
634
722
  listMailboxesPage(projectId: string, options?: {
635
- count?: number;
636
- offset?: number;
723
+ pageSize?: number;
724
+ continuationToken?: string;
637
725
  filter?: string;
638
726
  }): Promise<MailboxesPage>;
639
727
  listMailboxes(projectId: string, options?: {
640
- count?: number;
641
- offset?: number;
728
+ pageSize?: number;
642
729
  filter?: string;
643
730
  }): Promise<Mailbox[]>;
644
731
  deleteMailbox(projectId: string, address: string): Promise<void>;
@@ -662,14 +749,15 @@ export declare class Meshagent {
662
749
  }): Promise<void>;
663
750
  getFeed(projectId: string, feedId: string): Promise<Feed>;
664
751
  listFeedsPage(projectId: string, options?: {
665
- count?: number;
666
- offset?: number;
752
+ pageSize?: number;
753
+ continuationToken?: string;
667
754
  filter?: string;
755
+ view?: "my" | "all";
668
756
  }): Promise<FeedsPage>;
669
757
  listFeeds(projectId: string, options?: {
670
- count?: number;
671
- offset?: number;
758
+ pageSize?: number;
672
759
  filter?: string;
760
+ view?: "my" | "all";
673
761
  }): Promise<Feed[]>;
674
762
  listRoomFeedsPage(projectId: string, roomName: string, options?: {
675
763
  count?: number;
@@ -742,7 +830,18 @@ export declare class Meshagent {
742
830
  annotations?: Record<string, string>;
743
831
  }): Promise<ProjectRepository>;
744
832
  getRepository(projectId: string, repositoryId: string): Promise<ProjectRepository>;
745
- listRepositories(projectId: string): Promise<ProjectRepository[]>;
833
+ listRepositoriesPage(projectId: string, options?: {
834
+ pageSize?: number;
835
+ view?: "my" | "all";
836
+ continuationToken?: string;
837
+ }): Promise<{
838
+ repositories: ProjectRepository[];
839
+ total: number;
840
+ continuationToken?: string | null;
841
+ }>;
842
+ listRepositories(projectId: string, options?: {
843
+ view?: "my" | "all";
844
+ }): Promise<ProjectRepository[]>;
746
845
  deleteRepository(projectId: string, repositoryId: string): Promise<void>;
747
846
  createService(projectId: string, service: ServiceSpec): Promise<string>;
748
847
  createRoomService(projectId: string, roomName: string, service: ServiceSpec): Promise<string>;
@@ -754,128 +853,12 @@ export declare class Meshagent {
754
853
  getService(projectId: string, serviceId: string): Promise<ServiceSpec>;
755
854
  listServices(projectId: string): Promise<ServiceSpec[]>;
756
855
  deleteService(projectId: string, serviceId: string): Promise<void>;
757
- createProjectSecret(params: {
758
- projectId: string;
759
- name: string;
760
- type: string;
761
- data: Uint8Array | ArrayBuffer | Buffer;
762
- }): Promise<string>;
763
- updateProjectSecret(params: {
764
- projectId: string;
765
- secretId: string;
766
- name: string;
767
- type: string;
768
- data: Uint8Array | ArrayBuffer | Buffer;
769
- }): Promise<void>;
770
- getProjectSecret(projectId: string, secretId: string): Promise<ManagedSecret>;
771
- listProjectSecrets(projectId: string): Promise<ManagedSecretInfo[]>;
772
- deleteProjectSecret(projectId: string, secretId: string): Promise<void>;
773
- createRoomSecret(params: {
774
- projectId: string;
775
- roomName: string;
776
- data: Uint8Array | ArrayBuffer | Buffer;
777
- secretId?: string;
778
- name?: string;
779
- type?: string;
780
- delegatedTo?: string;
781
- forIdentity?: string;
782
- }): Promise<string>;
783
- updateRoomSecret(params: {
784
- projectId: string;
785
- roomName: string;
786
- secretId: string;
787
- data: Uint8Array | ArrayBuffer | Buffer;
788
- name?: string;
789
- type?: string;
790
- delegatedTo?: string;
791
- forIdentity?: string;
792
- }): Promise<void>;
793
- getRoomSecret(params: {
794
- projectId: string;
795
- roomName: string;
796
- secretId: string;
797
- delegatedTo?: string;
798
- forIdentity?: string;
799
- }): Promise<ManagedSecret>;
800
- listRoomSecrets(params: {
801
- projectId: string;
802
- roomName: string;
803
- forIdentity?: string;
804
- }): Promise<ManagedSecretInfo[]>;
805
- deleteRoomSecret(params: {
806
- projectId: string;
807
- roomName: string;
808
- secretId: string;
809
- delegatedTo?: string;
810
- forIdentity?: string;
811
- }): Promise<void>;
812
- createSecret(projectId: string, secret: SecretLike): Promise<void>;
813
- updateSecret(projectId: string, secret: SecretLike): Promise<void>;
814
- deleteSecret(projectId: string, secretId: string): Promise<void>;
815
- listSecrets(projectId: string): Promise<SecretLike[]>;
816
- createProjectExternalOAuthRegistration(params: {
817
- projectId: string;
818
- oauth: OAuthClientConfig;
819
- clientId: string;
820
- clientSecret?: string | null;
821
- delegatedTo?: string | null;
822
- connector?: ConnectorRef | null;
823
- }): Promise<string>;
824
- updateProjectExternalOAuthRegistration(params: {
825
- projectId: string;
826
- registrationId: string;
827
- oauth: OAuthClientConfig;
828
- clientId: string;
829
- clientSecret?: string | null;
830
- delegatedTo?: string | null;
831
- connector?: ConnectorRef | null;
832
- }): Promise<void>;
833
- listProjectExternalOAuthRegistrations(params: {
834
- projectId: string;
835
- delegatedTo?: string | null;
836
- }): Promise<ExternalOAuthClientRegistration[]>;
837
- deleteProjectExternalOAuthRegistration(params: {
838
- projectId: string;
839
- registrationId: string;
840
- delegatedTo?: string | null;
841
- }): Promise<void>;
842
- createRoomExternalOAuthRegistration(params: {
843
- projectId: string;
844
- roomName: string;
845
- oauth: OAuthClientConfig;
846
- clientId: string;
847
- clientSecret?: string | null;
848
- delegatedTo?: string | null;
849
- connector?: ConnectorRef | null;
850
- }): Promise<string>;
851
- updateRoomExternalOAuthRegistration(params: {
852
- projectId: string;
853
- roomName: string;
854
- registrationId: string;
855
- oauth: OAuthClientConfig;
856
- clientId: string;
857
- clientSecret?: string | null;
858
- delegatedTo?: string | null;
859
- connector?: ConnectorRef | null;
860
- }): Promise<void>;
861
- listRoomExternalOAuthRegistrations(params: {
862
- projectId: string;
863
- roomName: string;
864
- delegatedTo?: string | null;
865
- }): Promise<ExternalOAuthClientRegistration[]>;
866
- deleteRoomExternalOAuthRegistration(params: {
867
- projectId: string;
868
- roomName: string;
869
- registrationId: string;
870
- delegatedTo?: string | null;
871
- }): Promise<void>;
872
856
  createRoom(params: {
873
857
  projectId: string;
874
858
  name: string;
875
859
  ifNotExists?: boolean;
876
860
  metadata?: Record<string, unknown>;
877
861
  annotations?: Record<string, string>;
878
- permissions?: Record<string, ApiScope>;
879
862
  }): Promise<RoomInfo>;
880
863
  getRoom(projectId: string, name: string): Promise<RoomInfo>;
881
864
  updateRoom(projectId: string, roomId: string, name: string, options?: {
@@ -883,33 +866,54 @@ export declare class Meshagent {
883
866
  annotations?: Record<string, string>;
884
867
  }): Promise<void>;
885
868
  deleteRoom(projectId: string, roomId: string): Promise<void>;
886
- connectRoom(projectId: string, room: string): Promise<RoomConnectionInfo>;
887
- createRoomGrant(params: {
869
+ createGroup(params: {
888
870
  projectId: string;
889
- roomId: string;
890
- userId: string;
891
- permissions: ApiScope;
871
+ name: string;
872
+ metadata?: Record<string, unknown>;
873
+ annotations?: Record<string, string>;
874
+ }): Promise<GroupInfo>;
875
+ getGroup(projectId: string, groupId: string): Promise<GroupInfo>;
876
+ updateGroup(projectId: string, groupId: string, name: string, options?: {
877
+ metadata?: Record<string, unknown>;
878
+ annotations?: Record<string, string>;
892
879
  }): Promise<void>;
893
- createRoomGrantByEmail(params: {
880
+ deleteGroup(projectId: string, groupId: string): Promise<void>;
881
+ listGroupsPage(projectId: string, options?: {
882
+ pageSize?: number;
883
+ continuationToken?: string;
884
+ filter?: string;
885
+ }): Promise<GroupsPage>;
886
+ listGroups(projectId: string, options?: {
887
+ pageSize?: number;
888
+ continuationToken?: string;
889
+ filter?: string;
890
+ }): Promise<GroupInfo[]>;
891
+ setGroupMember(params: {
894
892
  projectId: string;
895
- roomId: string;
896
- email: string;
897
- permissions: ApiScope;
898
- inviteRedirectUrl?: string;
893
+ groupId: string;
894
+ subject: AccessSubject;
895
+ role?: "member" | "manager";
899
896
  }): Promise<void>;
900
- updateRoomGrant(params: {
897
+ listGroupMembersPage(projectId: string, groupId: string, options?: {
898
+ pageSize?: number;
899
+ continuationToken?: string;
900
+ }): Promise<GroupMembersPage>;
901
+ listGroupMembers(projectId: string, groupId: string, options?: {
902
+ pageSize?: number;
903
+ continuationToken?: string;
904
+ }): Promise<GroupMember[]>;
905
+ deleteGroupMember(params: {
901
906
  projectId: string;
902
- roomId: string;
903
- userId: string;
904
- permissions: ApiScope;
905
- grantId?: string;
907
+ groupId: string;
908
+ subjectType: "user" | "agent" | "service_account" | "group";
909
+ subjectId: string;
906
910
  }): Promise<void>;
907
- deleteRoomGrant(projectId: string, roomId: string, userId: string): Promise<void>;
908
- getRoomGrant(projectId: string, roomId: string, userId: string): Promise<ProjectRoomGrant>;
911
+ connectRoom(projectId: string, room: string): Promise<RoomConnectionInfo>;
909
912
  listRooms(projectId: string, options?: {
910
- limit?: number;
911
- offset?: number;
912
- orderBy?: string;
913
+ pageSize?: number;
914
+ continuationToken?: string;
915
+ filter?: string;
916
+ view?: "my" | "all";
913
917
  }): Promise<RoomInfo[]>;
914
918
  createRoute(params: {
915
919
  projectId: string;
@@ -925,13 +929,12 @@ export declare class Meshagent {
925
929
  domain: string;
926
930
  }): Promise<Route>;
927
931
  listRoutesPage(projectId: string, options?: {
928
- count?: number;
929
- offset?: number;
932
+ pageSize?: number;
933
+ continuationToken?: string;
930
934
  filter?: string;
931
935
  }): Promise<RoutesPage>;
932
936
  listRoutes(projectId: string, options?: {
933
- count?: number;
934
- offset?: number;
937
+ pageSize?: number;
935
938
  filter?: string;
936
939
  }): Promise<Route[]>;
937
940
  listRoomRoutesPage(params: {
@@ -966,39 +969,54 @@ export declare class Meshagent {
966
969
  projectId: string;
967
970
  domain: string;
968
971
  }): Promise<void>;
969
- listRoomGrants(projectId: string, options?: {
970
- limit?: number;
971
- offset?: number;
972
- orderBy?: string;
972
+ testAccess(projectId: string, params: {
973
+ subject: AccessSubject;
974
+ resource: AccessResource;
975
+ relation: string;
976
+ }): Promise<AccessTestResult>;
977
+ getEffectiveAccess(projectId: string, params: {
978
+ subject: AccessSubject;
979
+ resource: AccessResource;
980
+ relations?: string[];
981
+ }): Promise<EffectiveAccess>;
982
+ listAccessBindings(projectId: string, params: {
983
+ subject: AccessSubject;
973
984
  }): Promise<ProjectRoomGrant[]>;
974
- listRoomGrantsByUser(projectId: string, userId: string, options?: {
975
- limit?: number;
976
- offset?: number;
985
+ listAccessBindingsPage(projectId: string, params: {
986
+ subject: AccessSubject;
987
+ }): Promise<AccessBindingsPage>;
988
+ getResourcePolicyPage(projectId: string, params: {
989
+ resourceType: string;
990
+ resourceId: string;
991
+ pageSize?: number;
992
+ continuationToken?: string;
993
+ }): Promise<ResourcePolicyPage>;
994
+ getResourcePolicy(projectId: string, params: {
995
+ resourceType: string;
996
+ resourceId: string;
997
+ pageSize?: number;
998
+ continuationToken?: string;
977
999
  }): Promise<ProjectRoomGrant[]>;
978
- listRoomGrantsByRoom(projectId: string, roomId: string, options?: {
979
- limit?: number;
980
- offset?: number;
981
- }): Promise<ProjectRoomGrant[]>;
982
- listUniqueRoomsWithGrants(projectId: string, options?: {
983
- limit?: number;
984
- offset?: number;
985
- }): Promise<ProjectRoomGrantCount[]>;
986
- listUniqueUsersWithGrantsPage(projectId: string, options?: {
987
- limit?: number;
988
- offset?: number;
989
- filter?: string;
990
- }): Promise<ProjectUserGrantCountsPage>;
991
- listUniqueUsersWithGrants(projectId: string, options?: {
992
- limit?: number;
993
- offset?: number;
994
- filter?: string;
995
- }): Promise<ProjectUserGrantCount[]>;
1000
+ grantResourcePolicy(projectId: string, params: {
1001
+ resourceType: string;
1002
+ resourceId: string;
1003
+ subject: AccessSubject;
1004
+ roles: string[];
1005
+ inviteRedirectUrl?: string;
1006
+ }): Promise<void>;
1007
+ revokeResourcePolicy(projectId: string, params: {
1008
+ resourceType: string;
1009
+ resourceId: string;
1010
+ subject: AccessSubject;
1011
+ }): Promise<void>;
1012
+ private validateResourcePolicyType;
996
1013
  createOAuthClient(projectId: string, params: {
997
1014
  grantTypes: string[];
998
1015
  responseTypes: string[];
999
1016
  redirectUris: string[];
1000
1017
  scope: string;
1001
1018
  metadata?: Record<string, any>;
1019
+ official?: boolean;
1002
1020
  }): Promise<OAuthClient>;
1003
1021
  updateOAuthClient(projectId: string, clientId: string, params: {
1004
1022
  grantTypes?: string[];