@ranimontagna/agent-toolkit 0.1.30 → 0.2.0
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 +38 -18
- package/dist/src/args.js +9 -0
- package/dist/src/args.js.map +1 -1
- package/dist/src/doctor.js +2 -0
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/installers/agent-browser.d.ts +1 -0
- package/dist/src/installers/agent-browser.js +27 -0
- package/dist/src/installers/agent-browser.js.map +1 -0
- package/dist/src/installers/agent-skills.d.ts +14 -0
- package/dist/src/installers/agent-skills.js +157 -0
- package/dist/src/installers/agent-skills.js.map +1 -0
- package/dist/src/installers/caveman.js +1 -1
- package/dist/src/installers/gsd.js +1 -1
- package/dist/src/lock-update.js +10 -25
- package/dist/src/lock-update.js.map +1 -1
- package/dist/src/main.js +14 -6
- package/dist/src/main.js.map +1 -1
- package/dist/src/manifest.d.ts +5 -1
- package/dist/src/manifest.js +405 -17
- package/dist/src/manifest.js.map +1 -1
- package/dist/src/menu.js +6 -0
- package/dist/src/menu.js.map +1 -1
- package/dist/src/provenance.d.ts +2 -0
- package/dist/src/provenance.js +35 -14
- package/dist/src/provenance.js.map +1 -1
- package/dist/src/release.d.ts +12 -1
- package/dist/src/release.js +126 -10
- package/dist/src/release.js.map +1 -1
- package/dist/src/runtimes.d.ts +7 -0
- package/dist/src/runtimes.js +41 -20
- package/dist/src/runtimes.js.map +1 -1
- package/dist/src/skill-targets.d.ts +9 -0
- package/dist/src/skill-targets.js +45 -0
- package/dist/src/skill-targets.js.map +1 -0
- package/dist/src/skills.js +11 -45
- package/dist/src/skills.js.map +1 -1
- package/dist/src/state.d.ts +5 -20
- package/dist/src/state.js +7 -54
- package/dist/src/state.js.map +1 -1
- package/dist/src/status.js +30 -3
- package/dist/src/status.js.map +1 -1
- package/dist/src/system.d.ts +6 -2
- package/dist/src/system.js +207 -36
- package/dist/src/system.js.map +1 -1
- package/dist/src/tool-lock.d.ts +24 -51
- package/dist/src/tool-lock.js +75 -32
- package/dist/src/tool-lock.js.map +1 -1
- package/dist/src/usage.js +3 -0
- package/dist/src/usage.js.map +1 -1
- package/package.json +5 -5
- package/setup-agent-toolkit.sh +7 -1
- package/tools.lock.json +104 -49
- package/dist/src/installers/frontend-skills.d.ts +0 -8
- package/dist/src/installers/frontend-skills.js +0 -93
- package/dist/src/installers/frontend-skills.js.map +0 -1
- package/dist/src/installers/improve.d.ts +0 -1
- package/dist/src/installers/improve.js +0 -80
- package/dist/src/installers/improve.js.map +0 -1
- package/dist/src/installers/planning-skills.d.ts +0 -1
- package/dist/src/installers/planning-skills.js +0 -6
- package/dist/src/installers/planning-skills.js.map +0 -1
package/dist/src/tool-lock.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
export type RuntimeCliLockName = "claude" | "codex" | "opencode" | "gemini";
|
|
2
|
+
export declare const agentSkillBundleIds: readonly ["improve", "frontend-skills", "planning-skills", "agent-browser"];
|
|
3
|
+
export type AgentSkillBundleId = (typeof agentSkillBundleIds)[number];
|
|
4
|
+
export type AgentSkillRepository = {
|
|
5
|
+
source: "github";
|
|
6
|
+
repository: string;
|
|
7
|
+
ref: string;
|
|
8
|
+
};
|
|
9
|
+
export type AgentSkillEntry = {
|
|
10
|
+
repository: string;
|
|
11
|
+
skill: string;
|
|
12
|
+
path?: string;
|
|
13
|
+
};
|
|
14
|
+
export type AgentSkillBundle = {
|
|
15
|
+
label: string;
|
|
16
|
+
description: string;
|
|
17
|
+
skills: AgentSkillEntry[];
|
|
18
|
+
};
|
|
2
19
|
export type ToolLock = {
|
|
3
20
|
version: 1;
|
|
4
21
|
tools: {
|
|
@@ -25,64 +42,20 @@ export type ToolLock = {
|
|
|
25
42
|
package: string;
|
|
26
43
|
version: string;
|
|
27
44
|
};
|
|
28
|
-
|
|
29
|
-
source: "
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
skill: string;
|
|
45
|
+
agentBrowser: {
|
|
46
|
+
source: "npm";
|
|
47
|
+
package: string;
|
|
48
|
+
version: string;
|
|
33
49
|
};
|
|
34
|
-
|
|
50
|
+
agentSkills: {
|
|
35
51
|
source: "skills-cli";
|
|
36
52
|
skillsCli: {
|
|
37
53
|
source: "npm";
|
|
38
54
|
package: string;
|
|
39
55
|
version: string;
|
|
40
56
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
repository: string;
|
|
44
|
-
ref: string;
|
|
45
|
-
skill: string;
|
|
46
|
-
};
|
|
47
|
-
webDesignGuidelines: {
|
|
48
|
-
source: "github";
|
|
49
|
-
repository: string;
|
|
50
|
-
ref: string;
|
|
51
|
-
skill: string;
|
|
52
|
-
};
|
|
53
|
-
reactDoctor: {
|
|
54
|
-
source: "github";
|
|
55
|
-
repository: string;
|
|
56
|
-
ref: string;
|
|
57
|
-
skill: string;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
planningSkills: {
|
|
61
|
-
source: "skills-cli";
|
|
62
|
-
grillMe: {
|
|
63
|
-
source: "github";
|
|
64
|
-
repository: string;
|
|
65
|
-
ref: string;
|
|
66
|
-
skill: string;
|
|
67
|
-
};
|
|
68
|
-
grilling: {
|
|
69
|
-
source: "github";
|
|
70
|
-
repository: string;
|
|
71
|
-
ref: string;
|
|
72
|
-
skill: string;
|
|
73
|
-
};
|
|
74
|
-
grillWithDocs: {
|
|
75
|
-
source: "github";
|
|
76
|
-
repository: string;
|
|
77
|
-
ref: string;
|
|
78
|
-
skill: string;
|
|
79
|
-
};
|
|
80
|
-
domainModeling: {
|
|
81
|
-
source: "github";
|
|
82
|
-
repository: string;
|
|
83
|
-
ref: string;
|
|
84
|
-
skill: string;
|
|
85
|
-
};
|
|
57
|
+
repositories: Record<string, AgentSkillRepository>;
|
|
58
|
+
bundles: Record<AgentSkillBundleId, AgentSkillBundle>;
|
|
86
59
|
};
|
|
87
60
|
};
|
|
88
61
|
runtimeClis: Record<RuntimeCliLockName, {
|
package/dist/src/tool-lock.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { REPO_ROOT } from "./context.js";
|
|
4
|
+
export const agentSkillBundleIds = [
|
|
5
|
+
"improve",
|
|
6
|
+
"frontend-skills",
|
|
7
|
+
"planning-skills",
|
|
8
|
+
"agent-browser",
|
|
9
|
+
];
|
|
4
10
|
const exactVersionPattern = /^[0-9]+(?:\.[0-9]+){1,3}(?:[-+][0-9A-Za-z.-]+)?$/;
|
|
5
11
|
const sha256Pattern = /^[a-f0-9]{64}$/i;
|
|
6
12
|
const fullGitShaPattern = /^[a-f0-9]{40}$/i;
|
|
@@ -89,6 +95,72 @@ function assertSha256(value, label) {
|
|
|
89
95
|
throw new Error(`Invalid tools.lock.json: ${label} must be a SHA-256 hash.`);
|
|
90
96
|
}
|
|
91
97
|
}
|
|
98
|
+
const catalogKeyPattern = /^[A-Za-z][A-Za-z0-9]*$/;
|
|
99
|
+
const skillNamePattern = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
100
|
+
function assertSafeRelativePath(value, label) {
|
|
101
|
+
assertString(value, label);
|
|
102
|
+
const normalized = value.replace(/\\/g, "/");
|
|
103
|
+
if (path.posix.isAbsolute(normalized) ||
|
|
104
|
+
path.win32.isAbsolute(value) ||
|
|
105
|
+
normalized.split("/").includes("..")) {
|
|
106
|
+
throw new Error(`Invalid tools.lock.json: ${label} must be a safe relative path.`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function validateAgentSkillsCatalog(catalog) {
|
|
110
|
+
if (!catalog ||
|
|
111
|
+
typeof catalog !== "object" ||
|
|
112
|
+
!catalog.skillsCli ||
|
|
113
|
+
typeof catalog.repositories !== "object" ||
|
|
114
|
+
!catalog.repositories ||
|
|
115
|
+
typeof catalog.bundles !== "object" ||
|
|
116
|
+
!catalog.bundles) {
|
|
117
|
+
throw new Error("Invalid tools.lock.json: tools.agentSkills must define skillsCli, repositories, and bundles.");
|
|
118
|
+
}
|
|
119
|
+
if (catalog.source !== "skills-cli" || catalog.skillsCli.source !== "npm") {
|
|
120
|
+
throw new Error("Invalid tools.lock.json: tools.agentSkills must use skills-cli with an npm CLI source.");
|
|
121
|
+
}
|
|
122
|
+
assertString(catalog.skillsCli.package, "tools.agentSkills.skillsCli.package");
|
|
123
|
+
assertExactVersion(catalog.skillsCli.version, "tools.agentSkills.skillsCli.version");
|
|
124
|
+
if (Object.keys(catalog.repositories).length === 0) {
|
|
125
|
+
throw new Error("Invalid tools.lock.json: tools.agentSkills.repositories must not be empty.");
|
|
126
|
+
}
|
|
127
|
+
for (const [repositoryId, repository] of Object.entries(catalog.repositories)) {
|
|
128
|
+
if (!catalogKeyPattern.test(repositoryId)) {
|
|
129
|
+
throw new Error(`Invalid tools.lock.json: tools.agentSkills.repositories key ${repositoryId} is invalid.`);
|
|
130
|
+
}
|
|
131
|
+
if (repository.source !== "github") {
|
|
132
|
+
throw new Error(`Invalid tools.lock.json: tools.agentSkills.repositories.${repositoryId}.source must be github.`);
|
|
133
|
+
}
|
|
134
|
+
assertString(repository.repository, `tools.agentSkills.repositories.${repositoryId}.repository`);
|
|
135
|
+
assertGitSha(repository.ref, `tools.agentSkills.repositories.${repositoryId}.ref`);
|
|
136
|
+
}
|
|
137
|
+
const expectedBundles = new Set(agentSkillBundleIds);
|
|
138
|
+
for (const bundleId of Object.keys(catalog.bundles)) {
|
|
139
|
+
if (!expectedBundles.has(bundleId)) {
|
|
140
|
+
throw new Error(`Invalid tools.lock.json: unsupported Agent Skill bundle ${bundleId}.`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
for (const bundleId of agentSkillBundleIds) {
|
|
144
|
+
const bundle = catalog.bundles[bundleId];
|
|
145
|
+
if (!bundle || bundle.skills.length === 0) {
|
|
146
|
+
throw new Error(`Invalid tools.lock.json: tools.agentSkills.bundles.${bundleId} must contain skills.`);
|
|
147
|
+
}
|
|
148
|
+
assertString(bundle.label, `tools.agentSkills.bundles.${bundleId}.label`);
|
|
149
|
+
assertString(bundle.description, `tools.agentSkills.bundles.${bundleId}.description`);
|
|
150
|
+
for (const [index, skill] of bundle.skills.entries()) {
|
|
151
|
+
const skillLabel = `tools.agentSkills.bundles.${bundleId}.skills.${index}`;
|
|
152
|
+
if (!catalog.repositories[skill.repository]) {
|
|
153
|
+
throw new Error(`Invalid tools.lock.json: ${skillLabel}.repository references unknown repository ${skill.repository}.`);
|
|
154
|
+
}
|
|
155
|
+
if (!skillNamePattern.test(skill.skill)) {
|
|
156
|
+
throw new Error(`Invalid tools.lock.json: ${skillLabel}.skill is invalid.`);
|
|
157
|
+
}
|
|
158
|
+
if (skill.path !== undefined) {
|
|
159
|
+
assertSafeRelativePath(skill.path, `${skillLabel}.path`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
92
164
|
function validateToolLock(lock) {
|
|
93
165
|
if (lock.version !== 1) {
|
|
94
166
|
throw new Error("Invalid tools.lock.json: version must be 1.");
|
|
@@ -107,38 +179,9 @@ function validateToolLock(lock) {
|
|
|
107
179
|
assertExactVersion(lock.tools.graphify.version, "tools.graphify.version");
|
|
108
180
|
assertString(lock.tools.gsd.package, "tools.gsd.package");
|
|
109
181
|
assertExactVersion(lock.tools.gsd.version, "tools.gsd.version");
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
assertString(lock.tools.frontendSkills.skillsCli.package, "tools.frontendSkills.skillsCli.package");
|
|
114
|
-
assertExactVersion(lock.tools.frontendSkills.skillsCli.version, "tools.frontendSkills.skillsCli.version");
|
|
115
|
-
for (const skillName of [
|
|
116
|
-
"impeccable",
|
|
117
|
-
"webDesignGuidelines",
|
|
118
|
-
"reactDoctor",
|
|
119
|
-
]) {
|
|
120
|
-
const skill = lock.tools.frontendSkills[skillName];
|
|
121
|
-
if (!skill) {
|
|
122
|
-
throw new Error(`Invalid tools.lock.json: tools.frontendSkills.${skillName} must be defined.`);
|
|
123
|
-
}
|
|
124
|
-
assertString(skill.repository, `tools.frontendSkills.${skillName}.repository`);
|
|
125
|
-
assertGitSha(skill.ref, `tools.frontendSkills.${skillName}.ref`);
|
|
126
|
-
assertString(skill.skill, `tools.frontendSkills.${skillName}.skill`);
|
|
127
|
-
}
|
|
128
|
-
for (const skillName of [
|
|
129
|
-
"grillMe",
|
|
130
|
-
"grilling",
|
|
131
|
-
"grillWithDocs",
|
|
132
|
-
"domainModeling",
|
|
133
|
-
]) {
|
|
134
|
-
const skill = lock.tools.planningSkills[skillName];
|
|
135
|
-
if (!skill) {
|
|
136
|
-
throw new Error(`Invalid tools.lock.json: tools.planningSkills.${skillName} must be defined.`);
|
|
137
|
-
}
|
|
138
|
-
assertString(skill.repository, `tools.planningSkills.${skillName}.repository`);
|
|
139
|
-
assertGitSha(skill.ref, `tools.planningSkills.${skillName}.ref`);
|
|
140
|
-
assertString(skill.skill, `tools.planningSkills.${skillName}.skill`);
|
|
141
|
-
}
|
|
182
|
+
validateAgentSkillsCatalog(lock.tools.agentSkills);
|
|
183
|
+
assertString(lock.tools.agentBrowser.package, "tools.agentBrowser.package");
|
|
184
|
+
assertExactVersion(lock.tools.agentBrowser.version, "tools.agentBrowser.version");
|
|
142
185
|
for (const runtime of ["claude", "codex", "opencode", "gemini"]) {
|
|
143
186
|
assertString(lock.runtimeClis[runtime].package, `runtimeClis.${runtime}.package`);
|
|
144
187
|
assertExactVersion(lock.runtimeClis[runtime].version, `runtimeClis.${runtime}.version`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-lock.js","sourceRoot":"","sources":["../../src/tool-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-lock.js","sourceRoot":"","sources":["../../src/tool-lock.ts"],"names":[],"mappings":"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"}
|
package/dist/src/usage.js
CHANGED
|
@@ -13,6 +13,7 @@ Tools:
|
|
|
13
13
|
--graphify-only Install only Graphify
|
|
14
14
|
--gsd-only Install only GSD
|
|
15
15
|
--improve-only Install only shadcn Improve
|
|
16
|
+
--agent-browser-only Install only Agent Browser
|
|
16
17
|
--frontend-skills-only Install only third-party frontend skills
|
|
17
18
|
--planning-skills-only Install only third-party planning skills
|
|
18
19
|
--skills-only Install only Custom Skills
|
|
@@ -22,6 +23,7 @@ Tools:
|
|
|
22
23
|
--no-graphify Skip Graphify
|
|
23
24
|
--no-gsd Skip GSD
|
|
24
25
|
--no-improve Skip shadcn Improve
|
|
26
|
+
--no-agent-browser Skip Agent Browser
|
|
25
27
|
--no-frontend-skills Skip third-party frontend skills
|
|
26
28
|
--no-planning-skills Skip third-party planning skills
|
|
27
29
|
--no-skills Skip Custom Skills
|
|
@@ -71,6 +73,7 @@ Environment:
|
|
|
71
73
|
GRAPHIFY_PACKAGE Python package used to install Graphify
|
|
72
74
|
GRAPHIFY_INSTALLER uv or pipx
|
|
73
75
|
GSD_PACKAGE GSD package source
|
|
76
|
+
AGENT_BROWSER_PACKAGE Agent Browser package source
|
|
74
77
|
SKILLS_CLI_PACKAGE npm package used for third-party skill installs
|
|
75
78
|
GSD_SCOPE global or local
|
|
76
79
|
TOOLS_LOCK_PATH External tool provenance lock path (requires --allow-mutable-sources)
|
package/dist/src/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/usage.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK;IACnB,OAAO
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/usage.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA0FsD,CAAC;AAChE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ranimontagna/agent-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Personal AI agent toolkit installer for Claude Code, Codex CLI, OpenCode, Gemini CLI, Antigravity and graph-aware workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
|
-
"node": ">=
|
|
7
|
+
"node": ">=24"
|
|
8
8
|
},
|
|
9
9
|
"packageManager": "pnpm@11.8.0",
|
|
10
10
|
"bin": {
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
|
-
"build": "tsc -p tsconfig.json",
|
|
30
|
-
"check": "pnpm run lint && pnpm run typecheck && pnpm run test:unit && pnpm run build && find dist/bin dist/src -name '*.js' -print0 | xargs -0 -n1 node --check && bash -n setup-agent-toolkit.sh && pnpm run test:integration",
|
|
29
|
+
"build": "node scripts/clean-dist.mjs && tsc -p tsconfig.json",
|
|
30
|
+
"check": "pnpm run lint && pnpm run typecheck && pnpm run test:unit && pnpm run build && find dist/bin dist/src -name '*.js' -print0 | xargs -0 -n1 node --check && bash -n setup-agent-toolkit.sh && bash -n scripts/publish-npm-with-retry.sh && bash -n tests/publish-npm-with-retry.test.sh && pnpm run test:integration",
|
|
31
31
|
"format": "biome format --write .",
|
|
32
32
|
"lint": "biome check .",
|
|
33
33
|
"lint:fix": "biome check --write .",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"security": "pnpm run security:audit",
|
|
39
39
|
"security:audit": "pnpm audit --audit-level=moderate",
|
|
40
40
|
"test": "pnpm run test:unit && pnpm run test:integration",
|
|
41
|
-
"test:integration": "pnpm run build && bash tests/test-agent-toolkit.sh",
|
|
41
|
+
"test:integration": "pnpm run build && bash tests/test-agent-toolkit.sh && bash tests/publish-npm-with-retry.test.sh",
|
|
42
42
|
"test:unit": "vitest run",
|
|
43
43
|
"typecheck": "tsc -p tsconfig.test.json --noEmit"
|
|
44
44
|
},
|
package/setup-agent-toolkit.sh
CHANGED
|
@@ -4,11 +4,17 @@ set -euo pipefail
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
5
|
|
|
6
6
|
if ! command -v node >/dev/null 2>&1; then
|
|
7
|
-
echo "Node.js
|
|
7
|
+
echo "Node.js 24+ is required to run Agent Toolkit." >&2
|
|
8
8
|
echo "Install Node.js, then run this command again." >&2
|
|
9
9
|
exit 1
|
|
10
10
|
fi
|
|
11
11
|
|
|
12
|
+
NODE_MAJOR="$(node -p 'process.versions.node.split(".")[0]')"
|
|
13
|
+
if [[ ! "$NODE_MAJOR" =~ ^[0-9]+$ ]] || (( NODE_MAJOR < 24 )); then
|
|
14
|
+
echo "Node.js 24+ is required to run Agent Toolkit. Current: $(node --version)" >&2
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
12
18
|
CLI_ENTRYPOINT="$SCRIPT_DIR/dist/bin/agent-toolkit.js"
|
|
13
19
|
|
|
14
20
|
if [[ ! -f "$CLI_ENTRYPOINT" ]]; then
|
package/tools.lock.json
CHANGED
|
@@ -38,63 +38,118 @@
|
|
|
38
38
|
"package": "@opengsd/gsd-core",
|
|
39
39
|
"version": "1.6.1"
|
|
40
40
|
},
|
|
41
|
-
"
|
|
42
|
-
"source": "
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"skill": "improve"
|
|
41
|
+
"agentBrowser": {
|
|
42
|
+
"source": "npm",
|
|
43
|
+
"package": "agent-browser",
|
|
44
|
+
"version": "0.31.1"
|
|
46
45
|
},
|
|
47
|
-
"
|
|
46
|
+
"agentSkills": {
|
|
48
47
|
"source": "skills-cli",
|
|
49
48
|
"skillsCli": {
|
|
50
49
|
"source": "npm",
|
|
51
50
|
"package": "skills",
|
|
52
51
|
"version": "1.5.13"
|
|
53
52
|
},
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"ref": "391a2701dd948f94f56a39f7533f8eea9a859c87",
|
|
91
|
-
"skill": "grill-with-docs"
|
|
53
|
+
"repositories": {
|
|
54
|
+
"shadcnImprove": {
|
|
55
|
+
"source": "github",
|
|
56
|
+
"repository": "shadcn/improve",
|
|
57
|
+
"ref": "03369ee6d7cafbfcecc4346539b05b3dc0a603bb"
|
|
58
|
+
},
|
|
59
|
+
"agentBrowser": {
|
|
60
|
+
"source": "github",
|
|
61
|
+
"repository": "vercel-labs/agent-browser",
|
|
62
|
+
"ref": "afae698a51242166170b6fe4809dd57fe9f75798"
|
|
63
|
+
},
|
|
64
|
+
"impeccable": {
|
|
65
|
+
"source": "github",
|
|
66
|
+
"repository": "pbakaus/impeccable",
|
|
67
|
+
"ref": "3590bf9e37c84ecbc92f9c205ce1aebf2185a971"
|
|
68
|
+
},
|
|
69
|
+
"webDesignGuidelines": {
|
|
70
|
+
"source": "github",
|
|
71
|
+
"repository": "vercel-labs/agent-skills",
|
|
72
|
+
"ref": "f8a72b9603728bb92a217a879b7e62e43ad76c81"
|
|
73
|
+
},
|
|
74
|
+
"reactDoctor": {
|
|
75
|
+
"source": "github",
|
|
76
|
+
"repository": "millionco/react-doctor",
|
|
77
|
+
"ref": "aa519e5f5505105ef8c00e1b1972c98514f7577a"
|
|
78
|
+
},
|
|
79
|
+
"remotionBestPractices": {
|
|
80
|
+
"source": "github",
|
|
81
|
+
"repository": "remotion-dev/skills",
|
|
82
|
+
"ref": "8b1d51ade295b2d9bd22a8f07047d13c0740f275"
|
|
83
|
+
},
|
|
84
|
+
"mattPocockSkills": {
|
|
85
|
+
"source": "github",
|
|
86
|
+
"repository": "mattpocock/skills",
|
|
87
|
+
"ref": "391a2701dd948f94f56a39f7533f8eea9a859c87"
|
|
88
|
+
}
|
|
92
89
|
},
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
90
|
+
"bundles": {
|
|
91
|
+
"improve": {
|
|
92
|
+
"label": "Improve",
|
|
93
|
+
"description": "shadcn advisor skill for auditing codebases and writing execution plans",
|
|
94
|
+
"skills": [
|
|
95
|
+
{
|
|
96
|
+
"repository": "shadcnImprove",
|
|
97
|
+
"skill": "improve",
|
|
98
|
+
"path": "skills/improve"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"frontend-skills": {
|
|
103
|
+
"label": "Frontend Skills",
|
|
104
|
+
"description": "Third-party frontend skills installed via Agent Skills CLI",
|
|
105
|
+
"skills": [
|
|
106
|
+
{ "repository": "impeccable", "skill": "impeccable" },
|
|
107
|
+
{
|
|
108
|
+
"repository": "webDesignGuidelines",
|
|
109
|
+
"skill": "web-design-guidelines"
|
|
110
|
+
},
|
|
111
|
+
{ "repository": "reactDoctor", "skill": "react-doctor" },
|
|
112
|
+
{
|
|
113
|
+
"repository": "remotionBestPractices",
|
|
114
|
+
"skill": "remotion-best-practices"
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"planning-skills": {
|
|
119
|
+
"label": "Planning Skills",
|
|
120
|
+
"description": "Third-party planning and architecture skills installed via Agent Skills CLI",
|
|
121
|
+
"skills": [
|
|
122
|
+
{ "repository": "mattPocockSkills", "skill": "grill-me" },
|
|
123
|
+
{ "repository": "mattPocockSkills", "skill": "grilling" },
|
|
124
|
+
{
|
|
125
|
+
"repository": "mattPocockSkills",
|
|
126
|
+
"skill": "grill-with-docs"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"repository": "mattPocockSkills",
|
|
130
|
+
"skill": "domain-modeling"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"repository": "mattPocockSkills",
|
|
134
|
+
"skill": "codebase-design"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"repository": "mattPocockSkills",
|
|
138
|
+
"skill": "improve-codebase-architecture"
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"agent-browser": {
|
|
143
|
+
"label": "Agent Browser",
|
|
144
|
+
"description": "Pinned browser automation skill installed via Agent Skills CLI",
|
|
145
|
+
"skills": [
|
|
146
|
+
{
|
|
147
|
+
"repository": "agentBrowser",
|
|
148
|
+
"skill": "agent-browser",
|
|
149
|
+
"path": "skills/agent-browser"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
}
|
|
98
153
|
}
|
|
99
154
|
}
|
|
100
155
|
},
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export type SkillsCliSource = {
|
|
2
|
-
label: string;
|
|
3
|
-
repository: string;
|
|
4
|
-
ref: string;
|
|
5
|
-
skill: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function installSkillsCliSources(stepLabel: string, description: string, sources: SkillsCliSource[]): boolean;
|
|
8
|
-
export declare function installFrontendSkills(): boolean;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import os from "node:os";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { err, info, ok, step } from "../logger.js";
|
|
5
|
-
import { selectedSkillsAgentArgs } from "../runtimes.js";
|
|
6
|
-
import { state } from "../state.js";
|
|
7
|
-
import { capture, requireCommand, requireNode, run } from "../system.js";
|
|
8
|
-
function cloneLockedSource(source, parentDir) {
|
|
9
|
-
const repoUrl = `https://github.com/${source.repository}.git`;
|
|
10
|
-
const sourceDir = path.join(parentDir, source.skill);
|
|
11
|
-
info(`Cloning ${source.label} at ${source.ref}...`);
|
|
12
|
-
if (!run("git", [
|
|
13
|
-
"clone",
|
|
14
|
-
"--filter=blob:none",
|
|
15
|
-
"--no-checkout",
|
|
16
|
-
repoUrl,
|
|
17
|
-
sourceDir,
|
|
18
|
-
]).ok) {
|
|
19
|
-
throw new Error(`Failed to clone ${source.repository}.`);
|
|
20
|
-
}
|
|
21
|
-
if (!run("git", [
|
|
22
|
-
"-C",
|
|
23
|
-
sourceDir,
|
|
24
|
-
"fetch",
|
|
25
|
-
"--depth",
|
|
26
|
-
"1",
|
|
27
|
-
"origin",
|
|
28
|
-
source.ref,
|
|
29
|
-
]).ok) {
|
|
30
|
-
throw new Error(`Failed to fetch ${source.repository}@${source.ref}.`);
|
|
31
|
-
}
|
|
32
|
-
if (!run("git", ["-C", sourceDir, "checkout", "--detach", "FETCH_HEAD"]).ok) {
|
|
33
|
-
throw new Error(`Failed to checkout ${source.repository}@${source.ref}.`);
|
|
34
|
-
}
|
|
35
|
-
// FETCH_HEAD is whatever the remote decided to serve; confirm it is the
|
|
36
|
-
// pinned commit before trusting the checked-out content.
|
|
37
|
-
const head = capture("git", ["-C", sourceDir, "rev-parse", "HEAD"])
|
|
38
|
-
.stdout.trim()
|
|
39
|
-
.toLowerCase();
|
|
40
|
-
if (head !== source.ref.toLowerCase()) {
|
|
41
|
-
throw new Error(`Fetched commit for ${source.repository} does not match pinned ref: expected ${source.ref}, got ${head || "unknown"}.`);
|
|
42
|
-
}
|
|
43
|
-
return sourceDir;
|
|
44
|
-
}
|
|
45
|
-
function installSource(source, sourceDir) {
|
|
46
|
-
const args = [
|
|
47
|
-
"-y",
|
|
48
|
-
state.frontendSkillsCliPackage,
|
|
49
|
-
"add",
|
|
50
|
-
sourceDir,
|
|
51
|
-
"--skill",
|
|
52
|
-
source.skill,
|
|
53
|
-
...selectedSkillsAgentArgs(),
|
|
54
|
-
...(state.gsdScope === "global" ? ["--global"] : []),
|
|
55
|
-
"-y",
|
|
56
|
-
"--copy",
|
|
57
|
-
];
|
|
58
|
-
info(`Installing ${source.label} through Agent Skills CLI...`);
|
|
59
|
-
const result = run("npx", args);
|
|
60
|
-
if (result.ok) {
|
|
61
|
-
ok(`${source.label} skill installed`);
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
err(`${source.label} skill install failed`);
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
export function installSkillsCliSources(stepLabel, description, sources) {
|
|
68
|
-
step(stepLabel);
|
|
69
|
-
console.log(` ${description}`);
|
|
70
|
-
requireNode(18);
|
|
71
|
-
requireCommand("git");
|
|
72
|
-
requireCommand("npx");
|
|
73
|
-
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "agent-toolkit-skills-"));
|
|
74
|
-
try {
|
|
75
|
-
for (const source of sources) {
|
|
76
|
-
const sourceDir = cloneLockedSource(source, tempDir);
|
|
77
|
-
if (!installSource(source, sourceDir))
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
err(error instanceof Error ? error.message : String(error));
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
87
|
-
}
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
export function installFrontendSkills() {
|
|
91
|
-
return installSkillsCliSources("Frontend Skills", "Third-party frontend skills installed via Agent Skills CLI", state.frontendSkillSources);
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=frontend-skills.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-skills.js","sourceRoot":"","sources":["../../../src/installers/frontend-skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function installImprove(): boolean;
|