@epilot/sdk 2.0.0-beta.2 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +1 -0
  2. package/definitions/access-token-runtime.json +1 -0
  3. package/definitions/access-token.json +663 -0
  4. package/definitions/address-runtime.json +1 -0
  5. package/definitions/address-suggestions-runtime.json +1 -0
  6. package/definitions/address-suggestions.json +582 -0
  7. package/definitions/address.json +578 -0
  8. package/definitions/ai-agents-runtime.json +1 -0
  9. package/definitions/ai-agents.json +1711 -0
  10. package/definitions/app-runtime.json +1 -0
  11. package/definitions/app.json +4443 -0
  12. package/definitions/audit-logs-runtime.json +1 -0
  13. package/definitions/audit-logs.json +305 -0
  14. package/definitions/automation-runtime.json +1 -0
  15. package/definitions/automation.json +4850 -0
  16. package/definitions/billing-runtime.json +1 -0
  17. package/definitions/billing.json +837 -0
  18. package/definitions/blueprint-manifest-runtime.json +1 -0
  19. package/definitions/blueprint-manifest.json +3376 -0
  20. package/definitions/consent-runtime.json +1 -0
  21. package/definitions/consent.json +344 -0
  22. package/definitions/customer-portal-runtime.json +1 -0
  23. package/definitions/customer-portal.json +15000 -0
  24. package/definitions/dashboard-runtime.json +1 -0
  25. package/definitions/dashboard.json +484 -0
  26. package/definitions/data-management-runtime.json +1 -0
  27. package/definitions/data-management.json +962 -0
  28. package/definitions/deduplication-runtime.json +1 -0
  29. package/definitions/deduplication.json +183 -0
  30. package/definitions/design-runtime.json +1 -0
  31. package/definitions/design.json +1423 -0
  32. package/definitions/document-runtime.json +1 -0
  33. package/definitions/document.json +758 -0
  34. package/definitions/email-settings-runtime.json +1 -0
  35. package/definitions/email-settings.json +2627 -0
  36. package/definitions/email-template-runtime.json +1 -0
  37. package/definitions/email-template.json +1419 -0
  38. package/definitions/entity-mapping-runtime.json +1 -0
  39. package/definitions/entity-mapping.json +1642 -0
  40. package/definitions/entity-runtime.json +1 -0
  41. package/definitions/entity.json +10074 -0
  42. package/definitions/environments-runtime.json +1 -0
  43. package/definitions/environments.json +363 -0
  44. package/definitions/erp-integration-runtime.json +1 -0
  45. package/definitions/erp-integration.json +5845 -0
  46. package/definitions/event-catalog-runtime.json +1 -0
  47. package/definitions/event-catalog.json +1051 -0
  48. package/definitions/file-runtime.json +1 -0
  49. package/definitions/file.json +2842 -0
  50. package/definitions/iban-runtime.json +1 -0
  51. package/definitions/iban.json +132 -0
  52. package/definitions/journey-runtime.json +1 -0
  53. package/definitions/journey.json +2341 -0
  54. package/definitions/kanban-runtime.json +1 -0
  55. package/definitions/kanban.json +929 -0
  56. package/definitions/message-runtime.json +1 -0
  57. package/definitions/message.json +2660 -0
  58. package/definitions/metering-runtime.json +1 -0
  59. package/definitions/metering.json +2321 -0
  60. package/definitions/notes-runtime.json +1 -0
  61. package/definitions/notes.json +1531 -0
  62. package/definitions/notification-runtime.json +1 -0
  63. package/definitions/notification.json +1425 -0
  64. package/definitions/organization-runtime.json +1 -0
  65. package/definitions/organization.json +629 -0
  66. package/definitions/partner-directory-runtime.json +1 -0
  67. package/definitions/partner-directory.json +1718 -0
  68. package/definitions/permissions-runtime.json +1 -0
  69. package/definitions/permissions.json +1480 -0
  70. package/definitions/pricing-runtime.json +1 -0
  71. package/definitions/pricing-tier-runtime.json +1 -0
  72. package/definitions/pricing-tier.json +105 -0
  73. package/definitions/pricing.json +9884 -0
  74. package/definitions/purpose-runtime.json +1 -0
  75. package/definitions/purpose.json +524 -0
  76. package/definitions/sandbox-runtime.json +1 -0
  77. package/definitions/sandbox.json +453 -0
  78. package/definitions/submission-runtime.json +1 -0
  79. package/definitions/submission.json +313 -0
  80. package/definitions/targeting-runtime.json +1 -0
  81. package/definitions/targeting.json +1474 -0
  82. package/definitions/template-variables-runtime.json +1 -0
  83. package/definitions/template-variables.json +1408 -0
  84. package/definitions/user-runtime.json +1 -0
  85. package/definitions/user.json +2408 -0
  86. package/definitions/validation-rules-runtime.json +1 -0
  87. package/definitions/validation-rules.json +1491 -0
  88. package/definitions/webhooks-runtime.json +1 -0
  89. package/definitions/webhooks.json +1525 -0
  90. package/definitions/workflow-definition-runtime.json +1 -0
  91. package/definitions/workflow-definition.json +3417 -0
  92. package/definitions/workflow-runtime.json +1 -0
  93. package/definitions/workflow.json +4106 -0
  94. package/dist/apis/access-token.cjs +13 -84
  95. package/dist/apis/access-token.js +11 -82
  96. package/dist/apis/address-suggestions.cjs +13 -127
  97. package/dist/apis/address-suggestions.js +11 -125
  98. package/dist/apis/address.cjs +13 -79
  99. package/dist/apis/address.js +11 -77
  100. package/dist/apis/ai-agents.cjs +13 -210
  101. package/dist/apis/ai-agents.js +11 -208
  102. package/dist/apis/app.cjs +13 -568
  103. package/dist/apis/app.js +11 -566
  104. package/dist/apis/audit-logs.cjs +13 -50
  105. package/dist/apis/audit-logs.js +11 -48
  106. package/dist/apis/automation.cjs +13 -277
  107. package/dist/apis/automation.js +11 -275
  108. package/dist/apis/billing.cjs +13 -170
  109. package/dist/apis/billing.js +11 -168
  110. package/dist/apis/blueprint-manifest.cjs +13 -499
  111. package/dist/apis/blueprint-manifest.js +11 -497
  112. package/dist/apis/consent.cjs +13 -79
  113. package/dist/apis/consent.js +11 -77
  114. package/dist/apis/customer-portal.cjs +13 -2247
  115. package/dist/apis/customer-portal.js +11 -2245
  116. package/dist/apis/dashboard.cjs +41 -0
  117. package/dist/apis/dashboard.d.cts +18 -0
  118. package/dist/apis/dashboard.d.ts +18 -0
  119. package/dist/apis/dashboard.js +41 -0
  120. package/dist/apis/data-management.cjs +13 -235
  121. package/dist/apis/data-management.js +11 -233
  122. package/dist/apis/deduplication.cjs +13 -37
  123. package/dist/apis/deduplication.js +11 -35
  124. package/dist/apis/design.cjs +13 -214
  125. package/dist/apis/design.js +11 -212
  126. package/dist/apis/document.cjs +13 -73
  127. package/dist/apis/document.js +11 -71
  128. package/dist/apis/email-settings.cjs +13 -528
  129. package/dist/apis/email-settings.js +11 -526
  130. package/dist/apis/email-template.cjs +13 -117
  131. package/dist/apis/email-template.js +11 -115
  132. package/dist/apis/entity-mapping.cjs +13 -210
  133. package/dist/apis/entity-mapping.js +11 -208
  134. package/dist/apis/entity.cjs +13 -1595
  135. package/dist/apis/entity.js +11 -1593
  136. package/dist/apis/environments.cjs +13 -66
  137. package/dist/apis/environments.js +11 -64
  138. package/dist/apis/erp-integration.cjs +13 -581
  139. package/dist/apis/erp-integration.js +11 -579
  140. package/dist/apis/event-catalog.cjs +13 -125
  141. package/dist/apis/event-catalog.js +11 -123
  142. package/dist/apis/file.cjs +13 -568
  143. package/dist/apis/file.js +11 -566
  144. package/dist/apis/iban.cjs +13 -38
  145. package/dist/apis/iban.js +11 -36
  146. package/dist/apis/journey.cjs +13 -265
  147. package/dist/apis/journey.js +11 -263
  148. package/dist/apis/kanban.cjs +13 -159
  149. package/dist/apis/kanban.js +11 -157
  150. package/dist/apis/message.cjs +13 -668
  151. package/dist/apis/message.js +11 -666
  152. package/dist/apis/metering.cjs +13 -394
  153. package/dist/apis/metering.js +11 -392
  154. package/dist/apis/notes.cjs +13 -214
  155. package/dist/apis/notes.js +11 -212
  156. package/dist/apis/notification.cjs +13 -232
  157. package/dist/apis/notification.js +11 -230
  158. package/dist/apis/organization.cjs +13 -113
  159. package/dist/apis/organization.js +11 -111
  160. package/dist/apis/partner-directory.cjs +13 -277
  161. package/dist/apis/partner-directory.js +11 -275
  162. package/dist/apis/permissions.cjs +13 -173
  163. package/dist/apis/permissions.js +11 -171
  164. package/dist/apis/pricing-tier.cjs +14 -32
  165. package/dist/apis/pricing-tier.js +11 -29
  166. package/dist/apis/pricing.cjs +13 -434
  167. package/dist/apis/pricing.js +11 -432
  168. package/dist/apis/purpose.cjs +13 -175
  169. package/dist/apis/purpose.js +11 -173
  170. package/dist/apis/sandbox.cjs +13 -95
  171. package/dist/apis/sandbox.js +11 -93
  172. package/dist/apis/submission.cjs +13 -50
  173. package/dist/apis/submission.js +11 -48
  174. package/dist/apis/targeting.cjs +13 -270
  175. package/dist/apis/targeting.js +11 -268
  176. package/dist/apis/template-variables.cjs +13 -154
  177. package/dist/apis/template-variables.js +11 -152
  178. package/dist/apis/user.cjs +13 -483
  179. package/dist/apis/user.js +11 -481
  180. package/dist/apis/validation-rules.cjs +13 -115
  181. package/dist/apis/validation-rules.js +11 -113
  182. package/dist/apis/webhooks.cjs +13 -247
  183. package/dist/apis/webhooks.js +11 -245
  184. package/dist/apis/workflow-definition.cjs +13 -337
  185. package/dist/apis/workflow-definition.js +11 -335
  186. package/dist/apis/workflow.cjs +13 -397
  187. package/dist/apis/workflow.js +11 -395
  188. package/dist/{chunk-D7ICL3AM.cjs → chunk-5LXNSDG2.cjs} +51 -2
  189. package/dist/{chunk-DGCGLG7G.js → chunk-QMQNMCOC.js} +49 -0
  190. package/dist/dashboard.d-AE3RQ6zo.d.cts +440 -0
  191. package/dist/dashboard.d-AE3RQ6zo.d.ts +440 -0
  192. package/dist/index.cjs +60 -53
  193. package/dist/index.d.cts +70 -68
  194. package/dist/index.d.ts +70 -68
  195. package/dist/index.js +57 -50
  196. package/package.json +55 -3
@@ -0,0 +1,1711 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "version": "3.0.0",
5
+ "title": "AI Agents API - OpenAPI 3.0",
6
+ "description": "API for configuring and invoking AI agents in epilot platform",
7
+ "termsOfService": "https://epilot.cloud/agb",
8
+ "contact": {
9
+ "name": "Support",
10
+ "email": "info@epilot.cloud",
11
+ "url": "https://help.epilot.cloud"
12
+ }
13
+ },
14
+ "security": [
15
+ {
16
+ "EpilotAuth": []
17
+ }
18
+ ],
19
+ "servers": [
20
+ {
21
+ "url": "https://ai-agents.sls.epilot.io"
22
+ }
23
+ ],
24
+ "tags": [
25
+ {
26
+ "name": "Agents Configuration",
27
+ "description": "Everything about AI Agent configuration"
28
+ },
29
+ {
30
+ "name": "Agent Execution",
31
+ "description": "Execute AI agents and manage executions"
32
+ }
33
+ ],
34
+ "paths": {
35
+ "/v1/agents": {
36
+ "post": {
37
+ "tags": [
38
+ "Agents Configuration"
39
+ ],
40
+ "summary": "Create Agent definition",
41
+ "description": "Creates a new custom agent. System skills cannot be created via this endpoint.",
42
+ "operationId": "createAgent",
43
+ "security": [
44
+ {
45
+ "EpilotAuth": []
46
+ }
47
+ ],
48
+ "requestBody": {
49
+ "required": true,
50
+ "content": {
51
+ "application/json": {
52
+ "schema": {
53
+ "$ref": "#/components/schemas/CreateAgentRequest"
54
+ }
55
+ }
56
+ }
57
+ },
58
+ "responses": {
59
+ "201": {
60
+ "description": "Agent Created Successfully",
61
+ "content": {
62
+ "application/json": {
63
+ "schema": {
64
+ "$ref": "#/components/schemas/AgentDefinition"
65
+ }
66
+ }
67
+ }
68
+ },
69
+ "400": {
70
+ "description": "Error while creating the agent",
71
+ "content": {
72
+ "application/json": {
73
+ "schema": {
74
+ "$ref": "#/components/schemas/Error"
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ },
81
+ "get": {
82
+ "tags": [
83
+ "Agents Configuration"
84
+ ],
85
+ "summary": "List all agent configurations",
86
+ "description": "Lists agents from both system skills and custom agents.\nUse query parameters to filter by source, availability, or entity schema.\n",
87
+ "operationId": "listAgents",
88
+ "parameters": [
89
+ {
90
+ "name": "source",
91
+ "in": "query",
92
+ "schema": {
93
+ "$ref": "#/components/schemas/AgentSource"
94
+ },
95
+ "description": "Filter by agent source (system = pre-built skills, custom = user-created)"
96
+ },
97
+ {
98
+ "name": "availability",
99
+ "in": "query",
100
+ "schema": {
101
+ "$ref": "#/components/schemas/SkillAvailability"
102
+ },
103
+ "description": "Filter by availability context (flows, copilot)"
104
+ },
105
+ {
106
+ "name": "entity_schema",
107
+ "in": "query",
108
+ "schema": {
109
+ "type": "string"
110
+ },
111
+ "description": "Filter by allowed entity schema (e.g., \"message\" for email-related skills)"
112
+ }
113
+ ],
114
+ "responses": {
115
+ "200": {
116
+ "description": "List of agents",
117
+ "content": {
118
+ "application/json": {
119
+ "schema": {
120
+ "$ref": "#/components/schemas/ListAgentsResponse"
121
+ }
122
+ }
123
+ }
124
+ },
125
+ "400": {
126
+ "description": "Error fetching the agent configs",
127
+ "content": {
128
+ "application/json": {
129
+ "schema": {
130
+ "$ref": "#/components/schemas/Error"
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ },
138
+ "/v1/agents/{agent_id}": {
139
+ "get": {
140
+ "tags": [
141
+ "Agents Configuration"
142
+ ],
143
+ "summary": "Get the agent configuration by ID",
144
+ "description": "Retrieves an agent by ID. Supports both:\n- System skill IDs (prefixed): \"skill:email-categorizer\"\n- Custom agent IDs (UUID): \"0336a235-9417-4dd8-894c-fe81285bba75\"\n",
145
+ "operationId": "getAgentById",
146
+ "security": [
147
+ {
148
+ "EpilotAuth": []
149
+ }
150
+ ],
151
+ "parameters": [
152
+ {
153
+ "name": "agent_id",
154
+ "in": "path",
155
+ "required": true,
156
+ "schema": {
157
+ "$ref": "#/components/schemas/AgentId"
158
+ }
159
+ }
160
+ ],
161
+ "responses": {
162
+ "200": {
163
+ "description": "Agent fetched Successfully",
164
+ "content": {
165
+ "application/json": {
166
+ "schema": {
167
+ "$ref": "#/components/schemas/AgentDefinition"
168
+ }
169
+ }
170
+ }
171
+ },
172
+ "400": {
173
+ "description": "Error while creating the agent",
174
+ "content": {
175
+ "application/json": {
176
+ "schema": {
177
+ "$ref": "#/components/schemas/Error"
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ },
184
+ "put": {
185
+ "tags": [
186
+ "Agents Configuration"
187
+ ],
188
+ "summary": "Update the agent configuration by ID",
189
+ "description": "Updates a custom agent. System skills cannot be updated via this endpoint.",
190
+ "operationId": "updateAgentById",
191
+ "security": [
192
+ {
193
+ "EpilotAuth": []
194
+ }
195
+ ],
196
+ "parameters": [
197
+ {
198
+ "name": "agent_id",
199
+ "in": "path",
200
+ "required": true,
201
+ "schema": {
202
+ "$ref": "#/components/schemas/AgentId"
203
+ }
204
+ }
205
+ ],
206
+ "requestBody": {
207
+ "required": true,
208
+ "content": {
209
+ "application/json": {
210
+ "schema": {
211
+ "$ref": "#/components/schemas/UpdateAgentRequest"
212
+ }
213
+ }
214
+ }
215
+ },
216
+ "responses": {
217
+ "200": {
218
+ "description": "Agent updated Successfully",
219
+ "content": {
220
+ "application/json": {
221
+ "schema": {
222
+ "$ref": "#/components/schemas/AgentDefinition"
223
+ }
224
+ }
225
+ }
226
+ },
227
+ "400": {
228
+ "description": "Error while updating the agent",
229
+ "content": {
230
+ "application/json": {
231
+ "schema": {
232
+ "$ref": "#/components/schemas/Error"
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ },
239
+ "delete": {
240
+ "tags": [
241
+ "Agents Configuration"
242
+ ],
243
+ "summary": "Delete the agent configuration by ID",
244
+ "description": "Deletes a custom agent. System skills cannot be deleted via this endpoint.",
245
+ "security": [
246
+ {
247
+ "EpilotAuth": []
248
+ }
249
+ ],
250
+ "operationId": "deleteAgentById",
251
+ "parameters": [
252
+ {
253
+ "name": "agent_id",
254
+ "in": "path",
255
+ "required": true,
256
+ "schema": {
257
+ "$ref": "#/components/schemas/AgentId"
258
+ }
259
+ }
260
+ ],
261
+ "responses": {
262
+ "204": {
263
+ "description": "Agent deleted Successfully"
264
+ },
265
+ "400": {
266
+ "description": "Error while deleting the agent",
267
+ "content": {
268
+ "application/json": {
269
+ "schema": {
270
+ "$ref": "#/components/schemas/Error"
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+ },
278
+ "/v1/agents/{agent_id}/execute": {
279
+ "post": {
280
+ "tags": [
281
+ "Agent Execution"
282
+ ],
283
+ "summary": "Execute an agent",
284
+ "description": "Executes an agent (system skill or custom agent).\nSupports both:\n- System skill IDs (prefixed): \"skill:email-categorizer\"\n- Custom agent IDs (UUID): \"0336a235-9417-4dd8-894c-fe81285bba75\"\n",
285
+ "operationId": "executeAgent",
286
+ "security": [
287
+ {
288
+ "EpilotAuth": []
289
+ }
290
+ ],
291
+ "parameters": [
292
+ {
293
+ "name": "agent_id",
294
+ "in": "path",
295
+ "required": true,
296
+ "schema": {
297
+ "$ref": "#/components/schemas/AgentId"
298
+ }
299
+ }
300
+ ],
301
+ "requestBody": {
302
+ "required": false,
303
+ "content": {
304
+ "application/json": {
305
+ "schema": {
306
+ "$ref": "#/components/schemas/ExecuteAgentRequest"
307
+ }
308
+ }
309
+ }
310
+ },
311
+ "responses": {
312
+ "200": {
313
+ "description": "Agent execution initiated or completed",
314
+ "content": {
315
+ "application/json": {
316
+ "schema": {
317
+ "$ref": "#/components/schemas/ExecutionResponse"
318
+ }
319
+ }
320
+ }
321
+ },
322
+ "400": {
323
+ "description": "Error while executing the agent",
324
+ "content": {
325
+ "application/json": {
326
+ "schema": {
327
+ "$ref": "#/components/schemas/Error"
328
+ }
329
+ }
330
+ }
331
+ },
332
+ "404": {
333
+ "description": "Agent not found",
334
+ "content": {
335
+ "application/json": {
336
+ "schema": {
337
+ "$ref": "#/components/schemas/Error"
338
+ }
339
+ }
340
+ }
341
+ }
342
+ }
343
+ }
344
+ },
345
+ "/v1/executions": {
346
+ "get": {
347
+ "tags": [
348
+ "Agent Execution"
349
+ ],
350
+ "summary": "List executions",
351
+ "operationId": "listExecutions",
352
+ "security": [
353
+ {
354
+ "EpilotAuth": []
355
+ }
356
+ ],
357
+ "parameters": [
358
+ {
359
+ "name": "agent_id",
360
+ "in": "query",
361
+ "schema": {
362
+ "type": "string"
363
+ },
364
+ "description": "Filter by agent ID"
365
+ },
366
+ {
367
+ "name": "status",
368
+ "in": "query",
369
+ "schema": {
370
+ "$ref": "#/components/schemas/ExecutionStatus"
371
+ },
372
+ "description": "Filter by status"
373
+ },
374
+ {
375
+ "name": "limit",
376
+ "in": "query",
377
+ "schema": {
378
+ "type": "integer",
379
+ "default": 50
380
+ },
381
+ "description": "Maximum number of executions to return"
382
+ }
383
+ ],
384
+ "responses": {
385
+ "200": {
386
+ "description": "List of executions",
387
+ "content": {
388
+ "application/json": {
389
+ "schema": {
390
+ "$ref": "#/components/schemas/ListExecutionsResponse"
391
+ }
392
+ }
393
+ }
394
+ },
395
+ "400": {
396
+ "description": "Error fetching executions",
397
+ "content": {
398
+ "application/json": {
399
+ "schema": {
400
+ "$ref": "#/components/schemas/Error"
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+ }
407
+ },
408
+ "/v1/executions/{execution_id}": {
409
+ "get": {
410
+ "tags": [
411
+ "Agent Execution"
412
+ ],
413
+ "summary": "Get execution by ID",
414
+ "operationId": "getExecution",
415
+ "security": [
416
+ {
417
+ "EpilotAuth": []
418
+ }
419
+ ],
420
+ "parameters": [
421
+ {
422
+ "name": "execution_id",
423
+ "in": "path",
424
+ "required": true,
425
+ "schema": {
426
+ "type": "string",
427
+ "format": "uuid"
428
+ }
429
+ }
430
+ ],
431
+ "responses": {
432
+ "200": {
433
+ "description": "Execution details",
434
+ "content": {
435
+ "application/json": {
436
+ "schema": {
437
+ "$ref": "#/components/schemas/ExecutionResponse"
438
+ }
439
+ }
440
+ }
441
+ },
442
+ "404": {
443
+ "description": "Execution not found",
444
+ "content": {
445
+ "application/json": {
446
+ "schema": {
447
+ "$ref": "#/components/schemas/Error"
448
+ }
449
+ }
450
+ }
451
+ }
452
+ }
453
+ },
454
+ "delete": {
455
+ "tags": [
456
+ "Agent Execution"
457
+ ],
458
+ "summary": "Cancel execution",
459
+ "operationId": "cancelExecution",
460
+ "security": [
461
+ {
462
+ "EpilotAuth": []
463
+ }
464
+ ],
465
+ "parameters": [
466
+ {
467
+ "name": "execution_id",
468
+ "in": "path",
469
+ "required": true,
470
+ "schema": {
471
+ "type": "string",
472
+ "format": "uuid"
473
+ }
474
+ }
475
+ ],
476
+ "responses": {
477
+ "200": {
478
+ "description": "Execution cancelled",
479
+ "content": {
480
+ "application/json": {
481
+ "schema": {
482
+ "$ref": "#/components/schemas/ExecutionResponse"
483
+ }
484
+ }
485
+ }
486
+ },
487
+ "400": {
488
+ "description": "Cannot cancel execution (already completed or failed)",
489
+ "content": {
490
+ "application/json": {
491
+ "schema": {
492
+ "$ref": "#/components/schemas/Error"
493
+ }
494
+ }
495
+ }
496
+ },
497
+ "404": {
498
+ "description": "Execution not found",
499
+ "content": {
500
+ "application/json": {
501
+ "schema": {
502
+ "$ref": "#/components/schemas/Error"
503
+ }
504
+ }
505
+ }
506
+ }
507
+ }
508
+ }
509
+ },
510
+ "/v1/executions/{execution_id}/trace": {
511
+ "get": {
512
+ "tags": [
513
+ "Agent Execution"
514
+ ],
515
+ "summary": "Get execution trace/iterations",
516
+ "description": "Returns the step-by-step reasoning and tool calls for ReAct mode executions. Returns empty iterations array for direct mode executions.",
517
+ "operationId": "getExecutionTrace",
518
+ "security": [
519
+ {
520
+ "EpilotAuth": []
521
+ }
522
+ ],
523
+ "parameters": [
524
+ {
525
+ "name": "execution_id",
526
+ "in": "path",
527
+ "required": true,
528
+ "schema": {
529
+ "type": "string",
530
+ "format": "uuid"
531
+ }
532
+ }
533
+ ],
534
+ "responses": {
535
+ "200": {
536
+ "description": "Execution trace",
537
+ "content": {
538
+ "application/json": {
539
+ "schema": {
540
+ "$ref": "#/components/schemas/ExecutionTrace"
541
+ }
542
+ }
543
+ }
544
+ },
545
+ "404": {
546
+ "description": "Execution not found",
547
+ "content": {
548
+ "application/json": {
549
+ "schema": {
550
+ "$ref": "#/components/schemas/Error"
551
+ }
552
+ }
553
+ }
554
+ }
555
+ }
556
+ }
557
+ },
558
+ "/v1/executions/{execution_id}/approve": {
559
+ "post": {
560
+ "tags": [
561
+ "Agent Execution"
562
+ ],
563
+ "summary": "Approve pending action",
564
+ "description": "Approves a pending tool action when execution is in waiting_approval status",
565
+ "operationId": "approveExecution",
566
+ "security": [
567
+ {
568
+ "EpilotAuth": []
569
+ }
570
+ ],
571
+ "parameters": [
572
+ {
573
+ "name": "execution_id",
574
+ "in": "path",
575
+ "required": true,
576
+ "schema": {
577
+ "type": "string",
578
+ "format": "uuid"
579
+ }
580
+ }
581
+ ],
582
+ "requestBody": {
583
+ "content": {
584
+ "application/json": {
585
+ "schema": {
586
+ "$ref": "#/components/schemas/ApproveExecutionRequest"
587
+ }
588
+ }
589
+ }
590
+ },
591
+ "responses": {
592
+ "200": {
593
+ "description": "Action approved",
594
+ "content": {
595
+ "application/json": {
596
+ "schema": {
597
+ "$ref": "#/components/schemas/ExecutionResponse"
598
+ }
599
+ }
600
+ }
601
+ },
602
+ "400": {
603
+ "description": "No pending action to approve",
604
+ "content": {
605
+ "application/json": {
606
+ "schema": {
607
+ "$ref": "#/components/schemas/Error"
608
+ }
609
+ }
610
+ }
611
+ },
612
+ "404": {
613
+ "description": "Execution not found",
614
+ "content": {
615
+ "application/json": {
616
+ "schema": {
617
+ "$ref": "#/components/schemas/Error"
618
+ }
619
+ }
620
+ }
621
+ }
622
+ }
623
+ }
624
+ },
625
+ "/v1/executions/{execution_id}/reject": {
626
+ "post": {
627
+ "tags": [
628
+ "Agent Execution"
629
+ ],
630
+ "summary": "Reject pending action",
631
+ "description": "Rejects a pending tool action when execution is in waiting_approval status",
632
+ "operationId": "rejectExecution",
633
+ "security": [
634
+ {
635
+ "EpilotAuth": []
636
+ }
637
+ ],
638
+ "parameters": [
639
+ {
640
+ "name": "execution_id",
641
+ "in": "path",
642
+ "required": true,
643
+ "schema": {
644
+ "type": "string",
645
+ "format": "uuid"
646
+ }
647
+ }
648
+ ],
649
+ "requestBody": {
650
+ "required": true,
651
+ "content": {
652
+ "application/json": {
653
+ "schema": {
654
+ "$ref": "#/components/schemas/RejectExecutionRequest"
655
+ }
656
+ }
657
+ }
658
+ },
659
+ "responses": {
660
+ "200": {
661
+ "description": "Action rejected",
662
+ "content": {
663
+ "application/json": {
664
+ "schema": {
665
+ "$ref": "#/components/schemas/ExecutionResponse"
666
+ }
667
+ }
668
+ }
669
+ },
670
+ "400": {
671
+ "description": "No pending action to reject",
672
+ "content": {
673
+ "application/json": {
674
+ "schema": {
675
+ "$ref": "#/components/schemas/Error"
676
+ }
677
+ }
678
+ }
679
+ },
680
+ "404": {
681
+ "description": "Execution not found",
682
+ "content": {
683
+ "application/json": {
684
+ "schema": {
685
+ "$ref": "#/components/schemas/Error"
686
+ }
687
+ }
688
+ }
689
+ }
690
+ }
691
+ }
692
+ }
693
+ },
694
+ "components": {
695
+ "securitySchemes": {
696
+ "EpilotAuth": {
697
+ "type": "http",
698
+ "scheme": "bearer",
699
+ "description": "Authorization header with epilot OAuth2 bearer token. Supports RFC8725 for JWT validation.",
700
+ "bearerFormat": "JWT"
701
+ }
702
+ },
703
+ "schemas": {
704
+ "AgentId": {
705
+ "type": "string",
706
+ "description": "Agent identifier. Can be either:\n- System skill ID (prefixed): \"skill:email-categorizer\", \"skill:email-labeler\"\n- Custom agent UUID: \"0336a235-9417-4dd8-894c-fe81285bba75\"\n",
707
+ "example": "skill:email-categorizer"
708
+ },
709
+ "CreateAgentRequest": {
710
+ "type": "object",
711
+ "required": [
712
+ "name",
713
+ "system_prompt",
714
+ "execution_pattern"
715
+ ],
716
+ "properties": {
717
+ "name": {
718
+ "type": "string",
719
+ "minLength": 1,
720
+ "maxLength": 100,
721
+ "example": "Email Reply Generator"
722
+ },
723
+ "description": {
724
+ "type": "string",
725
+ "maxLength": 1000
726
+ },
727
+ "category": {
728
+ "$ref": "#/components/schemas/SkillCategory"
729
+ },
730
+ "icon": {
731
+ "type": "string",
732
+ "example": "mail-reply"
733
+ },
734
+ "system_prompt": {
735
+ "type": "string",
736
+ "minLength": 1,
737
+ "description": "Core LLM instructions"
738
+ },
739
+ "tools": {
740
+ "type": "array",
741
+ "items": {
742
+ "type": "string"
743
+ },
744
+ "description": "Tool IDs this agent can use",
745
+ "example": [
746
+ "entity.search",
747
+ "message.draft"
748
+ ]
749
+ },
750
+ "model_config": {
751
+ "$ref": "#/components/schemas/ModelConfig"
752
+ },
753
+ "max_iterations": {
754
+ "type": "integer",
755
+ "minimum": 1,
756
+ "maximum": 20,
757
+ "default": 10,
758
+ "description": "Max ReAct loop iterations"
759
+ },
760
+ "execution_pattern": {
761
+ "$ref": "#/components/schemas/ExecutionPattern"
762
+ },
763
+ "execution_mode": {
764
+ "$ref": "#/components/schemas/ExecutionMode"
765
+ },
766
+ "output_schema": {
767
+ "type": "object",
768
+ "description": "JSON Schema for expected output"
769
+ },
770
+ "input_parameters_schema": {
771
+ "$ref": "#/components/schemas/InputParametersSchema"
772
+ }
773
+ }
774
+ },
775
+ "UpdateAgentRequest": {
776
+ "type": "object",
777
+ "properties": {
778
+ "name": {
779
+ "type": "string",
780
+ "minLength": 1,
781
+ "maxLength": 100
782
+ },
783
+ "description": {
784
+ "type": "string",
785
+ "maxLength": 1000
786
+ },
787
+ "category": {
788
+ "$ref": "#/components/schemas/SkillCategory"
789
+ },
790
+ "icon": {
791
+ "type": "string"
792
+ },
793
+ "system_prompt": {
794
+ "type": "string",
795
+ "minLength": 1
796
+ },
797
+ "tools": {
798
+ "type": "array",
799
+ "items": {
800
+ "type": "string"
801
+ }
802
+ },
803
+ "model_config": {
804
+ "$ref": "#/components/schemas/ModelConfig"
805
+ },
806
+ "max_iterations": {
807
+ "type": "integer",
808
+ "minimum": 1,
809
+ "maximum": 20
810
+ },
811
+ "execution_pattern": {
812
+ "$ref": "#/components/schemas/ExecutionPattern"
813
+ },
814
+ "execution_mode": {
815
+ "$ref": "#/components/schemas/ExecutionMode"
816
+ },
817
+ "output_schema": {
818
+ "type": "object"
819
+ },
820
+ "input_parameters_schema": {
821
+ "$ref": "#/components/schemas/InputParametersSchema"
822
+ }
823
+ }
824
+ },
825
+ "AgentDefinition": {
826
+ "type": "object",
827
+ "properties": {
828
+ "agent_id": {
829
+ "$ref": "#/components/schemas/AgentId"
830
+ },
831
+ "org_id": {
832
+ "type": "string"
833
+ },
834
+ "name": {
835
+ "type": "string"
836
+ },
837
+ "description": {
838
+ "type": "string"
839
+ },
840
+ "category": {
841
+ "$ref": "#/components/schemas/SkillCategory"
842
+ },
843
+ "icon": {
844
+ "type": "string"
845
+ },
846
+ "source": {
847
+ "$ref": "#/components/schemas/AgentSource"
848
+ },
849
+ "availability": {
850
+ "type": "array",
851
+ "items": {
852
+ "$ref": "#/components/schemas/SkillAvailability"
853
+ },
854
+ "description": "Where this agent/skill is available (flows, copilot, or both)",
855
+ "example": [
856
+ "flows",
857
+ "copilot"
858
+ ]
859
+ },
860
+ "allowed_entity_schemas": {
861
+ "type": "array",
862
+ "items": {
863
+ "type": "string"
864
+ },
865
+ "description": "Entity schemas this skill is allowed to work with (e.g., [\"message\"] for email skills)",
866
+ "example": [
867
+ "message"
868
+ ]
869
+ },
870
+ "system_prompt": {
871
+ "type": "string"
872
+ },
873
+ "tools": {
874
+ "type": "array",
875
+ "items": {
876
+ "type": "string"
877
+ }
878
+ },
879
+ "model_config": {
880
+ "$ref": "#/components/schemas/ModelConfig"
881
+ },
882
+ "max_iterations": {
883
+ "type": "integer"
884
+ },
885
+ "execution_pattern": {
886
+ "$ref": "#/components/schemas/ExecutionPattern"
887
+ },
888
+ "execution_mode": {
889
+ "$ref": "#/components/schemas/ExecutionMode"
890
+ },
891
+ "output_schema": {
892
+ "type": "object"
893
+ },
894
+ "input_parameters_schema": {
895
+ "$ref": "#/components/schemas/InputParametersSchema"
896
+ },
897
+ "version": {
898
+ "type": "integer"
899
+ },
900
+ "created_at": {
901
+ "type": "string",
902
+ "format": "date-time"
903
+ },
904
+ "updated_at": {
905
+ "type": "string",
906
+ "format": "date-time"
907
+ },
908
+ "created_by": {
909
+ "type": "string"
910
+ }
911
+ }
912
+ },
913
+ "ListAgentsResponse": {
914
+ "type": "object",
915
+ "properties": {
916
+ "agents": {
917
+ "type": "array",
918
+ "items": {
919
+ "$ref": "#/components/schemas/AgentDefinition"
920
+ }
921
+ },
922
+ "next_cursor": {
923
+ "type": "string",
924
+ "nullable": true
925
+ }
926
+ }
927
+ },
928
+ "ListExecutionsResponse": {
929
+ "type": "object",
930
+ "properties": {
931
+ "executions": {
932
+ "type": "array",
933
+ "items": {
934
+ "$ref": "#/components/schemas/ExecutionResponse"
935
+ }
936
+ },
937
+ "next_cursor": {
938
+ "type": "string",
939
+ "nullable": true
940
+ }
941
+ }
942
+ },
943
+ "ApproveExecutionRequest": {
944
+ "type": "object",
945
+ "properties": {
946
+ "reason": {
947
+ "type": "string",
948
+ "description": "Optional reason for approval"
949
+ }
950
+ }
951
+ },
952
+ "RejectExecutionRequest": {
953
+ "type": "object",
954
+ "required": [
955
+ "reason"
956
+ ],
957
+ "properties": {
958
+ "reason": {
959
+ "type": "string",
960
+ "description": "Reason for rejection"
961
+ }
962
+ }
963
+ },
964
+ "ExecuteAgentRequest": {
965
+ "type": "object",
966
+ "properties": {
967
+ "input": {
968
+ "type": "object",
969
+ "properties": {
970
+ "entity_id": {
971
+ "type": "string",
972
+ "description": "Primary entity ID for context"
973
+ },
974
+ "entity_schema": {
975
+ "type": "string",
976
+ "description": "Schema of the primary entity (e.g., \"message\", \"contact\")"
977
+ },
978
+ "workflow_id": {
979
+ "type": "string"
980
+ },
981
+ "workflow_execution_id": {
982
+ "type": "string"
983
+ },
984
+ "task_id": {
985
+ "type": "string"
986
+ },
987
+ "custom_data": {
988
+ "type": "object",
989
+ "additionalProperties": true
990
+ },
991
+ "flow_context": {
992
+ "type": "array",
993
+ "description": "Array of entities from the flow trigger context (e.g., the message entity when triggered by email receive)",
994
+ "items": {
995
+ "type": "object",
996
+ "properties": {
997
+ "entity_id": {
998
+ "type": "string"
999
+ },
1000
+ "entity_schema": {
1001
+ "type": "string"
1002
+ }
1003
+ },
1004
+ "required": [
1005
+ "entity_id",
1006
+ "entity_schema"
1007
+ ]
1008
+ }
1009
+ }
1010
+ }
1011
+ },
1012
+ "parameters": {
1013
+ "type": "object",
1014
+ "additionalProperties": true,
1015
+ "description": "Runtime parameters (validated against input_parameters_schema)"
1016
+ },
1017
+ "execution_mode_override": {
1018
+ "$ref": "#/components/schemas/ExecutionMode"
1019
+ },
1020
+ "execution_context": {
1021
+ "$ref": "#/components/schemas/ExecutionContext"
1022
+ },
1023
+ "callback_url": {
1024
+ "type": "string",
1025
+ "format": "uri",
1026
+ "description": "Webhook URL for async completion notification"
1027
+ },
1028
+ "timeout_ms": {
1029
+ "type": "integer",
1030
+ "default": 30000,
1031
+ "maximum": 300000,
1032
+ "description": "Execution timeout in milliseconds"
1033
+ }
1034
+ }
1035
+ },
1036
+ "ExecutionResponse": {
1037
+ "type": "object",
1038
+ "properties": {
1039
+ "execution_id": {
1040
+ "type": "string",
1041
+ "format": "uuid"
1042
+ },
1043
+ "agent_id": {
1044
+ "$ref": "#/components/schemas/AgentId"
1045
+ },
1046
+ "agent_source": {
1047
+ "$ref": "#/components/schemas/AgentSource"
1048
+ },
1049
+ "agent_name": {
1050
+ "type": "string",
1051
+ "description": "Human-readable agent name (denormalized for display)"
1052
+ },
1053
+ "execution_context": {
1054
+ "$ref": "#/components/schemas/ExecutionContext"
1055
+ },
1056
+ "org_id": {
1057
+ "type": "string"
1058
+ },
1059
+ "status": {
1060
+ "$ref": "#/components/schemas/ExecutionStatus"
1061
+ },
1062
+ "input": {
1063
+ "type": "object"
1064
+ },
1065
+ "parameters": {
1066
+ "type": "object"
1067
+ },
1068
+ "result": {
1069
+ "type": "object",
1070
+ "nullable": true,
1071
+ "description": "Execution result (when status=completed)",
1072
+ "properties": {
1073
+ "response": {
1074
+ "type": "string",
1075
+ "description": "Text response from the agent"
1076
+ },
1077
+ "structured_output": {
1078
+ "type": "object",
1079
+ "nullable": true,
1080
+ "description": "Parsed structured output (only for direct mode with output_schema)"
1081
+ }
1082
+ }
1083
+ },
1084
+ "error": {
1085
+ "$ref": "#/components/schemas/ExecutionError"
1086
+ },
1087
+ "pending_action": {
1088
+ "$ref": "#/components/schemas/PendingAction"
1089
+ },
1090
+ "metrics": {
1091
+ "$ref": "#/components/schemas/ExecutionMetrics"
1092
+ },
1093
+ "started_at": {
1094
+ "type": "string",
1095
+ "format": "date-time"
1096
+ },
1097
+ "completed_at": {
1098
+ "type": "string",
1099
+ "format": "date-time",
1100
+ "nullable": true
1101
+ }
1102
+ }
1103
+ },
1104
+ "ExecutionTrace": {
1105
+ "type": "object",
1106
+ "properties": {
1107
+ "execution_id": {
1108
+ "type": "string",
1109
+ "format": "uuid"
1110
+ },
1111
+ "iterations": {
1112
+ "type": "array",
1113
+ "items": {
1114
+ "$ref": "#/components/schemas/ExecutionIteration"
1115
+ }
1116
+ },
1117
+ "total_iterations": {
1118
+ "type": "integer"
1119
+ }
1120
+ }
1121
+ },
1122
+ "ExecutionIteration": {
1123
+ "type": "object",
1124
+ "properties": {
1125
+ "iteration_index": {
1126
+ "type": "integer"
1127
+ },
1128
+ "thought": {
1129
+ "type": "string",
1130
+ "description": "LLM reasoning/thinking"
1131
+ },
1132
+ "action": {
1133
+ "type": "object",
1134
+ "nullable": true,
1135
+ "properties": {
1136
+ "tool": {
1137
+ "type": "string"
1138
+ },
1139
+ "input": {
1140
+ "type": "object"
1141
+ }
1142
+ }
1143
+ },
1144
+ "observation": {
1145
+ "type": "object",
1146
+ "nullable": true,
1147
+ "description": "Tool result"
1148
+ },
1149
+ "timestamp": {
1150
+ "type": "string",
1151
+ "format": "date-time"
1152
+ },
1153
+ "tokens_used": {
1154
+ "type": "integer"
1155
+ },
1156
+ "latency_ms": {
1157
+ "type": "integer"
1158
+ }
1159
+ }
1160
+ },
1161
+ "PendingAction": {
1162
+ "type": "object",
1163
+ "nullable": true,
1164
+ "description": "Action waiting for approval (when status=waiting_approval)",
1165
+ "properties": {
1166
+ "tool": {
1167
+ "type": "string",
1168
+ "description": "Tool ID that requires approval"
1169
+ },
1170
+ "input": {
1171
+ "type": "object",
1172
+ "description": "Tool input parameters"
1173
+ },
1174
+ "description": {
1175
+ "type": "string",
1176
+ "description": "Human-readable description of the action"
1177
+ },
1178
+ "preview": {
1179
+ "$ref": "#/components/schemas/ToolPreview"
1180
+ }
1181
+ }
1182
+ },
1183
+ "ExecutionError": {
1184
+ "type": "object",
1185
+ "nullable": true,
1186
+ "properties": {
1187
+ "code": {
1188
+ "type": "string",
1189
+ "enum": [
1190
+ "TIMEOUT",
1191
+ "MAX_ITERATIONS_EXCEEDED",
1192
+ "TOOL_EXECUTION_FAILED",
1193
+ "LLM_ERROR",
1194
+ "INVALID_OUTPUT",
1195
+ "REJECTED",
1196
+ "INTERNAL_ERROR"
1197
+ ]
1198
+ },
1199
+ "message": {
1200
+ "type": "string"
1201
+ },
1202
+ "details": {
1203
+ "type": "object"
1204
+ }
1205
+ }
1206
+ },
1207
+ "ExecutionMetrics": {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "total_tokens": {
1211
+ "type": "integer"
1212
+ },
1213
+ "input_tokens": {
1214
+ "type": "integer"
1215
+ },
1216
+ "output_tokens": {
1217
+ "type": "integer"
1218
+ },
1219
+ "total_cost_usd": {
1220
+ "type": "number",
1221
+ "format": "float"
1222
+ },
1223
+ "duration_ms": {
1224
+ "type": "integer"
1225
+ },
1226
+ "iteration_count": {
1227
+ "type": "integer"
1228
+ }
1229
+ }
1230
+ },
1231
+ "ToolPreview": {
1232
+ "type": "object",
1233
+ "description": "Structured preview data for approval UI. Provides a generic format that any tool can populate.",
1234
+ "properties": {
1235
+ "action": {
1236
+ "type": "object",
1237
+ "required": [
1238
+ "type",
1239
+ "verb"
1240
+ ],
1241
+ "properties": {
1242
+ "type": {
1243
+ "$ref": "#/components/schemas/PreviewActionType"
1244
+ },
1245
+ "verb": {
1246
+ "type": "string",
1247
+ "description": "Human-readable action verb",
1248
+ "example": "Move Thread"
1249
+ }
1250
+ }
1251
+ },
1252
+ "source": {
1253
+ "$ref": "#/components/schemas/PreviewEntity"
1254
+ },
1255
+ "target": {
1256
+ "$ref": "#/components/schemas/PreviewEntity"
1257
+ },
1258
+ "changes": {
1259
+ "type": "array",
1260
+ "items": {
1261
+ "$ref": "#/components/schemas/PreviewChange"
1262
+ },
1263
+ "description": "List of changes/modifications being made"
1264
+ },
1265
+ "metadata": {
1266
+ "type": "object",
1267
+ "additionalProperties": {
1268
+ "$ref": "#/components/schemas/PreviewValue"
1269
+ },
1270
+ "description": "Additional context information"
1271
+ },
1272
+ "summary": {
1273
+ "type": "string",
1274
+ "description": "AI reasoning for why this action is recommended",
1275
+ "example": "This email discusses solar panel installation and should be handled by the Service team."
1276
+ }
1277
+ }
1278
+ },
1279
+ "PreviewActionType": {
1280
+ "type": "string",
1281
+ "enum": [
1282
+ "move",
1283
+ "create",
1284
+ "update",
1285
+ "delete",
1286
+ "apply",
1287
+ "send",
1288
+ "link",
1289
+ "unlink"
1290
+ ],
1291
+ "description": "Type of action being previewed"
1292
+ },
1293
+ "PreviewEntity": {
1294
+ "type": "object",
1295
+ "description": "Entity reference for preview display",
1296
+ "properties": {
1297
+ "type": {
1298
+ "type": "string",
1299
+ "description": "Entity type (e.g., \"inbox\", \"email\", \"contact\", \"label\")",
1300
+ "example": "inbox"
1301
+ },
1302
+ "id": {
1303
+ "type": "string",
1304
+ "description": "Entity ID"
1305
+ },
1306
+ "name": {
1307
+ "type": "string",
1308
+ "description": "Human-readable name for display",
1309
+ "example": "Support Inbox"
1310
+ },
1311
+ "schema": {
1312
+ "type": "string",
1313
+ "description": "Entity schema (for epilot entities)"
1314
+ },
1315
+ "icon": {
1316
+ "type": "string",
1317
+ "description": "Icon hint for UI"
1318
+ },
1319
+ "url": {
1320
+ "type": "string",
1321
+ "description": "Optional URL to view the entity"
1322
+ }
1323
+ }
1324
+ },
1325
+ "PreviewChange": {
1326
+ "type": "object",
1327
+ "description": "A single field change in the preview",
1328
+ "properties": {
1329
+ "field": {
1330
+ "type": "string",
1331
+ "description": "Field identifier"
1332
+ },
1333
+ "label": {
1334
+ "type": "string",
1335
+ "description": "Human-readable field label"
1336
+ },
1337
+ "from": {
1338
+ "$ref": "#/components/schemas/PreviewValue"
1339
+ },
1340
+ "to": {
1341
+ "$ref": "#/components/schemas/PreviewValue"
1342
+ }
1343
+ }
1344
+ },
1345
+ "PreviewValue": {
1346
+ "type": "object",
1347
+ "description": "Typed value for preview display",
1348
+ "required": [
1349
+ "type"
1350
+ ],
1351
+ "properties": {
1352
+ "type": {
1353
+ "type": "string",
1354
+ "enum": [
1355
+ "text",
1356
+ "number",
1357
+ "boolean",
1358
+ "list",
1359
+ "entity",
1360
+ "badge"
1361
+ ],
1362
+ "description": "Value type for proper rendering"
1363
+ },
1364
+ "value": {
1365
+ "description": "The actual value (type depends on \"type\" field)"
1366
+ },
1367
+ "values": {
1368
+ "type": "array",
1369
+ "items": {
1370
+ "type": "string"
1371
+ },
1372
+ "description": "Array of values (for list type)"
1373
+ },
1374
+ "id": {
1375
+ "type": "string",
1376
+ "description": "Entity ID (for entity type)"
1377
+ },
1378
+ "name": {
1379
+ "type": "string",
1380
+ "description": "Display name (for entity type)"
1381
+ },
1382
+ "schema": {
1383
+ "type": "string",
1384
+ "description": "Entity schema (for entity type)"
1385
+ },
1386
+ "color": {
1387
+ "type": "string",
1388
+ "enum": [
1389
+ "success",
1390
+ "warning",
1391
+ "error",
1392
+ "info"
1393
+ ],
1394
+ "description": "Badge color (for badge type)"
1395
+ }
1396
+ }
1397
+ },
1398
+ "ToolDefinition": {
1399
+ "type": "object",
1400
+ "properties": {
1401
+ "tool_id": {
1402
+ "type": "string",
1403
+ "example": "entity.search"
1404
+ },
1405
+ "name": {
1406
+ "type": "string",
1407
+ "example": "Search Entities"
1408
+ },
1409
+ "description": {
1410
+ "type": "string",
1411
+ "description": "Description for LLM to understand tool purpose"
1412
+ },
1413
+ "category": {
1414
+ "type": "string",
1415
+ "enum": [
1416
+ "entity",
1417
+ "email",
1418
+ "taxonomy",
1419
+ "rag",
1420
+ "workflow"
1421
+ ]
1422
+ },
1423
+ "parameters": {
1424
+ "type": "object",
1425
+ "description": "JSON Schema for tool input"
1426
+ },
1427
+ "returns": {
1428
+ "type": "object",
1429
+ "description": "JSON Schema for tool output"
1430
+ },
1431
+ "requires_approval": {
1432
+ "type": "boolean",
1433
+ "default": false,
1434
+ "description": "Whether this tool always requires human approval"
1435
+ },
1436
+ "enabled": {
1437
+ "type": "boolean",
1438
+ "default": true
1439
+ }
1440
+ }
1441
+ },
1442
+ "SkillCategory": {
1443
+ "type": "string",
1444
+ "enum": [
1445
+ "message",
1446
+ "entity",
1447
+ "document",
1448
+ "classification",
1449
+ "custom"
1450
+ ]
1451
+ },
1452
+ "AgentSource": {
1453
+ "type": "string",
1454
+ "enum": [
1455
+ "system",
1456
+ "custom"
1457
+ ],
1458
+ "description": "- system: Pre-built by epilot (system skills)\n- custom: Created by organization\n"
1459
+ },
1460
+ "SkillAvailability": {
1461
+ "type": "string",
1462
+ "enum": [
1463
+ "flows",
1464
+ "copilot",
1465
+ "all"
1466
+ ],
1467
+ "description": "Where the skill/agent is available:\n- flows: Available in workflow automations\n- copilot: Available as a sub-agent in copilot\n- all: Available everywhere\n"
1468
+ },
1469
+ "ExecutionContext": {
1470
+ "type": "string",
1471
+ "enum": [
1472
+ "flows",
1473
+ "copilot",
1474
+ "api"
1475
+ ],
1476
+ "description": "Where the execution was triggered from:\n- flows: Triggered from workflow automation\n- copilot: Triggered from copilot assistant\n- api: Direct API call\n"
1477
+ },
1478
+ "ExecutionPattern": {
1479
+ "type": "string",
1480
+ "enum": [
1481
+ "direct",
1482
+ "react"
1483
+ ],
1484
+ "description": "- direct: Single LLM call, no tools\n- react: Multi-step reasoning with tool use\n"
1485
+ },
1486
+ "ExecutionMode": {
1487
+ "type": "string",
1488
+ "enum": [
1489
+ "automatic",
1490
+ "approval",
1491
+ "draft"
1492
+ ],
1493
+ "description": "- automatic: Execute without human intervention\n- approval: Pause for human approval before tool execution\n- draft: Execute but mark output as draft for review\n"
1494
+ },
1495
+ "ExecutionStatus": {
1496
+ "type": "string",
1497
+ "enum": [
1498
+ "pending",
1499
+ "running",
1500
+ "waiting_approval",
1501
+ "completed",
1502
+ "failed",
1503
+ "cancelled"
1504
+ ]
1505
+ },
1506
+ "ParameterType": {
1507
+ "type": "string",
1508
+ "enum": [
1509
+ "text",
1510
+ "textarea",
1511
+ "number",
1512
+ "boolean",
1513
+ "select",
1514
+ "entity-schema",
1515
+ "entity-attribute",
1516
+ "entity-id",
1517
+ "taxonomy",
1518
+ "taxonomy-classification",
1519
+ "shared-inbox",
1520
+ "label"
1521
+ ],
1522
+ "description": "Base types:\n- text: Text input field\n- textarea: Multi-line text input field\n- number: Numeric input field\n- boolean: Toggle switch\n- select: Dropdown selection (requires enum array)\n\nCustom types (domain-specific):\n- entity-schema: Entity schema selector (fetches from Entity API)\n- entity-attribute: Entity attribute selector (requires dependsOn)\n- entity-id: Entity picker (search and select entities)\n- taxonomy: Taxonomy selector (fetches from Taxonomy API)\n- taxonomy-classification: Classification selector (requires dependsOn)\n- shared-inbox: Shared inbox selector (fetches from Email Settings API)\n"
1523
+ },
1524
+ "InputParameterDefinition": {
1525
+ "type": "object",
1526
+ "required": [
1527
+ "name",
1528
+ "label",
1529
+ "type"
1530
+ ],
1531
+ "properties": {
1532
+ "name": {
1533
+ "type": "string",
1534
+ "description": "Unique identifier for the parameter (used in API)",
1535
+ "example": "target_schema"
1536
+ },
1537
+ "label": {
1538
+ "type": "string",
1539
+ "description": "Human-readable display label",
1540
+ "example": "Target Schema"
1541
+ },
1542
+ "type": {
1543
+ "$ref": "#/components/schemas/ParameterType"
1544
+ },
1545
+ "description": {
1546
+ "type": "string",
1547
+ "description": "Help text for the parameter"
1548
+ },
1549
+ "default": {
1550
+ "description": "Default value for the parameter"
1551
+ },
1552
+ "multi": {
1553
+ "type": "boolean",
1554
+ "default": false,
1555
+ "description": "Allow multiple selections (value becomes array)"
1556
+ },
1557
+ "dependsOn": {
1558
+ "type": "string",
1559
+ "description": "Parent parameter this depends on (for entity-attribute, taxonomy-classification)"
1560
+ },
1561
+ "visibleWhen": {
1562
+ "type": "object",
1563
+ "additionalProperties": {
1564
+ "type": "array"
1565
+ },
1566
+ "description": "Conditional visibility rules (show when parent has specific values)"
1567
+ },
1568
+ "enum": {
1569
+ "type": "array",
1570
+ "items": {
1571
+ "type": "string"
1572
+ },
1573
+ "description": "Allowed values (required for 'select' type)"
1574
+ },
1575
+ "minimum": {
1576
+ "type": "number",
1577
+ "description": "Minimum value (for number type)"
1578
+ },
1579
+ "maximum": {
1580
+ "type": "number",
1581
+ "description": "Maximum value (for number type)"
1582
+ },
1583
+ "step": {
1584
+ "type": "number",
1585
+ "description": "Step increment (for number type)"
1586
+ },
1587
+ "minLength": {
1588
+ "type": "integer",
1589
+ "description": "Minimum length (for text type)"
1590
+ },
1591
+ "maxLength": {
1592
+ "type": "integer",
1593
+ "description": "Maximum length (for text type)"
1594
+ },
1595
+ "schemaFilter": {
1596
+ "type": "array",
1597
+ "items": {
1598
+ "type": "string"
1599
+ },
1600
+ "description": "Filter to specific schemas (for entity-schema, entity-id)"
1601
+ },
1602
+ "attributeTypeFilter": {
1603
+ "type": "array",
1604
+ "items": {
1605
+ "type": "string"
1606
+ },
1607
+ "description": "Filter to specific attribute types (for entity-attribute)"
1608
+ }
1609
+ }
1610
+ },
1611
+ "InputParametersSchema": {
1612
+ "type": "object",
1613
+ "required": [
1614
+ "type",
1615
+ "parameters"
1616
+ ],
1617
+ "properties": {
1618
+ "type": {
1619
+ "type": "string",
1620
+ "enum": [
1621
+ "object"
1622
+ ],
1623
+ "description": "Always \"object\""
1624
+ },
1625
+ "parameters": {
1626
+ "type": "array",
1627
+ "items": {
1628
+ "$ref": "#/components/schemas/InputParameterDefinition"
1629
+ },
1630
+ "description": "Array of parameter definitions"
1631
+ },
1632
+ "required": {
1633
+ "type": "array",
1634
+ "items": {
1635
+ "type": "string"
1636
+ },
1637
+ "description": "Array of parameter names that are required"
1638
+ }
1639
+ },
1640
+ "example": {
1641
+ "type": "object",
1642
+ "parameters": [
1643
+ {
1644
+ "name": "target_schema",
1645
+ "label": "Target Schema",
1646
+ "type": "entity-schema",
1647
+ "description": "Entity type to create"
1648
+ },
1649
+ {
1650
+ "name": "confidence_threshold",
1651
+ "label": "Confidence Threshold",
1652
+ "type": "number",
1653
+ "minimum": 0,
1654
+ "maximum": 1,
1655
+ "default": 0.8
1656
+ },
1657
+ {
1658
+ "name": "categories",
1659
+ "label": "Categories",
1660
+ "type": "select",
1661
+ "enum": [
1662
+ "invoice",
1663
+ "contract",
1664
+ "letter"
1665
+ ],
1666
+ "multi": true
1667
+ }
1668
+ ],
1669
+ "required": [
1670
+ "target_schema"
1671
+ ]
1672
+ }
1673
+ },
1674
+ "ModelConfig": {
1675
+ "type": "object",
1676
+ "properties": {
1677
+ "model_id": {
1678
+ "type": "string",
1679
+ "default": "anthropic.claude-3-5-sonnet-20241022-v2:0",
1680
+ "description": "AWS Bedrock model ID"
1681
+ },
1682
+ "temperature": {
1683
+ "type": "number",
1684
+ "minimum": 0,
1685
+ "maximum": 1,
1686
+ "default": 0.7
1687
+ },
1688
+ "max_tokens": {
1689
+ "type": "integer",
1690
+ "default": 4096,
1691
+ "maximum": 8192
1692
+ }
1693
+ }
1694
+ },
1695
+ "Error": {
1696
+ "type": "object",
1697
+ "properties": {
1698
+ "error": {
1699
+ "type": "string"
1700
+ },
1701
+ "message": {
1702
+ "type": "string"
1703
+ },
1704
+ "details": {
1705
+ "type": "object"
1706
+ }
1707
+ }
1708
+ }
1709
+ }
1710
+ }
1711
+ }