allagents 1.13.2 → 1.13.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 (2) hide show
  1. package/dist/index.js +101 -59
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14657,7 +14657,7 @@ var init_git = __esm(() => {
14657
14657
 
14658
14658
  // src/utils/plugin-path.ts
14659
14659
  import { existsSync as existsSync2 } from "node:fs";
14660
- import { isAbsolute, join as join3, resolve as resolve3 } from "node:path";
14660
+ import { isAbsolute, join as join3, parse as parse2, resolve as resolve3 } from "node:path";
14661
14661
  function stripGitRef(spec) {
14662
14662
  const slash = spec.indexOf("/");
14663
14663
  if (slash === -1)
@@ -14853,6 +14853,10 @@ function validatePluginSource(source) {
14853
14853
  }
14854
14854
  return { valid: true };
14855
14855
  }
14856
+ function isFilesystemRoot(candidatePath) {
14857
+ const resolved = resolve3(candidatePath);
14858
+ return resolved === parse2(resolved).root;
14859
+ }
14856
14860
  function parseFileSource(source, baseDir = process.cwd()) {
14857
14861
  if (isGitHubUrl(source)) {
14858
14862
  const parsed = parseGitHubUrl(source);
@@ -15476,6 +15480,12 @@ async function addPlugin(plugin, workspacePath = process.cwd(), force) {
15476
15480
  error: `Plugin not found at ${plugin}`
15477
15481
  };
15478
15482
  }
15483
+ if (isFilesystemRoot(fullPath) || isFilesystemRoot(plugin)) {
15484
+ return {
15485
+ success: false,
15486
+ error: `Plugin source cannot be a filesystem root directory: ${plugin}`
15487
+ };
15488
+ }
15479
15489
  }
15480
15490
  return await addPluginToConfig(plugin, configPath, undefined, force);
15481
15491
  }
@@ -16260,6 +16270,12 @@ async function addUserPlugin(plugin, force) {
16260
16270
  error: `Plugin not found at ${plugin}`
16261
16271
  };
16262
16272
  }
16273
+ if (isFilesystemRoot(plugin)) {
16274
+ return {
16275
+ success: false,
16276
+ error: `Plugin source cannot be a filesystem root directory: ${plugin}`
16277
+ };
16278
+ }
16263
16279
  }
16264
16280
  return addPluginToUserConfig(plugin, configPath, undefined, force);
16265
16281
  }
@@ -17829,7 +17845,7 @@ var require_parse = __commonJS((exports, module) => {
17829
17845
  var token;
17830
17846
  var key;
17831
17847
  var root;
17832
- module.exports = function parse2(text, reviver) {
17848
+ module.exports = function parse3(text, reviver) {
17833
17849
  source = String(text);
17834
17850
  parseState = "start";
17835
17851
  stack = [];
@@ -18893,10 +18909,10 @@ var require_stringify = __commonJS((exports, module) => {
18893
18909
 
18894
18910
  // node_modules/json5/lib/index.js
18895
18911
  var require_lib = __commonJS((exports, module) => {
18896
- var parse2 = require_parse();
18912
+ var parse3 = require_parse();
18897
18913
  var stringify = require_stringify();
18898
18914
  var JSON5 = {
18899
- parse: parse2,
18915
+ parse: parse3,
18900
18916
  stringify
18901
18917
  };
18902
18918
  module.exports = JSON5;
@@ -19675,7 +19691,7 @@ var require_parse2 = __commonJS((exports, module) => {
19675
19691
  CHAR_NO_BREAK_SPACE,
19676
19692
  CHAR_ZERO_WIDTH_NOBREAK_SPACE
19677
19693
  } = require_constants();
19678
- var parse2 = (input, options2 = {}) => {
19694
+ var parse3 = (input, options2 = {}) => {
19679
19695
  if (typeof input !== "string") {
19680
19696
  throw new TypeError("Expected a string");
19681
19697
  }
@@ -19879,7 +19895,7 @@ var require_parse2 = __commonJS((exports, module) => {
19879
19895
  push({ type: "eos" });
19880
19896
  return ast;
19881
19897
  };
19882
- module.exports = parse2;
19898
+ module.exports = parse3;
19883
19899
  });
19884
19900
 
19885
19901
  // node_modules/braces/index.js
@@ -19887,7 +19903,7 @@ var require_braces = __commonJS((exports, module) => {
19887
19903
  var stringify = require_stringify2();
19888
19904
  var compile = require_compile();
19889
19905
  var expand = require_expand();
19890
- var parse2 = require_parse2();
19906
+ var parse3 = require_parse2();
19891
19907
  var braces = (input, options2 = {}) => {
19892
19908
  let output = [];
19893
19909
  if (Array.isArray(input)) {
@@ -19907,7 +19923,7 @@ var require_braces = __commonJS((exports, module) => {
19907
19923
  }
19908
19924
  return output;
19909
19925
  };
19910
- braces.parse = (input, options2 = {}) => parse2(input, options2);
19926
+ braces.parse = (input, options2 = {}) => parse3(input, options2);
19911
19927
  braces.stringify = (input, options2 = {}) => {
19912
19928
  if (typeof input === "string") {
19913
19929
  return stringify(braces.parse(input, options2), options2);
@@ -20484,7 +20500,7 @@ var require_parse3 = __commonJS((exports, module) => {
20484
20500
  var syntaxError = (type2, char) => {
20485
20501
  return `Missing ${type2}: "${char}" - use "\\\\${char}" to match literal characters`;
20486
20502
  };
20487
- var parse2 = (input, options2) => {
20503
+ var parse3 = (input, options2) => {
20488
20504
  if (typeof input !== "string") {
20489
20505
  throw new TypeError("Expected a string");
20490
20506
  }
@@ -20634,7 +20650,7 @@ var require_parse3 = __commonJS((exports, module) => {
20634
20650
  output = token.close = `)$))${extglobStar}`;
20635
20651
  }
20636
20652
  if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
20637
- const expression = parse2(rest, { ...options2, fastpaths: false }).output;
20653
+ const expression = parse3(rest, { ...options2, fastpaths: false }).output;
20638
20654
  output = token.close = `)${expression})${extglobStar})`;
20639
20655
  }
20640
20656
  if (token.prev.type === "bos") {
@@ -21163,7 +21179,7 @@ var require_parse3 = __commonJS((exports, module) => {
21163
21179
  }
21164
21180
  return state;
21165
21181
  };
21166
- parse2.fastpaths = (input, options2) => {
21182
+ parse3.fastpaths = (input, options2) => {
21167
21183
  const opts = { ...options2 };
21168
21184
  const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
21169
21185
  const len = input.length;
@@ -21232,14 +21248,14 @@ var require_parse3 = __commonJS((exports, module) => {
21232
21248
  }
21233
21249
  return source;
21234
21250
  };
21235
- module.exports = parse2;
21251
+ module.exports = parse3;
21236
21252
  });
21237
21253
 
21238
21254
  // node_modules/picomatch/lib/picomatch.js
21239
21255
  var require_picomatch = __commonJS((exports, module) => {
21240
21256
  var path = __require("path");
21241
21257
  var scan = require_scan();
21242
- var parse2 = require_parse3();
21258
+ var parse3 = require_parse3();
21243
21259
  var utils = require_utils3();
21244
21260
  var constants = require_constants2();
21245
21261
  var isObject2 = (val) => val && typeof val === "object" && !Array.isArray(val);
@@ -21329,7 +21345,7 @@ var require_picomatch = __commonJS((exports, module) => {
21329
21345
  picomatch.parse = (pattern, options2) => {
21330
21346
  if (Array.isArray(pattern))
21331
21347
  return pattern.map((p) => picomatch.parse(p, options2));
21332
- return parse2(pattern, { ...options2, fastpaths: false });
21348
+ return parse3(pattern, { ...options2, fastpaths: false });
21333
21349
  };
21334
21350
  picomatch.scan = (input, options2) => scan(input, options2);
21335
21351
  picomatch.compileRe = (state, options2, returnOutput = false, returnState = false) => {
@@ -21355,10 +21371,10 @@ var require_picomatch = __commonJS((exports, module) => {
21355
21371
  }
21356
21372
  let parsed = { negated: false, fastpaths: true };
21357
21373
  if (options2.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
21358
- parsed.output = parse2.fastpaths(input, options2);
21374
+ parsed.output = parse3.fastpaths(input, options2);
21359
21375
  }
21360
21376
  if (!parsed.output) {
21361
- parsed = parse2(input, options2);
21377
+ parsed = parse3(input, options2);
21362
21378
  }
21363
21379
  return picomatch.compileRe(parsed, options2, returnOutput, returnState);
21364
21380
  };
@@ -27934,7 +27950,7 @@ var require_gray_matter = __commonJS((exports, module) => {
27934
27950
  var excerpt = require_excerpt();
27935
27951
  var engines = require_engines();
27936
27952
  var toFile = require_to_file();
27937
- var parse2 = require_parse4();
27953
+ var parse3 = require_parse4();
27938
27954
  var utils = require_utils6();
27939
27955
  function matter(input, options2) {
27940
27956
  if (input === "") {
@@ -27987,7 +28003,7 @@ var require_gray_matter = __commonJS((exports, module) => {
27987
28003
  file.empty = file.content;
27988
28004
  file.data = {};
27989
28005
  } else {
27990
- file.data = parse2(file.language, file.matter, opts);
28006
+ file.data = parse3(file.language, file.matter, opts);
27991
28007
  }
27992
28008
  if (closeIndex === len) {
27993
28009
  file.content = "";
@@ -28070,7 +28086,7 @@ var init_skill = __esm(() => {
28070
28086
  });
28071
28087
 
28072
28088
  // src/core/skills.ts
28073
- import { existsSync as existsSync9 } from "node:fs";
28089
+ import { existsSync as existsSync9, lstatSync } from "node:fs";
28074
28090
  import { readFile as readFile7, readdir as readdir3 } from "node:fs/promises";
28075
28091
  import { basename as basename4, join as join12, relative as relative2, resolve as resolve8 } from "node:path";
28076
28092
  async function resolvePluginPath(pluginSource, workspacePath) {
@@ -28100,22 +28116,35 @@ async function resolvePluginPath(pluginSource, workspacePath) {
28100
28116
  const resolved = resolve8(workspacePath, pluginSource);
28101
28117
  return existsSync9(resolved) ? { path: resolved } : null;
28102
28118
  }
28103
- async function discoverNestedSkillEntries(scanRoot) {
28104
- return walkForSkillMd(scanRoot, scanRoot);
28119
+ async function discoverNestedSkillEntries(scanRoot, warnings = []) {
28120
+ return walkForSkillMd(scanRoot, scanRoot, warnings);
28105
28121
  }
28106
- async function walkForSkillMd(scanRoot, currentDir) {
28107
- const entries = await readdir3(currentDir, { withFileTypes: true });
28122
+ async function walkForSkillMd(scanRoot, currentDir, warnings) {
28123
+ let entries;
28124
+ try {
28125
+ entries = await readdir3(currentDir, { withFileTypes: true });
28126
+ } catch (err) {
28127
+ const code = err && typeof err === "object" && "code" in err ? String(err.code) : undefined;
28128
+ warnings.push(`Could not read '${currentDir}'${code ? ` (${code})` : ""} while scanning for skills. If this path looks unexpected (e.g. rooted near a drive root), check ~/.allagents/workspace.yaml for a stale plugin path, or rename ~/.allagents to ~/.allagents.bak and reinstall your plugins to reset it.`);
28129
+ return [];
28130
+ }
28108
28131
  const discovered = [];
28109
28132
  for (const entry of entries) {
28110
28133
  if (!entry.isDirectory())
28111
28134
  continue;
28112
28135
  const skillPath = join12(currentDir, entry.name);
28136
+ try {
28137
+ if (lstatSync(skillPath).isSymbolicLink())
28138
+ continue;
28139
+ } catch {
28140
+ continue;
28141
+ }
28113
28142
  if (existsSync9(join12(skillPath, "SKILL.md"))) {
28114
28143
  const subpath = relative2(scanRoot, skillPath).split(/[\\/]/).join("/");
28115
28144
  discovered.push({ name: entry.name, subpath, skillPath });
28116
28145
  continue;
28117
28146
  }
28118
- discovered.push(...await walkForSkillMd(scanRoot, skillPath));
28147
+ discovered.push(...await walkForSkillMd(scanRoot, skillPath, warnings));
28119
28148
  }
28120
28149
  return discovered;
28121
28150
  }
@@ -28424,19 +28453,20 @@ async function copySkills(pluginPath, workspacePath, client, options2 = {}) {
28424
28453
  });
28425
28454
  return Promise.all(copyPromises);
28426
28455
  }
28427
- async function collectPluginSkills(pluginPath, pluginSource, disabledSkills, pluginName, enabledSkills, pluginSkillsConfig) {
28456
+ async function collectPluginSkills(pluginPath, pluginSource, disabledSkills, pluginName, enabledSkills, pluginSkillsConfig, warnings) {
28428
28457
  const skillsDir = join13(pluginPath, "skills");
28458
+ const skillWalkWarnings = [];
28429
28459
  const hasEnabledEntries = !pluginSkillsConfig && enabledSkills && pluginName && [...enabledSkills].some((s) => s.startsWith(`${pluginName}:`));
28430
28460
  let candidateDirs;
28431
28461
  if (existsSync10(skillsDir)) {
28432
- const entries = await discoverNestedSkillEntries(skillsDir);
28462
+ const entries = await discoverNestedSkillEntries(skillsDir, skillWalkWarnings);
28433
28463
  candidateDirs = entries.map((entry) => ({
28434
28464
  name: entry.name,
28435
28465
  subpath: entry.subpath,
28436
28466
  path: entry.skillPath
28437
28467
  }));
28438
28468
  } else {
28439
- const nestedDirs = (await discoverNestedSkillEntries(pluginPath)).map((entry) => ({
28469
+ const nestedDirs = (await discoverNestedSkillEntries(pluginPath, skillWalkWarnings)).map((entry) => ({
28440
28470
  name: entry.name,
28441
28471
  subpath: entry.subpath,
28442
28472
  path: entry.skillPath
@@ -28476,6 +28506,9 @@ async function collectPluginSkills(pluginPath, pluginSource, disabledSkills, plu
28476
28506
  } else {
28477
28507
  filteredDirs = candidateDirs;
28478
28508
  }
28509
+ if (warnings && skillWalkWarnings.length > 0) {
28510
+ warnings.push(...skillWalkWarnings.map((w) => `Plugin '${pluginSource}': ${w}`));
28511
+ }
28479
28512
  return filteredDirs.map((entry) => ({
28480
28513
  folderName: entry.name,
28481
28514
  skillPath: entry.path,
@@ -28891,7 +28924,7 @@ var init_transform = __esm(() => {
28891
28924
  });
28892
28925
 
28893
28926
  // src/core/repo-skills.ts
28894
- import { existsSync as existsSync11, lstatSync, mkdirSync, readdirSync, rmSync, writeFileSync } from "node:fs";
28927
+ import { existsSync as existsSync11, lstatSync as lstatSync2, mkdirSync, readdirSync, rmSync, writeFileSync } from "node:fs";
28895
28928
  import { readdir as readdir5, readFile as readFile9 } from "node:fs/promises";
28896
28929
  import { basename as basename6, join as join14, relative as relative4, resolve as resolve9 } from "node:path";
28897
28930
  async function discoverRepoSkills(repoPath, options2) {
@@ -28927,7 +28960,7 @@ async function discoverRepoSkills(repoPath, options2) {
28927
28960
  continue;
28928
28961
  const entryPath = join14(absDir, entry.name);
28929
28962
  try {
28930
- const stat2 = lstatSync(entryPath);
28963
+ const stat2 = lstatSync2(entryPath);
28931
28964
  if (stat2.isSymbolicLink())
28932
28965
  continue;
28933
28966
  } catch {
@@ -31352,7 +31385,7 @@ var init_managed_repos = __esm(() => {
31352
31385
  });
31353
31386
 
31354
31387
  // src/core/sync.ts
31355
- import { existsSync as existsSync21, readFileSync as readFileSync5, writeFileSync as writeFileSync6, lstatSync as lstatSync2 } from "node:fs";
31388
+ import { existsSync as existsSync21, readFileSync as readFileSync5, writeFileSync as writeFileSync6, lstatSync as lstatSync3 } from "node:fs";
31356
31389
  import { rm as rm4, unlink as unlink2, rmdir, copyFile } from "node:fs/promises";
31357
31390
  import { join as join22, resolve as resolve12, dirname as dirname12, relative as relative6 } from "node:path";
31358
31391
  function deduplicateClientsByPath(clients, clientMappings = CLIENT_MAPPINGS) {
@@ -31521,7 +31554,7 @@ async function selectivePurgeWorkspace(workspacePath, state, clients) {
31521
31554
  const cleanPath = fullPath.replace(/\/$/, "");
31522
31555
  let stats;
31523
31556
  try {
31524
- stats = lstatSync2(cleanPath);
31557
+ stats = lstatSync3(cleanPath);
31525
31558
  } catch {
31526
31559
  continue;
31527
31560
  }
@@ -31769,10 +31802,10 @@ function computeDeletedArtifacts(previousState, newStatePaths, clients, clientMa
31769
31802
  }
31770
31803
  return deleted;
31771
31804
  }
31772
- async function collectAvailableSkillNames(validPlugins) {
31805
+ async function collectAvailableSkillNames(validPlugins, warnings) {
31773
31806
  const names = new Set;
31774
31807
  for (const plugin of validPlugins) {
31775
- const skills = await collectPluginSkills(plugin.resolved, plugin.plugin);
31808
+ const skills = await collectPluginSkills(plugin.resolved, plugin.plugin, undefined, undefined, undefined, undefined, warnings);
31776
31809
  for (const skill of skills) {
31777
31810
  names.add(skill.folderName);
31778
31811
  }
@@ -31965,11 +31998,11 @@ async function copyValidatedPlugin(validatedPlugin, workspacePath, clients, dryR
31965
31998
  copyResults
31966
31999
  };
31967
32000
  }
31968
- async function collectAllSkills(validatedPlugins, disabledSkills, enabledSkills) {
32001
+ async function collectAllSkills(validatedPlugins, disabledSkills, enabledSkills, warnings) {
31969
32002
  const allSkills = [];
31970
32003
  for (const plugin of validatedPlugins) {
31971
32004
  const pluginName = plugin.pluginName ?? getPluginName(plugin.resolved);
31972
- const skills = await collectPluginSkills(plugin.resolved, plugin.plugin, disabledSkills, pluginName, enabledSkills, plugin.pluginSkillsConfig);
32005
+ const skills = await collectPluginSkills(plugin.resolved, plugin.plugin, disabledSkills, pluginName, enabledSkills, plugin.pluginSkillsConfig, warnings);
31973
32006
  for (const skill of skills) {
31974
32007
  allSkills.push({
31975
32008
  folderName: skill.folderName,
@@ -32362,7 +32395,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
32362
32395
  const isV1Fallback = config.version === undefined || config.version < 2;
32363
32396
  const disabledSkillsSet = isV1Fallback ? new Set(config.disabledSkills ?? []) : undefined;
32364
32397
  const enabledSkillsSet = isV1Fallback && config.enabledSkills ? new Set(config.enabledSkills) : undefined;
32365
- const allSkills = await sw.measure("skill-collection", () => collectAllSkills(validPlugins, disabledSkillsSet, enabledSkillsSet));
32398
+ const allSkills = await sw.measure("skill-collection", () => collectAllSkills(validPlugins, disabledSkillsSet, enabledSkillsSet, warnings));
32366
32399
  const pluginSkillMaps = buildPluginSkillNameMaps(allSkills);
32367
32400
  const syncMode = config.syncMode ?? "symlink";
32368
32401
  const pluginResults = await sw.measure("plugin-copy", () => Promise.all(validPlugins.map(async (validatedPlugin) => {
@@ -32454,7 +32487,7 @@ ${fileValidationErrors.map((e) => ` - ${e}`).join(`
32454
32487
  sw.stop("mcp-sync");
32455
32488
  const { totalCopied, totalFailed, totalSkipped, totalGenerated } = countCopyResults(pluginResults, workspaceFileResults);
32456
32489
  const hasFailures = pluginResults.some((r) => !r.success) || totalFailed > 0;
32457
- const availableSkillNames = await collectAvailableSkillNames(validPlugins);
32490
+ const availableSkillNames = await collectAvailableSkillNames(validPlugins, warnings);
32458
32491
  const allCopyResultsForState = [
32459
32492
  ...pluginResults.flatMap((r) => r.copyResults),
32460
32493
  ...workspaceFileResults
@@ -32482,6 +32515,7 @@ ${fileValidationErrors.map((e) => ` - ${e}`).join(`
32482
32515
  ...Object.keys(sources).length > 0 && { sources }
32483
32516
  }));
32484
32517
  }
32518
+ const uniqueWarnings = [...new Set(warnings)];
32485
32519
  return {
32486
32520
  success: !hasFailures,
32487
32521
  pluginResults,
@@ -32491,7 +32525,7 @@ ${fileValidationErrors.map((e) => ` - ${e}`).join(`
32491
32525
  totalGenerated,
32492
32526
  purgedPaths,
32493
32527
  ...deletedArtifacts.length > 0 && { deletedArtifacts },
32494
- ...warnings.length > 0 && { warnings },
32528
+ ...uniqueWarnings.length > 0 && { warnings: uniqueWarnings },
32495
32529
  ...messages.length > 0 && { messages },
32496
32530
  ...Object.keys(mcpResults).length > 0 && { mcpResults },
32497
32531
  ...nativeResult && { nativeResult },
@@ -32564,7 +32598,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
32564
32598
  const isV1FallbackUser = config.version === undefined || config.version < 2;
32565
32599
  const disabledSkillsSet = isV1FallbackUser ? new Set(config.disabledSkills ?? []) : undefined;
32566
32600
  const enabledSkillsSet = isV1FallbackUser && config.enabledSkills ? new Set(config.enabledSkills) : undefined;
32567
- const allSkills = await sw.measure("skill-collection", () => collectAllSkills(validPlugins, disabledSkillsSet, enabledSkillsSet));
32601
+ const allSkills = await sw.measure("skill-collection", () => collectAllSkills(validPlugins, disabledSkillsSet, enabledSkillsSet, warnings));
32568
32602
  const pluginSkillMaps = buildPluginSkillNameMaps(allSkills);
32569
32603
  const syncMode = config.syncMode ?? "symlink";
32570
32604
  const pluginResults = await sw.measure("plugin-copy", () => Promise.all(validPlugins.map(async (vp) => {
@@ -32663,7 +32697,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
32663
32697
  }
32664
32698
  }
32665
32699
  const nativeResult = await sw.measure("native-plugin-sync", () => syncNativePlugins(validPlugins, previousState, "user", homeDir, dryRun, warnings, messages));
32666
- const availableUserSkillNames = await collectAvailableSkillNames(validPlugins);
32700
+ const availableUserSkillNames = await collectAvailableSkillNames(validPlugins, warnings);
32667
32701
  const allCopyResultsForState = pluginResults.flatMap((r) => r.copyResults);
32668
32702
  const resolvedUserMappings = resolveClientMappings(syncClients, USER_CLIENT_MAPPINGS);
32669
32703
  const newStatePaths = collectSyncedPaths(allCopyResultsForState, homeDir, syncClients, resolvedUserMappings);
@@ -32680,6 +32714,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
32680
32714
  }
32681
32715
  }));
32682
32716
  }
32717
+ const uniqueWarnings = [...new Set(warnings)];
32683
32718
  return {
32684
32719
  success: totalFailed === 0,
32685
32720
  pluginResults,
@@ -32688,7 +32723,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
32688
32723
  totalSkipped,
32689
32724
  totalGenerated,
32690
32725
  ...deletedArtifacts.length > 0 && { deletedArtifacts },
32691
- ...warnings.length > 0 && { warnings },
32726
+ ...uniqueWarnings.length > 0 && { warnings: uniqueWarnings },
32692
32727
  ...messages.length > 0 && { messages },
32693
32728
  ...Object.keys(mcpResults).length > 0 && { mcpResults },
32694
32729
  ...nativeResult && { nativeResult },
@@ -39042,23 +39077,23 @@ var require_fast_uri = __commonJS((exports, module) => {
39042
39077
  var { SCHEMES, getSchemeHandler } = require_schemes();
39043
39078
  function normalize5(uri, options2) {
39044
39079
  if (typeof uri === "string") {
39045
- uri = serialize(parse6(uri, options2), options2);
39080
+ uri = serialize(parse7(uri, options2), options2);
39046
39081
  } else if (typeof uri === "object") {
39047
- uri = parse6(serialize(uri, options2), options2);
39082
+ uri = parse7(serialize(uri, options2), options2);
39048
39083
  }
39049
39084
  return uri;
39050
39085
  }
39051
39086
  function resolve15(baseURI, relativeURI, options2) {
39052
39087
  const schemelessOptions = options2 ? Object.assign({ scheme: "null" }, options2) : { scheme: "null" };
39053
- const resolved = resolveComponent(parse6(baseURI, schemelessOptions), parse6(relativeURI, schemelessOptions), schemelessOptions, true);
39088
+ const resolved = resolveComponent(parse7(baseURI, schemelessOptions), parse7(relativeURI, schemelessOptions), schemelessOptions, true);
39054
39089
  schemelessOptions.skipEscape = true;
39055
39090
  return serialize(resolved, schemelessOptions);
39056
39091
  }
39057
39092
  function resolveComponent(base, relative8, options2, skipNormalization) {
39058
39093
  const target = {};
39059
39094
  if (!skipNormalization) {
39060
- base = parse6(serialize(base, options2), options2);
39061
- relative8 = parse6(serialize(relative8, options2), options2);
39095
+ base = parse7(serialize(base, options2), options2);
39096
+ relative8 = parse7(serialize(relative8, options2), options2);
39062
39097
  }
39063
39098
  options2 = options2 || {};
39064
39099
  if (!options2.tolerant && relative8.scheme) {
@@ -39110,13 +39145,13 @@ var require_fast_uri = __commonJS((exports, module) => {
39110
39145
  function equal(uriA, uriB, options2) {
39111
39146
  if (typeof uriA === "string") {
39112
39147
  uriA = unescape(uriA);
39113
- uriA = serialize(normalizeComponentEncoding(parse6(uriA, options2), true), { ...options2, skipEscape: true });
39148
+ uriA = serialize(normalizeComponentEncoding(parse7(uriA, options2), true), { ...options2, skipEscape: true });
39114
39149
  } else if (typeof uriA === "object") {
39115
39150
  uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options2, skipEscape: true });
39116
39151
  }
39117
39152
  if (typeof uriB === "string") {
39118
39153
  uriB = unescape(uriB);
39119
- uriB = serialize(normalizeComponentEncoding(parse6(uriB, options2), true), { ...options2, skipEscape: true });
39154
+ uriB = serialize(normalizeComponentEncoding(parse7(uriB, options2), true), { ...options2, skipEscape: true });
39120
39155
  } else if (typeof uriB === "object") {
39121
39156
  uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options2, skipEscape: true });
39122
39157
  }
@@ -39186,7 +39221,7 @@ var require_fast_uri = __commonJS((exports, module) => {
39186
39221
  return uriTokens.join("");
39187
39222
  }
39188
39223
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
39189
- function parse6(uri, opts) {
39224
+ function parse7(uri, opts) {
39190
39225
  const options2 = Object.assign({}, opts);
39191
39226
  const parsed = {
39192
39227
  scheme: undefined,
@@ -39280,7 +39315,7 @@ var require_fast_uri = __commonJS((exports, module) => {
39280
39315
  resolveComponent,
39281
39316
  equal,
39282
39317
  serialize,
39283
- parse: parse6
39318
+ parse: parse7
39284
39319
  };
39285
39320
  module.exports = fastUri;
39286
39321
  module.exports.default = fastUri;
@@ -42440,7 +42475,7 @@ var require_parse5 = __commonJS((exports, module) => {
42440
42475
  }
42441
42476
  return parsed;
42442
42477
  }
42443
- function parse6(command5, args, options2) {
42478
+ function parse7(command5, args, options2) {
42444
42479
  if (args && !Array.isArray(args)) {
42445
42480
  options2 = args;
42446
42481
  args = null;
@@ -42459,7 +42494,7 @@ var require_parse5 = __commonJS((exports, module) => {
42459
42494
  };
42460
42495
  return options2.shell ? parsed : parseNonShell(parsed);
42461
42496
  }
42462
- module.exports = parse6;
42497
+ module.exports = parse7;
42463
42498
  });
42464
42499
 
42465
42500
  // node_modules/cross-spawn/lib/enoent.js
@@ -42512,16 +42547,16 @@ var require_enoent = __commonJS((exports, module) => {
42512
42547
  // node_modules/cross-spawn/index.js
42513
42548
  var require_cross_spawn = __commonJS((exports, module) => {
42514
42549
  var cp3 = __require("child_process");
42515
- var parse6 = require_parse5();
42550
+ var parse7 = require_parse5();
42516
42551
  var enoent = require_enoent();
42517
42552
  function spawn4(command5, args, options2) {
42518
- const parsed = parse6(command5, args, options2);
42553
+ const parsed = parse7(command5, args, options2);
42519
42554
  const spawned = cp3.spawn(parsed.command, parsed.args, parsed.options);
42520
42555
  enoent.hookChildProcess(spawned, parsed);
42521
42556
  return spawned;
42522
42557
  }
42523
42558
  function spawnSync2(command5, args, options2) {
42524
- const parsed = parse6(command5, args, options2);
42559
+ const parsed = parse7(command5, args, options2);
42525
42560
  const result = cp3.spawnSync(parsed.command, parsed.args, parsed.options);
42526
42561
  result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);
42527
42562
  return result;
@@ -42529,7 +42564,7 @@ var require_cross_spawn = __commonJS((exports, module) => {
42529
42564
  module.exports = spawn4;
42530
42565
  module.exports.spawn = spawn4;
42531
42566
  module.exports.sync = spawnSync2;
42532
- module.exports._parse = parse6;
42567
+ module.exports._parse = parse7;
42533
42568
  module.exports._enoent = enoent;
42534
42569
  });
42535
42570
 
@@ -42575,7 +42610,7 @@ var package_default;
42575
42610
  var init_package = __esm(() => {
42576
42611
  package_default = {
42577
42612
  name: "allagents",
42578
- version: "1.13.2",
42613
+ version: "1.13.3",
42579
42614
  packageManager: "bun@1.3.12",
42580
42615
  description: "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
42581
42616
  type: "module",
@@ -47473,6 +47508,13 @@ native:`);
47473
47508
  }
47474
47509
  }
47475
47510
  }
47511
+ if (result.warnings && result.warnings.length > 0) {
47512
+ console.log(`
47513
+ Warnings:`);
47514
+ for (const warning of result.warnings) {
47515
+ console.log(` ⚠ ${warning}`);
47516
+ }
47517
+ }
47476
47518
  }
47477
47519
  return { ok: result.success && result.totalFailed === 0, syncData };
47478
47520
  }
@@ -52015,7 +52057,7 @@ var ZodRealError = $constructor("ZodError", initializer2, {
52015
52057
  });
52016
52058
 
52017
52059
  // node_modules/zod/v4/classic/parse.js
52018
- var parse4 = /* @__PURE__ */ _parse(ZodRealError);
52060
+ var parse5 = /* @__PURE__ */ _parse(ZodRealError);
52019
52061
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
52020
52062
  var safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
52021
52063
  var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError);
@@ -52040,7 +52082,7 @@ var ZodType2 = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
52040
52082
  reg.add(inst, meta);
52041
52083
  return inst;
52042
52084
  };
52043
- inst.parse = (data, params) => parse4(inst, data, params, { callee: inst.parse });
52085
+ inst.parse = (data, params) => parse5(inst, data, params, { callee: inst.parse });
52044
52086
  inst.safeParse = (data, params) => safeParse3(inst, data, params);
52045
52087
  inst.parseAsync = async (data, params) => parseAsync2(inst, data, params, { callee: inst.parseAsync });
52046
52088
  inst.safeParseAsync = async (data, params) => safeParseAsync2(inst, data, params);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allagents",
3
- "version": "1.13.2",
3
+ "version": "1.13.3",
4
4
  "packageManager": "bun@1.3.12",
5
5
  "description": "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
6
6
  "type": "module",