@opentabs-dev/cli 0.0.34 → 0.0.36

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.
Files changed (48) hide show
  1. package/dist/cli.js +17 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/audit.d.ts +5 -1
  4. package/dist/commands/audit.d.ts.map +1 -1
  5. package/dist/commands/audit.js +9 -5
  6. package/dist/commands/audit.js.map +1 -1
  7. package/dist/commands/config.d.ts +21 -1
  8. package/dist/commands/config.d.ts.map +1 -1
  9. package/dist/commands/config.js +168 -21
  10. package/dist/commands/config.js.map +1 -1
  11. package/dist/commands/doctor.d.ts +9 -2
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +68 -24
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/index.d.ts +2 -1
  16. package/dist/commands/index.d.ts.map +1 -1
  17. package/dist/commands/index.js +2 -1
  18. package/dist/commands/index.js.map +1 -1
  19. package/dist/commands/logs.d.ts +10 -1
  20. package/dist/commands/logs.d.ts.map +1 -1
  21. package/dist/commands/logs.js +22 -3
  22. package/dist/commands/logs.js.map +1 -1
  23. package/dist/commands/plugin.d.ts +57 -9
  24. package/dist/commands/plugin.d.ts.map +1 -1
  25. package/dist/commands/plugin.js +74 -32
  26. package/dist/commands/plugin.js.map +1 -1
  27. package/dist/commands/setup.js +2 -2
  28. package/dist/commands/setup.js.map +1 -1
  29. package/dist/commands/start.d.ts +8 -1
  30. package/dist/commands/start.d.ts.map +1 -1
  31. package/dist/commands/start.js +99 -40
  32. package/dist/commands/start.js.map +1 -1
  33. package/dist/commands/status.d.ts +14 -1
  34. package/dist/commands/status.d.ts.map +1 -1
  35. package/dist/commands/status.js +115 -16
  36. package/dist/commands/status.js.map +1 -1
  37. package/dist/commands/stop.d.ts +11 -0
  38. package/dist/commands/stop.d.ts.map +1 -0
  39. package/dist/commands/stop.js +104 -0
  40. package/dist/commands/stop.js.map +1 -0
  41. package/dist/config.d.ts +8 -2
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js +36 -5
  44. package/dist/config.js.map +1 -1
  45. package/dist/scaffold.d.ts.map +1 -1
  46. package/dist/scaffold.js +49 -27
  47. package/dist/scaffold.js.map +1 -1
  48. package/package.json +7 -10
@@ -0,0 +1,104 @@
1
+ /**
2
+ * `opentabs stop` command — stops a background MCP server.
3
+ *
4
+ * Reads the PID file written by `opentabs start --background`, sends SIGTERM
5
+ * to the process, waits for it to exit, and cleans up the PID file. Falls back
6
+ * to a health-check probe when no PID file exists.
7
+ */
8
+ import { isConnectionRefused, getPidFilePath } from '../config.js';
9
+ import { parsePort, resolvePort } from '../parse-port.js';
10
+ import pc from 'picocolors';
11
+ import { readFile, unlink } from 'node:fs/promises';
12
+ /** Returns true if a process with the given PID is alive. */
13
+ const isProcessAlive = (pid) => {
14
+ try {
15
+ process.kill(pid, 0);
16
+ return true;
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ };
22
+ /** Wait for a process to exit, polling every 200ms up to `timeoutMs`. */
23
+ const waitForExit = (pid, timeoutMs) => new Promise(resolve => {
24
+ const start = Date.now();
25
+ const check = () => {
26
+ if (!isProcessAlive(pid)) {
27
+ resolve(true);
28
+ return;
29
+ }
30
+ if (Date.now() - start >= timeoutMs) {
31
+ resolve(false);
32
+ return;
33
+ }
34
+ setTimeout(check, 200);
35
+ };
36
+ check();
37
+ });
38
+ const handleStop = async (options) => {
39
+ const pidPath = getPidFilePath();
40
+ let pidFileContent;
41
+ try {
42
+ pidFileContent = await readFile(pidPath, 'utf-8');
43
+ }
44
+ catch {
45
+ // No PID file — fall through to port-based detection
46
+ }
47
+ if (pidFileContent !== undefined) {
48
+ const pid = parseInt(pidFileContent.trim(), 10);
49
+ if (isNaN(pid)) {
50
+ await unlink(pidPath).catch(() => { });
51
+ console.log('Server is not running (invalid PID file cleaned up).');
52
+ return;
53
+ }
54
+ if (!isProcessAlive(pid)) {
55
+ await unlink(pidPath).catch(() => { });
56
+ console.log('Server is not running (stale PID file cleaned up).');
57
+ return;
58
+ }
59
+ process.kill(pid, 'SIGTERM');
60
+ const exited = await waitForExit(pid, 5_000);
61
+ await unlink(pidPath).catch(() => { });
62
+ if (exited) {
63
+ console.log('Server stopped.');
64
+ }
65
+ else {
66
+ console.log(pc.yellow(`Server process (PID: ${String(pid)}) did not exit within 5 seconds.`));
67
+ console.log(pc.dim(`You may need to kill it manually: kill -9 ${String(pid)}`));
68
+ }
69
+ return;
70
+ }
71
+ // No PID file — check if a server is running on the port via health endpoint
72
+ const port = resolvePort(options);
73
+ const url = `http://localhost:${port}/health`;
74
+ try {
75
+ const res = await fetch(url, { signal: AbortSignal.timeout(3_000) });
76
+ if (res.ok) {
77
+ const data = (await res.json());
78
+ if (typeof data.status === 'string') {
79
+ console.log('Server is running but was not started with --background. Stop it with Ctrl+C in the terminal where it is running.');
80
+ return;
81
+ }
82
+ }
83
+ }
84
+ catch (err) {
85
+ if (isConnectionRefused(err)) {
86
+ console.log('Server is not running.');
87
+ return;
88
+ }
89
+ }
90
+ console.log('Server is not running.');
91
+ };
92
+ const registerStopCommand = (program) => {
93
+ program
94
+ .command('stop')
95
+ .description('Stop the background MCP server')
96
+ .option('--port <number>', 'Server port for fallback detection (default: 9515)', parsePort)
97
+ .addHelpText('after', `
98
+ Examples:
99
+ $ opentabs stop
100
+ $ opentabs stop --port 3000`)
101
+ .action((_options, command) => handleStop(command.optsWithGlobals()));
102
+ };
103
+ export { registerStopCommand };
104
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Config file helpers shared across CLI commands.
3
3
  */
4
- import { getConfigDir, getConfigPath, getExtensionDir, getLogFilePath } from '@opentabs-dev/shared';
5
- export { getConfigDir, getConfigPath, getExtensionDir, getLogFilePath };
4
+ import { getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, getPidFilePath } from '@opentabs-dev/shared';
5
+ export { getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, getPidFilePath };
6
6
  export type ConfigResult = {
7
7
  config: Record<string, unknown>;
8
8
  error?: undefined;
@@ -24,5 +24,11 @@ export declare const atomicWriteConfig: (configPath: string, content: string) =>
24
24
  * Returns null if auth.json does not exist or has no valid secret.
25
25
  */
26
26
  export declare const readAuthSecret: () => Promise<string | null>;
27
+ /**
28
+ * Ensure the WebSocket authentication secret exists in auth.json.
29
+ * If auth.json already exists with a valid secret, returns it unchanged.
30
+ * If auth.json is missing or malformed, generates a new secret, writes it, and returns it.
31
+ */
32
+ export declare const ensureAuthSecret: () => Promise<string>;
27
33
  export declare const isConnectionRefused: (err: unknown) => boolean;
28
34
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAExE,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,UAAU,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,YAAY,CA4BzE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,EAG1E,CAAC;AAET,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,EAAE,YAAY,MAAM,KAAG,MACK,CAAC;AAEjF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAC3C,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAmB5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,KAAG,OAIlD,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAExF,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,UAAU,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,YAAY,CA4BzE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,EAG1E,CAAC;AAET,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,EAAE,YAAY,MAAM,KAAG,MAG1E,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAC3C,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAmB5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAwBvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,KAAG,OAIlD,CAAC"}
package/dist/config.js CHANGED
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Config file helpers shared across CLI commands.
3
3
  */
4
- import { atomicWrite, getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, toErrorMessage, } from '@opentabs-dev/shared';
5
- import { access, readFile } from 'node:fs/promises';
6
- import { dirname, join, resolve, isAbsolute } from 'node:path';
7
- export { getConfigDir, getConfigPath, getExtensionDir, getLogFilePath };
4
+ import { atomicWrite, generateSecret, getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, getPidFilePath, toErrorMessage, } from '@opentabs-dev/shared';
5
+ import { access, mkdir, readFile } from 'node:fs/promises';
6
+ import { homedir } from 'node:os';
7
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
8
+ export { getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, getPidFilePath };
8
9
  export const readConfig = async (configPath) => {
9
10
  if (!(await access(configPath).then(() => true, () => false))) {
10
11
  return { config: null, error: 'missing' };
@@ -33,7 +34,11 @@ export const readConfig = async (configPath) => {
33
34
  export const getLocalPluginsFromConfig = (config) => Array.isArray(config.localPlugins)
34
35
  ? config.localPlugins.filter((p) => typeof p === 'string')
35
36
  : [];
36
- export const resolvePluginPath = (pluginPath, configPath) => isAbsolute(pluginPath) ? pluginPath : resolve(dirname(configPath), pluginPath);
37
+ export const resolvePluginPath = (pluginPath, configPath) => {
38
+ if (pluginPath.startsWith('~/'))
39
+ return resolve(homedir(), pluginPath.slice(2));
40
+ return isAbsolute(pluginPath) ? pluginPath : resolve(dirname(configPath), pluginPath);
41
+ };
37
42
  /** Write config atomically with restrictive permissions via the shared helper. */
38
43
  export const atomicWriteConfig = (configPath, content) => atomicWrite(configPath, content, 0o600);
39
44
  /**
@@ -57,6 +62,32 @@ export const readAuthSecret = async () => {
57
62
  }
58
63
  return null;
59
64
  };
65
+ /**
66
+ * Ensure the WebSocket authentication secret exists in auth.json.
67
+ * If auth.json already exists with a valid secret, returns it unchanged.
68
+ * If auth.json is missing or malformed, generates a new secret, writes it, and returns it.
69
+ */
70
+ export const ensureAuthSecret = async () => {
71
+ const extensionDir = getExtensionDir();
72
+ const authPath = join(extensionDir, 'auth.json');
73
+ if (await access(authPath).then(() => true, () => false)) {
74
+ try {
75
+ const parsed = JSON.parse(await readFile(authPath, 'utf-8'));
76
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
77
+ const secret = parsed.secret;
78
+ if (typeof secret === 'string' && secret.length > 0)
79
+ return secret;
80
+ }
81
+ }
82
+ catch {
83
+ // Malformed auth.json — regenerate below
84
+ }
85
+ }
86
+ const secret = generateSecret();
87
+ await mkdir(extensionDir, { recursive: true, mode: 0o700 });
88
+ await atomicWrite(authPath, JSON.stringify({ secret }) + '\n', 0o600);
89
+ return secret;
90
+ };
60
91
  export const isConnectionRefused = (err) => {
61
92
  if (!(err instanceof TypeError))
62
93
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,cAAM,aAAc,SAAQ,KAAK;gBACnB,OAAO,EAAE,MAAM;CAI5B;AAID,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wEAAwE;AACxE,QAAA,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAIxB,CAAC;AAEd,mFAAmF;AACnF,QAAA,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAItB,CAAC;AAkWf,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,GAAU,SAAS,mBAAmB,KAAG,OAAO,CAAC,YAAY,CAsCtF,CAAC;AAIF;;;GAGG;AACH,QAAA,MAAM,cAAc,GAAU,MAAM,YAAY,KAAG,OAAO,CAAC,MAAM,CAwDhE,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAC1F,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,cAAM,aAAc,SAAQ,KAAK;gBACnB,OAAO,EAAE,MAAM;CAI5B;AAID,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wEAAwE;AACxE,QAAA,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAIxB,CAAC;AAEd,mFAAmF;AACnF,QAAA,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAItB,CAAC;AA8Wf,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,GAAU,SAAS,mBAAmB,KAAG,OAAO,CAAC,YAAY,CAsCtF,CAAC;AAIF;;;GAGG;AACH,QAAA,MAAM,cAAc,GAAU,MAAM,YAAY,KAAG,OAAO,CAAC,MAAM,CAiEhE,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAC1F,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/scaffold.js CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { validatePluginName, validateUrlPattern } from '@opentabs-dev/plugin-sdk';
9
9
  import pc from 'picocolors';
10
- import { existsSync, mkdirSync } from 'node:fs';
10
+ import { existsSync, mkdirSync, rmSync } from 'node:fs';
11
11
  import { readFile, writeFile } from 'node:fs/promises';
12
12
  import { resolve, join, dirname } from 'node:path';
13
13
  import { createInterface } from 'node:readline/promises';
@@ -29,6 +29,8 @@ const toTitleCase = (name) => name
29
29
  .split('-')
30
30
  .map(part => part.charAt(0).toUpperCase() + part.slice(1))
31
31
  .join(' ');
32
+ /** Wrap a string value in a single-quoted TypeScript string literal with proper escaping. */
33
+ const singleQuote = (value) => `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
32
34
  // --- Template generation ---
33
35
  /**
34
36
  * Resolve the version of @opentabs-dev packages for scaffolded plugins.
@@ -156,7 +158,6 @@ const PRETTIERRC_CONTENT = JSON.stringify({
156
158
  const GITIGNORE_CONTENT = `dist/
157
159
  node_modules/
158
160
  *.tsbuildinfo
159
- bun.lock
160
161
  package-lock.json
161
162
  `;
162
163
  const generateReadme = (args, urlPattern) => {
@@ -308,15 +309,25 @@ const generatePluginIndex = (args, urlPattern) => {
308
309
  return `import { OpenTabsPlugin } from '@opentabs-dev/plugin-sdk';
309
310
  import { exampleTool } from './tools/example.js';
310
311
  import type { ToolDefinition } from '@opentabs-dev/plugin-sdk';
312
+ // To add resources or prompts, extend the import above:
313
+ // import type { ToolDefinition, ResourceDefinition, PromptDefinition } from '@opentabs-dev/plugin-sdk';
311
314
 
312
315
  class ${toPascalCase(args.name)}Plugin extends OpenTabsPlugin {
313
- readonly name = ${JSON.stringify(args.name)};
316
+ readonly name = ${singleQuote(args.name)};
314
317
  readonly version = '0.0.1';
315
- readonly description = ${JSON.stringify(desc)};
316
- override readonly displayName = ${JSON.stringify(displayName)};
317
- readonly urlPatterns = [${JSON.stringify(urlPattern)}];
318
+ readonly description = ${singleQuote(desc)};
319
+ override readonly displayName = ${singleQuote(displayName)};
320
+ readonly urlPatterns = [${singleQuote(urlPattern)}];
318
321
  readonly tools: ToolDefinition[] = [exampleTool];
319
322
 
323
+ // To expose read-only data as resources (the 'override' keyword is required):
324
+ // override readonly resources: ResourceDefinition[] = [];
325
+ //
326
+ // To add prompt templates (the 'override' keyword is required):
327
+ // override readonly prompts: PromptDefinition[] = [];
328
+ //
329
+ // See: https://opentabs.dev/docs/guides/resources-prompts
330
+
320
331
  // IMPORTANT: Implement this method to check if the user is authenticated.
321
332
  // The plugin reports 'unavailable' until this returns true.
322
333
  // Examples:
@@ -333,7 +344,7 @@ export default new ${toPascalCase(args.name)}Plugin();
333
344
  };
334
345
  const generateExampleTool = (args) => {
335
346
  const displayName = args.display ?? toTitleCase(args.name);
336
- const escaped = JSON.stringify(displayName);
347
+ const escaped = singleQuote(displayName);
337
348
  return `import { z } from 'zod';
338
349
  import { defineTool } from '@opentabs-dev/plugin-sdk';
339
350
 
@@ -348,7 +359,7 @@ export const exampleTool = defineTool({
348
359
  output: z.object({
349
360
  result: z.string().describe('The result of the example operation'),
350
361
  }),
351
- handle: async (params) => {
362
+ handle: async params => {
352
363
  return { result: 'Hello from ' + ${escaped} + ': ' + params.message };
353
364
  },
354
365
  });
@@ -367,7 +378,7 @@ const promptForMissingArgs = async (partial) => {
367
378
  }
368
379
  if (!process.stdin.isTTY) {
369
380
  const missing = [!name && 'name', !domain && '--domain'].filter(Boolean);
370
- throw new ScaffoldError(`Missing required arguments: ${missing.join(', ')}. Provide them as flags or run interactively.`);
381
+ throw new ScaffoldError(`Missing required arguments: ${missing.join(', ')}.\n\nUsage: opentabs plugin create <name> --domain <domain>\nExample: opentabs plugin create my-app --domain .example.com --display "My App"`);
371
382
  }
372
383
  const rl = createInterface({ input: process.stdin, output: process.stdout });
373
384
  try {
@@ -411,24 +422,35 @@ const scaffoldPlugin = async (args) => {
411
422
  throw new ScaffoldError(`Directory "${args.name}" already exists`);
412
423
  }
413
424
  console.log(`Creating ${pc.bold(`opentabs-plugin-${args.name}`)}...`);
414
- mkdirSync(projectDir, { recursive: true });
415
- mkdirSync(join(projectDir, 'src', 'tools'), { recursive: true });
416
- await writeFile(join(projectDir, 'package.json'), await generatePackageJson(args, urlPattern), 'utf-8');
417
- console.log(` ${pc.dim('Created:')} ${pc.bold('package.json')}`);
418
- await writeFile(join(projectDir, 'tsconfig.json'), TSCONFIG_CONTENT, 'utf-8');
419
- console.log(` ${pc.dim('Created:')} ${pc.bold('tsconfig.json')}`);
420
- await writeFile(join(projectDir, 'eslint.config.ts'), ESLINT_CONFIG_CONTENT, 'utf-8');
421
- console.log(` ${pc.dim('Created:')} ${pc.bold('eslint.config.ts')}`);
422
- await writeFile(join(projectDir, '.prettierrc'), PRETTIERRC_CONTENT, 'utf-8');
423
- console.log(` ${pc.dim('Created:')} ${pc.bold('.prettierrc')}`);
424
- await writeFile(join(projectDir, '.gitignore'), GITIGNORE_CONTENT, 'utf-8');
425
- console.log(` ${pc.dim('Created:')} ${pc.bold('.gitignore')}`);
426
- await writeFile(join(projectDir, 'src', 'index.ts'), generatePluginIndex(args, urlPattern), 'utf-8');
427
- console.log(` ${pc.dim('Created:')} ${pc.bold('src/index.ts')}`);
428
- await writeFile(join(projectDir, 'src', 'tools', 'example.ts'), generateExampleTool(args), 'utf-8');
429
- console.log(` ${pc.dim('Created:')} ${pc.bold('src/tools/example.ts')}`);
430
- await writeFile(join(projectDir, 'README.md'), generateReadme(args, urlPattern), 'utf-8');
431
- console.log(` ${pc.dim('Created:')} ${pc.bold('README.md')}`);
425
+ try {
426
+ mkdirSync(projectDir, { recursive: true });
427
+ mkdirSync(join(projectDir, 'src', 'tools'), { recursive: true });
428
+ await writeFile(join(projectDir, 'package.json'), await generatePackageJson(args, urlPattern), 'utf-8');
429
+ console.log(` ${pc.dim('Created:')} ${pc.bold('package.json')}`);
430
+ await writeFile(join(projectDir, 'tsconfig.json'), TSCONFIG_CONTENT, 'utf-8');
431
+ console.log(` ${pc.dim('Created:')} ${pc.bold('tsconfig.json')}`);
432
+ await writeFile(join(projectDir, 'eslint.config.ts'), ESLINT_CONFIG_CONTENT, 'utf-8');
433
+ console.log(` ${pc.dim('Created:')} ${pc.bold('eslint.config.ts')}`);
434
+ await writeFile(join(projectDir, '.prettierrc'), PRETTIERRC_CONTENT, 'utf-8');
435
+ console.log(` ${pc.dim('Created:')} ${pc.bold('.prettierrc')}`);
436
+ await writeFile(join(projectDir, '.gitignore'), GITIGNORE_CONTENT, 'utf-8');
437
+ console.log(` ${pc.dim('Created:')} ${pc.bold('.gitignore')}`);
438
+ await writeFile(join(projectDir, 'src', 'index.ts'), generatePluginIndex(args, urlPattern), 'utf-8');
439
+ console.log(` ${pc.dim('Created:')} ${pc.bold('src/index.ts')}`);
440
+ await writeFile(join(projectDir, 'src', 'tools', 'example.ts'), generateExampleTool(args), 'utf-8');
441
+ console.log(` ${pc.dim('Created:')} ${pc.bold('src/tools/example.ts')}`);
442
+ await writeFile(join(projectDir, 'README.md'), generateReadme(args, urlPattern), 'utf-8');
443
+ console.log(` ${pc.dim('Created:')} ${pc.bold('README.md')}`);
444
+ }
445
+ catch (error) {
446
+ try {
447
+ rmSync(projectDir, { recursive: true, force: true });
448
+ }
449
+ catch {
450
+ /* ignore cleanup errors */
451
+ }
452
+ throw error;
453
+ }
432
454
  console.log('');
433
455
  console.log(pc.green(`Plugin scaffolded in ./${args.name}/`));
434
456
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@opentabs-dev/cli",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "engines": {
5
- "node": ">= 20.0.0"
5
+ "node": ">= 22.0.0"
6
6
  },
7
7
  "type": "module",
8
8
  "exports": {
@@ -24,15 +24,12 @@
24
24
  "build": "tsc --build"
25
25
  },
26
26
  "dependencies": {
27
- "@opentabs-dev/browser-extension": "0.0.34",
28
- "@opentabs-dev/mcp-server": "0.0.34",
29
- "@opentabs-dev/plugin-sdk": "0.0.34",
30
- "@opentabs-dev/plugin-tools": "0.0.34",
31
- "@opentabs-dev/shared": "0.0.34",
27
+ "@opentabs-dev/browser-extension": "*",
28
+ "@opentabs-dev/mcp-server": "*",
29
+ "@opentabs-dev/plugin-sdk": "*",
30
+ "@opentabs-dev/plugin-tools": "*",
31
+ "@opentabs-dev/shared": "*",
32
32
  "commander": "^14.0.3",
33
33
  "picocolors": "^1.1.1"
34
- },
35
- "devDependencies": {
36
- "bun-types": "^1.3.9"
37
34
  }
38
35
  }