@meshagent/meshagent 0.52.4 → 0.53.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## [0.53.1]
2
+ - Stability
3
+
4
+ ## [0.53.0]
5
+ - Added user profile metadata and annotations to project-member types and parsing.
6
+ - Added the `user_profile_editor` project role and support for partial profile updates with metadata, annotations, and project ID options.
7
+
8
+ ## [Unreleased]
9
+ - Added user profile metadata and string annotations to project-member models, plus `metadata`, `annotations`, and `projectId` options on `updateUserProfile`. Omitted fields are preserved; supplied maps replace their previous contents.
10
+ - Added `user_profile_editor` to project role types and parsing. Project owners and admins inherit profile editing; ordinary users can edit their own names and metadata.
11
+
1
12
  ## [0.52.4]
2
13
  - Stability
3
14
 
@@ -1,5 +1,5 @@
1
1
  import { ApiScope } from "./participant-token.js";
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" | "llm_quota_manager" | "usage_reporter" | "billing_manager" | "group_manager";
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" | "llm_quota_manager" | "usage_reporter" | "billing_manager" | "group_manager" | "user_profile_editor";
3
3
  export type ResourceRole = "viewer" | "operator" | "developer" | "admin";
4
4
  export type RoomRole = "site_user" | "guest" | ResourceRole;
5
5
  export type ProjectSettingsDocumentName = "openai" | "anthropic" | "otel" | "admission" | "room" | "room_roles" | "router";
@@ -131,6 +131,8 @@ export interface ProjectMember {
131
131
  email: string;
132
132
  firstName?: string | null;
133
133
  lastName?: string | null;
134
+ metadata?: Record<string, unknown>;
135
+ annotations?: Record<string, string>;
134
136
  directRoles: ProjectRole[];
135
137
  }
136
138
  export interface ProjectMembersPage {
@@ -660,7 +662,11 @@ export declare class Meshagent {
660
662
  }): Promise<ProjectMembersPage>;
661
663
  getUsersInProject(projectId: string): Promise<ProjectMember[]>;
662
664
  getUserProfile(userId: string): Promise<Record<string, unknown>>;
663
- updateUserProfile(userId: string, firstName: string, lastName: string): Promise<Record<string, unknown>>;
665
+ updateUserProfile(userId: string, firstName?: string, lastName?: string, options?: {
666
+ metadata?: Record<string, unknown>;
667
+ annotations?: Record<string, string>;
668
+ projectId?: string;
669
+ }): Promise<Record<string, unknown>>;
664
670
  listProjects(): Promise<Record<string, unknown>>;
665
671
  getProject(projectId: string): Promise<Record<string, unknown>>;
666
672
  getProjectByKey(projectKey: string): Promise<Record<string, unknown>>;
@@ -697,7 +697,8 @@ class Meshagent {
697
697
  item === "llm_proxy_user" ||
698
698
  item === "usage_reporter" ||
699
699
  item === "billing_manager" ||
700
- item === "group_manager")
700
+ item === "group_manager" ||
701
+ item === "user_profile_editor")
701
702
  : [];
702
703
  const id = typeof user.id === "string" ? user.id : "";
703
704
  const email = typeof user.email === "string" ? user.email : "";
@@ -706,6 +707,8 @@ class Meshagent {
706
707
  email,
707
708
  firstName: typeof user.first_name === "string" ? user.first_name : null,
708
709
  lastName: typeof user.last_name === "string" ? user.last_name : null,
710
+ metadata: user.metadata && typeof user.metadata === "object" ? user.metadata : {},
711
+ annotations: user.annotations && typeof user.annotations === "object" ? user.annotations : {},
709
712
  directRoles,
710
713
  };
711
714
  }
@@ -779,6 +782,7 @@ class Meshagent {
779
782
  item === "usage_reporter" ||
780
783
  item === "billing_manager" ||
781
784
  item === "group_manager" ||
785
+ item === "user_profile_editor" ||
782
786
  item === "reader" ||
783
787
  item === "subscriber" ||
784
788
  item === "publisher" ||
@@ -1014,10 +1018,16 @@ class Meshagent {
1014
1018
  action: "fetch user profile",
1015
1019
  });
1016
1020
  }
1017
- async updateUserProfile(userId, firstName, lastName) {
1018
- return await this.request(`/accounts/profiles/${userId}`, {
1021
+ async updateUserProfile(userId, firstName, lastName, options = {}) {
1022
+ const query = options.projectId === undefined ? "" : `?project_id=${encodeURIComponent(options.projectId)}`;
1023
+ return await this.request(`/accounts/profiles/${encodeURIComponent(userId)}${query}`, {
1019
1024
  method: "PUT",
1020
- json: { first_name: firstName, last_name: lastName },
1025
+ json: {
1026
+ ...(firstName !== undefined ? { first_name: firstName } : {}),
1027
+ ...(lastName !== undefined ? { last_name: lastName } : {}),
1028
+ ...(options.metadata !== undefined ? { metadata: options.metadata } : {}),
1029
+ ...(options.annotations !== undefined ? { annotations: options.annotations } : {}),
1030
+ },
1021
1031
  action: "update user profile",
1022
1032
  });
1023
1033
  }
@@ -1,5 +1,5 @@
1
1
  import { ApiScope } from "./participant-token.js";
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" | "llm_quota_manager" | "usage_reporter" | "billing_manager" | "group_manager";
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" | "llm_quota_manager" | "usage_reporter" | "billing_manager" | "group_manager" | "user_profile_editor";
3
3
  export type ResourceRole = "viewer" | "operator" | "developer" | "admin";
4
4
  export type RoomRole = "site_user" | "guest" | ResourceRole;
5
5
  export type ProjectSettingsDocumentName = "openai" | "anthropic" | "otel" | "admission" | "room" | "room_roles" | "router";
@@ -131,6 +131,8 @@ export interface ProjectMember {
131
131
  email: string;
132
132
  firstName?: string | null;
133
133
  lastName?: string | null;
134
+ metadata?: Record<string, unknown>;
135
+ annotations?: Record<string, string>;
134
136
  directRoles: ProjectRole[];
135
137
  }
136
138
  export interface ProjectMembersPage {
@@ -660,7 +662,11 @@ export declare class Meshagent {
660
662
  }): Promise<ProjectMembersPage>;
661
663
  getUsersInProject(projectId: string): Promise<ProjectMember[]>;
662
664
  getUserProfile(userId: string): Promise<Record<string, unknown>>;
663
- updateUserProfile(userId: string, firstName: string, lastName: string): Promise<Record<string, unknown>>;
665
+ updateUserProfile(userId: string, firstName?: string, lastName?: string, options?: {
666
+ metadata?: Record<string, unknown>;
667
+ annotations?: Record<string, string>;
668
+ projectId?: string;
669
+ }): Promise<Record<string, unknown>>;
664
670
  listProjects(): Promise<Record<string, unknown>>;
665
671
  getProject(projectId: string): Promise<Record<string, unknown>>;
666
672
  getProjectByKey(projectKey: string): Promise<Record<string, unknown>>;
@@ -692,7 +692,8 @@ export class Meshagent {
692
692
  item === "llm_proxy_user" ||
693
693
  item === "usage_reporter" ||
694
694
  item === "billing_manager" ||
695
- item === "group_manager")
695
+ item === "group_manager" ||
696
+ item === "user_profile_editor")
696
697
  : [];
697
698
  const id = typeof user.id === "string" ? user.id : "";
698
699
  const email = typeof user.email === "string" ? user.email : "";
@@ -701,6 +702,8 @@ export class Meshagent {
701
702
  email,
702
703
  firstName: typeof user.first_name === "string" ? user.first_name : null,
703
704
  lastName: typeof user.last_name === "string" ? user.last_name : null,
705
+ metadata: user.metadata && typeof user.metadata === "object" ? user.metadata : {},
706
+ annotations: user.annotations && typeof user.annotations === "object" ? user.annotations : {},
704
707
  directRoles,
705
708
  };
706
709
  }
@@ -774,6 +777,7 @@ export class Meshagent {
774
777
  item === "usage_reporter" ||
775
778
  item === "billing_manager" ||
776
779
  item === "group_manager" ||
780
+ item === "user_profile_editor" ||
777
781
  item === "reader" ||
778
782
  item === "subscriber" ||
779
783
  item === "publisher" ||
@@ -1009,10 +1013,16 @@ export class Meshagent {
1009
1013
  action: "fetch user profile",
1010
1014
  });
1011
1015
  }
1012
- async updateUserProfile(userId, firstName, lastName) {
1013
- return await this.request(`/accounts/profiles/${userId}`, {
1016
+ async updateUserProfile(userId, firstName, lastName, options = {}) {
1017
+ const query = options.projectId === undefined ? "" : `?project_id=${encodeURIComponent(options.projectId)}`;
1018
+ return await this.request(`/accounts/profiles/${encodeURIComponent(userId)}${query}`, {
1014
1019
  method: "PUT",
1015
- json: { first_name: firstName, last_name: lastName },
1020
+ json: {
1021
+ ...(firstName !== undefined ? { first_name: firstName } : {}),
1022
+ ...(lastName !== undefined ? { last_name: lastName } : {}),
1023
+ ...(options.metadata !== undefined ? { metadata: options.metadata } : {}),
1024
+ ...(options.annotations !== undefined ? { annotations: options.annotations } : {}),
1025
+ },
1016
1026
  action: "update user profile",
1017
1027
  });
1018
1028
  }
@@ -1,5 +1,5 @@
1
1
  import { ApiScope } from "./participant-token.js";
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" | "llm_quota_manager" | "usage_reporter" | "billing_manager" | "group_manager";
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" | "llm_quota_manager" | "usage_reporter" | "billing_manager" | "group_manager" | "user_profile_editor";
3
3
  export type ResourceRole = "viewer" | "operator" | "developer" | "admin";
4
4
  export type RoomRole = "site_user" | "guest" | ResourceRole;
5
5
  export type ProjectSettingsDocumentName = "openai" | "anthropic" | "otel" | "admission" | "room" | "room_roles" | "router";
@@ -131,6 +131,8 @@ export interface ProjectMember {
131
131
  email: string;
132
132
  firstName?: string | null;
133
133
  lastName?: string | null;
134
+ metadata?: Record<string, unknown>;
135
+ annotations?: Record<string, string>;
134
136
  directRoles: ProjectRole[];
135
137
  }
136
138
  export interface ProjectMembersPage {
@@ -660,7 +662,11 @@ export declare class Meshagent {
660
662
  }): Promise<ProjectMembersPage>;
661
663
  getUsersInProject(projectId: string): Promise<ProjectMember[]>;
662
664
  getUserProfile(userId: string): Promise<Record<string, unknown>>;
663
- updateUserProfile(userId: string, firstName: string, lastName: string): Promise<Record<string, unknown>>;
665
+ updateUserProfile(userId: string, firstName?: string, lastName?: string, options?: {
666
+ metadata?: Record<string, unknown>;
667
+ annotations?: Record<string, string>;
668
+ projectId?: string;
669
+ }): Promise<Record<string, unknown>>;
664
670
  listProjects(): Promise<Record<string, unknown>>;
665
671
  getProject(projectId: string): Promise<Record<string, unknown>>;
666
672
  getProjectByKey(projectKey: string): Promise<Record<string, unknown>>;
@@ -697,7 +697,8 @@ class Meshagent {
697
697
  item === "llm_proxy_user" ||
698
698
  item === "usage_reporter" ||
699
699
  item === "billing_manager" ||
700
- item === "group_manager")
700
+ item === "group_manager" ||
701
+ item === "user_profile_editor")
701
702
  : [];
702
703
  const id = typeof user.id === "string" ? user.id : "";
703
704
  const email = typeof user.email === "string" ? user.email : "";
@@ -706,6 +707,8 @@ class Meshagent {
706
707
  email,
707
708
  firstName: typeof user.first_name === "string" ? user.first_name : null,
708
709
  lastName: typeof user.last_name === "string" ? user.last_name : null,
710
+ metadata: user.metadata && typeof user.metadata === "object" ? user.metadata : {},
711
+ annotations: user.annotations && typeof user.annotations === "object" ? user.annotations : {},
709
712
  directRoles,
710
713
  };
711
714
  }
@@ -779,6 +782,7 @@ class Meshagent {
779
782
  item === "usage_reporter" ||
780
783
  item === "billing_manager" ||
781
784
  item === "group_manager" ||
785
+ item === "user_profile_editor" ||
782
786
  item === "reader" ||
783
787
  item === "subscriber" ||
784
788
  item === "publisher" ||
@@ -1014,10 +1018,16 @@ class Meshagent {
1014
1018
  action: "fetch user profile",
1015
1019
  });
1016
1020
  }
1017
- async updateUserProfile(userId, firstName, lastName) {
1018
- return await this.request(`/accounts/profiles/${userId}`, {
1021
+ async updateUserProfile(userId, firstName, lastName, options = {}) {
1022
+ const query = options.projectId === undefined ? "" : `?project_id=${encodeURIComponent(options.projectId)}`;
1023
+ return await this.request(`/accounts/profiles/${encodeURIComponent(userId)}${query}`, {
1019
1024
  method: "PUT",
1020
- json: { first_name: firstName, last_name: lastName },
1025
+ json: {
1026
+ ...(firstName !== undefined ? { first_name: firstName } : {}),
1027
+ ...(lastName !== undefined ? { last_name: lastName } : {}),
1028
+ ...(options.metadata !== undefined ? { metadata: options.metadata } : {}),
1029
+ ...(options.annotations !== undefined ? { annotations: options.annotations } : {}),
1030
+ },
1021
1031
  action: "update user profile",
1022
1032
  });
1023
1033
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshagent/meshagent",
3
- "version": "0.52.4",
3
+ "version": "0.53.1",
4
4
  "description": "Meshagent Client",
5
5
  "homepage": "https://github.com/meshagent/meshagent-ts",
6
6
  "scripts": {