@knocklabs/agent-toolkit 0.2.0 → 0.4.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.
@@ -1,9 +1,9 @@
1
1
  import { ToolSet, Tool } from 'ai';
2
- import { a as DeferredToolCall, b as DeferredToolCallConfig, K as KnockOutboundWebhookEvent, D as DeferredToolCallInteractionResult } from '../types-D6xiNyB2.js';
2
+ import { a as DeferredToolCall, b as DeferredToolCallConfig, K as KnockOutboundWebhookEvent, D as DeferredToolCallInteractionResult } from '../types-kR5zfaEk.js';
3
3
  import { ToolkitConfig, ToolCategory } from '../types.js';
4
4
  import { ToolInvocation } from '@ai-sdk/ui-utils';
5
- import '@knocklabs/node/dist/src/resources/messages/interfaces';
6
- import '@knocklabs/node/dist/src/resources/workflows/interfaces';
5
+ import '@knocklabs/mgmt/resources.js';
6
+ import '@knocklabs/node/resources.js';
7
7
 
8
8
  /**
9
9
  * Convert a deferred tool call to a tool invocation. Useful when building an assistant
@@ -2,14 +2,14 @@ import {
2
2
  handleMessageInteraction,
3
3
  triggerHumanInTheLoopWorkflow,
4
4
  wrapToolDescription
5
- } from "../chunk-IGJSMDBC.js";
5
+ } from "../chunk-X3LAGKQW.js";
6
6
  import {
7
7
  createKnockClient
8
- } from "../chunk-TRLABEB7.js";
8
+ } from "../chunk-PLL3H2Y6.js";
9
9
  import {
10
10
  getToolMap,
11
11
  getToolsByPermissionsInCategories
12
- } from "../chunk-QG5UJT76.js";
12
+ } from "../chunk-WSJ5XINN.js";
13
13
  import "../chunk-G3PMV62Z.js";
14
14
 
15
15
  // src/ai-sdk/tool-converter.ts
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  allTools,
3
3
  createWorkflowTools
4
- } from "./chunk-QG5UJT76.js";
4
+ } from "./chunk-WSJ5XINN.js";
5
5
 
6
6
  // src/modelcontextprotocol/adapter.ts
7
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.2.0" });
11
+ super({ name: "Knock", version: "0.4.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-ZUE3BSAZ.js.map
47
+ //# sourceMappingURL=chunk-LWVB2RKE.js.map
@@ -0,0 +1,153 @@
1
+ // src/lib/knock-client.ts
2
+ import KnockMgmt from "@knocklabs/mgmt";
3
+ import { Knock } from "@knocklabs/node";
4
+
5
+ // package.json
6
+ var package_default = {
7
+ name: "@knocklabs/agent-toolkit",
8
+ version: "0.4.0",
9
+ description: "A toolkit for working with Knock in Agent workflows.",
10
+ main: "src/index.js",
11
+ scripts: {
12
+ build: "tsup --env.NODE_ENV production",
13
+ clean: "rimraf ./dist",
14
+ dev: "tsup --watch",
15
+ lint: "eslint src --ext .ts,.tsx",
16
+ "lint:fix": "eslint src --ext .ts,.tsx --fix",
17
+ format: 'prettier --write "src/**/*.{ts,tsx}"',
18
+ "format:check": 'prettier --check "src/**/*.{ts,tsx}"',
19
+ test: "vitest run",
20
+ "test:watch": "vitest",
21
+ release: "npm run build && npm run release:publish && changeset tag",
22
+ "release:publish": "npm publish --access public --tolerate-republish"
23
+ },
24
+ author: "Knock",
25
+ license: "MIT",
26
+ sideEffects: false,
27
+ type: "module",
28
+ exports: {
29
+ "./openai": {
30
+ types: "./dist/openai/index.d.ts",
31
+ default: "./dist/openai/index.js"
32
+ },
33
+ "./ai-sdk": {
34
+ types: "./dist/ai-sdk/index.d.ts",
35
+ default: "./dist/ai-sdk/index.js"
36
+ },
37
+ "./langchain": {
38
+ types: "./dist/langchain/index.d.ts",
39
+ default: "./dist/langchain/index.js"
40
+ },
41
+ "./mastra": {
42
+ types: "./dist/mastra/index.d.ts",
43
+ default: "./dist/mastra/index.js"
44
+ },
45
+ "./modelcontextprotocol": {
46
+ types: "./dist/modelcontextprotocol/index.d.ts",
47
+ default: "./dist/modelcontextprotocol/index.js"
48
+ },
49
+ "./human-in-the-loop": {
50
+ types: "./dist/human-in-the-loop/index.d.ts",
51
+ default: "./dist/human-in-the-loop/index.js"
52
+ },
53
+ "./types": {
54
+ types: "./dist/types.d.ts"
55
+ }
56
+ },
57
+ bin: {
58
+ "local-mcp": "dist/modelcontextprotocol/local-server.js"
59
+ },
60
+ files: [
61
+ "dist"
62
+ ],
63
+ dependencies: {
64
+ "@knocklabs/mgmt": "^0.2.0",
65
+ "@knocklabs/node": "^1.10.3",
66
+ "@modelcontextprotocol/sdk": "^1.7.0",
67
+ "json-schema-to-zod": "^2.6.1",
68
+ uuid: "^11.1.0",
69
+ yargs: "^17.7.2",
70
+ zod: "^3.24.2",
71
+ "zod-to-json-schema": "^3.24.5"
72
+ },
73
+ devDependencies: {
74
+ "@changesets/cli": "^2.28.1",
75
+ "@eslint/js": "^9.24.0",
76
+ "@langchain/core": "^0.3.45",
77
+ "@types/node": "^22.13.10",
78
+ "@types/yargs": "^17.0.33",
79
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
80
+ "@typescript-eslint/parser": "^8.29.1",
81
+ ai: "^4.2.8",
82
+ eslint: "^9.24.0",
83
+ "eslint-config-prettier": "^10.1.2",
84
+ "eslint-import-resolver-typescript": "^4.3.2",
85
+ "eslint-plugin-import": "^2.31.0",
86
+ "eslint-plugin-prettier": "^5.2.6",
87
+ openai: "^4.90.0",
88
+ prettier: "^3.5.3",
89
+ rimraf: "^6.0.1",
90
+ "ts-node": "^10.9.2",
91
+ tsup: "^8.4.0",
92
+ typescript: "^5.8.2",
93
+ "typescript-eslint": "^8.29.1",
94
+ vitest: "^1.3.1"
95
+ },
96
+ peerDependencies: {
97
+ ai: "^4.0.0",
98
+ openai: "^4.0.0",
99
+ "@mastra/core": "^0.10.3"
100
+ },
101
+ peerDependenciesMeta: {
102
+ ai: {
103
+ optional: true
104
+ }
105
+ },
106
+ engines: {
107
+ node: ">=20"
108
+ },
109
+ publishConfig: {
110
+ access: "public"
111
+ }
112
+ };
113
+
114
+ // src/lib/knock-client.ts
115
+ var serviceTokensToApiClients = {};
116
+ var knockClientHeaders = {
117
+ "X-Knock-Client": `knock/agent-toolkit@${package_default.version}`
118
+ };
119
+ var createKnockClient = (config) => {
120
+ const serviceToken = config.serviceToken ?? process.env.KNOCK_SERVICE_TOKEN;
121
+ if (!serviceToken) {
122
+ throw new Error(
123
+ "Service token is required. Please set the `serviceToken` property in the config or the `KNOCK_SERVICE_TOKEN` environment variable."
124
+ );
125
+ }
126
+ const client = new KnockMgmt({
127
+ serviceToken,
128
+ defaultHeaders: knockClientHeaders
129
+ });
130
+ return Object.assign(client, {
131
+ publicApi: async (environmentSlug) => {
132
+ const environment = environmentSlug ?? config.environment ?? "development";
133
+ if (serviceTokensToApiClients?.[serviceToken]?.[environment]) {
134
+ return serviceTokensToApiClients[serviceToken][environment];
135
+ }
136
+ const { api_key } = await client.apiKeys.exchange({ environment });
137
+ const knock = new Knock({
138
+ apiKey: api_key,
139
+ defaultHeaders: knockClientHeaders
140
+ });
141
+ if (!serviceTokensToApiClients[serviceToken]) {
142
+ serviceTokensToApiClients[serviceToken] = {};
143
+ }
144
+ serviceTokensToApiClients[serviceToken][environment] = knock;
145
+ return knock;
146
+ }
147
+ });
148
+ };
149
+
150
+ export {
151
+ createKnockClient
152
+ };
153
+ //# sourceMappingURL=chunk-PLL3H2Y6.js.map
@@ -0,0 +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.4.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 \"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 \"ai\": \"^4.0.0\",\n \"openai\": \"^4.0.0\",\n \"@mastra/core\": \"^0.10.3\"\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":[]}