@space-ai/contracts 0.1.2 → 0.1.4
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/README.md +103 -10
- package/dist/api/connectors.d.ts +4 -0
- package/dist/api/connectors.d.ts.map +1 -0
- package/dist/api/connectors.js +12 -0
- package/dist/api/connectors.js.map +1 -0
- package/dist/api/constants.d.ts +2 -0
- package/dist/api/constants.d.ts.map +1 -0
- package/dist/api/constants.js +2 -0
- package/dist/api/constants.js.map +1 -0
- package/dist/api/guardrails.d.ts +5 -0
- package/dist/api/guardrails.d.ts.map +1 -0
- package/dist/api/guardrails.js +16 -0
- package/dist/api/guardrails.js.map +1 -0
- package/dist/api/index.d.ts +4 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/users.d.ts +3 -0
- package/dist/api/users.d.ts.map +1 -0
- package/dist/api/users.js +8 -0
- package/dist/api/users.js.map +1 -0
- package/dist/core/auth.d.ts +12 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +12 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/create-axios-instance.d.ts +4 -0
- package/dist/core/create-axios-instance.d.ts.map +1 -0
- package/dist/core/create-axios-instance.js +63 -0
- package/dist/core/create-axios-instance.js.map +1 -0
- package/dist/core/setup-api-client.d.ts.map +1 -1
- package/dist/core/setup-api-client.js +5 -5
- package/dist/core/setup-api-client.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/types/connectors.d.ts +54 -0
- package/dist/types/connectors.d.ts.map +1 -0
- package/dist/types/connectors.js +9 -0
- package/dist/types/connectors.js.map +1 -0
- package/dist/types/guardrails.d.ts +86 -0
- package/dist/types/guardrails.d.ts.map +1 -0
- package/dist/types/guardrails.js +2 -0
- package/dist/types/guardrails.js.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/users.d.ts +4 -0
- package/dist/types/users.d.ts.map +1 -0
- package/dist/types/users.js +2 -0
- package/dist/types/users.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,9 +48,9 @@ import '@space-ai/contracts/axios';
|
|
|
48
48
|
**3.** Используйте функции запросов где угодно:
|
|
49
49
|
|
|
50
50
|
```typescript
|
|
51
|
-
import {
|
|
51
|
+
import { getConnectors } from '@space-ai/contracts';
|
|
52
52
|
|
|
53
|
-
const
|
|
53
|
+
const connectors = await getConnectors();
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Axios создаётся с `baseURL: BASE_API_URL`, сохраняется в `window.axios` / `global.axios` и используется всеми API-функциями.
|
|
@@ -64,7 +64,9 @@ Axios создаётся с `baseURL: BASE_API_URL`, сохраняется в `
|
|
|
64
64
|
| Свойство | Тип | Описание |
|
|
65
65
|
|----------|-----|----------|
|
|
66
66
|
| `BASE_API_URL` | `string` | Базовый URL API → `axios.create({ baseURL })` |
|
|
67
|
+
| `API_PREFIX` | `string` | Опциональный префикс (`api` → `{BASE_API_URL}/api`) |
|
|
67
68
|
| `axios` | `AxiosInstance` | Экземпляр axios (создаётся пакетом) |
|
|
69
|
+
| `CONTRACTS_AUTH` | `AuthProvider` | Провайдер токена (альтернатива `configureAuth`) |
|
|
68
70
|
|
|
69
71
|
Примеры:
|
|
70
72
|
|
|
@@ -78,6 +80,78 @@ global.BASE_API_URL = 'http://localhost:3000';
|
|
|
78
80
|
|
|
79
81
|
---
|
|
80
82
|
|
|
83
|
+
## Инициализация axios и авторизация
|
|
84
|
+
|
|
85
|
+
Пакет создаёт axios как на фронтенде:
|
|
86
|
+
|
|
87
|
+
- `baseURL` из `BASE_API_URL` + опциональный `API_PREFIX`
|
|
88
|
+
- заголовки `Content-Type` / `Accept: application/json`
|
|
89
|
+
- **request interceptor** — подставляет `Authorization: Bearer <token>`
|
|
90
|
+
- **response interceptor** — проверка статуса и проброс ошибок
|
|
91
|
+
|
|
92
|
+
### Провайдер токена
|
|
93
|
+
|
|
94
|
+
Keycloak, Zustand и прочее остаются в приложении. Пакет не знает про них — вы передаёте `AuthProvider`:
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
import { configureAuth, setupApiClient } from '@space-ai/contracts';
|
|
98
|
+
import { getAccessToken, updateToken } from '@/api/keycloak';
|
|
99
|
+
import { dispatchLogout, useAuth } from '@/stores/auth';
|
|
100
|
+
|
|
101
|
+
configureAuth({
|
|
102
|
+
getAccessToken: () => getAccessToken() ?? useAuth.getState().token ?? null,
|
|
103
|
+
updateToken: (minValiditySeconds = 30) => updateToken(minValiditySeconds),
|
|
104
|
+
onSessionExpired: () => dispatchLogout(),
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
window.BASE_API_URL = import.meta.env.VITE_API_URL;
|
|
108
|
+
window.API_PREFIX = 'api'; // опционально
|
|
109
|
+
|
|
110
|
+
setupApiClient();
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Логика interceptor (как в `src/api/axios.ts` на фронте):
|
|
114
|
+
|
|
115
|
+
1. `getAccessToken()` — если токена нет, запрос уходит без `Authorization`
|
|
116
|
+
2. `updateToken(30)` — обновление перед запросом; при ошибке → `onSessionExpired()` и `Session expired`
|
|
117
|
+
3. повторный `getAccessToken()` — свежий токен в заголовок
|
|
118
|
+
|
|
119
|
+
### Альтернатива — `global.CONTRACTS_AUTH`
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
global.CONTRACTS_AUTH = {
|
|
123
|
+
getAccessToken: () => getAccessToken() ?? useAuth.getState().token ?? null,
|
|
124
|
+
updateToken,
|
|
125
|
+
onSessionExpired: dispatchLogout,
|
|
126
|
+
};
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Полный пример `main.tsx`
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
import { configureAuth, setupApiClient } from '@space-ai/contracts';
|
|
133
|
+
import { getAccessToken, updateToken } from '@/api/keycloak';
|
|
134
|
+
import { dispatchLogout, useAuth } from '@/stores/auth';
|
|
135
|
+
|
|
136
|
+
configureAuth({
|
|
137
|
+
getAccessToken: () => getAccessToken() ?? useAuth.getState().token ?? null,
|
|
138
|
+
updateToken: (s = 30) => updateToken(s),
|
|
139
|
+
onSessionExpired: dispatchLogout,
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
window.BASE_API_URL = import.meta.env.VITE_API_URL;
|
|
143
|
+
window.API_PREFIX = 'api';
|
|
144
|
+
|
|
145
|
+
setupApiClient();
|
|
146
|
+
|
|
147
|
+
import { createRoot } from 'react-dom/client';
|
|
148
|
+
import App from './App';
|
|
149
|
+
|
|
150
|
+
createRoot(document.getElementById('root')!).render(<App />);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
81
155
|
## Способы инициализации
|
|
82
156
|
|
|
83
157
|
### Способ 1 — Vite / React (рекомендуется)
|
|
@@ -164,7 +238,7 @@ import '@space-ai/contracts/axios';
|
|
|
164
238
|
|
|
165
239
|
window.BASE_API_URL = import.meta.env.VITE_BASE_API_URL;
|
|
166
240
|
|
|
167
|
-
// axios создастся при первом вызове
|
|
241
|
+
// axios создастся при первом вызове getConnectors(), getGuardrailsList() и т.д.
|
|
168
242
|
```
|
|
169
243
|
|
|
170
244
|
> Для interceptors и baseURL до первого запроса надёжнее **Способ 1** или **Способ 2**.
|
|
@@ -197,17 +271,36 @@ initApiClient(api);
|
|
|
197
271
|
## Использование API-функций
|
|
198
272
|
|
|
199
273
|
```typescript
|
|
200
|
-
import {
|
|
274
|
+
import {
|
|
275
|
+
getConnectors,
|
|
276
|
+
postConnector,
|
|
277
|
+
getGuardrailsList,
|
|
278
|
+
} from '@space-ai/contracts';
|
|
201
279
|
|
|
202
|
-
const
|
|
280
|
+
const connectors = await getConnectors();
|
|
203
281
|
|
|
204
|
-
const
|
|
205
|
-
name: 'Alice',
|
|
206
|
-
email: 'alice@example.com',
|
|
207
|
-
});
|
|
282
|
+
const guardrails = await getGuardrailsList();
|
|
208
283
|
```
|
|
209
284
|
|
|
210
|
-
|
|
285
|
+
Доступные API-функции:
|
|
286
|
+
|
|
287
|
+
- `getConnectors()` — `GET /api/connector{s}`
|
|
288
|
+
- `postConnector(payload)` — `POST /api/connector`
|
|
289
|
+
- `getGuardrailsList()` — `GET /api/guardrails/list`
|
|
290
|
+
- `postGuardrail(payload)` — `POST /api/guardrails`
|
|
291
|
+
- `getGuardrailSubmissions(query?)` — `GET /api/guardrails/submissions`
|
|
292
|
+
- `putUserRoles(userId, data)` — `PUT /api/users/{userId}/roles`
|
|
293
|
+
|
|
294
|
+
Примеры:
|
|
295
|
+
|
|
296
|
+
```typescript
|
|
297
|
+
import { getConnectors, putUserRoles, type IAssignUserRolesRequest } from '@space-ai/contracts';
|
|
298
|
+
|
|
299
|
+
const connectors = await getConnectors();
|
|
300
|
+
|
|
301
|
+
const body: IAssignUserRolesRequest = { roles: ['admin', 'user'] };
|
|
302
|
+
await putUserRoles('alice@example.com', body);
|
|
303
|
+
```
|
|
211
304
|
|
|
212
305
|
Прямой доступ к axios (после инициализации):
|
|
213
306
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/api/connectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKtE,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAG3D;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGpF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getAxios } from '../core/axios-instance.js';
|
|
2
|
+
import { API_PREFIX } from './constants.js';
|
|
3
|
+
const uri = `${API_PREFIX}/connector`;
|
|
4
|
+
export async function getConnectors() {
|
|
5
|
+
const { data } = await getAxios().get(`${uri}s`);
|
|
6
|
+
return data;
|
|
7
|
+
}
|
|
8
|
+
export async function postConnector(connector) {
|
|
9
|
+
const { data } = await getAxios().post(uri, connector);
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=connectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/api/connectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,GAAG,GAAG,GAAG,UAAU,YAAY,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CAAe,GAAG,GAAG,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA2B;IAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,IAAI,CAAa,GAAG,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/api/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/api/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IGuardrailCreateRequest, IGuardrailSubmissionsListResponse, IGuardrailSubmissionsQuery, IGuardrailsListItem, IGuardrailsListResponse } from '../types/index.js';
|
|
2
|
+
export declare function getGuardrailsList(): Promise<IGuardrailsListResponse>;
|
|
3
|
+
export declare function postGuardrail(payload: IGuardrailCreateRequest): Promise<IGuardrailsListItem>;
|
|
4
|
+
export declare function getGuardrailSubmissions(query?: IGuardrailSubmissionsQuery): Promise<IGuardrailSubmissionsListResponse>;
|
|
5
|
+
//# sourceMappingURL=guardrails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/api/guardrails.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,iCAAiC,EACjC,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAK3B,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAG1E;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAG9B;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,CAAC,EAAE,0BAA0B,GACjC,OAAO,CAAC,iCAAiC,CAAC,CAM5C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getAxios } from '../core/axios-instance.js';
|
|
2
|
+
import { API_PREFIX } from './constants.js';
|
|
3
|
+
const uri = `${API_PREFIX}/guardrails`;
|
|
4
|
+
export async function getGuardrailsList() {
|
|
5
|
+
const { data } = await getAxios().get(`${uri}/list`);
|
|
6
|
+
return data;
|
|
7
|
+
}
|
|
8
|
+
export async function postGuardrail(payload) {
|
|
9
|
+
const { data } = await getAxios().post(uri, payload);
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
export async function getGuardrailSubmissions(query) {
|
|
13
|
+
const { data } = await getAxios().get(`${uri}/submissions`, { params: query });
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=guardrails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/api/guardrails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,GAAG,GAAG,GAAG,UAAU,aAAa,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CAA0B,GAAG,GAAG,OAAO,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgC;IAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,IAAI,CAAsB,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAkC;IAElC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CACnC,GAAG,GAAG,cAAc,EACpB,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { API_PREFIX } from './constants.js';
|
|
2
|
+
export { getConnectors, postConnector } from './connectors.js';
|
|
3
|
+
export { getGuardrailsList, getGuardrailSubmissions, postGuardrail, } from './guardrails.js';
|
|
4
|
+
export { putUserRoles } from './users.js';
|
|
2
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/api/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { API_PREFIX } from './constants.js';
|
|
2
|
+
export { getConnectors, postConnector } from './connectors.js';
|
|
3
|
+
export { getGuardrailsList, getGuardrailSubmissions, postGuardrail, } from './guardrails.js';
|
|
4
|
+
export { putUserRoles } from './users.js';
|
|
2
5
|
//# sourceMappingURL=index.js.map
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAKjE,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAMlB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getAxios } from '../core/axios-instance.js';
|
|
2
|
+
import { API_PREFIX } from './constants.js';
|
|
3
|
+
const usersUri = `${API_PREFIX}/users`;
|
|
4
|
+
export async function putUserRoles(userId, data) {
|
|
5
|
+
const { data: response } = await getAxios().put(`${usersUri}/${encodeURIComponent(userId.trim())}/roles`, data);
|
|
6
|
+
return response;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,QAAQ,GAAG,GAAG,UAAU,QAAQ,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAA6B;IAE7B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,GAAG,CAC7C,GAAG,QAAQ,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EACxD,IAAI,CACL,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AuthProvider {
|
|
2
|
+
/** Текущий access token (Keycloak, store и т.д.) */
|
|
3
|
+
getAccessToken(): string | null | undefined;
|
|
4
|
+
/** Обновить токен, если истекает в течение minValiditySeconds */
|
|
5
|
+
updateToken?(minValiditySeconds?: number): Promise<void>;
|
|
6
|
+
/** Сессия невалидна — logout, редирект и т.д. */
|
|
7
|
+
onSessionExpired?(): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function configureAuth(provider: AuthProvider): void;
|
|
10
|
+
export declare function getAuthProvider(): AuthProvider | undefined;
|
|
11
|
+
export declare function resetAuthProvider(): void;
|
|
12
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,cAAc,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iEAAiE;IACjE,WAAW,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,iDAAiD;IACjD,gBAAgB,CAAC,IAAI,IAAI,CAAC;CAC3B;AAID,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAE1D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getRuntime } from './runtime.js';
|
|
2
|
+
let authProvider = null;
|
|
3
|
+
export function configureAuth(provider) {
|
|
4
|
+
authProvider = provider;
|
|
5
|
+
}
|
|
6
|
+
export function getAuthProvider() {
|
|
7
|
+
return authProvider ?? getRuntime()?.CONTRACTS_AUTH;
|
|
8
|
+
}
|
|
9
|
+
export function resetAuthProvider() {
|
|
10
|
+
authProvider = null;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,QAAsB;IAClD,YAAY,GAAG,QAAQ,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,IAAI,UAAU,EAAE,EAAE,cAAc,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-axios-instance.d.ts","sourceRoot":"","sources":["../../src/core/create-axios-instance.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAC;AAMf,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAUnD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAWrE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { getAuthProvider } from './auth.js';
|
|
3
|
+
import { getBaseApiUrl, getRuntime } from './runtime.js';
|
|
4
|
+
const INTERCEPTORS_ATTACHED = Symbol('contracts.interceptors');
|
|
5
|
+
export function resolveBaseURL() {
|
|
6
|
+
const base = getBaseApiUrl();
|
|
7
|
+
if (!base)
|
|
8
|
+
return undefined;
|
|
9
|
+
const prefix = getRuntime()?.API_PREFIX;
|
|
10
|
+
if (!prefix)
|
|
11
|
+
return base;
|
|
12
|
+
const normalizedBase = base.replace(/\/$/, '');
|
|
13
|
+
const normalizedPrefix = prefix.replace(/^\//, '').replace(/\/$/, '');
|
|
14
|
+
return `${normalizedBase}/${normalizedPrefix}`;
|
|
15
|
+
}
|
|
16
|
+
export function createConfiguredAxios(baseURL) {
|
|
17
|
+
const instance = axios.create({
|
|
18
|
+
baseURL: baseURL ?? resolveBaseURL(),
|
|
19
|
+
headers: {
|
|
20
|
+
'Content-Type': 'application/json',
|
|
21
|
+
Accept: 'application/json',
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
attachInterceptors(instance);
|
|
25
|
+
return instance;
|
|
26
|
+
}
|
|
27
|
+
function attachInterceptors(instance) {
|
|
28
|
+
const marked = instance;
|
|
29
|
+
if (marked[INTERCEPTORS_ATTACHED])
|
|
30
|
+
return;
|
|
31
|
+
marked[INTERCEPTORS_ATTACHED] = true;
|
|
32
|
+
instance.interceptors.request.use(async (config) => {
|
|
33
|
+
const auth = getAuthProvider();
|
|
34
|
+
if (!auth)
|
|
35
|
+
return config;
|
|
36
|
+
const token = auth.getAccessToken();
|
|
37
|
+
if (!token)
|
|
38
|
+
return config;
|
|
39
|
+
if (auth.updateToken) {
|
|
40
|
+
try {
|
|
41
|
+
await auth.updateToken(30);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
auth.onSessionExpired?.();
|
|
45
|
+
return Promise.reject(new Error('Session expired'));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const fresh = auth.getAccessToken();
|
|
49
|
+
const currentToken = fresh ?? token;
|
|
50
|
+
if (currentToken) {
|
|
51
|
+
config.headers.Authorization = `Bearer ${currentToken}`;
|
|
52
|
+
}
|
|
53
|
+
return config;
|
|
54
|
+
}, (error) => Promise.reject(error));
|
|
55
|
+
instance.interceptors.response.use((res) => {
|
|
56
|
+
if (res.status >= 200 && res.status < 300)
|
|
57
|
+
return res;
|
|
58
|
+
throw new Error(res.data);
|
|
59
|
+
}, (err) => {
|
|
60
|
+
throw new Error(err);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=create-axios-instance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-axios-instance.js","sourceRoot":"","sources":["../../src/core/create-axios-instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-api-client.d.ts","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-api-client.d.ts","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAaA,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAyBrC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { createConfiguredAxios, resolveBaseURL, } from './create-axios-instance.js';
|
|
2
|
+
import { getRuntime, getRuntimeAxios, setRuntimeAxios, } from './runtime.js';
|
|
3
3
|
import { setStoredAxios } from './state.js';
|
|
4
4
|
let autoInitEnabled = false;
|
|
5
5
|
export function enableAutoInit() {
|
|
@@ -10,17 +10,17 @@ export function isAutoInitEnabled() {
|
|
|
10
10
|
}
|
|
11
11
|
export function setupApiClient() {
|
|
12
12
|
const runtime = getRuntime();
|
|
13
|
+
const baseURL = resolveBaseURL();
|
|
13
14
|
if (!runtime) {
|
|
14
|
-
setStoredAxios(
|
|
15
|
+
setStoredAxios(createConfiguredAxios(baseURL));
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const baseURL = getBaseApiUrl();
|
|
18
18
|
if (!baseURL) {
|
|
19
19
|
console.warn('@space-ai/contracts: BASE_API_URL не задан (global / window) — axios создаётся без baseURL');
|
|
20
20
|
}
|
|
21
21
|
let instance = getRuntimeAxios();
|
|
22
22
|
if (!instance) {
|
|
23
|
-
instance =
|
|
23
|
+
instance = createConfiguredAxios(baseURL);
|
|
24
24
|
setRuntimeAxios(instance);
|
|
25
25
|
}
|
|
26
26
|
else if (baseURL) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-api-client.js","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"setup-api-client.js","sourceRoot":"","sources":["../../src/core/setup-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B,MAAM,UAAU,cAAc;IAC5B,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC1C,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export { initApiClient } from './core/init.js';
|
|
2
2
|
export { setupApiClient, enableAutoInit } from './core/setup-api-client.js';
|
|
3
3
|
export { getAxios, resetAxios } from './core/axios-instance.js';
|
|
4
|
+
export { configureAuth, resetAuthProvider, type AuthProvider, } from './core/auth.js';
|
|
5
|
+
export { createConfiguredAxios, resolveBaseURL, } from './core/create-axios-instance.js';
|
|
6
|
+
export { API_PREFIX, getConnectors, getGuardrailsList, getGuardrailSubmissions, postConnector, postGuardrail, putUserRoles, } from './api/index.js';
|
|
7
|
+
export * from './types/index.js';
|
|
4
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export { initApiClient } from './core/init.js';
|
|
2
2
|
export { setupApiClient, enableAutoInit } from './core/setup-api-client.js';
|
|
3
3
|
export { getAxios, resetAxios } from './core/axios-instance.js';
|
|
4
|
+
export { configureAuth, resetAuthProvider, } from './core/auth.js';
|
|
5
|
+
export { createConfiguredAxios, resolveBaseURL, } from './core/create-axios-instance.js';
|
|
6
|
+
export { API_PREFIX, getConnectors, getGuardrailsList, getGuardrailSubmissions, postConnector, postGuardrail, putUserRoles, } from './api/index.js';
|
|
7
|
+
export * from './types/index.js';
|
|
4
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,aAAa,EACb,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export declare enum EHttpMethod {
|
|
2
|
+
GET = "GET",
|
|
3
|
+
POST = "POST",
|
|
4
|
+
PUT = "PUT",
|
|
5
|
+
PATCH = "PATCH",
|
|
6
|
+
DELETE = "DELETE"
|
|
7
|
+
}
|
|
8
|
+
export interface IConnectorOperation {
|
|
9
|
+
id?: string;
|
|
10
|
+
connector_id?: string;
|
|
11
|
+
operation_name: string;
|
|
12
|
+
display_name: string;
|
|
13
|
+
http_method: EHttpMethod;
|
|
14
|
+
system_code?: string;
|
|
15
|
+
config?: {
|
|
16
|
+
path?: string;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export interface IConnector {
|
|
21
|
+
base_url: string;
|
|
22
|
+
config: {
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
};
|
|
25
|
+
connector_type: string;
|
|
26
|
+
created_at: string;
|
|
27
|
+
health_url: string;
|
|
28
|
+
id: string;
|
|
29
|
+
is_active: boolean;
|
|
30
|
+
operations?: IConnectorOperation[];
|
|
31
|
+
system_code: string;
|
|
32
|
+
tenant_id: string;
|
|
33
|
+
updated_at: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ICreateConnector {
|
|
36
|
+
system_code: string;
|
|
37
|
+
connector_type: string;
|
|
38
|
+
base_url: string;
|
|
39
|
+
health_url?: string;
|
|
40
|
+
is_active?: boolean;
|
|
41
|
+
config?: {
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
};
|
|
44
|
+
operations?: Array<{
|
|
45
|
+
operation_name: string;
|
|
46
|
+
display_name: string;
|
|
47
|
+
http_method: EHttpMethod;
|
|
48
|
+
config?: {
|
|
49
|
+
path?: string;
|
|
50
|
+
[key: string]: unknown;
|
|
51
|
+
};
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=connectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/types/connectors.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var EHttpMethod;
|
|
2
|
+
(function (EHttpMethod) {
|
|
3
|
+
EHttpMethod["GET"] = "GET";
|
|
4
|
+
EHttpMethod["POST"] = "POST";
|
|
5
|
+
EHttpMethod["PUT"] = "PUT";
|
|
6
|
+
EHttpMethod["PATCH"] = "PATCH";
|
|
7
|
+
EHttpMethod["DELETE"] = "DELETE";
|
|
8
|
+
})(EHttpMethod || (EHttpMethod = {}));
|
|
9
|
+
//# sourceMappingURL=connectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/types/connectors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export type GuardrailTarget = 'generative' | 'connector';
|
|
2
|
+
export type GuardrailEngine = 'native' | 'rego' | 'webhook';
|
|
3
|
+
export type GuardrailMode = 'pre_call' | 'post_call' | 'during_call';
|
|
4
|
+
export interface IGuardrailImplementationPayload {
|
|
5
|
+
engine: GuardrailEngine;
|
|
6
|
+
source: string;
|
|
7
|
+
config?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface IGuardrailCreateRequest {
|
|
10
|
+
id?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
target: GuardrailTarget[];
|
|
14
|
+
mode: GuardrailMode;
|
|
15
|
+
implementation: IGuardrailImplementationPayload;
|
|
16
|
+
}
|
|
17
|
+
export interface IGuardrailSubmissionSummary {
|
|
18
|
+
active: number;
|
|
19
|
+
pending_review: number;
|
|
20
|
+
rejected: number;
|
|
21
|
+
total: number;
|
|
22
|
+
}
|
|
23
|
+
export interface IGuardrailSubmissionListItem {
|
|
24
|
+
guardrail_name: string;
|
|
25
|
+
llm_params: Record<string, unknown>;
|
|
26
|
+
reviewed_at?: string;
|
|
27
|
+
status: string;
|
|
28
|
+
submitted_at: string;
|
|
29
|
+
submitted_by_email: string;
|
|
30
|
+
submitted_by_user_id: string;
|
|
31
|
+
team_guardrail: boolean;
|
|
32
|
+
team_id: string;
|
|
33
|
+
updated_at: string;
|
|
34
|
+
guardrail_id?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface IGuardrailSubmissionsListResponse {
|
|
37
|
+
submissions: IGuardrailSubmissionListItem[];
|
|
38
|
+
summary: IGuardrailSubmissionSummary;
|
|
39
|
+
}
|
|
40
|
+
export interface IGuardrailSubmissionDetail {
|
|
41
|
+
created_at: string;
|
|
42
|
+
guardrail_id: string;
|
|
43
|
+
guardrail_info: Record<string, unknown>;
|
|
44
|
+
guardrail_name: string;
|
|
45
|
+
llm_params: Record<string, unknown>;
|
|
46
|
+
reviewed_at?: string;
|
|
47
|
+
status: string;
|
|
48
|
+
submitted_at: string;
|
|
49
|
+
submitted_by_email: string;
|
|
50
|
+
submitted_by_user_id: string;
|
|
51
|
+
team_guardrail: boolean;
|
|
52
|
+
team_id: string;
|
|
53
|
+
updated_at: string;
|
|
54
|
+
}
|
|
55
|
+
export interface IGuardrailSubmissionsQuery {
|
|
56
|
+
status?: string;
|
|
57
|
+
team_id?: string;
|
|
58
|
+
search?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface IGuardrailListImplementation {
|
|
61
|
+
config?: {
|
|
62
|
+
action?: string;
|
|
63
|
+
entities?: string[];
|
|
64
|
+
[key: string]: unknown;
|
|
65
|
+
};
|
|
66
|
+
engine?: GuardrailEngine;
|
|
67
|
+
id?: string;
|
|
68
|
+
mode?: GuardrailMode;
|
|
69
|
+
source?: string;
|
|
70
|
+
[key: string]: unknown;
|
|
71
|
+
}
|
|
72
|
+
export interface IGuardrailsListItem {
|
|
73
|
+
description?: string;
|
|
74
|
+
id: string;
|
|
75
|
+
mode?: GuardrailMode;
|
|
76
|
+
implementation: IGuardrailListImplementation;
|
|
77
|
+
name: string;
|
|
78
|
+
target: GuardrailTarget[];
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
export interface IGuardrailsListResponse {
|
|
82
|
+
guardrails: IGuardrailsListItem[];
|
|
83
|
+
total: number;
|
|
84
|
+
}
|
|
85
|
+
export type IGuardrailSubmissionActionResponse = Record<string, boolean>;
|
|
86
|
+
//# sourceMappingURL=guardrails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/types/guardrails.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/types/guardrails.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":""}
|