integrate-sdk 0.9.5-dev.0 → 0.9.9-dev.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.
Files changed (52) hide show
  1. package/dist/adapters/auto-routes.js +129 -10
  2. package/dist/adapters/index.js +129 -10
  3. package/dist/adapters/nextjs.js +129 -10
  4. package/dist/adapters/node.js +129 -10
  5. package/dist/adapters/svelte-kit.js +129 -10
  6. package/dist/adapters/tanstack-start.js +129 -10
  7. package/dist/ai/anthropic.d.ts +2 -2
  8. package/dist/ai/anthropic.d.ts.map +1 -1
  9. package/dist/ai/anthropic.js +64 -2
  10. package/dist/ai/google.d.ts +2 -2
  11. package/dist/ai/google.d.ts.map +1 -1
  12. package/dist/ai/google.js +64 -2
  13. package/dist/ai/index.js +103 -8
  14. package/dist/ai/openai.d.ts +2 -2
  15. package/dist/ai/openai.d.ts.map +1 -1
  16. package/dist/ai/openai.js +64 -2
  17. package/dist/ai/vercel-ai.d.ts +2 -2
  18. package/dist/ai/vercel-ai.d.ts.map +1 -1
  19. package/dist/ai/vercel-ai.js +64 -2
  20. package/dist/code-mode/executor.d.ts +5 -0
  21. package/dist/code-mode/executor.d.ts.map +1 -1
  22. package/dist/code-mode/executor.js +35 -0
  23. package/dist/code-mode/index.d.ts +1 -1
  24. package/dist/code-mode/index.d.ts.map +1 -1
  25. package/dist/code-mode/index.js +64 -0
  26. package/dist/code-mode/runtime-stub.d.ts +1 -1
  27. package/dist/code-mode/runtime-stub.d.ts.map +1 -1
  28. package/dist/code-mode/runtime-stub.js +2 -0
  29. package/dist/code-mode/tool-builder.d.ts +17 -0
  30. package/dist/code-mode/tool-builder.d.ts.map +1 -1
  31. package/dist/code-mode/tool-builder.js +67 -0
  32. package/dist/index.js +129 -10
  33. package/dist/oauth.js +129 -10
  34. package/dist/server.js +129 -10
  35. package/dist/src/ai/anthropic.d.ts +2 -2
  36. package/dist/src/ai/anthropic.d.ts.map +1 -1
  37. package/dist/src/ai/google.d.ts +2 -2
  38. package/dist/src/ai/google.d.ts.map +1 -1
  39. package/dist/src/ai/openai.d.ts +2 -2
  40. package/dist/src/ai/openai.d.ts.map +1 -1
  41. package/dist/src/ai/vercel-ai.d.ts +2 -2
  42. package/dist/src/ai/vercel-ai.d.ts.map +1 -1
  43. package/dist/src/code-mode/executor.d.ts +5 -0
  44. package/dist/src/code-mode/executor.d.ts.map +1 -1
  45. package/dist/src/code-mode/index.d.ts +1 -1
  46. package/dist/src/code-mode/index.d.ts.map +1 -1
  47. package/dist/src/code-mode/runtime-stub.d.ts +1 -1
  48. package/dist/src/code-mode/runtime-stub.d.ts.map +1 -1
  49. package/dist/src/code-mode/tool-builder.d.ts +17 -0
  50. package/dist/src/code-mode/tool-builder.d.ts.map +1 -1
  51. package/dist/src/server.d.ts.map +1 -1
  52. package/package.json +3 -6
package/dist/ai/google.js CHANGED
@@ -4621,6 +4621,7 @@ function pascalCase(id) {
4621
4621
  var RUNTIME_STUB_SOURCE = `// runtime.mjs — generated by integrate-sdk code mode
4622
4622
  const MCP_URL = process.env.INTEGRATE_MCP_URL;
4623
4623
  const SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;
4624
+ const API_KEY = process.env.INTEGRATE_API_KEY || '';
4624
4625
  const PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';
4625
4626
  const INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';
4626
4627
  const CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';
@@ -4639,6 +4640,7 @@ async function callTool(toolName, args) {
4639
4640
  'x-integrate-code-mode': '1',
4640
4641
  };
4641
4642
  if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;
4643
+ if (API_KEY) headers['x-integrate-api-key'] = API_KEY;
4642
4644
  if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;
4643
4645
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4644
4646
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
@@ -4689,6 +4691,29 @@ export { callTool };
4689
4691
 
4690
4692
  // ../code-mode/executor.ts
4691
4693
  var sandboxFactoryOverride = null;
4694
+ var _sandboxAvailableCache = null;
4695
+ var _sandboxForcedUnavailableForTests = false;
4696
+ async function isSandboxAvailable() {
4697
+ if (_sandboxAvailableCache !== null)
4698
+ return _sandboxAvailableCache;
4699
+ if (_sandboxForcedUnavailableForTests) {
4700
+ _sandboxAvailableCache = false;
4701
+ return false;
4702
+ }
4703
+ if (sandboxFactoryOverride) {
4704
+ _sandboxAvailableCache = true;
4705
+ return true;
4706
+ }
4707
+ try {
4708
+ const dynamicImport = new Function("specifier", "return import(specifier)");
4709
+ await dynamicImport("@" + "vercel/sandbox");
4710
+ _sandboxAvailableCache = true;
4711
+ return true;
4712
+ } catch {
4713
+ _sandboxAvailableCache = false;
4714
+ return false;
4715
+ }
4716
+ }
4692
4717
  async function loadSandboxFactory() {
4693
4718
  if (sandboxFactoryOverride)
4694
4719
  return sandboxFactoryOverride;
@@ -4775,6 +4800,8 @@ async function executeSandboxCode(options) {
4775
4800
  const env = {
4776
4801
  INTEGRATE_MCP_URL: options.mcpUrl
4777
4802
  };
4803
+ if (options.apiKey)
4804
+ env.INTEGRATE_API_KEY = options.apiKey;
4778
4805
  if (options.sessionToken)
4779
4806
  env.INTEGRATE_SESSION_TOKEN = options.sessionToken;
4780
4807
  if (options.providerTokens && Object.keys(options.providerTokens).length > 0) {
@@ -4866,6 +4893,28 @@ function resolveCodeModeClientConfig(client) {
4866
4893
  const oauthConfig = client.__oauthConfig;
4867
4894
  return oauthConfig?.codeMode ?? {};
4868
4895
  }
4896
+ async function diagnoseCodeMode(client) {
4897
+ if (!await isSandboxAvailable()) {
4898
+ return { available: false, reason: "sandbox-missing" };
4899
+ }
4900
+ const serverConfig = resolveCodeModeClientConfig(client);
4901
+ const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4902
+ if (!publicUrl) {
4903
+ return { available: false, reason: "no-public-url" };
4904
+ }
4905
+ return { available: true };
4906
+ }
4907
+ var CODE_MODE_UNAVAILABLE_MESSAGES = {
4908
+ "sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
4909
+ "no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
4910
+ };
4911
+ var warnedCodeModeReasons = new Set;
4912
+ function warnCodeModeFallback(reason) {
4913
+ if (warnedCodeModeReasons.has(reason))
4914
+ return;
4915
+ warnedCodeModeReasons.add(reason);
4916
+ console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
4917
+ }
4869
4918
  function buildCodeModeTool(client, options) {
4870
4919
  const { tools, providerTokens, context, integrationIds } = options;
4871
4920
  const generated = generateCodeModeTypes(tools);
@@ -4878,6 +4927,7 @@ ${generated.source}
4878
4927
  \`\`\``;
4879
4928
  const execute = async ({ code }) => {
4880
4929
  const publicUrl = sandboxOverrides.publicUrl ?? serverCodeModeConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4930
+ const apiKey = client.__oauthConfig?.apiKey;
4881
4931
  if (!publicUrl) {
4882
4932
  return {
4883
4933
  success: false,
@@ -4892,6 +4942,7 @@ ${generated.source}
4892
4942
  return executeSandboxCode({
4893
4943
  code,
4894
4944
  mcpUrl,
4945
+ apiKey,
4895
4946
  providerTokens,
4896
4947
  context,
4897
4948
  integrationsHeader: integrationIds && integrationIds.length > 0 ? integrationIds.join(",") : undefined,
@@ -5043,9 +5094,20 @@ async function getGoogleTools(client, options) {
5043
5094
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
5044
5095
  await ensureClientConnected(client);
5045
5096
  const mcpTools = await client.getEnabledToolsAsync();
5046
- const mode = options?.mode ?? "code";
5097
+ let effectiveMode;
5098
+ if (options?.mode !== undefined) {
5099
+ effectiveMode = options.mode;
5100
+ } else {
5101
+ const diagnosis = await diagnoseCodeMode(client);
5102
+ if (diagnosis.available) {
5103
+ effectiveMode = "code";
5104
+ } else {
5105
+ warnCodeModeFallback(diagnosis.reason);
5106
+ effectiveMode = "tools";
5107
+ }
5108
+ }
5047
5109
  let googleTools;
5048
- if (mode === "code") {
5110
+ if (effectiveMode === "code") {
5049
5111
  const TypeEnum = await getGoogleType();
5050
5112
  const codeTool = buildCodeModeTool(client, {
5051
5113
  tools: mcpTools,
package/dist/ai/index.js CHANGED
@@ -4621,6 +4621,7 @@ function pascalCase(id) {
4621
4621
  var RUNTIME_STUB_SOURCE = `// runtime.mjs — generated by integrate-sdk code mode
4622
4622
  const MCP_URL = process.env.INTEGRATE_MCP_URL;
4623
4623
  const SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;
4624
+ const API_KEY = process.env.INTEGRATE_API_KEY || '';
4624
4625
  const PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';
4625
4626
  const INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';
4626
4627
  const CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';
@@ -4639,6 +4640,7 @@ async function callTool(toolName, args) {
4639
4640
  'x-integrate-code-mode': '1',
4640
4641
  };
4641
4642
  if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;
4643
+ if (API_KEY) headers['x-integrate-api-key'] = API_KEY;
4642
4644
  if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;
4643
4645
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4644
4646
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
@@ -4689,6 +4691,29 @@ export { callTool };
4689
4691
 
4690
4692
  // ../code-mode/executor.ts
4691
4693
  var sandboxFactoryOverride = null;
4694
+ var _sandboxAvailableCache = null;
4695
+ var _sandboxForcedUnavailableForTests = false;
4696
+ async function isSandboxAvailable() {
4697
+ if (_sandboxAvailableCache !== null)
4698
+ return _sandboxAvailableCache;
4699
+ if (_sandboxForcedUnavailableForTests) {
4700
+ _sandboxAvailableCache = false;
4701
+ return false;
4702
+ }
4703
+ if (sandboxFactoryOverride) {
4704
+ _sandboxAvailableCache = true;
4705
+ return true;
4706
+ }
4707
+ try {
4708
+ const dynamicImport = new Function("specifier", "return import(specifier)");
4709
+ await dynamicImport("@" + "vercel/sandbox");
4710
+ _sandboxAvailableCache = true;
4711
+ return true;
4712
+ } catch {
4713
+ _sandboxAvailableCache = false;
4714
+ return false;
4715
+ }
4716
+ }
4692
4717
  async function loadSandboxFactory() {
4693
4718
  if (sandboxFactoryOverride)
4694
4719
  return sandboxFactoryOverride;
@@ -4775,6 +4800,8 @@ async function executeSandboxCode(options) {
4775
4800
  const env = {
4776
4801
  INTEGRATE_MCP_URL: options.mcpUrl
4777
4802
  };
4803
+ if (options.apiKey)
4804
+ env.INTEGRATE_API_KEY = options.apiKey;
4778
4805
  if (options.sessionToken)
4779
4806
  env.INTEGRATE_SESSION_TOKEN = options.sessionToken;
4780
4807
  if (options.providerTokens && Object.keys(options.providerTokens).length > 0) {
@@ -4866,6 +4893,28 @@ function resolveCodeModeClientConfig(client) {
4866
4893
  const oauthConfig = client.__oauthConfig;
4867
4894
  return oauthConfig?.codeMode ?? {};
4868
4895
  }
4896
+ async function diagnoseCodeMode(client) {
4897
+ if (!await isSandboxAvailable()) {
4898
+ return { available: false, reason: "sandbox-missing" };
4899
+ }
4900
+ const serverConfig = resolveCodeModeClientConfig(client);
4901
+ const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4902
+ if (!publicUrl) {
4903
+ return { available: false, reason: "no-public-url" };
4904
+ }
4905
+ return { available: true };
4906
+ }
4907
+ var CODE_MODE_UNAVAILABLE_MESSAGES = {
4908
+ "sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
4909
+ "no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
4910
+ };
4911
+ var warnedCodeModeReasons = new Set;
4912
+ function warnCodeModeFallback(reason) {
4913
+ if (warnedCodeModeReasons.has(reason))
4914
+ return;
4915
+ warnedCodeModeReasons.add(reason);
4916
+ console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
4917
+ }
4869
4918
  function buildCodeModeTool(client, options) {
4870
4919
  const { tools, providerTokens, context, integrationIds } = options;
4871
4920
  const generated = generateCodeModeTypes(tools);
@@ -4878,6 +4927,7 @@ ${generated.source}
4878
4927
  \`\`\``;
4879
4928
  const execute = async ({ code }) => {
4880
4929
  const publicUrl = sandboxOverrides.publicUrl ?? serverCodeModeConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4930
+ const apiKey = client.__oauthConfig?.apiKey;
4881
4931
  if (!publicUrl) {
4882
4932
  return {
4883
4933
  success: false,
@@ -4892,6 +4942,7 @@ ${generated.source}
4892
4942
  return executeSandboxCode({
4893
4943
  code,
4894
4944
  mcpUrl,
4945
+ apiKey,
4895
4946
  providerTokens,
4896
4947
  context,
4897
4948
  integrationsHeader: integrationIds && integrationIds.length > 0 ? integrationIds.join(",") : undefined,
@@ -4989,8 +5040,19 @@ async function getAnthropicTools(client, options) {
4989
5040
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4990
5041
  await ensureClientConnected(client);
4991
5042
  const mcpTools = await client.getEnabledToolsAsync();
4992
- const mode = options?.mode ?? "code";
4993
- const anthropicTools = mode === "code" ? (() => {
5043
+ let effectiveMode;
5044
+ if (options?.mode !== undefined) {
5045
+ effectiveMode = options.mode;
5046
+ } else {
5047
+ const diagnosis = await diagnoseCodeMode(client);
5048
+ if (diagnosis.available) {
5049
+ effectiveMode = "code";
5050
+ } else {
5051
+ warnCodeModeFallback(diagnosis.reason);
5052
+ effectiveMode = "tools";
5053
+ }
5054
+ }
5055
+ const anthropicTools = effectiveMode === "code" ? (() => {
4994
5056
  const codeTool = buildCodeModeTool(client, {
4995
5057
  tools: mcpTools,
4996
5058
  providerTokens,
@@ -5173,9 +5235,20 @@ async function getGoogleTools(client, options) {
5173
5235
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
5174
5236
  await ensureClientConnected(client);
5175
5237
  const mcpTools = await client.getEnabledToolsAsync();
5176
- const mode = options?.mode ?? "code";
5238
+ let effectiveMode;
5239
+ if (options?.mode !== undefined) {
5240
+ effectiveMode = options.mode;
5241
+ } else {
5242
+ const diagnosis = await diagnoseCodeMode(client);
5243
+ if (diagnosis.available) {
5244
+ effectiveMode = "code";
5245
+ } else {
5246
+ warnCodeModeFallback(diagnosis.reason);
5247
+ effectiveMode = "tools";
5248
+ }
5249
+ }
5177
5250
  let googleTools;
5178
- if (mode === "code") {
5251
+ if (effectiveMode === "code") {
5179
5252
  const TypeEnum = await getGoogleType();
5180
5253
  const codeTool = buildCodeModeTool(client, {
5181
5254
  tools: mcpTools,
@@ -5299,8 +5372,19 @@ async function getVercelAITools(client, options) {
5299
5372
  await ensureClientConnected(client);
5300
5373
  const mcpTools = await client.getEnabledToolsAsync();
5301
5374
  const vercelTools = {};
5302
- const mode = options?.mode ?? "code";
5303
- if (mode === "code") {
5375
+ let effectiveMode;
5376
+ if (options?.mode !== undefined) {
5377
+ effectiveMode = options.mode;
5378
+ } else {
5379
+ const diagnosis = await diagnoseCodeMode(client);
5380
+ if (diagnosis.available) {
5381
+ effectiveMode = "code";
5382
+ } else {
5383
+ warnCodeModeFallback(diagnosis.reason);
5384
+ effectiveMode = "tools";
5385
+ }
5386
+ }
5387
+ if (effectiveMode === "code") {
5304
5388
  const codeTool = buildCodeModeTool(client, {
5305
5389
  tools: mcpTools,
5306
5390
  providerTokens,
@@ -5349,8 +5433,19 @@ async function getOpenAITools(client, options) {
5349
5433
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
5350
5434
  await ensureClientConnected(client);
5351
5435
  const mcpTools = await client.getEnabledToolsAsync();
5352
- const mode = options?.mode ?? "code";
5353
- const openaiTools = mode === "code" ? (() => {
5436
+ let effectiveMode;
5437
+ if (options?.mode !== undefined) {
5438
+ effectiveMode = options.mode;
5439
+ } else {
5440
+ const diagnosis = await diagnoseCodeMode(client);
5441
+ if (diagnosis.available) {
5442
+ effectiveMode = "code";
5443
+ } else {
5444
+ warnCodeModeFallback(diagnosis.reason);
5445
+ effectiveMode = "tools";
5446
+ }
5447
+ }
5448
+ const openaiTools = effectiveMode === "code" ? (() => {
5354
5449
  const codeTool = buildCodeModeTool(client, {
5355
5450
  tools: mcpTools,
5356
5451
  providerTokens,
@@ -34,12 +34,12 @@ export interface OpenAIToolsOptions extends AIToolsOptions {
34
34
  /**
35
35
  * How to expose MCP tools to the model.
36
36
  *
37
- * - `'code'` (default): Returns a single `execute_code` tool backed by a
37
+ * - `'code'`: Returns a single `execute_code` tool backed by a
38
38
  * Vercel Sandbox. The model writes TypeScript that calls the typed
39
39
  * `client.<integration>.<method>()` API and chains operations in one round-trip.
40
40
  * - `'tools'`: Legacy behavior — one OpenAI function tool per MCP tool.
41
41
  *
42
- * @default 'code'
42
+ * @default auto-detects `'code'` when sandbox + public URL are available, otherwise `'tools'`
43
43
  */
44
44
  mode?: 'code' | 'tools';
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/ai/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAgEvB;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,EAChE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyB3H"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/ai/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AASjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CA2EvB;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,EAChE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyB3H"}
package/dist/ai/openai.js CHANGED
@@ -4621,6 +4621,7 @@ function pascalCase(id) {
4621
4621
  var RUNTIME_STUB_SOURCE = `// runtime.mjs — generated by integrate-sdk code mode
4622
4622
  const MCP_URL = process.env.INTEGRATE_MCP_URL;
4623
4623
  const SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;
4624
+ const API_KEY = process.env.INTEGRATE_API_KEY || '';
4624
4625
  const PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';
4625
4626
  const INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';
4626
4627
  const CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';
@@ -4639,6 +4640,7 @@ async function callTool(toolName, args) {
4639
4640
  'x-integrate-code-mode': '1',
4640
4641
  };
4641
4642
  if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;
4643
+ if (API_KEY) headers['x-integrate-api-key'] = API_KEY;
4642
4644
  if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;
4643
4645
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4644
4646
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
@@ -4689,6 +4691,29 @@ export { callTool };
4689
4691
 
4690
4692
  // ../code-mode/executor.ts
4691
4693
  var sandboxFactoryOverride = null;
4694
+ var _sandboxAvailableCache = null;
4695
+ var _sandboxForcedUnavailableForTests = false;
4696
+ async function isSandboxAvailable() {
4697
+ if (_sandboxAvailableCache !== null)
4698
+ return _sandboxAvailableCache;
4699
+ if (_sandboxForcedUnavailableForTests) {
4700
+ _sandboxAvailableCache = false;
4701
+ return false;
4702
+ }
4703
+ if (sandboxFactoryOverride) {
4704
+ _sandboxAvailableCache = true;
4705
+ return true;
4706
+ }
4707
+ try {
4708
+ const dynamicImport = new Function("specifier", "return import(specifier)");
4709
+ await dynamicImport("@" + "vercel/sandbox");
4710
+ _sandboxAvailableCache = true;
4711
+ return true;
4712
+ } catch {
4713
+ _sandboxAvailableCache = false;
4714
+ return false;
4715
+ }
4716
+ }
4692
4717
  async function loadSandboxFactory() {
4693
4718
  if (sandboxFactoryOverride)
4694
4719
  return sandboxFactoryOverride;
@@ -4775,6 +4800,8 @@ async function executeSandboxCode(options) {
4775
4800
  const env = {
4776
4801
  INTEGRATE_MCP_URL: options.mcpUrl
4777
4802
  };
4803
+ if (options.apiKey)
4804
+ env.INTEGRATE_API_KEY = options.apiKey;
4778
4805
  if (options.sessionToken)
4779
4806
  env.INTEGRATE_SESSION_TOKEN = options.sessionToken;
4780
4807
  if (options.providerTokens && Object.keys(options.providerTokens).length > 0) {
@@ -4866,6 +4893,28 @@ function resolveCodeModeClientConfig(client) {
4866
4893
  const oauthConfig = client.__oauthConfig;
4867
4894
  return oauthConfig?.codeMode ?? {};
4868
4895
  }
4896
+ async function diagnoseCodeMode(client) {
4897
+ if (!await isSandboxAvailable()) {
4898
+ return { available: false, reason: "sandbox-missing" };
4899
+ }
4900
+ const serverConfig = resolveCodeModeClientConfig(client);
4901
+ const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4902
+ if (!publicUrl) {
4903
+ return { available: false, reason: "no-public-url" };
4904
+ }
4905
+ return { available: true };
4906
+ }
4907
+ var CODE_MODE_UNAVAILABLE_MESSAGES = {
4908
+ "sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
4909
+ "no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
4910
+ };
4911
+ var warnedCodeModeReasons = new Set;
4912
+ function warnCodeModeFallback(reason) {
4913
+ if (warnedCodeModeReasons.has(reason))
4914
+ return;
4915
+ warnedCodeModeReasons.add(reason);
4916
+ console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
4917
+ }
4869
4918
  function buildCodeModeTool(client, options) {
4870
4919
  const { tools, providerTokens, context, integrationIds } = options;
4871
4920
  const generated = generateCodeModeTypes(tools);
@@ -4878,6 +4927,7 @@ ${generated.source}
4878
4927
  \`\`\``;
4879
4928
  const execute = async ({ code }) => {
4880
4929
  const publicUrl = sandboxOverrides.publicUrl ?? serverCodeModeConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4930
+ const apiKey = client.__oauthConfig?.apiKey;
4881
4931
  if (!publicUrl) {
4882
4932
  return {
4883
4933
  success: false,
@@ -4892,6 +4942,7 @@ ${generated.source}
4892
4942
  return executeSandboxCode({
4893
4943
  code,
4894
4944
  mcpUrl,
4945
+ apiKey,
4895
4946
  providerTokens,
4896
4947
  context,
4897
4948
  integrationsHeader: integrationIds && integrationIds.length > 0 ? integrationIds.join(",") : undefined,
@@ -4941,8 +4992,19 @@ async function getOpenAITools(client, options) {
4941
4992
  const finalOptions = providerTokens ? { ...options, providerTokens } : options;
4942
4993
  await ensureClientConnected(client);
4943
4994
  const mcpTools = await client.getEnabledToolsAsync();
4944
- const mode = options?.mode ?? "code";
4945
- const openaiTools = mode === "code" ? (() => {
4995
+ let effectiveMode;
4996
+ if (options?.mode !== undefined) {
4997
+ effectiveMode = options.mode;
4998
+ } else {
4999
+ const diagnosis = await diagnoseCodeMode(client);
5000
+ if (diagnosis.available) {
5001
+ effectiveMode = "code";
5002
+ } else {
5003
+ warnCodeModeFallback(diagnosis.reason);
5004
+ effectiveMode = "tools";
5005
+ }
5006
+ }
5007
+ const openaiTools = effectiveMode === "code" ? (() => {
4946
5008
  const codeTool = buildCodeModeTool(client, {
4947
5009
  tools: mcpTools,
4948
5010
  providerTokens,
@@ -25,14 +25,14 @@ export interface VercelAIToolsOptions extends AIToolsOptions {
25
25
  /**
26
26
  * How to expose MCP tools to the model.
27
27
  *
28
- * - `'code'` (default): Returns a single `execute_code` tool. The model writes
28
+ * - `'code'`: Returns a single `execute_code` tool. The model writes
29
29
  * a TypeScript snippet that calls the typed `client.<integration>.<method>()`
30
30
  * API; the snippet runs in an isolated Vercel Sandbox and calls back into
31
31
  * `/api/integrate/mcp`. Chains multiple operations in one round-trip.
32
32
  * - `'tools'`: Legacy behavior — returns one AI tool per MCP tool. Use this
33
33
  * if you can't run `@vercel/sandbox` or need the model to see every tool.
34
34
  *
35
- * @default 'code'
35
+ * @default auto-detects `'code'` when sandbox + public URL are available, otherwise `'tools'`
36
36
  */
37
37
  mode?: 'code' | 'tools';
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../../src/ai/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,gCAuD/B"}
1
+ {"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../../src/ai/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AASpB;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,gCAkE/B"}
@@ -4621,6 +4621,7 @@ function pascalCase(id) {
4621
4621
  var RUNTIME_STUB_SOURCE = `// runtime.mjs — generated by integrate-sdk code mode
4622
4622
  const MCP_URL = process.env.INTEGRATE_MCP_URL;
4623
4623
  const SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;
4624
+ const API_KEY = process.env.INTEGRATE_API_KEY || '';
4624
4625
  const PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';
4625
4626
  const INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';
4626
4627
  const CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';
@@ -4639,6 +4640,7 @@ async function callTool(toolName, args) {
4639
4640
  'x-integrate-code-mode': '1',
4640
4641
  };
4641
4642
  if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;
4643
+ if (API_KEY) headers['x-integrate-api-key'] = API_KEY;
4642
4644
  if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;
4643
4645
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4644
4646
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
@@ -4689,6 +4691,29 @@ export { callTool };
4689
4691
 
4690
4692
  // ../code-mode/executor.ts
4691
4693
  var sandboxFactoryOverride = null;
4694
+ var _sandboxAvailableCache = null;
4695
+ var _sandboxForcedUnavailableForTests = false;
4696
+ async function isSandboxAvailable() {
4697
+ if (_sandboxAvailableCache !== null)
4698
+ return _sandboxAvailableCache;
4699
+ if (_sandboxForcedUnavailableForTests) {
4700
+ _sandboxAvailableCache = false;
4701
+ return false;
4702
+ }
4703
+ if (sandboxFactoryOverride) {
4704
+ _sandboxAvailableCache = true;
4705
+ return true;
4706
+ }
4707
+ try {
4708
+ const dynamicImport = new Function("specifier", "return import(specifier)");
4709
+ await dynamicImport("@" + "vercel/sandbox");
4710
+ _sandboxAvailableCache = true;
4711
+ return true;
4712
+ } catch {
4713
+ _sandboxAvailableCache = false;
4714
+ return false;
4715
+ }
4716
+ }
4692
4717
  async function loadSandboxFactory() {
4693
4718
  if (sandboxFactoryOverride)
4694
4719
  return sandboxFactoryOverride;
@@ -4775,6 +4800,8 @@ async function executeSandboxCode(options) {
4775
4800
  const env = {
4776
4801
  INTEGRATE_MCP_URL: options.mcpUrl
4777
4802
  };
4803
+ if (options.apiKey)
4804
+ env.INTEGRATE_API_KEY = options.apiKey;
4778
4805
  if (options.sessionToken)
4779
4806
  env.INTEGRATE_SESSION_TOKEN = options.sessionToken;
4780
4807
  if (options.providerTokens && Object.keys(options.providerTokens).length > 0) {
@@ -4866,6 +4893,28 @@ function resolveCodeModeClientConfig(client) {
4866
4893
  const oauthConfig = client.__oauthConfig;
4867
4894
  return oauthConfig?.codeMode ?? {};
4868
4895
  }
4896
+ async function diagnoseCodeMode(client) {
4897
+ if (!await isSandboxAvailable()) {
4898
+ return { available: false, reason: "sandbox-missing" };
4899
+ }
4900
+ const serverConfig = resolveCodeModeClientConfig(client);
4901
+ const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4902
+ if (!publicUrl) {
4903
+ return { available: false, reason: "no-public-url" };
4904
+ }
4905
+ return { available: true };
4906
+ }
4907
+ var CODE_MODE_UNAVAILABLE_MESSAGES = {
4908
+ "sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
4909
+ "no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
4910
+ };
4911
+ var warnedCodeModeReasons = new Set;
4912
+ function warnCodeModeFallback(reason) {
4913
+ if (warnedCodeModeReasons.has(reason))
4914
+ return;
4915
+ warnedCodeModeReasons.add(reason);
4916
+ console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
4917
+ }
4869
4918
  function buildCodeModeTool(client, options) {
4870
4919
  const { tools, providerTokens, context, integrationIds } = options;
4871
4920
  const generated = generateCodeModeTypes(tools);
@@ -4878,6 +4927,7 @@ ${generated.source}
4878
4927
  \`\`\``;
4879
4928
  const execute = async ({ code }) => {
4880
4929
  const publicUrl = sandboxOverrides.publicUrl ?? serverCodeModeConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
4930
+ const apiKey = client.__oauthConfig?.apiKey;
4881
4931
  if (!publicUrl) {
4882
4932
  return {
4883
4933
  success: false,
@@ -4892,6 +4942,7 @@ ${generated.source}
4892
4942
  return executeSandboxCode({
4893
4943
  code,
4894
4944
  mcpUrl,
4945
+ apiKey,
4895
4946
  providerTokens,
4896
4947
  context,
4897
4948
  integrationsHeader: integrationIds && integrationIds.length > 0 ? integrationIds.join(",") : undefined,
@@ -4943,8 +4994,19 @@ async function getVercelAITools(client, options) {
4943
4994
  await ensureClientConnected(client);
4944
4995
  const mcpTools = await client.getEnabledToolsAsync();
4945
4996
  const vercelTools = {};
4946
- const mode = options?.mode ?? "code";
4947
- if (mode === "code") {
4997
+ let effectiveMode;
4998
+ if (options?.mode !== undefined) {
4999
+ effectiveMode = options.mode;
5000
+ } else {
5001
+ const diagnosis = await diagnoseCodeMode(client);
5002
+ if (diagnosis.available) {
5003
+ effectiveMode = "code";
5004
+ } else {
5005
+ warnCodeModeFallback(diagnosis.reason);
5006
+ effectiveMode = "tools";
5007
+ }
5008
+ }
5009
+ if (effectiveMode === "code") {
4948
5010
  const codeTool = buildCodeModeTool(client, {
4949
5011
  tools: mcpTools,
4950
5012
  providerTokens,
@@ -43,11 +43,16 @@ interface SandboxFactory {
43
43
  }
44
44
  /** @internal — used by unit tests to stub the sandbox SDK. */
45
45
  export declare function __setSandboxFactoryForTests(factory: SandboxFactory | null): void;
46
+ /** @internal — used by unit tests to simulate missing @vercel/sandbox. */
47
+ export declare function __setSandboxUnavailableForTests(force: boolean): void;
48
+ export declare function isSandboxAvailable(): Promise<boolean>;
46
49
  export interface ExecuteSandboxCodeOptions {
47
50
  /** Source code the LLM produced. Treated as an async function body. */
48
51
  code: string;
49
52
  /** Fully-qualified MCP route URL, e.g. `https://myapp.com/api/integrate/mcp`. */
50
53
  mcpUrl: string;
54
+ /** Server API key forwarded to trusted sandbox callbacks. */
55
+ apiKey?: string;
51
56
  /** Session token forwarded as `Authorization: Bearer <token>` by the stub. */
52
57
  sessionToken?: string;
53
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/code-mode/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;GAIG;AACH,UAAU,WAAW;IACnB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,UAAU,CACR,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GACA,OAAO,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;KAC3B,CAAC,CAAC;IACH,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED,UAAU,cAAc;IACtB,MAAM,CAAC,OAAO,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1B;AAQD,8DAA8D;AAC9D,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAEhF;AAkBD,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,qDAAqD;IACrD,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,aAAa,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;CAClH;AAED,MAAM,WAAW,wBAAwB;IACvC,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4DD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAqE9G"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/code-mode/executor.ts"],"names":[],"mappings":"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"}