integrate-sdk 0.9.19-dev.0 → 0.9.20-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.
@@ -4677,6 +4677,19 @@ if (!MCP_URL) {
4677
4677
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
4678
4678
  }
4679
4679
 
4680
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
4681
+ // execute_code result's stderr field for debugging auth issues.
4682
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
4683
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
4684
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
4685
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
4686
+ if (PROVIDER_TOKENS) {
4687
+ try {
4688
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
4689
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
4690
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
4691
+ }
4692
+
4680
4693
  function camelToSnake(str) {
4681
4694
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
4682
4695
  }
@@ -4692,6 +4705,14 @@ async function callTool(toolName, args) {
4692
4705
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4693
4706
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
4694
4707
 
4708
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
4709
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
4710
+ hasAuth: !!headers['Authorization'],
4711
+ hasApiKey: !!headers['x-integrate-api-key'],
4712
+ hasTokens: !!headers['x-integrate-tokens'],
4713
+ hasCodeMode: !!headers['x-integrate-code-mode'],
4714
+ }));
4715
+
4695
4716
  const res = await fetch(MCP_URL, {
4696
4717
  method: 'POST',
4697
4718
  headers,
@@ -4699,6 +4720,8 @@ async function callTool(toolName, args) {
4699
4720
  });
4700
4721
 
4701
4722
  const text = await res.text();
4723
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
4724
+
4702
4725
  let payload;
4703
4726
  try {
4704
4727
  payload = text ? JSON.parse(text) : null;
@@ -4876,6 +4899,16 @@ async function executeSandboxCode(options) {
4876
4899
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
4877
4900
  if (options.context)
4878
4901
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
4902
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
4903
+ mcpUrl: options.mcpUrl,
4904
+ hasApiKey: !!options.apiKey,
4905
+ hasSessionToken: !!options.sessionToken,
4906
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
4907
+ hasIntegrations: !!options.integrationsHeader,
4908
+ hasContext: !!options.context,
4909
+ runtime,
4910
+ timeoutMs
4911
+ }));
4879
4912
  const cmd = await sandbox.runCommand({
4880
4913
  cmd: "node",
4881
4914
  args: ["user.mjs"],
@@ -5002,6 +5035,15 @@ ${generated.compact}`;
5002
5035
  }
5003
5036
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
5004
5037
  let resolvedTokens = providerTokens;
5038
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
5039
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5040
+ try {
5041
+ resolvedTokens = await getProviderTokens();
5042
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
5043
+ tokenSource = "request-header";
5044
+ }
5045
+ } catch {}
5046
+ }
5005
5047
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5006
5048
  const oauthManager = client.oauthManager;
5007
5049
  if (oauthManager) {
@@ -5020,9 +5062,17 @@ ${generated.compact}`;
5020
5062
  }
5021
5063
  if (Object.keys(resolvedTokens).length === 0) {
5022
5064
  resolvedTokens = undefined;
5065
+ } else {
5066
+ tokenSource = "oauthManager";
5023
5067
  }
5024
5068
  }
5025
5069
  }
5070
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
5071
+ source: tokenSource,
5072
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
5073
+ hasApiKey: !!apiKey,
5074
+ mcpUrl
5075
+ }));
5026
5076
  return executeSandboxCode({
5027
5077
  code,
5028
5078
  mcpUrl,
package/dist/ai/google.js CHANGED
@@ -4677,6 +4677,19 @@ if (!MCP_URL) {
4677
4677
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
4678
4678
  }
4679
4679
 
4680
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
4681
+ // execute_code result's stderr field for debugging auth issues.
4682
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
4683
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
4684
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
4685
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
4686
+ if (PROVIDER_TOKENS) {
4687
+ try {
4688
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
4689
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
4690
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
4691
+ }
4692
+
4680
4693
  function camelToSnake(str) {
4681
4694
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
4682
4695
  }
@@ -4692,6 +4705,14 @@ async function callTool(toolName, args) {
4692
4705
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4693
4706
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
4694
4707
 
4708
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
4709
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
4710
+ hasAuth: !!headers['Authorization'],
4711
+ hasApiKey: !!headers['x-integrate-api-key'],
4712
+ hasTokens: !!headers['x-integrate-tokens'],
4713
+ hasCodeMode: !!headers['x-integrate-code-mode'],
4714
+ }));
4715
+
4695
4716
  const res = await fetch(MCP_URL, {
4696
4717
  method: 'POST',
4697
4718
  headers,
@@ -4699,6 +4720,8 @@ async function callTool(toolName, args) {
4699
4720
  });
4700
4721
 
4701
4722
  const text = await res.text();
4723
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
4724
+
4702
4725
  let payload;
4703
4726
  try {
4704
4727
  payload = text ? JSON.parse(text) : null;
@@ -4876,6 +4899,16 @@ async function executeSandboxCode(options) {
4876
4899
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
4877
4900
  if (options.context)
4878
4901
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
4902
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
4903
+ mcpUrl: options.mcpUrl,
4904
+ hasApiKey: !!options.apiKey,
4905
+ hasSessionToken: !!options.sessionToken,
4906
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
4907
+ hasIntegrations: !!options.integrationsHeader,
4908
+ hasContext: !!options.context,
4909
+ runtime,
4910
+ timeoutMs
4911
+ }));
4879
4912
  const cmd = await sandbox.runCommand({
4880
4913
  cmd: "node",
4881
4914
  args: ["user.mjs"],
@@ -5002,6 +5035,15 @@ ${generated.compact}`;
5002
5035
  }
5003
5036
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
5004
5037
  let resolvedTokens = providerTokens;
5038
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
5039
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5040
+ try {
5041
+ resolvedTokens = await getProviderTokens();
5042
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
5043
+ tokenSource = "request-header";
5044
+ }
5045
+ } catch {}
5046
+ }
5005
5047
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5006
5048
  const oauthManager = client.oauthManager;
5007
5049
  if (oauthManager) {
@@ -5020,9 +5062,17 @@ ${generated.compact}`;
5020
5062
  }
5021
5063
  if (Object.keys(resolvedTokens).length === 0) {
5022
5064
  resolvedTokens = undefined;
5065
+ } else {
5066
+ tokenSource = "oauthManager";
5023
5067
  }
5024
5068
  }
5025
5069
  }
5070
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
5071
+ source: tokenSource,
5072
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
5073
+ hasApiKey: !!apiKey,
5074
+ mcpUrl
5075
+ }));
5026
5076
  return executeSandboxCode({
5027
5077
  code,
5028
5078
  mcpUrl,
package/dist/ai/index.js CHANGED
@@ -4677,6 +4677,19 @@ if (!MCP_URL) {
4677
4677
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
4678
4678
  }
4679
4679
 
4680
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
4681
+ // execute_code result's stderr field for debugging auth issues.
4682
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
4683
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
4684
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
4685
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
4686
+ if (PROVIDER_TOKENS) {
4687
+ try {
4688
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
4689
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
4690
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
4691
+ }
4692
+
4680
4693
  function camelToSnake(str) {
4681
4694
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
4682
4695
  }
@@ -4692,6 +4705,14 @@ async function callTool(toolName, args) {
4692
4705
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4693
4706
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
4694
4707
 
4708
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
4709
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
4710
+ hasAuth: !!headers['Authorization'],
4711
+ hasApiKey: !!headers['x-integrate-api-key'],
4712
+ hasTokens: !!headers['x-integrate-tokens'],
4713
+ hasCodeMode: !!headers['x-integrate-code-mode'],
4714
+ }));
4715
+
4695
4716
  const res = await fetch(MCP_URL, {
4696
4717
  method: 'POST',
4697
4718
  headers,
@@ -4699,6 +4720,8 @@ async function callTool(toolName, args) {
4699
4720
  });
4700
4721
 
4701
4722
  const text = await res.text();
4723
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
4724
+
4702
4725
  let payload;
4703
4726
  try {
4704
4727
  payload = text ? JSON.parse(text) : null;
@@ -4876,6 +4899,16 @@ async function executeSandboxCode(options) {
4876
4899
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
4877
4900
  if (options.context)
4878
4901
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
4902
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
4903
+ mcpUrl: options.mcpUrl,
4904
+ hasApiKey: !!options.apiKey,
4905
+ hasSessionToken: !!options.sessionToken,
4906
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
4907
+ hasIntegrations: !!options.integrationsHeader,
4908
+ hasContext: !!options.context,
4909
+ runtime,
4910
+ timeoutMs
4911
+ }));
4879
4912
  const cmd = await sandbox.runCommand({
4880
4913
  cmd: "node",
4881
4914
  args: ["user.mjs"],
@@ -5002,6 +5035,15 @@ ${generated.compact}`;
5002
5035
  }
5003
5036
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
5004
5037
  let resolvedTokens = providerTokens;
5038
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
5039
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5040
+ try {
5041
+ resolvedTokens = await getProviderTokens();
5042
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
5043
+ tokenSource = "request-header";
5044
+ }
5045
+ } catch {}
5046
+ }
5005
5047
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5006
5048
  const oauthManager = client.oauthManager;
5007
5049
  if (oauthManager) {
@@ -5020,9 +5062,17 @@ ${generated.compact}`;
5020
5062
  }
5021
5063
  if (Object.keys(resolvedTokens).length === 0) {
5022
5064
  resolvedTokens = undefined;
5065
+ } else {
5066
+ tokenSource = "oauthManager";
5023
5067
  }
5024
5068
  }
5025
5069
  }
5070
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
5071
+ source: tokenSource,
5072
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
5073
+ hasApiKey: !!apiKey,
5074
+ mcpUrl
5075
+ }));
5026
5076
  return executeSandboxCode({
5027
5077
  code,
5028
5078
  mcpUrl,
package/dist/ai/openai.js CHANGED
@@ -4677,6 +4677,19 @@ if (!MCP_URL) {
4677
4677
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
4678
4678
  }
4679
4679
 
4680
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
4681
+ // execute_code result's stderr field for debugging auth issues.
4682
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
4683
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
4684
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
4685
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
4686
+ if (PROVIDER_TOKENS) {
4687
+ try {
4688
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
4689
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
4690
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
4691
+ }
4692
+
4680
4693
  function camelToSnake(str) {
4681
4694
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
4682
4695
  }
@@ -4692,6 +4705,14 @@ async function callTool(toolName, args) {
4692
4705
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4693
4706
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
4694
4707
 
4708
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
4709
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
4710
+ hasAuth: !!headers['Authorization'],
4711
+ hasApiKey: !!headers['x-integrate-api-key'],
4712
+ hasTokens: !!headers['x-integrate-tokens'],
4713
+ hasCodeMode: !!headers['x-integrate-code-mode'],
4714
+ }));
4715
+
4695
4716
  const res = await fetch(MCP_URL, {
4696
4717
  method: 'POST',
4697
4718
  headers,
@@ -4699,6 +4720,8 @@ async function callTool(toolName, args) {
4699
4720
  });
4700
4721
 
4701
4722
  const text = await res.text();
4723
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
4724
+
4702
4725
  let payload;
4703
4726
  try {
4704
4727
  payload = text ? JSON.parse(text) : null;
@@ -4876,6 +4899,16 @@ async function executeSandboxCode(options) {
4876
4899
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
4877
4900
  if (options.context)
4878
4901
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
4902
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
4903
+ mcpUrl: options.mcpUrl,
4904
+ hasApiKey: !!options.apiKey,
4905
+ hasSessionToken: !!options.sessionToken,
4906
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
4907
+ hasIntegrations: !!options.integrationsHeader,
4908
+ hasContext: !!options.context,
4909
+ runtime,
4910
+ timeoutMs
4911
+ }));
4879
4912
  const cmd = await sandbox.runCommand({
4880
4913
  cmd: "node",
4881
4914
  args: ["user.mjs"],
@@ -5002,6 +5035,15 @@ ${generated.compact}`;
5002
5035
  }
5003
5036
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
5004
5037
  let resolvedTokens = providerTokens;
5038
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
5039
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5040
+ try {
5041
+ resolvedTokens = await getProviderTokens();
5042
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
5043
+ tokenSource = "request-header";
5044
+ }
5045
+ } catch {}
5046
+ }
5005
5047
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5006
5048
  const oauthManager = client.oauthManager;
5007
5049
  if (oauthManager) {
@@ -5020,9 +5062,17 @@ ${generated.compact}`;
5020
5062
  }
5021
5063
  if (Object.keys(resolvedTokens).length === 0) {
5022
5064
  resolvedTokens = undefined;
5065
+ } else {
5066
+ tokenSource = "oauthManager";
5023
5067
  }
5024
5068
  }
5025
5069
  }
5070
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
5071
+ source: tokenSource,
5072
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
5073
+ hasApiKey: !!apiKey,
5074
+ mcpUrl
5075
+ }));
5026
5076
  return executeSandboxCode({
5027
5077
  code,
5028
5078
  mcpUrl,
@@ -4677,6 +4677,19 @@ if (!MCP_URL) {
4677
4677
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
4678
4678
  }
4679
4679
 
4680
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
4681
+ // execute_code result's stderr field for debugging auth issues.
4682
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
4683
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
4684
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
4685
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
4686
+ if (PROVIDER_TOKENS) {
4687
+ try {
4688
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
4689
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
4690
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
4691
+ }
4692
+
4680
4693
  function camelToSnake(str) {
4681
4694
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
4682
4695
  }
@@ -4692,6 +4705,14 @@ async function callTool(toolName, args) {
4692
4705
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4693
4706
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
4694
4707
 
4708
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
4709
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
4710
+ hasAuth: !!headers['Authorization'],
4711
+ hasApiKey: !!headers['x-integrate-api-key'],
4712
+ hasTokens: !!headers['x-integrate-tokens'],
4713
+ hasCodeMode: !!headers['x-integrate-code-mode'],
4714
+ }));
4715
+
4695
4716
  const res = await fetch(MCP_URL, {
4696
4717
  method: 'POST',
4697
4718
  headers,
@@ -4699,6 +4720,8 @@ async function callTool(toolName, args) {
4699
4720
  });
4700
4721
 
4701
4722
  const text = await res.text();
4723
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
4724
+
4702
4725
  let payload;
4703
4726
  try {
4704
4727
  payload = text ? JSON.parse(text) : null;
@@ -4876,6 +4899,16 @@ async function executeSandboxCode(options) {
4876
4899
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
4877
4900
  if (options.context)
4878
4901
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
4902
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
4903
+ mcpUrl: options.mcpUrl,
4904
+ hasApiKey: !!options.apiKey,
4905
+ hasSessionToken: !!options.sessionToken,
4906
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
4907
+ hasIntegrations: !!options.integrationsHeader,
4908
+ hasContext: !!options.context,
4909
+ runtime,
4910
+ timeoutMs
4911
+ }));
4879
4912
  const cmd = await sandbox.runCommand({
4880
4913
  cmd: "node",
4881
4914
  args: ["user.mjs"],
@@ -5002,6 +5035,15 @@ ${generated.compact}`;
5002
5035
  }
5003
5036
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
5004
5037
  let resolvedTokens = providerTokens;
5038
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
5039
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5040
+ try {
5041
+ resolvedTokens = await getProviderTokens();
5042
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
5043
+ tokenSource = "request-header";
5044
+ }
5045
+ } catch {}
5046
+ }
5005
5047
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5006
5048
  const oauthManager = client.oauthManager;
5007
5049
  if (oauthManager) {
@@ -5020,9 +5062,17 @@ ${generated.compact}`;
5020
5062
  }
5021
5063
  if (Object.keys(resolvedTokens).length === 0) {
5022
5064
  resolvedTokens = undefined;
5065
+ } else {
5066
+ tokenSource = "oauthManager";
5023
5067
  }
5024
5068
  }
5025
5069
  }
5070
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
5071
+ source: tokenSource,
5072
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
5073
+ hasApiKey: !!apiKey,
5074
+ mcpUrl
5075
+ }));
5026
5076
  return executeSandboxCode({
5027
5077
  code,
5028
5078
  mcpUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/code-mode/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/code-mode/executor.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,19 @@ if (!MCP_URL) {
30
30
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
31
31
  }
32
32
 
33
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
34
+ // execute_code result's stderr field for debugging auth issues.
35
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
36
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
37
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
38
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
39
+ if (PROVIDER_TOKENS) {
40
+ try {
41
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
42
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
43
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
44
+ }
45
+
33
46
  function camelToSnake(str) {
34
47
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
35
48
  }
@@ -45,6 +58,14 @@ async function callTool(toolName, args) {
45
58
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
46
59
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
47
60
 
61
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
62
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
63
+ hasAuth: !!headers['Authorization'],
64
+ hasApiKey: !!headers['x-integrate-api-key'],
65
+ hasTokens: !!headers['x-integrate-tokens'],
66
+ hasCodeMode: !!headers['x-integrate-code-mode'],
67
+ }));
68
+
48
69
  const res = await fetch(MCP_URL, {
49
70
  method: 'POST',
50
71
  headers,
@@ -52,6 +73,8 @@ async function callTool(toolName, args) {
52
73
  });
53
74
 
54
75
  const text = await res.text();
76
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
77
+
55
78
  let payload;
56
79
  try {
57
80
  payload = text ? JSON.parse(text) : null;
@@ -240,6 +263,16 @@ async function executeSandboxCode(options) {
240
263
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
241
264
  if (options.context)
242
265
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
266
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
267
+ mcpUrl: options.mcpUrl,
268
+ hasApiKey: !!options.apiKey,
269
+ hasSessionToken: !!options.sessionToken,
270
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
271
+ hasIntegrations: !!options.integrationsHeader,
272
+ hasContext: !!options.context,
273
+ runtime,
274
+ timeoutMs
275
+ }));
243
276
  const cmd = await sandbox.runCommand({
244
277
  cmd: "node",
245
278
  args: ["user.mjs"],
@@ -275,6 +275,19 @@ if (!MCP_URL) {
275
275
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
276
276
  }
277
277
 
278
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
279
+ // execute_code result's stderr field for debugging auth issues.
280
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
281
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
282
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
283
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
284
+ if (PROVIDER_TOKENS) {
285
+ try {
286
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
287
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
288
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
289
+ }
290
+
278
291
  function camelToSnake(str) {
279
292
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
280
293
  }
@@ -290,6 +303,14 @@ async function callTool(toolName, args) {
290
303
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
291
304
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
292
305
 
306
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
307
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
308
+ hasAuth: !!headers['Authorization'],
309
+ hasApiKey: !!headers['x-integrate-api-key'],
310
+ hasTokens: !!headers['x-integrate-tokens'],
311
+ hasCodeMode: !!headers['x-integrate-code-mode'],
312
+ }));
313
+
293
314
  const res = await fetch(MCP_URL, {
294
315
  method: 'POST',
295
316
  headers,
@@ -297,6 +318,8 @@ async function callTool(toolName, args) {
297
318
  });
298
319
 
299
320
  const text = await res.text();
321
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
322
+
300
323
  let payload;
301
324
  try {
302
325
  payload = text ? JSON.parse(text) : null;
@@ -485,6 +508,16 @@ async function executeSandboxCode(options) {
485
508
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
486
509
  if (options.context)
487
510
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
511
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
512
+ mcpUrl: options.mcpUrl,
513
+ hasApiKey: !!options.apiKey,
514
+ hasSessionToken: !!options.sessionToken,
515
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
516
+ hasIntegrations: !!options.integrationsHeader,
517
+ hasContext: !!options.context,
518
+ runtime,
519
+ timeoutMs
520
+ }));
488
521
  const cmd = await sandbox.runCommand({
489
522
  cmd: "node",
490
523
  args: ["user.mjs"],
@@ -540,6 +573,59 @@ function getEnv(key) {
540
573
  return;
541
574
  }
542
575
 
576
+ // ../utils/request-tokens.ts
577
+ async function getProviderTokens(manualTokens) {
578
+ if (manualTokens) {
579
+ return manualTokens;
580
+ }
581
+ let tokensString = null;
582
+ if (!tokensString) {
583
+ try {
584
+ const getNextHeadersPath = () => {
585
+ const parts = ["next", "/headers"];
586
+ return parts.join("");
587
+ };
588
+ const nextHeaders = await import(getNextHeadersPath()).catch(() => null);
589
+ if (nextHeaders && typeof nextHeaders.headers === "function") {
590
+ const headersList = await Promise.resolve(nextHeaders.headers());
591
+ tokensString = headersList.get("x-integrate-tokens");
592
+ }
593
+ } catch {}
594
+ }
595
+ if (!tokensString) {
596
+ try {
597
+ const getNuxtHeaders = new Function(`
598
+ try {
599
+ if (typeof useRequestHeaders === 'function') {
600
+ return useRequestHeaders();
601
+ }
602
+ } catch {}
603
+ return null;
604
+ `);
605
+ const headers = getNuxtHeaders();
606
+ if (headers && typeof headers === "object") {
607
+ tokensString = headers["x-integrate-tokens"];
608
+ }
609
+ } catch {}
610
+ }
611
+ if (!tokensString) {
612
+ if (typeof process !== "undefined" && process.env) {
613
+ tokensString = process.env.PROVIDER_TOKENS;
614
+ }
615
+ }
616
+ if (tokensString) {
617
+ try {
618
+ const parsed = JSON.parse(tokensString);
619
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
620
+ return parsed;
621
+ }
622
+ } catch (error) {
623
+ throw new Error(`Failed to parse provider tokens: ${error instanceof Error ? error.message : "Invalid JSON"}`);
624
+ }
625
+ }
626
+ throw new Error("Provider tokens not found. Please pass tokens manually via options.providerTokens or set the x-integrate-tokens header in your request.");
627
+ }
628
+
543
629
  // tool-builder.ts
544
630
  var CODE_MODE_TOOL_NAME = "execute_code";
545
631
  var TYPES_TOOL_NAME = "get_integration_types";
@@ -617,6 +703,15 @@ ${generated.compact}`;
617
703
  }
618
704
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
619
705
  let resolvedTokens = providerTokens;
706
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
707
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
708
+ try {
709
+ resolvedTokens = await getProviderTokens();
710
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
711
+ tokenSource = "request-header";
712
+ }
713
+ } catch {}
714
+ }
620
715
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
621
716
  const oauthManager = client.oauthManager;
622
717
  if (oauthManager) {
@@ -635,9 +730,17 @@ ${generated.compact}`;
635
730
  }
636
731
  if (Object.keys(resolvedTokens).length === 0) {
637
732
  resolvedTokens = undefined;
733
+ } else {
734
+ tokenSource = "oauthManager";
638
735
  }
639
736
  }
640
737
  }
738
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
739
+ source: tokenSource,
740
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
741
+ hasApiKey: !!apiKey,
742
+ mcpUrl
743
+ }));
641
744
  return executeSandboxCode({
642
745
  code,
643
746
  mcpUrl,
@@ -12,5 +12,5 @@
12
12
  * dependencies. It is NOT imported by the host SDK — it only ships as a
13
13
  * literal payload to the sandbox.
14
14
  */
15
- export declare const RUNTIME_STUB_SOURCE = "// runtime.mjs \u2014 generated by integrate-sdk code mode\nconst MCP_URL = process.env.INTEGRATE_MCP_URL;\nconst SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;\nconst API_KEY = process.env.INTEGRATE_API_KEY || '';\nconst PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';\nconst INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';\nconst CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';\n\nif (!MCP_URL) {\n throw new Error('INTEGRATE_MCP_URL is not set \u2014 the sandbox cannot reach the MCP route.');\n}\n\nfunction camelToSnake(str) {\n return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());\n}\n\nasync function callTool(toolName, args) {\n const headers = {\n 'Content-Type': 'application/json',\n 'x-integrate-code-mode': '1',\n };\n if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;\n if (API_KEY) headers['x-integrate-api-key'] = API_KEY;\n if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;\n if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;\n if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;\n\n const res = await fetch(MCP_URL, {\n method: 'POST',\n headers,\n body: JSON.stringify({ name: toolName, arguments: args || {} }),\n });\n\n const text = await res.text();\n let payload;\n try {\n payload = text ? JSON.parse(text) : null;\n } catch {\n payload = { content: [{ type: 'text', text }] };\n }\n\n if (!res.ok) {\n let message = (payload && (payload.error || payload.message)) || 'Tool call failed: HTTP ' + res.status;\n if ((res.status === 401 || res.status === 403) && typeof text === 'string' && text.indexOf('Authorization header') !== -1) {\n message =\n 'Code Mode callback was rejected by the MCP server (HTTP ' + res.status + '). ' +\n 'The SDK route could not synthesize an Authorization header. Check the host-side ' +\n 'createMCPServer config (apiKey, getProviderToken) or pass providerTokens to the ' +\n 'AI helper. Original upstream message: ' + text;\n }\n const err = new Error(message);\n err.status = res.status;\n err.toolName = toolName;\n throw err;\n }\n\n return payload;\n}\n\nfunction createIntegrationProxy(integrationId) {\n return new Proxy({}, {\n get(_target, methodName) {\n if (typeof methodName !== 'string') return undefined;\n return (args) => callTool(integrationId + '_' + camelToSnake(methodName), args);\n },\n });\n}\n\nexport const client = new Proxy({}, {\n get(_target, integrationId) {\n if (typeof integrationId !== 'string') return undefined;\n return createIntegrationProxy(integrationId);\n },\n});\n\nexport { callTool };\n";
15
+ export declare const RUNTIME_STUB_SOURCE = "// runtime.mjs \u2014 generated by integrate-sdk code mode\nconst MCP_URL = process.env.INTEGRATE_MCP_URL;\nconst SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;\nconst API_KEY = process.env.INTEGRATE_API_KEY || '';\nconst PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';\nconst INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';\nconst CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';\n\nif (!MCP_URL) {\n throw new Error('INTEGRATE_MCP_URL is not set \u2014 the sandbox cannot reach the MCP route.');\n}\n\n// Diagnostic: log sandbox env summary to stderr so it shows up in the\n// execute_code result's stderr field for debugging auth issues.\nconsole.error('[sandbox-diag] MCP_URL=' + MCP_URL);\nconsole.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);\nconsole.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);\nconsole.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);\nif (PROVIDER_TOKENS) {\n try {\n const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));\n console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));\n } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }\n}\n\nfunction camelToSnake(str) {\n return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());\n}\n\nasync function callTool(toolName, args) {\n const headers = {\n 'Content-Type': 'application/json',\n 'x-integrate-code-mode': '1',\n };\n if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;\n if (API_KEY) headers['x-integrate-api-key'] = API_KEY;\n if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;\n if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;\n if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;\n\n console.error('[sandbox-diag] callTool: ' + toolName + ' \u2192 ' + MCP_URL);\n console.error('[sandbox-diag] headers: ' + JSON.stringify({\n hasAuth: !!headers['Authorization'],\n hasApiKey: !!headers['x-integrate-api-key'],\n hasTokens: !!headers['x-integrate-tokens'],\n hasCodeMode: !!headers['x-integrate-code-mode'],\n }));\n\n const res = await fetch(MCP_URL, {\n method: 'POST',\n headers,\n body: JSON.stringify({ name: toolName, arguments: args || {} }),\n });\n\n const text = await res.text();\n console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);\n\n let payload;\n try {\n payload = text ? JSON.parse(text) : null;\n } catch {\n payload = { content: [{ type: 'text', text }] };\n }\n\n if (!res.ok) {\n let message = (payload && (payload.error || payload.message)) || 'Tool call failed: HTTP ' + res.status;\n if ((res.status === 401 || res.status === 403) && typeof text === 'string' && text.indexOf('Authorization header') !== -1) {\n message =\n 'Code Mode callback was rejected by the MCP server (HTTP ' + res.status + '). ' +\n 'The SDK route could not synthesize an Authorization header. Check the host-side ' +\n 'createMCPServer config (apiKey, getProviderToken) or pass providerTokens to the ' +\n 'AI helper. Original upstream message: ' + text;\n }\n const err = new Error(message);\n err.status = res.status;\n err.toolName = toolName;\n throw err;\n }\n\n return payload;\n}\n\nfunction createIntegrationProxy(integrationId) {\n return new Proxy({}, {\n get(_target, methodName) {\n if (typeof methodName !== 'string') return undefined;\n return (args) => callTool(integrationId + '_' + camelToSnake(methodName), args);\n },\n });\n}\n\nexport const client = new Proxy({}, {\n get(_target, integrationId) {\n if (typeof integrationId !== 'string') return undefined;\n return createIntegrationProxy(integrationId);\n },\n});\n\nexport { callTool };\n";
16
16
  //# sourceMappingURL=runtime-stub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-stub.d.ts","sourceRoot":"","sources":["../../../src/code-mode/runtime-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,mBAAmB,8rFA4E/B,CAAC"}
1
+ {"version":3,"file":"runtime-stub.d.ts","sourceRoot":"","sources":["../../../src/code-mode/runtime-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,mBAAmB,owHAmG/B,CAAC"}
@@ -30,6 +30,19 @@ if (!MCP_URL) {
30
30
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
31
31
  }
32
32
 
33
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
34
+ // execute_code result's stderr field for debugging auth issues.
35
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
36
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
37
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
38
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
39
+ if (PROVIDER_TOKENS) {
40
+ try {
41
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
42
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
43
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
44
+ }
45
+
33
46
  function camelToSnake(str) {
34
47
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
35
48
  }
@@ -45,6 +58,14 @@ async function callTool(toolName, args) {
45
58
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
46
59
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
47
60
 
61
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
62
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
63
+ hasAuth: !!headers['Authorization'],
64
+ hasApiKey: !!headers['x-integrate-api-key'],
65
+ hasTokens: !!headers['x-integrate-tokens'],
66
+ hasCodeMode: !!headers['x-integrate-code-mode'],
67
+ }));
68
+
48
69
  const res = await fetch(MCP_URL, {
49
70
  method: 'POST',
50
71
  headers,
@@ -52,6 +73,8 @@ async function callTool(toolName, args) {
52
73
  });
53
74
 
54
75
  const text = await res.text();
76
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
77
+
55
78
  let payload;
56
79
  try {
57
80
  payload = text ? JSON.parse(text) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../../src/code-mode/tool-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../../src/code-mode/tool-builder.ts"],"names":[],"mappings":"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"}
@@ -275,6 +275,19 @@ if (!MCP_URL) {
275
275
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
276
276
  }
277
277
 
278
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
279
+ // execute_code result's stderr field for debugging auth issues.
280
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
281
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
282
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
283
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
284
+ if (PROVIDER_TOKENS) {
285
+ try {
286
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
287
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
288
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
289
+ }
290
+
278
291
  function camelToSnake(str) {
279
292
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
280
293
  }
@@ -290,6 +303,14 @@ async function callTool(toolName, args) {
290
303
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
291
304
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
292
305
 
306
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
307
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
308
+ hasAuth: !!headers['Authorization'],
309
+ hasApiKey: !!headers['x-integrate-api-key'],
310
+ hasTokens: !!headers['x-integrate-tokens'],
311
+ hasCodeMode: !!headers['x-integrate-code-mode'],
312
+ }));
313
+
293
314
  const res = await fetch(MCP_URL, {
294
315
  method: 'POST',
295
316
  headers,
@@ -297,6 +318,8 @@ async function callTool(toolName, args) {
297
318
  });
298
319
 
299
320
  const text = await res.text();
321
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
322
+
300
323
  let payload;
301
324
  try {
302
325
  payload = text ? JSON.parse(text) : null;
@@ -485,6 +508,16 @@ async function executeSandboxCode(options) {
485
508
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
486
509
  if (options.context)
487
510
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
511
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
512
+ mcpUrl: options.mcpUrl,
513
+ hasApiKey: !!options.apiKey,
514
+ hasSessionToken: !!options.sessionToken,
515
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
516
+ hasIntegrations: !!options.integrationsHeader,
517
+ hasContext: !!options.context,
518
+ runtime,
519
+ timeoutMs
520
+ }));
488
521
  const cmd = await sandbox.runCommand({
489
522
  cmd: "node",
490
523
  args: ["user.mjs"],
@@ -540,6 +573,59 @@ function getEnv(key) {
540
573
  return;
541
574
  }
542
575
 
576
+ // ../utils/request-tokens.ts
577
+ async function getProviderTokens(manualTokens) {
578
+ if (manualTokens) {
579
+ return manualTokens;
580
+ }
581
+ let tokensString = null;
582
+ if (!tokensString) {
583
+ try {
584
+ const getNextHeadersPath = () => {
585
+ const parts = ["next", "/headers"];
586
+ return parts.join("");
587
+ };
588
+ const nextHeaders = await import(getNextHeadersPath()).catch(() => null);
589
+ if (nextHeaders && typeof nextHeaders.headers === "function") {
590
+ const headersList = await Promise.resolve(nextHeaders.headers());
591
+ tokensString = headersList.get("x-integrate-tokens");
592
+ }
593
+ } catch {}
594
+ }
595
+ if (!tokensString) {
596
+ try {
597
+ const getNuxtHeaders = new Function(`
598
+ try {
599
+ if (typeof useRequestHeaders === 'function') {
600
+ return useRequestHeaders();
601
+ }
602
+ } catch {}
603
+ return null;
604
+ `);
605
+ const headers = getNuxtHeaders();
606
+ if (headers && typeof headers === "object") {
607
+ tokensString = headers["x-integrate-tokens"];
608
+ }
609
+ } catch {}
610
+ }
611
+ if (!tokensString) {
612
+ if (typeof process !== "undefined" && process.env) {
613
+ tokensString = process.env.PROVIDER_TOKENS;
614
+ }
615
+ }
616
+ if (tokensString) {
617
+ try {
618
+ const parsed = JSON.parse(tokensString);
619
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
620
+ return parsed;
621
+ }
622
+ } catch (error) {
623
+ throw new Error(`Failed to parse provider tokens: ${error instanceof Error ? error.message : "Invalid JSON"}`);
624
+ }
625
+ }
626
+ throw new Error("Provider tokens not found. Please pass tokens manually via options.providerTokens or set the x-integrate-tokens header in your request.");
627
+ }
628
+
543
629
  // tool-builder.ts
544
630
  var CODE_MODE_TOOL_NAME = "execute_code";
545
631
  var TYPES_TOOL_NAME = "get_integration_types";
@@ -617,6 +703,15 @@ ${generated.compact}`;
617
703
  }
618
704
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
619
705
  let resolvedTokens = providerTokens;
706
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
707
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
708
+ try {
709
+ resolvedTokens = await getProviderTokens();
710
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
711
+ tokenSource = "request-header";
712
+ }
713
+ } catch {}
714
+ }
620
715
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
621
716
  const oauthManager = client.oauthManager;
622
717
  if (oauthManager) {
@@ -635,9 +730,17 @@ ${generated.compact}`;
635
730
  }
636
731
  if (Object.keys(resolvedTokens).length === 0) {
637
732
  resolvedTokens = undefined;
733
+ } else {
734
+ tokenSource = "oauthManager";
638
735
  }
639
736
  }
640
737
  }
738
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
739
+ source: tokenSource,
740
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
741
+ hasApiKey: !!apiKey,
742
+ mcpUrl
743
+ }));
641
744
  return executeSandboxCode({
642
745
  code,
643
746
  mcpUrl,
package/dist/server.js CHANGED
@@ -1154,6 +1154,59 @@ function getEnv(key) {
1154
1154
  return;
1155
1155
  }
1156
1156
 
1157
+ // src/utils/request-tokens.ts
1158
+ async function getProviderTokens(manualTokens) {
1159
+ if (manualTokens) {
1160
+ return manualTokens;
1161
+ }
1162
+ let tokensString = null;
1163
+ if (!tokensString) {
1164
+ try {
1165
+ const getNextHeadersPath = () => {
1166
+ const parts = ["next", "/headers"];
1167
+ return parts.join("");
1168
+ };
1169
+ const nextHeaders = await import(getNextHeadersPath()).catch(() => null);
1170
+ if (nextHeaders && typeof nextHeaders.headers === "function") {
1171
+ const headersList = await Promise.resolve(nextHeaders.headers());
1172
+ tokensString = headersList.get("x-integrate-tokens");
1173
+ }
1174
+ } catch {}
1175
+ }
1176
+ if (!tokensString) {
1177
+ try {
1178
+ const getNuxtHeaders = new Function(`
1179
+ try {
1180
+ if (typeof useRequestHeaders === 'function') {
1181
+ return useRequestHeaders();
1182
+ }
1183
+ } catch {}
1184
+ return null;
1185
+ `);
1186
+ const headers = getNuxtHeaders();
1187
+ if (headers && typeof headers === "object") {
1188
+ tokensString = headers["x-integrate-tokens"];
1189
+ }
1190
+ } catch {}
1191
+ }
1192
+ if (!tokensString) {
1193
+ if (typeof process !== "undefined" && process.env) {
1194
+ tokensString = process.env.PROVIDER_TOKENS;
1195
+ }
1196
+ }
1197
+ if (tokensString) {
1198
+ try {
1199
+ const parsed = JSON.parse(tokensString);
1200
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
1201
+ return parsed;
1202
+ }
1203
+ } catch (error) {
1204
+ throw new Error(`Failed to parse provider tokens: ${error instanceof Error ? error.message : "Invalid JSON"}`);
1205
+ }
1206
+ }
1207
+ throw new Error("Provider tokens not found. Please pass tokens manually via options.providerTokens or set the x-integrate-tokens header in your request.");
1208
+ }
1209
+
1157
1210
  // node_modules/nanoid/url-alphabet/index.js
1158
1211
  var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
1159
1212
  var init_url_alphabet = () => {};
@@ -1481,6 +1534,19 @@ if (!MCP_URL) {
1481
1534
  throw new Error('INTEGRATE_MCP_URL is not set — the sandbox cannot reach the MCP route.');
1482
1535
  }
1483
1536
 
1537
+ // Diagnostic: log sandbox env summary to stderr so it shows up in the
1538
+ // execute_code result's stderr field for debugging auth issues.
1539
+ console.error('[sandbox-diag] MCP_URL=' + MCP_URL);
1540
+ console.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);
1541
+ console.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);
1542
+ console.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);
1543
+ if (PROVIDER_TOKENS) {
1544
+ try {
1545
+ const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));
1546
+ console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
1547
+ } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
1548
+ }
1549
+
1484
1550
  function camelToSnake(str) {
1485
1551
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
1486
1552
  }
@@ -1496,6 +1562,14 @@ async function callTool(toolName, args) {
1496
1562
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
1497
1563
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
1498
1564
 
1565
+ console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
1566
+ console.error('[sandbox-diag] headers: ' + JSON.stringify({
1567
+ hasAuth: !!headers['Authorization'],
1568
+ hasApiKey: !!headers['x-integrate-api-key'],
1569
+ hasTokens: !!headers['x-integrate-tokens'],
1570
+ hasCodeMode: !!headers['x-integrate-code-mode'],
1571
+ }));
1572
+
1499
1573
  const res = await fetch(MCP_URL, {
1500
1574
  method: 'POST',
1501
1575
  headers,
@@ -1503,6 +1577,8 @@ async function callTool(toolName, args) {
1503
1577
  });
1504
1578
 
1505
1579
  const text = await res.text();
1580
+ console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
1581
+
1506
1582
  let payload;
1507
1583
  try {
1508
1584
  payload = text ? JSON.parse(text) : null;
@@ -1694,6 +1770,16 @@ async function executeSandboxCode(options) {
1694
1770
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
1695
1771
  if (options.context)
1696
1772
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
1773
+ console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
1774
+ mcpUrl: options.mcpUrl,
1775
+ hasApiKey: !!options.apiKey,
1776
+ hasSessionToken: !!options.sessionToken,
1777
+ providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
1778
+ hasIntegrations: !!options.integrationsHeader,
1779
+ hasContext: !!options.context,
1780
+ runtime,
1781
+ timeoutMs
1782
+ }));
1697
1783
  const cmd = await sandbox.runCommand({
1698
1784
  cmd: "node",
1699
1785
  args: ["user.mjs"],
@@ -1805,6 +1891,15 @@ ${generated.compact}`;
1805
1891
  }
1806
1892
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
1807
1893
  let resolvedTokens = providerTokens;
1894
+ let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
1895
+ if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
1896
+ try {
1897
+ resolvedTokens = await getProviderTokens();
1898
+ if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
1899
+ tokenSource = "request-header";
1900
+ }
1901
+ } catch {}
1902
+ }
1808
1903
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
1809
1904
  const oauthManager = client.oauthManager;
1810
1905
  if (oauthManager) {
@@ -1823,9 +1918,17 @@ ${generated.compact}`;
1823
1918
  }
1824
1919
  if (Object.keys(resolvedTokens).length === 0) {
1825
1920
  resolvedTokens = undefined;
1921
+ } else {
1922
+ tokenSource = "oauthManager";
1826
1923
  }
1827
1924
  }
1828
1925
  }
1926
+ console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
1927
+ source: tokenSource,
1928
+ keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
1929
+ hasApiKey: !!apiKey,
1930
+ mcpUrl
1931
+ }));
1829
1932
  return executeSandboxCode({
1830
1933
  code,
1831
1934
  mcpUrl,
@@ -9705,59 +9808,6 @@ var coerce = {
9705
9808
  date: (arg) => ZodDate.create({ ...arg, coerce: true })
9706
9809
  };
9707
9810
  var NEVER = INVALID;
9708
- // src/utils/request-tokens.ts
9709
- async function getProviderTokens(manualTokens) {
9710
- if (manualTokens) {
9711
- return manualTokens;
9712
- }
9713
- let tokensString = null;
9714
- if (!tokensString) {
9715
- try {
9716
- const getNextHeadersPath = () => {
9717
- const parts = ["next", "/headers"];
9718
- return parts.join("");
9719
- };
9720
- const nextHeaders = await import(getNextHeadersPath()).catch(() => null);
9721
- if (nextHeaders && typeof nextHeaders.headers === "function") {
9722
- const headersList = await Promise.resolve(nextHeaders.headers());
9723
- tokensString = headersList.get("x-integrate-tokens");
9724
- }
9725
- } catch {}
9726
- }
9727
- if (!tokensString) {
9728
- try {
9729
- const getNuxtHeaders = new Function(`
9730
- try {
9731
- if (typeof useRequestHeaders === 'function') {
9732
- return useRequestHeaders();
9733
- }
9734
- } catch {}
9735
- return null;
9736
- `);
9737
- const headers = getNuxtHeaders();
9738
- if (headers && typeof headers === "object") {
9739
- tokensString = headers["x-integrate-tokens"];
9740
- }
9741
- } catch {}
9742
- }
9743
- if (!tokensString) {
9744
- if (typeof process !== "undefined" && process.env) {
9745
- tokensString = process.env.PROVIDER_TOKENS;
9746
- }
9747
- }
9748
- if (tokensString) {
9749
- try {
9750
- const parsed = JSON.parse(tokensString);
9751
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
9752
- return parsed;
9753
- }
9754
- } catch (error) {
9755
- throw new Error(`Failed to parse provider tokens: ${error instanceof Error ? error.message : "Invalid JSON"}`);
9756
- }
9757
- }
9758
- throw new Error("Provider tokens not found. Please pass tokens manually via options.providerTokens or set the x-integrate-tokens header in your request.");
9759
- }
9760
-
9761
9811
  // src/ai/utils.ts
9762
9812
  function getProviderForTool(client, toolName) {
9763
9813
  return client.getProviderForTool?.(toolName);
@@ -12124,6 +12174,23 @@ function createMCPServer(config) {
12124
12174
  const tokensHeader = webRequest.headers.get("x-integrate-tokens");
12125
12175
  const toolName = typeof body?.name === "string" ? body.name : "";
12126
12176
  let tokensResolvedProvider = null;
12177
+ if (codeModeHeader === "1") {
12178
+ logger33.debug("[MCP Code Mode Callback]", JSON.stringify({
12179
+ toolName,
12180
+ hasAuthHeader: !!authHeader,
12181
+ hasTokensHeader: !!tokensHeader,
12182
+ tokenKeys: tokensHeader ? (() => {
12183
+ try {
12184
+ return Object.keys(JSON.parse(tokensHeader));
12185
+ } catch {
12186
+ return "PARSE_ERROR";
12187
+ }
12188
+ })() : [],
12189
+ hasApiKey: !!callbackApiKey,
12190
+ hasContext: !!contextHeader,
12191
+ hasIntegrations: !!integrationsHeader
12192
+ }));
12193
+ }
12127
12194
  if (codeModeHeader === "1" && tokensHeader && toolName) {
12128
12195
  try {
12129
12196
  const tokens = JSON.parse(tokensHeader);
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/code-mode/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/code-mode/executor.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,5 @@
12
12
  * dependencies. It is NOT imported by the host SDK — it only ships as a
13
13
  * literal payload to the sandbox.
14
14
  */
15
- export declare const RUNTIME_STUB_SOURCE = "// runtime.mjs \u2014 generated by integrate-sdk code mode\nconst MCP_URL = process.env.INTEGRATE_MCP_URL;\nconst SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;\nconst API_KEY = process.env.INTEGRATE_API_KEY || '';\nconst PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';\nconst INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';\nconst CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';\n\nif (!MCP_URL) {\n throw new Error('INTEGRATE_MCP_URL is not set \u2014 the sandbox cannot reach the MCP route.');\n}\n\nfunction camelToSnake(str) {\n return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());\n}\n\nasync function callTool(toolName, args) {\n const headers = {\n 'Content-Type': 'application/json',\n 'x-integrate-code-mode': '1',\n };\n if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;\n if (API_KEY) headers['x-integrate-api-key'] = API_KEY;\n if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;\n if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;\n if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;\n\n const res = await fetch(MCP_URL, {\n method: 'POST',\n headers,\n body: JSON.stringify({ name: toolName, arguments: args || {} }),\n });\n\n const text = await res.text();\n let payload;\n try {\n payload = text ? JSON.parse(text) : null;\n } catch {\n payload = { content: [{ type: 'text', text }] };\n }\n\n if (!res.ok) {\n let message = (payload && (payload.error || payload.message)) || 'Tool call failed: HTTP ' + res.status;\n if ((res.status === 401 || res.status === 403) && typeof text === 'string' && text.indexOf('Authorization header') !== -1) {\n message =\n 'Code Mode callback was rejected by the MCP server (HTTP ' + res.status + '). ' +\n 'The SDK route could not synthesize an Authorization header. Check the host-side ' +\n 'createMCPServer config (apiKey, getProviderToken) or pass providerTokens to the ' +\n 'AI helper. Original upstream message: ' + text;\n }\n const err = new Error(message);\n err.status = res.status;\n err.toolName = toolName;\n throw err;\n }\n\n return payload;\n}\n\nfunction createIntegrationProxy(integrationId) {\n return new Proxy({}, {\n get(_target, methodName) {\n if (typeof methodName !== 'string') return undefined;\n return (args) => callTool(integrationId + '_' + camelToSnake(methodName), args);\n },\n });\n}\n\nexport const client = new Proxy({}, {\n get(_target, integrationId) {\n if (typeof integrationId !== 'string') return undefined;\n return createIntegrationProxy(integrationId);\n },\n});\n\nexport { callTool };\n";
15
+ export declare const RUNTIME_STUB_SOURCE = "// runtime.mjs \u2014 generated by integrate-sdk code mode\nconst MCP_URL = process.env.INTEGRATE_MCP_URL;\nconst SESSION_TOKEN = process.env.INTEGRATE_SESSION_TOKEN;\nconst API_KEY = process.env.INTEGRATE_API_KEY || '';\nconst PROVIDER_TOKENS = process.env.INTEGRATE_PROVIDER_TOKENS || '';\nconst INTEGRATIONS_HEADER = process.env.INTEGRATE_INTEGRATIONS || '';\nconst CONTEXT_JSON = process.env.INTEGRATE_CONTEXT || '';\n\nif (!MCP_URL) {\n throw new Error('INTEGRATE_MCP_URL is not set \u2014 the sandbox cannot reach the MCP route.');\n}\n\n// Diagnostic: log sandbox env summary to stderr so it shows up in the\n// execute_code result's stderr field for debugging auth issues.\nconsole.error('[sandbox-diag] MCP_URL=' + MCP_URL);\nconsole.error('[sandbox-diag] HAS_API_KEY=' + !!API_KEY);\nconsole.error('[sandbox-diag] HAS_SESSION_TOKEN=' + !!SESSION_TOKEN);\nconsole.error('[sandbox-diag] HAS_PROVIDER_TOKENS=' + !!PROVIDER_TOKENS);\nif (PROVIDER_TOKENS) {\n try {\n const _keys = Object.keys(JSON.parse(PROVIDER_TOKENS));\n console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));\n } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }\n}\n\nfunction camelToSnake(str) {\n return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());\n}\n\nasync function callTool(toolName, args) {\n const headers = {\n 'Content-Type': 'application/json',\n 'x-integrate-code-mode': '1',\n };\n if (SESSION_TOKEN) headers['Authorization'] = 'Bearer ' + SESSION_TOKEN;\n if (API_KEY) headers['x-integrate-api-key'] = API_KEY;\n if (PROVIDER_TOKENS) headers['x-integrate-tokens'] = PROVIDER_TOKENS;\n if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;\n if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;\n\n console.error('[sandbox-diag] callTool: ' + toolName + ' \u2192 ' + MCP_URL);\n console.error('[sandbox-diag] headers: ' + JSON.stringify({\n hasAuth: !!headers['Authorization'],\n hasApiKey: !!headers['x-integrate-api-key'],\n hasTokens: !!headers['x-integrate-tokens'],\n hasCodeMode: !!headers['x-integrate-code-mode'],\n }));\n\n const res = await fetch(MCP_URL, {\n method: 'POST',\n headers,\n body: JSON.stringify({ name: toolName, arguments: args || {} }),\n });\n\n const text = await res.text();\n console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);\n\n let payload;\n try {\n payload = text ? JSON.parse(text) : null;\n } catch {\n payload = { content: [{ type: 'text', text }] };\n }\n\n if (!res.ok) {\n let message = (payload && (payload.error || payload.message)) || 'Tool call failed: HTTP ' + res.status;\n if ((res.status === 401 || res.status === 403) && typeof text === 'string' && text.indexOf('Authorization header') !== -1) {\n message =\n 'Code Mode callback was rejected by the MCP server (HTTP ' + res.status + '). ' +\n 'The SDK route could not synthesize an Authorization header. Check the host-side ' +\n 'createMCPServer config (apiKey, getProviderToken) or pass providerTokens to the ' +\n 'AI helper. Original upstream message: ' + text;\n }\n const err = new Error(message);\n err.status = res.status;\n err.toolName = toolName;\n throw err;\n }\n\n return payload;\n}\n\nfunction createIntegrationProxy(integrationId) {\n return new Proxy({}, {\n get(_target, methodName) {\n if (typeof methodName !== 'string') return undefined;\n return (args) => callTool(integrationId + '_' + camelToSnake(methodName), args);\n },\n });\n}\n\nexport const client = new Proxy({}, {\n get(_target, integrationId) {\n if (typeof integrationId !== 'string') return undefined;\n return createIntegrationProxy(integrationId);\n },\n});\n\nexport { callTool };\n";
16
16
  //# sourceMappingURL=runtime-stub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-stub.d.ts","sourceRoot":"","sources":["../../../src/code-mode/runtime-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,mBAAmB,8rFA4E/B,CAAC"}
1
+ {"version":3,"file":"runtime-stub.d.ts","sourceRoot":"","sources":["../../../src/code-mode/runtime-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,mBAAmB,owHAmG/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../../src/code-mode/tool-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../../src/code-mode/tool-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAU9D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAO5D;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI,SAAS,CAAC,aAAa,CAAC,GAAG;IACxG;+HAC2H;IAC3H,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,EAAE,YAAY,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1O,qDAAqD;IACrD,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7G,oDAAoD;IACpD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7G,CAAC;AAqEF,sEAAsE;AACtE,wBAAgB,sCAAsC,IAAI,IAAI,CAE7D;AAcD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAMtH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY9H;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAgB,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,EAC7E,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC;IA6iCpC,gFAAgF;;IAGhF,4DAA4D;;;;;;;;IAG5D,2DAA2D;;;;;;;;EAG9D;AAmBD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE7F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,GACd,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAExB,cAAc,eAAe,CAAC;AAG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,wBAAgB,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,GAAG,EACnF,eAAe,CAAC,EACZ,eAAe,CAAC,aAAa,CAAC,GAC9B;IACA,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACH,eAAe,CAAC,EAAE;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;gBAqDM,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;eAuB9D,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAmBtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,GAAG,EACvF,wBAAwB,EACpB,eAAe,CAAC,aAAa,CAAC,GAC9B,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAC9G;IACA,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACH,gBAAgB,CAAC,EAAE;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;iBAO+B;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;kBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;mBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;iBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;oBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;EAyFzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,GAAG,EACtF,wBAAwB,EACpB,eAAe,CAAC,aAAa,CAAC,GAC9B,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAC9G;IACA,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACH,gBAAgB,CAAC,EAAE;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,WAOsB,GAAG,KAAG,OAAO,CAAC,QAAQ,CAAC,CAgE/C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "integrate-sdk",
3
- "version": "0.9.19-dev.0",
3
+ "version": "0.9.20-dev.0",
4
4
  "description": "Type-safe 3rd party integration SDK for the Integrate MCP server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",