@swarmify/agents-cli 1.5.13 → 1.5.15
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/README.md +93 -213
- package/dist/index.js +1194 -173
- package/dist/index.js.map +1 -1
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/agents.js +19 -2
- package/dist/lib/agents.js.map +1 -1
- package/dist/lib/artifact-actions.d.ts +22 -0
- package/dist/lib/artifact-actions.d.ts.map +1 -0
- package/dist/lib/artifact-actions.js +55 -0
- package/dist/lib/artifact-actions.js.map +1 -0
- package/dist/lib/commands.d.ts.map +1 -1
- package/dist/lib/commands.js +3 -5
- package/dist/lib/commands.js.map +1 -1
- package/dist/lib/daemon.d.ts +22 -0
- package/dist/lib/daemon.d.ts.map +1 -0
- package/dist/lib/daemon.js +303 -0
- package/dist/lib/daemon.js.map +1 -0
- package/dist/lib/drive-server.d.ts +9 -0
- package/dist/lib/drive-server.d.ts.map +1 -0
- package/dist/lib/drive-server.js +217 -0
- package/dist/lib/drive-server.js.map +1 -0
- package/dist/lib/drives.d.ts +34 -0
- package/dist/lib/drives.d.ts.map +1 -0
- package/dist/lib/drives.js +267 -0
- package/dist/lib/drives.js.map +1 -0
- package/dist/lib/instructions.d.ts +31 -0
- package/dist/lib/instructions.d.ts.map +1 -0
- package/dist/lib/instructions.js +161 -0
- package/dist/lib/instructions.js.map +1 -0
- package/dist/lib/jobs.d.ts +53 -0
- package/dist/lib/jobs.d.ts.map +1 -0
- package/dist/lib/jobs.js +242 -0
- package/dist/lib/jobs.js.map +1 -0
- package/dist/lib/runner.d.ts +12 -0
- package/dist/lib/runner.d.ts.map +1 -0
- package/dist/lib/runner.js +266 -0
- package/dist/lib/runner.js.map +1 -0
- package/dist/lib/sandbox.d.ts +10 -0
- package/dist/lib/sandbox.d.ts.map +1 -0
- package/dist/lib/sandbox.js +166 -0
- package/dist/lib/sandbox.js.map +1 -0
- package/dist/lib/scheduler.d.ts +18 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +64 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/shims.d.ts +32 -0
- package/dist/lib/shims.d.ts.map +1 -0
- package/dist/lib/shims.js +175 -0
- package/dist/lib/shims.js.map +1 -0
- package/dist/lib/state.d.ts +5 -0
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +35 -0
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/template.d.ts +24 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +57 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/lib/types.d.ts +11 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/versions.d.ts +79 -0
- package/dist/lib/versions.d.ts.map +1 -0
- package/dist/lib/versions.js +289 -0
- package/dist/lib/versions.js.map +1 -0
- package/package.json +8 -5
- package/scripts/postinstall.js +72 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template resolution utilities
|
|
3
|
+
* Ported from agents/halo/cli/pkg/template
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Resolve template placeholders with artifact and preflight data
|
|
7
|
+
* Replaces {{artifact.*}} and {{preflight.*}} patterns
|
|
8
|
+
*
|
|
9
|
+
* @param tmpl - Template string with placeholders
|
|
10
|
+
* @param artifact - Map of artifact key-value pairs
|
|
11
|
+
* @param preflight - Map of preflight data (can contain strings or string arrays)
|
|
12
|
+
* @returns Resolved template string
|
|
13
|
+
*/
|
|
14
|
+
export function resolveTemplate(tmpl, artifact, preflight) {
|
|
15
|
+
let result = tmpl;
|
|
16
|
+
// Replace {{artifact.*}}
|
|
17
|
+
result = result.replace(/\{\{artifact\.(\w+)\}\}/g, (_, key) => {
|
|
18
|
+
return artifact[key] ?? '';
|
|
19
|
+
});
|
|
20
|
+
// Replace {{preflight.*}}
|
|
21
|
+
result = result.replace(/\{\{preflight\.(\w+)\}\}/g, (_, key) => {
|
|
22
|
+
const val = preflight[key];
|
|
23
|
+
if (val === undefined || val === null) {
|
|
24
|
+
return '';
|
|
25
|
+
}
|
|
26
|
+
if (typeof val === 'string') {
|
|
27
|
+
return val;
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(val)) {
|
|
30
|
+
return val.join(',');
|
|
31
|
+
}
|
|
32
|
+
return '';
|
|
33
|
+
});
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Extract all template variables from a template string
|
|
38
|
+
* @param tmpl - Template string
|
|
39
|
+
* @returns Object with artifact and preflight variable names
|
|
40
|
+
*/
|
|
41
|
+
export function extractTemplateVariables(tmpl) {
|
|
42
|
+
const artifact = [];
|
|
43
|
+
const preflight = [];
|
|
44
|
+
const re = /\{\{(\w+)\.(\w+)\}\}/g;
|
|
45
|
+
let match;
|
|
46
|
+
while ((match = re.exec(tmpl)) !== null) {
|
|
47
|
+
const [, prefix, key] = match;
|
|
48
|
+
if (prefix === 'artifact' && !artifact.includes(key)) {
|
|
49
|
+
artifact.push(key);
|
|
50
|
+
}
|
|
51
|
+
else if (prefix === 'preflight' && !preflight.includes(key)) {
|
|
52
|
+
preflight.push(key);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { artifact, preflight };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,QAAgC,EAChC,SAAsD;IAEtD,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,yBAAyB;IACzB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC7D,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IAInD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,EAAE,GAAG,uBAAuB,CAAC;IACnC,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9B,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,MAAM,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface AgentConfig {
|
|
|
10
10
|
commandsSubdir: string;
|
|
11
11
|
skillsDir: string;
|
|
12
12
|
hooksDir: string;
|
|
13
|
+
instructionsFile: string;
|
|
13
14
|
format: 'markdown' | 'toml';
|
|
14
15
|
variableSyntax: string;
|
|
15
16
|
supportsHooks: boolean;
|
|
@@ -45,10 +46,15 @@ export interface InstalledHook {
|
|
|
45
46
|
scope: 'user' | 'project';
|
|
46
47
|
agent: AgentId;
|
|
47
48
|
}
|
|
49
|
+
export interface DriveManifestEntry {
|
|
50
|
+
description?: string;
|
|
51
|
+
project?: string;
|
|
52
|
+
}
|
|
48
53
|
export interface Manifest {
|
|
49
54
|
clis?: Partial<Record<AgentId, CliConfig>>;
|
|
50
55
|
dependencies?: Record<string, string>;
|
|
51
56
|
mcp?: Record<string, McpServerConfig>;
|
|
57
|
+
drives?: Record<string, DriveManifestEntry>;
|
|
52
58
|
defaults?: {
|
|
53
59
|
method?: 'symlink' | 'copy';
|
|
54
60
|
scope?: 'global' | 'project';
|
|
@@ -193,11 +199,16 @@ export interface ScopeConfig {
|
|
|
193
199
|
priority: number;
|
|
194
200
|
readonly?: boolean;
|
|
195
201
|
}
|
|
202
|
+
export interface AgentVersionsState {
|
|
203
|
+
installed: string[];
|
|
204
|
+
default: string | null;
|
|
205
|
+
}
|
|
196
206
|
export interface Meta {
|
|
197
207
|
version: string;
|
|
198
208
|
scopes: Record<ScopeName, ScopeConfig>;
|
|
199
209
|
registries?: Record<RegistryType, Record<string, RegistryConfig>>;
|
|
200
210
|
clis: Partial<Record<AgentId, CliState>>;
|
|
211
|
+
versions?: Partial<Record<AgentId, AgentVersionsState>>;
|
|
201
212
|
packages: Record<string, PackageState>;
|
|
202
213
|
commands: Record<string, CommandState>;
|
|
203
214
|
skills: Record<string, SkillState>;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AA2IA,MAAM,CAAC,MAAM,gBAAgB,GAAiC;IAC5D,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAW5D,MAAM,CAAC,MAAM,kBAAkB,GAAyD;IACtF,GAAG,EAAE;QACH,QAAQ,EAAE;YACR,GAAG,EAAE,6CAA6C;YAClD,OAAO,EAAE,IAAI;SACd;KACF;IACD,KAAK,EAAE;IACL,qEAAqE;IACrE,+EAA+E;KAChF;CACF,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { AgentId, AgentVersionsState } from './types.js';
|
|
2
|
+
export interface AgentSpec {
|
|
3
|
+
agent: AgentId;
|
|
4
|
+
version: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Parse agent@version syntax.
|
|
8
|
+
* Examples:
|
|
9
|
+
* "claude@1.5.0" -> { agent: "claude", version: "1.5.0" }
|
|
10
|
+
* "claude" -> { agent: "claude", version: "latest" }
|
|
11
|
+
* "codex@latest" -> { agent: "codex", version: "latest" }
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseAgentSpec(spec: string): AgentSpec | null;
|
|
14
|
+
/**
|
|
15
|
+
* Get the directory where a specific version is installed.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getVersionDir(agent: AgentId, version: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Get the binary path for a specific agent version.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getBinaryPath(agent: AgentId, version: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a specific version is installed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isVersionInstalled(agent: AgentId, version: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* List all installed versions for an agent.
|
|
28
|
+
*/
|
|
29
|
+
export declare function listInstalledVersions(agent: AgentId): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Get the global default version for an agent.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getGlobalDefault(agent: AgentId): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Set the global default version for an agent.
|
|
36
|
+
*/
|
|
37
|
+
export declare function setGlobalDefault(agent: AgentId, version: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get versions state for an agent from meta.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getAgentVersionsState(agent: AgentId): AgentVersionsState;
|
|
42
|
+
/**
|
|
43
|
+
* Update versions state in meta after install/remove.
|
|
44
|
+
*/
|
|
45
|
+
export declare function updateVersionsState(agent: AgentId, state: AgentVersionsState): void;
|
|
46
|
+
/**
|
|
47
|
+
* Install a specific version of an agent.
|
|
48
|
+
*/
|
|
49
|
+
export declare function installVersion(agent: AgentId, version: string, onProgress?: (message: string) => void): Promise<{
|
|
50
|
+
success: boolean;
|
|
51
|
+
installedVersion: string;
|
|
52
|
+
error?: string;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Remove a specific version of an agent.
|
|
56
|
+
*/
|
|
57
|
+
export declare function removeVersion(agent: AgentId, version: string): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Remove all versions of an agent.
|
|
60
|
+
*/
|
|
61
|
+
export declare function removeAllVersions(agent: AgentId): number;
|
|
62
|
+
/**
|
|
63
|
+
* Get the resolved version for an agent in the current context.
|
|
64
|
+
* Checks project manifest first, then global default.
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveVersion(agent: AgentId, projectPath?: string): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* Get version specified in project manifest.
|
|
69
|
+
*/
|
|
70
|
+
export declare function getProjectVersion(agent: AgentId, startPath: string): string | null;
|
|
71
|
+
/**
|
|
72
|
+
* Compare semver versions for sorting.
|
|
73
|
+
*/
|
|
74
|
+
export declare function compareVersions(a: string, b: string): number;
|
|
75
|
+
/**
|
|
76
|
+
* Get actual version from an installed 'latest' directory.
|
|
77
|
+
*/
|
|
78
|
+
export declare function getInstalledVersion(agent: AgentId, version: string): Promise<string | null>;
|
|
79
|
+
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/lib/versions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAM9D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAa7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAG3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAmB9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAGxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAOnF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+EzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAqBtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiBxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBlF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAa5D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAajG"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
import { getVersionsDir, ensureAgentsDir, readMeta, writeMeta } from './state.js';
|
|
6
|
+
import { AGENTS } from './agents.js';
|
|
7
|
+
const execAsync = promisify(exec);
|
|
8
|
+
/**
|
|
9
|
+
* Parse agent@version syntax.
|
|
10
|
+
* Examples:
|
|
11
|
+
* "claude@1.5.0" -> { agent: "claude", version: "1.5.0" }
|
|
12
|
+
* "claude" -> { agent: "claude", version: "latest" }
|
|
13
|
+
* "codex@latest" -> { agent: "codex", version: "latest" }
|
|
14
|
+
*/
|
|
15
|
+
export function parseAgentSpec(spec) {
|
|
16
|
+
const parts = spec.split('@');
|
|
17
|
+
const agentName = parts[0].toLowerCase();
|
|
18
|
+
const version = parts[1] || 'latest';
|
|
19
|
+
if (!AGENTS[agentName]) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
agent: agentName,
|
|
24
|
+
version,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the directory where a specific version is installed.
|
|
29
|
+
*/
|
|
30
|
+
export function getVersionDir(agent, version) {
|
|
31
|
+
return path.join(getVersionsDir(), agent, version);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the binary path for a specific agent version.
|
|
35
|
+
*/
|
|
36
|
+
export function getBinaryPath(agent, version) {
|
|
37
|
+
const versionDir = getVersionDir(agent, version);
|
|
38
|
+
const agentConfig = AGENTS[agent];
|
|
39
|
+
return path.join(versionDir, 'node_modules', '.bin', agentConfig.cliCommand);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check if a specific version is installed.
|
|
43
|
+
*/
|
|
44
|
+
export function isVersionInstalled(agent, version) {
|
|
45
|
+
const binaryPath = getBinaryPath(agent, version);
|
|
46
|
+
return fs.existsSync(binaryPath);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* List all installed versions for an agent.
|
|
50
|
+
*/
|
|
51
|
+
export function listInstalledVersions(agent) {
|
|
52
|
+
const agentVersionsDir = path.join(getVersionsDir(), agent);
|
|
53
|
+
if (!fs.existsSync(agentVersionsDir)) {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
const entries = fs.readdirSync(agentVersionsDir, { withFileTypes: true });
|
|
57
|
+
const versions = [];
|
|
58
|
+
for (const entry of entries) {
|
|
59
|
+
if (entry.isDirectory()) {
|
|
60
|
+
const binaryPath = getBinaryPath(agent, entry.name);
|
|
61
|
+
if (fs.existsSync(binaryPath)) {
|
|
62
|
+
versions.push(entry.name);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return versions.sort(compareVersions);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the global default version for an agent.
|
|
70
|
+
*/
|
|
71
|
+
export function getGlobalDefault(agent) {
|
|
72
|
+
const meta = readMeta();
|
|
73
|
+
return meta.versions?.[agent]?.default || null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Set the global default version for an agent.
|
|
77
|
+
*/
|
|
78
|
+
export function setGlobalDefault(agent, version) {
|
|
79
|
+
const meta = readMeta();
|
|
80
|
+
if (!meta.versions) {
|
|
81
|
+
meta.versions = {};
|
|
82
|
+
}
|
|
83
|
+
if (!meta.versions[agent]) {
|
|
84
|
+
meta.versions[agent] = { installed: [], default: null };
|
|
85
|
+
}
|
|
86
|
+
meta.versions[agent].default = version;
|
|
87
|
+
writeMeta(meta);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get versions state for an agent from meta.
|
|
91
|
+
*/
|
|
92
|
+
export function getAgentVersionsState(agent) {
|
|
93
|
+
const meta = readMeta();
|
|
94
|
+
return meta.versions?.[agent] || { installed: [], default: null };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Update versions state in meta after install/remove.
|
|
98
|
+
*/
|
|
99
|
+
export function updateVersionsState(agent, state) {
|
|
100
|
+
const meta = readMeta();
|
|
101
|
+
if (!meta.versions) {
|
|
102
|
+
meta.versions = {};
|
|
103
|
+
}
|
|
104
|
+
meta.versions[agent] = state;
|
|
105
|
+
writeMeta(meta);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Install a specific version of an agent.
|
|
109
|
+
*/
|
|
110
|
+
export async function installVersion(agent, version, onProgress) {
|
|
111
|
+
const agentConfig = AGENTS[agent];
|
|
112
|
+
if (!agentConfig.npmPackage) {
|
|
113
|
+
return { success: false, installedVersion: version, error: 'Agent has no npm package' };
|
|
114
|
+
}
|
|
115
|
+
ensureAgentsDir();
|
|
116
|
+
const versionDir = getVersionDir(agent, version);
|
|
117
|
+
// Create version directory
|
|
118
|
+
fs.mkdirSync(versionDir, { recursive: true });
|
|
119
|
+
// Initialize package.json
|
|
120
|
+
const packageJson = {
|
|
121
|
+
name: `agents-${agent}-${version}`,
|
|
122
|
+
version: '1.0.0',
|
|
123
|
+
private: true,
|
|
124
|
+
};
|
|
125
|
+
fs.writeFileSync(path.join(versionDir, 'package.json'), JSON.stringify(packageJson, null, 2));
|
|
126
|
+
// Install the package
|
|
127
|
+
const packageSpec = version === 'latest'
|
|
128
|
+
? agentConfig.npmPackage
|
|
129
|
+
: `${agentConfig.npmPackage}@${version}`;
|
|
130
|
+
try {
|
|
131
|
+
onProgress?.(`Installing ${packageSpec}...`);
|
|
132
|
+
const { stdout } = await execAsync(`npm install ${packageSpec}`, { cwd: versionDir });
|
|
133
|
+
// Determine the actual installed version
|
|
134
|
+
let installedVersion = version;
|
|
135
|
+
if (version === 'latest') {
|
|
136
|
+
const pkgJsonPath = path.join(versionDir, 'node_modules', agentConfig.npmPackage.replace(/^@/, '').split('/')[0], 'package.json');
|
|
137
|
+
// Try to read the actual version from installed package
|
|
138
|
+
try {
|
|
139
|
+
const installedPkgPath = path.join(versionDir, 'node_modules', agentConfig.npmPackage, 'package.json');
|
|
140
|
+
if (fs.existsSync(installedPkgPath)) {
|
|
141
|
+
const installedPkg = JSON.parse(fs.readFileSync(installedPkgPath, 'utf-8'));
|
|
142
|
+
installedVersion = installedPkg.version;
|
|
143
|
+
// Rename the directory to the actual version
|
|
144
|
+
if (installedVersion !== 'latest') {
|
|
145
|
+
const actualVersionDir = getVersionDir(agent, installedVersion);
|
|
146
|
+
if (!fs.existsSync(actualVersionDir)) {
|
|
147
|
+
fs.renameSync(versionDir, actualVersionDir);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Already exists, remove the 'latest' dir
|
|
151
|
+
fs.rmSync(versionDir, { recursive: true, force: true });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
// Keep as 'latest' if we can't determine version
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Update state
|
|
161
|
+
const state = getAgentVersionsState(agent);
|
|
162
|
+
if (!state.installed.includes(installedVersion)) {
|
|
163
|
+
state.installed.push(installedVersion);
|
|
164
|
+
state.installed.sort(compareVersions);
|
|
165
|
+
}
|
|
166
|
+
// Set as default if first install
|
|
167
|
+
if (!state.default) {
|
|
168
|
+
state.default = installedVersion;
|
|
169
|
+
}
|
|
170
|
+
updateVersionsState(agent, state);
|
|
171
|
+
return { success: true, installedVersion };
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
// Clean up on failure
|
|
175
|
+
if (fs.existsSync(versionDir)) {
|
|
176
|
+
fs.rmSync(versionDir, { recursive: true, force: true });
|
|
177
|
+
}
|
|
178
|
+
return { success: false, installedVersion: version, error: err.message };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Remove a specific version of an agent.
|
|
183
|
+
*/
|
|
184
|
+
export function removeVersion(agent, version) {
|
|
185
|
+
const versionDir = getVersionDir(agent, version);
|
|
186
|
+
if (!fs.existsSync(versionDir)) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
fs.rmSync(versionDir, { recursive: true, force: true });
|
|
190
|
+
// Update state
|
|
191
|
+
const state = getAgentVersionsState(agent);
|
|
192
|
+
state.installed = state.installed.filter((v) => v !== version);
|
|
193
|
+
// Clear default if it was removed
|
|
194
|
+
if (state.default === version) {
|
|
195
|
+
state.default = state.installed.length > 0 ? state.installed[state.installed.length - 1] : null;
|
|
196
|
+
}
|
|
197
|
+
updateVersionsState(agent, state);
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Remove all versions of an agent.
|
|
202
|
+
*/
|
|
203
|
+
export function removeAllVersions(agent) {
|
|
204
|
+
const versions = listInstalledVersions(agent);
|
|
205
|
+
let removed = 0;
|
|
206
|
+
for (const version of versions) {
|
|
207
|
+
if (removeVersion(agent, version)) {
|
|
208
|
+
removed++;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Clean up the agent directory
|
|
212
|
+
const agentDir = path.join(getVersionsDir(), agent);
|
|
213
|
+
if (fs.existsSync(agentDir)) {
|
|
214
|
+
fs.rmSync(agentDir, { recursive: true, force: true });
|
|
215
|
+
}
|
|
216
|
+
return removed;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get the resolved version for an agent in the current context.
|
|
220
|
+
* Checks project manifest first, then global default.
|
|
221
|
+
*/
|
|
222
|
+
export function resolveVersion(agent, projectPath) {
|
|
223
|
+
// Check project manifest
|
|
224
|
+
if (projectPath) {
|
|
225
|
+
const version = getProjectVersion(agent, projectPath);
|
|
226
|
+
if (version) {
|
|
227
|
+
return version;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Fall back to global default
|
|
231
|
+
return getGlobalDefault(agent);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get version specified in project manifest.
|
|
235
|
+
*/
|
|
236
|
+
export function getProjectVersion(agent, startPath) {
|
|
237
|
+
let dir = path.resolve(startPath);
|
|
238
|
+
while (dir !== path.dirname(dir)) {
|
|
239
|
+
const manifestPath = path.join(dir, '.agents', 'agents.yaml');
|
|
240
|
+
if (fs.existsSync(manifestPath)) {
|
|
241
|
+
try {
|
|
242
|
+
const content = fs.readFileSync(manifestPath, 'utf-8');
|
|
243
|
+
// Simple YAML parsing for clis section
|
|
244
|
+
const clisMatch = content.match(new RegExp(`${agent}:[\\s\\S]*?version:\\s*['"]?([^'"\n]+)['"]?`, 'm'));
|
|
245
|
+
if (clisMatch) {
|
|
246
|
+
return clisMatch[1].trim();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Ignore parsing errors
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
dir = path.dirname(dir);
|
|
254
|
+
}
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Compare semver versions for sorting.
|
|
259
|
+
*/
|
|
260
|
+
export function compareVersions(a, b) {
|
|
261
|
+
const aParts = a.split('.').map((n) => parseInt(n, 10) || 0);
|
|
262
|
+
const bParts = b.split('.').map((n) => parseInt(n, 10) || 0);
|
|
263
|
+
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
264
|
+
const aVal = aParts[i] || 0;
|
|
265
|
+
const bVal = bParts[i] || 0;
|
|
266
|
+
if (aVal !== bVal) {
|
|
267
|
+
return aVal - bVal;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return 0;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get actual version from an installed 'latest' directory.
|
|
274
|
+
*/
|
|
275
|
+
export async function getInstalledVersion(agent, version) {
|
|
276
|
+
const binaryPath = getBinaryPath(agent, version);
|
|
277
|
+
if (!fs.existsSync(binaryPath)) {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
try {
|
|
281
|
+
const { stdout } = await execAsync(`${binaryPath} --version`);
|
|
282
|
+
const match = stdout.match(/(\d+\.\d+\.\d+)/);
|
|
283
|
+
return match ? match[1] : version;
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
return version;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/lib/versions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swarmify/agents-cli",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.15",
|
|
4
4
|
"description": "Your multi-Agent manager - Agent CLIs, Agent Skills, MCP Servers, Hooks and settings",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,20 +10,21 @@
|
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
|
+
"scripts",
|
|
13
14
|
"CHANGELOG.md"
|
|
14
15
|
],
|
|
15
16
|
"repository": {
|
|
16
17
|
"type": "git",
|
|
17
|
-
"url": "git+https://github.com/muqsitnawaz/
|
|
18
|
-
"directory": "agents-cli"
|
|
18
|
+
"url": "git+https://github.com/muqsitnawaz/agents-cli.git"
|
|
19
19
|
},
|
|
20
|
-
"homepage": "https://
|
|
20
|
+
"homepage": "https://github.com/muqsitnawaz/agents-cli",
|
|
21
21
|
"bugs": {
|
|
22
|
-
"url": "https://github.com/muqsitnawaz/
|
|
22
|
+
"url": "https://github.com/muqsitnawaz/agents-cli/issues"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsc",
|
|
26
26
|
"prepublishOnly": "tsc",
|
|
27
|
+
"postinstall": "node scripts/postinstall.js",
|
|
27
28
|
"dev": "tsx src/index.ts",
|
|
28
29
|
"start": "node dist/index.js",
|
|
29
30
|
"test": "vitest run",
|
|
@@ -51,8 +52,10 @@
|
|
|
51
52
|
},
|
|
52
53
|
"dependencies": {
|
|
53
54
|
"@inquirer/prompts": "^7.0.0",
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
54
56
|
"chalk": "^5.3.0",
|
|
55
57
|
"commander": "^12.1.0",
|
|
58
|
+
"croner": "^9.0.0",
|
|
56
59
|
"diff": "^7.0.0",
|
|
57
60
|
"ora": "^8.1.0",
|
|
58
61
|
"semver": "^7.6.0",
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Runs after npm install -g @swarmify/agents-cli
|
|
3
|
+
// Sets up PATH for version switching
|
|
4
|
+
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import * as os from 'os';
|
|
8
|
+
|
|
9
|
+
const HOME = os.homedir();
|
|
10
|
+
const SHIMS_DIR = path.join(HOME, '.agents', 'shims');
|
|
11
|
+
const AGENTS_DIR = path.join(HOME, '.agents');
|
|
12
|
+
|
|
13
|
+
// Only run for global installs
|
|
14
|
+
if (!process.env.npm_config_global && !process.argv.includes('-g')) {
|
|
15
|
+
process.exit(0);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Create directories
|
|
19
|
+
fs.mkdirSync(SHIMS_DIR, { recursive: true });
|
|
20
|
+
fs.mkdirSync(AGENTS_DIR, { recursive: true });
|
|
21
|
+
|
|
22
|
+
// Detect shell rc file
|
|
23
|
+
function getShellRc() {
|
|
24
|
+
const shell = process.env.SHELL || '/bin/bash';
|
|
25
|
+
const shellName = path.basename(shell);
|
|
26
|
+
|
|
27
|
+
switch (shellName) {
|
|
28
|
+
case 'zsh':
|
|
29
|
+
return path.join(HOME, '.zshrc');
|
|
30
|
+
case 'fish':
|
|
31
|
+
return path.join(HOME, '.config', 'fish', 'config.fish');
|
|
32
|
+
case 'bash':
|
|
33
|
+
const bashProfile = path.join(HOME, '.bash_profile');
|
|
34
|
+
if (fs.existsSync(bashProfile)) {
|
|
35
|
+
return bashProfile;
|
|
36
|
+
}
|
|
37
|
+
return path.join(HOME, '.bashrc');
|
|
38
|
+
default:
|
|
39
|
+
return path.join(HOME, '.profile');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const rcFile = getShellRc();
|
|
44
|
+
const shellName = path.basename(process.env.SHELL || '/bin/bash');
|
|
45
|
+
|
|
46
|
+
// Check if already configured
|
|
47
|
+
let alreadyConfigured = false;
|
|
48
|
+
if (fs.existsSync(rcFile)) {
|
|
49
|
+
const content = fs.readFileSync(rcFile, 'utf-8');
|
|
50
|
+
alreadyConfigured = content.includes('.agents/shims');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (alreadyConfigured) {
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Add to shell rc
|
|
58
|
+
const exportLine = shellName === 'fish'
|
|
59
|
+
? `fish_add_path ${SHIMS_DIR}`
|
|
60
|
+
: `export PATH="${SHIMS_DIR}:$PATH"`;
|
|
61
|
+
|
|
62
|
+
const addition = `
|
|
63
|
+
# agents-cli: version switching for AI coding agents
|
|
64
|
+
${exportLine}
|
|
65
|
+
`;
|
|
66
|
+
|
|
67
|
+
// Ensure parent directory exists (for fish)
|
|
68
|
+
fs.mkdirSync(path.dirname(rcFile), { recursive: true });
|
|
69
|
+
fs.appendFileSync(rcFile, addition);
|
|
70
|
+
|
|
71
|
+
console.log(`\n Added ${SHIMS_DIR} to PATH in ${path.basename(rcFile)}`);
|
|
72
|
+
console.log(` Restart your shell to enable version switching\n`);
|