📦 deps(thirdparty): update snapshots
This commit is contained in:
+12
-10
@@ -65,11 +65,11 @@ assert.ok(
|
||||
);
|
||||
assert.ok(
|
||||
antigravityMessages.some((message) => message.includes("--agy")),
|
||||
"Antigravity installs should point agy CLI users to the flat CLI layout",
|
||||
"Antigravity installs should point agy CLI users to the dedicated CLI layout",
|
||||
);
|
||||
|
||||
const agyMessages = installer.getPostInstallMessages([
|
||||
{ name: "Antigravity CLI", path: "/tmp/.gemini/antigravity-cli/skills", layout: "flat-markdown" },
|
||||
{ name: "Antigravity CLI", path: "/tmp/.gemini/antigravity-cli/skills" },
|
||||
]);
|
||||
|
||||
assert.ok(
|
||||
@@ -95,34 +95,36 @@ try {
|
||||
const nestedDir = path.join(tempDir, "skills", "security", "audit");
|
||||
fs.mkdirSync(alphaDir, { recursive: true });
|
||||
fs.mkdirSync(nestedDir, { recursive: true });
|
||||
fs.mkdirSync(path.join(tempDir, "docs"), { recursive: true });
|
||||
fs.mkdirSync(targetDir, { recursive: true });
|
||||
fs.writeFileSync(path.join(alphaDir, "SKILL.md"), "---\nname: alpha\n---\n\n# Alpha\n", "utf8");
|
||||
fs.writeFileSync(path.join(nestedDir, "SKILL.md"), "---\nname: audit\n---\n\n# Audit\n", "utf8");
|
||||
fs.writeFileSync(path.join(tempDir, "docs", "README.md"), "# Docs\n", "utf8");
|
||||
|
||||
assert.deepStrictEqual(
|
||||
installer.getManagedEntries(["alpha", "security/audit", "docs"], { layout: "flat-markdown" }),
|
||||
["alpha.md", "audit.md"],
|
||||
"agy CLI flat installs should track markdown skill files instead of skill directories",
|
||||
installer.getManagedEntries(["alpha", "security/audit", "docs"], {}),
|
||||
["alpha", "security/audit", "docs"],
|
||||
"agy CLI installs should track skill directories with nested SKILL.md files",
|
||||
);
|
||||
|
||||
installer.installSkillsIntoFlatMarkdownTarget(tempDir, targetDir, [
|
||||
installer.installSkillsIntoTarget(tempDir, targetDir, [
|
||||
"alpha",
|
||||
"security/audit",
|
||||
"docs",
|
||||
]);
|
||||
|
||||
assert.strictEqual(
|
||||
fs.readFileSync(path.join(targetDir, "alpha.md"), "utf8"),
|
||||
fs.readFileSync(path.join(targetDir, "alpha", "SKILL.md"), "utf8"),
|
||||
"---\nname: alpha\n---\n\n# Alpha\n",
|
||||
);
|
||||
assert.strictEqual(
|
||||
fs.readFileSync(path.join(targetDir, "audit.md"), "utf8"),
|
||||
fs.readFileSync(path.join(targetDir, "security", "audit", "SKILL.md"), "utf8"),
|
||||
"---\nname: audit\n---\n\n# Audit\n",
|
||||
);
|
||||
assert.strictEqual(
|
||||
fs.existsSync(path.join(targetDir, "docs")),
|
||||
false,
|
||||
"agy CLI flat installs should not copy docs as a slash-command entry",
|
||||
true,
|
||||
"agy CLI installs should preserve the standard skills-only layout, including docs",
|
||||
);
|
||||
} finally {
|
||||
fs.rmSync(fixtureRoot, { recursive: true, force: true });
|
||||
|
||||
@@ -16,6 +16,7 @@ const LOCAL_TEST_COMMANDS = [
|
||||
[path.join(TOOL_TESTS, "build_catalog_bundles.test.js")],
|
||||
[path.join(TOOL_TESTS, "claude_plugin_marketplace.test.js")],
|
||||
[path.join(TOOL_TESTS, "codex_plugin_marketplace.test.js")],
|
||||
[path.join(TOOL_TESTS, "specialized_plugin_candidates.test.js")],
|
||||
[path.join(TOOL_TESTS, "plugin_directories.test.js")],
|
||||
[path.join(TOOL_SCRIPTS, "run-python.js"), path.join(TOOL_TESTS, "test_editorial_bundles.py")],
|
||||
[path.join(TOOL_SCRIPTS, "run-python.js"), path.join(TOOL_TESTS, "test_plugin_compatibility.py")],
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const { findProjectRoot } = require("../../lib/project-root");
|
||||
|
||||
const projectRoot = findProjectRoot(__dirname);
|
||||
const candidatesPath = path.join(projectRoot, "data", "specialized-plugin-candidates.json");
|
||||
const bundlesPath = path.join(projectRoot, "data", "editorial-bundles.json");
|
||||
const skillsIndexPath = path.join(projectRoot, "data", "skills_index.json");
|
||||
const codexMarketplacePath = path.join(projectRoot, ".agents", "plugins", "marketplace.json");
|
||||
const claudeMarketplacePath = path.join(projectRoot, ".claude-plugin", "marketplace.json");
|
||||
|
||||
const candidates = JSON.parse(fs.readFileSync(candidatesPath, "utf8")).candidates || [];
|
||||
const bundles = JSON.parse(fs.readFileSync(bundlesPath, "utf8")).bundles || [];
|
||||
const skills = JSON.parse(fs.readFileSync(skillsIndexPath, "utf8"));
|
||||
const codexMarketplace = JSON.parse(fs.readFileSync(codexMarketplacePath, "utf8"));
|
||||
const claudeMarketplace = JSON.parse(fs.readFileSync(claudeMarketplacePath, "utf8"));
|
||||
|
||||
const bundlesById = new Map(bundles.map((bundle) => [bundle.id, bundle]));
|
||||
const skillsById = new Map(skills.map((skill) => [skill.id, skill]));
|
||||
const codexPluginNames = new Set(codexMarketplace.plugins.map((plugin) => plugin.name));
|
||||
const claudePluginNames = new Set(claudeMarketplace.plugins.map((plugin) => plugin.name));
|
||||
|
||||
assert.ok(candidates.length >= 10, "specialized plugin candidates should include a meaningful shortlist");
|
||||
|
||||
for (const candidate of candidates) {
|
||||
assert.match(candidate.id, /^[a-z0-9]+(?:-[a-z0-9]+)*$/, `candidate ${candidate.id} should use a host-neutral id convention`);
|
||||
assert.ok(!candidate.id.startsWith("codex-"), `candidate ${candidate.id} should not brand the plugin name around Codex`);
|
||||
assert.ok(!/^Codex\b/.test(candidate.name), `candidate ${candidate.id} display name should not start with Codex`);
|
||||
assert.ok(
|
||||
candidate.skills.length >= 5 && candidate.skills.length <= 10,
|
||||
`candidate ${candidate.id} should stay within the focused 5-10 skill range`,
|
||||
);
|
||||
|
||||
const bundle = bundlesById.get(candidate.id);
|
||||
assert.ok(bundle, `candidate ${candidate.id} must be enabled in data/editorial-bundles.json`);
|
||||
assert.strictEqual(bundle.name, candidate.name, `candidate ${candidate.id} bundle name should match`);
|
||||
assert.deepStrictEqual(
|
||||
bundle.skills.map((skill) => skill.id),
|
||||
candidate.skills,
|
||||
`candidate ${candidate.id} bundle skills should match the candidate manifest`,
|
||||
);
|
||||
|
||||
const pluginRoot = path.join(projectRoot, "plugins", `antigravity-bundle-${candidate.id}`);
|
||||
assert.ok(fs.existsSync(pluginRoot), `candidate ${candidate.id} plugin directory should exist`);
|
||||
assert.ok(
|
||||
fs.existsSync(path.join(pluginRoot, ".codex-plugin", "plugin.json")),
|
||||
`candidate ${candidate.id} should have a Codex plugin manifest`,
|
||||
);
|
||||
assert.ok(
|
||||
fs.existsSync(path.join(pluginRoot, ".claude-plugin", "plugin.json")),
|
||||
`candidate ${candidate.id} should have a Claude plugin manifest`,
|
||||
);
|
||||
assert.ok(
|
||||
codexPluginNames.has(`agyb-${candidate.id}`),
|
||||
`candidate ${candidate.id} should be listed in the Codex marketplace`,
|
||||
);
|
||||
assert.ok(
|
||||
claudePluginNames.has(`antigravity-bundle-${candidate.id}`),
|
||||
`candidate ${candidate.id} should be listed in the Claude marketplace`,
|
||||
);
|
||||
|
||||
for (const skillId of candidate.skills) {
|
||||
const skill = skillsById.get(skillId);
|
||||
assert.ok(skill, `candidate ${candidate.id} references missing skill ${skillId}`);
|
||||
assert.strictEqual(skill.plugin?.targets?.codex, "supported", `${skillId} should be Codex plugin-safe`);
|
||||
assert.strictEqual(skill.plugin?.targets?.claude, "supported", `${skillId} should be Claude plugin-safe`);
|
||||
assert.ok(
|
||||
fs.existsSync(path.join(pluginRoot, "skills", ...skillId.split("/"), "SKILL.md")),
|
||||
`candidate ${candidate.id} should materialize skill ${skillId}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
console.log("ok");
|
||||
@@ -78,7 +78,7 @@ class AuditConsistencyTests(unittest.TestCase):
|
||||
|
||||
- **Broad coverage with real utility**: {count_label} skills across development, testing, security, infrastructure, product, and marketing.
|
||||
|
||||
If you want a faster answer than "browse all {count_label} skills", start with a tool-specific guide:
|
||||
**Start here:** [Install in 1 minute](#installation) · [Recommended plugins](#recommended-specialized-plugins) · [Choose your tool](#choose-your-tool) · [📚 Browse {count_label} Skills](#browse-{total_skills}-skills) · [Bundles & workflows](#bundles--workflows) · [Support the project](#support-the-project)
|
||||
""",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
@@ -62,10 +62,10 @@ We officially thank the following contributors for their help in making this rep
|
||||
["alice", "github-actions[bot]", "Copilot", "new-user"],
|
||||
)
|
||||
|
||||
self.assertIn("- [@alice](https://github.com/alice)", updated)
|
||||
self.assertIn("- [@github-actions[bot]](https://github.com/apps/github-actions)", updated)
|
||||
self.assertIn("- [@Copilot](https://github.com/apps/copilot-swe-agent)", updated)
|
||||
self.assertIn("- [@new-user](https://github.com/new-user)", updated)
|
||||
self.assertIn("https://contrib.rocks/image?repo=sickn33/antigravity-awesome-skills&max=500", updated)
|
||||
self.assertIn("https://github.com/sickn33/antigravity-awesome-skills/graphs/contributors", updated)
|
||||
self.assertNotIn("- [@alice]", updated)
|
||||
self.assertNotIn("- [@new-user]", updated)
|
||||
self.assertEqual(updated.count("## Repo Contributors"), 1)
|
||||
self.assertEqual(updated.count("## License"), 1)
|
||||
|
||||
@@ -80,7 +80,7 @@ We officially thank the following contributors for their help in making this rep
|
||||
["alice", "github-actions[bot]", "bob", "new-a", "new-z"],
|
||||
)
|
||||
|
||||
def test_update_repo_contributors_section_avoids_reordering_existing_entries(self):
|
||||
def test_update_repo_contributors_section_removes_manual_list(self):
|
||||
content = """## Repo Contributors
|
||||
|
||||
<a href="https://github.com/sickn33/antigravity-awesome-skills/graphs/contributors">
|
||||
@@ -108,15 +108,7 @@ We officially thank the following contributors for their help in making this rep
|
||||
1,
|
||||
)[1].split("\n## License", 1)[0]
|
||||
|
||||
self.assertEqual(
|
||||
contributor_block.strip().splitlines(),
|
||||
[
|
||||
"- [@alice](https://github.com/alice)",
|
||||
"- [@github-actions[bot]](https://github.com/apps/github-actions)",
|
||||
"- [@bob](https://github.com/bob)",
|
||||
"- [@new-user](https://github.com/new-user)",
|
||||
],
|
||||
)
|
||||
self.assertNotIn("- [@", contributor_block)
|
||||
|
||||
def test_parse_contributors_response_dedupes_and_sorts_order(self):
|
||||
payload = [
|
||||
|
||||
@@ -48,11 +48,11 @@ class SyncRepoMetadataTests(unittest.TestCase):
|
||||
|
||||
- **Broad coverage with real utility**: 1,273+ skills across development, testing, security, infrastructure, product, and marketing.
|
||||
|
||||
**Start here:** [Install in 1 minute](#installation) · [Recommended plugins](#recommended-specialized-plugins) · [Choose your tool](#choose-your-tool) · [📚 Browse 1,273+ Skills](#browse-1273-skills) · [Bundles & workflows](#bundles--workflows) · [Support the project](#support-the-project)
|
||||
|
||||
- [Browse 1,273+ Skills](#browse-1273-skills)
|
||||
|
||||
**Antigravity Awesome Skills** (Release 8.3.0) is a large, installable skill library for AI coding assistants. It includes onboarding docs, bundles, workflows, generated catalogs, and a CLI installer so you can move from discovery to actual usage without manually stitching together dozens of repos.
|
||||
|
||||
If you want a faster answer than "browse all 1,273+ skills", start with a tool-specific guide:
|
||||
**Antigravity Awesome Skills** (Release 8.3.0) is a large, installable skill library for AI coding assistants. It packages 1,273+ reusable `SKILL.md` playbooks, specialized plugins, bundles, workflows, generated catalogs, and a CLI installer so Claude Code, Codex CLI, Cursor, Gemini CLI, Antigravity, and similar tools can reuse proven operating instructions instead of one-off prompts.
|
||||
""",
|
||||
encoding="utf-8",
|
||||
)
|
||||
@@ -110,7 +110,9 @@ If you want a faster answer than "browse all 1,273+ skills", start with a tool-s
|
||||
self.assertGreaterEqual(updated_files, 10)
|
||||
readme = (root / "README.md").read_text(encoding="utf-8")
|
||||
self.assertIn("1,304+ agentic skills", readme)
|
||||
self.assertIn("[📚 Browse 1,304+ Skills](#browse-1304-skills)", readme)
|
||||
self.assertIn("[Browse 1,304+ Skills](#browse-1304-skills)", readme)
|
||||
self.assertIn("1,304+ reusable `SKILL.md` playbooks", readme)
|
||||
self.assertIn("V8.4.0", (root / "docs" / "users" / "getting-started.md").read_text(encoding="utf-8"))
|
||||
self.assertIn("1,304+ files", (root / "docs" / "users" / "gemini-cli-skills.md").read_text(encoding="utf-8"))
|
||||
self.assertIn("1,304+ specialized areas", (root / "docs" / "users" / "kiro-integration.md").read_text(encoding="utf-8"))
|
||||
|
||||
Reference in New Issue
Block a user