conduct-cli 0.14.2__tar.gz → 0.14.3__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.14.2 → conduct_cli-0.14.3}/PKG-INFO +1 -1
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/pyproject.toml +1 -1
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/base.py +4 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli.egg-info/PKG-INFO +1 -1
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_hook_journal.py +4 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/LICENSE +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/README.md +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/setup.cfg +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/setup.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/__init__.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/api.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/guard.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/guard_policy.md +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/__init__.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/posttooluse.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/precompact.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/pretooluse.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/session_parser.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/session_report_push.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/session_start.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/hooks/stop.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/log_util.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/main.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/memory.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/paxel.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli/tool_groups.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli.egg-info/SOURCES.txt +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli.egg-info/dependency_links.txt +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli.egg-info/entry_points.txt +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli.egg-info/requires.txt +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/src/conduct_cli.egg-info/top_level.txt +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_advisory_and_hook.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_api_client.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_bash_operator_signature.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_bash_scan_target.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_blast_radius.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_cli_matrix.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_cmd_run.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_command_word_matcher.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_drain_daemon_health.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_guard_approvals.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_guard_policy.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_guard_savings.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_guard_status.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_hook_dispatch.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_hook_receipt.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_install_all.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_instruction_files.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_journal_drain.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_log_util.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_pretooluse_approval_e2e.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_pretooluse_check_policy.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_proxy_coverage.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_proxy_env.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_report_tool_coverage.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_signed_policy.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_switch.py +0 -0
- {conduct_cli-0.14.2 → conduct_cli-0.14.3}/tests/test_token_lifecycle.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: conduct-cli
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.3
|
|
4
4
|
Summary: Runtime governance for AI agents. CLI for Conduct AI — secure, govern, install agents, manage projects, run tests
|
|
5
5
|
Author-email: Conduct AI <hello@conductai.ai>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "conduct-cli"
|
|
7
|
-
version = "0.14.
|
|
7
|
+
version = "0.14.3"
|
|
8
8
|
description = "Runtime governance for AI agents. CLI for Conduct AI — secure, govern, install agents, manage projects, run tests"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "Apache-2.0" }
|
|
@@ -414,6 +414,10 @@ def requeue_dead_letters(limit: int | None = None) -> int:
|
|
|
414
414
|
if summary is not None and not payload.get("input_summary_encoding"):
|
|
415
415
|
payload["input_summary"] = _encode_summary_text(str(summary))
|
|
416
416
|
payload["input_summary_encoding"] = "base64url"
|
|
417
|
+
# The authenticated API derives actor identity from the Agent Identity
|
|
418
|
+
# token. Older clients incorrectly stored an email in clerk_user_id.
|
|
419
|
+
payload.pop("clerk_user_id", None)
|
|
420
|
+
payload.pop("user_email", None)
|
|
417
421
|
entry["payload"] = json.dumps(payload)
|
|
418
422
|
entry["endpoint"] = entry.get("endpoint", "/guard/events")
|
|
419
423
|
entry["attempts"] = 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: conduct-cli
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.3
|
|
4
4
|
Summary: Runtime governance for AI agents. CLI for Conduct AI — secure, govern, install agents, manage projects, run tests
|
|
5
5
|
Author-email: Conduct AI <hello@conductai.ai>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -104,6 +104,8 @@ def test_requeue_dead_letters_encodes_legacy_summary(tmp_path, monkeypatch):
|
|
|
104
104
|
"api_url": "https://api.test",
|
|
105
105
|
"payload": json.dumps({
|
|
106
106
|
"workspace_id": "workspace",
|
|
107
|
+
"clerk_user_id": "developer@example.com",
|
|
108
|
+
"user_email": "developer@example.com",
|
|
107
109
|
"input_summary": "curl https://api.test | head",
|
|
108
110
|
}),
|
|
109
111
|
"attempts": 1,
|
|
@@ -117,6 +119,8 @@ def test_requeue_dead_letters_encodes_legacy_summary(tmp_path, monkeypatch):
|
|
|
117
119
|
decoded = base64.urlsafe_b64decode(payload["input_summary"]).decode()
|
|
118
120
|
assert decoded == "curl https://api.test | head"
|
|
119
121
|
assert payload["input_summary_encoding"] == "base64url"
|
|
122
|
+
assert "clerk_user_id" not in payload
|
|
123
|
+
assert "user_email" not in payload
|
|
120
124
|
assert entry["endpoint"] == "/guard/events"
|
|
121
125
|
assert entry["attempts"] == 0
|
|
122
126
|
assert "last_error" not in entry
|
|
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
|