integrate-sdk 0.9.8-dev.0 → 0.9.9-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/auto-routes.js +68 -9
- package/dist/adapters/index.js +68 -9
- package/dist/adapters/nextjs.js +68 -9
- package/dist/adapters/node.js +68 -9
- package/dist/adapters/svelte-kit.js +68 -9
- package/dist/adapters/tanstack-start.js +68 -9
- package/dist/ai/anthropic.d.ts.map +1 -1
- package/dist/ai/anthropic.js +31 -5
- package/dist/ai/google.d.ts.map +1 -1
- package/dist/ai/google.js +31 -5
- package/dist/ai/index.js +67 -8
- package/dist/ai/openai.d.ts.map +1 -1
- package/dist/ai/openai.js +31 -5
- package/dist/ai/vercel-ai.d.ts.map +1 -1
- package/dist/ai/vercel-ai.js +31 -5
- package/dist/code-mode/index.js +25 -4
- package/dist/code-mode/tool-builder.d.ts +16 -0
- package/dist/code-mode/tool-builder.d.ts.map +1 -1
- package/dist/code-mode/tool-builder.js +28 -4
- package/dist/index.js +68 -9
- package/dist/oauth.js +68 -9
- package/dist/server.js +68 -9
- package/dist/src/ai/anthropic.d.ts.map +1 -1
- package/dist/src/ai/google.d.ts.map +1 -1
- package/dist/src/ai/openai.d.ts.map +1 -1
- package/dist/src/ai/vercel-ai.d.ts.map +1 -1
- package/dist/src/code-mode/tool-builder.d.ts +16 -0
- package/dist/src/code-mode/tool-builder.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9186,12 +9186,22 @@ function resolveCodeModeClientConfig(client) {
|
|
|
9186
9186
|
const oauthConfig = client.__oauthConfig;
|
|
9187
9187
|
return oauthConfig?.codeMode ?? {};
|
|
9188
9188
|
}
|
|
9189
|
-
async function
|
|
9190
|
-
if (!await isSandboxAvailable())
|
|
9191
|
-
return false;
|
|
9189
|
+
async function diagnoseCodeMode(client) {
|
|
9190
|
+
if (!await isSandboxAvailable()) {
|
|
9191
|
+
return { available: false, reason: "sandbox-missing" };
|
|
9192
|
+
}
|
|
9192
9193
|
const serverConfig = resolveCodeModeClientConfig(client);
|
|
9193
9194
|
const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
|
|
9194
|
-
|
|
9195
|
+
if (!publicUrl) {
|
|
9196
|
+
return { available: false, reason: "no-public-url" };
|
|
9197
|
+
}
|
|
9198
|
+
return { available: true };
|
|
9199
|
+
}
|
|
9200
|
+
function warnCodeModeFallback(reason) {
|
|
9201
|
+
if (warnedCodeModeReasons.has(reason))
|
|
9202
|
+
return;
|
|
9203
|
+
warnedCodeModeReasons.add(reason);
|
|
9204
|
+
console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
|
|
9195
9205
|
}
|
|
9196
9206
|
function buildCodeModeTool(client, options) {
|
|
9197
9207
|
const { tools, providerTokens, context, integrationIds } = options;
|
|
@@ -9247,7 +9257,7 @@ ${generated.source}
|
|
|
9247
9257
|
execute
|
|
9248
9258
|
};
|
|
9249
9259
|
}
|
|
9250
|
-
var CODE_MODE_TOOL_NAME = "execute_code", DEFAULT_INSTRUCTIONS;
|
|
9260
|
+
var CODE_MODE_TOOL_NAME = "execute_code", DEFAULT_INSTRUCTIONS, CODE_MODE_UNAVAILABLE_MESSAGES, warnedCodeModeReasons;
|
|
9251
9261
|
var init_tool_builder = __esm(() => {
|
|
9252
9262
|
init_type_generator();
|
|
9253
9263
|
init_executor();
|
|
@@ -9272,6 +9282,11 @@ var init_tool_builder = __esm(() => {
|
|
|
9272
9282
|
"API surface:"
|
|
9273
9283
|
].join(`
|
|
9274
9284
|
`);
|
|
9285
|
+
CODE_MODE_UNAVAILABLE_MESSAGES = {
|
|
9286
|
+
"sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
|
|
9287
|
+
"no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
|
|
9288
|
+
};
|
|
9289
|
+
warnedCodeModeReasons = new Set;
|
|
9275
9290
|
});
|
|
9276
9291
|
|
|
9277
9292
|
// src/ai/vercel-ai.ts
|
|
@@ -9298,7 +9313,18 @@ async function getVercelAITools(client, options) {
|
|
|
9298
9313
|
await ensureClientConnected(client);
|
|
9299
9314
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
9300
9315
|
const vercelTools = {};
|
|
9301
|
-
|
|
9316
|
+
let effectiveMode;
|
|
9317
|
+
if (options?.mode !== undefined) {
|
|
9318
|
+
effectiveMode = options.mode;
|
|
9319
|
+
} else {
|
|
9320
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
9321
|
+
if (diagnosis.available) {
|
|
9322
|
+
effectiveMode = "code";
|
|
9323
|
+
} else {
|
|
9324
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
9325
|
+
effectiveMode = "tools";
|
|
9326
|
+
}
|
|
9327
|
+
}
|
|
9302
9328
|
if (effectiveMode === "code") {
|
|
9303
9329
|
const codeTool = buildCodeModeTool(client, {
|
|
9304
9330
|
tools: mcpTools,
|
|
@@ -10757,7 +10783,18 @@ async function getOpenAITools(client, options) {
|
|
|
10757
10783
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
10758
10784
|
await ensureClientConnected(client);
|
|
10759
10785
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
10760
|
-
|
|
10786
|
+
let effectiveMode;
|
|
10787
|
+
if (options?.mode !== undefined) {
|
|
10788
|
+
effectiveMode = options.mode;
|
|
10789
|
+
} else {
|
|
10790
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
10791
|
+
if (diagnosis.available) {
|
|
10792
|
+
effectiveMode = "code";
|
|
10793
|
+
} else {
|
|
10794
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
10795
|
+
effectiveMode = "tools";
|
|
10796
|
+
}
|
|
10797
|
+
}
|
|
10761
10798
|
const openaiTools = effectiveMode === "code" ? (() => {
|
|
10762
10799
|
const codeTool = buildCodeModeTool(client, {
|
|
10763
10800
|
tools: mcpTools,
|
|
@@ -10937,7 +10974,18 @@ async function getAnthropicTools(client, options) {
|
|
|
10937
10974
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
10938
10975
|
await ensureClientConnected(client);
|
|
10939
10976
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
10940
|
-
|
|
10977
|
+
let effectiveMode;
|
|
10978
|
+
if (options?.mode !== undefined) {
|
|
10979
|
+
effectiveMode = options.mode;
|
|
10980
|
+
} else {
|
|
10981
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
10982
|
+
if (diagnosis.available) {
|
|
10983
|
+
effectiveMode = "code";
|
|
10984
|
+
} else {
|
|
10985
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
10986
|
+
effectiveMode = "tools";
|
|
10987
|
+
}
|
|
10988
|
+
}
|
|
10941
10989
|
const anthropicTools = effectiveMode === "code" ? (() => {
|
|
10942
10990
|
const codeTool = buildCodeModeTool(client, {
|
|
10943
10991
|
tools: mcpTools,
|
|
@@ -11126,7 +11174,18 @@ async function getGoogleTools(client, options) {
|
|
|
11126
11174
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
11127
11175
|
await ensureClientConnected(client);
|
|
11128
11176
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
11129
|
-
|
|
11177
|
+
let effectiveMode;
|
|
11178
|
+
if (options?.mode !== undefined) {
|
|
11179
|
+
effectiveMode = options.mode;
|
|
11180
|
+
} else {
|
|
11181
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
11182
|
+
if (diagnosis.available) {
|
|
11183
|
+
effectiveMode = "code";
|
|
11184
|
+
} else {
|
|
11185
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
11186
|
+
effectiveMode = "tools";
|
|
11187
|
+
}
|
|
11188
|
+
}
|
|
11130
11189
|
let googleTools;
|
|
11131
11190
|
if (effectiveMode === "code") {
|
|
11132
11191
|
const TypeEnum = await getGoogleType();
|
package/dist/oauth.js
CHANGED
|
@@ -9020,12 +9020,22 @@ function resolveCodeModeClientConfig(client) {
|
|
|
9020
9020
|
const oauthConfig = client.__oauthConfig;
|
|
9021
9021
|
return oauthConfig?.codeMode ?? {};
|
|
9022
9022
|
}
|
|
9023
|
-
async function
|
|
9024
|
-
if (!await isSandboxAvailable())
|
|
9025
|
-
return false;
|
|
9023
|
+
async function diagnoseCodeMode(client) {
|
|
9024
|
+
if (!await isSandboxAvailable()) {
|
|
9025
|
+
return { available: false, reason: "sandbox-missing" };
|
|
9026
|
+
}
|
|
9026
9027
|
const serverConfig = resolveCodeModeClientConfig(client);
|
|
9027
9028
|
const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
|
|
9028
|
-
|
|
9029
|
+
if (!publicUrl) {
|
|
9030
|
+
return { available: false, reason: "no-public-url" };
|
|
9031
|
+
}
|
|
9032
|
+
return { available: true };
|
|
9033
|
+
}
|
|
9034
|
+
function warnCodeModeFallback(reason) {
|
|
9035
|
+
if (warnedCodeModeReasons.has(reason))
|
|
9036
|
+
return;
|
|
9037
|
+
warnedCodeModeReasons.add(reason);
|
|
9038
|
+
console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
|
|
9029
9039
|
}
|
|
9030
9040
|
function buildCodeModeTool(client, options) {
|
|
9031
9041
|
const { tools, providerTokens, context, integrationIds } = options;
|
|
@@ -9081,7 +9091,7 @@ ${generated.source}
|
|
|
9081
9091
|
execute
|
|
9082
9092
|
};
|
|
9083
9093
|
}
|
|
9084
|
-
var CODE_MODE_TOOL_NAME = "execute_code", DEFAULT_INSTRUCTIONS;
|
|
9094
|
+
var CODE_MODE_TOOL_NAME = "execute_code", DEFAULT_INSTRUCTIONS, CODE_MODE_UNAVAILABLE_MESSAGES, warnedCodeModeReasons;
|
|
9085
9095
|
var init_tool_builder = __esm(() => {
|
|
9086
9096
|
init_type_generator();
|
|
9087
9097
|
init_executor();
|
|
@@ -9106,6 +9116,11 @@ var init_tool_builder = __esm(() => {
|
|
|
9106
9116
|
"API surface:"
|
|
9107
9117
|
].join(`
|
|
9108
9118
|
`);
|
|
9119
|
+
CODE_MODE_UNAVAILABLE_MESSAGES = {
|
|
9120
|
+
"sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
|
|
9121
|
+
"no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
|
|
9122
|
+
};
|
|
9123
|
+
warnedCodeModeReasons = new Set;
|
|
9109
9124
|
});
|
|
9110
9125
|
|
|
9111
9126
|
// src/ai/vercel-ai.ts
|
|
@@ -9132,7 +9147,18 @@ async function getVercelAITools(client, options) {
|
|
|
9132
9147
|
await ensureClientConnected(client);
|
|
9133
9148
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
9134
9149
|
const vercelTools = {};
|
|
9135
|
-
|
|
9150
|
+
let effectiveMode;
|
|
9151
|
+
if (options?.mode !== undefined) {
|
|
9152
|
+
effectiveMode = options.mode;
|
|
9153
|
+
} else {
|
|
9154
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
9155
|
+
if (diagnosis.available) {
|
|
9156
|
+
effectiveMode = "code";
|
|
9157
|
+
} else {
|
|
9158
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
9159
|
+
effectiveMode = "tools";
|
|
9160
|
+
}
|
|
9161
|
+
}
|
|
9136
9162
|
if (effectiveMode === "code") {
|
|
9137
9163
|
const codeTool = buildCodeModeTool(client, {
|
|
9138
9164
|
tools: mcpTools,
|
|
@@ -10591,7 +10617,18 @@ async function getOpenAITools(client, options) {
|
|
|
10591
10617
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
10592
10618
|
await ensureClientConnected(client);
|
|
10593
10619
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
10594
|
-
|
|
10620
|
+
let effectiveMode;
|
|
10621
|
+
if (options?.mode !== undefined) {
|
|
10622
|
+
effectiveMode = options.mode;
|
|
10623
|
+
} else {
|
|
10624
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
10625
|
+
if (diagnosis.available) {
|
|
10626
|
+
effectiveMode = "code";
|
|
10627
|
+
} else {
|
|
10628
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
10629
|
+
effectiveMode = "tools";
|
|
10630
|
+
}
|
|
10631
|
+
}
|
|
10595
10632
|
const openaiTools = effectiveMode === "code" ? (() => {
|
|
10596
10633
|
const codeTool = buildCodeModeTool(client, {
|
|
10597
10634
|
tools: mcpTools,
|
|
@@ -10771,7 +10808,18 @@ async function getAnthropicTools(client, options) {
|
|
|
10771
10808
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
10772
10809
|
await ensureClientConnected(client);
|
|
10773
10810
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
10774
|
-
|
|
10811
|
+
let effectiveMode;
|
|
10812
|
+
if (options?.mode !== undefined) {
|
|
10813
|
+
effectiveMode = options.mode;
|
|
10814
|
+
} else {
|
|
10815
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
10816
|
+
if (diagnosis.available) {
|
|
10817
|
+
effectiveMode = "code";
|
|
10818
|
+
} else {
|
|
10819
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
10820
|
+
effectiveMode = "tools";
|
|
10821
|
+
}
|
|
10822
|
+
}
|
|
10775
10823
|
const anthropicTools = effectiveMode === "code" ? (() => {
|
|
10776
10824
|
const codeTool = buildCodeModeTool(client, {
|
|
10777
10825
|
tools: mcpTools,
|
|
@@ -10960,7 +11008,18 @@ async function getGoogleTools(client, options) {
|
|
|
10960
11008
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
10961
11009
|
await ensureClientConnected(client);
|
|
10962
11010
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
10963
|
-
|
|
11011
|
+
let effectiveMode;
|
|
11012
|
+
if (options?.mode !== undefined) {
|
|
11013
|
+
effectiveMode = options.mode;
|
|
11014
|
+
} else {
|
|
11015
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
11016
|
+
if (diagnosis.available) {
|
|
11017
|
+
effectiveMode = "code";
|
|
11018
|
+
} else {
|
|
11019
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
11020
|
+
effectiveMode = "tools";
|
|
11021
|
+
}
|
|
11022
|
+
}
|
|
10964
11023
|
let googleTools;
|
|
10965
11024
|
if (effectiveMode === "code") {
|
|
10966
11025
|
const TypeEnum = await getGoogleType();
|
package/dist/server.js
CHANGED
|
@@ -9700,12 +9700,22 @@ function resolveCodeModeClientConfig(client) {
|
|
|
9700
9700
|
const oauthConfig = client.__oauthConfig;
|
|
9701
9701
|
return oauthConfig?.codeMode ?? {};
|
|
9702
9702
|
}
|
|
9703
|
-
async function
|
|
9704
|
-
if (!await isSandboxAvailable())
|
|
9705
|
-
return false;
|
|
9703
|
+
async function diagnoseCodeMode(client) {
|
|
9704
|
+
if (!await isSandboxAvailable()) {
|
|
9705
|
+
return { available: false, reason: "sandbox-missing" };
|
|
9706
|
+
}
|
|
9706
9707
|
const serverConfig = resolveCodeModeClientConfig(client);
|
|
9707
9708
|
const publicUrl = serverConfig.publicUrl ?? getEnv("INTEGRATE_PUBLIC_URL");
|
|
9708
|
-
|
|
9709
|
+
if (!publicUrl) {
|
|
9710
|
+
return { available: false, reason: "no-public-url" };
|
|
9711
|
+
}
|
|
9712
|
+
return { available: true };
|
|
9713
|
+
}
|
|
9714
|
+
function warnCodeModeFallback(reason) {
|
|
9715
|
+
if (warnedCodeModeReasons.has(reason))
|
|
9716
|
+
return;
|
|
9717
|
+
warnedCodeModeReasons.add(reason);
|
|
9718
|
+
console.warn(CODE_MODE_UNAVAILABLE_MESSAGES[reason]);
|
|
9709
9719
|
}
|
|
9710
9720
|
function buildCodeModeTool(client, options) {
|
|
9711
9721
|
const { tools, providerTokens, context, integrationIds } = options;
|
|
@@ -9761,7 +9771,7 @@ ${generated.source}
|
|
|
9761
9771
|
execute
|
|
9762
9772
|
};
|
|
9763
9773
|
}
|
|
9764
|
-
var CODE_MODE_TOOL_NAME = "execute_code", DEFAULT_INSTRUCTIONS;
|
|
9774
|
+
var CODE_MODE_TOOL_NAME = "execute_code", DEFAULT_INSTRUCTIONS, CODE_MODE_UNAVAILABLE_MESSAGES, warnedCodeModeReasons;
|
|
9765
9775
|
var init_tool_builder = __esm(() => {
|
|
9766
9776
|
init_type_generator();
|
|
9767
9777
|
init_executor();
|
|
@@ -9786,6 +9796,11 @@ var init_tool_builder = __esm(() => {
|
|
|
9786
9796
|
"API surface:"
|
|
9787
9797
|
].join(`
|
|
9788
9798
|
`);
|
|
9799
|
+
CODE_MODE_UNAVAILABLE_MESSAGES = {
|
|
9800
|
+
"sandbox-missing": "[integrate-sdk] Code Mode unavailable (reason: sandbox-missing) — falling back to tool mode. " + "Install `@vercel/sandbox` (e.g. `bun add @vercel/sandbox`) to enable Code Mode.",
|
|
9801
|
+
"no-public-url": "[integrate-sdk] Code Mode unavailable (reason: no-public-url) — falling back to tool mode. " + "Set `codeMode.publicUrl` on your server config or the `INTEGRATE_PUBLIC_URL` env var."
|
|
9802
|
+
};
|
|
9803
|
+
warnedCodeModeReasons = new Set;
|
|
9789
9804
|
});
|
|
9790
9805
|
|
|
9791
9806
|
// src/ai/vercel-ai.ts
|
|
@@ -9812,7 +9827,18 @@ async function getVercelAITools(client, options) {
|
|
|
9812
9827
|
await ensureClientConnected(client);
|
|
9813
9828
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
9814
9829
|
const vercelTools = {};
|
|
9815
|
-
|
|
9830
|
+
let effectiveMode;
|
|
9831
|
+
if (options?.mode !== undefined) {
|
|
9832
|
+
effectiveMode = options.mode;
|
|
9833
|
+
} else {
|
|
9834
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
9835
|
+
if (diagnosis.available) {
|
|
9836
|
+
effectiveMode = "code";
|
|
9837
|
+
} else {
|
|
9838
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
9839
|
+
effectiveMode = "tools";
|
|
9840
|
+
}
|
|
9841
|
+
}
|
|
9816
9842
|
if (effectiveMode === "code") {
|
|
9817
9843
|
const codeTool = buildCodeModeTool(client, {
|
|
9818
9844
|
tools: mcpTools,
|
|
@@ -11271,7 +11297,18 @@ async function getOpenAITools(client, options) {
|
|
|
11271
11297
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
11272
11298
|
await ensureClientConnected(client);
|
|
11273
11299
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
11274
|
-
|
|
11300
|
+
let effectiveMode;
|
|
11301
|
+
if (options?.mode !== undefined) {
|
|
11302
|
+
effectiveMode = options.mode;
|
|
11303
|
+
} else {
|
|
11304
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
11305
|
+
if (diagnosis.available) {
|
|
11306
|
+
effectiveMode = "code";
|
|
11307
|
+
} else {
|
|
11308
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
11309
|
+
effectiveMode = "tools";
|
|
11310
|
+
}
|
|
11311
|
+
}
|
|
11275
11312
|
const openaiTools = effectiveMode === "code" ? (() => {
|
|
11276
11313
|
const codeTool = buildCodeModeTool(client, {
|
|
11277
11314
|
tools: mcpTools,
|
|
@@ -11451,7 +11488,18 @@ async function getAnthropicTools(client, options) {
|
|
|
11451
11488
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
11452
11489
|
await ensureClientConnected(client);
|
|
11453
11490
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
11454
|
-
|
|
11491
|
+
let effectiveMode;
|
|
11492
|
+
if (options?.mode !== undefined) {
|
|
11493
|
+
effectiveMode = options.mode;
|
|
11494
|
+
} else {
|
|
11495
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
11496
|
+
if (diagnosis.available) {
|
|
11497
|
+
effectiveMode = "code";
|
|
11498
|
+
} else {
|
|
11499
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
11500
|
+
effectiveMode = "tools";
|
|
11501
|
+
}
|
|
11502
|
+
}
|
|
11455
11503
|
const anthropicTools = effectiveMode === "code" ? (() => {
|
|
11456
11504
|
const codeTool = buildCodeModeTool(client, {
|
|
11457
11505
|
tools: mcpTools,
|
|
@@ -11640,7 +11688,18 @@ async function getGoogleTools(client, options) {
|
|
|
11640
11688
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
11641
11689
|
await ensureClientConnected(client);
|
|
11642
11690
|
const mcpTools = await client.getEnabledToolsAsync();
|
|
11643
|
-
|
|
11691
|
+
let effectiveMode;
|
|
11692
|
+
if (options?.mode !== undefined) {
|
|
11693
|
+
effectiveMode = options.mode;
|
|
11694
|
+
} else {
|
|
11695
|
+
const diagnosis = await diagnoseCodeMode(client);
|
|
11696
|
+
if (diagnosis.available) {
|
|
11697
|
+
effectiveMode = "code";
|
|
11698
|
+
} else {
|
|
11699
|
+
warnCodeModeFallback(diagnosis.reason);
|
|
11700
|
+
effectiveMode = "tools";
|
|
11701
|
+
}
|
|
11702
|
+
}
|
|
11644
11703
|
let googleTools;
|
|
11645
11704
|
if (effectiveMode === "code") {
|
|
11646
11705
|
const TypeEnum = await getGoogleType();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/ai/anthropic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/ai/anthropic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AASjH,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AA4ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CA2E1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpG,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAkC5I"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/ai/google.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/ai/google.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAYjH,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,YAAY,EACZ,IAAI,EACL,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAuB7B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAsGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,aAAa,EAAE,kBAAkB,EAAE,GAAG,SAAS,GAAG,IAAI,EACtD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CA4DnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAwFvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/ai/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/ai/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AASjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CA2EvB;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,EAChE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyB3H"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../../src/ai/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../../src/ai/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AASpB;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,oBAAoB,gCAkE/B"}
|
|
@@ -74,7 +74,23 @@ export declare function resolveCodeModeClientConfig(client: MCPClient<any>): {
|
|
|
74
74
|
};
|
|
75
75
|
};
|
|
76
76
|
};
|
|
77
|
+
export type CodeModeUnavailableReason = "sandbox-missing" | "no-public-url";
|
|
78
|
+
export type CodeModeDiagnosis = {
|
|
79
|
+
available: true;
|
|
80
|
+
} | {
|
|
81
|
+
available: false;
|
|
82
|
+
reason: CodeModeUnavailableReason;
|
|
83
|
+
};
|
|
84
|
+
export declare function diagnoseCodeMode(client: MCPClient<any>): Promise<CodeModeDiagnosis>;
|
|
77
85
|
export declare function canUseCodeMode(client: MCPClient<any>): Promise<boolean>;
|
|
86
|
+
/** @internal — used by unit tests to reset the warn-once throttle. */
|
|
87
|
+
export declare function __resetCodeModeFallbackWarnings(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Called by AI helpers when auto-detection picks `tools` mode. Emits a
|
|
90
|
+
* throttled `console.warn` so operators can tell *why* Code Mode was
|
|
91
|
+
* silently downgraded. Each reason warns at most once per process.
|
|
92
|
+
*/
|
|
93
|
+
export declare function warnCodeModeFallback(reason: CodeModeUnavailableReason): void;
|
|
78
94
|
/**
|
|
79
95
|
* Build the `execute_code` tool definition. The returned `execute` function
|
|
80
96
|
* is what the AI provider SDK ultimately invokes when the model picks the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../../src/code-mode/tool-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,iCAAiC;IACjC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE;gBAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;aAAE,CAAA;SAAE,CAAC;KAClH,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE;YACV,IAAI,EAAE;gBAAE,IAAI,EAAE,QAAQ,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC;SAC/C,CAAC;QACF,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;QACnB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACzE;AAuBD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;CAClH,CAGA;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../../src/code-mode/tool-builder.ts"],"names":[],"mappings":"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"}
|