donobu 2.29.1 → 2.30.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 +1 @@
1
- 1289
1
+ 1290
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { exec } = require('child_process');
4
+ const { promisify } = require('util');
5
+ const { access, mkdir, rm, cp, readFile } = require('fs/promises');
6
+ const { basename, join } = require('path');
7
+ const { constants } = require('fs');
8
+
9
+ const execAsync = promisify(exec);
10
+
11
+ async function getPluginName() {
12
+ try {
13
+ // First, try to read the plugin name from package.json
14
+ const packageJsonContent = await readFile('package.json', 'utf8');
15
+ const packageJson = JSON.parse(packageJsonContent);
16
+
17
+ if (packageJson.name) {
18
+ console.log(`Using plugin name from package.json: ${packageJson.name}`);
19
+ return packageJson.name;
20
+ }
21
+ } catch (error) {
22
+ console.warn(
23
+ 'Could not read package.json name, falling back to git/user detection',
24
+ );
25
+ }
26
+
27
+ // Fallback to a heuristic
28
+ try {
29
+ const { stdout } = await execAsync('git rev-parse --show-toplevel');
30
+ const repoPath = stdout.trim();
31
+ const gitBasedName = `${basename(repoPath).replace(/\.git$/, '')}-custom-tools`;
32
+ console.log(`Using git-based plugin name: ${gitBasedName}`);
33
+ return gitBasedName;
34
+ } catch {
35
+ const user = process.env.USER || 'unknown-user';
36
+ const userBasedName = `${user}-custom-tools`;
37
+ console.log(`Using user-based plugin name: ${userBasedName}`);
38
+ return userBasedName;
39
+ }
40
+ }
41
+
42
+ async function buildPlugin() {
43
+ console.log('Building plugin...');
44
+ await execAsync('npm run build');
45
+ }
46
+
47
+ async function installPlugin() {
48
+ const pluginName = await getPluginName();
49
+ const pluginsDir = join(
50
+ process.env.HOME,
51
+ 'Library/Application Support/Donobu Studio/plugins',
52
+ );
53
+ const thisPluginDir = join(pluginsDir, pluginName);
54
+
55
+ console.log(`Installing plugin: ${pluginName}`);
56
+
57
+ // Create plugins directory
58
+ await mkdir(pluginsDir, { recursive: true });
59
+
60
+ // Remove old plugin if exists
61
+ try {
62
+ await rm(thisPluginDir, { recursive: true, force: true });
63
+ } catch (err) {
64
+ // Ignore if directory doesn't exist
65
+ }
66
+
67
+ // Copy built plugin
68
+ await cp('dist', thisPluginDir, { recursive: true });
69
+
70
+ console.log(`Plugin installed successfully to: ${thisPluginDir}`);
71
+ console.log('Restart Donobu to see the new tools.');
72
+ }
73
+
74
+ async function main() {
75
+ try {
76
+ // Check if we're in a plugin directory
77
+ try {
78
+ await access('package.json', constants.F_OK);
79
+ await access('src', constants.F_OK);
80
+ } catch {
81
+ console.error(
82
+ 'Error: This command must be run from a Donobu plugin directory',
83
+ );
84
+ console.error('Make sure you have package.json and src/ directory');
85
+ process.exit(1);
86
+ }
87
+
88
+ await buildPlugin();
89
+ await installPlugin();
90
+ } catch (error) {
91
+ console.error('Installation failed:', error.message);
92
+ process.exit(1);
93
+ }
94
+ }
95
+
96
+ main();
@@ -1 +1 @@
1
- 1289
1
+ 1290
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { exec } = require('child_process');
4
+ const { promisify } = require('util');
5
+ const { access, mkdir, rm, cp, readFile } = require('fs/promises');
6
+ const { basename, join } = require('path');
7
+ const { constants } = require('fs');
8
+
9
+ const execAsync = promisify(exec);
10
+
11
+ async function getPluginName() {
12
+ try {
13
+ // First, try to read the plugin name from package.json
14
+ const packageJsonContent = await readFile('package.json', 'utf8');
15
+ const packageJson = JSON.parse(packageJsonContent);
16
+
17
+ if (packageJson.name) {
18
+ console.log(`Using plugin name from package.json: ${packageJson.name}`);
19
+ return packageJson.name;
20
+ }
21
+ } catch (error) {
22
+ console.warn(
23
+ 'Could not read package.json name, falling back to git/user detection',
24
+ );
25
+ }
26
+
27
+ // Fallback to a heuristic
28
+ try {
29
+ const { stdout } = await execAsync('git rev-parse --show-toplevel');
30
+ const repoPath = stdout.trim();
31
+ const gitBasedName = `${basename(repoPath).replace(/\.git$/, '')}-custom-tools`;
32
+ console.log(`Using git-based plugin name: ${gitBasedName}`);
33
+ return gitBasedName;
34
+ } catch {
35
+ const user = process.env.USER || 'unknown-user';
36
+ const userBasedName = `${user}-custom-tools`;
37
+ console.log(`Using user-based plugin name: ${userBasedName}`);
38
+ return userBasedName;
39
+ }
40
+ }
41
+
42
+ async function buildPlugin() {
43
+ console.log('Building plugin...');
44
+ await execAsync('npm run build');
45
+ }
46
+
47
+ async function installPlugin() {
48
+ const pluginName = await getPluginName();
49
+ const pluginsDir = join(
50
+ process.env.HOME,
51
+ 'Library/Application Support/Donobu Studio/plugins',
52
+ );
53
+ const thisPluginDir = join(pluginsDir, pluginName);
54
+
55
+ console.log(`Installing plugin: ${pluginName}`);
56
+
57
+ // Create plugins directory
58
+ await mkdir(pluginsDir, { recursive: true });
59
+
60
+ // Remove old plugin if exists
61
+ try {
62
+ await rm(thisPluginDir, { recursive: true, force: true });
63
+ } catch (err) {
64
+ // Ignore if directory doesn't exist
65
+ }
66
+
67
+ // Copy built plugin
68
+ await cp('dist', thisPluginDir, { recursive: true });
69
+
70
+ console.log(`Plugin installed successfully to: ${thisPluginDir}`);
71
+ console.log('Restart Donobu to see the new tools.');
72
+ }
73
+
74
+ async function main() {
75
+ try {
76
+ // Check if we're in a plugin directory
77
+ try {
78
+ await access('package.json', constants.F_OK);
79
+ await access('src', constants.F_OK);
80
+ } catch {
81
+ console.error(
82
+ 'Error: This command must be run from a Donobu plugin directory',
83
+ );
84
+ console.error('Make sure you have package.json and src/ directory');
85
+ process.exit(1);
86
+ }
87
+
88
+ await buildPlugin();
89
+ await installPlugin();
90
+ } catch (error) {
91
+ console.error('Installation failed:', error.message);
92
+ process.exit(1);
93
+ }
94
+ }
95
+
96
+ main();
@@ -65,7 +65,7 @@ async function loadAllCustomToolPlugins() {
65
65
  const pluginName = folder.name;
66
66
  const pluginPath = node_path_1.default.join(pluginsDir, pluginName);
67
67
  Logger_1.appLogger.info(`↳ Loading plugin "${pluginName}" from ${pluginPath}`);
68
- const entryPoint = await getPluginEntryPoint(pluginName, pluginPath);
68
+ const entryPoint = await getPluginEntryPoint(pluginPath);
69
69
  try {
70
70
  const mod = await import((0, node_url_1.pathToFileURL)(entryPoint).href);
71
71
  if (mod &&
@@ -86,19 +86,7 @@ async function loadAllCustomToolPlugins() {
86
86
  Logger_1.appLogger.info(`Loaded ${tools.length} custom tool(s) from plugins.`);
87
87
  return tools;
88
88
  }
89
- async function getPluginEntryPoint(pluginName, pluginPath) {
90
- const defaultMainFileName = 'index.mjs';
91
- let mainFile = defaultMainFileName;
92
- try {
93
- const pkgJsonContent = await promises_1.default.readFile(node_path_1.default.join(pluginPath, 'package.json'), 'utf-8');
94
- const pkgJson = JSON.parse(pkgJsonContent);
95
- if (pkgJson.main) {
96
- mainFile = pkgJson.main;
97
- }
98
- }
99
- catch (_e) {
100
- Logger_1.appLogger.warn(`Plugin "${pluginName}" has no package.json or it's invalid. Falling back to ${defaultMainFileName}`);
101
- }
102
- return node_path_1.default.join(pluginPath, mainFile);
89
+ async function getPluginEntryPoint(pluginPath) {
90
+ return node_path_1.default.join(pluginPath, 'index.mjs');
103
91
  }
104
92
  //# sourceMappingURL=PluginLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginLoader.js","sourceRoot":"","sources":["../../../src/managers/PluginLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginLoader.js","sourceRoot":"","sources":["../../../src/managers/PluginLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,4DAyDC;AAhFD,gEAAkC;AAClC,0DAA6B;AAC7B,uCAAyC;AAEzC,kDAA+C;AAC/C,4CAA4C;AAE5C,uDAAyC;AAgBlC,KAAK,UAAU,wBAAwB;IAG5C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAuB;QAC7C,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,qBAAS,CAAC,oBAAoB,EAAE,EAAE,SAAS,CAAC,CAAC;IAC1E,kBAAS,CAAC,IAAI,CAAC,aAAa,UAAU,kBAAkB,CAAC,CAAC;IAC1D,IAAI,UAAoB,CAAC;IAEzB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;QACzD,UAAU,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACrD,kBAAS,CAAC,IAAI,CAAC,qBAAqB,UAAU,UAAU,UAAU,EAAE,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAY,MAAM,MAAM,CAAC,IAAA,wBAAa,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;YAElE,IACE,GAAG;gBACH,OAAQ,GAA6B,CAAC,eAAe,KAAK,UAAU,EACpE,CAAC;gBACD,MAAM,WAAW,GAAG,MAAO,GAAoB,CAAC,eAAe,CAC7D,kBAAkB,CACnB,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC3B,kBAAS,CAAC,IAAI,CACZ,cAAc,WAAW,CAAC,MAAM,yBAAyB,UAAU,IAAI,CACxE,CAAC;gBACF,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACxB,kBAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kBAAS,CAAC,KAAK,CACb,WAAW,UAAU,mCAAmC,mBAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EACrF,GAAG,CACJ,CAAC;YACF,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED,kBAAS,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,+BAA+B,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IACnD,OAAO,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC"}
@@ -65,7 +65,7 @@ async function loadAllCustomToolPlugins() {
65
65
  const pluginName = folder.name;
66
66
  const pluginPath = node_path_1.default.join(pluginsDir, pluginName);
67
67
  Logger_1.appLogger.info(`↳ Loading plugin "${pluginName}" from ${pluginPath}`);
68
- const entryPoint = await getPluginEntryPoint(pluginName, pluginPath);
68
+ const entryPoint = await getPluginEntryPoint(pluginPath);
69
69
  try {
70
70
  const mod = await import((0, node_url_1.pathToFileURL)(entryPoint).href);
71
71
  if (mod &&
@@ -86,19 +86,7 @@ async function loadAllCustomToolPlugins() {
86
86
  Logger_1.appLogger.info(`Loaded ${tools.length} custom tool(s) from plugins.`);
87
87
  return tools;
88
88
  }
89
- async function getPluginEntryPoint(pluginName, pluginPath) {
90
- const defaultMainFileName = 'index.mjs';
91
- let mainFile = defaultMainFileName;
92
- try {
93
- const pkgJsonContent = await promises_1.default.readFile(node_path_1.default.join(pluginPath, 'package.json'), 'utf-8');
94
- const pkgJson = JSON.parse(pkgJsonContent);
95
- if (pkgJson.main) {
96
- mainFile = pkgJson.main;
97
- }
98
- }
99
- catch (_e) {
100
- Logger_1.appLogger.warn(`Plugin "${pluginName}" has no package.json or it's invalid. Falling back to ${defaultMainFileName}`);
101
- }
102
- return node_path_1.default.join(pluginPath, mainFile);
89
+ async function getPluginEntryPoint(pluginPath) {
90
+ return node_path_1.default.join(pluginPath, 'index.mjs');
103
91
  }
104
92
  //# sourceMappingURL=PluginLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginLoader.js","sourceRoot":"","sources":["../../src/managers/PluginLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginLoader.js","sourceRoot":"","sources":["../../src/managers/PluginLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,4DAyDC;AAhFD,gEAAkC;AAClC,0DAA6B;AAC7B,uCAAyC;AAEzC,kDAA+C;AAC/C,4CAA4C;AAE5C,uDAAyC;AAgBlC,KAAK,UAAU,wBAAwB;IAG5C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAuB;QAC7C,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,qBAAS,CAAC,oBAAoB,EAAE,EAAE,SAAS,CAAC,CAAC;IAC1E,kBAAS,CAAC,IAAI,CAAC,aAAa,UAAU,kBAAkB,CAAC,CAAC;IAC1D,IAAI,UAAoB,CAAC;IAEzB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;QACzD,UAAU,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACrD,kBAAS,CAAC,IAAI,CAAC,qBAAqB,UAAU,UAAU,UAAU,EAAE,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAY,MAAM,MAAM,CAAC,IAAA,wBAAa,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;YAElE,IACE,GAAG;gBACH,OAAQ,GAA6B,CAAC,eAAe,KAAK,UAAU,EACpE,CAAC;gBACD,MAAM,WAAW,GAAG,MAAO,GAAoB,CAAC,eAAe,CAC7D,kBAAkB,CACnB,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC3B,kBAAS,CAAC,IAAI,CACZ,cAAc,WAAW,CAAC,MAAM,yBAAyB,UAAU,IAAI,CACxE,CAAC;gBACF,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACxB,kBAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kBAAS,CAAC,KAAK,CACb,WAAW,UAAU,mCAAmC,mBAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EACrF,GAAG,CACJ,CAAC;YACF,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED,kBAAS,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,+BAA+B,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IACnD,OAAO,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "donobu",
3
- "version": "2.29.1",
3
+ "version": "2.30.0",
4
4
  "description": "Create browser automations with an LLM agent and replay them as Playwright scripts.",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/esm/main.js",
@@ -12,7 +12,8 @@
12
12
  },
13
13
  "bin": {
14
14
  "playwright-json-to-markdown": "./dist/assets/playwright-json-to-markdown.js",
15
- "playwright-json-to-slack-json": "./dist/assets/playwright-json-to-slack-json.js"
15
+ "playwright-json-to-slack-json": "./dist/assets/playwright-json-to-slack-json.js",
16
+ "install-donobu-plugin": "./dist/assets/install-donobu-plugin.js"
16
17
  },
17
18
  "scripts": {
18
19
  "clean": "rm -rf dist && rm -rf donobu-tool-plugins-for-docker",