conduct-cli 0.8.0__tar.gz → 0.8.2__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.8.0 → conduct_cli-0.8.2}/PKG-INFO +1 -1
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/pyproject.toml +1 -1
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/guard.py +5 -3
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli.egg-info/PKG-INFO +1 -1
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/README.md +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/setup.cfg +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/setup.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/__init__.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/api.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/guardmcp.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/__init__.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/base.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/posttooluse.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/precompact.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/pretooluse.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/session_parser.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/session_report_push.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/session_start.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/hooks/stop.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/log_util.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/main.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/mcp_server.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/memory.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/paxel.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli/tool_groups.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli.egg-info/SOURCES.txt +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli.egg-info/dependency_links.txt +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli.egg-info/entry_points.txt +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli.egg-info/requires.txt +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/src/conduct_cli.egg-info/top_level.txt +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_advisory_and_hook.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_api_client.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_bash_operator_signature.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_blast_radius.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_cmd_run.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_command_word_matcher.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_drain_daemon_health.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_guard_policy.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_guard_savings.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_hook_dispatch.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_instruction_files.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_journal_drain.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_log_util.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_proxy_coverage.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_proxy_env.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_signed_policy.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_switch.py +0 -0
- {conduct_cli-0.8.0 → conduct_cli-0.8.2}/tests/test_token_lifecycle.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "conduct-cli"
|
|
7
|
-
version = "0.8.
|
|
7
|
+
version = "0.8.2"
|
|
8
8
|
description = "CLI for Conduct AI — secure, govern, install agents, manage projects, run tests"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -478,7 +478,7 @@ def _patch_copilot_mcp(agent_token: str, api_url: str) -> None:
|
|
|
478
478
|
"""Keep ~/.copilot/mcp-config.json and any .mcp.json in cwd in sync with current agent token."""
|
|
479
479
|
import shutil
|
|
480
480
|
sse_entry = {
|
|
481
|
-
"type": "
|
|
481
|
+
"type": "http",
|
|
482
482
|
"url": f"{api_url}/guard/mcp",
|
|
483
483
|
"headers": {"Authorization": f"Bearer {agent_token}"},
|
|
484
484
|
"tools": ["**"],
|
|
@@ -2109,9 +2109,11 @@ def cmd_guard_savings(args):
|
|
|
2109
2109
|
|
|
2110
2110
|
dev_count = data.get("developer_count", 0)
|
|
2111
2111
|
total_tok = data.get("total_tokens_saved", 0)
|
|
2112
|
+
total_usd = data.get("total_cost_saved_usd", 0.0)
|
|
2112
2113
|
per_day = data.get("per_day_usd", 0.0)
|
|
2113
2114
|
per_month = data.get("per_month_usd", 0.0)
|
|
2114
2115
|
per_year = data.get("per_year_usd", 0.0)
|
|
2116
|
+
days_obs = data.get("days_observed", 1)
|
|
2115
2117
|
tools = data.get("tools_installed", [])
|
|
2116
2118
|
avg_tok = total_tok // dev_count if dev_count else 0
|
|
2117
2119
|
avg_day_usd = round(per_day / dev_count, 2) if dev_count else 0.0
|
|
@@ -2119,8 +2121,8 @@ def cmd_guard_savings(args):
|
|
|
2119
2121
|
print()
|
|
2120
2122
|
print(f"{BOLD}Team Token Savings{RESET} ({dev_count} developer{'s' if dev_count != 1 else ''})")
|
|
2121
2123
|
print("─" * 52)
|
|
2122
|
-
print(f" Total tokens saved: {total_tok:>14,}")
|
|
2123
|
-
print(f"
|
|
2124
|
+
print(f" Total tokens saved: {total_tok:>14,} (${total_usd:,.2f} over {days_obs} day{'s' if days_obs != 1 else ''})")
|
|
2125
|
+
print(f" Daily rate: ${per_day:>8.2f}/day · projected ${per_month:,.0f}/month · ${per_year:,.0f}/year")
|
|
2124
2126
|
if dev_count:
|
|
2125
2127
|
print(f" Avg per developer: {avg_tok:>14,} tokens · ${avg_day_usd:.2f}/day")
|
|
2126
2128
|
if tools:
|
|
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
|