claude-mpm 3.3.0__py3-none-any.whl → 3.4.0__py3-none-any.whl
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.
- claude_mpm/agents/templates/data_engineer.json +1 -1
- claude_mpm/agents/templates/documentation.json +1 -1
- claude_mpm/agents/templates/engineer.json +1 -1
- claude_mpm/agents/templates/ops.json +1 -1
- claude_mpm/agents/templates/pm.json +1 -1
- claude_mpm/agents/templates/qa.json +1 -1
- claude_mpm/agents/templates/research.json +1 -1
- claude_mpm/agents/templates/security.json +1 -1
- claude_mpm/agents/templates/test_integration.json +112 -0
- claude_mpm/agents/templates/version_control.json +1 -1
- claude_mpm/cli/commands/memory.py +749 -26
- claude_mpm/cli/commands/run.py +115 -14
- claude_mpm/cli/parser.py +89 -1
- claude_mpm/constants.py +6 -0
- claude_mpm/core/claude_runner.py +74 -11
- claude_mpm/core/config.py +1 -1
- claude_mpm/core/session_manager.py +46 -0
- claude_mpm/core/simple_runner.py +74 -11
- claude_mpm/hooks/builtin/mpm_command_hook.py +5 -5
- claude_mpm/hooks/claude_hooks/hook_handler.py +213 -30
- claude_mpm/hooks/claude_hooks/hook_wrapper.sh +9 -2
- claude_mpm/hooks/memory_integration_hook.py +51 -5
- claude_mpm/services/__init__.py +23 -5
- claude_mpm/services/agent_memory_manager.py +800 -71
- claude_mpm/services/memory_builder.py +823 -0
- claude_mpm/services/memory_optimizer.py +619 -0
- claude_mpm/services/memory_router.py +445 -0
- claude_mpm/services/project_analyzer.py +771 -0
- claude_mpm/services/socketio_server.py +649 -45
- claude_mpm/services/version_control/git_operations.py +26 -0
- claude_mpm-3.4.0.dist-info/METADATA +183 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/RECORD +36 -52
- claude_mpm/agents/agent-template.yaml +0 -83
- claude_mpm/agents/templates/test-integration-agent.md +0 -34
- claude_mpm/agents/test_fix_deployment/.claude-pm/config/project.json +0 -6
- claude_mpm/cli/README.md +0 -109
- claude_mpm/cli_module/refactoring_guide.md +0 -253
- claude_mpm/core/agent_registry.py.bak +0 -312
- claude_mpm/core/base_service.py.bak +0 -406
- claude_mpm/core/websocket_handler.py +0 -233
- claude_mpm/hooks/README.md +0 -97
- claude_mpm/orchestration/SUBPROCESS_DESIGN.md +0 -66
- claude_mpm/schemas/README_SECURITY.md +0 -92
- claude_mpm/schemas/agent_schema.json +0 -395
- claude_mpm/schemas/agent_schema_documentation.md +0 -181
- claude_mpm/schemas/agent_schema_security_notes.md +0 -165
- claude_mpm/schemas/examples/standard_workflow.json +0 -505
- claude_mpm/schemas/ticket_workflow_documentation.md +0 -482
- claude_mpm/schemas/ticket_workflow_schema.json +0 -590
- claude_mpm/services/framework_claude_md_generator/README.md +0 -92
- claude_mpm/services/parent_directory_manager/README.md +0 -83
- claude_mpm/services/version_control/VERSION +0 -1
- claude_mpm/services/websocket_server.py +0 -376
- claude_mpm-3.3.0.dist-info/METADATA +0 -432
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/WHEEL +0 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/entry_points.txt +0 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-3.3.0.dist-info → claude_mpm-3.4.0.dist-info}/top_level.txt +0 -0
claude_mpm/hooks/README.md
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Claude Code Hooks System
|
|
2
|
-
|
|
3
|
-
This directory contains the Claude Code hook integration for claude-mpm.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The hook system allows claude-mpm to intercept and handle commands typed in Claude Code, particularly the `/mpm` commands.
|
|
8
|
-
|
|
9
|
-
## Structure
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
hooks/
|
|
13
|
-
├── claude_hooks/ # Claude Code hook implementation
|
|
14
|
-
│ ├── hook_handler.py # Main Python handler that processes events
|
|
15
|
-
│ └── hook_wrapper.sh # Shell wrapper script (this is what gets installed in ~/.claude/settings.json)
|
|
16
|
-
└── builtin/ # Legacy internal hooks (deprecated)
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Claude Code Hooks
|
|
20
|
-
|
|
21
|
-
The Claude Code hooks are the primary integration point between claude-mpm and Claude Code. They allow:
|
|
22
|
-
|
|
23
|
-
- Intercepting `/mpm` commands before they reach the LLM
|
|
24
|
-
- Providing custom responses and actions
|
|
25
|
-
- Blocking LLM processing when appropriate
|
|
26
|
-
|
|
27
|
-
### Installation
|
|
28
|
-
|
|
29
|
-
To install the Claude Code hooks:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
python scripts/install_hooks.py
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
This will:
|
|
36
|
-
1. Create/update `~/.claude/settings.json` with hook configuration
|
|
37
|
-
2. Point to the `hook_wrapper.sh` script
|
|
38
|
-
3. Copy any custom commands to `~/.claude/commands/`
|
|
39
|
-
|
|
40
|
-
### How It Works
|
|
41
|
-
|
|
42
|
-
1. When you type in Claude Code, it triggers hook events
|
|
43
|
-
2. Claude Code calls `hook_wrapper.sh` (the path in `~/.claude/settings.json`)
|
|
44
|
-
3. The wrapper script:
|
|
45
|
-
- Detects if it's running from a local dev environment, npm, or PyPI installation
|
|
46
|
-
- Activates the appropriate Python environment
|
|
47
|
-
- Runs `hook_handler.py` with the event data
|
|
48
|
-
4. The handler processes various event types:
|
|
49
|
-
- **UserPromptSubmit**: Checks if the prompt starts with `/mpm` and handles commands
|
|
50
|
-
- **PreToolUse**: Logs tool usage before execution
|
|
51
|
-
- **PostToolUse**: Logs tool results after execution
|
|
52
|
-
- **Stop**: Logs when a session or task stops
|
|
53
|
-
- **SubagentStop**: Logs when a subagent completes with agent type and ID
|
|
54
|
-
5. For `/mpm` commands, it returns exit code 2 to block LLM processing
|
|
55
|
-
6. All events are logged to project-specific log files in `.claude-mpm/logs/`
|
|
56
|
-
|
|
57
|
-
### Available Commands
|
|
58
|
-
|
|
59
|
-
- `/mpm` - Show help and available commands
|
|
60
|
-
- `/mpm status` - Show claude-mpm status and environment
|
|
61
|
-
- `/mpm help` - Show detailed help
|
|
62
|
-
|
|
63
|
-
### Debugging
|
|
64
|
-
|
|
65
|
-
To enable debug logging for hooks:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
export CLAUDE_MPM_LOG_LEVEL=DEBUG
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Then run Claude Code from that terminal. Hook events will be logged to `~/.claude-mpm/logs/`.
|
|
72
|
-
|
|
73
|
-
## Legacy Hook System (Deprecated)
|
|
74
|
-
|
|
75
|
-
The `builtin/` directory contains the old internal hook system that was designed for JSON-RPC based hooks. This system is deprecated and will be removed in a future version. All hook functionality is now handled through the Claude Code hooks.
|
|
76
|
-
|
|
77
|
-
## Development
|
|
78
|
-
|
|
79
|
-
To add new `/mpm` commands:
|
|
80
|
-
|
|
81
|
-
1. Edit `hook_handler.py` to handle the new command
|
|
82
|
-
2. Update the help text in the `handle_mpm_help()` function
|
|
83
|
-
3. Test by running Claude Code with the new command
|
|
84
|
-
|
|
85
|
-
## Exit Codes
|
|
86
|
-
|
|
87
|
-
The hook system uses specific exit codes:
|
|
88
|
-
|
|
89
|
-
- `0` - Success, continue normal processing
|
|
90
|
-
- `2` - Block LLM processing (command was handled)
|
|
91
|
-
- Other - Error occurred
|
|
92
|
-
|
|
93
|
-
## Environment Variables
|
|
94
|
-
|
|
95
|
-
- `CLAUDE_MPM_LOG_LEVEL` - Set to DEBUG for detailed logging
|
|
96
|
-
- `HOOK_EVENT_TYPE` - Set by Claude Code (UserPromptSubmit, PreToolUse, PostToolUse)
|
|
97
|
-
- `HOOK_DATA` - JSON data from Claude Code with event details
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Subprocess Orchestration Design
|
|
2
|
-
|
|
3
|
-
## Problem
|
|
4
|
-
Claude's `--print` mode times out when generating code or using tools, making subprocess orchestration in non-interactive mode impractical.
|
|
5
|
-
|
|
6
|
-
## Findings
|
|
7
|
-
|
|
8
|
-
### Interactive Mode (Working)
|
|
9
|
-
- Claude uses built-in Task tool
|
|
10
|
-
- Creates real subprocesses with ~11.4k tokens each
|
|
11
|
-
- Runs in parallel with independent timing
|
|
12
|
-
- Each subprocess gets framework context
|
|
13
|
-
|
|
14
|
-
### Non-Interactive Mode Issues
|
|
15
|
-
- `claude --print` works for simple queries (e.g., "What is 2+2?" in ~4s)
|
|
16
|
-
- Times out for any code generation or complex tasks
|
|
17
|
-
- Debug shows Claude is working but tool usage adds overhead
|
|
18
|
-
- Requires `--dangerously-skip-permissions` flag to run
|
|
19
|
-
|
|
20
|
-
## Alternative Approaches
|
|
21
|
-
|
|
22
|
-
### 1. Use Claude's Conversation API
|
|
23
|
-
Instead of `--print`, use conversation management:
|
|
24
|
-
```bash
|
|
25
|
-
# Start conversation
|
|
26
|
-
claude --model opus -c "conversation_id" < prompt.txt
|
|
27
|
-
|
|
28
|
-
# Continue conversation
|
|
29
|
-
claude --continue conversation_id < next_prompt.txt
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 2. Use Interactive Mode with Expect
|
|
33
|
-
Use expect/pexpect to control interactive Claude sessions programmatically.
|
|
34
|
-
|
|
35
|
-
### 3. Mock Subprocess Mode
|
|
36
|
-
For testing/development:
|
|
37
|
-
- Detect delegations in PM response
|
|
38
|
-
- Show subprocess-like output
|
|
39
|
-
- But don't actually create subprocesses
|
|
40
|
-
|
|
41
|
-
### 4. Direct API Integration
|
|
42
|
-
Skip CLI entirely and use Claude's API directly (if available).
|
|
43
|
-
|
|
44
|
-
## Implementation Status
|
|
45
|
-
|
|
46
|
-
### Completed
|
|
47
|
-
1. ✅ SubprocessOrchestrator class with full functionality
|
|
48
|
-
2. ✅ Delegation detection for multiple formats
|
|
49
|
-
3. ✅ Parallel subprocess execution framework
|
|
50
|
-
4. ✅ Agent-specific prompt generation
|
|
51
|
-
5. ✅ CLI integration via `--subprocess` flag
|
|
52
|
-
6. ✅ Fixed command flags for permissions
|
|
53
|
-
|
|
54
|
-
### Current Status
|
|
55
|
-
- Implementation is complete but blocked by Claude CLI limitations
|
|
56
|
-
- Use interactive mode for real subprocess orchestration
|
|
57
|
-
- Keep implementation for future when Claude print mode improves
|
|
58
|
-
|
|
59
|
-
## Delegation Detection Patterns
|
|
60
|
-
|
|
61
|
-
The PM uses these formats:
|
|
62
|
-
- `**Engineer Agent**: Create a function...`
|
|
63
|
-
- `**QA**: Write tests for...`
|
|
64
|
-
- `I'll delegate this to the Engineer agent...`
|
|
65
|
-
|
|
66
|
-
We can parse these and show subprocess-style output even without real subprocesses.
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Agent Schema Security Guide
|
|
2
|
-
|
|
3
|
-
## Critical Security Notice
|
|
4
|
-
|
|
5
|
-
**This schema is a SECURITY BOUNDARY.** Any changes to agent_schema.json must be carefully reviewed for security implications.
|
|
6
|
-
|
|
7
|
-
## Security Controls in agent_schema.json
|
|
8
|
-
|
|
9
|
-
### 1. Field Validation
|
|
10
|
-
- **agent_id**: Pattern `^[a-z][a-z0-9_]*$` prevents path traversal and command injection
|
|
11
|
-
- **version fields**: Semantic versioning pattern prevents version injection
|
|
12
|
-
- **enums**: All enums are allowlists preventing arbitrary values
|
|
13
|
-
|
|
14
|
-
### 2. Size Limits
|
|
15
|
-
- **instructions**: 8000 char max prevents memory exhaustion
|
|
16
|
-
- **name**: 50 char max prevents UI breaking
|
|
17
|
-
- **description**: 200 char max prevents storage abuse
|
|
18
|
-
- **tags**: max 10 items prevents array bombing
|
|
19
|
-
|
|
20
|
-
### 3. Resource Limits by Tier
|
|
21
|
-
```
|
|
22
|
-
intensive: memory: 4096-8192MB, cpu: 60-100%, timeout: 600-3600s
|
|
23
|
-
standard: memory: 2048-4096MB, cpu: 30-60%, timeout: 300-1200s
|
|
24
|
-
lightweight: memory: 512-2048MB, cpu: 10-30%, timeout: 30-600s
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### 4. Tool Security Matrix
|
|
28
|
-
|
|
29
|
-
| Tool Combination | Risk Level | Security Impact |
|
|
30
|
-
|-----------------|------------|-----------------|
|
|
31
|
-
| Bash + Write | CRITICAL | Arbitrary code execution |
|
|
32
|
-
| docker + kubectl | HIGH | Container escape potential |
|
|
33
|
-
| aws + gcloud + azure | HIGH | Multi-cloud attack surface |
|
|
34
|
-
| WebFetch + Write | MEDIUM | Data exfiltration risk |
|
|
35
|
-
| Read + network_access | MEDIUM | Information disclosure |
|
|
36
|
-
|
|
37
|
-
### 5. Required Security Reviews
|
|
38
|
-
|
|
39
|
-
Any PR modifying agent_schema.json MUST include:
|
|
40
|
-
1. Security impact assessment
|
|
41
|
-
2. Validation that no new fields bypass security controls
|
|
42
|
-
3. Test cases for new validation rules
|
|
43
|
-
4. Update to this security guide if needed
|
|
44
|
-
|
|
45
|
-
### 6. Security Checklist for Schema Changes
|
|
46
|
-
|
|
47
|
-
- [ ] No new fields allow arbitrary string input without validation
|
|
48
|
-
- [ ] All new arrays have maxItems limits
|
|
49
|
-
- [ ] All new strings have maxLength limits
|
|
50
|
-
- [ ] New enum values are reviewed for security impact
|
|
51
|
-
- [ ] Resource limits maintain tier boundaries
|
|
52
|
-
- [ ] No new fields can bypass additionalProperties: false
|
|
53
|
-
- [ ] Pattern validations prevent injection attacks
|
|
54
|
-
- [ ] Default values follow principle of least privilege
|
|
55
|
-
|
|
56
|
-
## Common Security Mistakes to Avoid
|
|
57
|
-
|
|
58
|
-
1. **Never** add fields that accept arbitrary file paths without validation
|
|
59
|
-
2. **Never** increase resource limits without security review
|
|
60
|
-
3. **Never** add tools that bypass the enum list
|
|
61
|
-
4. **Never** remove pattern validation from ID fields
|
|
62
|
-
5. **Never** set additionalProperties to true
|
|
63
|
-
6. **Always** default network_access to false
|
|
64
|
-
7. **Always** validate new tool combinations for security impact
|
|
65
|
-
|
|
66
|
-
## Security Testing
|
|
67
|
-
|
|
68
|
-
Run these tests after any schema change:
|
|
69
|
-
```bash
|
|
70
|
-
# Validate schema structure
|
|
71
|
-
python scripts/validate_agent_schema.py
|
|
72
|
-
|
|
73
|
-
# Test security boundaries
|
|
74
|
-
python tests/test_agent_security_boundaries.py
|
|
75
|
-
|
|
76
|
-
# Check for injection vulnerabilities
|
|
77
|
-
python tests/test_agent_validation_security.py
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Incident Response
|
|
81
|
-
|
|
82
|
-
If a security vulnerability is found in the schema:
|
|
83
|
-
1. Immediately add validation in agent_validator.py as a hotfix
|
|
84
|
-
2. Update schema to prevent the vulnerability
|
|
85
|
-
3. Audit all existing agents for exploitation
|
|
86
|
-
4. Document the vulnerability and fix in security log
|
|
87
|
-
|
|
88
|
-
## Security Contacts
|
|
89
|
-
|
|
90
|
-
- Security reviews: security-team@company.com
|
|
91
|
-
- Vulnerability reports: security@company.com
|
|
92
|
-
- Emergency response: security-oncall@company.com
|
|
@@ -1,395 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"version": "1.2.0",
|
|
4
|
-
"title": "Claude MPM Agent Schema",
|
|
5
|
-
"description": "Schema definition for Claude MPM agent templates. This schema enforces the structure and validation rules for all agent configurations in the Claude MPM system.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": [
|
|
8
|
-
"schema_version",
|
|
9
|
-
"agent_id",
|
|
10
|
-
"agent_version",
|
|
11
|
-
"agent_type",
|
|
12
|
-
"metadata",
|
|
13
|
-
"capabilities",
|
|
14
|
-
"instructions"
|
|
15
|
-
],
|
|
16
|
-
"properties": {
|
|
17
|
-
"schema_version": {
|
|
18
|
-
"type": "string",
|
|
19
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
20
|
-
"description": "Schema version for the agent template format. This ensures compatibility between the agent template and the schema validator. Must be updated when breaking changes are made to the schema.",
|
|
21
|
-
"examples": ["1.0.0", "1.2.0"]
|
|
22
|
-
},
|
|
23
|
-
"agent_id": {
|
|
24
|
-
"type": "string",
|
|
25
|
-
"pattern": "^[a-z][a-z0-9_]*$",
|
|
26
|
-
"description": "Unique agent identifier used for agent discovery and loading. This ID must be unique across all agents in the system and follows snake_case naming convention.",
|
|
27
|
-
"examples": ["research_agent", "engineer_agent", "qa_agent", "security_agent"]
|
|
28
|
-
},
|
|
29
|
-
"agent_version": {
|
|
30
|
-
"type": "string",
|
|
31
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
32
|
-
"description": "Semantic version of the agent template itself (not the schema). Increment major for breaking changes, minor for new features, patch for bug fixes.",
|
|
33
|
-
"examples": ["1.0.0", "2.1.3"]
|
|
34
|
-
},
|
|
35
|
-
"agent_type": {
|
|
36
|
-
"type": "string",
|
|
37
|
-
"description": "Type of agent that determines its primary function and default capabilities. This categorization helps in agent discovery and capability matching.",
|
|
38
|
-
"enum": [
|
|
39
|
-
"base",
|
|
40
|
-
"engineer",
|
|
41
|
-
"qa",
|
|
42
|
-
"documentation",
|
|
43
|
-
"research",
|
|
44
|
-
"security",
|
|
45
|
-
"ops",
|
|
46
|
-
"data_engineer",
|
|
47
|
-
"version_control"
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
"metadata": {
|
|
51
|
-
"type": "object",
|
|
52
|
-
"required": [
|
|
53
|
-
"name",
|
|
54
|
-
"description",
|
|
55
|
-
"tags"
|
|
56
|
-
],
|
|
57
|
-
"properties": {
|
|
58
|
-
"name": {
|
|
59
|
-
"type": "string",
|
|
60
|
-
"minLength": 3,
|
|
61
|
-
"maxLength": 50,
|
|
62
|
-
"description": "Human-readable agent name displayed in UI and logs. Should be concise but descriptive."
|
|
63
|
-
},
|
|
64
|
-
"description": {
|
|
65
|
-
"type": "string",
|
|
66
|
-
"minLength": 10,
|
|
67
|
-
"maxLength": 200,
|
|
68
|
-
"description": "Brief description of agent purpose and capabilities. Used in agent selection and documentation."
|
|
69
|
-
},
|
|
70
|
-
"category": {
|
|
71
|
-
"type": "string",
|
|
72
|
-
"enum": ["engineering", "research", "quality", "operations", "specialized"],
|
|
73
|
-
"description": "Agent category for organization"
|
|
74
|
-
},
|
|
75
|
-
"tags": {
|
|
76
|
-
"type": "array",
|
|
77
|
-
"items": {
|
|
78
|
-
"type": "string",
|
|
79
|
-
"pattern": "^[a-z][a-z0-9-]*$"
|
|
80
|
-
},
|
|
81
|
-
"minItems": 1,
|
|
82
|
-
"maxItems": 10,
|
|
83
|
-
"uniqueItems": true,
|
|
84
|
-
"description": "Tags for agent discovery and categorization. Used by the agent registry for searching and filtering."
|
|
85
|
-
},
|
|
86
|
-
"author": {
|
|
87
|
-
"type": "string",
|
|
88
|
-
"description": "Agent template author"
|
|
89
|
-
},
|
|
90
|
-
"created_at": {
|
|
91
|
-
"type": "string",
|
|
92
|
-
"format": "date-time",
|
|
93
|
-
"description": "Creation timestamp"
|
|
94
|
-
},
|
|
95
|
-
"updated_at": {
|
|
96
|
-
"type": "string",
|
|
97
|
-
"format": "date-time",
|
|
98
|
-
"description": "Last update timestamp"
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
"capabilities": {
|
|
103
|
-
"type": "object",
|
|
104
|
-
"required": [
|
|
105
|
-
"model",
|
|
106
|
-
"tools",
|
|
107
|
-
"resource_tier"
|
|
108
|
-
],
|
|
109
|
-
"properties": {
|
|
110
|
-
"model": {
|
|
111
|
-
"type": "string",
|
|
112
|
-
"enum": [
|
|
113
|
-
"claude-3-haiku-20240307",
|
|
114
|
-
"claude-3-5-haiku-20241022",
|
|
115
|
-
"claude-3-sonnet-20240229",
|
|
116
|
-
"claude-3-5-sonnet-20241022",
|
|
117
|
-
"claude-3-5-sonnet-20240620",
|
|
118
|
-
"claude-sonnet-4-20250514",
|
|
119
|
-
"claude-4-sonnet-20250514",
|
|
120
|
-
"claude-3-opus-20240229",
|
|
121
|
-
"claude-opus-4-20250514",
|
|
122
|
-
"claude-4-opus-20250514"
|
|
123
|
-
],
|
|
124
|
-
"description": "Claude model to use for this agent. Choose based on task complexity and performance requirements."
|
|
125
|
-
},
|
|
126
|
-
"tools": {
|
|
127
|
-
"type": "array",
|
|
128
|
-
"items": {
|
|
129
|
-
"type": "string",
|
|
130
|
-
"enum": [
|
|
131
|
-
"Read",
|
|
132
|
-
"Write",
|
|
133
|
-
"Edit",
|
|
134
|
-
"MultiEdit",
|
|
135
|
-
"Grep",
|
|
136
|
-
"Glob",
|
|
137
|
-
"LS",
|
|
138
|
-
"Bash",
|
|
139
|
-
"WebSearch",
|
|
140
|
-
"WebFetch",
|
|
141
|
-
"NotebookRead",
|
|
142
|
-
"NotebookEdit",
|
|
143
|
-
"TodoWrite",
|
|
144
|
-
"ExitPlanMode",
|
|
145
|
-
"git",
|
|
146
|
-
"docker",
|
|
147
|
-
"kubectl",
|
|
148
|
-
"terraform",
|
|
149
|
-
"aws",
|
|
150
|
-
"gcloud",
|
|
151
|
-
"azure"
|
|
152
|
-
]
|
|
153
|
-
},
|
|
154
|
-
"uniqueItems": true,
|
|
155
|
-
"description": "Available tools for the agent. Tools determine what operations the agent can perform."
|
|
156
|
-
},
|
|
157
|
-
"resource_tier": {
|
|
158
|
-
"type": "string",
|
|
159
|
-
"enum": [
|
|
160
|
-
"basic",
|
|
161
|
-
"standard",
|
|
162
|
-
"intensive",
|
|
163
|
-
"lightweight"
|
|
164
|
-
],
|
|
165
|
-
"description": "Resource allocation tier that determines memory, CPU, and timeout limits. See definitions section for specific limits."
|
|
166
|
-
},
|
|
167
|
-
"max_tokens": {
|
|
168
|
-
"type": "integer",
|
|
169
|
-
"minimum": 1000,
|
|
170
|
-
"maximum": 200000,
|
|
171
|
-
"default": 8192,
|
|
172
|
-
"description": "Maximum tokens for response generation. Higher values allow longer responses but increase cost and latency."
|
|
173
|
-
},
|
|
174
|
-
"temperature": {
|
|
175
|
-
"type": "number",
|
|
176
|
-
"minimum": 0,
|
|
177
|
-
"maximum": 1,
|
|
178
|
-
"default": 0.7,
|
|
179
|
-
"description": "Model temperature setting controlling response randomness. Lower values for consistency, higher for creativity."
|
|
180
|
-
},
|
|
181
|
-
"timeout": {
|
|
182
|
-
"type": "integer",
|
|
183
|
-
"minimum": 30,
|
|
184
|
-
"maximum": 3600,
|
|
185
|
-
"default": 300,
|
|
186
|
-
"description": "Operation timeout in seconds. Should align with resource_tier settings."
|
|
187
|
-
},
|
|
188
|
-
"memory_limit": {
|
|
189
|
-
"type": "integer",
|
|
190
|
-
"minimum": 512,
|
|
191
|
-
"maximum": 8192,
|
|
192
|
-
"description": "Memory limit in MB (for resource tier)"
|
|
193
|
-
},
|
|
194
|
-
"cpu_limit": {
|
|
195
|
-
"type": "integer",
|
|
196
|
-
"minimum": 10,
|
|
197
|
-
"maximum": 100,
|
|
198
|
-
"description": "CPU limit percentage (for resource tier)"
|
|
199
|
-
},
|
|
200
|
-
"network_access": {
|
|
201
|
-
"type": "boolean",
|
|
202
|
-
"default": false,
|
|
203
|
-
"description": "Whether agent needs network access"
|
|
204
|
-
},
|
|
205
|
-
"file_access": {
|
|
206
|
-
"type": "object",
|
|
207
|
-
"properties": {
|
|
208
|
-
"read_paths": {
|
|
209
|
-
"type": "array",
|
|
210
|
-
"items": {"type": "string"},
|
|
211
|
-
"description": "Allowed read paths"
|
|
212
|
-
},
|
|
213
|
-
"write_paths": {
|
|
214
|
-
"type": "array",
|
|
215
|
-
"items": {"type": "string"},
|
|
216
|
-
"description": "Allowed write paths"
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
"allowed_tools": {
|
|
221
|
-
"type": "array",
|
|
222
|
-
"items": {"type": "string"},
|
|
223
|
-
"description": "Glob patterns for allowed file paths. Restricts which files the agent can access (e.g., 'tests/**' for test files only)."
|
|
224
|
-
},
|
|
225
|
-
"disallowed_tools": {
|
|
226
|
-
"type": "array",
|
|
227
|
-
"items": {"type": "string"},
|
|
228
|
-
"description": "Tool names to explicitly disallow, overriding the tools array. Use for security restrictions (e.g., 'Bash' to prevent shell access)."
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
|
-
"instructions": {
|
|
233
|
-
"type": "string",
|
|
234
|
-
"minLength": 100,
|
|
235
|
-
"maxLength": 8000,
|
|
236
|
-
"description": "Agent system instructions that define behavior, approach, and constraints. This becomes the agent's system prompt."
|
|
237
|
-
},
|
|
238
|
-
"knowledge": {
|
|
239
|
-
"type": "object",
|
|
240
|
-
"description": "Agent-specific knowledge and context",
|
|
241
|
-
"properties": {
|
|
242
|
-
"domain_expertise": {
|
|
243
|
-
"type": "array",
|
|
244
|
-
"items": {"type": "string"},
|
|
245
|
-
"description": "Areas of expertise"
|
|
246
|
-
},
|
|
247
|
-
"best_practices": {
|
|
248
|
-
"type": "array",
|
|
249
|
-
"items": {"type": "string"},
|
|
250
|
-
"description": "Best practices the agent follows"
|
|
251
|
-
},
|
|
252
|
-
"constraints": {
|
|
253
|
-
"type": "array",
|
|
254
|
-
"items": {"type": "string"},
|
|
255
|
-
"description": "Operating constraints"
|
|
256
|
-
},
|
|
257
|
-
"examples": {
|
|
258
|
-
"type": "array",
|
|
259
|
-
"items": {
|
|
260
|
-
"type": "object",
|
|
261
|
-
"properties": {
|
|
262
|
-
"scenario": {"type": "string"},
|
|
263
|
-
"approach": {"type": "string"}
|
|
264
|
-
}
|
|
265
|
-
},
|
|
266
|
-
"description": "Example scenarios and approaches"
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
},
|
|
270
|
-
"interactions": {
|
|
271
|
-
"type": "object",
|
|
272
|
-
"description": "Agent interaction patterns",
|
|
273
|
-
"properties": {
|
|
274
|
-
"input_format": {
|
|
275
|
-
"type": "object",
|
|
276
|
-
"properties": {
|
|
277
|
-
"required_fields": {
|
|
278
|
-
"type": "array",
|
|
279
|
-
"items": {"type": "string"}
|
|
280
|
-
},
|
|
281
|
-
"optional_fields": {
|
|
282
|
-
"type": "array",
|
|
283
|
-
"items": {"type": "string"}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
"output_format": {
|
|
288
|
-
"type": "object",
|
|
289
|
-
"properties": {
|
|
290
|
-
"structure": {
|
|
291
|
-
"type": "string",
|
|
292
|
-
"enum": ["markdown", "json", "structured", "free-form"]
|
|
293
|
-
},
|
|
294
|
-
"includes": {
|
|
295
|
-
"type": "array",
|
|
296
|
-
"items": {"type": "string"}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
},
|
|
300
|
-
"handoff_agents": {
|
|
301
|
-
"type": "array",
|
|
302
|
-
"items": {"type": "string"},
|
|
303
|
-
"description": "Agents this agent can hand off to"
|
|
304
|
-
},
|
|
305
|
-
"triggers": {
|
|
306
|
-
"type": "array",
|
|
307
|
-
"items": {
|
|
308
|
-
"type": "object",
|
|
309
|
-
"properties": {
|
|
310
|
-
"condition": {"type": "string"},
|
|
311
|
-
"action": {"type": "string"}
|
|
312
|
-
}
|
|
313
|
-
},
|
|
314
|
-
"description": "Conditions that trigger specific actions"
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
},
|
|
318
|
-
"testing": {
|
|
319
|
-
"type": "object",
|
|
320
|
-
"description": "Testing configuration for the agent",
|
|
321
|
-
"properties": {
|
|
322
|
-
"test_cases": {
|
|
323
|
-
"type": "array",
|
|
324
|
-
"items": {
|
|
325
|
-
"type": "object",
|
|
326
|
-
"required": ["input", "expected_behavior"],
|
|
327
|
-
"properties": {
|
|
328
|
-
"name": {"type": "string"},
|
|
329
|
-
"input": {"type": "string"},
|
|
330
|
-
"expected_behavior": {"type": "string"},
|
|
331
|
-
"validation_criteria": {
|
|
332
|
-
"type": "array",
|
|
333
|
-
"items": {"type": "string"}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
},
|
|
338
|
-
"performance_benchmarks": {
|
|
339
|
-
"type": "object",
|
|
340
|
-
"properties": {
|
|
341
|
-
"response_time": {"type": "integer"},
|
|
342
|
-
"token_usage": {"type": "integer"},
|
|
343
|
-
"success_rate": {"type": "number"}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
},
|
|
348
|
-
"hooks": {
|
|
349
|
-
"type": "object",
|
|
350
|
-
"description": "Hook configurations for extensibility",
|
|
351
|
-
"properties": {
|
|
352
|
-
"pre_execution": {
|
|
353
|
-
"type": "array",
|
|
354
|
-
"items": {
|
|
355
|
-
"type": "object",
|
|
356
|
-
"properties": {
|
|
357
|
-
"name": {"type": "string"},
|
|
358
|
-
"enabled": {"type": "boolean"}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
},
|
|
362
|
-
"post_execution": {
|
|
363
|
-
"type": "array",
|
|
364
|
-
"items": {
|
|
365
|
-
"type": "object",
|
|
366
|
-
"properties": {
|
|
367
|
-
"name": {"type": "string"},
|
|
368
|
-
"enabled": {"type": "boolean"}
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
},
|
|
375
|
-
"additionalProperties": false,
|
|
376
|
-
"definitions": {
|
|
377
|
-
"resource_tier_limits": {
|
|
378
|
-
"intensive": {
|
|
379
|
-
"memory_limit": {"min": 4096, "max": 8192},
|
|
380
|
-
"cpu_limit": {"min": 60, "max": 100},
|
|
381
|
-
"timeout": {"min": 600, "max": 3600}
|
|
382
|
-
},
|
|
383
|
-
"standard": {
|
|
384
|
-
"memory_limit": {"min": 2048, "max": 4096},
|
|
385
|
-
"cpu_limit": {"min": 30, "max": 60},
|
|
386
|
-
"timeout": {"min": 300, "max": 1200}
|
|
387
|
-
},
|
|
388
|
-
"lightweight": {
|
|
389
|
-
"memory_limit": {"min": 512, "max": 2048},
|
|
390
|
-
"cpu_limit": {"min": 10, "max": 30},
|
|
391
|
-
"timeout": {"min": 30, "max": 600}
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|