allagents 1.13.2-next.1 → 1.13.3-next.1
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/index.js +101 -59
- 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
|
|
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
|
|
18912
|
+
var parse3 = require_parse();
|
|
18897
18913
|
var stringify = require_stringify();
|
|
18898
18914
|
var JSON5 = {
|
|
18899
|
-
parse:
|
|
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
|
|
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 =
|
|
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
|
|
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 = {}) =>
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
21374
|
+
parsed.output = parse3.fastpaths(input, options2);
|
|
21359
21375
|
}
|
|
21360
21376
|
if (!parsed.output) {
|
|
21361
|
-
parsed =
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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(
|
|
39080
|
+
uri = serialize(parse7(uri, options2), options2);
|
|
39046
39081
|
} else if (typeof uri === "object") {
|
|
39047
|
-
uri =
|
|
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(
|
|
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 =
|
|
39061
|
-
relative8 =
|
|
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(
|
|
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(
|
|
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
|
|
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:
|
|
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
|
|
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 =
|
|
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
|
|
42550
|
+
var parse7 = require_parse5();
|
|
42516
42551
|
var enoent = require_enoent();
|
|
42517
42552
|
function spawn4(command5, args, options2) {
|
|
42518
|
-
const parsed =
|
|
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 =
|
|
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 =
|
|
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.
|
|
42613
|
+
version: "1.13.3-next.1",
|
|
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
|
|
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) =>
|
|
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