@mondaydotcomorg/atp-server 0.24.0 → 0.24.2

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.
@@ -80,17 +80,14 @@ export interface LoadOpenAPIOptions {
80
80
  baseURL?: string;
81
81
  /**
82
82
  * Dynamic header provider for per-request authentication (e.g., per-user OAuth).
83
- * Similar to GraphQL's headerProvider. Called before each API request.
83
+ * Called before each API request with the request parameters and the execution's requestContext.
84
84
  * @param params - The request parameters
85
- * @param context - Optional context from contextProvider
85
+ * @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
86
86
  * @returns Headers to add to the request
87
87
  */
88
- headerProvider?: (params: Record<string, unknown> | undefined, context?: Record<string, unknown>) => Promise<Record<string, string>> | Record<string, string>;
88
+ headerProvider?: (params: Record<string, unknown> | undefined, requestContext?: Record<string, unknown>) => Promise<Record<string, string>> | Record<string, string>;
89
89
  /**
90
- * Context provider to extract context from execution environment.
91
- * Similar to GraphQL's contextProvider. Called once per request.
92
- * @param executionContext - The execution context from ATP
93
- * @returns Context object passed to headerProvider
90
+ * @deprecated Use headerProvider instead, which now receives requestContext directly as its second parameter.
94
91
  */
95
92
  contextProvider?: (executionContext?: Record<string, unknown>) => Promise<Record<string, unknown>> | Record<string, unknown>;
96
93
  /**
@@ -115,6 +112,34 @@ export interface LoadOpenAPIOptions {
115
112
  headers?: Record<string, string>;
116
113
  body?: string | undefined;
117
114
  };
115
+ /**
116
+ * Custom fetch function for full control over the HTTP transport layer.
117
+ * Use this when the target API requires custom TLS certificates (mTLS, custom CA),
118
+ * a proxy, or any other transport-level configuration that headers alone cannot provide.
119
+ *
120
+ * The function receives the URL and standard RequestInit on every request,
121
+ * making it inherently dynamic — you can route to different agents based on the URL.
122
+ *
123
+ * Applied to both spec loading and runtime API calls.
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * import { Agent } from 'undici';
128
+ *
129
+ * const mtlsAgent = new Agent({
130
+ * connect: {
131
+ * ca: fs.readFileSync('/certs/ca.pem'),
132
+ * cert: fs.readFileSync('/certs/client.pem'),
133
+ * key: fs.readFileSync('/certs/client-key.pem'),
134
+ * },
135
+ * });
136
+ *
137
+ * await server.loadOpenAPI('https://partner-api.example.com/spec.json', {
138
+ * fetcher: (url, init) => fetch(url, { ...init, dispatcher: mtlsAgent }),
139
+ * });
140
+ * ```
141
+ */
142
+ fetcher?: (url: string, init: RequestInit) => Promise<Response>;
118
143
  }
119
144
  /**
120
145
  * Load OpenAPI specification and convert to ATP API group
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-loader.d.ts","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi-loader.d.ts","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ function isSwagger2(spec) {
17
17
  * Load OpenAPI specification and convert to ATP API group
18
18
  */
19
19
  export async function loadOpenAPI(source, options = {}) {
20
- const spec = await loadSpec(source);
20
+ const spec = await loadSpec(source, options.fetcher);
21
21
  const name = options.name || spec.info.title.toLowerCase().replace(/\s+/g, '-');
22
22
  let baseURL = options.baseURL;
23
23
  if (!baseURL) {
@@ -63,11 +63,12 @@ export async function loadOpenAPI(source, options = {}) {
63
63
  /**
64
64
  * Load OpenAPI spec from file or URL
65
65
  */
66
- async function loadSpec(source) {
66
+ async function loadSpec(source, fetcher) {
67
67
  let content;
68
68
  let isYaml = false;
69
69
  if (source.startsWith('http://') || source.startsWith('https://')) {
70
- const response = await fetch(source);
70
+ const fetchFn = fetcher || fetch;
71
+ const response = await fetchFn(source, { method: 'GET' });
71
72
  if (!response.ok) {
72
73
  throw new Error(`Failed to load OpenAPI spec from ${source}: ${response.statusText}`);
73
74
  }
@@ -200,12 +201,12 @@ function convertOperation(path, method, operation, spec, baseURL, options, pathP
200
201
  const headers = {
201
202
  'Content-Type': 'application/json',
202
203
  };
203
- let context;
204
- if (options.contextProvider) {
205
- context = await options.contextProvider(handlerContext?.requestContext);
206
- }
207
204
  if (options.headerProvider) {
208
- const dynamicHeaders = await options.headerProvider(input, context);
205
+ let requestContext = handlerContext?.requestContext;
206
+ if (options.contextProvider) {
207
+ requestContext = await options.contextProvider(requestContext);
208
+ }
209
+ const dynamicHeaders = await options.headerProvider(input, requestContext);
209
210
  Object.assign(headers, dynamicHeaders);
210
211
  log.debug('Added headers from headerProvider', { keys: Object.keys(dynamicHeaders) });
211
212
  }
@@ -333,7 +334,8 @@ function convertOperation(path, method, operation, spec, baseURL, options, pathP
333
334
  if (transformed.body !== undefined)
334
335
  finalBody = transformed.body;
335
336
  }
336
- const response = await fetch(finalUrl, {
337
+ const fetchFn = options.fetcher || fetch;
338
+ const response = await fetchFn(finalUrl, {
337
339
  method: finalMethod,
338
340
  headers: finalHeaders,
339
341
  body: finalBody,
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-loader.js","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi-loader.js","sourceRoot":"","sources":["../src/openapi-loader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondaydotcomorg/atp-server",
3
- "version": "0.24.0",
3
+ "version": "0.24.2",
4
4
  "description": "Server implementation for Agent Tool Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -49,11 +49,11 @@
49
49
  "@babel/parser": "^7.26.0",
50
50
  "@babel/traverse": "^7.26.0",
51
51
  "@babel/types": "^7.26.0",
52
- "@mondaydotcomorg/atp-compiler": "0.22.0",
53
- "@mondaydotcomorg/atp-protocol": "0.22.0",
54
- "@mondaydotcomorg/atp-provenance": "0.22.0",
55
- "@mondaydotcomorg/atp-providers": "0.22.0",
56
- "@mondaydotcomorg/atp-runtime": "0.22.0",
52
+ "@mondaydotcomorg/atp-compiler": "0.22.1",
53
+ "@mondaydotcomorg/atp-protocol": "0.22.1",
54
+ "@mondaydotcomorg/atp-provenance": "0.22.1",
55
+ "@mondaydotcomorg/atp-providers": "0.22.1",
56
+ "@mondaydotcomorg/atp-runtime": "0.22.1",
57
57
  "@opentelemetry/api": "^1.9.0",
58
58
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
59
59
  "@opentelemetry/core": "^2.2.0",
@@ -74,10 +74,9 @@ export class ClientSessionManager {
74
74
  }
75
75
  }
76
76
 
77
- private ensureClientJWT(token: string, clientId: string, ignoreExpiration = false) {
77
+ private ensureClientJWT(token: string, clientId: string) {
78
78
  const decoded = jwt.verify(token, this.jwtSecret, {
79
79
  algorithms: ['HS256'],
80
- ignoreExpiration,
81
80
  }) as { clientId: string; type: string };
82
81
 
83
82
  if (decoded.clientId !== clientId || decoded.type !== 'client') {
@@ -136,27 +135,6 @@ export class ClientSessionManager {
136
135
  }
137
136
  }
138
137
 
139
- /**
140
- * Verify client token for refresh purposes - allows expired JWT tokens.
141
- * This is used during token refresh when the JWT may have expired but
142
- * the session still exists in cache.
143
- */
144
- async verifyClientForRefresh(clientId: string, token: string): Promise<boolean> {
145
- try {
146
- // Verify token structure but ignore expiration - token refresh should work
147
- // even if the JWT has expired, as long as the session still exists in cache
148
- if (!this.ensureClientJWT(token, clientId, true)) {
149
- return false;
150
- }
151
-
152
- // Check if session exists in cache - don't check session.expiresAt
153
- const session = await this.cache.get<ClientSession>(`session:${clientId}`);
154
- return session !== null;
155
- } catch {
156
- return false;
157
- }
158
- }
159
-
160
138
  /**
161
139
  * Get client session
162
140
  */
@@ -207,47 +185,6 @@ export class ClientSessionManager {
207
185
  );
208
186
  }
209
187
 
210
- /**
211
- * Refresh token for an existing client session.
212
- * Returns new token credentials if session exists in cache.
213
- * This works even if the session's expiresAt has passed - the refresh
214
- * will update expiresAt to extend the session.
215
- */
216
- async refreshToken(clientId: string): Promise<ClientInitResponse | null> {
217
- // Get session directly from cache without expiry check
218
- const session = await this.cache.get<ClientSession>(`session:${clientId}`);
219
- if (!session) {
220
- // Throw happens in handler
221
- return null;
222
- }
223
-
224
- // Remove old client session entry.
225
- await this.cache.delete(`session:${clientId}`);;
226
-
227
- const newClientId = this.generateClientId();
228
- const now = Date.now();
229
- const newExpiresAt = now + this.tokenTTL;
230
- const newTokenRotateAt = now + this.tokenRotation;
231
-
232
- // Update session with both new clientId and new expiresAt
233
- const updatedSession: ClientSession = {
234
- ...session,
235
- clientId,
236
- expiresAt: newExpiresAt,
237
- };
238
-
239
- await this.cache.set(`session:${newClientId}`, updatedSession);
240
-
241
- const newToken = this.generateToken(newClientId);
242
-
243
- return {
244
- clientId: newClientId,
245
- token: newToken,
246
- expiresAt: newExpiresAt,
247
- tokenRotateAt: newTokenRotateAt,
248
- };
249
- }
250
-
251
188
  /**
252
189
  * Get token TTL and rotation settings (useful for clients)
253
190
  */
@@ -39,7 +39,6 @@ import { handleSearch, handleSearchQuery } from './handlers/search.handler.js';
39
39
  import { handleExplore } from './handlers/explorer.handler.js';
40
40
  import { handleExecute } from './handlers/execute.handler.js';
41
41
  import { handleResume } from './handlers/resume.handler.js';
42
- import { handleTokenRefresh } from './handlers/token.handler.js';
43
42
  import { getDefinitions } from './handlers/definitions.handler.js';
44
43
  import { shutdownAudit } from './middleware/audit.js';
45
44
  import {
@@ -159,7 +158,7 @@ export class AgentToolProtocolServer {
159
158
  }
160
159
 
161
160
  if (!this.cacheProvider) {
162
- this.cacheProvider = new MemoryCache({ maxKeys: 1000, defaultTTL: 3600 });
161
+ this.cacheProvider = new MemoryCache({ maxKeys: 1000, defaultTTL: 24 * 3600 });
163
162
  log.info('Cache provider configured (default)', { provider: 'memory' });
164
163
  }
165
164
 
@@ -612,11 +611,6 @@ export class AgentToolProtocolServer {
612
611
  );
613
612
  }
614
613
 
615
- async handleTokenRefresh(ctx: RequestContext): Promise<unknown> {
616
- if (!this.sessionManager) ctx.throw(503, 'Session manager not initialized');
617
- return await handleTokenRefresh(ctx, this.sessionManager);
618
- }
619
-
620
614
  /**
621
615
  * Update server components with new API groups (internal method)
622
616
  * @private
@@ -31,11 +31,11 @@ import fs from 'node:fs/promises';
31
31
  * Dynamic header provider for GraphQL requests.
32
32
  *
33
33
  * @param params - The GraphQL query parameters
34
- * @param context - Optional context from contextProvider (e.g., auth tokens)
34
+ * @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
35
35
  */
36
36
  export type GraphQLAuthProvider = (
37
37
  params?: Record<string, any>,
38
- context?: Record<string, any>
38
+ requestContext?: Record<string, any>
39
39
  ) => Promise<Record<string, string>> | Record<string, string>;
40
40
 
41
41
  /**
@@ -43,12 +43,12 @@ export type GraphQLAuthProvider = (
43
43
  * Priority: headerProvider > authProvider + auth > static headers
44
44
  * @param options - Load options including auth config
45
45
  * @param params - Optional request params passed to headerProvider for dynamic resolution
46
- * @param executionContext - Optional execution context passed from handler (contains requestContext)
46
+ * @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
47
47
  */
48
48
  async function resolveHeaders(
49
49
  options: LoadGraphQLOptions,
50
50
  params?: Record<string, any>,
51
- executionContext?: Record<string, any>
51
+ requestContext?: Record<string, any>
52
52
  ): Promise<Record<string, string>> {
53
53
  const headers: Record<string, string> = {};
54
54
 
@@ -65,10 +65,11 @@ async function resolveHeaders(
65
65
  }
66
66
 
67
67
  if (options.headerProvider) {
68
- const context = options.contextProvider
69
- ? await options.contextProvider(executionContext)
70
- : undefined;
71
- const dynamicHeaders = await options.headerProvider(params, context);
68
+ let ctx = requestContext;
69
+ if (options.contextProvider) {
70
+ ctx = await options.contextProvider(requestContext);
71
+ }
72
+ const dynamicHeaders = await options.headerProvider(params, ctx);
72
73
  Object.assign(headers, dynamicHeaders);
73
74
  }
74
75
 
@@ -193,10 +194,11 @@ export interface LoadGraphQLOptions {
193
194
  headers?: Record<string, string>;
194
195
  /** Auth provider for dynamic credential resolution */
195
196
  authProvider?: AuthProvider;
196
- /** Dynamic header provider function - called before each request */
197
+ /** Dynamic header provider function - called before each request with params and requestContext */
197
198
  headerProvider?: GraphQLAuthProvider;
198
- /** Context provider - called before each request to get current context (e.g., auth tokens).
199
- * Receives execution context which may contain requestContext from execute() call. */
199
+ /**
200
+ * @deprecated Use headerProvider instead, which now receives requestContext directly as its second parameter.
201
+ */
200
202
  contextProvider?: (
201
203
  executionContext?: Record<string, any>
202
204
  ) => Record<string, any> | Promise<Record<string, any>>;
@@ -204,6 +206,28 @@ export interface LoadGraphQLOptions {
204
206
  auth?: AuthConfig;
205
207
  depthLimit?: number;
206
208
  queryDepthLimit?: number;
209
+
210
+ /**
211
+ * Custom fetch function for full control over the HTTP transport layer.
212
+ * Use this when the target API requires custom TLS certificates (mTLS, custom CA),
213
+ * a proxy, or any other transport-level configuration that headers alone cannot provide.
214
+ *
215
+ * Applied to both schema loading and runtime GraphQL requests.
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * import { Agent } from 'undici';
220
+ *
221
+ * const mtlsAgent = new Agent({
222
+ * connect: { ca: fs.readFileSync('/certs/ca.pem') },
223
+ * });
224
+ *
225
+ * await server.loadGraphQL('https://api.example.com/graphql', {
226
+ * fetcher: (url, init) => fetch(url, { ...init, dispatcher: mtlsAgent }),
227
+ * });
228
+ * ```
229
+ */
230
+ fetcher?: (url: string, init: RequestInit) => Promise<Response>;
207
231
  }
208
232
 
209
233
  /**
@@ -244,10 +268,11 @@ export async function loadGraphQL(
244
268
  async function loadSchema(source: string, options: LoadGraphQLOptions): Promise<GraphQLSchema> {
245
269
  // Check if source is a URL
246
270
  if (source.startsWith('http://') || source.startsWith('https://')) {
271
+ const fetchFn = options.fetcher || fetch;
247
272
  // Resolve headers for schema loading
248
273
  const headers = await resolveHeaders(options);
249
274
 
250
- const response = await fetch(source, {
275
+ const response = await fetchFn(source, {
251
276
  method: 'POST',
252
277
  headers: {
253
278
  'Content-Type': 'application/json',
@@ -258,7 +283,8 @@ async function loadSchema(source: string, options: LoadGraphQLOptions): Promise<
258
283
 
259
284
  if (!response.ok) {
260
285
  // If POST with introspection fails, try GET assuming it might return SDL or JSON
261
- const getResponse = await fetch(source, {
286
+ const getResponse = await fetchFn(source, {
287
+ method: 'GET',
262
288
  headers,
263
289
  });
264
290
  if (getResponse.ok) {
@@ -318,7 +344,7 @@ function convertFieldToFunction(
318
344
  description,
319
345
  inputSchema,
320
346
  outputSchema,
321
- handler: async (params: unknown, context?: { metadata?: Record<string, any> }) => {
347
+ handler: async (params: unknown, context?: { metadata?: Record<string, any>; requestContext?: Record<string, unknown> }) => {
322
348
  const paramsObj = (params as Record<string, any>) || {};
323
349
  const customFields = paramsObj._fields;
324
350
 
@@ -349,10 +375,10 @@ function convertFieldToFunction(
349
375
  context.metadata.graphql_variables = variables;
350
376
  }
351
377
 
352
- // Pass execution context (including requestContext) to resolveHeaders
353
- const headers = await resolveHeaders(options, paramsObj, context);
378
+ const headers = await resolveHeaders(options, paramsObj, context?.requestContext);
354
379
 
355
- const response = await fetch(url, {
380
+ const fetchFn = options.fetcher || fetch;
381
+ const response = await fetchFn(url, {
356
382
  method: 'POST',
357
383
  headers: {
358
384
  'Content-Type': 'application/json',
@@ -24,8 +24,6 @@ export async function handleRoute(
24
24
  } else if (ctx.path.startsWith('/api/resume/') && ctx.method === 'POST') {
25
25
  const executionId = ctx.path.substring('/api/resume/'.length);
26
26
  ctx.responseBody = await server.handleResume(ctx, executionId);
27
- } else if (ctx.path === '/api/token/refresh' && ctx.method === 'POST') {
28
- ctx.responseBody = await server.handleTokenRefresh(ctx);
29
27
  } else {
30
28
  ctx.status = 404;
31
29
  ctx.responseBody = { error: 'Not found' };
@@ -166,21 +166,18 @@ export interface LoadOpenAPIOptions {
166
166
 
167
167
  /**
168
168
  * Dynamic header provider for per-request authentication (e.g., per-user OAuth).
169
- * Similar to GraphQL's headerProvider. Called before each API request.
169
+ * Called before each API request with the request parameters and the execution's requestContext.
170
170
  * @param params - The request parameters
171
- * @param context - Optional context from contextProvider
171
+ * @param requestContext - Optional request context from the execution environment (e.g., user info, auth tokens)
172
172
  * @returns Headers to add to the request
173
173
  */
174
174
  headerProvider?: (
175
175
  params: Record<string, unknown> | undefined,
176
- context?: Record<string, unknown>
176
+ requestContext?: Record<string, unknown>
177
177
  ) => Promise<Record<string, string>> | Record<string, string>;
178
178
 
179
179
  /**
180
- * Context provider to extract context from execution environment.
181
- * Similar to GraphQL's contextProvider. Called once per request.
182
- * @param executionContext - The execution context from ATP
183
- * @returns Context object passed to headerProvider
180
+ * @deprecated Use headerProvider instead, which now receives requestContext directly as its second parameter.
184
181
  */
185
182
  contextProvider?: (
186
183
  executionContext?: Record<string, unknown>
@@ -210,6 +207,35 @@ export interface LoadOpenAPIOptions {
210
207
  headers?: Record<string, string>;
211
208
  body?: string | undefined;
212
209
  };
210
+
211
+ /**
212
+ * Custom fetch function for full control over the HTTP transport layer.
213
+ * Use this when the target API requires custom TLS certificates (mTLS, custom CA),
214
+ * a proxy, or any other transport-level configuration that headers alone cannot provide.
215
+ *
216
+ * The function receives the URL and standard RequestInit on every request,
217
+ * making it inherently dynamic — you can route to different agents based on the URL.
218
+ *
219
+ * Applied to both spec loading and runtime API calls.
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * import { Agent } from 'undici';
224
+ *
225
+ * const mtlsAgent = new Agent({
226
+ * connect: {
227
+ * ca: fs.readFileSync('/certs/ca.pem'),
228
+ * cert: fs.readFileSync('/certs/client.pem'),
229
+ * key: fs.readFileSync('/certs/client-key.pem'),
230
+ * },
231
+ * });
232
+ *
233
+ * await server.loadOpenAPI('https://partner-api.example.com/spec.json', {
234
+ * fetcher: (url, init) => fetch(url, { ...init, dispatcher: mtlsAgent }),
235
+ * });
236
+ * ```
237
+ */
238
+ fetcher?: (url: string, init: RequestInit) => Promise<Response>;
213
239
  }
214
240
 
215
241
  /**
@@ -233,7 +259,7 @@ export async function loadOpenAPI(
233
259
  source: string,
234
260
  options: LoadOpenAPIOptions = {}
235
261
  ): Promise<APIGroupConfig> {
236
- const spec = await loadSpec(source);
262
+ const spec = await loadSpec(source, options.fetcher);
237
263
 
238
264
  const name = options.name || spec.info.title.toLowerCase().replace(/\s+/g, '-');
239
265
 
@@ -297,12 +323,16 @@ export async function loadOpenAPI(
297
323
  /**
298
324
  * Load OpenAPI spec from file or URL
299
325
  */
300
- async function loadSpec(source: string): Promise<APISpec> {
326
+ async function loadSpec(
327
+ source: string,
328
+ fetcher?: (url: string, init: RequestInit) => Promise<Response>
329
+ ): Promise<APISpec> {
301
330
  let content: string;
302
331
  let isYaml = false;
303
332
 
304
333
  if (source.startsWith('http://') || source.startsWith('https://')) {
305
- const response = await fetch(source);
334
+ const fetchFn = fetcher || fetch;
335
+ const response = await fetchFn(source, { method: 'GET' });
306
336
  if (!response.ok) {
307
337
  throw new Error(`Failed to load OpenAPI spec from ${source}: ${response.statusText}`);
308
338
  }
@@ -482,13 +512,12 @@ function convertOperation(
482
512
  'Content-Type': 'application/json',
483
513
  };
484
514
 
485
- let context: Record<string, unknown> | undefined;
486
- if (options.contextProvider) {
487
- context = await options.contextProvider(handlerContext?.requestContext);
488
- }
489
-
490
515
  if (options.headerProvider) {
491
- const dynamicHeaders = await options.headerProvider(input, context);
516
+ let requestContext = handlerContext?.requestContext;
517
+ if (options.contextProvider) {
518
+ requestContext = await options.contextProvider(requestContext);
519
+ }
520
+ const dynamicHeaders = await options.headerProvider(input, requestContext);
492
521
  Object.assign(headers, dynamicHeaders);
493
522
  log.debug('Added headers from headerProvider', { keys: Object.keys(dynamicHeaders) });
494
523
  }
@@ -625,7 +654,8 @@ function convertOperation(
625
654
  if (transformed.body !== undefined) finalBody = transformed.body;
626
655
  }
627
656
 
628
- const response = await fetch(finalUrl, {
657
+ const fetchFn = options.fetcher || fetch;
658
+ const response = await fetchFn(finalUrl, {
629
659
  method: finalMethod,
630
660
  headers: finalHeaders,
631
661
  body: finalBody,