@librechat/data-schemas 0.0.40 → 0.0.43

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 (119) hide show
  1. package/dist/index.cjs +4819 -284
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.es.js +4791 -283
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/types/admin/capabilities.d.ts +73 -0
  6. package/dist/types/admin/index.d.ts +1 -0
  7. package/dist/types/app/index.d.ts +1 -0
  8. package/dist/types/app/resolution.d.ts +13 -0
  9. package/dist/types/config/tenantContext.d.ts +20 -0
  10. package/dist/types/index.d.ts +5 -1
  11. package/dist/types/methods/aclEntry.d.ts +10 -1
  12. package/dist/types/methods/action.d.ts +34 -0
  13. package/dist/types/methods/agent.d.ts +89 -0
  14. package/dist/types/methods/assistant.d.ts +39 -0
  15. package/dist/types/methods/banner.d.ts +31 -0
  16. package/dist/types/methods/categories.d.ts +34 -0
  17. package/dist/types/methods/config.d.ts +39 -0
  18. package/dist/types/methods/conversation.d.ts +82 -0
  19. package/dist/types/methods/conversationTag.d.ts +93 -0
  20. package/dist/types/methods/index.d.ts +35 -4
  21. package/dist/types/methods/memory.d.ts +1 -0
  22. package/dist/types/methods/message.d.ts +77 -0
  23. package/dist/types/methods/preset.d.ts +88 -0
  24. package/dist/types/methods/prompt.d.ts +410 -0
  25. package/dist/types/methods/role.d.ts +13 -1
  26. package/dist/types/methods/spendTokens.d.ts +63 -0
  27. package/dist/types/methods/systemGrant.d.ts +59 -0
  28. package/dist/types/methods/test-helpers.d.ts +18 -0
  29. package/dist/types/methods/toolCall.d.ts +82 -0
  30. package/dist/types/methods/transaction.d.ts +67 -13
  31. package/dist/types/methods/tx.d.ts +108 -0
  32. package/dist/types/methods/userGroup.d.ts +6 -0
  33. package/dist/types/migrations/index.d.ts +1 -0
  34. package/dist/types/migrations/tenantIndexes.d.ts +52 -0
  35. package/dist/types/models/accessRole.d.ts +0 -3
  36. package/dist/types/models/aclEntry.d.ts +0 -3
  37. package/dist/types/models/action.d.ts +0 -3
  38. package/dist/types/models/agent.d.ts +0 -3
  39. package/dist/types/models/agentCategory.d.ts +0 -3
  40. package/dist/types/models/assistant.d.ts +0 -3
  41. package/dist/types/models/balance.d.ts +0 -3
  42. package/dist/types/models/banner.d.ts +0 -3
  43. package/dist/types/models/{project.d.ts → config.d.ts} +1 -4
  44. package/dist/types/models/conversationTag.d.ts +0 -3
  45. package/dist/types/models/convo.d.ts +0 -3
  46. package/dist/types/models/file.d.ts +0 -3
  47. package/dist/types/models/group.d.ts +0 -3
  48. package/dist/types/models/index.d.ts +2 -1
  49. package/dist/types/models/key.d.ts +0 -3
  50. package/dist/types/models/mcpServer.d.ts +0 -3
  51. package/dist/types/models/message.d.ts +0 -3
  52. package/dist/types/models/pluginAuth.d.ts +0 -3
  53. package/dist/types/models/plugins/tenantIsolation.d.ts +38 -0
  54. package/dist/types/models/preset.d.ts +0 -3
  55. package/dist/types/models/prompt.d.ts +0 -3
  56. package/dist/types/models/promptGroup.d.ts +0 -3
  57. package/dist/types/models/role.d.ts +0 -3
  58. package/dist/types/models/session.d.ts +0 -3
  59. package/dist/types/models/sharedLink.d.ts +0 -3
  60. package/dist/types/models/systemGrant.d.ts +33 -0
  61. package/dist/types/models/token.d.ts +0 -3
  62. package/dist/types/models/toolCall.d.ts +0 -3
  63. package/dist/types/models/transaction.d.ts +0 -3
  64. package/dist/types/models/user.d.ts +0 -3
  65. package/dist/types/schema/agentApiKey.d.ts +1 -0
  66. package/dist/types/schema/banner.d.ts +1 -0
  67. package/dist/types/schema/categories.d.ts +1 -0
  68. package/dist/types/schema/{project.d.ts → config.d.ts} +9 -13
  69. package/dist/types/schema/conversationTag.d.ts +1 -0
  70. package/dist/types/schema/index.d.ts +2 -1
  71. package/dist/types/schema/key.d.ts +1 -0
  72. package/dist/types/schema/preset.d.ts +1 -0
  73. package/dist/types/schema/share.d.ts +1 -0
  74. package/dist/types/schema/systemGrant.d.ts +39 -0
  75. package/dist/types/schema/toolCall.d.ts +1 -0
  76. package/dist/types/schema/transaction.d.ts +1 -0
  77. package/dist/types/types/accessRole.d.ts +1 -0
  78. package/dist/types/types/aclEntry.d.ts +1 -0
  79. package/dist/types/types/action.d.ts +1 -0
  80. package/dist/types/types/admin.d.ts +98 -0
  81. package/dist/types/types/agent.d.ts +3 -5
  82. package/dist/types/types/agentApiKey.d.ts +1 -0
  83. package/dist/types/types/agentCategory.d.ts +1 -0
  84. package/dist/types/types/app.d.ts +3 -1
  85. package/dist/types/types/assistant.d.ts +1 -0
  86. package/dist/types/types/balance.d.ts +11 -0
  87. package/dist/types/types/banner.d.ts +1 -0
  88. package/dist/types/types/config.d.ts +58 -0
  89. package/dist/types/types/convo.d.ts +1 -0
  90. package/dist/types/types/file.d.ts +1 -0
  91. package/dist/types/types/group.d.ts +1 -0
  92. package/dist/types/types/index.d.ts +3 -0
  93. package/dist/types/types/mcp.d.ts +1 -0
  94. package/dist/types/types/memory.d.ts +1 -0
  95. package/dist/types/types/message.d.ts +7 -2
  96. package/dist/types/types/pluginAuth.d.ts +1 -0
  97. package/dist/types/types/prompts.d.ts +2 -1
  98. package/dist/types/types/role.d.ts +1 -0
  99. package/dist/types/types/session.d.ts +1 -0
  100. package/dist/types/types/systemGrant.d.ts +47 -0
  101. package/dist/types/types/token.d.ts +2 -0
  102. package/dist/types/types/user.d.ts +1 -0
  103. package/dist/types/utils/index.d.ts +3 -0
  104. package/dist/types/utils/principal.d.ts +34 -0
  105. package/dist/types/utils/retry.d.ts +41 -0
  106. package/dist/types/utils/string.d.ts +4 -0
  107. package/dist/types/utils/tempChatRetention.d.ts +25 -0
  108. package/package.json +1 -1
  109. package/dist/types/app/web.spec.d.ts +0 -1
  110. package/dist/types/methods/accessRole.spec.d.ts +0 -1
  111. package/dist/types/methods/aclEntry.spec.d.ts +0 -1
  112. package/dist/types/methods/file.spec.d.ts +0 -1
  113. package/dist/types/methods/mcpServer.spec.d.ts +0 -1
  114. package/dist/types/methods/token.spec.d.ts +0 -1
  115. package/dist/types/methods/user.methods.spec.d.ts +0 -1
  116. package/dist/types/methods/userGroup.methods.spec.d.ts +0 -1
  117. package/dist/types/methods/userGroup.roles.spec.d.ts +0 -1
  118. package/dist/types/methods/userGroup.spec.d.ts +0 -1
  119. package/dist/types/models/plugins/mongoMeili.spec.d.ts +0 -1
@@ -0,0 +1,73 @@
1
+ import { ResourceType } from 'librechat-data-provider';
2
+ import type { BaseSystemCapability, SystemCapability, ConfigSection, CapabilityCategory } from '~/types/admin';
3
+ /**
4
+ * The canonical set of base system capabilities.
5
+ *
6
+ * These are used by the admin panel and LibreChat API to gate access to
7
+ * admin features. Config-section-derived capabilities (e.g.
8
+ * `manage:configs:endpoints`) are built on top of these where the
9
+ * configSchema is available.
10
+ */
11
+ export declare const SystemCapabilities: {
12
+ readonly ACCESS_ADMIN: "access:admin";
13
+ readonly READ_USERS: "read:users";
14
+ readonly MANAGE_USERS: "manage:users";
15
+ readonly READ_GROUPS: "read:groups";
16
+ readonly MANAGE_GROUPS: "manage:groups";
17
+ readonly READ_ROLES: "read:roles";
18
+ readonly MANAGE_ROLES: "manage:roles";
19
+ readonly READ_CONFIGS: "read:configs";
20
+ readonly MANAGE_CONFIGS: "manage:configs";
21
+ readonly ASSIGN_CONFIGS: "assign:configs";
22
+ readonly READ_USAGE: "read:usage";
23
+ readonly READ_AGENTS: "read:agents";
24
+ readonly MANAGE_AGENTS: "manage:agents";
25
+ readonly MANAGE_MCP_SERVERS: "manage:mcpservers";
26
+ readonly READ_PROMPTS: "read:prompts";
27
+ readonly MANAGE_PROMPTS: "manage:prompts";
28
+ /** Reserved — not yet enforced by any middleware. */
29
+ readonly READ_ASSISTANTS: "read:assistants";
30
+ readonly MANAGE_ASSISTANTS: "manage:assistants";
31
+ };
32
+ /**
33
+ * Capabilities that are implied by holding a broader capability.
34
+ * e.g. `MANAGE_USERS` implies `READ_USERS`.
35
+ */
36
+ export declare const CapabilityImplications: Partial<Record<BaseSystemCapability, BaseSystemCapability[]>>;
37
+ /**
38
+ * Check whether a set of held capabilities satisfies a required capability,
39
+ * accounting for the manage→read implication hierarchy.
40
+ */
41
+ export declare function hasImpliedCapability(held: string[], required: string): boolean;
42
+ /**
43
+ * Given a set of directly-held capabilities, compute the full set including
44
+ * all implied capabilities.
45
+ */
46
+ export declare function expandImplications(directCaps: string[]): string[];
47
+ /**
48
+ * Maps each ACL ResourceType to the SystemCapability that grants
49
+ * unrestricted management access. Typed as `Record<ResourceType, …>`
50
+ * so adding a new ResourceType variant causes a compile error until a
51
+ * capability is assigned here.
52
+ */
53
+ export declare const ResourceCapabilityMap: Record<ResourceType, SystemCapability>;
54
+ /**
55
+ * Derives a section-level config management capability from a configSchema key.
56
+ * @example configCapability('endpoints') → 'manage:configs:endpoints'
57
+ *
58
+ * TODO: Section-level config capabilities are scaffolded but not yet active.
59
+ * To activate delegated config management:
60
+ * 1. Expose POST/DELETE /api/admin/grants endpoints (wiring grantCapability/revokeCapability)
61
+ * 2. Seed section-specific grants for delegated admin roles via those endpoints
62
+ * 3. Guard config write handlers with hasConfigCapability(user, section)
63
+ */
64
+ export declare function configCapability(section: ConfigSection): `manage:configs:${ConfigSection}`;
65
+ /**
66
+ * Derives a section-level config read capability from a configSchema key.
67
+ * @example readConfigCapability('endpoints') → 'read:configs:endpoints'
68
+ */
69
+ export declare function readConfigCapability(section: ConfigSection): `read:configs:${ConfigSection}`;
70
+ /** Reserved principalId for the DB base config (overrides YAML defaults). */
71
+ export declare const BASE_CONFIG_PRINCIPAL_ID = "__base__";
72
+ /** Pre-defined UI categories for grouping capabilities in the admin panel. */
73
+ export declare const CAPABILITY_CATEGORIES: CapabilityCategory[];
@@ -0,0 +1 @@
1
+ export * from './capabilities';
@@ -5,3 +5,4 @@ export * from './specs';
5
5
  export * from './turnstile';
6
6
  export * from './vertex';
7
7
  export * from './web';
8
+ export * from './resolution';
@@ -0,0 +1,13 @@
1
+ import type { AppConfig } from '~/types';
2
+ import type { IConfig } from '~/types';
3
+ /**
4
+ * Merge DB config overrides into a base AppConfig.
5
+ *
6
+ * Configs are sorted by priority ascending (lowest first, highest wins).
7
+ * Each config's `overrides` is deep-merged into the base config in order.
8
+ *
9
+ * @param baseConfig - The base AppConfig from AppService (YAML-derived, cached)
10
+ * @param configs - Array of Config documents from the DB
11
+ * @returns Merged AppConfig with overrides applied
12
+ */
13
+ export declare function mergeConfigOverrides(baseConfig: AppConfig, configs: IConfig[]): AppConfig;
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" />
2
+ import { AsyncLocalStorage } from 'async_hooks';
3
+ export interface TenantContext {
4
+ tenantId?: string;
5
+ }
6
+ /** Sentinel value for deliberate cross-tenant system operations */
7
+ export declare const SYSTEM_TENANT_ID = "__SYSTEM__";
8
+ /**
9
+ * AsyncLocalStorage instance for propagating tenant context.
10
+ * Callbacks passed to `tenantStorage.run()` must be `async` for the context to propagate
11
+ * through Mongoose query execution. Sync callbacks returning a Mongoose thenable will lose context.
12
+ */
13
+ export declare const tenantStorage: AsyncLocalStorage<TenantContext>;
14
+ /** Returns the current tenant ID from async context, or undefined if none is set */
15
+ export declare function getTenantId(): string | undefined;
16
+ /**
17
+ * Runs a function in an explicit cross-tenant system context (bypasses tenant filtering).
18
+ * The callback MUST be async — sync callbacks returning Mongoose thenables will lose context.
19
+ */
20
+ export declare function runAsSystem<T>(fn: () => Promise<T>): Promise<T>;
@@ -1,11 +1,15 @@
1
1
  export * from './app';
2
+ export * from './admin';
2
3
  export * from './common';
3
4
  export * from './crypto';
4
5
  export * from './schema';
5
6
  export * from './utils';
6
7
  export { createModels } from './models';
7
- export { createMethods, DEFAULT_REFRESH_TOKEN_EXPIRY, DEFAULT_SESSION_EXPIRY } from './methods';
8
+ export { createMethods, DEFAULT_REFRESH_TOKEN_EXPIRY, DEFAULT_SESSION_EXPIRY, tokenValues, cacheTokenValues, premiumTokenValues, defaultRate, } from './methods';
8
9
  export type * from './types';
9
10
  export type * from './methods';
10
11
  export { default as logger } from './config/winston';
11
12
  export { default as meiliLogger } from './config/meiliLogger';
13
+ export { tenantStorage, getTenantId, runAsSystem, SYSTEM_TENANT_ID } from './config/tenantContext';
14
+ export type { TenantContext } from './config/tenantContext';
15
+ export { dropSupersededTenantIndexes } from './migrations';
@@ -24,7 +24,7 @@
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
25
  /// <reference types="mongoose/types/inferrawdoctype" />
26
26
  import { Types } from 'mongoose';
27
- import type { DeleteResult, ClientSession } from 'mongoose';
27
+ import type { AnyBulkWriteOperation, ClientSession, PipelineStage, DeleteResult } from 'mongoose';
28
28
  import type { IAclEntry } from '~/types';
29
29
  export declare function createAclEntryMethods(mongoose: typeof import('mongoose')): {
30
30
  findEntriesByPrincipal: (principalType: string, principalId: string | Types.ObjectId, resourceType?: string) => Promise<IAclEntry[]>;
@@ -52,5 +52,14 @@ export declare function createAclEntryMethods(mongoose: typeof import('mongoose'
52
52
  principalType: string;
53
53
  principalId?: string | Types.ObjectId;
54
54
  }>, resourceType: string, requiredPermBit: number) => Promise<Types.ObjectId[]>;
55
+ deleteAclEntries: (filter: Record<string, unknown>, options?: {
56
+ session?: ClientSession;
57
+ }) => Promise<DeleteResult>;
58
+ bulkWriteAclEntries: (ops: AnyBulkWriteOperation<IAclEntry>[], options?: {
59
+ session?: ClientSession;
60
+ }) => Promise<import("mongodb").BulkWriteResult>;
61
+ findPublicResourceIds: (resourceType: string, requiredPermissions: number) => Promise<Types.ObjectId[]>;
62
+ aggregateAclEntries: (pipeline: PipelineStage[]) => Promise<any[]>;
63
+ getSoleOwnedResourceIds: (userObjectId: Types.ObjectId, resourceTypes: string | string[]) => Promise<Types.ObjectId[]>;
55
64
  };
56
65
  export type AclEntryMethods = ReturnType<typeof createAclEntryMethods>;
@@ -0,0 +1,34 @@
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 { FilterQuery } from 'mongoose';
27
+ import type { IAction } from '~/types';
28
+ export declare function createActionMethods(mongoose: typeof import('mongoose')): {
29
+ getActions: (searchParams: FilterQuery<IAction>, includeSensitive?: boolean) => Promise<IAction[]>;
30
+ updateAction: (searchParams: FilterQuery<IAction>, updateData: Partial<IAction>) => Promise<IAction | null>;
31
+ deleteAction: (searchParams: FilterQuery<IAction>) => Promise<IAction | null>;
32
+ deleteActions: (searchParams: FilterQuery<IAction>) => Promise<number>;
33
+ };
34
+ export type ActionMethods = ReturnType<typeof createActionMethods>;
@@ -0,0 +1,89 @@
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 { FilterQuery, Types } from 'mongoose';
27
+ import type { IAgent } from '~/types';
28
+ export interface AgentDeps {
29
+ /** Removes all ACL permissions for a resource. Injected from PermissionService. */
30
+ removeAllPermissions: (params: {
31
+ resourceType: string;
32
+ resourceId: unknown;
33
+ }) => Promise<void>;
34
+ /** Gets actions. Created by createActionMethods. */
35
+ getActions: (searchParams: FilterQuery<unknown>, includeSensitive?: boolean) => Promise<unknown[]>;
36
+ /** Returns resource IDs solely owned by the given user. From createAclEntryMethods. */
37
+ getSoleOwnedResourceIds: (userObjectId: Types.ObjectId, resourceTypes: string | string[]) => Promise<Types.ObjectId[]>;
38
+ }
39
+ /**
40
+ * Generates a hash of action metadata for version comparison.
41
+ */
42
+ declare function generateActionMetadataHash(actionIds: string[] | null | undefined, actions: Array<{
43
+ action_id: string;
44
+ metadata: Record<string, unknown> | null;
45
+ }>): Promise<string>;
46
+ export declare function createAgentMethods(mongoose: typeof import('mongoose'), deps: AgentDeps): {
47
+ getAgent: (searchParameter: FilterQuery<IAgent>) => Promise<IAgent | null>;
48
+ getAgents: (searchParameter: FilterQuery<IAgent>) => Promise<IAgent[]>;
49
+ createAgent: (agentData: Record<string, unknown>) => Promise<IAgent>;
50
+ updateAgent: (searchParameter: FilterQuery<IAgent>, updateData: Record<string, unknown>, options?: {
51
+ updatingUserId?: string | null;
52
+ forceVersion?: boolean;
53
+ skipVersioning?: boolean;
54
+ }) => Promise<IAgent | null>;
55
+ deleteAgent: (searchParameter: FilterQuery<IAgent>) => Promise<IAgent | null>;
56
+ deleteUserAgents: (userId: string) => Promise<void>;
57
+ revertAgentVersion: (searchParameter: FilterQuery<IAgent>, versionIndex: number) => Promise<IAgent>;
58
+ countPromotedAgents: () => Promise<number>;
59
+ addAgentResourceFile: ({ agent_id, tool_resource, file_id, updatingUserId, }: {
60
+ agent_id: string;
61
+ tool_resource: string;
62
+ file_id: string;
63
+ updatingUserId?: string | undefined;
64
+ }) => Promise<IAgent>;
65
+ getListAgentsByAccess: ({ accessibleIds, otherParams, limit, after, }: {
66
+ accessibleIds?: Types.ObjectId[] | undefined;
67
+ otherParams?: Record<string, unknown> | undefined;
68
+ limit?: number | null | undefined;
69
+ after?: string | null | undefined;
70
+ }) => Promise<{
71
+ object: string;
72
+ data: Array<Record<string, unknown>>;
73
+ first_id: string | null;
74
+ last_id: string | null;
75
+ has_more: boolean;
76
+ after: string | null;
77
+ }>;
78
+ removeAgentResourceFiles: ({ agent_id, files, }: {
79
+ agent_id: string;
80
+ files: Array<{
81
+ tool_resource: string;
82
+ file_id: string;
83
+ }>;
84
+ }) => Promise<IAgent>;
85
+ generateActionMetadataHash: typeof generateActionMetadataHash;
86
+ removeAgentFromUserFavorites: (resourceId: string, userIds: string[]) => Promise<void>;
87
+ };
88
+ export type AgentMethods = ReturnType<typeof createAgentMethods>;
89
+ export {};
@@ -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 type { FilterQuery } from 'mongoose';
27
+ import type { IAssistant } from '~/types';
28
+ export declare function createAssistantMethods(mongoose: typeof import('mongoose')): {
29
+ updateAssistantDoc: (searchParams: FilterQuery<IAssistant>, updateData: Partial<IAssistant>) => Promise<IAssistant | null>;
30
+ deleteAssistant: (searchParams: FilterQuery<IAssistant>) => Promise<(import("mongoose").Document<unknown, {}, IAssistant> & IAssistant & Required<{
31
+ _id: unknown;
32
+ }> & {
33
+ __v: number;
34
+ }) | null>;
35
+ deleteAssistants: (searchParams: FilterQuery<IAssistant>) => Promise<number>;
36
+ getAssistants: (searchParams: FilterQuery<IAssistant>, select?: string | Record<string, number> | null) => Promise<IAssistant[]>;
37
+ getAssistant: (searchParams: FilterQuery<IAssistant>) => Promise<IAssistant | null>;
38
+ };
39
+ export type AssistantMethods = ReturnType<typeof createAssistantMethods>;
@@ -0,0 +1,31 @@
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
+ import type { IBanner, IUser } from '~/types';
28
+ export declare function createBannerMethods(mongoose: typeof import('mongoose')): {
29
+ getBanner: (user?: IUser | null) => Promise<IBanner | null>;
30
+ };
31
+ export type BannerMethods = ReturnType<typeof createBannerMethods>;
@@ -0,0 +1,34 @@
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
+ export type CategoryOption = {
28
+ label: string;
29
+ value: string;
30
+ };
31
+ export declare function createCategoriesMethods(_mongoose: typeof import('mongoose')): {
32
+ getCategories: () => Promise<CategoryOption[]>;
33
+ };
34
+ export type CategoriesMethods = ReturnType<typeof createCategoriesMethods>;
@@ -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 { Types } from 'mongoose';
27
+ import type { ClientSession } from 'mongoose';
28
+ import type { IConfig } from '~/types';
29
+ export declare function createConfigMethods(mongoose: typeof import('mongoose')): {
30
+ findConfigByPrincipal: (principalType: PrincipalType, principalId: string | Types.ObjectId, session?: ClientSession) => Promise<IConfig | null>;
31
+ getApplicableConfigs: (principals?: Array<{
32
+ principalType: string;
33
+ principalId?: string | Types.ObjectId;
34
+ }>, session?: ClientSession) => Promise<IConfig[]>;
35
+ upsertConfig: (principalType: PrincipalType, principalId: string | Types.ObjectId, principalModel: PrincipalModel, overrides: Record<string, unknown>, priority: number, session?: ClientSession) => Promise<IConfig | null>;
36
+ deleteConfig: (principalType: PrincipalType, principalId: string | Types.ObjectId, session?: ClientSession) => Promise<IConfig | null>;
37
+ toggleConfigActive: (principalType: PrincipalType, principalId: string | Types.ObjectId, isActive: boolean, session?: ClientSession) => Promise<IConfig | null>;
38
+ };
39
+ export type ConfigMethods = ReturnType<typeof createConfigMethods>;
@@ -0,0 +1,82 @@
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 { FilterQuery } from 'mongoose';
27
+ import type { AppConfig, IConversation } from '~/types';
28
+ import type { MessageMethods } from './message';
29
+ import type { DeleteResult } from 'mongoose';
30
+ export interface ConversationMethods {
31
+ getConvoFiles(conversationId: string): Promise<string[]>;
32
+ searchConversation(conversationId: string): Promise<IConversation | null>;
33
+ deleteNullOrEmptyConversations(): Promise<{
34
+ conversations: {
35
+ deletedCount?: number;
36
+ };
37
+ messages: {
38
+ deletedCount?: number;
39
+ };
40
+ }>;
41
+ saveConvo(ctx: {
42
+ userId: string;
43
+ isTemporary?: boolean;
44
+ interfaceConfig?: AppConfig['interfaceConfig'];
45
+ }, data: {
46
+ conversationId: string;
47
+ newConversationId?: string;
48
+ [key: string]: unknown;
49
+ }, metadata?: {
50
+ context?: string;
51
+ unsetFields?: Record<string, number>;
52
+ noUpsert?: boolean;
53
+ }): Promise<IConversation | {
54
+ message: string;
55
+ } | null>;
56
+ bulkSaveConvos(conversations: Array<Record<string, unknown>>): Promise<unknown>;
57
+ getConvosByCursor(user: string, options?: {
58
+ cursor?: string | null;
59
+ limit?: number;
60
+ isArchived?: boolean;
61
+ tags?: string[];
62
+ search?: string;
63
+ sortBy?: string;
64
+ sortDirection?: string;
65
+ }): Promise<{
66
+ conversations: IConversation[];
67
+ nextCursor: string | null;
68
+ }>;
69
+ getConvosQueried(user: string, convoIds: Array<{
70
+ conversationId: string;
71
+ }> | null, cursor?: string | null, limit?: number): Promise<{
72
+ conversations: IConversation[];
73
+ nextCursor: string | null;
74
+ convoMap: Record<string, unknown>;
75
+ }>;
76
+ getConvo(user: string, conversationId: string): Promise<IConversation | null>;
77
+ getConvoTitle(user: string, conversationId: string): Promise<string | null>;
78
+ deleteConvos(user: string, filter: FilterQuery<IConversation>): Promise<DeleteResult & {
79
+ messages: DeleteResult;
80
+ }>;
81
+ }
82
+ export declare function createConversationMethods(mongoose: typeof import('mongoose'), messageMethods?: Pick<MessageMethods, 'getMessages' | 'deleteMessages'>): ConversationMethods;
@@ -0,0 +1,93 @@
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
+ export declare function createConversationTagMethods(mongoose: typeof import('mongoose')): {
28
+ getConversationTags: (user: string) => Promise<(import("mongoose").FlattenMaps<{
29
+ [x: string]: unknown;
30
+ user: string;
31
+ tag: string;
32
+ description?: string | undefined;
33
+ position: number;
34
+ count: number;
35
+ createdAt?: Date | undefined;
36
+ }> & {
37
+ _id: import("mongoose").Types.ObjectId;
38
+ } & {
39
+ __v: number;
40
+ })[]>;
41
+ createConversationTag: (user: string, data: {
42
+ tag: string;
43
+ description?: string;
44
+ addToConversation?: boolean;
45
+ conversationId?: string;
46
+ }) => Promise<(import("mongoose").FlattenMaps<{
47
+ [x: string]: unknown;
48
+ user: string;
49
+ tag: string;
50
+ description?: string | undefined;
51
+ position: number;
52
+ count: number;
53
+ createdAt?: Date | undefined;
54
+ }> & {
55
+ _id: import("mongoose").Types.ObjectId;
56
+ } & {
57
+ __v: number;
58
+ }) | null>;
59
+ updateConversationTag: (user: string, oldTag: string, data: {
60
+ tag?: string;
61
+ description?: string;
62
+ position?: number;
63
+ }) => Promise<(import("mongoose").FlattenMaps<{
64
+ [x: string]: unknown;
65
+ user: string;
66
+ tag: string;
67
+ description?: string | undefined;
68
+ position: number;
69
+ count: number;
70
+ createdAt?: Date | undefined;
71
+ }> & {
72
+ _id: import("mongoose").Types.ObjectId;
73
+ } & {
74
+ __v: number;
75
+ }) | null>;
76
+ deleteConversationTag: (user: string, tag: string) => Promise<(import("mongoose").FlattenMaps<{
77
+ [x: string]: unknown;
78
+ user: string;
79
+ tag: string;
80
+ description?: string | undefined;
81
+ position: number;
82
+ count: number;
83
+ createdAt?: Date | undefined;
84
+ }> & {
85
+ _id: import("mongoose").Types.ObjectId;
86
+ } & {
87
+ __v: number;
88
+ }) | null>;
89
+ deleteConversationTags: (filter: Record<string, unknown>) => Promise<number>;
90
+ bulkIncrementTagCounts: (user: string, tags: string[]) => Promise<void>;
91
+ updateTagsForConversation: (user: string, conversationId: string, tags: string[]) => Promise<any>;
92
+ };
93
+ export type ConversationTagMethods = ReturnType<typeof createConversationTagMethods>;