@breign/client 1.0.127 → 1.0.128

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.
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { AttachmentCreateRequestUio, AttachmentCreateResponseUio, AttachmentDetailsResponseUio, AttachmentProcessedRequestUio, BodyWithMessageUio, ContextLocationRequestUio, ContextUio, ConversationSummaryUio, CreateCustomVariable200ResponseUio, UpdateConversationTitleRequestUio } from '../models/index';
13
+ import type { AttachmentCreateRequestUio, AttachmentCreateResponseUio, AttachmentDetailsResponseUio, AttachmentProcessedRequestUio, BodyWithMessageUio, ContextLocationRequestUio, ContextUio, ConversationSummaryUio, CreateCustomVariable200ResponseUio, UpdateConversationTitleRequestUio, WorkspaceFileContentUio, WorkspaceFileEntryUio } from '../models/index';
14
14
  export interface ArchiveConversationByIdRequest {
15
15
  conversationId: string;
16
16
  }
@@ -35,6 +35,10 @@ export interface DeleteContextCustomVariableKeyRequest {
35
35
  conversationId: string;
36
36
  key: string;
37
37
  }
38
+ export interface DeleteConversationWorkspaceFileRequest {
39
+ conversationId: string;
40
+ path: string;
41
+ }
38
42
  export interface GetAttachmentRequest {
39
43
  conversationId: string;
40
44
  attachmentId: string;
@@ -45,6 +49,10 @@ export interface GetContextRequest {
45
49
  export interface GetContextCustomVariableRequest {
46
50
  conversationId: string;
47
51
  }
52
+ export interface GetConversationWorkspaceFileContentRequest {
53
+ conversationId: string;
54
+ path: string;
55
+ }
48
56
  export interface GetConversationsRequest {
49
57
  providerSource: GetConversationsProviderSourceEnum;
50
58
  organizationId?: string;
@@ -53,6 +61,9 @@ export interface GetConversationsRequest {
53
61
  period?: GetConversationsPeriodEnum;
54
62
  messageReaction?: GetConversationsMessageReactionEnum;
55
63
  }
64
+ export interface ListConversationWorkspaceFilesRequest {
65
+ conversationId: string;
66
+ }
56
67
  export interface MarkAttachmentProcessedRequest {
57
68
  conversationId: string;
58
69
  attachmentId: string;
@@ -140,6 +151,16 @@ export declare class ConversationsApi extends runtime.BaseAPI {
140
151
  * Delete a custom variable key from the context of a conversation
141
152
  */
142
153
  deleteContextCustomVariableKey(conversationId: string, key: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
154
+ /**
155
+ * Manual purge by the user. Deletes the path and, when it is a directory, everything below it. Any running sandbox session for this conversation is discarded at the same time, so the agent cannot write the file back from a stale in-memory copy.
156
+ * Delete a file from a conversation workspace
157
+ */
158
+ deleteConversationWorkspaceFileRaw(requestParameters: DeleteConversationWorkspaceFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
159
+ /**
160
+ * Manual purge by the user. Deletes the path and, when it is a directory, everything below it. Any running sandbox session for this conversation is discarded at the same time, so the agent cannot write the file back from a stale in-memory copy.
161
+ * Delete a file from a conversation workspace
162
+ */
163
+ deleteConversationWorkspaceFile(conversationId: string, path: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
143
164
  /**
144
165
  * Get a specific attachment by its ID from the context of a conversation.
145
166
  * Retrieve an attachment from a conversation context
@@ -174,6 +195,16 @@ export declare class ConversationsApi extends runtime.BaseAPI {
174
195
  getContextCustomVariable(conversationId: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{
175
196
  [key: string]: string;
176
197
  }>;
198
+ /**
199
+ * Returns the CURRENT state of the file, read straight from the store. There is no versioning, so consulting an older message still returns the file as it is now. The content is always UTF-8 text.
200
+ * Read the content of a conversation workspace file
201
+ */
202
+ getConversationWorkspaceFileContentRaw(requestParameters: GetConversationWorkspaceFileContentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WorkspaceFileContentUio>>;
203
+ /**
204
+ * Returns the CURRENT state of the file, read straight from the store. There is no versioning, so consulting an older message still returns the file as it is now. The content is always UTF-8 text.
205
+ * Read the content of a conversation workspace file
206
+ */
207
+ getConversationWorkspaceFileContent(conversationId: string, path: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WorkspaceFileContentUio>;
177
208
  /**
178
209
  * Retrieve a list of conversations for the authenticated user.
179
210
  * List conversations
@@ -184,6 +215,16 @@ export declare class ConversationsApi extends runtime.BaseAPI {
184
215
  * List conversations
185
216
  */
186
217
  getConversations(providerSource: GetConversationsProviderSourceEnum, organizationId?: string, page?: number, limit?: number, period?: GetConversationsPeriodEnum, messageReaction?: GetConversationsMessageReactionEnum, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<ConversationSummaryUio>>;
218
+ /**
219
+ * Reads the persisted workspace of the conversation directly from the store — no sandbox is started. The content is never returned here; use the content endpoint for that. Files whose name starts with a dot are persisted but hidden from this listing. The current usage is returned in the X-Workspace-File-Count and X-Workspace-Total-Bytes headers.
220
+ * List the files of a conversation workspace
221
+ */
222
+ listConversationWorkspaceFilesRaw(requestParameters: ListConversationWorkspaceFilesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<WorkspaceFileEntryUio>>>;
223
+ /**
224
+ * Reads the persisted workspace of the conversation directly from the store — no sandbox is started. The content is never returned here; use the content endpoint for that. Files whose name starts with a dot are persisted but hidden from this listing. The current usage is returned in the X-Workspace-File-Count and X-Workspace-Total-Bytes headers.
225
+ * List the files of a conversation workspace
226
+ */
227
+ listConversationWorkspaceFiles(conversationId: string, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<WorkspaceFileEntryUio>>;
187
228
  /**
188
229
  * Internal callback endpoint called when attachment processing is complete. Réservé au service de documents : tout autre appelant reçoit un 403. L\'attachment doit être en état `PROCESSING`.
189
230
  * Mark a conversation attachment as processed
@@ -239,6 +239,40 @@ class ConversationsApi extends runtime.BaseAPI {
239
239
  async deleteContextCustomVariableKey(conversationId, key, initOverrides) {
240
240
  await this.deleteContextCustomVariableKeyRaw({ conversationId: conversationId, key: key }, initOverrides);
241
241
  }
242
+ /**
243
+ * Manual purge by the user. Deletes the path and, when it is a directory, everything below it. Any running sandbox session for this conversation is discarded at the same time, so the agent cannot write the file back from a stale in-memory copy.
244
+ * Delete a file from a conversation workspace
245
+ */
246
+ async deleteConversationWorkspaceFileRaw(requestParameters, initOverrides) {
247
+ if (requestParameters['conversationId'] == null) {
248
+ throw new runtime.RequiredError('conversationId', 'Required parameter "conversationId" was null or undefined when calling deleteConversationWorkspaceFile().');
249
+ }
250
+ if (requestParameters['path'] == null) {
251
+ throw new runtime.RequiredError('path', 'Required parameter "path" was null or undefined when calling deleteConversationWorkspaceFile().');
252
+ }
253
+ const queryParameters = {};
254
+ if (requestParameters['path'] != null) {
255
+ queryParameters['path'] = requestParameters['path'];
256
+ }
257
+ const headerParameters = {};
258
+ if (this.configuration && this.configuration.apiKey) {
259
+ headerParameters["X-API-Key"] = await this.configuration.apiKey("X-API-Key"); // ApiKeyAuth authentication
260
+ }
261
+ const response = await this.request({
262
+ path: `/conversations/{conversationId}/workspace/files`.replace(`{${"conversationId"}}`, encodeURIComponent(String(requestParameters['conversationId']))),
263
+ method: 'DELETE',
264
+ headers: headerParameters,
265
+ query: queryParameters,
266
+ }, initOverrides);
267
+ return new runtime.VoidApiResponse(response);
268
+ }
269
+ /**
270
+ * Manual purge by the user. Deletes the path and, when it is a directory, everything below it. Any running sandbox session for this conversation is discarded at the same time, so the agent cannot write the file back from a stale in-memory copy.
271
+ * Delete a file from a conversation workspace
272
+ */
273
+ async deleteConversationWorkspaceFile(conversationId, path, initOverrides) {
274
+ await this.deleteConversationWorkspaceFileRaw({ conversationId: conversationId, path: path }, initOverrides);
275
+ }
242
276
  /**
243
277
  * Get a specific attachment by its ID from the context of a conversation.
244
278
  * Retrieve an attachment from a conversation context
@@ -329,6 +363,41 @@ class ConversationsApi extends runtime.BaseAPI {
329
363
  const response = await this.getContextCustomVariableRaw({ conversationId: conversationId }, initOverrides);
330
364
  return await response.value();
331
365
  }
366
+ /**
367
+ * Returns the CURRENT state of the file, read straight from the store. There is no versioning, so consulting an older message still returns the file as it is now. The content is always UTF-8 text.
368
+ * Read the content of a conversation workspace file
369
+ */
370
+ async getConversationWorkspaceFileContentRaw(requestParameters, initOverrides) {
371
+ if (requestParameters['conversationId'] == null) {
372
+ throw new runtime.RequiredError('conversationId', 'Required parameter "conversationId" was null or undefined when calling getConversationWorkspaceFileContent().');
373
+ }
374
+ if (requestParameters['path'] == null) {
375
+ throw new runtime.RequiredError('path', 'Required parameter "path" was null or undefined when calling getConversationWorkspaceFileContent().');
376
+ }
377
+ const queryParameters = {};
378
+ if (requestParameters['path'] != null) {
379
+ queryParameters['path'] = requestParameters['path'];
380
+ }
381
+ const headerParameters = {};
382
+ if (this.configuration && this.configuration.apiKey) {
383
+ headerParameters["X-API-Key"] = await this.configuration.apiKey("X-API-Key"); // ApiKeyAuth authentication
384
+ }
385
+ const response = await this.request({
386
+ path: `/conversations/{conversationId}/workspace/files/content`.replace(`{${"conversationId"}}`, encodeURIComponent(String(requestParameters['conversationId']))),
387
+ method: 'GET',
388
+ headers: headerParameters,
389
+ query: queryParameters,
390
+ }, initOverrides);
391
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.WorkspaceFileContentUioFromJSON)(jsonValue));
392
+ }
393
+ /**
394
+ * Returns the CURRENT state of the file, read straight from the store. There is no versioning, so consulting an older message still returns the file as it is now. The content is always UTF-8 text.
395
+ * Read the content of a conversation workspace file
396
+ */
397
+ async getConversationWorkspaceFileContent(conversationId, path, initOverrides) {
398
+ const response = await this.getConversationWorkspaceFileContentRaw({ conversationId: conversationId, path: path }, initOverrides);
399
+ return await response.value();
400
+ }
332
401
  /**
333
402
  * Retrieve a list of conversations for the authenticated user.
334
403
  * List conversations
@@ -376,6 +445,35 @@ class ConversationsApi extends runtime.BaseAPI {
376
445
  const response = await this.getConversationsRaw({ providerSource: providerSource, organizationId: organizationId, page: page, limit: limit, period: period, messageReaction: messageReaction }, initOverrides);
377
446
  return await response.value();
378
447
  }
448
+ /**
449
+ * Reads the persisted workspace of the conversation directly from the store — no sandbox is started. The content is never returned here; use the content endpoint for that. Files whose name starts with a dot are persisted but hidden from this listing. The current usage is returned in the X-Workspace-File-Count and X-Workspace-Total-Bytes headers.
450
+ * List the files of a conversation workspace
451
+ */
452
+ async listConversationWorkspaceFilesRaw(requestParameters, initOverrides) {
453
+ if (requestParameters['conversationId'] == null) {
454
+ throw new runtime.RequiredError('conversationId', 'Required parameter "conversationId" was null or undefined when calling listConversationWorkspaceFiles().');
455
+ }
456
+ const queryParameters = {};
457
+ const headerParameters = {};
458
+ if (this.configuration && this.configuration.apiKey) {
459
+ headerParameters["X-API-Key"] = await this.configuration.apiKey("X-API-Key"); // ApiKeyAuth authentication
460
+ }
461
+ const response = await this.request({
462
+ path: `/conversations/{conversationId}/workspace/files`.replace(`{${"conversationId"}}`, encodeURIComponent(String(requestParameters['conversationId']))),
463
+ method: 'GET',
464
+ headers: headerParameters,
465
+ query: queryParameters,
466
+ }, initOverrides);
467
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(index_1.WorkspaceFileEntryUioFromJSON));
468
+ }
469
+ /**
470
+ * Reads the persisted workspace of the conversation directly from the store — no sandbox is started. The content is never returned here; use the content endpoint for that. Files whose name starts with a dot are persisted but hidden from this listing. The current usage is returned in the X-Workspace-File-Count and X-Workspace-Total-Bytes headers.
471
+ * List the files of a conversation workspace
472
+ */
473
+ async listConversationWorkspaceFiles(conversationId, initOverrides) {
474
+ const response = await this.listConversationWorkspaceFilesRaw({ conversationId: conversationId }, initOverrides);
475
+ return await response.value();
476
+ }
379
477
  /**
380
478
  * Internal callback endpoint called when attachment processing is complete. Réservé au service de documents : tout autre appelant reçoit un 403. L\'attachment doit être en état `PROCESSING`.
381
479
  * Mark a conversation attachment as processed
@@ -16,6 +16,7 @@ import type { PromptInitUio } from './PromptInitUio';
16
16
  import type { SpeechToTextConfigUio } from './SpeechToTextConfigUio';
17
17
  import type { AgentMemoryConfigurationUio } from './AgentMemoryConfigurationUio';
18
18
  import type { AgentPatchEngineUio } from './AgentPatchEngineUio';
19
+ import type { AgentSandboxConfigurationUio } from './AgentSandboxConfigurationUio';
19
20
  import type { AgentTypeUio } from './AgentTypeUio';
20
21
  /**
21
22
  *
@@ -171,6 +172,12 @@ export interface AgentPatchUio {
171
172
  * @memberof AgentPatchUio
172
173
  */
173
174
  speechToText?: SpeechToTextConfigUio;
175
+ /**
176
+ *
177
+ * @type {AgentSandboxConfigurationUio}
178
+ * @memberof AgentPatchUio
179
+ */
180
+ sandboxConfiguration?: AgentSandboxConfigurationUio | null;
174
181
  }
175
182
  /**
176
183
  * Check if a given object implements the AgentPatchUio interface.
@@ -25,6 +25,7 @@ const PromptInitUio_1 = require("./PromptInitUio");
25
25
  const SpeechToTextConfigUio_1 = require("./SpeechToTextConfigUio");
26
26
  const AgentMemoryConfigurationUio_1 = require("./AgentMemoryConfigurationUio");
27
27
  const AgentPatchEngineUio_1 = require("./AgentPatchEngineUio");
28
+ const AgentSandboxConfigurationUio_1 = require("./AgentSandboxConfigurationUio");
28
29
  const AgentTypeUio_1 = require("./AgentTypeUio");
29
30
  /**
30
31
  * Check if a given object implements the AgentPatchUio interface.
@@ -64,6 +65,7 @@ function AgentPatchUioFromJSONTyped(json, ignoreDiscriminator) {
64
65
  'memoryConfiguration': json['memoryConfiguration'] == null ? undefined : (0, AgentMemoryConfigurationUio_1.AgentMemoryConfigurationUioFromJSON)(json['memoryConfiguration']),
65
66
  'contextualKnowledgeConversation': json['contextualKnowledgeConversation'] == null ? undefined : (0, ContextualKnowledgeConversationUio_1.ContextualKnowledgeConversationUioFromJSON)(json['contextualKnowledgeConversation']),
66
67
  'speechToText': json['speechToText'] == null ? undefined : (0, SpeechToTextConfigUio_1.SpeechToTextConfigUioFromJSON)(json['speechToText']),
68
+ 'sandboxConfiguration': json['sandboxConfiguration'] == null ? undefined : (0, AgentSandboxConfigurationUio_1.AgentSandboxConfigurationUioFromJSON)(json['sandboxConfiguration']),
67
69
  };
68
70
  }
69
71
  function AgentPatchUioToJSON(json) {
@@ -98,5 +100,6 @@ function AgentPatchUioToJSONTyped(value, ignoreDiscriminator = false) {
98
100
  'memoryConfiguration': (0, AgentMemoryConfigurationUio_1.AgentMemoryConfigurationUioToJSON)(value['memoryConfiguration']),
99
101
  'contextualKnowledgeConversation': (0, ContextualKnowledgeConversationUio_1.ContextualKnowledgeConversationUioToJSON)(value['contextualKnowledgeConversation']),
100
102
  'speechToText': (0, SpeechToTextConfigUio_1.SpeechToTextConfigUioToJSON)(value['speechToText']),
103
+ 'sandboxConfiguration': (0, AgentSandboxConfigurationUio_1.AgentSandboxConfigurationUioToJSON)(value['sandboxConfiguration']),
101
104
  };
102
105
  }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * brain-client
3
+ * Api ands models for brain-app and brain-app
4
+ *
5
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { AgentSandboxNetworkConfigurationUio } from './AgentSandboxNetworkConfigurationUio';
13
+ /**
14
+ * Per-agent activation of the bash sandbox and of its two risky capabilities. Three separate switches because the three risk surfaces are unrelated. The server configuration can only narrow this: an agent may enable, never widen.
15
+ * @export
16
+ * @interface AgentSandboxConfigurationUio
17
+ */
18
+ export interface AgentSandboxConfigurationUio {
19
+ /**
20
+ * Enables the Bash_exec tool for this agent.
21
+ * @type {boolean}
22
+ * @memberof AgentSandboxConfigurationUio
23
+ */
24
+ enabled?: boolean;
25
+ /**
26
+ * Enables python3 inside the sandbox. Also requires the server-side lock; the cost is arbitrary code execution.
27
+ * @type {boolean}
28
+ * @memberof AgentSandboxConfigurationUio
29
+ */
30
+ pythonEnabled?: boolean;
31
+ /**
32
+ *
33
+ * @type {AgentSandboxNetworkConfigurationUio}
34
+ * @memberof AgentSandboxConfigurationUio
35
+ */
36
+ network?: AgentSandboxNetworkConfigurationUio;
37
+ /**
38
+ * Scope of the persisted workspace. Defaults to conversation, which is the only value accepted today: storage supports an agent-and-user scope so enabling it later needs no migration, but the API keeps it closed until that path has run against real traffic.
39
+ * @type {string}
40
+ * @memberof AgentSandboxConfigurationUio
41
+ */
42
+ workspaceScope?: AgentSandboxConfigurationUioWorkspaceScopeEnum;
43
+ }
44
+ /**
45
+ * @export
46
+ */
47
+ export declare const AgentSandboxConfigurationUioWorkspaceScopeEnum: {
48
+ readonly Conversation: "conversation";
49
+ };
50
+ export type AgentSandboxConfigurationUioWorkspaceScopeEnum = typeof AgentSandboxConfigurationUioWorkspaceScopeEnum[keyof typeof AgentSandboxConfigurationUioWorkspaceScopeEnum];
51
+ /**
52
+ * Check if a given object implements the AgentSandboxConfigurationUio interface.
53
+ */
54
+ export declare function instanceOfAgentSandboxConfigurationUio(value: object): value is AgentSandboxConfigurationUio;
55
+ export declare function AgentSandboxConfigurationUioFromJSON(json: any): AgentSandboxConfigurationUio;
56
+ export declare function AgentSandboxConfigurationUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): AgentSandboxConfigurationUio;
57
+ export declare function AgentSandboxConfigurationUioToJSON(json: any): AgentSandboxConfigurationUio;
58
+ export declare function AgentSandboxConfigurationUioToJSONTyped(value?: AgentSandboxConfigurationUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * brain-client
6
+ * Api ands models for brain-app and brain-app
7
+ *
8
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AgentSandboxConfigurationUioWorkspaceScopeEnum = void 0;
17
+ exports.instanceOfAgentSandboxConfigurationUio = instanceOfAgentSandboxConfigurationUio;
18
+ exports.AgentSandboxConfigurationUioFromJSON = AgentSandboxConfigurationUioFromJSON;
19
+ exports.AgentSandboxConfigurationUioFromJSONTyped = AgentSandboxConfigurationUioFromJSONTyped;
20
+ exports.AgentSandboxConfigurationUioToJSON = AgentSandboxConfigurationUioToJSON;
21
+ exports.AgentSandboxConfigurationUioToJSONTyped = AgentSandboxConfigurationUioToJSONTyped;
22
+ const AgentSandboxNetworkConfigurationUio_1 = require("./AgentSandboxNetworkConfigurationUio");
23
+ /**
24
+ * @export
25
+ */
26
+ exports.AgentSandboxConfigurationUioWorkspaceScopeEnum = {
27
+ Conversation: 'conversation'
28
+ };
29
+ /**
30
+ * Check if a given object implements the AgentSandboxConfigurationUio interface.
31
+ */
32
+ function instanceOfAgentSandboxConfigurationUio(value) {
33
+ return true;
34
+ }
35
+ function AgentSandboxConfigurationUioFromJSON(json) {
36
+ return AgentSandboxConfigurationUioFromJSONTyped(json, false);
37
+ }
38
+ function AgentSandboxConfigurationUioFromJSONTyped(json, ignoreDiscriminator) {
39
+ if (json == null) {
40
+ return json;
41
+ }
42
+ return {
43
+ 'enabled': json['enabled'] == null ? undefined : json['enabled'],
44
+ 'pythonEnabled': json['pythonEnabled'] == null ? undefined : json['pythonEnabled'],
45
+ 'network': json['network'] == null ? undefined : (0, AgentSandboxNetworkConfigurationUio_1.AgentSandboxNetworkConfigurationUioFromJSON)(json['network']),
46
+ 'workspaceScope': json['workspaceScope'] == null ? undefined : json['workspaceScope'],
47
+ };
48
+ }
49
+ function AgentSandboxConfigurationUioToJSON(json) {
50
+ return AgentSandboxConfigurationUioToJSONTyped(json, false);
51
+ }
52
+ function AgentSandboxConfigurationUioToJSONTyped(value, ignoreDiscriminator = false) {
53
+ if (value == null) {
54
+ return value;
55
+ }
56
+ return {
57
+ 'enabled': value['enabled'],
58
+ 'pythonEnabled': value['pythonEnabled'],
59
+ 'network': (0, AgentSandboxNetworkConfigurationUio_1.AgentSandboxNetworkConfigurationUioToJSON)(value['network']),
60
+ 'workspaceScope': value['workspaceScope'],
61
+ };
62
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * brain-client
3
+ * Api ands models for brain-app and brain-app
4
+ *
5
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Enables curl inside the sandbox. Without at least one entry in allowedUrlPrefixes the network stays cut. Private address ranges are always denied, server-side.
14
+ * @export
15
+ * @interface AgentSandboxNetworkConfigurationUio
16
+ */
17
+ export interface AgentSandboxNetworkConfigurationUio {
18
+ /**
19
+ *
20
+ * @type {boolean}
21
+ * @memberof AgentSandboxNetworkConfigurationUio
22
+ */
23
+ enabled?: boolean;
24
+ /**
25
+ *
26
+ * @type {Array<string>}
27
+ * @memberof AgentSandboxNetworkConfigurationUio
28
+ */
29
+ allowedUrlPrefixes?: Array<string>;
30
+ /**
31
+ *
32
+ * @type {Array<string>}
33
+ * @memberof AgentSandboxNetworkConfigurationUio
34
+ */
35
+ allowedMethods?: Array<AgentSandboxNetworkConfigurationUioAllowedMethodsEnum>;
36
+ }
37
+ /**
38
+ * @export
39
+ */
40
+ export declare const AgentSandboxNetworkConfigurationUioAllowedMethodsEnum: {
41
+ readonly Get: "GET";
42
+ readonly Head: "HEAD";
43
+ readonly Post: "POST";
44
+ readonly Put: "PUT";
45
+ readonly Delete: "DELETE";
46
+ readonly Patch: "PATCH";
47
+ readonly Options: "OPTIONS";
48
+ };
49
+ export type AgentSandboxNetworkConfigurationUioAllowedMethodsEnum = typeof AgentSandboxNetworkConfigurationUioAllowedMethodsEnum[keyof typeof AgentSandboxNetworkConfigurationUioAllowedMethodsEnum];
50
+ /**
51
+ * Check if a given object implements the AgentSandboxNetworkConfigurationUio interface.
52
+ */
53
+ export declare function instanceOfAgentSandboxNetworkConfigurationUio(value: object): value is AgentSandboxNetworkConfigurationUio;
54
+ export declare function AgentSandboxNetworkConfigurationUioFromJSON(json: any): AgentSandboxNetworkConfigurationUio;
55
+ export declare function AgentSandboxNetworkConfigurationUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): AgentSandboxNetworkConfigurationUio;
56
+ export declare function AgentSandboxNetworkConfigurationUioToJSON(json: any): AgentSandboxNetworkConfigurationUio;
57
+ export declare function AgentSandboxNetworkConfigurationUioToJSONTyped(value?: AgentSandboxNetworkConfigurationUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * brain-client
6
+ * Api ands models for brain-app and brain-app
7
+ *
8
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AgentSandboxNetworkConfigurationUioAllowedMethodsEnum = void 0;
17
+ exports.instanceOfAgentSandboxNetworkConfigurationUio = instanceOfAgentSandboxNetworkConfigurationUio;
18
+ exports.AgentSandboxNetworkConfigurationUioFromJSON = AgentSandboxNetworkConfigurationUioFromJSON;
19
+ exports.AgentSandboxNetworkConfigurationUioFromJSONTyped = AgentSandboxNetworkConfigurationUioFromJSONTyped;
20
+ exports.AgentSandboxNetworkConfigurationUioToJSON = AgentSandboxNetworkConfigurationUioToJSON;
21
+ exports.AgentSandboxNetworkConfigurationUioToJSONTyped = AgentSandboxNetworkConfigurationUioToJSONTyped;
22
+ /**
23
+ * @export
24
+ */
25
+ exports.AgentSandboxNetworkConfigurationUioAllowedMethodsEnum = {
26
+ Get: 'GET',
27
+ Head: 'HEAD',
28
+ Post: 'POST',
29
+ Put: 'PUT',
30
+ Delete: 'DELETE',
31
+ Patch: 'PATCH',
32
+ Options: 'OPTIONS'
33
+ };
34
+ /**
35
+ * Check if a given object implements the AgentSandboxNetworkConfigurationUio interface.
36
+ */
37
+ function instanceOfAgentSandboxNetworkConfigurationUio(value) {
38
+ return true;
39
+ }
40
+ function AgentSandboxNetworkConfigurationUioFromJSON(json) {
41
+ return AgentSandboxNetworkConfigurationUioFromJSONTyped(json, false);
42
+ }
43
+ function AgentSandboxNetworkConfigurationUioFromJSONTyped(json, ignoreDiscriminator) {
44
+ if (json == null) {
45
+ return json;
46
+ }
47
+ return {
48
+ 'enabled': json['enabled'] == null ? undefined : json['enabled'],
49
+ 'allowedUrlPrefixes': json['allowedUrlPrefixes'] == null ? undefined : json['allowedUrlPrefixes'],
50
+ 'allowedMethods': json['allowedMethods'] == null ? undefined : json['allowedMethods'],
51
+ };
52
+ }
53
+ function AgentSandboxNetworkConfigurationUioToJSON(json) {
54
+ return AgentSandboxNetworkConfigurationUioToJSONTyped(json, false);
55
+ }
56
+ function AgentSandboxNetworkConfigurationUioToJSONTyped(value, ignoreDiscriminator = false) {
57
+ if (value == null) {
58
+ return value;
59
+ }
60
+ return {
61
+ 'enabled': value['enabled'],
62
+ 'allowedUrlPrefixes': value['allowedUrlPrefixes'],
63
+ 'allowedMethods': value['allowedMethods'],
64
+ };
65
+ }
@@ -19,6 +19,7 @@ import type { EngineUio } from './EngineUio';
19
19
  import type { PromptInitUio } from './PromptInitUio';
20
20
  import type { SpeechToTextConfigUio } from './SpeechToTextConfigUio';
21
21
  import type { AgentMemoryConfigurationUio } from './AgentMemoryConfigurationUio';
22
+ import type { AgentSandboxConfigurationUio } from './AgentSandboxConfigurationUio';
22
23
  import type { AgentTypeUio } from './AgentTypeUio';
23
24
  /**
24
25
  *
@@ -192,6 +193,12 @@ export interface AgentUio {
192
193
  * @memberof AgentUio
193
194
  */
194
195
  speechToText?: SpeechToTextConfigUio;
196
+ /**
197
+ *
198
+ * @type {AgentSandboxConfigurationUio}
199
+ * @memberof AgentUio
200
+ */
201
+ sandboxConfiguration?: AgentSandboxConfigurationUio | null;
195
202
  /**
196
203
  *
197
204
  * @type {AgentCreatorUio}
@@ -29,6 +29,7 @@ const EngineUio_1 = require("./EngineUio");
29
29
  const PromptInitUio_1 = require("./PromptInitUio");
30
30
  const SpeechToTextConfigUio_1 = require("./SpeechToTextConfigUio");
31
31
  const AgentMemoryConfigurationUio_1 = require("./AgentMemoryConfigurationUio");
32
+ const AgentSandboxConfigurationUio_1 = require("./AgentSandboxConfigurationUio");
32
33
  const AgentTypeUio_1 = require("./AgentTypeUio");
33
34
  /**
34
35
  * @export
@@ -97,6 +98,7 @@ function AgentUioFromJSONTyped(json, ignoreDiscriminator) {
97
98
  'memoryConfiguration': json['memoryConfiguration'] == null ? undefined : (0, AgentMemoryConfigurationUio_1.AgentMemoryConfigurationUioFromJSON)(json['memoryConfiguration']),
98
99
  'contextualKnowledgeConversation': json['contextualKnowledgeConversation'] == null ? undefined : (0, ContextualKnowledgeConversationUio_1.ContextualKnowledgeConversationUioFromJSON)(json['contextualKnowledgeConversation']),
99
100
  'speechToText': json['speechToText'] == null ? undefined : (0, SpeechToTextConfigUio_1.SpeechToTextConfigUioFromJSON)(json['speechToText']),
101
+ 'sandboxConfiguration': json['sandboxConfiguration'] == null ? undefined : (0, AgentSandboxConfigurationUio_1.AgentSandboxConfigurationUioFromJSON)(json['sandboxConfiguration']),
100
102
  'creator': json['creator'] == null ? undefined : (0, AgentCreatorUio_1.AgentCreatorUioFromJSON)(json['creator']),
101
103
  'engineSource': json['engineSource'] == null ? undefined : json['engineSource'],
102
104
  'providerSource': json['providerSource'] == null ? undefined : json['providerSource'],
@@ -138,6 +140,7 @@ function AgentUioToJSONTyped(value, ignoreDiscriminator = false) {
138
140
  'memoryConfiguration': (0, AgentMemoryConfigurationUio_1.AgentMemoryConfigurationUioToJSON)(value['memoryConfiguration']),
139
141
  'contextualKnowledgeConversation': (0, ContextualKnowledgeConversationUio_1.ContextualKnowledgeConversationUioToJSON)(value['contextualKnowledgeConversation']),
140
142
  'speechToText': (0, SpeechToTextConfigUio_1.SpeechToTextConfigUioToJSON)(value['speechToText']),
143
+ 'sandboxConfiguration': (0, AgentSandboxConfigurationUio_1.AgentSandboxConfigurationUioToJSON)(value['sandboxConfiguration']),
141
144
  'creator': (0, AgentCreatorUio_1.AgentCreatorUioToJSON)(value['creator']),
142
145
  'engineSource': value['engineSource'],
143
146
  'providerSource': value['providerSource'],
@@ -71,6 +71,12 @@ export interface ChatMessageUio {
71
71
  * @memberof ChatMessageUio
72
72
  */
73
73
  suggestions?: Array<SuggestionUio>;
74
+ /**
75
+ * Workspace paths written or deleted during the turn that produced this message. Granularity is the turn, not the tool call. Only the last state of a file is kept, so the file reads as it is now, not as it was at this message.
76
+ * @type {Array<string>}
77
+ * @memberof ChatMessageUio
78
+ */
79
+ workspaceFiles?: Array<string>;
74
80
  /**
75
81
  *
76
82
  * @type {string}
@@ -64,6 +64,7 @@ function ChatMessageUioFromJSONTyped(json, ignoreDiscriminator) {
64
64
  'confirmationLink': json['confirmationLink'] == null ? undefined : json['confirmationLink'],
65
65
  'toolResults': json['toolResults'] == null ? undefined : (json['toolResults'].map(ToolResultsUio_1.ToolResultsUioFromJSON)),
66
66
  'suggestions': json['suggestions'] == null ? undefined : (json['suggestions'].map(SuggestionUio_1.SuggestionUioFromJSON)),
67
+ 'workspaceFiles': json['workspaceFiles'] == null ? undefined : json['workspaceFiles'],
67
68
  'flowNode': json['flowNode'] == null ? undefined : json['flowNode'],
68
69
  'flowNodeRequirementsChecked': json['flowNodeRequirementsChecked'] == null ? undefined : json['flowNodeRequirementsChecked'],
69
70
  'flowNodeRequirementsMet': json['flowNodeRequirementsMet'] == null ? undefined : json['flowNodeRequirementsMet'],
@@ -94,6 +95,7 @@ function ChatMessageUioToJSONTyped(value, ignoreDiscriminator = false) {
94
95
  'confirmationLink': value['confirmationLink'],
95
96
  'toolResults': value['toolResults'] == null ? undefined : (value['toolResults'].map(ToolResultsUio_1.ToolResultsUioToJSON)),
96
97
  'suggestions': value['suggestions'] == null ? undefined : (value['suggestions'].map(SuggestionUio_1.SuggestionUioToJSON)),
98
+ 'workspaceFiles': value['workspaceFiles'],
97
99
  'flowNode': value['flowNode'],
98
100
  'flowNodeRequirementsChecked': value['flowNodeRequirementsChecked'],
99
101
  'flowNodeRequirementsMet': value['flowNodeRequirementsMet'],
@@ -82,6 +82,12 @@ export interface ConversationMessagesInnerUio {
82
82
  * @memberof ConversationMessagesInnerUio
83
83
  */
84
84
  toolResults?: Array<ToolResultsUio>;
85
+ /**
86
+ *
87
+ * @type {Array<string>}
88
+ * @memberof ConversationMessagesInnerUio
89
+ */
90
+ workspaceFiles?: Array<string>;
85
91
  }
86
92
  /**
87
93
  * Check if a given object implements the ConversationMessagesInnerUio interface.
@@ -55,6 +55,7 @@ function ConversationMessagesInnerUioFromJSONTyped(json, ignoreDiscriminator) {
55
55
  'audio': json['audio'] == null ? undefined : (json['audio'].map(ChatMessageAudioInnerUio_1.ChatMessageAudioInnerUioFromJSON)),
56
56
  'usage': json['usage'] == null ? undefined : (0, TokenUsageUio_1.TokenUsageUioFromJSON)(json['usage']),
57
57
  'toolResults': json['toolResults'] == null ? undefined : (json['toolResults'].map(ToolResultsUio_1.ToolResultsUioFromJSON)),
58
+ 'workspaceFiles': json['workspaceFiles'] == null ? undefined : json['workspaceFiles'],
58
59
  };
59
60
  }
60
61
  function ConversationMessagesInnerUioToJSON(json) {
@@ -75,5 +76,6 @@ function ConversationMessagesInnerUioToJSONTyped(value, ignoreDiscriminator = fa
75
76
  'audio': value['audio'] == null ? undefined : (value['audio'].map(ChatMessageAudioInnerUio_1.ChatMessageAudioInnerUioToJSON)),
76
77
  'usage': (0, TokenUsageUio_1.TokenUsageUioToJSON)(value['usage']),
77
78
  'toolResults': value['toolResults'] == null ? undefined : (value['toolResults'].map(ToolResultsUio_1.ToolResultsUioToJSON)),
79
+ 'workspaceFiles': value['workspaceFiles'],
78
80
  };
79
81
  }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * brain-client
3
+ * Api ands models for brain-app and brain-app
4
+ *
5
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * The current state of a workspace file. There is no versioning: consulting an older message still returns the file as it is now.
14
+ * @export
15
+ * @interface WorkspaceFileContentUio
16
+ */
17
+ export interface WorkspaceFileContentUio {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof WorkspaceFileContentUio
22
+ */
23
+ path: string;
24
+ /**
25
+ * UTF-8 text. Binary is never stored in a workspace.
26
+ * @type {string}
27
+ * @memberof WorkspaceFileContentUio
28
+ */
29
+ content: string;
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof WorkspaceFileContentUio
34
+ */
35
+ mimeType: string;
36
+ /**
37
+ *
38
+ * @type {number}
39
+ * @memberof WorkspaceFileContentUio
40
+ */
41
+ size: number;
42
+ /**
43
+ *
44
+ * @type {number}
45
+ * @memberof WorkspaceFileContentUio
46
+ */
47
+ version: number;
48
+ /**
49
+ *
50
+ * @type {string}
51
+ * @memberof WorkspaceFileContentUio
52
+ */
53
+ updatedAt: string;
54
+ }
55
+ /**
56
+ * Check if a given object implements the WorkspaceFileContentUio interface.
57
+ */
58
+ export declare function instanceOfWorkspaceFileContentUio(value: object): value is WorkspaceFileContentUio;
59
+ export declare function WorkspaceFileContentUioFromJSON(json: any): WorkspaceFileContentUio;
60
+ export declare function WorkspaceFileContentUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkspaceFileContentUio;
61
+ export declare function WorkspaceFileContentUioToJSON(json: any): WorkspaceFileContentUio;
62
+ export declare function WorkspaceFileContentUioToJSONTyped(value?: WorkspaceFileContentUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * brain-client
6
+ * Api ands models for brain-app and brain-app
7
+ *
8
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfWorkspaceFileContentUio = instanceOfWorkspaceFileContentUio;
17
+ exports.WorkspaceFileContentUioFromJSON = WorkspaceFileContentUioFromJSON;
18
+ exports.WorkspaceFileContentUioFromJSONTyped = WorkspaceFileContentUioFromJSONTyped;
19
+ exports.WorkspaceFileContentUioToJSON = WorkspaceFileContentUioToJSON;
20
+ exports.WorkspaceFileContentUioToJSONTyped = WorkspaceFileContentUioToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the WorkspaceFileContentUio interface.
23
+ */
24
+ function instanceOfWorkspaceFileContentUio(value) {
25
+ if (!('path' in value) || value['path'] === undefined)
26
+ return false;
27
+ if (!('content' in value) || value['content'] === undefined)
28
+ return false;
29
+ if (!('mimeType' in value) || value['mimeType'] === undefined)
30
+ return false;
31
+ if (!('size' in value) || value['size'] === undefined)
32
+ return false;
33
+ if (!('version' in value) || value['version'] === undefined)
34
+ return false;
35
+ if (!('updatedAt' in value) || value['updatedAt'] === undefined)
36
+ return false;
37
+ return true;
38
+ }
39
+ function WorkspaceFileContentUioFromJSON(json) {
40
+ return WorkspaceFileContentUioFromJSONTyped(json, false);
41
+ }
42
+ function WorkspaceFileContentUioFromJSONTyped(json, ignoreDiscriminator) {
43
+ if (json == null) {
44
+ return json;
45
+ }
46
+ return {
47
+ 'path': json['path'],
48
+ 'content': json['content'],
49
+ 'mimeType': json['mimeType'],
50
+ 'size': json['size'],
51
+ 'version': json['version'],
52
+ 'updatedAt': json['updatedAt'],
53
+ };
54
+ }
55
+ function WorkspaceFileContentUioToJSON(json) {
56
+ return WorkspaceFileContentUioToJSONTyped(json, false);
57
+ }
58
+ function WorkspaceFileContentUioToJSONTyped(value, ignoreDiscriminator = false) {
59
+ if (value == null) {
60
+ return value;
61
+ }
62
+ return {
63
+ 'path': value['path'],
64
+ 'content': value['content'],
65
+ 'mimeType': value['mimeType'],
66
+ 'size': value['size'],
67
+ 'version': value['version'],
68
+ 'updatedAt': value['updatedAt'],
69
+ };
70
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * brain-client
3
+ * Api ands models for brain-app and brain-app
4
+ *
5
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * One file of a persisted agent workspace. Listing entry only — it never carries the content.
14
+ * @export
15
+ * @interface WorkspaceFileEntryUio
16
+ */
17
+ export interface WorkspaceFileEntryUio {
18
+ /**
19
+ * Absolute path inside the sandbox, always under /home/user.
20
+ * @type {string}
21
+ * @memberof WorkspaceFileEntryUio
22
+ */
23
+ path: string;
24
+ /**
25
+ * UTF-8 byte length of the content.
26
+ * @type {number}
27
+ * @memberof WorkspaceFileEntryUio
28
+ */
29
+ size: number;
30
+ /**
31
+ * Derived from the extension. Always a text type.
32
+ * @type {string}
33
+ * @memberof WorkspaceFileEntryUio
34
+ */
35
+ mimeType: string;
36
+ /**
37
+ * Incremented on every write. Doubles as an ETag: a client already holding this version does not need to fetch the content again.
38
+ * @type {number}
39
+ * @memberof WorkspaceFileEntryUio
40
+ */
41
+ version: number;
42
+ /**
43
+ *
44
+ * @type {string}
45
+ * @memberof WorkspaceFileEntryUio
46
+ */
47
+ updatedAt: string;
48
+ }
49
+ /**
50
+ * Check if a given object implements the WorkspaceFileEntryUio interface.
51
+ */
52
+ export declare function instanceOfWorkspaceFileEntryUio(value: object): value is WorkspaceFileEntryUio;
53
+ export declare function WorkspaceFileEntryUioFromJSON(json: any): WorkspaceFileEntryUio;
54
+ export declare function WorkspaceFileEntryUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): WorkspaceFileEntryUio;
55
+ export declare function WorkspaceFileEntryUioToJSON(json: any): WorkspaceFileEntryUio;
56
+ export declare function WorkspaceFileEntryUioToJSONTyped(value?: WorkspaceFileEntryUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * brain-client
6
+ * Api ands models for brain-app and brain-app
7
+ *
8
+ * The version of the OpenAPI document: 0.0.0-SNAPSHOT
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfWorkspaceFileEntryUio = instanceOfWorkspaceFileEntryUio;
17
+ exports.WorkspaceFileEntryUioFromJSON = WorkspaceFileEntryUioFromJSON;
18
+ exports.WorkspaceFileEntryUioFromJSONTyped = WorkspaceFileEntryUioFromJSONTyped;
19
+ exports.WorkspaceFileEntryUioToJSON = WorkspaceFileEntryUioToJSON;
20
+ exports.WorkspaceFileEntryUioToJSONTyped = WorkspaceFileEntryUioToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the WorkspaceFileEntryUio interface.
23
+ */
24
+ function instanceOfWorkspaceFileEntryUio(value) {
25
+ if (!('path' in value) || value['path'] === undefined)
26
+ return false;
27
+ if (!('size' in value) || value['size'] === undefined)
28
+ return false;
29
+ if (!('mimeType' in value) || value['mimeType'] === undefined)
30
+ return false;
31
+ if (!('version' in value) || value['version'] === undefined)
32
+ return false;
33
+ if (!('updatedAt' in value) || value['updatedAt'] === undefined)
34
+ return false;
35
+ return true;
36
+ }
37
+ function WorkspaceFileEntryUioFromJSON(json) {
38
+ return WorkspaceFileEntryUioFromJSONTyped(json, false);
39
+ }
40
+ function WorkspaceFileEntryUioFromJSONTyped(json, ignoreDiscriminator) {
41
+ if (json == null) {
42
+ return json;
43
+ }
44
+ return {
45
+ 'path': json['path'],
46
+ 'size': json['size'],
47
+ 'mimeType': json['mimeType'],
48
+ 'version': json['version'],
49
+ 'updatedAt': json['updatedAt'],
50
+ };
51
+ }
52
+ function WorkspaceFileEntryUioToJSON(json) {
53
+ return WorkspaceFileEntryUioToJSONTyped(json, false);
54
+ }
55
+ function WorkspaceFileEntryUioToJSONTyped(value, ignoreDiscriminator = false) {
56
+ if (value == null) {
57
+ return value;
58
+ }
59
+ return {
60
+ 'path': value['path'],
61
+ 'size': value['size'],
62
+ 'mimeType': value['mimeType'],
63
+ 'version': value['version'],
64
+ 'updatedAt': value['updatedAt'],
65
+ };
66
+ }
@@ -39,6 +39,8 @@ export * from './AgentPatchUio';
39
39
  export * from './AgentRefUio';
40
40
  export * from './AgentRequestUio';
41
41
  export * from './AgentRoleDetailsUio';
42
+ export * from './AgentSandboxConfigurationUio';
43
+ export * from './AgentSandboxNetworkConfigurationUio';
42
44
  export * from './AgentSubscriptionTextInteractionsUio';
43
45
  export * from './AgentSubscriptionUio';
44
46
  export * from './AgentTokenBreakdownUio';
@@ -380,3 +382,5 @@ export * from './UserIdentifierRequestUio';
380
382
  export * from './UserIdentifierUio';
381
383
  export * from './UserLockRequestUio';
382
384
  export * from './UserUpdateRequestUio';
385
+ export * from './WorkspaceFileContentUio';
386
+ export * from './WorkspaceFileEntryUio';
@@ -57,6 +57,8 @@ __exportStar(require("./AgentPatchUio"), exports);
57
57
  __exportStar(require("./AgentRefUio"), exports);
58
58
  __exportStar(require("./AgentRequestUio"), exports);
59
59
  __exportStar(require("./AgentRoleDetailsUio"), exports);
60
+ __exportStar(require("./AgentSandboxConfigurationUio"), exports);
61
+ __exportStar(require("./AgentSandboxNetworkConfigurationUio"), exports);
60
62
  __exportStar(require("./AgentSubscriptionTextInteractionsUio"), exports);
61
63
  __exportStar(require("./AgentSubscriptionUio"), exports);
62
64
  __exportStar(require("./AgentTokenBreakdownUio"), exports);
@@ -398,3 +400,5 @@ __exportStar(require("./UserIdentifierRequestUio"), exports);
398
400
  __exportStar(require("./UserIdentifierUio"), exports);
399
401
  __exportStar(require("./UserLockRequestUio"), exports);
400
402
  __exportStar(require("./UserUpdateRequestUio"), exports);
403
+ __exportStar(require("./WorkspaceFileContentUio"), exports);
404
+ __exportStar(require("./WorkspaceFileEntryUio"), exports);
package/dist/openapi.json CHANGED
@@ -5666,6 +5666,161 @@
5666
5666
  "tags" : [ "conversations" ]
5667
5667
  }
5668
5668
  },
5669
+ "/conversations/{conversationId}/workspace/files" : {
5670
+ "delete" : {
5671
+ "description" : "Manual purge by the user. Deletes the path and, when it is a directory, everything below it. Any running sandbox session for this conversation is discarded at the same time, so the agent cannot write the file back from a stale in-memory copy.",
5672
+ "operationId" : "deleteConversationWorkspaceFile",
5673
+ "parameters" : [ {
5674
+ "description" : "The ID of the conversation",
5675
+ "in" : "path",
5676
+ "name" : "conversationId",
5677
+ "required" : true,
5678
+ "schema" : {
5679
+ "type" : "string"
5680
+ }
5681
+ }, {
5682
+ "description" : "Absolute path of the workspace file, always under /home/user. Rejected with 400 when it leaves that root, contains a traversal, or uses characters outside [A-Za-z0-9._-].",
5683
+ "example" : "/home/user/rapport.md",
5684
+ "in" : "query",
5685
+ "name" : "path",
5686
+ "required" : true,
5687
+ "schema" : {
5688
+ "type" : "string"
5689
+ }
5690
+ } ],
5691
+ "responses" : {
5692
+ "204" : {
5693
+ "description" : "Successfully deleted the workspace file."
5694
+ },
5695
+ "400" : {
5696
+ "description" : "Missing or invalid path"
5697
+ },
5698
+ "401" : {
5699
+ "description" : "Unauthorized"
5700
+ },
5701
+ "403" : {
5702
+ "description" : "Forbidden - User cannot access this conversation"
5703
+ },
5704
+ "404" : {
5705
+ "description" : "Conversation not found"
5706
+ },
5707
+ "500" : {
5708
+ "description" : "Server error"
5709
+ }
5710
+ },
5711
+ "summary" : "Delete a file from a conversation workspace",
5712
+ "tags" : [ "conversations" ]
5713
+ },
5714
+ "get" : {
5715
+ "description" : "Reads the persisted workspace of the conversation directly from the store — no sandbox is started. The content is never returned here; use the content endpoint for that. Files whose name starts with a dot are persisted but hidden from this listing. The current usage is returned in the X-Workspace-File-Count and X-Workspace-Total-Bytes headers.",
5716
+ "operationId" : "listConversationWorkspaceFiles",
5717
+ "parameters" : [ {
5718
+ "description" : "The ID of the conversation",
5719
+ "in" : "path",
5720
+ "name" : "conversationId",
5721
+ "required" : true,
5722
+ "schema" : {
5723
+ "type" : "string"
5724
+ }
5725
+ } ],
5726
+ "responses" : {
5727
+ "200" : {
5728
+ "content" : {
5729
+ "application/json" : {
5730
+ "schema" : {
5731
+ "items" : {
5732
+ "$ref" : "#/components/schemas/WorkspaceFileEntry"
5733
+ },
5734
+ "type" : "array"
5735
+ }
5736
+ }
5737
+ },
5738
+ "description" : "Successfully retrieved the workspace listing.",
5739
+ "headers" : {
5740
+ "X-Workspace-File-Count" : {
5741
+ "description" : "Number of files currently persisted for this workspace.",
5742
+ "schema" : {
5743
+ "type" : "integer"
5744
+ }
5745
+ },
5746
+ "X-Workspace-Total-Bytes" : {
5747
+ "description" : "Total UTF-8 byte size currently persisted for this workspace.",
5748
+ "schema" : {
5749
+ "type" : "integer"
5750
+ }
5751
+ }
5752
+ }
5753
+ },
5754
+ "401" : {
5755
+ "description" : "Unauthorized"
5756
+ },
5757
+ "403" : {
5758
+ "description" : "Forbidden - User cannot access this conversation"
5759
+ },
5760
+ "404" : {
5761
+ "description" : "Conversation not found"
5762
+ },
5763
+ "500" : {
5764
+ "description" : "Server error"
5765
+ }
5766
+ },
5767
+ "summary" : "List the files of a conversation workspace",
5768
+ "tags" : [ "conversations" ]
5769
+ }
5770
+ },
5771
+ "/conversations/{conversationId}/workspace/files/content" : {
5772
+ "get" : {
5773
+ "description" : "Returns the CURRENT state of the file, read straight from the store. There is no versioning, so consulting an older message still returns the file as it is now. The content is always UTF-8 text.",
5774
+ "operationId" : "getConversationWorkspaceFileContent",
5775
+ "parameters" : [ {
5776
+ "description" : "The ID of the conversation",
5777
+ "in" : "path",
5778
+ "name" : "conversationId",
5779
+ "required" : true,
5780
+ "schema" : {
5781
+ "type" : "string"
5782
+ }
5783
+ }, {
5784
+ "description" : "Absolute path of the workspace file, always under /home/user. Rejected with 400 when it leaves that root, contains a traversal, or uses characters outside [A-Za-z0-9._-].",
5785
+ "example" : "/home/user/rapport.md",
5786
+ "in" : "query",
5787
+ "name" : "path",
5788
+ "required" : true,
5789
+ "schema" : {
5790
+ "type" : "string"
5791
+ }
5792
+ } ],
5793
+ "responses" : {
5794
+ "200" : {
5795
+ "content" : {
5796
+ "application/json" : {
5797
+ "schema" : {
5798
+ "$ref" : "#/components/schemas/WorkspaceFileContent"
5799
+ }
5800
+ }
5801
+ },
5802
+ "description" : "Successfully retrieved the file content."
5803
+ },
5804
+ "400" : {
5805
+ "description" : "Missing or invalid path"
5806
+ },
5807
+ "401" : {
5808
+ "description" : "Unauthorized"
5809
+ },
5810
+ "403" : {
5811
+ "description" : "Forbidden - User cannot access this conversation"
5812
+ },
5813
+ "404" : {
5814
+ "description" : "Conversation or workspace file not found"
5815
+ },
5816
+ "500" : {
5817
+ "description" : "Server error"
5818
+ }
5819
+ },
5820
+ "summary" : "Read the content of a conversation workspace file",
5821
+ "tags" : [ "conversations" ]
5822
+ }
5823
+ },
5669
5824
  "/engines/default" : {
5670
5825
  "put" : {
5671
5826
  "description" : "Update the default engine for an organization",
@@ -12848,6 +13003,16 @@
12848
13003
  "type" : "string"
12849
13004
  }
12850
13005
  },
13006
+ "workspacePathQuery" : {
13007
+ "description" : "Absolute path of the workspace file, always under /home/user. Rejected with 400 when it leaves that root, contains a traversal, or uses characters outside [A-Za-z0-9._-].",
13008
+ "example" : "/home/user/rapport.md",
13009
+ "in" : "query",
13010
+ "name" : "path",
13011
+ "required" : true,
13012
+ "schema" : {
13013
+ "type" : "string"
13014
+ }
13015
+ },
12851
13016
  "organizationIdPath" : {
12852
13017
  "description" : "ID of the organization",
12853
13018
  "in" : "path",
@@ -13336,6 +13501,12 @@
13336
13501
  "speechToText" : {
13337
13502
  "$ref" : "#/components/schemas/SpeechToTextConfig"
13338
13503
  },
13504
+ "sandboxConfiguration" : {
13505
+ "allOf" : [ {
13506
+ "$ref" : "#/components/schemas/AgentSandboxConfiguration"
13507
+ } ],
13508
+ "nullable" : true
13509
+ },
13339
13510
  "creator" : {
13340
13511
  "$ref" : "#/components/schemas/Agent_creator"
13341
13512
  },
@@ -13478,6 +13649,52 @@
13478
13649
  "required" : [ "backend", "enabled", "ttlDays" ],
13479
13650
  "type" : "object"
13480
13651
  },
13652
+ "AgentSandboxConfiguration" : {
13653
+ "description" : "Per-agent activation of the bash sandbox and of its two risky capabilities. Three separate switches because the three risk surfaces are unrelated. The server configuration can only narrow this: an agent may enable, never widen.",
13654
+ "properties" : {
13655
+ "enabled" : {
13656
+ "description" : "Enables the Bash_exec tool for this agent.",
13657
+ "type" : "boolean"
13658
+ },
13659
+ "pythonEnabled" : {
13660
+ "description" : "Enables python3 inside the sandbox. Also requires the server-side lock; the cost is arbitrary code execution.",
13661
+ "type" : "boolean"
13662
+ },
13663
+ "network" : {
13664
+ "$ref" : "#/components/schemas/AgentSandboxNetworkConfiguration"
13665
+ },
13666
+ "workspaceScope" : {
13667
+ "description" : "Scope of the persisted workspace. Defaults to conversation, which is the only value accepted today: storage supports an agent-and-user scope so enabling it later needs no migration, but the API keeps it closed until that path has run against real traffic.",
13668
+ "enum" : [ "conversation" ],
13669
+ "type" : "string"
13670
+ }
13671
+ },
13672
+ "type" : "object"
13673
+ },
13674
+ "AgentSandboxNetworkConfiguration" : {
13675
+ "description" : "Enables curl inside the sandbox. Without at least one entry in allowedUrlPrefixes the network stays cut. Private address ranges are always denied, server-side.",
13676
+ "properties" : {
13677
+ "enabled" : {
13678
+ "type" : "boolean"
13679
+ },
13680
+ "allowedUrlPrefixes" : {
13681
+ "items" : {
13682
+ "description" : "Full origin, path prefix allowed (e.g. https://api.exemple.com/v1/).",
13683
+ "type" : "string"
13684
+ },
13685
+ "maxItems" : 20,
13686
+ "type" : "array"
13687
+ },
13688
+ "allowedMethods" : {
13689
+ "items" : {
13690
+ "enum" : [ "GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS" ],
13691
+ "type" : "string"
13692
+ },
13693
+ "type" : "array"
13694
+ }
13695
+ },
13696
+ "type" : "object"
13697
+ },
13481
13698
  "AgentTool" : {
13482
13699
  "properties" : {
13483
13700
  "id" : {
@@ -13643,6 +13860,12 @@
13643
13860
  },
13644
13861
  "speechToText" : {
13645
13862
  "$ref" : "#/components/schemas/SpeechToTextConfig"
13863
+ },
13864
+ "sandboxConfiguration" : {
13865
+ "allOf" : [ {
13866
+ "$ref" : "#/components/schemas/AgentSandboxConfiguration"
13867
+ } ],
13868
+ "nullable" : true
13646
13869
  }
13647
13870
  },
13648
13871
  "type" : "object"
@@ -14632,6 +14855,13 @@
14632
14855
  },
14633
14856
  "type" : "array"
14634
14857
  },
14858
+ "workspaceFiles" : {
14859
+ "description" : "Workspace paths written or deleted during the turn that produced this message. Granularity is the turn, not the tool call. Only the last state of a file is kept, so the file reads as it is now, not as it was at this message.",
14860
+ "items" : {
14861
+ "type" : "string"
14862
+ },
14863
+ "type" : "array"
14864
+ },
14635
14865
  "flowNode" : {
14636
14866
  "type" : "string"
14637
14867
  },
@@ -16552,6 +16782,60 @@
16552
16782
  "required" : [ "latitude", "longitude" ],
16553
16783
  "type" : "object"
16554
16784
  },
16785
+ "WorkspaceFileEntry" : {
16786
+ "description" : "One file of a persisted agent workspace. Listing entry only — it never carries the content.",
16787
+ "properties" : {
16788
+ "path" : {
16789
+ "description" : "Absolute path inside the sandbox, always under /home/user.",
16790
+ "example" : "/home/user/rapport.md",
16791
+ "type" : "string"
16792
+ },
16793
+ "size" : {
16794
+ "description" : "UTF-8 byte length of the content.",
16795
+ "type" : "integer"
16796
+ },
16797
+ "mimeType" : {
16798
+ "description" : "Derived from the extension. Always a text type.",
16799
+ "example" : "text/markdown",
16800
+ "type" : "string"
16801
+ },
16802
+ "version" : {
16803
+ "description" : "Incremented on every write. Doubles as an ETag: a client already holding this version does not need to fetch the content again.",
16804
+ "type" : "integer"
16805
+ },
16806
+ "updatedAt" : {
16807
+ "type" : "string"
16808
+ }
16809
+ },
16810
+ "required" : [ "mimeType", "path", "size", "updatedAt", "version" ],
16811
+ "type" : "object"
16812
+ },
16813
+ "WorkspaceFileContent" : {
16814
+ "description" : "The current state of a workspace file. There is no versioning: consulting an older message still returns the file as it is now.",
16815
+ "properties" : {
16816
+ "path" : {
16817
+ "type" : "string"
16818
+ },
16819
+ "content" : {
16820
+ "description" : "UTF-8 text. Binary is never stored in a workspace.",
16821
+ "type" : "string"
16822
+ },
16823
+ "mimeType" : {
16824
+ "type" : "string"
16825
+ },
16826
+ "size" : {
16827
+ "type" : "integer"
16828
+ },
16829
+ "version" : {
16830
+ "type" : "integer"
16831
+ },
16832
+ "updatedAt" : {
16833
+ "type" : "string"
16834
+ }
16835
+ },
16836
+ "required" : [ "content", "mimeType", "path", "size", "updatedAt", "version" ],
16837
+ "type" : "object"
16838
+ },
16555
16839
  "DefaultEngineRequest" : {
16556
16840
  "properties" : {
16557
16841
  "providerId" : {
@@ -20216,6 +20500,12 @@
20216
20500
  "$ref" : "#/components/schemas/ToolResults"
20217
20501
  },
20218
20502
  "type" : "array"
20503
+ },
20504
+ "workspaceFiles" : {
20505
+ "items" : {
20506
+ "type" : "string"
20507
+ },
20508
+ "type" : "array"
20219
20509
  }
20220
20510
  },
20221
20511
  "required" : [ "content", "id", "role", "timestamp" ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breign/client",
3
- "version": "1.0.127",
3
+ "version": "1.0.128",
4
4
  "main": "dist/index.js",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",