allagents 0.26.2 → 0.26.4
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 +37 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -24541,9 +24541,11 @@ class CopilotNativeClient {
|
|
|
24541
24541
|
if (installResult.success) {
|
|
24542
24542
|
result.pluginsInstalled.push(spec);
|
|
24543
24543
|
} else {
|
|
24544
|
+
const rawError = installResult.error ?? "Unknown error";
|
|
24545
|
+
const error = rawError.includes("Plugin path escapes marketplace directory") ? `${rawError} (Copilot rejected a plugin path from this marketplace manifest. Use file install for copilot to avoid native install for this plugin.)` : rawError;
|
|
24544
24546
|
result.pluginsFailed.push({
|
|
24545
24547
|
plugin: spec,
|
|
24546
|
-
error
|
|
24548
|
+
error
|
|
24547
24549
|
});
|
|
24548
24550
|
}
|
|
24549
24551
|
}
|
|
@@ -24604,6 +24606,7 @@ function deduplicateClientsByPath(clients, clientMappings = CLIENT_MAPPINGS) {
|
|
|
24604
24606
|
}
|
|
24605
24607
|
function mergeSyncResults(a, b) {
|
|
24606
24608
|
const warnings = [...a.warnings || [], ...b.warnings || []];
|
|
24609
|
+
const messages = [...a.messages || [], ...b.messages || []];
|
|
24607
24610
|
const purgedPaths = [...a.purgedPaths || [], ...b.purgedPaths || []];
|
|
24608
24611
|
const mcpResult = a.mcpResult ?? b.mcpResult;
|
|
24609
24612
|
const nativeResult = a.nativeResult && b.nativeResult ? {
|
|
@@ -24620,6 +24623,7 @@ function mergeSyncResults(a, b) {
|
|
|
24620
24623
|
totalSkipped: a.totalSkipped + b.totalSkipped,
|
|
24621
24624
|
totalGenerated: a.totalGenerated + b.totalGenerated,
|
|
24622
24625
|
...warnings.length > 0 && { warnings },
|
|
24626
|
+
...messages.length > 0 && { messages },
|
|
24623
24627
|
...purgedPaths.length > 0 && { purgedPaths },
|
|
24624
24628
|
...mcpResult && { mcpResult },
|
|
24625
24629
|
...nativeResult && { nativeResult }
|
|
@@ -24655,6 +24659,12 @@ function collectNativePluginSources(validPlugins) {
|
|
|
24655
24659
|
}
|
|
24656
24660
|
return { pluginsByClient, marketplaceSourcesByClient };
|
|
24657
24661
|
}
|
|
24662
|
+
function attachNativeClientContext(result, clientType) {
|
|
24663
|
+
return {
|
|
24664
|
+
...result,
|
|
24665
|
+
pluginsFailed: result.pluginsFailed.map((failure) => ({ ...failure, client: clientType }))
|
|
24666
|
+
};
|
|
24667
|
+
}
|
|
24658
24668
|
function collectSyncClients(clientEntries, plans) {
|
|
24659
24669
|
const workspaceClientTypes = getClientTypes(clientEntries);
|
|
24660
24670
|
return [...new Set([...workspaceClientTypes, ...plans.flatMap((plan) => [...plan.clients, ...plan.nativeClients])])];
|
|
@@ -25157,6 +25167,7 @@ async function syncWorkspace(workspacePath = process.cwd(), options = {}) {
|
|
|
25157
25167
|
...planWarnings,
|
|
25158
25168
|
...failedValidations.map((v) => `${v.plugin}: ${v.error} (skipped)`)
|
|
25159
25169
|
];
|
|
25170
|
+
const messages = [];
|
|
25160
25171
|
if (validPlugins.length === 0 && filteredPlans.length > 0) {
|
|
25161
25172
|
return {
|
|
25162
25173
|
success: false,
|
|
@@ -25212,7 +25223,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25212
25223
|
if (!cliAvailable) {
|
|
25213
25224
|
const sources = nativePluginsByClient.get(clientType);
|
|
25214
25225
|
if (sources && sources.length > 0) {
|
|
25215
|
-
|
|
25226
|
+
messages.push(`Native install: ${clientType} CLI not found, skipping native plugin installation`);
|
|
25216
25227
|
}
|
|
25217
25228
|
continue;
|
|
25218
25229
|
}
|
|
@@ -25234,7 +25245,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25234
25245
|
}
|
|
25235
25246
|
}
|
|
25236
25247
|
if (currentSources.length > 0) {
|
|
25237
|
-
perClientResults.push(await nativeClient.syncPlugins(currentSources, "project", { cwd: workspacePath }));
|
|
25248
|
+
perClientResults.push(attachNativeClientContext(await nativeClient.syncPlugins(currentSources, "project", { cwd: workspacePath }), clientType));
|
|
25238
25249
|
}
|
|
25239
25250
|
}
|
|
25240
25251
|
if (perClientResults.length > 0) {
|
|
@@ -25245,7 +25256,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25245
25256
|
for (const [clientType, sources] of nativePluginsByClient) {
|
|
25246
25257
|
const nativeClient = getNativeClient(clientType);
|
|
25247
25258
|
if (nativeClient && sources.length > 0) {
|
|
25248
|
-
perClientResults.push(await nativeClient.syncPlugins(sources, "project", { cwd: workspacePath, dryRun: true }));
|
|
25259
|
+
perClientResults.push(attachNativeClientContext(await nativeClient.syncPlugins(sources, "project", { cwd: workspacePath, dryRun: true }), clientType));
|
|
25249
25260
|
}
|
|
25250
25261
|
}
|
|
25251
25262
|
if (perClientResults.length > 0) {
|
|
@@ -25394,6 +25405,7 @@ ${fileValidationErrors.map((e) => ` - ${e}`).join(`
|
|
|
25394
25405
|
totalGenerated,
|
|
25395
25406
|
purgedPaths,
|
|
25396
25407
|
...warnings.length > 0 && { warnings },
|
|
25408
|
+
...messages.length > 0 && { messages },
|
|
25397
25409
|
...nativeResult && { nativeResult }
|
|
25398
25410
|
};
|
|
25399
25411
|
}
|
|
@@ -25423,6 +25435,7 @@ async function syncUserWorkspace(options = {}) {
|
|
|
25423
25435
|
...planWarnings,
|
|
25424
25436
|
...failedValidations.map((v) => `${v.plugin}: ${v.error} (skipped)`)
|
|
25425
25437
|
];
|
|
25438
|
+
const messages = [];
|
|
25426
25439
|
if (validPlugins.length === 0 && pluginPlans.length > 0) {
|
|
25427
25440
|
return {
|
|
25428
25441
|
success: false,
|
|
@@ -25502,7 +25515,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25502
25515
|
if (!cliAvailable) {
|
|
25503
25516
|
const sources = nativePluginsByClient.get(clientType);
|
|
25504
25517
|
if (sources && sources.length > 0) {
|
|
25505
|
-
|
|
25518
|
+
messages.push(`Native install: ${clientType} CLI not found, skipping native plugin installation`);
|
|
25506
25519
|
}
|
|
25507
25520
|
continue;
|
|
25508
25521
|
}
|
|
@@ -25524,7 +25537,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25524
25537
|
}
|
|
25525
25538
|
}
|
|
25526
25539
|
if (currentSources.length > 0) {
|
|
25527
|
-
perClientResults.push(await nativeClient.syncPlugins(currentSources, "user"));
|
|
25540
|
+
perClientResults.push(attachNativeClientContext(await nativeClient.syncPlugins(currentSources, "user"), clientType));
|
|
25528
25541
|
}
|
|
25529
25542
|
}
|
|
25530
25543
|
if (perClientResults.length > 0) {
|
|
@@ -25535,7 +25548,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25535
25548
|
for (const [clientType, sources] of nativePluginsByClient) {
|
|
25536
25549
|
const nativeClient = getNativeClient(clientType);
|
|
25537
25550
|
if (nativeClient && sources.length > 0) {
|
|
25538
|
-
perClientResults.push(await nativeClient.syncPlugins(sources, "user", { dryRun: true }));
|
|
25551
|
+
perClientResults.push(attachNativeClientContext(await nativeClient.syncPlugins(sources, "user", { dryRun: true }), clientType));
|
|
25539
25552
|
}
|
|
25540
25553
|
}
|
|
25541
25554
|
if (perClientResults.length > 0) {
|
|
@@ -25570,6 +25583,7 @@ ${failedValidations.map((v) => ` - ${v.plugin}: ${v.error}`).join(`
|
|
|
25570
25583
|
totalSkipped,
|
|
25571
25584
|
totalGenerated,
|
|
25572
25585
|
...warnings.length > 0 && { warnings },
|
|
25586
|
+
...messages.length > 0 && { messages },
|
|
25573
25587
|
...mcpResult && { mcpResult },
|
|
25574
25588
|
...nativeResult && { nativeResult }
|
|
25575
25589
|
};
|
|
@@ -26057,8 +26071,9 @@ function formatNativeResult(nativeResult) {
|
|
|
26057
26071
|
for (const plugin of nativeResult.pluginsInstalled) {
|
|
26058
26072
|
lines.push(` + ${plugin} (installed via native CLI)`);
|
|
26059
26073
|
}
|
|
26060
|
-
for (const { plugin, error } of nativeResult.pluginsFailed) {
|
|
26061
|
-
|
|
26074
|
+
for (const { client, plugin, error } of nativeResult.pluginsFailed) {
|
|
26075
|
+
const provider = client ? `[${client}] ` : "";
|
|
26076
|
+
lines.push(` ✗ ${provider}${plugin}: ${error}`);
|
|
26062
26077
|
}
|
|
26063
26078
|
for (const plugin of nativeResult.skipped) {
|
|
26064
26079
|
lines.push(` ⊘ ${plugin} (skipped — not a marketplace plugin)`);
|
|
@@ -26071,6 +26086,7 @@ function buildSyncData(result) {
|
|
|
26071
26086
|
generated: result.totalGenerated,
|
|
26072
26087
|
failed: result.totalFailed,
|
|
26073
26088
|
skipped: result.totalSkipped,
|
|
26089
|
+
...result.messages && result.messages.length > 0 && { messages: result.messages },
|
|
26074
26090
|
plugins: result.pluginResults.map((pr) => ({
|
|
26075
26091
|
plugin: pr.plugin,
|
|
26076
26092
|
success: pr.success,
|
|
@@ -26673,7 +26689,7 @@ var package_default;
|
|
|
26673
26689
|
var init_package = __esm(() => {
|
|
26674
26690
|
package_default = {
|
|
26675
26691
|
name: "allagents",
|
|
26676
|
-
version: "0.26.
|
|
26692
|
+
version: "0.26.4",
|
|
26677
26693
|
description: "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
|
|
26678
26694
|
type: "module",
|
|
26679
26695
|
bin: {
|
|
@@ -29937,12 +29953,14 @@ var syncMeta = {
|
|
|
29937
29953
|
"allagents workspace sync",
|
|
29938
29954
|
"allagents workspace sync --dry-run",
|
|
29939
29955
|
"allagents workspace sync --client claude",
|
|
29940
|
-
"allagents workspace sync --offline"
|
|
29956
|
+
"allagents workspace sync --offline",
|
|
29957
|
+
"allagents workspace sync --verbose"
|
|
29941
29958
|
],
|
|
29942
29959
|
expectedOutput: "Lists synced files with status per plugin. Exit 0 on success, exit 1 if any files failed.",
|
|
29943
29960
|
options: [
|
|
29944
29961
|
{ flag: "--offline", type: "boolean", description: "Use cached plugins without fetching latest from remote" },
|
|
29945
29962
|
{ flag: "--dry-run", short: "-n", type: "boolean", description: "Simulate sync without making changes" },
|
|
29963
|
+
{ flag: "--verbose", short: "-v", type: "boolean", description: "Show informational sync messages" },
|
|
29946
29964
|
{ flag: "--client", short: "-c", type: "string", description: "Sync only the specified client (e.g., opencode, claude)" }
|
|
29947
29965
|
],
|
|
29948
29966
|
outputSchema: {
|
|
@@ -30108,9 +30126,10 @@ var syncCmd = import_cmd_ts2.command({
|
|
|
30108
30126
|
offline: import_cmd_ts2.flag({ long: "offline", description: "Use cached plugins without fetching latest from remote" }),
|
|
30109
30127
|
dryRun: import_cmd_ts2.flag({ long: "dry-run", short: "n", description: "Simulate sync without making changes" }),
|
|
30110
30128
|
force: import_cmd_ts2.flag({ long: "force", short: "f", description: "Overwrite existing MCP server entries that differ from plugin config" }),
|
|
30129
|
+
verbose: import_cmd_ts2.flag({ long: "verbose", short: "v", description: "Show informational sync messages" }),
|
|
30111
30130
|
client: import_cmd_ts2.option({ type: import_cmd_ts2.optional(import_cmd_ts2.string), long: "client", short: "c", description: "Sync only the specified client (e.g., opencode, claude)" })
|
|
30112
30131
|
},
|
|
30113
|
-
handler: async ({ offline, dryRun, force, client }) => {
|
|
30132
|
+
handler: async ({ offline, dryRun, force, verbose, client }) => {
|
|
30114
30133
|
try {
|
|
30115
30134
|
if (!isJsonMode() && dryRun) {
|
|
30116
30135
|
console.log(`Dry run mode - no changes will be made
|
|
@@ -30205,6 +30224,12 @@ Warnings:`);
|
|
|
30205
30224
|
console.log(` ⚠ ${warning}`);
|
|
30206
30225
|
}
|
|
30207
30226
|
}
|
|
30227
|
+
if (verbose && result.messages && result.messages.length > 0) {
|
|
30228
|
+
console.log("");
|
|
30229
|
+
for (const message of result.messages) {
|
|
30230
|
+
console.log(` ${message}`);
|
|
30231
|
+
}
|
|
30232
|
+
}
|
|
30208
30233
|
if (result.mcpResult) {
|
|
30209
30234
|
const mcpLines = formatMcpResult(result.mcpResult);
|
|
30210
30235
|
if (mcpLines.length > 0) {
|