@composio/client 0.1.0-alpha.67 → 0.1.0-alpha.69

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 (147) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/internal/types.d.mts +6 -6
  3. package/internal/types.d.mts.map +1 -1
  4. package/internal/types.d.ts +6 -6
  5. package/internal/types.d.ts.map +1 -1
  6. package/package.json +1 -1
  7. package/resources/auth-configs.js +6 -6
  8. package/resources/auth-configs.js.map +1 -1
  9. package/resources/auth-configs.mjs +6 -6
  10. package/resources/auth-configs.mjs.map +1 -1
  11. package/resources/cli/cli.js +2 -2
  12. package/resources/cli/cli.js.map +1 -1
  13. package/resources/cli/cli.mjs +2 -2
  14. package/resources/cli/cli.mjs.map +1 -1
  15. package/resources/cli/realtime.js +2 -2
  16. package/resources/cli/realtime.js.map +1 -1
  17. package/resources/cli/realtime.mjs +2 -2
  18. package/resources/cli/realtime.mjs.map +1 -1
  19. package/resources/connected-accounts.d.mts +164 -11
  20. package/resources/connected-accounts.d.mts.map +1 -1
  21. package/resources/connected-accounts.d.ts +164 -11
  22. package/resources/connected-accounts.d.ts.map +1 -1
  23. package/resources/connected-accounts.js +16 -7
  24. package/resources/connected-accounts.js.map +1 -1
  25. package/resources/connected-accounts.mjs +16 -7
  26. package/resources/connected-accounts.mjs.map +1 -1
  27. package/resources/files.js +2 -2
  28. package/resources/files.js.map +1 -1
  29. package/resources/files.mjs +2 -2
  30. package/resources/files.mjs.map +1 -1
  31. package/resources/link.d.mts +78 -44
  32. package/resources/link.d.mts.map +1 -1
  33. package/resources/link.d.ts +78 -44
  34. package/resources/link.d.ts.map +1 -1
  35. package/resources/link.js +1 -1
  36. package/resources/link.js.map +1 -1
  37. package/resources/link.mjs +1 -1
  38. package/resources/link.mjs.map +1 -1
  39. package/resources/logs/tools.js +2 -2
  40. package/resources/logs/tools.js.map +1 -1
  41. package/resources/logs/tools.mjs +2 -2
  42. package/resources/logs/tools.mjs.map +1 -1
  43. package/resources/logs/triggers.js +2 -2
  44. package/resources/logs/triggers.js.map +1 -1
  45. package/resources/logs/triggers.mjs +2 -2
  46. package/resources/logs/triggers.mjs.map +1 -1
  47. package/resources/mcp/custom.js +1 -1
  48. package/resources/mcp/custom.js.map +1 -1
  49. package/resources/mcp/custom.mjs +1 -1
  50. package/resources/mcp/custom.mjs.map +1 -1
  51. package/resources/mcp/generate.js +1 -1
  52. package/resources/mcp/generate.js.map +1 -1
  53. package/resources/mcp/generate.mjs +1 -1
  54. package/resources/mcp/generate.mjs.map +1 -1
  55. package/resources/mcp/mcp.js +6 -6
  56. package/resources/mcp/mcp.js.map +1 -1
  57. package/resources/mcp/mcp.mjs +6 -6
  58. package/resources/mcp/mcp.mjs.map +1 -1
  59. package/resources/migration.js +1 -1
  60. package/resources/migration.js.map +1 -1
  61. package/resources/migration.mjs +1 -1
  62. package/resources/migration.mjs.map +1 -1
  63. package/resources/project/config.js +2 -2
  64. package/resources/project/config.js.map +1 -1
  65. package/resources/project/config.mjs +2 -2
  66. package/resources/project/config.mjs.map +1 -1
  67. package/resources/tool-router/index.d.mts +1 -1
  68. package/resources/tool-router/index.d.mts.map +1 -1
  69. package/resources/tool-router/index.d.ts +1 -1
  70. package/resources/tool-router/index.d.ts.map +1 -1
  71. package/resources/tool-router/index.js.map +1 -1
  72. package/resources/tool-router/index.mjs.map +1 -1
  73. package/resources/tool-router/session/files.js +4 -7
  74. package/resources/tool-router/session/files.js.map +1 -1
  75. package/resources/tool-router/session/files.mjs +4 -7
  76. package/resources/tool-router/session/files.mjs.map +1 -1
  77. package/resources/tool-router/session/index.d.mts +1 -1
  78. package/resources/tool-router/session/index.d.mts.map +1 -1
  79. package/resources/tool-router/session/index.d.ts +1 -1
  80. package/resources/tool-router/session/index.d.ts.map +1 -1
  81. package/resources/tool-router/session/index.js.map +1 -1
  82. package/resources/tool-router/session/index.mjs.map +1 -1
  83. package/resources/tool-router/session/session.d.mts +2184 -560
  84. package/resources/tool-router/session/session.d.mts.map +1 -1
  85. package/resources/tool-router/session/session.d.ts +2184 -560
  86. package/resources/tool-router/session/session.d.ts.map +1 -1
  87. package/resources/tool-router/session/session.js +65 -25
  88. package/resources/tool-router/session/session.js.map +1 -1
  89. package/resources/tool-router/session/session.mjs +65 -25
  90. package/resources/tool-router/session/session.mjs.map +1 -1
  91. package/resources/tool-router/tool-router.d.mts +2 -2
  92. package/resources/tool-router/tool-router.d.mts.map +1 -1
  93. package/resources/tool-router/tool-router.d.ts +2 -2
  94. package/resources/tool-router/tool-router.d.ts.map +1 -1
  95. package/resources/tool-router/tool-router.js +1 -1
  96. package/resources/tool-router/tool-router.js.map +1 -1
  97. package/resources/tool-router/tool-router.mjs +1 -1
  98. package/resources/tool-router/tool-router.mjs.map +1 -1
  99. package/resources/toolkits.js +3 -3
  100. package/resources/toolkits.js.map +1 -1
  101. package/resources/toolkits.mjs +3 -3
  102. package/resources/toolkits.mjs.map +1 -1
  103. package/resources/tools.js +6 -6
  104. package/resources/tools.js.map +1 -1
  105. package/resources/tools.mjs +6 -6
  106. package/resources/tools.mjs.map +1 -1
  107. package/resources/trigger-instances/manage.js +2 -2
  108. package/resources/trigger-instances/manage.js.map +1 -1
  109. package/resources/trigger-instances/manage.mjs +2 -2
  110. package/resources/trigger-instances/manage.mjs.map +1 -1
  111. package/resources/trigger-instances/trigger-instances.js +2 -2
  112. package/resources/trigger-instances/trigger-instances.js.map +1 -1
  113. package/resources/trigger-instances/trigger-instances.mjs +2 -2
  114. package/resources/trigger-instances/trigger-instances.mjs.map +1 -1
  115. package/resources/triggers-types.js +3 -3
  116. package/resources/triggers-types.js.map +1 -1
  117. package/resources/triggers-types.mjs +3 -3
  118. package/resources/triggers-types.mjs.map +1 -1
  119. package/src/internal/types.ts +6 -8
  120. package/src/resources/auth-configs.ts +6 -6
  121. package/src/resources/cli/cli.ts +2 -2
  122. package/src/resources/cli/realtime.ts +2 -2
  123. package/src/resources/connected-accounts.ts +285 -18
  124. package/src/resources/files.ts +2 -2
  125. package/src/resources/link.ts +122 -61
  126. package/src/resources/logs/tools.ts +2 -2
  127. package/src/resources/logs/triggers.ts +2 -2
  128. package/src/resources/mcp/custom.ts +1 -1
  129. package/src/resources/mcp/generate.ts +1 -1
  130. package/src/resources/mcp/mcp.ts +6 -6
  131. package/src/resources/migration.ts +1 -1
  132. package/src/resources/project/config.ts +2 -2
  133. package/src/resources/tool-router/index.ts +6 -0
  134. package/src/resources/tool-router/session/files.ts +7 -7
  135. package/src/resources/tool-router/session/index.ts +6 -0
  136. package/src/resources/tool-router/session/session.ts +2605 -712
  137. package/src/resources/tool-router/tool-router.ts +13 -1
  138. package/src/resources/toolkits.ts +3 -3
  139. package/src/resources/tools.ts +6 -6
  140. package/src/resources/trigger-instances/manage.ts +2 -2
  141. package/src/resources/trigger-instances/trigger-instances.ts +2 -2
  142. package/src/resources/triggers-types.ts +3 -3
  143. package/src/version.ts +1 -1
  144. package/version.d.mts +1 -1
  145. package/version.d.ts +1 -1
  146. package/version.js +1 -1
  147. package/version.mjs +1 -1
@@ -37,7 +37,7 @@ export class Session extends APIResource {
37
37
  * ```
38
38
  */
39
39
  create(body: SessionCreateParams, options?: RequestOptions): APIPromise<SessionCreateResponse> {
40
- return this._client.post('/api/v3/tool_router/session', { body, ...options });
40
+ return this._client.post('/api/v3.1/tool_router/session', { body, ...options });
41
41
  }
42
42
 
43
43
  /**
@@ -52,16 +52,53 @@ export class Session extends APIResource {
52
52
  * ```
53
53
  */
54
54
  retrieve(sessionID: string, options?: RequestOptions): APIPromise<SessionRetrieveResponse> {
55
- return this._client.get(path`/api/v3/tool_router/session/${sessionID}`, options);
55
+ return this._client.get(path`/api/v3.1/tool_router/session/${sessionID}`, options);
56
56
  }
57
57
 
58
58
  /**
59
- * Executes a specific tool within a tool router session. This is the primary
60
- * execution endpoint for both meta tools and app tools exposed by the session. The
61
- * toolkit is automatically inferred from the tool slug. For app tools, the tool
62
- * must belong to an allowed toolkit and must not be disabled in the session
63
- * configuration. The endpoint validates permissions, resolves connected accounts
64
- * when needed, and executes the tool with the session context.
59
+ * Fetch an existing tool router session by ID.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const response = await client.toolRouter.session.attach(
64
+ * 'trs_1a2b3c4d5e6f',
65
+ * );
66
+ * ```
67
+ */
68
+ attach(
69
+ sessionID: string,
70
+ body: SessionAttachParams | null | undefined = {},
71
+ options?: RequestOptions,
72
+ ): APIPromise<SessionAttachResponse> {
73
+ return this._client.post(path`/api/v3.1/tool_router/session/${sessionID}/attach`, { body, ...options });
74
+ }
75
+
76
+ /**
77
+ * Returns the session config history ordered by version DESC (newest first). The
78
+ * live (current) config appears once, on the first page only, with
79
+ * `is_current: true`; archived versions have `is_current: false`.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * const response =
84
+ * await client.toolRouter.session.configHistory(
85
+ * 'trs_1a2b3c4d5e6f',
86
+ * );
87
+ * ```
88
+ */
89
+ configHistory(
90
+ sessionID: string,
91
+ query: SessionConfigHistoryParams | null | undefined = {},
92
+ options?: RequestOptions,
93
+ ): APIPromise<SessionConfigHistoryResponse> {
94
+ return this._client.get(path`/api/v3.1/tool_router/session/${sessionID}/config_history`, {
95
+ query,
96
+ ...options,
97
+ });
98
+ }
99
+
100
+ /**
101
+ * Execute a tool (meta or app) within an existing tool router session.
65
102
  *
66
103
  * @example
67
104
  * ```ts
@@ -76,13 +113,12 @@ export class Session extends APIResource {
76
113
  body: SessionExecuteParams,
77
114
  options?: RequestOptions,
78
115
  ): APIPromise<SessionExecuteResponse> {
79
- return this._client.post(path`/api/v3/tool_router/session/${sessionID}/execute`, { body, ...options });
116
+ return this._client.post(path`/api/v3.1/tool_router/session/${sessionID}/execute`, { body, ...options });
80
117
  }
81
118
 
82
119
  /**
83
- * Executes a Composio meta tool (COMPOSIO\_\*) within a tool router session. This
84
- * endpoint is kept for meta-tool compatibility; clients can also use the primary
85
- * /execute endpoint.
120
+ * Execute a Composio meta tool (COMPOSIO\_\*) within an existing tool router
121
+ * session.
86
122
  *
87
123
  * @example
88
124
  * ```ts
@@ -98,7 +134,7 @@ export class Session extends APIResource {
98
134
  body: SessionExecuteMetaParams,
99
135
  options?: RequestOptions,
100
136
  ): APIPromise<SessionExecuteMetaResponse> {
101
- return this._client.post(path`/api/v3/tool_router/session/${sessionID}/execute_meta`, {
137
+ return this._client.post(path`/api/v3.1/tool_router/session/${sessionID}/execute_meta`, {
102
138
  body,
103
139
  ...options,
104
140
  });
@@ -122,7 +158,28 @@ export class Session extends APIResource {
122
158
  body: SessionLinkParams,
123
159
  options?: RequestOptions,
124
160
  ): APIPromise<SessionLinkResponse> {
125
- return this._client.post(path`/api/v3/tool_router/session/${sessionID}/link`, { body, ...options });
161
+ return this._client.post(path`/api/v3.1/tool_router/session/${sessionID}/link`, { body, ...options });
162
+ }
163
+
164
+ /**
165
+ * Partially updates the configuration of an existing tool router session. Only the
166
+ * fields provided in the request body will be updated. Uses optimistic concurrency
167
+ * control to prevent lost updates. The previous config is stored in config
168
+ * history.
169
+ *
170
+ * @example
171
+ * ```ts
172
+ * const response = await client.toolRouter.session.patch(
173
+ * 'trs_1a2b3c4d5e6f',
174
+ * );
175
+ * ```
176
+ */
177
+ patch(
178
+ sessionID: string,
179
+ body: SessionPatchParams | null | undefined = {},
180
+ options?: RequestOptions,
181
+ ): APIPromise<SessionPatchResponse> {
182
+ return this._client.patch(path`/api/v3.1/tool_router/session/${sessionID}`, { body, ...options });
126
183
  }
127
184
 
128
185
  /**
@@ -152,16 +209,15 @@ export class Session extends APIResource {
152
209
  body: SessionProxyExecuteParams,
153
210
  options?: RequestOptions,
154
211
  ): APIPromise<SessionProxyExecuteResponse> {
155
- return this._client.post(path`/api/v3/tool_router/session/${sessionID}/proxy_execute`, {
212
+ return this._client.post(path`/api/v3.1/tool_router/session/${sessionID}/proxy_execute`, {
156
213
  body,
157
214
  ...options,
158
215
  });
159
216
  }
160
217
 
161
218
  /**
162
- * Search for tools matching a given use case query within a tool router session.
163
- * Returns matching tool slugs, full tool schemas, toolkit connection statuses, and
164
- * workflow guidance in a predictable format.
219
+ * Search for tools matching a use case query within an existing tool router
220
+ * session.
165
221
  *
166
222
  * @example
167
223
  * ```ts
@@ -180,7 +236,7 @@ export class Session extends APIResource {
180
236
  body: SessionSearchParams,
181
237
  options?: RequestOptions,
182
238
  ): APIPromise<SessionSearchResponse> {
183
- return this._client.post(path`/api/v3/tool_router/session/${sessionID}/search`, { body, ...options });
239
+ return this._client.post(path`/api/v3.1/tool_router/session/${sessionID}/search`, { body, ...options });
184
240
  }
185
241
 
186
242
  /**
@@ -200,13 +256,12 @@ export class Session extends APIResource {
200
256
  query: SessionToolkitsParams | null | undefined = {},
201
257
  options?: RequestOptions,
202
258
  ): APIPromise<SessionToolkitsResponse> {
203
- return this._client.get(path`/api/v3/tool_router/session/${sessionID}/toolkits`, { query, ...options });
259
+ return this._client.get(path`/api/v3.1/tool_router/session/${sessionID}/toolkits`, { query, ...options });
204
260
  }
205
261
 
206
262
  /**
207
- * Returns the tools available in a tool router session with their complete
208
- * schemas. This includes both meta tools and any preloaded app tools exposed by
209
- * the session.
263
+ * Returns tools available in a tool router session with complete schemas. Results
264
+ * are paginated; use `next_cursor` to fetch the next page.
210
265
  *
211
266
  * @example
212
267
  * ```ts
@@ -217,16 +272,16 @@ export class Session extends APIResource {
217
272
  */
218
273
  tools(
219
274
  sessionID: string,
220
- query?: SessionToolsParams | null | undefined,
275
+ query: SessionToolsParams | null | undefined = {},
221
276
  options?: RequestOptions,
222
277
  ): APIPromise<SessionToolsResponse> {
223
- return this._client.get(path`/api/v3/tool_router/session/${sessionID}/tools`, options);
278
+ return this._client.get(path`/api/v3.1/tool_router/session/${sessionID}/tools`, { query, ...options });
224
279
  }
225
280
  }
226
281
 
227
282
  export interface SessionCreateResponse {
228
283
  /**
229
- * The session configuration including user, toolkits, and overrides
284
+ * The configuration used to create this session
230
285
  */
231
286
  config: SessionCreateResponse.Config;
232
287
 
@@ -255,26 +310,33 @@ export interface SessionCreateResponse {
255
310
  experimental?: SessionCreateResponse.Experimental;
256
311
 
257
312
  /**
258
- * Advisory list — session was created, but the listed issues may warrant
259
- * attention.
313
+ * Advisory list — the session exists and is usable, but the listed issues may
314
+ * warrant attention.
260
315
  */
261
316
  warnings?: Array<SessionCreateResponse.Warning>;
262
317
  }
263
318
 
264
319
  export namespace SessionCreateResponse {
265
320
  /**
266
- * The session configuration including user, toolkits, and overrides
321
+ * The configuration used to create this session
267
322
  */
268
323
  export interface Config {
269
324
  /**
270
- * Preload configuration. Controls which tools appear in `session.tools` and the
271
- * MCP server tool list, callable directly without going through search. Each
272
- * preloaded tool adds to the agent context — roughly ≤20 tools is recommended.
273
- * Always present in the response (empty `tools: []` when the session was created
274
- * without a preload config).
325
+ * Execute helper configuration
326
+ */
327
+ execute: Config.Execute;
328
+
329
+ /**
330
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
331
+ * is returned as "all".
275
332
  */
276
333
  preload: Config.Preload;
277
334
 
335
+ /**
336
+ * Search helper configuration
337
+ */
338
+ search: Config.Search;
339
+
278
340
  /**
279
341
  * User identifier for this session
280
342
  */
@@ -326,19 +388,29 @@ export namespace SessionCreateResponse {
326
388
 
327
389
  export namespace Config {
328
390
  /**
329
- * Preload configuration. Controls which tools appear in `session.tools` and the
330
- * MCP server tool list, callable directly without going through search. Each
331
- * preloaded tool adds to the agent context — roughly ≤20 tools is recommended.
332
- * Always present in the response (empty `tools: []` when the session was created
333
- * without a preload config).
391
+ * Execute helper configuration
392
+ */
393
+ export interface Execute {
394
+ enable_multi_execute?: boolean;
395
+ }
396
+
397
+ /**
398
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
399
+ * is returned as "all".
334
400
  */
335
401
  export interface Preload {
336
402
  /**
337
- * Tool slugs preloaded for this session. Appear in `session.tools` and the MCP
338
- * server tool list, callable directly without going through search. Empty array
339
- * when no preload was configured.
403
+ * Explicit preloaded tool slugs, or "all" when the session dynamically exposes all
404
+ * app tools allowed by its filters.
340
405
  */
341
- tools: Array<string>;
406
+ tools: Array<string> | 'all';
407
+ }
408
+
409
+ /**
410
+ * Search helper configuration
411
+ */
412
+ export interface Search {
413
+ enable?: boolean;
342
414
  }
343
415
 
344
416
  /**
@@ -575,7 +647,7 @@ export namespace SessionCreateResponse {
575
647
 
576
648
  export interface SessionRetrieveResponse {
577
649
  /**
578
- * The session configuration including user, toolkits, and overrides
650
+ * The configuration used to create this session
579
651
  */
580
652
  config: SessionRetrieveResponse.Config;
581
653
 
@@ -601,22 +673,35 @@ export interface SessionRetrieveResponse {
601
673
  * Experimental features
602
674
  */
603
675
  experimental?: SessionRetrieveResponse.Experimental;
676
+
677
+ /**
678
+ * Advisory list — the session exists and is usable, but the listed issues may
679
+ * warrant attention.
680
+ */
681
+ warnings?: Array<SessionRetrieveResponse.Warning>;
604
682
  }
605
683
 
606
684
  export namespace SessionRetrieveResponse {
607
685
  /**
608
- * The session configuration including user, toolkits, and overrides
686
+ * The configuration used to create this session
609
687
  */
610
688
  export interface Config {
611
689
  /**
612
- * Preload configuration. Controls which tools appear in `session.tools` and the
613
- * MCP server tool list, callable directly without going through search. Each
614
- * preloaded tool adds to the agent context — roughly ≤20 tools is recommended.
615
- * Always present in the response (empty `tools: []` when the session was created
616
- * without a preload config).
690
+ * Execute helper configuration
691
+ */
692
+ execute: Config.Execute;
693
+
694
+ /**
695
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
696
+ * is returned as "all".
617
697
  */
618
698
  preload: Config.Preload;
619
699
 
700
+ /**
701
+ * Search helper configuration
702
+ */
703
+ search: Config.Search;
704
+
620
705
  /**
621
706
  * User identifier for this session
622
707
  */
@@ -668,19 +753,29 @@ export namespace SessionRetrieveResponse {
668
753
 
669
754
  export namespace Config {
670
755
  /**
671
- * Preload configuration. Controls which tools appear in `session.tools` and the
672
- * MCP server tool list, callable directly without going through search. Each
673
- * preloaded tool adds to the agent context — roughly ≤20 tools is recommended.
674
- * Always present in the response (empty `tools: []` when the session was created
675
- * without a preload config).
756
+ * Execute helper configuration
757
+ */
758
+ export interface Execute {
759
+ enable_multi_execute?: boolean;
760
+ }
761
+
762
+ /**
763
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
764
+ * is returned as "all".
676
765
  */
677
766
  export interface Preload {
678
767
  /**
679
- * Tool slugs preloaded for this session. Appear in `session.tools` and the MCP
680
- * server tool list, callable directly without going through search. Empty array
681
- * when no preload was configured.
768
+ * Explicit preloaded tool slugs, or "all" when the session dynamically exposes all
769
+ * app tools allowed by its filters.
682
770
  */
683
- tools: Array<string>;
771
+ tools: Array<string> | 'all';
772
+ }
773
+
774
+ /**
775
+ * Search helper configuration
776
+ */
777
+ export interface Search {
778
+ enable?: boolean;
684
779
  }
685
780
 
686
781
  /**
@@ -899,438 +994,389 @@ export namespace SessionRetrieveResponse {
899
994
  output_schema?: { [key: string]: unknown };
900
995
  }
901
996
  }
902
- }
903
-
904
- export interface SessionExecuteResponse {
905
- /**
906
- * The data returned by the tool execution
907
- */
908
- data: { [key: string]: unknown };
909
-
910
- /**
911
- * Error message if the execution failed, null otherwise
912
- */
913
- error: string | null;
914
-
915
- /**
916
- * Unique identifier for the execution log
917
- */
918
- log_id: string;
919
- }
920
-
921
- export interface SessionExecuteMetaResponse {
922
- /**
923
- * The data returned by the tool execution
924
- */
925
- data: { [key: string]: unknown };
926
997
 
927
- /**
928
- * Error message if the execution failed, null otherwise
929
- */
930
- error: string | null;
998
+ export interface Warning {
999
+ /**
1000
+ * Stable machine code identifying the advisory. Safe to switch on in client code.
1001
+ */
1002
+ code: 'PRELOAD_TOOLS_HIGH_CONTEXT_USAGE';
931
1003
 
932
- /**
933
- * Unique identifier for the execution log
934
- */
935
- log_id: string;
1004
+ /**
1005
+ * Human-readable description of the advisory. Suitable for logging or surfacing to
1006
+ * end users.
1007
+ */
1008
+ message: string;
1009
+ }
936
1010
  }
937
1011
 
938
- export interface SessionLinkResponse {
1012
+ export interface SessionAttachResponse {
939
1013
  /**
940
- * The unique identifier for the connected account
1014
+ * The configuration used to create this session
941
1015
  */
942
- connected_account_id: string;
1016
+ config: SessionAttachResponse.Config;
943
1017
 
944
1018
  /**
945
- * Token used to complete the authentication flow
1019
+ * Monotonic version of the config. Incremented on each PATCH. Use for optimistic
1020
+ * concurrency control.
946
1021
  */
947
- link_token: string;
1022
+ config_version: number;
948
1023
 
949
- /**
950
- * The URL where users should be redirected to complete OAuth
951
- */
952
- redirect_url: string;
953
- }
1024
+ mcp: SessionAttachResponse.Mcp;
954
1025
 
955
- export interface SessionProxyExecuteResponse {
956
1026
  /**
957
- * The HTTP status code returned from the proxied API
1027
+ * The identifier of the session
958
1028
  */
959
- status: number;
1029
+ session_id: string;
960
1030
 
961
1031
  /**
962
- * Binary body response data. Present when the response is a binary file.
1032
+ * List of available tools in this session
963
1033
  */
964
- binary_data?: SessionProxyExecuteResponse.BinaryData;
1034
+ tool_router_tools: Array<string>;
965
1035
 
966
1036
  /**
967
- * The response data returned from the proxied API
1037
+ * Experimental features
968
1038
  */
969
- data?: unknown;
1039
+ experimental?: SessionAttachResponse.Experimental;
970
1040
 
971
1041
  /**
972
- * The HTTP headers returned from the proxied API
1042
+ * Advisory list the session exists and is usable, but the listed issues may
1043
+ * warrant attention.
973
1044
  */
974
- headers?: { [key: string]: string };
1045
+ warnings?: Array<SessionAttachResponse.Warning>;
975
1046
  }
976
1047
 
977
- export namespace SessionProxyExecuteResponse {
1048
+ export namespace SessionAttachResponse {
978
1049
  /**
979
- * Binary body response data. Present when the response is a binary file.
1050
+ * The configuration used to create this session
980
1051
  */
981
- export interface BinaryData {
1052
+ export interface Config {
982
1053
  /**
983
- * Content-Type of the binary data
1054
+ * Execute helper configuration
984
1055
  */
985
- content_type: string;
1056
+ execute: Config.Execute;
986
1057
 
987
1058
  /**
988
- * File size in bytes
1059
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
1060
+ * is returned as "all".
989
1061
  */
990
- size: number;
1062
+ preload: Config.Preload;
991
1063
 
992
1064
  /**
993
- * URL to download binary content
1065
+ * Search helper configuration
994
1066
  */
995
- url: string;
1067
+ search: Config.Search;
996
1068
 
997
1069
  /**
998
- * ISO 8601 timestamp when the URL expires
1070
+ * User identifier for this session
999
1071
  */
1000
- expires_at?: string;
1001
- }
1002
- }
1003
-
1004
- export interface SessionSearchResponse {
1005
- /**
1006
- * Error message if any searches failed, null if all succeeded. Format: "X out of Y
1007
- * searches failed, reasons: <details>"
1008
- */
1009
- error: string | null;
1010
-
1011
- /**
1012
- * Combined workflow guidance covering connections, planner, and memory usage. Each
1013
- * element is a step instruction.
1014
- */
1015
- next_steps_guidance: Array<string>;
1016
-
1017
- /**
1018
- * Per-query search results with tools, reasoning, and memory. One entry per query
1019
- * in request order.
1020
- */
1021
- results: Array<SessionSearchResponse.Result>;
1022
-
1023
- /**
1024
- * Session info for correlating meta tool calls
1025
- */
1026
- session: SessionSearchResponse.Session;
1027
-
1028
- /**
1029
- * Whether all searches completed successfully. False if any query failed.
1030
- */
1031
- success: boolean;
1032
-
1033
- /**
1034
- * Time information for the query
1035
- */
1036
- time_info: SessionSearchResponse.TimeInfo;
1037
-
1038
- /**
1039
- * Deduplicated tool definitions keyed by tool_slug for O(1) lookup. Each tool
1040
- * appears once even if used in multiple queries.
1041
- */
1042
- tool_schemas: { [key: string]: SessionSearchResponse.ToolSchemas };
1043
-
1044
- /**
1045
- * Connection status for all toolkits mentioned across all queries, with
1046
- * descriptions merged in.
1047
- */
1048
- toolkit_connection_statuses: Array<SessionSearchResponse.ToolkitConnectionStatus>;
1049
- }
1072
+ user_id: string;
1050
1073
 
1051
- export namespace SessionSearchResponse {
1052
- export interface Result {
1053
1074
  /**
1054
- * 1-based index of the query in the request
1075
+ * Auth config overrides per toolkit
1055
1076
  */
1056
- index: number;
1077
+ auth_configs?: { [key: string]: string };
1057
1078
 
1058
1079
  /**
1059
- * List of main tool slugs matching the search criteria
1080
+ * Connected account overrides per toolkit. Each connected account must belong to
1081
+ * the same user_id as the session.
1060
1082
  */
1061
- primary_tool_slugs: Array<string>;
1083
+ connected_accounts?: { [key: string]: string };
1062
1084
 
1063
1085
  /**
1064
- * List of related tool slugs that might be useful
1086
+ * Manage connections configuration
1065
1087
  */
1066
- related_tool_slugs: Array<string>;
1088
+ manage_connections?: Config.ManageConnections;
1067
1089
 
1068
1090
  /**
1069
- * List of unique toolkit slugs used by tools in this query
1091
+ * Multi-account configuration for this session.
1070
1092
  */
1071
- toolkits: Array<string>;
1093
+ multi_account?: Config.MultiAccount;
1072
1094
 
1073
1095
  /**
1074
- * The use case that was searched
1096
+ * MCP tool annotation hints for filtering tools with enabled/disabled support.
1097
+ * enabled: tags that the tool must have at least one of. disabled: tags that the
1098
+ * tool must NOT have any of. Both conditions must be satisfied.
1075
1099
  */
1076
- use_case: string;
1100
+ tags?: Config.Tags;
1077
1101
 
1078
1102
  /**
1079
- * Task difficulty assessment (e.g., "easy - Simple single-tool operation with
1080
- * known parameters")
1103
+ * Toolkit configuration - either enabled list or disabled list
1081
1104
  */
1082
- difficulty?: string;
1105
+ toolkits?: Config.Enabled | Config.Disabled;
1083
1106
 
1084
1107
  /**
1085
- * Error message if the search for this query failed, null otherwise. Always
1086
- * present for failed queries.
1108
+ * Tool-level configuration per toolkit
1087
1109
  */
1088
- error?: string | null;
1110
+ tools?: { [key: string]: Config.Enabled | Config.Disabled | Config.Tags };
1089
1111
 
1090
1112
  /**
1091
- * Guidance message about the search results, particularly when a cached plan is
1092
- * available
1113
+ * Workbench configuration
1093
1114
  */
1094
- execution_guidance?: string;
1115
+ workbench?: Config.Workbench;
1116
+ }
1095
1117
 
1118
+ export namespace Config {
1096
1119
  /**
1097
- * Common pitfalls and considerations (only present when cached plan is available)
1120
+ * Execute helper configuration
1098
1121
  */
1099
- known_pitfalls?: Array<string>;
1122
+ export interface Execute {
1123
+ enable_multi_execute?: boolean;
1124
+ }
1100
1125
 
1101
1126
  /**
1102
- * Memory data relevant to this query, grouped by app. Only present for non-cached
1103
- * search results.
1127
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
1128
+ * is returned as "all".
1104
1129
  */
1105
- memory?: { [key: string]: Array<string> };
1106
-
1107
- /**
1108
- * ID of cached plan if available
1109
- */
1110
- plan_id?: string;
1130
+ export interface Preload {
1131
+ /**
1132
+ * Explicit preloaded tool slugs, or "all" when the session dynamically exposes all
1133
+ * app tools allowed by its filters.
1134
+ */
1135
+ tools: Array<string> | 'all';
1136
+ }
1111
1137
 
1112
1138
  /**
1113
- * Workflow steps from cached plan (only present when cached plan is available)
1139
+ * Search helper configuration
1114
1140
  */
1115
- recommended_plan_steps?: Array<string>;
1141
+ export interface Search {
1142
+ enable?: boolean;
1143
+ }
1116
1144
 
1117
1145
  /**
1118
- * Reference Python code snippets for processing tool responses in the workbench
1119
- * (only present when cached plan is available)
1146
+ * Manage connections configuration
1120
1147
  */
1121
- reference_workbench_snippets?: Array<Result.ReferenceWorkbenchSnippet>;
1122
- }
1148
+ export interface ManageConnections {
1149
+ /**
1150
+ * Custom callback URL for connected account auth flows
1151
+ */
1152
+ callback_url?: string;
1123
1153
 
1124
- export namespace Result {
1125
- export interface ReferenceWorkbenchSnippet {
1126
1154
  /**
1127
- * Python code snippet for the workbench
1155
+ * Enable the "remove" action in COMPOSIO_MANAGE_CONNECTIONS. Default true.
1128
1156
  */
1129
- code: string;
1157
+ enable_connection_removal?: boolean;
1130
1158
 
1131
1159
  /**
1132
- * Description of what the code snippet does
1160
+ * Enable the COMPOSIO_WAIT_FOR_CONNECTIONS tool for polling connection status.
1161
+ * Default false. May not work reliably with GPT models.
1133
1162
  */
1134
- description: string;
1135
- }
1136
- }
1163
+ enable_wait_for_connections?: boolean;
1137
1164
 
1138
- /**
1139
- * Session info for correlating meta tool calls
1140
- */
1141
- export interface Session {
1142
- /**
1143
- * Session identifier to be passed to subsequent meta tool calls as session_id.
1144
- */
1145
- id: string;
1165
+ /**
1166
+ * Whether to enable the connection manager for automatic connection handling
1167
+ */
1168
+ enabled?: boolean;
1169
+ }
1146
1170
 
1147
1171
  /**
1148
- * Whether a fresh session id was generated in this call.
1172
+ * Multi-account configuration for this session.
1149
1173
  */
1150
- generate_id: boolean;
1174
+ export interface MultiAccount {
1175
+ /**
1176
+ * When true, enables multi-account mode for this session. When not set, falls back
1177
+ * to org/project-level configuration.
1178
+ */
1179
+ enable?: boolean;
1151
1180
 
1152
- /**
1153
- * LLM-facing guidance on how to reuse this session id
1154
- */
1155
- instructions: string;
1156
- }
1181
+ /**
1182
+ * Maximum number of connected accounts allowed per toolkit. Defaults to 5 when
1183
+ * multi-account is enabled.
1184
+ */
1185
+ max_accounts_per_toolkit?: number;
1157
1186
 
1158
- /**
1159
- * Time information for the query
1160
- */
1161
- export interface TimeInfo {
1162
- /**
1163
- * Current time in ISO format (UTC)
1164
- */
1165
- current_time_utc: string;
1187
+ /**
1188
+ * When true, require explicit account selection when multiple accounts are
1189
+ * connected. When false (default), use the first/default account.
1190
+ */
1191
+ require_explicit_selection?: boolean;
1192
+ }
1166
1193
 
1167
1194
  /**
1168
- * Current time as Unix epoch timestamp in seconds
1195
+ * MCP tool annotation hints for filtering tools with enabled/disabled support.
1196
+ * enabled: tags that the tool must have at least one of. disabled: tags that the
1197
+ * tool must NOT have any of. Both conditions must be satisfied.
1169
1198
  */
1170
- current_time_utc_epoch_seconds: number;
1199
+ export interface Tags {
1200
+ /**
1201
+ * Tags that the tool must NOT have any of
1202
+ */
1203
+ disabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1171
1204
 
1172
- /**
1173
- * Important message about time handling and timezone considerations
1174
- */
1175
- message: string;
1176
- }
1205
+ /**
1206
+ * Tags that the tool must have at least one of
1207
+ */
1208
+ enabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1209
+ }
1177
1210
 
1178
- export interface ToolSchemas {
1179
- /**
1180
- * The slug of the tool
1181
- */
1182
- tool_slug: string;
1211
+ export interface Enabled {
1212
+ enabled: Array<string>;
1213
+ }
1183
1214
 
1184
- /**
1185
- * The slug of the toolkit that provides this tool
1186
- */
1187
- toolkit: string;
1215
+ export interface Disabled {
1216
+ disabled: Array<string>;
1217
+ }
1188
1218
 
1189
- /**
1190
- * Description of the tool
1191
- */
1192
- description?: string;
1219
+ export interface Enabled {
1220
+ enabled: Array<string>;
1221
+ }
1193
1222
 
1194
- /**
1195
- * Whether the full input_schema is included in this response
1196
- */
1197
- hasFullSchema?: boolean;
1223
+ export interface Disabled {
1224
+ disabled: Array<string>;
1225
+ }
1198
1226
 
1199
- /**
1200
- * Input schema for the tool (only present when hasFullSchema is true)
1201
- */
1202
- input_schema?: { [key: string]: unknown };
1227
+ export interface Tags {
1228
+ tags: Tags.Tags;
1229
+ }
1203
1230
 
1204
- /**
1205
- * Output/response schema for the tool. Only included when include_output_schemas
1206
- * is true.
1207
- */
1208
- output_schema?: { [key: string]: unknown };
1231
+ export namespace Tags {
1232
+ export interface Tags {
1233
+ /**
1234
+ * Tags that the tool must NOT have any of
1235
+ */
1236
+ disabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1209
1237
 
1210
- /**
1211
- * Reference to fetch full schema when hasFullSchema is false
1212
- */
1213
- schemaRef?: ToolSchemas.SchemaRef;
1214
- }
1238
+ /**
1239
+ * Tags that the tool must have at least one of
1240
+ */
1241
+ enabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1242
+ }
1243
+ }
1215
1244
 
1216
- export namespace ToolSchemas {
1217
1245
  /**
1218
- * Reference to fetch full schema when hasFullSchema is false
1246
+ * Workbench configuration
1219
1247
  */
1220
- export interface SchemaRef {
1248
+ export interface Workbench {
1221
1249
  /**
1222
- * Arguments to pass to the tool
1250
+ * Character threshold after which tool execution response are saved to a file in
1251
+ * workbench. Default is 20k.
1223
1252
  */
1224
- args: SchemaRef.Args;
1253
+ auto_offload_threshold?: number;
1225
1254
 
1226
1255
  /**
1227
- * Tool to call
1256
+ * Whether the workbench (code execution sandbox) is enabled. When false,
1257
+ * COMPOSIO_REMOTE_WORKBENCH and COMPOSIO_REMOTE_BASH_TOOL are not exposed.
1228
1258
  */
1229
- tool: 'COMPOSIO_GET_TOOL_SCHEMAS';
1259
+ enable?: boolean;
1230
1260
 
1231
1261
  /**
1232
- * Instruction message for the LLM
1262
+ * Whether proxy execution is enabled in the workbench
1233
1263
  */
1234
- message?: string;
1235
- }
1264
+ proxy_execution_enabled?: boolean;
1236
1265
 
1237
- export namespace SchemaRef {
1238
1266
  /**
1239
- * Arguments to pass to the tool
1267
+ * Sandbox compute tier: standard (1 vCPU / 1 GB), medium (2 vCPU / 2 GB), large (4
1268
+ * vCPU / 4 GB), xlarge (8 vCPU / 8 GB). Defaults to standard.
1240
1269
  */
1241
- export interface Args {
1242
- /**
1243
- * Tool slugs to fetch schemas for
1244
- */
1245
- tool_slugs: Array<string>;
1246
- }
1270
+ sandbox_size?: 'standard' | 'medium' | 'large' | 'xlarge';
1247
1271
  }
1248
1272
  }
1249
1273
 
1250
- export interface ToolkitConnectionStatus {
1274
+ export interface Mcp {
1251
1275
  /**
1252
- * Description of what the toolkit does and its capabilities
1276
+ * The type of the MCP server. Can be http
1253
1277
  */
1254
- description: string;
1278
+ type: 'http';
1255
1279
 
1256
1280
  /**
1257
- * Whether an active connection exists for this toolkit
1281
+ * The URL of the MCP server
1258
1282
  */
1259
- has_active_connection: boolean;
1283
+ url: string;
1284
+ }
1260
1285
 
1286
+ /**
1287
+ * Experimental features
1288
+ */
1289
+ export interface Experimental {
1261
1290
  /**
1262
- * Human-readable message about the connection status and next steps
1291
+ * The assistive system prompt for the tool router session
1263
1292
  */
1264
- status_message: string;
1293
+ assistive_prompt?: string;
1265
1294
 
1266
1295
  /**
1267
- * The toolkit slug identifier (e.g., "gmail", "slack")
1296
+ * User-defined custom toolkits with grouped tools (no-auth)
1268
1297
  */
1269
- toolkit: string;
1298
+ custom_toolkits?: Array<Experimental.CustomToolkit>;
1270
1299
 
1271
1300
  /**
1272
- * When "required", the agent must specify which account to use. Present only when
1273
- * multiple accounts exist.
1301
+ * Custom tools standalone or extending Composio toolkits
1274
1302
  */
1275
- account_selection?: 'required';
1303
+ custom_tools?: Array<Experimental.CustomTool>;
1304
+ }
1276
1305
 
1277
- /**
1278
- * List of connected accounts for this toolkit. Present when multi-account is
1279
- * enabled.
1280
- */
1281
- accounts?: Array<ToolkitConnectionStatus.Account>;
1306
+ export namespace Experimental {
1307
+ export interface CustomToolkit {
1308
+ description: string;
1282
1309
 
1283
- /**
1284
- * Connection details including auth config and connected account IDs. Only present
1285
- * when has_active_connection is true.
1286
- */
1287
- connection_details?: { [key: string]: unknown };
1310
+ name: string;
1288
1311
 
1289
- /**
1290
- * Information about the currently connected user (email, name, etc.)
1291
- */
1292
- current_user_info?: { [key: string]: unknown };
1293
- }
1312
+ slug: string;
1294
1313
 
1295
- export namespace ToolkitConnectionStatus {
1296
- export interface Account {
1297
- /**
1298
- * Unique identifier for this account
1299
- */
1300
- id: string;
1314
+ tools: Array<CustomToolkit.Tool>;
1315
+ }
1301
1316
 
1302
- /**
1303
- * ISO 8601 timestamp of when the account was connected
1304
- */
1305
- created_at: string;
1317
+ export namespace CustomToolkit {
1318
+ export interface Tool {
1319
+ description: string;
1306
1320
 
1307
- /**
1308
- * Whether this is the default account for the toolkit
1309
- */
1310
- is_default: boolean;
1321
+ input_schema: { [key: string]: unknown };
1311
1322
 
1312
- /**
1313
- * Connection status (e.g., "active")
1314
- */
1315
- status: string;
1323
+ name: string;
1324
+
1325
+ /**
1326
+ * Original tool slug as provided by the user
1327
+ */
1328
+ original_slug: string;
1329
+
1330
+ /**
1331
+ * Prefixed tool slug (e.g. LOCAL_CRM_FIND_CUSTOMER)
1332
+ */
1333
+ slug: string;
1334
+
1335
+ output_schema?: { [key: string]: unknown };
1336
+ }
1337
+ }
1338
+
1339
+ export interface CustomTool {
1340
+ description: string;
1341
+
1342
+ input_schema: { [key: string]: unknown };
1343
+
1344
+ name: string;
1316
1345
 
1317
1346
  /**
1318
- * User-assigned alias for this account
1347
+ * Original tool slug as provided by the user
1319
1348
  */
1320
- alias?: string;
1349
+ original_slug: string;
1321
1350
 
1322
1351
  /**
1323
- * Information about the connected user (email, name, etc.)
1352
+ * Prefixed tool slug (e.g. LOCAL_GMAIL_GET_IMPORTANT_EMAILS)
1324
1353
  */
1325
- user_info?: { [key: string]: unknown };
1354
+ slug: string;
1355
+
1356
+ extends_toolkit?: string;
1357
+
1358
+ output_schema?: { [key: string]: unknown };
1326
1359
  }
1327
1360
  }
1361
+
1362
+ export interface Warning {
1363
+ /**
1364
+ * Stable machine code identifying the advisory. Safe to switch on in client code.
1365
+ */
1366
+ code: 'PRELOAD_TOOLS_HIGH_CONTEXT_USAGE';
1367
+
1368
+ /**
1369
+ * Human-readable description of the advisory. Suitable for logging or surfacing to
1370
+ * end users.
1371
+ */
1372
+ message: string;
1373
+ }
1328
1374
  }
1329
1375
 
1330
- export interface SessionToolkitsResponse {
1376
+ export interface SessionConfigHistoryResponse {
1331
1377
  current_page: number;
1332
1378
 
1333
- items: Array<SessionToolkitsResponse.Item>;
1379
+ items: Array<SessionConfigHistoryResponse.Item>;
1334
1380
 
1335
1381
  total_items: number;
1336
1382
 
@@ -1339,356 +1385,2036 @@ export interface SessionToolkitsResponse {
1339
1385
  next_cursor?: string | null;
1340
1386
  }
1341
1387
 
1342
- export namespace SessionToolkitsResponse {
1388
+ export namespace SessionConfigHistoryResponse {
1343
1389
  export interface Item {
1344
1390
  /**
1345
- * Available Composio-managed auth schemes
1391
+ * The session configuration at this version
1346
1392
  */
1347
- composio_managed_auth_schemes: Array<string>;
1393
+ config: Item.Config;
1348
1394
 
1349
1395
  /**
1350
- * Connected account if available
1396
+ * ISO timestamp. For history rows, when the entry was archived (i.e. the moment
1397
+ * the version was superseded by a PATCH).
1351
1398
  */
1352
- connected_account: Item.ConnectedAccount | null;
1399
+ created_at: string;
1353
1400
 
1354
1401
  /**
1355
- * Whether the toolkit is enabled
1402
+ * True only for the live (current) session config, present on the first page.
1403
+ * False for archived history rows.
1404
+ */
1405
+ is_current: boolean;
1406
+
1407
+ /**
1408
+ * The config version this entry represents
1409
+ */
1410
+ version: number;
1411
+ }
1412
+
1413
+ export namespace Item {
1414
+ /**
1415
+ * The session configuration at this version
1416
+ */
1417
+ export interface Config {
1418
+ /**
1419
+ * Execute helper configuration
1420
+ */
1421
+ execute: Config.Execute;
1422
+
1423
+ /**
1424
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
1425
+ * is returned as "all".
1426
+ */
1427
+ preload: Config.Preload;
1428
+
1429
+ /**
1430
+ * Search helper configuration
1431
+ */
1432
+ search: Config.Search;
1433
+
1434
+ /**
1435
+ * User identifier for this session
1436
+ */
1437
+ user_id: string;
1438
+
1439
+ /**
1440
+ * Auth config overrides per toolkit
1441
+ */
1442
+ auth_configs?: { [key: string]: string };
1443
+
1444
+ /**
1445
+ * Connected account overrides per toolkit. Each connected account must belong to
1446
+ * the same user_id as the session.
1447
+ */
1448
+ connected_accounts?: { [key: string]: string };
1449
+
1450
+ /**
1451
+ * Manage connections configuration
1452
+ */
1453
+ manage_connections?: Config.ManageConnections;
1454
+
1455
+ /**
1456
+ * Multi-account configuration for this session.
1457
+ */
1458
+ multi_account?: Config.MultiAccount;
1459
+
1460
+ /**
1461
+ * MCP tool annotation hints for filtering tools with enabled/disabled support.
1462
+ * enabled: tags that the tool must have at least one of. disabled: tags that the
1463
+ * tool must NOT have any of. Both conditions must be satisfied.
1464
+ */
1465
+ tags?: Config.Tags;
1466
+
1467
+ /**
1468
+ * Toolkit configuration - either enabled list or disabled list
1469
+ */
1470
+ toolkits?: Config.Enabled | Config.Disabled;
1471
+
1472
+ /**
1473
+ * Tool-level configuration per toolkit
1474
+ */
1475
+ tools?: { [key: string]: Config.Enabled | Config.Disabled | Config.Tags };
1476
+
1477
+ /**
1478
+ * Workbench configuration
1479
+ */
1480
+ workbench?: Config.Workbench;
1481
+ }
1482
+
1483
+ export namespace Config {
1484
+ /**
1485
+ * Execute helper configuration
1486
+ */
1487
+ export interface Execute {
1488
+ enable_multi_execute?: boolean;
1489
+ }
1490
+
1491
+ /**
1492
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
1493
+ * is returned as "all".
1494
+ */
1495
+ export interface Preload {
1496
+ /**
1497
+ * Explicit preloaded tool slugs, or "all" when the session dynamically exposes all
1498
+ * app tools allowed by its filters.
1499
+ */
1500
+ tools: Array<string> | 'all';
1501
+ }
1502
+
1503
+ /**
1504
+ * Search helper configuration
1505
+ */
1506
+ export interface Search {
1507
+ enable?: boolean;
1508
+ }
1509
+
1510
+ /**
1511
+ * Manage connections configuration
1512
+ */
1513
+ export interface ManageConnections {
1514
+ /**
1515
+ * Custom callback URL for connected account auth flows
1516
+ */
1517
+ callback_url?: string;
1518
+
1519
+ /**
1520
+ * Enable the "remove" action in COMPOSIO_MANAGE_CONNECTIONS. Default true.
1521
+ */
1522
+ enable_connection_removal?: boolean;
1523
+
1524
+ /**
1525
+ * Enable the COMPOSIO_WAIT_FOR_CONNECTIONS tool for polling connection status.
1526
+ * Default false. May not work reliably with GPT models.
1527
+ */
1528
+ enable_wait_for_connections?: boolean;
1529
+
1530
+ /**
1531
+ * Whether to enable the connection manager for automatic connection handling
1532
+ */
1533
+ enabled?: boolean;
1534
+ }
1535
+
1536
+ /**
1537
+ * Multi-account configuration for this session.
1538
+ */
1539
+ export interface MultiAccount {
1540
+ /**
1541
+ * When true, enables multi-account mode for this session. When not set, falls back
1542
+ * to org/project-level configuration.
1543
+ */
1544
+ enable?: boolean;
1545
+
1546
+ /**
1547
+ * Maximum number of connected accounts allowed per toolkit. Defaults to 5 when
1548
+ * multi-account is enabled.
1549
+ */
1550
+ max_accounts_per_toolkit?: number;
1551
+
1552
+ /**
1553
+ * When true, require explicit account selection when multiple accounts are
1554
+ * connected. When false (default), use the first/default account.
1555
+ */
1556
+ require_explicit_selection?: boolean;
1557
+ }
1558
+
1559
+ /**
1560
+ * MCP tool annotation hints for filtering tools with enabled/disabled support.
1561
+ * enabled: tags that the tool must have at least one of. disabled: tags that the
1562
+ * tool must NOT have any of. Both conditions must be satisfied.
1563
+ */
1564
+ export interface Tags {
1565
+ /**
1566
+ * Tags that the tool must NOT have any of
1567
+ */
1568
+ disabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1569
+
1570
+ /**
1571
+ * Tags that the tool must have at least one of
1572
+ */
1573
+ enabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1574
+ }
1575
+
1576
+ export interface Enabled {
1577
+ enabled: Array<string>;
1578
+ }
1579
+
1580
+ export interface Disabled {
1581
+ disabled: Array<string>;
1582
+ }
1583
+
1584
+ export interface Enabled {
1585
+ enabled: Array<string>;
1586
+ }
1587
+
1588
+ export interface Disabled {
1589
+ disabled: Array<string>;
1590
+ }
1591
+
1592
+ export interface Tags {
1593
+ tags: Tags.Tags;
1594
+ }
1595
+
1596
+ export namespace Tags {
1597
+ export interface Tags {
1598
+ /**
1599
+ * Tags that the tool must NOT have any of
1600
+ */
1601
+ disabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1602
+
1603
+ /**
1604
+ * Tags that the tool must have at least one of
1605
+ */
1606
+ enabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1607
+ }
1608
+ }
1609
+
1610
+ /**
1611
+ * Workbench configuration
1612
+ */
1613
+ export interface Workbench {
1614
+ /**
1615
+ * Character threshold after which tool execution response are saved to a file in
1616
+ * workbench. Default is 20k.
1617
+ */
1618
+ auto_offload_threshold?: number;
1619
+
1620
+ /**
1621
+ * Whether the workbench (code execution sandbox) is enabled. When false,
1622
+ * COMPOSIO_REMOTE_WORKBENCH and COMPOSIO_REMOTE_BASH_TOOL are not exposed.
1623
+ */
1624
+ enable?: boolean;
1625
+
1626
+ /**
1627
+ * Whether proxy execution is enabled in the workbench
1628
+ */
1629
+ proxy_execution_enabled?: boolean;
1630
+
1631
+ /**
1632
+ * Sandbox compute tier: standard (1 vCPU / 1 GB), medium (2 vCPU / 2 GB), large (4
1633
+ * vCPU / 4 GB), xlarge (8 vCPU / 8 GB). Defaults to standard.
1634
+ */
1635
+ sandbox_size?: 'standard' | 'medium' | 'large' | 'xlarge';
1636
+ }
1637
+ }
1638
+ }
1639
+ }
1640
+
1641
+ export interface SessionExecuteResponse {
1642
+ /**
1643
+ * The data returned by the tool execution
1644
+ */
1645
+ data: { [key: string]: unknown };
1646
+
1647
+ /**
1648
+ * Error message if the execution failed, null otherwise
1649
+ */
1650
+ error: string | null;
1651
+
1652
+ /**
1653
+ * Unique identifier for the execution log
1654
+ */
1655
+ log_id: string;
1656
+ }
1657
+
1658
+ export interface SessionExecuteMetaResponse {
1659
+ /**
1660
+ * The data returned by the tool execution
1661
+ */
1662
+ data: { [key: string]: unknown };
1663
+
1664
+ /**
1665
+ * Error message if the execution failed, null otherwise
1666
+ */
1667
+ error: string | null;
1668
+
1669
+ /**
1670
+ * Unique identifier for the execution log
1671
+ */
1672
+ log_id: string;
1673
+ }
1674
+
1675
+ export interface SessionLinkResponse {
1676
+ /**
1677
+ * The unique identifier for the connected account
1678
+ */
1679
+ connected_account_id: string;
1680
+
1681
+ /**
1682
+ * Token used to complete the authentication flow
1683
+ */
1684
+ link_token: string;
1685
+
1686
+ /**
1687
+ * The URL where users should be redirected to complete OAuth
1688
+ */
1689
+ redirect_url: string;
1690
+ }
1691
+
1692
+ export interface SessionPatchResponse {
1693
+ /**
1694
+ * The configuration used to create this session
1695
+ */
1696
+ config: SessionPatchResponse.Config;
1697
+
1698
+ /**
1699
+ * Monotonic version of the config. Incremented on each PATCH. Use for optimistic
1700
+ * concurrency control.
1701
+ */
1702
+ config_version: number;
1703
+
1704
+ mcp: SessionPatchResponse.Mcp;
1705
+
1706
+ /**
1707
+ * The identifier of the session
1708
+ */
1709
+ session_id: string;
1710
+
1711
+ /**
1712
+ * List of available tools in this session
1713
+ */
1714
+ tool_router_tools: Array<string>;
1715
+
1716
+ /**
1717
+ * Experimental features
1718
+ */
1719
+ experimental?: SessionPatchResponse.Experimental;
1720
+
1721
+ /**
1722
+ * Advisory list — the session exists and is usable, but the listed issues may
1723
+ * warrant attention.
1724
+ */
1725
+ warnings?: Array<SessionPatchResponse.Warning>;
1726
+ }
1727
+
1728
+ export namespace SessionPatchResponse {
1729
+ /**
1730
+ * The configuration used to create this session
1731
+ */
1732
+ export interface Config {
1733
+ /**
1734
+ * Execute helper configuration
1735
+ */
1736
+ execute: Config.Execute;
1737
+
1738
+ /**
1739
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
1740
+ * is returned as "all".
1741
+ */
1742
+ preload: Config.Preload;
1743
+
1744
+ /**
1745
+ * Search helper configuration
1746
+ */
1747
+ search: Config.Search;
1748
+
1749
+ /**
1750
+ * User identifier for this session
1751
+ */
1752
+ user_id: string;
1753
+
1754
+ /**
1755
+ * Auth config overrides per toolkit
1756
+ */
1757
+ auth_configs?: { [key: string]: string };
1758
+
1759
+ /**
1760
+ * Connected account overrides per toolkit. Each connected account must belong to
1761
+ * the same user_id as the session.
1762
+ */
1763
+ connected_accounts?: { [key: string]: string };
1764
+
1765
+ /**
1766
+ * Manage connections configuration
1767
+ */
1768
+ manage_connections?: Config.ManageConnections;
1769
+
1770
+ /**
1771
+ * Multi-account configuration for this session.
1772
+ */
1773
+ multi_account?: Config.MultiAccount;
1774
+
1775
+ /**
1776
+ * MCP tool annotation hints for filtering tools with enabled/disabled support.
1777
+ * enabled: tags that the tool must have at least one of. disabled: tags that the
1778
+ * tool must NOT have any of. Both conditions must be satisfied.
1779
+ */
1780
+ tags?: Config.Tags;
1781
+
1782
+ /**
1783
+ * Toolkit configuration - either enabled list or disabled list
1784
+ */
1785
+ toolkits?: Config.Enabled | Config.Disabled;
1786
+
1787
+ /**
1788
+ * Tool-level configuration per toolkit
1789
+ */
1790
+ tools?: { [key: string]: Config.Enabled | Config.Disabled | Config.Tags };
1791
+
1792
+ /**
1793
+ * Workbench configuration
1794
+ */
1795
+ workbench?: Config.Workbench;
1796
+ }
1797
+
1798
+ export namespace Config {
1799
+ /**
1800
+ * Execute helper configuration
1801
+ */
1802
+ export interface Execute {
1803
+ enable_multi_execute?: boolean;
1804
+ }
1805
+
1806
+ /**
1807
+ * Preload configuration. Explicit slugs are returned as an array; dynamic preload
1808
+ * is returned as "all".
1809
+ */
1810
+ export interface Preload {
1811
+ /**
1812
+ * Explicit preloaded tool slugs, or "all" when the session dynamically exposes all
1813
+ * app tools allowed by its filters.
1814
+ */
1815
+ tools: Array<string> | 'all';
1816
+ }
1817
+
1818
+ /**
1819
+ * Search helper configuration
1820
+ */
1821
+ export interface Search {
1822
+ enable?: boolean;
1823
+ }
1824
+
1825
+ /**
1826
+ * Manage connections configuration
1827
+ */
1828
+ export interface ManageConnections {
1829
+ /**
1830
+ * Custom callback URL for connected account auth flows
1831
+ */
1832
+ callback_url?: string;
1833
+
1834
+ /**
1835
+ * Enable the "remove" action in COMPOSIO_MANAGE_CONNECTIONS. Default true.
1836
+ */
1837
+ enable_connection_removal?: boolean;
1838
+
1839
+ /**
1840
+ * Enable the COMPOSIO_WAIT_FOR_CONNECTIONS tool for polling connection status.
1841
+ * Default false. May not work reliably with GPT models.
1842
+ */
1843
+ enable_wait_for_connections?: boolean;
1844
+
1845
+ /**
1846
+ * Whether to enable the connection manager for automatic connection handling
1847
+ */
1848
+ enabled?: boolean;
1849
+ }
1850
+
1851
+ /**
1852
+ * Multi-account configuration for this session.
1853
+ */
1854
+ export interface MultiAccount {
1855
+ /**
1856
+ * When true, enables multi-account mode for this session. When not set, falls back
1857
+ * to org/project-level configuration.
1858
+ */
1859
+ enable?: boolean;
1860
+
1861
+ /**
1862
+ * Maximum number of connected accounts allowed per toolkit. Defaults to 5 when
1863
+ * multi-account is enabled.
1864
+ */
1865
+ max_accounts_per_toolkit?: number;
1866
+
1867
+ /**
1868
+ * When true, require explicit account selection when multiple accounts are
1869
+ * connected. When false (default), use the first/default account.
1870
+ */
1871
+ require_explicit_selection?: boolean;
1872
+ }
1873
+
1874
+ /**
1875
+ * MCP tool annotation hints for filtering tools with enabled/disabled support.
1876
+ * enabled: tags that the tool must have at least one of. disabled: tags that the
1877
+ * tool must NOT have any of. Both conditions must be satisfied.
1878
+ */
1879
+ export interface Tags {
1880
+ /**
1881
+ * Tags that the tool must NOT have any of
1882
+ */
1883
+ disabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1884
+
1885
+ /**
1886
+ * Tags that the tool must have at least one of
1887
+ */
1888
+ enabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1889
+ }
1890
+
1891
+ export interface Enabled {
1892
+ enabled: Array<string>;
1893
+ }
1894
+
1895
+ export interface Disabled {
1896
+ disabled: Array<string>;
1897
+ }
1898
+
1899
+ export interface Enabled {
1900
+ enabled: Array<string>;
1901
+ }
1902
+
1903
+ export interface Disabled {
1904
+ disabled: Array<string>;
1905
+ }
1906
+
1907
+ export interface Tags {
1908
+ tags: Tags.Tags;
1909
+ }
1910
+
1911
+ export namespace Tags {
1912
+ export interface Tags {
1913
+ /**
1914
+ * Tags that the tool must NOT have any of
1915
+ */
1916
+ disabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1917
+
1918
+ /**
1919
+ * Tags that the tool must have at least one of
1920
+ */
1921
+ enabled?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
1922
+ }
1923
+ }
1924
+
1925
+ /**
1926
+ * Workbench configuration
1927
+ */
1928
+ export interface Workbench {
1929
+ /**
1930
+ * Character threshold after which tool execution response are saved to a file in
1931
+ * workbench. Default is 20k.
1932
+ */
1933
+ auto_offload_threshold?: number;
1934
+
1935
+ /**
1936
+ * Whether the workbench (code execution sandbox) is enabled. When false,
1937
+ * COMPOSIO_REMOTE_WORKBENCH and COMPOSIO_REMOTE_BASH_TOOL are not exposed.
1938
+ */
1939
+ enable?: boolean;
1940
+
1941
+ /**
1942
+ * Whether proxy execution is enabled in the workbench
1943
+ */
1944
+ proxy_execution_enabled?: boolean;
1945
+
1946
+ /**
1947
+ * Sandbox compute tier: standard (1 vCPU / 1 GB), medium (2 vCPU / 2 GB), large (4
1948
+ * vCPU / 4 GB), xlarge (8 vCPU / 8 GB). Defaults to standard.
1949
+ */
1950
+ sandbox_size?: 'standard' | 'medium' | 'large' | 'xlarge';
1951
+ }
1952
+ }
1953
+
1954
+ export interface Mcp {
1955
+ /**
1956
+ * The type of the MCP server. Can be http
1957
+ */
1958
+ type: 'http';
1959
+
1960
+ /**
1961
+ * The URL of the MCP server
1962
+ */
1963
+ url: string;
1964
+ }
1965
+
1966
+ /**
1967
+ * Experimental features
1968
+ */
1969
+ export interface Experimental {
1970
+ /**
1971
+ * The assistive system prompt for the tool router session
1972
+ */
1973
+ assistive_prompt?: string;
1974
+
1975
+ /**
1976
+ * User-defined custom toolkits with grouped tools (no-auth)
1977
+ */
1978
+ custom_toolkits?: Array<Experimental.CustomToolkit>;
1979
+
1980
+ /**
1981
+ * Custom tools — standalone or extending Composio toolkits
1982
+ */
1983
+ custom_tools?: Array<Experimental.CustomTool>;
1984
+ }
1985
+
1986
+ export namespace Experimental {
1987
+ export interface CustomToolkit {
1988
+ description: string;
1989
+
1990
+ name: string;
1991
+
1992
+ slug: string;
1993
+
1994
+ tools: Array<CustomToolkit.Tool>;
1995
+ }
1996
+
1997
+ export namespace CustomToolkit {
1998
+ export interface Tool {
1999
+ description: string;
2000
+
2001
+ input_schema: { [key: string]: unknown };
2002
+
2003
+ name: string;
2004
+
2005
+ /**
2006
+ * Original tool slug as provided by the user
2007
+ */
2008
+ original_slug: string;
2009
+
2010
+ /**
2011
+ * Prefixed tool slug (e.g. LOCAL_CRM_FIND_CUSTOMER)
2012
+ */
2013
+ slug: string;
2014
+
2015
+ output_schema?: { [key: string]: unknown };
2016
+ }
2017
+ }
2018
+
2019
+ export interface CustomTool {
2020
+ description: string;
2021
+
2022
+ input_schema: { [key: string]: unknown };
2023
+
2024
+ name: string;
2025
+
2026
+ /**
2027
+ * Original tool slug as provided by the user
2028
+ */
2029
+ original_slug: string;
2030
+
2031
+ /**
2032
+ * Prefixed tool slug (e.g. LOCAL_GMAIL_GET_IMPORTANT_EMAILS)
2033
+ */
2034
+ slug: string;
2035
+
2036
+ extends_toolkit?: string;
2037
+
2038
+ output_schema?: { [key: string]: unknown };
2039
+ }
2040
+ }
2041
+
2042
+ export interface Warning {
2043
+ /**
2044
+ * Stable machine code identifying the advisory. Safe to switch on in client code.
2045
+ */
2046
+ code: 'PRELOAD_TOOLS_HIGH_CONTEXT_USAGE';
2047
+
2048
+ /**
2049
+ * Human-readable description of the advisory. Suitable for logging or surfacing to
2050
+ * end users.
2051
+ */
2052
+ message: string;
2053
+ }
2054
+ }
2055
+
2056
+ export interface SessionProxyExecuteResponse {
2057
+ /**
2058
+ * The HTTP status code returned from the proxied API
2059
+ */
2060
+ status: number;
2061
+
2062
+ /**
2063
+ * Binary body response data. Present when the response is a binary file.
2064
+ */
2065
+ binary_data?: SessionProxyExecuteResponse.BinaryData;
2066
+
2067
+ /**
2068
+ * The response data returned from the proxied API
2069
+ */
2070
+ data?: unknown;
2071
+
2072
+ /**
2073
+ * The HTTP headers returned from the proxied API
2074
+ */
2075
+ headers?: { [key: string]: string };
2076
+ }
2077
+
2078
+ export namespace SessionProxyExecuteResponse {
2079
+ /**
2080
+ * Binary body response data. Present when the response is a binary file.
2081
+ */
2082
+ export interface BinaryData {
2083
+ /**
2084
+ * Content-Type of the binary data
2085
+ */
2086
+ content_type: string;
2087
+
2088
+ /**
2089
+ * File size in bytes
2090
+ */
2091
+ size: number;
2092
+
2093
+ /**
2094
+ * URL to download binary content
2095
+ */
2096
+ url: string;
2097
+
2098
+ /**
2099
+ * ISO 8601 timestamp when the URL expires
2100
+ */
2101
+ expires_at?: string;
2102
+ }
2103
+ }
2104
+
2105
+ export interface SessionSearchResponse {
2106
+ /**
2107
+ * Error message if any searches failed, null if all succeeded. Format: "X out of Y
2108
+ * searches failed, reasons: <details>"
2109
+ */
2110
+ error: string | null;
2111
+
2112
+ /**
2113
+ * Combined workflow guidance covering connections, planner, and memory usage. Each
2114
+ * element is a step instruction.
2115
+ */
2116
+ next_steps_guidance: Array<string>;
2117
+
2118
+ /**
2119
+ * Per-query search results with tools, reasoning, and memory. One entry per query
2120
+ * in request order.
2121
+ */
2122
+ results: Array<SessionSearchResponse.Result>;
2123
+
2124
+ /**
2125
+ * Session info for correlating meta tool calls
2126
+ */
2127
+ session: SessionSearchResponse.Session;
2128
+
2129
+ /**
2130
+ * Whether all searches completed successfully. False if any query failed.
2131
+ */
2132
+ success: boolean;
2133
+
2134
+ /**
2135
+ * Time information for the query
2136
+ */
2137
+ time_info: SessionSearchResponse.TimeInfo;
2138
+
2139
+ /**
2140
+ * Deduplicated tool definitions keyed by tool_slug for O(1) lookup. Each tool
2141
+ * appears once even if used in multiple queries.
2142
+ */
2143
+ tool_schemas: { [key: string]: SessionSearchResponse.ToolSchemas };
2144
+
2145
+ /**
2146
+ * Connection status for all toolkits mentioned across all queries, with
2147
+ * descriptions merged in.
2148
+ */
2149
+ toolkit_connection_statuses: Array<SessionSearchResponse.ToolkitConnectionStatus>;
2150
+ }
2151
+
2152
+ export namespace SessionSearchResponse {
2153
+ export interface Result {
2154
+ /**
2155
+ * 1-based index of the query in the request
2156
+ */
2157
+ index: number;
2158
+
2159
+ /**
2160
+ * List of main tool slugs matching the search criteria
2161
+ */
2162
+ primary_tool_slugs: Array<string>;
2163
+
2164
+ /**
2165
+ * List of related tool slugs that might be useful
2166
+ */
2167
+ related_tool_slugs: Array<string>;
2168
+
2169
+ /**
2170
+ * List of unique toolkit slugs used by tools in this query
2171
+ */
2172
+ toolkits: Array<string>;
2173
+
2174
+ /**
2175
+ * The use case that was searched
2176
+ */
2177
+ use_case: string;
2178
+
2179
+ /**
2180
+ * Task difficulty assessment (e.g., "easy - Simple single-tool operation with
2181
+ * known parameters")
2182
+ */
2183
+ difficulty?: string;
2184
+
2185
+ /**
2186
+ * Error message if the search for this query failed, null otherwise. Always
2187
+ * present for failed queries.
2188
+ */
2189
+ error?: string | null;
2190
+
2191
+ /**
2192
+ * Guidance message about the search results, particularly when a cached plan is
2193
+ * available
2194
+ */
2195
+ execution_guidance?: string;
2196
+
2197
+ /**
2198
+ * Common pitfalls and considerations (only present when cached plan is available)
2199
+ */
2200
+ known_pitfalls?: Array<string>;
2201
+
2202
+ /**
2203
+ * Memory data relevant to this query, grouped by app. Only present for non-cached
2204
+ * search results.
2205
+ */
2206
+ memory?: { [key: string]: Array<string> };
2207
+
2208
+ /**
2209
+ * ID of cached plan if available
2210
+ */
2211
+ plan_id?: string;
2212
+
2213
+ /**
2214
+ * Workflow steps from cached plan (only present when cached plan is available)
2215
+ */
2216
+ recommended_plan_steps?: Array<string>;
2217
+
2218
+ /**
2219
+ * Reference Python code snippets for processing tool responses in the workbench
2220
+ * (only present when cached plan is available)
2221
+ */
2222
+ reference_workbench_snippets?: Array<Result.ReferenceWorkbenchSnippet>;
2223
+ }
2224
+
2225
+ export namespace Result {
2226
+ export interface ReferenceWorkbenchSnippet {
2227
+ /**
2228
+ * Python code snippet for the workbench
2229
+ */
2230
+ code: string;
2231
+
2232
+ /**
2233
+ * Description of what the code snippet does
2234
+ */
2235
+ description: string;
2236
+ }
2237
+ }
2238
+
2239
+ /**
2240
+ * Session info for correlating meta tool calls
2241
+ */
2242
+ export interface Session {
2243
+ /**
2244
+ * Session identifier to be passed to subsequent meta tool calls as session_id.
2245
+ */
2246
+ id: string;
2247
+
2248
+ /**
2249
+ * Whether a fresh session id was generated in this call.
2250
+ */
2251
+ generate_id: boolean;
2252
+
2253
+ /**
2254
+ * LLM-facing guidance on how to reuse this session id
2255
+ */
2256
+ instructions: string;
2257
+ }
2258
+
2259
+ /**
2260
+ * Time information for the query
2261
+ */
2262
+ export interface TimeInfo {
2263
+ /**
2264
+ * Current time in ISO format (UTC)
2265
+ */
2266
+ current_time_utc: string;
2267
+
2268
+ /**
2269
+ * Current time as Unix epoch timestamp in seconds
2270
+ */
2271
+ current_time_utc_epoch_seconds: number;
2272
+
2273
+ /**
2274
+ * Important message about time handling and timezone considerations
2275
+ */
2276
+ message: string;
2277
+ }
2278
+
2279
+ export interface ToolSchemas {
2280
+ /**
2281
+ * The slug of the tool
2282
+ */
2283
+ tool_slug: string;
2284
+
2285
+ /**
2286
+ * The slug of the toolkit that provides this tool
2287
+ */
2288
+ toolkit: string;
2289
+
2290
+ /**
2291
+ * Description of the tool
2292
+ */
2293
+ description?: string;
2294
+
2295
+ /**
2296
+ * Whether the full input_schema is included in this response
2297
+ */
2298
+ hasFullSchema?: boolean;
2299
+
2300
+ /**
2301
+ * Input schema for the tool (only present when hasFullSchema is true)
2302
+ */
2303
+ input_schema?: { [key: string]: unknown };
2304
+
2305
+ /**
2306
+ * Output/response schema for the tool. Only included when include_output_schemas
2307
+ * is true.
2308
+ */
2309
+ output_schema?: { [key: string]: unknown };
2310
+
2311
+ /**
2312
+ * Reference to fetch full schema when hasFullSchema is false
2313
+ */
2314
+ schemaRef?: ToolSchemas.SchemaRef;
2315
+ }
2316
+
2317
+ export namespace ToolSchemas {
2318
+ /**
2319
+ * Reference to fetch full schema when hasFullSchema is false
2320
+ */
2321
+ export interface SchemaRef {
2322
+ /**
2323
+ * Arguments to pass to the tool
2324
+ */
2325
+ args: SchemaRef.Args;
2326
+
2327
+ /**
2328
+ * Tool to call
2329
+ */
2330
+ tool: 'COMPOSIO_GET_TOOL_SCHEMAS';
2331
+
2332
+ /**
2333
+ * Instruction message for the LLM
2334
+ */
2335
+ message?: string;
2336
+ }
2337
+
2338
+ export namespace SchemaRef {
2339
+ /**
2340
+ * Arguments to pass to the tool
2341
+ */
2342
+ export interface Args {
2343
+ /**
2344
+ * Tool slugs to fetch schemas for
2345
+ */
2346
+ tool_slugs: Array<string>;
2347
+ }
2348
+ }
2349
+ }
2350
+
2351
+ export interface ToolkitConnectionStatus {
2352
+ /**
2353
+ * Description of what the toolkit does and its capabilities
2354
+ */
2355
+ description: string;
2356
+
2357
+ /**
2358
+ * Whether an active connection exists for this toolkit
2359
+ */
2360
+ has_active_connection: boolean;
2361
+
2362
+ /**
2363
+ * Human-readable message about the connection status and next steps
2364
+ */
2365
+ status_message: string;
2366
+
2367
+ /**
2368
+ * The toolkit slug identifier (e.g., "gmail", "slack")
2369
+ */
2370
+ toolkit: string;
2371
+
2372
+ /**
2373
+ * When "required", the agent must specify which account to use. Present only when
2374
+ * multiple accounts exist.
2375
+ */
2376
+ account_selection?: 'required';
2377
+
2378
+ /**
2379
+ * List of connected accounts for this toolkit. Present when multi-account is
2380
+ * enabled.
2381
+ */
2382
+ accounts?: Array<ToolkitConnectionStatus.Account>;
2383
+
2384
+ /**
2385
+ * Connection details including auth config and connected account IDs. Only present
2386
+ * when has_active_connection is true.
2387
+ */
2388
+ connection_details?: { [key: string]: unknown };
2389
+
2390
+ /**
2391
+ * Information about the currently connected user (email, name, etc.)
2392
+ */
2393
+ current_user_info?: { [key: string]: unknown };
2394
+ }
2395
+
2396
+ export namespace ToolkitConnectionStatus {
2397
+ export interface Account {
2398
+ /**
2399
+ * Unique identifier for this account
2400
+ */
2401
+ id: string;
2402
+
2403
+ /**
2404
+ * ISO 8601 timestamp of when the account was connected
2405
+ */
2406
+ created_at: string;
2407
+
2408
+ /**
2409
+ * Whether this is the default account for the toolkit
2410
+ */
2411
+ is_default: boolean;
2412
+
2413
+ /**
2414
+ * Connection status (e.g., "active")
2415
+ */
2416
+ status: string;
2417
+
2418
+ /**
2419
+ * User-assigned alias for this account
2420
+ */
2421
+ alias?: string;
2422
+
2423
+ /**
2424
+ * Information about the connected user (email, name, etc.)
2425
+ */
2426
+ user_info?: { [key: string]: unknown };
2427
+ }
2428
+ }
2429
+ }
2430
+
2431
+ export interface SessionToolkitsResponse {
2432
+ current_page: number;
2433
+
2434
+ items: Array<SessionToolkitsResponse.Item>;
2435
+
2436
+ total_items: number;
2437
+
2438
+ total_pages: number;
2439
+
2440
+ next_cursor?: string | null;
2441
+ }
2442
+
2443
+ export namespace SessionToolkitsResponse {
2444
+ export interface Item {
2445
+ /**
2446
+ * Available Composio-managed auth schemes
2447
+ */
2448
+ composio_managed_auth_schemes: Array<string>;
2449
+
2450
+ /**
2451
+ * Connected account if available
2452
+ */
2453
+ connected_account: Item.ConnectedAccount | null;
2454
+
2455
+ /**
2456
+ * Whether the toolkit is enabled
2457
+ */
2458
+ enabled: boolean;
2459
+
2460
+ /**
2461
+ * Whether the toolkit is no-auth
2462
+ */
2463
+ is_no_auth: boolean;
2464
+
2465
+ /**
2466
+ * Toolkit metadata
2467
+ */
2468
+ meta: Item.Meta;
2469
+
2470
+ /**
2471
+ * Display name of the toolkit
2472
+ */
2473
+ name: string;
2474
+
2475
+ /**
2476
+ * Unique slug identifier
2477
+ */
2478
+ slug: string;
2479
+ }
2480
+
2481
+ export namespace Item {
2482
+ /**
2483
+ * Connected account if available
2484
+ */
2485
+ export interface ConnectedAccount {
2486
+ /**
2487
+ * Connected account identifier
2488
+ */
2489
+ id: string;
2490
+
2491
+ /**
2492
+ * Auth config details
2493
+ */
2494
+ auth_config: ConnectedAccount.AuthConfig;
2495
+
2496
+ /**
2497
+ * Creation timestamp
2498
+ */
2499
+ created_at: string;
2500
+
2501
+ /**
2502
+ * Connection status
2503
+ */
2504
+ status: string;
2505
+
2506
+ /**
2507
+ * User identifier
2508
+ */
2509
+ user_id: string;
2510
+ }
2511
+
2512
+ export namespace ConnectedAccount {
2513
+ /**
2514
+ * Auth config details
2515
+ */
2516
+ export interface AuthConfig {
2517
+ /**
2518
+ * Auth config identifier
2519
+ */
2520
+ id: string;
2521
+
2522
+ /**
2523
+ * Authentication scheme type
2524
+ */
2525
+ auth_scheme: string;
2526
+
2527
+ /**
2528
+ * Whether this is a Composio-managed auth config
2529
+ */
2530
+ is_composio_managed: boolean;
2531
+ }
2532
+ }
2533
+
2534
+ /**
2535
+ * Toolkit metadata
2536
+ */
2537
+ export interface Meta {
2538
+ /**
2539
+ * Description of the toolkit
2540
+ */
2541
+ description: string;
2542
+
2543
+ /**
2544
+ * URL to the toolkit logo
2545
+ */
2546
+ logo: string;
2547
+ }
2548
+ }
2549
+ }
2550
+
2551
+ export interface SessionToolsResponse {
2552
+ current_page: number;
2553
+
2554
+ items: Array<SessionToolsResponse.Item>;
2555
+
2556
+ total_items: number;
2557
+
2558
+ total_pages: number;
2559
+
2560
+ next_cursor?: string | null;
2561
+ }
2562
+
2563
+ export namespace SessionToolsResponse {
2564
+ export interface Item {
2565
+ /**
2566
+ * List of all available versions for this tool
2567
+ */
2568
+ available_versions: Array<string>;
2569
+
2570
+ deprecated: Item.Deprecated;
2571
+
2572
+ /**
2573
+ * Detailed explanation of the tool's functionality and purpose
2574
+ */
2575
+ description: string;
2576
+
2577
+ /**
2578
+ * Schema definition of required input parameters for the tool
2579
+ */
2580
+ input_parameters: { [key: string]: unknown };
2581
+
2582
+ /**
2583
+ * Indicates if this tool is deprecated and may be removed in the future
2584
+ */
2585
+ is_deprecated: boolean;
2586
+
2587
+ /**
2588
+ * Human-readable display name of the tool
2589
+ */
2590
+ name: string;
2591
+
2592
+ /**
2593
+ * Indicates if the tool can be used without authentication
2594
+ */
2595
+ no_auth: boolean;
2596
+
2597
+ /**
2598
+ * Schema definition of return values from the tool
2599
+ */
2600
+ output_parameters: { [key: string]: unknown };
2601
+
2602
+ /**
2603
+ * Structured scope requirements for the tool. Null means the tool is legacy and
2604
+ * only exposes flat scopes.
2605
+ */
2606
+ scope_requirements: Item.ScopeRequirements | null;
2607
+
2608
+ /**
2609
+ * List of scopes associated with the tool
2610
+ */
2611
+ scopes: Array<string>;
2612
+
2613
+ /**
2614
+ * Unique identifier for the tool
2615
+ */
2616
+ slug: string;
2617
+
2618
+ /**
2619
+ * List of tags associated with the tool for categorization and filtering
2620
+ */
2621
+ tags: Array<string>;
2622
+
2623
+ toolkit: Item.Toolkit;
2624
+
2625
+ /**
2626
+ * Current version of the tool
2627
+ */
2628
+ version: string;
2629
+
2630
+ /**
2631
+ * Human-friendly description of the tool, if available
2632
+ */
2633
+ human_description?: string;
2634
+ }
2635
+
2636
+ export namespace Item {
2637
+ export interface Deprecated {
2638
+ /**
2639
+ * List of all available versions for this tool
2640
+ */
2641
+ available_versions: Array<string>;
2642
+
2643
+ /**
2644
+ * The display name of the tool
2645
+ */
2646
+ displayName: string;
2647
+
2648
+ /**
2649
+ * Indicates if this tool is deprecated and may be removed in the future
2650
+ */
2651
+ is_deprecated: boolean;
2652
+
2653
+ toolkit: Deprecated.Toolkit;
2654
+
2655
+ /**
2656
+ * Current version identifier of the tool
2657
+ */
2658
+ version: string;
2659
+ }
2660
+
2661
+ export namespace Deprecated {
2662
+ export interface Toolkit {
2663
+ /**
2664
+ * URL to the toolkit logo image
2665
+ */
2666
+ logo: string;
2667
+ }
2668
+ }
2669
+
2670
+ /**
2671
+ * Structured scope requirements for the tool. Null means the tool is legacy and
2672
+ * only exposes flat scopes.
2673
+ */
2674
+ export interface ScopeRequirements {
2675
+ all_of: Array<string | ScopeRequirements.AnyOf>;
2676
+ }
2677
+
2678
+ export namespace ScopeRequirements {
2679
+ export interface AnyOf {
2680
+ any_of: Array<string>;
2681
+ }
2682
+ }
2683
+
2684
+ export interface Toolkit {
2685
+ /**
2686
+ * URL to the toolkit logo image
2687
+ */
2688
+ logo: string;
2689
+
2690
+ /**
2691
+ * Human-readable name of the parent toolkit
2692
+ */
2693
+ name: string;
2694
+
2695
+ /**
2696
+ * Unique identifier of the parent toolkit
2697
+ */
2698
+ slug: string;
2699
+ }
2700
+ }
2701
+ }
2702
+
2703
+ export interface SessionCreateParams {
2704
+ /**
2705
+ * The identifier of the user who is initiating the session, ideally a unique
2706
+ * identifier from your database like a user ID or email address
2707
+ */
2708
+ user_id: string;
2709
+
2710
+ /**
2711
+ * The auth configs to use for the session. This will override the default behavior
2712
+ * and use the given auth config when specific toolkits are being executed
2713
+ */
2714
+ auth_configs?: { [key: string]: string };
2715
+
2716
+ /**
2717
+ * The connected accounts to use for the session. This will override the default
2718
+ * behaviour and use the given connected account when specific toolkits are being
2719
+ * executed. Each connected account must exist (not deleted or disabled) and belong
2720
+ * to the same `user_id` as the session — otherwise session creation fails with a
2721
+ * clear error explaining which account didn't match.
2722
+ */
2723
+ connected_accounts?: { [key: string]: string };
2724
+
2725
+ execute?: SessionCreateParams.Execute;
2726
+
2727
+ /**
2728
+ * Experimental features - not stable, may be modified or removed in future
2729
+ * versions.
2730
+ */
2731
+ experimental?: SessionCreateParams.Experimental;
2732
+
2733
+ /**
2734
+ * Configuration for connection management settings
2735
+ */
2736
+ manage_connections?: SessionCreateParams.ManageConnections;
2737
+
2738
+ /**
2739
+ * Configure multi-account behavior. When enabled, users can connect multiple
2740
+ * accounts per toolkit.
2741
+ */
2742
+ multi_account?: SessionCreateParams.MultiAccount;
2743
+
2744
+ /**
2745
+ * Preload configuration. Use an explicit list for frequently used tool slugs, or
2746
+ * "all" to dynamically expose every app tool allowed by positive
2747
+ * toolkits/tools/tags filters.
2748
+ */
2749
+ preload?: SessionCreateParams.Preload;
2750
+
2751
+ search?: SessionCreateParams.Search;
2752
+
2753
+ /**
2754
+ * Global MCP tool annotation hints for filtering. Array format is treated as
2755
+ * enabled list. Object format supports both enabled (tool must have at least one)
2756
+ * and disabled (tool must NOT have any) lists. Toolkit-level tags override this.
2757
+ * Toolkit enabled/disabled lists take precedence over tag filtering.
2758
+ */
2759
+ tags?:
2760
+ | Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>
2761
+ | SessionCreateParams.UnionMember1;
2762
+
2763
+ /**
2764
+ * Toolkit configuration - specify either enable toolkits (allowlist) or disable
2765
+ * toolkits (denylist). Mutually exclusive.
2766
+ */
2767
+ toolkits?: SessionCreateParams.Enable | SessionCreateParams.Disable;
2768
+
2769
+ /**
2770
+ * Tool-level configuration per toolkit. Allows you to enable, disable, or filter
2771
+ * by tags for specific tools within each toolkit. Every slug passed in `enable` /
2772
+ * `disable` must be a valid Composio tool slug for that toolkit — invalid or
2773
+ * typo'd slugs fail session creation with a clear error listing which ones didn't
2774
+ * match.
2775
+ */
2776
+ tools?: {
2777
+ [key: string]: SessionCreateParams.Enable | SessionCreateParams.Disable | SessionCreateParams.Tags;
2778
+ };
2779
+
2780
+ /**
2781
+ * Configuration for workbench behavior
2782
+ */
2783
+ workbench?: SessionCreateParams.Workbench;
2784
+ }
2785
+
2786
+ export namespace SessionCreateParams {
2787
+ export interface Execute {
2788
+ enable_multi_execute?: boolean;
2789
+ }
2790
+
2791
+ /**
2792
+ * Experimental features - not stable, may be modified or removed in future
2793
+ * versions.
2794
+ */
2795
+ export interface Experimental {
2796
+ /**
2797
+ * Customize assistive prompt generation (e.g., timezone).
2798
+ */
2799
+ assistive_prompt_config?: Experimental.AssistivePromptConfig;
2800
+
2801
+ /**
2802
+ * Custom toolkits with grouped tools. Toolkit slugs must not conflict with
2803
+ * existing Composio toolkits. All tools are no-auth.
2804
+ */
2805
+ custom_toolkits?: Array<Experimental.CustomToolkit>;
2806
+
2807
+ /**
2808
+ * Custom tools to include in search. Standalone tools need no auth. Tools with
2809
+ * extends_toolkit inherit the Composio toolkit's connection.
2810
+ */
2811
+ custom_tools?: Array<Experimental.CustomTool>;
2812
+
2813
+ /**
2814
+ * Per-tool elicitation permission config. Default behavior + per-tool
2815
+ * always_allow/always_deny overrides. Mutation via PATCH.
2816
+ */
2817
+ permissions?: Experimental.Permissions;
2818
+ }
2819
+
2820
+ export namespace Experimental {
2821
+ /**
2822
+ * Customize assistive prompt generation (e.g., timezone).
2823
+ */
2824
+ export interface AssistivePromptConfig {
2825
+ /**
2826
+ * IANA timezone identifier (e.g., 'America/New_York', 'Europe/London'). Used to
2827
+ * customize the system prompt with timezone-aware instructions.
2828
+ */
2829
+ user_timezone?: string;
2830
+ }
2831
+
2832
+ export interface CustomToolkit {
2833
+ /**
2834
+ * Used for BM25 search matching and shown in toolkit connection statuses.
2835
+ */
2836
+ description: string;
2837
+
2838
+ /**
2839
+ * Display name shown to the LLM and in search results.
2840
+ */
2841
+ name: string;
2842
+
2843
+ /**
2844
+ * Unique slug for the toolkit. Must not conflict with existing Composio toolkit
2845
+ * slugs. Alphanumeric, underscores, and hyphens only.
2846
+ */
2847
+ slug: string;
2848
+
2849
+ /**
2850
+ * Tools in this custom toolkit
2851
+ */
2852
+ tools: Array<CustomToolkit.Tool>;
2853
+ }
2854
+
2855
+ export namespace CustomToolkit {
2856
+ export interface Tool {
2857
+ /**
2858
+ * Used for BM25 search matching and shown to the LLM.
2859
+ */
2860
+ description: string;
2861
+
2862
+ /**
2863
+ * Must have type: "object" and a properties field.
2864
+ */
2865
+ input_schema: { [key: string]: unknown };
2866
+
2867
+ /**
2868
+ * Human-readable display name
2869
+ */
2870
+ name: string;
2871
+
2872
+ /**
2873
+ * Tool slug. Combined with toolkit slug to form LOCAL*<TOOLKIT>*<TOOL> (max 60
2874
+ * chars total).
2875
+ */
2876
+ slug: string;
2877
+
2878
+ /**
2879
+ * Optional output schema for the tool response.
2880
+ */
2881
+ output_schema?: { [key: string]: unknown };
2882
+ }
2883
+ }
2884
+
2885
+ export interface CustomTool {
2886
+ /**
2887
+ * Used for BM25 search matching and shown to the LLM.
2888
+ */
2889
+ description: string;
2890
+
2891
+ /**
2892
+ * Must have type: "object" and a properties field.
2893
+ */
2894
+ input_schema: { [key: string]: unknown };
2895
+
2896
+ /**
2897
+ * Human-readable display name
2898
+ */
2899
+ name: string;
2900
+
2901
+ /**
2902
+ * Tool slug. Forms LOCAL*<TOOL> (standalone) or LOCAL*<TOOLKIT>\_<TOOL>
2903
+ * (extending). Max 60 chars total.
2904
+ */
2905
+ slug: string;
2906
+
2907
+ /**
2908
+ * If set, must be a valid Composio toolkit slug. The tool inherits that toolkit's
2909
+ * auth/connection status. If omitted, the tool is standalone (no-auth).
2910
+ */
2911
+ extends_toolkit?: string;
2912
+
2913
+ /**
2914
+ * JSON Schema describing tool output (optional)
2915
+ */
2916
+ output_schema?: { [key: string]: unknown };
2917
+ }
2918
+
2919
+ /**
2920
+ * Per-tool elicitation permission config. Default behavior + per-tool
2921
+ * always_allow/always_deny overrides. Mutation via PATCH.
2922
+ */
2923
+ export interface Permissions {
2924
+ /**
2925
+ * Default elicitation behavior when no override matches. `allow_all` runs every
2926
+ * tool without prompting; `ask_every_call` prompts on each invocation;
2927
+ * `ask_once_per_session` prompts once and remembers the answer for the rest of the
2928
+ * session.
2929
+ */
2930
+ default: 'allow_all' | 'ask_every_call' | 'ask_once_per_session';
2931
+
2932
+ /**
2933
+ * Per-tool overrides keyed by `${toolSlug}:${connectedAccountId ?? "__none__"}`,
2934
+ * plus account-wide overrides keyed by `*:${connectedAccountId ?? "__none__"}`.
2935
+ * Exact tool overrides take precedence over account-wide overrides. `always_allow`
2936
+ * skips the prompt and runs the tool; `always_deny` blocks the tool; `ask_once`
2937
+ * prompts once per session (allow/deny) and remembers; `ask_always` prompts on
2938
+ * every call with allow-once/allow-session/deny, ignoring any cached session
2939
+ * allow. Overrides take precedence over `default`.
2940
+ */
2941
+ overrides?: { [key: string]: 'always_allow' | 'always_deny' | 'ask_once' | 'ask_always' };
2942
+ }
2943
+ }
2944
+
2945
+ /**
2946
+ * Configuration for connection management settings
2947
+ */
2948
+ export interface ManageConnections {
2949
+ /**
2950
+ * The URL to redirect to after a user completes authentication for a connected
2951
+ * account. This allows you to handle the auth callback in your own application.
2952
+ */
2953
+ callback_url?: string;
2954
+
2955
+ /**
2956
+ * Whether to enable the connection manager for automatic connection handling. If
2957
+ * true, we will provide a tool your agent can use to initiate connections to
2958
+ * toolkits if it doesnt exist. If set to false, then you have to manage
2959
+ * connections manually.
2960
+ */
2961
+ enable?: boolean | null;
2962
+
2963
+ /**
2964
+ * Enable the "remove" action in COMPOSIO_MANAGE_CONNECTIONS to allow deleting
2965
+ * connected accounts. Default true.
2966
+ */
2967
+ enable_connection_removal?: boolean | null;
2968
+
2969
+ /**
2970
+ * When true, the COMPOSIO_WAIT_FOR_CONNECTIONS tool is available for agents to
2971
+ * poll connection status after sharing auth URLs. Default is false (disabled). May
2972
+ * not work reliably with GPT models.
2973
+ */
2974
+ enable_wait_for_connections?: boolean | null;
2975
+ }
2976
+
2977
+ /**
2978
+ * Configure multi-account behavior. When enabled, users can connect multiple
2979
+ * accounts per toolkit.
2980
+ */
2981
+ export interface MultiAccount {
2982
+ /**
2983
+ * When true, enables multi-account mode for this session. When not set, falls back
2984
+ * to org/project-level configuration.
2985
+ */
2986
+ enable?: boolean;
2987
+
2988
+ /**
2989
+ * Maximum number of connected accounts allowed per toolkit. Must be between 2
2990
+ * and 10.
2991
+ */
2992
+ max_accounts_per_toolkit?: number;
2993
+
2994
+ /**
2995
+ * When true, the agent must explicitly select which account to use. When false
2996
+ * (default), the first/default account is used automatically.
2997
+ */
2998
+ require_explicit_selection?: boolean;
2999
+ }
3000
+
3001
+ /**
3002
+ * Preload configuration. Use an explicit list for frequently used tool slugs, or
3003
+ * "all" to dynamically expose every app tool allowed by positive
3004
+ * toolkits/tools/tags filters.
3005
+ */
3006
+ export interface Preload {
3007
+ /**
3008
+ * Explicit tool slugs to preload, or "all" to dynamically expose all current and
3009
+ * future app tools allowed by the positive session filters. "all" is capped at
3010
+ * 1000 tools and is not supported without a positive allowlist.
3011
+ */
3012
+ tools?: Array<string> | string;
3013
+ }
3014
+
3015
+ export interface Search {
3016
+ enable?: boolean;
3017
+ }
3018
+
3019
+ export interface UnionMember1 {
3020
+ disable?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
3021
+
3022
+ enable?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
3023
+ }
3024
+
3025
+ /**
3026
+ * Enable only specific toolkits (allowlist)
3027
+ */
3028
+ export interface Enable {
3029
+ /**
3030
+ * Only these specific toolkits will be enabled
3031
+ */
3032
+ enable: Array<string>;
3033
+ }
3034
+
3035
+ /**
3036
+ * Disable specific toolkits (denylist)
3037
+ */
3038
+ export interface Disable {
3039
+ /**
3040
+ * These specific toolkits will be disabled
3041
+ */
3042
+ disable: Array<string>;
3043
+ }
3044
+
3045
+ export interface Enable {
3046
+ /**
3047
+ * Only these specific tools will be available for this toolkit
3048
+ */
3049
+ enable: Array<string>;
3050
+ }
3051
+
3052
+ export interface Disable {
3053
+ /**
3054
+ * These specific tools will be disabled for this toolkit
3055
+ */
3056
+ disable: Array<string>;
3057
+ }
3058
+
3059
+ export interface Tags {
3060
+ /**
3061
+ * MCP tags to filter tools. Array format is treated as enabled list. Object format
3062
+ * supports both enabled and disabled lists.
3063
+ */
3064
+ tags: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'> | Tags.UnionMember1;
3065
+ }
3066
+
3067
+ export namespace Tags {
3068
+ export interface UnionMember1 {
3069
+ disable?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
3070
+
3071
+ enable?: Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>;
3072
+ }
3073
+ }
3074
+
3075
+ /**
3076
+ * Configuration for workbench behavior
3077
+ */
3078
+ export interface Workbench {
3079
+ /**
3080
+ * Character threshold for automatic offloading. When workbench response exceeds
3081
+ * this threshold, it will be automatically offloaded. Default is picked
3082
+ * automatically based on the response size.
1356
3083
  */
1357
- enabled: boolean;
3084
+ auto_offload_threshold?: number;
1358
3085
 
1359
3086
  /**
1360
- * Whether the toolkit is no-auth
3087
+ * Set to false to disable the workbench entirely. When disabled, no code execution
3088
+ * tools are available in the session.
1361
3089
  */
1362
- is_no_auth: boolean;
3090
+ enable?: boolean;
1363
3091
 
1364
3092
  /**
1365
- * Toolkit metadata
3093
+ * Whether proxy execution is enabled. When enabled, workbench can call URLs and
3094
+ * APIs directly.
1366
3095
  */
1367
- meta: Item.Meta;
3096
+ enable_proxy_execution?: boolean;
1368
3097
 
1369
3098
  /**
1370
- * Display name of the toolkit
3099
+ * Sandbox compute tier: standard (1 vCPU / 1 GB), medium (2 vCPU / 2 GB), large (4
3100
+ * vCPU / 4 GB), xlarge (8 vCPU / 8 GB). Defaults to standard.
1371
3101
  */
1372
- name: string;
3102
+ sandbox_size?: 'standard' | 'medium' | 'large' | 'xlarge';
3103
+ }
3104
+ }
3105
+
3106
+ export interface SessionAttachParams {
3107
+ /**
3108
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
3109
+ * customs — pass them on every request that needs them.
3110
+ */
3111
+ experimental?: SessionAttachParams.Experimental;
3112
+ }
1373
3113
 
3114
+ export namespace SessionAttachParams {
3115
+ /**
3116
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
3117
+ * customs — pass them on every request that needs them.
3118
+ */
3119
+ export interface Experimental {
1374
3120
  /**
1375
- * Unique slug identifier
3121
+ * Custom toolkits with grouped tools. Toolkit slugs must not conflict with
3122
+ * existing Composio toolkits. All tools are no-auth.
1376
3123
  */
1377
- slug: string;
1378
- }
3124
+ custom_toolkits?: Array<Experimental.CustomToolkit>;
1379
3125
 
1380
- export namespace Item {
1381
3126
  /**
1382
- * Connected account if available
3127
+ * Custom tools to include in search. Standalone tools need no auth. Tools with
3128
+ * extends_toolkit inherit the Composio toolkit's connection.
1383
3129
  */
1384
- export interface ConnectedAccount {
1385
- /**
1386
- * Connected account identifier
1387
- */
1388
- id: string;
3130
+ custom_tools?: Array<Experimental.CustomTool>;
3131
+ }
1389
3132
 
3133
+ export namespace Experimental {
3134
+ export interface CustomToolkit {
1390
3135
  /**
1391
- * Auth config details
3136
+ * Used for BM25 search matching and shown in toolkit connection statuses.
1392
3137
  */
1393
- auth_config: ConnectedAccount.AuthConfig;
3138
+ description: string;
1394
3139
 
1395
3140
  /**
1396
- * Creation timestamp
3141
+ * Display name shown to the LLM and in search results.
1397
3142
  */
1398
- created_at: string;
3143
+ name: string;
1399
3144
 
1400
3145
  /**
1401
- * Connection status
3146
+ * Unique slug for the toolkit. Must not conflict with existing Composio toolkit
3147
+ * slugs. Alphanumeric, underscores, and hyphens only.
1402
3148
  */
1403
- status: string;
3149
+ slug: string;
1404
3150
 
1405
3151
  /**
1406
- * User identifier
3152
+ * Tools in this custom toolkit
1407
3153
  */
1408
- user_id: string;
3154
+ tools: Array<CustomToolkit.Tool>;
1409
3155
  }
1410
3156
 
1411
- export namespace ConnectedAccount {
1412
- /**
1413
- * Auth config details
1414
- */
1415
- export interface AuthConfig {
3157
+ export namespace CustomToolkit {
3158
+ export interface Tool {
1416
3159
  /**
1417
- * Auth config identifier
3160
+ * Used for BM25 search matching and shown to the LLM.
1418
3161
  */
1419
- id: string;
3162
+ description: string;
1420
3163
 
1421
3164
  /**
1422
- * Authentication scheme type
3165
+ * Must have type: "object" and a properties field.
1423
3166
  */
1424
- auth_scheme: string;
3167
+ input_schema: { [key: string]: unknown };
1425
3168
 
1426
3169
  /**
1427
- * Whether this is a Composio-managed auth config
3170
+ * Human-readable display name
1428
3171
  */
1429
- is_composio_managed: boolean;
3172
+ name: string;
3173
+
3174
+ /**
3175
+ * Tool slug. Combined with toolkit slug to form LOCAL*<TOOLKIT>*<TOOL> (max 60
3176
+ * chars total).
3177
+ */
3178
+ slug: string;
3179
+
3180
+ /**
3181
+ * Optional output schema for the tool response.
3182
+ */
3183
+ output_schema?: { [key: string]: unknown };
1430
3184
  }
1431
3185
  }
1432
3186
 
1433
- /**
1434
- * Toolkit metadata
1435
- */
1436
- export interface Meta {
3187
+ export interface CustomTool {
1437
3188
  /**
1438
- * Description of the toolkit
3189
+ * Used for BM25 search matching and shown to the LLM.
1439
3190
  */
1440
3191
  description: string;
1441
3192
 
1442
3193
  /**
1443
- * URL to the toolkit logo
3194
+ * Must have type: "object" and a properties field.
1444
3195
  */
1445
- logo: string;
3196
+ input_schema: { [key: string]: unknown };
3197
+
3198
+ /**
3199
+ * Human-readable display name
3200
+ */
3201
+ name: string;
3202
+
3203
+ /**
3204
+ * Tool slug. Forms LOCAL*<TOOL> (standalone) or LOCAL*<TOOLKIT>\_<TOOL>
3205
+ * (extending). Max 60 chars total.
3206
+ */
3207
+ slug: string;
3208
+
3209
+ /**
3210
+ * If set, must be a valid Composio toolkit slug. The tool inherits that toolkit's
3211
+ * auth/connection status. If omitted, the tool is standalone (no-auth).
3212
+ */
3213
+ extends_toolkit?: string;
3214
+
3215
+ /**
3216
+ * JSON Schema describing tool output (optional)
3217
+ */
3218
+ output_schema?: { [key: string]: unknown };
1446
3219
  }
1447
3220
  }
1448
3221
  }
1449
3222
 
1450
- export interface SessionToolsResponse {
3223
+ export interface SessionConfigHistoryParams {
1451
3224
  /**
1452
- * List of tools with their complete schemas
3225
+ * Cursor for pagination. The cursor is a base64 encoded string of the page and
3226
+ * limit. The page is the page number and the limit is the number of items per
3227
+ * page. The cursor is used to paginate through the items. The cursor is not
3228
+ * required for the first page.
1453
3229
  */
1454
- items: Array<SessionToolsResponse.Item>;
1455
- }
1456
-
1457
- export namespace SessionToolsResponse {
1458
- export interface Item {
1459
- /**
1460
- * List of all available versions for this tool
1461
- */
1462
- available_versions: Array<string>;
1463
-
1464
- deprecated: Item.Deprecated;
1465
-
1466
- /**
1467
- * Detailed explanation of the tool's functionality and purpose
1468
- */
1469
- description: string;
1470
-
1471
- /**
1472
- * Schema definition of required input parameters for the tool
1473
- */
1474
- input_parameters: { [key: string]: unknown };
1475
-
1476
- /**
1477
- * Indicates if this tool is deprecated and may be removed in the future
1478
- */
1479
- is_deprecated: boolean;
1480
-
1481
- /**
1482
- * Human-readable display name of the tool
1483
- */
1484
- name: string;
1485
-
1486
- /**
1487
- * Indicates if the tool can be used without authentication
1488
- */
1489
- no_auth: boolean;
3230
+ cursor?: string;
1490
3231
 
1491
- /**
1492
- * Schema definition of return values from the tool
1493
- */
1494
- output_parameters: { [key: string]: unknown };
3232
+ /**
3233
+ * Number of items per page, max allowed is 100
3234
+ */
3235
+ limit?: number;
3236
+ }
1495
3237
 
1496
- /**
1497
- * Structured scope requirements for the tool. Null means the tool is legacy and
1498
- * only exposes flat scopes.
1499
- */
1500
- scope_requirements: Item.ScopeRequirements | null;
3238
+ export interface SessionExecuteParams {
3239
+ /**
3240
+ * The unique slug identifier of the tool to execute. Supports both meta tools and
3241
+ * app tools exposed by the session.
3242
+ */
3243
+ tool_slug: string;
1501
3244
 
1502
- /**
1503
- * List of scopes associated with the tool
1504
- */
1505
- scopes: Array<string>;
3245
+ /**
3246
+ * Account identifier to specify which connected account to use for direct tool
3247
+ * execution. Use the account ID (e.g. "coup_hurricane_dal_analytical") or an
3248
+ * alias. When omitted with a single account, the default is used. When omitted
3249
+ * with multiple accounts, an error lists available accounts. Meta/helper tools
3250
+ * either ignore this top-level field or define their own account-selection fields,
3251
+ * for example COMPOSIO_MULTI_EXECUTE_TOOL.tools[].account.
3252
+ */
3253
+ account?: string;
1506
3254
 
1507
- /**
1508
- * Unique identifier for the tool
1509
- */
1510
- slug: string;
3255
+ /**
3256
+ * The arguments required by the tool
3257
+ */
3258
+ arguments?: { [key: string]: unknown };
1511
3259
 
1512
- /**
1513
- * List of tags associated with the tool for categorization and filtering
1514
- */
1515
- tags: Array<string>;
3260
+ /**
3261
+ * When true, direct non-meta tool execution may return a workbench offload preview
3262
+ * if the response exceeds the configured threshold and the session workbench is
3263
+ * enabled. When omitted or false, direct tool execution returns the normal inline
3264
+ * response. Meta/helper tools are unaffected, and COMPOSIO_MULTI_EXECUTE_TOOL uses
3265
+ * session.workbench configuration for its own batch-level offload behavior.
3266
+ */
3267
+ enable_auto_workbench_offload?: boolean;
1516
3268
 
1517
- toolkit: Item.Toolkit;
3269
+ /**
3270
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
3271
+ * customs — pass them on every request that needs them.
3272
+ */
3273
+ experimental?: SessionExecuteParams.Experimental;
3274
+ }
1518
3275
 
3276
+ export namespace SessionExecuteParams {
3277
+ /**
3278
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
3279
+ * customs — pass them on every request that needs them.
3280
+ */
3281
+ export interface Experimental {
1519
3282
  /**
1520
- * Current version of the tool
3283
+ * Custom toolkits with grouped tools. Toolkit slugs must not conflict with
3284
+ * existing Composio toolkits. All tools are no-auth.
1521
3285
  */
1522
- version: string;
3286
+ custom_toolkits?: Array<Experimental.CustomToolkit>;
1523
3287
 
1524
3288
  /**
1525
- * Human-friendly description of the tool, if available
3289
+ * Custom tools to include in search. Standalone tools need no auth. Tools with
3290
+ * extends_toolkit inherit the Composio toolkit's connection.
1526
3291
  */
1527
- human_description?: string;
3292
+ custom_tools?: Array<Experimental.CustomTool>;
1528
3293
  }
1529
3294
 
1530
- export namespace Item {
1531
- export interface Deprecated {
3295
+ export namespace Experimental {
3296
+ export interface CustomToolkit {
1532
3297
  /**
1533
- * List of all available versions for this tool
3298
+ * Used for BM25 search matching and shown in toolkit connection statuses.
1534
3299
  */
1535
- available_versions: Array<string>;
3300
+ description: string;
1536
3301
 
1537
3302
  /**
1538
- * The display name of the tool
3303
+ * Display name shown to the LLM and in search results.
1539
3304
  */
1540
- displayName: string;
3305
+ name: string;
1541
3306
 
1542
3307
  /**
1543
- * Indicates if this tool is deprecated and may be removed in the future
3308
+ * Unique slug for the toolkit. Must not conflict with existing Composio toolkit
3309
+ * slugs. Alphanumeric, underscores, and hyphens only.
1544
3310
  */
1545
- is_deprecated: boolean;
3311
+ slug: string;
1546
3312
 
1547
- toolkit: Deprecated.Toolkit;
3313
+ /**
3314
+ * Tools in this custom toolkit
3315
+ */
3316
+ tools: Array<CustomToolkit.Tool>;
3317
+ }
3318
+
3319
+ export namespace CustomToolkit {
3320
+ export interface Tool {
3321
+ /**
3322
+ * Used for BM25 search matching and shown to the LLM.
3323
+ */
3324
+ description: string;
1548
3325
 
1549
- /**
1550
- * Current version identifier of the tool
1551
- */
1552
- version: string;
1553
- }
3326
+ /**
3327
+ * Must have type: "object" and a properties field.
3328
+ */
3329
+ input_schema: { [key: string]: unknown };
1554
3330
 
1555
- export namespace Deprecated {
1556
- export interface Toolkit {
1557
3331
  /**
1558
- * URL to the toolkit logo image
3332
+ * Human-readable display name
1559
3333
  */
1560
- logo: string;
1561
- }
1562
- }
3334
+ name: string;
1563
3335
 
1564
- /**
1565
- * Structured scope requirements for the tool. Null means the tool is legacy and
1566
- * only exposes flat scopes.
1567
- */
1568
- export interface ScopeRequirements {
1569
- all_of: Array<string | ScopeRequirements.AnyOf>;
1570
- }
3336
+ /**
3337
+ * Tool slug. Combined with toolkit slug to form LOCAL*<TOOLKIT>*<TOOL> (max 60
3338
+ * chars total).
3339
+ */
3340
+ slug: string;
1571
3341
 
1572
- export namespace ScopeRequirements {
1573
- export interface AnyOf {
1574
- any_of: Array<string>;
3342
+ /**
3343
+ * Optional output schema for the tool response.
3344
+ */
3345
+ output_schema?: { [key: string]: unknown };
1575
3346
  }
1576
3347
  }
1577
3348
 
1578
- export interface Toolkit {
3349
+ export interface CustomTool {
1579
3350
  /**
1580
- * URL to the toolkit logo image
3351
+ * Used for BM25 search matching and shown to the LLM.
1581
3352
  */
1582
- logo: string;
3353
+ description: string;
1583
3354
 
1584
3355
  /**
1585
- * Human-readable name of the parent toolkit
3356
+ * Must have type: "object" and a properties field.
3357
+ */
3358
+ input_schema: { [key: string]: unknown };
3359
+
3360
+ /**
3361
+ * Human-readable display name
1586
3362
  */
1587
3363
  name: string;
1588
3364
 
1589
3365
  /**
1590
- * Unique identifier of the parent toolkit
3366
+ * Tool slug. Forms LOCAL*<TOOL> (standalone) or LOCAL*<TOOLKIT>\_<TOOL>
3367
+ * (extending). Max 60 chars total.
1591
3368
  */
1592
3369
  slug: string;
3370
+
3371
+ /**
3372
+ * If set, must be a valid Composio toolkit slug. The tool inherits that toolkit's
3373
+ * auth/connection status. If omitted, the tool is standalone (no-auth).
3374
+ */
3375
+ extends_toolkit?: string;
3376
+
3377
+ /**
3378
+ * JSON Schema describing tool output (optional)
3379
+ */
3380
+ output_schema?: { [key: string]: unknown };
1593
3381
  }
1594
3382
  }
1595
3383
  }
1596
3384
 
1597
- export interface SessionCreateParams {
1598
- /**
1599
- * The identifier of the user who is initiating the session, ideally a unique
1600
- * identifier from your database like a user ID or email address
1601
- */
1602
- user_id: string;
1603
-
1604
- /**
1605
- * The auth configs to use for the session. This will override the default behavior
1606
- * and use the given auth config when specific toolkits are being executed
1607
- */
1608
- auth_configs?: { [key: string]: string };
1609
-
1610
- /**
1611
- * The connected accounts to use for the session. This will override the default
1612
- * behaviour and use the given connected account when specific toolkits are being
1613
- * executed. Each connected account must exist (not deleted or disabled) and belong
1614
- * to the same `user_id` as the session — otherwise session creation fails with a
1615
- * clear error explaining which account didn't match.
1616
- */
1617
- connected_accounts?: { [key: string]: string };
1618
-
1619
- /**
1620
- * Experimental features - not stable, may be modified or removed in future
1621
- * versions.
1622
- */
1623
- experimental?: SessionCreateParams.Experimental;
1624
-
1625
- /**
1626
- * Configuration for connection management settings
1627
- */
1628
- manage_connections?: SessionCreateParams.ManageConnections;
1629
-
1630
- /**
1631
- * Configure multi-account behavior. When enabled, users can connect multiple
1632
- * accounts per toolkit.
1633
- */
1634
- multi_account?: SessionCreateParams.MultiAccount;
1635
-
1636
- /**
1637
- * Preload configuration. Controls which tools appear in `session.tools` and the
1638
- * MCP server tool list so the agent can call them directly without going through
1639
- * search first — useful for frequently used tools. Each slug must be allowed by
1640
- * the session filters (`toolkits`, `tools`, `tags`), otherwise session creation
1641
- * fails with a 400. Custom tools declared in `custom_tools` / `custom_toolkits`
1642
- * can also be preloaded. Not supported when multi-account is enabled. Each
1643
- * preloaded tool adds to the agent context window, so keep the list at or under
1644
- * ~20 tools.
1645
- */
1646
- preload?: SessionCreateParams.Preload;
1647
-
1648
- /**
1649
- * Global MCP tool annotation hints for filtering. Array format is treated as
1650
- * enabled list. Object format supports both enabled (tool must have at least one)
1651
- * and disabled (tool must NOT have any) lists. Toolkit-level tags override this.
1652
- * Toolkit enabled/disabled lists take precedence over tag filtering.
1653
- */
1654
- tags?:
1655
- | Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>
1656
- | SessionCreateParams.UnionMember1;
1657
-
3385
+ export interface SessionExecuteMetaParams {
1658
3386
  /**
1659
- * Toolkit configuration - specify either enable toolkits (allowlist) or disable
1660
- * toolkits (denylist). Mutually exclusive.
3387
+ * The unique slug identifier of the meta tool to execute
1661
3388
  */
1662
- toolkits?: SessionCreateParams.Enable | SessionCreateParams.Disable;
3389
+ slug:
3390
+ | 'COMPOSIO_SEARCH_TOOLS'
3391
+ | 'COMPOSIO_MULTI_EXECUTE_TOOL'
3392
+ | 'COMPOSIO_MANAGE_CONNECTIONS'
3393
+ | 'COMPOSIO_WAIT_FOR_CONNECTIONS'
3394
+ | 'COMPOSIO_REMOTE_WORKBENCH'
3395
+ | 'COMPOSIO_REMOTE_BASH_TOOL'
3396
+ | 'COMPOSIO_GET_TOOL_SCHEMAS'
3397
+ | 'COMPOSIO_UPSERT_RECIPE'
3398
+ | 'COMPOSIO_GET_RECIPE';
1663
3399
 
1664
3400
  /**
1665
- * Tool-level configuration per toolkit. Allows you to enable, disable, or filter
1666
- * by tags for specific tools within each toolkit. Every slug passed in `enable` /
1667
- * `disable` must be a valid Composio tool slug for that toolkit — invalid or
1668
- * typo'd slugs fail session creation with a clear error listing which ones didn't
1669
- * match.
3401
+ * The arguments required by the meta tool
1670
3402
  */
1671
- tools?: {
1672
- [key: string]: SessionCreateParams.Enable | SessionCreateParams.Disable | SessionCreateParams.Tags;
1673
- };
3403
+ arguments?: { [key: string]: unknown };
1674
3404
 
1675
3405
  /**
1676
- * Configuration for workbench behavior
3406
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
3407
+ * customs — pass them on every request that needs them.
1677
3408
  */
1678
- workbench?: SessionCreateParams.Workbench;
3409
+ experimental?: SessionExecuteMetaParams.Experimental;
1679
3410
  }
1680
3411
 
1681
- export namespace SessionCreateParams {
3412
+ export namespace SessionExecuteMetaParams {
1682
3413
  /**
1683
- * Experimental features - not stable, may be modified or removed in future
1684
- * versions.
3414
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
3415
+ * customs — pass them on every request that needs them.
1685
3416
  */
1686
3417
  export interface Experimental {
1687
- /**
1688
- * Customize assistive prompt generation (e.g., timezone).
1689
- */
1690
- assistive_prompt_config?: Experimental.AssistivePromptConfig;
1691
-
1692
3418
  /**
1693
3419
  * Custom toolkits with grouped tools. Toolkit slugs must not conflict with
1694
3420
  * existing Composio toolkits. All tools are no-auth.
@@ -1703,17 +3429,6 @@ export namespace SessionCreateParams {
1703
3429
  }
1704
3430
 
1705
3431
  export namespace Experimental {
1706
- /**
1707
- * Customize assistive prompt generation (e.g., timezone).
1708
- */
1709
- export interface AssistivePromptConfig {
1710
- /**
1711
- * IANA timezone identifier (e.g., 'America/New_York', 'Europe/London'). Used to
1712
- * customize the system prompt with timezone-aware instructions.
1713
- */
1714
- user_timezone?: string;
1715
- }
1716
-
1717
3432
  export interface CustomToolkit {
1718
3433
  /**
1719
3434
  * Used for BM25 search matching and shown in toolkit connection statuses.
@@ -1749,62 +3464,177 @@ export namespace SessionCreateParams {
1749
3464
  */
1750
3465
  input_schema: { [key: string]: unknown };
1751
3466
 
1752
- /**
1753
- * Human-readable display name
1754
- */
1755
- name: string;
3467
+ /**
3468
+ * Human-readable display name
3469
+ */
3470
+ name: string;
3471
+
3472
+ /**
3473
+ * Tool slug. Combined with toolkit slug to form LOCAL*<TOOLKIT>*<TOOL> (max 60
3474
+ * chars total).
3475
+ */
3476
+ slug: string;
3477
+
3478
+ /**
3479
+ * Optional output schema for the tool response.
3480
+ */
3481
+ output_schema?: { [key: string]: unknown };
3482
+ }
3483
+ }
3484
+
3485
+ export interface CustomTool {
3486
+ /**
3487
+ * Used for BM25 search matching and shown to the LLM.
3488
+ */
3489
+ description: string;
3490
+
3491
+ /**
3492
+ * Must have type: "object" and a properties field.
3493
+ */
3494
+ input_schema: { [key: string]: unknown };
3495
+
3496
+ /**
3497
+ * Human-readable display name
3498
+ */
3499
+ name: string;
3500
+
3501
+ /**
3502
+ * Tool slug. Forms LOCAL*<TOOL> (standalone) or LOCAL*<TOOLKIT>\_<TOOL>
3503
+ * (extending). Max 60 chars total.
3504
+ */
3505
+ slug: string;
3506
+
3507
+ /**
3508
+ * If set, must be a valid Composio toolkit slug. The tool inherits that toolkit's
3509
+ * auth/connection status. If omitted, the tool is standalone (no-auth).
3510
+ */
3511
+ extends_toolkit?: string;
3512
+
3513
+ /**
3514
+ * JSON Schema describing tool output (optional)
3515
+ */
3516
+ output_schema?: { [key: string]: unknown };
3517
+ }
3518
+ }
3519
+ }
3520
+
3521
+ export interface SessionLinkParams {
3522
+ /**
3523
+ * The unique slug identifier of the toolkit to connect
3524
+ */
3525
+ toolkit: string;
3526
+
3527
+ /**
3528
+ * A human-readable alias for this connected account. Must be unique per entity and
3529
+ * toolkit within the project.
3530
+ */
3531
+ alias?: string;
3532
+
3533
+ /**
3534
+ * URL where users will be redirected after completing auth
3535
+ */
3536
+ callback_url?: string;
3537
+ }
3538
+
3539
+ export interface SessionPatchParams {
3540
+ /**
3541
+ * The auth configs to use for the session. This will override the default behavior
3542
+ * and use the given auth config when specific toolkits are being executed
3543
+ */
3544
+ auth_configs?: { [key: string]: string };
3545
+
3546
+ /**
3547
+ * The connected accounts to use for the session. This will override the default
3548
+ * behaviour and use the given connected account when specific toolkits are being
3549
+ * executed. Each connected account must exist (not deleted or disabled) and belong
3550
+ * to the same `user_id` as the session — otherwise session creation fails with a
3551
+ * clear error explaining which account didn't match.
3552
+ */
3553
+ connected_accounts?: { [key: string]: string };
3554
+
3555
+ execute?: SessionPatchParams.Execute;
3556
+
3557
+ experimental?: SessionPatchParams.Experimental | null;
3558
+
3559
+ manage_connections?: SessionPatchParams.ManageConnections | null;
3560
+
3561
+ multi_account?: SessionPatchParams.MultiAccount | null;
3562
+
3563
+ /**
3564
+ * Preload configuration. Use an explicit list for frequently used tool slugs, or
3565
+ * "all" to dynamically expose every app tool allowed by positive
3566
+ * toolkits/tools/tags filters.
3567
+ */
3568
+ preload?: SessionPatchParams.Preload;
3569
+
3570
+ search?: SessionPatchParams.Search;
1756
3571
 
1757
- /**
1758
- * Tool slug. Combined with toolkit slug to form LOCAL*<TOOLKIT>*<TOOL> (max 60
1759
- * chars total).
1760
- */
1761
- slug: string;
3572
+ /**
3573
+ * Global MCP tool annotation hints for filtering. Array format is treated as
3574
+ * enabled list. Object format supports both enabled (tool must have at least one)
3575
+ * and disabled (tool must NOT have any) lists. Toolkit-level tags override this.
3576
+ * Toolkit enabled/disabled lists take precedence over tag filtering.
3577
+ */
3578
+ tags?:
3579
+ | Array<'readOnlyHint' | 'destructiveHint' | 'idempotentHint' | 'openWorldHint'>
3580
+ | SessionPatchParams.UnionMember1;
1762
3581
 
1763
- /**
1764
- * Optional output schema for the tool response.
1765
- */
1766
- output_schema?: { [key: string]: unknown };
1767
- }
1768
- }
3582
+ /**
3583
+ * Toolkit configuration - specify either enable toolkits (allowlist) or disable
3584
+ * toolkits (denylist). Mutually exclusive.
3585
+ */
3586
+ toolkits?: SessionPatchParams.Enable | SessionPatchParams.Disable;
1769
3587
 
1770
- export interface CustomTool {
1771
- /**
1772
- * Used for BM25 search matching and shown to the LLM.
1773
- */
1774
- description: string;
3588
+ /**
3589
+ * Tool-level configuration per toolkit. Allows you to enable, disable, or filter
3590
+ * by tags for specific tools within each toolkit. Every slug passed in `enable` /
3591
+ * `disable` must be a valid Composio tool slug for that toolkit — invalid or
3592
+ * typo'd slugs fail session creation with a clear error listing which ones didn't
3593
+ * match.
3594
+ */
3595
+ tools?: { [key: string]: SessionPatchParams.Enable | SessionPatchParams.Disable | SessionPatchParams.Tags };
1775
3596
 
1776
- /**
1777
- * Must have type: "object" and a properties field.
1778
- */
1779
- input_schema: { [key: string]: unknown };
3597
+ workbench?: SessionPatchParams.Workbench | null;
3598
+ }
1780
3599
 
1781
- /**
1782
- * Human-readable display name
1783
- */
1784
- name: string;
3600
+ export namespace SessionPatchParams {
3601
+ export interface Execute {
3602
+ enable_multi_execute?: boolean;
3603
+ }
1785
3604
 
1786
- /**
1787
- * Tool slug. Forms LOCAL*<TOOL> (standalone) or LOCAL*<TOOLKIT>\_<TOOL>
1788
- * (extending). Max 60 chars total.
1789
- */
1790
- slug: string;
3605
+ export interface Experimental {
3606
+ /**
3607
+ * Per-tool elicitation permission config. Replaces the stored block when provided.
3608
+ */
3609
+ permissions?: Experimental.Permissions;
3610
+ }
1791
3611
 
3612
+ export namespace Experimental {
3613
+ /**
3614
+ * Per-tool elicitation permission config. Replaces the stored block when provided.
3615
+ */
3616
+ export interface Permissions {
1792
3617
  /**
1793
- * If set, must be a valid Composio toolkit slug. The tool inherits that toolkit's
1794
- * auth/connection status. If omitted, the tool is standalone (no-auth).
3618
+ * Default elicitation behavior when no override matches. `allow_all` runs every
3619
+ * tool without prompting; `ask_every_call` prompts on each invocation;
3620
+ * `ask_once_per_session` prompts once and remembers the answer for the rest of the
3621
+ * session.
1795
3622
  */
1796
- extends_toolkit?: string;
3623
+ default: 'allow_all' | 'ask_every_call' | 'ask_once_per_session';
1797
3624
 
1798
3625
  /**
1799
- * JSON Schema describing tool output (optional)
3626
+ * Per-tool overrides keyed by `${toolSlug}:${connectedAccountId ?? "__none__"}`,
3627
+ * plus account-wide overrides keyed by `*:${connectedAccountId ?? "__none__"}`.
3628
+ * Exact tool overrides take precedence over account-wide overrides. `always_allow`
3629
+ * skips the prompt and runs the tool; `always_deny` blocks the tool; `ask_once`
3630
+ * prompts once per session (allow/deny) and remembers; `ask_always` prompts on
3631
+ * every call with allow-once/allow-session/deny, ignoring any cached session
3632
+ * allow. Overrides take precedence over `default`.
1800
3633
  */
1801
- output_schema?: { [key: string]: unknown };
3634
+ overrides?: { [key: string]: 'always_allow' | 'always_deny' | 'ask_once' | 'ask_always' };
1802
3635
  }
1803
3636
  }
1804
3637
 
1805
- /**
1806
- * Configuration for connection management settings
1807
- */
1808
3638
  export interface ManageConnections {
1809
3639
  /**
1810
3640
  * The URL to redirect to after a user completes authentication for a connected
@@ -1834,10 +3664,6 @@ export namespace SessionCreateParams {
1834
3664
  enable_wait_for_connections?: boolean | null;
1835
3665
  }
1836
3666
 
1837
- /**
1838
- * Configure multi-account behavior. When enabled, users can connect multiple
1839
- * accounts per toolkit.
1840
- */
1841
3667
  export interface MultiAccount {
1842
3668
  /**
1843
3669
  * When true, enables multi-account mode for this session. When not set, falls back
@@ -1859,23 +3685,21 @@ export namespace SessionCreateParams {
1859
3685
  }
1860
3686
 
1861
3687
  /**
1862
- * Preload configuration. Controls which tools appear in `session.tools` and the
1863
- * MCP server tool list so the agent can call them directly without going through
1864
- * search first — useful for frequently used tools. Each slug must be allowed by
1865
- * the session filters (`toolkits`, `tools`, `tags`), otherwise session creation
1866
- * fails with a 400. Custom tools declared in `custom_tools` / `custom_toolkits`
1867
- * can also be preloaded. Not supported when multi-account is enabled. Each
1868
- * preloaded tool adds to the agent context window, so keep the list at or under
1869
- * ~20 tools.
3688
+ * Preload configuration. Use an explicit list for frequently used tool slugs, or
3689
+ * "all" to dynamically expose every app tool allowed by positive
3690
+ * toolkits/tools/tags filters.
1870
3691
  */
1871
3692
  export interface Preload {
1872
3693
  /**
1873
- * Tool slugs to preload. Each slug must be allowed by the session filters
1874
- * (`toolkits`, `tools`, `tags`) and exist either in the Composio tool catalog or
1875
- * in `custom_tools` / `custom_toolkits` unknown or blocked slugs return a 400 at
1876
- * session creation.
3694
+ * Explicit tool slugs to preload, or "all" to dynamically expose all current and
3695
+ * future app tools allowed by the positive session filters. "all" is capped at
3696
+ * 1000 tools and is not supported without a positive allowlist.
1877
3697
  */
1878
- tools?: Array<string>;
3698
+ tools?: Array<string> | string;
3699
+ }
3700
+
3701
+ export interface Search {
3702
+ enable?: boolean;
1879
3703
  }
1880
3704
 
1881
3705
  export interface UnionMember1 {
@@ -1934,9 +3758,6 @@ export namespace SessionCreateParams {
1934
3758
  }
1935
3759
  }
1936
3760
 
1937
- /**
1938
- * Configuration for workbench behavior
1939
- */
1940
3761
  export interface Workbench {
1941
3762
  /**
1942
3763
  * Character threshold for automatic offloading. When workbench response exceeds
@@ -1959,72 +3780,13 @@ export namespace SessionCreateParams {
1959
3780
 
1960
3781
  /**
1961
3782
  * Sandbox compute tier: standard (1 vCPU / 1 GB), medium (2 vCPU / 2 GB), large (4
1962
- * vCPU / 4 GB), xlarge (8 vCPU / 8 GB). Defaults to standard.
3783
+ * vCPU / 4 GB), xlarge (8 vCPU / 8 GB). Patching this value recreates the sandbox
3784
+ * on next access — sandbox FS state is lost, but /mnt/files/ R2 mount persists.
1963
3785
  */
1964
3786
  sandbox_size?: 'standard' | 'medium' | 'large' | 'xlarge';
1965
3787
  }
1966
3788
  }
1967
3789
 
1968
- export interface SessionExecuteParams {
1969
- /**
1970
- * The unique slug identifier of the tool to execute. Supports both meta tools and
1971
- * app tools exposed by the session.
1972
- */
1973
- tool_slug: string;
1974
-
1975
- /**
1976
- * Account identifier to specify which connected account to use. Use the account ID
1977
- * (e.g. "coup_hurricane_dal_analytical") or an alias. When omitted with a single
1978
- * account, the default is used. When omitted with multiple accounts, an error
1979
- * lists available accounts.
1980
- */
1981
- account?: string;
1982
-
1983
- /**
1984
- * The arguments required by the tool
1985
- */
1986
- arguments?: { [key: string]: unknown };
1987
- }
1988
-
1989
- export interface SessionExecuteMetaParams {
1990
- /**
1991
- * The unique slug identifier of the meta tool to execute
1992
- */
1993
- slug:
1994
- | 'COMPOSIO_SEARCH_TOOLS'
1995
- | 'COMPOSIO_MULTI_EXECUTE_TOOL'
1996
- | 'COMPOSIO_MANAGE_CONNECTIONS'
1997
- | 'COMPOSIO_WAIT_FOR_CONNECTIONS'
1998
- | 'COMPOSIO_REMOTE_WORKBENCH'
1999
- | 'COMPOSIO_REMOTE_BASH_TOOL'
2000
- | 'COMPOSIO_GET_TOOL_SCHEMAS'
2001
- | 'COMPOSIO_UPSERT_RECIPE'
2002
- | 'COMPOSIO_GET_RECIPE';
2003
-
2004
- /**
2005
- * The arguments required by the meta tool
2006
- */
2007
- arguments?: { [key: string]: unknown };
2008
- }
2009
-
2010
- export interface SessionLinkParams {
2011
- /**
2012
- * The unique slug identifier of the toolkit to connect
2013
- */
2014
- toolkit: string;
2015
-
2016
- /**
2017
- * A human-readable alias for this connected account. Must be unique per entity and
2018
- * toolkit within the project.
2019
- */
2020
- alias?: string;
2021
-
2022
- /**
2023
- * URL where users will be redirected after completing auth
2024
- */
2025
- callback_url?: string;
2026
- }
2027
-
2028
3790
  export interface SessionProxyExecuteParams {
2029
3791
  /**
2030
3792
  * The API endpoint to call (absolute URL or path relative to base URL of the
@@ -2884,13 +4646,18 @@ export namespace SessionProxyExecuteParams {
2884
4646
 
2885
4647
  export interface SessionSearchParams {
2886
4648
  /**
2887
- * List of search queries to execute in parallel. Up to 7 queries supported.
4649
+ * List of search queries to execute in parallel.
2888
4650
  */
2889
4651
  queries: Array<SessionSearchParams.Query>;
2890
4652
 
2891
4653
  /**
2892
- * Optional model hint for search/planning behavior (e.g., "gpt-4o"). Ignored if
2893
- * invalid.
4654
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
4655
+ * customs — pass them on every request that needs them.
4656
+ */
4657
+ experimental?: SessionSearchParams.Experimental;
4658
+
4659
+ /**
4660
+ * Optional model hint for search/planning behavior (e.g., "gpt-4o").
2894
4661
  */
2895
4662
  model?: string;
2896
4663
  }
@@ -2909,6 +4676,113 @@ export namespace SessionSearchParams {
2909
4676
  */
2910
4677
  known_fields?: string;
2911
4678
  }
4679
+
4680
+ /**
4681
+ * Inline custom tools and toolkits for this request. v3.1 sessions do not persist
4682
+ * customs — pass them on every request that needs them.
4683
+ */
4684
+ export interface Experimental {
4685
+ /**
4686
+ * Custom toolkits with grouped tools. Toolkit slugs must not conflict with
4687
+ * existing Composio toolkits. All tools are no-auth.
4688
+ */
4689
+ custom_toolkits?: Array<Experimental.CustomToolkit>;
4690
+
4691
+ /**
4692
+ * Custom tools to include in search. Standalone tools need no auth. Tools with
4693
+ * extends_toolkit inherit the Composio toolkit's connection.
4694
+ */
4695
+ custom_tools?: Array<Experimental.CustomTool>;
4696
+ }
4697
+
4698
+ export namespace Experimental {
4699
+ export interface CustomToolkit {
4700
+ /**
4701
+ * Used for BM25 search matching and shown in toolkit connection statuses.
4702
+ */
4703
+ description: string;
4704
+
4705
+ /**
4706
+ * Display name shown to the LLM and in search results.
4707
+ */
4708
+ name: string;
4709
+
4710
+ /**
4711
+ * Unique slug for the toolkit. Must not conflict with existing Composio toolkit
4712
+ * slugs. Alphanumeric, underscores, and hyphens only.
4713
+ */
4714
+ slug: string;
4715
+
4716
+ /**
4717
+ * Tools in this custom toolkit
4718
+ */
4719
+ tools: Array<CustomToolkit.Tool>;
4720
+ }
4721
+
4722
+ export namespace CustomToolkit {
4723
+ export interface Tool {
4724
+ /**
4725
+ * Used for BM25 search matching and shown to the LLM.
4726
+ */
4727
+ description: string;
4728
+
4729
+ /**
4730
+ * Must have type: "object" and a properties field.
4731
+ */
4732
+ input_schema: { [key: string]: unknown };
4733
+
4734
+ /**
4735
+ * Human-readable display name
4736
+ */
4737
+ name: string;
4738
+
4739
+ /**
4740
+ * Tool slug. Combined with toolkit slug to form LOCAL*<TOOLKIT>*<TOOL> (max 60
4741
+ * chars total).
4742
+ */
4743
+ slug: string;
4744
+
4745
+ /**
4746
+ * Optional output schema for the tool response.
4747
+ */
4748
+ output_schema?: { [key: string]: unknown };
4749
+ }
4750
+ }
4751
+
4752
+ export interface CustomTool {
4753
+ /**
4754
+ * Used for BM25 search matching and shown to the LLM.
4755
+ */
4756
+ description: string;
4757
+
4758
+ /**
4759
+ * Must have type: "object" and a properties field.
4760
+ */
4761
+ input_schema: { [key: string]: unknown };
4762
+
4763
+ /**
4764
+ * Human-readable display name
4765
+ */
4766
+ name: string;
4767
+
4768
+ /**
4769
+ * Tool slug. Forms LOCAL*<TOOL> (standalone) or LOCAL*<TOOLKIT>\_<TOOL>
4770
+ * (extending). Max 60 chars total.
4771
+ */
4772
+ slug: string;
4773
+
4774
+ /**
4775
+ * If set, must be a valid Composio toolkit slug. The tool inherits that toolkit's
4776
+ * auth/connection status. If omitted, the tool is standalone (no-auth).
4777
+ */
4778
+ extends_toolkit?: string;
4779
+
4780
+ /**
4781
+ * JSON Schema describing tool output (optional)
4782
+ */
4783
+ output_schema?: { [key: string]: unknown };
4784
+ }
4785
+ }
2912
4786
  }
2913
4787
 
2914
4788
  export interface SessionToolkitsParams {
@@ -2943,7 +4817,20 @@ export interface SessionToolkitsParams {
2943
4817
  toolkits?: Array<string> | null;
2944
4818
  }
2945
4819
 
2946
- export interface SessionToolsParams {}
4820
+ export interface SessionToolsParams {
4821
+ /**
4822
+ * Cursor for pagination. The cursor is a base64 encoded string of the page and
4823
+ * limit. The page is the page number and the limit is the number of items per
4824
+ * page. The cursor is used to paginate through the items. The cursor is not
4825
+ * required for the first page.
4826
+ */
4827
+ cursor?: string;
4828
+
4829
+ /**
4830
+ * Number of items per page, max allowed is 500
4831
+ */
4832
+ limit?: number;
4833
+ }
2947
4834
 
2948
4835
  Session.Files = Files;
2949
4836
 
@@ -2951,17 +4838,23 @@ export declare namespace Session {
2951
4838
  export {
2952
4839
  type SessionCreateResponse as SessionCreateResponse,
2953
4840
  type SessionRetrieveResponse as SessionRetrieveResponse,
4841
+ type SessionAttachResponse as SessionAttachResponse,
4842
+ type SessionConfigHistoryResponse as SessionConfigHistoryResponse,
2954
4843
  type SessionExecuteResponse as SessionExecuteResponse,
2955
4844
  type SessionExecuteMetaResponse as SessionExecuteMetaResponse,
2956
4845
  type SessionLinkResponse as SessionLinkResponse,
4846
+ type SessionPatchResponse as SessionPatchResponse,
2957
4847
  type SessionProxyExecuteResponse as SessionProxyExecuteResponse,
2958
4848
  type SessionSearchResponse as SessionSearchResponse,
2959
4849
  type SessionToolkitsResponse as SessionToolkitsResponse,
2960
4850
  type SessionToolsResponse as SessionToolsResponse,
2961
4851
  type SessionCreateParams as SessionCreateParams,
4852
+ type SessionAttachParams as SessionAttachParams,
4853
+ type SessionConfigHistoryParams as SessionConfigHistoryParams,
2962
4854
  type SessionExecuteParams as SessionExecuteParams,
2963
4855
  type SessionExecuteMetaParams as SessionExecuteMetaParams,
2964
4856
  type SessionLinkParams as SessionLinkParams,
4857
+ type SessionPatchParams as SessionPatchParams,
2965
4858
  type SessionProxyExecuteParams as SessionProxyExecuteParams,
2966
4859
  type SessionSearchParams as SessionSearchParams,
2967
4860
  type SessionToolkitsParams as SessionToolkitsParams,