@breign/client 1.0.189 → 1.0.190

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 { AcceptTicketProposalRequestUio, ConversationTicketProposalUio, CreateTicketArtifactRequestUio, CreateTicketArtifactResponseUio, CreateTicketEventRequestUio, CreateTicketRequestUio, MemberTypeUio, SaveTicketArtifactVersionRequestUio, SetTicketAssigneesRequestUio, TicketAgentExecutionUio, TicketApprovalRequestUio, TicketArtifactDownloadUrlUio, TicketArtifactUio, TicketBoardUio, TicketEventUio, TicketReviewRequestUio, TicketStatusUio, TicketUio, TicketUsageUio, UpdateTicketRequestUio } from '../models/index';
13
+ import type { AcceptTicketProposalRequestUio, ConversationTicketProposalUio, CreateTicketArtifactRequestUio, CreateTicketArtifactResponseUio, CreateTicketEventRequestUio, CreateTicketRequestUio, MemberTypeUio, SaveTicketArtifactVersionRequestUio, SetTicketAssigneesRequestUio, TicketAgentExecutionUio, TicketApprovalRequestUio, TicketArtifactDownloadUrlUio, TicketArtifactUio, TicketBoardUio, TicketEventUio, TicketReviewRequestUio, TicketSessionMessageRequestUio, TicketStatusUio, TicketThreadsUio, TicketUio, TicketUsageUio, UpdateTicketRequestUio } from '../models/index';
14
14
  export interface AcceptTicketProposalRequest {
15
15
  proposalId: string;
16
16
  acceptTicketProposalRequestUio: AcceptTicketProposalRequestUio;
@@ -43,6 +43,10 @@ export interface GetProjectBoardRequest {
43
43
  projectId: string;
44
44
  doneLimit?: number;
45
45
  }
46
+ export interface GetProjectThreadsRequest {
47
+ projectId: string;
48
+ doneLimit?: number;
49
+ }
46
50
  export interface GetTicketRequest {
47
51
  ticketId: string;
48
52
  }
@@ -113,6 +117,11 @@ export interface UpdateTicketArtifactContentRequest {
113
117
  artifactId: string;
114
118
  saveTicketArtifactVersionRequestUio: SaveTicketArtifactVersionRequestUio;
115
119
  }
120
+ export interface WriteTicketAgentSessionMessageRequest {
121
+ ticketId: string;
122
+ agentId: string;
123
+ ticketSessionMessageRequestUio: TicketSessionMessageRequestUio;
124
+ }
116
125
  /**
117
126
  *
118
127
  */
@@ -197,6 +206,16 @@ export declare class TicketsApi extends runtime.BaseAPI {
197
206
  * Get the board of a project
198
207
  */
199
208
  getProjectBoard(projectId: string, doneLimit?: number, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TicketBoardUio>;
209
+ /**
210
+ * Vue « Fils » : tous les tickets ouverts et les terminés les plus récents, chacun avec les sessions de travail de ses agents. L\'arbre des sous-tickets, les filtres et la recherche se font côté client.
211
+ * Get the threads of a project
212
+ */
213
+ getProjectThreadsRaw(requestParameters: GetProjectThreadsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TicketThreadsUio>>;
214
+ /**
215
+ * Vue « Fils » : tous les tickets ouverts et les terminés les plus récents, chacun avec les sessions de travail de ses agents. L\'arbre des sous-tickets, les filtres et la recherche se font côté client.
216
+ * Get the threads of a project
217
+ */
218
+ getProjectThreads(projectId: string, doneLimit?: number, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TicketThreadsUio>;
200
219
  /**
201
220
  * Ticket avec ses assignés et leurs états.
202
221
  * Get a ticket
@@ -357,4 +376,14 @@ export declare class TicketsApi extends runtime.BaseAPI {
357
376
  * Replace the text of an artifact in place
358
377
  */
359
378
  updateTicketArtifactContent(ticketId: string, artifactId: string, saveTicketArtifactVersionRequestUio: SaveTicketArtifactVersionRequestUio, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TicketArtifactUio>;
379
+ /**
380
+ * Le message rejoint la session de travail de l\'agent au prochain réveil, qui est mis en file (après le tour en cours ou la réponse à une question en attente). Le fil du ticket garde la trace de l\'envoi, sans le texte.
381
+ * Write to an agent in its work session on a ticket
382
+ */
383
+ writeTicketAgentSessionMessageRaw(requestParameters: WriteTicketAgentSessionMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TicketEventUio>>;
384
+ /**
385
+ * Le message rejoint la session de travail de l\'agent au prochain réveil, qui est mis en file (après le tour en cours ou la réponse à une question en attente). Le fil du ticket garde la trace de l\'envoi, sans le texte.
386
+ * Write to an agent in its work session on a ticket
387
+ */
388
+ writeTicketAgentSessionMessage(ticketId: string, agentId: string, ticketSessionMessageRequestUio: TicketSessionMessageRequestUio, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TicketEventUio>;
360
389
  }
@@ -318,6 +318,38 @@ class TicketsApi extends runtime.BaseAPI {
318
318
  const response = await this.getProjectBoardRaw({ projectId: projectId, doneLimit: doneLimit }, initOverrides);
319
319
  return await response.value();
320
320
  }
321
+ /**
322
+ * Vue « Fils » : tous les tickets ouverts et les terminés les plus récents, chacun avec les sessions de travail de ses agents. L\'arbre des sous-tickets, les filtres et la recherche se font côté client.
323
+ * Get the threads of a project
324
+ */
325
+ async getProjectThreadsRaw(requestParameters, initOverrides) {
326
+ if (requestParameters['projectId'] == null) {
327
+ throw new runtime.RequiredError('projectId', 'Required parameter "projectId" was null or undefined when calling getProjectThreads().');
328
+ }
329
+ const queryParameters = {};
330
+ if (requestParameters['doneLimit'] != null) {
331
+ queryParameters['doneLimit'] = requestParameters['doneLimit'];
332
+ }
333
+ const headerParameters = {};
334
+ if (this.configuration && this.configuration.apiKey) {
335
+ headerParameters["X-API-Key"] = await this.configuration.apiKey("X-API-Key"); // ApiKeyAuth authentication
336
+ }
337
+ const response = await this.request({
338
+ path: `/projects/{projectId}/threads`.replace(`{${"projectId"}}`, encodeURIComponent(String(requestParameters['projectId']))),
339
+ method: 'GET',
340
+ headers: headerParameters,
341
+ query: queryParameters,
342
+ }, initOverrides);
343
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.TicketThreadsUioFromJSON)(jsonValue));
344
+ }
345
+ /**
346
+ * Vue « Fils » : tous les tickets ouverts et les terminés les plus récents, chacun avec les sessions de travail de ses agents. L\'arbre des sous-tickets, les filtres et la recherche se font côté client.
347
+ * Get the threads of a project
348
+ */
349
+ async getProjectThreads(projectId, doneLimit, initOverrides) {
350
+ const response = await this.getProjectThreadsRaw({ projectId: projectId, doneLimit: doneLimit }, initOverrides);
351
+ return await response.value();
352
+ }
321
353
  /**
322
354
  * Ticket avec ses assignés et leurs états.
323
355
  * Get a ticket
@@ -858,5 +890,42 @@ class TicketsApi extends runtime.BaseAPI {
858
890
  const response = await this.updateTicketArtifactContentRaw({ ticketId: ticketId, artifactId: artifactId, saveTicketArtifactVersionRequestUio: saveTicketArtifactVersionRequestUio }, initOverrides);
859
891
  return await response.value();
860
892
  }
893
+ /**
894
+ * Le message rejoint la session de travail de l\'agent au prochain réveil, qui est mis en file (après le tour en cours ou la réponse à une question en attente). Le fil du ticket garde la trace de l\'envoi, sans le texte.
895
+ * Write to an agent in its work session on a ticket
896
+ */
897
+ async writeTicketAgentSessionMessageRaw(requestParameters, initOverrides) {
898
+ if (requestParameters['ticketId'] == null) {
899
+ throw new runtime.RequiredError('ticketId', 'Required parameter "ticketId" was null or undefined when calling writeTicketAgentSessionMessage().');
900
+ }
901
+ if (requestParameters['agentId'] == null) {
902
+ throw new runtime.RequiredError('agentId', 'Required parameter "agentId" was null or undefined when calling writeTicketAgentSessionMessage().');
903
+ }
904
+ if (requestParameters['ticketSessionMessageRequestUio'] == null) {
905
+ throw new runtime.RequiredError('ticketSessionMessageRequestUio', 'Required parameter "ticketSessionMessageRequestUio" was null or undefined when calling writeTicketAgentSessionMessage().');
906
+ }
907
+ const queryParameters = {};
908
+ const headerParameters = {};
909
+ headerParameters['Content-Type'] = 'application/json';
910
+ if (this.configuration && this.configuration.apiKey) {
911
+ headerParameters["X-API-Key"] = await this.configuration.apiKey("X-API-Key"); // ApiKeyAuth authentication
912
+ }
913
+ const response = await this.request({
914
+ path: `/tickets/{ticketId}/agents/{agentId}/session/messages`.replace(`{${"ticketId"}}`, encodeURIComponent(String(requestParameters['ticketId']))).replace(`{${"agentId"}}`, encodeURIComponent(String(requestParameters['agentId']))),
915
+ method: 'POST',
916
+ headers: headerParameters,
917
+ query: queryParameters,
918
+ body: (0, index_1.TicketSessionMessageRequestUioToJSON)(requestParameters['ticketSessionMessageRequestUio']),
919
+ }, initOverrides);
920
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.TicketEventUioFromJSON)(jsonValue));
921
+ }
922
+ /**
923
+ * Le message rejoint la session de travail de l\'agent au prochain réveil, qui est mis en file (après le tour en cours ou la réponse à une question en attente). Le fil du ticket garde la trace de l\'envoi, sans le texte.
924
+ * Write to an agent in its work session on a ticket
925
+ */
926
+ async writeTicketAgentSessionMessage(ticketId, agentId, ticketSessionMessageRequestUio, initOverrides) {
927
+ const response = await this.writeTicketAgentSessionMessageRaw({ ticketId: ticketId, agentId: agentId, ticketSessionMessageRequestUio: ticketSessionMessageRequestUio }, initOverrides);
928
+ return await response.value();
929
+ }
861
930
  }
862
931
  exports.TicketsApi = TicketsApi;
@@ -0,0 +1,32 @@
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
+ *
14
+ * @export
15
+ * @interface TicketSessionMessageRequestUio
16
+ */
17
+ export interface TicketSessionMessageRequestUio {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof TicketSessionMessageRequestUio
22
+ */
23
+ body: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the TicketSessionMessageRequestUio interface.
27
+ */
28
+ export declare function instanceOfTicketSessionMessageRequestUio(value: object): value is TicketSessionMessageRequestUio;
29
+ export declare function TicketSessionMessageRequestUioFromJSON(json: any): TicketSessionMessageRequestUio;
30
+ export declare function TicketSessionMessageRequestUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): TicketSessionMessageRequestUio;
31
+ export declare function TicketSessionMessageRequestUioToJSON(json: any): TicketSessionMessageRequestUio;
32
+ export declare function TicketSessionMessageRequestUioToJSONTyped(value?: TicketSessionMessageRequestUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,50 @@
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.instanceOfTicketSessionMessageRequestUio = instanceOfTicketSessionMessageRequestUio;
17
+ exports.TicketSessionMessageRequestUioFromJSON = TicketSessionMessageRequestUioFromJSON;
18
+ exports.TicketSessionMessageRequestUioFromJSONTyped = TicketSessionMessageRequestUioFromJSONTyped;
19
+ exports.TicketSessionMessageRequestUioToJSON = TicketSessionMessageRequestUioToJSON;
20
+ exports.TicketSessionMessageRequestUioToJSONTyped = TicketSessionMessageRequestUioToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the TicketSessionMessageRequestUio interface.
23
+ */
24
+ function instanceOfTicketSessionMessageRequestUio(value) {
25
+ if (!('body' in value) || value['body'] === undefined)
26
+ return false;
27
+ return true;
28
+ }
29
+ function TicketSessionMessageRequestUioFromJSON(json) {
30
+ return TicketSessionMessageRequestUioFromJSONTyped(json, false);
31
+ }
32
+ function TicketSessionMessageRequestUioFromJSONTyped(json, ignoreDiscriminator) {
33
+ if (json == null) {
34
+ return json;
35
+ }
36
+ return {
37
+ 'body': json['body'],
38
+ };
39
+ }
40
+ function TicketSessionMessageRequestUioToJSON(json) {
41
+ return TicketSessionMessageRequestUioToJSONTyped(json, false);
42
+ }
43
+ function TicketSessionMessageRequestUioToJSONTyped(value, ignoreDiscriminator = false) {
44
+ if (value == null) {
45
+ return value;
46
+ }
47
+ return {
48
+ 'body': value['body'],
49
+ };
50
+ }
@@ -0,0 +1,69 @@
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 { TicketAgentRunStatusUio } from './TicketAgentRunStatusUio';
13
+ /**
14
+ * Une session de travail d'agent, sous-fil d'un ticket dans la vue « Fils ». Le statut vient des réveils et des questions en attente, sans relire la conversation.
15
+ * @export
16
+ * @interface TicketThreadSessionUio
17
+ */
18
+ export interface TicketThreadSessionUio {
19
+ /**
20
+ *
21
+ * @type {string}
22
+ * @memberof TicketThreadSessionUio
23
+ */
24
+ agentId: string;
25
+ /**
26
+ *
27
+ * @type {TicketAgentRunStatusUio}
28
+ * @memberof TicketThreadSessionUio
29
+ */
30
+ status: TicketAgentRunStatusUio;
31
+ /**
32
+ * null tant que l'agent n'a pas commencé (premier réveil en attente)
33
+ * @type {string}
34
+ * @memberof TicketThreadSessionUio
35
+ */
36
+ conversationId: string | null;
37
+ /**
38
+ * Étapes terminées du plan publié
39
+ * @type {number}
40
+ * @memberof TicketThreadSessionUio
41
+ */
42
+ planDone: number;
43
+ /**
44
+ * Étapes du plan publié ; 0 sans plan
45
+ * @type {number}
46
+ * @memberof TicketThreadSessionUio
47
+ */
48
+ planTotal: number;
49
+ /**
50
+ * Étape en cours du plan
51
+ * @type {string}
52
+ * @memberof TicketThreadSessionUio
53
+ */
54
+ currentStep: string | null;
55
+ /**
56
+ *
57
+ * @type {string}
58
+ * @memberof TicketThreadSessionUio
59
+ */
60
+ lastRunAt: string | null;
61
+ }
62
+ /**
63
+ * Check if a given object implements the TicketThreadSessionUio interface.
64
+ */
65
+ export declare function instanceOfTicketThreadSessionUio(value: object): value is TicketThreadSessionUio;
66
+ export declare function TicketThreadSessionUioFromJSON(json: any): TicketThreadSessionUio;
67
+ export declare function TicketThreadSessionUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): TicketThreadSessionUio;
68
+ export declare function TicketThreadSessionUioToJSON(json: any): TicketThreadSessionUio;
69
+ export declare function TicketThreadSessionUioToJSONTyped(value?: TicketThreadSessionUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,75 @@
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.instanceOfTicketThreadSessionUio = instanceOfTicketThreadSessionUio;
17
+ exports.TicketThreadSessionUioFromJSON = TicketThreadSessionUioFromJSON;
18
+ exports.TicketThreadSessionUioFromJSONTyped = TicketThreadSessionUioFromJSONTyped;
19
+ exports.TicketThreadSessionUioToJSON = TicketThreadSessionUioToJSON;
20
+ exports.TicketThreadSessionUioToJSONTyped = TicketThreadSessionUioToJSONTyped;
21
+ const TicketAgentRunStatusUio_1 = require("./TicketAgentRunStatusUio");
22
+ /**
23
+ * Check if a given object implements the TicketThreadSessionUio interface.
24
+ */
25
+ function instanceOfTicketThreadSessionUio(value) {
26
+ if (!('agentId' in value) || value['agentId'] === undefined)
27
+ return false;
28
+ if (!('status' in value) || value['status'] === undefined)
29
+ return false;
30
+ if (!('conversationId' in value) || value['conversationId'] === undefined)
31
+ return false;
32
+ if (!('planDone' in value) || value['planDone'] === undefined)
33
+ return false;
34
+ if (!('planTotal' in value) || value['planTotal'] === undefined)
35
+ return false;
36
+ if (!('currentStep' in value) || value['currentStep'] === undefined)
37
+ return false;
38
+ if (!('lastRunAt' in value) || value['lastRunAt'] === undefined)
39
+ return false;
40
+ return true;
41
+ }
42
+ function TicketThreadSessionUioFromJSON(json) {
43
+ return TicketThreadSessionUioFromJSONTyped(json, false);
44
+ }
45
+ function TicketThreadSessionUioFromJSONTyped(json, ignoreDiscriminator) {
46
+ if (json == null) {
47
+ return json;
48
+ }
49
+ return {
50
+ 'agentId': json['agentId'],
51
+ 'status': (0, TicketAgentRunStatusUio_1.TicketAgentRunStatusUioFromJSON)(json['status']),
52
+ 'conversationId': json['conversationId'],
53
+ 'planDone': json['planDone'],
54
+ 'planTotal': json['planTotal'],
55
+ 'currentStep': json['currentStep'],
56
+ 'lastRunAt': json['lastRunAt'],
57
+ };
58
+ }
59
+ function TicketThreadSessionUioToJSON(json) {
60
+ return TicketThreadSessionUioToJSONTyped(json, false);
61
+ }
62
+ function TicketThreadSessionUioToJSONTyped(value, ignoreDiscriminator = false) {
63
+ if (value == null) {
64
+ return value;
65
+ }
66
+ return {
67
+ 'agentId': value['agentId'],
68
+ 'status': (0, TicketAgentRunStatusUio_1.TicketAgentRunStatusUioToJSON)(value['status']),
69
+ 'conversationId': value['conversationId'],
70
+ 'planDone': value['planDone'],
71
+ 'planTotal': value['planTotal'],
72
+ 'currentStep': value['currentStep'],
73
+ 'lastRunAt': value['lastRunAt'],
74
+ };
75
+ }
@@ -0,0 +1,208 @@
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 { TicketThreadSessionUio } from './TicketThreadSessionUio';
13
+ import type { ActorRefUio } from './ActorRefUio';
14
+ import type { TicketActiveAgentUio } from './TicketActiveAgentUio';
15
+ import type { TicketPriorityUio } from './TicketPriorityUio';
16
+ import type { MemberRefUio } from './MemberRefUio';
17
+ import type { TicketParentRefUio } from './TicketParentRefUio';
18
+ import type { TicketAssigneeUio } from './TicketAssigneeUio';
19
+ import type { TicketStatusUio } from './TicketStatusUio';
20
+ /**
21
+ *
22
+ * @export
23
+ * @interface TicketThreadUio
24
+ */
25
+ export interface TicketThreadUio {
26
+ /**
27
+ *
28
+ * @type {string}
29
+ * @memberof TicketThreadUio
30
+ */
31
+ id: string;
32
+ /**
33
+ *
34
+ * @type {string}
35
+ * @memberof TicketThreadUio
36
+ */
37
+ organizationId: string;
38
+ /**
39
+ *
40
+ * @type {string}
41
+ * @memberof TicketThreadUio
42
+ */
43
+ projectId: string;
44
+ /**
45
+ *
46
+ * @type {number}
47
+ * @memberof TicketThreadUio
48
+ */
49
+ number: number;
50
+ /**
51
+ * Clé du projet suivie du numéro (BRN-142)
52
+ * @type {string}
53
+ * @memberof TicketThreadUio
54
+ */
55
+ key: string;
56
+ /**
57
+ *
58
+ * @type {string}
59
+ * @memberof TicketThreadUio
60
+ */
61
+ title: string;
62
+ /**
63
+ *
64
+ * @type {string}
65
+ * @memberof TicketThreadUio
66
+ */
67
+ description: string | null;
68
+ /**
69
+ *
70
+ * @type {TicketStatusUio}
71
+ * @memberof TicketThreadUio
72
+ */
73
+ status: TicketStatusUio;
74
+ /**
75
+ *
76
+ * @type {TicketPriorityUio}
77
+ * @memberof TicketThreadUio
78
+ */
79
+ priority: TicketPriorityUio;
80
+ /**
81
+ *
82
+ * @type {Array<string>}
83
+ * @memberof TicketThreadUio
84
+ */
85
+ labels: Array<string>;
86
+ /**
87
+ *
88
+ * @type {string}
89
+ * @memberof TicketThreadUio
90
+ */
91
+ dueDate: string | null;
92
+ /**
93
+ * Relecteur optionnel ; avec lui, le ticket passe par review avant done
94
+ * @type {MemberRefUio}
95
+ * @memberof TicketThreadUio
96
+ */
97
+ reviewer: MemberRefUio | null;
98
+ /**
99
+ *
100
+ * @type {ActorRefUio}
101
+ * @memberof TicketThreadUio
102
+ */
103
+ createdBy: ActorRefUio;
104
+ /**
105
+ * Conversation dont le ticket est issu (proposition d'agent)
106
+ * @type {string}
107
+ * @memberof TicketThreadUio
108
+ */
109
+ sourceConversationId: string | null;
110
+ /**
111
+ * Ticket parent, dans le même projet ; le ticket est alors un sous-ticket
112
+ * @type {string}
113
+ * @memberof TicketThreadUio
114
+ */
115
+ parentTicketId: string | null;
116
+ /**
117
+ *
118
+ * @type {TicketParentRefUio}
119
+ * @memberof TicketThreadUio
120
+ */
121
+ parent: TicketParentRefUio | null;
122
+ /**
123
+ * Nombre de sous-tickets directs
124
+ * @type {number}
125
+ * @memberof TicketThreadUio
126
+ */
127
+ childCount: number;
128
+ /**
129
+ * Nombre de sous-tickets directs pas encore terminés
130
+ * @type {number}
131
+ * @memberof TicketThreadUio
132
+ */
133
+ openChildCount: number;
134
+ /**
135
+ * Ordre dans la colonne, croissant
136
+ * @type {number}
137
+ * @memberof TicketThreadUio
138
+ */
139
+ position: number;
140
+ /**
141
+ *
142
+ * @type {Array<TicketAssigneeUio>}
143
+ * @memberof TicketThreadUio
144
+ */
145
+ assignees: Array<TicketAssigneeUio>;
146
+ /**
147
+ *
148
+ * @type {number}
149
+ * @memberof TicketThreadUio
150
+ */
151
+ commentCount: number;
152
+ /**
153
+ *
154
+ * @type {number}
155
+ * @memberof TicketThreadUio
156
+ */
157
+ artifactCount: number;
158
+ /**
159
+ * Questions, relectures et feux verts en attente sur ce ticket, tous humains confondus
160
+ * @type {number}
161
+ * @memberof TicketThreadUio
162
+ */
163
+ pendingHumanActions: number;
164
+ /**
165
+ * Agents qui travaillent sur le ticket en ce moment, assignés ou non : en cours d'exécution, réveil en attente, ou question posée à un humain.
166
+ * @type {Array<TicketActiveAgentUio>}
167
+ * @memberof TicketThreadUio
168
+ */
169
+ activeAgents?: Array<TicketActiveAgentUio>;
170
+ /**
171
+ *
172
+ * @type {string}
173
+ * @memberof TicketThreadUio
174
+ */
175
+ doneAt: string | null;
176
+ /**
177
+ * Dernier commentaire, changement de statut ou d'assignation
178
+ * @type {string}
179
+ * @memberof TicketThreadUio
180
+ */
181
+ lastActivityAt: string;
182
+ /**
183
+ *
184
+ * @type {string}
185
+ * @memberof TicketThreadUio
186
+ */
187
+ createdAt: string;
188
+ /**
189
+ *
190
+ * @type {string}
191
+ * @memberof TicketThreadUio
192
+ */
193
+ updatedAt: string;
194
+ /**
195
+ *
196
+ * @type {Array<TicketThreadSessionUio>}
197
+ * @memberof TicketThreadUio
198
+ */
199
+ sessions: Array<TicketThreadSessionUio>;
200
+ }
201
+ /**
202
+ * Check if a given object implements the TicketThreadUio interface.
203
+ */
204
+ export declare function instanceOfTicketThreadUio(value: object): value is TicketThreadUio;
205
+ export declare function TicketThreadUioFromJSON(json: any): TicketThreadUio;
206
+ export declare function TicketThreadUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): TicketThreadUio;
207
+ export declare function TicketThreadUioToJSON(json: any): TicketThreadUio;
208
+ export declare function TicketThreadUioToJSONTyped(value?: TicketThreadUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,168 @@
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.instanceOfTicketThreadUio = instanceOfTicketThreadUio;
17
+ exports.TicketThreadUioFromJSON = TicketThreadUioFromJSON;
18
+ exports.TicketThreadUioFromJSONTyped = TicketThreadUioFromJSONTyped;
19
+ exports.TicketThreadUioToJSON = TicketThreadUioToJSON;
20
+ exports.TicketThreadUioToJSONTyped = TicketThreadUioToJSONTyped;
21
+ const TicketThreadSessionUio_1 = require("./TicketThreadSessionUio");
22
+ const ActorRefUio_1 = require("./ActorRefUio");
23
+ const TicketActiveAgentUio_1 = require("./TicketActiveAgentUio");
24
+ const TicketPriorityUio_1 = require("./TicketPriorityUio");
25
+ const MemberRefUio_1 = require("./MemberRefUio");
26
+ const TicketParentRefUio_1 = require("./TicketParentRefUio");
27
+ const TicketAssigneeUio_1 = require("./TicketAssigneeUio");
28
+ const TicketStatusUio_1 = require("./TicketStatusUio");
29
+ /**
30
+ * Check if a given object implements the TicketThreadUio interface.
31
+ */
32
+ function instanceOfTicketThreadUio(value) {
33
+ if (!('id' in value) || value['id'] === undefined)
34
+ return false;
35
+ if (!('organizationId' in value) || value['organizationId'] === undefined)
36
+ return false;
37
+ if (!('projectId' in value) || value['projectId'] === undefined)
38
+ return false;
39
+ if (!('number' in value) || value['number'] === undefined)
40
+ return false;
41
+ if (!('key' in value) || value['key'] === undefined)
42
+ return false;
43
+ if (!('title' in value) || value['title'] === undefined)
44
+ return false;
45
+ if (!('description' in value) || value['description'] === undefined)
46
+ return false;
47
+ if (!('status' in value) || value['status'] === undefined)
48
+ return false;
49
+ if (!('priority' in value) || value['priority'] === undefined)
50
+ return false;
51
+ if (!('labels' in value) || value['labels'] === undefined)
52
+ return false;
53
+ if (!('dueDate' in value) || value['dueDate'] === undefined)
54
+ return false;
55
+ if (!('reviewer' in value) || value['reviewer'] === undefined)
56
+ return false;
57
+ if (!('createdBy' in value) || value['createdBy'] === undefined)
58
+ return false;
59
+ if (!('sourceConversationId' in value) || value['sourceConversationId'] === undefined)
60
+ return false;
61
+ if (!('parentTicketId' in value) || value['parentTicketId'] === undefined)
62
+ return false;
63
+ if (!('parent' in value) || value['parent'] === undefined)
64
+ return false;
65
+ if (!('childCount' in value) || value['childCount'] === undefined)
66
+ return false;
67
+ if (!('openChildCount' in value) || value['openChildCount'] === undefined)
68
+ return false;
69
+ if (!('position' in value) || value['position'] === undefined)
70
+ return false;
71
+ if (!('assignees' in value) || value['assignees'] === undefined)
72
+ return false;
73
+ if (!('commentCount' in value) || value['commentCount'] === undefined)
74
+ return false;
75
+ if (!('artifactCount' in value) || value['artifactCount'] === undefined)
76
+ return false;
77
+ if (!('pendingHumanActions' in value) || value['pendingHumanActions'] === undefined)
78
+ return false;
79
+ if (!('doneAt' in value) || value['doneAt'] === undefined)
80
+ return false;
81
+ if (!('lastActivityAt' in value) || value['lastActivityAt'] === undefined)
82
+ return false;
83
+ if (!('createdAt' in value) || value['createdAt'] === undefined)
84
+ return false;
85
+ if (!('updatedAt' in value) || value['updatedAt'] === undefined)
86
+ return false;
87
+ if (!('sessions' in value) || value['sessions'] === undefined)
88
+ return false;
89
+ return true;
90
+ }
91
+ function TicketThreadUioFromJSON(json) {
92
+ return TicketThreadUioFromJSONTyped(json, false);
93
+ }
94
+ function TicketThreadUioFromJSONTyped(json, ignoreDiscriminator) {
95
+ if (json == null) {
96
+ return json;
97
+ }
98
+ return {
99
+ 'id': json['id'],
100
+ 'organizationId': json['organizationId'],
101
+ 'projectId': json['projectId'],
102
+ 'number': json['number'],
103
+ 'key': json['key'],
104
+ 'title': json['title'],
105
+ 'description': json['description'],
106
+ 'status': (0, TicketStatusUio_1.TicketStatusUioFromJSON)(json['status']),
107
+ 'priority': (0, TicketPriorityUio_1.TicketPriorityUioFromJSON)(json['priority']),
108
+ 'labels': json['labels'],
109
+ 'dueDate': json['dueDate'],
110
+ 'reviewer': (0, MemberRefUio_1.MemberRefUioFromJSON)(json['reviewer']),
111
+ 'createdBy': (0, ActorRefUio_1.ActorRefUioFromJSON)(json['createdBy']),
112
+ 'sourceConversationId': json['sourceConversationId'],
113
+ 'parentTicketId': json['parentTicketId'],
114
+ 'parent': (0, TicketParentRefUio_1.TicketParentRefUioFromJSON)(json['parent']),
115
+ 'childCount': json['childCount'],
116
+ 'openChildCount': json['openChildCount'],
117
+ 'position': json['position'],
118
+ 'assignees': (json['assignees'].map(TicketAssigneeUio_1.TicketAssigneeUioFromJSON)),
119
+ 'commentCount': json['commentCount'],
120
+ 'artifactCount': json['artifactCount'],
121
+ 'pendingHumanActions': json['pendingHumanActions'],
122
+ 'activeAgents': json['activeAgents'] == null ? undefined : (json['activeAgents'].map(TicketActiveAgentUio_1.TicketActiveAgentUioFromJSON)),
123
+ 'doneAt': json['doneAt'],
124
+ 'lastActivityAt': json['lastActivityAt'],
125
+ 'createdAt': json['createdAt'],
126
+ 'updatedAt': json['updatedAt'],
127
+ 'sessions': (json['sessions'].map(TicketThreadSessionUio_1.TicketThreadSessionUioFromJSON)),
128
+ };
129
+ }
130
+ function TicketThreadUioToJSON(json) {
131
+ return TicketThreadUioToJSONTyped(json, false);
132
+ }
133
+ function TicketThreadUioToJSONTyped(value, ignoreDiscriminator = false) {
134
+ if (value == null) {
135
+ return value;
136
+ }
137
+ return {
138
+ 'id': value['id'],
139
+ 'organizationId': value['organizationId'],
140
+ 'projectId': value['projectId'],
141
+ 'number': value['number'],
142
+ 'key': value['key'],
143
+ 'title': value['title'],
144
+ 'description': value['description'],
145
+ 'status': (0, TicketStatusUio_1.TicketStatusUioToJSON)(value['status']),
146
+ 'priority': (0, TicketPriorityUio_1.TicketPriorityUioToJSON)(value['priority']),
147
+ 'labels': value['labels'],
148
+ 'dueDate': value['dueDate'],
149
+ 'reviewer': (0, MemberRefUio_1.MemberRefUioToJSON)(value['reviewer']),
150
+ 'createdBy': (0, ActorRefUio_1.ActorRefUioToJSON)(value['createdBy']),
151
+ 'sourceConversationId': value['sourceConversationId'],
152
+ 'parentTicketId': value['parentTicketId'],
153
+ 'parent': (0, TicketParentRefUio_1.TicketParentRefUioToJSON)(value['parent']),
154
+ 'childCount': value['childCount'],
155
+ 'openChildCount': value['openChildCount'],
156
+ 'position': value['position'],
157
+ 'assignees': (value['assignees'].map(TicketAssigneeUio_1.TicketAssigneeUioToJSON)),
158
+ 'commentCount': value['commentCount'],
159
+ 'artifactCount': value['artifactCount'],
160
+ 'pendingHumanActions': value['pendingHumanActions'],
161
+ 'activeAgents': value['activeAgents'] == null ? undefined : (value['activeAgents'].map(TicketActiveAgentUio_1.TicketActiveAgentUioToJSON)),
162
+ 'doneAt': value['doneAt'],
163
+ 'lastActivityAt': value['lastActivityAt'],
164
+ 'createdAt': value['createdAt'],
165
+ 'updatedAt': value['updatedAt'],
166
+ 'sessions': (value['sessions'].map(TicketThreadSessionUio_1.TicketThreadSessionUioToJSON)),
167
+ };
168
+ }
@@ -0,0 +1,45 @@
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 { TicketThreadUio } from './TicketThreadUio';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface TicketThreadsUio
17
+ */
18
+ export interface TicketThreadsUio {
19
+ /**
20
+ * Tous les tickets ouverts du projet
21
+ * @type {Array<TicketThreadUio>}
22
+ * @memberof TicketThreadsUio
23
+ */
24
+ open: Array<TicketThreadUio>;
25
+ /**
26
+ * Les tickets terminés les plus récents
27
+ * @type {Array<TicketThreadUio>}
28
+ * @memberof TicketThreadsUio
29
+ */
30
+ done: Array<TicketThreadUio>;
31
+ /**
32
+ * Nombre total de tickets terminés
33
+ * @type {number}
34
+ * @memberof TicketThreadsUio
35
+ */
36
+ doneTotal: number;
37
+ }
38
+ /**
39
+ * Check if a given object implements the TicketThreadsUio interface.
40
+ */
41
+ export declare function instanceOfTicketThreadsUio(value: object): value is TicketThreadsUio;
42
+ export declare function TicketThreadsUioFromJSON(json: any): TicketThreadsUio;
43
+ export declare function TicketThreadsUioFromJSONTyped(json: any, ignoreDiscriminator: boolean): TicketThreadsUio;
44
+ export declare function TicketThreadsUioToJSON(json: any): TicketThreadsUio;
45
+ export declare function TicketThreadsUioToJSONTyped(value?: TicketThreadsUio | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,59 @@
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.instanceOfTicketThreadsUio = instanceOfTicketThreadsUio;
17
+ exports.TicketThreadsUioFromJSON = TicketThreadsUioFromJSON;
18
+ exports.TicketThreadsUioFromJSONTyped = TicketThreadsUioFromJSONTyped;
19
+ exports.TicketThreadsUioToJSON = TicketThreadsUioToJSON;
20
+ exports.TicketThreadsUioToJSONTyped = TicketThreadsUioToJSONTyped;
21
+ const TicketThreadUio_1 = require("./TicketThreadUio");
22
+ /**
23
+ * Check if a given object implements the TicketThreadsUio interface.
24
+ */
25
+ function instanceOfTicketThreadsUio(value) {
26
+ if (!('open' in value) || value['open'] === undefined)
27
+ return false;
28
+ if (!('done' in value) || value['done'] === undefined)
29
+ return false;
30
+ if (!('doneTotal' in value) || value['doneTotal'] === undefined)
31
+ return false;
32
+ return true;
33
+ }
34
+ function TicketThreadsUioFromJSON(json) {
35
+ return TicketThreadsUioFromJSONTyped(json, false);
36
+ }
37
+ function TicketThreadsUioFromJSONTyped(json, ignoreDiscriminator) {
38
+ if (json == null) {
39
+ return json;
40
+ }
41
+ return {
42
+ 'open': (json['open'].map(TicketThreadUio_1.TicketThreadUioFromJSON)),
43
+ 'done': (json['done'].map(TicketThreadUio_1.TicketThreadUioFromJSON)),
44
+ 'doneTotal': json['doneTotal'],
45
+ };
46
+ }
47
+ function TicketThreadsUioToJSON(json) {
48
+ return TicketThreadsUioToJSONTyped(json, false);
49
+ }
50
+ function TicketThreadsUioToJSONTyped(value, ignoreDiscriminator = false) {
51
+ if (value == null) {
52
+ return value;
53
+ }
54
+ return {
55
+ 'open': (value['open'].map(TicketThreadUio_1.TicketThreadUioToJSON)),
56
+ 'done': (value['done'].map(TicketThreadUio_1.TicketThreadUioToJSON)),
57
+ 'doneTotal': value['doneTotal'],
58
+ };
59
+ }
@@ -649,8 +649,12 @@ export * from './TicketProposalPayloadUio';
649
649
  export * from './TicketProposalStatusUio';
650
650
  export * from './TicketReviewDecisionUio';
651
651
  export * from './TicketReviewRequestUio';
652
+ export * from './TicketSessionMessageRequestUio';
652
653
  export * from './TicketStartModeUio';
653
654
  export * from './TicketStatusUio';
655
+ export * from './TicketThreadSessionUio';
656
+ export * from './TicketThreadUio';
657
+ export * from './TicketThreadsUio';
654
658
  export * from './TicketUio';
655
659
  export * from './TicketUsageUio';
656
660
  export * from './TokenPriceSuggestionRequestUio';
@@ -667,8 +667,12 @@ __exportStar(require("./TicketProposalPayloadUio"), exports);
667
667
  __exportStar(require("./TicketProposalStatusUio"), exports);
668
668
  __exportStar(require("./TicketReviewDecisionUio"), exports);
669
669
  __exportStar(require("./TicketReviewRequestUio"), exports);
670
+ __exportStar(require("./TicketSessionMessageRequestUio"), exports);
670
671
  __exportStar(require("./TicketStartModeUio"), exports);
671
672
  __exportStar(require("./TicketStatusUio"), exports);
673
+ __exportStar(require("./TicketThreadSessionUio"), exports);
674
+ __exportStar(require("./TicketThreadUio"), exports);
675
+ __exportStar(require("./TicketThreadsUio"), exports);
672
676
  __exportStar(require("./TicketUio"), exports);
673
677
  __exportStar(require("./TicketUsageUio"), exports);
674
678
  __exportStar(require("./TokenPriceSuggestionRequestUio"), exports);
package/dist/openapi.json CHANGED
@@ -18378,6 +18378,55 @@
18378
18378
  "tags" : [ "tickets" ]
18379
18379
  }
18380
18380
  },
18381
+ "/projects/{projectId}/threads" : {
18382
+ "get" : {
18383
+ "description" : "Vue « Fils » : tous les tickets ouverts et les terminés les plus récents, chacun avec les sessions de travail de ses agents. L'arbre des sous-tickets, les filtres et la recherche se font côté client.",
18384
+ "operationId" : "getProjectThreads",
18385
+ "parameters" : [ {
18386
+ "description" : "ID of the project",
18387
+ "in" : "path",
18388
+ "name" : "projectId",
18389
+ "required" : true,
18390
+ "schema" : {
18391
+ "format" : "uuid",
18392
+ "type" : "string"
18393
+ }
18394
+ }, {
18395
+ "description" : "Nombre de tickets terminés renvoyés (10 par défaut)",
18396
+ "in" : "query",
18397
+ "name" : "doneLimit",
18398
+ "required" : false,
18399
+ "schema" : {
18400
+ "maximum" : 50,
18401
+ "minimum" : 0,
18402
+ "type" : "integer"
18403
+ }
18404
+ } ],
18405
+ "responses" : {
18406
+ "200" : {
18407
+ "content" : {
18408
+ "application/json" : {
18409
+ "schema" : {
18410
+ "$ref" : "#/components/schemas/TicketThreads"
18411
+ }
18412
+ }
18413
+ },
18414
+ "description" : "OK"
18415
+ },
18416
+ "401" : {
18417
+ "description" : "Unauthenticated"
18418
+ },
18419
+ "403" : {
18420
+ "description" : "Forbidden — the caller is not part of the organization or not a member of the project"
18421
+ },
18422
+ "404" : {
18423
+ "description" : "Not found"
18424
+ }
18425
+ },
18426
+ "summary" : "Get the threads of a project",
18427
+ "tags" : [ "tickets" ]
18428
+ }
18429
+ },
18381
18430
  "/organizations/{organizationId}/tickets/{ticketKey}" : {
18382
18431
  "get" : {
18383
18432
  "description" : "Ticket désigné par sa clé (BRN-142) dans une organisation.",
@@ -18788,6 +18837,69 @@
18788
18837
  "tags" : [ "tickets" ]
18789
18838
  }
18790
18839
  },
18840
+ "/tickets/{ticketId}/agents/{agentId}/session/messages" : {
18841
+ "post" : {
18842
+ "description" : "Le message rejoint la session de travail de l'agent au prochain réveil, qui est mis en file (après le tour en cours ou la réponse à une question en attente). Le fil du ticket garde la trace de l'envoi, sans le texte.",
18843
+ "operationId" : "writeTicketAgentSessionMessage",
18844
+ "parameters" : [ {
18845
+ "description" : "ID of the ticket",
18846
+ "in" : "path",
18847
+ "name" : "ticketId",
18848
+ "required" : true,
18849
+ "schema" : {
18850
+ "format" : "uuid",
18851
+ "type" : "string"
18852
+ }
18853
+ }, {
18854
+ "description" : "Identifiant de l'agent",
18855
+ "in" : "path",
18856
+ "name" : "agentId",
18857
+ "required" : true,
18858
+ "schema" : {
18859
+ "type" : "string"
18860
+ }
18861
+ } ],
18862
+ "requestBody" : {
18863
+ "content" : {
18864
+ "application/json" : {
18865
+ "schema" : {
18866
+ "$ref" : "#/components/schemas/TicketSessionMessageRequest"
18867
+ }
18868
+ }
18869
+ },
18870
+ "required" : true
18871
+ },
18872
+ "responses" : {
18873
+ "201" : {
18874
+ "content" : {
18875
+ "application/json" : {
18876
+ "schema" : {
18877
+ "$ref" : "#/components/schemas/TicketEvent"
18878
+ }
18879
+ }
18880
+ },
18881
+ "description" : "Message mis en file ; l'événement de trace du ticket"
18882
+ },
18883
+ "400" : {
18884
+ "description" : "Invalid body"
18885
+ },
18886
+ "401" : {
18887
+ "description" : "Unauthenticated"
18888
+ },
18889
+ "403" : {
18890
+ "description" : "Forbidden — the caller is not part of the organization or not a member of the project"
18891
+ },
18892
+ "404" : {
18893
+ "description" : "Not found"
18894
+ },
18895
+ "409" : {
18896
+ "description" : "Agent work is disabled for this project"
18897
+ }
18898
+ },
18899
+ "summary" : "Write to an agent in its work session on a ticket",
18900
+ "tags" : [ "tickets" ]
18901
+ }
18902
+ },
18791
18903
  "/tickets/{ticketId}/usage" : {
18792
18904
  "get" : {
18793
18905
  "description" : "Tokens consommés par les sessions de travail des agents sur le ticket et par les appels qu'elles ont faits à d'autres agents : au total, par modèle, et par agent puis par modèle.",
@@ -33082,6 +33194,82 @@
33082
33194
  "required" : [ "id", "type" ],
33083
33195
  "type" : "object"
33084
33196
  },
33197
+ "TicketThreads" : {
33198
+ "properties" : {
33199
+ "open" : {
33200
+ "description" : "Tous les tickets ouverts du projet",
33201
+ "items" : {
33202
+ "$ref" : "#/components/schemas/TicketThread"
33203
+ },
33204
+ "type" : "array"
33205
+ },
33206
+ "done" : {
33207
+ "description" : "Les tickets terminés les plus récents",
33208
+ "items" : {
33209
+ "$ref" : "#/components/schemas/TicketThread"
33210
+ },
33211
+ "type" : "array"
33212
+ },
33213
+ "doneTotal" : {
33214
+ "description" : "Nombre total de tickets terminés",
33215
+ "type" : "integer"
33216
+ }
33217
+ },
33218
+ "required" : [ "done", "doneTotal", "open" ],
33219
+ "type" : "object"
33220
+ },
33221
+ "TicketThread" : {
33222
+ "allOf" : [ {
33223
+ "$ref" : "#/components/schemas/Ticket"
33224
+ }, {
33225
+ "properties" : {
33226
+ "sessions" : {
33227
+ "items" : {
33228
+ "$ref" : "#/components/schemas/TicketThreadSession"
33229
+ },
33230
+ "type" : "array"
33231
+ }
33232
+ },
33233
+ "required" : [ "sessions" ],
33234
+ "type" : "object"
33235
+ } ]
33236
+ },
33237
+ "TicketThreadSession" : {
33238
+ "description" : "Une session de travail d'agent, sous-fil d'un ticket dans la vue « Fils ». Le statut vient des réveils et des questions en attente, sans relire la conversation.",
33239
+ "properties" : {
33240
+ "agentId" : {
33241
+ "type" : "string"
33242
+ },
33243
+ "status" : {
33244
+ "$ref" : "#/components/schemas/TicketAgentRunStatus"
33245
+ },
33246
+ "conversationId" : {
33247
+ "description" : "null tant que l'agent n'a pas commencé (premier réveil en attente)",
33248
+ "format" : "uuid",
33249
+ "nullable" : true,
33250
+ "type" : "string"
33251
+ },
33252
+ "planDone" : {
33253
+ "description" : "Étapes terminées du plan publié",
33254
+ "type" : "integer"
33255
+ },
33256
+ "planTotal" : {
33257
+ "description" : "Étapes du plan publié ; 0 sans plan",
33258
+ "type" : "integer"
33259
+ },
33260
+ "currentStep" : {
33261
+ "description" : "Étape en cours du plan",
33262
+ "nullable" : true,
33263
+ "type" : "string"
33264
+ },
33265
+ "lastRunAt" : {
33266
+ "nullable" : true,
33267
+ "type" : "string"
33268
+ }
33269
+ },
33270
+ "required" : [ "agentId", "conversationId", "currentStep", "lastRunAt", "planDone", "planTotal", "status" ],
33271
+ "type" : "object"
33272
+ },
33085
33273
  "UpdateTicketRequest" : {
33086
33274
  "description" : "Mise à jour partielle — une propriété absente reste inchangée. Le projet ne change pas.",
33087
33275
  "properties" : {
@@ -33249,6 +33437,56 @@
33249
33437
  "required" : [ "status", "title" ],
33250
33438
  "type" : "object"
33251
33439
  },
33440
+ "TicketSessionMessageRequest" : {
33441
+ "properties" : {
33442
+ "body" : {
33443
+ "maxLength" : 20000,
33444
+ "minLength" : 1,
33445
+ "type" : "string"
33446
+ }
33447
+ },
33448
+ "required" : [ "body" ],
33449
+ "type" : "object"
33450
+ },
33451
+ "TicketEvent" : {
33452
+ "properties" : {
33453
+ "id" : {
33454
+ "format" : "uuid",
33455
+ "type" : "string"
33456
+ },
33457
+ "ticketId" : {
33458
+ "format" : "uuid",
33459
+ "type" : "string"
33460
+ },
33461
+ "author" : {
33462
+ "$ref" : "#/components/schemas/ActorRef"
33463
+ },
33464
+ "kind" : {
33465
+ "$ref" : "#/components/schemas/TicketEventKind"
33466
+ },
33467
+ "body" : {
33468
+ "nullable" : true,
33469
+ "type" : "string"
33470
+ },
33471
+ "data" : {
33472
+ "additionalProperties" : true,
33473
+ "description" : "Détails selon le type : pour event, { action, from?, to?, member? } ; pour report, { title } ; pour question, { humanRequest: TicketQuestion } ; pour approval, { approval: TicketApproval } ; mentions dans { mentions: MemberRef[] }.",
33474
+ "type" : "object"
33475
+ },
33476
+ "artifactIds" : {
33477
+ "items" : {
33478
+ "format" : "uuid",
33479
+ "type" : "string"
33480
+ },
33481
+ "type" : "array"
33482
+ },
33483
+ "createdAt" : {
33484
+ "type" : "string"
33485
+ }
33486
+ },
33487
+ "required" : [ "artifactIds", "author", "body", "createdAt", "data", "id", "kind", "ticketId" ],
33488
+ "type" : "object"
33489
+ },
33252
33490
  "TicketUsage" : {
33253
33491
  "description" : "Consommation du ticket : sessions de travail des agents et conversations ouvertes par leurs appels à d'autres agents. Modèles et agents triés du plus consommateur au moins consommateur.",
33254
33492
  "properties" : {
@@ -33340,45 +33578,6 @@
33340
33578
  "required" : [ "agentId", "inputTokens", "models", "outputTokens", "reasoningTokens", "totalTokens" ],
33341
33579
  "type" : "object"
33342
33580
  },
33343
- "TicketEvent" : {
33344
- "properties" : {
33345
- "id" : {
33346
- "format" : "uuid",
33347
- "type" : "string"
33348
- },
33349
- "ticketId" : {
33350
- "format" : "uuid",
33351
- "type" : "string"
33352
- },
33353
- "author" : {
33354
- "$ref" : "#/components/schemas/ActorRef"
33355
- },
33356
- "kind" : {
33357
- "$ref" : "#/components/schemas/TicketEventKind"
33358
- },
33359
- "body" : {
33360
- "nullable" : true,
33361
- "type" : "string"
33362
- },
33363
- "data" : {
33364
- "additionalProperties" : true,
33365
- "description" : "Détails selon le type : pour event, { action, from?, to?, member? } ; pour report, { title } ; pour question, { humanRequest: TicketQuestion } ; pour approval, { approval: TicketApproval } ; mentions dans { mentions: MemberRef[] }.",
33366
- "type" : "object"
33367
- },
33368
- "artifactIds" : {
33369
- "items" : {
33370
- "format" : "uuid",
33371
- "type" : "string"
33372
- },
33373
- "type" : "array"
33374
- },
33375
- "createdAt" : {
33376
- "type" : "string"
33377
- }
33378
- },
33379
- "required" : [ "artifactIds", "author", "body", "createdAt", "data", "id", "kind", "ticketId" ],
33380
- "type" : "object"
33381
- },
33382
33581
  "CreateTicketEventRequest" : {
33383
33582
  "description" : "Un commentaire humain ; les @mentions sont détectées dans le texte.",
33384
33583
  "properties" : {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breign/client",
3
- "version": "1.0.189",
3
+ "version": "1.0.190",
4
4
  "main": "dist/index.js",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",