@knocklabs/agent-toolkit 0.4.0 → 0.5.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/ai-sdk/index.js +1 -1
- package/dist/{chunk-PLL3H2Y6.js → chunk-K2ZMNZ53.js} +5 -4
- package/dist/{chunk-PLL3H2Y6.js.map → chunk-K2ZMNZ53.js.map} +1 -1
- package/dist/{chunk-LWVB2RKE.js → chunk-SIQXGYZX.js} +2 -2
- package/dist/langchain/index.js +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/modelcontextprotocol/index.js +1 -1
- package/dist/modelcontextprotocol/local-server.js +17 -5
- package/dist/modelcontextprotocol/local-server.js.map +1 -1
- package/dist/openai/index.js +1 -1
- package/package.json +4 -3
- /package/dist/{chunk-LWVB2RKE.js.map → chunk-SIQXGYZX.js.map} +0 -0
package/dist/ai-sdk/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Knock } from "@knocklabs/node";
|
|
|
5
5
|
// package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "@knocklabs/agent-toolkit",
|
|
8
|
-
version: "0.
|
|
8
|
+
version: "0.5.0",
|
|
9
9
|
description: "A toolkit for working with Knock in Agent workflows.",
|
|
10
10
|
main: "src/index.js",
|
|
11
11
|
scripts: {
|
|
@@ -64,6 +64,7 @@ var package_default = {
|
|
|
64
64
|
"@knocklabs/mgmt": "^0.2.0",
|
|
65
65
|
"@knocklabs/node": "^1.10.3",
|
|
66
66
|
"@modelcontextprotocol/sdk": "^1.7.0",
|
|
67
|
+
"@sentry/node": "^10.5.0",
|
|
67
68
|
"json-schema-to-zod": "^2.6.1",
|
|
68
69
|
uuid: "^11.1.0",
|
|
69
70
|
yargs: "^17.7.2",
|
|
@@ -94,9 +95,9 @@ var package_default = {
|
|
|
94
95
|
vitest: "^1.3.1"
|
|
95
96
|
},
|
|
96
97
|
peerDependencies: {
|
|
98
|
+
"@mastra/core": "^0.10.3",
|
|
97
99
|
ai: "^4.0.0",
|
|
98
|
-
openai: "^4.0.0"
|
|
99
|
-
"@mastra/core": "^0.10.3"
|
|
100
|
+
openai: "^4.0.0"
|
|
100
101
|
},
|
|
101
102
|
peerDependenciesMeta: {
|
|
102
103
|
ai: {
|
|
@@ -150,4 +151,4 @@ var createKnockClient = (config) => {
|
|
|
150
151
|
export {
|
|
151
152
|
createKnockClient
|
|
152
153
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
154
|
+
//# sourceMappingURL=chunk-K2ZMNZ53.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/knock-client.ts","../package.json"],"sourcesContent":["import KnockMgmt from \"@knocklabs/mgmt\";\nimport { Knock } from \"@knocklabs/node\";\n\nimport pkg from \"../../package.json\";\nimport { Config } from \"../types.js\";\n\nconst serviceTokensToApiClients: Record<string, Record<string, Knock>> = {};\n\ntype KnockClient = ReturnType<typeof createKnockClient>;\n\n// Include a custom header to identify all client requests in the API logs\nconst knockClientHeaders = {\n \"X-Knock-Client\": `knock/agent-toolkit@${pkg.version}`,\n};\n\nconst createKnockClient = (config: Config) => {\n const serviceToken = config.serviceToken ?? process.env.KNOCK_SERVICE_TOKEN;\n\n if (!serviceToken) {\n throw new Error(\n \"Service token is required. Please set the `serviceToken` property in the config or the `KNOCK_SERVICE_TOKEN` environment variable.\"\n );\n }\n\n const client = new KnockMgmt({\n serviceToken,\n defaultHeaders: knockClientHeaders,\n });\n\n return Object.assign(client, {\n publicApi: async (environmentSlug?: string): Promise<Knock> => {\n const environment =\n environmentSlug ?? config.environment ?? \"development\";\n\n // If the client already exists for this service token and environment, return it\n if (serviceTokensToApiClients?.[serviceToken]?.[environment]) {\n return serviceTokensToApiClients[serviceToken][environment];\n }\n\n // Otherwise, fetch a public API key for this service token and environment\n const { api_key } = await client.apiKeys.exchange({ environment });\n\n // Create a new Knock client with the public API key\n const knock = new Knock({\n apiKey: api_key,\n defaultHeaders: knockClientHeaders,\n });\n\n // Store the client in the cache\n if (!serviceTokensToApiClients[serviceToken]) {\n serviceTokensToApiClients[serviceToken] = {};\n }\n\n serviceTokensToApiClients[serviceToken][environment] = knock;\n\n return knock;\n },\n });\n};\n\nexport { createKnockClient, type KnockClient };\n","{\n \"name\": \"@knocklabs/agent-toolkit\",\n \"version\": \"0.
|
|
1
|
+
{"version":3,"sources":["../src/lib/knock-client.ts","../package.json"],"sourcesContent":["import KnockMgmt from \"@knocklabs/mgmt\";\nimport { Knock } from \"@knocklabs/node\";\n\nimport pkg from \"../../package.json\";\nimport { Config } from \"../types.js\";\n\nconst serviceTokensToApiClients: Record<string, Record<string, Knock>> = {};\n\ntype KnockClient = ReturnType<typeof createKnockClient>;\n\n// Include a custom header to identify all client requests in the API logs\nconst knockClientHeaders = {\n \"X-Knock-Client\": `knock/agent-toolkit@${pkg.version}`,\n};\n\nconst createKnockClient = (config: Config) => {\n const serviceToken = config.serviceToken ?? process.env.KNOCK_SERVICE_TOKEN;\n\n if (!serviceToken) {\n throw new Error(\n \"Service token is required. Please set the `serviceToken` property in the config or the `KNOCK_SERVICE_TOKEN` environment variable.\"\n );\n }\n\n const client = new KnockMgmt({\n serviceToken,\n defaultHeaders: knockClientHeaders,\n });\n\n return Object.assign(client, {\n publicApi: async (environmentSlug?: string): Promise<Knock> => {\n const environment =\n environmentSlug ?? config.environment ?? \"development\";\n\n // If the client already exists for this service token and environment, return it\n if (serviceTokensToApiClients?.[serviceToken]?.[environment]) {\n return serviceTokensToApiClients[serviceToken][environment];\n }\n\n // Otherwise, fetch a public API key for this service token and environment\n const { api_key } = await client.apiKeys.exchange({ environment });\n\n // Create a new Knock client with the public API key\n const knock = new Knock({\n apiKey: api_key,\n defaultHeaders: knockClientHeaders,\n });\n\n // Store the client in the cache\n if (!serviceTokensToApiClients[serviceToken]) {\n serviceTokensToApiClients[serviceToken] = {};\n }\n\n serviceTokensToApiClients[serviceToken][environment] = knock;\n\n return knock;\n },\n });\n};\n\nexport { createKnockClient, type KnockClient };\n","{\n \"name\": \"@knocklabs/agent-toolkit\",\n \"version\": \"0.5.0\",\n \"description\": \"A toolkit for working with Knock in Agent workflows.\",\n \"main\": \"src/index.js\",\n \"scripts\": {\n \"build\": \"tsup --env.NODE_ENV production\",\n \"clean\": \"rimraf ./dist\",\n \"dev\": \"tsup --watch\",\n \"lint\": \"eslint src --ext .ts,.tsx\",\n \"lint:fix\": \"eslint src --ext .ts,.tsx --fix\",\n \"format\": \"prettier --write \\\"src/**/*.{ts,tsx}\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.{ts,tsx}\\\"\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest\",\n \"release\": \"npm run build && npm run release:publish && changeset tag\",\n \"release:publish\": \"npm publish --access public --tolerate-republish\"\n },\n \"author\": \"Knock\",\n \"license\": \"MIT\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \"./openai\": {\n \"types\": \"./dist/openai/index.d.ts\",\n \"default\": \"./dist/openai/index.js\"\n },\n \"./ai-sdk\": {\n \"types\": \"./dist/ai-sdk/index.d.ts\",\n \"default\": \"./dist/ai-sdk/index.js\"\n },\n \"./langchain\": {\n \"types\": \"./dist/langchain/index.d.ts\",\n \"default\": \"./dist/langchain/index.js\"\n },\n \"./mastra\": {\n \"types\": \"./dist/mastra/index.d.ts\",\n \"default\": \"./dist/mastra/index.js\"\n },\n \"./modelcontextprotocol\": {\n \"types\": \"./dist/modelcontextprotocol/index.d.ts\",\n \"default\": \"./dist/modelcontextprotocol/index.js\"\n },\n \"./human-in-the-loop\": {\n \"types\": \"./dist/human-in-the-loop/index.d.ts\",\n \"default\": \"./dist/human-in-the-loop/index.js\"\n },\n \"./types\": {\n \"types\": \"./dist/types.d.ts\"\n }\n },\n \"bin\": {\n \"local-mcp\": \"dist/modelcontextprotocol/local-server.js\"\n },\n \"files\": [\n \"dist\"\n ],\n \"dependencies\": {\n \"@knocklabs/mgmt\": \"^0.2.0\",\n \"@knocklabs/node\": \"^1.10.3\",\n \"@modelcontextprotocol/sdk\": \"^1.7.0\",\n \"@sentry/node\": \"^10.5.0\",\n \"json-schema-to-zod\": \"^2.6.1\",\n \"uuid\": \"^11.1.0\",\n \"yargs\": \"^17.7.2\",\n \"zod\": \"^3.24.2\",\n \"zod-to-json-schema\": \"^3.24.5\"\n },\n \"devDependencies\": {\n \"@changesets/cli\": \"^2.28.1\",\n \"@eslint/js\": \"^9.24.0\",\n \"@langchain/core\": \"^0.3.45\",\n \"@types/node\": \"^22.13.10\",\n \"@types/yargs\": \"^17.0.33\",\n \"@typescript-eslint/eslint-plugin\": \"^8.29.1\",\n \"@typescript-eslint/parser\": \"^8.29.1\",\n \"ai\": \"^4.2.8\",\n \"eslint\": \"^9.24.0\",\n \"eslint-config-prettier\": \"^10.1.2\",\n \"eslint-import-resolver-typescript\": \"^4.3.2\",\n \"eslint-plugin-import\": \"^2.31.0\",\n \"eslint-plugin-prettier\": \"^5.2.6\",\n \"openai\": \"^4.90.0\",\n \"prettier\": \"^3.5.3\",\n \"rimraf\": \"^6.0.1\",\n \"ts-node\": \"^10.9.2\",\n \"tsup\": \"^8.4.0\",\n \"typescript\": \"^5.8.2\",\n \"typescript-eslint\": \"^8.29.1\",\n \"vitest\": \"^1.3.1\"\n },\n \"peerDependencies\": {\n \"@mastra/core\": \"^0.10.3\",\n \"ai\": \"^4.0.0\",\n \"openai\": \"^4.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"ai\": {\n \"optional\": true\n }\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -8,7 +8,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
var KnockMcpServer = class extends McpServer {
|
|
10
10
|
constructor(knockClient, config, tools) {
|
|
11
|
-
super({ name: "Knock", version: "0.
|
|
11
|
+
super({ name: "Knock", version: "0.5.0" });
|
|
12
12
|
tools.forEach((tool) => {
|
|
13
13
|
const toolParams = tool.parameters ?? z.object({});
|
|
14
14
|
this.tool(
|
|
@@ -44,4 +44,4 @@ var createKnockMcpServer = async (params) => {
|
|
|
44
44
|
export {
|
|
45
45
|
createKnockMcpServer
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-SIQXGYZX.js.map
|
package/dist/langchain/index.js
CHANGED
package/dist/mastra/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
createKnockMcpServer
|
|
4
|
-
} from "../chunk-LWVB2RKE.js";
|
|
5
2
|
import {
|
|
6
3
|
createKnockClient
|
|
7
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-K2ZMNZ53.js";
|
|
5
|
+
import {
|
|
6
|
+
createKnockMcpServer
|
|
7
|
+
} from "../chunk-SIQXGYZX.js";
|
|
8
8
|
import {
|
|
9
9
|
filterTools,
|
|
10
10
|
tools
|
|
@@ -13,8 +13,14 @@ import "../chunk-G3PMV62Z.js";
|
|
|
13
13
|
|
|
14
14
|
// src/modelcontextprotocol/local-server.ts
|
|
15
15
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
16
|
+
import * as Sentry from "@sentry/node";
|
|
16
17
|
import { default as yargs } from "yargs";
|
|
17
18
|
import { hideBin } from "yargs/helpers";
|
|
19
|
+
|
|
20
|
+
// config.ts
|
|
21
|
+
var SENTRY_DSN = "https://96631541e2f1d099b090e899572a807e@o605776.ingest.us.sentry.io/4509843669909504";
|
|
22
|
+
|
|
23
|
+
// src/modelcontextprotocol/local-server.ts
|
|
18
24
|
var main = async () => {
|
|
19
25
|
const {
|
|
20
26
|
serviceToken,
|
|
@@ -64,12 +70,18 @@ var main = async () => {
|
|
|
64
70
|
};
|
|
65
71
|
const knockClient = createKnockClient(config);
|
|
66
72
|
const filteredTools = patterns ? patterns.map((pattern) => filterTools(tools, pattern)).flat() : void 0;
|
|
67
|
-
|
|
73
|
+
Sentry.init({
|
|
74
|
+
dsn: SENTRY_DSN,
|
|
75
|
+
sendDefaultPii: false,
|
|
76
|
+
tracesSampleRate: 1
|
|
77
|
+
});
|
|
78
|
+
const knockServer = await createKnockMcpServer({
|
|
68
79
|
config,
|
|
69
80
|
knockClient,
|
|
70
81
|
tools: filteredTools,
|
|
71
82
|
workflows: workflowsAsTools
|
|
72
83
|
});
|
|
84
|
+
const mcpServer = Sentry.wrapMcpServerWithSentry(knockServer);
|
|
73
85
|
const transport = new StdioServerTransport();
|
|
74
86
|
await mcpServer.connect(transport);
|
|
75
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modelcontextprotocol/local-server.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { default as yargs } from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\n\nimport { createKnockClient } from \"../lib/knock-client.js\";\nimport { tools } from \"../lib/tools/index.js\";\nimport { filterTools } from \"../lib/utils.js\";\nimport { Config } from \"../types.js\";\n\nimport { createKnockMcpServer } from \"./index.js\";\n\n/**\n * Main entry point for the Knock MCP server.\n * Runs as a standalone process, as defined in package.json#bin.\n * An entrypoint for this file exists in the tsup configuration of the package.\n */\nconst main = async () => {\n const {\n serviceToken,\n environment,\n userId,\n tenantId,\n tools: patterns,\n workflows: workflowsAsTools,\n } = await yargs(hideBin(process.argv))\n .version(\"0.1.0\")\n .option(\"tools\", {\n alias: \"t\",\n type: \"string\",\n array: true,\n description: `List of tools to enable. Use \"*\" to enable all tools. Use \"category\" or \"category.*\" to enable all tools from a category. Use \"category.toolName\" to pick a single tool. Available categories: ${Object.keys(\n tools\n )}`,\n })\n .option(\"workflows\", {\n type: \"string\",\n array: true,\n description: `List of workflows to enable as tools in the MCP server. By default no workflows are enabled. Pass a list of workflow keys to enable those workflows as tools.`,\n })\n .option(\"service-token\", {\n alias: \"st\",\n type: \"string\",\n description: `Knock service token. Only supply this if you're not passing it via the \\`KNOCK_SERVICE_TOKEN\\` environment variable.`,\n demandOption: false,\n })\n .option(\"environment\", {\n alias: \"e\",\n type: \"string\",\n description: `The environment to operate in from your Knock account`,\n })\n .option(\"user-id\", {\n type: \"string\",\n description: `The user id to operate as`,\n })\n .option(\"tenant-id\", {\n type: \"string\",\n description: `The tenant id to operate as`,\n })\n .parse();\n\n const SERVICE_TOKEN = serviceToken || process.env.KNOCK_SERVICE_TOKEN;\n\n if (!SERVICE_TOKEN) {\n throw new Error(\n \"Knock service token is required. You should set it via the `KNOCK_SERVICE_TOKEN` environment variable.\"\n );\n }\n\n const config: Config = {\n serviceToken: SERVICE_TOKEN,\n userId,\n tenantId,\n environment,\n };\n\n const knockClient = createKnockClient(config);\n\n const filteredTools = patterns\n ? patterns.map((pattern) => filterTools(tools, pattern)).flat()\n : undefined;\n\n const
|
|
1
|
+
{"version":3,"sources":["../../src/modelcontextprotocol/local-server.ts","../../config.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport * as Sentry from \"@sentry/node\";\nimport { default as yargs } from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\n\nimport { SENTRY_DSN } from \"@config\";\n\nimport { createKnockClient } from \"../lib/knock-client.js\";\nimport { tools } from \"../lib/tools/index.js\";\nimport { filterTools } from \"../lib/utils.js\";\nimport { Config } from \"../types.js\";\n\nimport { createKnockMcpServer } from \"./index.js\";\n\n/**\n * Main entry point for the Knock MCP server.\n * Runs as a standalone process, as defined in package.json#bin.\n * An entrypoint for this file exists in the tsup configuration of the package.\n */\nconst main = async () => {\n const {\n serviceToken,\n environment,\n userId,\n tenantId,\n tools: patterns,\n workflows: workflowsAsTools,\n } = await yargs(hideBin(process.argv))\n .version(\"0.1.0\")\n .option(\"tools\", {\n alias: \"t\",\n type: \"string\",\n array: true,\n description: `List of tools to enable. Use \"*\" to enable all tools. Use \"category\" or \"category.*\" to enable all tools from a category. Use \"category.toolName\" to pick a single tool. Available categories: ${Object.keys(\n tools\n )}`,\n })\n .option(\"workflows\", {\n type: \"string\",\n array: true,\n description: `List of workflows to enable as tools in the MCP server. By default no workflows are enabled. Pass a list of workflow keys to enable those workflows as tools.`,\n })\n .option(\"service-token\", {\n alias: \"st\",\n type: \"string\",\n description: `Knock service token. Only supply this if you're not passing it via the \\`KNOCK_SERVICE_TOKEN\\` environment variable.`,\n demandOption: false,\n })\n .option(\"environment\", {\n alias: \"e\",\n type: \"string\",\n description: `The environment to operate in from your Knock account`,\n })\n .option(\"user-id\", {\n type: \"string\",\n description: `The user id to operate as`,\n })\n .option(\"tenant-id\", {\n type: \"string\",\n description: `The tenant id to operate as`,\n })\n .parse();\n\n const SERVICE_TOKEN = serviceToken || process.env.KNOCK_SERVICE_TOKEN;\n\n if (!SERVICE_TOKEN) {\n throw new Error(\n \"Knock service token is required. You should set it via the `KNOCK_SERVICE_TOKEN` environment variable.\"\n );\n }\n\n const config: Config = {\n serviceToken: SERVICE_TOKEN,\n userId,\n tenantId,\n environment,\n };\n\n const knockClient = createKnockClient(config);\n\n const filteredTools = patterns\n ? patterns.map((pattern) => filterTools(tools, pattern)).flat()\n : undefined;\n\n Sentry.init({\n dsn: SENTRY_DSN,\n sendDefaultPii: false,\n tracesSampleRate: 1.0,\n });\n\n const knockServer = await createKnockMcpServer({\n config,\n knockClient,\n tools: filteredTools,\n workflows: workflowsAsTools,\n });\n\n const mcpServer = Sentry.wrapMcpServerWithSentry(knockServer);\n const transport = new StdioServerTransport();\n await mcpServer.connect(transport);\n};\n\nmain().catch((error) => {\n console.error(\"\\nKnock: Error initializing MCP server:\\n\", error.message);\n});\n","export const SENTRY_DSN =\n \"https://96631541e2f1d099b090e899572a807e@o605776.ingest.us.sentry.io/4509843669909504\";\n"],"mappings":";;;;;;;;;;;;;;AAEA,SAAS,4BAA4B;AACrC,YAAY,YAAY;AACxB,SAAS,WAAW,aAAa;AACjC,SAAS,eAAe;;;ACLjB,IAAM,aACX;;;ADoBF,IAAM,OAAO,YAAY;AACvB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,WAAW;AAAA,EACb,IAAI,MAAM,MAAM,QAAQ,QAAQ,IAAI,CAAC,EAClC,QAAQ,OAAO,EACf,OAAO,SAAS;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa,kMAAkM,OAAO;AAAA,MACpN;AAAA,IACF,CAAC;AAAA,EACH,CAAC,EACA,OAAO,aAAa;AAAA,IACnB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,EACf,CAAC,EACA,OAAO,iBAAiB;AAAA,IACvB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,cAAc;AAAA,EAChB,CAAC,EACA,OAAO,eAAe;AAAA,IACrB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC,EACA,OAAO,WAAW;AAAA,IACjB,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC,EACA,OAAO,aAAa;AAAA,IACnB,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC,EACA,MAAM;AAET,QAAM,gBAAgB,gBAAgB,QAAQ,IAAI;AAElD,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAiB;AAAA,IACrB,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,cAAc,kBAAkB,MAAM;AAE5C,QAAM,gBAAgB,WAClB,SAAS,IAAI,CAAC,YAAY,YAAY,OAAO,OAAO,CAAC,EAAE,KAAK,IAC5D;AAEJ,EAAO,YAAK;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EACpB,CAAC;AAED,QAAM,cAAc,MAAM,qBAAqB;AAAA,IAC7C;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,WAAW;AAAA,EACb,CAAC;AAED,QAAM,YAAmB,+BAAwB,WAAW;AAC5D,QAAM,YAAY,IAAI,qBAAqB;AAC3C,QAAM,UAAU,QAAQ,SAAS;AACnC;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,6CAA6C,MAAM,OAAO;AAC1E,CAAC;","names":[]}
|
package/dist/openai/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knocklabs/agent-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "A toolkit for working with Knock in Agent workflows.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"@knocklabs/mgmt": "^0.2.0",
|
|
60
60
|
"@knocklabs/node": "^1.10.3",
|
|
61
61
|
"@modelcontextprotocol/sdk": "^1.7.0",
|
|
62
|
+
"@sentry/node": "^10.5.0",
|
|
62
63
|
"json-schema-to-zod": "^2.6.1",
|
|
63
64
|
"uuid": "^11.1.0",
|
|
64
65
|
"yargs": "^17.7.2",
|
|
@@ -89,9 +90,9 @@
|
|
|
89
90
|
"vitest": "^1.3.1"
|
|
90
91
|
},
|
|
91
92
|
"peerDependencies": {
|
|
93
|
+
"@mastra/core": "^0.10.3",
|
|
92
94
|
"ai": "^4.0.0",
|
|
93
|
-
"openai": "^4.0.0"
|
|
94
|
-
"@mastra/core": "^0.10.3"
|
|
95
|
+
"openai": "^4.0.0"
|
|
95
96
|
},
|
|
96
97
|
"peerDependenciesMeta": {
|
|
97
98
|
"ai": {
|
|
File without changes
|