agent-plugkit 0.1.1 → 0.1.2

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 (31) hide show
  1. package/README.md +43 -10
  2. package/dist/adapters/marketplace-registration.d.ts +15 -1
  3. package/dist/adapters/marketplace-registration.js +324 -3
  4. package/dist/adapters/marketplace-registration.js.map +1 -1
  5. package/dist/adapters/marketplace.d.ts +5 -0
  6. package/dist/adapters/marketplace.js +39 -0
  7. package/dist/adapters/marketplace.js.map +1 -1
  8. package/dist/application/artifact-generation.d.ts +1 -1
  9. package/dist/application/artifact-generation.js +10 -1
  10. package/dist/application/artifact-generation.js.map +1 -1
  11. package/dist/application/local-release.js +4 -0
  12. package/dist/application/local-release.js.map +1 -1
  13. package/dist/application/marketplace-registration-contract.d.ts +4 -1
  14. package/dist/application/marketplace-registration-contract.js +1 -0
  15. package/dist/application/marketplace-registration-contract.js.map +1 -1
  16. package/dist/application/marketplace-registration.d.ts +12 -1
  17. package/dist/application/marketplace-registration.js +68 -0
  18. package/dist/application/marketplace-registration.js.map +1 -1
  19. package/dist/application/workspace-operation-contract.js +1 -0
  20. package/dist/application/workspace-operation-contract.js.map +1 -1
  21. package/dist/cli.js +4 -3
  22. package/dist/cli.js.map +1 -1
  23. package/dist/commands/index-gen.d.ts +1 -0
  24. package/dist/commands/index-gen.js +2 -0
  25. package/dist/commands/index-gen.js.map +1 -1
  26. package/dist/commands/install-repo.d.ts +3 -1
  27. package/dist/commands/install-repo.js +30 -10
  28. package/dist/commands/install-repo.js.map +1 -1
  29. package/dist/generated/skill-content.js +1 -1
  30. package/dist/generated/skill-content.js.map +1 -1
  31. package/package.json +1 -1
package/README.md CHANGED
@@ -33,7 +33,7 @@ npx agent-plugkit build [plugin-name] --all
33
33
  npx agent-plugkit index
34
34
  npx agent-plugkit validate [plugin-name] --all
35
35
  npx agent-plugkit release-local
36
- npx agent-plugkit install-repo <git-repo|local-path> [--agent <agent>...] [--all]
36
+ npx agent-plugkit install-repo <git-repo|local-path> [--agent <agent>...] [--all] [--plugin <name>...]
37
37
  ```
38
38
 
39
39
  Use `--root <dir>` when running from outside a marketplace repository:
@@ -64,6 +64,7 @@ npx agent-plugkit --root /path/to/marketplace validate --all
64
64
  ├── .cursor-plugin/marketplace.json
65
65
  ├── .claude-plugin/marketplace.json
66
66
  ├── .agents/plugins/marketplace.json
67
+ ├── .grok-plugin/marketplace.json
67
68
  └── marketplace.json
68
69
  ```
69
70
 
@@ -132,16 +133,40 @@ npx agent-plugkit install-repo OWNER/REPO --agent claude --agent codex
132
133
  npx agent-plugkit install-repo /absolute/path/to/marketplace --all
133
134
  ```
134
135
 
136
+ To register a marketplace and install plugins from it in one step, add `--plugin` (repeatable):
137
+
138
+ ```bash
139
+ npx agent-plugkit install-repo agent-plugkit/plugkit-marketplace --agent claude --plugin musekit
140
+ npx agent-plugkit install-repo agent-plugkit/plugkit-marketplace --agent codex --plugin musekit
141
+ ```
142
+
143
+ After a target's registration completes, `--plugin` reads `plugin marketplace list --json` from
144
+ that client to find the marketplace name registered for the same source (matched by path/URL/repo,
145
+ not by name), then runs the client's own install command:
146
+
147
+ | Target | Install command |
148
+ | --- | --- |
149
+ | `claude` | `claude plugin install <plugin>@<marketplace>` |
150
+ | `codex` | `codex plugin add <plugin>@<marketplace>` |
151
+
152
+ Pass only the plugin name (for example `musekit`); `@marketplace` is resolved automatically. If a
153
+ client CLI is missing, both its registration and its plugin installs are reported as `[缺少 CLI]`
154
+ with an install hint. Targets without a documented plugin install command (Grok Build, GitHub
155
+ Copilot, VS Code, Cursor) still register the marketplace, and each requested plugin is reported as
156
+ `[需手动]`. Both clients' install commands are idempotent, so re-running the same command is safe.
157
+
135
158
  Without `--agent` or `--all`, an interactive terminal shows a numbered multi-select and defaults to
136
159
  the targets that can currently be handled automatically. Non-interactive callers must pass an
137
- explicit selection. Target IDs are `claude`, `codex`, `copilot`, `vscode`, and `cursor`; repeated
138
- `--agent` values are deduplicated and `--all` includes Cursor.
160
+ explicit selection. Target IDs are `claude`, `codex`, `grok`, `copilot`, `vscode`, and `cursor`;
161
+ repeated `--agent` values are deduplicated and `--all` includes Cursor.
139
162
 
140
163
  Client behavior is deliberately adapter-specific:
141
164
 
142
- - Claude Code runs `claude plugin marketplace add <source>` after probing that exact command.
143
- - Codex runs `codex plugin marketplace add <source>` after probing that exact command.
144
- - GitHub Copilot runs `copilot plugin marketplace add <source>` after probing that exact command.
165
+ - Claude Code, Codex, Grok Build, and GitHub Copilot share one native registration path: probe
166
+ `plugin marketplace add --help`, then `plugin marketplace list --json` and skip `add` when the
167
+ source already matches by path/URL/repo (not marketplace name alone). If list is unavailable or
168
+ does not match, they run `plugin marketplace add <source>`; residual “already configured /
169
+ already added / already on disk” failures still count as completed.
145
170
  - VS Code atomically updates the current user's JSONC `settings.json`, enables
146
171
  `chat.plugins.enabled`, and deduplicates `chat.plugins.marketplaces`. Local directories are stored
147
172
  as `file://` URIs. Comments, trailing commas, indentation, unrelated settings, and the existing
@@ -170,7 +195,7 @@ child-process interrupt occurs. The final text summary uses explicit labels such
170
195
 
171
196
  | Exit code | Meaning |
172
197
  | --- | --- |
173
- | `0` | Every selected target completed registration or VS Code configuration injection |
198
+ | `0` | Every selected target completed registration or VS Code configuration injection (and every requested plugin install) |
174
199
  | `2` | At least one target completed and at least one target is missing, manual, or failed |
175
200
  | `1` | No target completed, or source/argument preflight failed |
176
201
  | `130` | The user or a client process interrupted the run |
@@ -194,9 +219,16 @@ The generated indexes still support direct client flows when needed:
194
219
 
195
220
  - Cursor Team/Enterprise can use Dashboard → Plugins → Add Marketplace → Import from Repo. Cursor detects the root Agent Plugins `plugin.json` for entries referenced by `.cursor-plugin/marketplace.json`.
196
221
 
197
- `install-repo` performs only current-user Marketplace registration or VS Code configuration. It
198
- does not push or publish a Git repository, build or modify the source, install a missing client CLI,
199
- import into Cursor automatically, or install any plugin from the Marketplace. `release-local` only
222
+ - Grok Build registers a marketplace that already has `.grok-plugin/marketplace.json`:
223
+
224
+ ```bash
225
+ grok plugin marketplace add OWNER/REPO
226
+ ```
227
+
228
+ `install-repo` performs only current-user Marketplace registration or VS Code configuration and,
229
+ when `--plugin` is given, plugin installation through the Claude Code or Codex CLI. It does not
230
+ push or publish a Git repository, build or modify the source, install a missing client CLI, import
231
+ into Cursor automatically, or install plugins without an explicit `--plugin`. `release-local` only
200
232
  creates a checked local directory and tar archive.
201
233
 
202
234
  ## Importing an Existing Skill
@@ -231,6 +263,7 @@ npx agent-plugkit import-skill ~/.claude/skills/dataviz custom-name --descriptio
231
263
  - `.cursor-plugin/marketplace.json`
232
264
  - `.claude-plugin/marketplace.json`
233
265
  - `.agents/plugins/marketplace.json`
266
+ - `.grok-plugin/marketplace.json`
234
267
  - `marketplace.json`
235
268
  - `plugins/CATALOG.md`
236
269
 
@@ -1,4 +1,4 @@
1
- import type { AgentTargetId, MarketplaceRegistrationSource, TargetInspection, TargetRegistrationResult } from '../application/marketplace-registration-contract.js';
1
+ import type { AgentTargetId, MarketplaceRegistrationSource, PluginInstallResult, RegistrationInvocation, TargetInspection, TargetRegistrationResult } from '../application/marketplace-registration-contract.js';
2
2
  import { type ProcessRunner } from '../infrastructure/process-runner.js';
3
3
  import { type VscodeSettingsInspection, type VscodeSettingsUpdateRequest, type VscodeSettingsUpdateResult } from '../infrastructure/vscode-user-settings.js';
4
4
  export interface MarketplaceRegistrationRuntime {
@@ -12,6 +12,20 @@ export interface MarketplaceRegistrationAdapter {
12
12
  readonly label: string;
13
13
  inspect(source: MarketplaceRegistrationSource, runtime?: MarketplaceRegistrationRuntime): Promise<TargetInspection>;
14
14
  execute(source: MarketplaceRegistrationSource, inspection: TargetInspection, runtime?: MarketplaceRegistrationRuntime): Promise<TargetRegistrationResult>;
15
+ /** Present only when the client CLI exposes a documented plugin install command. */
16
+ installPlugins?(source: MarketplaceRegistrationSource, plugins: readonly string[], runtime?: MarketplaceRegistrationRuntime, onInvocation?: (invocation: RegistrationInvocation) => void): Promise<PluginInstallResult[]>;
15
17
  }
18
+ /**
19
+ * Normalize a marketplace source string so local paths and GitHub shorthand /
20
+ * HTTPS / SSH forms of the same repo can be compared across client list JSON.
21
+ */
22
+ export declare function normalizeMarketplaceSourceKey(value: string): string;
23
+ /** True when list --json output already contains the registration source. */
24
+ export declare function marketplaceListContainsSource(listJsonText: string, source: MarketplaceRegistrationSource): boolean;
25
+ /**
26
+ * Resolve the client-side marketplace name for a registered source from list --json output.
27
+ * Matching is by source path/URL/repo, never by name, mirroring the registration precheck.
28
+ */
29
+ export declare function marketplaceNameFromList(listJsonText: string, source: MarketplaceRegistrationSource): string | undefined;
16
30
  export declare const MARKETPLACE_REGISTRATION_ADAPTERS: readonly MarketplaceRegistrationAdapter[];
17
31
  export declare function getMarketplaceRegistrationAdapter(id: AgentTargetId): MarketplaceRegistrationAdapter;
@@ -2,6 +2,163 @@ import { lstatSync, realpathSync } from 'node:fs';
2
2
  import { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
3
3
  import { systemProcessRunner, } from '../infrastructure/process-runner.js';
4
4
  import { inspectVscodeUserSettings, updateVscodeMarketplaceSettings, } from '../infrastructure/vscode-user-settings.js';
5
+ /** Shared fallback when a client still fails add after list preflight. */
6
+ const ALREADY_REGISTERED_PATTERNS = [
7
+ /already configured/i,
8
+ /already added/i,
9
+ /already on disk/i,
10
+ ];
11
+ const SOURCE_CANDIDATE_KEYS = new Set([
12
+ 'path',
13
+ 'url',
14
+ 'repo',
15
+ 'root',
16
+ 'source',
17
+ 'repository',
18
+ ]);
19
+ /**
20
+ * Normalize a marketplace source string so local paths and GitHub shorthand /
21
+ * HTTPS / SSH forms of the same repo can be compared across client list JSON.
22
+ */
23
+ export function normalizeMarketplaceSourceKey(value) {
24
+ const trimmed = value.trim();
25
+ if (trimmed.length === 0) {
26
+ return '';
27
+ }
28
+ const githubHttps = trimmed.match(/^https?:\/\/(?:www\.)?github\.com\/([^/]+)\/([^/#?]+?)(?:\.git)?\/?(?:#.*)?$/i);
29
+ if (githubHttps) {
30
+ return `github:${githubHttps[1].toLowerCase()}/${githubHttps[2].toLowerCase()}`;
31
+ }
32
+ const githubSsh = trimmed.match(/^(?:ssh:\/\/)?git@github\.com[:/]([^/]+)\/([^/#?]+?)(?:\.git)?\/?$/i);
33
+ if (githubSsh) {
34
+ return `github:${githubSsh[1].toLowerCase()}/${githubSsh[2].toLowerCase()}`;
35
+ }
36
+ const shorthand = trimmed.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)(?:#.*)?$/);
37
+ if (shorthand &&
38
+ !trimmed.includes(':') &&
39
+ !trimmed.startsWith('.') &&
40
+ !trimmed.startsWith('/') &&
41
+ !/^[A-Za-z]:[\\/]/.test(trimmed)) {
42
+ return `github:${shorthand[1].toLowerCase()}/${shorthand[2].toLowerCase()}`;
43
+ }
44
+ if (trimmed === '.' ||
45
+ trimmed === '..' ||
46
+ trimmed.startsWith('./') ||
47
+ trimmed.startsWith('../') ||
48
+ trimmed.startsWith('/') ||
49
+ /^[A-Za-z]:[\\/]/.test(trimmed)) {
50
+ try {
51
+ return `local:${realpathSync(resolve(trimmed))}`;
52
+ }
53
+ catch {
54
+ return `local:${resolve(trimmed)}`;
55
+ }
56
+ }
57
+ const withoutGit = trimmed.replace(/\.git$/i, '').replace(/\/$/, '');
58
+ return `other:${withoutGit.toLowerCase()}`;
59
+ }
60
+ function collectMarketplaceSourceCandidates(value, out, parentKey) {
61
+ if (typeof value === 'string') {
62
+ if (parentKey === undefined ||
63
+ SOURCE_CANDIDATE_KEYS.has(parentKey) ||
64
+ parentKey.endsWith('Path') ||
65
+ parentKey.endsWith('Url') ||
66
+ parentKey.endsWith('Repo')) {
67
+ if (value.trim().length > 0) {
68
+ out.push(value);
69
+ }
70
+ }
71
+ return;
72
+ }
73
+ if (Array.isArray(value)) {
74
+ for (const item of value) {
75
+ collectMarketplaceSourceCandidates(item, out, parentKey);
76
+ }
77
+ return;
78
+ }
79
+ if (value && typeof value === 'object') {
80
+ for (const [key, child] of Object.entries(value)) {
81
+ collectMarketplaceSourceCandidates(child, out, key);
82
+ }
83
+ }
84
+ }
85
+ function wantedSourceKeys(source) {
86
+ const wanted = new Set([source.clientValue, source.displayValue, source.input]
87
+ .map((value) => normalizeMarketplaceSourceKey(value))
88
+ .filter((value) => value.length > 0));
89
+ if (source.kind === 'local') {
90
+ wanted.add(normalizeMarketplaceSourceKey(source.localPath));
91
+ }
92
+ return wanted;
93
+ }
94
+ function candidatesMatch(candidates, wanted) {
95
+ return candidates.some((candidate) => {
96
+ const key = normalizeMarketplaceSourceKey(candidate);
97
+ return key.length > 0 && wanted.has(key);
98
+ });
99
+ }
100
+ /** True when list --json output already contains the registration source. */
101
+ export function marketplaceListContainsSource(listJsonText, source) {
102
+ let parsed;
103
+ try {
104
+ parsed = JSON.parse(listJsonText);
105
+ }
106
+ catch {
107
+ return false;
108
+ }
109
+ const candidates = [];
110
+ collectMarketplaceSourceCandidates(parsed, candidates);
111
+ return candidatesMatch(candidates, wantedSourceKeys(source));
112
+ }
113
+ const MARKETPLACE_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
114
+ /**
115
+ * Resolve the client-side marketplace name for a registered source from list --json output.
116
+ * Matching is by source path/URL/repo, never by name, mirroring the registration precheck.
117
+ */
118
+ export function marketplaceNameFromList(listJsonText, source) {
119
+ let parsed;
120
+ try {
121
+ parsed = JSON.parse(listJsonText);
122
+ }
123
+ catch {
124
+ return undefined;
125
+ }
126
+ const wanted = wantedSourceKeys(source);
127
+ const visit = (value) => {
128
+ if (Array.isArray(value)) {
129
+ for (const item of value) {
130
+ const found = visit(item);
131
+ if (found) {
132
+ return found;
133
+ }
134
+ }
135
+ return undefined;
136
+ }
137
+ if (!value || typeof value !== 'object') {
138
+ return undefined;
139
+ }
140
+ const record = value;
141
+ if (typeof record.name === 'string' && MARKETPLACE_NAME.test(record.name)) {
142
+ const candidates = [];
143
+ for (const [key, child] of Object.entries(record)) {
144
+ if (key !== 'name') {
145
+ collectMarketplaceSourceCandidates(child, candidates, key);
146
+ }
147
+ }
148
+ if (candidatesMatch(candidates, wanted)) {
149
+ return record.name;
150
+ }
151
+ }
152
+ for (const child of Object.values(record)) {
153
+ const found = visit(child);
154
+ if (found) {
155
+ return found;
156
+ }
157
+ }
158
+ return undefined;
159
+ };
160
+ return visit(parsed);
161
+ }
5
162
  function runnerFor(runtime) {
6
163
  return runtime?.processRunner ?? systemProcessRunner;
7
164
  }
@@ -100,6 +257,111 @@ function processFailureMessage(result) {
100
257
  const detail = result.stderr.trim() || result.stdout.trim() || result.message;
101
258
  return `${detail}${result.exitCode === null ? '' : ` (exit ${result.exitCode})`}`;
102
259
  }
260
+ function nativePluginInstaller(definition, pluginInstallArgs) {
261
+ return async (source, plugins, runtime, onInvocation) => {
262
+ const pluginResult = (plugin, result) => ({
263
+ id: definition.id,
264
+ label: definition.label,
265
+ plugin,
266
+ ...result,
267
+ });
268
+ const manualCommand = (plugin, marketplace = '<marketplace>') => [definition.executable, ...pluginInstallArgs, `${plugin}@${marketplace}`].join(' ');
269
+ const listed = await runnerFor(runtime).run({
270
+ executable: definition.executable,
271
+ args: ['plugin', 'marketplace', 'list', '--json'],
272
+ captureOutput: true,
273
+ signal: runtime?.signal,
274
+ });
275
+ if (listed.status !== 'completed') {
276
+ return plugins.map((plugin) => {
277
+ if (listed.status === 'interrupted') {
278
+ return pluginResult(plugin, {
279
+ status: 'interrupted',
280
+ message: `插件安装前 list 被 ${listed.signal} 中断;未安装 ${plugin}。`,
281
+ recovery: '确认客户端状态后重新运行命令。',
282
+ });
283
+ }
284
+ if (listed.status === 'missing') {
285
+ return pluginResult(plugin, {
286
+ status: 'missing-cli',
287
+ message: `未找到 ${definition.executable} CLI;未安装 ${plugin}。`,
288
+ recovery: definition.missingRecovery,
289
+ });
290
+ }
291
+ return pluginResult(plugin, {
292
+ status: 'failed',
293
+ message: `无法读取已注册 Marketplace 列表: ${processFailureMessage(listed)}`,
294
+ recovery: `确认 Marketplace 已注册后手动运行: ${manualCommand(plugin)}`,
295
+ });
296
+ });
297
+ }
298
+ const marketplace = marketplaceNameFromList(listed.stdout, source);
299
+ if (!marketplace) {
300
+ return plugins.map((plugin) => pluginResult(plugin, {
301
+ status: 'failed',
302
+ message: `plugin marketplace list --json 中没有找到来源 ${source.displayValue} 对应的 Marketplace 名称;未安装 ${plugin}。`,
303
+ recovery: `运行 ${definition.executable} plugin marketplace list 查看名称后手动运行: ${manualCommand(plugin)}`,
304
+ }));
305
+ }
306
+ const results = [];
307
+ let interrupted = false;
308
+ for (const plugin of plugins) {
309
+ const invocation = {
310
+ executable: definition.executable,
311
+ args: [...pluginInstallArgs, `${plugin}@${marketplace}`],
312
+ };
313
+ if (interrupted || runtime?.signal?.aborted) {
314
+ results.push(pluginResult(plugin, {
315
+ status: 'interrupted',
316
+ message: `因中断未安装 ${plugin}@${marketplace}。`,
317
+ recovery: '确认客户端状态后重新运行命令。',
318
+ invocation,
319
+ }));
320
+ continue;
321
+ }
322
+ onInvocation?.(invocation);
323
+ const executed = await runnerFor(runtime).run({
324
+ executable: invocation.executable,
325
+ args: invocation.args,
326
+ captureOutput: true,
327
+ signal: runtime?.signal,
328
+ });
329
+ if (executed.status === 'completed') {
330
+ results.push(pluginResult(plugin, {
331
+ status: 'completed',
332
+ message: `插件 ${plugin}@${marketplace} 已通过原生 CLI 安装。`,
333
+ invocation,
334
+ }));
335
+ }
336
+ else if (executed.status === 'missing') {
337
+ results.push(pluginResult(plugin, {
338
+ status: 'missing-cli',
339
+ message: `执行前未找到 ${definition.executable} CLI;未安装 ${plugin}。`,
340
+ recovery: definition.missingRecovery,
341
+ invocation,
342
+ }));
343
+ }
344
+ else if (executed.status === 'interrupted') {
345
+ interrupted = true;
346
+ results.push(pluginResult(plugin, {
347
+ status: 'interrupted',
348
+ message: `插件安装被 ${executed.signal} 中断。`,
349
+ recovery: '确认客户端状态后重新运行命令。',
350
+ invocation,
351
+ }));
352
+ }
353
+ else {
354
+ results.push(pluginResult(plugin, {
355
+ status: 'failed',
356
+ message: `原生 CLI 安装插件失败: ${processFailureMessage(executed)}`,
357
+ recovery: `确认插件名存在于 Marketplace ${marketplace} 后重试: ${manualCommand(plugin, marketplace)}`,
358
+ invocation,
359
+ }));
360
+ }
361
+ }
362
+ return results;
363
+ };
364
+ }
103
365
  function nativeAdapter(definition) {
104
366
  const probeArgs = ['plugin', 'marketplace', 'add', '--help'];
105
367
  return {
@@ -171,10 +433,46 @@ function nativeAdapter(definition) {
171
433
  executable: definition.executable,
172
434
  args: ['plugin', 'marketplace', 'add', source.clientValue],
173
435
  };
436
+ const listed = await runnerFor(runtime).run({
437
+ executable: definition.executable,
438
+ args: ['plugin', 'marketplace', 'list', '--json'],
439
+ captureOutput: true,
440
+ signal: runtime?.signal,
441
+ });
442
+ if (listed.status === 'interrupted') {
443
+ return {
444
+ id: definition.id,
445
+ label: definition.label,
446
+ status: 'interrupted',
447
+ message: `注册前 list 被 ${listed.signal} 中断。`,
448
+ recovery: '确认客户端状态后重新运行命令。',
449
+ invocation,
450
+ };
451
+ }
452
+ if (listed.status === 'missing') {
453
+ return {
454
+ id: definition.id,
455
+ label: definition.label,
456
+ status: 'missing-cli',
457
+ message: `执行前未找到 ${definition.executable} CLI。`,
458
+ recovery: definition.missingRecovery,
459
+ invocation,
460
+ };
461
+ }
462
+ if (listed.status === 'completed' &&
463
+ marketplaceListContainsSource(listed.stdout, source)) {
464
+ return {
465
+ id: definition.id,
466
+ label: definition.label,
467
+ status: 'completed',
468
+ message: 'Marketplace 已注册(list 预检命中)。',
469
+ invocation,
470
+ };
471
+ }
174
472
  const executed = await runnerFor(runtime).run({
175
473
  executable: invocation.executable,
176
474
  args: invocation.args,
177
- captureOutput: false,
475
+ captureOutput: true,
178
476
  signal: runtime?.signal,
179
477
  });
180
478
  if (executed.status === 'completed') {
@@ -206,6 +504,16 @@ function nativeAdapter(definition) {
206
504
  invocation,
207
505
  };
208
506
  }
507
+ const failureText = `${executed.stdout}\n${executed.stderr}\n${executed.message}`;
508
+ if (ALREADY_REGISTERED_PATTERNS.some((pattern) => pattern.test(failureText))) {
509
+ return {
510
+ id: definition.id,
511
+ label: definition.label,
512
+ status: 'completed',
513
+ message: 'Marketplace 已注册(来源已存在)。',
514
+ invocation,
515
+ };
516
+ }
209
517
  return {
210
518
  id: definition.id,
211
519
  label: definition.label,
@@ -215,6 +523,9 @@ function nativeAdapter(definition) {
215
523
  invocation,
216
524
  };
217
525
  },
526
+ ...(definition.pluginInstallArgs
527
+ ? { installPlugins: nativePluginInstaller(definition, definition.pluginInstallArgs) }
528
+ : {}),
218
529
  };
219
530
  }
220
531
  const claudeAdapter = nativeAdapter({
@@ -222,14 +533,23 @@ const claudeAdapter = nativeAdapter({
222
533
  label: 'Claude Code',
223
534
  executable: 'claude',
224
535
  localIndexCandidates: ['.claude-plugin/marketplace.json'],
225
- missingRecovery: '安装或升级 Claude Code CLI,确认 plugin marketplace add 可用后重试。',
536
+ missingRecovery: '安装或升级 Claude Code CLI(例如 npm install -g @anthropic-ai/claude-code),确认 claude plugin marketplace add 可用后重试。',
537
+ pluginInstallArgs: ['plugin', 'install'],
226
538
  });
227
539
  const codexAdapter = nativeAdapter({
228
540
  id: 'codex',
229
541
  label: 'Codex',
230
542
  executable: 'codex',
231
543
  localIndexCandidates: ['.agents/plugins/marketplace.json'],
232
- missingRecovery: '安装或升级 Codex CLI,确认 plugin marketplace add 可用后重试。',
544
+ missingRecovery: '安装或升级 Codex CLI(例如 npm install -g @openai/codex),确认 codex plugin marketplace add 可用后重试。',
545
+ pluginInstallArgs: ['plugin', 'add'],
546
+ });
547
+ const grokAdapter = nativeAdapter({
548
+ id: 'grok',
549
+ label: 'Grok Build',
550
+ executable: 'grok',
551
+ localIndexCandidates: ['.grok-plugin/marketplace.json'],
552
+ missingRecovery: '安装或升级 Grok Build CLI,确认 plugin marketplace add 可用后重试。',
233
553
  });
234
554
  const copilotAdapter = nativeAdapter({
235
555
  id: 'copilot',
@@ -355,6 +675,7 @@ const cursorAdapter = {
355
675
  export const MARKETPLACE_REGISTRATION_ADAPTERS = [
356
676
  claudeAdapter,
357
677
  codexAdapter,
678
+ grokAdapter,
358
679
  copilotAdapter,
359
680
  vscodeAdapter,
360
681
  cursorAdapter,
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace-registration.js","sourceRoot":"","sources":["../../src/adapters/marketplace-registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketplace-registration.js","sourceRoot":"","sources":["../../src/adapters/marketplace-registration.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,9 @@ export declare function buildGithubCopilotMarketplace(marketplace: MarketplaceMe
8
8
  export declare function buildCursorMarketplace(marketplace: MarketplaceMetadata, plugins: readonly MarketplacePluginSource[]): unknown;
9
9
  export declare function buildClaudeMarketplace(marketplace: MarketplaceMetadata, plugins: readonly MarketplacePluginSource[]): unknown;
10
10
  export declare function buildCodexMarketplace(marketplace: MarketplaceMetadata, plugins: readonly MarketplacePluginSource[]): unknown;
11
+ /**
12
+ * Grok Build marketplace index (`.grok-plugin/marketplace.json`).
13
+ * Local sources use `{ type: "local", path }` per xAI plugin-marketplace catalog format.
14
+ */
15
+ export declare function buildGrokMarketplace(marketplace: MarketplaceMetadata, plugins: readonly MarketplacePluginSource[]): unknown;
11
16
  export declare function buildMarketplaceCatalog(plugins: readonly MarketplacePluginSource[]): string;
@@ -71,6 +71,45 @@ export function buildCodexMarketplace(marketplace, plugins) {
71
71
  plugins: plugins.map(({ directoryName, config }) => buildMarketplaceEntry(config, `./plugins/${directoryName}`)),
72
72
  };
73
73
  }
74
+ /**
75
+ * Grok Build marketplace index (`.grok-plugin/marketplace.json`).
76
+ * Local sources use `{ type: "local", path }` per xAI plugin-marketplace catalog format.
77
+ */
78
+ export function buildGrokMarketplace(marketplace, plugins) {
79
+ const displayName = toTitleCase(marketplace.name);
80
+ return {
81
+ name: marketplace.name,
82
+ ...(marketplace.description === undefined
83
+ ? {}
84
+ : { description: marketplace.description }),
85
+ owner: {
86
+ name: marketplace.organization || displayName,
87
+ },
88
+ plugins: plugins.map(({ directoryName, config }) => ({
89
+ name: config.name,
90
+ source: {
91
+ type: 'local',
92
+ path: `./plugins/${directoryName}`,
93
+ },
94
+ description: config.description,
95
+ version: config.version,
96
+ author: {
97
+ name: config.author.name,
98
+ ...(typeof config.author.email === 'string'
99
+ ? { email: config.author.email }
100
+ : {}),
101
+ ...(typeof config.author.url === 'string'
102
+ ? { url: config.author.url }
103
+ : {}),
104
+ },
105
+ ...(config.category === undefined ? {} : { category: config.category }),
106
+ ...(config.tags?.length ? { tags: config.tags, keywords: config.tags } : {}),
107
+ ...(typeof config.homepage === 'string'
108
+ ? { homepage: config.homepage }
109
+ : {}),
110
+ })),
111
+ };
112
+ }
74
113
  function componentLabels(config) {
75
114
  const labels = [];
76
115
  if (config.components.skills?.length)