@forestadmin/agent-bff 1.21.0 → 1.22.0

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.
@@ -42,6 +42,7 @@ exports.default = dispatchCli;
42
42
  const fs_1 = require("fs");
43
43
  const path_1 = __importDefault(require("path"));
44
44
  const console_logger_1 = __importDefault(require("./adapters/console-logger"));
45
+ const ai_routes_middleware_1 = require("./ai/ai-routes-middleware");
45
46
  const cli_core_1 = __importStar(require("./cli-core"));
46
47
  const env_config_1 = require("./config/env-config");
47
48
  const errors_1 = require("./errors");
@@ -79,6 +80,16 @@ const NOTHING_TO_UNFOLD = `${UNFOLD_VARS.join(', ')} must all be set to unfold i
79
80
  function wantsUnfolding(env) {
80
81
  return UNFOLD_VARS.every(name => (env[name] ?? '').trim() !== '');
81
82
  }
83
+ function publishesAiQuery(env, logger) {
84
+ try {
85
+ return (0, cli_core_1.resolveOAuthConfig)((0, env_config_1.parseConfig)(env)) !== undefined;
86
+ }
87
+ catch (error) {
88
+ const reason = (0, errors_1.extractErrorMessage)(error);
89
+ logger('Warn', `Omitting ${ai_routes_middleware_1.AI_QUERY_ROUTE} from the document: the configuration could not be read (${reason})`);
90
+ return false;
91
+ }
92
+ }
82
93
  /**
83
94
  * Unfolds when the deployment is configured to be inspected, and emits the generic document when it
84
95
  * is not configured at all — the command keeps working without configuration. A deployment that IS
@@ -94,13 +105,14 @@ async function renderOpenApi(env, logger) {
94
105
  const unfoldable = authSecret && wantsUnfolding(env)
95
106
  ? { source: (0, cli_core_1.resolveUnfoldSource)((0, env_config_1.parseConfig)(env), logger), authSecret }
96
107
  : undefined;
108
+ const hasAiQueryRoute = publishesAiQuery(env, logger);
97
109
  if (!unfoldable?.source) {
98
110
  logger('Warn', `Emitting the generic OpenAPI document: ${NOTHING_TO_UNFOLD}`);
99
- return `${(0, openapi_document_1.serializeOpenApi)((0, openapi_document_1.generateOpenApiDocument)(version_1.default))}\n`;
111
+ return `${(0, openapi_document_1.serializeOpenApi)((0, openapi_document_1.generateOpenApiDocument)(version_1.default, { hasAiQueryRoute }))}\n`;
100
112
  }
101
113
  const { source } = unfoldable;
102
114
  const readModel = await source.store.getReadModel();
103
- const { document, unfolding } = await (0, unfolded_document_1.default)(source, readModel, () => (0, unfolded_document_1.issueOpenApiAgentToken)(unfoldable.authSecret), version_1.default);
115
+ const { document, unfolding } = await (0, unfolded_document_1.default)(source, readModel, () => (0, unfolded_document_1.issueOpenApiAgentToken)(unfoldable.authSecret), { version: version_1.default, hasAiQueryRoute });
104
116
  // Not one collection came back with its field set, so the agent was unreachable throughout. The
105
117
  // paths are real but every field schema is free-form, which is not the document this command
106
118
  // promises — a CI job regenerating it needs something to branch on, and the degraded notes buried
@@ -169,4 +181,4 @@ async function dispatchCli(argv, env, logger) {
169
181
  process.stdout.write(document);
170
182
  return { exitCode: 0 };
171
183
  }
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWRpc3BhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS1kaXNwYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnRUEsc0NBdUNDO0FBZ0RELDhCQWdEQztBQXBNRCwyQkFBOEM7QUFDOUMsZ0RBQXdCO0FBRXhCLCtFQUE0RDtBQUM1RCx1REFBeUQ7QUFDekQsb0RBQWtEO0FBQ2xELHFDQUErQztBQUMvQyxpRUFBdUY7QUFDdkYsaUZBQTRGO0FBQzVGLG1EQUFzRDtBQUN0RCx3REFBZ0M7QUFFbkIsUUFBQSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFFbEQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBRWxCLFFBQUEsS0FBSyxHQUFHOzs7Ozs7Ozs7O29DQVVlLDJCQUFtQjs7OztvREFJSCxDQUFDO0FBRXhDLFFBQUEsSUFBSSxHQUFHLG9DQUFvQyxDQUFDO0FBRXpELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztBQU9uRCxNQUFNLFdBQVcsR0FBRztJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixXQUFXO0NBQ0gsQ0FBQztBQUVYLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQztBQUVuRixTQUFTLGNBQWMsQ0FBQyxHQUFzQjtJQUM1QyxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENB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
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWRpc3BhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS1kaXNwYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnRkEsc0NBeUNDO0FBZ0RELDhCQWdEQztBQXRORCwyQkFBOEM7QUFDOUMsZ0RBQXdCO0FBRXhCLCtFQUE0RDtBQUM1RCxvRUFBMkQ7QUFDM0QsdURBQTZFO0FBQzdFLG9EQUFrRDtBQUNsRCxxQ0FBK0M7QUFDL0MsaUVBQXVGO0FBQ3ZGLGlGQUE0RjtBQUM1RixtREFBc0Q7QUFDdEQsd0RBQWdDO0FBRW5CLFFBQUEsbUJBQW1CLEdBQUcsY0FBYyxDQUFDO0FBRWxELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQztBQUVsQixRQUFBLEtBQUssR0FBRzs7Ozs7Ozs7OztvQ0FVZSwyQkFBbUI7Ozs7b0RBSUgsQ0FBQztBQUV4QyxRQUFBLElBQUksR0FBRyxvQ0FBb0MsQ0FBQztBQUV6RCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzdDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFPbkQsTUFBTSxXQUFXLEdBQUc7SUFDbEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsV0FBVztDQUNILENBQUM7QUFFWCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUM7QUFFbkYsU0FBUyxjQUFjLENBQUMsR0FBc0I7SUFDNUMsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFF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
@@ -12,12 +12,14 @@ export interface BFFConfig {
12
12
  invalidAllowedOrigins: string[];
13
13
  defaultTimezone?: string;
14
14
  agentTimeoutMs?: number;
15
+ aiTimeoutMs: number;
15
16
  openapiEnabled: boolean;
16
17
  httpPort: number;
17
18
  presence: PresenceMap;
18
19
  hasAllRequired: boolean;
19
20
  }
20
21
  export declare const DEFAULT_AGENT_TIMEOUT_MS = 10000;
21
- export declare const MAX_AGENT_TIMEOUT_MS = 2147483647;
22
+ export declare const DEFAULT_AI_TIMEOUT_MS = 120000;
23
+ export declare const MAX_TIMEOUT_MS = 2147483647;
22
24
  export declare function parseConfig(env: NodeJS.ProcessEnv): BFFConfig;
23
25
  //# sourceMappingURL=env-config.d.ts.map
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MAX_AGENT_TIMEOUT_MS = exports.DEFAULT_AGENT_TIMEOUT_MS = exports.REQUIRED_KEYS = void 0;
6
+ exports.MAX_TIMEOUT_MS = exports.DEFAULT_AI_TIMEOUT_MS = exports.DEFAULT_AGENT_TIMEOUT_MS = exports.REQUIRED_KEYS = void 0;
7
7
  exports.parseConfig = parseConfig;
8
8
  const zod_1 = require("zod");
9
9
  const origin_1 = require("../cors/origin");
@@ -20,7 +20,8 @@ exports.REQUIRED_KEYS = [
20
20
  const URL_KEYS = ['FOREST_SERVER_URL', 'FOREST_APP_URL', 'AGENT_URL'];
21
21
  const DECIMAL_INTEGER = /^\d+$/;
22
22
  exports.DEFAULT_AGENT_TIMEOUT_MS = 10000;
23
- exports.MAX_AGENT_TIMEOUT_MS = 2147483647;
23
+ exports.DEFAULT_AI_TIMEOUT_MS = 120000;
24
+ exports.MAX_TIMEOUT_MS = 2147483647;
24
25
  const MAX_PORT = 65535;
25
26
  const ENCRYPTION_KEY_BYTES = 32;
26
27
  const BASE64_PATTERN = /^[A-Za-z0-9+/]+={0,2}$/;
@@ -51,13 +52,13 @@ function parseEncryptionKey(raw) {
51
52
  }
52
53
  return value;
53
54
  }
54
- function parseAgentTimeoutMs(raw) {
55
+ function parseTimeoutMs(raw, envName, defaultMs) {
55
56
  const value = normalize(raw);
56
57
  if (value === undefined)
57
- return exports.DEFAULT_AGENT_TIMEOUT_MS;
58
+ return defaultMs;
58
59
  const timeout = DECIMAL_INTEGER.test(value.trim()) ? Number(value.trim()) : NaN;
59
- if (Number.isNaN(timeout) || timeout === 0 || timeout > exports.MAX_AGENT_TIMEOUT_MS) {
60
- throw new errors_1.ConfigurationError(`Invalid configuration: BFF_AGENT_TIMEOUT_MS must be a positive integer of at most ${exports.MAX_AGENT_TIMEOUT_MS} milliseconds.`);
60
+ if (Number.isNaN(timeout) || timeout === 0 || timeout > exports.MAX_TIMEOUT_MS) {
61
+ throw new errors_1.ConfigurationError(`Invalid configuration: ${envName} must be a positive integer of at most ${exports.MAX_TIMEOUT_MS} milliseconds.`);
61
62
  }
62
63
  return timeout;
63
64
  }
@@ -98,11 +99,12 @@ function parseConfig(env) {
98
99
  allowedOrigins,
99
100
  invalidAllowedOrigins,
100
101
  defaultTimezone,
101
- agentTimeoutMs: parseAgentTimeoutMs(env.BFF_AGENT_TIMEOUT_MS),
102
+ agentTimeoutMs: parseTimeoutMs(env.BFF_AGENT_TIMEOUT_MS, 'BFF_AGENT_TIMEOUT_MS', exports.DEFAULT_AGENT_TIMEOUT_MS),
103
+ aiTimeoutMs: parseTimeoutMs(env.BFF_AI_TIMEOUT_MS, 'BFF_AI_TIMEOUT_MS', exports.DEFAULT_AI_TIMEOUT_MS),
102
104
  openapiEnabled: parseOpenApiEnabled(env.BFF_OPENAPI_ENABLED),
103
105
  httpPort: parsePort(env.HTTP_PORT),
104
106
  presence,
105
107
  hasAllRequired: exports.REQUIRED_KEYS.every(key => presence[key]) && tokenEncryptionKey !== undefined,
106
108
  };
107
109
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvZW52LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUEwSEEsa0NBdUNDO0FBaktELDZCQUF3QjtBQUV4QiwyQ0FBcUQ7QUFDckQsMkRBQTJDO0FBQzNDLHNDQUErQztBQUMvQyxtREFBdUQ7QUFFMUMsUUFBQSxhQUFhLEdBQUc7SUFDM0Isb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLFdBQVc7Q0FDSCxDQUFDO0FBSVgsTUFBTSxRQUFRLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQVUsQ0FBQztBQXFCL0UsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBQ25CLFFBQUEsd0JBQXdCLEdBQUcsS0FBTSxDQUFDO0FBQ2xDLFFBQUEsb0JBQW9CLEdBQUcsVUFBYSxDQUFDO0FBQ2xELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQztBQUN2QixNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztBQUNoRCxNQUFNLGVBQWUsR0FBRyxPQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFFeEQsU0FBUyxTQUFTLENBQUMsS0FBeUI7SUFDMUMsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3hFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFZO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM1QixJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEVBQUU7UUFBRSxP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
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvZW52LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUE0SEEsa0NBNENDO0FBeEtELDZCQUF3QjtBQUV4QiwyQ0FBcUQ7QUFDckQsMkRBQTJDO0FBQzNDLHNDQUErQztBQUMvQyxtREFBdUQ7QUFFMUMsUUFBQSxhQUFhLEdBQUc7SUFDM0Isb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLFdBQVc7Q0FDSCxDQUFDO0FBSVgsTUFBTSxRQUFRLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQVUsQ0FBQztBQXNCL0UsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBQ25CLFFBQUEsd0JBQXdCLEdBQUcsS0FBTSxDQUFDO0FBQ2xDLFFBQUEscUJBQXFCLEdBQUcsTUFBTyxDQUFDO0FBQ2hDLFFBQUEsY0FBYyxHQUFHLFVBQWEsQ0FBQztBQUM1QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7QUFDdkIsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDaEQsTUFBTSxlQUFlLEdBQUcsT0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBRXhELFNBQVMsU0FBUyxDQUFDLEtBQXlCO0lBQzFDLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBWTtJQUM3QixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsSUFBSSxPQUFPLEtBQUss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
@@ -5,6 +5,7 @@ const timezone_middleware_1 = require("../timezone/timezone-middleware");
5
5
  /** Neutral and always valid, where a local zone would only be right for whoever generated it. */
6
6
  const SAMPLE_TIMEZONE = 'UTC';
7
7
  const KEY_VARIABLE = 'BFF_KEY';
8
+ const SESSION_VARIABLE = 'BFF_SESSION';
8
9
  /**
9
10
  * Browser source, injected into the page: it decorates the fetched document with `x-codeSamples`,
10
11
  * which Redoc renders as one tab per language, then hands it to `Redoc.init`.
@@ -32,6 +33,7 @@ const SAMPLES_SCRIPT = `
32
33
  var TIMEZONE_HEADER = ${JSON.stringify(timezone_middleware_1.TIMEZONE_HEADER)};
33
34
  var SAMPLE_TIMEZONE = ${JSON.stringify(SAMPLE_TIMEZONE)};
34
35
  var KEY_VARIABLE = ${JSON.stringify(KEY_VARIABLE)};
36
+ var SESSION_VARIABLE = ${JSON.stringify(SESSION_VARIABLE)};
35
37
 
36
38
  /**
37
39
  * Every walk below is depth-bounded, because a document can reference itself: a filter is a
@@ -107,27 +109,29 @@ const SAMPLES_SCRIPT = `
107
109
  return body;
108
110
  }
109
111
 
110
- // The scheme the operation names, so a document that renames or re-types it stays right.
112
+ // The page only ever unlocks with the API key, so it wins wherever an operation takes it. A
113
+ // session-only operation samples the bearer it names, under its OWN variable: that route
114
+ // answers 403 oauth_required to an API key, so reusing the unlock secret would emit a
115
+ // command that cannot work.
111
116
  function authHeader(spec, operation) {
112
117
  var schemes = (spec.components || {}).securitySchemes || {};
113
118
  var requirements = operation.security || spec.security || [];
114
- var header = null;
119
+ var apiKey = null;
120
+ var bearer = null;
115
121
 
116
122
  requirements.forEach(function (requirement) {
117
123
  Object.keys(requirement).forEach(function (name) {
118
- if (header) return;
119
-
120
124
  var scheme = schemes[name] || {};
121
125
 
122
126
  if (scheme.type === 'apiKey' && scheme.in === 'header') {
123
- header = { name: scheme.name, prefix: '', secret: true };
127
+ apiKey = { name: scheme.name, prefix: '', variable: KEY_VARIABLE };
124
128
  } else if (scheme.type === 'http' && scheme.scheme === 'bearer') {
125
- header = { name: 'Authorization', prefix: 'Bearer ', secret: true };
129
+ bearer = { name: 'Authorization', prefix: 'Bearer ', variable: SESSION_VARIABLE };
126
130
  }
127
131
  });
128
132
  });
129
133
 
130
- return header || { name: KEY_HEADER, prefix: '', secret: true };
134
+ return apiKey || bearer || { name: KEY_HEADER, prefix: '', variable: KEY_VARIABLE };
131
135
  }
132
136
 
133
137
  /**
@@ -195,13 +199,13 @@ const SAMPLES_SCRIPT = `
195
199
  var lines = ['curl -X ' + method + ' ' + shellQuoted(url)];
196
200
 
197
201
  headers.forEach(function (header) {
198
- if (header.secret) {
202
+ if (header.variable) {
199
203
  var expanded =
200
204
  shellExpanding(header.name) +
201
205
  ': ' +
202
206
  shellExpanding(header.prefix) +
203
207
  '$' +
204
- KEY_VARIABLE;
208
+ header.variable;
205
209
 
206
210
  lines.push(' -H "' + expanded + '"');
207
211
 
@@ -224,10 +228,10 @@ const SAMPLES_SCRIPT = `
224
228
  ];
225
229
 
226
230
  headers.forEach(function (header) {
227
- var value = header.secret
231
+ var value = header.variable
228
232
  ? (header.prefix ? JSON.stringify(header.prefix) + ' + ' : '') +
229
233
  'process.env.' +
230
- KEY_VARIABLE
234
+ header.variable
231
235
  : JSON.stringify(header.value);
232
236
 
233
237
  lines.push(' ' + JSON.stringify(header.name) + ': ' + value + ',');
@@ -261,10 +265,14 @@ const SAMPLES_SCRIPT = `
261
265
  ];
262
266
 
263
267
  headers.forEach(function (header) {
264
- var read = "ENV.fetch('" + KEY_VARIABLE + "')";
265
- var value = header.secret
266
- ? (header.prefix ? '"' + header.prefix + '#{' + read + '}"' : read)
267
- : rubyQuoted(header.value);
268
+ if (!header.variable) {
269
+ lines.push('request[' + rubyQuoted(header.name) + '] = ' + rubyQuoted(header.value));
270
+
271
+ return;
272
+ }
273
+
274
+ var read = "ENV.fetch('" + header.variable + "')";
275
+ var value = header.prefix ? '"' + header.prefix + '#{' + read + '}"' : read;
268
276
 
269
277
  lines.push('request[' + rubyQuoted(header.name) + '] = ' + value);
270
278
  });
@@ -326,4 +334,4 @@ const SAMPLES_SCRIPT = `
326
334
  }
327
335
  `;
328
336
  exports.default = SAMPLES_SCRIPT;
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zYW1wbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvY3MvZG9jcy1zYW1wbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0VBQStEO0FBQy9ELHlFQUFrRTtBQUVsRSxpR0FBaUc7QUFDakcsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDO0FBQzlCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQUUvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxjQUFjLEdBQUc7MkJBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQ0FBYyxDQUFDO2dDQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLHFDQUFlLENBQUM7Z0NBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDOzZCQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FxU3hELENBQUM7QUFFRixrQkFBZSxjQUFjLENBQUMifQ==
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zYW1wbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvY3MvZG9jcy1zYW1wbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0VBQStEO0FBQy9ELHlFQUFrRTtBQUVsRSxpR0FBaUc7QUFDakcsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDO0FBQzlCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQUMvQixNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQUV2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxjQUFjLEdBQUc7MkJBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQ0FBYyxDQUFDO2dDQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLHFDQUFlLENBQUM7Z0NBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDOzZCQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztpQ0FDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EyU2hFLENBQUM7QUFFRixrQkFBZSxjQUFjLENBQUMifQ==
@@ -12,6 +12,10 @@ export declare function unsupportedActionResult(message?: string): BffHttpError;
12
12
  export declare function actionError(message?: string, details?: unknown): BffHttpError;
13
13
  export declare function openapiDisabled(message?: string): BffHttpError;
14
14
  export declare function forestIdentityNotAllowed(message?: string): BffHttpError;
15
+ export declare function oauthRequired(message?: string): BffHttpError;
16
+ export declare function upstreamError(status: number): BffHttpError;
17
+ export declare function upstreamUnreachable(): BffHttpError;
18
+ export declare function upstreamTimeout(): BffHttpError;
15
19
  export declare function permissionsUnavailable(retryAfter: number, message?: string): BffHttpError;
16
20
  export declare function actionRequiresApproval(message?: string, details?: unknown): BffHttpError;
17
21
  //# sourceMappingURL=bff-local-errors.d.ts.map
@@ -13,6 +13,10 @@ exports.unsupportedActionResult = unsupportedActionResult;
13
13
  exports.actionError = actionError;
14
14
  exports.openapiDisabled = openapiDisabled;
15
15
  exports.forestIdentityNotAllowed = forestIdentityNotAllowed;
16
+ exports.oauthRequired = oauthRequired;
17
+ exports.upstreamError = upstreamError;
18
+ exports.upstreamUnreachable = upstreamUnreachable;
19
+ exports.upstreamTimeout = upstreamTimeout;
16
20
  exports.permissionsUnavailable = permissionsUnavailable;
17
21
  exports.actionRequiresApproval = actionRequiresApproval;
18
22
  const bff_http_error_1 = require("./bff-http-error");
@@ -55,10 +59,24 @@ function openapiDisabled(message = 'The OpenAPI document is not served') {
55
59
  function forestIdentityNotAllowed(message = 'Forest identity not allowed') {
56
60
  return new bff_http_error_1.BffHttpError(403, 'forest_identity_not_allowed', message);
57
61
  }
62
+ function oauthRequired(message = 'This route requires an OAuth session') {
63
+ return new bff_http_error_1.BffHttpError(403, 'oauth_required', message);
64
+ }
65
+ const UPSTREAM_FALLBACK_STATUS = 502;
66
+ function upstreamError(status) {
67
+ const relayed = status >= 400 && status <= 599 ? status : UPSTREAM_FALLBACK_STATUS;
68
+ return new bff_http_error_1.BffHttpError(relayed, 'upstream_error', 'The Forest server failed to handle the request');
69
+ }
70
+ function upstreamUnreachable() {
71
+ return new bff_http_error_1.BffHttpError(502, 'network_error', 'The Forest server could not be reached');
72
+ }
73
+ function upstreamTimeout() {
74
+ return new bff_http_error_1.BffHttpError(504, 'upstream_timeout', 'The Forest server did not respond in time');
75
+ }
58
76
  function permissionsUnavailable(retryAfter, message = 'Permissions are unavailable') {
59
77
  return new bff_http_error_1.BffHttpError(503, 'permissions_unavailable', message, { retryAfter });
60
78
  }
61
79
  function actionRequiresApproval(message = 'This action requires an approval before it can run', details) {
62
80
  return new bff_http_error_1.BffHttpError(403, 'action_requires_approval', message, { details });
63
81
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmZmLWxvY2FsLWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL2JmZi1sb2NhbC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw4Q0FFQztBQUVELDBDQUVDO0FBRUQsc0NBRUM7QUFFRCxvREFFQztBQUVELGdEQUVDO0FBRUQsNENBRUM7QUFFRCx3Q0FFQztBQUVELG9DQUVDO0FBRUQsOENBRUM7QUFFRCwwREFFQztBQUVELGtDQUVDO0FBRUQsMENBRUM7QUFFRCw0REFFQztBQUVELHdEQUtDO0FBRUQsd0RBS0M7QUFsRUQscURBQWdEO0FBRWhELFNBQWdCLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxvQkFBb0I7SUFDOUQsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsT0FBTyxHQUFHLGtCQUFrQjtJQUMxRCxPQUFPLElBQUksNkJBQVksQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCO0lBQ3RELE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsT0FBTyxHQUFHLDJCQUEyQjtJQUN4RSxPQUFPLElBQUksNkJBQVksQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE9BQU8sR0FBRyx5QkFBeUI7SUFDcEUsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsdUJBQXVCO0lBQ2hFLE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxPQUFpQjtJQUMzRSxPQUFPLElBQUksNkJBQVksQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLE9BQU8sR0FBRyxrQ0FBa0M7SUFDdkUsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsT0FBTyxHQUFHLGlDQUFpQztJQUMzRSxPQUFPLElBQUksNkJBQVksQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLE9BQU8sR0FBRywyQkFBMkI7SUFDM0UsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxTQUFnQixXQUFXLENBQUMsT0FBTyxHQUFHLG1CQUFtQixFQUFFLE9BQWlCO0lBQzFFLE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE9BQU8sR0FBRyxvQ0FBb0M7SUFDNUUsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxPQUFPLEdBQUcsNkJBQTZCO0lBQzlFLE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLFVBQWtCLEVBQ2xCLE9BQU8sR0FBRyw2QkFBNkI7SUFFdkMsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLHlCQUF5QixFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxPQUFPLEdBQUcsb0RBQW9ELEVBQzlELE9BQWlCO0lBRWpCLE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ2pGLENBQUMifQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmZmLWxvY2FsLWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL2JmZi1sb2NhbC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw4Q0FFQztBQUVELDBDQUVDO0FBRUQsc0NBRUM7QUFFRCxvREFFQztBQUVELGdEQUVDO0FBRUQsNENBRUM7QUFFRCx3Q0FFQztBQUVELG9DQUVDO0FBRUQsOENBRUM7QUFFRCwwREFFQztBQUVELGtDQUVDO0FBRUQsMENBRUM7QUFFRCw0REFFQztBQUVELHNDQUVDO0FBSUQsc0NBUUM7QUFFRCxrREFFQztBQUVELDBDQUVDO0FBRUQsd0RBS0M7QUFFRCx3REFLQztBQTFGRCxxREFBZ0Q7QUFFaEQsU0FBZ0IsaUJBQWlCLENBQUMsT0FBTyxHQUFHLG9CQUFvQjtJQUM5RCxPQUFPLElBQUksNkJBQVksQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCO0lBQzFELE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0I7SUFDdEQsT0FBTyxJQUFJLDZCQUFZLENBQUMsR0FBRyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFPLEdBQUcsMkJBQTJCO0lBQ3hFLE9BQU8sSUFBSSw2QkFBWSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsT0FBTyxHQUFHLHlCQUF5QjtJQUNwRSxPQUFPLElBQUksNkJBQVksQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLEVBQUUs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
@@ -1,3 +1,4 @@
1
1
  declare const BODY_LIMIT = "16kb";
2
+ export declare const AI_BODY_LIMIT = "1mb";
2
3
  export default BODY_LIMIT;
3
4
  //# sourceMappingURL=body-limit.d.ts.map
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AI_BODY_LIMIT = void 0;
3
4
  const BODY_LIMIT = '16kb';
5
+ exports.AI_BODY_LIMIT = '1mb';
4
6
  exports.default = BODY_LIMIT;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS1saW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL2JvZHktbGltaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFFMUIsa0JBQWUsVUFBVSxDQUFDIn0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS1saW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odHRwL2JvZHktbGltaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBRWIsUUFBQSxhQUFhLEdBQUcsS0FBSyxDQUFDO0FBRW5DLGtCQUFlLFVBQVUsQ0FBQyJ9
@@ -1,7 +1,8 @@
1
1
  export declare class OAuthRequestError extends Error {
2
2
  readonly status: number;
3
3
  readonly type: string;
4
- constructor(status: number, type: string, message: string);
4
+ readonly cause?: unknown;
5
+ constructor(status: number, type: string, message: string, cause?: unknown);
5
6
  }
6
7
  export interface OAuthErrorBody {
7
8
  error: string;
@@ -15,5 +16,5 @@ export declare function unsupportedGrantType(message: string): OAuthRequestError
15
16
  export declare function forestIdentityNotAllowed(message: string): OAuthRequestError;
16
17
  export declare function sessionExpired(message: string): OAuthRequestError;
17
18
  export declare function sessionInvalidated(message: string): OAuthRequestError;
18
- export declare function serverError(message: string): OAuthRequestError;
19
+ export declare function serverError(message: string, cause?: unknown): OAuthRequestError;
19
20
  //# sourceMappingURL=oauth-error.d.ts.map
@@ -11,11 +11,12 @@ exports.sessionExpired = sessionExpired;
11
11
  exports.sessionInvalidated = sessionInvalidated;
12
12
  exports.serverError = serverError;
13
13
  class OAuthRequestError extends Error {
14
- constructor(status, type, message) {
14
+ constructor(status, type, message, cause) {
15
15
  super(message);
16
16
  this.name = 'OAuthRequestError';
17
17
  this.status = status;
18
18
  this.type = type;
19
+ this.cause = cause;
19
20
  }
20
21
  }
21
22
  exports.OAuthRequestError = OAuthRequestError;
@@ -43,7 +44,7 @@ function sessionExpired(message) {
43
44
  function sessionInvalidated(message) {
44
45
  return new OAuthRequestError(401, 'session_invalidated', message);
45
46
  }
46
- function serverError(message) {
47
- return new OAuthRequestError(502, 'server_error', message);
47
+ function serverError(message, cause) {
48
+ return new OAuthRequestError(502, 'server_error', message, cause);
48
49
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb2F1dGgvb2F1dGgtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLGtDQUVDO0FBRUQsd0NBRUM7QUFFRCxzQ0FFQztBQUVELG9DQUVDO0FBRUQsb0RBRUM7QUFFRCw0REFFQztBQUVELHdDQUVDO0FBRUQsZ0RBRUM7QUFFRCxrQ0FFQztBQW5ERCxNQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFJMUMsWUFBWSxNQUFjLEVBQUUsSUFBWSxFQUFFLE9BQWU7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFWRCw4Q0FVQztBQU9ELFNBQWdCLFdBQVcsQ0FBQyxLQUF3QjtJQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsT0FBZTtJQUMzQyxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsT0FBZTtJQUMxQyxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsT0FBZTtJQUNsRCxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxPQUFlO0lBQ3RELE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE9BQWU7SUFDaEQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE9BQWU7SUFDekMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0QsQ0FBQyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb2F1dGgvb2F1dGgtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUJBLGtDQUVDO0FBRUQsd0NBRUM7QUFFRCxzQ0FFQztBQUVELG9DQUVDO0FBRUQsb0RBRUM7QUFFRCw0REFFQztBQUVELHdDQUVDO0FBRUQsZ0RBRUM7QUFFRCxrQ0FFQztBQXJERCxNQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFLMUMsWUFBWSxNQUFjLEVBQUUsSUFBWSxFQUFFLE9BQWUsRUFBRSxLQUFlO1FBQ3hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBWkQsOENBWUM7QUFPRCxTQUFnQixXQUFXLENBQUMsS0FBd0I7SUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLE9BQWU7SUFDM0MsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLE9BQWU7SUFDMUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLE9BQWU7SUFDbEQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsT0FBZTtJQUN0RCxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLDZCQUE2QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFlO0lBQ2hELE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxPQUFlLEVBQUUsS0FBZTtJQUMxRCxPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEUsQ0FBQyJ9
@@ -26,7 +26,7 @@ async function refreshAndPersist(sid, store, serverClient) {
26
26
  if (error instanceof forest_server_client_1.OAuthExchangeError && CLIENT_ERROR_CODES.has(error.error)) {
27
27
  throw (0, oauth_error_1.sessionExpired)('The Forest server rejected the refresh token');
28
28
  }
29
- throw (0, oauth_error_1.serverError)('Failed to reach the Forest server to refresh the session');
29
+ throw (0, oauth_error_1.serverError)('Failed to reach the Forest server to refresh the session', error);
30
30
  }
31
31
  if (!store.get(sid)) {
32
32
  throw (0, oauth_error_1.sessionExpired)('Session expired during token refresh');
@@ -54,4 +54,4 @@ async function ensureFreshServerAccess({ sid, store, serverClient, }) {
54
54
  inFlightRefreshesBySid.set(sid, refresh);
55
55
  return refresh;
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1saWZlY3ljbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb2F1dGgvc2Vzc2lvbi1saWZlY3ljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUEyREEsMENBd0JDO0FBaEZELGdFQUF3QztBQUV4QyxpRUFBNEQ7QUFDNUQsK0NBQTREO0FBUTVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBRTNGLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7QUFFbEUsU0FBUyxpQkFBaUIsQ0FBQyxlQUF1QjtJQUNoRCxNQUFNLE9BQU8sR0FBRyxzQkFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQTRCLENBQUM7SUFFaEYsT0FBTyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixHQUFXLEVBQ1gsS0FBbUIsRUFDbkIsWUFBZ0M7SUFFaEMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXRELElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBQSw0QkFBYyxFQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksT0FBc0UsQ0FBQztJQUUzRSxJQUFJLENBQUM7UUFDSCxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSx5Q0FBa0IsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0UsTUFBTSxJQUFBLDRCQUFjLEVBQUMsOENBQThDLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsTUFBTSxJQUFBLHlCQUFXLEVBQUMsMERBQTBELENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUEsNEJBQWMsRUFBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1FBQzFCLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtRQUN4QyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO0tBQzNDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQztBQUNqQyxDQUFDO0FBRWMsS0FBSyxVQUFVLHVCQUF1QixDQUFDLEVBQ3BELEdBQUcsRUFDSCxLQUFLLEVBQ0wsWUFBWSxHQUNrQjtJQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRS9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBQSw0QkFBYyxFQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0UsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsSUFBSSxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFFOUIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ3ZFLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNILHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1saWZlY3ljbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb2F1dGgvc2Vzc2lvbi1saWZlY3ljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUEyREEsMENBd0JDO0FBaEZELGdFQUF3QztBQUV4QyxpRUFBNEQ7QUFDNUQsK0NBQTREO0FBUTVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBRTNGLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7QUFFbEUsU0FBUyxpQkFBaUIsQ0FBQyxlQUF1QjtJQUNoRCxNQUFNLE9BQU8sR0FBRyxzQkFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQTRCLENBQUM7SUFFaEYsT0FBTyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixHQUFXLEVBQ1gsS0FBbUIsRUFDbkIsWUFBZ0M7SUFFaEMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXRELElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBQSw0QkFBYyxFQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksT0FBc0UsQ0FBQztJQUUzRSxJQUFJLENBQUM7UUFDSCxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSx5Q0FBa0IsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0UsTUFBTSxJQUFBLDRCQUFjLEVBQUMsOENBQThDLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsTUFBTSxJQUFBLHlCQUFXLEVBQUMsMERBQTBELEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFBLDRCQUFjLEVBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtRQUMxQixlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWU7UUFDeEMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtLQUMzQyxDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUM7QUFDakMsQ0FBQztBQUVjLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxFQUNwRCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFlBQVksR0FDa0I7SUFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUEsNEJBQWMsRUFBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQy9FLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELElBQUksUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBRTlCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN2RSxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDSCxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMifQ==
@@ -2,6 +2,10 @@ import type { Unfolding } from './unfolding';
2
2
  import type { OpenAPIObject } from 'openapi3-ts/oas31';
3
3
  export declare const OPENAPI_VERSION = "3.1.0";
4
4
  export declare const ROUTE_PREFIX = "/agent/v1";
5
- export declare function generateOpenApiDocument(version: string, unfolding?: Unfolding): OpenAPIObject;
5
+ export interface GenerateOpenApiDocumentOptions {
6
+ unfolding?: Unfolding;
7
+ hasAiQueryRoute?: boolean;
8
+ }
9
+ export declare function generateOpenApiDocument(version: string, { unfolding, hasAiQueryRoute }?: GenerateOpenApiDocumentOptions): OpenAPIObject;
6
10
  export declare function serializeOpenApi(document: OpenAPIObject): string;
7
11
  //# sourceMappingURL=openapi-document.d.ts.map