feat: initial commit - Jhonny Editor

- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
This commit is contained in:
João Henrique
2026-09-08 09:59:31 -04:00
commit b541f502ba
1507 changed files with 387650 additions and 0 deletions
+141
View File
@@ -0,0 +1,141 @@
import { readFileSync } from "node:fs";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
const root = process.cwd();
const readJson = (path: string) =>
JSON.parse(readFileSync(join(root, path), "utf8"));
describe("Codex plugin package", () => {
it("keeps the plugin and MCP package versions aligned", () => {
const pkg = readJson("package.json");
const plugin = readJson("plugins/premiere-pro/.codex-plugin/plugin.json");
const mcp = readJson("plugins/premiere-pro/.mcp.json");
expect(plugin.name).toBe("premiere-pro");
expect(plugin.version).toBe(pkg.version);
expect(plugin.skills).toBe("./skills/");
expect(plugin.mcpServers).toBe("./.mcp.json");
expect(mcp.mcpServers["premiere-pro"].args).toContain(
`premiere-pro-mcp@${pkg.version}`,
);
});
it("publishes the plugin through the repository marketplace", () => {
const marketplace = readJson(".agents/plugins/marketplace.json");
const entry = marketplace.plugins.find(
(plugin: { name: string }) => plugin.name === "premiere-pro",
);
expect(marketplace.name).toBe("premiere-pro-mcp");
expect(entry).toMatchObject({
source: { source: "local", path: "./plugins/premiere-pro" },
policy: { installation: "AVAILABLE", authentication: "ON_INSTALL" },
category: "Creativity",
});
});
it("ships a complete Premiere editing skill without placeholders", () => {
const skill = readFileSync(
join(
root,
"plugins",
"premiere-pro",
"skills",
"edit-premiere-project",
"SKILL.md",
),
"utf8",
);
expect(skill).toContain("name: edit-premiere-project");
expect(skill).toContain("Call `ping`");
expect(skill).toContain("preview_edit_plan");
expect(skill).toContain("export_sequence");
expect(skill).not.toContain("TODO");
});
});
describe("Claude distributions", () => {
it("keeps Claude Code metadata aligned with the npm package", () => {
const pkg = readJson("package.json");
const marketplace = readJson(".claude-plugin/marketplace.json");
const plugin = readJson(
"claude-plugins/premiere-pro/.claude-plugin/plugin.json",
);
const mcp = readJson("claude-plugins/premiere-pro/.mcp.json");
expect(marketplace.name).toBe("premiere-pro-mcp");
expect(marketplace.plugins[0]).toMatchObject({
name: "premiere-pro",
source: "./claude-plugins/premiere-pro",
version: pkg.version,
});
expect(plugin.version).toBe(pkg.version);
expect(plugin.mcpServers).toBe("./.mcp.json");
expect(mcp.mcpServers["premiere-pro"].args).toContain(
`premiere-pro-mcp@${pkg.version}`,
);
});
it("keeps the Claude and Codex editing skills identical", () => {
const codexSkill = readFileSync(
join(
root,
"plugins",
"premiere-pro",
"skills",
"edit-premiere-project",
"SKILL.md",
),
"utf8",
);
const claudeSkill = readFileSync(
join(
root,
"claude-plugins",
"premiere-pro",
"skills",
"edit-premiere-project",
"SKILL.md",
),
"utf8",
);
expect(claudeSkill).toBe(codexSkill);
});
it("defines a self-contained Claude Desktop MCP bundle", () => {
const pkg = readJson("package.json");
const manifest = readJson("claude-desktop/manifest.json");
expect(manifest).toMatchObject({
manifest_version: "0.4",
name: "premiere-pro-mcp",
version: pkg.version,
server: {
type: "node",
entry_point: "server/dist/index.js",
},
compatibility: {
platforms: ["darwin", "win32"],
},
});
expect(manifest.server.mcp_config.args).toContain(
"${__dirname}/server/dist/index.js",
);
expect(manifest.user_config.premiere_uxp_token).toMatchObject({
type: "string",
sensitive: true,
required: true,
});
expect(manifest.user_config.premiere_mcp_protocol_mode).toMatchObject({
type: "string",
required: false,
});
expect(manifest.server.mcp_config.env).toEqual({
PREMIERE_UXP_TOKEN: "${user_config.premiere_uxp_token}",
PREMIERE_MCP_PROTOCOL_MODE: "${user_config.premiere_mcp_protocol_mode}",
});
});
});