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.
Files changed (71) hide show
  1. {devloop-0.3.0 → devloop-0.3.1}/PKG-INFO +1 -1
  2. {devloop-0.3.0 → devloop-0.3.1}/pyproject.toml +2 -1
  3. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/__init__.py +1 -1
  4. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/type_checker.py +0 -1
  5. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/main.py +22 -0
  6. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/pyodide_installer.py +1 -1
  7. devloop-0.3.1/src/devloop/cli/templates/claude_commands/README.md +73 -0
  8. devloop-0.3.1/src/devloop/cli/templates/claude_commands/agent-summary.md +17 -0
  9. devloop-0.3.1/src/devloop/cli/templates/claude_commands/devloop-findings.md +20 -0
  10. devloop-0.3.1/src/devloop/cli/templates/claude_commands/devloop-status.md +12 -0
  11. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/cgroups_helper.py +3 -3
  12. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/no_sandbox.py +0 -1
  13. {devloop-0.3.0 → devloop-0.3.1}/LICENSE +0 -0
  14. {devloop-0.3.0 → devloop-0.3.1}/README.md +0 -0
  15. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/__init__.py +0 -0
  16. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/agent_health_monitor.py +0 -0
  17. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/ci_monitor.py +0 -0
  18. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/code_rabbit.py +0 -0
  19. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/doc_lifecycle.py +0 -0
  20. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/echo.py +0 -0
  21. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/file_logger.py +0 -0
  22. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/formatter.py +0 -0
  23. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/git_commit_assistant.py +0 -0
  24. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/linter.py +0 -0
  25. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/performance_profiler.py +0 -0
  26. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/sandbox_helper.py +0 -0
  27. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/security_scanner.py +0 -0
  28. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/snyk.py +0 -0
  29. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/agents/test_runner.py +0 -0
  30. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/__init__.py +0 -0
  31. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/__init__.py +0 -0
  32. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/custom_agents.py +0 -0
  33. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/feedback.py +0 -0
  34. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/commands/summary.py +0 -0
  35. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/cli/main_v1.py +0 -0
  36. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/__init__.py +0 -0
  37. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/base.py +0 -0
  38. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/filesystem.py +0 -0
  39. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/git.py +0 -0
  40. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/manager.py +0 -0
  41. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/process.py +0 -0
  42. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/collectors/system.py +0 -0
  43. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/__init__.py +0 -0
  44. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/agent.py +0 -0
  45. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/agent_template.py +0 -0
  46. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/amp_integration.py +0 -0
  47. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/auto_fix.py +0 -0
  48. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/config.py +0 -0
  49. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/context.py +0 -0
  50. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/context_store.py +0 -0
  51. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/contextual_feedback.py +0 -0
  52. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/custom_agent.py +0 -0
  53. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/debug_trace.py +0 -0
  54. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/event.py +0 -0
  55. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/event_store.py +0 -0
  56. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/feedback.py +0 -0
  57. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/learning.py +0 -0
  58. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/manager.py +0 -0
  59. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/operational_health.py +0 -0
  60. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/performance.py +0 -0
  61. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/proactive_feedback.py +0 -0
  62. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/summary_formatter.py +0 -0
  63. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/core/summary_generator.py +0 -0
  64. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/__init__.py +0 -0
  65. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/audit_logger.py +0 -0
  66. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/bubblewrap_sandbox.py +0 -0
  67. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/factory.py +0 -0
  68. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/package.json +0 -0
  69. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/pyodide_runner.js +0 -0
  70. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/pyodide_sandbox.py +0 -0
  71. {devloop-0.3.0 → devloop-0.3.1}/src/devloop/security/sandbox.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devloop
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Intelligent background agents for development workflow automation
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "devloop"
3
- version = "0.3.0"
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]
@@ -1,3 +1,3 @@
1
1
  """DevLoop - Background agents for development workflow automation."""
2
2
 
3
- __version__ = "0.2.2"
3
+ __version__ = "0.3.1"
@@ -177,7 +177,6 @@ class TypeCheckerAgent(Agent):
177
177
  """Run MyPy type checker."""
178
178
  try:
179
179
  # Check if mypy is available
180
- import asyncio
181
180
 
182
181
  check_result = await self.sandbox.run_sandboxed(
183
182
  [sys.executable, "-c", "import mypy"],
@@ -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(f"\n[cyan]Pyodide WASM Sandbox Setup[/cyan]")
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, Tuple
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
- cpu_usage_usec = 0
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
- cpu_usage_usec = int(line.split()[1])
203
+ _cpu_usage_usec = int(line.split()[1])
204
204
  break
205
205
 
206
206
  # Convert to percentage (simplified - would need delta over time)
@@ -11,7 +11,6 @@ from pathlib import Path
11
11
  from typing import Dict, List, Optional
12
12
 
13
13
  from devloop.security.sandbox import (
14
- SandboxConfig,
15
14
  SandboxExecutor,
16
15
  SandboxResult,
17
16
  SandboxTimeoutError,
File without changes
File without changes