devloop 0.3.0__tar.gz → 0.3.1__tar.gz
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.
- {devloop-0.3.0 → devloop-0.3.1}/PKG-INFO +1 -1
- {devloop-0.3.0 → devloop-0.3.1}/pyproject.toml +2 -1
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/__init__.py +1 -1
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/type_checker.py +0 -1
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/main.py +22 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/pyodide_installer.py +1 -1
- devloop-0.3.1/src/devloop/cli/templates/claude_commands/README.md +73 -0
- devloop-0.3.1/src/devloop/cli/templates/claude_commands/agent-summary.md +17 -0
- devloop-0.3.1/src/devloop/cli/templates/claude_commands/devloop-findings.md +20 -0
- devloop-0.3.1/src/devloop/cli/templates/claude_commands/devloop-status.md +12 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/cgroups_helper.py +3 -3
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/no_sandbox.py +0 -1
- {devloop-0.3.0 → devloop-0.3.1}/LICENSE +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/README.md +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/__init__.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/agent_health_monitor.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/ci_monitor.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/code_rabbit.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/doc_lifecycle.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/echo.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/file_logger.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/formatter.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/git_commit_assistant.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/linter.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/performance_profiler.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/sandbox_helper.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/security_scanner.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/snyk.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/test_runner.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/__init__.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/__init__.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/custom_agents.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/feedback.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/summary.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/main_v1.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/__init__.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/base.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/filesystem.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/git.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/manager.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/process.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/system.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/__init__.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/agent.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/agent_template.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/amp_integration.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/auto_fix.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/config.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/context.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/context_store.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/contextual_feedback.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/custom_agent.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/debug_trace.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/event.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/event_store.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/feedback.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/learning.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/manager.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/operational_health.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/performance.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/proactive_feedback.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/summary_formatter.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/summary_generator.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/__init__.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/audit_logger.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/bubblewrap_sandbox.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/factory.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/package.json +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/pyodide_runner.js +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/pyodide_sandbox.py +0 -0
- {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/sandbox.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "devloop"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.1"
|
|
4
4
|
description = "Intelligent background agents for development workflow automation"
|
|
5
5
|
authors = ["DevLoop Contributors <devloop@example.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -36,6 +36,7 @@ packages = [{include = "devloop", from = "src"}]
|
|
|
36
36
|
include = [
|
|
37
37
|
"src/devloop/security/package.json",
|
|
38
38
|
"src/devloop/security/pyodide_runner.js",
|
|
39
|
+
"src/devloop/cli/templates/claude_commands/*.md",
|
|
39
40
|
]
|
|
40
41
|
|
|
41
42
|
[tool.poetry.dependencies]
|
|
@@ -540,6 +540,28 @@ This project uses background agents and Beads for task management.
|
|
|
540
540
|
f"[yellow]Warning:[/yellow] Could not create CLAUDE.md symlink: {e}"
|
|
541
541
|
)
|
|
542
542
|
|
|
543
|
+
# Set up Claude Code slash commands
|
|
544
|
+
claude_commands_dir = path / ".claude" / "commands"
|
|
545
|
+
template_commands_dir = Path(__file__).parent / "templates" / "claude_commands"
|
|
546
|
+
|
|
547
|
+
if template_commands_dir.exists():
|
|
548
|
+
claude_commands_dir.mkdir(parents=True, exist_ok=True)
|
|
549
|
+
|
|
550
|
+
# Copy command templates
|
|
551
|
+
import shutil
|
|
552
|
+
|
|
553
|
+
commands_copied = []
|
|
554
|
+
for template_file in template_commands_dir.glob("*.md"):
|
|
555
|
+
dest_file = claude_commands_dir / template_file.name
|
|
556
|
+
if not dest_file.exists():
|
|
557
|
+
shutil.copy2(template_file, dest_file)
|
|
558
|
+
commands_copied.append(template_file.stem)
|
|
559
|
+
|
|
560
|
+
if commands_copied:
|
|
561
|
+
console.print(f"\n[green]✓[/green] Created Claude Code slash commands:")
|
|
562
|
+
for cmd in commands_copied:
|
|
563
|
+
console.print(f" • /{cmd}")
|
|
564
|
+
|
|
543
565
|
console.print("\n[green]✓[/green] Initialized!")
|
|
544
566
|
console.print("\nNext steps:")
|
|
545
567
|
console.print(f" 1. Review/edit: [cyan]{claude_dir / 'agents.json'}[/cyan]")
|
|
@@ -105,7 +105,7 @@ def prompt_pyodide_installation(non_interactive: bool = False) -> bool:
|
|
|
105
105
|
return True # Not an error, just not available
|
|
106
106
|
|
|
107
107
|
# Node.js is available
|
|
108
|
-
console.print(
|
|
108
|
+
console.print("\n[cyan]Pyodide WASM Sandbox Setup[/cyan]")
|
|
109
109
|
console.print(f" Node.js {node_info} detected")
|
|
110
110
|
console.print(" Pyodide enables cross-platform Python code sandboxing in WASM")
|
|
111
111
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Claude Code Slash Commands
|
|
2
|
+
|
|
3
|
+
This directory contains custom slash commands for Claude Code that integrate with the devloop system.
|
|
4
|
+
|
|
5
|
+
## Available Commands
|
|
6
|
+
|
|
7
|
+
### `/devloop-status`
|
|
8
|
+
|
|
9
|
+
Check if devloop watch is running and show current status.
|
|
10
|
+
|
|
11
|
+
**Usage:**
|
|
12
|
+
```
|
|
13
|
+
/devloop-status
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Output:**
|
|
17
|
+
- Running status (✅ or ❌)
|
|
18
|
+
- Process ID and memory usage
|
|
19
|
+
- Instructions to start if not running
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
### `/agent-summary`
|
|
24
|
+
|
|
25
|
+
Generate an intelligent summary of recent dev-agent findings with operational health metrics.
|
|
26
|
+
|
|
27
|
+
**Usage:**
|
|
28
|
+
```
|
|
29
|
+
/agent-summary
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Output:**
|
|
33
|
+
- System health status
|
|
34
|
+
- Recent agent activity
|
|
35
|
+
- Agent performance metrics
|
|
36
|
+
- Findings breakdown by urgency
|
|
37
|
+
- Actionable insights and recommendations
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### `/devloop-findings`
|
|
42
|
+
|
|
43
|
+
Extract DevLoop findings and automatically create Beads issues for tracking.
|
|
44
|
+
|
|
45
|
+
**Usage:**
|
|
46
|
+
```
|
|
47
|
+
/devloop-findings
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**What it does:**
|
|
51
|
+
1. Scans recent findings (last 24 hours) from `.devloop/context/`
|
|
52
|
+
2. Categorizes by type (formatter, linter, performance, security)
|
|
53
|
+
3. Creates Beads issues with appropriate priorities:
|
|
54
|
+
- Formatter violations (P1) - can break CI
|
|
55
|
+
- Linter errors (P1) - need fixing
|
|
56
|
+
- Performance issues (P2) - nice to have
|
|
57
|
+
4. Links issues to current work automatically
|
|
58
|
+
|
|
59
|
+
**After running:**
|
|
60
|
+
Use `bd ready` to see newly created actionable issues.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## How Slash Commands Work
|
|
65
|
+
|
|
66
|
+
Claude Code slash commands are markdown files that define prompts. When you type `/command-name`, Claude Code expands the prompt from the corresponding markdown file and executes it.
|
|
67
|
+
|
|
68
|
+
## Requirements
|
|
69
|
+
|
|
70
|
+
- Devloop must be installed and watch running
|
|
71
|
+
- Python virtual environment activated
|
|
72
|
+
- Context data available in `.devloop/context/`
|
|
73
|
+
- Beads (`bd`) installed for `/devloop-findings` command
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show intelligent summary of recent dev-agent findings
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Generate a summary of recent devloop agent findings by running:
|
|
6
|
+
```bash
|
|
7
|
+
poetry run devloop summary agent-summary recent
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
The summary should include:
|
|
11
|
+
- System health status
|
|
12
|
+
- Recent agent activity
|
|
13
|
+
- Agent performance metrics
|
|
14
|
+
- Findings breakdown by urgency
|
|
15
|
+
- Actionable insights
|
|
16
|
+
|
|
17
|
+
Present the output in a clear, organized format highlighting any issues that need attention.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extract devloop findings and create Beads issues for tracking
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the findings extraction hook to automatically create Beads issues from recent DevLoop findings:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
./.agents/hooks/extract-findings-to-beads
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
This will:
|
|
12
|
+
1. Scan `.devloop/context/` for recent findings (last 24 hours)
|
|
13
|
+
2. Categorize findings by type (formatter, linter, performance, security)
|
|
14
|
+
3. Create Beads issues for high-priority items:
|
|
15
|
+
- Formatter violations (priority 1) - can break CI
|
|
16
|
+
- Linter errors (priority 1) - need fixing
|
|
17
|
+
- Performance issues (priority 2) - nice to have
|
|
18
|
+
4. Link created issues to the current work
|
|
19
|
+
|
|
20
|
+
After running, show the created issues and suggest running `bd ready` to see what's actionable.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Check if devloop watch is running and show status
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Check the status of devloop watch by running the `./.agents/check-devloop-status` script.
|
|
6
|
+
|
|
7
|
+
Show:
|
|
8
|
+
- Whether devloop watch is running
|
|
9
|
+
- Process ID and memory usage if running
|
|
10
|
+
- Instructions to start it if not running
|
|
11
|
+
|
|
12
|
+
Keep the output concise and actionable.
|
|
@@ -6,7 +6,7 @@ Provides memory and CPU limits for sandboxed processes using Linux cgroups.
|
|
|
6
6
|
import logging
|
|
7
7
|
import subprocess
|
|
8
8
|
from pathlib import Path
|
|
9
|
-
from typing import Optional
|
|
9
|
+
from typing import Optional
|
|
10
10
|
from dataclasses import dataclass
|
|
11
11
|
|
|
12
12
|
|
|
@@ -197,10 +197,10 @@ class CgroupsManager:
|
|
|
197
197
|
# Read CPU usage (simplified - actual usage tracking is complex)
|
|
198
198
|
# cpu.stat contains usage_usec
|
|
199
199
|
cpu_stat = cgroup_path / "cpu.stat"
|
|
200
|
-
|
|
200
|
+
_cpu_usage_usec = 0
|
|
201
201
|
for line in cpu_stat.read_text().strip().split("\n"):
|
|
202
202
|
if line.startswith("usage_usec"):
|
|
203
|
-
|
|
203
|
+
_cpu_usage_usec = int(line.split()[1])
|
|
204
204
|
break
|
|
205
205
|
|
|
206
206
|
# Convert to percentage (simplified - would need delta over time)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|