@cann4n/openai 0.1.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.
@@ -0,0 +1,14 @@
1
+ import type { AgentKitStellar } from "@cann4n/core";
2
+ /** Convert AgentKitStellar actions into OpenAI function-calling tool definitions. */
3
+ export declare function getOpenAITools(agentKit: AgentKitStellar): Array<{
4
+ type: "function";
5
+ function: {
6
+ name: string;
7
+ description: string;
8
+ parameters: Record<string, unknown>;
9
+ strict: boolean;
10
+ };
11
+ }>;
12
+ /** Create a handler map for invoking actions via OpenAI function-calling tool calls. */
13
+ export declare function createOpenAIToolHandlerMap(agentKit: AgentKitStellar): Record<string, (args: string) => Promise<string>>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,KAAK,CAAC;IAC/D,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH,CAAC,CAWD;AAED,wFAAwF;AACxF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,eAAe,GACxB,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAWnD"}
package/dist/index.js ADDED
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ /** Convert AgentKitStellar actions into OpenAI function-calling tool definitions. */
3
+ export function getOpenAITools(agentKit) {
4
+ const actions = agentKit.getActions();
5
+ return actions.map((action) => ({
6
+ type: "function",
7
+ function: {
8
+ name: action.name,
9
+ description: action.description,
10
+ parameters: zodToJsonSchema(action.schema),
11
+ strict: true,
12
+ },
13
+ }));
14
+ }
15
+ /** Create a handler map for invoking actions via OpenAI function-calling tool calls. */
16
+ export function createOpenAIToolHandlerMap(agentKit) {
17
+ const actions = agentKit.getActions();
18
+ const handlerMap = {};
19
+ for (const action of actions) {
20
+ handlerMap[action.name] = async (argsJson) => {
21
+ const args = JSON.parse(argsJson);
22
+ const parsed = action.schema.parse(args);
23
+ return action.invoke(parsed);
24
+ };
25
+ }
26
+ return handlerMap;
27
+ }
28
+ function zodToJsonSchema(schema) {
29
+ if (schema instanceof z.ZodObject) {
30
+ const properties = {};
31
+ const required = [];
32
+ for (const [key, value] of Object.entries(schema.shape)) {
33
+ properties[key] = { type: inferZodType(value), description: value.description || "" };
34
+ if (!(value instanceof z.ZodOptional) && !(value instanceof z.ZodDefault)) {
35
+ required.push(key);
36
+ }
37
+ }
38
+ return { type: "object", properties, required, additionalProperties: false };
39
+ }
40
+ return { type: "object" };
41
+ }
42
+ function inferZodType(zodType) {
43
+ if (zodType instanceof z.ZodString)
44
+ return "string";
45
+ if (zodType instanceof z.ZodNumber)
46
+ return "number";
47
+ if (zodType instanceof z.ZodBoolean)
48
+ return "boolean";
49
+ if (zodType instanceof z.ZodArray)
50
+ return "array";
51
+ if (zodType instanceof z.ZodEnum)
52
+ return "string";
53
+ if (zodType instanceof z.ZodRecord)
54
+ return "object";
55
+ if (zodType instanceof z.ZodOptional)
56
+ return inferZodType(zodType.unwrap());
57
+ if (zodType instanceof z.ZodDefault)
58
+ return inferZodType(zodType.removeDefault());
59
+ return "string";
60
+ }
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,QAAyB;IAStD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAkE,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,EAAE,IAAI;SACb;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,0BAA0B,CACxC,QAAyB;IAEzB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IACtC,MAAM,UAAU,GAAsD,EAAE,CAAC;IACzE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB;IAC1C,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,KAAkB,CAAC,EAAE,WAAW,EAAG,KAAmB,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAClH,IAAI,CAAC,CAAE,KAAmB,YAAY,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAE,KAAmB,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,OAAkB;IACtC,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACpD,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACpD,IAAI,OAAO,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,OAAO,YAAY,CAAC,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IAClD,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACpD,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,IAAI,OAAO,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { AgentKitStellar, MockWalletProvider } from "@cann4n/core";
3
+ import { getOpenAITools, createOpenAIToolHandlerMap } from "./index";
4
+ describe("OpenAI adapter", () => {
5
+ const wallet = new MockWalletProvider();
6
+ const agentKit = AgentKitStellar.create({ walletProvider: wallet });
7
+ it("should produce OpenAI function tools", () => {
8
+ const tools = getOpenAITools(agentKit);
9
+ expect(tools.length).toBeGreaterThan(0);
10
+ expect(tools[0].type).toBe("function");
11
+ expect(tools[0].function.name).toBeDefined();
12
+ });
13
+ it("should create tool handler map", () => {
14
+ const handlers = createOpenAIToolHandlerMap(agentKit);
15
+ expect(Object.keys(handlers).length).toBeGreaterThan(0);
16
+ expect(handlers).toHaveProperty("wallet_get_address");
17
+ });
18
+ it("should invoke a tool handler", async () => {
19
+ const handlers = createOpenAIToolHandlerMap(agentKit);
20
+ const handler = handlers["wallet_get_address"];
21
+ const result = await handler("{}");
22
+ expect(result).toContain("GA4");
23
+ });
24
+ });
25
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpE,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@cann4n/openai",
3
+ "version": "0.1.0",
4
+ "description": "OpenAI Agents SDK adapter for AgentKit Stellar",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "dependencies": {
20
+ "@cann4n/core": "^0.1.0"
21
+ },
22
+ "peerDependencies": {
23
+ "openai": "^6.0.0"
24
+ },
25
+ "devDependencies": {
26
+ "openai": "^6.0.0",
27
+ "typescript": "^5.7.0",
28
+ "vitest": "^3.0.0"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "license": "MIT",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/anomalyco/agentkit-stellar.git",
37
+ "directory": "packages/adapter-openai"
38
+ },
39
+ "scripts": {
40
+ "build": "tsc",
41
+ "test": "vitest run",
42
+ "lint": "eslint src/",
43
+ "typecheck": "tsc --noEmit",
44
+ "clean": "rm -rf dist"
45
+ }
46
+ }