@breign/client 1.0.194 → 1.0.195

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/apis/ExecutionNodesApi.d.ts +2 -2
  2. package/dist/apis/ExecutionNodesApi.js +2 -2
  3. package/dist/apis/NodeGroupsApi.d.ts +126 -0
  4. package/dist/apis/NodeGroupsApi.js +304 -0
  5. package/dist/apis/index.d.ts +1 -0
  6. package/dist/apis/index.js +1 -0
  7. package/dist/models/AgentExecutionGroupChoiceRuntimesInnerUio.d.ts +46 -0
  8. package/dist/models/AgentExecutionGroupChoiceRuntimesInnerUio.js +62 -0
  9. package/dist/models/AgentExecutionGroupChoiceUio.d.ts +70 -0
  10. package/dist/models/AgentExecutionGroupChoiceUio.js +76 -0
  11. package/dist/models/AgentExecutionGroupChoiceWorkspacesInnerUio.d.ts +44 -0
  12. package/dist/models/AgentExecutionGroupChoiceWorkspacesInnerUio.js +58 -0
  13. package/dist/models/AgentExecutionGroupUio.d.ts +38 -0
  14. package/dist/models/AgentExecutionGroupUio.js +54 -0
  15. package/dist/models/AgentExecutionUio.d.ts +27 -0
  16. package/dist/models/AgentExecutionUio.js +14 -1
  17. package/dist/models/CreateNodeGroupRequestUio.d.ts +56 -0
  18. package/dist/models/CreateNodeGroupRequestUio.js +58 -0
  19. package/dist/models/NodeGroupAgentUio.d.ts +58 -0
  20. package/dist/models/NodeGroupAgentUio.js +70 -0
  21. package/dist/models/NodeGroupCandidateUio.d.ts +115 -0
  22. package/dist/models/NodeGroupCandidateUio.js +109 -0
  23. package/dist/models/NodeGroupDelaysUio.d.ts +44 -0
  24. package/dist/models/NodeGroupDelaysUio.js +52 -0
  25. package/dist/models/NodeGroupDetailUio.d.ts +100 -0
  26. package/dist/models/NodeGroupDetailUio.js +96 -0
  27. package/dist/models/NodeGroupMemberNodeUio.d.ts +115 -0
  28. package/dist/models/NodeGroupMemberNodeUio.js +109 -0
  29. package/dist/models/NodeGroupNodeUio.d.ts +103 -0
  30. package/dist/models/NodeGroupNodeUio.js +101 -0
  31. package/dist/models/NodeGroupSummaryUio.d.ts +116 -0
  32. package/dist/models/NodeGroupSummaryUio.js +106 -0
  33. package/dist/models/NodeGroupUio.d.ts +86 -0
  34. package/dist/models/NodeGroupUio.js +86 -0
  35. package/dist/models/SetAgentExecutionRequestUio.d.ts +20 -1
  36. package/dist/models/SetAgentExecutionRequestUio.js +8 -1
  37. package/dist/models/UpdateNodeGroupRequestUio.d.ts +56 -0
  38. package/dist/models/UpdateNodeGroupRequestUio.js +56 -0
  39. package/dist/models/index.d.ts +14 -0
  40. package/dist/models/index.js +14 -0
  41. package/dist/openapi.json +714 -5
  42. package/package.json +1 -1
package/dist/openapi.json CHANGED
@@ -96,6 +96,9 @@
96
96
  }, {
97
97
  "description" : "Breign Mate execution nodes, the agents that run on them and their turns",
98
98
  "name" : "execution-nodes"
99
+ }, {
100
+ "description" : "Groups of execution nodes of an organization, like runners",
101
+ "name" : "node-groups"
99
102
  }, {
100
103
  "description" : "Actions and mentions waiting for the current user",
101
104
  "name" : "inbox"
@@ -19960,6 +19963,353 @@
19960
19963
  "tags" : [ "execution-nodes" ]
19961
19964
  }
19962
19965
  },
19966
+ "/organizations/{organizationId}/node-groups" : {
19967
+ "get" : {
19968
+ "description" : "Les groupes de nœuds de l'organisation, avec leurs nœuds (en ligne ou non), leurs emplacements et le nombre d'agents rattachés. Demande `nodeGroup.read`.",
19969
+ "operationId" : "listNodeGroups",
19970
+ "parameters" : [ {
19971
+ "description" : "ID of the organization",
19972
+ "in" : "path",
19973
+ "name" : "organizationId",
19974
+ "required" : true,
19975
+ "schema" : {
19976
+ "type" : "string"
19977
+ }
19978
+ } ],
19979
+ "responses" : {
19980
+ "200" : {
19981
+ "content" : {
19982
+ "application/json" : {
19983
+ "schema" : {
19984
+ "items" : {
19985
+ "$ref" : "#/components/schemas/NodeGroupSummary"
19986
+ },
19987
+ "type" : "array"
19988
+ }
19989
+ }
19990
+ },
19991
+ "description" : "OK"
19992
+ },
19993
+ "401" : {
19994
+ "description" : "Unauthenticated"
19995
+ },
19996
+ "403" : {
19997
+ "description" : "Forbidden — missing nodeGroup.read"
19998
+ }
19999
+ },
20000
+ "summary" : "List the node groups of an organization",
20001
+ "tags" : [ "node-groups" ]
20002
+ },
20003
+ "post" : {
20004
+ "description" : "Crée un groupe vide ; les délais absents prennent les valeurs par défaut (attente du nœud de l'environnement 10 min, libération après 24 h, expiration de la file après 24 h). Demande `nodeGroup.create`.",
20005
+ "operationId" : "createNodeGroup",
20006
+ "parameters" : [ {
20007
+ "description" : "ID of the organization",
20008
+ "in" : "path",
20009
+ "name" : "organizationId",
20010
+ "required" : true,
20011
+ "schema" : {
20012
+ "type" : "string"
20013
+ }
20014
+ } ],
20015
+ "requestBody" : {
20016
+ "content" : {
20017
+ "application/json" : {
20018
+ "schema" : {
20019
+ "$ref" : "#/components/schemas/CreateNodeGroupRequest"
20020
+ }
20021
+ }
20022
+ },
20023
+ "required" : true
20024
+ },
20025
+ "responses" : {
20026
+ "201" : {
20027
+ "content" : {
20028
+ "application/json" : {
20029
+ "schema" : {
20030
+ "$ref" : "#/components/schemas/NodeGroupDetail"
20031
+ }
20032
+ }
20033
+ },
20034
+ "description" : "Created"
20035
+ },
20036
+ "400" : {
20037
+ "description" : "Invalid name or delays"
20038
+ },
20039
+ "401" : {
20040
+ "description" : "Unauthenticated"
20041
+ },
20042
+ "403" : {
20043
+ "description" : "Forbidden — missing nodeGroup.create"
20044
+ },
20045
+ "409" : {
20046
+ "description" : "A group of this name already exists (NODE_GROUP_NAME_TAKEN)"
20047
+ }
20048
+ },
20049
+ "summary" : "Create a node group",
20050
+ "tags" : [ "node-groups" ]
20051
+ }
20052
+ },
20053
+ "/organizations/{organizationId}/node-group-candidates" : {
20054
+ "get" : {
20055
+ "description" : "Les nœuds associés à l'organisation, avec ce qui empêche chacun d'entrer dans un groupe (un nœud doit parler le contrat v2 : Breign Mate ou Breign CLI à jour). Demande `nodeGroup.read`.",
20056
+ "operationId" : "listNodeGroupCandidates",
20057
+ "parameters" : [ {
20058
+ "description" : "ID of the organization",
20059
+ "in" : "path",
20060
+ "name" : "organizationId",
20061
+ "required" : true,
20062
+ "schema" : {
20063
+ "type" : "string"
20064
+ }
20065
+ } ],
20066
+ "responses" : {
20067
+ "200" : {
20068
+ "content" : {
20069
+ "application/json" : {
20070
+ "schema" : {
20071
+ "items" : {
20072
+ "$ref" : "#/components/schemas/NodeGroupCandidate"
20073
+ },
20074
+ "type" : "array"
20075
+ }
20076
+ }
20077
+ },
20078
+ "description" : "OK"
20079
+ },
20080
+ "401" : {
20081
+ "description" : "Unauthenticated"
20082
+ },
20083
+ "403" : {
20084
+ "description" : "Forbidden — missing nodeGroup.read"
20085
+ }
20086
+ },
20087
+ "summary" : "List the nodes that can join a node group",
20088
+ "tags" : [ "node-groups" ]
20089
+ }
20090
+ },
20091
+ "/node-groups/{groupId}" : {
20092
+ "delete" : {
20093
+ "description" : "Supprime le groupe et ses membres. Refusé tant qu'un agent y est rattaché. Demande `nodeGroup.delete`.",
20094
+ "operationId" : "deleteNodeGroup",
20095
+ "parameters" : [ {
20096
+ "description" : "ID of the node group",
20097
+ "in" : "path",
20098
+ "name" : "groupId",
20099
+ "required" : true,
20100
+ "schema" : {
20101
+ "format" : "uuid",
20102
+ "type" : "string"
20103
+ }
20104
+ } ],
20105
+ "responses" : {
20106
+ "204" : {
20107
+ "description" : "Deleted"
20108
+ },
20109
+ "401" : {
20110
+ "description" : "Unauthenticated"
20111
+ },
20112
+ "403" : {
20113
+ "description" : "Forbidden — missing nodeGroup.delete"
20114
+ },
20115
+ "404" : {
20116
+ "description" : "Group not found"
20117
+ },
20118
+ "409" : {
20119
+ "description" : "Agents are still bound to the group (NODE_GROUP_IN_USE)"
20120
+ }
20121
+ },
20122
+ "summary" : "Delete a node group",
20123
+ "tags" : [ "node-groups" ]
20124
+ },
20125
+ "get" : {
20126
+ "description" : "Le groupe, ses nœuds et les agents qui y sont rattachés. Demande `nodeGroup.read`.",
20127
+ "operationId" : "getNodeGroup",
20128
+ "parameters" : [ {
20129
+ "description" : "ID of the node group",
20130
+ "in" : "path",
20131
+ "name" : "groupId",
20132
+ "required" : true,
20133
+ "schema" : {
20134
+ "format" : "uuid",
20135
+ "type" : "string"
20136
+ }
20137
+ } ],
20138
+ "responses" : {
20139
+ "200" : {
20140
+ "content" : {
20141
+ "application/json" : {
20142
+ "schema" : {
20143
+ "$ref" : "#/components/schemas/NodeGroupDetail"
20144
+ }
20145
+ }
20146
+ },
20147
+ "description" : "OK"
20148
+ },
20149
+ "401" : {
20150
+ "description" : "Unauthenticated"
20151
+ },
20152
+ "403" : {
20153
+ "description" : "Forbidden — missing nodeGroup.read in the organization of the group"
20154
+ },
20155
+ "404" : {
20156
+ "description" : "Group not found"
20157
+ }
20158
+ },
20159
+ "summary" : "Get a node group",
20160
+ "tags" : [ "node-groups" ]
20161
+ },
20162
+ "patch" : {
20163
+ "description" : "Renomme le groupe ou change ses délais. Demande `nodeGroup.update`.",
20164
+ "operationId" : "updateNodeGroup",
20165
+ "parameters" : [ {
20166
+ "description" : "ID of the node group",
20167
+ "in" : "path",
20168
+ "name" : "groupId",
20169
+ "required" : true,
20170
+ "schema" : {
20171
+ "format" : "uuid",
20172
+ "type" : "string"
20173
+ }
20174
+ } ],
20175
+ "requestBody" : {
20176
+ "content" : {
20177
+ "application/json" : {
20178
+ "schema" : {
20179
+ "$ref" : "#/components/schemas/UpdateNodeGroupRequest"
20180
+ }
20181
+ }
20182
+ },
20183
+ "required" : true
20184
+ },
20185
+ "responses" : {
20186
+ "200" : {
20187
+ "content" : {
20188
+ "application/json" : {
20189
+ "schema" : {
20190
+ "$ref" : "#/components/schemas/NodeGroupDetail"
20191
+ }
20192
+ }
20193
+ },
20194
+ "description" : "OK"
20195
+ },
20196
+ "400" : {
20197
+ "description" : "Invalid name or delays"
20198
+ },
20199
+ "401" : {
20200
+ "description" : "Unauthenticated"
20201
+ },
20202
+ "403" : {
20203
+ "description" : "Forbidden — missing nodeGroup.update"
20204
+ },
20205
+ "404" : {
20206
+ "description" : "Group not found"
20207
+ },
20208
+ "409" : {
20209
+ "description" : "A group of this name already exists (NODE_GROUP_NAME_TAKEN)"
20210
+ }
20211
+ },
20212
+ "summary" : "Update a node group",
20213
+ "tags" : [ "node-groups" ]
20214
+ }
20215
+ },
20216
+ "/node-groups/{groupId}/nodes/{nodeId}" : {
20217
+ "delete" : {
20218
+ "description" : "Retire le nœud du groupe. Demande `nodeGroup.update`.",
20219
+ "operationId" : "removeNodeGroupNode",
20220
+ "parameters" : [ {
20221
+ "description" : "ID of the node group",
20222
+ "in" : "path",
20223
+ "name" : "groupId",
20224
+ "required" : true,
20225
+ "schema" : {
20226
+ "format" : "uuid",
20227
+ "type" : "string"
20228
+ }
20229
+ }, {
20230
+ "description" : "ID of the Breign Mate execution node",
20231
+ "in" : "path",
20232
+ "name" : "nodeId",
20233
+ "required" : true,
20234
+ "schema" : {
20235
+ "format" : "uuid",
20236
+ "type" : "string"
20237
+ }
20238
+ } ],
20239
+ "responses" : {
20240
+ "200" : {
20241
+ "content" : {
20242
+ "application/json" : {
20243
+ "schema" : {
20244
+ "$ref" : "#/components/schemas/NodeGroupDetail"
20245
+ }
20246
+ }
20247
+ },
20248
+ "description" : "OK"
20249
+ },
20250
+ "401" : {
20251
+ "description" : "Unauthenticated"
20252
+ },
20253
+ "403" : {
20254
+ "description" : "Forbidden — missing nodeGroup.update"
20255
+ },
20256
+ "404" : {
20257
+ "description" : "Group not found"
20258
+ }
20259
+ },
20260
+ "summary" : "Remove a node from a node group",
20261
+ "tags" : [ "node-groups" ]
20262
+ },
20263
+ "put" : {
20264
+ "description" : "Ajoute un nœud associé à l'organisation du groupe et parlant le contrat v2 ; sans effet s'il y est déjà. Demande `nodeGroup.update`.",
20265
+ "operationId" : "addNodeGroupNode",
20266
+ "parameters" : [ {
20267
+ "description" : "ID of the node group",
20268
+ "in" : "path",
20269
+ "name" : "groupId",
20270
+ "required" : true,
20271
+ "schema" : {
20272
+ "format" : "uuid",
20273
+ "type" : "string"
20274
+ }
20275
+ }, {
20276
+ "description" : "ID of the Breign Mate execution node",
20277
+ "in" : "path",
20278
+ "name" : "nodeId",
20279
+ "required" : true,
20280
+ "schema" : {
20281
+ "format" : "uuid",
20282
+ "type" : "string"
20283
+ }
20284
+ } ],
20285
+ "responses" : {
20286
+ "200" : {
20287
+ "content" : {
20288
+ "application/json" : {
20289
+ "schema" : {
20290
+ "$ref" : "#/components/schemas/NodeGroupDetail"
20291
+ }
20292
+ }
20293
+ },
20294
+ "description" : "OK"
20295
+ },
20296
+ "401" : {
20297
+ "description" : "Unauthenticated"
20298
+ },
20299
+ "403" : {
20300
+ "description" : "Forbidden — missing nodeGroup.update"
20301
+ },
20302
+ "404" : {
20303
+ "description" : "Group not found"
20304
+ },
20305
+ "409" : {
20306
+ "description" : "The node cannot join the group (NODE_NOT_ELIGIBLE)"
20307
+ }
20308
+ },
20309
+ "summary" : "Add a node to a node group",
20310
+ "tags" : [ "node-groups" ]
20311
+ }
20312
+ },
19963
20313
  "/organizations/{organizationId}/support-settings" : {
19964
20314
  "get" : {
19965
20315
  "description" : "Lisibles par les membres de l'organisation, pour afficher la page Support.",
@@ -21013,7 +21363,7 @@
21013
21363
  "tags" : [ "execution-nodes" ]
21014
21364
  },
21015
21365
  "put" : {
21016
- "description" : "Ramène l'agent sur le serveur Breign, ou le fait tourner sur un runtime d'un nœud. Seul le propriétaire du nœud peut le choisir, sur un runtime et un alias que le nœud a déclarés ; pour un agent partagé, il faut aussi être admin de l'organisation (ou créateur d'un agent personnel).",
21366
+ "description" : "Ramène l'agent sur le serveur Breign, ou le fait tourner sur un runtime d'un nœud. Seul le propriétaire du nœud peut le choisir, sur un runtime et un alias que le nœud a déclarés ; pour un agent partagé, il faut aussi `agent.update` (ou être créateur d'un agent personnel). Un groupe de nœuds demande `agent.update` et `nodeGroup.read`.",
21017
21367
  "operationId" : "setAgentExecution",
21018
21368
  "parameters" : [ {
21019
21369
  "description" : "ID of the agent",
@@ -23091,6 +23441,16 @@
23091
23441
  "type" : "string"
23092
23442
  }
23093
23443
  },
23444
+ "nodeGroupIdPath" : {
23445
+ "description" : "ID of the node group",
23446
+ "in" : "path",
23447
+ "name" : "groupId",
23448
+ "required" : true,
23449
+ "schema" : {
23450
+ "format" : "uuid",
23451
+ "type" : "string"
23452
+ }
23453
+ },
23094
23454
  "fleetInstallationIdPath" : {
23095
23455
  "description" : "ID of the fleet installation",
23096
23456
  "in" : "path",
@@ -34481,6 +34841,245 @@
34481
34841
  "enum" : [ "members", "admins", "none" ],
34482
34842
  "type" : "string"
34483
34843
  },
34844
+ "NodeGroupSummary" : {
34845
+ "allOf" : [ {
34846
+ "$ref" : "#/components/schemas/NodeGroup"
34847
+ }, {
34848
+ "properties" : {
34849
+ "nodeCount" : {
34850
+ "type" : "integer"
34851
+ },
34852
+ "onlineNodeCount" : {
34853
+ "type" : "integer"
34854
+ },
34855
+ "slots" : {
34856
+ "description" : "Emplacements de tous les nœuds du groupe",
34857
+ "type" : "integer"
34858
+ },
34859
+ "onlineSlots" : {
34860
+ "description" : "Emplacements des nœuds en ligne",
34861
+ "type" : "integer"
34862
+ },
34863
+ "agentCount" : {
34864
+ "type" : "integer"
34865
+ }
34866
+ },
34867
+ "required" : [ "agentCount", "nodeCount", "onlineNodeCount", "onlineSlots", "slots" ],
34868
+ "type" : "object"
34869
+ } ]
34870
+ },
34871
+ "NodeGroup" : {
34872
+ "allOf" : [ {
34873
+ "$ref" : "#/components/schemas/NodeGroupDelays"
34874
+ }, {
34875
+ "properties" : {
34876
+ "id" : {
34877
+ "format" : "uuid",
34878
+ "type" : "string"
34879
+ },
34880
+ "organizationId" : {
34881
+ "type" : "string"
34882
+ },
34883
+ "name" : {
34884
+ "type" : "string"
34885
+ },
34886
+ "description" : {
34887
+ "type" : "string"
34888
+ },
34889
+ "createdByUserId" : {
34890
+ "type" : "string"
34891
+ },
34892
+ "createdAt" : {
34893
+ "type" : "string"
34894
+ },
34895
+ "updatedAt" : {
34896
+ "type" : "string"
34897
+ }
34898
+ },
34899
+ "required" : [ "createdAt", "createdByUserId", "description", "envIdleTtlMs", "envWaitMs", "id", "name", "organizationId", "queueExpiryMs", "updatedAt" ],
34900
+ "type" : "object"
34901
+ } ]
34902
+ },
34903
+ "NodeGroupDelays" : {
34904
+ "properties" : {
34905
+ "envWaitMs" : {
34906
+ "description" : "Attente du nœud qui garde l'environnement d'une conversation, en millisecondes, avant d'en prendre un autre ; `null` : sans limite ; 0 : aucune attente.",
34907
+ "nullable" : true,
34908
+ "type" : "integer"
34909
+ },
34910
+ "envIdleTtlMs" : {
34911
+ "description" : "Libération d'un environnement après ce temps sans activité ; `null` : jamais.",
34912
+ "nullable" : true,
34913
+ "type" : "integer"
34914
+ },
34915
+ "queueExpiryMs" : {
34916
+ "description" : "Une exécution qu'aucun nœud ne prend dans ce délai échoue.",
34917
+ "type" : "integer"
34918
+ }
34919
+ },
34920
+ "type" : "object"
34921
+ },
34922
+ "CreateNodeGroupRequest" : {
34923
+ "allOf" : [ {
34924
+ "$ref" : "#/components/schemas/NodeGroupDelays"
34925
+ }, {
34926
+ "properties" : {
34927
+ "name" : {
34928
+ "maxLength" : 80,
34929
+ "type" : "string"
34930
+ },
34931
+ "description" : {
34932
+ "maxLength" : 500,
34933
+ "type" : "string"
34934
+ }
34935
+ },
34936
+ "required" : [ "name" ],
34937
+ "type" : "object"
34938
+ } ]
34939
+ },
34940
+ "NodeGroupDetail" : {
34941
+ "allOf" : [ {
34942
+ "$ref" : "#/components/schemas/NodeGroup"
34943
+ }, {
34944
+ "properties" : {
34945
+ "nodes" : {
34946
+ "items" : {
34947
+ "$ref" : "#/components/schemas/NodeGroupMemberNode"
34948
+ },
34949
+ "type" : "array"
34950
+ },
34951
+ "agents" : {
34952
+ "items" : {
34953
+ "$ref" : "#/components/schemas/NodeGroupAgent"
34954
+ },
34955
+ "type" : "array"
34956
+ }
34957
+ },
34958
+ "required" : [ "agents", "nodes" ],
34959
+ "type" : "object"
34960
+ } ]
34961
+ },
34962
+ "NodeGroupMemberNode" : {
34963
+ "allOf" : [ {
34964
+ "$ref" : "#/components/schemas/NodeGroupNode"
34965
+ }, {
34966
+ "properties" : {
34967
+ "addedByUserId" : {
34968
+ "type" : "string"
34969
+ },
34970
+ "addedAt" : {
34971
+ "type" : "string"
34972
+ }
34973
+ },
34974
+ "required" : [ "addedAt", "addedByUserId" ],
34975
+ "type" : "object"
34976
+ } ]
34977
+ },
34978
+ "NodeGroupNode" : {
34979
+ "properties" : {
34980
+ "id" : {
34981
+ "format" : "uuid",
34982
+ "type" : "string"
34983
+ },
34984
+ "name" : {
34985
+ "type" : "string"
34986
+ },
34987
+ "os" : {
34988
+ "enum" : [ "macos", "windows", "linux" ],
34989
+ "type" : "string"
34990
+ },
34991
+ "appVersion" : {
34992
+ "type" : "string"
34993
+ },
34994
+ "connected" : {
34995
+ "type" : "boolean"
34996
+ },
34997
+ "revoked" : {
34998
+ "type" : "boolean"
34999
+ },
35000
+ "lastSeenAt" : {
35001
+ "nullable" : true,
35002
+ "type" : "string"
35003
+ },
35004
+ "slots" : {
35005
+ "description" : "Exécutions que le nœud mène en même temps",
35006
+ "type" : "integer"
35007
+ },
35008
+ "contractVersion" : {
35009
+ "description" : "Version du contrat parlée par le nœud ; un nœud v1 n'entre dans aucun groupe.",
35010
+ "type" : "integer"
35011
+ },
35012
+ "runtimes" : {
35013
+ "items" : {
35014
+ "$ref" : "#/components/schemas/ExecutionNodeRuntime"
35015
+ },
35016
+ "type" : "array"
35017
+ },
35018
+ "workspaces" : {
35019
+ "items" : {
35020
+ "$ref" : "#/components/schemas/ExecutionNodeWorkspace"
35021
+ },
35022
+ "type" : "array"
35023
+ }
35024
+ },
35025
+ "required" : [ "appVersion", "connected", "contractVersion", "id", "lastSeenAt", "name", "os", "revoked", "runtimes", "slots", "workspaces" ],
35026
+ "type" : "object"
35027
+ },
35028
+ "NodeGroupAgent" : {
35029
+ "properties" : {
35030
+ "agentId" : {
35031
+ "type" : "string"
35032
+ },
35033
+ "agentName" : {
35034
+ "nullable" : true,
35035
+ "type" : "string"
35036
+ },
35037
+ "runtime" : {
35038
+ "enum" : [ "claude", "opencode" ],
35039
+ "type" : "string"
35040
+ },
35041
+ "workspaceAlias" : {
35042
+ "type" : "string"
35043
+ }
35044
+ },
35045
+ "required" : [ "agentId", "agentName", "runtime", "workspaceAlias" ],
35046
+ "type" : "object"
35047
+ },
35048
+ "NodeGroupCandidate" : {
35049
+ "allOf" : [ {
35050
+ "$ref" : "#/components/schemas/NodeGroupNode"
35051
+ }, {
35052
+ "properties" : {
35053
+ "eligible" : {
35054
+ "type" : "boolean"
35055
+ },
35056
+ "ineligibleReason" : {
35057
+ "description" : "Pourquoi le nœud ne peut pas entrer dans un groupe (mise à jour à faire…)",
35058
+ "nullable" : true,
35059
+ "type" : "string"
35060
+ }
35061
+ },
35062
+ "required" : [ "eligible", "ineligibleReason" ],
35063
+ "type" : "object"
35064
+ } ]
35065
+ },
35066
+ "UpdateNodeGroupRequest" : {
35067
+ "allOf" : [ {
35068
+ "$ref" : "#/components/schemas/NodeGroupDelays"
35069
+ }, {
35070
+ "properties" : {
35071
+ "name" : {
35072
+ "maxLength" : 80,
35073
+ "type" : "string"
35074
+ },
35075
+ "description" : {
35076
+ "maxLength" : 500,
35077
+ "type" : "string"
35078
+ }
35079
+ },
35080
+ "type" : "object"
35081
+ } ]
35082
+ },
34484
35083
  "SupportSettings" : {
34485
35084
  "description" : "La page Support d'une organisation. Réglée par les superadmins ; lue par les membres pour afficher la page.",
34486
35085
  "properties" : {
@@ -35425,9 +36024,21 @@
35425
36024
  "AgentExecution" : {
35426
36025
  "properties" : {
35427
36026
  "mode" : {
35428
- "enum" : [ "server", "node" ],
36027
+ "enum" : [ "server", "node", "group" ],
35429
36028
  "type" : "string"
35430
36029
  },
36030
+ "group" : {
36031
+ "$ref" : "#/components/schemas/AgentExecution_group"
36032
+ },
36033
+ "keepEnvironment" : {
36034
+ "description" : "Mode group — les messages suivants d'une conversation repartent sur le nœud qui en garde l'environnement.",
36035
+ "type" : "boolean"
36036
+ },
36037
+ "envWaitMs" : {
36038
+ "description" : "Mode group — attente du nœud de l'environnement ; `null` celle du groupe, -1 sans limite.",
36039
+ "nullable" : true,
36040
+ "type" : "integer"
36041
+ },
35431
36042
  "node" : {
35432
36043
  "$ref" : "#/components/schemas/AgentExecution_node"
35433
36044
  },
@@ -35446,9 +36057,17 @@
35446
36057
  "$ref" : "#/components/schemas/AgentExecutionNodeChoice"
35447
36058
  },
35448
36059
  "type" : "array"
36060
+ },
36061
+ "availableGroups" : {
36062
+ "description" : "Nul quand les groupes de nœuds sont éteints ou que l'utilisateur n'a pas `nodeGroup.read`.",
36063
+ "items" : {
36064
+ "$ref" : "#/components/schemas/AgentExecutionGroupChoice"
36065
+ },
36066
+ "nullable" : true,
36067
+ "type" : "array"
35449
36068
  }
35450
36069
  },
35451
- "required" : [ "availableNodes", "mode" ],
36070
+ "required" : [ "availableGroups", "availableNodes", "mode" ],
35452
36071
  "type" : "object"
35453
36072
  },
35454
36073
  "AgentExecutionNodeChoice" : {
@@ -35481,16 +36100,27 @@
35481
36100
  "type" : "object"
35482
36101
  },
35483
36102
  "SetAgentExecutionRequest" : {
35484
- "description" : "`{ mode: server }` ramène l'agent sur le serveur Breign. `{ mode: node, … }` le fait tourner sur un nœud ; seul son propriétaire peut le choisir, sur un runtime et un alias déclarés.",
36103
+ "description" : "`{ mode: server }` ramène l'agent sur le serveur Breign. `{ mode: node, … }` le fait tourner sur un nœud ; seul son propriétaire peut le choisir, sur un runtime et un alias déclarés. `{ mode: group, … }` le rattache à un groupe de nœuds de son organisation (`nodeGroup.read`).",
35485
36104
  "properties" : {
35486
36105
  "mode" : {
35487
- "enum" : [ "server", "node" ],
36106
+ "enum" : [ "server", "node", "group" ],
35488
36107
  "type" : "string"
35489
36108
  },
35490
36109
  "nodeId" : {
35491
36110
  "format" : "uuid",
35492
36111
  "type" : "string"
35493
36112
  },
36113
+ "groupId" : {
36114
+ "format" : "uuid",
36115
+ "type" : "string"
36116
+ },
36117
+ "keepEnvironment" : {
36118
+ "type" : "boolean"
36119
+ },
36120
+ "envWaitMs" : {
36121
+ "nullable" : true,
36122
+ "type" : "integer"
36123
+ },
35494
36124
  "runtime" : {
35495
36125
  "enum" : [ "claude", "opencode" ],
35496
36126
  "type" : "string"
@@ -37090,6 +37720,42 @@
37090
37720
  "enum" : [ "uploading", "ready" ],
37091
37721
  "type" : "string"
37092
37722
  },
37723
+ "AgentExecutionGroupChoice" : {
37724
+ "description" : "Un groupe que l'utilisateur peut choisir pour l'agent, avec ce que ses nœuds portent.",
37725
+ "properties" : {
37726
+ "id" : {
37727
+ "format" : "uuid",
37728
+ "type" : "string"
37729
+ },
37730
+ "name" : {
37731
+ "type" : "string"
37732
+ },
37733
+ "nodeCount" : {
37734
+ "type" : "integer"
37735
+ },
37736
+ "onlineNodeCount" : {
37737
+ "type" : "integer"
37738
+ },
37739
+ "envWaitMs" : {
37740
+ "nullable" : true,
37741
+ "type" : "integer"
37742
+ },
37743
+ "runtimes" : {
37744
+ "items" : {
37745
+ "$ref" : "#/components/schemas/AgentExecutionGroupChoice_runtimes_inner"
37746
+ },
37747
+ "type" : "array"
37748
+ },
37749
+ "workspaces" : {
37750
+ "items" : {
37751
+ "$ref" : "#/components/schemas/AgentExecutionGroupChoice_workspaces_inner"
37752
+ },
37753
+ "type" : "array"
37754
+ }
37755
+ },
37756
+ "required" : [ "envWaitMs", "id", "name", "nodeCount", "onlineNodeCount", "runtimes", "workspaces" ],
37757
+ "type" : "object"
37758
+ },
37093
37759
  "TicketProposalStatus" : {
37094
37760
  "enum" : [ "pending", "accepted", "rejected", "cancelled" ],
37095
37761
  "type" : "string"
@@ -39359,6 +40025,21 @@
39359
40025
  "required" : [ "callId", "question" ],
39360
40026
  "type" : "object"
39361
40027
  },
40028
+ "AgentExecution_group" : {
40029
+ "description" : "Présent en mode group ; `name` est nul si l'utilisateur ne voit pas les groupes.",
40030
+ "properties" : {
40031
+ "id" : {
40032
+ "format" : "uuid",
40033
+ "type" : "string"
40034
+ },
40035
+ "name" : {
40036
+ "nullable" : true,
40037
+ "type" : "string"
40038
+ }
40039
+ },
40040
+ "required" : [ "id", "name" ],
40041
+ "type" : "object"
40042
+ },
39362
40043
  "AgentExecution_node" : {
39363
40044
  "description" : "Présent en mode node",
39364
40045
  "properties" : {
@@ -39630,6 +40311,34 @@
39630
40311
  },
39631
40312
  "required" : [ "status" ],
39632
40313
  "type" : "object"
40314
+ },
40315
+ "AgentExecutionGroupChoice_runtimes_inner" : {
40316
+ "properties" : {
40317
+ "id" : {
40318
+ "enum" : [ "claude", "opencode" ],
40319
+ "type" : "string"
40320
+ },
40321
+ "nodeCount" : {
40322
+ "type" : "integer"
40323
+ }
40324
+ },
40325
+ "required" : [ "id", "nodeCount" ],
40326
+ "type" : "object"
40327
+ },
40328
+ "AgentExecutionGroupChoice_workspaces_inner" : {
40329
+ "properties" : {
40330
+ "alias" : {
40331
+ "type" : "string"
40332
+ },
40333
+ "label" : {
40334
+ "type" : "string"
40335
+ },
40336
+ "nodeCount" : {
40337
+ "type" : "integer"
40338
+ }
40339
+ },
40340
+ "required" : [ "alias", "label", "nodeCount" ],
40341
+ "type" : "object"
39633
40342
  }
39634
40343
  },
39635
40344
  "securitySchemes" : {