@librechat/data-schemas 0.0.15 → 0.0.17

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 (47) hide show
  1. package/README.md +318 -0
  2. package/dist/index.cjs +3025 -1653
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.es.js +3055 -1687
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/types/common/enum.d.ts +13 -0
  7. package/dist/types/common/index.d.ts +1 -0
  8. package/dist/types/index.d.ts +2 -0
  9. package/dist/types/methods/accessRole.d.ts +42 -0
  10. package/dist/types/methods/accessRole.spec.d.ts +1 -0
  11. package/dist/types/methods/aclEntry.d.ts +52 -0
  12. package/dist/types/methods/aclEntry.spec.d.ts +1 -0
  13. package/dist/types/methods/agentCategory.d.ts +48 -0
  14. package/dist/types/methods/index.d.ts +9 -55
  15. package/dist/types/methods/pluginAuth.d.ts +1 -1
  16. package/dist/types/methods/user.d.ts +9 -1
  17. package/dist/types/methods/userGroup.d.ts +73 -0
  18. package/dist/types/methods/userGroup.methods.spec.d.ts +1 -0
  19. package/dist/types/methods/userGroup.roles.spec.d.ts +1 -0
  20. package/dist/types/methods/userGroup.spec.d.ts +1 -0
  21. package/dist/types/models/accessRole.d.ts +30 -0
  22. package/dist/types/models/aclEntry.d.ts +30 -0
  23. package/dist/types/models/agentCategory.d.ts +30 -0
  24. package/dist/types/models/group.d.ts +30 -0
  25. package/dist/types/models/index.d.ts +4 -0
  26. package/dist/types/schema/accessRole.d.ts +39 -0
  27. package/dist/types/schema/aclEntry.d.ts +39 -0
  28. package/dist/types/schema/agentCategory.d.ts +39 -0
  29. package/dist/types/schema/defaults.d.ts +4 -0
  30. package/dist/types/schema/group.d.ts +37 -0
  31. package/dist/types/schema/index.d.ts +2 -0
  32. package/dist/types/schema/preset.d.ts +1 -0
  33. package/dist/types/schema/prompt.d.ts +2 -9
  34. package/dist/types/schema/promptGroup.d.ts +4 -18
  35. package/dist/types/types/accessRole.d.ts +40 -0
  36. package/dist/types/types/aclEntry.d.ts +52 -0
  37. package/dist/types/types/agent.d.ts +8 -0
  38. package/dist/types/types/agentCategory.d.ts +41 -0
  39. package/dist/types/types/convo.d.ts +1 -0
  40. package/dist/types/types/group.d.ts +46 -0
  41. package/dist/types/types/index.d.ts +5 -0
  42. package/dist/types/types/pluginAuth.d.ts +1 -0
  43. package/dist/types/types/prompts.d.ts +50 -0
  44. package/dist/types/types/user.d.ts +2 -0
  45. package/dist/types/utils/index.d.ts +1 -0
  46. package/dist/types/utils/transactions.d.ts +14 -0
  47. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { PermissionBits } from 'librechat-data-provider';
27
+ import type { Types, DeleteResult } from 'mongoose';
28
+ import type { IAccessRole } from '~/types';
29
+ import { RoleBits } from '~/common';
30
+ export declare function createAccessRoleMethods(mongoose: typeof import('mongoose')): {
31
+ createRole: (roleData: Partial<IAccessRole>) => Promise<IAccessRole>;
32
+ updateRole: (accessRoleId: string | Types.ObjectId, updateData: Partial<IAccessRole>) => Promise<IAccessRole | null>;
33
+ deleteRole: (accessRoleId: string | Types.ObjectId) => Promise<DeleteResult>;
34
+ getAllRoles: () => Promise<IAccessRole[]>;
35
+ findRoleById: (roleId: string | Types.ObjectId) => Promise<IAccessRole | null>;
36
+ seedDefaultRoles: () => Promise<Record<string, IAccessRole>>;
37
+ findRoleByIdentifier: (accessRoleId: string | Types.ObjectId) => Promise<IAccessRole | null>;
38
+ getRoleForPermissions: (resourceType: string, permBits: PermissionBits | RoleBits) => Promise<IAccessRole | null>;
39
+ findRoleByPermissions: (resourceType: string, permBits: PermissionBits | RoleBits) => Promise<IAccessRole | null>;
40
+ findRolesByResourceType: (resourceType: string) => Promise<IAccessRole[]>;
41
+ };
42
+ export type AccessRoleMethods = ReturnType<typeof createAccessRoleMethods>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { Types } from 'mongoose';
27
+ import type { DeleteResult, ClientSession } from 'mongoose';
28
+ import type { IAclEntry } from '~/types';
29
+ export declare function createAclEntryMethods(mongoose: typeof import('mongoose')): {
30
+ findEntriesByPrincipal: (principalType: string, principalId: string | Types.ObjectId, resourceType?: string) => Promise<IAclEntry[]>;
31
+ findEntriesByResource: (resourceType: string, resourceId: string | Types.ObjectId) => Promise<IAclEntry[]>;
32
+ findEntriesByPrincipalsAndResource: (principalsList: Array<{
33
+ principalType: string;
34
+ principalId?: string | Types.ObjectId;
35
+ }>, resourceType: string, resourceId: string | Types.ObjectId) => Promise<IAclEntry[]>;
36
+ hasPermission: (principalsList: Array<{
37
+ principalType: string;
38
+ principalId?: string | Types.ObjectId;
39
+ }>, resourceType: string, resourceId: string | Types.ObjectId, permissionBit: number) => Promise<boolean>;
40
+ getEffectivePermissions: (principalsList: Array<{
41
+ principalType: string;
42
+ principalId?: string | Types.ObjectId;
43
+ }>, resourceType: string, resourceId: string | Types.ObjectId) => Promise<number>;
44
+ grantPermission: (principalType: string, principalId: string | Types.ObjectId | null, resourceType: string, resourceId: string | Types.ObjectId, permBits: number, grantedBy: string | Types.ObjectId, session?: ClientSession, roleId?: string | Types.ObjectId) => Promise<IAclEntry | null>;
45
+ revokePermission: (principalType: string, principalId: string | Types.ObjectId | null, resourceType: string, resourceId: string | Types.ObjectId, session?: ClientSession) => Promise<DeleteResult>;
46
+ modifyPermissionBits: (principalType: string, principalId: string | Types.ObjectId | null, resourceType: string, resourceId: string | Types.ObjectId, addBits?: number | null, removeBits?: number | null, session?: ClientSession) => Promise<IAclEntry | null>;
47
+ findAccessibleResources: (principalsList: Array<{
48
+ principalType: string;
49
+ principalId?: string | Types.ObjectId;
50
+ }>, resourceType: string, requiredPermBit: number) => Promise<Types.ObjectId[]>;
51
+ };
52
+ export type AclEntryMethods = ReturnType<typeof createAclEntryMethods>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import type { Types } from 'mongoose';
27
+ import type { IAgentCategory } from '../types/agentCategory';
28
+ export declare function createAgentCategoryMethods(mongoose: typeof import('mongoose')): {
29
+ getActiveCategories: () => Promise<IAgentCategory[]>;
30
+ getCategoriesWithCounts: () => Promise<(IAgentCategory & {
31
+ agentCount: number;
32
+ })[]>;
33
+ getValidCategoryValues: () => Promise<string[]>;
34
+ seedCategories: (categories: Array<{
35
+ value: string;
36
+ label?: string;
37
+ description?: string;
38
+ order?: number;
39
+ }>) => Promise<any>;
40
+ findCategoryByValue: (value: string) => Promise<IAgentCategory | null>;
41
+ createCategory: (categoryData: Partial<IAgentCategory>) => Promise<IAgentCategory>;
42
+ updateCategory: (value: string, updateData: Partial<IAgentCategory>) => Promise<IAgentCategory | null>;
43
+ deleteCategory: (value: string) => Promise<boolean>;
44
+ findCategoryById: (id: string | Types.ObjectId) => Promise<IAgentCategory | null>;
45
+ getAllCategories: () => Promise<IAgentCategory[]>;
46
+ ensureDefaultCategories: () => Promise<boolean>;
47
+ };
48
+ export type AgentCategoryMethods = ReturnType<typeof createAgentCategoryMethods>;
@@ -24,66 +24,20 @@
24
24
  /// <reference types="mongoose" />
25
25
  /// <reference types="mongoose/types/inferschematype" />
26
26
  /// <reference types="mongoose/types/inferrawdoctype" />
27
- import { type UserMethods } from './user';
28
27
  import { type SessionMethods } from './session';
29
28
  import { type TokenMethods } from './token';
30
29
  import { type RoleMethods } from './role';
30
+ import { type UserMethods } from './user';
31
31
  import { type MemoryMethods } from './memory';
32
- import { type ShareMethods } from './share';
32
+ import { type AgentCategoryMethods } from './agentCategory';
33
33
  import { type PluginAuthMethods } from './pluginAuth';
34
+ import { type AccessRoleMethods } from './accessRole';
35
+ import { type UserGroupMethods } from './userGroup';
36
+ import { type AclEntryMethods } from './aclEntry';
37
+ import { type ShareMethods } from './share';
38
+ export type AllMethods = UserMethods & SessionMethods & TokenMethods & RoleMethods & MemoryMethods & AgentCategoryMethods & UserGroupMethods & AclEntryMethods & ShareMethods & AccessRoleMethods & PluginAuthMethods;
34
39
  /**
35
40
  * Creates all database methods for all collections
36
41
  */
37
- export declare function createMethods(mongoose: typeof import('mongoose')): {
38
- findOnePluginAuth: ({ userId, authField, }: import("..").FindPluginAuthParams) => Promise<import("..").IPluginAuth | null>;
39
- findPluginAuthsByKeys: ({ userId, pluginKeys, }: import("..").FindPluginAuthsByKeysParams) => Promise<import("..").IPluginAuth[]>;
40
- updatePluginAuth: ({ userId, authField, pluginKey, value, }: import("..").UpdatePluginAuthParams) => Promise<import("..").IPluginAuth>;
41
- deletePluginAuth: ({ userId, authField, pluginKey, all, }: import("..").DeletePluginAuthParams) => Promise<import("mongodb").DeleteResult>;
42
- deleteAllUserPluginAuths: (userId: string) => Promise<import("mongodb").DeleteResult>;
43
- getSharedLink: (user: string, conversationId: string) => Promise<import("..").GetShareLinkResult>;
44
- getSharedLinks: (user: string, pageParam?: Date | undefined, pageSize?: number, isPublic?: boolean, sortBy?: string, sortDirection?: string, search?: string | undefined) => Promise<import("..").SharedLinksResult>;
45
- createSharedLink: (user: string, conversationId: string) => Promise<import("..").CreateShareResult>;
46
- updateSharedLink: (user: string, shareId: string) => Promise<import("..").UpdateShareResult>;
47
- deleteSharedLink: (user: string, shareId: string) => Promise<import("..").DeleteShareResult | null>;
48
- getSharedMessages: (shareId: string) => Promise<import("..").SharedMessagesResult | null>;
49
- deleteAllSharedLinks: (user: string) => Promise<import("..").DeleteAllSharesResult>;
50
- setMemory: ({ userId, key, value, tokenCount, }: import("..").SetMemoryParams) => Promise<import("..").MemoryResult>;
51
- createMemory: ({ userId, key, value, tokenCount, }: import("..").SetMemoryParams) => Promise<import("..").MemoryResult>;
52
- deleteMemory: ({ userId, key }: import("..").DeleteMemoryParams) => Promise<import("..").MemoryResult>;
53
- getAllUserMemories: (userId: string | import("mongoose").Types.ObjectId) => Promise<import("..").IMemoryEntryLean[]>;
54
- getFormattedMemories: ({ userId, }: import("..").GetFormattedMemoriesParams) => Promise<import("..").FormattedMemoriesResult>;
55
- listRoles: () => Promise<(import("mongoose").FlattenMaps<any> & Required<{
56
- _id: unknown;
57
- }> & {
58
- __v: number;
59
- })[]>;
60
- initializeRoles: () => Promise<void>;
61
- findToken: (query: import("..").TokenQuery) => Promise<import("..").IToken | null>;
62
- createToken: (tokenData: import("..").TokenCreateData) => Promise<import("..").IToken>;
63
- updateToken: (query: import("..").TokenQuery, updateData: import("..").TokenUpdateData) => Promise<import("..").IToken | null>;
64
- deleteTokens: (query: import("..").TokenQuery) => Promise<import("..").TokenDeleteResult>;
65
- findSession: (params: import("..").SessionSearchParams, options?: import("..").SessionQueryOptions) => Promise<import("..").ISession | null>;
66
- SessionError: typeof import("./session").SessionError;
67
- deleteSession: (params: import("..").DeleteSessionParams) => Promise<{
68
- deletedCount?: number | undefined;
69
- }>;
70
- createSession: (userId: string, options?: import("..").CreateSessionOptions) => Promise<import("..").SessionResult>;
71
- updateExpiration: (session: string | import("..").ISession, newExpiration?: Date | undefined) => Promise<import("..").ISession>;
72
- countActiveSessions: (userId: string) => Promise<number>;
73
- generateRefreshToken: (session: import("..").ISession) => Promise<string>;
74
- deleteAllUserSessions: (userId: string | {
75
- userId: string;
76
- }, options?: import("..").DeleteAllSessionsOptions) => Promise<{
77
- deletedCount?: number | undefined;
78
- }>;
79
- findUser: (searchCriteria: import("mongoose").FilterQuery<import("..").IUser>, fieldsToSelect?: string | string[] | null | undefined) => Promise<import("..").IUser | null>;
80
- countUsers: (filter?: import("mongoose").FilterQuery<import("..").IUser>) => Promise<number>;
81
- createUser: (data: import("..").UserCreateData, balanceConfig?: import("..").BalanceConfig | undefined, disableTTL?: boolean, returnUser?: boolean) => Promise<Partial<import("..").IUser> | import("mongoose").Types.ObjectId>;
82
- updateUser: (userId: string, updateData: Partial<import("..").IUser>) => Promise<import("..").IUser | null>;
83
- getUserById: (userId: string, fieldsToSelect?: string | string[] | null | undefined) => Promise<import("..").IUser | null>;
84
- deleteUserById: (userId: string) => Promise<import("..").UserUpdateResult>;
85
- generateToken: (user: import("..").IUser) => Promise<string>;
86
- toggleUserMemories: (userId: string, memoriesEnabled: boolean) => Promise<import("..").IUser | null>;
87
- };
88
- export type { MemoryMethods, ShareMethods, TokenMethods, PluginAuthMethods };
89
- export type AllMethods = UserMethods & SessionMethods & TokenMethods & RoleMethods & MemoryMethods & ShareMethods & PluginAuthMethods;
42
+ export declare function createMethods(mongoose: typeof import('mongoose')): AllMethods;
43
+ export type { UserMethods, SessionMethods, TokenMethods, RoleMethods, MemoryMethods, AgentCategoryMethods, UserGroupMethods, AclEntryMethods, ShareMethods, AccessRoleMethods, PluginAuthMethods, };
@@ -26,7 +26,7 @@
26
26
  import type { DeleteResult } from 'mongoose';
27
27
  import type { FindPluginAuthsByKeysParams, UpdatePluginAuthParams, DeletePluginAuthParams, FindPluginAuthParams, IPluginAuth } from '~/types';
28
28
  export declare function createPluginAuthMethods(mongoose: typeof import('mongoose')): {
29
- findOnePluginAuth: ({ userId, authField, }: FindPluginAuthParams) => Promise<IPluginAuth | null>;
29
+ findOnePluginAuth: ({ userId, authField, pluginKey, }: FindPluginAuthParams) => Promise<IPluginAuth | null>;
30
30
  findPluginAuthsByKeys: ({ userId, pluginKeys, }: FindPluginAuthsByKeysParams) => Promise<IPluginAuth[]>;
31
31
  updatePluginAuth: ({ userId, authField, pluginKey, value, }: UpdatePluginAuthParams) => Promise<IPluginAuth>;
32
32
  deletePluginAuth: ({ userId, authField, pluginKey, all, }: DeletePluginAuthParams) => Promise<DeleteResult>;
@@ -31,9 +31,17 @@ export declare function createUserMethods(mongoose: typeof import('mongoose')):
31
31
  countUsers: (filter?: FilterQuery<IUser>) => Promise<number>;
32
32
  createUser: (data: UserCreateData, balanceConfig?: BalanceConfig, disableTTL?: boolean, returnUser?: boolean) => Promise<mongoose.Types.ObjectId | Partial<IUser>>;
33
33
  updateUser: (userId: string, updateData: Partial<IUser>) => Promise<IUser | null>;
34
+ searchUsers: ({ searchPattern, limit, fieldsToSelect, }: {
35
+ searchPattern: string;
36
+ limit?: number | undefined;
37
+ fieldsToSelect?: string | string[] | null | undefined;
38
+ }) => Promise<{
39
+ _id: unknown;
40
+ __v: number;
41
+ }[]>;
34
42
  getUserById: (userId: string, fieldsToSelect?: string | string[] | null) => Promise<IUser | null>;
35
- deleteUserById: (userId: string) => Promise<UserUpdateResult>;
36
43
  generateToken: (user: IUser) => Promise<string>;
44
+ deleteUserById: (userId: string) => Promise<UserUpdateResult>;
37
45
  toggleUserMemories: (userId: string, memoriesEnabled: boolean) => Promise<IUser | null>;
38
46
  };
39
47
  export type UserMethods = ReturnType<typeof createUserMethods>;
@@ -0,0 +1,73 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { Types } from 'mongoose';
27
+ import { PrincipalType } from 'librechat-data-provider';
28
+ import type { TPrincipalSearchResult } from 'librechat-data-provider';
29
+ import type { ClientSession } from 'mongoose';
30
+ import type { IGroup, IUser } from '~/types';
31
+ export declare function createUserGroupMethods(mongoose: typeof import('mongoose')): {
32
+ findGroupById: (groupId: string | Types.ObjectId, projection?: Record<string, unknown>, session?: ClientSession) => Promise<IGroup | null>;
33
+ findGroupByExternalId: (idOnTheSource: string, source?: 'entra' | 'local', projection?: Record<string, unknown>, session?: ClientSession) => Promise<IGroup | null>;
34
+ findGroupsByNamePattern: (namePattern: string, source?: 'entra' | 'local' | null, limit?: number, session?: ClientSession) => Promise<IGroup[]>;
35
+ findGroupsByMemberId: (userId: string | Types.ObjectId, session?: ClientSession) => Promise<IGroup[]>;
36
+ createGroup: (groupData: Partial<IGroup>, session?: ClientSession) => Promise<IGroup>;
37
+ upsertGroupByExternalId: (idOnTheSource: string, source: 'entra' | 'local', updateData: Partial<IGroup>, session?: ClientSession) => Promise<IGroup | null>;
38
+ addUserToGroup: (userId: string | Types.ObjectId, groupId: string | Types.ObjectId, session?: ClientSession) => Promise<{
39
+ user: IUser;
40
+ group: IGroup | null;
41
+ }>;
42
+ removeUserFromGroup: (userId: string | Types.ObjectId, groupId: string | Types.ObjectId, session?: ClientSession) => Promise<{
43
+ user: IUser;
44
+ group: IGroup | null;
45
+ }>;
46
+ getUserGroups: (userId: string | Types.ObjectId, session?: ClientSession) => Promise<IGroup[]>;
47
+ getUserPrincipals: (params: {
48
+ userId: string | Types.ObjectId;
49
+ role?: string | null;
50
+ }, session?: ClientSession) => Promise<Array<{
51
+ principalType: string;
52
+ principalId?: string | Types.ObjectId;
53
+ }>>;
54
+ syncUserEntraGroups: (userId: string | Types.ObjectId, entraGroups: Array<{
55
+ id: string;
56
+ name: string;
57
+ description?: string;
58
+ email?: string;
59
+ }>, session?: ClientSession) => Promise<{
60
+ user: IUser;
61
+ addedGroups: IGroup[];
62
+ removedGroups: IGroup[];
63
+ }>;
64
+ searchPrincipals: (searchPattern: string, limitPerType?: number, typeFilter?: Array<PrincipalType.USER | PrincipalType.GROUP | PrincipalType.ROLE> | null, session?: ClientSession) => Promise<TPrincipalSearchResult[]>;
65
+ calculateRelevanceScore: (item: TPrincipalSearchResult, searchPattern: string) => number;
66
+ sortPrincipalsByRelevance: <T extends {
67
+ _searchScore?: number | undefined;
68
+ type: string;
69
+ name?: string | undefined;
70
+ email?: string | undefined;
71
+ }>(results: T[]) => T[];
72
+ };
73
+ export type UserGroupMethods = ReturnType<typeof createUserGroupMethods>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
27
+ /**
28
+ * Creates or returns the AccessRole model using the provided mongoose instance and schema
29
+ */
30
+ export declare function createAccessRoleModel(mongoose: typeof import('mongoose')): import("mongoose").Model<any, {}, {}, {}, any, any>;
@@ -0,0 +1,30 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
27
+ /**
28
+ * Creates or returns the AclEntry model using the provided mongoose instance and schema
29
+ */
30
+ export declare function createAclEntryModel(mongoose: typeof import('mongoose')): import("mongoose").Model<any, {}, {}, {}, any, any>;
@@ -0,0 +1,30 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
27
+ /**
28
+ * Creates or returns the AgentCategory model using the provided mongoose instance and schema
29
+ */
30
+ export declare function createAgentCategoryModel(mongoose: typeof import('mongoose')): import("mongoose").Model<any, {}, {}, {}, any, any>;
@@ -0,0 +1,30 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ /// <reference types="mongoose/types/inferrawdoctype" />
27
+ /**
28
+ * Creates or returns the Group model using the provided mongoose instance and schema
29
+ */
30
+ export declare function createGroupModel(mongoose: typeof import('mongoose')): import("mongoose").Model<any, {}, {}, {}, any, any>;
@@ -35,6 +35,7 @@ export declare function createModels(mongoose: typeof import('mongoose')): {
35
35
  Conversation: import("mongoose").Model<any, {}, {}, {}, any, any>;
36
36
  Message: import("mongoose").Model<any, {}, {}, {}, any, any>;
37
37
  Agent: import("mongoose").Model<any, {}, {}, {}, any, any>;
38
+ AgentCategory: import("mongoose").Model<any, {}, {}, {}, any, any>;
38
39
  Role: import("mongoose").Model<any, {}, {}, {}, any, any>;
39
40
  Action: import("mongoose").Model<any, {}, {}, {}, any, any>;
40
41
  Assistant: import("mongoose").Model<any, {}, {}, {}, any, any>;
@@ -51,4 +52,7 @@ export declare function createModels(mongoose: typeof import('mongoose')): {
51
52
  SharedLink: import("mongoose").Model<any, {}, {}, {}, any, any>;
52
53
  ToolCall: import("mongoose").Model<any, {}, {}, {}, any, any>;
53
54
  MemoryEntry: import("mongoose").Model<any, {}, {}, {}, any, any>;
55
+ AccessRole: import("mongoose").Model<any, {}, {}, {}, any, any>;
56
+ AclEntry: import("mongoose").Model<any, {}, {}, {}, any, any>;
57
+ Group: import("mongoose").Model<any, {}, {}, {}, any, any>;
54
58
  };
@@ -0,0 +1,39 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { Schema } from 'mongoose';
27
+ import type { IAccessRole } from '~/types';
28
+ declare const accessRoleSchema: Schema<IAccessRole, import("mongoose").Model<IAccessRole, any, any, any, import("mongoose").Document<unknown, any, IAccessRole> & import("~/types").AccessRole & import("mongoose").Document<unknown, any, any> & {
29
+ _id: import("mongoose").Types.ObjectId;
30
+ } & Required<{
31
+ _id: import("mongoose").Types.ObjectId;
32
+ }> & {
33
+ __v: number;
34
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, IAccessRole, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<IAccessRole>> & import("mongoose").FlatRecord<IAccessRole> & Required<{
35
+ _id: import("mongoose").Types.ObjectId;
36
+ }> & {
37
+ __v: number;
38
+ }>;
39
+ export default accessRoleSchema;
@@ -0,0 +1,39 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { Schema } from 'mongoose';
27
+ import type { IAclEntry } from '~/types';
28
+ declare const aclEntrySchema: Schema<IAclEntry, import("mongoose").Model<IAclEntry, any, any, any, import("mongoose").Document<unknown, any, IAclEntry> & import("~/types").AclEntry & import("mongoose").Document<unknown, any, any> & {
29
+ _id: import("mongoose").Types.ObjectId;
30
+ } & Required<{
31
+ _id: import("mongoose").Types.ObjectId;
32
+ }> & {
33
+ __v: number;
34
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, IAclEntry, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<IAclEntry>> & import("mongoose").FlatRecord<IAclEntry> & Required<{
35
+ _id: import("mongoose").Types.ObjectId;
36
+ }> & {
37
+ __v: number;
38
+ }>;
39
+ export default aclEntrySchema;
@@ -0,0 +1,39 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ /// <reference types="mongoose/types/inferrawdoctype" />
26
+ import { Schema, Document } from 'mongoose';
27
+ import type { IAgentCategory } from '~/types';
28
+ declare const agentCategorySchema: Schema<IAgentCategory, import("mongoose").Model<IAgentCategory, any, any, any, Document<unknown, any, IAgentCategory> & import("~/types").AgentCategory & Document<unknown, any, any> & {
29
+ _id: import("mongoose").Types.ObjectId;
30
+ } & Required<{
31
+ _id: import("mongoose").Types.ObjectId;
32
+ }> & {
33
+ __v: number;
34
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, IAgentCategory, Document<unknown, {}, import("mongoose").FlatRecord<IAgentCategory>> & import("mongoose").FlatRecord<IAgentCategory> & Required<{
35
+ _id: import("mongoose").Types.ObjectId;
36
+ }> & {
37
+ __v: number;
38
+ }>;
39
+ export default agentCategorySchema;