@reviewsensei/cli-win32-x64 0.6.7 → 0.6.9

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 (18) hide show
  1. package/bin/_internal/base_library.zip +0 -0
  2. package/bin/_internal/jsonschema-4.26.0.dist-info/RECORD +1 -1
  3. package/bin/_internal/review_sensei/schemas/convergence-sequence-report.schema.json +6 -8
  4. package/bin/_internal/review_sensei/schemas/observed-convergence-report.schema.json +7 -7
  5. package/bin/_internal/review_sensei/schemas/review-convergence-policy.schema.json +0 -12
  6. package/bin/_internal/review_sensei/schemas/review-round-decision.schema.json +2 -17
  7. package/bin/_internal/review_sensei/schemas/session-record.schema.json +4 -2
  8. package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/METADATA +118 -33
  9. package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/RECORD +37 -31
  10. package/bin/review-sensei.exe +0 -0
  11. package/package.json +1 -1
  12. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/INSTALLER +0 -0
  13. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/REQUESTED +0 -0
  14. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/WHEEL +0 -0
  15. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/direct_url.json +0 -0
  16. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/entry_points.txt +0 -0
  17. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/licenses/LICENSE +0 -0
  18. /package/bin/_internal/{review_sensei-0.6.7.dist-info → review_sensei-0.6.9.dist-info}/top_level.txt +0 -0
Binary file
@@ -1,4 +1,4 @@
1
- ../../Scripts/jsonschema.exe,sha256=G18rgsACCIGymhF1McjIqtTrQfHnF1c6y-J9_044dF0,108352
1
+ ../../Scripts/jsonschema.exe,sha256=iaTnC9ckEfdnjxm5_nql-1WN_IP6z-9eXevx8F06qZ8,108352
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,,
@@ -12,7 +12,6 @@
12
12
  "completed_verification_rounds",
13
13
  "handoffs",
14
14
  "no_progress_events",
15
- "cap_created_approval",
16
15
  "limitations"
17
16
  ],
18
17
  "properties": {
@@ -22,8 +21,9 @@
22
21
  "enum": ["legacy", "advisory", "merge-focused", "strict"]
23
22
  },
24
23
  "steps": {
24
+ "description": "Replayed attempts. The bound is a storage ceiling, not a review-count admission limit; sequences past the former 32-round validation bound serialize normally.",
25
25
  "type": "array",
26
- "maxItems": 32,
26
+ "maxItems": 1000000,
27
27
  "items": {
28
28
  "type": "object",
29
29
  "additionalProperties": false,
@@ -43,7 +43,6 @@
43
43
  "handoff_reason": {
44
44
  "type": ["string", "null"],
45
45
  "enum": [
46
- "round-budget-exhausted",
47
46
  "failed-attempt-budget-exhausted",
48
47
  "no-progress",
49
48
  "incomplete-coverage",
@@ -58,11 +57,10 @@
58
57
  }
59
58
  }
60
59
  },
61
- "completed_initial_reviews": {"type": "integer", "minimum": 0, "maximum": 32},
62
- "completed_verification_rounds": {"type": "integer", "minimum": 0, "maximum": 32},
63
- "handoffs": {"type": "integer", "minimum": 0, "maximum": 32},
64
- "no_progress_events": {"type": "integer", "minimum": 0, "maximum": 32},
65
- "cap_created_approval": {"type": "boolean"},
60
+ "completed_initial_reviews": {"type": "integer", "minimum": 0, "maximum": 1000000},
61
+ "completed_verification_rounds": {"type": "integer", "minimum": 0, "maximum": 1000000},
62
+ "handoffs": {"type": "integer", "minimum": 0, "maximum": 1000000},
63
+ "no_progress_events": {"type": "integer", "minimum": 0, "maximum": 1000000},
66
64
  "limitations": {
67
65
  "type": "array",
68
66
  "maxItems": 8,
@@ -4,14 +4,15 @@
4
4
  "title": "ReviewSensei observed convergence evidence report v1",
5
5
  "type": "object",
6
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"],
7
+ "required": ["schema_version", "mode", "events", "baseline_events", "command_events", "finding_metrics", "execution_metrics", "shadow_isolated", "evidence_identity", "approval_events", "cutover_status", "unmet_criteria", "limitations"],
8
8
  "properties": {
9
9
  "schema_version": {"const": "1.0"},
10
10
  "mode": {"type": "string", "enum": ["advisory", "merge-focused", "strict"]},
11
11
  "events": {
12
+ "description": "Observed attempts. The bound is a storage ceiling, not a review-count admission limit; sequences past the former 32-round validation bound serialize normally.",
12
13
  "type": "array",
13
14
  "minItems": 1,
14
- "maxItems": 32,
15
+ "maxItems": 1000000,
15
16
  "items": {
16
17
  "type": "object",
17
18
  "additionalProperties": false,
@@ -40,7 +41,7 @@
40
41
  }
41
42
  }
42
43
  },
43
- "baseline_events": {"type": "integer", "minimum": 0, "maximum": 32},
44
+ "baseline_events": {"type": "integer", "minimum": 0, "maximum": 1000000},
44
45
  "command_events": {"type": "array", "minItems": 2, "maxItems": 8, "items": {"type": "string", "minLength": 1, "maxLength": 128}},
45
46
  "finding_metrics": {
46
47
  "type": "object",
@@ -64,8 +65,8 @@
64
65
  "additionalProperties": false,
65
66
  "required": ["completed_rounds", "handoffs", "provider_calls", "failed_attempts"],
66
67
  "properties": {
67
- "completed_rounds": {"type": "integer", "minimum": 0, "maximum": 32},
68
- "handoffs": {"type": "integer", "minimum": 0, "maximum": 32},
68
+ "completed_rounds": {"type": "integer", "minimum": 0, "maximum": 1000000},
69
+ "handoffs": {"type": "integer", "minimum": 0, "maximum": 1000000},
69
70
  "provider_calls": {"type": "integer", "minimum": 0, "maximum": 512},
70
71
  "failed_attempts": {"type": "integer", "minimum": 0, "maximum": 32}
71
72
  }
@@ -84,8 +85,7 @@
84
85
  "command": {"type": "string", "minLength": 1, "maxLength": 256}
85
86
  }
86
87
  },
87
- "approval_events": {"type": ["integer", "null"], "minimum": 0, "maximum": 32},
88
- "cap_created_approval": {"type": ["boolean", "null"]},
88
+ "approval_events": {"type": ["integer", "null"], "minimum": 0, "maximum": 1000000},
89
89
  "cutover_status": {"type": "string", "enum": ["passed", "not_ready"]},
90
90
  "unmet_criteria": {"type": "array", "maxItems": 16, "items": {"type": "string", "minLength": 1, "maxLength": 256}},
91
91
  "limitations": {"type": "array", "minItems": 1, "maxItems": 8, "items": {"type": "string", "minLength": 1, "maxLength": 256}}
@@ -8,8 +8,6 @@
8
8
  "schema_version",
9
9
  "mode",
10
10
  "enforcement",
11
- "max_completed_initial_reviews",
12
- "max_completed_verification_rounds",
13
11
  "max_failed_attempts",
14
12
  "automatic_github_review_events",
15
13
  "inline_advisory_threads"
@@ -24,16 +22,6 @@
24
22
  "type": "string",
25
23
  "enum": ["display-only", "publication"]
26
24
  },
27
- "max_completed_initial_reviews": {
28
- "type": "integer",
29
- "minimum": 1,
30
- "maximum": 8
31
- },
32
- "max_completed_verification_rounds": {
33
- "type": "integer",
34
- "minimum": 0,
35
- "maximum": 8
36
- },
37
25
  "max_failed_attempts": {
38
26
  "type": "integer",
39
27
  "minimum": 1,
@@ -10,12 +10,9 @@
10
10
  "admit",
11
11
  "count_as_completed_round",
12
12
  "round_kind",
13
- "remaining_initial_reviews",
14
- "remaining_verification_rounds",
15
13
  "handoff",
16
14
  "handoff_reason",
17
- "may_emit_approve",
18
- "cap_creates_approval"
15
+ "may_emit_approve"
19
16
  ],
20
17
  "properties": {
21
18
  "schema_version": {"const": "1.0"},
@@ -29,21 +26,10 @@
29
26
  "type": "string",
30
27
  "enum": ["initial", "verification", "none"]
31
28
  },
32
- "remaining_initial_reviews": {
33
- "type": "integer",
34
- "minimum": 0,
35
- "maximum": 8
36
- },
37
- "remaining_verification_rounds": {
38
- "type": "integer",
39
- "minimum": 0,
40
- "maximum": 8
41
- },
42
29
  "handoff": {"type": "boolean"},
43
30
  "handoff_reason": {
44
31
  "type": ["string", "null"],
45
32
  "enum": [
46
- "round-budget-exhausted",
47
33
  "failed-attempt-budget-exhausted",
48
34
  "no-progress",
49
35
  "incomplete-coverage",
@@ -52,7 +38,6 @@
52
38
  null
53
39
  ]
54
40
  },
55
- "may_emit_approve": {"type": "boolean"},
56
- "cap_creates_approval": {"type": "boolean", "const": false}
41
+ "may_emit_approve": {"type": "boolean"}
57
42
  }
58
43
  }
@@ -30,9 +30,10 @@
30
30
  "minimum": 1,
31
31
  "maximum": 2147483647
32
32
  },
33
- "completed_initial_reviews": {"type": "integer", "minimum": 0, "maximum": 32},
34
- "completed_verification_rounds": {"type": "integer", "minimum": 0, "maximum": 32},
33
+ "completed_initial_reviews": {"type": "integer", "minimum": 0, "maximum": 1000000},
34
+ "completed_verification_rounds": {"type": "integer", "minimum": 0, "maximum": 1000000},
35
35
  "failed_attempts": {"type": "integer", "minimum": 0, "maximum": 32},
36
+ "failed_attempts_head_sha": {"type": ["string", "null"], "pattern": "^[a-f0-9]{40,64}$"},
36
37
  "generation": {"type": "integer", "minimum": 0, "maximum": 2147483647},
37
38
  "reservation_id": {
38
39
  "anyOf": [
@@ -85,6 +86,7 @@
85
86
  }
86
87
  },
87
88
  "continuation_grants": {
89
+ "description": "Retained pre-uncapped command attestations. Stored as history only; no command consumes them.",
88
90
  "type": "array",
89
91
  "maxItems": 4,
90
92
  "items": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: review-sensei
3
- Version: 0.6.7
3
+ Version: 0.6.9
4
4
  Summary: Provider-neutral AI code review engine with an Ollama adapter.
5
5
  Author: Mohamad Alsabbagh
6
6
  License-Expression: MIT
@@ -84,32 +84,60 @@ python -m pip install .
84
84
  review-sensei --version
85
85
  ```
86
86
 
87
- The default is a local Ollama server using Qwen3.5 4B. Leave the API key empty
88
- and select the local mode:
87
+ The default backend is a local Ollama server using the packaged local model,
88
+ so a local review runs with no credential and no repository setup at all. A
89
+ repository selects its backend in `.reviewsensei.yml` at the repository root,
90
+ and a repository without that file uses the packaged defaults:
91
+
92
+ ```yaml
93
+ schema: 1
94
+
95
+ inference:
96
+ backend: local-ollama
97
+ ```
98
+
99
+ Select a backend on the command line when one run needs a different one:
89
100
 
90
101
  ```bash
91
- export REVIEWSENSEI_PROVIDER_MODE="local"
92
- export REVIEWSENSEI_LOCAL_MODEL="qwen3.5:4b"
93
- unset OLLAMA_API_KEY
102
+ review-sensei --diff pr.patch --provider local-ollama
103
+ review-sensei --diff pr.patch --provider local-ollama --model qwen3.5:8b
94
104
  ```
95
105
 
96
- Ollama Cloud is explicit opt-in:
106
+ The hosted backends are explicit, and each one requires its own credential:
97
107
 
98
108
  ```bash
99
- export OLLAMA_API_KEY="your-key"
100
- export REVIEWSENSEI_PROVIDER_MODE="cloud"
101
- export REVIEWSENSEI_CLOUD_MODEL="deepseek-v4.1-flash:cloud"
102
- unset OLLAMA_BASE_URL OLLAMA_MODEL
109
+ OLLAMA_API_KEY="your-key" review-sensei --diff pr.patch --provider cloud-ollama
110
+ OPENROUTER_API_KEY="your-key" review-sensei --diff pr.patch --provider openrouter
111
+ OPENAI_API_KEY="your-key" review-sensei --diff pr.patch --provider openai-compatible
112
+ ```
113
+
114
+ Ollama Cloud is explicit opt-in and requires `OLLAMA_API_KEY`:
115
+
116
+ ```yaml
117
+ schema: 1
118
+
119
+ inference:
120
+ backend: cloud-ollama
103
121
  ```
104
122
 
123
+ A backend that needs no credential never receives one implicitly: a key
124
+ exported for another backend does not travel to `local-ollama`.
125
+
126
+ The packaged model for the selected backend applies unless `inference.model`
127
+ names another one. `REVIEWSENSEI_PROVIDER` and `REVIEWSENSEI_MODEL` remain the
128
+ only supported environment overrides; the retired
129
+ `REVIEWSENSEI_PROVIDER_MODE`, `REVIEWSENSEI_LOCAL_MODEL`, and
130
+ `REVIEWSENSEI_CLOUD_MODEL` variables have no effect and are reported with their
131
+ replacements by `review-sensei config`.
132
+
105
133
  ### Run through npx
106
134
 
107
135
  Node.js 22 or newer can invoke the same Python review engine through the
108
136
  provider-neutral `@reviewsensei/cli` launcher:
109
137
 
110
138
  ```bash
111
- npx --yes @reviewsensei/cli@0.6.7 --version
112
- npx --yes @reviewsensei/cli@0.6.7 --help
139
+ npx --yes @reviewsensei/cli@0.6.9 --version
140
+ npx --yes @reviewsensei/cli@0.6.9 --help
113
141
  ```
114
142
 
115
143
  The launcher selects one of the five native packages (macOS arm64/x64,
@@ -125,7 +153,14 @@ release tag. See [`docs/installation.md`](docs/installation.md),
125
153
  for prerequisites, release ordering, provenance, and version-forward rollback
126
154
  guidance.
127
155
 
128
- Generate a bounded diff and run a review:
156
+ Generate a bounded diff and review it. The shortest local run needs nothing
157
+ but the diff and a reachable local model server:
158
+
159
+ ```bash
160
+ review-sensei --diff pr.patch
161
+ ```
162
+
163
+ Repository context, learnings, and an explicit change identity are optional:
129
164
 
130
165
  ```bash
131
166
  review-sensei prepare-diff \
@@ -142,13 +177,40 @@ review-sensei \
142
177
  --title "Reviewable change" \
143
178
  --learning-root /path/to/target-branch-checkout \
144
179
  --context-root /path/to/target-branch-checkout \
180
+ --format json \
145
181
  --output review.json
146
182
  ```
147
183
 
148
- The output is a validated JSON document containing `summary`, `comments`,
149
- `provider`, `model`, and `learning_proposals`. Learning proposals are not
184
+ The default output is readable terminal text. `--format markdown` and
185
+ `--format json` are explicit, and only the selected format is written to
186
+ stdout or `--output` while warnings, diagnostics, and the final status and
187
+ reason lines stay on stderr. The JSON format
188
+ is the validated `review-result` document containing `summary`, `comments`,
189
+ `provider`, `model`, and `learning_proposals`; learning proposals are not
150
190
  stored or used automatically.
151
191
 
192
+ The review exit contract is stable:
193
+
194
+ | Code | Meaning |
195
+ | --- | --- |
196
+ | `0` | The review completed and no required fixes remain |
197
+ | `1` | The review completed with required fixes remaining |
198
+ | `2` | The review could not complete, the input was invalid, or a human decision is required |
199
+
200
+ A non-zero exit prints a `review-sensei: reason=<token>` line naming the cause,
201
+ and the exit codes are unchanged by the selected output format. Hosts and
202
+ launchers that select a lane from the historical 0/1 contract pass
203
+ `--exit-semantics operational`.
204
+
205
+ A local review is a bounded one-shot and needs no GitHub identity, OIDC token,
206
+ broker, or hosted state. `--local-session` is the one explicit
207
+ persistent-local-session operation: it keeps the durable session ledger in the
208
+ platform's per-user state directory (`~/Library/Application Support/review-sensei`
209
+ on macOS, `%LOCALAPPDATA%\review-sensei` on Windows, and
210
+ `$XDG_STATE_HOME/review-sensei` or `~/.local/state/review-sensei` elsewhere) so
211
+ repeated runs of the same change reuse one session, and `--session-ledger`
212
+ still overrides that location.
213
+
152
214
  The published schema files live under `src/review_sensei/schemas/` and are
153
215
  included in the installed package. Public compatibility rules, CLI flags, error
154
216
  categories, and provider protocol expectations are documented in
@@ -205,7 +267,7 @@ environment.
205
267
 
206
268
  During installation or migration, the Worker separately uses GitHub App
207
269
  authentication to obtain a repository-scoped installation token for the setup
208
- branch, pull request, and default variables.
270
+ branch and pull request.
209
271
 
210
272
  Installation, reinstall, permission-acceptance, and repository-added events
211
273
  reconcile absent or older generated clients through at most one setup-v5 PR.
@@ -519,16 +581,33 @@ See [ADR 0036](docs/adr/0036-learning-lifecycle-diagnostics-and-feedback.md).
519
581
 
520
582
  ## Local Ollama
521
583
 
584
+ A local review defaults to the `local-ollama` backend and needs no credential.
585
+ State it explicitly in `.reviewsensei.yml` when the repository should not rely
586
+ on the packaged default:
587
+
588
+ ```yaml
589
+ schema: 1
590
+
591
+ inference:
592
+ backend: local-ollama
593
+ ```
594
+
522
595
  ```bash
523
- export REVIEWSENSEI_PROVIDER_MODE="local"
524
- export REVIEWSENSEI_LOCAL_MODEL="qwen3.5:4b"
525
- unset OLLAMA_API_KEY
526
596
  review-sensei --diff pr.patch
527
597
  ```
528
598
 
599
+ Select the backend and model explicitly when you need to
600
+ (`--provider local-ollama --model qwen3.5:8b`, or `REVIEWSENSEI_PROVIDER` and
601
+ `REVIEWSENSEI_MODEL`). A backend that requires no credential never receives one
602
+ implicitly, so an exported `OLLAMA_API_KEY` is not attached to loopback
603
+ requests unless `--api-key-env` names it.
604
+
529
605
  ## Providers
530
606
 
531
- The shipped registry keys are `ollama`, `openai-compatible`, and `openrouter`.
607
+ The shipped registry adapters are `ollama`, `openai-compatible`,
608
+ `openrouter`, and the `fixture` test seam. Canonical backends — `local-ollama`,
609
+ `cloud-ollama`, `openai-compatible`, `openrouter`, and `fixture` — are what
610
+ `--provider`, `REVIEWSENSEI_PROVIDER`, and inference configuration name.
532
611
  Operator defaults, workflow modes, named profiles, credentials, and hosted
533
612
  OpenRouter allowlists are documented in [`docs/installation.md`](docs/installation.md).
534
613
  The release-aware public matrix lives at
@@ -566,13 +645,18 @@ The GitHub App opens a setup-v5 PR containing a thin caller that follows the
566
645
  operator-managed `v5` public git tag. The reusable workflow prefers the
567
646
  requested exact package from PyPI and falls back to its executing workflow
568
647
  commit only when that package/version is unavailable. Unrelated PyPI
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.
648
+ installation failures remain fatal. Setup creates no repository variables and
649
+ manages 3 generated files: the caller, the uninstall workflow, and the minimal
650
+ root `.reviewsensei.yml` that the operator owns from the first install on. The
651
+ only two optional Actions overrides the product consumes are
652
+ `REVIEWSENSEI_PROVIDER` (`inference.backend`) and `REVIEWSENSEI_MODEL`
653
+ (`inference.model`); the reusable workflow maps them once from the trusted
654
+ policy commit. Every other policy decision is a field of `.reviewsensei.yml`:
655
+ `github.automatic_reviews` defaults to `true`, `github.writes` to `false`,
656
+ `github.reviews` to `auto-approve`, `github.mentions` to `true`,
657
+ `github.learning` to `disabled`, and `github.artifacts` to `none`. The App
658
+ requests no Variables permission and never creates the customer-owned
659
+ `OLLAMA_API_KEY` secret.
576
660
 
577
661
  When explicitly enabled, same-repository pull requests can run automatic review
578
662
  with either provider mode: cloud on a GitHub-hosted runner or local Ollama on
@@ -586,8 +670,9 @@ item only when the transport reports an oversized response. The 512 KiB
586
670
  transport ceiling remains unchanged. Fork pull requests fail closed before
587
671
  provider or broker access.
588
672
 
589
- When automatic review and GitHub writes are enabled, automatic approval is on by
590
- default; set `REVIEWSENSEI_AUTO_APPROVE=false` for an explicit opt-out.
673
+ When automatic review and GitHub writes are enabled, automatic approval applies
674
+ by default; `github.reviews: blocking` or `github.reviews: advisory` in
675
+ `.reviewsensei.yml` selects a non-approving policy instead.
591
676
  ReviewSensei publishes blocking findings as `REQUEST_CHANGES` and non-blocking
592
677
  findings as `COMMENT`, then invokes one shared, idempotent approval finalizer.
593
678
  It emits `APPROVE` for an eligible exact head when no unresolved ReviewSensei
@@ -618,9 +703,9 @@ mode sends that bounded conversation context to Ollama Cloud; local mode keeps
618
703
  it on the configured local service. Published review summaries and inline
619
704
  findings also tell readers to reply with @sensei followed by their question.
620
705
  `review.json` is uploaded only when
621
- `REVIEWSENSEI_UPLOAD_ARTIFACTS=true`; setup-v5 does not create a separate
622
- version artifact. See [installation and migration](docs/installation.md) and
623
- the reviewable
706
+ `github.artifacts: diagnostics` is set in `.reviewsensei.yml`; setup-v5 does not
707
+ create a separate version artifact. See
708
+ [installation and migration](docs/installation.md) and the reviewable
624
709
  [`setup-v5 example`](examples/github-actions/review-sensei-review.yml).
625
710
 
626
711
  ## Concurrency policy
@@ -1,13 +1,13 @@
1
- ../../Scripts/review-sensei.exe,sha256=KBtfQpxQSyupTgO5aDcKK-kHwX5L44KGYEQsYp_mCZs,108355
2
- review_sensei-0.6.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
3
- review_sensei-0.6.7.dist-info/METADATA,sha256=d3gxiIYo9NR7ymapvTifSzpQtjrKj3NGHzRHzavnU5s,34155
4
- review_sensei-0.6.7.dist-info/RECORD,,
5
- review_sensei-0.6.7.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- review_sensei-0.6.7.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
7
- review_sensei-0.6.7.dist-info/direct_url.json,sha256=EDhpXdSFq1qZfl2FCT07Hg2gleInjGFaAwkFy0selqU,67
8
- review_sensei-0.6.7.dist-info/entry_points.txt,sha256=Eki1ToC6hiOv8PMEAd2Cnbh5WWstVzzzf0XmHBHzpMQ,57
9
- review_sensei-0.6.7.dist-info/licenses/LICENSE,sha256=-eVBqOV92YK1K76UIcK5MrgUh0EiQMe8xNhSysQE68s,1095
10
- review_sensei-0.6.7.dist-info/top_level.txt,sha256=VCF4gJIJPP3MPJntoITDjMhJ8MUZfVLj-z3-VUQ9XDY,14
1
+ ../../Scripts/review-sensei.exe,sha256=Sl7t-igXshMzlNJN5sMBdbk_xIu7vYTTRpSW8-lFurA,108355
2
+ review_sensei-0.6.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
3
+ review_sensei-0.6.9.dist-info/METADATA,sha256=pVMtOYt1h-ZAO0kvIZeAhGUvXpDqwJPa7OXFW_NbQ2Y,37970
4
+ review_sensei-0.6.9.dist-info/RECORD,,
5
+ review_sensei-0.6.9.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ review_sensei-0.6.9.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
7
+ review_sensei-0.6.9.dist-info/direct_url.json,sha256=EDhpXdSFq1qZfl2FCT07Hg2gleInjGFaAwkFy0selqU,67
8
+ review_sensei-0.6.9.dist-info/entry_points.txt,sha256=Eki1ToC6hiOv8PMEAd2Cnbh5WWstVzzzf0XmHBHzpMQ,57
9
+ review_sensei-0.6.9.dist-info/licenses/LICENSE,sha256=-eVBqOV92YK1K76UIcK5MrgUh0EiQMe8xNhSysQE68s,1095
10
+ review_sensei-0.6.9.dist-info/top_level.txt,sha256=VCF4gJIJPP3MPJntoITDjMhJ8MUZfVLj-z3-VUQ9XDY,14
11
11
  review_sensei/__init__.py,sha256=hBA7OkQbK_oV4-fDFucVnpsnIut_JK-BbXLTznhg8ao,10524
12
12
  review_sensei/__main__.py,sha256=0iDYjdmiXNBinFF23WUyotsdpA6wFKjoB5aw3esTSRg,83
13
13
  review_sensei/__pycache__/__init__.cpython-311.pyc,,
@@ -15,6 +15,7 @@ review_sensei/__pycache__/__main__.cpython-311.pyc,,
15
15
  review_sensei/__pycache__/baseline.cpython-311.pyc,,
16
16
  review_sensei/__pycache__/cli.cpython-311.pyc,,
17
17
  review_sensei/__pycache__/concurrency.cpython-311.pyc,,
18
+ review_sensei/__pycache__/configuration.cpython-311.pyc,,
18
19
  review_sensei/__pycache__/context.cpython-311.pyc,,
19
20
  review_sensei/__pycache__/convergence.cpython-311.pyc,,
20
21
  review_sensei/__pycache__/conversation.cpython-311.pyc,,
@@ -24,11 +25,13 @@ review_sensei/__pycache__/diff.cpython-311.pyc,,
24
25
  review_sensei/__pycache__/disposition.cpython-311.pyc,,
25
26
  review_sensei/__pycache__/errors.cpython-311.pyc,,
26
27
  review_sensei/__pycache__/evaluation.cpython-311.pyc,,
28
+ review_sensei/__pycache__/hosted.cpython-311.pyc,,
27
29
  review_sensei/__pycache__/learnings.cpython-311.pyc,,
28
30
  review_sensei/__pycache__/models.cpython-311.pyc,,
29
31
  review_sensei/__pycache__/openrouter_qualification.cpython-311.pyc,,
30
32
  review_sensei/__pycache__/outcomes.cpython-311.pyc,,
31
33
  review_sensei/__pycache__/patches.cpython-311.pyc,,
34
+ review_sensei/__pycache__/placement.cpython-311.pyc,,
32
35
  review_sensei/__pycache__/planning.cpython-311.pyc,,
33
36
  review_sensei/__pycache__/presentation.cpython-311.pyc,,
34
37
  review_sensei/__pycache__/provider_config.cpython-311.pyc,,
@@ -42,10 +45,11 @@ review_sensei/__pycache__/validation.cpython-311.pyc,,
42
45
  review_sensei/__pycache__/verifier.cpython-311.pyc,,
43
46
  review_sensei/__pycache__/workflow.cpython-311.pyc,,
44
47
  review_sensei/baseline.py,sha256=nJegFpLDW-YviQqUt8QXWSOgzuPIWg3ryz1DTr87d4U,54311
45
- review_sensei/cli.py,sha256=A65PmN0MJa9smksA5cC2kkfbX1ZtHEiVP8bIxuGyAqs,130840
48
+ review_sensei/cli.py,sha256=uqM6N5pPyx6CeDMmWiBFZrPxhcADft5ZRk_zu5Azu10,151167
46
49
  review_sensei/concurrency.py,sha256=7nqMDNaIl7YoKafkAF1ctXu6D5SFxXosm-1407OKimQ,20097
50
+ review_sensei/configuration.py,sha256=8PBeBDcY6Y0ZNW50yJ3Zrb85VvHtctOoLXk-DJyWKVk,78115
47
51
  review_sensei/context.py,sha256=ejDs0EBaUVTbAkrs-wACGXbgQcEwClX0Tultn2Mo_R0,96255
48
- review_sensei/convergence.py,sha256=XJQ3Fx4N41Fzf_Y2PVeebyS3tf7e7cpbD1p4VdPuHTg,54234
52
+ review_sensei/convergence.py,sha256=ZxnHmmFLGramRrOE8IHsAvqdhK3Rd--rimfm7UJKy08,50962
49
53
  review_sensei/conversation.py,sha256=KRWtF8JnmOrOQsvAX4q-d0UzzXjNp2XeePSbyIm4_pw,7467
50
54
  review_sensei/coverage.py,sha256=8fVsO4x2swqaa9QI5fcqeqB_FB6m0JfKrlRCg7_KA6E,12951
51
55
  review_sensei/default_categories/01-correctness.json,sha256=ZeTTvEavHU6_ih7JKhv8a6gH-4wRJGv0abckRWNWTfs,211
@@ -54,11 +58,12 @@ review_sensei/default_categories/03-architecture.json,sha256=Fg3VsUCzl9trCpSnoOg
54
58
  review_sensei/default_categories/03-maintainability.json,sha256=eyF9_slQ50LwEqSSet63jthfNp9ZOTnwiDVtVYjVv1A,229
55
59
  review_sensei/default_categories/04-tests.json,sha256=UHhvH79bae9FmLJT_MYNvki4Y9xhJDLpDuLdgp2npe0,208
56
60
  review_sensei/default_stages/01-default-review.json,sha256=-y9LP_8XNqEPpRN2K8z_qMHRqXyP6ZsiydzZFHozZwY,3463
57
- review_sensei/diagnostics.py,sha256=CAYZPlOBlJ8ZNyPUrbzX-bcnbigxhA593_aaGqNj5hY,44971
61
+ review_sensei/diagnostics.py,sha256=fj7JYgr29jXMSO43XTnPWDFl9h4GP23GYRhWjI4iY7s,44638
58
62
  review_sensei/diff.py,sha256=na5MWhYcnRimFwGElNBiSp27Su_oufHhWiGtm1W38oY,32057
59
- review_sensei/disposition.py,sha256=jENlqe7JU3kPCBo-0_jxpfEkb_rltcEvXoRihstmo7s,24908
63
+ review_sensei/disposition.py,sha256=d0nsNUKtba3UijH7X2YF7Wj5FSLdjRjE2Ni6HH0d9GI,21496
60
64
  review_sensei/errors.py,sha256=1-JKbLcEodjQMXleJwR-QDzRhMSFwDSe9Oc6Pg1UYmY,2901
61
65
  review_sensei/evaluation.py,sha256=kKhbcF3XpHhDYLW8e_dxGjcS0sXJpz8nXYsPpUuXnBE,59450
66
+ review_sensei/hosted.py,sha256=sYy8tHLhR3xeBJveu1c1YHG8Uk2T8Br_4CdUIFemx24,10374
62
67
  review_sensei/hosting/__init__.py,sha256=zqIukHwfUzai3x7dJS2nFNlVhP7EQWQ47-4pGCi2Sz0,84
63
68
  review_sensei/hosting/__pycache__/__init__.cpython-311.pyc,,
64
69
  review_sensei/hosting/__pycache__/openrouter_workflow.cpython-311.pyc,,
@@ -81,7 +86,7 @@ review_sensei/hosting/github/__pycache__/session_ledger.cpython-311.pyc,,
81
86
  review_sensei/hosting/github/__pycache__/setup.cpython-311.pyc,,
82
87
  review_sensei/hosting/github/__pycache__/trigger.cpython-311.pyc,,
83
88
  review_sensei/hosting/github/__pycache__/webhooks.cpython-311.pyc,,
84
- review_sensei/hosting/github/application.py,sha256=L9GyMXzvtxZkFXaG9XWWitf2Z974bV9krwp8VVxCb0k,70460
89
+ review_sensei/hosting/github/application.py,sha256=sDunbp-suXa8G2MRHzYgY9T7slkaB3EMRasYXZeT2o0,69852
85
90
  review_sensei/hosting/github/approval.py,sha256=nx8h8oDvljrdrXkNahMXrvk3kMVkMy6owztXZPRwsqA,4189
86
91
  review_sensei/hosting/github/auth.py,sha256=koITagUX9piVboGJ_smEhPsCf4rOQkOqqSKeLKvFRbc,19055
87
92
  review_sensei/hosting/github/broker.py,sha256=FFC7DsFhzy1tENXTCmLNuYzX2cHaYsgMkDGwXEcJaTU,18014
@@ -97,21 +102,22 @@ review_sensei/hosting/github/fixtures/released-v4-resolve-trigger-runner-switch.
97
102
  review_sensei/hosting/github/http.py,sha256=6Dz9S-U4M07KehE7FhjNyrBt_XKKz4Dnp6zULMFKHk0,8943
98
103
  review_sensei/hosting/github/jwt.py,sha256=mTakXBxU-GR-hBnIZE-FryfFXwpS9hJ7qb3X7P0FBMo,4582
99
104
  review_sensei/hosting/github/learning_pr.py,sha256=hT7FmmpWCnUO5WCQEmP9XioQiceNALxuJCtcZXAQxSU,112424
100
- review_sensei/hosting/github/observed.py,sha256=Pin563D-wNQVeC0_PSrh8W1138K5xM2jbN_lE2MyK6s,36230
105
+ review_sensei/hosting/github/observed.py,sha256=evhqzPi5FZTbNrra0b-y6EET_Ul7lCndHENv5WOfpcA,34382
101
106
  review_sensei/hosting/github/oidc.py,sha256=h3UVcBYQIKy-xQS7Ixv3_fy670mmuBoNKSYurPZWZ60,13310
102
- review_sensei/hosting/github/publication.py,sha256=h-j_FpqftFwC7gjO-jvrtUwayL31LKISECC7AGJxDTQ,85760
103
- review_sensei/hosting/github/session_ledger.py,sha256=bqalhVAz6AolacYn-paxdddofl7uyeR_kZE7s750iqo,31057
104
- review_sensei/hosting/github/setup.py,sha256=xTrMHaB_OCGDX8CURnCXAihnO4TF4bmGCGt3ctNpbxU,107713
105
- review_sensei/hosting/github/trigger.py,sha256=ewwnF02jV1llat5xXwXM3AzZLpMLoD3El0gLKIhsIiM,11395
107
+ review_sensei/hosting/github/publication.py,sha256=BAUTjGmMjt5g5LTta2mtDYuh_SeowZ7S1aM9NkuwUL0,95333
108
+ review_sensei/hosting/github/session_ledger.py,sha256=DZgLY-fP1SMjsQh55k7DsEEdEdPh-72uGEezCjePP9s,31131
109
+ review_sensei/hosting/github/setup.py,sha256=qsLFRFU7nC57E1mTWEz6frXgwUCe9aWPuvxLugjvi4o,112651
110
+ review_sensei/hosting/github/trigger.py,sha256=7jwSWoFU5VsJ1XUhhEEgne9-pA6zaHyYJ_BVlMcqlsI,10434
106
111
  review_sensei/hosting/github/webhooks.py,sha256=7hh_YlF7riV6wov7A_27aOb5g6-Ivob1PBWR4m5bF3I,13662
107
112
  review_sensei/hosting/openrouter_workflow.py,sha256=qepVpa12sL6mTaBqTGhcWEaYI8zawcgAYK6sOCRnKtE,1330
108
113
  review_sensei/learnings.py,sha256=AF9Dqyreb9WQLWLZiciuyRXNviSso6sYVTe2xzx1ZfY,21434
109
- review_sensei/models.py,sha256=UL3bnferZPU6ra5ris6JDJ0XMIjgvMqbgCYM8YtmeU8,93017
114
+ review_sensei/models.py,sha256=4UmJkRYMJyjGgRd98V11IlGEHmJjnzt0h9zBygLBklg,92368
110
115
  review_sensei/openrouter_qualification.py,sha256=UKUL8oK8oexX1P_othR3y_QAAW0PG2EdAYnWXA-ACZI,30296
111
- review_sensei/outcomes.py,sha256=uFpb5-n3mvuQ71ljGQp7KHAmjtCHx13YbiXnTkmCiuk,32183
116
+ review_sensei/outcomes.py,sha256=zYQUKtRU_rUy4yUznlSdX0AZR-gAfZ9MbbvA4pRABus,34051
112
117
  review_sensei/patches.py,sha256=P9plsU7-5Z-Jxy8EJBFQX5hX3bcmxBoRJxTnEqA_tbA,15981
113
- review_sensei/planning.py,sha256=6rb6w-tNhXCBOl6-_N6A2fQox6cGjL88kOAhn4oGTpA,23289
114
- review_sensei/presentation.py,sha256=JlbvtcFV_Kok_21ATtDNj-kHfcmCpk5v7N15RulAAVQ,6587
118
+ review_sensei/placement.py,sha256=ABioTJwmS4bhyB1M6IdWqyGOx9j1Ge3CeYSKMk9GXSA,6607
119
+ review_sensei/planning.py,sha256=kdT5pWKw7MWYnRFa12d46TpR3ugG4u6dis-xgUmqxFs,23516
120
+ review_sensei/presentation.py,sha256=LkKBzHKNglQttJEfH1tuul_H3eDYZNaMBMu1ppCNs-U,29191
115
121
  review_sensei/provider_config.py,sha256=y03TeL6wNsx_9KECr_AhHQkWyWOBOUMnPHzDDyL9AdQ,16382
116
122
  review_sensei/providers/__init__.py,sha256=gmfB6gm0QN_FfN3lJJ0kN8QgTtJom4ayzaqUkLmwQwc,779
117
123
  review_sensei/providers/__pycache__/__init__.cpython-311.pyc,,
@@ -141,7 +147,7 @@ review_sensei/schemas/candidate-finding.schema.json,sha256=P_FM6pbwdOZGZPAiI_E_Z
141
147
  review_sensei/schemas/channel-promotion.schema.json,sha256=LNQgvm6IxntfXrpEnoVz4aL_7_ALo8syiVYEFrfxHYw,1085
142
148
  review_sensei/schemas/compatibility-manifest.schema.json,sha256=RIsEo5Os6obelQ078cySd3BHJxGgAySCQg0f0KHRpzY,1858
143
149
  review_sensei/schemas/concurrency-plan.schema.json,sha256=YtHPlfShzFPLE4sQMEn7TogW3souwiKC6d4yd-kgFRY,830
144
- review_sensei/schemas/convergence-sequence-report.schema.json,sha256=FWNUHgdlqlu9SOazQsEVxhBqFY4P_uLynb4OsI8VE1E,2323
150
+ review_sensei/schemas/convergence-sequence-report.schema.json,sha256=e5T1QEepf8k3Zaoilfekt8-Wes9yol8FuHXe8VOAkEU,2412
145
151
  review_sensei/schemas/conversation-reply.schema.json,sha256=bKHxO1CX_g_VrWDb1e0GKPGIUzMPORchHqrT805yPXA,682
146
152
  review_sensei/schemas/coverage-manifest.schema.json,sha256=rrbvq1YYNt-c4YPLmdmrzWo_Au-rDu-e35eg3NdZzQQ,2765
147
153
  review_sensei/schemas/evaluation-corpus.schema.json,sha256=0W3-zgmVFa5AjDSs385szKNt4DX_D_ZdrE9ur3Nrnz0,7905
@@ -150,25 +156,25 @@ review_sensei/schemas/later-finding-classification.schema.json,sha256=YxsogG9aN4
150
156
  review_sensei/schemas/learning-entry.schema.json,sha256=QtbNYK_eIPmXos4TlYbCFL8EvYAqOx-dxUXDM5wBGQ4,1782
151
157
  review_sensei/schemas/learning-feedback.schema.json,sha256=SbNqRSdA82pV5a8Zbzbnjm7U7sj4s9epqRPlJ7-lgAg,1925
152
158
  review_sensei/schemas/learning-proposal.schema.json,sha256=FVYG4sFWGil_66-6NlliFCk2LpiCfJn-yTrY4dN-b0E,644
153
- review_sensei/schemas/observed-convergence-report.schema.json,sha256=amIk4vhjbfn_Zpyz3_qRWHsUJ3M3RAxrXWAvx_K3ipg,5228
159
+ review_sensei/schemas/observed-convergence-report.schema.json,sha256=v6RMEd0pPQ_o1uBv9ikRHElIRTanSFxOksXmNxy3zI4,5353
154
160
  review_sensei/schemas/openrouter-qualification.schema.json,sha256=wIgsZxwvAsKuptmjfsD_8UitPcl-DLAzxjlCD-pZyx8,4203
155
161
  review_sensei/schemas/promotion-record.schema.json,sha256=CHJ99AjwioPthygjTimPjXNuG2rriW4DFZw54fa1rfs,2402
156
162
  review_sensei/schemas/recovery-artifact.schema.json,sha256=ZP-C_E_nQlFsuObxFn2O0iJLMbDMgNWAF7h4BpPyM3g,1254
157
163
  review_sensei/schemas/review-category.schema.json,sha256=Rni93qGN2LyJSrHRF-GcgVdAjqXGnDU5yjIjG2wn7pI,2189
158
164
  review_sensei/schemas/review-comment.schema.json,sha256=0A9J_vzYnMUpKsv9wZUGGnCd1ryP-8uksPEbSJWj8Xo,1140
159
- review_sensei/schemas/review-convergence-policy.schema.json,sha256=E4pGr4CNMzvBUdJ7hTFJy4tzm7iolitG0vClqsj1rcU,1348
165
+ review_sensei/schemas/review-convergence-policy.schema.json,sha256=D5xxDIrJCx2ztq2tZAe0BjgVLAS1i4Gicg_KDR3c-bE,1034
160
166
  review_sensei/schemas/review-result.schema.json,sha256=jzQMoZIMw2HVC4EhUPfcSuScCd48URPfq6DGX9KnHZM,4899
161
- review_sensei/schemas/review-round-decision.schema.json,sha256=4Nd306X6_pU4co4papD0nv6D0K5-n3LefGbUYC9M1Ow,1594
167
+ review_sensei/schemas/review-round-decision.schema.json,sha256=d1GOE4RSgNRkvF35k_xV7nSAEuLzDFVO-fLn-tV0nFo,1166
162
168
  review_sensei/schemas/review-stage.schema.json,sha256=H5CDiC-ngQXJpVomEvd8YPP1tgyPgwo_k3atK4Vjev0,4707
163
169
  review_sensei/schemas/review-transaction.schema.json,sha256=KWtsfa0p0CmPx--cB91XpDizF2Z6N2Ehg5YMlRqJwN8,2215
164
170
  review_sensei/schemas/run-outcome.schema.json,sha256=pyByHFmQ8yNFPsLD7wccR5lxsWBwzoxNyD77bjNqeU8,1744
165
- review_sensei/schemas/session-record.schema.json,sha256=DCkPnK8o5va5lkPInHZm6dLyZKnkDKJmNVCD_b06liM,11949
171
+ review_sensei/schemas/session-record.schema.json,sha256=b3YKz4r4-qeNcuOgCP8ntM1IByduJguZUj2q4X_lAXA,12173
166
172
  review_sensei/schemas/stage.schema.json,sha256=WsxbwZFGpRNCyZ6xzWsAQHf8f7YpJLAh9FKRXN_vlao,2900
167
173
  review_sensei/schemas/verification-result.schema.json,sha256=Hf765S-aC1Tk4c7KMWaaSf5DMsg6ogmjnHXcjcHE01k,625
168
174
  review_sensei/schemas/verification-scope.schema.json,sha256=402Q7OiLHnb41lwb5JkVoKUpCe19fMV9hVhTjsenLFo,2141
169
- review_sensei/sequence.py,sha256=kUehmk85gtZPSpSsAiUxtK_UVeVZPK6MFwy2av-IGXc,23791
175
+ review_sensei/sequence.py,sha256=Mc3ejY8Cmo7xASNAo2vfep9rILb3BgnzH8T9rw8xjRY,23746
170
176
  review_sensei/service.py,sha256=wfU84eab9uXH-ph3JYxcUGWni6oKy1pRLnySqu-thVc,70808
171
- review_sensei/session.py,sha256=x1VcNk5EF4jjLxPU1D0LVl73E-hDgofmeZEpT6Z8O2o,130802
177
+ review_sensei/session.py,sha256=dESat0m79DuAns2zme73aQGX3nwBBn4SMcbk79cPQGQ,123889
172
178
  review_sensei/stages.py,sha256=rMomi3dvKrEl3yiuy2VbX09_bLu8dWD2rblFH8aJ6yI,24256
173
179
  review_sensei/validation.py,sha256=euLaI7cxwTCxcpNRh-F8zGz0BQu8GMG3cA3_1_wtdkU,12390
174
180
  review_sensei/verifier.py,sha256=_6cbaoXj8R9hatM7fZav-BgfkSPRyJ4ASmQlZbxF5HA,34913
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reviewsensei/cli-win32-x64",
3
- "version": "0.6.7",
3
+ "version": "0.6.9",
4
4
  "description": "ReviewSensei native CLI for Windows x64",
5
5
  "license": "MIT",
6
6
  "repository": {