@knocklabs/agent-toolkit 0.1.5 → 0.1.7

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/README.md CHANGED
@@ -95,7 +95,7 @@ export async function POST(req: Request) {
95
95
  const toolkit = await createKnockToolkit({
96
96
  serviceToken: "kst_12345",
97
97
  permissions: {
98
- workflows: { read: true, trigger: true, manage: true },
98
+ workflows: { read: true, run: true, manage: true },
99
99
  },
100
100
  });
101
101
 
@@ -136,7 +136,7 @@ const toolkit = await createKnockToolkit({
136
136
  serviceToken: "kst_12345",
137
137
  permissions: {
138
138
  // Set the permissions of the tools to expose
139
- workflows: { read: true, trigger: true, manage: true },
139
+ workflows: { read: true, run: true, manage: true },
140
140
  },
141
141
  });
142
142
 
@@ -1,18 +1,18 @@
1
- import { T as ToolkitConfig, t as toolPermissions } from '../types-DyB12-Gk.js';
2
- import { Tool } from 'ai';
1
+ import { T as ToolkitConfig, a as ToolCategory } from '../types-DmmGlWVt.js';
2
+ import { ToolSet } from 'ai';
3
3
 
4
4
  declare const createKnockToolkit: (config: ToolkitConfig) => {
5
5
  /**
6
6
  * Get all tools for all categories
7
7
  * @returns An array of all tools
8
8
  */
9
- getAllTools: () => Tool[];
9
+ getAllTools: () => ToolSet;
10
10
  /**
11
11
  * Get all tools for a specific category
12
12
  * @param category - The category of tools to get
13
13
  * @returns An array of tools for the given category
14
14
  */
15
- getTools: (category: keyof typeof toolPermissions) => Tool[];
15
+ getTools: (category: ToolCategory) => ToolSet;
16
16
  };
17
17
 
18
18
  export { createKnockToolkit };
@@ -1,8 +1,9 @@
1
1
  import {
2
- createKnockClient,
2
+ createKnockClient
3
+ } from "../chunk-CXOB4H3U.js";
4
+ import {
3
5
  getToolsByPermissionsInCategories
4
- } from "../chunk-ZV2SOIO7.js";
5
- import "../chunk-RPKDXX4O.js";
6
+ } from "../chunk-3CUTEODM.js";
6
7
 
7
8
  // src/ai-sdk/tool-converter.ts
8
9
  import { tool } from "ai";
@@ -24,15 +25,29 @@ var createKnockToolkit = (config) => {
24
25
  * Get all tools for all categories
25
26
  * @returns An array of all tools
26
27
  */
27
- getAllTools: () => Object.values(allowedToolsByCategory).flat().map((t) => knockToolToAiTool(knockClient, config, t)),
28
+ getAllTools: () => {
29
+ return Object.values(allowedToolsByCategory).flat().reduce(
30
+ (acc, tool2) => ({
31
+ ...acc,
32
+ [tool2.method]: knockToolToAiTool(knockClient, config, tool2)
33
+ }),
34
+ {}
35
+ );
36
+ },
28
37
  /**
29
38
  * Get all tools for a specific category
30
39
  * @param category - The category of tools to get
31
40
  * @returns An array of tools for the given category
32
41
  */
33
- getTools: (category) => allowedToolsByCategory[category].map(
34
- (t) => knockToolToAiTool(knockClient, config, t)
35
- )
42
+ getTools: (category) => {
43
+ return allowedToolsByCategory[category].reduce(
44
+ (acc, tool2) => ({
45
+ ...acc,
46
+ [tool2.method]: knockToolToAiTool(knockClient, config, tool2)
47
+ }),
48
+ {}
49
+ );
50
+ }
36
51
  };
37
52
  };
38
53
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ai-sdk/tool-converter.ts","../../src/ai-sdk/index.ts"],"sourcesContent":["import type { Tool } from \"ai\";\nimport { tool } from \"ai\";\nimport { KnockClient } from \"../lib/knock-client.js\";\nimport { KnockTool } from \"../lib/knock-tool.js\";\nimport { Config } from \"../types.js\";\nimport { z } from \"zod\";\n\n/**\n * Convert a KnockTool to an AI Tool, ready to pass to the AI SDK.\n */\nconst knockToolToAiTool = (\n knockClient: KnockClient,\n config: Config,\n knockTool: KnockTool\n): Tool => {\n return tool({\n description: knockTool.description,\n parameters: knockTool.parameters ?? z.object({}),\n execute: knockTool.bindExecute(knockClient, config),\n });\n};\n\nexport { knockToolToAiTool };\n","import { ToolkitConfig } from \"../types.js\";\nimport { toolPermissions } from \"../lib/tools/index.js\";\nimport { getToolsByPermissionsInCategories } from \"../lib/utils.js\";\nimport { createKnockClient } from \"../lib/knock-client.js\";\nimport { Tool } from \"ai\";\nimport { knockToolToAiTool } from \"./tool-converter.js\";\n\nconst createKnockToolkit = (config: ToolkitConfig) => {\n const knockClient = createKnockClient(config);\n const allowedToolsByCategory = getToolsByPermissionsInCategories(config);\n\n return {\n /**\n * Get all tools for all categories\n * @returns An array of all tools\n */\n getAllTools: (): Tool[] =>\n Object.values(allowedToolsByCategory)\n .flat()\n .map((t) => knockToolToAiTool(knockClient, config, t)),\n\n /**\n * Get all tools for a specific category\n * @param category - The category of tools to get\n * @returns An array of tools for the given category\n */\n getTools: (category: keyof typeof toolPermissions): Tool[] =>\n allowedToolsByCategory[category].map((t) =>\n knockToolToAiTool(knockClient, config, t)\n ),\n };\n};\n\nexport { createKnockToolkit };\n"],"mappings":";;;;;;;AACA,SAAS,YAAY;AAIrB,SAAS,SAAS;AAKlB,IAAM,oBAAoB,CACxB,aACA,QACA,cACS;AACT,SAAO,KAAK;AAAA,IACV,aAAa,UAAU;AAAA,IACvB,YAAY,UAAU,cAAc,EAAE,OAAO,CAAC,CAAC;AAAA,IAC/C,SAAS,UAAU,YAAY,aAAa,MAAM;AAAA,EACpD,CAAC;AACH;;;ACbA,IAAM,qBAAqB,CAAC,WAA0B;AACpD,QAAM,cAAc,kBAAkB,MAAM;AAC5C,QAAM,yBAAyB,kCAAkC,MAAM;AAEvE,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,aAAa,MACX,OAAO,OAAO,sBAAsB,EACjC,KAAK,EACL,IAAI,CAAC,MAAM,kBAAkB,aAAa,QAAQ,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOzD,UAAU,CAAC,aACT,uBAAuB,QAAQ,EAAE;AAAA,MAAI,CAAC,MACpC,kBAAkB,aAAa,QAAQ,CAAC;AAAA,IAC1C;AAAA,EACJ;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/ai-sdk/tool-converter.ts","../../src/ai-sdk/index.ts"],"sourcesContent":["import type { Tool } from \"ai\";\nimport { tool } from \"ai\";\nimport { KnockClient } from \"../lib/knock-client.js\";\nimport { KnockTool } from \"../lib/knock-tool.js\";\nimport { Config } from \"../types.js\";\nimport { z } from \"zod\";\n\n/**\n * Convert a KnockTool to an AI Tool, ready to pass to the AI SDK.\n */\nconst knockToolToAiTool = (\n knockClient: KnockClient,\n config: Config,\n knockTool: KnockTool\n): Tool => {\n return tool({\n description: knockTool.description,\n parameters: knockTool.parameters ?? z.object({}),\n execute: knockTool.bindExecute(knockClient, config),\n });\n};\n\nexport { knockToolToAiTool };\n","import { ToolCategory, ToolkitConfig } from \"../types.js\";\nimport { getToolsByPermissionsInCategories } from \"../lib/utils.js\";\nimport { createKnockClient } from \"../lib/knock-client.js\";\nimport { ToolSet } from \"ai\";\nimport { knockToolToAiTool } from \"./tool-converter.js\";\n\nconst createKnockToolkit = (config: ToolkitConfig) => {\n const knockClient = createKnockClient(config);\n const allowedToolsByCategory = getToolsByPermissionsInCategories(config);\n\n return {\n /**\n * Get all tools for all categories\n * @returns An array of all tools\n */\n getAllTools: (): ToolSet => {\n return Object.values(allowedToolsByCategory)\n .flat()\n .reduce(\n (acc, tool) => ({\n ...acc,\n [tool.method]: knockToolToAiTool(knockClient, config, tool),\n }),\n {} as ToolSet\n );\n },\n\n /**\n * Get all tools for a specific category\n * @param category - The category of tools to get\n * @returns An array of tools for the given category\n */\n getTools: (category: ToolCategory): ToolSet => {\n return allowedToolsByCategory[category].reduce(\n (acc, tool) => ({\n ...acc,\n [tool.method]: knockToolToAiTool(knockClient, config, tool),\n }),\n {} as ToolSet\n );\n },\n };\n};\n\nexport { createKnockToolkit };\n"],"mappings":";;;;;;;;AACA,SAAS,YAAY;AAIrB,SAAS,SAAS;AAKlB,IAAM,oBAAoB,CACxB,aACA,QACA,cACS;AACT,SAAO,KAAK;AAAA,IACV,aAAa,UAAU;AAAA,IACvB,YAAY,UAAU,cAAc,EAAE,OAAO,CAAC,CAAC;AAAA,IAC/C,SAAS,UAAU,YAAY,aAAa,MAAM;AAAA,EACpD,CAAC;AACH;;;ACdA,IAAM,qBAAqB,CAAC,WAA0B;AACpD,QAAM,cAAc,kBAAkB,MAAM;AAC5C,QAAM,yBAAyB,kCAAkC,MAAM;AAEvE,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,aAAa,MAAe;AAC1B,aAAO,OAAO,OAAO,sBAAsB,EACxC,KAAK,EACL;AAAA,QACC,CAAC,KAAKA,WAAU;AAAA,UACd,GAAG;AAAA,UACH,CAACA,MAAK,MAAM,GAAG,kBAAkB,aAAa,QAAQA,KAAI;AAAA,QAC5D;AAAA,QACA,CAAC;AAAA,MACH;AAAA,IACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAU,CAAC,aAAoC;AAC7C,aAAO,uBAAuB,QAAQ,EAAE;AAAA,QACtC,CAAC,KAAKA,WAAU;AAAA,UACd,GAAG;AAAA,UACH,CAACA,MAAK,MAAM,GAAG,kBAAkB,aAAa,QAAQA,KAAI;AAAA,QAC5D;AAAA,QACA,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;","names":["tool"]}