@opentabs-dev/cli 0.0.26 → 0.0.28
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.d.ts +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +32 -12
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +102 -27
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts +7 -2
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +94 -23
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +6 -3
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/plugin.d.ts +5 -5
- package/dist/commands/plugin.d.ts.map +1 -1
- package/dist/commands/plugin.js +128 -186
- package/dist/commands/plugin.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +7 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +60 -23
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +6 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +18 -13
- package/dist/commands/update.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -7
- package/dist/config.js.map +1 -1
- package/dist/notify-server.d.ts +16 -0
- package/dist/notify-server.d.ts.map +1 -0
- package/dist/notify-server.js +53 -0
- package/dist/notify-server.js.map +1 -0
- package/dist/parse-port.js +2 -2
- package/dist/parse-port.js.map +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +19 -16
- package/dist/scaffold.js.map +1 -1
- package/package.json +5 -5
package/dist/commands/plugin.js
CHANGED
|
@@ -2,94 +2,21 @@
|
|
|
2
2
|
* `opentabs plugin` command — plugin management (create, search, install, remove, list).
|
|
3
3
|
*/
|
|
4
4
|
import { colorTabState } from './status.js';
|
|
5
|
-
import { atomicWriteConfig, getConfigPath, getLocalPluginsFromConfig, isConnectionRefused,
|
|
5
|
+
import { atomicWriteConfig, getConfigPath, getLocalPluginsFromConfig, isConnectionRefused, readConfig, resolvePluginPath, } from '../config.js';
|
|
6
|
+
import { notifyServer } from '../notify-server.js';
|
|
6
7
|
import { parsePort, resolvePort } from '../parse-port.js';
|
|
7
8
|
import { scaffoldPlugin, promptForMissingArgs, ScaffoldError } from '../scaffold.js';
|
|
8
|
-
import { TOOLS_FILENAME, OFFICIAL_SCOPE, PLUGIN_PREFIX, normalizePluginName, resolvePluginPackageCandidates, platformExec, } from '@opentabs-dev/shared';
|
|
9
|
+
import { TOOLS_FILENAME, OFFICIAL_SCOPE, PLUGIN_PREFIX, normalizePluginName, readFile, resolvePluginPackageCandidates, platformExec, spawnInherit, spawnProcess, spawnProcessSync, toErrorMessage, } from '@opentabs-dev/shared';
|
|
9
10
|
import pc from 'picocolors';
|
|
10
|
-
import { homedir } from 'node:os';
|
|
11
11
|
import { join } from 'node:path';
|
|
12
|
-
/**
|
|
13
|
-
* Notify the running MCP server to rediscover plugins via POST /reload.
|
|
14
|
-
* Non-fatal — prints a hint on failure but never throws.
|
|
15
|
-
*/
|
|
16
|
-
const notifyServer = async (options) => {
|
|
17
|
-
const port = resolvePort(options);
|
|
18
|
-
const secret = await readAuthSecret();
|
|
19
|
-
try {
|
|
20
|
-
const healthRes = await fetch(`http://localhost:${port}/health`, {
|
|
21
|
-
signal: AbortSignal.timeout(3_000),
|
|
22
|
-
});
|
|
23
|
-
if (!healthRes.ok)
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
// Server not running — nothing to notify
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
const headers = { 'Content-Type': 'application/json' };
|
|
32
|
-
if (secret)
|
|
33
|
-
headers['Authorization'] = `Bearer ${secret}`;
|
|
34
|
-
const res = await fetch(`http://localhost:${port}/reload`, {
|
|
35
|
-
method: 'POST',
|
|
36
|
-
headers,
|
|
37
|
-
signal: AbortSignal.timeout(5_000),
|
|
38
|
-
});
|
|
39
|
-
if (res.ok) {
|
|
40
|
-
console.log(pc.dim('Server notified — plugins rediscovered.'));
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
console.log(pc.dim(`Could not notify server (HTTP ${res.status}). Restart the server to pick up changes.`));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
console.log(pc.dim('Could not notify server. Restart the server to pick up changes.'));
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
// --- npm auth ---
|
|
51
|
-
/**
|
|
52
|
-
* Read the npm auth token from ~/.npmrc.
|
|
53
|
-
* Returns the token string or null if not found.
|
|
54
|
-
*/
|
|
55
|
-
const readNpmAuthToken = async () => {
|
|
56
|
-
try {
|
|
57
|
-
const text = await Bun.file(join(homedir(), '.npmrc')).text();
|
|
58
|
-
const match = /\/\/registry\.npmjs\.org\/:_authToken=(.+)/.exec(text);
|
|
59
|
-
return match?.[1]?.trim() ?? null;
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Build HTTP headers for npm registry requests, including auth if available.
|
|
67
|
-
*/
|
|
68
|
-
const npmRegistryHeaders = async () => {
|
|
69
|
-
const headers = { Accept: 'application/json' };
|
|
70
|
-
const token = await readNpmAuthToken();
|
|
71
|
-
if (token)
|
|
72
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
73
|
-
return headers;
|
|
74
|
-
};
|
|
75
12
|
// --- Install handler ---
|
|
76
13
|
/**
|
|
77
|
-
* Check whether a package exists on the npm registry
|
|
78
|
-
*
|
|
14
|
+
* Check whether a package exists on the npm registry via `npm view`.
|
|
15
|
+
* Delegates auth to npm itself (reads ~/.npmrc), supporting private packages.
|
|
79
16
|
*/
|
|
80
|
-
const packageExistsOnNpm =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const res = await fetch(`https://registry.npmjs.org/${pkg}`, {
|
|
84
|
-
method: 'HEAD',
|
|
85
|
-
headers,
|
|
86
|
-
signal: AbortSignal.timeout(5_000),
|
|
87
|
-
});
|
|
88
|
-
return res.ok;
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
17
|
+
const packageExistsOnNpm = (pkg) => {
|
|
18
|
+
const result = spawnProcessSync('npm', ['view', pkg, 'version']);
|
|
19
|
+
return result.exitCode === 0 && result.stdout.trim().length > 0;
|
|
93
20
|
};
|
|
94
21
|
/**
|
|
95
22
|
* Resolve a user-supplied plugin name to the actual npm package name.
|
|
@@ -98,23 +25,46 @@ const packageExistsOnNpm = async (pkg) => {
|
|
|
98
25
|
* candidate in priority order (official scoped → community unscoped) and
|
|
99
26
|
* returns the first one that exists. For already-qualified names, returns as-is.
|
|
100
27
|
*/
|
|
101
|
-
const resolvePackageName =
|
|
28
|
+
const resolvePackageName = (name) => {
|
|
102
29
|
const candidates = resolvePluginPackageCandidates(name);
|
|
103
30
|
if (candidates.length === 1)
|
|
104
31
|
return candidates[0] ?? null;
|
|
105
32
|
for (const candidate of candidates) {
|
|
106
|
-
if (
|
|
33
|
+
if (packageExistsOnNpm(candidate))
|
|
107
34
|
return candidate;
|
|
108
35
|
}
|
|
109
36
|
return null;
|
|
110
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* After a global npm install, check the installed package's package.json for
|
|
40
|
+
* the `opentabs` field or `opentabs-plugin` keyword. Prints a yellow warning
|
|
41
|
+
* if neither is found — the install is not rolled back.
|
|
42
|
+
*/
|
|
43
|
+
const warnIfNotPlugin = async (pkg) => {
|
|
44
|
+
try {
|
|
45
|
+
const rootResult = await spawnProcess('npm', ['root', '-g']);
|
|
46
|
+
const globalRoot = rootResult.stdout.trim();
|
|
47
|
+
const pkgJsonPath = join(globalRoot, pkg, 'package.json');
|
|
48
|
+
const pkgJsonText = await readFile(pkgJsonPath);
|
|
49
|
+
const pkgJson = JSON.parse(pkgJsonText);
|
|
50
|
+
const hasOpentabsField = typeof pkgJson.opentabs === 'object' && pkgJson.opentabs !== null;
|
|
51
|
+
const keywords = Array.isArray(pkgJson.keywords) ? pkgJson.keywords : [];
|
|
52
|
+
const hasPluginKeyword = keywords.includes('opentabs-plugin');
|
|
53
|
+
if (!hasOpentabsField && !hasPluginKeyword) {
|
|
54
|
+
console.log(pc.yellow('Warning: This package does not appear to be an OpenTabs plugin (missing opentabs metadata). It may not load correctly.'));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Cannot read installed package — skip validation silently
|
|
59
|
+
}
|
|
60
|
+
};
|
|
111
61
|
const handlePluginInstall = async (name, options) => {
|
|
112
62
|
const candidates = resolvePluginPackageCandidates(name);
|
|
113
63
|
const isShorthand = candidates.length > 1;
|
|
114
64
|
if (isShorthand) {
|
|
115
65
|
console.log(`Resolving plugin ${pc.bold(name)}...`);
|
|
116
66
|
}
|
|
117
|
-
const pkg =
|
|
67
|
+
const pkg = resolvePackageName(name);
|
|
118
68
|
if (!pkg) {
|
|
119
69
|
console.error(pc.red(`Plugin "${name}" not found on npm.`));
|
|
120
70
|
if (isShorthand) {
|
|
@@ -123,15 +73,13 @@ const handlePluginInstall = async (name, options) => {
|
|
|
123
73
|
process.exit(1);
|
|
124
74
|
}
|
|
125
75
|
console.log(`Installing ${pc.bold(pkg)}...`);
|
|
126
|
-
const
|
|
127
|
-
stdio: ['inherit', 'inherit', 'inherit'],
|
|
128
|
-
});
|
|
129
|
-
const exitCode = await proc.exited;
|
|
76
|
+
const exitCode = await spawnInherit(platformExec('npm'), ['install', '-g', pkg]);
|
|
130
77
|
if (exitCode !== 0) {
|
|
131
78
|
console.error(pc.red(`npm install failed (exit code ${exitCode}).`));
|
|
132
79
|
process.exit(1);
|
|
133
80
|
}
|
|
134
81
|
console.log(pc.green(`Successfully installed ${pkg}.`));
|
|
82
|
+
await warnIfNotPlugin(pkg);
|
|
135
83
|
await notifyServer(options);
|
|
136
84
|
};
|
|
137
85
|
// --- Remove handler ---
|
|
@@ -152,7 +100,7 @@ const removeFromLocalPlugins = async (pkg) => {
|
|
|
152
100
|
const resolved = resolvePluginPath(entry, configPath);
|
|
153
101
|
const pkgJsonPath = join(resolved, 'package.json');
|
|
154
102
|
try {
|
|
155
|
-
const pkgJson = JSON.parse(await
|
|
103
|
+
const pkgJson = JSON.parse(await readFile(pkgJsonPath));
|
|
156
104
|
if (typeof pkgJson === 'object' && pkgJson !== null && pkgJson.name === pkg) {
|
|
157
105
|
continue;
|
|
158
106
|
}
|
|
@@ -175,29 +123,16 @@ const handlePluginRemove = async (name, options) => {
|
|
|
175
123
|
if (isShorthand) {
|
|
176
124
|
console.log(`Resolving plugin ${pc.bold(name)}...`);
|
|
177
125
|
}
|
|
178
|
-
const pkg =
|
|
179
|
-
if (!
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
console.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
});
|
|
186
|
-
const exitCode = await proc.exited;
|
|
187
|
-
if (exitCode !== 0) {
|
|
188
|
-
console.error(pc.red(`npm uninstall failed (exit code ${exitCode}).`));
|
|
189
|
-
process.exit(1);
|
|
190
|
-
}
|
|
191
|
-
console.log(pc.green(`Successfully removed ${fallback}.`));
|
|
192
|
-
await removeFromLocalPlugins(fallback);
|
|
193
|
-
await notifyServer(options);
|
|
194
|
-
return;
|
|
126
|
+
const pkg = resolvePackageName(name) ?? normalizePluginName(name);
|
|
127
|
+
if (!options.confirm) {
|
|
128
|
+
console.error(`This will remove the plugin ${pc.bold(pkg)} globally.`);
|
|
129
|
+
console.error('');
|
|
130
|
+
console.error(`Run with ${pc.bold('--confirm')} (or ${pc.bold('-y')}) to proceed:`);
|
|
131
|
+
console.error(` opentabs plugin remove ${name} --confirm`);
|
|
132
|
+
process.exit(1);
|
|
195
133
|
}
|
|
196
134
|
console.log(`Removing ${pc.bold(pkg)}...`);
|
|
197
|
-
const
|
|
198
|
-
stdio: ['inherit', 'inherit', 'inherit'],
|
|
199
|
-
});
|
|
200
|
-
const exitCode = await proc.exited;
|
|
135
|
+
const exitCode = await spawnInherit(platformExec('npm'), ['uninstall', '-g', pkg]);
|
|
201
136
|
if (exitCode !== 0) {
|
|
202
137
|
console.error(pc.red(`npm uninstall failed (exit code ${exitCode}).`));
|
|
203
138
|
process.exit(1);
|
|
@@ -207,31 +142,33 @@ const handlePluginRemove = async (name, options) => {
|
|
|
207
142
|
await notifyServer(options);
|
|
208
143
|
};
|
|
209
144
|
// --- Search handler ---
|
|
210
|
-
const NPM_SEARCH_URL = 'https://registry.npmjs.org/-/v1/search';
|
|
211
145
|
/**
|
|
212
|
-
* Fetch package metadata
|
|
213
|
-
*
|
|
214
|
-
* Includes npm auth to support private/scoped packages.
|
|
146
|
+
* Fetch package metadata via `npm view`.
|
|
147
|
+
* Delegates auth to npm itself (reads ~/.npmrc), supporting private packages.
|
|
215
148
|
*/
|
|
216
|
-
const fetchPackageInfo =
|
|
149
|
+
const fetchPackageInfo = (pkg) => {
|
|
217
150
|
try {
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
signal: AbortSignal.timeout(5_000),
|
|
221
|
-
headers,
|
|
222
|
-
});
|
|
223
|
-
if (!res.ok)
|
|
151
|
+
const result = spawnProcessSync('npm', ['view', pkg, 'name', 'description', 'version', 'maintainers', '--json']);
|
|
152
|
+
if (result.exitCode !== 0)
|
|
224
153
|
return null;
|
|
225
|
-
const data = (
|
|
226
|
-
const
|
|
154
|
+
const data = JSON.parse(result.stdout.trim());
|
|
155
|
+
const name = typeof data.name === 'string' ? data.name : pkg;
|
|
156
|
+
const version = typeof data.version === 'string' ? data.version : null;
|
|
227
157
|
if (!version)
|
|
228
158
|
return null;
|
|
229
|
-
const
|
|
159
|
+
const description = typeof data.description === 'string' ? data.description : undefined;
|
|
160
|
+
const maintainers = Array.isArray(data.maintainers) ? data.maintainers : [];
|
|
161
|
+
const firstMaintainer = maintainers[0];
|
|
162
|
+
const authorName = typeof firstMaintainer?.name === 'string'
|
|
163
|
+
? firstMaintainer.name
|
|
164
|
+
: typeof firstMaintainer?.username === 'string'
|
|
165
|
+
? firstMaintainer.username
|
|
166
|
+
: undefined;
|
|
230
167
|
return {
|
|
231
|
-
name
|
|
232
|
-
description
|
|
168
|
+
name,
|
|
169
|
+
description,
|
|
233
170
|
version,
|
|
234
|
-
publisher:
|
|
171
|
+
publisher: authorName ? { username: authorName } : undefined,
|
|
235
172
|
};
|
|
236
173
|
}
|
|
237
174
|
catch {
|
|
@@ -243,7 +180,7 @@ const fetchPackageInfo = async (pkg) => {
|
|
|
243
180
|
*
|
|
244
181
|
* When a query is provided (e.g., "slack"), generates the official and community
|
|
245
182
|
* package names to check via direct registry lookup. This catches private/scoped
|
|
246
|
-
* packages that
|
|
183
|
+
* packages that `npm search` excludes from keyword-based results.
|
|
247
184
|
*/
|
|
248
185
|
const buildDirectLookupCandidates = (query) => {
|
|
249
186
|
if (!query)
|
|
@@ -253,38 +190,45 @@ const buildDirectLookupCandidates = (query) => {
|
|
|
253
190
|
return [query];
|
|
254
191
|
return [`${OFFICIAL_SCOPE}/${PLUGIN_PREFIX}${query}`, `${PLUGIN_PREFIX}${query}`];
|
|
255
192
|
};
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
193
|
+
/**
|
|
194
|
+
* Search for opentabs plugins via `npm search`.
|
|
195
|
+
* Delegates auth to npm itself.
|
|
196
|
+
*/
|
|
197
|
+
const npmSearchPlugins = (query) => {
|
|
198
|
+
const searchTerm = query ? `keywords:opentabs-plugin ${query}` : 'keywords:opentabs-plugin';
|
|
199
|
+
const result = spawnProcessSync('npm', ['search', searchTerm, '--json']);
|
|
200
|
+
if (result.exitCode !== 0)
|
|
201
|
+
return [];
|
|
202
|
+
try {
|
|
203
|
+
const entries = JSON.parse(result.stdout.trim());
|
|
204
|
+
return entries.map(entry => ({
|
|
205
|
+
name: entry.name,
|
|
206
|
+
description: entry.description,
|
|
207
|
+
version: entry.version,
|
|
208
|
+
publisher: entry.publisher?.username
|
|
209
|
+
? { username: entry.publisher.username }
|
|
210
|
+
: entry.author?.name
|
|
211
|
+
? { username: entry.author.name }
|
|
212
|
+
: undefined,
|
|
213
|
+
}));
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
const handlePluginSearch = (query) => {
|
|
220
|
+
// Run npm keyword search
|
|
221
|
+
const searchResults = npmSearchPlugins(query);
|
|
222
|
+
// Also probe direct candidates for private packages not in keyword search
|
|
262
223
|
const directCandidates = buildDirectLookupCandidates(query);
|
|
263
|
-
const
|
|
264
|
-
(async () => {
|
|
265
|
-
try {
|
|
266
|
-
const response = await fetch(`${NPM_SEARCH_URL}?${params.toString()}`);
|
|
267
|
-
if (response.status === 429)
|
|
268
|
-
return 'rate-limited';
|
|
269
|
-
if (!response.ok)
|
|
270
|
-
return `error-${response.status.toString()}`;
|
|
271
|
-
return (await response.json());
|
|
272
|
-
}
|
|
273
|
-
catch {
|
|
274
|
-
return 'unreachable';
|
|
275
|
-
}
|
|
276
|
-
})(),
|
|
277
|
-
...directCandidates.map(candidate => fetchPackageInfo(candidate)),
|
|
278
|
-
]);
|
|
224
|
+
const directResults = directCandidates.map(candidate => fetchPackageInfo(candidate));
|
|
279
225
|
// Collect results from keyword search
|
|
280
226
|
const results = [];
|
|
281
227
|
const seenNames = new Set();
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
results.push(pkg);
|
|
287
|
-
}
|
|
228
|
+
for (const pkg of searchResults) {
|
|
229
|
+
if (!seenNames.has(pkg.name)) {
|
|
230
|
+
seenNames.add(pkg.name);
|
|
231
|
+
results.push(pkg);
|
|
288
232
|
}
|
|
289
233
|
}
|
|
290
234
|
// Merge in direct lookup results (private packages not in keyword search)
|
|
@@ -294,29 +238,27 @@ const handlePluginSearch = async (query) => {
|
|
|
294
238
|
results.push(info);
|
|
295
239
|
}
|
|
296
240
|
}
|
|
297
|
-
if (typeof searchResult === 'string' && results.length === 0) {
|
|
298
|
-
if (searchResult === 'rate-limited') {
|
|
299
|
-
console.error(pc.yellow('npm registry rate limit reached. Try again in a moment.'));
|
|
300
|
-
}
|
|
301
|
-
else if (searchResult === 'unreachable') {
|
|
302
|
-
console.error(pc.red('Could not reach npm registry. Check your internet connection.'));
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
console.error(pc.red(`npm registry returned an error (HTTP ${searchResult.replace('error-', '')}). Try again later.`));
|
|
306
|
-
}
|
|
307
|
-
process.exit(1);
|
|
308
|
-
}
|
|
309
241
|
if (results.length === 0) {
|
|
310
|
-
|
|
311
|
-
console.log(pc.yellow(`No plugins found for '${term}'. Try a different search term.`));
|
|
242
|
+
console.log(pc.yellow(query ? `No plugins found for "${query}". Try a different search term.` : 'No plugins found.'));
|
|
312
243
|
return;
|
|
313
244
|
}
|
|
245
|
+
const termWidth = process.stdout.columns || 80;
|
|
246
|
+
// Compute the max visible width used by non-description parts across all results.
|
|
247
|
+
// Line format: " [label] name vVersion — desc by author"
|
|
248
|
+
const maxLabelLen = 11; // "[community]" is the longest label
|
|
249
|
+
const overheadPerPkg = results.map(pkg => {
|
|
250
|
+
const author = pkg.publisher?.username ?? 'unknown';
|
|
251
|
+
// 2 indent + label + 1 space + name + 1 space + "v" + version + " — " + " by " + author
|
|
252
|
+
return 2 + maxLabelLen + 1 + pkg.name.length + 1 + 1 + pkg.version.length + 3 + 4 + author.length;
|
|
253
|
+
});
|
|
254
|
+
const maxOverhead = Math.max(...overheadPerPkg);
|
|
255
|
+
const descWidth = Math.max(30, termWidth - maxOverhead);
|
|
314
256
|
console.log();
|
|
315
257
|
for (const pkg of results) {
|
|
316
258
|
const label = pkg.name.startsWith(`${OFFICIAL_SCOPE}/`) ? pc.blue('[official]') : pc.dim('[community]');
|
|
317
259
|
const desc = pkg.description
|
|
318
|
-
? pkg.description.length >
|
|
319
|
-
? pkg.description.slice(0,
|
|
260
|
+
? pkg.description.length > descWidth
|
|
261
|
+
? pkg.description.slice(0, descWidth - 3) + '...'
|
|
320
262
|
: pkg.description
|
|
321
263
|
: '';
|
|
322
264
|
const author = pkg.publisher?.username ?? 'unknown';
|
|
@@ -331,7 +273,7 @@ const handlePluginSearch = async (query) => {
|
|
|
331
273
|
*/
|
|
332
274
|
const readLocalPluginInfo = async (pluginDir) => {
|
|
333
275
|
try {
|
|
334
|
-
const pkgJsonText = await
|
|
276
|
+
const pkgJsonText = await readFile(join(pluginDir, 'package.json'));
|
|
335
277
|
const pkgJson = JSON.parse(pkgJsonText);
|
|
336
278
|
const name = typeof pkgJson.name === 'string' ? pkgJson.name : null;
|
|
337
279
|
if (!name)
|
|
@@ -343,7 +285,7 @@ const readLocalPluginInfo = async (pluginDir) => {
|
|
|
343
285
|
const version = typeof pkgJson.version === 'string' ? pkgJson.version : null;
|
|
344
286
|
let toolCount = 0;
|
|
345
287
|
try {
|
|
346
|
-
const toolsJsonText = await
|
|
288
|
+
const toolsJsonText = await readFile(join(pluginDir, 'dist', TOOLS_FILENAME));
|
|
347
289
|
const toolsJson = JSON.parse(toolsJsonText);
|
|
348
290
|
const tools = Array.isArray(toolsJson.tools) ? toolsJson.tools : [];
|
|
349
291
|
toolCount = tools.length;
|
|
@@ -363,12 +305,8 @@ const readLocalPluginInfo = async (pluginDir) => {
|
|
|
363
305
|
const scanNpmPlugins = async () => {
|
|
364
306
|
const entries = [];
|
|
365
307
|
try {
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
stderr: 'pipe',
|
|
369
|
-
});
|
|
370
|
-
const stdout = await new Response(proc.stdout).text();
|
|
371
|
-
await proc.exited;
|
|
308
|
+
const result = await spawnProcess(platformExec('npm'), ['list', '-g', '--json', '--depth=0']);
|
|
309
|
+
const stdout = result.stdout;
|
|
372
310
|
const data = JSON.parse(stdout);
|
|
373
311
|
const deps = typeof data.dependencies === 'object' && data.dependencies !== null ? data.dependencies : {};
|
|
374
312
|
for (const [pkgName, info] of Object.entries(deps)) {
|
|
@@ -433,7 +371,7 @@ const handlePluginList = async (options) => {
|
|
|
433
371
|
}
|
|
434
372
|
catch (err) {
|
|
435
373
|
if (!isConnectionRefused(err)) {
|
|
436
|
-
|
|
374
|
+
console.error(pc.dim(`Could not reach server: ${toErrorMessage(err)}. Showing offline data.`));
|
|
437
375
|
}
|
|
438
376
|
}
|
|
439
377
|
// Offline mode — server is not running
|
|
@@ -507,11 +445,12 @@ const registerPluginCommand = (program) => {
|
|
|
507
445
|
Examples:
|
|
508
446
|
$ opentabs plugin search slack
|
|
509
447
|
$ opentabs plugin search # lists all available plugins`)
|
|
510
|
-
.action(
|
|
511
|
-
|
|
448
|
+
.action((query) => {
|
|
449
|
+
handlePluginSearch(query);
|
|
512
450
|
});
|
|
513
451
|
pluginCmd
|
|
514
452
|
.command('list')
|
|
453
|
+
.alias('ls')
|
|
515
454
|
.description('List installed plugins')
|
|
516
455
|
.option('--port <number>', 'Server port (default: 9515)', parsePort)
|
|
517
456
|
.option('--json', 'Output machine-readable JSON')
|
|
@@ -523,6 +462,7 @@ Examples:
|
|
|
523
462
|
.action((_options, command) => handlePluginList(command.optsWithGlobals()));
|
|
524
463
|
pluginCmd
|
|
525
464
|
.command('install')
|
|
465
|
+
.alias('add')
|
|
526
466
|
.description('Install a plugin from npm')
|
|
527
467
|
.argument('<name>', 'Plugin name or full package name (e.g., slack or opentabs-plugin-slack)')
|
|
528
468
|
.addHelpText('after', `
|
|
@@ -533,13 +473,15 @@ Examples:
|
|
|
533
473
|
.action((name, _options, command) => handlePluginInstall(name, command.optsWithGlobals()));
|
|
534
474
|
pluginCmd
|
|
535
475
|
.command('remove')
|
|
476
|
+
.alias('rm')
|
|
536
477
|
.description('Remove a globally installed plugin')
|
|
537
478
|
.argument('<name>', 'Plugin name or full package name (e.g., slack or opentabs-plugin-slack)')
|
|
479
|
+
.option('-y, --confirm', 'Confirm removal')
|
|
538
480
|
.addHelpText('after', `
|
|
539
481
|
Examples:
|
|
540
|
-
$ opentabs plugin remove slack
|
|
541
|
-
$ opentabs plugin remove opentabs-plugin-slack
|
|
542
|
-
$ opentabs plugin remove @my-org/opentabs-plugin-custom`)
|
|
482
|
+
$ opentabs plugin remove slack --confirm
|
|
483
|
+
$ opentabs plugin remove opentabs-plugin-slack -y
|
|
484
|
+
$ opentabs plugin remove @my-org/opentabs-plugin-custom --confirm`)
|
|
543
485
|
.action((name, _options, command) => handlePluginRemove(name, command.optsWithGlobals()));
|
|
544
486
|
pluginCmd
|
|
545
487
|
.command('create')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2BH,UAAU,sBAAsB;IAC9B,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,sBAAsB,CA6CjF,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The installExtension() function is called by `opentabs start` for
|
|
5
5
|
* auto-initialization on first run.
|
|
6
6
|
*/
|
|
7
|
-
import { EXTENSION_COPY_EXCLUDE_PATTERN } from '@opentabs-dev/shared';
|
|
7
|
+
import { EXTENSION_COPY_EXCLUDE_PATTERN, fileExists as runtimeFileExists, readFile, writeFile as runtimeWriteFile, } from '@opentabs-dev/shared';
|
|
8
8
|
import { cpSync, existsSync, mkdirSync } from 'node:fs';
|
|
9
9
|
import { join, dirname, relative, resolve } from 'node:path';
|
|
10
10
|
import { fileURLToPath } from 'node:url';
|
|
@@ -19,7 +19,7 @@ const resolveExtensionDir = () => {
|
|
|
19
19
|
};
|
|
20
20
|
const getCliVersion = async () => {
|
|
21
21
|
const cliPkgPath = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json');
|
|
22
|
-
const pkgJson = JSON.parse(await
|
|
22
|
+
const pkgJson = JSON.parse(await readFile(cliPkgPath));
|
|
23
23
|
return pkgJson.version;
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
@@ -31,8 +31,8 @@ const getCliVersion = async () => {
|
|
|
31
31
|
const installExtension = async (configDir) => {
|
|
32
32
|
const extensionSrc = resolveExtensionDir();
|
|
33
33
|
// Verify the extension source exists
|
|
34
|
-
if (!(await
|
|
35
|
-
throw new Error(`Browser extension not found at ${extensionSrc}. Run
|
|
34
|
+
if (!(await runtimeFileExists(join(extensionSrc, 'manifest.json')))) {
|
|
35
|
+
throw new Error(`Browser extension not found at ${extensionSrc}. Run npm run build from the project root first.`);
|
|
36
36
|
}
|
|
37
37
|
const version = await getCliVersion();
|
|
38
38
|
const extensionDest = join(configDir, 'extension');
|
|
@@ -40,9 +40,8 @@ const installExtension = async (configDir) => {
|
|
|
40
40
|
const firstTime = !existsSync(join(extensionDest, 'manifest.json'));
|
|
41
41
|
// Check if already up-to-date
|
|
42
42
|
if (!firstTime) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const installedVersion = (await versionFile.text()).trim();
|
|
43
|
+
if (await runtimeFileExists(versionMarkerPath)) {
|
|
44
|
+
const installedVersion = (await readFile(versionMarkerPath)).trim();
|
|
46
45
|
if (installedVersion === version) {
|
|
47
46
|
return { installed: false, firstTime: false, extensionDest, version };
|
|
48
47
|
}
|
|
@@ -60,7 +59,7 @@ const installExtension = async (configDir) => {
|
|
|
60
59
|
// Create adapters directory for plugins
|
|
61
60
|
mkdirSync(join(extensionDest, 'adapters'), { recursive: true });
|
|
62
61
|
// Write version marker
|
|
63
|
-
await
|
|
62
|
+
await runtimeWriteFile(versionMarkerPath, version);
|
|
64
63
|
// Verify installation
|
|
65
64
|
if (!existsSync(join(extensionDest, 'manifest.json'))) {
|
|
66
65
|
throw new Error('Installation verification failed — manifest.json missing from destination.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyNzC,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,KAAG,IAavD,CAAC"}
|