custos-code 0.0.2__tar.gz → 0.0.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.
Files changed (39) hide show
  1. {custos_code-0.0.2 → custos_code-0.0.3}/PKG-INFO +1 -1
  2. {custos_code-0.0.2 → custos_code-0.0.3}/pyproject.toml +1 -1
  3. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/cli.py +24 -0
  4. {custos_code-0.0.2 → custos_code-0.0.3}/.gitignore +0 -0
  5. {custos_code-0.0.2 → custos_code-0.0.3}/LICENSE +0 -0
  6. {custos_code-0.0.2 → custos_code-0.0.3}/README.md +0 -0
  7. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/__init__.py +0 -0
  8. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/__init__.py +0 -0
  9. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/claude_code.py +0 -0
  10. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/codex.py +0 -0
  11. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/copilot.py +0 -0
  12. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/devin.py +0 -0
  13. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/machine.py +0 -0
  14. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/otel.py +0 -0
  15. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/adapters/state.py +0 -0
  16. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/arch.py +0 -0
  17. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/claims.py +0 -0
  18. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/compress.py +0 -0
  19. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/cost.py +0 -0
  20. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/demo_fixtures/__init__.py +0 -0
  21. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/demo_fixtures/ok_tests_0.jsonl +0 -0
  22. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/demo_fixtures/trap_echo_0.jsonl +0 -0
  23. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/demo_fixtures/trap_failing_0.jsonl +0 -0
  24. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/demo_fixtures/trap_ghost_0.jsonl +0 -0
  25. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/demo_fixtures/trap_piped_0.jsonl +0 -0
  26. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/feedback.py +0 -0
  27. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/hooks.py +0 -0
  28. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/judge.py +0 -0
  29. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/ledger.py +0 -0
  30. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/models.py +0 -0
  31. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/parsers.py +0 -0
  32. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/report.py +0 -0
  33. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/rerun.py +0 -0
  34. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/review.py +0 -0
  35. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/rules.py +0 -0
  36. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/scope.py +0 -0
  37. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/twopass.py +0 -0
  38. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/verdicts.py +0 -0
  39. {custos_code-0.0.2 → custos_code-0.0.3}/src/custos_code/watchdog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: custos-code
3
- Version: 0.0.2
3
+ Version: 0.0.3
4
4
  Summary: Checks a coding agent's final report against the log of what it actually did.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "custos-code"
3
- version = "0.0.2"
3
+ version = "0.0.3"
4
4
  description = "Checks a coding agent's final report against the log of what it actually did."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -11,6 +11,7 @@ from __future__ import annotations
11
11
  import pathlib
12
12
  import re
13
13
  from dataclasses import dataclass
14
+ from importlib.metadata import PackageNotFoundError, version
14
15
 
15
16
  import typer
16
17
  from rich.console import Console
@@ -42,6 +43,29 @@ app = typer.Typer(
42
43
  console = Console()
43
44
 
44
45
 
46
+ def _print_version(show: bool) -> None:
47
+ if not show:
48
+ return
49
+ # Read from the installed package's own metadata, not a literal here, so this can never say
50
+ # something other than what was actually installed -- a hardcoded string drifts the moment a
51
+ # release changes pyproject.toml without someone remembering this one too.
52
+ try:
53
+ console.print(f"custos-code {version('custos-code')}")
54
+ except PackageNotFoundError:
55
+ console.print("custos-code (unknown version: not installed as a package)")
56
+ raise typer.Exit()
57
+
58
+
59
+ @app.callback()
60
+ def _main(
61
+ version_: bool = typer.Option(
62
+ False, "--version", "-V", callback=_print_version, is_eager=True,
63
+ help="Print the installed version and exit.",
64
+ ),
65
+ ) -> None:
66
+ return
67
+
68
+
45
69
  @app.command()
46
70
  def check(
47
71
  session: str | None = typer.Argument(
File without changes
File without changes
File without changes