integrate-sdk 0.9.22-dev.0 → 0.9.23

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,21 +4677,6 @@ 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 _parsed = JSON.parse(PROVIDER_TOKENS);
4689
- const _keys = Object.keys(_parsed);
4690
- console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
4691
- console.error('[sandbox-diag] TOKEN_LENGTHS=' + _keys.map(k => k + ':' + (typeof _parsed[k] === 'string' ? _parsed[k].length : typeof _parsed[k])).join(','));
4692
- } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
4693
- }
4694
-
4695
4680
  function camelToSnake(str) {
4696
4681
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
4697
4682
  }
@@ -4707,14 +4692,6 @@ async function callTool(toolName, args) {
4707
4692
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
4708
4693
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
4709
4694
 
4710
- console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
4711
- console.error('[sandbox-diag] headers: ' + JSON.stringify({
4712
- hasAuth: !!headers['Authorization'],
4713
- hasApiKey: !!headers['x-integrate-api-key'],
4714
- hasTokens: !!headers['x-integrate-tokens'],
4715
- hasCodeMode: !!headers['x-integrate-code-mode'],
4716
- }));
4717
-
4718
4695
  const res = await fetch(MCP_URL, {
4719
4696
  method: 'POST',
4720
4697
  headers,
@@ -4722,7 +4699,6 @@ async function callTool(toolName, args) {
4722
4699
  });
4723
4700
 
4724
4701
  const text = await res.text();
4725
- console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
4726
4702
 
4727
4703
  let payload;
4728
4704
  try {
@@ -4901,16 +4877,6 @@ async function executeSandboxCode(options) {
4901
4877
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
4902
4878
  if (options.context)
4903
4879
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
4904
- console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
4905
- mcpUrl: options.mcpUrl,
4906
- hasApiKey: !!options.apiKey,
4907
- hasSessionToken: !!options.sessionToken,
4908
- providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
4909
- hasIntegrations: !!options.integrationsHeader,
4910
- hasContext: !!options.context,
4911
- runtime,
4912
- timeoutMs
4913
- }));
4914
4880
  const cmd = await sandbox.runCommand({
4915
4881
  cmd: "node",
4916
4882
  args: ["user.mjs"],
@@ -5037,13 +5003,9 @@ ${generated.compact}`;
5037
5003
  }
5038
5004
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
5039
5005
  let resolvedTokens = providerTokens;
5040
- let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
5041
5006
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
5042
5007
  try {
5043
5008
  resolvedTokens = await getProviderTokens();
5044
- if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
5045
- tokenSource = "request-header";
5046
- }
5047
5009
  } catch {}
5048
5010
  }
5049
5011
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
@@ -5064,17 +5026,9 @@ ${generated.compact}`;
5064
5026
  }
5065
5027
  if (Object.keys(resolvedTokens).length === 0) {
5066
5028
  resolvedTokens = undefined;
5067
- } else {
5068
- tokenSource = "oauthManager";
5069
5029
  }
5070
5030
  }
5071
5031
  }
5072
- console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
5073
- source: tokenSource,
5074
- keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
5075
- hasApiKey: !!apiKey,
5076
- mcpUrl
5077
- }));
5078
5032
  return executeSandboxCode({
5079
5033
  code,
5080
5034
  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,21 +30,6 @@ 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 _parsed = JSON.parse(PROVIDER_TOKENS);
42
- const _keys = Object.keys(_parsed);
43
- console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
44
- console.error('[sandbox-diag] TOKEN_LENGTHS=' + _keys.map(k => k + ':' + (typeof _parsed[k] === 'string' ? _parsed[k].length : typeof _parsed[k])).join(','));
45
- } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
46
- }
47
-
48
33
  function camelToSnake(str) {
49
34
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
50
35
  }
@@ -60,14 +45,6 @@ async function callTool(toolName, args) {
60
45
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
61
46
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
62
47
 
63
- console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
64
- console.error('[sandbox-diag] headers: ' + JSON.stringify({
65
- hasAuth: !!headers['Authorization'],
66
- hasApiKey: !!headers['x-integrate-api-key'],
67
- hasTokens: !!headers['x-integrate-tokens'],
68
- hasCodeMode: !!headers['x-integrate-code-mode'],
69
- }));
70
-
71
48
  const res = await fetch(MCP_URL, {
72
49
  method: 'POST',
73
50
  headers,
@@ -75,7 +52,6 @@ async function callTool(toolName, args) {
75
52
  });
76
53
 
77
54
  const text = await res.text();
78
- console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
79
55
 
80
56
  let payload;
81
57
  try {
@@ -265,16 +241,6 @@ async function executeSandboxCode(options) {
265
241
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
266
242
  if (options.context)
267
243
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
268
- console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
269
- mcpUrl: options.mcpUrl,
270
- hasApiKey: !!options.apiKey,
271
- hasSessionToken: !!options.sessionToken,
272
- providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
273
- hasIntegrations: !!options.integrationsHeader,
274
- hasContext: !!options.context,
275
- runtime,
276
- timeoutMs
277
- }));
278
244
  const cmd = await sandbox.runCommand({
279
245
  cmd: "node",
280
246
  args: ["user.mjs"],
@@ -275,21 +275,6 @@ 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 _parsed = JSON.parse(PROVIDER_TOKENS);
287
- const _keys = Object.keys(_parsed);
288
- console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
289
- console.error('[sandbox-diag] TOKEN_LENGTHS=' + _keys.map(k => k + ':' + (typeof _parsed[k] === 'string' ? _parsed[k].length : typeof _parsed[k])).join(','));
290
- } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
291
- }
292
-
293
278
  function camelToSnake(str) {
294
279
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
295
280
  }
@@ -305,14 +290,6 @@ async function callTool(toolName, args) {
305
290
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
306
291
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
307
292
 
308
- console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
309
- console.error('[sandbox-diag] headers: ' + JSON.stringify({
310
- hasAuth: !!headers['Authorization'],
311
- hasApiKey: !!headers['x-integrate-api-key'],
312
- hasTokens: !!headers['x-integrate-tokens'],
313
- hasCodeMode: !!headers['x-integrate-code-mode'],
314
- }));
315
-
316
293
  const res = await fetch(MCP_URL, {
317
294
  method: 'POST',
318
295
  headers,
@@ -320,7 +297,6 @@ async function callTool(toolName, args) {
320
297
  });
321
298
 
322
299
  const text = await res.text();
323
- console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
324
300
 
325
301
  let payload;
326
302
  try {
@@ -510,16 +486,6 @@ async function executeSandboxCode(options) {
510
486
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
511
487
  if (options.context)
512
488
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
513
- console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
514
- mcpUrl: options.mcpUrl,
515
- hasApiKey: !!options.apiKey,
516
- hasSessionToken: !!options.sessionToken,
517
- providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
518
- hasIntegrations: !!options.integrationsHeader,
519
- hasContext: !!options.context,
520
- runtime,
521
- timeoutMs
522
- }));
523
489
  const cmd = await sandbox.runCommand({
524
490
  cmd: "node",
525
491
  args: ["user.mjs"],
@@ -705,13 +671,9 @@ ${generated.compact}`;
705
671
  }
706
672
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
707
673
  let resolvedTokens = providerTokens;
708
- let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
709
674
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
710
675
  try {
711
676
  resolvedTokens = await getProviderTokens();
712
- if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
713
- tokenSource = "request-header";
714
- }
715
677
  } catch {}
716
678
  }
717
679
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
@@ -732,17 +694,9 @@ ${generated.compact}`;
732
694
  }
733
695
  if (Object.keys(resolvedTokens).length === 0) {
734
696
  resolvedTokens = undefined;
735
- } else {
736
- tokenSource = "oauthManager";
737
697
  }
738
698
  }
739
699
  }
740
- console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
741
- source: tokenSource,
742
- keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
743
- hasApiKey: !!apiKey,
744
- mcpUrl
745
- }));
746
700
  return executeSandboxCode({
747
701
  code,
748
702
  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\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 _parsed = JSON.parse(PROVIDER_TOKENS);\n const _keys = Object.keys(_parsed);\n console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));\n console.error('[sandbox-diag] TOKEN_LENGTHS=' + _keys.map(k => k + ':' + (typeof _parsed[k] === 'string' ? _parsed[k].length : typeof _parsed[k])).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";
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\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,s8HAqG/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,gsFA6E/B,CAAC"}
@@ -30,21 +30,6 @@ 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 _parsed = JSON.parse(PROVIDER_TOKENS);
42
- const _keys = Object.keys(_parsed);
43
- console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
44
- console.error('[sandbox-diag] TOKEN_LENGTHS=' + _keys.map(k => k + ':' + (typeof _parsed[k] === 'string' ? _parsed[k].length : typeof _parsed[k])).join(','));
45
- } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
46
- }
47
-
48
33
  function camelToSnake(str) {
49
34
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
50
35
  }
@@ -60,14 +45,6 @@ async function callTool(toolName, args) {
60
45
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
61
46
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
62
47
 
63
- console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
64
- console.error('[sandbox-diag] headers: ' + JSON.stringify({
65
- hasAuth: !!headers['Authorization'],
66
- hasApiKey: !!headers['x-integrate-api-key'],
67
- hasTokens: !!headers['x-integrate-tokens'],
68
- hasCodeMode: !!headers['x-integrate-code-mode'],
69
- }));
70
-
71
48
  const res = await fetch(MCP_URL, {
72
49
  method: 'POST',
73
50
  headers,
@@ -75,7 +52,6 @@ async function callTool(toolName, args) {
75
52
  });
76
53
 
77
54
  const text = await res.text();
78
- console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
79
55
 
80
56
  let payload;
81
57
  try {
@@ -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,21 +275,6 @@ 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 _parsed = JSON.parse(PROVIDER_TOKENS);
287
- const _keys = Object.keys(_parsed);
288
- console.error('[sandbox-diag] PROVIDER_TOKEN_KEYS=' + _keys.join(','));
289
- console.error('[sandbox-diag] TOKEN_LENGTHS=' + _keys.map(k => k + ':' + (typeof _parsed[k] === 'string' ? _parsed[k].length : typeof _parsed[k])).join(','));
290
- } catch { console.error('[sandbox-diag] PROVIDER_TOKENS is not valid JSON'); }
291
- }
292
-
293
278
  function camelToSnake(str) {
294
279
  return str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());
295
280
  }
@@ -305,14 +290,6 @@ async function callTool(toolName, args) {
305
290
  if (INTEGRATIONS_HEADER) headers['x-integrations'] = INTEGRATIONS_HEADER;
306
291
  if (CONTEXT_JSON) headers['x-integrate-context'] = CONTEXT_JSON;
307
292
 
308
- console.error('[sandbox-diag] callTool: ' + toolName + ' → ' + MCP_URL);
309
- console.error('[sandbox-diag] headers: ' + JSON.stringify({
310
- hasAuth: !!headers['Authorization'],
311
- hasApiKey: !!headers['x-integrate-api-key'],
312
- hasTokens: !!headers['x-integrate-tokens'],
313
- hasCodeMode: !!headers['x-integrate-code-mode'],
314
- }));
315
-
316
293
  const res = await fetch(MCP_URL, {
317
294
  method: 'POST',
318
295
  headers,
@@ -320,7 +297,6 @@ async function callTool(toolName, args) {
320
297
  });
321
298
 
322
299
  const text = await res.text();
323
- console.error('[sandbox-diag] response: HTTP ' + res.status + ' len=' + text.length);
324
300
 
325
301
  let payload;
326
302
  try {
@@ -510,16 +486,6 @@ async function executeSandboxCode(options) {
510
486
  env.INTEGRATE_INTEGRATIONS = options.integrationsHeader;
511
487
  if (options.context)
512
488
  env.INTEGRATE_CONTEXT = JSON.stringify(options.context);
513
- console.debug("[integrate-sdk] Sandbox env:", JSON.stringify({
514
- mcpUrl: options.mcpUrl,
515
- hasApiKey: !!options.apiKey,
516
- hasSessionToken: !!options.sessionToken,
517
- providerTokenKeys: options.providerTokens ? Object.keys(options.providerTokens) : [],
518
- hasIntegrations: !!options.integrationsHeader,
519
- hasContext: !!options.context,
520
- runtime,
521
- timeoutMs
522
- }));
523
489
  const cmd = await sandbox.runCommand({
524
490
  cmd: "node",
525
491
  args: ["user.mjs"],
@@ -705,13 +671,9 @@ ${generated.compact}`;
705
671
  }
706
672
  const mcpUrl = publicUrl.replace(/\/$/, "") + "/api/integrate/mcp";
707
673
  let resolvedTokens = providerTokens;
708
- let tokenSource = resolvedTokens && Object.keys(resolvedTokens).length > 0 ? "build-time" : "none";
709
674
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
710
675
  try {
711
676
  resolvedTokens = await getProviderTokens();
712
- if (resolvedTokens && Object.keys(resolvedTokens).length > 0) {
713
- tokenSource = "request-header";
714
- }
715
677
  } catch {}
716
678
  }
717
679
  if (!resolvedTokens || Object.keys(resolvedTokens).length === 0) {
@@ -732,17 +694,9 @@ ${generated.compact}`;
732
694
  }
733
695
  if (Object.keys(resolvedTokens).length === 0) {
734
696
  resolvedTokens = undefined;
735
- } else {
736
- tokenSource = "oauthManager";
737
697
  }
738
698
  }
739
699
  }
740
- console.debug("[integrate-sdk] execute_code token resolution:", JSON.stringify({
741
- source: tokenSource,
742
- keys: resolvedTokens ? Object.keys(resolvedTokens) : [],
743
- hasApiKey: !!apiKey,
744
- mcpUrl
745
- }));
746
700
  return executeSandboxCode({
747
701
  code,
748
702
  mcpUrl,
package/dist/index.js CHANGED
@@ -3396,12 +3396,6 @@ class OAuthHandler {
3396
3396
  arguments: request.arguments || {}
3397
3397
  }
3398
3398
  };
3399
- console.warn("[integrate-sdk] handleToolCall →", url, JSON.stringify({
3400
- tool: request.name,
3401
- hasAuth: !!headers["Authorization"],
3402
- hasApiKey: !!headers["X-API-KEY"],
3403
- headerKeys: Object.keys(headers)
3404
- }));
3405
3399
  let response = await fetch(url, {
3406
3400
  method: "POST",
3407
3401
  headers,
@@ -3575,13 +3569,6 @@ function createNextOAuthHandler(config) {
3575
3569
  const codeModeHeader = req.headers.get("x-integrate-code-mode");
3576
3570
  const tokensHeader = req.headers.get("x-integrate-tokens");
3577
3571
  const toolName = typeof body?.name === "string" ? body.name : "";
3578
- console.warn("[integrate-sdk] nextjs mcp() handler:", JSON.stringify({
3579
- toolName,
3580
- hasAuth: !!authHeader,
3581
- codeModeHeader,
3582
- hasTokensHeader: !!tokensHeader,
3583
- tokensHeaderLength: tokensHeader?.length ?? 0
3584
- }));
3585
3572
  if (codeModeHeader === "1" && tokensHeader && toolName) {
3586
3573
  try {
3587
3574
  const tokens = JSON.parse(tokensHeader);
@@ -3594,19 +3581,10 @@ function createNextOAuthHandler(config) {
3594
3581
  best = candidate;
3595
3582
  }
3596
3583
  }
3597
- console.warn("[integrate-sdk] nextjs mcp() token resolution:", JSON.stringify({
3598
- toolName,
3599
- tokenKeys: Object.keys(tokens),
3600
- bestMatch: best,
3601
- hasToken: best ? !!tokens[best] : false,
3602
- willSetAuth: !!(best && tokens[best])
3603
- }));
3604
3584
  if (best && tokens[best]) {
3605
3585
  authHeader = `Bearer ${tokens[best]}`;
3606
3586
  }
3607
- } catch (e) {
3608
- console.warn("[integrate-sdk] nextjs mcp() token parse error:", e instanceof Error ? e.message : e);
3609
- }
3587
+ } catch {}
3610
3588
  }
3611
3589
  const result = await handler.handleToolCall(body, authHeader, integrationsHeader);
3612
3590
  return Response.json(result);
package/dist/oauth.js CHANGED
@@ -831,12 +831,6 @@ class OAuthHandler {
831
831
  arguments: request.arguments || {}
832
832
  }
833
833
  };
834
- console.warn("[integrate-sdk] handleToolCall →", url, JSON.stringify({
835
- tool: request.name,
836
- hasAuth: !!headers["Authorization"],
837
- hasApiKey: !!headers["X-API-KEY"],
838
- headerKeys: Object.keys(headers)
839
- }));
840
834
  let response = await fetch(url, {
841
835
  method: "POST",
842
836
  headers,