librechat-data-provider 0.8.402 → 0.8.404
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/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react-query/index.es.js +1 -1
- package/dist/react-query/index.es.js.map +1 -1
- package/dist/types/accessPermissions.d.ts +744 -0
- package/dist/types/actions.d.ts +118 -0
- package/dist/types/api-endpoints.d.ts +150 -0
- package/dist/types/artifacts.d.ts +97 -0
- package/dist/types/azure.d.ts +22 -0
- package/dist/types/bedrock.d.ts +1220 -0
- package/dist/types/config.d.ts +14849 -0
- package/dist/types/config.spec.d.ts +1 -0
- package/dist/types/createPayload.d.ts +5 -0
- package/dist/types/data-service.d.ts +287 -0
- package/dist/types/feedback.d.ts +36 -0
- package/dist/types/file-config.d.ts +263 -0
- package/dist/types/file-config.spec.d.ts +1 -0
- package/dist/types/generate.d.ts +597 -0
- package/dist/types/headers-helpers.d.ts +2 -0
- package/{src/index.ts → dist/types/index.d.ts} +0 -15
- package/dist/types/keys.d.ts +92 -0
- package/dist/types/mcp.d.ts +2760 -0
- package/dist/types/messages.d.ts +10 -0
- package/dist/types/models.d.ts +1547 -0
- package/dist/types/parameterSettings.d.ts +69 -0
- package/dist/types/parsers.d.ts +110 -0
- package/dist/types/permissions.d.ts +522 -0
- package/dist/types/react-query/react-query-service.d.ts +85 -0
- package/dist/types/request.d.ts +25 -0
- package/dist/types/roles.d.ts +554 -0
- package/dist/types/roles.spec.d.ts +1 -0
- package/dist/types/schemas.d.ts +5110 -0
- package/dist/types/schemas.spec.d.ts +1 -0
- package/dist/types/types/agents.d.ts +433 -0
- package/dist/types/types/assistants.d.ts +547 -0
- package/dist/types/types/files.d.ts +172 -0
- package/dist/types/types/graph.d.ts +135 -0
- package/{src/types/mcpServers.ts → dist/types/types/mcpServers.d.ts} +12 -18
- package/dist/types/types/mutations.d.ts +209 -0
- package/dist/types/types/queries.d.ts +169 -0
- package/dist/types/types/runs.d.ts +36 -0
- package/dist/types/types/web.d.ts +520 -0
- package/dist/types/types.d.ts +503 -0
- package/dist/types/utils.d.ts +12 -0
- package/package.json +5 -1
- package/babel.config.js +0 -4
- package/check_updates.sh +0 -52
- package/jest.config.js +0 -19
- package/react-query/package-lock.json +0 -292
- package/react-query/package.json +0 -10
- package/rollup.config.js +0 -74
- package/server-rollup.config.js +0 -40
- package/specs/actions.spec.ts +0 -2533
- package/specs/api-endpoints-subdir.spec.ts +0 -140
- package/specs/api-endpoints.spec.ts +0 -74
- package/specs/azure.spec.ts +0 -844
- package/specs/bedrock.spec.ts +0 -862
- package/specs/filetypes.spec.ts +0 -175
- package/specs/generate.spec.ts +0 -770
- package/specs/headers-helpers.spec.ts +0 -24
- package/specs/mcp.spec.ts +0 -147
- package/specs/openapiSpecs.ts +0 -524
- package/specs/parsers.spec.ts +0 -601
- package/specs/request-interceptor.spec.ts +0 -304
- package/specs/utils.spec.ts +0 -196
- package/src/accessPermissions.ts +0 -346
- package/src/actions.ts +0 -813
- package/src/api-endpoints.ts +0 -440
- package/src/artifacts.ts +0 -3104
- package/src/azure.ts +0 -328
- package/src/bedrock.ts +0 -425
- package/src/config.spec.ts +0 -315
- package/src/config.ts +0 -2006
- package/src/createPayload.ts +0 -46
- package/src/data-service.ts +0 -1087
- package/src/feedback.ts +0 -141
- package/src/file-config.spec.ts +0 -1248
- package/src/file-config.ts +0 -764
- package/src/generate.ts +0 -634
- package/src/headers-helpers.ts +0 -13
- package/src/keys.ts +0 -99
- package/src/mcp.ts +0 -271
- package/src/messages.ts +0 -50
- package/src/models.ts +0 -69
- package/src/parameterSettings.ts +0 -1111
- package/src/parsers.ts +0 -563
- package/src/permissions.ts +0 -188
- package/src/react-query/react-query-service.ts +0 -566
- package/src/request.ts +0 -171
- package/src/roles.spec.ts +0 -132
- package/src/roles.ts +0 -225
- package/src/schemas.spec.ts +0 -355
- package/src/schemas.ts +0 -1234
- package/src/types/agents.ts +0 -470
- package/src/types/assistants.ts +0 -654
- package/src/types/files.ts +0 -191
- package/src/types/graph.ts +0 -145
- package/src/types/mutations.ts +0 -422
- package/src/types/queries.ts +0 -208
- package/src/types/runs.ts +0 -40
- package/src/types/web.ts +0 -588
- package/src/types.ts +0 -676
- package/src/utils.ts +0 -85
- package/tsconfig.json +0 -28
- package/tsconfig.spec.json +0 -10
- /package/{src/react-query/index.ts → dist/types/react-query/index.d.ts} +0 -0
- /package/{src/types/index.ts → dist/types/types/index.d.ts} +0 -0
package/src/request.ts
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import axios, { AxiosError, AxiosRequestConfig } from 'axios';
|
|
3
|
-
import { setTokenHeader } from './headers-helpers';
|
|
4
|
-
import * as endpoints from './api-endpoints';
|
|
5
|
-
import type * as t from './types';
|
|
6
|
-
|
|
7
|
-
async function _get<T>(url: string, options?: AxiosRequestConfig): Promise<T> {
|
|
8
|
-
const response = await axios.get(url, { ...options });
|
|
9
|
-
return response.data;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
async function _getResponse<T>(url: string, options?: AxiosRequestConfig): Promise<T> {
|
|
13
|
-
return await axios.get(url, { ...options });
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
async function _post(url: string, data?: any) {
|
|
17
|
-
const response = await axios.post(url, JSON.stringify(data), {
|
|
18
|
-
headers: { 'Content-Type': 'application/json' },
|
|
19
|
-
});
|
|
20
|
-
return response.data;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async function _postMultiPart(url: string, formData: FormData, options?: AxiosRequestConfig) {
|
|
24
|
-
const response = await axios.post(url, formData, {
|
|
25
|
-
...options,
|
|
26
|
-
headers: { 'Content-Type': 'multipart/form-data' },
|
|
27
|
-
});
|
|
28
|
-
return response.data;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async function _postTTS(url: string, formData: FormData, options?: AxiosRequestConfig) {
|
|
32
|
-
const response = await axios.post(url, formData, {
|
|
33
|
-
...options,
|
|
34
|
-
headers: { 'Content-Type': 'multipart/form-data' },
|
|
35
|
-
responseType: 'arraybuffer',
|
|
36
|
-
});
|
|
37
|
-
return response.data;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async function _put(url: string, data?: any) {
|
|
41
|
-
const response = await axios.put(url, JSON.stringify(data), {
|
|
42
|
-
headers: { 'Content-Type': 'application/json' },
|
|
43
|
-
});
|
|
44
|
-
return response.data;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
async function _delete<T>(url: string): Promise<T> {
|
|
48
|
-
const response = await axios.delete(url);
|
|
49
|
-
return response.data;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function _deleteWithOptions<T>(url: string, options?: AxiosRequestConfig): Promise<T> {
|
|
53
|
-
const response = await axios.delete(url, { ...options });
|
|
54
|
-
return response.data;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async function _patch(url: string, data?: any) {
|
|
58
|
-
const response = await axios.patch(url, JSON.stringify(data), {
|
|
59
|
-
headers: { 'Content-Type': 'application/json' },
|
|
60
|
-
});
|
|
61
|
-
return response.data;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
let isRefreshing = false;
|
|
65
|
-
let failedQueue: { resolve: (value?: any) => void; reject: (reason?: any) => void }[] = [];
|
|
66
|
-
|
|
67
|
-
const refreshToken = (retry?: boolean): Promise<t.TRefreshTokenResponse | undefined> =>
|
|
68
|
-
_post(endpoints.refreshToken(retry));
|
|
69
|
-
|
|
70
|
-
const dispatchTokenUpdatedEvent = (token: string) => {
|
|
71
|
-
setTokenHeader(token);
|
|
72
|
-
window.dispatchEvent(new CustomEvent('tokenUpdated', { detail: token }));
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const processQueue = (error: AxiosError | null, token: string | null = null) => {
|
|
76
|
-
failedQueue.forEach((prom) => {
|
|
77
|
-
if (error) {
|
|
78
|
-
prom.reject(error);
|
|
79
|
-
} else {
|
|
80
|
-
prom.resolve(token);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
failedQueue = [];
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
if (typeof window !== 'undefined') {
|
|
87
|
-
axios.interceptors.response.use(
|
|
88
|
-
(response) => response,
|
|
89
|
-
async (error) => {
|
|
90
|
-
const originalRequest = error.config;
|
|
91
|
-
if (!error.response) {
|
|
92
|
-
return Promise.reject(error);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (originalRequest.url?.includes('/api/auth/2fa') === true) {
|
|
96
|
-
return Promise.reject(error);
|
|
97
|
-
}
|
|
98
|
-
if (originalRequest.url?.includes('/api/auth/logout') === true) {
|
|
99
|
-
return Promise.reject(error);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/** Skip refresh when the Authorization header has been cleared (e.g. during logout),
|
|
103
|
-
* but allow shared link requests to proceed so auth recovery/redirect can happen */
|
|
104
|
-
if (
|
|
105
|
-
!axios.defaults.headers.common['Authorization'] &&
|
|
106
|
-
!window.location.pathname.startsWith('/share/')
|
|
107
|
-
) {
|
|
108
|
-
return Promise.reject(error);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (error.response.status === 401 && !originalRequest._retry) {
|
|
112
|
-
console.warn('401 error, refreshing token');
|
|
113
|
-
originalRequest._retry = true;
|
|
114
|
-
|
|
115
|
-
if (isRefreshing) {
|
|
116
|
-
try {
|
|
117
|
-
const token = await new Promise((resolve, reject) => {
|
|
118
|
-
failedQueue.push({ resolve, reject });
|
|
119
|
-
});
|
|
120
|
-
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
121
|
-
return await axios(originalRequest);
|
|
122
|
-
} catch (err) {
|
|
123
|
-
return Promise.reject(err);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
isRefreshing = true;
|
|
128
|
-
|
|
129
|
-
try {
|
|
130
|
-
const response = await refreshToken(
|
|
131
|
-
// Handle edge case where we get a blank screen if the initial 401 error is from a refresh token request
|
|
132
|
-
originalRequest.url?.includes('api/auth/refresh') === true ? true : false,
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
const token = response?.token ?? '';
|
|
136
|
-
|
|
137
|
-
if (token) {
|
|
138
|
-
originalRequest.headers['Authorization'] = 'Bearer ' + token;
|
|
139
|
-
dispatchTokenUpdatedEvent(token);
|
|
140
|
-
processQueue(null, token);
|
|
141
|
-
return await axios(originalRequest);
|
|
142
|
-
} else {
|
|
143
|
-
processQueue(error, null);
|
|
144
|
-
window.location.href = endpoints.apiBaseUrl() + endpoints.buildLoginRedirectUrl();
|
|
145
|
-
}
|
|
146
|
-
} catch (err) {
|
|
147
|
-
processQueue(err as AxiosError, null);
|
|
148
|
-
return Promise.reject(err);
|
|
149
|
-
} finally {
|
|
150
|
-
isRefreshing = false;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return Promise.reject(error);
|
|
155
|
-
},
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export default {
|
|
160
|
-
get: _get,
|
|
161
|
-
getResponse: _getResponse,
|
|
162
|
-
post: _post,
|
|
163
|
-
postMultiPart: _postMultiPart,
|
|
164
|
-
postTTS: _postTTS,
|
|
165
|
-
put: _put,
|
|
166
|
-
delete: _delete,
|
|
167
|
-
deleteWithOptions: _deleteWithOptions,
|
|
168
|
-
patch: _patch,
|
|
169
|
-
refreshToken,
|
|
170
|
-
dispatchTokenUpdatedEvent,
|
|
171
|
-
};
|
package/src/roles.spec.ts
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { Permissions, PermissionTypes, permissionsSchema } from './permissions';
|
|
2
|
-
import { SystemRoles, roleDefaults } from './roles';
|
|
3
|
-
|
|
4
|
-
const RESOURCE_MANAGEMENT_FIELDS: Permissions[] = [
|
|
5
|
-
Permissions.CREATE,
|
|
6
|
-
Permissions.SHARE,
|
|
7
|
-
Permissions.SHARE_PUBLIC,
|
|
8
|
-
];
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Permission types where CREATE/SHARE/SHARE_PUBLIC must default to false for USER.
|
|
12
|
-
* MEMORIES is excluded: its CREATE/READ/UPDATE apply to the user's own private data.
|
|
13
|
-
* AGENTS/PROMPTS are excluded: CREATE=true is intentional (users own their agents/prompts).
|
|
14
|
-
* Add new types here if they gate shared/multi-user resources.
|
|
15
|
-
*/
|
|
16
|
-
const RESOURCE_PERMISSION_TYPES: PermissionTypes[] = [
|
|
17
|
-
PermissionTypes.MCP_SERVERS,
|
|
18
|
-
PermissionTypes.REMOTE_AGENTS,
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
describe('roleDefaults', () => {
|
|
22
|
-
describe('USER role', () => {
|
|
23
|
-
const userPerms = roleDefaults[SystemRoles.USER].permissions;
|
|
24
|
-
|
|
25
|
-
it('should have explicit values for every field in every multi-field permission type', () => {
|
|
26
|
-
const schemaShape = permissionsSchema.shape;
|
|
27
|
-
|
|
28
|
-
for (const [permType, subSchema] of Object.entries(schemaShape)) {
|
|
29
|
-
const fieldNames = Object.keys(subSchema.shape);
|
|
30
|
-
if (fieldNames.length <= 1) {
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const userValues =
|
|
35
|
-
userPerms[permType as PermissionTypes] as Record<string, boolean>;
|
|
36
|
-
|
|
37
|
-
for (const field of fieldNames) {
|
|
38
|
-
expect({
|
|
39
|
-
permType,
|
|
40
|
-
field,
|
|
41
|
-
value: userValues[field],
|
|
42
|
-
}).toEqual(
|
|
43
|
-
expect.objectContaining({
|
|
44
|
-
permType,
|
|
45
|
-
field,
|
|
46
|
-
value: expect.any(Boolean),
|
|
47
|
-
}),
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('should never grant CREATE, SHARE, or SHARE_PUBLIC by default for resource-management types', () => {
|
|
54
|
-
for (const permType of RESOURCE_PERMISSION_TYPES) {
|
|
55
|
-
const permissions = userPerms[permType] as Record<string, boolean>;
|
|
56
|
-
for (const field of RESOURCE_MANAGEMENT_FIELDS) {
|
|
57
|
-
if (permissions[field] === undefined) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
expect({
|
|
61
|
-
permType,
|
|
62
|
-
field,
|
|
63
|
-
value: permissions[field],
|
|
64
|
-
}).toEqual(
|
|
65
|
-
expect.objectContaining({
|
|
66
|
-
permType,
|
|
67
|
-
field,
|
|
68
|
-
value: false,
|
|
69
|
-
}),
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it('should cover every permission type that has CREATE, SHARE, or SHARE_PUBLIC fields', () => {
|
|
76
|
-
const schemaShape = permissionsSchema.shape;
|
|
77
|
-
const restrictedSet = new Set<string>(RESOURCE_PERMISSION_TYPES);
|
|
78
|
-
|
|
79
|
-
for (const [permType, subSchema] of Object.entries(schemaShape)) {
|
|
80
|
-
const fieldNames = Object.keys(subSchema.shape);
|
|
81
|
-
const hasResourceFields = fieldNames.some((f) => RESOURCE_MANAGEMENT_FIELDS.includes(f as Permissions));
|
|
82
|
-
if (!hasResourceFields) {
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const isTracked =
|
|
87
|
-
restrictedSet.has(permType) ||
|
|
88
|
-
permType === PermissionTypes.MEMORIES ||
|
|
89
|
-
permType === PermissionTypes.PROMPTS ||
|
|
90
|
-
permType === PermissionTypes.AGENTS;
|
|
91
|
-
|
|
92
|
-
expect({
|
|
93
|
-
permType,
|
|
94
|
-
tracked: isTracked,
|
|
95
|
-
}).toEqual(
|
|
96
|
-
expect.objectContaining({
|
|
97
|
-
permType,
|
|
98
|
-
tracked: true,
|
|
99
|
-
}),
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
describe('ADMIN role', () => {
|
|
106
|
-
const adminPerms = roleDefaults[SystemRoles.ADMIN].permissions;
|
|
107
|
-
|
|
108
|
-
it('should have explicit values for every field in every permission type', () => {
|
|
109
|
-
const schemaShape = permissionsSchema.shape;
|
|
110
|
-
|
|
111
|
-
for (const [permType, subSchema] of Object.entries(schemaShape)) {
|
|
112
|
-
const fieldNames = Object.keys(subSchema.shape);
|
|
113
|
-
const adminValues =
|
|
114
|
-
adminPerms[permType as PermissionTypes] as Record<string, boolean>;
|
|
115
|
-
|
|
116
|
-
for (const field of fieldNames) {
|
|
117
|
-
expect({
|
|
118
|
-
permType,
|
|
119
|
-
field,
|
|
120
|
-
value: adminValues[field],
|
|
121
|
-
}).toEqual(
|
|
122
|
-
expect.objectContaining({
|
|
123
|
-
permType,
|
|
124
|
-
field,
|
|
125
|
-
value: expect.any(Boolean),
|
|
126
|
-
}),
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
});
|
package/src/roles.ts
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
Permissions,
|
|
4
|
-
PermissionTypes,
|
|
5
|
-
permissionsSchema,
|
|
6
|
-
agentPermissionsSchema,
|
|
7
|
-
promptPermissionsSchema,
|
|
8
|
-
memoryPermissionsSchema,
|
|
9
|
-
runCodePermissionsSchema,
|
|
10
|
-
bookmarkPermissionsSchema,
|
|
11
|
-
webSearchPermissionsSchema,
|
|
12
|
-
fileSearchPermissionsSchema,
|
|
13
|
-
multiConvoPermissionsSchema,
|
|
14
|
-
mcpServersPermissionsSchema,
|
|
15
|
-
peoplePickerPermissionsSchema,
|
|
16
|
-
remoteAgentsPermissionsSchema,
|
|
17
|
-
temporaryChatPermissionsSchema,
|
|
18
|
-
fileCitationsPermissionsSchema,
|
|
19
|
-
} from './permissions';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Enum for System Defined Roles
|
|
23
|
-
*/
|
|
24
|
-
export enum SystemRoles {
|
|
25
|
-
/**
|
|
26
|
-
* The Admin role
|
|
27
|
-
*/
|
|
28
|
-
ADMIN = 'ADMIN',
|
|
29
|
-
/**
|
|
30
|
-
* The default user role
|
|
31
|
-
*/
|
|
32
|
-
USER = 'USER',
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export const roleSchema = z.object({
|
|
36
|
-
name: z.string(),
|
|
37
|
-
permissions: permissionsSchema,
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
export type TRole = z.infer<typeof roleSchema>;
|
|
41
|
-
|
|
42
|
-
const defaultRolesSchema = z.object({
|
|
43
|
-
[SystemRoles.ADMIN]: roleSchema.extend({
|
|
44
|
-
name: z.literal(SystemRoles.ADMIN),
|
|
45
|
-
permissions: permissionsSchema.extend({
|
|
46
|
-
[PermissionTypes.PROMPTS]: promptPermissionsSchema.extend({
|
|
47
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
48
|
-
[Permissions.CREATE]: z.boolean().default(true),
|
|
49
|
-
[Permissions.SHARE]: z.boolean().default(true),
|
|
50
|
-
[Permissions.SHARE_PUBLIC]: z.boolean().default(true),
|
|
51
|
-
}),
|
|
52
|
-
[PermissionTypes.BOOKMARKS]: bookmarkPermissionsSchema.extend({
|
|
53
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
54
|
-
}),
|
|
55
|
-
[PermissionTypes.MEMORIES]: memoryPermissionsSchema.extend({
|
|
56
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
57
|
-
[Permissions.CREATE]: z.boolean().default(true),
|
|
58
|
-
[Permissions.UPDATE]: z.boolean().default(true),
|
|
59
|
-
[Permissions.READ]: z.boolean().default(true),
|
|
60
|
-
[Permissions.OPT_OUT]: z.boolean().default(true),
|
|
61
|
-
}),
|
|
62
|
-
[PermissionTypes.AGENTS]: agentPermissionsSchema.extend({
|
|
63
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
64
|
-
[Permissions.CREATE]: z.boolean().default(true),
|
|
65
|
-
[Permissions.SHARE]: z.boolean().default(true),
|
|
66
|
-
[Permissions.SHARE_PUBLIC]: z.boolean().default(true),
|
|
67
|
-
}),
|
|
68
|
-
[PermissionTypes.MULTI_CONVO]: multiConvoPermissionsSchema.extend({
|
|
69
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
70
|
-
}),
|
|
71
|
-
[PermissionTypes.TEMPORARY_CHAT]: temporaryChatPermissionsSchema.extend({
|
|
72
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
73
|
-
}),
|
|
74
|
-
[PermissionTypes.RUN_CODE]: runCodePermissionsSchema.extend({
|
|
75
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
76
|
-
}),
|
|
77
|
-
[PermissionTypes.WEB_SEARCH]: webSearchPermissionsSchema.extend({
|
|
78
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
79
|
-
}),
|
|
80
|
-
[PermissionTypes.PEOPLE_PICKER]: peoplePickerPermissionsSchema.extend({
|
|
81
|
-
[Permissions.VIEW_USERS]: z.boolean().default(true),
|
|
82
|
-
[Permissions.VIEW_GROUPS]: z.boolean().default(true),
|
|
83
|
-
[Permissions.VIEW_ROLES]: z.boolean().default(true),
|
|
84
|
-
}),
|
|
85
|
-
[PermissionTypes.MARKETPLACE]: z.object({
|
|
86
|
-
[Permissions.USE]: z.boolean().default(false),
|
|
87
|
-
}),
|
|
88
|
-
[PermissionTypes.FILE_SEARCH]: fileSearchPermissionsSchema.extend({
|
|
89
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
90
|
-
}),
|
|
91
|
-
[PermissionTypes.FILE_CITATIONS]: fileCitationsPermissionsSchema.extend({
|
|
92
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
93
|
-
}),
|
|
94
|
-
[PermissionTypes.MCP_SERVERS]: mcpServersPermissionsSchema.extend({
|
|
95
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
96
|
-
[Permissions.CREATE]: z.boolean().default(true),
|
|
97
|
-
[Permissions.SHARE]: z.boolean().default(true),
|
|
98
|
-
[Permissions.SHARE_PUBLIC]: z.boolean().default(true),
|
|
99
|
-
}),
|
|
100
|
-
[PermissionTypes.REMOTE_AGENTS]: remoteAgentsPermissionsSchema.extend({
|
|
101
|
-
[Permissions.USE]: z.boolean().default(true),
|
|
102
|
-
[Permissions.CREATE]: z.boolean().default(true),
|
|
103
|
-
[Permissions.SHARE]: z.boolean().default(true),
|
|
104
|
-
[Permissions.SHARE_PUBLIC]: z.boolean().default(true),
|
|
105
|
-
}),
|
|
106
|
-
}),
|
|
107
|
-
}),
|
|
108
|
-
[SystemRoles.USER]: roleSchema.extend({
|
|
109
|
-
name: z.literal(SystemRoles.USER),
|
|
110
|
-
permissions: permissionsSchema,
|
|
111
|
-
}),
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
export const roleDefaults = defaultRolesSchema.parse({
|
|
115
|
-
[SystemRoles.ADMIN]: {
|
|
116
|
-
name: SystemRoles.ADMIN,
|
|
117
|
-
permissions: {
|
|
118
|
-
[PermissionTypes.PROMPTS]: {
|
|
119
|
-
[Permissions.USE]: true,
|
|
120
|
-
[Permissions.CREATE]: true,
|
|
121
|
-
[Permissions.SHARE]: true,
|
|
122
|
-
[Permissions.SHARE_PUBLIC]: true,
|
|
123
|
-
},
|
|
124
|
-
[PermissionTypes.BOOKMARKS]: {
|
|
125
|
-
[Permissions.USE]: true,
|
|
126
|
-
},
|
|
127
|
-
[PermissionTypes.MEMORIES]: {
|
|
128
|
-
[Permissions.USE]: true,
|
|
129
|
-
[Permissions.CREATE]: true,
|
|
130
|
-
[Permissions.UPDATE]: true,
|
|
131
|
-
[Permissions.READ]: true,
|
|
132
|
-
[Permissions.OPT_OUT]: true,
|
|
133
|
-
},
|
|
134
|
-
[PermissionTypes.AGENTS]: {
|
|
135
|
-
[Permissions.USE]: true,
|
|
136
|
-
[Permissions.CREATE]: true,
|
|
137
|
-
[Permissions.SHARE]: true,
|
|
138
|
-
[Permissions.SHARE_PUBLIC]: true,
|
|
139
|
-
},
|
|
140
|
-
[PermissionTypes.MULTI_CONVO]: {
|
|
141
|
-
[Permissions.USE]: true,
|
|
142
|
-
},
|
|
143
|
-
[PermissionTypes.TEMPORARY_CHAT]: {
|
|
144
|
-
[Permissions.USE]: true,
|
|
145
|
-
},
|
|
146
|
-
[PermissionTypes.RUN_CODE]: {
|
|
147
|
-
[Permissions.USE]: true,
|
|
148
|
-
},
|
|
149
|
-
[PermissionTypes.WEB_SEARCH]: {
|
|
150
|
-
[Permissions.USE]: true,
|
|
151
|
-
},
|
|
152
|
-
[PermissionTypes.PEOPLE_PICKER]: {
|
|
153
|
-
[Permissions.VIEW_USERS]: true,
|
|
154
|
-
[Permissions.VIEW_GROUPS]: true,
|
|
155
|
-
[Permissions.VIEW_ROLES]: true,
|
|
156
|
-
},
|
|
157
|
-
[PermissionTypes.MARKETPLACE]: {
|
|
158
|
-
[Permissions.USE]: true,
|
|
159
|
-
},
|
|
160
|
-
[PermissionTypes.FILE_SEARCH]: {
|
|
161
|
-
[Permissions.USE]: true,
|
|
162
|
-
},
|
|
163
|
-
[PermissionTypes.FILE_CITATIONS]: {
|
|
164
|
-
[Permissions.USE]: true,
|
|
165
|
-
},
|
|
166
|
-
[PermissionTypes.MCP_SERVERS]: {
|
|
167
|
-
[Permissions.USE]: true,
|
|
168
|
-
[Permissions.CREATE]: true,
|
|
169
|
-
[Permissions.SHARE]: true,
|
|
170
|
-
[Permissions.SHARE_PUBLIC]: true,
|
|
171
|
-
},
|
|
172
|
-
[PermissionTypes.REMOTE_AGENTS]: {
|
|
173
|
-
[Permissions.USE]: true,
|
|
174
|
-
[Permissions.CREATE]: true,
|
|
175
|
-
[Permissions.SHARE]: true,
|
|
176
|
-
[Permissions.SHARE_PUBLIC]: true,
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
[SystemRoles.USER]: {
|
|
181
|
-
name: SystemRoles.USER,
|
|
182
|
-
permissions: {
|
|
183
|
-
[PermissionTypes.PROMPTS]: {
|
|
184
|
-
[Permissions.USE]: true,
|
|
185
|
-
[Permissions.CREATE]: true,
|
|
186
|
-
[Permissions.SHARE]: false,
|
|
187
|
-
[Permissions.SHARE_PUBLIC]: false,
|
|
188
|
-
},
|
|
189
|
-
[PermissionTypes.BOOKMARKS]: {},
|
|
190
|
-
[PermissionTypes.MEMORIES]: {},
|
|
191
|
-
[PermissionTypes.AGENTS]: {
|
|
192
|
-
[Permissions.USE]: true,
|
|
193
|
-
[Permissions.CREATE]: true,
|
|
194
|
-
[Permissions.SHARE]: false,
|
|
195
|
-
[Permissions.SHARE_PUBLIC]: false,
|
|
196
|
-
},
|
|
197
|
-
[PermissionTypes.MULTI_CONVO]: {},
|
|
198
|
-
[PermissionTypes.TEMPORARY_CHAT]: {},
|
|
199
|
-
[PermissionTypes.RUN_CODE]: {},
|
|
200
|
-
[PermissionTypes.WEB_SEARCH]: {},
|
|
201
|
-
[PermissionTypes.PEOPLE_PICKER]: {
|
|
202
|
-
[Permissions.VIEW_USERS]: false,
|
|
203
|
-
[Permissions.VIEW_GROUPS]: false,
|
|
204
|
-
[Permissions.VIEW_ROLES]: false,
|
|
205
|
-
},
|
|
206
|
-
[PermissionTypes.MARKETPLACE]: {
|
|
207
|
-
[Permissions.USE]: false,
|
|
208
|
-
},
|
|
209
|
-
[PermissionTypes.FILE_SEARCH]: {},
|
|
210
|
-
[PermissionTypes.FILE_CITATIONS]: {},
|
|
211
|
-
[PermissionTypes.MCP_SERVERS]: {
|
|
212
|
-
[Permissions.USE]: true,
|
|
213
|
-
[Permissions.CREATE]: false,
|
|
214
|
-
[Permissions.SHARE]: false,
|
|
215
|
-
[Permissions.SHARE_PUBLIC]: false,
|
|
216
|
-
},
|
|
217
|
-
[PermissionTypes.REMOTE_AGENTS]: {
|
|
218
|
-
[Permissions.USE]: false,
|
|
219
|
-
[Permissions.CREATE]: false,
|
|
220
|
-
[Permissions.SHARE]: false,
|
|
221
|
-
[Permissions.SHARE_PUBLIC]: false,
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
});
|