@reviewsensei/cli-linux-x64-gnu 0.6.0 → 0.6.7

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 (78) hide show
  1. package/README.md +3 -3
  2. package/bin/_internal/base_library.zip +0 -0
  3. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +1 -1
  4. package/bin/_internal/libbz2.so.1.0 +0 -0
  5. package/bin/_internal/libcrypto.so.3 +0 -0
  6. package/bin/_internal/libffi.so.8 +0 -0
  7. package/bin/_internal/libgcc_s.so.1 +0 -0
  8. package/bin/_internal/liblzma.so.5 +0 -0
  9. package/bin/_internal/libpython3.11.so.1.0 +0 -0
  10. package/bin/_internal/libssl.so.3 +0 -0
  11. package/bin/_internal/libuuid.so.1 +0 -0
  12. package/bin/_internal/libz.so.1 +0 -0
  13. package/bin/_internal/python3.11/lib-dynload/_asyncio.cpython-311-x86_64-linux-gnu.so +0 -0
  14. package/bin/_internal/python3.11/lib-dynload/_bisect.cpython-311-x86_64-linux-gnu.so +0 -0
  15. package/bin/_internal/python3.11/lib-dynload/_blake2.cpython-311-x86_64-linux-gnu.so +0 -0
  16. package/bin/_internal/python3.11/lib-dynload/_bz2.cpython-311-x86_64-linux-gnu.so +0 -0
  17. package/bin/_internal/python3.11/lib-dynload/_codecs_cn.cpython-311-x86_64-linux-gnu.so +0 -0
  18. package/bin/_internal/python3.11/lib-dynload/_codecs_hk.cpython-311-x86_64-linux-gnu.so +0 -0
  19. package/bin/_internal/python3.11/lib-dynload/_codecs_iso2022.cpython-311-x86_64-linux-gnu.so +0 -0
  20. package/bin/_internal/python3.11/lib-dynload/_codecs_jp.cpython-311-x86_64-linux-gnu.so +0 -0
  21. package/bin/_internal/python3.11/lib-dynload/_codecs_kr.cpython-311-x86_64-linux-gnu.so +0 -0
  22. package/bin/_internal/python3.11/lib-dynload/_codecs_tw.cpython-311-x86_64-linux-gnu.so +0 -0
  23. package/bin/_internal/python3.11/lib-dynload/_contextvars.cpython-311-x86_64-linux-gnu.so +0 -0
  24. package/bin/_internal/python3.11/lib-dynload/_csv.cpython-311-x86_64-linux-gnu.so +0 -0
  25. package/bin/_internal/python3.11/lib-dynload/_ctypes.cpython-311-x86_64-linux-gnu.so +0 -0
  26. package/bin/_internal/python3.11/lib-dynload/_datetime.cpython-311-x86_64-linux-gnu.so +0 -0
  27. package/bin/_internal/python3.11/lib-dynload/_decimal.cpython-311-x86_64-linux-gnu.so +0 -0
  28. package/bin/_internal/python3.11/lib-dynload/_hashlib.cpython-311-x86_64-linux-gnu.so +0 -0
  29. package/bin/_internal/python3.11/lib-dynload/_heapq.cpython-311-x86_64-linux-gnu.so +0 -0
  30. package/bin/_internal/python3.11/lib-dynload/_json.cpython-311-x86_64-linux-gnu.so +0 -0
  31. package/bin/_internal/python3.11/lib-dynload/_lzma.cpython-311-x86_64-linux-gnu.so +0 -0
  32. package/bin/_internal/python3.11/lib-dynload/_md5.cpython-311-x86_64-linux-gnu.so +0 -0
  33. package/bin/_internal/python3.11/lib-dynload/_multibytecodec.cpython-311-x86_64-linux-gnu.so +0 -0
  34. package/bin/_internal/python3.11/lib-dynload/_multiprocessing.cpython-311-x86_64-linux-gnu.so +0 -0
  35. package/bin/_internal/python3.11/lib-dynload/_opcode.cpython-311-x86_64-linux-gnu.so +0 -0
  36. package/bin/_internal/python3.11/lib-dynload/_pickle.cpython-311-x86_64-linux-gnu.so +0 -0
  37. package/bin/_internal/python3.11/lib-dynload/_posixshmem.cpython-311-x86_64-linux-gnu.so +0 -0
  38. package/bin/_internal/python3.11/lib-dynload/_posixsubprocess.cpython-311-x86_64-linux-gnu.so +0 -0
  39. package/bin/_internal/python3.11/lib-dynload/_queue.cpython-311-x86_64-linux-gnu.so +0 -0
  40. package/bin/_internal/python3.11/lib-dynload/_random.cpython-311-x86_64-linux-gnu.so +0 -0
  41. package/bin/_internal/python3.11/lib-dynload/_sha1.cpython-311-x86_64-linux-gnu.so +0 -0
  42. package/bin/_internal/python3.11/lib-dynload/_sha256.cpython-311-x86_64-linux-gnu.so +0 -0
  43. package/bin/_internal/python3.11/lib-dynload/_sha3.cpython-311-x86_64-linux-gnu.so +0 -0
  44. package/bin/_internal/python3.11/lib-dynload/_sha512.cpython-311-x86_64-linux-gnu.so +0 -0
  45. package/bin/_internal/python3.11/lib-dynload/_socket.cpython-311-x86_64-linux-gnu.so +0 -0
  46. package/bin/_internal/python3.11/lib-dynload/_ssl.cpython-311-x86_64-linux-gnu.so +0 -0
  47. package/bin/_internal/python3.11/lib-dynload/_statistics.cpython-311-x86_64-linux-gnu.so +0 -0
  48. package/bin/_internal/python3.11/lib-dynload/_struct.cpython-311-x86_64-linux-gnu.so +0 -0
  49. package/bin/_internal/python3.11/lib-dynload/_typing.cpython-311-x86_64-linux-gnu.so +0 -0
  50. package/bin/_internal/python3.11/lib-dynload/_uuid.cpython-311-x86_64-linux-gnu.so +0 -0
  51. package/bin/_internal/python3.11/lib-dynload/array.cpython-311-x86_64-linux-gnu.so +0 -0
  52. package/bin/_internal/python3.11/lib-dynload/binascii.cpython-311-x86_64-linux-gnu.so +0 -0
  53. package/bin/_internal/python3.11/lib-dynload/fcntl.cpython-311-x86_64-linux-gnu.so +0 -0
  54. package/bin/_internal/python3.11/lib-dynload/grp.cpython-311-x86_64-linux-gnu.so +0 -0
  55. package/bin/_internal/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so +0 -0
  56. package/bin/_internal/python3.11/lib-dynload/mmap.cpython-311-x86_64-linux-gnu.so +0 -0
  57. package/bin/_internal/python3.11/lib-dynload/pyexpat.cpython-311-x86_64-linux-gnu.so +0 -0
  58. package/bin/_internal/python3.11/lib-dynload/resource.cpython-311-x86_64-linux-gnu.so +0 -0
  59. package/bin/_internal/python3.11/lib-dynload/select.cpython-311-x86_64-linux-gnu.so +0 -0
  60. package/bin/_internal/python3.11/lib-dynload/termios.cpython-311-x86_64-linux-gnu.so +0 -0
  61. package/bin/_internal/python3.11/lib-dynload/unicodedata.cpython-311-x86_64-linux-gnu.so +0 -0
  62. package/bin/_internal/python3.11/lib-dynload/zlib.cpython-311-x86_64-linux-gnu.so +0 -0
  63. package/bin/_internal/review_sensei/schemas/observed-convergence-report.schema.json +93 -0
  64. package/bin/_internal/review_sensei/schemas/session-record.schema.json +1 -1
  65. package/bin/_internal/{review_sensei-0.6.0.dist-info/METADATA → review_sensei.egg-info/PKG-INFO} +17 -15
  66. package/bin/_internal/review_sensei.egg-info/SOURCES.txt +241 -0
  67. package/bin/_internal/review_sensei.egg-info/dependency_links.txt +1 -0
  68. package/bin/_internal/review_sensei.egg-info/requires.txt +3 -0
  69. package/bin/review-sensei +0 -0
  70. package/package.json +1 -1
  71. package/bin/_internal/review_sensei-0.6.0.dist-info/INSTALLER +0 -1
  72. package/bin/_internal/review_sensei-0.6.0.dist-info/RECORD +0 -169
  73. package/bin/_internal/review_sensei-0.6.0.dist-info/REQUESTED +0 -0
  74. package/bin/_internal/review_sensei-0.6.0.dist-info/WHEEL +0 -5
  75. package/bin/_internal/review_sensei-0.6.0.dist-info/direct_url.json +0 -1
  76. package/bin/_internal/review_sensei-0.6.0.dist-info/licenses/LICENSE +0 -21
  77. /package/bin/_internal/{review_sensei-0.6.0.dist-info → review_sensei.egg-info}/entry_points.txt +0 -0
  78. /package/bin/_internal/{review_sensei-0.6.0.dist-info → review_sensei.egg-info}/top_level.txt +0 -0
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # @reviewsensei/cli-linux-x64-gnu
2
2
 
3
- Native ReviewSensei standalone payload for x64 Linux using glibc (the
4
- manylinux-compatible build lane). Linux musl systems are not supported. This
5
- package contains no installer or download hook.
3
+ Native ReviewSensei standalone payload for x64 Linux using glibc 2.36 or newer.
4
+ Linux musl systems are not supported. This package contains no installer or
5
+ download hook.
Binary file
@@ -1,4 +1,4 @@
1
- ../../../bin/jsonschema,sha256=Lnm9sH30YxJmvcN_eGUmKrBA5saBKG9f7b5K_DyyLXU,195
1
+ ../../../bin/jsonschema,sha256=I7QAiKFKw-NjSGoejKFECxBDc7sjYSof2GMjFdc4syg,239
2
2
  jsonschema-4.26.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
3
3
  jsonschema-4.26.0.dist-info/METADATA,sha256=BbGJhmypipbaOTS_a4NofO0_-FMlJzt34WtwX22LJtI,7592
4
4
  jsonschema-4.26.0.dist-info/RECORD,,
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,93 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://reviewsensei.dev/schemas/v1/observed-convergence-report.schema.json",
4
+ "title": "ReviewSensei observed convergence evidence report v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "mode", "events", "baseline_events", "command_events", "finding_metrics", "execution_metrics", "shadow_isolated", "evidence_identity", "approval_events", "cap_created_approval", "cutover_status", "unmet_criteria", "limitations"],
8
+ "properties": {
9
+ "schema_version": {"const": "1.0"},
10
+ "mode": {"type": "string", "enum": ["advisory", "merge-focused", "strict"]},
11
+ "events": {
12
+ "type": "array",
13
+ "minItems": 1,
14
+ "maxItems": 32,
15
+ "items": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "required": ["label", "provider_calls", "baseline_loaded", "publication_status", "handoff_reason", "approval_events"],
19
+ "allOf": [
20
+ {
21
+ "if": {
22
+ "properties": {"publication_status": {"const": "handoff"}},
23
+ "required": ["publication_status"]
24
+ },
25
+ "else": {"properties": {"handoff_reason": {"type": "null"}}}
26
+ }
27
+ ],
28
+ "properties": {
29
+ "label": {"type": "string", "minLength": 1, "maxLength": 128},
30
+ "provider_calls": {"type": "integer", "minimum": 0, "maximum": 32},
31
+ "baseline_loaded": {"type": "boolean"},
32
+ "publication_status": {"type": "string", "enum": ["published", "handoff", "disabled", "already_published"]},
33
+ "handoff_reason": {
34
+ "anyOf": [
35
+ {"type": "string", "minLength": 1, "maxLength": 128},
36
+ {"type": "null"}
37
+ ]
38
+ },
39
+ "approval_events": {"type": "integer", "minimum": 0, "maximum": 32}
40
+ }
41
+ }
42
+ },
43
+ "baseline_events": {"type": "integer", "minimum": 0, "maximum": 32},
44
+ "command_events": {"type": "array", "minItems": 2, "maxItems": 8, "items": {"type": "string", "minLength": 1, "maxLength": 128}},
45
+ "finding_metrics": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "required": ["expected_material_findings", "observed_material_findings", "matched_material_findings", "missed_material_findings", "unjustified_late_blockers", "blocker_precision", "seeded_material_regressions_detected", "duplicate_findings", "reopened_findings", "contradictions"],
49
+ "properties": {
50
+ "expected_material_findings": {"type": "integer", "minimum": 0, "maximum": 512},
51
+ "observed_material_findings": {"type": "integer", "minimum": 0, "maximum": 512},
52
+ "matched_material_findings": {"type": "integer", "minimum": 0, "maximum": 512},
53
+ "missed_material_findings": {"type": "integer", "minimum": 0, "maximum": 512},
54
+ "unjustified_late_blockers": {"type": "integer", "minimum": 0, "maximum": 512},
55
+ "blocker_precision": {"type": ["number", "null"], "minimum": 0, "maximum": 1},
56
+ "seeded_material_regressions_detected": {"type": "integer", "minimum": 0, "maximum": 512},
57
+ "duplicate_findings": {"type": "integer", "minimum": 0, "maximum": 512},
58
+ "reopened_findings": {"type": "integer", "minimum": 0, "maximum": 512},
59
+ "contradictions": {"type": "integer", "minimum": 0, "maximum": 512}
60
+ }
61
+ },
62
+ "execution_metrics": {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "required": ["completed_rounds", "handoffs", "provider_calls", "failed_attempts"],
66
+ "properties": {
67
+ "completed_rounds": {"type": "integer", "minimum": 0, "maximum": 32},
68
+ "handoffs": {"type": "integer", "minimum": 0, "maximum": 32},
69
+ "provider_calls": {"type": "integer", "minimum": 0, "maximum": 512},
70
+ "failed_attempts": {"type": "integer", "minimum": 0, "maximum": 32}
71
+ }
72
+ },
73
+ "shadow_isolated": {"type": "boolean"},
74
+ "evidence_identity": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "required": ["source_identity", "package_identity", "workflow_identity", "configuration_digest", "fixture_identity", "command"],
78
+ "properties": {
79
+ "source_identity": {"type": "string", "minLength": 1, "maxLength": 256},
80
+ "package_identity": {"type": "string", "minLength": 1, "maxLength": 256},
81
+ "workflow_identity": {"type": "string", "minLength": 1, "maxLength": 256},
82
+ "configuration_digest": {"type": "string", "minLength": 1, "maxLength": 256},
83
+ "fixture_identity": {"type": "string", "minLength": 1, "maxLength": 256},
84
+ "command": {"type": "string", "minLength": 1, "maxLength": 256}
85
+ }
86
+ },
87
+ "approval_events": {"type": ["integer", "null"], "minimum": 0, "maximum": 32},
88
+ "cap_created_approval": {"type": ["boolean", "null"]},
89
+ "cutover_status": {"type": "string", "enum": ["passed", "not_ready"]},
90
+ "unmet_criteria": {"type": "array", "maxItems": 16, "items": {"type": "string", "minLength": 1, "maxLength": 256}},
91
+ "limitations": {"type": "array", "minItems": 1, "maxItems": 8, "items": {"type": "string", "minLength": 1, "maxLength": 256}}
92
+ }
93
+ }
@@ -131,7 +131,7 @@
131
131
  },
132
132
  "convergence_history": {
133
133
  "type": "object",
134
- "description": "Bounded convergence envelope. The field caps below bound each member; the validation seam additionally rejects an envelope whose canonical UTF-8 encoding exceeds MAX_CONVERGENCE_HISTORY_BYTES (2048), which JSON Schema cannot express.",
134
+ "description": "Bounded convergence envelope. The field caps below bound each member; the validation seam additionally rejects an envelope whose canonical UTF-8 encoding exceeds MAX_CONVERGENCE_HISTORY_BYTES (4096), which JSON Schema cannot express.",
135
135
  "additionalProperties": false,
136
136
  "required": ["state", "progress", "provenance"],
137
137
  "properties": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: review-sensei
3
- Version: 0.6.0
3
+ Version: 0.6.7
4
4
  Summary: Provider-neutral AI code review engine with an Ollama adapter.
5
5
  Author: Mohamad Alsabbagh
6
6
  License-Expression: MIT
@@ -108,8 +108,8 @@ Node.js 22 or newer can invoke the same Python review engine through the
108
108
  provider-neutral `@reviewsensei/cli` launcher:
109
109
 
110
110
  ```bash
111
- npx --yes @reviewsensei/cli@0.6.0 --version
112
- npx --yes @reviewsensei/cli@0.6.0 --help
111
+ npx --yes @reviewsensei/cli@0.6.7 --version
112
+ npx --yes @reviewsensei/cli@0.6.7 --help
113
113
  ```
114
114
 
115
115
  The launcher selects one of the five native packages (macOS arm64/x64,
@@ -168,9 +168,9 @@ Optional App-identity publication is documented in
168
168
  authentication adapter for GitHub App JWTs and installation access tokens; it
169
169
  is not a hosted review service, webhook receiver, or durable delivery store.
170
170
 
171
- ### GitHub App setup-v4 integration
171
+ ### GitHub App setup-v5 integration
172
172
 
173
- The optional setup-v4 integration adds a reviewable, generated caller by using
173
+ The optional setup-v5 integration adds a reviewable, generated caller by using
174
174
  the operator-managed `v5` git tag as the only update channel:
175
175
  `malsabbagh/review-sensei/.github/workflows/review-sensei-run.yml@v5`.
176
176
  The Worker validates the tag before writing the caller, and the Cloudflare
@@ -208,8 +208,8 @@ authentication to obtain a repository-scoped installation token for the setup
208
208
  branch, pull request, and default variables.
209
209
 
210
210
  Installation, reinstall, permission-acceptance, and repository-added events
211
- reconcile absent or older generated clients through at most one setup-v4 PR.
212
- Current tag-following setup-v4 is a no-op; managed v3 and older generated clients are migrated
211
+ reconcile absent or older generated clients through at most one setup-v5 PR.
212
+ Current tag-following setup-v5 is a no-op; managed v3/v4 and older generated clients are migrated
213
213
  through a setup PR, while custom, malformed, and future setup files are no-write
214
214
  cases. See [`docs/installation.md`](docs/installation.md),
215
215
  [`docs/github-app-registration.md`](docs/github-app-registration.md), and the
@@ -562,15 +562,17 @@ network egress path for Ollama deployments.
562
562
 
563
563
  ## GitHub integration
564
564
 
565
- The GitHub App opens a setup-v4 PR containing a thin caller that follows the
565
+ The GitHub App opens a setup-v5 PR containing a thin caller that follows the
566
566
  operator-managed `v5` public git tag. The reusable workflow prefers the
567
567
  requested exact package from PyPI and falls back to its executing workflow
568
568
  commit only when that package/version is unavailable. Unrelated PyPI
569
- installation failures remain fatal. All nine
570
- `REVIEWSENSEI_*` repository variables are created with safe defaults: automatic
571
- review, GitHub writes, learning PRs, mention replies, and artifact upload are
572
- off, while automatic approval is `true` when those review and write gates are
573
- enabled. The App never creates the customer-owned `OLLAMA_API_KEY` secret.
569
+ installation failures remain fatal. Setup provisions 15 repository variables,
570
+ including 7 boolean controls, and manages 3 generated files. Automatic review,
571
+ GitHub writes, learning proposals, learning PRs, mention replies, and artifact
572
+ upload default to `false`; automatic approval defaults to `true` but is effective
573
+ only when review and write gates are enabled. `REVIEWSENSEI_REVIEW_MODE` is a
574
+ policy selector, not a boolean control, and defaults to `merge-focused`.
575
+ The App never creates the customer-owned `OLLAMA_API_KEY` secret.
574
576
 
575
577
  When explicitly enabled, same-repository pull requests can run automatic review
576
578
  with either provider mode: cloud on a GitHub-hosted runner or local Ollama on
@@ -616,10 +618,10 @@ mode sends that bounded conversation context to Ollama Cloud; local mode keeps
616
618
  it on the configured local service. Published review summaries and inline
617
619
  findings also tell readers to reply with @sensei followed by their question.
618
620
  `review.json` is uploaded only when
619
- `REVIEWSENSEI_UPLOAD_ARTIFACTS=true`; setup-v4 does not create a separate
621
+ `REVIEWSENSEI_UPLOAD_ARTIFACTS=true`; setup-v5 does not create a separate
620
622
  version artifact. See [installation and migration](docs/installation.md) and
621
623
  the reviewable
622
- [`setup-v4 example`](examples/github-actions/review-sensei-review.yml).
624
+ [`setup-v5 example`](examples/github-actions/review-sensei-review.yml).
623
625
 
624
626
  ## Concurrency policy
625
627
 
@@ -0,0 +1,241 @@
1
+ CHANGELOG.md
2
+ CODE_OF_CONDUCT.md
3
+ CONTRIBUTING.md
4
+ LICENSE
5
+ MANIFEST.in
6
+ README.md
7
+ SECURITY.md
8
+ SUPPORT.md
9
+ pyproject.toml
10
+ setup.py
11
+ docs/architecture.md
12
+ docs/community.md
13
+ docs/data-handling.md
14
+ docs/diagnostics.md
15
+ docs/evaluation.md
16
+ docs/github-app-auth.md
17
+ docs/github-app-registration.md
18
+ docs/installation.md
19
+ docs/openrouter-qualification.md
20
+ docs/ownership-and-licensing.md
21
+ docs/patch-suggestions.md
22
+ docs/protection-policy.md
23
+ docs/public-contracts.md
24
+ docs/releasing.md
25
+ docs/adr/0001-provider-neutral-review-engine.md
26
+ docs/adr/0002-repository-local-review-learnings.md
27
+ docs/adr/0003-review-concurrency-policy.md
28
+ docs/adr/0004-structured-review-stages.md
29
+ docs/adr/0005-lens-context-sources.md
30
+ docs/adr/0006-hosted-github-app-architecture.md
31
+ docs/adr/0007-bound-untrusted-review-inputs-and-publisher-outputs.md
32
+ docs/adr/0008-versioned-public-schemas-and-compatibility.md
33
+ docs/adr/0009-ci-quality-supply-chain-gates.md
34
+ docs/adr/0010-secure-package-release-engineering-and-provenance.md
35
+ docs/adr/0011-portable-immutable-github-actions-workflow.md
36
+ docs/adr/0012-privacy-safe-review-quality-evaluation.md
37
+ docs/adr/0013-github-app-jwt-installation-auth.md
38
+ docs/adr/0014-github-app-setup-bootstrap.md
39
+ docs/adr/0015-oidc-installation-token-broker.md
40
+ docs/adr/0016-product-identity-rename-to-reviewsensei.md
41
+ docs/adr/0019-reviewsensei-dev-landing-page.md
42
+ docs/adr/0020-cloudflare-github-app-package.md
43
+ docs/adr/0021-versioned-github-app-setup-migrations.md
44
+ docs/adr/0022-actions-publication-learning-and-conversations.md
45
+ docs/adr/0023-pypi-first-github-package-fallback.md
46
+ docs/adr/0024-tag-only-setup-v4-channel.md
47
+ docs/adr/0025-cloud-local-feature-parity-and-conversation-reactions.md
48
+ docs/adr/0026-stable-reviewsensei-learning-pull-request-identity-and-reconciliation.md
49
+ docs/adr/0027-opt-in-app-approvals-for-clean-pull-request-reviews.md
50
+ docs/adr/0028-bounded-review-output-recovery.md
51
+ docs/adr/0029-finding-classification-and-lens-presentation.md
52
+ docs/adr/0030-gate-app-approvals-on-resolved-review-threads-and-exact-head-review-safety.md
53
+ docs/adr/0031-npm-launcher-and-standalone-platform-packages.md
54
+ docs/adr/0032-blocking-finding-classification-for-approvals.md
55
+ docs/adr/0033-protection-and-findings-gates.md
56
+ docs/adr/0034-ai-decided-review-thread-resolution.md
57
+ docs/adr/0035-request-changes-for-blocking-findings.md
58
+ docs/adr/0036-learning-lifecycle-diagnostics-and-feedback.md
59
+ docs/adr/0037-symbol-aware-source-context.md
60
+ docs/adr/0038-release-compatibility-manifest.md
61
+ docs/adr/0039-verify-candidate-findings-before-publication.md
62
+ docs/adr/0040-community-managed-enterprise-boundary.md
63
+ docs/adr/0041-production-provider-adapters-and-per-stage-profiles.md
64
+ docs/adr/0042-incremental-reviews-and-finding-lifecycle.md
65
+ docs/adr/0043-structured-run-outcomes-budgets-and-publication-recovery.md
66
+ docs/adr/0044-bounded-large-change-coverage-and-deletion-aware-findings.md
67
+ docs/adr/0045-openrouter-trusted-configuration.md
68
+ docs/adr/0046-evidence-based-blocker-admission-and-review-loop-convergence.md
69
+ docs/adr/0047-durable-review-session-ledger.md
70
+ docs/adr/0048-baseline-aware-verification.md
71
+ docs/adr/0049-automation-admission-and-handoff.md
72
+ docs/adr/0050-maintainer-disposition-and-handoff-status.md
73
+ docs/adr/0051-sequential-evaluation-and-shadowing.md
74
+ docs/adr/0052-logical-review-transaction-across-analysis-and-publication.md
75
+ docs/adr/0053-bounded-durable-convergence-history.md
76
+ docs/adr/0054-observed-convergence-acceptance-evidence.md
77
+ docs/adr/0055-merge-focused-default-and-legacy-retirement.md
78
+ docs/adr/README.md
79
+ docs/architecture/index.md
80
+ docs/process/adr-process.md
81
+ docs/process/index.md
82
+ docs/site/CNAME
83
+ docs/site/MAINTAINERS.md
84
+ docs/site/index.html
85
+ docs/site/robots.txt
86
+ docs/site/sitemap.xml
87
+ docs/site/assets/favicon.svg
88
+ docs/site/assets/site.css
89
+ docs/site/data/site-manifest.json
90
+ docs/site/examples/index.html
91
+ docs/site/getting-started/index.html
92
+ docs/site/providers/index.html
93
+ docs/site/releases/index.html
94
+ docs/site/schemas/site-manifest.schema.json
95
+ docs/site/security/index.html
96
+ evaluation/v1/README.md
97
+ evaluation/v1/corpus.json
98
+ evaluation/v1/diffs/clean-guard.patch
99
+ evaluation/v1/diffs/layer-violation.patch
100
+ evaluation/v1/diffs/malformed-provider-output.patch
101
+ evaluation/v1/diffs/missing-regression-test.patch
102
+ evaluation/v1/diffs/off-by-one.patch
103
+ evaluation/v1/diffs/shell-injection.patch
104
+ evaluation/v1/expected/clean-guard.review.json
105
+ evaluation/v1/expected/layer-violation.review.json
106
+ evaluation/v1/expected/missing-regression-test.review.json
107
+ evaluation/v1/expected/off-by-one.review.json
108
+ evaluation/v1/expected/shell-injection.review.json
109
+ evaluation/v1/responses/clean-guard.json
110
+ evaluation/v1/responses/layer-violation.json
111
+ evaluation/v1/responses/malformed-provider-output.json
112
+ evaluation/v1/responses/missing-regression-test.json
113
+ evaluation/v1/responses/off-by-one.json
114
+ evaluation/v1/responses/shell-injection.json
115
+ evaluation/v1/sample-repository/base/src/command.py
116
+ evaluation/v1/sample-repository/base/src/guard.py
117
+ evaluation/v1/sample-repository/base/src/order.py
118
+ evaluation/v1/sample-repository/base/src/pagination.py
119
+ evaluation/v1/sample-repository/base/src/runner.py
120
+ evaluation/v1/sample-repository/head/src/command.py
121
+ evaluation/v1/sample-repository/head/src/guard.py
122
+ evaluation/v1/sample-repository/head/src/order.py
123
+ evaluation/v1/sample-repository/head/src/pagination.py
124
+ evaluation/v1/sample-repository/head/src/runner.py
125
+ examples/categories/01-correctness.json
126
+ examples/categories/02-security.json
127
+ examples/categories/03-architecture.json
128
+ examples/github-actions/review-sensei-review.yml
129
+ examples/github-actions/review-sensei-uninstall.yml
130
+ examples/stages/01-summary.json
131
+ examples/stages/02-comments.json
132
+ examples/stages/03-learning-proposals.json
133
+ src/review_sensei/__init__.py
134
+ src/review_sensei/__main__.py
135
+ src/review_sensei/baseline.py
136
+ src/review_sensei/cli.py
137
+ src/review_sensei/concurrency.py
138
+ src/review_sensei/context.py
139
+ src/review_sensei/convergence.py
140
+ src/review_sensei/conversation.py
141
+ src/review_sensei/coverage.py
142
+ src/review_sensei/diagnostics.py
143
+ src/review_sensei/diff.py
144
+ src/review_sensei/disposition.py
145
+ src/review_sensei/errors.py
146
+ src/review_sensei/evaluation.py
147
+ src/review_sensei/learnings.py
148
+ src/review_sensei/models.py
149
+ src/review_sensei/openrouter_qualification.py
150
+ src/review_sensei/outcomes.py
151
+ src/review_sensei/patches.py
152
+ src/review_sensei/planning.py
153
+ src/review_sensei/presentation.py
154
+ src/review_sensei/provider_config.py
155
+ src/review_sensei/release_manifest.py
156
+ src/review_sensei/schemas.py
157
+ src/review_sensei/sequence.py
158
+ src/review_sensei/service.py
159
+ src/review_sensei/session.py
160
+ src/review_sensei/stages.py
161
+ src/review_sensei/validation.py
162
+ src/review_sensei/verifier.py
163
+ src/review_sensei/workflow.py
164
+ src/review_sensei/default_categories/01-correctness.json
165
+ src/review_sensei/default_categories/02-security.json
166
+ src/review_sensei/default_categories/03-architecture.json
167
+ src/review_sensei/default_categories/03-maintainability.json
168
+ src/review_sensei/default_categories/04-tests.json
169
+ src/review_sensei/default_stages/01-default-review.json
170
+ src/review_sensei/hosting/__init__.py
171
+ src/review_sensei/hosting/openrouter_workflow.py
172
+ src/review_sensei/hosting/github/__init__.py
173
+ src/review_sensei/hosting/github/application.py
174
+ src/review_sensei/hosting/github/approval.py
175
+ src/review_sensei/hosting/github/auth.py
176
+ src/review_sensei/hosting/github/broker.py
177
+ src/review_sensei/hosting/github/broker_client.py
178
+ src/review_sensei/hosting/github/conversation.py
179
+ src/review_sensei/hosting/github/errors.py
180
+ src/review_sensei/hosting/github/http.py
181
+ src/review_sensei/hosting/github/jwt.py
182
+ src/review_sensei/hosting/github/learning_pr.py
183
+ src/review_sensei/hosting/github/observed.py
184
+ src/review_sensei/hosting/github/oidc.py
185
+ src/review_sensei/hosting/github/publication.py
186
+ src/review_sensei/hosting/github/session_ledger.py
187
+ src/review_sensei/hosting/github/setup.py
188
+ src/review_sensei/hosting/github/trigger.py
189
+ src/review_sensei/hosting/github/webhooks.py
190
+ src/review_sensei/hosting/github/fixtures/__init__.py
191
+ src/review_sensei/hosting/github/fixtures/historical-v4-uninstall.yml
192
+ src/review_sensei/hosting/github/fixtures/merge-focused-v4-caller.yml
193
+ src/review_sensei/hosting/github/fixtures/merge-focused-v4-config.yml
194
+ src/review_sensei/hosting/github/fixtures/released-v4-resolve-trigger-runner-switch.yml
195
+ src/review_sensei/providers/__init__.py
196
+ src/review_sensei/providers/base.py
197
+ src/review_sensei/providers/fixture.py
198
+ src/review_sensei/providers/ollama.py
199
+ src/review_sensei/providers/openai_compatible.py
200
+ src/review_sensei/providers/openrouter.py
201
+ src/review_sensei/providers/profiles.py
202
+ src/review_sensei/providers/registry.py
203
+ src/review_sensei/providers/routing.py
204
+ src/review_sensei/providers/transport.py
205
+ src/review_sensei/schemas/blocker-admission.schema.json
206
+ src/review_sensei/schemas/canary-binding.schema.json
207
+ src/review_sensei/schemas/candidate-finding.schema.json
208
+ src/review_sensei/schemas/channel-promotion.schema.json
209
+ src/review_sensei/schemas/compatibility-manifest.schema.json
210
+ src/review_sensei/schemas/concurrency-plan.schema.json
211
+ src/review_sensei/schemas/convergence-sequence-report.schema.json
212
+ src/review_sensei/schemas/conversation-reply.schema.json
213
+ src/review_sensei/schemas/coverage-manifest.schema.json
214
+ src/review_sensei/schemas/evaluation-corpus.schema.json
215
+ src/review_sensei/schemas/evaluation-report.schema.json
216
+ src/review_sensei/schemas/later-finding-classification.schema.json
217
+ src/review_sensei/schemas/learning-entry.schema.json
218
+ src/review_sensei/schemas/learning-feedback.schema.json
219
+ src/review_sensei/schemas/learning-proposal.schema.json
220
+ src/review_sensei/schemas/observed-convergence-report.schema.json
221
+ src/review_sensei/schemas/openrouter-qualification.schema.json
222
+ src/review_sensei/schemas/promotion-record.schema.json
223
+ src/review_sensei/schemas/recovery-artifact.schema.json
224
+ src/review_sensei/schemas/review-category.schema.json
225
+ src/review_sensei/schemas/review-comment.schema.json
226
+ src/review_sensei/schemas/review-convergence-policy.schema.json
227
+ src/review_sensei/schemas/review-result.schema.json
228
+ src/review_sensei/schemas/review-round-decision.schema.json
229
+ src/review_sensei/schemas/review-stage.schema.json
230
+ src/review_sensei/schemas/review-transaction.schema.json
231
+ src/review_sensei/schemas/run-outcome.schema.json
232
+ src/review_sensei/schemas/session-record.schema.json
233
+ src/review_sensei/schemas/stage.schema.json
234
+ src/review_sensei/schemas/verification-result.schema.json
235
+ src/review_sensei/schemas/verification-scope.schema.json
236
+ tests/fake_github_http.py
237
+ tests/packaging_guard.py
238
+ tests/dist_safe/test_distribution_contract.py
239
+ tests/dist_safe/test_install_smoke.py
240
+ tests/downstream/test_acceptance.py
241
+ tests/fixtures/distribution-contract.json
@@ -0,0 +1,3 @@
1
+ certifi>=2024.8.30
2
+ cryptography<51,>=44
3
+ jsonschema<5,>=4.18
package/bin/review-sensei CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reviewsensei/cli-linux-x64-gnu",
3
- "version": "0.6.0",
3
+ "version": "0.6.7",
4
4
  "description": "ReviewSensei native CLI for glibc Linux x64",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,169 +0,0 @@
1
- ../../../bin/review-sensei,sha256=2Ibm0P5EKordiy9Pw_qN4PTBiigCMiSmkaL5pZkIsmE,198
2
- review_sensei-0.6.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
3
- review_sensei-0.6.0.dist-info/METADATA,sha256=jIL95kaZk2VbSrif6lyYjLt5cgkLvoIrWI3vji_L9gA,33276
4
- review_sensei-0.6.0.dist-info/RECORD,,
5
- review_sensei-0.6.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- review_sensei-0.6.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
7
- review_sensei-0.6.0.dist-info/direct_url.json,sha256=MLTTo3vw-M2WuSfouuDS4OG2zTcNnARwgXU_8_RWYWw,79
8
- review_sensei-0.6.0.dist-info/entry_points.txt,sha256=Eki1ToC6hiOv8PMEAd2Cnbh5WWstVzzzf0XmHBHzpMQ,57
9
- review_sensei-0.6.0.dist-info/licenses/LICENSE,sha256=7r0bNOlOZSzaZCawckTi-FGJb0Doo4MeWmeL4lasdGs,1074
10
- review_sensei-0.6.0.dist-info/top_level.txt,sha256=VCF4gJIJPP3MPJntoITDjMhJ8MUZfVLj-z3-VUQ9XDY,14
11
- review_sensei/__init__.py,sha256=SjGgpE_UyzpRLtBw2ihYf-sirUjfmTWTt8m5Ng8f0Ds,9858
12
- review_sensei/__main__.py,sha256=MHKZ_ae3fSLGTLUUMOx15fWdeOnJSHhq-zslRP5F5Lc,79
13
- review_sensei/__pycache__/__init__.cpython-311.pyc,,
14
- review_sensei/__pycache__/__main__.cpython-311.pyc,,
15
- review_sensei/__pycache__/baseline.cpython-311.pyc,,
16
- review_sensei/__pycache__/cli.cpython-311.pyc,,
17
- review_sensei/__pycache__/concurrency.cpython-311.pyc,,
18
- review_sensei/__pycache__/context.cpython-311.pyc,,
19
- review_sensei/__pycache__/convergence.cpython-311.pyc,,
20
- review_sensei/__pycache__/conversation.cpython-311.pyc,,
21
- review_sensei/__pycache__/coverage.cpython-311.pyc,,
22
- review_sensei/__pycache__/diagnostics.cpython-311.pyc,,
23
- review_sensei/__pycache__/diff.cpython-311.pyc,,
24
- review_sensei/__pycache__/disposition.cpython-311.pyc,,
25
- review_sensei/__pycache__/errors.cpython-311.pyc,,
26
- review_sensei/__pycache__/evaluation.cpython-311.pyc,,
27
- review_sensei/__pycache__/learnings.cpython-311.pyc,,
28
- review_sensei/__pycache__/models.cpython-311.pyc,,
29
- review_sensei/__pycache__/openrouter_qualification.cpython-311.pyc,,
30
- review_sensei/__pycache__/outcomes.cpython-311.pyc,,
31
- review_sensei/__pycache__/patches.cpython-311.pyc,,
32
- review_sensei/__pycache__/planning.cpython-311.pyc,,
33
- review_sensei/__pycache__/presentation.cpython-311.pyc,,
34
- review_sensei/__pycache__/provider_config.cpython-311.pyc,,
35
- review_sensei/__pycache__/release_manifest.cpython-311.pyc,,
36
- review_sensei/__pycache__/schemas.cpython-311.pyc,,
37
- review_sensei/__pycache__/sequence.cpython-311.pyc,,
38
- review_sensei/__pycache__/service.cpython-311.pyc,,
39
- review_sensei/__pycache__/session.cpython-311.pyc,,
40
- review_sensei/__pycache__/stages.cpython-311.pyc,,
41
- review_sensei/__pycache__/validation.cpython-311.pyc,,
42
- review_sensei/__pycache__/verifier.cpython-311.pyc,,
43
- review_sensei/__pycache__/workflow.cpython-311.pyc,,
44
- review_sensei/baseline.py,sha256=nwIoiNQNGA8QxYU3ZlgPuwfSpjNxy4UnUt8LkRaT1GQ,50600
45
- review_sensei/cli.py,sha256=GzAa3aIwcMFw3bCnOU4tIp8tkHNUBxqJltOomkrO2AI,115654
46
- review_sensei/concurrency.py,sha256=RY91n5Csl4qLHxzWEkwR07OdTfzvedXe-a-3fum15-U,19570
47
- review_sensei/context.py,sha256=h6NAcXEEtA8gHsnetMVCOTX0EwVLBp_0TDfYgxsH1uM,93829
48
- review_sensei/convergence.py,sha256=EklceU9CADa9ohwggkUzU2U2eQLJlgT1bZkcY07_5ds,51851
49
- review_sensei/conversation.py,sha256=JkFzvbw6wvsNe5jApKAoYa6Ri0ikgyY8Bn385bhuowo,7300
50
- review_sensei/coverage.py,sha256=2xllGowcindzQSp5DBPIWnThQiTZrS2zneSq9-G3Rn8,12622
51
- review_sensei/default_categories/01-correctness.json,sha256=pKW2dDEL6U14ZdOKDPThayeZUHja3oIDeR_Crvd0a6I,203
52
- review_sensei/default_categories/02-security.json,sha256=SlwAg_7AfnadeVlNzpTLzdmz-5t0PUJATA-pt3um46I,223
53
- review_sensei/default_categories/03-architecture.json,sha256=QNlka4RLtD53SZLXZQD1p3foMStdGWoyHLTsdrYVnVw,782
54
- review_sensei/default_categories/03-maintainability.json,sha256=5av_QSJNK7zZTJ91pd0aRivzt4hI5frsxKI3IjkKi7g,221
55
- review_sensei/default_categories/04-tests.json,sha256=8_WPsJfim4jNXRF6s3jRhh2JKTqqd-uJXRiZgmy5WU0,200
56
- review_sensei/default_stages/01-default-review.json,sha256=5DbAwsstTqWxhF1y1BWVISKpQaN4mTMD5zW75tBR0Qc,3447
57
- review_sensei/diagnostics.py,sha256=rxNHNyy1RshmiBSgicsr3jlIvAc6iuFhA8MixT-UgdI,43826
58
- review_sensei/diff.py,sha256=0XUh5RPkUKdp0Tv1tQhhGM5qpl-oOi5NZsC0URbBq2A,31228
59
- review_sensei/disposition.py,sha256=lCSJtMMKbH99eR7pfa6KO0lCDR2IvOqbFF-A6y3VOQE,24264
60
- review_sensei/errors.py,sha256=jvgyDi6a2jZV0WEE6ChbmqxTYrA6iE5U4xRaVGU0CvM,2521
61
- review_sensei/evaluation.py,sha256=ZUUjqfuAcJm16EujlbrxYRQdiSljF1GplPOSyQTJyi0,57873
62
- review_sensei/hosting/__init__.py,sha256=PX5u_e8Q4sgy4mwXUUjhH0A_qLiXALSKy0MLhd8IXyA,83
63
- review_sensei/hosting/__pycache__/__init__.cpython-311.pyc,,
64
- review_sensei/hosting/__pycache__/openrouter_workflow.cpython-311.pyc,,
65
- review_sensei/hosting/github/__init__.py,sha256=4E0sF9hynByDXqSfrFuDElZR_EWNkYdKRxfJ7n4UOac,5263
66
- review_sensei/hosting/github/__pycache__/__init__.cpython-311.pyc,,
67
- review_sensei/hosting/github/__pycache__/application.cpython-311.pyc,,
68
- review_sensei/hosting/github/__pycache__/approval.cpython-311.pyc,,
69
- review_sensei/hosting/github/__pycache__/auth.cpython-311.pyc,,
70
- review_sensei/hosting/github/__pycache__/broker.cpython-311.pyc,,
71
- review_sensei/hosting/github/__pycache__/broker_client.cpython-311.pyc,,
72
- review_sensei/hosting/github/__pycache__/conversation.cpython-311.pyc,,
73
- review_sensei/hosting/github/__pycache__/errors.cpython-311.pyc,,
74
- review_sensei/hosting/github/__pycache__/http.cpython-311.pyc,,
75
- review_sensei/hosting/github/__pycache__/jwt.cpython-311.pyc,,
76
- review_sensei/hosting/github/__pycache__/learning_pr.cpython-311.pyc,,
77
- review_sensei/hosting/github/__pycache__/oidc.cpython-311.pyc,,
78
- review_sensei/hosting/github/__pycache__/publication.cpython-311.pyc,,
79
- review_sensei/hosting/github/__pycache__/session_ledger.cpython-311.pyc,,
80
- review_sensei/hosting/github/__pycache__/setup.cpython-311.pyc,,
81
- review_sensei/hosting/github/__pycache__/trigger.cpython-311.pyc,,
82
- review_sensei/hosting/github/__pycache__/webhooks.cpython-311.pyc,,
83
- review_sensei/hosting/github/application.py,sha256=WQeQNMjWnnYHqiC-IlKK-UJ4vPbpO2F_FhNzQoh-7yk,66489
84
- review_sensei/hosting/github/approval.py,sha256=nrrDvwZnDsTuLZpKLdBDKQKdhuR2SyW5OnPtlcgLQ_U,4085
85
- review_sensei/hosting/github/auth.py,sha256=ubAA_XrveDxaXN76Prf88zotqFbRQhQRwqVhKxiN8lU,18541
86
- review_sensei/hosting/github/broker.py,sha256=fXUu82XJ_Q_mVre8DGkBK8XdPFGrRk0i000PYUU1kvA,17495
87
- review_sensei/hosting/github/broker_client.py,sha256=1HF1DmUbl45rh0QLfWk3xS1Pm3A_ibc5GBO9Txdxr1U,16175
88
- review_sensei/hosting/github/conversation.py,sha256=zlUDVv3fI9D12cnRHd_B8vt0El5fr-Ukn1IXO0v9OT0,61320
89
- review_sensei/hosting/github/errors.py,sha256=x3HjgRz6ynCKSriZf4zX6eNWpH1d-VlpYW-AFvYxn1M,5167
90
- review_sensei/hosting/github/fixtures/__init__.py,sha256=SSULGCSjxqzzIe6zT63fdQeQzqzbgdSXwwruycFLAO4,81
91
- review_sensei/hosting/github/fixtures/__pycache__/__init__.cpython-311.pyc,,
92
- review_sensei/hosting/github/fixtures/released-v4-resolve-trigger-runner-switch.yml,sha256=IixSDwb_PeRNV8XEF27OaNBoLkIsRd8SHHGUOOxBX14,15853
93
- review_sensei/hosting/github/http.py,sha256=VDlKR-7jsYjvOO3JjMC8-hPRCu68I8JdDsijOLxpr-Q,8718
94
- review_sensei/hosting/github/jwt.py,sha256=7WwBnU7asbMTyCnZNLetQqNMVyrRGE06WKq2eDuoBYM,4446
95
- review_sensei/hosting/github/learning_pr.py,sha256=hXzlxPlk9XMxmqpFq1yVO6_4jrlzIvntio6F4j8odA4,109643
96
- review_sensei/hosting/github/oidc.py,sha256=ovRu4SgpnAvgQ00sxIELvQm5gaN-ByJnpmdS_P8_8Tk,12940
97
- review_sensei/hosting/github/publication.py,sha256=ptv5nvem_F2ZbAr8zxQOmFTLSDCCKnT4iz4TQkB6vz4,82729
98
- review_sensei/hosting/github/session_ledger.py,sha256=MBCYBCGWgUv6Yxh9pdBJgJLYoJRTWAGRG_OWtm9gLIk,30314
99
- review_sensei/hosting/github/setup.py,sha256=ufMbLc8Lvj9-JKvz3Cfs-BERrsEqtpGbWunjaed0P8Q,90647
100
- review_sensei/hosting/github/trigger.py,sha256=FK9lNcQ8J3QnyYOt462eAHI8lLNVT3H56Oh0Aw7QXiE,10688
101
- review_sensei/hosting/github/webhooks.py,sha256=alQk_EIFB7dbO9SMJv7DiuIPjk8fixmwmlvb_W8DPCQ,13335
102
- review_sensei/hosting/openrouter_workflow.py,sha256=37N52t_wfS5rpAp2NLbEXIr-CMmHaFR5cv1CKuFjlnQ,1284
103
- review_sensei/learnings.py,sha256=oBqp1Q1Kv3D4JdQx6JpwN1oiDsgblmVLFIgKv0j7Pe8,20925
104
- review_sensei/models.py,sha256=g8-7wawsHptobkrLP2ECcdx8xKjbMayT6NDoetfmKts,89335
105
- review_sensei/openrouter_qualification.py,sha256=9LpD691Z7KtvFRpl6Dwj82RMBVdToB0J6RXUWvSAhDg,29599
106
- review_sensei/outcomes.py,sha256=ZsTGE5WO-Cou-93xDeoXowBcESCooY6lbCdJnPLwiNU,31345
107
- review_sensei/patches.py,sha256=Xr-ZbzoIgarkOgwa7KjOBGIvezYU_w7KWDtKkZPrHaI,15618
108
- review_sensei/planning.py,sha256=2X4xQSQx9khAwyQXw-ClORPEGJgji5nH1-PYv3DphNs,22641
109
- review_sensei/presentation.py,sha256=4kYVGoO0YEmCo2Rix5THKeFjvqRR_SfZQIcTXDE7Vnw,6395
110
- review_sensei/provider_config.py,sha256=ytcss6IDmIPe904XgmSV5sKXIBXusDFXswSwf1sJhts,15922
111
- review_sensei/providers/__init__.py,sha256=a4TU6Wzn2Jgv4e9GLXpzD_I-0ZFm97_OA7uK2pIc_Vw,756
112
- review_sensei/providers/__pycache__/__init__.cpython-311.pyc,,
113
- review_sensei/providers/__pycache__/base.cpython-311.pyc,,
114
- review_sensei/providers/__pycache__/fixture.cpython-311.pyc,,
115
- review_sensei/providers/__pycache__/ollama.cpython-311.pyc,,
116
- review_sensei/providers/__pycache__/openai_compatible.cpython-311.pyc,,
117
- review_sensei/providers/__pycache__/openrouter.cpython-311.pyc,,
118
- review_sensei/providers/__pycache__/profiles.cpython-311.pyc,,
119
- review_sensei/providers/__pycache__/registry.cpython-311.pyc,,
120
- review_sensei/providers/__pycache__/routing.cpython-311.pyc,,
121
- review_sensei/providers/__pycache__/transport.cpython-311.pyc,,
122
- review_sensei/providers/base.py,sha256=BKLeYm85RlHta2XfgJjzjxD8Y-rTfLRCtqSODHiSnK8,1961
123
- review_sensei/providers/fixture.py,sha256=k0mh-xIPgKQIrkMkQsqR5P1oyDOzTiHrWuB_qXQ7ljI,1508
124
- review_sensei/providers/ollama.py,sha256=7mnc4xqQDnv1hV-QVHDjb3ye5Tx7IbB_9EYi7YJ-p8c,10466
125
- review_sensei/providers/openai_compatible.py,sha256=D4Yny3znO8IMehGh4Wq9DHgBzzLR0l4KlqzNZY2Gv2c,18963
126
- review_sensei/providers/openrouter.py,sha256=BTmafQ4vs07xJAdmSVom9AeX42Pvqj2331Gx1zcgxAA,22641
127
- review_sensei/providers/profiles.py,sha256=afJ0MdlOuv0sUSfHamg1B_7gIK_l5c_o0Nbxe2U4GoY,9119
128
- review_sensei/providers/registry.py,sha256=jlEzbgo2J7GNhqwYGPkw0DiMHejIW8GTNFi7RIVRdqE,11805
129
- review_sensei/providers/routing.py,sha256=-2dngW86e7rfLtBix6YT7p3dfMKfx76qSb2ecK0XwWQ,6879
130
- review_sensei/providers/transport.py,sha256=tHME7xUK0HUXcvBAzUdmoSZmepurLH-IZI2KMQsgic4,2849
131
- review_sensei/release_manifest.py,sha256=UEmeW8Jt_XoUB1VYn7NCaGME_vNzrPziCb-JkXk70-U,36812
132
- review_sensei/schemas.py,sha256=kVa3qn14NSLCSlzkTNseQkZDvLf3TS58uwpauLDhB5Y,2655
133
- review_sensei/schemas/blocker-admission.schema.json,sha256=sL9Oh928g18wDsuFCgojjT-ipEdz23aLCfIKielLCb8,2703
134
- review_sensei/schemas/canary-binding.schema.json,sha256=Sw3pMgzQJ7nVaf6hiDlDAqsDulh1cNWo-Z1HIHW-CcM,772
135
- review_sensei/schemas/candidate-finding.schema.json,sha256=xLvcGSsDBJYDmuO19nzY0WnRcfZYMaV3aShR72lIZnE,1923
136
- review_sensei/schemas/channel-promotion.schema.json,sha256=lPCEG7cieCTnr50IcJdv9mE_uqSwvidZklWlCeID5Ek,1055
137
- review_sensei/schemas/compatibility-manifest.schema.json,sha256=1b9YBgn7wpkApKeLpN8KO-B9DOER8_6vMWjJJiSCtis,1814
138
- review_sensei/schemas/concurrency-plan.schema.json,sha256=IbgTC-gKifoVaROfM9qBndYwEeFREgouNJBYX6exl_M,804
139
- review_sensei/schemas/convergence-sequence-report.schema.json,sha256=H7RIruxgdac6ve2zEOaLslqW7L4JUVTdPPw1GaUgYLc,2251
140
- review_sensei/schemas/conversation-reply.schema.json,sha256=ur-4GvpInOpMS9C5olFSZQJDSmh7EX6edUeFiDjPVCQ,661
141
- review_sensei/schemas/coverage-manifest.schema.json,sha256=GBmStjHJ_d-Xu2cTwpomCvvB2SzVGmOeUU4FTOb0E-Y,2666
142
- review_sensei/schemas/evaluation-corpus.schema.json,sha256=Nwzyt4eJtle3pCkrGJoEFzhTqPox59Y3HVJBjSgH-lE,7589
143
- review_sensei/schemas/evaluation-report.schema.json,sha256=EaJ2CE6co4RRim0DS6dFTV5tvQHR_TWQXo4_TXjJZo4,9624
144
- review_sensei/schemas/later-finding-classification.schema.json,sha256=81Rxm-Es_NwIW4FqSEMMwfVPb-vCTFRh2rOxtXDMEvQ,2011
145
- review_sensei/schemas/learning-entry.schema.json,sha256=XyC-59f_cjZHSDoaJIhqbwTrMwQaJwjn9BdOwatr420,1735
146
- review_sensei/schemas/learning-feedback.schema.json,sha256=D8GhFCf931axkR2v6597NuBFyaw7hc7pSFlw1-G8bOs,1869
147
- review_sensei/schemas/learning-proposal.schema.json,sha256=07c43l-WW4sR57dx9ILxPjGRykqxPIy53ShDnQcSD44,625
148
- review_sensei/schemas/openrouter-qualification.schema.json,sha256=c0p4_IW3c32r25BPCLG8KFU69CQ3VZxsQlOpevT2C0w,4095
149
- review_sensei/schemas/promotion-record.schema.json,sha256=LyOrpYhl71rTgKCdMlqEdh2DvCJo3J0kEjpp1ntdjmY,2363
150
- review_sensei/schemas/recovery-artifact.schema.json,sha256=jmR1D1cvoqQnIOrX-graPeNz5rFs-Dowehs4x-LN-oA,1228
151
- review_sensei/schemas/review-category.schema.json,sha256=jLsQnporX4D3oK6_brtH0qTPp3bKRj4adTZBiWvM9Hg,2112
152
- review_sensei/schemas/review-comment.schema.json,sha256=G-sCjlxHSd07vkBQv_yq4N9-5_FnjAZzsy2WM15asAA,1105
153
- review_sensei/schemas/review-convergence-policy.schema.json,sha256=ji0GtfaKIU4apmnpB8iwqOTRKYdAkbpeKFgUWFDcOso,1299
154
- review_sensei/schemas/review-result.schema.json,sha256=UhwcjelfGygPmtsYIot9DIe3vQlDDUq7f8dOSpxxSrk,4740
155
- review_sensei/schemas/review-round-decision.schema.json,sha256=LokOKl8e3NBqsAFboI4jNfNexh20oiERA-BT-R1iagU,1536
156
- review_sensei/schemas/review-stage.schema.json,sha256=W0pgHzPtuxOJGxoXlCzmZcN4jgrQ6wPSb36euzJ0UgA,4540
157
- review_sensei/schemas/review-transaction.schema.json,sha256=K2OP7xIpW2MRpC2GO0lqwRc2L0jUGc2w4WTdpN3UQLU,2144
158
- review_sensei/schemas/run-outcome.schema.json,sha256=UO3NGJ6Em3XtEZqQa2b4m1qmp4qrnE3aAqJ9L95OW4Y,1715
159
- review_sensei/schemas/session-record.schema.json,sha256=zsHHPuNzzZfYy-r3tpt_roGgIaEpweqP9XNFWmaFq_Q,11637
160
- review_sensei/schemas/stage.schema.json,sha256=rBTBzmFKqiPoGG654Th4g49HajlEdFZzMzOu4dMCl-I,2806
161
- review_sensei/schemas/verification-result.schema.json,sha256=rAPyqTJS1ZFfDsyZh1Jqi7AGZkuxP2mlDV8Upk-eqpk,611
162
- review_sensei/schemas/verification-scope.schema.json,sha256=u5O3xkGfdN3scBgLwR77j4NsNRbstPBo2QLQNfF5UtI,2061
163
- review_sensei/sequence.py,sha256=nOKF2tUZr2OTz2-lJmhDzoFeGnIgnDY60aA5oyrc3sM,7624
164
- review_sensei/service.py,sha256=McijpxSPF-_1n4l5WdU0p7neo8zHL7NZL073qLLbEDc,69143
165
- review_sensei/session.py,sha256=Du21s2mRqIe1IWpqZHdrSP1pRzxmN9ODYUM57woEet4,126787
166
- review_sensei/stages.py,sha256=Sif3RbaH1IM_a7HoY7Dt1krCJD_roDBs9UA-cWCd4Lg,23684
167
- review_sensei/validation.py,sha256=6sfJCvv6hMPXrTPIEP-OI6sEJO60FyFbIZ30FFRORSI,12051
168
- review_sensei/verifier.py,sha256=ZNDQiK3Q90PYU77qbW69f4ta3M8Gg1jNP1rokYIEeuU,34052
169
- review_sensei/workflow.py,sha256=bUUBUyTEA9EFuKtWUDMC3rTWwBu-0SUdfB0OmjokNQQ,22912
@@ -1,5 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: setuptools (84.0.0)
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any
5
-
@@ -1 +0,0 @@
1
- {"dir_info": {}, "url": "file:///home/runner/work/review-sensei/review-sensei"}
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Mohamad Alsabbagh
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.