integrate-sdk 0.8.35 → 0.8.37
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 +371 -71
- package/dist/adapters/index.js +371 -71
- package/dist/adapters/nextjs.js +371 -71
- package/dist/adapters/node.js +371 -71
- package/dist/adapters/svelte-kit.js +371 -71
- package/dist/adapters/tanstack-start.js +371 -71
- package/dist/ai/anthropic.d.ts +3 -0
- package/dist/ai/anthropic.d.ts.map +1 -1
- package/dist/ai/anthropic.js +255 -2
- package/dist/ai/google.d.ts +3 -0
- package/dist/ai/google.d.ts.map +1 -1
- package/dist/ai/google.js +256 -2
- package/dist/ai/index.d.ts +1 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +351 -7
- package/dist/ai/openai.d.ts +3 -0
- package/dist/ai/openai.d.ts.map +1 -1
- package/dist/ai/openai.js +257 -2
- package/dist/ai/trigger-tools.d.ts +206 -0
- package/dist/ai/trigger-tools.d.ts.map +1 -0
- package/dist/ai/trigger-tools.js +4198 -0
- package/dist/ai/vercel-ai.d.ts.map +1 -1
- package/dist/ai/vercel-ai.js +217 -0
- package/dist/index.js +359 -59
- package/dist/oauth.js +371 -71
- package/dist/server.js +372 -71
- package/dist/src/ai/anthropic.d.ts +3 -0
- package/dist/src/ai/anthropic.d.ts.map +1 -1
- package/dist/src/ai/google.d.ts +3 -0
- package/dist/src/ai/google.d.ts.map +1 -1
- package/dist/src/ai/index.d.ts +1 -0
- package/dist/src/ai/index.d.ts.map +1 -1
- package/dist/src/ai/openai.d.ts +3 -0
- package/dist/src/ai/openai.d.ts.map +1 -1
- package/dist/src/ai/trigger-tools.d.ts +206 -0
- package/dist/src/ai/trigger-tools.d.ts.map +1 -0
- package/dist/src/ai/vercel-ai.d.ts.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -8194,6 +8194,230 @@ var init_utils = __esm(() => {
|
|
|
8194
8194
|
init_zod();
|
|
8195
8195
|
});
|
|
8196
8196
|
|
|
8197
|
+
// node_modules/nanoid/url-alphabet/index.js
|
|
8198
|
+
var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
8199
|
+
var init_url_alphabet = () => {};
|
|
8200
|
+
|
|
8201
|
+
// node_modules/nanoid/index.js
|
|
8202
|
+
import crypto2 from "crypto";
|
|
8203
|
+
var POOL_SIZE_MULTIPLIER = 128, pool, poolOffset, fillPool = (bytes) => {
|
|
8204
|
+
if (!pool || pool.length < bytes) {
|
|
8205
|
+
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
|
|
8206
|
+
crypto2.randomFillSync(pool);
|
|
8207
|
+
poolOffset = 0;
|
|
8208
|
+
} else if (poolOffset + bytes > pool.length) {
|
|
8209
|
+
crypto2.randomFillSync(pool);
|
|
8210
|
+
poolOffset = 0;
|
|
8211
|
+
}
|
|
8212
|
+
poolOffset += bytes;
|
|
8213
|
+
}, nanoid = (size = 21) => {
|
|
8214
|
+
fillPool(size |= 0);
|
|
8215
|
+
let id = "";
|
|
8216
|
+
for (let i = poolOffset - size;i < poolOffset; i++) {
|
|
8217
|
+
id += urlAlphabet[pool[i] & 63];
|
|
8218
|
+
}
|
|
8219
|
+
return id;
|
|
8220
|
+
};
|
|
8221
|
+
var init_nanoid = __esm(() => {
|
|
8222
|
+
init_url_alphabet();
|
|
8223
|
+
});
|
|
8224
|
+
|
|
8225
|
+
// src/triggers/utils.ts
|
|
8226
|
+
var exports_utils = {};
|
|
8227
|
+
__export(exports_utils, {
|
|
8228
|
+
validateStatusTransition: () => validateStatusTransition,
|
|
8229
|
+
generateTriggerId: () => generateTriggerId,
|
|
8230
|
+
extractProviderFromToolName: () => extractProviderFromToolName,
|
|
8231
|
+
calculateHasMore: () => calculateHasMore
|
|
8232
|
+
});
|
|
8233
|
+
function generateTriggerId() {
|
|
8234
|
+
return `trig_${nanoid(12)}`;
|
|
8235
|
+
}
|
|
8236
|
+
function extractProviderFromToolName(toolName) {
|
|
8237
|
+
const parts = toolName.split("_");
|
|
8238
|
+
return parts[0] || toolName;
|
|
8239
|
+
}
|
|
8240
|
+
function validateStatusTransition(currentStatus, targetStatus) {
|
|
8241
|
+
if (targetStatus === "paused" && currentStatus !== "active") {
|
|
8242
|
+
return {
|
|
8243
|
+
valid: false,
|
|
8244
|
+
error: `Cannot pause trigger with status '${currentStatus}'. Only 'active' triggers can be paused.`
|
|
8245
|
+
};
|
|
8246
|
+
}
|
|
8247
|
+
if (targetStatus === "active" && currentStatus !== "paused") {
|
|
8248
|
+
return {
|
|
8249
|
+
valid: false,
|
|
8250
|
+
error: `Cannot resume trigger with status '${currentStatus}'. Only 'paused' triggers can be resumed.`
|
|
8251
|
+
};
|
|
8252
|
+
}
|
|
8253
|
+
return { valid: true };
|
|
8254
|
+
}
|
|
8255
|
+
function calculateHasMore(offset, returnedCount, total) {
|
|
8256
|
+
return offset + returnedCount < total;
|
|
8257
|
+
}
|
|
8258
|
+
var init_utils2 = __esm(() => {
|
|
8259
|
+
init_nanoid();
|
|
8260
|
+
});
|
|
8261
|
+
|
|
8262
|
+
// src/ai/trigger-tools.ts
|
|
8263
|
+
function createTriggerTools(config, context) {
|
|
8264
|
+
const { callbacks } = config;
|
|
8265
|
+
return {
|
|
8266
|
+
create_trigger: {
|
|
8267
|
+
description: "Schedule a tool to run at a specific time or on a recurring schedule. Use this when the user wants to do something later.",
|
|
8268
|
+
inputSchema: exports_external.object({
|
|
8269
|
+
name: exports_external.string().optional().describe("Human-readable trigger name"),
|
|
8270
|
+
description: exports_external.string().optional().describe("Trigger description"),
|
|
8271
|
+
toolName: exports_external.string().describe("MCP tool name to execute (e.g., gmail_send_email, github_create_issue)"),
|
|
8272
|
+
toolArguments: exports_external.record(exports_external.unknown()).describe("Arguments to pass to the tool when it executes"),
|
|
8273
|
+
schedule: exports_external.union([
|
|
8274
|
+
exports_external.object({
|
|
8275
|
+
type: exports_external.literal("once"),
|
|
8276
|
+
runAt: exports_external.string().describe("ISO datetime string (e.g., 2024-12-13T22:00:00Z)")
|
|
8277
|
+
}),
|
|
8278
|
+
exports_external.object({
|
|
8279
|
+
type: exports_external.literal("cron"),
|
|
8280
|
+
expression: exports_external.string().describe("Cron expression (e.g., '0 9 * * *' for daily at 9 AM)")
|
|
8281
|
+
})
|
|
8282
|
+
]).describe("When to execute the tool")
|
|
8283
|
+
}),
|
|
8284
|
+
execute: async (args) => {
|
|
8285
|
+
const triggerId = generateTriggerId();
|
|
8286
|
+
const provider = extractProviderFromToolName(args.toolName);
|
|
8287
|
+
const now = new Date().toISOString();
|
|
8288
|
+
const trigger = {
|
|
8289
|
+
id: triggerId,
|
|
8290
|
+
...args,
|
|
8291
|
+
provider,
|
|
8292
|
+
status: "active",
|
|
8293
|
+
createdAt: now,
|
|
8294
|
+
updatedAt: now,
|
|
8295
|
+
runCount: 0
|
|
8296
|
+
};
|
|
8297
|
+
return callbacks.create(trigger, context);
|
|
8298
|
+
}
|
|
8299
|
+
},
|
|
8300
|
+
list_triggers: {
|
|
8301
|
+
description: "List all scheduled triggers with optional filtering by status or tool name",
|
|
8302
|
+
inputSchema: exports_external.object({
|
|
8303
|
+
status: exports_external.enum(["active", "paused", "completed", "failed"]).optional().describe("Filter by trigger status"),
|
|
8304
|
+
toolName: exports_external.string().optional().describe("Filter by tool name"),
|
|
8305
|
+
limit: exports_external.number().optional().describe("Maximum number of results (default: 20)"),
|
|
8306
|
+
offset: exports_external.number().optional().describe("Number of results to skip for pagination (default: 0)")
|
|
8307
|
+
}),
|
|
8308
|
+
execute: async (args) => {
|
|
8309
|
+
const params = {
|
|
8310
|
+
status: args.status,
|
|
8311
|
+
toolName: args.toolName,
|
|
8312
|
+
limit: args.limit || 20,
|
|
8313
|
+
offset: args.offset || 0
|
|
8314
|
+
};
|
|
8315
|
+
const result = await callbacks.list(params, context);
|
|
8316
|
+
const hasMore = calculateHasMore(params.offset, result.triggers.length, result.total);
|
|
8317
|
+
return {
|
|
8318
|
+
triggers: result.triggers,
|
|
8319
|
+
total: result.total,
|
|
8320
|
+
hasMore
|
|
8321
|
+
};
|
|
8322
|
+
}
|
|
8323
|
+
},
|
|
8324
|
+
get_trigger: {
|
|
8325
|
+
description: "Get details of a specific trigger by its ID",
|
|
8326
|
+
inputSchema: exports_external.object({
|
|
8327
|
+
triggerId: exports_external.string().describe("The trigger ID to retrieve")
|
|
8328
|
+
}),
|
|
8329
|
+
execute: async (args) => {
|
|
8330
|
+
const trigger = await callbacks.get(args.triggerId, context);
|
|
8331
|
+
if (!trigger) {
|
|
8332
|
+
throw new Error(`Trigger ${args.triggerId} not found`);
|
|
8333
|
+
}
|
|
8334
|
+
return trigger;
|
|
8335
|
+
}
|
|
8336
|
+
},
|
|
8337
|
+
update_trigger: {
|
|
8338
|
+
description: "Update a trigger's properties like name, description, arguments, or schedule",
|
|
8339
|
+
inputSchema: exports_external.object({
|
|
8340
|
+
triggerId: exports_external.string().describe("The trigger ID to update"),
|
|
8341
|
+
name: exports_external.string().optional().describe("New trigger name"),
|
|
8342
|
+
description: exports_external.string().optional().describe("New trigger description"),
|
|
8343
|
+
toolArguments: exports_external.record(exports_external.unknown()).optional().describe("New tool arguments"),
|
|
8344
|
+
schedule: exports_external.union([
|
|
8345
|
+
exports_external.object({
|
|
8346
|
+
type: exports_external.literal("once"),
|
|
8347
|
+
runAt: exports_external.string().describe("ISO datetime string")
|
|
8348
|
+
}),
|
|
8349
|
+
exports_external.object({
|
|
8350
|
+
type: exports_external.literal("cron"),
|
|
8351
|
+
expression: exports_external.string().describe("Cron expression")
|
|
8352
|
+
})
|
|
8353
|
+
]).optional().describe("New schedule")
|
|
8354
|
+
}),
|
|
8355
|
+
execute: async (args) => {
|
|
8356
|
+
const { triggerId, ...updates } = args;
|
|
8357
|
+
const updatesWithTimestamp = {
|
|
8358
|
+
...updates,
|
|
8359
|
+
updatedAt: new Date().toISOString()
|
|
8360
|
+
};
|
|
8361
|
+
return callbacks.update(triggerId, updatesWithTimestamp, context);
|
|
8362
|
+
}
|
|
8363
|
+
},
|
|
8364
|
+
delete_trigger: {
|
|
8365
|
+
description: "Delete a trigger permanently. This cannot be undone.",
|
|
8366
|
+
inputSchema: exports_external.object({
|
|
8367
|
+
triggerId: exports_external.string().describe("The trigger ID to delete")
|
|
8368
|
+
}),
|
|
8369
|
+
execute: async (args) => {
|
|
8370
|
+
await callbacks.delete(args.triggerId, context);
|
|
8371
|
+
return { success: true, message: `Trigger ${args.triggerId} deleted` };
|
|
8372
|
+
}
|
|
8373
|
+
},
|
|
8374
|
+
pause_trigger: {
|
|
8375
|
+
description: "Pause a trigger to temporarily stop it from executing. Can be resumed later.",
|
|
8376
|
+
inputSchema: exports_external.object({
|
|
8377
|
+
triggerId: exports_external.string().describe("The trigger ID to pause")
|
|
8378
|
+
}),
|
|
8379
|
+
execute: async (args) => {
|
|
8380
|
+
const trigger = await callbacks.get(args.triggerId, context);
|
|
8381
|
+
if (!trigger) {
|
|
8382
|
+
throw new Error(`Trigger ${args.triggerId} not found`);
|
|
8383
|
+
}
|
|
8384
|
+
const validation = validateStatusTransition(trigger.status, "paused");
|
|
8385
|
+
if (!validation.valid) {
|
|
8386
|
+
throw new Error(validation.error);
|
|
8387
|
+
}
|
|
8388
|
+
return callbacks.update(args.triggerId, {
|
|
8389
|
+
status: "paused",
|
|
8390
|
+
updatedAt: new Date().toISOString()
|
|
8391
|
+
}, context);
|
|
8392
|
+
}
|
|
8393
|
+
},
|
|
8394
|
+
resume_trigger: {
|
|
8395
|
+
description: "Resume a paused trigger to start executing it again on schedule",
|
|
8396
|
+
inputSchema: exports_external.object({
|
|
8397
|
+
triggerId: exports_external.string().describe("The trigger ID to resume")
|
|
8398
|
+
}),
|
|
8399
|
+
execute: async (args) => {
|
|
8400
|
+
const trigger = await callbacks.get(args.triggerId, context);
|
|
8401
|
+
if (!trigger) {
|
|
8402
|
+
throw new Error(`Trigger ${args.triggerId} not found`);
|
|
8403
|
+
}
|
|
8404
|
+
const validation = validateStatusTransition(trigger.status, "active");
|
|
8405
|
+
if (!validation.valid) {
|
|
8406
|
+
throw new Error(validation.error);
|
|
8407
|
+
}
|
|
8408
|
+
return callbacks.update(args.triggerId, {
|
|
8409
|
+
status: "active",
|
|
8410
|
+
updatedAt: new Date().toISOString()
|
|
8411
|
+
}, context);
|
|
8412
|
+
}
|
|
8413
|
+
}
|
|
8414
|
+
};
|
|
8415
|
+
}
|
|
8416
|
+
var init_trigger_tools = __esm(() => {
|
|
8417
|
+
init_zod();
|
|
8418
|
+
init_utils2();
|
|
8419
|
+
});
|
|
8420
|
+
|
|
8197
8421
|
// src/ai/vercel-ai.ts
|
|
8198
8422
|
function convertMCPToolToVercelAI(mcpTool, client, options) {
|
|
8199
8423
|
return {
|
|
@@ -8221,10 +8445,16 @@ async function getVercelAITools(client, options) {
|
|
|
8221
8445
|
for (const mcpTool of mcpTools) {
|
|
8222
8446
|
vercelTools[mcpTool.name] = convertMCPToolToVercelAI(mcpTool, client, finalOptions);
|
|
8223
8447
|
}
|
|
8448
|
+
const triggerConfig = client.__triggerConfig;
|
|
8449
|
+
if (triggerConfig) {
|
|
8450
|
+
const triggerTools = createTriggerTools(triggerConfig, options?.context);
|
|
8451
|
+
Object.assign(vercelTools, triggerTools);
|
|
8452
|
+
}
|
|
8224
8453
|
return vercelTools;
|
|
8225
8454
|
}
|
|
8226
8455
|
var init_vercel_ai = __esm(() => {
|
|
8227
8456
|
init_utils();
|
|
8457
|
+
init_trigger_tools();
|
|
8228
8458
|
});
|
|
8229
8459
|
|
|
8230
8460
|
// src/ai/openai.ts
|
|
@@ -8248,10 +8478,48 @@ async function getOpenAITools(client, options) {
|
|
|
8248
8478
|
}
|
|
8249
8479
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
8250
8480
|
const mcpTools = client.getEnabledTools();
|
|
8251
|
-
|
|
8481
|
+
const openaiTools = mcpTools.map((mcpTool) => convertMCPToolToOpenAI(mcpTool, client, finalOptions));
|
|
8482
|
+
const triggerConfig = client.__triggerConfig;
|
|
8483
|
+
if (triggerConfig) {
|
|
8484
|
+
const triggerTools = createTriggerTools(triggerConfig, options?.context);
|
|
8485
|
+
for (const [name, tool] of Object.entries(triggerTools)) {
|
|
8486
|
+
const zodSchema = tool.inputSchema;
|
|
8487
|
+
const jsonSchema = zodToJsonSchema(zodSchema);
|
|
8488
|
+
openaiTools.push({
|
|
8489
|
+
type: "function",
|
|
8490
|
+
name,
|
|
8491
|
+
parameters: jsonSchema,
|
|
8492
|
+
strict: options?.strict ?? null,
|
|
8493
|
+
description: tool.description || null
|
|
8494
|
+
});
|
|
8495
|
+
}
|
|
8496
|
+
}
|
|
8497
|
+
return openaiTools;
|
|
8498
|
+
}
|
|
8499
|
+
function zodToJsonSchema(schema) {
|
|
8500
|
+
if (schema._def?.typeName === "ZodObject") {
|
|
8501
|
+
const shape = schema._def.shape();
|
|
8502
|
+
const properties = {};
|
|
8503
|
+
const required = [];
|
|
8504
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
8505
|
+
const fieldSchema = value;
|
|
8506
|
+
properties[key] = { type: "string" };
|
|
8507
|
+
if (fieldSchema._def?.typeName !== "ZodOptional") {
|
|
8508
|
+
required.push(key);
|
|
8509
|
+
}
|
|
8510
|
+
}
|
|
8511
|
+
return {
|
|
8512
|
+
type: "object",
|
|
8513
|
+
properties,
|
|
8514
|
+
...required.length > 0 ? { required } : {}
|
|
8515
|
+
};
|
|
8516
|
+
}
|
|
8517
|
+
return { type: "object" };
|
|
8252
8518
|
}
|
|
8253
8519
|
async function handleOpenAIToolCalls(client, toolCalls, options) {
|
|
8254
8520
|
const toolOutputs = [];
|
|
8521
|
+
const triggerConfig = client.__triggerConfig;
|
|
8522
|
+
const triggerTools = triggerConfig ? createTriggerTools(triggerConfig, options?.context) : null;
|
|
8255
8523
|
for (const output of toolCalls) {
|
|
8256
8524
|
if (output.type === "function_call") {
|
|
8257
8525
|
const toolCall = {
|
|
@@ -8261,7 +8529,12 @@ async function handleOpenAIToolCalls(client, toolCalls, options) {
|
|
|
8261
8529
|
};
|
|
8262
8530
|
try {
|
|
8263
8531
|
const args = JSON.parse(toolCall.arguments);
|
|
8264
|
-
|
|
8532
|
+
let result;
|
|
8533
|
+
if (triggerTools && triggerTools[toolCall.name]) {
|
|
8534
|
+
result = await triggerTools[toolCall.name].execute(args);
|
|
8535
|
+
} else {
|
|
8536
|
+
result = await executeToolWithToken(client, toolCall.name, args, options);
|
|
8537
|
+
}
|
|
8265
8538
|
const resultString = JSON.stringify(result);
|
|
8266
8539
|
toolOutputs.push({
|
|
8267
8540
|
call_id: output.call_id ?? output.id ?? "",
|
|
@@ -8297,6 +8570,7 @@ async function handleOpenAIResponse(client, response, options) {
|
|
|
8297
8570
|
}
|
|
8298
8571
|
var init_openai = __esm(() => {
|
|
8299
8572
|
init_utils();
|
|
8573
|
+
init_trigger_tools();
|
|
8300
8574
|
});
|
|
8301
8575
|
|
|
8302
8576
|
// src/ai/anthropic.ts
|
|
@@ -8313,10 +8587,17 @@ function convertMCPToolToAnthropic(mcpTool, _client, _options) {
|
|
|
8313
8587
|
}
|
|
8314
8588
|
async function handleAnthropicToolCalls(client, messageContent, options) {
|
|
8315
8589
|
const toolResults = [];
|
|
8590
|
+
const triggerConfig = client.__triggerConfig;
|
|
8591
|
+
const triggerTools = triggerConfig ? createTriggerTools(triggerConfig, options?.context) : null;
|
|
8316
8592
|
const toolUseBlocks = messageContent.filter((block) => block.type === "tool_use" && ("id" in block) && ("name" in block) && ("input" in block));
|
|
8317
8593
|
for (const toolUse of toolUseBlocks) {
|
|
8318
8594
|
try {
|
|
8319
|
-
|
|
8595
|
+
let result;
|
|
8596
|
+
if (triggerTools && triggerTools[toolUse.name]) {
|
|
8597
|
+
result = await triggerTools[toolUse.name].execute(toolUse.input);
|
|
8598
|
+
} else {
|
|
8599
|
+
result = await executeToolWithToken(client, toolUse.name, toolUse.input, options);
|
|
8600
|
+
}
|
|
8320
8601
|
const resultString = JSON.stringify(result);
|
|
8321
8602
|
toolResults.push({
|
|
8322
8603
|
type: "tool_result",
|
|
@@ -8345,7 +8626,41 @@ async function getAnthropicTools(client, options) {
|
|
|
8345
8626
|
}
|
|
8346
8627
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
8347
8628
|
const mcpTools = client.getEnabledTools();
|
|
8348
|
-
|
|
8629
|
+
const anthropicTools = mcpTools.map((mcpTool) => convertMCPToolToAnthropic(mcpTool, client, finalOptions));
|
|
8630
|
+
const triggerConfig = client.__triggerConfig;
|
|
8631
|
+
if (triggerConfig) {
|
|
8632
|
+
const triggerTools = createTriggerTools(triggerConfig, options?.context);
|
|
8633
|
+
for (const [name, tool] of Object.entries(triggerTools)) {
|
|
8634
|
+
const zodSchema = tool.inputSchema;
|
|
8635
|
+
const jsonSchema = zodToAnthropicSchema(zodSchema);
|
|
8636
|
+
anthropicTools.push({
|
|
8637
|
+
name,
|
|
8638
|
+
description: tool.description || `Execute ${name}`,
|
|
8639
|
+
input_schema: jsonSchema
|
|
8640
|
+
});
|
|
8641
|
+
}
|
|
8642
|
+
}
|
|
8643
|
+
return anthropicTools;
|
|
8644
|
+
}
|
|
8645
|
+
function zodToAnthropicSchema(schema) {
|
|
8646
|
+
if (schema._def?.typeName === "ZodObject") {
|
|
8647
|
+
const shape = schema._def.shape();
|
|
8648
|
+
const properties = {};
|
|
8649
|
+
const required = [];
|
|
8650
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
8651
|
+
const fieldSchema = value;
|
|
8652
|
+
properties[key] = { type: "string" };
|
|
8653
|
+
if (fieldSchema._def?.typeName !== "ZodOptional") {
|
|
8654
|
+
required.push(key);
|
|
8655
|
+
}
|
|
8656
|
+
}
|
|
8657
|
+
return {
|
|
8658
|
+
type: "object",
|
|
8659
|
+
properties,
|
|
8660
|
+
...required.length > 0 ? { required } : {}
|
|
8661
|
+
};
|
|
8662
|
+
}
|
|
8663
|
+
return { type: "object", properties: {}, required: [] };
|
|
8349
8664
|
}
|
|
8350
8665
|
async function handleAnthropicMessage(client, message, options) {
|
|
8351
8666
|
let providerTokens = options?.providerTokens;
|
|
@@ -8372,6 +8687,7 @@ async function handleAnthropicMessage(client, message, options) {
|
|
|
8372
8687
|
}
|
|
8373
8688
|
var init_anthropic = __esm(() => {
|
|
8374
8689
|
init_utils();
|
|
8690
|
+
init_trigger_tools();
|
|
8375
8691
|
});
|
|
8376
8692
|
|
|
8377
8693
|
// src/ai/google.ts
|
|
@@ -8454,12 +8770,19 @@ async function executeGoogleFunctionCalls(client, functionCalls, options) {
|
|
|
8454
8770
|
} catch {}
|
|
8455
8771
|
}
|
|
8456
8772
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
8773
|
+
const triggerConfig = client.__triggerConfig;
|
|
8774
|
+
const triggerTools = triggerConfig ? createTriggerTools(triggerConfig, options?.context) : null;
|
|
8457
8775
|
const results = await Promise.all(functionCalls.map(async (call) => {
|
|
8458
8776
|
if (!call?.name) {
|
|
8459
8777
|
throw new Error("Function call must have a name");
|
|
8460
8778
|
}
|
|
8461
8779
|
const args = call.args || {};
|
|
8462
|
-
|
|
8780
|
+
let result;
|
|
8781
|
+
if (triggerTools && triggerTools[call.name]) {
|
|
8782
|
+
result = await triggerTools[call.name].execute(args);
|
|
8783
|
+
} else {
|
|
8784
|
+
result = await executeToolWithToken(client, call.name, args, finalOptions);
|
|
8785
|
+
}
|
|
8463
8786
|
return JSON.stringify(result);
|
|
8464
8787
|
}));
|
|
8465
8788
|
return results;
|
|
@@ -8474,10 +8797,46 @@ async function getGoogleTools(client, options) {
|
|
|
8474
8797
|
}
|
|
8475
8798
|
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
8476
8799
|
const mcpTools = client.getEnabledTools();
|
|
8477
|
-
|
|
8800
|
+
const googleTools = await Promise.all(mcpTools.map((mcpTool) => convertMCPToolToGoogle(mcpTool, client, finalOptions)));
|
|
8801
|
+
const triggerConfig = client.__triggerConfig;
|
|
8802
|
+
if (triggerConfig) {
|
|
8803
|
+
const triggerTools = createTriggerTools(triggerConfig, options?.context);
|
|
8804
|
+
const TypeEnum = await getGoogleType();
|
|
8805
|
+
for (const [name, tool] of Object.entries(triggerTools)) {
|
|
8806
|
+
const zodSchema = tool.inputSchema;
|
|
8807
|
+
const jsonSchema = zodToGoogleSchema(zodSchema, TypeEnum);
|
|
8808
|
+
googleTools.push({
|
|
8809
|
+
name,
|
|
8810
|
+
description: tool.description || `Execute ${name}`,
|
|
8811
|
+
parameters: jsonSchema
|
|
8812
|
+
});
|
|
8813
|
+
}
|
|
8814
|
+
}
|
|
8815
|
+
return googleTools;
|
|
8816
|
+
}
|
|
8817
|
+
function zodToGoogleSchema(schema, TypeEnum) {
|
|
8818
|
+
if (schema._def?.typeName === "ZodObject") {
|
|
8819
|
+
const shape = schema._def.shape();
|
|
8820
|
+
const properties = {};
|
|
8821
|
+
const required = [];
|
|
8822
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
8823
|
+
const fieldSchema = value;
|
|
8824
|
+
properties[key] = { type: TypeEnum.STRING };
|
|
8825
|
+
if (fieldSchema._def?.typeName !== "ZodOptional") {
|
|
8826
|
+
required.push(key);
|
|
8827
|
+
}
|
|
8828
|
+
}
|
|
8829
|
+
return {
|
|
8830
|
+
type: TypeEnum.OBJECT,
|
|
8831
|
+
properties,
|
|
8832
|
+
...required.length > 0 ? { required } : {}
|
|
8833
|
+
};
|
|
8834
|
+
}
|
|
8835
|
+
return { type: TypeEnum.OBJECT, properties: {} };
|
|
8478
8836
|
}
|
|
8479
8837
|
var init_google = __esm(() => {
|
|
8480
8838
|
init_utils();
|
|
8839
|
+
init_trigger_tools();
|
|
8481
8840
|
});
|
|
8482
8841
|
|
|
8483
8842
|
// src/ai/index.ts
|
|
@@ -8486,71 +8845,7 @@ var init_ai = __esm(() => {
|
|
|
8486
8845
|
init_openai();
|
|
8487
8846
|
init_anthropic();
|
|
8488
8847
|
init_google();
|
|
8489
|
-
|
|
8490
|
-
|
|
8491
|
-
// node_modules/nanoid/url-alphabet/index.js
|
|
8492
|
-
var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
8493
|
-
var init_url_alphabet = () => {};
|
|
8494
|
-
|
|
8495
|
-
// node_modules/nanoid/index.js
|
|
8496
|
-
import crypto2 from "crypto";
|
|
8497
|
-
var POOL_SIZE_MULTIPLIER = 128, pool, poolOffset, fillPool = (bytes) => {
|
|
8498
|
-
if (!pool || pool.length < bytes) {
|
|
8499
|
-
pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
|
|
8500
|
-
crypto2.randomFillSync(pool);
|
|
8501
|
-
poolOffset = 0;
|
|
8502
|
-
} else if (poolOffset + bytes > pool.length) {
|
|
8503
|
-
crypto2.randomFillSync(pool);
|
|
8504
|
-
poolOffset = 0;
|
|
8505
|
-
}
|
|
8506
|
-
poolOffset += bytes;
|
|
8507
|
-
}, nanoid = (size = 21) => {
|
|
8508
|
-
fillPool(size |= 0);
|
|
8509
|
-
let id = "";
|
|
8510
|
-
for (let i = poolOffset - size;i < poolOffset; i++) {
|
|
8511
|
-
id += urlAlphabet[pool[i] & 63];
|
|
8512
|
-
}
|
|
8513
|
-
return id;
|
|
8514
|
-
};
|
|
8515
|
-
var init_nanoid = __esm(() => {
|
|
8516
|
-
init_url_alphabet();
|
|
8517
|
-
});
|
|
8518
|
-
|
|
8519
|
-
// src/triggers/utils.ts
|
|
8520
|
-
var exports_utils = {};
|
|
8521
|
-
__export(exports_utils, {
|
|
8522
|
-
validateStatusTransition: () => validateStatusTransition,
|
|
8523
|
-
generateTriggerId: () => generateTriggerId,
|
|
8524
|
-
extractProviderFromToolName: () => extractProviderFromToolName,
|
|
8525
|
-
calculateHasMore: () => calculateHasMore
|
|
8526
|
-
});
|
|
8527
|
-
function generateTriggerId() {
|
|
8528
|
-
return `trig_${nanoid(12)}`;
|
|
8529
|
-
}
|
|
8530
|
-
function extractProviderFromToolName(toolName) {
|
|
8531
|
-
const parts = toolName.split("_");
|
|
8532
|
-
return parts[0] || toolName;
|
|
8533
|
-
}
|
|
8534
|
-
function validateStatusTransition(currentStatus, targetStatus) {
|
|
8535
|
-
if (targetStatus === "paused" && currentStatus !== "active") {
|
|
8536
|
-
return {
|
|
8537
|
-
valid: false,
|
|
8538
|
-
error: `Cannot pause trigger with status '${currentStatus}'. Only 'active' triggers can be paused.`
|
|
8539
|
-
};
|
|
8540
|
-
}
|
|
8541
|
-
if (targetStatus === "active" && currentStatus !== "paused") {
|
|
8542
|
-
return {
|
|
8543
|
-
valid: false,
|
|
8544
|
-
error: `Cannot resume trigger with status '${currentStatus}'. Only 'paused' triggers can be resumed.`
|
|
8545
|
-
};
|
|
8546
|
-
}
|
|
8547
|
-
return { valid: true };
|
|
8548
|
-
}
|
|
8549
|
-
function calculateHasMore(offset, returnedCount, total) {
|
|
8550
|
-
return offset + returnedCount < total;
|
|
8551
|
-
}
|
|
8552
|
-
var init_utils2 = __esm(() => {
|
|
8553
|
-
init_nanoid();
|
|
8848
|
+
init_trigger_tools();
|
|
8554
8849
|
});
|
|
8555
8850
|
|
|
8556
8851
|
// src/server.ts
|
|
@@ -8590,6 +8885,7 @@ __export(exports_server, {
|
|
|
8590
8885
|
figmaIntegration: () => figmaIntegration,
|
|
8591
8886
|
executeGoogleFunctionCalls: () => executeGoogleFunctionCalls,
|
|
8592
8887
|
cursorIntegration: () => cursorIntegration,
|
|
8888
|
+
createTriggerTools: () => createTriggerTools,
|
|
8593
8889
|
createSimpleIntegration: () => createSimpleIntegration,
|
|
8594
8890
|
createMCPServer: () => createMCPServer,
|
|
8595
8891
|
calcomIntegration: () => calcomIntegration,
|
|
@@ -8687,6 +8983,10 @@ function createMCPServer(config) {
|
|
|
8687
8983
|
setProviderToken: config.setProviderToken,
|
|
8688
8984
|
removeProviderToken: config.removeProviderToken
|
|
8689
8985
|
};
|
|
8986
|
+
client.__triggerConfig = config.triggers ? {
|
|
8987
|
+
callbacks: config.triggers,
|
|
8988
|
+
getSessionContext: config.getSessionContext
|
|
8989
|
+
} : undefined;
|
|
8690
8990
|
const { POST, GET } = createOAuthRouteHandlers({
|
|
8691
8991
|
providers,
|
|
8692
8992
|
serverUrl: config.serverUrl,
|
|
@@ -9512,6 +9812,7 @@ export {
|
|
|
9512
9812
|
figmaIntegration,
|
|
9513
9813
|
executeGoogleFunctionCalls,
|
|
9514
9814
|
cursorIntegration,
|
|
9815
|
+
createTriggerTools,
|
|
9515
9816
|
createTanStackOAuthHandler,
|
|
9516
9817
|
createSimpleIntegration,
|
|
9517
9818
|
createNextOAuthHandler,
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Helper functions to convert MCP tools to Anthropic Claude API format
|
|
5
5
|
*/
|
|
6
6
|
import type { MCPClient } from "../client.js";
|
|
7
|
+
import type { MCPContext } from "../config/types.js";
|
|
7
8
|
import { type AIToolsOptions } from "./utils.js";
|
|
8
9
|
import type Anthropic from "@anthropic-ai/sdk";
|
|
9
10
|
/**
|
|
@@ -24,6 +25,8 @@ export interface AnthropicTool {
|
|
|
24
25
|
* Options for converting MCP tools to Anthropic format
|
|
25
26
|
*/
|
|
26
27
|
export interface AnthropicToolsOptions extends AIToolsOptions {
|
|
28
|
+
/** User context for multi-tenant token storage */
|
|
29
|
+
context?: MCPContext;
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* Anthropic tool use block from message content
|
|
@@ -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,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;AAEjH,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;CACtB;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;AA2HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CAqC1B;AAgCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/dist/src/ai/google.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Helper functions to convert MCP tools to Google GenAI format
|
|
5
5
|
*/
|
|
6
6
|
import type { MCPClient } from "../client.js";
|
|
7
|
+
import type { MCPContext } from "../config/types.js";
|
|
7
8
|
import { type AIToolsOptions } from "./utils.js";
|
|
8
9
|
import type { Schema, FunctionDeclaration, FunctionCall, Type } from "@google/genai";
|
|
9
10
|
export type GoogleTool = FunctionDeclaration;
|
|
@@ -13,6 +14,8 @@ export type { Schema, Type };
|
|
|
13
14
|
* Options for converting MCP tools to Google GenAI format
|
|
14
15
|
*/
|
|
15
16
|
export interface GoogleToolsOptions extends AIToolsOptions {
|
|
17
|
+
/** User context for multi-tenant token storage */
|
|
18
|
+
context?: MCPContext;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
21
|
* Execute multiple function calls from Google GenAI response
|
|
@@ -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,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;AAKjH,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;CACtB;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,CA2CnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAwCvB"}
|
package/dist/src/ai/index.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ export { getVercelAITools, type VercelAITool, type VercelAIToolsOptions } from "
|
|
|
7
7
|
export { getOpenAITools, handleOpenAIResponse, type OpenAITool, type OpenAIToolsOptions } from "./openai.js";
|
|
8
8
|
export { getAnthropicTools, handleAnthropicMessage, type AnthropicTool, type AnthropicToolsOptions, type AnthropicToolUseBlock, type AnthropicToolResultBlock } from "./anthropic.js";
|
|
9
9
|
export { getGoogleTools, executeGoogleFunctionCalls, type GoogleTool, type GoogleFunctionCall, type GoogleToolsOptions } from "./google.js";
|
|
10
|
+
export { createTriggerTools, type TriggerToolsConfig } from "./trigger-tools.js";
|
|
10
11
|
export type { AIToolsOptions } from "./utils.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/src/ai/openai.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Helper functions to convert MCP tools to OpenAI Responses API format
|
|
5
5
|
*/
|
|
6
6
|
import type { MCPClient } from "../client.js";
|
|
7
|
+
import type { MCPContext } from "../config/types.js";
|
|
7
8
|
import { type AIToolsOptions } from "./utils.js";
|
|
8
9
|
import type { OpenAI } from "openai";
|
|
9
10
|
/**
|
|
@@ -28,6 +29,8 @@ export interface OpenAIToolsOptions extends AIToolsOptions {
|
|
|
28
29
|
* @default false
|
|
29
30
|
*/
|
|
30
31
|
strict?: boolean;
|
|
32
|
+
/** User context for multi-tenant token storage */
|
|
33
|
+
context?: MCPContext;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Get tools in a format compatible with OpenAI Responses API
|
|
@@ -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,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;AAEjH,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;CACtB;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAuCvB;AAsHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|