capt-hook 2.0.0__tar.gz → 3.1.0__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 (76) hide show
  1. {capt_hook-2.0.0 → capt_hook-3.1.0}/PKG-INFO +2 -2
  2. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/judge.py +2 -2
  3. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/store.py +3 -4
  4. {capt_hook-2.0.0 → capt_hook-3.1.0}/pyproject.toml +2 -2
  5. {capt_hook-2.0.0 → capt_hook-3.1.0}/LICENSE +0 -0
  6. {capt_hook-2.0.0 → capt_hook-3.1.0}/README.md +0 -0
  7. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/.claude-plugin/plugin.json +0 -0
  8. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/__init__.py +0 -0
  9. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/__main__.py +0 -0
  10. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/app.py +0 -0
  11. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/classifiers/__init__.py +0 -0
  12. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/classifiers/conductor.py +0 -0
  13. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/classifiers/droid.py +0 -0
  14. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/classifiers/native.py +0 -0
  15. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/cli.py +0 -0
  16. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/command.py +0 -0
  17. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/conditions.py +0 -0
  18. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/context.py +0 -0
  19. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/decisions.py +0 -0
  20. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/dispatch.py +0 -0
  21. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/events.py +0 -0
  22. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/file.py +0 -0
  23. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/llm/__init__.py +0 -0
  24. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/loader.py +0 -0
  25. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/log.py +0 -0
  26. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/primitives/__init__.py +0 -0
  27. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/primitives/commands.py +0 -0
  28. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/primitives/lint.py +0 -0
  29. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/primitives/llm.py +0 -0
  30. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/primitives/nudge.py +0 -0
  31. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/primitives/workflow.py +0 -0
  32. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/prompt.py +0 -0
  33. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/py.typed +0 -0
  34. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/__init__.py +0 -0
  35. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/cli.py +0 -0
  36. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/fix.py +0 -0
  37. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/formats.py +0 -0
  38. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/pipeline.py +0 -0
  39. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/repo.py +0 -0
  40. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/scan.py +0 -0
  41. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/settings.py +0 -0
  42. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/review/sync.py +0 -0
  43. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/session.py +0 -0
  44. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/settings.py +0 -0
  45. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/signals/__init__.py +0 -0
  46. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/signals/nlp.py +0 -0
  47. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/authoring-hooks/SKILL.md +0 -0
  48. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/authoring-hooks/references/capt-hook-api.md +0 -0
  49. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/authoring-hooks/references/pattern-catalog.md +0 -0
  50. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/authoring-hooks/references/pitfalls.md +0 -0
  51. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/authoring-hooks/references/testing-hooks.md +0 -0
  52. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/bootstrapping-hooks/SKILL.md +0 -0
  53. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/scanning-sessions/SKILL.md +0 -0
  54. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/scanning-sessions/references/pr-workflow.md +0 -0
  55. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/scanning-sessions/references/review-cli.md +0 -0
  56. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/translating-styleguides/SKILL.md +0 -0
  57. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/translating-styleguides/references/llm-rule-patterns.md +0 -0
  58. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/translating-styleguides/references/matcher-reference.md +0 -0
  59. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/skills/translating-styleguides/references/tier-rubric.md +0 -0
  60. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/state.py +0 -0
  61. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/style/__init__.py +0 -0
  62. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/style/matchers.py +0 -0
  63. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/style/scope.py +0 -0
  64. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/style/types.py +0 -0
  65. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/tasks.py +0 -0
  66. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/templates/example_hook.py.tmpl +0 -0
  67. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/testing/__init__.py +0 -0
  68. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/testing/helpers.py +0 -0
  69. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/testing/session_cache.py +0 -0
  70. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/testing/types.py +0 -0
  71. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/tests/__init__.py +0 -0
  72. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/tests/helpers.py +0 -0
  73. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/types.py +0 -0
  74. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/util/__init__.py +0 -0
  75. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/util/model_cache.py +0 -0
  76. {capt_hook-2.0.0 → capt_hook-3.1.0}/captain_hook/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capt-hook
3
- Version: 2.0.0
3
+ Version: 3.1.0
4
4
  Summary: Declarative hook framework for Claude Code
5
5
  Keywords: claude,claude-code,hooks,llm,agents,guardrails,cli
6
6
  Author: Yasyf Mohamedali
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
16
16
  Classifier: Topic :: Software Development :: Quality Assurance
17
17
  Classifier: Topic :: Software Development :: Testing
18
18
  Classifier: Typing :: Typed
19
- Requires-Dist: cc-transcript>=2.0,<3
19
+ Requires-Dist: cc-transcript>=3.2,<4
20
20
  Requires-Dist: pydantic>=2.0
21
21
  Requires-Dist: pydantic-settings>=2.0
22
22
  Requires-Dist: tree-sitter>=0.24
@@ -268,8 +268,8 @@ async def judge_pass(
268
268
  Incremental and idempotent: each verdict persists as soon as its call
269
269
  completes, a failed row stays unjudged and is retried on the next pass, and
270
270
  re-running over a fully judged corpus is a no-op. Rows whose heuristic
271
- :func:`~cc_transcript.mining.effective_confidence` sits below
272
- :data:`~cc_transcript.mining.NOISE_FLOOR` are never sent.
271
+ signal confidence sits below :data:`~cc_transcript.mining.NOISE_FLOOR` are
272
+ never sent.
273
273
 
274
274
  Args:
275
275
  store: The open review store.
@@ -1,8 +1,7 @@
1
1
  """The reviewer's SQLite store: feedback events, judge verdicts, and PR candidates.
2
2
 
3
3
  Layers three review tables onto :class:`cc_transcript.mining.FeedbackStore`'s
4
- event ledger (whose ``context_json`` column holds ``cc-transcript.context/1``
5
- documents) and :class:`cc_transcript.judge.VerdictStoreMixin`'s fidelity-aware
4
+ event ledger and :class:`cc_transcript.judge.VerdictStoreMixin`'s fidelity-aware
6
5
  verdict table: ``candidates`` (one row per grouped correction or misfire),
7
6
  ``candidate_observations`` (one row per evidencing feedback event), and ``repos``
8
7
  (the per-repo watching flag). Eligibility is judge-aware: only observations whose
@@ -18,7 +17,7 @@ from enum import StrEnum
18
17
  from typing import TYPE_CHECKING, Self
19
18
 
20
19
  from cc_transcript.judge.verdicts import VerdictStoreMixin
21
- from cc_transcript.mining.confidence import effective_confidence, from_payload
20
+ from cc_transcript.mining.confidence import from_payload
22
21
  from cc_transcript.mining.store import FEEDBACK_DDL, FeedbackStore, now
23
22
  from cc_transcript.store import FileStateStore
24
23
 
@@ -147,7 +146,7 @@ TRANSITIONS: Mapping[CandidateStatus, frozenset[CandidateStatus]] = {
147
146
 
148
147
  def signal_confidence(payload_json: object) -> Confidence:
149
148
  payload: dict[str, Any] = json.loads(str(payload_json)) if payload_json else {}
150
- return effective_confidence(from_payload(payload.get("signal")))
149
+ return from_payload(payload["signal"]).confidence
151
150
 
152
151
 
153
152
  @dataclass(frozen=True, slots=True)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "capt-hook"
3
- version = "2.0.0"
3
+ version = "3.1.0"
4
4
  description = "Declarative hook framework for Claude Code"
5
5
  readme = "README.md"
6
6
  license = "PolyForm-Noncommercial-1.0.0"
@@ -20,7 +20,7 @@ classifiers = [
20
20
  ]
21
21
  requires-python = ">=3.13"
22
22
  dependencies = [
23
- "cc-transcript>=2.0,<3",
23
+ "cc-transcript>=3.2,<4",
24
24
  "pydantic>=2.0",
25
25
  "pydantic-settings>=2.0",
26
26
  "tree-sitter>=0.24",
File without changes
File without changes
File without changes
File without changes
File without changes