allagents 1.0.7 → 1.0.9

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 +19 -0
  2. package/dist/index.js +29 -13
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -214,6 +214,25 @@ allagents plugin list [marketplace]
214
214
  allagents plugin validate <path>
215
215
  ```
216
216
 
217
+ ### Skills Commands
218
+
219
+ ```bash
220
+ # Add a specific skill from a GitHub repo
221
+ allagents skills add reddit --from ReScienceLab/opc-skills
222
+
223
+ # Add a skill via GitHub URL (skill name extracted from path)
224
+ allagents skills add https://github.com/owner/repo/tree/main/skills/my-skill
225
+
226
+ # List all skills and their enabled/disabled status
227
+ allagents skills list
228
+
229
+ # Disable a skill without uninstalling its plugin
230
+ allagents skills remove brainstorming
231
+
232
+ # Re-enable a previously disabled skill
233
+ allagents skills add brainstorming
234
+ ```
235
+
217
236
  ### GitHub Overrides
218
237
 
219
238
  For **Copilot** and **VSCode**, AllAgents copies GitHub-specific files from a plugin's `.github/` folder into the workspace's `.github/` directory:
package/dist/index.js CHANGED
@@ -6378,7 +6378,7 @@ var require_parse = __commonJS((exports, module) => {
6378
6378
  var token;
6379
6379
  var key;
6380
6380
  var root;
6381
- module.exports = function parse(text, reviver) {
6381
+ module.exports = function parse2(text, reviver) {
6382
6382
  source = String(text);
6383
6383
  parseState = "start";
6384
6384
  stack = [];
@@ -13446,7 +13446,7 @@ function gitInstanceFactory(baseDir, options2) {
13446
13446
  }
13447
13447
  var import_file_exists, import_debug, import_promise_deferred, import_promise_deferred2, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __esm2 = (fn, res) => function __init() {
13448
13448
  return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;
13449
- }, __commonJS2 = (cb, mod) => function __require() {
13449
+ }, __commonJS2 = (cb, mod) => function __require2() {
13450
13450
  return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13451
13451
  }, __export2 = (target, all) => {
13452
13452
  for (var name in all)
@@ -21933,7 +21933,7 @@ var require_is_extendable = __commonJS((exports, module) => {
21933
21933
  // node_modules/extend-shallow/index.js
21934
21934
  var require_extend_shallow = __commonJS((exports, module) => {
21935
21935
  var isObject2 = require_is_extendable();
21936
- module.exports = function extend(o) {
21936
+ module.exports = function extend3(o) {
21937
21937
  if (!isObject2(o)) {
21938
21938
  o = {};
21939
21939
  }
@@ -22127,7 +22127,7 @@ var require_exception = __commonJS((exports, module) => {
22127
22127
  }
22128
22128
  YAMLException2.prototype = Object.create(Error.prototype);
22129
22129
  YAMLException2.prototype.constructor = YAMLException2;
22130
- YAMLException2.prototype.toString = function toString(compact) {
22130
+ YAMLException2.prototype.toString = function toString2(compact) {
22131
22131
  var result = this.name + ": ";
22132
22132
  result += this.reason || "(unknown reason)";
22133
22133
  if (!compact && this.mark) {
@@ -22180,7 +22180,7 @@ var require_mark = __commonJS((exports, module) => {
22180
22180
  return common2.repeat(" ", indent) + head + snippet2 + tail + `
22181
22181
  ` + common2.repeat(" ", indent + this.position - start + head.length) + "^";
22182
22182
  };
22183
- Mark.prototype.toString = function toString(compact) {
22183
+ Mark.prototype.toString = function toString2(compact) {
22184
22184
  var snippet2, where = "";
22185
22185
  if (this.name) {
22186
22186
  where += 'in "' + this.name + '" ';
@@ -23275,7 +23275,7 @@ var require_loader = __commonJS((exports, module) => {
23275
23275
  }
23276
23276
  }
23277
23277
  var directiveHandlers2 = {
23278
- YAML: function handleYamlDirective(state, name, args) {
23278
+ YAML: function handleYamlDirective2(state, name, args) {
23279
23279
  var match, major, minor;
23280
23280
  if (state.version !== null) {
23281
23281
  throwError2(state, "duplication of %YAML directive");
@@ -23298,7 +23298,7 @@ var require_loader = __commonJS((exports, module) => {
23298
23298
  throwWarning2(state, "unsupported YAML version of the document");
23299
23299
  }
23300
23300
  },
23301
- TAG: function handleTagDirective(state, name, args) {
23301
+ TAG: function handleTagDirective2(state, name, args) {
23302
23302
  var handle, prefix;
23303
23303
  if (args.length !== 2) {
23304
23304
  throwError2(state, "TAG directive accepts exactly two arguments");
@@ -26013,6 +26013,7 @@ var init_marketplace_manifest = __esm(() => {
26013
26013
  homepage: exports_external.string().optional(),
26014
26014
  strict: exports_external.boolean().optional(),
26015
26015
  tags: exports_external.array(exports_external.string()).optional(),
26016
+ skills: exports_external.array(exports_external.string()).optional(),
26016
26017
  lspServers: exports_external.record(LspServerSchema).optional()
26017
26018
  });
26018
26019
  MarketplaceManifestSchema = exports_external.object({
@@ -26129,7 +26130,8 @@ function extractPluginEntry(entry, index, warnings) {
26129
26130
  source,
26130
26131
  ...typeof obj.version === "string" && { version: obj.version },
26131
26132
  ...typeof obj.category === "string" && { category: obj.category },
26132
- ...typeof obj.homepage === "string" && { homepage: obj.homepage }
26133
+ ...typeof obj.homepage === "string" && { homepage: obj.homepage },
26134
+ ...Array.isArray(obj.skills) && obj.skills.every((s) => typeof s === "string") && { skills: obj.skills }
26133
26135
  };
26134
26136
  }
26135
26137
  function resolvePluginSourcePath(source, marketplacePath) {
@@ -27227,6 +27229,8 @@ async function getMarketplacePluginsFromManifest(marketplacePath) {
27227
27229
  info.category = plugin.category;
27228
27230
  if (plugin.homepage)
27229
27231
  info.homepage = plugin.homepage;
27232
+ if (plugin.skills)
27233
+ info.skills = plugin.skills;
27230
27234
  return info;
27231
27235
  });
27232
27236
  return { plugins, warnings: result.warnings };
@@ -27804,6 +27808,16 @@ function extractPluginNames(pluginSource) {
27804
27808
  }
27805
27809
  return names;
27806
27810
  }
27811
+ if (isGitHubUrl(pluginSource)) {
27812
+ const parsed = parseGitHubUrl(pluginSource);
27813
+ if (parsed) {
27814
+ const names = [parsed.repo];
27815
+ const ownerRepo = `${parsed.owner}-${parsed.repo}`;
27816
+ if (ownerRepo !== parsed.repo)
27817
+ names.push(ownerRepo);
27818
+ return names;
27819
+ }
27820
+ }
27807
27821
  const parts = pluginSource.split(/[/\\]/).filter(Boolean);
27808
27822
  const last2 = parts[parts.length - 1];
27809
27823
  if (!last2)
@@ -33416,7 +33430,7 @@ var package_default;
33416
33430
  var init_package = __esm(() => {
33417
33431
  package_default = {
33418
33432
  name: "allagents",
33419
- version: "1.0.7",
33433
+ version: "1.0.9",
33420
33434
  description: "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
33421
33435
  type: "module",
33422
33436
  bin: {
@@ -36407,7 +36421,7 @@ async function installSkillViaMarketplace(opts) {
36407
36421
  let targetPluginName = null;
36408
36422
  const allAvailableSkills = [];
36409
36423
  for (const mktPlugin of mktPlugins.plugins) {
36410
- const skillNames = await discoverSkillNames(mktPlugin.path);
36424
+ const skillNames = mktPlugin.skills ? mktPlugin.skills.map((s) => s.split("/").pop() ?? "").filter(Boolean) : await discoverSkillNames(mktPlugin.path);
36411
36425
  allAvailableSkills.push(...skillNames);
36412
36426
  if (!targetPluginName && skillNames.includes(skill)) {
36413
36427
  targetPluginName = mktPlugin.name;
@@ -36527,8 +36541,6 @@ var addCmd = import_cmd_ts3.command({
36527
36541
  try {
36528
36542
  let skill = skillArg;
36529
36543
  let from = fromArg;
36530
- const isUser = scope === "user" || !scope && resolveScope(process.cwd()) === "user";
36531
- const workspacePath = isUser ? getHomeDir() : process.cwd();
36532
36544
  const urlResolved = resolveSkillFromUrl(skill);
36533
36545
  if (urlResolved) {
36534
36546
  if (from) {
@@ -36547,6 +36559,9 @@ var addCmd = import_cmd_ts3.command({
36547
36559
  skill = urlResolved.skill;
36548
36560
  }
36549
36561
  }
36562
+ const hasFromSource = Boolean(from);
36563
+ const isUser = scope === "user" || !scope && !hasFromSource && resolveScope(process.cwd()) === "user";
36564
+ const workspacePath = isUser ? getHomeDir() : process.cwd();
36550
36565
  const matches = await findSkillByName(skill, workspacePath);
36551
36566
  if (matches.length === 0) {
36552
36567
  if (from) {
@@ -37458,7 +37473,8 @@ var pluginInstallCmd = import_cmd_ts4.command({
37458
37473
  }
37459
37474
  }
37460
37475
  const allSkills = await getAllSkillsFromPlugins(workspacePath);
37461
- const pluginSkills = allSkills.filter((s) => s.pluginSource === displayPlugin);
37476
+ const displayNames = extractPluginNames(displayPlugin);
37477
+ const pluginSkills = allSkills.filter((s) => s.pluginSource === displayPlugin || displayNames.includes(s.pluginName));
37462
37478
  if (pluginSkills.length === 0) {
37463
37479
  if (!isJsonMode()) {
37464
37480
  console.error(`Warning: No skills found in plugin ${displayPlugin}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allagents",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
5
5
  "type": "module",
6
6
  "bin": {