@opentabs-dev/cli 0.0.9 → 0.0.11
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/cli.js +5 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts +13 -3
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +45 -32
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +7 -30
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +21 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/index.d.ts +1 -4
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -4
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/logs.d.ts +1 -1
- package/dist/commands/logs.js +2 -2
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/plugin.d.ts +3 -2
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +4 -159
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/setup.d.ts +23 -3
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +35 -34
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts +14 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +151 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +11 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/config.d.ts +7 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -1
- package/dist/config.js.map +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +107 -58
- package/dist/scaffold.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -5,7 +5,13 @@ export declare const getConfigDir: () => string;
|
|
|
5
5
|
export declare const getConfigPath: () => string;
|
|
6
6
|
export declare const getLogFilePath: () => string;
|
|
7
7
|
export declare const readConfig: (configPath: string) => Promise<Record<string, unknown> | null>;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const getLocalPluginsFromConfig: (config: Record<string, unknown>) => string[];
|
|
9
9
|
export declare const resolvePluginPath: (pluginPath: string, configPath: string) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Write config atomically: write to a temp file in the same directory,
|
|
12
|
+
* set restrictive permissions, then rename over the target. The rename
|
|
13
|
+
* is atomic on POSIX filesystems, so readers never see a partially-written file.
|
|
14
|
+
*/
|
|
15
|
+
export declare const atomicWriteConfig: (configPath: string, content: string) => Promise<void>;
|
|
10
16
|
export declare const isConnectionRefused: (err: unknown) => boolean;
|
|
11
17
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,eAAO,MAAM,YAAY,QAAO,MAAqE,CAAC;AAEtG,eAAO,MAAM,aAAa,QAAO,MAA6C,CAAC;AAE/E,eAAO,MAAM,cAAc,QAAO,MAA4C,CAAC;AAE/E,eAAO,MAAM,UAAU,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAoB3F,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;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,YAAY,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAUzF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,KAAG,OAIlD,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Config file helpers shared across CLI commands.
|
|
3
3
|
*/
|
|
4
|
+
import { chmod, rename, unlink } from 'node:fs/promises';
|
|
4
5
|
import { homedir } from 'node:os';
|
|
5
6
|
import { join, dirname, resolve, isAbsolute } from 'node:path';
|
|
6
7
|
export const getConfigDir = () => Bun.env.OPENTABS_CONFIG_DIR || join(homedir(), '.opentabs');
|
|
@@ -26,8 +27,27 @@ export const readConfig = async (configPath) => {
|
|
|
26
27
|
}
|
|
27
28
|
return parsed;
|
|
28
29
|
};
|
|
29
|
-
export const
|
|
30
|
+
export const getLocalPluginsFromConfig = (config) => Array.isArray(config.localPlugins)
|
|
31
|
+
? config.localPlugins.filter((p) => typeof p === 'string')
|
|
32
|
+
: [];
|
|
30
33
|
export const resolvePluginPath = (pluginPath, configPath) => isAbsolute(pluginPath) ? pluginPath : resolve(dirname(configPath), pluginPath);
|
|
34
|
+
/**
|
|
35
|
+
* Write config atomically: write to a temp file in the same directory,
|
|
36
|
+
* set restrictive permissions, then rename over the target. The rename
|
|
37
|
+
* is atomic on POSIX filesystems, so readers never see a partially-written file.
|
|
38
|
+
*/
|
|
39
|
+
export const atomicWriteConfig = async (configPath, content) => {
|
|
40
|
+
const tmpPath = configPath + '.tmp';
|
|
41
|
+
try {
|
|
42
|
+
await Bun.write(tmpPath, content);
|
|
43
|
+
await chmod(tmpPath, 0o600).catch(() => { });
|
|
44
|
+
await rename(tmpPath, configPath);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
await unlink(tmpPath).catch(() => { });
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
31
51
|
export const isConnectionRefused = (err) => {
|
|
32
52
|
if (!(err instanceof TypeError))
|
|
33
53
|
return false;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAEtG,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,UAAkB,EAA2C,EAAE;IAC9F,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,KAAK,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,KAAK,CACX,qBAAqB,UAAU,iCAAiC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACnH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/scaffold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,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;AAwRf;;;GAGG;AACH,QAAA,MAAM,cAAc,GAAU,MAAM,YAAY,KAAG,OAAO,CAAC,MAAM,CAuDhE,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACpE,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/scaffold.js
CHANGED
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
* Plugins are always standalone projects that depend on published
|
|
6
6
|
* `@opentabs-dev/*` npm packages. There is no monorepo special-casing.
|
|
7
7
|
*/
|
|
8
|
-
import { getConfigPath, readConfig } from './config.js';
|
|
9
8
|
import { validatePluginName, validateUrlPattern } from '@opentabs-dev/plugin-sdk';
|
|
10
9
|
import pc from 'picocolors';
|
|
11
10
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
12
|
-
import { resolve, join, dirname
|
|
11
|
+
import { resolve, join, dirname } from 'node:path';
|
|
13
12
|
// --- Errors ---
|
|
14
13
|
class ScaffoldError extends Error {
|
|
15
14
|
constructor(message) {
|
|
@@ -17,6 +16,17 @@ class ScaffoldError extends Error {
|
|
|
17
16
|
this.name = 'ScaffoldError';
|
|
18
17
|
}
|
|
19
18
|
}
|
|
19
|
+
// --- Helpers ---
|
|
20
|
+
/** Convert a hyphenated name to PascalCase: "my-plugin" → "MyPlugin" */
|
|
21
|
+
const toPascalCase = (name) => name
|
|
22
|
+
.split('-')
|
|
23
|
+
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
|
24
|
+
.join('');
|
|
25
|
+
/** Convert a hyphenated name to title case: "my-cool-plugin" → "My Cool Plugin" */
|
|
26
|
+
const toTitleCase = (name) => name
|
|
27
|
+
.split('-')
|
|
28
|
+
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
|
29
|
+
.join(' ');
|
|
20
30
|
// --- Template generation ---
|
|
21
31
|
/** Resolve the current version of an @opentabs-dev package from the installed CLI. */
|
|
22
32
|
const resolvePackageVersion = async (packageSpecifier) => {
|
|
@@ -33,16 +43,24 @@ const resolvePackageVersion = async (packageSpecifier) => {
|
|
|
33
43
|
return '^0.0.2';
|
|
34
44
|
}
|
|
35
45
|
};
|
|
36
|
-
const generatePackageJson = async (args) => {
|
|
37
|
-
const
|
|
46
|
+
const generatePackageJson = async (args, urlPattern) => {
|
|
47
|
+
const displayName = args.display ?? toTitleCase(args.name);
|
|
48
|
+
const desc = args.description ?? `OpenTabs plugin for ${displayName}`;
|
|
49
|
+
const [sdkVersion, pluginToolsVersion] = await Promise.all([
|
|
38
50
|
resolvePackageVersion('@opentabs-dev/plugin-sdk'),
|
|
39
|
-
resolvePackageVersion('@opentabs-dev/
|
|
51
|
+
resolvePackageVersion('@opentabs-dev/plugin-tools'),
|
|
40
52
|
]);
|
|
41
53
|
const pkg = {
|
|
42
54
|
name: `opentabs-plugin-${args.name}`,
|
|
43
55
|
version: '0.0.1',
|
|
44
56
|
type: 'module',
|
|
57
|
+
main: 'dist/adapter.iife.js',
|
|
45
58
|
keywords: ['opentabs-plugin'],
|
|
59
|
+
opentabs: {
|
|
60
|
+
displayName,
|
|
61
|
+
description: desc,
|
|
62
|
+
urlPatterns: [urlPattern],
|
|
63
|
+
},
|
|
46
64
|
exports: {
|
|
47
65
|
'.': {
|
|
48
66
|
types: './dist/index.d.ts',
|
|
@@ -50,10 +68,10 @@ const generatePackageJson = async (args) => {
|
|
|
50
68
|
},
|
|
51
69
|
},
|
|
52
70
|
types: './dist/index.d.ts',
|
|
53
|
-
files: ['dist'
|
|
71
|
+
files: ['dist'],
|
|
54
72
|
scripts: {
|
|
55
|
-
build: 'tsc && opentabs build',
|
|
56
|
-
dev: '
|
|
73
|
+
build: 'tsc && opentabs-plugin build',
|
|
74
|
+
dev: 'tsc --watch --preserveWatchOutput & opentabs-plugin build --watch',
|
|
57
75
|
'type-check': 'tsc --noEmit',
|
|
58
76
|
lint: 'eslint src/',
|
|
59
77
|
'lint:fix': 'eslint src/ --fix',
|
|
@@ -67,7 +85,7 @@ const generatePackageJson = async (args) => {
|
|
|
67
85
|
'@opentabs-dev/plugin-sdk': sdkVersion,
|
|
68
86
|
},
|
|
69
87
|
devDependencies: {
|
|
70
|
-
'@opentabs-dev/
|
|
88
|
+
'@opentabs-dev/plugin-tools': pluginToolsVersion,
|
|
71
89
|
eslint: '^9.39.2',
|
|
72
90
|
'eslint-config-prettier': '^10.1.8',
|
|
73
91
|
'eslint-plugin-prettier': '^5.5.5',
|
|
@@ -132,16 +150,83 @@ node_modules/
|
|
|
132
150
|
*.tsbuildinfo
|
|
133
151
|
bun.lock
|
|
134
152
|
`;
|
|
135
|
-
|
|
136
|
-
const
|
|
137
|
-
.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
153
|
+
const generateReadme = (args, urlPattern) => {
|
|
154
|
+
const displayName = args.display ?? toTitleCase(args.name);
|
|
155
|
+
const desc = args.description ?? `OpenTabs plugin for ${displayName}`;
|
|
156
|
+
return `# opentabs-plugin-${args.name}
|
|
157
|
+
|
|
158
|
+
${desc}
|
|
159
|
+
|
|
160
|
+
## Project Structure
|
|
161
|
+
|
|
162
|
+
\`\`\`
|
|
163
|
+
${args.name}/
|
|
164
|
+
├── package.json # Plugin metadata (name, opentabs field, dependencies)
|
|
165
|
+
├── src/
|
|
166
|
+
│ ├── index.ts # Plugin class (extends OpenTabsPlugin)
|
|
167
|
+
│ └── tools/ # One file per tool (using defineTool)
|
|
168
|
+
│ └── example.ts
|
|
169
|
+
└── dist/ # Build output (generated)
|
|
170
|
+
├── adapter.iife.js # Bundled adapter injected into matching tabs
|
|
171
|
+
└── tools.json # Tool schemas for MCP registration
|
|
172
|
+
\`\`\`
|
|
173
|
+
|
|
174
|
+
## Configuration
|
|
175
|
+
|
|
176
|
+
Plugin metadata is defined in \`package.json\` under the \`opentabs\` field:
|
|
177
|
+
|
|
178
|
+
\`\`\`json
|
|
179
|
+
{
|
|
180
|
+
"name": "opentabs-plugin-${args.name}",
|
|
181
|
+
"main": "dist/adapter.iife.js",
|
|
182
|
+
"opentabs": {
|
|
183
|
+
"displayName": "${displayName}",
|
|
184
|
+
"description": "${desc}",
|
|
185
|
+
"urlPatterns": ["${urlPattern}"]
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
\`\`\`
|
|
189
|
+
|
|
190
|
+
- **\`main\`** — entry point for the bundled adapter IIFE
|
|
191
|
+
- **\`opentabs.displayName\`** — human-readable name shown in the side panel
|
|
192
|
+
- **\`opentabs.description\`** — short description of what the plugin does
|
|
193
|
+
- **\`opentabs.urlPatterns\`** — Chrome match patterns for tabs where the adapter is injected
|
|
194
|
+
|
|
195
|
+
## Development
|
|
196
|
+
|
|
197
|
+
\`\`\`bash
|
|
198
|
+
bun install
|
|
199
|
+
bun run build # tsc && opentabs-plugin build
|
|
200
|
+
bun run dev # watch mode (tsc --watch + opentabs-plugin build --watch)
|
|
201
|
+
bun run type-check # tsc --noEmit
|
|
202
|
+
bun run lint # eslint
|
|
203
|
+
\`\`\`
|
|
204
|
+
|
|
205
|
+
## Adding Tools
|
|
206
|
+
|
|
207
|
+
Create a new file in \`src/tools/\` using \`defineTool\`:
|
|
208
|
+
|
|
209
|
+
\`\`\`ts
|
|
210
|
+
import { z } from 'zod';
|
|
211
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
212
|
+
|
|
213
|
+
export const myTool = defineTool({
|
|
214
|
+
name: 'my_tool',
|
|
215
|
+
displayName: 'My Tool',
|
|
216
|
+
description: 'What this tool does',
|
|
217
|
+
icon: 'wrench',
|
|
218
|
+
input: z.object({ /* ... */ }),
|
|
219
|
+
output: z.object({ /* ... */ }),
|
|
220
|
+
handle: async (params) => {
|
|
221
|
+
// Tool implementation runs in the browser tab context
|
|
222
|
+
return { /* ... */ };
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
\`\`\`
|
|
226
|
+
|
|
227
|
+
Then register it in \`src/index.ts\` by adding it to the \`tools\` array.
|
|
228
|
+
`;
|
|
229
|
+
};
|
|
145
230
|
const generatePluginIndex = (args, urlPattern) => {
|
|
146
231
|
const displayName = args.display ?? toTitleCase(args.name);
|
|
147
232
|
const desc = args.description ?? `OpenTabs plugin for ${displayName}`;
|
|
@@ -193,35 +278,6 @@ export const exampleTool = defineTool({
|
|
|
193
278
|
});
|
|
194
279
|
`;
|
|
195
280
|
};
|
|
196
|
-
// --- Auto-registration ---
|
|
197
|
-
/**
|
|
198
|
-
* Add a plugin path to ~/.opentabs/config.json.
|
|
199
|
-
* Uses a relative path from the config directory for portability.
|
|
200
|
-
* Non-fatal: logs a warning on failure.
|
|
201
|
-
*/
|
|
202
|
-
const autoRegisterPlugin = async (projectDir) => {
|
|
203
|
-
const configPath = getConfigPath();
|
|
204
|
-
let config;
|
|
205
|
-
const existing = await readConfig(configPath);
|
|
206
|
-
if (existing) {
|
|
207
|
-
config = existing;
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
const configDir = dirname(configPath);
|
|
211
|
-
mkdirSync(configDir, { recursive: true });
|
|
212
|
-
config = { plugins: [], tools: {}, secret: crypto.randomUUID() };
|
|
213
|
-
}
|
|
214
|
-
if (!Array.isArray(config.plugins))
|
|
215
|
-
config.plugins = [];
|
|
216
|
-
const plugins = config.plugins;
|
|
217
|
-
const configDir = dirname(configPath);
|
|
218
|
-
const pluginPath = relative(configDir, projectDir);
|
|
219
|
-
if (plugins.includes(pluginPath))
|
|
220
|
-
return true;
|
|
221
|
-
plugins.push(pluginPath);
|
|
222
|
-
await Bun.write(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
223
|
-
return true;
|
|
224
|
-
};
|
|
225
281
|
// --- Scaffolding ---
|
|
226
282
|
/**
|
|
227
283
|
* Scaffold a new OpenTabs plugin project.
|
|
@@ -244,7 +300,7 @@ const scaffoldPlugin = async (args) => {
|
|
|
244
300
|
console.log(`Creating ${pc.bold(`opentabs-plugin-${args.name}`)}...`);
|
|
245
301
|
mkdirSync(projectDir, { recursive: true });
|
|
246
302
|
mkdirSync(join(projectDir, 'src', 'tools'), { recursive: true });
|
|
247
|
-
await Bun.write(join(projectDir, 'package.json'), await generatePackageJson(args));
|
|
303
|
+
await Bun.write(join(projectDir, 'package.json'), await generatePackageJson(args, urlPattern));
|
|
248
304
|
console.log(` ${pc.dim('Created:')} ${pc.bold('package.json')}`);
|
|
249
305
|
await Bun.write(join(projectDir, 'tsconfig.json'), TSCONFIG_CONTENT);
|
|
250
306
|
console.log(` ${pc.dim('Created:')} ${pc.bold('tsconfig.json')}`);
|
|
@@ -258,17 +314,10 @@ const scaffoldPlugin = async (args) => {
|
|
|
258
314
|
console.log(` ${pc.dim('Created:')} ${pc.bold('src/index.ts')}`);
|
|
259
315
|
await Bun.write(join(projectDir, 'src', 'tools', 'example.ts'), generateExampleTool(args));
|
|
260
316
|
console.log(` ${pc.dim('Created:')} ${pc.bold('src/tools/example.ts')}`);
|
|
317
|
+
await Bun.write(join(projectDir, 'README.md'), generateReadme(args, urlPattern));
|
|
318
|
+
console.log(` ${pc.dim('Created:')} ${pc.bold('README.md')}`);
|
|
261
319
|
console.log('');
|
|
262
320
|
console.log(pc.green(`Plugin scaffolded in ./${args.name}/`));
|
|
263
|
-
try {
|
|
264
|
-
await autoRegisterPlugin(projectDir);
|
|
265
|
-
console.log(pc.green('Registered in ~/.opentabs/config.json'));
|
|
266
|
-
}
|
|
267
|
-
catch (err) {
|
|
268
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
269
|
-
console.warn(pc.yellow(`Warning: Could not auto-register plugin: ${msg}`));
|
|
270
|
-
console.warn(` Run ${pc.cyan(`opentabs plugin add ./${args.name}`)} manually.`);
|
|
271
|
-
}
|
|
272
321
|
console.log('');
|
|
273
322
|
console.log('Next steps:');
|
|
274
323
|
console.log(` ${pc.cyan(`cd ${args.name}`)}`);
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentabs-dev/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./scaffold": {
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"build": "tsc --build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@opentabs-dev/plugin-sdk": "^0.0.
|
|
25
|
-
"@opentabs-dev/
|
|
24
|
+
"@opentabs-dev/plugin-sdk": "^0.0.11",
|
|
25
|
+
"@opentabs-dev/plugin-tools": "^0.0.11",
|
|
26
|
+
"@opentabs-dev/shared": "^0.0.11",
|
|
26
27
|
"commander": "^14.0.3",
|
|
27
|
-
"picocolors": "^1.1.1"
|
|
28
|
-
"zod": "^4.3.6"
|
|
28
|
+
"picocolors": "^1.1.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"bun-types": "^1.3.9"
|