prpm 1.2.1 → 2.1.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.
Files changed (72) hide show
  1. package/README.md +90 -862
  2. package/dist/index.js +24163 -65
  3. package/dist/schemas/agents-md.schema.json +24 -0
  4. package/dist/schemas/aider.schema.json +24 -0
  5. package/dist/schemas/canonical.schema.json +435 -0
  6. package/dist/schemas/claude-agent.schema.json +62 -0
  7. package/dist/schemas/claude-hook.schema.json +70 -0
  8. package/dist/schemas/claude-plugin.schema.json +122 -0
  9. package/dist/schemas/claude-skill.schema.json +51 -0
  10. package/dist/schemas/claude-slash-command.schema.json +77 -0
  11. package/dist/schemas/claude.schema.json +52 -0
  12. package/dist/schemas/continue.schema.json +98 -0
  13. package/dist/schemas/copilot.schema.json +76 -0
  14. package/dist/schemas/cursor-command.schema.json +27 -0
  15. package/dist/schemas/cursor-hooks.schema.json +59 -0
  16. package/dist/schemas/cursor.schema.json +74 -0
  17. package/dist/schemas/droid-hook.schema.json +103 -0
  18. package/dist/schemas/droid-skill.schema.json +46 -0
  19. package/dist/schemas/droid-slash-command.schema.json +53 -0
  20. package/dist/schemas/droid.schema.json +46 -0
  21. package/dist/schemas/format-capabilities.schema.json +101 -0
  22. package/dist/schemas/format-registry.schema.json +99 -0
  23. package/dist/schemas/gemini-extension.schema.json +77 -0
  24. package/dist/schemas/gemini-md.schema.json +24 -0
  25. package/dist/schemas/gemini.schema.json +30 -0
  26. package/dist/schemas/kiro-agent.schema.json +146 -0
  27. package/dist/schemas/kiro-hook.schema.json +165 -0
  28. package/dist/schemas/kiro-steering.schema.json +74 -0
  29. package/dist/schemas/mcp-server.schema.json +130 -0
  30. package/dist/schemas/opencode-plugin.schema.json +391 -0
  31. package/dist/schemas/opencode-slash-command.schema.json +60 -0
  32. package/dist/schemas/opencode.schema.json +111 -0
  33. package/dist/schemas/prpm-manifest.schema.json +758 -0
  34. package/dist/schemas/replit.schema.json +21 -0
  35. package/dist/schemas/ruler.schema.json +22 -0
  36. package/dist/schemas/trae.schema.json +24 -0
  37. package/dist/schemas/windsurf.schema.json +22 -0
  38. package/dist/schemas/zed-extension.schema.json +238 -0
  39. package/dist/schemas/zed.schema.json +44 -0
  40. package/dist/schemas/zencoder.schema.json +51 -0
  41. package/package.json +20 -14
  42. package/schemas/prpm-manifest.schema.json +490 -39
  43. package/dist/__tests__/e2e/test-helpers.js +0 -150
  44. package/dist/commands/collections.js +0 -606
  45. package/dist/commands/index.js +0 -186
  46. package/dist/commands/info.js +0 -82
  47. package/dist/commands/install.js +0 -477
  48. package/dist/commands/list.js +0 -166
  49. package/dist/commands/login.js +0 -281
  50. package/dist/commands/outdated.js +0 -128
  51. package/dist/commands/popular.js +0 -27
  52. package/dist/commands/publish.js +0 -274
  53. package/dist/commands/schema.js +0 -37
  54. package/dist/commands/search.js +0 -404
  55. package/dist/commands/telemetry.js +0 -103
  56. package/dist/commands/trending.js +0 -76
  57. package/dist/commands/uninstall.js +0 -77
  58. package/dist/commands/update.js +0 -121
  59. package/dist/commands/upgrade.js +0 -121
  60. package/dist/commands/whoami.js +0 -75
  61. package/dist/core/claude-config.js +0 -91
  62. package/dist/core/cursor-config.js +0 -130
  63. package/dist/core/downloader.js +0 -64
  64. package/dist/core/filesystem.js +0 -124
  65. package/dist/core/lockfile.js +0 -239
  66. package/dist/core/marketplace-converter.js +0 -198
  67. package/dist/core/registry-client.js +0 -265
  68. package/dist/core/schema-validator.js +0 -74
  69. package/dist/core/telemetry.js +0 -175
  70. package/dist/core/user-config.js +0 -79
  71. package/dist/types/registry.js +0 -5
  72. package/dist/types.js +0 -5
@@ -0,0 +1,146 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/kiro/agent.json",
4
+ "$comment": "https://kiro.dev/docs/cli/custom-agents/",
5
+ "title": "Kiro Agent Configuration Format",
6
+ "description": "JSON Schema for Kiro custom agent configurations (.kiro/agents/*.json) - specialized AI assistants with specific tools and context",
7
+ "type": "object",
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "description": "Agent's identifier (optional, defaults to filename)"
12
+ },
13
+ "description": {
14
+ "type": "string",
15
+ "description": "Human-readable explanation of agent's purpose"
16
+ },
17
+ "prompt": {
18
+ "type": "string",
19
+ "description": "High-level context for the agent. Can be inline text or reference external markdown files via file:// URI"
20
+ },
21
+ "mcpServers": {
22
+ "type": "object",
23
+ "description": "Model Context Protocol (MCP) servers configuration",
24
+ "additionalProperties": {
25
+ "type": "object",
26
+ "properties": {
27
+ "command": {
28
+ "type": "string",
29
+ "description": "Command to start the MCP server"
30
+ },
31
+ "args": {
32
+ "type": "array",
33
+ "items": { "type": "string" },
34
+ "description": "Command-line arguments for the server"
35
+ },
36
+ "env": {
37
+ "type": "object",
38
+ "additionalProperties": { "type": "string" },
39
+ "description": "Environment variables for the server"
40
+ },
41
+ "timeout": {
42
+ "type": "number",
43
+ "description": "Server timeout in milliseconds"
44
+ }
45
+ },
46
+ "required": ["command"]
47
+ }
48
+ },
49
+ "tools": {
50
+ "type": "array",
51
+ "items": { "type": "string" },
52
+ "description": "List of available tools (built-in or from MCP servers). Supports wildcards."
53
+ },
54
+ "toolAliases": {
55
+ "type": "object",
56
+ "additionalProperties": { "type": "string" },
57
+ "description": "Rename tools to avoid naming conflicts"
58
+ },
59
+ "allowedTools": {
60
+ "type": "array",
61
+ "items": { "type": "string" },
62
+ "description": "Tools that can be used without user permission. Supports wildcards."
63
+ },
64
+ "toolsSettings": {
65
+ "type": "object",
66
+ "description": "Configure specific tool behaviors",
67
+ "additionalProperties": {
68
+ "type": "object",
69
+ "properties": {
70
+ "allowedPaths": {
71
+ "type": "array",
72
+ "items": { "type": "string" },
73
+ "description": "Allowed file paths for file system tools"
74
+ }
75
+ },
76
+ "additionalProperties": true
77
+ }
78
+ },
79
+ "resources": {
80
+ "type": "array",
81
+ "items": { "type": "string" },
82
+ "description": "Local file resources accessible to the agent (file:// URIs)"
83
+ },
84
+ "hooks": {
85
+ "type": "object",
86
+ "description": "Commands triggered at specific lifecycle points",
87
+ "properties": {
88
+ "agentSpawn": {
89
+ "type": "array",
90
+ "items": { "type": "string" }
91
+ },
92
+ "userPromptSubmit": {
93
+ "type": "array",
94
+ "items": { "type": "string" }
95
+ },
96
+ "preToolUse": {
97
+ "type": "array",
98
+ "items": { "type": "string" }
99
+ },
100
+ "postToolUse": {
101
+ "type": "array",
102
+ "items": { "type": "string" }
103
+ },
104
+ "stop": {
105
+ "type": "array",
106
+ "items": { "type": "string" }
107
+ }
108
+ }
109
+ },
110
+ "useLegacyMcpJson": {
111
+ "type": "boolean",
112
+ "description": "Include legacy MCP configurations"
113
+ },
114
+ "model": {
115
+ "type": "string",
116
+ "description": "Specific AI model for the agent"
117
+ }
118
+ },
119
+ "examples": [
120
+ {
121
+ "name": "backend-specialist",
122
+ "description": "Expert in building Express.js APIs with MongoDB",
123
+ "prompt": "You are a backend developer specializing in Node.js and Express. Focus on API design, database optimization, and security best practices.",
124
+ "tools": ["fs_read", "fs_write", "execute_bash"],
125
+ "toolsSettings": {
126
+ "fs_write": {
127
+ "allowedPaths": ["src/api/**", "tests/api/**", "server.js", "package.json"]
128
+ }
129
+ },
130
+ "resources": [
131
+ "file://.kiro/steering/backend-standards.md"
132
+ ]
133
+ },
134
+ {
135
+ "name": "aws-rust-agent",
136
+ "description": "Specialized agent for AWS and Rust development",
137
+ "prompt": "file://./prompts/aws-rust-expert.md",
138
+ "mcpServers": {
139
+ "fetch": { "command": "fetch-server", "args": [] },
140
+ "git": { "command": "git-mcp", "args": [] }
141
+ },
142
+ "tools": ["fetch", "git_status", "fs_read", "fs_write"],
143
+ "allowedTools": ["fetch", "git_status"]
144
+ }
145
+ ]
146
+ }
@@ -0,0 +1,165 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/kiro/hook.json",
4
+ "$comment": "https://kiro.dev/docs/hooks/",
5
+ "title": "Kiro Hook Format",
6
+ "description": "JSON Schema for Kiro hook configuration files (.kiro/hooks/*.json) - event-driven automations. Supports both file-based events (fileCreated, fileModified, fileDeleted) and lifecycle events (agentSpawn, userPromptSubmit, preToolUse, postToolUse, stop).",
7
+ "type": "object",
8
+ "required": ["name", "description", "version", "when", "then"],
9
+ "properties": {
10
+ "name": {
11
+ "type": "string",
12
+ "description": "Human-readable name for the hook",
13
+ "minLength": 1
14
+ },
15
+ "description": {
16
+ "type": "string",
17
+ "description": "Explanation of what this hook does",
18
+ "minLength": 1
19
+ },
20
+ "version": {
21
+ "type": "string",
22
+ "description": "Hook version (typically '1')",
23
+ "pattern": "^[0-9]+$"
24
+ },
25
+ "when": {
26
+ "type": "object",
27
+ "description": "Event trigger configuration. File events require patterns, lifecycle events do not.",
28
+ "required": ["type"],
29
+ "properties": {
30
+ "type": {
31
+ "type": "string",
32
+ "enum": [
33
+ "fileCreated",
34
+ "fileModified",
35
+ "fileDeleted",
36
+ "agentSpawn",
37
+ "userPromptSubmit",
38
+ "preToolUse",
39
+ "postToolUse",
40
+ "stop"
41
+ ],
42
+ "description": "Event type. File events: fileCreated (new files created), fileModified (files saved), fileDeleted (files removed). Lifecycle events: agentSpawn (agent activated), userPromptSubmit (user submits prompt), preToolUse (before tool execution, can block), postToolUse (after tool execution), stop (agent finishes responding)."
43
+ },
44
+ "patterns": {
45
+ "type": "array",
46
+ "description": "Glob patterns to match files (required for file events, optional for lifecycle events)",
47
+ "items": {
48
+ "type": "string"
49
+ },
50
+ "minItems": 1
51
+ }
52
+ },
53
+ "allOf": [
54
+ {
55
+ "if": {
56
+ "properties": {
57
+ "type": { "enum": ["fileCreated", "fileModified", "fileDeleted"] }
58
+ }
59
+ },
60
+ "then": {
61
+ "required": ["patterns"]
62
+ }
63
+ }
64
+ ]
65
+ },
66
+ "then": {
67
+ "type": "object",
68
+ "description": "Action to take when event occurs",
69
+ "required": ["type"],
70
+ "properties": {
71
+ "type": {
72
+ "type": "string",
73
+ "enum": ["askAgent", "runCommand"],
74
+ "description": "Type of action to perform"
75
+ },
76
+ "prompt": {
77
+ "type": "string",
78
+ "description": "Prompt for askAgent action type"
79
+ },
80
+ "command": {
81
+ "type": "string",
82
+ "description": "Shell command for runCommand action type"
83
+ }
84
+ },
85
+ "allOf": [
86
+ {
87
+ "if": {
88
+ "properties": {
89
+ "type": {
90
+ "const": "askAgent"
91
+ }
92
+ }
93
+ },
94
+ "then": {
95
+ "required": ["prompt"]
96
+ }
97
+ },
98
+ {
99
+ "if": {
100
+ "properties": {
101
+ "type": {
102
+ "const": "runCommand"
103
+ }
104
+ }
105
+ },
106
+ "then": {
107
+ "required": ["command"]
108
+ }
109
+ }
110
+ ]
111
+ }
112
+ },
113
+ "examples": [
114
+ {
115
+ "name": "Auto Test Files",
116
+ "description": "Creates test files for new components",
117
+ "version": "1",
118
+ "when": {
119
+ "type": "fileCreated",
120
+ "patterns": ["src/components/**/*.tsx"]
121
+ },
122
+ "then": {
123
+ "type": "askAgent",
124
+ "prompt": "A new component was created. Create a corresponding test file."
125
+ }
126
+ },
127
+ {
128
+ "name": "Lint on Save",
129
+ "description": "Runs linter when files are modified",
130
+ "version": "1",
131
+ "when": {
132
+ "type": "fileModified",
133
+ "patterns": ["src/**/*.ts", "src/**/*.tsx"]
134
+ },
135
+ "then": {
136
+ "type": "runCommand",
137
+ "command": "npm run lint"
138
+ }
139
+ },
140
+ {
141
+ "name": "Session Setup",
142
+ "description": "Loads project context when agent starts",
143
+ "version": "1",
144
+ "when": {
145
+ "type": "agentSpawn"
146
+ },
147
+ "then": {
148
+ "type": "askAgent",
149
+ "prompt": "Read the README.md and CONTRIBUTING.md to understand the project structure and coding conventions."
150
+ }
151
+ },
152
+ {
153
+ "name": "Security Check",
154
+ "description": "Reviews tool calls for security concerns",
155
+ "version": "1",
156
+ "when": {
157
+ "type": "preToolUse"
158
+ },
159
+ "then": {
160
+ "type": "askAgent",
161
+ "prompt": "Review this tool call for potential security issues. Block if it accesses sensitive files or runs dangerous commands."
162
+ }
163
+ }
164
+ ]
165
+ }
@@ -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
+ }