devhive 0.1.35__tar.gz → 0.1.36__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 (56) hide show
  1. {devhive-0.1.35/devhive.egg-info → devhive-0.1.36}/PKG-INFO +1 -1
  2. {devhive-0.1.35 → devhive-0.1.36/devhive.egg-info}/PKG-INFO +1 -1
  3. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/main.py +56 -4
  4. {devhive-0.1.35 → devhive-0.1.36}/setup.py +1 -1
  5. {devhive-0.1.35 → devhive-0.1.36}/LICENSE +0 -0
  6. {devhive-0.1.35 → devhive-0.1.36}/MANIFEST.in +0 -0
  7. {devhive-0.1.35 → devhive-0.1.36}/README.md +0 -0
  8. {devhive-0.1.35 → devhive-0.1.36}/devhive.egg-info/SOURCES.txt +0 -0
  9. {devhive-0.1.35 → devhive-0.1.36}/devhive.egg-info/dependency_links.txt +0 -0
  10. {devhive-0.1.35 → devhive-0.1.36}/devhive.egg-info/entry_points.txt +0 -0
  11. {devhive-0.1.35 → devhive-0.1.36}/devhive.egg-info/requires.txt +0 -0
  12. {devhive-0.1.35 → devhive-0.1.36}/devhive.egg-info/top_level.txt +0 -0
  13. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/__init__.py +0 -0
  14. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/agents/devhive.md +0 -0
  15. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/architecture-patterns/SKILL.md +0 -0
  16. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/architecture-patterns/resources/implementation-playbook.md +0 -0
  17. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/backend-arthitect/SKILL.md +0 -0
  18. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/backend-security-coder/SKILL.md +0 -0
  19. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/docker-expert/SKILL.md +0 -0
  20. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/frontend-design/SKILL.md +0 -0
  21. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/frontend-developer/SKILL.md +0 -0
  22. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/SKILL.md +0 -0
  23. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/theme-showcase.pdf +0 -0
  24. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/arctic-frost.md +0 -0
  25. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/botanical-garden.md +0 -0
  26. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/desert-rose.md +0 -0
  27. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/forest-canopy.md +0 -0
  28. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/golden-hour.md +0 -0
  29. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/midnight-galaxy.md +0 -0
  30. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/modern-minimalist.md +0 -0
  31. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/ocean-depths.md +0 -0
  32. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/sunset-boulevard.md +0 -0
  33. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/community_skills/theme-factory/themes/tech-innovation.md +0 -0
  34. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_architect/SKILL.md +0 -0
  35. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_auditor/SKILL.md +0 -0
  36. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_backender/SKILL.md +0 -0
  37. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_dba/SKILL.md +0 -0
  38. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_designer/SKILL.md +0 -0
  39. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_devops/SKILL.md +0 -0
  40. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_explorer/SKILL.md +0 -0
  41. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_frontender/SKILL.md +0 -0
  42. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_orchestrator/SKILL.md +0 -0
  43. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_perf/SKILL.md +0 -0
  44. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_prd/SKILL.md +0 -0
  45. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_proposal/SKILL.md +0 -0
  46. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_qa/SKILL.md +0 -0
  47. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_reflection/SKILL.md +0 -0
  48. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_releaser/SKILL.md +0 -0
  49. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_sast/SKILL.md +0 -0
  50. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_taskplanner/SKILL.md +0 -0
  51. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_techwriter/SKILL.md +0 -0
  52. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/skills/devhive_workflow.md +0 -0
  53. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/templates/AGENTS.backend.md +0 -0
  54. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/templates/AGENTS.frontend.md +0 -0
  55. {devhive-0.1.35 → devhive-0.1.36}/devhive_cli/templates_backend.py +0 -0
  56. {devhive-0.1.35 → devhive-0.1.36}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devhive
3
- Version: 0.1.35
3
+ Version: 0.1.36
4
4
  Summary: CLI to manage DevHive skills and autonomous AI agents for OpenCode.
5
5
  Home-page: https://github.com/ramBlanco/devhive
6
6
  Author: ramBlanco
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devhive
3
- Version: 0.1.35
3
+ Version: 0.1.36
4
4
  Summary: CLI to manage DevHive skills and autonomous AI agents for OpenCode.
5
5
  Home-page: https://github.com/ramBlanco/devhive
6
6
  Author: ramBlanco
@@ -1,5 +1,57 @@
1
1
  import os
2
2
  import shutil
3
+
4
+ ZERO_TOUCH_POLICY = """# 🛑 SYSTEM DIRECTIVE: ZERO-TOUCH POLICY (DevHive Enforcement)
5
+ **CRITICAL INSTRUCTION FOR ALL AI AGENTS:**
6
+ This project strictly uses **DevHive (Skill-Driven Development)**. As a general AI agent, you are FORBIDDEN from directly modifying source code, creating files, or writing implementation logic for feature requests.
7
+
8
+ When asked to build a feature, fix a bug, or apply changes, you MUST NOT do it yourself. Instead, your ONLY job is to delegate the task by invoking the DevHive orchestrator.
9
+
10
+ **How to apply changes:**
11
+ If you have access to tool calling, immediately invoke the `devhive` agent or load the `devhive-orchestrator` skill, passing the user's exact request to it. Do not attempt to bypass this pipeline.
12
+
13
+ ---
14
+ """
15
+
16
+
17
+ def handle_existing_agents_md(dest_path: Path) -> bool:
18
+ """
19
+ Handles the case where AGENTS.md already exists.
20
+ Returns True if the caller should proceed to overwrite the file, False otherwise.
21
+ """
22
+ with open(dest_path, "r") as f:
23
+ content = f.read()
24
+
25
+ if "ZERO-TOUCH POLICY" in content:
26
+ click.secho("AGENTS.md already exists and is up to date with DevHive policies.", fg="yellow")
27
+ return False
28
+
29
+ click.secho("⚠️ AGENTS.md already exists, but it is missing the critical DevHive Zero-Touch Policy.", fg="yellow")
30
+ action = click.prompt(
31
+ "Do you want to:
32
+ "
33
+ " [i]nject the policy at the top (preserves your file)
34
+ "
35
+ " [o]verwrite the entire file with a new template
36
+ "
37
+ " [a]bort
38
+ "
39
+ "Action",
40
+ type=click.Choice(['i', 'o', 'a'], case_sensitive=False)
41
+ )
42
+
43
+ if action == 'i':
44
+ with open(dest_path, "w") as f:
45
+ f.write(ZERO_TOUCH_POLICY + "
46
+ " + content)
47
+ click.secho("✅ Zero-Touch Policy injected successfully! Your existing content was preserved.", fg="green", bold=True)
48
+ return False
49
+ elif action == 'o':
50
+ return True
51
+ else:
52
+ click.secho("Aborted.", fg="yellow")
53
+ return False
54
+
3
55
  import subprocess
4
56
  from pathlib import Path
5
57
  import click
@@ -105,8 +157,8 @@ def init_frontend():
105
157
  return
106
158
 
107
159
  if dest_path.exists():
108
- click.secho("AGENTS.md already exists in this directory. Aborting to prevent overwrite.", fg="yellow")
109
- return
160
+ if not handle_existing_agents_md(dest_path):
161
+ return
110
162
 
111
163
  shutil.copy2(template_path, dest_path)
112
164
  click.secho("✅ Successfully created AGENTS.md with modern Next.js/React frontend guidelines!", fg="green", bold=True)
@@ -117,8 +169,8 @@ def init_backend():
117
169
  dest_path = Path.cwd() / "AGENTS.md"
118
170
 
119
171
  if dest_path.exists():
120
- click.secho("AGENTS.md already exists in this directory. Aborting to prevent overwrite.", fg="yellow")
121
- return
172
+ if not handle_existing_agents_md(dest_path):
173
+ return
122
174
 
123
175
  language = click.prompt("Which backend language?", type=click.Choice(['python', 'node']))
124
176
 
@@ -8,7 +8,7 @@ with open(os.path.join(this_directory, 'README.md'), encoding='utf-8') as f:
8
8
 
9
9
  setup(
10
10
  name="devhive",
11
- version="0.1.35",
11
+ version="0.1.36",
12
12
  packages=find_packages(),
13
13
  include_package_data=True,
14
14
  install_requires=[
File without changes
File without changes
File without changes
File without changes