@ranimontagna/agent-toolkit 0.1.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/LICENSE +21 -0
- package/README.md +426 -0
- package/dist/bin/agent-toolkit.d.ts +2 -0
- package/dist/bin/agent-toolkit.js +14 -0
- package/dist/bin/agent-toolkit.js.map +1 -0
- package/dist/src/args.d.ts +1 -0
- package/dist/src/args.js +152 -0
- package/dist/src/args.js.map +1 -0
- package/dist/src/checksum.d.ts +2 -0
- package/dist/src/checksum.js +9 -0
- package/dist/src/checksum.js.map +1 -0
- package/dist/src/context.d.ts +3 -0
- package/dist/src/context.js +10 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/installers/caveman.d.ts +1 -0
- package/dist/src/installers/caveman.js +23 -0
- package/dist/src/installers/caveman.js.map +1 -0
- package/dist/src/installers/frontend-skills.d.ts +1 -0
- package/dist/src/installers/frontend-skills.js +82 -0
- package/dist/src/installers/frontend-skills.js.map +1 -0
- package/dist/src/installers/graphify.d.ts +1 -0
- package/dist/src/installers/graphify.js +58 -0
- package/dist/src/installers/graphify.js.map +1 -0
- package/dist/src/installers/gsd.d.ts +1 -0
- package/dist/src/installers/gsd.js +19 -0
- package/dist/src/installers/gsd.js.map +1 -0
- package/dist/src/installers/rtk.d.ts +1 -0
- package/dist/src/installers/rtk.js +158 -0
- package/dist/src/installers/rtk.js.map +1 -0
- package/dist/src/installers/superpowers.d.ts +1 -0
- package/dist/src/installers/superpowers.js +73 -0
- package/dist/src/installers/superpowers.js.map +1 -0
- package/dist/src/logger.d.ts +18 -0
- package/dist/src/logger.js +35 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/main.d.ts +1 -0
- package/dist/src/main.js +104 -0
- package/dist/src/main.js.map +1 -0
- package/dist/src/menu.d.ts +1 -0
- package/dist/src/menu.js +98 -0
- package/dist/src/menu.js.map +1 -0
- package/dist/src/provenance.d.ts +1 -0
- package/dist/src/provenance.js +44 -0
- package/dist/src/provenance.js.map +1 -0
- package/dist/src/runtimes.d.ts +7 -0
- package/dist/src/runtimes.js +123 -0
- package/dist/src/runtimes.js.map +1 -0
- package/dist/src/skills.d.ts +12 -0
- package/dist/src/skills.js +247 -0
- package/dist/src/skills.js.map +1 -0
- package/dist/src/state.d.ts +51 -0
- package/dist/src/state.js +137 -0
- package/dist/src/state.js.map +1 -0
- package/dist/src/system.d.ts +21 -0
- package/dist/src/system.js +109 -0
- package/dist/src/system.js.map +1 -0
- package/dist/src/tool-lock.d.ts +60 -0
- package/dist/src/tool-lock.js +109 -0
- package/dist/src/tool-lock.js.map +1 -0
- package/dist/src/ui.d.ts +3 -0
- package/dist/src/ui.js +41 -0
- package/dist/src/ui.js.map +1 -0
- package/dist/src/usage.d.ts +1 -0
- package/dist/src/usage.js +66 -0
- package/dist/src/usage.js.map +1 -0
- package/package.json +50 -0
- package/setup-agent-toolkit.sh +20 -0
- package/skills/core/agent-toolkit-maintainer/SKILL.md +68 -0
- package/tools.lock.json +84 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { HOME, REPO_ROOT } from "./context.js";
|
|
3
|
+
import { formatGithubPackageSpec, formatNpmPackageSpec, formatPythonPackageSpec, githubReleaseApiUrl, loadToolLock, } from "./tool-lock.js";
|
|
4
|
+
export const toolNames = [
|
|
5
|
+
"rtk",
|
|
6
|
+
"caveman",
|
|
7
|
+
"superpowers",
|
|
8
|
+
"graphify",
|
|
9
|
+
"gsd",
|
|
10
|
+
"frontend-skills",
|
|
11
|
+
"skills",
|
|
12
|
+
];
|
|
13
|
+
export const runtimeNames = ["claude", "codex", "opencode", "gemini"];
|
|
14
|
+
function envInstallScope(value) {
|
|
15
|
+
return value === "local" ? "local" : "global";
|
|
16
|
+
}
|
|
17
|
+
export function isToolName(value) {
|
|
18
|
+
return toolNames.includes(value);
|
|
19
|
+
}
|
|
20
|
+
export function isRuntimeName(value) {
|
|
21
|
+
return runtimeNames.includes(value);
|
|
22
|
+
}
|
|
23
|
+
export function splitList(value) {
|
|
24
|
+
return value
|
|
25
|
+
.split(",")
|
|
26
|
+
.map((item) => item.trim().toLowerCase())
|
|
27
|
+
.filter(Boolean);
|
|
28
|
+
}
|
|
29
|
+
export function normalizeScope(scope) {
|
|
30
|
+
return scope
|
|
31
|
+
.trim()
|
|
32
|
+
.toLowerCase()
|
|
33
|
+
.replace(/\\/g, "/")
|
|
34
|
+
.replace(/^\/+|\/+$/g, "");
|
|
35
|
+
}
|
|
36
|
+
const toolLock = loadToolLock();
|
|
37
|
+
export const state = {
|
|
38
|
+
rtkInstallDir: process.env.RTK_INSTALL_DIR || path.join(HOME, ".local", "bin"),
|
|
39
|
+
rtkGithub: process.env.RTK_GITHUB ||
|
|
40
|
+
githubReleaseApiUrl(toolLock.tools.rtk.repository, toolLock.tools.rtk.tag),
|
|
41
|
+
rtkAssetChecksums: Object.fromEntries(Object.entries(toolLock.tools.rtk.assets).map(([assetName, asset]) => [
|
|
42
|
+
assetName,
|
|
43
|
+
asset.sha256,
|
|
44
|
+
])),
|
|
45
|
+
cavemanPackage: process.env.CAVEMAN_PACKAGE ||
|
|
46
|
+
formatGithubPackageSpec(toolLock.tools.caveman.repository, toolLock.tools.caveman.ref),
|
|
47
|
+
cavemanMode: process.env.CAVEMAN_MODE || "minimal",
|
|
48
|
+
graphifyPackage: process.env.GRAPHIFY_PACKAGE ||
|
|
49
|
+
formatPythonPackageSpec(toolLock.tools.graphify.package, toolLock.tools.graphify.version),
|
|
50
|
+
graphifyInstaller: process.env.GRAPHIFY_INSTALLER || "uv",
|
|
51
|
+
gsdPackage: process.env.GSD_PACKAGE ||
|
|
52
|
+
formatNpmPackageSpec(toolLock.tools.gsd.package, toolLock.tools.gsd.version),
|
|
53
|
+
frontendSkillsCliPackage: process.env.SKILLS_CLI_PACKAGE ||
|
|
54
|
+
formatNpmPackageSpec(toolLock.tools.frontendSkills.skillsCli.package, toolLock.tools.frontendSkills.skillsCli.version),
|
|
55
|
+
frontendSkillSources: [
|
|
56
|
+
{
|
|
57
|
+
label: "Impeccable",
|
|
58
|
+
repository: toolLock.tools.frontendSkills.impeccable.repository,
|
|
59
|
+
ref: toolLock.tools.frontendSkills.impeccable.ref,
|
|
60
|
+
skill: toolLock.tools.frontendSkills.impeccable.skill,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: "Taste Skill",
|
|
64
|
+
repository: toolLock.tools.frontendSkills.tasteSkill.repository,
|
|
65
|
+
ref: toolLock.tools.frontendSkills.tasteSkill.ref,
|
|
66
|
+
skill: toolLock.tools.frontendSkills.tasteSkill.skill,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
gsdScope: envInstallScope(process.env.GSD_SCOPE),
|
|
70
|
+
customSkillsDir: process.env.CUSTOM_SKILLS_DIR || path.join(REPO_ROOT, "skills"),
|
|
71
|
+
skillScopes: splitList(process.env.SKILLS_SCOPE || ""),
|
|
72
|
+
listSkills: false,
|
|
73
|
+
cliPackages: {
|
|
74
|
+
claude: process.env.CLAUDE_CLI_PACKAGE ||
|
|
75
|
+
formatNpmPackageSpec(toolLock.runtimeClis.claude.package, toolLock.runtimeClis.claude.version),
|
|
76
|
+
codex: process.env.CODEX_CLI_PACKAGE ||
|
|
77
|
+
formatNpmPackageSpec(toolLock.runtimeClis.codex.package, toolLock.runtimeClis.codex.version),
|
|
78
|
+
opencode: process.env.OPENCODE_CLI_PACKAGE ||
|
|
79
|
+
formatNpmPackageSpec(toolLock.runtimeClis.opencode.package, toolLock.runtimeClis.opencode.version),
|
|
80
|
+
gemini: process.env.GEMINI_CLI_PACKAGE ||
|
|
81
|
+
formatNpmPackageSpec(toolLock.runtimeClis.gemini.package, toolLock.runtimeClis.gemini.version),
|
|
82
|
+
},
|
|
83
|
+
tools: {
|
|
84
|
+
rtk: true,
|
|
85
|
+
caveman: true,
|
|
86
|
+
superpowers: true,
|
|
87
|
+
graphify: true,
|
|
88
|
+
gsd: true,
|
|
89
|
+
"frontend-skills": true,
|
|
90
|
+
skills: true,
|
|
91
|
+
},
|
|
92
|
+
runtimes: {
|
|
93
|
+
claude: true,
|
|
94
|
+
codex: true,
|
|
95
|
+
opencode: true,
|
|
96
|
+
gemini: true,
|
|
97
|
+
},
|
|
98
|
+
nonInteractive: false,
|
|
99
|
+
installMissingClis: false,
|
|
100
|
+
allowMutableSources: process.env.ALLOW_MUTABLE_SOURCES === "1",
|
|
101
|
+
};
|
|
102
|
+
export const runtimeMeta = {
|
|
103
|
+
claude: {
|
|
104
|
+
command: "claude",
|
|
105
|
+
label: "Claude Code CLI",
|
|
106
|
+
display: "Claude Code",
|
|
107
|
+
},
|
|
108
|
+
codex: { command: "codex", label: "Codex CLI", display: "Codex CLI" },
|
|
109
|
+
opencode: { command: "opencode", label: "OpenCode CLI", display: "OpenCode" },
|
|
110
|
+
gemini: { command: "gemini", label: "Gemini CLI", display: "Gemini CLI" },
|
|
111
|
+
};
|
|
112
|
+
export function setAllTools(value) {
|
|
113
|
+
for (const key of toolNames)
|
|
114
|
+
state.tools[key] = value;
|
|
115
|
+
}
|
|
116
|
+
export function selectOnlyTool(tool) {
|
|
117
|
+
setAllTools(false);
|
|
118
|
+
state.tools[tool] = true;
|
|
119
|
+
}
|
|
120
|
+
export function setAllRuntimes(value) {
|
|
121
|
+
for (const key of runtimeNames)
|
|
122
|
+
state.runtimes[key] = value;
|
|
123
|
+
}
|
|
124
|
+
export function selectOnlyRuntime(runtime) {
|
|
125
|
+
setAllRuntimes(false);
|
|
126
|
+
state.runtimes[runtime] = true;
|
|
127
|
+
}
|
|
128
|
+
export function anyToolSelected() {
|
|
129
|
+
return Object.values(state.tools).some(Boolean);
|
|
130
|
+
}
|
|
131
|
+
export function anyRuntimeSelected() {
|
|
132
|
+
return Object.values(state.runtimes).some(Boolean);
|
|
133
|
+
}
|
|
134
|
+
export function normalizedSkillScopes() {
|
|
135
|
+
return state.skillScopes.map(normalizeScope).filter(Boolean);
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type RunOptions = {
|
|
2
|
+
cwd?: string;
|
|
3
|
+
env?: NodeJS.ProcessEnv;
|
|
4
|
+
capture?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type RunResult = {
|
|
7
|
+
ok: boolean;
|
|
8
|
+
status: number;
|
|
9
|
+
stdout: string;
|
|
10
|
+
stderr: string;
|
|
11
|
+
error?: Error;
|
|
12
|
+
};
|
|
13
|
+
export declare function findCommand(command: string): string | null;
|
|
14
|
+
export declare function commandExists(command: string): boolean;
|
|
15
|
+
export declare function run(command: string, args?: string[], options?: RunOptions): RunResult;
|
|
16
|
+
export declare function capture(command: string, args?: string[]): RunResult;
|
|
17
|
+
export declare function requireCommand(command: string): void;
|
|
18
|
+
export declare function requireNode(requiredMajor: number): void;
|
|
19
|
+
export declare function fetchJson(url: string): Promise<unknown>;
|
|
20
|
+
export declare function downloadFile(url: string, destination: string): Promise<void>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import http from "node:http";
|
|
4
|
+
import https from "node:https";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import process from "node:process";
|
|
7
|
+
import { die } from "./logger.js";
|
|
8
|
+
export function findCommand(command) {
|
|
9
|
+
const pathValue = process.env.PATH || "";
|
|
10
|
+
const pathExt = process.platform === "win32"
|
|
11
|
+
? (process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM").split(";")
|
|
12
|
+
: [""];
|
|
13
|
+
for (const dir of pathValue.split(path.delimiter)) {
|
|
14
|
+
if (!dir)
|
|
15
|
+
continue;
|
|
16
|
+
for (const ext of pathExt) {
|
|
17
|
+
const candidate = path.join(dir, `${command}${ext}`);
|
|
18
|
+
try {
|
|
19
|
+
fs.accessSync(candidate, fs.constants.X_OK);
|
|
20
|
+
return candidate;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Continue scanning PATH.
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
export function commandExists(command) {
|
|
30
|
+
return Boolean(findCommand(command));
|
|
31
|
+
}
|
|
32
|
+
export function run(command, args = [], options = {}) {
|
|
33
|
+
const result = spawnSync(command, args, {
|
|
34
|
+
cwd: options.cwd || process.cwd(),
|
|
35
|
+
env: options.env || process.env,
|
|
36
|
+
encoding: "utf8",
|
|
37
|
+
stdio: options.capture ? ["ignore", "pipe", "pipe"] : "inherit",
|
|
38
|
+
});
|
|
39
|
+
if (result.error) {
|
|
40
|
+
return {
|
|
41
|
+
ok: false,
|
|
42
|
+
status: typeof result.status === "number" ? result.status : 1,
|
|
43
|
+
stdout: result.stdout || "",
|
|
44
|
+
stderr: result.stderr || result.error.message,
|
|
45
|
+
error: result.error,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
ok: result.status === 0,
|
|
50
|
+
status: result.status ?? 0,
|
|
51
|
+
stdout: result.stdout || "",
|
|
52
|
+
stderr: result.stderr || "",
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function capture(command, args = []) {
|
|
56
|
+
return run(command, args, { capture: true });
|
|
57
|
+
}
|
|
58
|
+
export function requireCommand(command) {
|
|
59
|
+
if (!commandExists(command))
|
|
60
|
+
die(`Missing prerequisite: ${command}`);
|
|
61
|
+
}
|
|
62
|
+
export function requireNode(requiredMajor) {
|
|
63
|
+
const major = Number.parseInt(process.versions.node.split(".")[0] ?? "", 10);
|
|
64
|
+
if (!Number.isInteger(major) || major < requiredMajor) {
|
|
65
|
+
die(`Node.js >= ${requiredMajor} is required. Current: ${process.version}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function requestBuffer(url, redirects = 0) {
|
|
69
|
+
return new Promise((resolve, reject) => {
|
|
70
|
+
if (redirects > 5) {
|
|
71
|
+
reject(new Error("Too many redirects"));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const client = url.startsWith("https:") ? https : http;
|
|
75
|
+
const request = client.get(url, {
|
|
76
|
+
headers: {
|
|
77
|
+
"User-Agent": "agent-toolkit",
|
|
78
|
+
Accept: "application/vnd.github+json, application/json",
|
|
79
|
+
},
|
|
80
|
+
}, (response) => {
|
|
81
|
+
const { statusCode = 0, headers } = response;
|
|
82
|
+
if ([301, 302, 303, 307, 308].includes(statusCode) &&
|
|
83
|
+
headers.location) {
|
|
84
|
+
response.resume();
|
|
85
|
+
const nextUrl = new URL(headers.location, url).toString();
|
|
86
|
+
requestBuffer(nextUrl, redirects + 1).then(resolve, reject);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (statusCode < 200 || statusCode >= 300) {
|
|
90
|
+
response.resume();
|
|
91
|
+
reject(new Error(`HTTP ${statusCode}`));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const chunks = [];
|
|
95
|
+
response.on("data", (chunk) => chunks.push(Buffer.from(chunk)));
|
|
96
|
+
response.on("end", () => resolve(Buffer.concat(chunks)));
|
|
97
|
+
});
|
|
98
|
+
request.on("error", reject);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
export async function fetchJson(url) {
|
|
102
|
+
const buffer = await requestBuffer(url);
|
|
103
|
+
return JSON.parse(buffer.toString("utf8"));
|
|
104
|
+
}
|
|
105
|
+
export async function downloadFile(url, destination) {
|
|
106
|
+
const buffer = await requestBuffer(url);
|
|
107
|
+
fs.writeFileSync(destination, buffer);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export type RuntimeCliLockName = "claude" | "codex" | "opencode" | "gemini";
|
|
2
|
+
export type ToolLock = {
|
|
3
|
+
version: 1;
|
|
4
|
+
tools: {
|
|
5
|
+
rtk: {
|
|
6
|
+
source: "github-release";
|
|
7
|
+
repository: string;
|
|
8
|
+
tag: string;
|
|
9
|
+
assets: Record<string, {
|
|
10
|
+
sha256: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
caveman: {
|
|
14
|
+
source: "github";
|
|
15
|
+
repository: string;
|
|
16
|
+
ref: string;
|
|
17
|
+
};
|
|
18
|
+
graphify: {
|
|
19
|
+
source: "pypi";
|
|
20
|
+
package: string;
|
|
21
|
+
version: string;
|
|
22
|
+
};
|
|
23
|
+
gsd: {
|
|
24
|
+
source: "npm";
|
|
25
|
+
package: string;
|
|
26
|
+
version: string;
|
|
27
|
+
};
|
|
28
|
+
frontendSkills: {
|
|
29
|
+
source: "skills-cli";
|
|
30
|
+
skillsCli: {
|
|
31
|
+
source: "npm";
|
|
32
|
+
package: string;
|
|
33
|
+
version: string;
|
|
34
|
+
};
|
|
35
|
+
impeccable: {
|
|
36
|
+
source: "github";
|
|
37
|
+
repository: string;
|
|
38
|
+
ref: string;
|
|
39
|
+
skill: string;
|
|
40
|
+
};
|
|
41
|
+
tasteSkill: {
|
|
42
|
+
source: "github";
|
|
43
|
+
repository: string;
|
|
44
|
+
ref: string;
|
|
45
|
+
skill: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
runtimeClis: Record<RuntimeCliLockName, {
|
|
50
|
+
source: "npm";
|
|
51
|
+
package: string;
|
|
52
|
+
version: string;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
export declare function formatNpmPackageSpec(packageName: string, version: string): string;
|
|
56
|
+
export declare function formatPythonPackageSpec(packageName: string, version: string): string;
|
|
57
|
+
export declare function formatGithubPackageSpec(repository: string, ref: string): string;
|
|
58
|
+
export declare function githubReleaseApiUrl(repository: string, tag: string): string;
|
|
59
|
+
export declare function isMutableExternalSource(spec: string): boolean;
|
|
60
|
+
export declare function loadToolLock(lockPath?: string): ToolLock;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { REPO_ROOT } from "./context.js";
|
|
4
|
+
const exactVersionPattern = /^[0-9]+(?:\.[0-9]+){1,3}(?:[-+][0-9A-Za-z.-]+)?$/;
|
|
5
|
+
const sha256Pattern = /^[a-f0-9]{64}$/i;
|
|
6
|
+
const fullGitShaPattern = /^[a-f0-9]{40}$/i;
|
|
7
|
+
export function formatNpmPackageSpec(packageName, version) {
|
|
8
|
+
return `${packageName}@${version}`;
|
|
9
|
+
}
|
|
10
|
+
export function formatPythonPackageSpec(packageName, version) {
|
|
11
|
+
return `${packageName}==${version}`;
|
|
12
|
+
}
|
|
13
|
+
export function formatGithubPackageSpec(repository, ref) {
|
|
14
|
+
return `github:${repository}#${ref}`;
|
|
15
|
+
}
|
|
16
|
+
export function githubReleaseApiUrl(repository, tag) {
|
|
17
|
+
return `https://api.github.com/repos/${repository}/releases/tags/${encodeURIComponent(tag)}`;
|
|
18
|
+
}
|
|
19
|
+
function npmVersionFromSpec(spec) {
|
|
20
|
+
if (spec.startsWith("@")) {
|
|
21
|
+
const slashIndex = spec.indexOf("/");
|
|
22
|
+
if (slashIndex === -1)
|
|
23
|
+
return null;
|
|
24
|
+
const versionIndex = spec.indexOf("@", slashIndex);
|
|
25
|
+
return versionIndex === -1 ? null : spec.slice(versionIndex + 1);
|
|
26
|
+
}
|
|
27
|
+
const versionIndex = spec.lastIndexOf("@");
|
|
28
|
+
return versionIndex <= 0 ? null : spec.slice(versionIndex + 1);
|
|
29
|
+
}
|
|
30
|
+
function isMutableVersion(version) {
|
|
31
|
+
if (!version)
|
|
32
|
+
return true;
|
|
33
|
+
if (["latest", "next", "canary", "beta", "alpha"].includes(version)) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return !exactVersionPattern.test(version);
|
|
37
|
+
}
|
|
38
|
+
export function isMutableExternalSource(spec) {
|
|
39
|
+
if (spec.startsWith("github:")) {
|
|
40
|
+
const refIndex = spec.lastIndexOf("#");
|
|
41
|
+
if (refIndex === -1)
|
|
42
|
+
return true;
|
|
43
|
+
return !fullGitShaPattern.test(spec.slice(refIndex + 1));
|
|
44
|
+
}
|
|
45
|
+
if (spec.includes("==")) {
|
|
46
|
+
return isMutableVersion(spec.split("==").at(-1) ?? null);
|
|
47
|
+
}
|
|
48
|
+
return isMutableVersion(npmVersionFromSpec(spec));
|
|
49
|
+
}
|
|
50
|
+
function assertString(value, label) {
|
|
51
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
52
|
+
throw new Error(`Invalid tools.lock.json: ${label} must be a string.`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function assertExactVersion(value, label) {
|
|
56
|
+
assertString(value, label);
|
|
57
|
+
if (isMutableVersion(value)) {
|
|
58
|
+
throw new Error(`Invalid tools.lock.json: ${label} must be an exact version.`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function assertGitSha(value, label) {
|
|
62
|
+
assertString(value, label);
|
|
63
|
+
if (!fullGitShaPattern.test(value)) {
|
|
64
|
+
throw new Error(`Invalid tools.lock.json: ${label} must be a full commit SHA.`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function assertSha256(value, label) {
|
|
68
|
+
assertString(value, label);
|
|
69
|
+
if (!sha256Pattern.test(value)) {
|
|
70
|
+
throw new Error(`Invalid tools.lock.json: ${label} must be a SHA-256 hash.`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function validateToolLock(lock) {
|
|
74
|
+
if (lock.version !== 1) {
|
|
75
|
+
throw new Error("Invalid tools.lock.json: version must be 1.");
|
|
76
|
+
}
|
|
77
|
+
assertString(lock.tools.rtk.repository, "tools.rtk.repository");
|
|
78
|
+
assertString(lock.tools.rtk.tag, "tools.rtk.tag");
|
|
79
|
+
if (lock.tools.rtk.tag === "latest") {
|
|
80
|
+
throw new Error("Invalid tools.lock.json: tools.rtk.tag must not be latest.");
|
|
81
|
+
}
|
|
82
|
+
for (const [assetName, asset] of Object.entries(lock.tools.rtk.assets)) {
|
|
83
|
+
assertSha256(asset.sha256, `tools.rtk.assets.${assetName}.sha256`);
|
|
84
|
+
}
|
|
85
|
+
assertString(lock.tools.caveman.repository, "tools.caveman.repository");
|
|
86
|
+
assertGitSha(lock.tools.caveman.ref, "tools.caveman.ref");
|
|
87
|
+
assertString(lock.tools.graphify.package, "tools.graphify.package");
|
|
88
|
+
assertExactVersion(lock.tools.graphify.version, "tools.graphify.version");
|
|
89
|
+
assertString(lock.tools.gsd.package, "tools.gsd.package");
|
|
90
|
+
assertExactVersion(lock.tools.gsd.version, "tools.gsd.version");
|
|
91
|
+
assertString(lock.tools.frontendSkills.skillsCli.package, "tools.frontendSkills.skillsCli.package");
|
|
92
|
+
assertExactVersion(lock.tools.frontendSkills.skillsCli.version, "tools.frontendSkills.skillsCli.version");
|
|
93
|
+
for (const skillName of ["impeccable", "tasteSkill"]) {
|
|
94
|
+
assertString(lock.tools.frontendSkills[skillName].repository, `tools.frontendSkills.${skillName}.repository`);
|
|
95
|
+
assertGitSha(lock.tools.frontendSkills[skillName].ref, `tools.frontendSkills.${skillName}.ref`);
|
|
96
|
+
assertString(lock.tools.frontendSkills[skillName].skill, `tools.frontendSkills.${skillName}.skill`);
|
|
97
|
+
}
|
|
98
|
+
for (const runtime of ["claude", "codex", "opencode", "gemini"]) {
|
|
99
|
+
assertString(lock.runtimeClis[runtime].package, `runtimeClis.${runtime}.package`);
|
|
100
|
+
assertExactVersion(lock.runtimeClis[runtime].version, `runtimeClis.${runtime}.version`);
|
|
101
|
+
}
|
|
102
|
+
return lock;
|
|
103
|
+
}
|
|
104
|
+
export function loadToolLock(lockPath = process.env.TOOLS_LOCK_PATH ||
|
|
105
|
+
path.join(REPO_ROOT, "tools.lock.json")) {
|
|
106
|
+
const raw = fs.readFileSync(lockPath, "utf8");
|
|
107
|
+
return validateToolLock(JSON.parse(raw));
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=tool-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-lock.js","sourceRoot":"","sources":["../../src/tool-lock.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ui.d.ts
ADDED
package/dist/src/ui.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { color, step } from "./logger.js";
|
|
2
|
+
import { normalizedSkillScopes, runtimeMeta, runtimeNames, state, } from "./state.js";
|
|
3
|
+
export function printHeader() {
|
|
4
|
+
console.log("");
|
|
5
|
+
console.log(`${color.bold}Agent Toolkit${color.reset}`);
|
|
6
|
+
console.log("Personal toolkit installer for AI coding agents");
|
|
7
|
+
console.log("");
|
|
8
|
+
}
|
|
9
|
+
export function printSelections() {
|
|
10
|
+
console.log(` ${color.bold}Selected tools:${color.reset}`);
|
|
11
|
+
if (state.tools.rtk)
|
|
12
|
+
console.log(` ${color.green}+${color.reset} RTK`);
|
|
13
|
+
if (state.tools.caveman)
|
|
14
|
+
console.log(` ${color.green}+${color.reset} Caveman`);
|
|
15
|
+
if (state.tools.superpowers)
|
|
16
|
+
console.log(` ${color.green}+${color.reset} Superpowers`);
|
|
17
|
+
if (state.tools.graphify)
|
|
18
|
+
console.log(` ${color.green}+${color.reset} Graphify`);
|
|
19
|
+
if (state.tools.gsd)
|
|
20
|
+
console.log(` ${color.green}+${color.reset} GSD`);
|
|
21
|
+
if (state.tools.skills)
|
|
22
|
+
console.log(` ${color.green}+${color.reset} Custom Skills`);
|
|
23
|
+
console.log("");
|
|
24
|
+
console.log(` ${color.bold}Target runtimes:${color.reset}`);
|
|
25
|
+
for (const runtime of runtimeNames) {
|
|
26
|
+
if (state.runtimes[runtime])
|
|
27
|
+
console.log(` ${color.green}+${color.reset} ${runtimeMeta[runtime].display}`);
|
|
28
|
+
}
|
|
29
|
+
console.log("");
|
|
30
|
+
}
|
|
31
|
+
export function printSummary() {
|
|
32
|
+
step("Summary");
|
|
33
|
+
console.log(` Scope: ${state.gsdScope}`);
|
|
34
|
+
console.log(` Skills source: ${state.customSkillsDir}`);
|
|
35
|
+
const scopes = normalizedSkillScopes();
|
|
36
|
+
if (scopes.length > 0)
|
|
37
|
+
console.log(` Skills scope: ${scopes.join(", ")}`);
|
|
38
|
+
console.log("");
|
|
39
|
+
console.log(" Restart open agent sessions after installing plugins or skills.");
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO;QACrB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ;QACtB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,WAAW,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM;QACpB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,OAAO,CAAC,GAAG,CACT,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CACnE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,SAAS,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,oEAAoE,CACrE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function usage(): string;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export function usage() {
|
|
2
|
+
return `Agent Toolkit installer
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
bash setup-agent-toolkit.sh [options]
|
|
6
|
+
npx -y @ranimontagna/agent-toolkit [options]
|
|
7
|
+
|
|
8
|
+
Tools:
|
|
9
|
+
--all Install every tool without the menu
|
|
10
|
+
--rtk-only Install only RTK
|
|
11
|
+
--caveman-only Install only Caveman
|
|
12
|
+
--superpowers-only Install only Superpowers
|
|
13
|
+
--graphify-only Install only Graphify
|
|
14
|
+
--gsd-only Install only GSD
|
|
15
|
+
--frontend-skills-only Install only third-party frontend skills
|
|
16
|
+
--skills-only Install only Custom Skills
|
|
17
|
+
--no-rtk Skip RTK
|
|
18
|
+
--no-caveman Skip Caveman
|
|
19
|
+
--no-superpowers Skip Superpowers
|
|
20
|
+
--no-graphify Skip Graphify
|
|
21
|
+
--no-gsd Skip GSD
|
|
22
|
+
--no-frontend-skills Skip third-party frontend skills
|
|
23
|
+
--no-skills Skip Custom Skills
|
|
24
|
+
|
|
25
|
+
Runtimes:
|
|
26
|
+
--all-runtimes Target Claude Code, Codex CLI, OpenCode and Gemini CLI
|
|
27
|
+
--claude Target only Claude Code
|
|
28
|
+
--codex Target only Codex CLI
|
|
29
|
+
--opencode Target only OpenCode
|
|
30
|
+
--gemini Target only Gemini CLI
|
|
31
|
+
--no-claude Skip Claude Code
|
|
32
|
+
--no-codex Skip Codex CLI
|
|
33
|
+
--no-opencode Skip OpenCode
|
|
34
|
+
--no-gemini Skip Gemini CLI
|
|
35
|
+
|
|
36
|
+
Install scope:
|
|
37
|
+
--global Install runtime assets into user config directories
|
|
38
|
+
--local Install runtime assets into the current project
|
|
39
|
+
--skills-dir DIR Use another source directory for Custom Skills
|
|
40
|
+
--skills-scope SCOPE Install skills under a relative scope path, repeatable
|
|
41
|
+
--skills-list List discovered Custom Skills and exit
|
|
42
|
+
|
|
43
|
+
Other:
|
|
44
|
+
--install-missing-clis Install selected runtime CLIs if missing
|
|
45
|
+
--allow-mutable-sources Allow explicit mutable package sources like @latest
|
|
46
|
+
--help, -h Show this help
|
|
47
|
+
|
|
48
|
+
Environment:
|
|
49
|
+
RTK_INSTALL_DIR RTK binary install directory
|
|
50
|
+
CAVEMAN_PACKAGE Caveman package source
|
|
51
|
+
CAVEMAN_MODE minimal or all
|
|
52
|
+
GRAPHIFY_PACKAGE Python package used to install Graphify
|
|
53
|
+
GRAPHIFY_INSTALLER uv or pipx
|
|
54
|
+
GSD_PACKAGE GSD package source
|
|
55
|
+
SKILLS_CLI_PACKAGE npm package used for third-party skill installs
|
|
56
|
+
GSD_SCOPE global or local
|
|
57
|
+
TOOLS_LOCK_PATH External tool provenance lock path
|
|
58
|
+
ALLOW_MUTABLE_SOURCES Set to 1 to allow mutable source overrides
|
|
59
|
+
CUSTOM_SKILLS_DIR Source directory for custom skills
|
|
60
|
+
SKILLS_SCOPE Comma-separated skill scope filters
|
|
61
|
+
CLAUDE_CLI_PACKAGE npm package used to install Claude Code CLI
|
|
62
|
+
CODEX_CLI_PACKAGE npm package used to install Codex CLI
|
|
63
|
+
OPENCODE_CLI_PACKAGE npm package used to install OpenCode CLI
|
|
64
|
+
GEMINI_CLI_PACKAGE npm package used to install Gemini CLI`;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/usage.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA8DsD,CAAC;AAChE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ranimontagna/agent-toolkit",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Personal AI agent toolkit installer for Claude Code, Codex CLI, OpenCode, Gemini CLI and graph-aware workflows.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"agent-toolkit": "dist/bin/agent-toolkit.js",
|
|
8
|
+
"setup-agent-toolkit": "dist/bin/agent-toolkit.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"skills",
|
|
13
|
+
"tools.lock.json",
|
|
14
|
+
"setup-agent-toolkit.sh",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc -p tsconfig.json",
|
|
22
|
+
"check": "npm run lint && npm run typecheck && npm run test:unit && npm run build && find dist/bin dist/src -name '*.js' -print0 | xargs -0 -n1 node --check && bash -n setup-agent-toolkit.sh && npm run test:integration",
|
|
23
|
+
"format": "biome format --write .",
|
|
24
|
+
"lint": "biome check .",
|
|
25
|
+
"lint:fix": "biome check --write .",
|
|
26
|
+
"prepare": "npm run build",
|
|
27
|
+
"security": "npm run security:audit && npm run security:signatures",
|
|
28
|
+
"security:audit": "npm audit --audit-level=moderate",
|
|
29
|
+
"security:signatures": "npm audit signatures",
|
|
30
|
+
"test": "npm run test:unit && npm run test:integration",
|
|
31
|
+
"test:integration": "npm run build && bash tests/test-agent-toolkit.sh",
|
|
32
|
+
"test:unit": "vitest run",
|
|
33
|
+
"typecheck": "tsc -p tsconfig.test.json --noEmit"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/raniellimontagna/agent-toolkit.git"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/raniellimontagna/agent-toolkit/issues"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/raniellimontagna/agent-toolkit#readme",
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@biomejs/biome": "^2.4.16",
|
|
46
|
+
"@types/node": "^25.9.1",
|
|
47
|
+
"typescript": "^6.0.3",
|
|
48
|
+
"vitest": "^4.1.8"
|
|
49
|
+
}
|
|
50
|
+
}
|