donobu 3.3.0 → 3.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.
- package/dist/assets/generated/version +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/main.d.ts +3 -0
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +1 -0
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/PluginLoader.d.ts +2 -2
- package/dist/esm/managers/PluginLoader.d.ts.map +1 -1
- package/dist/esm/models/CreateToolOptions.d.ts +23 -0
- package/dist/esm/models/CreateToolOptions.d.ts.map +1 -0
- package/dist/esm/models/CreateToolOptions.js +3 -0
- package/dist/esm/models/CreateToolOptions.js.map +1 -0
- package/dist/esm/utils/createTool.d.ts +9 -0
- package/dist/esm/utils/createTool.d.ts.map +1 -0
- package/dist/esm/utils/createTool.js +23 -0
- package/dist/esm/utils/createTool.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/dist/managers/PluginLoader.d.ts +2 -2
- package/dist/managers/PluginLoader.d.ts.map +1 -1
- package/dist/models/CreateToolOptions.d.ts +23 -0
- package/dist/models/CreateToolOptions.d.ts.map +1 -0
- package/dist/models/CreateToolOptions.js +3 -0
- package/dist/models/CreateToolOptions.js.map +1 -0
- package/dist/utils/createTool.d.ts +9 -0
- package/dist/utils/createTool.d.ts.map +1 -0
- package/dist/utils/createTool.js +23 -0
- package/dist/utils/createTool.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1439
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1439
|
package/dist/esm/main.d.ts
CHANGED
|
@@ -8,7 +8,9 @@ export * from './lib/fixtures/browserState';
|
|
|
8
8
|
export * from './lib/fixtures/gptClients';
|
|
9
9
|
export * from './lib/testExtension';
|
|
10
10
|
export * from './lib/utils/donobuTestStack';
|
|
11
|
+
export type { PluginDependencies } from './managers/PluginLoader';
|
|
11
12
|
export * from './models/ControlPanel';
|
|
13
|
+
export type * from './models/CreateToolOptions';
|
|
12
14
|
export * from './models/FlowMetadata';
|
|
13
15
|
export type * from './models/ToolCall';
|
|
14
16
|
export type * from './models/ToolCallContext';
|
|
@@ -16,6 +18,7 @@ export * from './models/ToolCallResult';
|
|
|
16
18
|
export * from './models/ToolSchema';
|
|
17
19
|
export * from './tools/ReplayableInteraction';
|
|
18
20
|
export * from './tools/Tool';
|
|
21
|
+
export * from './utils/createTool';
|
|
19
22
|
export * from './utils/JsonSchemaUtils';
|
|
20
23
|
export * from './utils/JsonUtils';
|
|
21
24
|
export * from './utils/Logger';
|
package/dist/esm/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAOhB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAIxC;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,MAAqB,EAC3B,gBAAgB,GAAE,mBAA6C,GAC9D,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,qBAAa,IAAI;IACf;;;OAGG;WACiB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,OAAO,CAAC,MAAM,CAAC,SAAS;CAUzB"}
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAOhB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,4BAA4B,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAIxC;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,MAAqB,EAC3B,gBAAgB,GAAE,mBAA6C,GAC9D,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,qBAAa,IAAI;IACf;;;OAGG;WACiB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,OAAO,CAAC,MAAM,CAAC,SAAS;CAUzB"}
|
package/dist/esm/main.js
CHANGED
|
@@ -37,6 +37,7 @@ __exportStar(require("./models/ToolCallResult"), exports);
|
|
|
37
37
|
__exportStar(require("./models/ToolSchema"), exports);
|
|
38
38
|
__exportStar(require("./tools/ReplayableInteraction"), exports);
|
|
39
39
|
__exportStar(require("./tools/Tool"), exports);
|
|
40
|
+
__exportStar(require("./utils/createTool"), exports);
|
|
40
41
|
__exportStar(require("./utils/JsonSchemaUtils"), exports);
|
|
41
42
|
__exportStar(require("./utils/JsonUtils"), exports);
|
|
42
43
|
__exportStar(require("./utils/Logger"), exports);
|
package/dist/esm/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as playwright from 'playwright';
|
|
2
2
|
import type { z } from 'zod/v4';
|
|
3
3
|
import type { Tool } from '../tools/Tool';
|
|
4
|
-
export
|
|
4
|
+
export type PluginDependencies = {
|
|
5
5
|
donobu: typeof import('../main');
|
|
6
6
|
playwright: typeof playwright;
|
|
7
|
-
}
|
|
7
|
+
};
|
|
8
8
|
/**
|
|
9
9
|
* Loads custom tool plugins from a configurable directory path.
|
|
10
10
|
* This class enables dependency injection and testing by allowing the plugins directory to be specified.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginLoader.d.ts","sourceRoot":"","sources":["../../../src/managers/PluginLoader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,
|
|
1
|
+
{"version":3,"file":"PluginLoader.d.ts","sourceRoot":"","sources":["../../../src/managers/PluginLoader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,cAAc,SAAS,CAAC,CAAC;IACjC,UAAU,EAAE,OAAO,UAAU,CAAC;CAC/B,CAAC;AAmBF;;;GAGG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,kBAAkB;IAGzD;;;OAGG;WACiB,MAAM,CACxB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,YAAY,CAAC;IAUxB;;OAEG;IACU,wBAAwB,IAAI,OAAO,CAC9C,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CACjC;IAqDD,OAAO,CAAC,mBAAmB;CAG5B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { z } from 'zod/v4';
|
|
2
|
+
import type { ToolCallContext } from './ToolCallContext';
|
|
3
|
+
import type { ToolCallResult } from './ToolCallResult';
|
|
4
|
+
export type CreateToolOptions<CallSchema extends z.ZodObject<any>, CallFromGptSchema extends z.ZodObject<any> = CallSchema> = {
|
|
5
|
+
/**
|
|
6
|
+
* @param name This is the name for the tool that will be shared with the LLM when making requests.
|
|
7
|
+
* @param description This is the description that will be shared with the LLM when making requests.
|
|
8
|
+
* @param inputSchema This is the JSON-schema for the tool when it is invoked by a non-LLM.
|
|
9
|
+
* @param inputSchemaForGpt This is the JSON-schema that will be shared with the LLM when making
|
|
10
|
+
* requests during autonomous flows.
|
|
11
|
+
* @param requiresGpt Set to true if this tool requires the usage of a GPT.
|
|
12
|
+
* @param call This is the function that will be invoked when the tool is called by a non-LLM.
|
|
13
|
+
* @param callFromGpt This is the function that will be invoked when the tool is called by an LLM.
|
|
14
|
+
*/
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
requiresGpt: boolean;
|
|
18
|
+
schema: CallSchema;
|
|
19
|
+
gptSchema?: CallFromGptSchema;
|
|
20
|
+
call(ctx: ToolCallContext, params: z.infer<CallSchema>): Promise<ToolCallResult> | ToolCallResult;
|
|
21
|
+
callFromGpt?(ctx: ToolCallContext, params: z.infer<CallFromGptSchema>): Promise<ToolCallResult> | ToolCallResult;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=CreateToolOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateToolOptions.d.ts","sourceRoot":"","sources":["../../../src/models/CreateToolOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EACnC,iBAAiB,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,IACrD;IACF;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,IAAI,CACF,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAC1B,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;IAC5C,WAAW,CAAC,CACV,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GACjC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;CAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateToolOptions.js","sourceRoot":"","sources":["../../../src/models/CreateToolOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { z } from 'zod/v4';
|
|
2
|
+
import type { PluginDependencies } from '../managers/PluginLoader';
|
|
3
|
+
import type { CreateToolOptions } from '../models/CreateToolOptions';
|
|
4
|
+
import type { Tool } from '../tools/Tool';
|
|
5
|
+
/**
|
|
6
|
+
* Factory function to create a Donobu Tool instance for Donobu plugins.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createTool<CallSchema extends z.ZodObject<any>, CallFromGptSchema extends z.ZodObject<any> = CallSchema>(deps: PluginDependencies, options: CreateToolOptions<CallSchema, CallFromGptSchema>): Tool<CallSchema, CallFromGptSchema>;
|
|
9
|
+
//# sourceMappingURL=createTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../../src/utils/createTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EACnC,iBAAiB,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,EAEvD,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,CAAC,GACxD,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CA4BrC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTool = createTool;
|
|
4
|
+
/**
|
|
5
|
+
* Factory function to create a Donobu Tool instance for Donobu plugins.
|
|
6
|
+
*/
|
|
7
|
+
function createTool(deps, options) {
|
|
8
|
+
class AnonymousTool extends deps.donobu.Tool {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(options.name, options.description, options.schema, (options.gptSchema ?? options.schema), options.requiresGpt);
|
|
11
|
+
}
|
|
12
|
+
async call(ctx, params) {
|
|
13
|
+
return options.call(ctx, params);
|
|
14
|
+
}
|
|
15
|
+
async callFromGpt(ctx, params) {
|
|
16
|
+
return options.callFromGpt
|
|
17
|
+
? options.callFromGpt(ctx, params)
|
|
18
|
+
: this.call(ctx, this.inputSchema.parse(params));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return new AnonymousTool();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=createTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTool.js","sourceRoot":"","sources":["../../../src/utils/createTool.ts"],"names":[],"mappings":";;AAWA,gCAkCC;AArCD;;GAEG;AACH,SAAgB,UAAU,CAIxB,IAAwB,EACxB,OAAyD;IAEzD,MAAM,aAAc,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAmC;QACzE;YACE,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,EACd,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAsB,EAC1D,OAAO,CAAC,WAAW,CACpB,CAAC;QACJ,CAAC;QACe,KAAK,CAAC,IAAI,CACxB,GAAoB,EACpB,MAA2B;YAE3B,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACe,KAAK,CAAC,WAAW,CAC/B,GAAoB,EACpB,MAAkC;YAElC,OAAO,OAAO,CAAC,WAAW;gBACxB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC;KACF;IAED,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC"}
|
package/dist/main.d.ts
CHANGED
|
@@ -8,7 +8,9 @@ export * from './lib/fixtures/browserState';
|
|
|
8
8
|
export * from './lib/fixtures/gptClients';
|
|
9
9
|
export * from './lib/testExtension';
|
|
10
10
|
export * from './lib/utils/donobuTestStack';
|
|
11
|
+
export type { PluginDependencies } from './managers/PluginLoader';
|
|
11
12
|
export * from './models/ControlPanel';
|
|
13
|
+
export type * from './models/CreateToolOptions';
|
|
12
14
|
export * from './models/FlowMetadata';
|
|
13
15
|
export type * from './models/ToolCall';
|
|
14
16
|
export type * from './models/ToolCallContext';
|
|
@@ -16,6 +18,7 @@ export * from './models/ToolCallResult';
|
|
|
16
18
|
export * from './models/ToolSchema';
|
|
17
19
|
export * from './tools/ReplayableInteraction';
|
|
18
20
|
export * from './tools/Tool';
|
|
21
|
+
export * from './utils/createTool';
|
|
19
22
|
export * from './utils/JsonSchemaUtils';
|
|
20
23
|
export * from './utils/JsonUtils';
|
|
21
24
|
export * from './utils/Logger';
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAOhB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAIxC;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,MAAqB,EAC3B,gBAAgB,GAAE,mBAA6C,GAC9D,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,qBAAa,IAAI;IACf;;;OAGG;WACiB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,OAAO,CAAC,MAAM,CAAC,SAAS;CAUzB"}
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAOhB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,gCAAgC,CAAC;AAC/C,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,4BAA4B,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,0BAA0B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAIxC;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,MAAqB,EAC3B,gBAAgB,GAAE,mBAA6C,GAC9D,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;;GAGG;AACH,qBAAa,IAAI;IACf;;;OAGG;WACiB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,OAAO,CAAC,MAAM,CAAC,SAAS;CAUzB"}
|
package/dist/main.js
CHANGED
|
@@ -37,6 +37,7 @@ __exportStar(require("./models/ToolCallResult"), exports);
|
|
|
37
37
|
__exportStar(require("./models/ToolSchema"), exports);
|
|
38
38
|
__exportStar(require("./tools/ReplayableInteraction"), exports);
|
|
39
39
|
__exportStar(require("./tools/Tool"), exports);
|
|
40
|
+
__exportStar(require("./utils/createTool"), exports);
|
|
40
41
|
__exportStar(require("./utils/JsonSchemaUtils"), exports);
|
|
41
42
|
__exportStar(require("./utils/JsonUtils"), exports);
|
|
42
43
|
__exportStar(require("./utils/Logger"), exports);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as playwright from 'playwright';
|
|
2
2
|
import type { z } from 'zod/v4';
|
|
3
3
|
import type { Tool } from '../tools/Tool';
|
|
4
|
-
export
|
|
4
|
+
export type PluginDependencies = {
|
|
5
5
|
donobu: typeof import('../main');
|
|
6
6
|
playwright: typeof playwright;
|
|
7
|
-
}
|
|
7
|
+
};
|
|
8
8
|
/**
|
|
9
9
|
* Loads custom tool plugins from a configurable directory path.
|
|
10
10
|
* This class enables dependency injection and testing by allowing the plugins directory to be specified.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginLoader.d.ts","sourceRoot":"","sources":["../../src/managers/PluginLoader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,
|
|
1
|
+
{"version":3,"file":"PluginLoader.d.ts","sourceRoot":"","sources":["../../src/managers/PluginLoader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,cAAc,SAAS,CAAC,CAAC;IACjC,UAAU,EAAE,OAAO,UAAU,CAAC;CAC/B,CAAC;AAmBF;;;GAGG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,kBAAkB;IAGzD;;;OAGG;WACiB,MAAM,CACxB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,YAAY,CAAC;IAUxB;;OAEG;IACU,wBAAwB,IAAI,OAAO,CAC9C,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CACjC;IAqDD,OAAO,CAAC,mBAAmB;CAG5B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { z } from 'zod/v4';
|
|
2
|
+
import type { ToolCallContext } from './ToolCallContext';
|
|
3
|
+
import type { ToolCallResult } from './ToolCallResult';
|
|
4
|
+
export type CreateToolOptions<CallSchema extends z.ZodObject<any>, CallFromGptSchema extends z.ZodObject<any> = CallSchema> = {
|
|
5
|
+
/**
|
|
6
|
+
* @param name This is the name for the tool that will be shared with the LLM when making requests.
|
|
7
|
+
* @param description This is the description that will be shared with the LLM when making requests.
|
|
8
|
+
* @param inputSchema This is the JSON-schema for the tool when it is invoked by a non-LLM.
|
|
9
|
+
* @param inputSchemaForGpt This is the JSON-schema that will be shared with the LLM when making
|
|
10
|
+
* requests during autonomous flows.
|
|
11
|
+
* @param requiresGpt Set to true if this tool requires the usage of a GPT.
|
|
12
|
+
* @param call This is the function that will be invoked when the tool is called by a non-LLM.
|
|
13
|
+
* @param callFromGpt This is the function that will be invoked when the tool is called by an LLM.
|
|
14
|
+
*/
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
requiresGpt: boolean;
|
|
18
|
+
schema: CallSchema;
|
|
19
|
+
gptSchema?: CallFromGptSchema;
|
|
20
|
+
call(ctx: ToolCallContext, params: z.infer<CallSchema>): Promise<ToolCallResult> | ToolCallResult;
|
|
21
|
+
callFromGpt?(ctx: ToolCallContext, params: z.infer<CallFromGptSchema>): Promise<ToolCallResult> | ToolCallResult;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=CreateToolOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateToolOptions.d.ts","sourceRoot":"","sources":["../../src/models/CreateToolOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EACnC,iBAAiB,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,IACrD;IACF;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,IAAI,CACF,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAC1B,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;IAC5C,WAAW,CAAC,CACV,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GACjC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;CAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateToolOptions.js","sourceRoot":"","sources":["../../src/models/CreateToolOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { z } from 'zod/v4';
|
|
2
|
+
import type { PluginDependencies } from '../managers/PluginLoader';
|
|
3
|
+
import type { CreateToolOptions } from '../models/CreateToolOptions';
|
|
4
|
+
import type { Tool } from '../tools/Tool';
|
|
5
|
+
/**
|
|
6
|
+
* Factory function to create a Donobu Tool instance for Donobu plugins.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createTool<CallSchema extends z.ZodObject<any>, CallFromGptSchema extends z.ZodObject<any> = CallSchema>(deps: PluginDependencies, options: CreateToolOptions<CallSchema, CallFromGptSchema>): Tool<CallSchema, CallFromGptSchema>;
|
|
9
|
+
//# sourceMappingURL=createTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../src/utils/createTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EACnC,iBAAiB,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,EAEvD,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,CAAC,GACxD,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CA4BrC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTool = createTool;
|
|
4
|
+
/**
|
|
5
|
+
* Factory function to create a Donobu Tool instance for Donobu plugins.
|
|
6
|
+
*/
|
|
7
|
+
function createTool(deps, options) {
|
|
8
|
+
class AnonymousTool extends deps.donobu.Tool {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(options.name, options.description, options.schema, (options.gptSchema ?? options.schema), options.requiresGpt);
|
|
11
|
+
}
|
|
12
|
+
async call(ctx, params) {
|
|
13
|
+
return options.call(ctx, params);
|
|
14
|
+
}
|
|
15
|
+
async callFromGpt(ctx, params) {
|
|
16
|
+
return options.callFromGpt
|
|
17
|
+
? options.callFromGpt(ctx, params)
|
|
18
|
+
: this.call(ctx, this.inputSchema.parse(params));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return new AnonymousTool();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=createTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTool.js","sourceRoot":"","sources":["../../src/utils/createTool.ts"],"names":[],"mappings":";;AAWA,gCAkCC;AArCD;;GAEG;AACH,SAAgB,UAAU,CAIxB,IAAwB,EACxB,OAAyD;IAEzD,MAAM,aAAc,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAmC;QACzE;YACE,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,EACd,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAsB,EAC1D,OAAO,CAAC,WAAW,CACpB,CAAC;QACJ,CAAC;QACe,KAAK,CAAC,IAAI,CACxB,GAAoB,EACpB,MAA2B;YAE3B,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACe,KAAK,CAAC,WAAW,CAC/B,GAAoB,EACpB,MAAkC;YAElC,OAAO,OAAO,CAAC,WAAW;gBACxB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC;KACF;IAED,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC"}
|