opencode-swarm 7.157.1 → 7.158.0
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.
- package/.opencode/skills/swarm-pr-review/SKILL.md +24 -26
- package/.opencode/skills/swarm-pr-review/references/findings-persistence-contract.md +11 -3
- package/.opencode/skills/swarm-pr-review/references/parser-dry-run.md +1 -1
- package/.opencode/skills/swarm-pr-review/references/prompt-templates.md +3 -3
- package/dist/background/candidate-contract.d.ts +20 -3
- package/dist/background/candidate-parser.d.ts +8 -1
- package/dist/background/pr-review-contract.d.ts +93 -5
- package/dist/cli/{coder-settlement-tqh28pr3.js → coder-settlement-5sexsmqz.js} +9 -9
- package/dist/cli/{config-doctor-9rsk8ags.js → config-doctor-ewn2kw6d.js} +3 -3
- package/dist/cli/{core-7zwdc0sk.js → core-72wdmzps.js} +3 -3
- package/dist/cli/{curation-policy-72qx868r.js → curation-policy-vn3m5nq2.js} +4 -4
- package/dist/cli/curator-drift-g6w4ga1q.js +1 -1
- package/dist/cli/{curator-fdj5ftfz.js → curator-g06sa98p.js} +31 -31
- package/dist/cli/{curator-llm-factory-rtkeb1y1.js → curator-llm-factory-r8q84m4g.js} +31 -31
- package/dist/cli/{evidence-summary-service-bhqvx9qe.js → evidence-summary-service-ttd0ntm0.js} +12 -12
- package/dist/cli/{gate-evidence-rp0r5phx.js → gate-evidence-agnxf7md.js} +6 -6
- package/dist/cli/{guardrail-explain-17me709w.js → guardrail-explain-qf4k176t.js} +32 -32
- package/dist/cli/{guardrail-log-te4a5fmn.js → guardrail-log-g4qc595v.js} +4 -4
- package/dist/cli/{guardrail-reset-5n76tj7e.js → guardrail-reset-zpxk0p1j.js} +31 -31
- package/dist/cli/{hive-promoter-e0zrkgns.js → hive-promoter-zxy07gjg.js} +31 -31
- package/dist/cli/{index-rgkwg6d7.js → index-1vxmqvpt.js} +1 -1
- package/dist/cli/{index-hq3m47kh.js → index-5tchehv7.js} +2 -2
- package/dist/cli/{index-b5xm177r.js → index-5zgf140g.js} +1 -1
- package/dist/cli/{index-gg70afs7.js → index-663wnh64.js} +6 -6
- package/dist/cli/{index-pr6a7669.js → index-6xxpwk5x.js} +1 -1
- package/dist/cli/{index-w7s5vgb6.js → index-745dh1z1.js} +34 -34
- package/dist/cli/{index-ngn6jmad.js → index-7s1hmrfh.js} +1 -1
- package/dist/cli/{index-dwkrdpz2.js → index-8fqb0ynp.js} +1 -1
- package/dist/cli/{index-e7m7g2f9.js → index-a1884hh4.js} +5 -5
- package/dist/cli/{index-pbh1rmb9.js → index-bv24pbaj.js} +4 -4
- package/dist/cli/{index-r4qxngnx.js → index-c57cyrwn.js} +8 -8
- package/dist/cli/{index-1vjjh2gp.js → index-dmfbmnp7.js} +4 -4
- package/dist/cli/{index-sdde1nvx.js → index-f036tggv.js} +5 -5
- package/dist/cli/{index-14awxpgt.js → index-f776m4r5.js} +2 -2
- package/dist/cli/{index-ybvtfthv.js → index-fwe1wh6r.js} +2 -2
- package/dist/cli/{index-n3362zjr.js → index-gm10kvne.js} +3 -3
- package/dist/cli/{index-xe6zbfps.js → index-h52hs4e9.js} +1 -1
- package/dist/cli/{index-80qxscrc.js → index-nvta6kcv.js} +3 -3
- package/dist/cli/{index-gpf3cjre.js → index-pfnj5pvs.js} +1 -1
- package/dist/cli/{index-1gk7ctgp.js → index-pvs2zw1y.js} +2 -2
- package/dist/cli/{index-tt350s4g.js → index-rac2gkvr.js} +859 -459
- package/dist/cli/{index-r98wqjw4.js → index-rc93mm6e.js} +3 -5
- package/dist/cli/{index-b3cwazk2.js → index-rd324153.js} +2 -2
- package/dist/cli/{index-xttdbb6d.js → index-vwx0by4y.js} +5 -5
- package/dist/cli/{index-91ybfvy2.js → index-x4ftmdha.js} +1 -1
- package/dist/cli/{index-q24ffxx6.js → index-x71shq8j.js} +6 -6
- package/dist/cli/{index-n9hecanw.js → index-y3hdwh66.js} +4 -4
- package/dist/cli/{index-az2sga91.js → index-yfbp4q09.js} +1 -1
- package/dist/cli/{index-9r7gp6cp.js → index-yt75r1er.js} +4 -0
- package/dist/cli/{index-t0kxka8n.js → index-z54qw70y.js} +1 -1
- package/dist/cli/{index-qy6rcnjg.js → index-zawd71cg.js} +6 -6
- package/dist/cli/{index-6sbx96v6.js → index-zcmwwp1x.js} +5 -4
- package/dist/cli/index.js +32 -32
- package/dist/cli/{knowledge-escalator-wrpk82b9.js → knowledge-escalator-22zaj224.js} +11 -11
- package/dist/cli/{knowledge-events-4z6yzntf.js → knowledge-events-xbx1k408.js} +9 -9
- package/dist/cli/{knowledge-link-z9cchqdj.js → knowledge-link-cj2abbae.js} +3 -3
- package/dist/cli/{knowledge-store-z9686tpv.js → knowledge-store-fnm8xh9c.js} +4 -4
- package/dist/cli/{knowledge-validator-rqb0b436.js → knowledge-validator-t2jztjy1.js} +6 -6
- package/dist/cli/{model-preflight-cv9kvw8h.js → model-preflight-w85ecyxh.js} +1 -1
- package/dist/cli/{pending-delegations-g10v5k22.js → pending-delegations-29rtv1gb.js} +1 -1
- package/dist/cli/pr-review-reentry-authorization-25dep81m.js +299 -0
- package/dist/cli/{pr-subscriptions-76vg2xya.js → pr-subscriptions-cgac3ydd.js} +2 -2
- package/dist/cli/{runner-eagt6gf8.js → runner-sj5sf36c.js} +4 -4
- package/dist/cli/{scan-cursor-7s1bz7ew.js → scan-cursor-8acs9kwe.js} +5 -5
- package/dist/cli/{schema-78pdxc8f.js → schema-rjhassd0.js} +2 -2
- package/dist/cli/{scope-persistence-7ad69qmq.js → scope-persistence-jb1a5dzh.js} +7 -7
- package/dist/cli/{skill-generator-7cxf53ye.js → skill-generator-frgppk1w.js} +13 -13
- package/dist/cli/{worktree-collision-ownership-ry7xnaae.js → worktree-collision-ownership-f5sj6ffa.js} +4 -4
- package/dist/cli/{worktree-isolation-1jcc8ynj.js → worktree-isolation-5b0w6bha.js} +31 -31
- package/dist/hooks/pr-review-reentry-authorization.d.ts +97 -0
- package/dist/hooks/pr-workflow-gate.d.ts +211 -8
- package/dist/index.js +467 -460
- package/dist/tools/authorize-pr-review-reentry.d.ts +16 -0
- package/dist/tools/complete-pr-workflow.d.ts +2 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/manifest.d.ts +1 -0
- package/dist/tools/tool-metadata.d.ts +4 -0
- package/dist/tools/write-pr-review-artifact.d.ts +18 -0
- package/package.json +1 -1
|
@@ -142,11 +142,11 @@ ordering, vocabulary, or schema.
|
|
|
142
142
|
`test-infrastructure`, `ui-accessibility-i18n`, `privacy-observability`,
|
|
143
143
|
`generated-provenance`, `unclassified-risk`.
|
|
144
144
|
- Base candidate header:
|
|
145
|
-
`[CANDIDATE] | candidate_id | lane | severity | category | file:line | claim | evidence_summary | impact_context | confidence`
|
|
145
|
+
`[CANDIDATE] | candidate_id | lane | severity | category | file:line | claim | evidence_summary | impact_context | confidence | risk_impact | risk_tags`
|
|
146
146
|
- Base clean attestation:
|
|
147
147
|
`[CLEAN] | lane | coverage_scope | evidence`
|
|
148
148
|
- Micro/council candidate header:
|
|
149
|
-
`[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence`
|
|
149
|
+
`[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence | risk_impact | risk_tags`
|
|
150
150
|
- Micro/council clean attestation:
|
|
151
151
|
`[CLEAN] | micro_lane | coverage_scope | evidence`
|
|
152
152
|
- Severity is exactly `INFO | LOW | MEDIUM | HIGH | CRITICAL`; confidence is
|
|
@@ -972,14 +972,9 @@ Before Phase 4 or synthesis, all base lanes must be settled. `dispatch_lanes_asy
|
|
|
972
972
|
For ANY lane that failed (either mode):
|
|
973
973
|
1. **Retry** (max 2 attempts after the initial attempt) with materially different parameters — different session or prompt decomposition, while preserving the required structured async mode and exact head provenance.
|
|
974
974
|
2. If a base lane fails under Profile A, retry only the unresolved `workflow_lane` identifiers with `dispatch_lanes_async`, `mode: "swarm-pr-review:base"`, the same exact `pr_head_sha`, explorer agents, and the staged-resilience fields when that policy is enabled: a singleton `pr_review_wave_stage: "canary"` first, then a matching `"fanout"` batch only for the remaining unresolved obligations. The durable gate joins successful provenance across the initial wave and retry batches, carries unresolved obligations forward attempt by attempt, and rejects typed `retry_exhausted` or `circuit_open` outcomes before any new lane is launched. While that controller is active, blocking `dispatch_lanes` and direct Task dispatch are not equivalent because they cannot satisfy the structured provenance gate. Under Profiles B/C, retry only the failed `workflow_lane` identifiers with a fresh subagent or pass, the same exact `pr_head_sha`, and a materially different prompt decomposition.
|
|
975
|
-
3. If no equivalent alternative can be verified, **
|
|
976
|
-
4.
|
|
977
|
-
|
|
978
|
-
`abort_pr_workflow` with `mode: "PR_REVIEW"`, `kind: "recovery"`, and a
|
|
979
|
-
non-empty one-line `reason` naming the failed lane and exhausted retries.
|
|
980
|
-
Then call `prepare_pr_workflow_checkout` with `operation: "restore"`.
|
|
981
|
-
Report the preserved failure only after the gate is cleared and the checkout
|
|
982
|
-
restoration either succeeds or returns a concrete manual-recovery diagnostic.
|
|
975
|
+
3. If no equivalent alternative can be verified AND every launched lane is terminal or explicitly cancelled, **settle N-of-6 truthfully (issue #2383)** instead of discarding validated work: admit the terminal settlement with `write_pr_review_artifact` (`kind: "findings"`, `boundary: "post_explorer"`, the sentinel `CLEAN-REVIEW` record when no candidates exist, and `partial_base_coverage: { unresolved_dimensions: [<exactly the dimensions that are not covered>] }`), run the remaining phases over the covered dimensions' findings, and complete with `complete_pr_workflow` carrying the verdict the settlement allows. NEVER fabricate coverage, NEVER present an unresolved dimension as reviewed, and NEVER let a partial report approve.
|
|
976
|
+
4. **Terminal report kinds (issue #2383):** all six dimensions covered → `COMPLETE` (verdict may be APPROVE, REQUEST_CHANGES, or INCOMPLETE); at least one covered → `PARTIAL` (verdict must be REQUEST_CHANGES or INCOMPLETE; validated findings from covered dimensions remain publishable); zero covered → `NO_COVERAGE` (skip the findings ladder entirely, call `complete_pr_workflow` with `report_verdict: "INCOMPLETE"` directly — the completion returns a truthful operational report with per-dimension reasons and never claims a code-quality review). A still-live lane blocks settlement: poll, cancel explicitly with `cancel_pending`, or let the presumed-stale sweep settle it first.
|
|
977
|
+
5. Under Profile A, when the bind/checkout path itself is genuinely unreachable or the workflow is publication-armed and exact publication cannot proceed, use the bounded recovery exits: `abort_pr_workflow` with `mode: "PR_REVIEW"`, `kind: "recovery"`, and a non-empty one-line `reason` for an unrecoverable unbound/bound gate, or `kind: "armed_recovery"` (issue #2383) for a publication-armed wedge — then `prepare_pr_workflow_checkout` with `operation: "restore"`. Abort remains a recovery tool for the genuinely unrecoverable, never a shortcut past a settleable coverage obligation.
|
|
983
978
|
|
|
984
979
|
### Contract-failure diagnosis and recovery
|
|
985
980
|
|
|
@@ -1109,7 +1104,7 @@ The fence below is documentation formatting only. Emit the header and all
|
|
|
1109
1104
|
machine-readable rows as unfenced plain text; do not emit the backticks.
|
|
1110
1105
|
|
|
1111
1106
|
```text
|
|
1112
|
-
[CANDIDATE] | candidate_id | lane | severity | category | file:line | claim | evidence_summary | impact_context | confidence
|
|
1107
|
+
[CANDIDATE] | candidate_id | lane | severity | category | file:line | claim | evidence_summary | impact_context | confidence | risk_impact | risk_tags
|
|
1113
1108
|
```
|
|
1114
1109
|
|
|
1115
1110
|
Profile A stores the full assistant transcript, so earlier unmarked progress
|
|
@@ -1312,7 +1307,7 @@ The fence below is documentation formatting only. Emit the header and all
|
|
|
1312
1307
|
machine-readable rows as unfenced plain text; do not emit the backticks.
|
|
1313
1308
|
|
|
1314
1309
|
```text
|
|
1315
|
-
[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence
|
|
1310
|
+
[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence | risk_impact | risk_tags
|
|
1316
1311
|
[CLEAN] | micro_lane | coverage_scope | evidence
|
|
1317
1312
|
```
|
|
1318
1313
|
|
|
@@ -1443,7 +1438,7 @@ For each candidate, the reviewer must determine:
|
|
|
1443
1438
|
Reviewer output format:
|
|
1444
1439
|
|
|
1445
1440
|
```text
|
|
1446
|
-
[REVIEWED] | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes
|
|
1441
|
+
[REVIEWED] | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes | risk_impact | risk_tags
|
|
1447
1442
|
```
|
|
1448
1443
|
|
|
1449
1444
|
For the mechanically derived `CLEAN-REVIEW` sentinel, use the same exact row
|
|
@@ -1486,14 +1481,9 @@ A finding may still be reported without a runnable command if it is structurally
|
|
|
1486
1481
|
|
|
1487
1482
|
## Phase 8: Critic Challenge
|
|
1488
1483
|
|
|
1489
|
-
Route
|
|
1484
|
+
Route reviewer-confirmed CRITICAL and HIGH findings to a critic always. Route a MEDIUM finding only when its typed risk metadata says so (issue #2383): `risk_impact: "HIGH_IMPACT"`, or any `risk_tags` entry (`SECURITY`, `AUTH_PERMISSIONS`, `STATE_INTEGRITY`, `WRITE_PATH`, `EVIDENCE_INTEGRITY`, `GIT`, `CONFIGURATION`). An ordinary MEDIUM (`risk_impact: "ORDINARY"`, no tags) is NOT critic-routed. `risk_impact: "UNKNOWN"` always routes to critic — never guess impact you could not assess, and never let file paths, dimension names, or prose override the typed `risk_impact`/`risk_tags` the reviewer row carries.
|
|
1490
1485
|
|
|
1491
|
-
The controller
|
|
1492
|
-
rows: every reviewer-confirmed CRITICAL, HIGH, or MEDIUM item is mandatory
|
|
1493
|
-
critic inventory. This intentionally over-routes ordinary MEDIUM items because
|
|
1494
|
-
machine enforcement cannot safely infer every repository-specific trust
|
|
1495
|
-
boundary from prose. Completion is blocked until that exact derived inventory
|
|
1496
|
-
has valid critic rows.
|
|
1486
|
+
The controller derives critic ownership from the typed reviewer rows through the one shared production predicate; every newly written CONFIRMED finding must supply `risk_impact` and `risk_tags` (the write boundary rejects a CONFIRMED record without them, and unknown tag values fail the row). Completion is blocked until that exact derived inventory has valid critic rows.
|
|
1497
1487
|
|
|
1498
1488
|
Reviewer and critic settlement MUST compose successful verdicts item by item
|
|
1499
1489
|
across complementary partial batches. The newest successful claim wins each
|
|
@@ -1694,7 +1684,7 @@ When triggered:
|
|
|
1694
1684
|
2. After the default base-dimension and risk-family coverage is complete, launch all supplementary council agents. Under Profile A, use one `dispatch_lanes_async` call with `mode: "swarm-pr-review:council"`, the same exact `pr_head_sha`, and one unique `workflow_lane` per council member; continue independent context preparation while they run, polling with `collect_lane_results` (without `wait`) to process settled agents incrementally, and use `wait: true` only when no independent work remains. All agents must be settled and their candidates added to the ledger before reviewer classification; under Profile A the runtime enforces this join barrier, and blocking, sequential, or direct-Task fallback is not equivalent to the structured council dispatch — bypassing the active controller is `BLOCKED`. Under Profile B, dispatch council members as parallel subagents with the same marker contract and settle them all before reviewer classification; under Profile C, run each council lens as a separate sequential pass.
|
|
1695
1685
|
3. Each council agent assumes all work is wrong until code evidence proves otherwise.
|
|
1696
1686
|
4. Each agent hunts within its lane only.
|
|
1697
|
-
5. Council uses the micro-lane row family: `[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence`. Emit one row per `EVIDENCE_FOUND` or `SUSPICIOUS` claim, or a fully populated `[CLEAN] | micro_lane | coverage_scope | evidence` row when no candidate survives. Put the exact council `workflow_lane` value in the `micro_lane` data field. Council prose without one of those markers does not settle the lane.
|
|
1687
|
+
5. Council uses the micro-lane row family: `[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence | risk_impact | risk_tags`. Emit one row per `EVIDENCE_FOUND` or `SUSPICIOUS` claim, or a fully populated `[CLEAN] | micro_lane | coverage_scope | evidence` row when no candidate survives. Put the exact council `workflow_lane` value in the `micro_lane` data field. Council prose without one of those markers does not settle the lane.
|
|
1698
1688
|
6. Agents must not return `CONFIRMED`, `DISPROVED`, or final severity; candidate severity remains provisional until reviewer classification.
|
|
1699
1689
|
7. The independent reviewer then classifies every council candidate as `CONFIRMED`, `DISPROVED`, `UNVERIFIED`, or `PRE_EXISTING`.
|
|
1700
1690
|
8. Apply critic challenge to reviewer-confirmed HIGH/CRITICAL or borderline findings.
|
|
@@ -1770,7 +1760,7 @@ Before writing the final output, print this checklist with filled values. Every
|
|
|
1770
1760
|
[VALIDATION] repo graph / impact cone source: ___
|
|
1771
1761
|
[VALIDATION] deterministic signals ingested: ___
|
|
1772
1762
|
[VALIDATION] lane dispatch mechanism: controller / native subagents / sequential passes — ___
|
|
1773
|
-
[VALIDATION]
|
|
1763
|
+
[VALIDATION] terminal coverage: COMPLETE (6/6) OR PARTIAL (___/6 + unresolved dimensions settled) OR NO_COVERAGE (0/6) (issue #2383; lanes dispatched: ___)
|
|
1774
1764
|
[VALIDATION] base explorer lanes returned: ___ / ___
|
|
1775
1765
|
[VALIDATION] micro risk families evaluated and attested: ___ / 11 OR BLOCKED — <missing rows> (micro lanes dispatched: ___)
|
|
1776
1766
|
[VALIDATION] Swarm verifier routing used: ___
|
|
@@ -1783,7 +1773,7 @@ Before writing the final output, print this checklist with filled values. Every
|
|
|
1783
1773
|
[VALIDATION] findings marked PRE_EXISTING: ___
|
|
1784
1774
|
[VALIDATION] findings left UNVERIFIED: ___
|
|
1785
1775
|
[VALIDATION] findings escalated to critic: ___
|
|
1786
|
-
[VALIDATION] critic dispatched: ___ OR "SKIPPED — no
|
|
1776
|
+
[VALIDATION] critic dispatched: ___ OR "SKIPPED — no typed critic-routed finding (CRITICAL/HIGH, MEDIUM+HIGH_IMPACT, MEDIUM+risk_tags, or UNKNOWN)"
|
|
1787
1777
|
[VALIDATION] critic returned: ___ OR "N/A"
|
|
1788
1778
|
[VALIDATION] findings upheld by critic: ___
|
|
1789
1779
|
[VALIDATION] findings downgraded by critic: ___
|
|
@@ -1922,8 +1912,8 @@ For reviewer, critic, and explorer prompt templates, read `references/prompt-tem
|
|
|
1922
1912
|
|
|
1923
1913
|
Under Profile A, after metrics and durable review artifacts are complete, but
|
|
1924
1914
|
before emitting the user-facing final report, call `complete_pr_workflow` with
|
|
1925
|
-
mode `PR_REVIEW
|
|
1926
|
-
`pr_head_sha
|
|
1915
|
+
mode `PR_REVIEW`, the same exact
|
|
1916
|
+
`pr_head_sha`, and the terminal `report_verdict` the coverage kind allows (issue #2383). The tool refuses to clear the session gate while required base,
|
|
1927
1917
|
trigger, declared reviewer/critic, or open-lane obligations remain incomplete.
|
|
1928
1918
|
While the gate remains active, the runtime prepends a workflow-active banner
|
|
1929
1919
|
to the first substantive text part of each architect message (the model's text
|
|
@@ -2015,7 +2005,15 @@ the frozen ledger before re-binding.
|
|
|
2015
2005
|
Abort is a recovery tool, not a coverage shortcut. Use it only when the
|
|
2016
2006
|
bind/checkout path is genuinely unreachable or bounded structural recovery or
|
|
2017
2007
|
retries are genuinely exhausted; never use it to skip a coverage obligation
|
|
2018
|
-
that is still recoverable, merely expensive, or inconvenient.
|
|
2008
|
+
that is still recoverable, merely expensive, or inconvenient. When lanes have
|
|
2009
|
+
settled short of full coverage, the terminal N-of-6 settlement (issue #2383)
|
|
2010
|
+
is the truthful exit — not abort. For a publication-armed workflow whose exact
|
|
2011
|
+
publication cannot proceed, `abort_pr_workflow` with `kind: "armed_recovery"`
|
|
2012
|
+
(plus the armed recovery identity fields from `pr_workflow_status`) is the
|
|
2013
|
+
audited escape: it settles lanes, invalidates the staged publication
|
|
2014
|
+
authorization, preserves validated work, and leaves a recoverable terminal
|
|
2015
|
+
state; exact approved publication via `complete_pr_workflow` remains available
|
|
2016
|
+
and preferred whenever it can proceed.
|
|
2019
2017
|
|
|
2020
2018
|
On Profiles B/C there is no durable gate or auto-resume loop to clear: if the
|
|
2021
2019
|
head bind is genuinely unreachable or bounded lane recovery is exhausted,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
The following machine-readable block mirrors `src/background/pr-review-contract.ts`. CI parses it structurally; changing a skill dialect without the executable schema (or vice versa) fails the contract test.
|
|
6
6
|
|
|
7
7
|
<!-- PR_REVIEW_EXECUTABLE_DIALECT_START -->
|
|
8
|
-
reviewer_fields: marker | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes
|
|
8
|
+
reviewer_fields: marker | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes | risk_impact | risk_tags
|
|
9
9
|
reviewer_classifications: CONFIRMED | DISPROVED | UNVERIFIED | PRE_EXISTING
|
|
10
10
|
reviewer_evidence_types: STRUCTURALLY_PROVEN | EXECUTION_PROVEN | STATIC_TRACE_PROVEN | PLAUSIBLE_BUT_UNVERIFIED
|
|
11
11
|
critic_fields: marker | item_id | status | severity | rationale | required_change
|
|
@@ -118,8 +118,16 @@ satisfy two:
|
|
|
118
118
|
| `post_critic` | not critic-routed | the reviewer `final_severity` |
|
|
119
119
|
| `post_critic` | critic-routed | the **critic** `final_severity` — the final word |
|
|
120
120
|
|
|
121
|
-
A record is critic-routed
|
|
122
|
-
|
|
121
|
+
A record is critic-routed by the shared typed predicate (issue #2383): reviewer
|
|
122
|
+
classification `CONFIRMED` AND one of — severity `CRITICAL`/`HIGH`; severity
|
|
123
|
+
`MEDIUM` with `risk_impact: "HIGH_IMPACT"`; severity `MEDIUM` with any
|
|
124
|
+
`risk_tags` entry (`SECURITY`, `AUTH_PERMISSIONS`, `STATE_INTEGRITY`,
|
|
125
|
+
`WRITE_PATH`, `EVIDENCE_INTEGRITY`, `GIT`, `CONFIGURATION`); or
|
|
126
|
+
`risk_impact: "UNKNOWN"`. An `ORDINARY` MEDIUM with no tags is NOT
|
|
127
|
+
critic-routed; `LOW` follows the existing no-critic policy once its metadata
|
|
128
|
+
is known. Every CONFIRMED finding record must carry `risk_impact` and
|
|
129
|
+
`risk_tags`; unknown tag values are rejected, and no path- or dimension-based
|
|
130
|
+
inference ever substitutes for the typed values.
|
|
123
131
|
|
|
124
132
|
Because the critic is authoritative for critic-routed records, a **downgrade is
|
|
125
133
|
encodable verbatim**: reviewer `MEDIUM` + critic `LOW` persists as
|
|
@@ -235,7 +235,7 @@ Candidates (Chunk A — src/utils/):
|
|
|
235
235
|
- C-001 | HIGH | null-safety | src/utils/cache.ts:142 | Uncached getter may return undefined on cold start
|
|
236
236
|
|
|
237
237
|
For each candidate, return:
|
|
238
|
-
[REVIEWED] | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes
|
|
238
|
+
[REVIEWED] | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes | risk_impact | risk_tags
|
|
239
239
|
|
|
240
240
|
You must check caller context, reachability, schema/middleware/framework mitigations, state-machine constraints, test coverage, PR-introducedness, and severity.
|
|
241
241
|
|
|
@@ -20,7 +20,7 @@ Candidates:
|
|
|
20
20
|
- ...
|
|
21
21
|
|
|
22
22
|
For each candidate, return:
|
|
23
|
-
[REVIEWED] | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes
|
|
23
|
+
[REVIEWED] | item_id | classification | evidence_type | severity | introduced_by_pr | file:line | rationale | probe | reviewer_notes | risk_impact | risk_tags
|
|
24
24
|
|
|
25
25
|
Escape free-text fields with the executable verdict codec: `\\` (backslash),
|
|
26
26
|
`\|` (pipe), `\n` (newline), and `\r` (carriage return). Do not copy the
|
|
@@ -97,7 +97,7 @@ You must inspect or mark unavailable:
|
|
|
97
97
|
8. the exact `base_sha...pr_head_sha` merge-base range and both endpoint revisions.
|
|
98
98
|
|
|
99
99
|
Return:
|
|
100
|
-
[CANDIDATE] | candidate_id | lane | severity | category | file:line | claim | evidence_summary | impact_context | confidence
|
|
100
|
+
[CANDIDATE] | candidate_id | lane | severity | category | file:line | claim | evidence_summary | impact_context | confidence | risk_impact | risk_tags
|
|
101
101
|
|
|
102
102
|
Emit the marker-bearing header once, then unprefixed data rows.
|
|
103
103
|
For a clean base lane, emit `[CLEAN] | lane | coverage_scope | evidence`.
|
|
@@ -138,7 +138,7 @@ You must inspect or mark unavailable:
|
|
|
138
138
|
8. the exact `base_sha...pr_head_sha` merge-base range and both endpoint revisions.
|
|
139
139
|
|
|
140
140
|
Return:
|
|
141
|
-
[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence
|
|
141
|
+
[CANDIDATE] | candidate_id | micro_lane | severity | category | file:line | claim | invariant_violated | evidence_summary | confidence | risk_impact | risk_tags
|
|
142
142
|
|
|
143
143
|
Emit the marker-bearing header once, then unprefixed data rows.
|
|
144
144
|
For a clean micro-lane or council lane, emit `[CLEAN] | micro_lane | coverage_scope | evidence`.
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { type PrReviewRiskImpact, type PrReviewRiskTag } from './pr-review-contract.js';
|
|
2
|
+
export type { PrReviewRiskImpact, PrReviewRiskTag };
|
|
3
|
+
export { PR_REVIEW_RISK_IMPACTS, PR_REVIEW_RISK_TAGS, parsePrReviewRiskTagsField, } from './pr-review-contract.js';
|
|
1
4
|
export declare const CANDIDATE_SEVERITIES: readonly ["INFO", "LOW", "MEDIUM", "HIGH", "CRITICAL"];
|
|
2
5
|
export type CandidateSeverity = (typeof CANDIDATE_SEVERITIES)[number];
|
|
3
6
|
/**
|
|
@@ -23,15 +26,29 @@ export type FindingsSeverity = (typeof FINDINGS_SEVERITIES)[number];
|
|
|
23
26
|
export declare const CANDIDATE_CONFIDENCES: readonly ["HIGH", "MEDIUM", "LOW"];
|
|
24
27
|
export type CandidateConfidence = (typeof CANDIDATE_CONFIDENCES)[number];
|
|
25
28
|
export type RowFormatFamily = 'base_explorer' | 'micro_lane';
|
|
26
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Canonical candidate row width (issue #2383): the legacy nine fields plus the
|
|
31
|
+
* two typed risk fields. Lanes emit eleven fields; legacy nine-field rows are
|
|
32
|
+
* normalized to `UNKNOWN` / no tags at the single parse boundary.
|
|
33
|
+
*/
|
|
34
|
+
export declare const CANDIDATE_FIELD_COUNT = 11;
|
|
35
|
+
/** Row width of pre-#2383 candidate rows, which lack the two risk fields. */
|
|
36
|
+
export declare const CANDIDATE_LEGACY_FIELD_COUNT = 9;
|
|
27
37
|
export declare const CLEAN_FIELD_COUNT = 4;
|
|
28
38
|
export declare const CLEAN_COVERAGE_SCOPE_MIN_CHARS = 12;
|
|
29
39
|
export declare const CLEAN_EVIDENCE_MIN_CHARS = 20;
|
|
30
40
|
export declare const CANDIDATE_DIAGNOSTIC_PREVIEW_CHARS = 160;
|
|
31
41
|
export declare const CANDIDATE_FIELDS: {
|
|
32
|
-
readonly base_explorer: readonly ["candidate_id", "lane", "severity", "category", "file_line", "claim", "evidence_summary", "impact_context", "confidence"];
|
|
33
|
-
readonly micro_lane: readonly ["candidate_id", "micro_lane", "severity", "category", "file_line", "claim", "invariant_violated", "evidence_summary", "confidence"];
|
|
42
|
+
readonly base_explorer: readonly ["candidate_id", "lane", "severity", "category", "file_line", "claim", "evidence_summary", "impact_context", "confidence", "risk_impact", "risk_tags"];
|
|
43
|
+
readonly micro_lane: readonly ["candidate_id", "micro_lane", "severity", "category", "file_line", "claim", "invariant_violated", "evidence_summary", "confidence", "risk_impact", "risk_tags"];
|
|
34
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Fields whose presence is enforced by the parser's required-field check.
|
|
47
|
+
* The two trailing risk fields are deliberately excluded: `risk_tags` may be
|
|
48
|
+
* legitimately empty, and legacy nine-field rows are normalized to
|
|
49
|
+
* `UNKNOWN` / no tags before the check runs (issue #2383).
|
|
50
|
+
*/
|
|
51
|
+
export declare const CANDIDATE_REQUIRED_FIELDS: Record<RowFormatFamily, readonly string[]>;
|
|
35
52
|
export declare const CANDIDATE_MARKER: "[CANDIDATE]";
|
|
36
53
|
export declare const CLEAN_MARKER: "[CLEAN]";
|
|
37
54
|
/** Canonical marker-bearing header derived from the parser's field authority. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { type CandidateArtifactRepairKind, type CandidateConfidence, type CandidateSeverity, type RowFormatFamily, type CleanAttestationRecord as SharedCleanAttestationRecord } from './candidate-contract';
|
|
2
|
+
import { type CandidateArtifactRepairKind, type CandidateConfidence, type CandidateSeverity, type PrReviewRiskImpact, type PrReviewRiskTag, type RowFormatFamily, type CleanAttestationRecord as SharedCleanAttestationRecord } from './candidate-contract';
|
|
3
3
|
declare const ArtifactInputSchema: z.ZodObject<{
|
|
4
4
|
output_ref: z.ZodString;
|
|
5
5
|
batchId: z.ZodString;
|
|
@@ -70,6 +70,13 @@ export interface CandidateRecord {
|
|
|
70
70
|
impact_context: string | null;
|
|
71
71
|
invariant_violated: string | null;
|
|
72
72
|
confidence: CandidateConfidence | null;
|
|
73
|
+
/**
|
|
74
|
+
* Typed risk metadata (issue #2383). Advisory at candidate stage — the
|
|
75
|
+
* reviewer's `[REVIEWED]` row is the authoritative producer for confirmed
|
|
76
|
+
* findings. Legacy rows parse as `UNKNOWN` / `[]`.
|
|
77
|
+
*/
|
|
78
|
+
risk_impact: PrReviewRiskImpact | null;
|
|
79
|
+
risk_tags: PrReviewRiskTag[] | null;
|
|
73
80
|
}
|
|
74
81
|
/** A machine-readable attestation that a complete lane found no candidates. */
|
|
75
82
|
export type CleanAttestationRecord = SharedCleanAttestationRecord;
|
|
@@ -6,6 +6,25 @@ export declare const PR_REVIEW_CRITIC_STATUSES: readonly ["UPHELD", "DOWNGRADED"
|
|
|
6
6
|
export declare const PR_REVIEW_FINDING_STATUSES: readonly ["PENDING", "CONFIRMED", "DISPROVED", "PRE_EXISTING"];
|
|
7
7
|
export declare const PR_REVIEW_FINDING_ACTIONS: readonly ["route_to_reviewer", "route_to_critic", "report", "suppress_with_reason", "handoff_to_feedback"];
|
|
8
8
|
export declare const PR_REVIEW_ARTIFACT_BOUNDARIES: readonly ["post_explorer", "post_reviewer", "post_critic"];
|
|
9
|
+
/**
|
|
10
|
+
* The six canonical PR-review base dimensions (issue #2383).
|
|
11
|
+
*
|
|
12
|
+
* Single source of truth: this contract module owns the list; the workflow
|
|
13
|
+
* gate re-exports it. No other file may define the literal (guarded by a
|
|
14
|
+
* source-scan test).
|
|
15
|
+
*/
|
|
16
|
+
export declare const PR_REVIEW_BASE_DIMENSION_IDS: readonly ["intent-architecture", "correctness-state", "tests-falsifiability", "security-trust", "reliability-performance", "compatibility-delivery"];
|
|
17
|
+
export type PrReviewBaseDimensionId = (typeof PR_REVIEW_BASE_DIMENSION_IDS)[number];
|
|
18
|
+
/** Typed risk-impact classification for critic routing (issue #2383). */
|
|
19
|
+
export declare const PR_REVIEW_RISK_IMPACTS: readonly ["ORDINARY", "HIGH_IMPACT", "UNKNOWN"];
|
|
20
|
+
export type PrReviewRiskImpact = (typeof PR_REVIEW_RISK_IMPACTS)[number];
|
|
21
|
+
/**
|
|
22
|
+
* Typed risk tags for critic routing (issue #2383). Presence of ANY tag on a
|
|
23
|
+
* MEDIUM finding routes it to critic; paths, dimensions, keywords, and prompt
|
|
24
|
+
* prose may suggest risk to the model but can never override the typed result.
|
|
25
|
+
*/
|
|
26
|
+
export declare const PR_REVIEW_RISK_TAGS: readonly ["SECURITY", "AUTH_PERMISSIONS", "STATE_INTEGRITY", "WRITE_PATH", "EVIDENCE_INTEGRITY", "GIT", "CONFIGURATION"];
|
|
27
|
+
export type PrReviewRiskTag = (typeof PR_REVIEW_RISK_TAGS)[number];
|
|
9
28
|
export declare const PR_REVIEW_CONTRACT_CARD_HEADER = "[PR-REVIEW CONTRACT CARD]";
|
|
10
29
|
export declare const PR_REVIEW_FINDINGS_MAX_BYTES: number;
|
|
11
30
|
export declare const PR_REVIEW_FINDINGS_WRITE_MAX_BYTES: number;
|
|
@@ -40,22 +59,69 @@ export declare const PrReviewFindingSchema: z.ZodObject<{
|
|
|
40
59
|
NONE: "NONE";
|
|
41
60
|
}>>;
|
|
42
61
|
category: z.ZodOptional<z.ZodString>;
|
|
62
|
+
risk_impact: z.ZodOptional<z.ZodEnum<{
|
|
63
|
+
ORDINARY: "ORDINARY";
|
|
64
|
+
HIGH_IMPACT: "HIGH_IMPACT";
|
|
65
|
+
UNKNOWN: "UNKNOWN";
|
|
66
|
+
}>>;
|
|
67
|
+
risk_tags: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
68
|
+
SECURITY: "SECURITY";
|
|
69
|
+
AUTH_PERMISSIONS: "AUTH_PERMISSIONS";
|
|
70
|
+
STATE_INTEGRITY: "STATE_INTEGRITY";
|
|
71
|
+
WRITE_PATH: "WRITE_PATH";
|
|
72
|
+
EVIDENCE_INTEGRITY: "EVIDENCE_INTEGRITY";
|
|
73
|
+
GIT: "GIT";
|
|
74
|
+
CONFIGURATION: "CONFIGURATION";
|
|
75
|
+
}>>>;
|
|
43
76
|
}, z.core.$strict>;
|
|
77
|
+
export interface PrReviewCriticRoutingInput {
|
|
78
|
+
classification?: string;
|
|
79
|
+
severity?: string;
|
|
80
|
+
risk_impact?: PrReviewRiskImpact;
|
|
81
|
+
risk_tags?: readonly PrReviewRiskTag[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* THE shared production critic-routing predicate (issue #2383).
|
|
85
|
+
*
|
|
86
|
+
* Exactly one definition, imported by every production consumer (critic
|
|
87
|
+
* inventory derivation, artifact-record validation, coverage admission).
|
|
88
|
+
* Inline severity triples are forbidden — a parity/centralization guard test
|
|
89
|
+
* enforces it. Accepts only the normalized canonical shape:
|
|
90
|
+
*
|
|
91
|
+
* - non-CONFIRMED classifications are never critic-routed;
|
|
92
|
+
* - UNKNOWN/missing/invalid risk metadata routes to critic (fail-safe);
|
|
93
|
+
* - CRITICAL/HIGH always route to critic;
|
|
94
|
+
* - MEDIUM routes iff HIGH_IMPACT or at least one risk tag;
|
|
95
|
+
* - LOW/INFO/NONE follow the existing no-critic policy once metadata is known.
|
|
96
|
+
*
|
|
97
|
+
* Paths, dimensions, keywords, and prompt prose may suggest risk to the model
|
|
98
|
+
* but can never override this typed result.
|
|
99
|
+
*/
|
|
100
|
+
export declare function prReviewFindingRequiresCritic(input: PrReviewCriticRoutingInput): boolean;
|
|
44
101
|
export declare const PrReviewHandoffSchema: z.ZodObject<{
|
|
45
102
|
pr_url: z.ZodString;
|
|
46
103
|
finding_ids: z.ZodArray<z.ZodString>;
|
|
47
104
|
summary: z.ZodString;
|
|
48
105
|
provenance: z.ZodArray<z.ZodString>;
|
|
49
106
|
}, z.core.$strict>;
|
|
107
|
+
/**
|
|
108
|
+
* Terminal N-of-6 settlement disclosure input (issue #2383).
|
|
109
|
+
*
|
|
110
|
+
* The controller declares the set of dimensions it believes are unresolved;
|
|
111
|
+
* the gate derives each dimension's terminal state from lane evidence and
|
|
112
|
+
* rejects any declaration that does not exactly match. New writers emit ONLY
|
|
113
|
+
* this array shape; the persisted disclosure record additionally carries the
|
|
114
|
+
* gate-derived per-dimension terminal states (versioned v2).
|
|
115
|
+
*/
|
|
50
116
|
export declare const PrReviewPartialBaseCoverageSchema: z.ZodObject<{
|
|
51
|
-
|
|
117
|
+
unresolved_dimensions: z.ZodArray<z.ZodEnum<{
|
|
52
118
|
"intent-architecture": "intent-architecture";
|
|
53
119
|
"correctness-state": "correctness-state";
|
|
54
120
|
"tests-falsifiability": "tests-falsifiability";
|
|
55
121
|
"security-trust": "security-trust";
|
|
56
122
|
"reliability-performance": "reliability-performance";
|
|
57
123
|
"compatibility-delivery": "compatibility-delivery";
|
|
58
|
-
}
|
|
124
|
+
}>>;
|
|
59
125
|
}, z.core.$strict>;
|
|
60
126
|
export declare const WritePrReviewArtifactArgsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
61
127
|
kind: z.ZodLiteral<"findings">;
|
|
@@ -92,16 +158,30 @@ export declare const WritePrReviewArtifactArgsSchema: z.ZodDiscriminatedUnion<[z
|
|
|
92
158
|
NONE: "NONE";
|
|
93
159
|
}>>;
|
|
94
160
|
category: z.ZodOptional<z.ZodString>;
|
|
161
|
+
risk_impact: z.ZodOptional<z.ZodEnum<{
|
|
162
|
+
ORDINARY: "ORDINARY";
|
|
163
|
+
HIGH_IMPACT: "HIGH_IMPACT";
|
|
164
|
+
UNKNOWN: "UNKNOWN";
|
|
165
|
+
}>>;
|
|
166
|
+
risk_tags: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
167
|
+
SECURITY: "SECURITY";
|
|
168
|
+
AUTH_PERMISSIONS: "AUTH_PERMISSIONS";
|
|
169
|
+
STATE_INTEGRITY: "STATE_INTEGRITY";
|
|
170
|
+
WRITE_PATH: "WRITE_PATH";
|
|
171
|
+
EVIDENCE_INTEGRITY: "EVIDENCE_INTEGRITY";
|
|
172
|
+
GIT: "GIT";
|
|
173
|
+
CONFIGURATION: "CONFIGURATION";
|
|
174
|
+
}>>>;
|
|
95
175
|
}, z.core.$strict>>;
|
|
96
176
|
partial_base_coverage: z.ZodOptional<z.ZodObject<{
|
|
97
|
-
|
|
177
|
+
unresolved_dimensions: z.ZodArray<z.ZodEnum<{
|
|
98
178
|
"intent-architecture": "intent-architecture";
|
|
99
179
|
"correctness-state": "correctness-state";
|
|
100
180
|
"tests-falsifiability": "tests-falsifiability";
|
|
101
181
|
"security-trust": "security-trust";
|
|
102
182
|
"reliability-performance": "reliability-performance";
|
|
103
183
|
"compatibility-delivery": "compatibility-delivery";
|
|
104
|
-
}
|
|
184
|
+
}>>;
|
|
105
185
|
}, z.core.$strict>>;
|
|
106
186
|
}, z.core.$strict>, z.ZodObject<{
|
|
107
187
|
kind: z.ZodLiteral<"handoff">;
|
|
@@ -121,6 +201,10 @@ export interface PrReviewVerdictDescriptor {
|
|
|
121
201
|
fieldRoles: readonly string[];
|
|
122
202
|
schema: z.ZodType<readonly string[]>;
|
|
123
203
|
}
|
|
204
|
+
/** Field count of pre-#2383 reviewer rows, which lack the two risk fields. */
|
|
205
|
+
export declare const PR_REVIEW_REVIEWER_LEGACY_FIELD_COUNT = 10;
|
|
206
|
+
export declare function parsePrReviewRiskTagsField(field: string): PrReviewRiskTag[];
|
|
207
|
+
export declare function encodePrReviewRiskTagsField(tags: readonly PrReviewRiskTag[]): string;
|
|
124
208
|
export declare const PrReviewReviewerVerdictFieldsSchema: z.ZodTuple<[z.ZodLiteral<"[REVIEWED]">, z.ZodString, z.ZodEnum<{
|
|
125
209
|
CONFIRMED: "CONFIRMED";
|
|
126
210
|
DISPROVED: "DISPROVED";
|
|
@@ -138,7 +222,11 @@ export declare const PrReviewReviewerVerdictFieldsSchema: z.ZodTuple<[z.ZodLiter
|
|
|
138
222
|
LOW: "LOW";
|
|
139
223
|
INFO: "INFO";
|
|
140
224
|
NONE: "NONE";
|
|
141
|
-
}>, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString
|
|
225
|
+
}>, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodEnum<{
|
|
226
|
+
ORDINARY: "ORDINARY";
|
|
227
|
+
HIGH_IMPACT: "HIGH_IMPACT";
|
|
228
|
+
UNKNOWN: "UNKNOWN";
|
|
229
|
+
}>, z.ZodString], null>;
|
|
142
230
|
export declare const PrReviewCriticVerdictFieldsSchema: z.ZodTuple<[z.ZodLiteral<"[CRITIC]">, z.ZodString, z.ZodEnum<{
|
|
143
231
|
DISPROVED: "DISPROVED";
|
|
144
232
|
UPHELD: "UPHELD";
|
|
@@ -13,23 +13,23 @@ import {
|
|
|
13
13
|
releaseCoderDispatchOwnership,
|
|
14
14
|
settleCoderDispatch,
|
|
15
15
|
transferCoderSettlementToBackground
|
|
16
|
-
} from "./index-
|
|
17
|
-
import"./index-dwkrdpz2.js";
|
|
18
|
-
import"./index-ybvtfthv.js";
|
|
19
|
-
import"./index-e7m7g2f9.js";
|
|
20
|
-
import"./index-ddszzne4.js";
|
|
16
|
+
} from "./index-c57cyrwn.js";
|
|
21
17
|
import"./index-3f7hqtgg.js";
|
|
18
|
+
import"./index-8fqb0ynp.js";
|
|
19
|
+
import"./index-fwe1wh6r.js";
|
|
20
|
+
import"./index-a1884hh4.js";
|
|
21
|
+
import"./index-ddszzne4.js";
|
|
22
22
|
import"./index-nwkr6tvv.js";
|
|
23
23
|
import"./index-556ja8an.js";
|
|
24
24
|
import"./index-dtn0pne5.js";
|
|
25
25
|
import"./index-z6xqpmqg.js";
|
|
26
26
|
import"./index-r3mvsbtq.js";
|
|
27
|
-
import"./index-9r7gp6cp.js";
|
|
28
|
-
import"./index-zjygnfay.js";
|
|
29
27
|
import"./index-9e6fdz2h.js";
|
|
30
28
|
import"./index-4rhhvd1a.js";
|
|
31
|
-
import"./index-
|
|
32
|
-
import"./index-
|
|
29
|
+
import"./index-yt75r1er.js";
|
|
30
|
+
import"./index-zjygnfay.js";
|
|
31
|
+
import"./index-h52hs4e9.js";
|
|
32
|
+
import"./index-zcmwwp1x.js";
|
|
33
33
|
import"./index-xagq35tf.js";
|
|
34
34
|
import"./index-ed5ykebp.js";
|
|
35
35
|
import"./index-h1g8w4v0.js";
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
shouldRunOnStartup,
|
|
13
13
|
writeBackupArtifact,
|
|
14
14
|
writeDoctorArtifact
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-rd324153.js";
|
|
16
16
|
import"./index-z6xqpmqg.js";
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
17
|
+
import"./index-f776m4r5.js";
|
|
18
|
+
import"./index-yt75r1er.js";
|
|
19
19
|
import"./index-zjygnfay.js";
|
|
20
20
|
import"./index-bk5tah7q.js";
|
|
21
21
|
import"./index-bpmtbmy9.js";
|
|
@@ -14,13 +14,13 @@ import {
|
|
|
14
14
|
resolveWorktreeBaseDir,
|
|
15
15
|
shortenWorktreePath,
|
|
16
16
|
writeLaneProfileToDiskReal
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-a1884hh4.js";
|
|
18
18
|
import"./index-z6xqpmqg.js";
|
|
19
19
|
import"./index-r3mvsbtq.js";
|
|
20
|
-
import"./index-9r7gp6cp.js";
|
|
21
|
-
import"./index-zjygnfay.js";
|
|
22
20
|
import"./index-9e6fdz2h.js";
|
|
23
21
|
import"./index-4rhhvd1a.js";
|
|
22
|
+
import"./index-yt75r1er.js";
|
|
23
|
+
import"./index-zjygnfay.js";
|
|
24
24
|
import"./index-zgwm4ryv.js";
|
|
25
25
|
import"./index-a76rekgs.js";
|
|
26
26
|
export {
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
authorizeCuration,
|
|
5
5
|
buildConfigFingerprintInput,
|
|
6
6
|
readCohortConfigFingerprint
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-pfnj5pvs.js";
|
|
8
8
|
import"./index-rtry5xyf.js";
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
9
|
+
import"./index-5zgf140g.js";
|
|
10
|
+
import"./index-h52hs4e9.js";
|
|
11
|
+
import"./index-zcmwwp1x.js";
|
|
12
12
|
import"./index-xagq35tf.js";
|
|
13
13
|
import"./index-ed5ykebp.js";
|
|
14
14
|
import"./index-h1g8w4v0.js";
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
} from "./index-dtn0pne5.js";
|
|
13
13
|
import"./index-z6xqpmqg.js";
|
|
14
14
|
import"./index-r3mvsbtq.js";
|
|
15
|
-
import"./index-zjygnfay.js";
|
|
16
15
|
import"./index-4rhhvd1a.js";
|
|
16
|
+
import"./index-zjygnfay.js";
|
|
17
17
|
import {
|
|
18
18
|
invalidateCachedArtifact
|
|
19
19
|
} from "./index-ed5ykebp.js";
|
|
@@ -14,59 +14,59 @@ import {
|
|
|
14
14
|
runCuratorInit,
|
|
15
15
|
runCuratorPhase,
|
|
16
16
|
writeCuratorSummary
|
|
17
|
-
} from "./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
21
|
-
import"./index-
|
|
22
|
-
import"./index-
|
|
17
|
+
} from "./index-rac2gkvr.js";
|
|
18
|
+
import"./index-z54qw70y.js";
|
|
19
|
+
import"./index-rc93mm6e.js";
|
|
20
|
+
import"./index-rd324153.js";
|
|
21
|
+
import"./index-bv24pbaj.js";
|
|
22
|
+
import"./index-7s1hmrfh.js";
|
|
23
|
+
import"./index-txdagbh7.js";
|
|
23
24
|
import"./index-134d35c1.js";
|
|
24
25
|
import"./index-nj6rmyeh.js";
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
27
|
-
import"./index-
|
|
26
|
+
import"./index-y3hdwh66.js";
|
|
27
|
+
import"./index-vwx0by4y.js";
|
|
28
|
+
import"./index-5tchehv7.js";
|
|
28
29
|
import"./index-70ha9e09.js";
|
|
29
30
|
import"./index-c8s9a3zh.js";
|
|
30
31
|
import"./index-9ss2m4rs.js";
|
|
31
|
-
import"./index-
|
|
32
|
+
import"./index-x4ftmdha.js";
|
|
32
33
|
import"./index-zsrtt42s.js";
|
|
33
|
-
import"./index-
|
|
34
|
-
import"./index-
|
|
35
|
-
import"./index-
|
|
36
|
-
import"./index-
|
|
37
|
-
import"./index-
|
|
34
|
+
import"./index-c57cyrwn.js";
|
|
35
|
+
import"./index-3f7hqtgg.js";
|
|
36
|
+
import"./index-8fqb0ynp.js";
|
|
37
|
+
import"./index-dmfbmnp7.js";
|
|
38
|
+
import"./index-pfnj5pvs.js";
|
|
38
39
|
import"./index-rtry5xyf.js";
|
|
39
|
-
import"./index-
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
40
|
+
import"./index-fwe1wh6r.js";
|
|
41
|
+
import"./index-a1884hh4.js";
|
|
42
|
+
import"./index-yfbp4q09.js";
|
|
42
43
|
import"./index-ddszzne4.js";
|
|
43
|
-
import"./index-
|
|
44
|
-
import"./index-
|
|
45
|
-
import"./index-pr6a7669.js";
|
|
44
|
+
import"./index-nvta6kcv.js";
|
|
45
|
+
import"./index-6xxpwk5x.js";
|
|
46
46
|
import"./index-nwkr6tvv.js";
|
|
47
47
|
import"./index-556ja8an.js";
|
|
48
48
|
import"./index-4fwbbad3.js";
|
|
49
49
|
import"./index-b43rt5ph.js";
|
|
50
50
|
import"./index-q7sjgr1y.js";
|
|
51
|
-
import"./index-
|
|
52
|
-
import"./index-
|
|
53
|
-
import"./index-
|
|
51
|
+
import"./index-x71shq8j.js";
|
|
52
|
+
import"./index-f036tggv.js";
|
|
53
|
+
import"./index-gm10kvne.js";
|
|
54
54
|
import"./index-gprxjmm7.js";
|
|
55
55
|
import"./index-n832052r.js";
|
|
56
56
|
import"./index-dtn0pne5.js";
|
|
57
57
|
import"./index-z6xqpmqg.js";
|
|
58
58
|
import"./index-r3mvsbtq.js";
|
|
59
|
-
import"./index-
|
|
60
|
-
import"./index-
|
|
61
|
-
import"./index-9r7gp6cp.js";
|
|
62
|
-
import"./index-zjygnfay.js";
|
|
59
|
+
import"./index-663wnh64.js";
|
|
60
|
+
import"./index-f776m4r5.js";
|
|
63
61
|
import"./index-9e6fdz2h.js";
|
|
64
62
|
import"./index-4rhhvd1a.js";
|
|
63
|
+
import"./index-yt75r1er.js";
|
|
64
|
+
import"./index-zjygnfay.js";
|
|
65
65
|
import"./index-ae75rja9.js";
|
|
66
|
-
import"./index-
|
|
67
|
-
import"./index-
|
|
66
|
+
import"./index-5zgf140g.js";
|
|
67
|
+
import"./index-h52hs4e9.js";
|
|
68
68
|
import"./index-bk5tah7q.js";
|
|
69
|
-
import"./index-
|
|
69
|
+
import"./index-zcmwwp1x.js";
|
|
70
70
|
import"./index-xagq35tf.js";
|
|
71
71
|
import"./index-ed5ykebp.js";
|
|
72
72
|
import"./index-h1g8w4v0.js";
|