conduct-cli 0.4.73__tar.gz → 0.4.75__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.
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/PKG-INFO +3 -2
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/pyproject.toml +5 -2
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/guard.py +23 -3
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/hook_session_start_template.py +22 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli.egg-info/PKG-INFO +3 -2
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli.egg-info/requires.txt +2 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/README.md +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/setup.cfg +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/setup.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/__init__.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/api.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/guardmcp.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/hook_precompact_template.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/hook_template.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/main.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/mcp_server.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli/memory.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli.egg-info/SOURCES.txt +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli.egg-info/dependency_links.txt +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli.egg-info/entry_points.txt +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/src/conduct_cli.egg-info/top_level.txt +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/tests/test_guard_policy.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/tests/test_guard_savings.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/tests/test_hook_syntax.py +0 -0
- {conduct_cli-0.4.73 → conduct_cli-0.4.75}/tests/test_switch.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: conduct-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.75
|
|
4
4
|
Summary: CLI for Conduct AI — install agents, manage projects, run tests
|
|
5
5
|
Author-email: Conduct AI <hello@conductai.ai>
|
|
6
6
|
License: MIT
|
|
@@ -22,7 +22,8 @@ Requires-Python: >=3.9
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
Requires-Dist: pyyaml>=6.0
|
|
24
24
|
Requires-Dist: rich>=13.0
|
|
25
|
-
|
|
25
|
+
Provides-Extra: booster
|
|
26
|
+
Requires-Dist: agent-booster[watch]>=0.2.23; extra == "booster"
|
|
26
27
|
|
|
27
28
|
# conduct-cli
|
|
28
29
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "conduct-cli"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.75"
|
|
8
8
|
description = "CLI for Conduct AI — install agents, manage projects, run tests"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -23,7 +23,10 @@ classifiers = [
|
|
|
23
23
|
"Programming Language :: Python :: 3.12",
|
|
24
24
|
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
25
25
|
]
|
|
26
|
-
dependencies = ["pyyaml>=6.0", "rich>=13.0"
|
|
26
|
+
dependencies = ["pyyaml>=6.0", "rich>=13.0"]
|
|
27
|
+
|
|
28
|
+
[project.optional-dependencies]
|
|
29
|
+
booster = ["agent-booster[watch]>=0.2.23"]
|
|
27
30
|
|
|
28
31
|
[project.urls]
|
|
29
32
|
Homepage = "https://conductai.ai"
|
|
@@ -759,9 +759,18 @@ def _ensure_booster(root: Path) -> None:
|
|
|
759
759
|
"""Auto-init and background-index booster if installed but not yet set up."""
|
|
760
760
|
import shutil
|
|
761
761
|
import subprocess
|
|
762
|
+
import sys
|
|
762
763
|
|
|
763
764
|
if not shutil.which("booster"):
|
|
764
|
-
|
|
765
|
+
if sys.version_info < (3, 10):
|
|
766
|
+
print(
|
|
767
|
+
f" {GRAY}Agent Booster:{RESET} requires Python 3.10+ "
|
|
768
|
+
f"(you have {sys.version_info.major}.{sys.version_info.minor}). "
|
|
769
|
+
f"Upgrade Python then: pip install 'conduct-cli[booster]'"
|
|
770
|
+
)
|
|
771
|
+
else:
|
|
772
|
+
print(f" {GRAY}Agent Booster:{RESET} not installed — run: pip install 'conduct-cli[booster]'")
|
|
773
|
+
return
|
|
765
774
|
|
|
766
775
|
db_path = root / ".booster" / "symbols.db"
|
|
767
776
|
hooks_path = root / ".claude" / "hooks" / "booster-gate.py"
|
|
@@ -769,8 +778,15 @@ def _ensure_booster(root: Path) -> None:
|
|
|
769
778
|
# Init (writes hook scripts + wires settings.json) — fast, idempotent
|
|
770
779
|
if not hooks_path.exists():
|
|
771
780
|
try:
|
|
772
|
-
subprocess.run(
|
|
773
|
-
|
|
781
|
+
r = subprocess.run(
|
|
782
|
+
["booster", "init", "claude", "--yes"],
|
|
783
|
+
capture_output=True, timeout=15, cwd=str(root),
|
|
784
|
+
)
|
|
785
|
+
if r.returncode == 0:
|
|
786
|
+
print(f" {GREEN}Agent Booster:{RESET} hooks installed")
|
|
787
|
+
else:
|
|
788
|
+
print(f" {GRAY}Agent Booster:{RESET} init failed — {r.stderr.strip()[:120]}")
|
|
789
|
+
return
|
|
774
790
|
except Exception:
|
|
775
791
|
return
|
|
776
792
|
|
|
@@ -1161,6 +1177,10 @@ def cmd_guard_booster_status(args):
|
|
|
1161
1177
|
|
|
1162
1178
|
# 5. Live intercept test — try reading a known file and check if smart-read fires
|
|
1163
1179
|
print(f"\n {BOLD}Live intercept test:{RESET}")
|
|
1180
|
+
if not hooks_path.exists():
|
|
1181
|
+
print(f" {YELLOW}~{RESET} Skipped — hook script not present")
|
|
1182
|
+
print()
|
|
1183
|
+
return
|
|
1164
1184
|
try:
|
|
1165
1185
|
import tempfile, json as _json
|
|
1166
1186
|
# Pick the first indexed file
|
|
@@ -46,6 +46,28 @@ def main():
|
|
|
46
46
|
else:
|
|
47
47
|
lines.append("- Memory index:\n (none)")
|
|
48
48
|
|
|
49
|
+
# Booster intercept status
|
|
50
|
+
try:
|
|
51
|
+
import shutil, sqlite3
|
|
52
|
+
root = Path.cwd()
|
|
53
|
+
if shutil.which("booster"):
|
|
54
|
+
db_path = root / ".booster" / "symbols.db"
|
|
55
|
+
hooks_path = root / ".claude" / "hooks" / "booster-gate.py"
|
|
56
|
+
if hooks_path.exists() and db_path.exists():
|
|
57
|
+
try:
|
|
58
|
+
conn = sqlite3.connect(str(db_path))
|
|
59
|
+
n = conn.execute("SELECT COUNT(*) FROM symbols").fetchone()[0]
|
|
60
|
+
conn.close()
|
|
61
|
+
lines.append(f"- Agent Booster: ACTIVE — {n} symbols indexed, Read/Grep intercept ON")
|
|
62
|
+
except Exception:
|
|
63
|
+
lines.append("- Agent Booster: installed (index unavailable)")
|
|
64
|
+
elif shutil.which("booster"):
|
|
65
|
+
lines.append("- Agent Booster: installed but NOT wired — run: conduct guard sync")
|
|
66
|
+
else:
|
|
67
|
+
lines.append("- Agent Booster: not installed (pip install 'conduct-cli[booster]')")
|
|
68
|
+
except Exception:
|
|
69
|
+
pass
|
|
70
|
+
|
|
49
71
|
# Inject relevant team memories for the current repo
|
|
50
72
|
try:
|
|
51
73
|
repo = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: conduct-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.75
|
|
4
4
|
Summary: CLI for Conduct AI — install agents, manage projects, run tests
|
|
5
5
|
Author-email: Conduct AI <hello@conductai.ai>
|
|
6
6
|
License: MIT
|
|
@@ -22,7 +22,8 @@ Requires-Python: >=3.9
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
Requires-Dist: pyyaml>=6.0
|
|
24
24
|
Requires-Dist: rich>=13.0
|
|
25
|
-
|
|
25
|
+
Provides-Extra: booster
|
|
26
|
+
Requires-Dist: agent-booster[watch]>=0.2.23; extra == "booster"
|
|
26
27
|
|
|
27
28
|
# conduct-cli
|
|
28
29
|
|
|
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
|