allagents 0.22.2 → 0.22.3

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 (3) hide show
  1. package/README.md +17 -13
  2. package/dist/index.js +229 -84
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -298,18 +298,19 @@ These marketplace names auto-resolve to their GitHub repos:
298
298
 
299
299
  ### Supported Clients
300
300
 
301
- | Client | Skills | Agent File | Hooks | Commands |
302
- |--------|--------|------------|-------|----------|
303
- | claude | `.claude/skills/` | `CLAUDE.md` | `.claude/hooks/` | `.claude/commands/` |
304
- | copilot | `.agents/skills/` | `AGENTS.md` | No | No |
305
- | codex | `.agents/skills/` | `AGENTS.md` | No | No |
306
- | cursor | `.cursor/skills/` | `AGENTS.md` | No | No |
307
- | opencode | `.agents/skills/` | `AGENTS.md` | No | No |
308
- | gemini | `.agents/skills/` | `GEMINI.md` | No | No |
309
- | factory | `.factory/skills/` | `AGENTS.md` | `.factory/hooks/` | No |
310
- | ampcode | `.agents/skills/` | `AGENTS.md` | No | No |
311
-
312
- > **Note:** Clients supporting the universal `.agents/` folder (copilot, codex, opencode, gemini, ampcode) share the same skills directory. Commands are a Claude-specific feature.
301
+ | Client | Skills | Agent File | Hooks | Commands | GitHub Overrides |
302
+ |--------|--------|------------|-------|----------|------------------|
303
+ | claude | `.claude/skills/` | `CLAUDE.md` | `.claude/hooks/` | `.claude/commands/` | No |
304
+ | copilot | `.agents/skills/` | `AGENTS.md` | No | No | `.github/` |
305
+ | codex | `.agents/skills/` | `AGENTS.md` | No | No | No |
306
+ | cursor | `.cursor/skills/` | `AGENTS.md` | No | No | No |
307
+ | opencode | `.agents/skills/` | `AGENTS.md` | No | `.opencode/commands/` | No |
308
+ | gemini | `.agents/skills/` | `GEMINI.md` | No | No | No |
309
+ | factory | `.factory/skills/` | `AGENTS.md` | `.factory/hooks/` | No | No |
310
+ | ampcode | `.agents/skills/` | `AGENTS.md` | No | No | No |
311
+ | vscode | `.agents/skills/` | `AGENTS.md` | No | No | `.github/` |
312
+
313
+ > **Note:** Clients supporting the universal `.agents/` folder (copilot, codex, opencode, gemini, ampcode, vscode) share the same skills directory. GitHub overrides (`.github/prompts/`, `copilot-instructions.md`) are copied to Copilot/VSCode's `.github/` folder.
313
314
 
314
315
  ## Marketplace Structure
315
316
 
@@ -337,9 +338,12 @@ my-plugin/
337
338
  ├── skills/ # Skill directories with SKILL.md (all clients)
338
339
  │ └── debugging/
339
340
  │ └── SKILL.md
340
- ├── commands/ # Command files (.md) - Claude only
341
+ ├── commands/ # Command files (.md) - Claude, OpenCode
341
342
  │ ├── build.md
342
343
  │ └── deploy.md
344
+ ├── .github/ # GitHub overrides (Copilot, VSCode)
345
+ │ └── prompts/
346
+ │ └── review.md
343
347
  ├── hooks/ # Hook files (Claude/Factory only)
344
348
  │ └── pre-commit.md
345
349
  └── AGENTS.md # Agent configuration (optional)
package/dist/index.js CHANGED
@@ -16000,7 +16000,8 @@ async function updatePlugin(pluginSpec, deps) {
16000
16000
  action: "skipped"
16001
16001
  };
16002
16002
  }
16003
- const marketplace = await deps.getMarketplace(parsed.marketplaceName);
16003
+ const sourceLocation = parsed.owner && parsed.repo ? `${parsed.owner}/${parsed.repo}` : undefined;
16004
+ const marketplace = await deps.getMarketplace(parsed.marketplaceName, sourceLocation);
16004
16005
  if (!marketplace) {
16005
16006
  return {
16006
16007
  plugin: pluginSpec,
@@ -16009,9 +16010,10 @@ async function updatePlugin(pluginSpec, deps) {
16009
16010
  error: `Marketplace not found: ${parsed.marketplaceName}`
16010
16011
  };
16011
16012
  }
16013
+ const marketplaceName = marketplace.name;
16012
16014
  const manifestResult = await deps.parseMarketplaceManifest(marketplace.path);
16013
16015
  if (!manifestResult.success || !manifestResult.data) {
16014
- const updateResults = await deps.updateMarketplace(parsed.marketplaceName);
16016
+ const updateResults = await deps.updateMarketplace(marketplaceName);
16015
16017
  const result = updateResults[0];
16016
16018
  return {
16017
16019
  plugin: pluginSpec,
@@ -16022,7 +16024,7 @@ async function updatePlugin(pluginSpec, deps) {
16022
16024
  }
16023
16025
  const pluginEntry = manifestResult.data.plugins.find((p) => p.name === parsed.plugin);
16024
16026
  if (!pluginEntry) {
16025
- const updateResults = await deps.updateMarketplace(parsed.marketplaceName);
16027
+ const updateResults = await deps.updateMarketplace(marketplaceName);
16026
16028
  const result = updateResults[0];
16027
16029
  return {
16028
16030
  plugin: pluginSpec,
@@ -16032,7 +16034,7 @@ async function updatePlugin(pluginSpec, deps) {
16032
16034
  };
16033
16035
  }
16034
16036
  if (typeof pluginEntry.source === "string") {
16035
- const updateResults = await deps.updateMarketplace(parsed.marketplaceName);
16037
+ const updateResults = await deps.updateMarketplace(marketplaceName);
16036
16038
  const result = updateResults[0];
16037
16039
  return {
16038
16040
  plugin: pluginSpec,
@@ -16043,7 +16045,7 @@ async function updatePlugin(pluginSpec, deps) {
16043
16045
  }
16044
16046
  const url = pluginEntry.source.url;
16045
16047
  if (marketplace.source.type === "github") {
16046
- await deps.updateMarketplace(parsed.marketplaceName);
16048
+ await deps.updateMarketplace(marketplaceName);
16047
16049
  }
16048
16050
  const fetchResult = await fetchFn(url);
16049
16051
  return {
@@ -21397,6 +21399,7 @@ var init_client_mapping = __esm(() => {
21397
21399
  agentFile: "AGENTS.md"
21398
21400
  },
21399
21401
  opencode: {
21402
+ commandsPath: ".opencode/commands/",
21400
21403
  skillsPath: ".agents/skills/",
21401
21404
  agentFile: "AGENTS.md"
21402
21405
  },
@@ -21443,6 +21446,7 @@ var init_client_mapping = __esm(() => {
21443
21446
  agentFile: "AGENTS.md"
21444
21447
  },
21445
21448
  opencode: {
21449
+ commandsPath: ".opencode/commands/",
21446
21450
  skillsPath: ".agents/skills/",
21447
21451
  agentFile: "AGENTS.md"
21448
21452
  },
@@ -29472,7 +29476,7 @@ var package_default;
29472
29476
  var init_package = __esm(() => {
29473
29477
  package_default = {
29474
29478
  name: "allagents",
29475
- version: "0.22.2",
29479
+ version: "0.22.3",
29476
29480
  description: "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
29477
29481
  type: "module",
29478
29482
  bin: {
@@ -31601,78 +31605,25 @@ var init_init2 = __esm(() => {
31601
31605
  ({ text, multiselect } = exports_dist);
31602
31606
  });
31603
31607
 
31604
- // src/cli/tui/actions/status.ts
31605
- async function runStatus(context, cache2) {
31606
- try {
31607
- let status = cache2?.getStatus();
31608
- if (!status) {
31609
- status = await getWorkspaceStatus(context.workspacePath ?? undefined);
31610
- cache2?.setStatus(status);
31611
- }
31612
- if (!status.success) {
31613
- kt2(status.error ?? "Unknown error", "Status Error");
31614
- return;
31615
- }
31616
- const lines = [];
31617
- if (context.hasWorkspace) {
31618
- lines.push(`Workspace: ${context.workspacePath}`);
31619
- } else {
31620
- lines.push("No workspace detected");
31621
- }
31622
- lines.push("");
31623
- const userPlugins = status.userPlugins ?? [];
31624
- const hasProjectPlugins = status.plugins.length > 0;
31625
- const hasUserPlugins = userPlugins.length > 0;
31626
- if (!hasProjectPlugins && !hasUserPlugins) {
31627
- lines.push("No plugins configured");
31628
- }
31629
- if (hasProjectPlugins) {
31630
- lines.push("Project plugins:");
31631
- for (const plugin of status.plugins) {
31632
- const icon = plugin.available ? "✓" : "✗";
31633
- lines.push(` ${icon} ${plugin.source} (${plugin.type})`);
31608
+ // src/cli/tui/actions/plugins.ts
31609
+ function createUpdateDeps() {
31610
+ const updatedMarketplaces = new Set;
31611
+ return {
31612
+ parsePluginSpec,
31613
+ getMarketplace: (name, sourceLocation) => findMarketplace(name, sourceLocation),
31614
+ parseMarketplaceManifest,
31615
+ updateMarketplace: async (name) => {
31616
+ if (updatedMarketplaces.has(name)) {
31617
+ return [{ name, success: true }];
31634
31618
  }
31635
- }
31636
- if (hasUserPlugins) {
31637
- if (hasProjectPlugins)
31638
- lines.push("");
31639
- lines.push("User plugins:");
31640
- for (const plugin of userPlugins) {
31641
- const icon = plugin.available ? "✓" : "✗";
31642
- lines.push(` ${icon} ${plugin.source} (${plugin.type})`);
31643
- }
31644
- }
31645
- lines.push("");
31646
- lines.push(`Clients: ${status.clients.length > 0 ? status.clients.join(", ") : "none"}`);
31647
- kt2(lines.join(`
31648
- `), "Status");
31649
- if (!context.hasWorkspace) {
31650
- const action = await select({
31651
- message: "Options",
31652
- options: [
31653
- { label: "Add workspace", value: "init" },
31654
- { label: "Back", value: "back" }
31655
- ]
31656
- });
31657
- if (!Ct(action) && action === "init") {
31658
- await runInit();
31659
- cache2?.invalidate();
31619
+ const result = await updateMarketplace(name);
31620
+ if (result[0]?.success) {
31621
+ updatedMarketplaces.add(name);
31660
31622
  }
31623
+ return result;
31661
31624
  }
31662
- } catch (error) {
31663
- const message = error instanceof Error ? error.message : String(error);
31664
- kt2(message, "Error");
31665
- }
31625
+ };
31666
31626
  }
31667
- var select;
31668
- var init_status3 = __esm(() => {
31669
- init_dist2();
31670
- init_status2();
31671
- init_init2();
31672
- ({ select } = exports_dist);
31673
- });
31674
-
31675
- // src/cli/tui/actions/plugins.ts
31676
31627
  async function getCachedMarketplaces(cache2) {
31677
31628
  const cached = cache2?.getMarketplaces();
31678
31629
  if (cached)
@@ -31690,7 +31641,7 @@ async function getCachedMarketplacePlugins(name, cache2) {
31690
31641
  return result;
31691
31642
  }
31692
31643
  async function installSelectedPlugin(pluginRef, context, cache2) {
31693
- const scopeChoice = await select2({
31644
+ const scopeChoice = await select({
31694
31645
  message: "Install scope",
31695
31646
  options: [
31696
31647
  { label: "Project (this workspace)", value: "project" },
@@ -31733,6 +31684,102 @@ async function installSelectedPlugin(pluginRef, context, cache2) {
31733
31684
  kt2(`Installed: ${pluginRef}`, "Success");
31734
31685
  return true;
31735
31686
  }
31687
+ async function runUpdatePlugin(pluginSource, scope, context, cache2) {
31688
+ const s = Ie();
31689
+ s.start("Updating plugin...");
31690
+ const result = await updatePlugin(pluginSource, createUpdateDeps());
31691
+ if (!result.success) {
31692
+ s.stop("Update failed");
31693
+ kt2(result.error ?? "Unknown error", "Error");
31694
+ return;
31695
+ }
31696
+ s.stop(result.action === "updated" ? "Plugin updated" : "Already up to date");
31697
+ if (result.action === "updated") {
31698
+ const syncS = Ie();
31699
+ syncS.start("Syncing...");
31700
+ if (scope === "project" && context.workspacePath) {
31701
+ await syncWorkspace(context.workspacePath);
31702
+ } else {
31703
+ await syncUserWorkspace();
31704
+ }
31705
+ syncS.stop("Sync complete");
31706
+ cache2?.invalidate();
31707
+ }
31708
+ const icon = result.action === "updated" ? "✓" : "-";
31709
+ kt2(`${icon} ${pluginSource} (${result.action})`, "Update");
31710
+ }
31711
+ async function runUpdateAllPlugins(context, cache2) {
31712
+ const s = Ie();
31713
+ s.start("Gathering plugins...");
31714
+ const pluginsToUpdate = [];
31715
+ if (context.workspacePath) {
31716
+ const projectPlugins = await getInstalledProjectPlugins(context.workspacePath);
31717
+ for (const plugin of projectPlugins) {
31718
+ pluginsToUpdate.push({ spec: plugin.spec, scope: "project" });
31719
+ }
31720
+ }
31721
+ const userPlugins = await getInstalledUserPlugins();
31722
+ for (const plugin of userPlugins) {
31723
+ if (!pluginsToUpdate.some((existing) => existing.spec === plugin.spec)) {
31724
+ pluginsToUpdate.push({ spec: plugin.spec, scope: "user" });
31725
+ }
31726
+ }
31727
+ if (pluginsToUpdate.length === 0) {
31728
+ s.stop("No plugins to update");
31729
+ return;
31730
+ }
31731
+ s.stop(`Found ${pluginsToUpdate.length} plugin(s)`);
31732
+ const deps = createUpdateDeps();
31733
+ const updateS = Ie();
31734
+ updateS.start("Updating plugins...");
31735
+ const results = [];
31736
+ let needsProjectSync = false;
31737
+ let needsUserSync = false;
31738
+ for (const { spec, scope } of pluginsToUpdate) {
31739
+ const result = await updatePlugin(spec, deps);
31740
+ const entry = {
31741
+ plugin: spec,
31742
+ action: result.action
31743
+ };
31744
+ if (result.error) {
31745
+ entry.error = result.error;
31746
+ }
31747
+ results.push(entry);
31748
+ if (result.action === "updated") {
31749
+ if (scope === "project")
31750
+ needsProjectSync = true;
31751
+ else
31752
+ needsUserSync = true;
31753
+ }
31754
+ }
31755
+ updateS.stop("Update complete");
31756
+ if (needsProjectSync && context.workspacePath) {
31757
+ const syncS = Ie();
31758
+ syncS.start("Syncing project...");
31759
+ await syncWorkspace(context.workspacePath);
31760
+ syncS.stop("Project sync complete");
31761
+ }
31762
+ if (needsUserSync) {
31763
+ const syncS = Ie();
31764
+ syncS.start("Syncing user...");
31765
+ await syncUserWorkspace();
31766
+ syncS.stop("User sync complete");
31767
+ }
31768
+ if (needsProjectSync || needsUserSync) {
31769
+ cache2?.invalidate();
31770
+ }
31771
+ const updated = results.filter((r) => r.action === "updated").length;
31772
+ const skipped = results.filter((r) => r.action === "skipped").length;
31773
+ const failed = results.filter((r) => r.action === "failed").length;
31774
+ const lines = results.map((r) => {
31775
+ const icon = r.action === "updated" ? "✓" : r.action === "skipped" ? "-" : "✗";
31776
+ return `${icon} ${r.plugin} (${r.action})${r.error ? ` - ${r.error}` : ""}`;
31777
+ });
31778
+ lines.push("");
31779
+ lines.push(`Updated: ${updated} Skipped: ${skipped} Failed: ${failed}`);
31780
+ kt2(lines.join(`
31781
+ `), "Update Results");
31782
+ }
31736
31783
  async function runPlugins(context, cache2) {
31737
31784
  try {
31738
31785
  while (true) {
@@ -31744,6 +31791,10 @@ async function runPlugins(context, cache2) {
31744
31791
  status = await getWorkspaceStatus(context.workspacePath ?? undefined);
31745
31792
  cache2?.setStatus(status);
31746
31793
  }
31794
+ const hasPlugins = status.success && ((status.plugins?.length ?? 0) > 0 || (status.userPlugins?.length ?? 0) > 0);
31795
+ if (hasPlugins) {
31796
+ options2.push({ label: "Update all", value: "__update_all__" });
31797
+ }
31747
31798
  if (status.success) {
31748
31799
  for (const plugin of status.plugins) {
31749
31800
  const key = `project:${plugin.source}`;
@@ -31761,7 +31812,7 @@ async function runPlugins(context, cache2) {
31761
31812
  }
31762
31813
  }
31763
31814
  options2.push({ label: "Back", value: "__back__" });
31764
- const selected = await select2({
31815
+ const selected = await select({
31765
31816
  message: "Plugins",
31766
31817
  options: options2
31767
31818
  });
@@ -31772,6 +31823,10 @@ async function runPlugins(context, cache2) {
31772
31823
  await runInstallPlugin(context, cache2);
31773
31824
  continue;
31774
31825
  }
31826
+ if (selected === "__update_all__") {
31827
+ await runUpdateAllPlugins(context, cache2);
31828
+ continue;
31829
+ }
31775
31830
  await runPluginDetail(selected, context, cache2);
31776
31831
  }
31777
31832
  } catch (error) {
@@ -31783,10 +31838,11 @@ async function runPluginDetail(pluginKey, context, cache2) {
31783
31838
  const scope = pluginKey.startsWith("project:") ? "project" : "user";
31784
31839
  const pluginSource = pluginKey.replace(/^(project|user):/, "");
31785
31840
  while (true) {
31786
- const action = await select2({
31841
+ const action = await select({
31787
31842
  message: `Plugin: ${pluginSource} [${scope}]`,
31788
31843
  options: [
31789
31844
  { label: "Browse skills", value: "browse" },
31845
+ { label: "Update", value: "update" },
31790
31846
  { label: "Remove", value: "remove" },
31791
31847
  { label: "Back", value: "back" }
31792
31848
  ]
@@ -31798,6 +31854,10 @@ async function runPluginDetail(pluginKey, context, cache2) {
31798
31854
  await runBrowsePluginSkills(pluginSource, scope, context, cache2);
31799
31855
  continue;
31800
31856
  }
31857
+ if (action === "update") {
31858
+ await runUpdatePlugin(pluginSource, scope, context, cache2);
31859
+ continue;
31860
+ }
31801
31861
  if (action === "remove") {
31802
31862
  const confirmed = await confirm({
31803
31863
  message: `Remove plugin "${pluginSource}"?`
@@ -31934,7 +31994,7 @@ Use "Manage marketplaces" to add one first.`, "Marketplace");
31934
31994
  return;
31935
31995
  }
31936
31996
  allPlugins.push({ label: "Back", value: "__back__" });
31937
- const selected = await select2({
31997
+ const selected = await select({
31938
31998
  message: "Select a plugin to install",
31939
31999
  options: allPlugins
31940
32000
  });
@@ -31959,7 +32019,7 @@ async function runBrowseMarketplaces(context, cache2) {
31959
32019
  })),
31960
32020
  { label: "Back", value: "__back__" }
31961
32021
  ];
31962
- const selected = await select2({
32022
+ const selected = await select({
31963
32023
  message: "Marketplaces",
31964
32024
  options: options2
31965
32025
  });
@@ -31994,7 +32054,7 @@ async function runBrowseMarketplaces(context, cache2) {
31994
32054
  }
31995
32055
  async function runMarketplaceDetail(marketplaceName, context, cache2) {
31996
32056
  while (true) {
31997
- const action = await select2({
32057
+ const action = await select({
31998
32058
  message: `Marketplace: ${marketplaceName}`,
31999
32059
  options: [
32000
32060
  { label: "Browse plugins", value: "browse" },
@@ -32018,7 +32078,7 @@ async function runMarketplaceDetail(marketplaceName, context, cache2) {
32018
32078
  return { label, value: plugin.name };
32019
32079
  });
32020
32080
  pluginOptions.push({ label: "Back", value: "__back__" });
32021
- const selectedPlugin = await select2({
32081
+ const selectedPlugin = await select({
32022
32082
  message: "Select a plugin to install",
32023
32083
  options: pluginOptions
32024
32084
  });
@@ -32074,17 +32134,102 @@ async function runMarketplaceDetail(marketplaceName, context, cache2) {
32074
32134
  }
32075
32135
  }
32076
32136
  }
32077
- var select2, text2, confirm, multiselect2;
32137
+ var select, text2, confirm, multiselect2;
32078
32138
  var init_plugins = __esm(() => {
32079
32139
  init_dist2();
32080
32140
  init_workspace_modify();
32081
32141
  init_user_workspace();
32082
32142
  init_sync();
32083
32143
  init_marketplace();
32144
+ init_plugin();
32145
+ init_marketplace_manifest_parser();
32084
32146
  init_status2();
32085
32147
  init_skills();
32086
32148
  init_constants();
32087
- ({ select: select2, text: text2, confirm, multiselect: multiselect2 } = exports_dist);
32149
+ ({ select, text: text2, confirm, multiselect: multiselect2 } = exports_dist);
32150
+ });
32151
+
32152
+ // src/cli/tui/actions/status.ts
32153
+ async function runStatus(context, cache2) {
32154
+ try {
32155
+ let status = cache2?.getStatus();
32156
+ if (!status) {
32157
+ status = await getWorkspaceStatus(context.workspacePath ?? undefined);
32158
+ cache2?.setStatus(status);
32159
+ }
32160
+ if (!status.success) {
32161
+ kt2(status.error ?? "Unknown error", "Status Error");
32162
+ return;
32163
+ }
32164
+ const lines = [];
32165
+ if (context.hasWorkspace) {
32166
+ lines.push(`Workspace: ${context.workspacePath}`);
32167
+ } else {
32168
+ lines.push("No workspace detected");
32169
+ }
32170
+ lines.push("");
32171
+ const userPlugins = status.userPlugins ?? [];
32172
+ const hasProjectPlugins = status.plugins.length > 0;
32173
+ const hasUserPlugins = userPlugins.length > 0;
32174
+ if (!hasProjectPlugins && !hasUserPlugins) {
32175
+ lines.push("No plugins configured");
32176
+ }
32177
+ if (hasProjectPlugins) {
32178
+ lines.push("Project plugins:");
32179
+ for (const plugin of status.plugins) {
32180
+ const icon = plugin.available ? "✓" : "✗";
32181
+ lines.push(` ${icon} ${plugin.source} (${plugin.type})`);
32182
+ }
32183
+ }
32184
+ if (hasUserPlugins) {
32185
+ if (hasProjectPlugins)
32186
+ lines.push("");
32187
+ lines.push("User plugins:");
32188
+ for (const plugin of userPlugins) {
32189
+ const icon = plugin.available ? "✓" : "✗";
32190
+ lines.push(` ${icon} ${plugin.source} (${plugin.type})`);
32191
+ }
32192
+ }
32193
+ lines.push("");
32194
+ lines.push(`Clients: ${status.clients.length > 0 ? status.clients.join(", ") : "none"}`);
32195
+ kt2(lines.join(`
32196
+ `), "Status");
32197
+ const hasPlugins = context.projectPluginCount > 0 || context.userPluginCount > 0;
32198
+ const options2 = [];
32199
+ if (hasPlugins) {
32200
+ options2.push({ label: "Update all", value: "update_all" });
32201
+ }
32202
+ if (context.hasWorkspace) {
32203
+ options2.push({ label: "Add workspace", value: "init", hint: "in subdirectory" });
32204
+ } else {
32205
+ options2.push({ label: "Add workspace", value: "init" });
32206
+ }
32207
+ options2.push({ label: "Back", value: "back" });
32208
+ const action = await select2({
32209
+ message: "Options",
32210
+ options: options2
32211
+ });
32212
+ if (Ct(action) || action === "back") {
32213
+ return;
32214
+ }
32215
+ if (action === "update_all") {
32216
+ await runUpdateAllPlugins(context, cache2);
32217
+ } else if (action === "init") {
32218
+ await runInit();
32219
+ cache2?.invalidate();
32220
+ }
32221
+ } catch (error) {
32222
+ const message = error instanceof Error ? error.message : String(error);
32223
+ kt2(message, "Error");
32224
+ }
32225
+ }
32226
+ var select2;
32227
+ var init_status3 = __esm(() => {
32228
+ init_dist2();
32229
+ init_status2();
32230
+ init_init2();
32231
+ init_plugins();
32232
+ ({ select: select2 } = exports_dist);
32088
32233
  });
32089
32234
 
32090
32235
  // src/cli/tui/actions/clients.ts
@@ -34587,7 +34732,7 @@ var pluginUpdateCmd = import_cmd_ts4.command({
34587
34732
  const updatedMarketplaces = new Set;
34588
34733
  const deps = {
34589
34734
  parsePluginSpec,
34590
- getMarketplace,
34735
+ getMarketplace: (name, sourceLocation) => findMarketplace(name, sourceLocation),
34591
34736
  parseMarketplaceManifest,
34592
34737
  updateMarketplace: async (name) => {
34593
34738
  if (updatedMarketplaces.has(name)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allagents",
3
- "version": "0.22.2",
3
+ "version": "0.22.3",
4
4
  "description": "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
5
5
  "type": "module",
6
6
  "bin": {