conduct-cli 0.6.18__tar.gz → 0.6.19__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 (42) hide show
  1. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/PKG-INFO +1 -1
  2. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/pyproject.toml +1 -1
  3. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/base.py +18 -2
  4. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli.egg-info/PKG-INFO +1 -1
  5. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/README.md +0 -0
  6. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/setup.cfg +0 -0
  7. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/setup.py +0 -0
  8. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/__init__.py +0 -0
  9. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/api.py +0 -0
  10. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/guard.py +0 -0
  11. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/guardmcp.py +0 -0
  12. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hook_precompact_template.py +0 -0
  13. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hook_session_start_template.py +0 -0
  14. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hook_stop_template.py +0 -0
  15. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hook_template.py +0 -0
  16. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/__init__.py +0 -0
  17. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/posttooluse.py +0 -0
  18. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/precompact.py +0 -0
  19. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/pretooluse.py +0 -0
  20. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/session_parser.py +0 -0
  21. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/session_start.py +0 -0
  22. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/hooks/stop.py +0 -0
  23. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/log_util.py +0 -0
  24. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/main.py +0 -0
  25. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/mcp_server.py +0 -0
  26. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/memory.py +0 -0
  27. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli/paxel.py +0 -0
  28. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli.egg-info/SOURCES.txt +0 -0
  29. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli.egg-info/dependency_links.txt +0 -0
  30. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli.egg-info/entry_points.txt +0 -0
  31. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli.egg-info/requires.txt +0 -0
  32. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/src/conduct_cli.egg-info/top_level.txt +0 -0
  33. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_bash_operator_signature.py +0 -0
  34. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_command_word_matcher.py +0 -0
  35. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_guard_policy.py +0 -0
  36. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_guard_savings.py +0 -0
  37. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_hook_syntax.py +0 -0
  38. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_journal_drain.py +0 -0
  39. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_log_util.py +0 -0
  40. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_proxy_env.py +0 -0
  41. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_signed_policy.py +0 -0
  42. {conduct_cli-0.6.18 → conduct_cli-0.6.19}/tests/test_switch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: conduct-cli
3
- Version: 0.6.18
3
+ Version: 0.6.19
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "conduct-cli"
7
- version = "0.6.18"
7
+ version = "0.6.19"
8
8
  description = "CLI for Conduct AI — install agents, manage projects, run tests"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -159,10 +159,18 @@ def run_drain_daemon() -> None:
159
159
  if isinstance(entry["payload"], str)
160
160
  else entry["payload"]
161
161
  )
162
+ try:
163
+ from importlib.metadata import version as _pkg_ver
164
+ _ua = f"conduct-cli/{_pkg_ver('conduct-cli')}"
165
+ except Exception:
166
+ _ua = "conduct-cli"
162
167
  req = urllib.request.Request(
163
168
  f"{api_url}/guard/events",
164
169
  data=payload,
165
- headers={"Content-Type": "application/json"},
170
+ headers={
171
+ "Content-Type": "application/json",
172
+ "User-Agent": _ua,
173
+ },
166
174
  method="POST",
167
175
  )
168
176
  urllib.request.urlopen(req, timeout=8)
@@ -181,6 +189,14 @@ def run_drain_daemon() -> None:
181
189
  pass
182
190
 
183
191
 
192
+ _WAF_CHARS = str.maketrans("", "", "|;&$`<>")
193
+
194
+ def _safe_summary(tool_input: dict) -> str:
195
+ """Summarise tool input, stripping shell metacharacters that trigger WAF rules."""
196
+ raw = json.dumps(tool_input)[:300]
197
+ return raw.translate(_WAF_CHARS)[:200]
198
+
199
+
184
200
  def post_event(
185
201
  tool_name: str,
186
202
  tool_input: dict,
@@ -207,7 +223,7 @@ def post_event(
207
223
  "user_email": cfg.get("user_email"),
208
224
  "ai_tool": detect_ai_tool(),
209
225
  "tool_call": tool_name,
210
- "input_summary": json.dumps(tool_input)[:200],
226
+ "input_summary": _safe_summary(tool_input),
211
227
  "decision": decision,
212
228
  "rule_id": rule_id,
213
229
  "rule_message": message,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: conduct-cli
3
- Version: 0.6.18
3
+ Version: 0.6.19
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
File without changes
File without changes
File without changes