prpm 1.2.1 → 2.0.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/README.md +90 -862
- package/dist/index.js +23233 -65
- package/dist/schemas/agents-md.schema.json +24 -0
- package/dist/schemas/aider.schema.json +24 -0
- package/dist/schemas/canonical.schema.json +435 -0
- package/dist/schemas/claude-agent.schema.json +62 -0
- package/dist/schemas/claude-hook.schema.json +70 -0
- package/dist/schemas/claude-plugin.schema.json +122 -0
- package/dist/schemas/claude-skill.schema.json +51 -0
- package/dist/schemas/claude-slash-command.schema.json +77 -0
- package/dist/schemas/claude.schema.json +52 -0
- package/dist/schemas/continue.schema.json +98 -0
- package/dist/schemas/copilot.schema.json +76 -0
- package/dist/schemas/cursor-command.schema.json +27 -0
- package/dist/schemas/cursor-hooks.schema.json +59 -0
- package/dist/schemas/cursor.schema.json +74 -0
- package/dist/schemas/droid-hook.schema.json +103 -0
- package/dist/schemas/droid-skill.schema.json +46 -0
- package/dist/schemas/droid-slash-command.schema.json +53 -0
- package/dist/schemas/droid.schema.json +46 -0
- package/dist/schemas/format-registry.schema.json +99 -0
- package/dist/schemas/gemini-md.schema.json +24 -0
- package/dist/schemas/gemini.schema.json +30 -0
- package/dist/schemas/kiro-agent.schema.json +146 -0
- package/dist/schemas/kiro-hook.schema.json +120 -0
- package/dist/schemas/kiro-steering.schema.json +74 -0
- package/dist/schemas/mcp-server.schema.json +130 -0
- package/dist/schemas/opencode-slash-command.schema.json +60 -0
- package/dist/schemas/opencode.schema.json +111 -0
- package/dist/schemas/prpm-manifest.schema.json +733 -0
- package/dist/schemas/replit.schema.json +21 -0
- package/dist/schemas/ruler.schema.json +22 -0
- package/dist/schemas/trae.schema.json +24 -0
- package/dist/schemas/windsurf.schema.json +22 -0
- package/dist/schemas/zencoder.schema.json +51 -0
- package/package.json +20 -14
- package/schemas/prpm-manifest.schema.json +465 -39
- package/dist/__tests__/e2e/test-helpers.js +0 -150
- package/dist/commands/collections.js +0 -606
- package/dist/commands/index.js +0 -186
- package/dist/commands/info.js +0 -82
- package/dist/commands/install.js +0 -477
- package/dist/commands/list.js +0 -166
- package/dist/commands/login.js +0 -281
- package/dist/commands/outdated.js +0 -128
- package/dist/commands/popular.js +0 -27
- package/dist/commands/publish.js +0 -274
- package/dist/commands/schema.js +0 -37
- package/dist/commands/search.js +0 -404
- package/dist/commands/telemetry.js +0 -103
- package/dist/commands/trending.js +0 -76
- package/dist/commands/uninstall.js +0 -77
- package/dist/commands/update.js +0 -121
- package/dist/commands/upgrade.js +0 -121
- package/dist/commands/whoami.js +0 -75
- package/dist/core/claude-config.js +0 -91
- package/dist/core/cursor-config.js +0 -130
- package/dist/core/downloader.js +0 -64
- package/dist/core/filesystem.js +0 -124
- package/dist/core/lockfile.js +0 -239
- package/dist/core/marketplace-converter.js +0 -198
- package/dist/core/registry-client.js +0 -265
- package/dist/core/schema-validator.js +0 -74
- package/dist/core/telemetry.js +0 -175
- package/dist/core/user-config.js +0 -79
- package/dist/types/registry.js +0 -5
- package/dist/types.js +0 -5
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/kiro-steering.json",
|
|
4
|
+
"$comment": "https://kiro.dev/docs/steering/",
|
|
5
|
+
"title": "Kiro Steering Files Format",
|
|
6
|
+
"description": "JSON Schema for Kiro steering files (.kiro/steering/*.md) - context-aware instructions with optional frontmatter (defaults to 'always' inclusion)",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"description": "Optional YAML frontmatter enclosed in --- markers. If omitted, file defaults to 'always' inclusion mode.",
|
|
13
|
+
"properties": {
|
|
14
|
+
"inclusion": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"enum": ["always", "fileMatch", "manual"],
|
|
17
|
+
"default": "always",
|
|
18
|
+
"description": "When to include this steering file: always (all contexts, default), fileMatch (specific files), manual (user-triggered)"
|
|
19
|
+
},
|
|
20
|
+
"fileMatchPattern": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Glob pattern for fileMatch inclusion mode (REQUIRED if inclusion is fileMatch)"
|
|
23
|
+
},
|
|
24
|
+
"domain": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Domain or topic for organization (e.g., 'testing', 'api', 'security')"
|
|
27
|
+
},
|
|
28
|
+
"foundationalType": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["product", "tech", "structure"],
|
|
31
|
+
"description": "Type of foundational file (product.md, tech.md, structure.md)"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"allOf": [
|
|
35
|
+
{
|
|
36
|
+
"if": {
|
|
37
|
+
"properties": {
|
|
38
|
+
"inclusion": {
|
|
39
|
+
"const": "fileMatch"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"then": {
|
|
44
|
+
"required": ["fileMatchPattern"]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"content": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "Markdown content following the frontmatter (or entire file if no frontmatter). Should include H1 title, guidelines, rules, examples."
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"examples": [
|
|
55
|
+
{
|
|
56
|
+
"content": "# Testing Guidelines\n\nAlways write tests first.\n\n## Principles\n\n- Test edge cases\n- Mock external dependencies"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"frontmatter": {
|
|
60
|
+
"inclusion": "always",
|
|
61
|
+
"domain": "Testing"
|
|
62
|
+
},
|
|
63
|
+
"content": "# Testing Guidelines\n\nAlways write tests first.\n\n## Principles\n\n- Test edge cases\n- Mock external dependencies"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"frontmatter": {
|
|
67
|
+
"inclusion": "fileMatch",
|
|
68
|
+
"fileMatchPattern": "**/*.test.ts",
|
|
69
|
+
"domain": "Testing"
|
|
70
|
+
},
|
|
71
|
+
"content": "# Test File Guidelines\n\nRules specific to test files."
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/mcp-server.schema.json",
|
|
4
|
+
"title": "MCP Server Package",
|
|
5
|
+
"description": "Schema for Model Context Protocol (MCP) server packages",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "mcpServers"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Display name of the MCP server package"
|
|
12
|
+
},
|
|
13
|
+
"description": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Description of what this MCP server provides"
|
|
16
|
+
},
|
|
17
|
+
"version": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Package version (semver)",
|
|
20
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$"
|
|
21
|
+
},
|
|
22
|
+
"author": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Package author"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Repository URL",
|
|
29
|
+
"format": "uri"
|
|
30
|
+
},
|
|
31
|
+
"homepage": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Homepage URL",
|
|
34
|
+
"format": "uri"
|
|
35
|
+
},
|
|
36
|
+
"license": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "SPDX license identifier"
|
|
39
|
+
},
|
|
40
|
+
"mcpServers": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"description": "MCP server configurations to install",
|
|
43
|
+
"additionalProperties": {
|
|
44
|
+
"$ref": "#/definitions/mcpServer"
|
|
45
|
+
},
|
|
46
|
+
"minProperties": 1
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"definitions": {
|
|
50
|
+
"mcpServer": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"description": "MCP server configuration",
|
|
53
|
+
"properties": {
|
|
54
|
+
"type": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"enum": ["stdio", "http", "sse"],
|
|
57
|
+
"description": "Server connection type",
|
|
58
|
+
"default": "stdio"
|
|
59
|
+
},
|
|
60
|
+
"command": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"description": "Command to execute (for stdio type)"
|
|
63
|
+
},
|
|
64
|
+
"args": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": { "type": "string" },
|
|
67
|
+
"description": "Command arguments (for stdio type)"
|
|
68
|
+
},
|
|
69
|
+
"url": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "Server URL (for http/sse type)",
|
|
72
|
+
"format": "uri"
|
|
73
|
+
},
|
|
74
|
+
"env": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"additionalProperties": { "type": "string" },
|
|
77
|
+
"description": "Environment variables to set"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"oneOf": [
|
|
81
|
+
{
|
|
82
|
+
"properties": {
|
|
83
|
+
"type": { "const": "stdio" }
|
|
84
|
+
},
|
|
85
|
+
"required": ["command"]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"properties": {
|
|
89
|
+
"type": { "enum": ["http", "sse"] }
|
|
90
|
+
},
|
|
91
|
+
"required": ["url"]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"not": {
|
|
95
|
+
"required": ["type"]
|
|
96
|
+
},
|
|
97
|
+
"required": ["command"]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"examples": [
|
|
103
|
+
{
|
|
104
|
+
"name": "GitHub MCP Server",
|
|
105
|
+
"description": "MCP server for GitHub API integration",
|
|
106
|
+
"version": "1.0.0",
|
|
107
|
+
"author": "Anthropic",
|
|
108
|
+
"mcpServers": {
|
|
109
|
+
"github": {
|
|
110
|
+
"command": "npx",
|
|
111
|
+
"args": ["-y", "@anthropic/mcp-server-github"],
|
|
112
|
+
"env": {
|
|
113
|
+
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "Filesystem MCP Server",
|
|
120
|
+
"description": "MCP server for filesystem access",
|
|
121
|
+
"version": "1.0.0",
|
|
122
|
+
"mcpServers": {
|
|
123
|
+
"filesystem": {
|
|
124
|
+
"command": "npx",
|
|
125
|
+
"args": ["-y", "@anthropic/mcp-server-filesystem", "/path/to/allowed/dir"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/opencode/slash-command.json",
|
|
4
|
+
"$comment": "https://opencode.ai/docs/slash-commands/",
|
|
5
|
+
"title": "OpenCode Slash Command Format",
|
|
6
|
+
"description": "JSON Schema for OpenCode Slash Commands - markdown files with YAML frontmatter stored in .opencode/command/",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["frontmatter", "content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["template"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"description": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Brief description of what the command does (shown in TUI)"
|
|
17
|
+
},
|
|
18
|
+
"template": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "The prompt text sent to the LLM when executed. Required field. Supports placeholders: $ARGUMENTS, $1-$9, !`command`, @filename"
|
|
21
|
+
},
|
|
22
|
+
"agent": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Specifies which agent executes the command"
|
|
25
|
+
},
|
|
26
|
+
"model": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Overrides default model for this command (e.g., 'anthropic/claude-sonnet-4-20250514')"
|
|
29
|
+
},
|
|
30
|
+
"subtask": {
|
|
31
|
+
"type": "boolean",
|
|
32
|
+
"description": "Forces subagent invocation behavior when true"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"additionalProperties": true
|
|
36
|
+
},
|
|
37
|
+
"content": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Additional command documentation or notes (optional)"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"examples": [
|
|
43
|
+
{
|
|
44
|
+
"frontmatter": {
|
|
45
|
+
"description": "Run tests for a specific file",
|
|
46
|
+
"template": "Run the tests for $1 and report the results",
|
|
47
|
+
"agent": "test-runner",
|
|
48
|
+
"subtask": true
|
|
49
|
+
},
|
|
50
|
+
"content": "# Test Runner Command\n\nExecutes tests for the specified file and provides a detailed report."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"frontmatter": {
|
|
54
|
+
"template": "Review the following code for best practices:\n\n@$1",
|
|
55
|
+
"model": "anthropic/claude-sonnet-4-20250514"
|
|
56
|
+
},
|
|
57
|
+
"content": ""
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://registry.prpm.dev/api/v1/schemas/opencode.json",
|
|
4
|
+
"$comment": "https://opencode.ai/docs/agents/",
|
|
5
|
+
"title": "OpenCode Agent Format",
|
|
6
|
+
"description": "JSON Schema for OpenCode Agents - markdown files with YAML frontmatter stored in .opencode/agent/",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["frontmatter", "content"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"frontmatter": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": ["description", "mode"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"description": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Brief explanation of the agent's purpose and use cases (required)"
|
|
17
|
+
},
|
|
18
|
+
"mode": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["subagent", "primary", "all"],
|
|
21
|
+
"description": "Determines how the agent can be used: 'primary' (main assistant), 'subagent' (spawned by primary), or 'all' (both contexts). Required field.",
|
|
22
|
+
"default": "all"
|
|
23
|
+
},
|
|
24
|
+
"model": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Override default model (e.g., 'anthropic/claude-sonnet-4-20250514')"
|
|
27
|
+
},
|
|
28
|
+
"temperature": {
|
|
29
|
+
"type": "number",
|
|
30
|
+
"minimum": 0.0,
|
|
31
|
+
"maximum": 1.0,
|
|
32
|
+
"description": "Controls response randomness (0.0-1.0). Defaults to model-specific values (typically 0, or 0.55 for Qwen models)"
|
|
33
|
+
},
|
|
34
|
+
"prompt": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Path to custom system prompt file using {file:./path} syntax"
|
|
37
|
+
},
|
|
38
|
+
"tools": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"description": "Enable/disable specific tools. Supports wildcards (e.g., 'mymcp_*')",
|
|
41
|
+
"properties": {
|
|
42
|
+
"write": { "type": "boolean" },
|
|
43
|
+
"edit": { "type": "boolean" },
|
|
44
|
+
"bash": { "type": "boolean" },
|
|
45
|
+
"read": { "type": "boolean" },
|
|
46
|
+
"grep": { "type": "boolean" },
|
|
47
|
+
"glob": { "type": "boolean" },
|
|
48
|
+
"webfetch": { "type": "boolean" },
|
|
49
|
+
"websearch": { "type": "boolean" }
|
|
50
|
+
},
|
|
51
|
+
"additionalProperties": { "type": "boolean" }
|
|
52
|
+
},
|
|
53
|
+
"permission": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"description": "Manages tool access with values: 'ask', 'allow', or 'deny'",
|
|
56
|
+
"properties": {
|
|
57
|
+
"edit": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"enum": ["ask", "allow", "deny"]
|
|
60
|
+
},
|
|
61
|
+
"bash": {
|
|
62
|
+
"oneOf": [
|
|
63
|
+
{ "type": "string", "enum": ["ask", "allow", "deny"] },
|
|
64
|
+
{ "type": "object", "description": "Specific commands allowed" }
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"webfetch": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"enum": ["ask", "allow", "deny"]
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"additionalProperties": {
|
|
73
|
+
"oneOf": [
|
|
74
|
+
{ "type": "string", "enum": ["ask", "allow", "deny"] },
|
|
75
|
+
{ "type": "object" }
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"disable": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"description": "When true, disables the agent"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"additionalProperties": true
|
|
85
|
+
},
|
|
86
|
+
"content": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "System prompt content as markdown text"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"examples": [
|
|
92
|
+
{
|
|
93
|
+
"frontmatter": {
|
|
94
|
+
"description": "Reviews code for best practices",
|
|
95
|
+
"mode": "subagent",
|
|
96
|
+
"model": "anthropic/claude-sonnet-4-20250514",
|
|
97
|
+
"temperature": 0.7,
|
|
98
|
+
"tools": {
|
|
99
|
+
"write": false,
|
|
100
|
+
"edit": true,
|
|
101
|
+
"bash": false
|
|
102
|
+
},
|
|
103
|
+
"permission": {
|
|
104
|
+
"edit": "ask",
|
|
105
|
+
"bash": "deny"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"content": "You are an expert code reviewer.\n\n## Instructions\n\n- Check for code smells\n- Verify test coverage\n- Suggest improvements"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}
|