baxian 2.0.0 → 2.0.2
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/README.md +5 -7
- package/README.zh-CN.md +5 -7
- package/dist/agent/bootstrap.d.ts.map +1 -1
- package/dist/agent/bootstrap.js +2 -4
- package/dist/agent/bootstrap.js.map +1 -1
- package/dist/agent/branch.d.ts +0 -13
- package/dist/agent/branch.d.ts.map +1 -1
- package/dist/agent/branch.js +1 -71
- package/dist/agent/branch.js.map +1 -1
- package/dist/agent/dispatch-reconciler.d.ts.map +1 -1
- package/dist/agent/dispatch-reconciler.js +19 -14
- package/dist/agent/dispatch-reconciler.js.map +1 -1
- package/dist/agent/manager.d.ts +90 -134
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +1154 -2265
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/net-exec.d.ts +3 -0
- package/dist/agent/net-exec.d.ts.map +1 -1
- package/dist/agent/net-exec.js +6 -0
- package/dist/agent/net-exec.js.map +1 -1
- package/dist/agent/pane-streamer-manager.d.ts +6 -6
- package/dist/agent/pane-streamer-manager.d.ts.map +1 -1
- package/dist/agent/pane-streamer-manager.js.map +1 -1
- package/dist/agent/pane-streamer.d.ts +6 -3
- package/dist/agent/pane-streamer.d.ts.map +1 -1
- package/dist/agent/pane-streamer.js +70 -40
- package/dist/agent/pane-streamer.js.map +1 -1
- package/dist/agent/phase-signal-watcher.d.ts +7 -2
- package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
- package/dist/agent/phase-signal-watcher.js +90 -32
- package/dist/agent/phase-signal-watcher.js.map +1 -1
- package/dist/agent/phase-signal.d.ts +19 -38
- package/dist/agent/phase-signal.d.ts.map +1 -1
- package/dist/agent/phase-signal.js +54 -88
- package/dist/agent/phase-signal.js.map +1 -1
- package/dist/agent/preflight.d.ts +0 -1
- package/dist/agent/preflight.d.ts.map +1 -1
- package/dist/agent/preflight.js +8 -15
- package/dist/agent/preflight.js.map +1 -1
- package/dist/agent/prompt.d.ts +1 -35
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +22 -162
- package/dist/agent/prompt.js.map +1 -1
- package/dist/agent/repo-store.d.ts +4 -1
- package/dist/agent/repo-store.d.ts.map +1 -1
- package/dist/agent/repo-store.js +33 -11
- package/dist/agent/repo-store.js.map +1 -1
- package/dist/agent/root-agent-runtime.d.ts +80 -0
- package/dist/agent/root-agent-runtime.d.ts.map +1 -0
- package/dist/agent/root-agent-runtime.js +637 -0
- package/dist/agent/root-agent-runtime.js.map +1 -0
- package/dist/agent/root-recovery-coordinator.d.ts +124 -0
- package/dist/agent/root-recovery-coordinator.d.ts.map +1 -0
- package/dist/agent/root-recovery-coordinator.js +1557 -0
- package/dist/agent/root-recovery-coordinator.js.map +1 -0
- package/dist/agent/runner.d.ts +1 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +103 -7
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tmux-probe-poller.d.ts +1 -0
- package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
- package/dist/agent/tmux-probe-poller.js +16 -10
- package/dist/agent/tmux-probe-poller.js.map +1 -1
- package/dist/agent/tmux.d.ts +3 -0
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +11 -5
- package/dist/agent/tmux.js.map +1 -1
- package/dist/agent/vt-visible-text.d.ts +42 -0
- package/dist/agent/vt-visible-text.d.ts.map +1 -0
- package/dist/agent/vt-visible-text.js +482 -0
- package/dist/agent/vt-visible-text.js.map +1 -0
- package/dist/api/agents.d.ts.map +1 -1
- package/dist/api/agents.js +42 -1
- package/dist/api/agents.js.map +1 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +83 -9
- package/dist/api/config.js.map +1 -1
- package/dist/api/hosts.d.ts.map +1 -1
- package/dist/api/hosts.js +68 -13
- package/dist/api/hosts.js.map +1 -1
- package/dist/api/platform-guard.js +2 -2
- package/dist/api/platform-guard.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +621 -325
- package/dist/api/projects.js.map +1 -1
- package/dist/api/tasks.d.ts.map +1 -1
- package/dist/api/tasks.js +15 -39
- package/dist/api/tasks.js.map +1 -1
- package/dist/app.d.ts +2 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +6 -0
- package/dist/app.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -7
- package/dist/cli.js.map +1 -1
- package/dist/config/loader.d.ts +5 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +57 -24
- package/dist/config/loader.js.map +1 -1
- package/dist/config/normalizer.d.ts.map +1 -1
- package/dist/config/normalizer.js +18 -0
- package/dist/config/normalizer.js.map +1 -1
- package/dist/config/validator.d.ts +7 -4
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +251 -96
- package/dist/config/validator.js.map +1 -1
- package/dist/event/handlers.d.ts.map +1 -1
- package/dist/event/handlers.js +359 -229
- package/dist/event/handlers.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -5
- package/dist/index.js.map +1 -1
- package/dist/platform/command-renderer.d.ts +6 -0
- package/dist/platform/command-renderer.d.ts.map +1 -1
- package/dist/platform/command-renderer.js +20 -0
- package/dist/platform/command-renderer.js.map +1 -1
- package/dist/platform/driver-host.d.ts.map +1 -1
- package/dist/platform/driver-host.js +3 -1
- package/dist/platform/driver-host.js.map +1 -1
- package/dist/platform/driver-spec.d.ts.map +1 -1
- package/dist/platform/driver-spec.js +32 -4
- package/dist/platform/driver-spec.js.map +1 -1
- package/dist/platform/git-driver.d.ts +2 -0
- package/dist/platform/git-driver.d.ts.map +1 -1
- package/dist/platform/git-driver.js +9 -3
- package/dist/platform/git-driver.js.map +1 -1
- package/dist/platform/platform-poller.d.ts +0 -1
- package/dist/platform/platform-poller.d.ts.map +1 -1
- package/dist/platform/platform-poller.js +1 -11
- package/dist/platform/platform-poller.js.map +1 -1
- package/dist/platform/plugins/github/driver.json +5 -0
- package/dist/platform/plugins/github/skills/baxian-cli-gh/SKILL.md +20 -14
- package/dist/platform/startup.d.ts.map +1 -1
- package/dist/platform/startup.js +5 -5
- package/dist/platform/startup.js.map +1 -1
- package/dist/platform/types.d.ts +1 -0
- package/dist/platform/types.d.ts.map +1 -1
- package/dist/platform/types.js +3 -3
- package/dist/platform/types.js.map +1 -1
- package/dist/shared/constants.d.ts +8 -7
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +6 -28
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +52 -125
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +24 -5
- package/dist/shared/types.js.map +1 -1
- package/dist/skills/baxian-pr-feedback/SKILL.md +6 -6
- package/dist/skills/baxian-pr-recheck/SKILL.md +6 -0
- package/dist/skills/baxian-pr-review/SKILL.md +6 -0
- package/dist/skills/baxian-signals/SKILL.md +17 -28
- package/dist/skills/baxian-task-check/SKILL.md +13 -14
- package/dist/state/init.d.ts.map +1 -1
- package/dist/state/init.js +1 -0
- package/dist/state/init.js.map +1 -1
- package/dist/state/lock.d.ts +6 -0
- package/dist/state/lock.d.ts.map +1 -1
- package/dist/state/lock.js +8 -0
- package/dist/state/lock.js.map +1 -1
- package/dist/state/root-recovery-store.d.ts +107 -0
- package/dist/state/root-recovery-store.d.ts.map +1 -0
- package/dist/state/root-recovery-store.js +400 -0
- package/dist/state/root-recovery-store.js.map +1 -0
- package/dist/state/snapshot.d.ts.map +1 -1
- package/dist/state/snapshot.js +5 -2
- package/dist/state/snapshot.js.map +1 -1
- package/dist/state/task-store.d.ts.map +1 -1
- package/dist/state/task-store.js +57 -137
- package/dist/state/task-store.js.map +1 -1
- package/dist/terminal/attach.d.ts +3 -3
- package/dist/terminal/attach.d.ts.map +1 -1
- package/dist/terminal/attach.js.map +1 -1
- package/dist/terminal/stream-ws.d.ts.map +1 -1
- package/dist/terminal/stream-ws.js.map +1 -1
- package/dist/web/assets/index-BKiM0MSM.js +15 -0
- package/dist/web/assets/index-BS2adAfI.css +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/agent/review-transport.d.ts +0 -92
- package/dist/agent/review-transport.d.ts.map +0 -1
- package/dist/agent/review-transport.js +0 -512
- package/dist/agent/review-transport.js.map +0 -1
- package/dist/event/server-handlers.d.ts +0 -4
- package/dist/event/server-handlers.d.ts.map +0 -1
- package/dist/event/server-handlers.js +0 -1221
- package/dist/event/server-handlers.js.map +0 -1
- package/dist/skills/baxian-research/SKILL.md +0 -28
- package/dist/skills/baxian-server-feedback/SKILL.md +0 -40
- package/dist/skills/baxian-server-feedback/agents/openai.yaml +0 -2
- package/dist/skills/baxian-server-review/SKILL.md +0 -58
- package/dist/skills/baxian-server-review/agents/openai.yaml +0 -2
- package/dist/state/review-store.d.ts +0 -33
- package/dist/state/review-store.d.ts.map +0 -1
- package/dist/state/review-store.js +0 -272
- package/dist/state/review-store.js.map +0 -1
- package/dist/web/assets/index-BPv6vv3U.css +0 -1
- package/dist/web/assets/index-BXfgaFNm.js +0 -18
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-handlers.js","sourceRoot":"","sources":["../../src/event/server-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: baxian-research
|
|
3
|
-
description: Research-side workflow for a baxian dispatch whose phase is research; clarify the task with the human and produce implementation-ready spec documents.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
baxian dispatches a block of `key: value` fields followed by the task title and description. `workdir:` is your fixed current directory, checked out detached at the latest default branch; do not create or switch branches. Signal format and emit rules are defined by the baxian-signals skill.
|
|
8
|
-
|
|
9
|
-
## Role
|
|
10
|
-
|
|
11
|
-
You are the research partner, not the implementer. Evaluate feasibility, inspect the codebase, clarify requirements, challenge weak assumptions, and compare approaches with concrete trade-offs. Do not write product code, commit, push, or open a pull request.
|
|
12
|
-
|
|
13
|
-
## Dialogue
|
|
14
|
-
|
|
15
|
-
Drive the discussion with the human partner in the terminal. Whenever you ask a question and stop for an answer — and again when the answer arrives — emit the need-input side-channel signals exactly as the baxian-signals skill defines them (ask + answer-received, with the dispatch's `token:` value and your question ordinal).
|
|
16
|
-
|
|
17
|
-
Do not finalize the documents until the human explicitly agrees that the discussion is complete. You may propose wrapping up and ask for that confirmation.
|
|
18
|
-
|
|
19
|
-
## Deliver
|
|
20
|
-
|
|
21
|
-
After the human confirms:
|
|
22
|
-
|
|
23
|
-
1. Write `.baxian/spec.md` as a self-contained implementation contract covering requirements, scope, interfaces, data flow, and error paths.
|
|
24
|
-
2. Optionally write supporting analysis to flat Markdown files under `.baxian/research/`.
|
|
25
|
-
3. Do not commit or push these files; baxian reads them from the fixed Workdir.
|
|
26
|
-
4. Emit the dispatch's `signal:` (`spec-done`) once with its `token:`.
|
|
27
|
-
|
|
28
|
-
Revision requests arrive in a later `server-feedback` dispatch. Update the same documents there.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: baxian-server-feedback
|
|
3
|
-
description: The task owner responds to QA's server-review findings (response.json); Dev also publishes reviewed code in server-after-done.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
baxian dispatches you with a block of `key: value` dispatch fields. `workdir:` is your fixed current directory; do not change directories or branches. A Dev receives code feedback on its task branch. A Research agent receives only spec feedback on a detached default-branch checkout. Route on `phase:`: follow §Feedback for `server-feedback`, §Publish for `server-after-done`.
|
|
8
|
-
|
|
9
|
-
## Feedback
|
|
10
|
-
|
|
11
|
-
QA's findings ride in the `findings:` block, or in the single `findings-file:` referenced by the current prompt when large — read only that Workdir-relative file, never infer the current set from older inbox files or conversation context. If the file cannot be read, do not guess at its contents: write `response.json` as `{"round":<round>,"token":"<token>","findingsDigest":"<findings-digest>","responses":[{"findingId":"findings-file-unreadable","action":"reject","rationale":"<path>: <what failed>"}]}` and emit your signal as usual — the server's coverage check escalates it for human attention; the `feedback:` field says what they target — `code` or `spec`. Judge each finding independently — QA can be wrong; fix only what is actually correct, otherwise reject. Handle EVERY finding by id.
|
|
12
|
-
|
|
13
|
-
If correction fields are present, rebuild the response against the current findings rather than replaying the rejected file. `correction-reason:` explains the rejection; include every `missing-finding-ids:` entry, omit every `unknown-finding-ids:` entry, and correct the response shape named by `schema-violation-codes:`. The current findings remain authoritative, so every current id still appears exactly once.
|
|
14
|
-
|
|
15
|
-
Do NOT push to any remote and do NOT open a PR in this phase — baxian reads your Workdir directly; publishing is deferred to the `server-after-done` phase.
|
|
16
|
-
|
|
17
|
-
For each finding:
|
|
18
|
-
- `fix` — for `feedback: code`, change the code, commit, and include the `commitSha` in your response item; for `feedback: spec`, revise `.baxian/spec.md` and any affected `.baxian/research/*.md` in place. Do NOT commit or push spec documents — baxian reads them directly.
|
|
19
|
-
- `reject` — concrete rationale why the finding is wrong or not applicable. Never reject just to save effort.
|
|
20
|
-
- `out-of-scope` — rationale plus where it is tracked (issue link or task note).
|
|
21
|
-
|
|
22
|
-
Write your response to `.baxian/review/response.json` in YOUR Workdir (`mkdir -p .baxian/review` first). Atomic write: write `response.json.tmp` first, then `mv response.json.tmp response.json`.
|
|
23
|
-
|
|
24
|
-
Schema — copy `round:`, `token:`, and `findings-digest:` exactly from the current prompt:
|
|
25
|
-
|
|
26
|
-
```json
|
|
27
|
-
{"round":<round>,"token":"<token>","findingsDigest":"<findings-digest>","responses":[{"findingId":"f-1","action":"fix"|"reject"|"out-of-scope","rationale":"..."}]}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Code-finding responses also carry `"commitSha":"..."` on every `fix`. Spec-finding responses omit `commitSha`. Before emitting the signal, compare the response IDs with the IDs in this prompt's findings: every current ID MUST appear exactly once, and no prior-round or invented ID may appear (ids may look like `b0-f-1` when the review was batched).
|
|
31
|
-
|
|
32
|
-
Then emit your `signal:` (`code-fixed` or `spec-fixed`) with `token:`.
|
|
33
|
-
|
|
34
|
-
## Publish
|
|
35
|
-
|
|
36
|
-
Publish the reviewed `branch:`:
|
|
37
|
-
- `publish: pr` — `git push -u origin <branch>`, then open a managed PR ready for review (not Draft). Split the authoritative `repo:` value at its first `/` into `<repo-host>` and `<repo-path>` (`<owner/repo>`); reject a malformed value. Prefix every `gh` command in this flow with `GH_HOST=<repo-host>` so inherited process state cannot select another instance. Strip a leading `Draft:`, `[Draft]`, `(Draft)`, or `WIP:` from `title:`. Stage the title and body in one shell invocation rooted at the descriptor Workdir: bind that Workdir as an absolute logical path; require `"$(cd -- "$workdir" 2>/dev/null && pwd -P)" = "$workdir"`; reject `.baxian` or `.baxian/tmp` when either exists as a symlink; create `.baxian/tmp`; re-check both ancestors as real directories and non-symlinks; generate unpredictable title/body names; require each target to be absent (`[ ! -e "$target" ] && [ ! -L "$target" ]`); write both files with quoted heredocs whose delimiters cannot occur as a line in their payloads; then require both targets to be regular files and non-symlinks. The body must end with `<!-- baxian:managed -->`. Never split the ancestor guards, creation, writes, and final checks across tool calls; if any step fails, stop without invoking `gh`. Create the PR non-interactively with `GH_HOST=<repo-host> gh pr create -R <repo:> --head <branch:> --base <base:> --title "$(cat <title-file>)" --body-file <body-file>`. Never put the title or body directly in the `gh` command. Never let `gh` infer repo, head, or base — inference reads the checkout's remotes and repository default, which can target the wrong fork or base. `repo:` is always present and authoritative; never substitute a local `git remote` lookup. If `base:` is absent, resolve it with `GH_HOST=<repo-host> gh api repos/<repo-path> --jq .default_branch`, then pass it explicitly. Before signalling, run `GH_HOST=<repo-host> gh pr view <pr_number> -R <repo:> --json isDraft --jq .isDraft`; if it returns `true`, run `GH_HOST=<repo-host> gh pr ready <pr_number> -R <repo:>`, then re-check once and require `false`. Do not emit `code-ready` if the ready operation or re-check fails or the PR remains a draft. Then emit `code-ready` carrying the new PR number: `[bx:code-ready:<pr_number>:<token>]`.
|
|
38
|
-
- `publish: branch` — `git push -u origin <branch>`, then emit `code-ready` with `token:`.
|
|
39
|
-
|
|
40
|
-
Signal wire format and emit rules: see the baxian-signals skill.
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: baxian-server-review
|
|
3
|
-
description: QA reviews injected server-review content (a code diff or a spec doc) — judge against the task spec, write findings.json with a verdict. Covers code review, recheck closure, and spec review.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
baxian dispatches you with a block of `key: value` dispatch fields. Code review normally arrives with `review-checkout: head`: your fixed `workdir:` is already detached at the reviewed head tree, verified by `head-tree`, so inspect files directly without changing directories or branches. The `diffstat:` / `diffstat-file:` and `diff:` / `diff-file:` payloads identify the changed surface and exact hunks; they are references, not a substitute for reading the local code. A draining legacy task may still arrive with `review-checkout: base`; new fixed-Workdir dispatches fail instead of reviewing an unverified checkout. Spec review still rides as `spec:` or `spec-file:`.
|
|
8
|
-
|
|
9
|
-
Payloads may appear in trailing blocks — `diff:` / `diffstat:` / `spec:`, plus `interdiff:` / `prior-findings:` / `prior-response:` on a recheck — or, when large, as file reference fields: `diff-file:` / `diffstat-file:` / `interdiff-file:` / `spec-file:` / `prior-findings-file:` / `prior-response-file:`, each `<path> (<size>)` relative to your Workdir. Read a referenced file with your file tools; it carries the exact content the block otherwise would. If a referenced file cannot be read, state that in a finding and emit your signal as usual — never guess at missing content. Do NOT fetch branches or use `gh` — the checkout and payloads ARE the review input.
|
|
10
|
-
|
|
11
|
-
`workdir:` is your fixed current directory. QA judges risk independently — human authorization is input, not a bypass. Route on `phase:`: follow §Code Review for `server-review`; §Code Review + §Recheck Closure for `server-recheck`; §Spec Review for `server-spec-review`.
|
|
12
|
-
|
|
13
|
-
## Code Review
|
|
14
|
-
|
|
15
|
-
Judge the reviewed checkout against the task spec: correctness, tests, edge cases, security, regressions. Use `diff:` / `diff-file:` and `diffstat:` / `diffstat-file:` to focus the review, then read the affected files directly when `review-checkout: head`.
|
|
16
|
-
|
|
17
|
-
- Severity: `critical` = broken/unsafe, `major` = must fix before merge, `minor` = improvement.
|
|
18
|
-
- Reference file + line for every code finding.
|
|
19
|
-
- When `review-checkout: base`, read unchanged base files locally and use the read-file side-channel only for post-change content not present in your base checkout.
|
|
20
|
-
|
|
21
|
-
## Recheck Closure
|
|
22
|
-
|
|
23
|
-
The earlier findings and the dev response arrive as `prior-findings:` / `prior-response:` blocks, or as `prior-findings-file:` / `prior-response-file:` references when large. Close them out before judging anything new.
|
|
24
|
-
|
|
25
|
-
- When present, the `interdiff:` block (or `interdiff-file:` reference) is this round's net change since the previous review head — verify each claimed fix against it first, then cross-confirm against the reviewed checkout and full `diff:` for regressions the increment alone would not surface. It is absent on the first round or when history is unavailable; judge from the reviewed checkout and full `diff:` then.
|
|
26
|
-
- Resolve the status of EVERY prior finding first.
|
|
27
|
-
- A finding the dev claims fixed: verify it in the new diff. No "fixed" without evidence.
|
|
28
|
-
- A finding the dev rejected / called out-of-scope: judge the rationale on merit; re-raise it with concrete counter-evidence if it is wrong.
|
|
29
|
-
- Any prior finding NOT closed reappears in `findings.json` with its ORIGINAL id and the evidence restated — do not renumber or drop it.
|
|
30
|
-
- Verdict `approve` ONLY when every prior finding is closed AND the new diff is clean. An unresolved finding may not be downgraded to a minor suggestion to justify approve — otherwise `request-changes`.
|
|
31
|
-
- After closure, scan the new diff for regressions AND for behavior the fixes introduced that lacks test coverage.
|
|
32
|
-
|
|
33
|
-
## Spec Review
|
|
34
|
-
|
|
35
|
-
Judge the spec (the `spec:` block, or the `spec-file:` file):
|
|
36
|
-
|
|
37
|
-
- completeness — every requirement covered, interfaces and data flows defined, error paths specified.
|
|
38
|
-
- correctness — internally consistent, no contradicting sections, feasible against the existing codebase.
|
|
39
|
-
- ambiguity — any requirement readable two ways is a finding.
|
|
40
|
-
|
|
41
|
-
Need a referenced file or codebase section to judge feasibility? Use the read-file side-channel. When `prior-findings:` / `prior-response:` inputs are present (block or file form), verify every finding is closed before judging the rest of the spec.
|
|
42
|
-
|
|
43
|
-
## Findings Output
|
|
44
|
-
|
|
45
|
-
Write findings to `.baxian/review/findings.json` in YOUR Workdir (`mkdir -p .baxian/review` first). Atomic write: write `findings.json.tmp` first, then `mv findings.json.tmp findings.json`.
|
|
46
|
-
|
|
47
|
-
Schema — substitute `<round>` with your `round:` field:
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{"round":<round>,"verdict":"approve"|"request-changes","findings":[{"id":"f-1","severity":"critical"|"major"|"minor","message":"...","file":"path","line":N}]}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Spec-review findings use `"location":"Section ..."` in place of `"file"`/`"line"`.
|
|
54
|
-
|
|
55
|
-
- Finding ids are `f-1`, `f-2`, … sequential and unique within `findings.json` — the dev coverage check and QA closure verification key off them.
|
|
56
|
-
- `approve` MAY carry minor findings as suggestions; the `verdict` field is authoritative.
|
|
57
|
-
|
|
58
|
-
Then emit your `signal:` (`code-reviewed` or `spec-reviewed`) with `token:`. Signal wire format and the read-file side-channel: see the baxian-signals skill.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { type ReviewPhase, type ReviewFindings, type ReviewRound, type ServerResponseFailure, type ServerSignalRecoveryReason } from '../shared/index.js';
|
|
2
|
-
export declare const SERVER_FEEDBACK_AUTO_CORRECTION_LIMIT = 3;
|
|
3
|
-
type ServerResponseFailureReason = Extract<ServerSignalRecoveryReason, 'response-missing' | 'response-invalid' | 'round-mismatch' | 'token-mismatch' | 'findings-digest-mismatch' | 'coverage-gap'>;
|
|
4
|
-
export interface ServerResponseFailureSignatureInput {
|
|
5
|
-
phase: ReviewPhase;
|
|
6
|
-
round: number;
|
|
7
|
-
findingsDigest: string;
|
|
8
|
-
reason: ServerResponseFailureReason;
|
|
9
|
-
missingFindingIds?: readonly string[];
|
|
10
|
-
unknownFindingIds?: readonly string[];
|
|
11
|
-
schemaViolationCodes?: readonly string[];
|
|
12
|
-
}
|
|
13
|
-
export type RecordServerResponseFailureInput = Omit<ServerResponseFailure, 'disposition'>;
|
|
14
|
-
export declare function sha256Hex(value: string): string;
|
|
15
|
-
export declare function reviewFindingsDigest(findings: ReviewFindings): string;
|
|
16
|
-
export declare function serverResponseFailureSignature(input: ServerResponseFailureSignatureInput): string;
|
|
17
|
-
export declare class ReviewStore {
|
|
18
|
-
private readonly dir?;
|
|
19
|
-
private readonly memory;
|
|
20
|
-
private readonly roundLocks;
|
|
21
|
-
constructor(dir?: string | undefined);
|
|
22
|
-
getRound(taskId: string, phase: ReviewPhase, round: number): Promise<ReviewRound | null>;
|
|
23
|
-
putRound(taskId: string, phase: ReviewPhase, data: ReviewRound): Promise<void>;
|
|
24
|
-
recordServerResponseFailure(taskId: string, phase: ReviewPhase, round: number, input: RecordServerResponseFailureInput): Promise<ServerResponseFailure>;
|
|
25
|
-
private writeRound;
|
|
26
|
-
private withRoundLock;
|
|
27
|
-
listRounds(taskId: string, phase?: ReviewPhase): Promise<ReviewRound[]>;
|
|
28
|
-
clear(taskId: string): Promise<void>;
|
|
29
|
-
private key;
|
|
30
|
-
private path;
|
|
31
|
-
}
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=review-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"review-store.d.ts","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAEhC,MAAM,oBAAoB,CAAC;AAa5B,eAAO,MAAM,qCAAqC,IAAI,CAAC;AAEvD,KAAK,2BAA2B,GAAG,OAAO,CAAC,0BAA0B,EACjE,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,0BAA0B,GAC1B,cAAc,CAAC,CAAC;AAEpB,MAAM,WAAW,mCAAmC;IAClD,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,2BAA2B,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;AAE1F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAErE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,mCAAmC,GAAG,MAAM,CAWjG;AAqGD,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IAHjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;gBAElC,GAAG,CAAC,EAAE,MAAM,YAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAexF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9E,2BAA2B,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,qBAAqB,CAAC;YA6BnB,UAAU;YAcV,aAAa;IAqBrB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiCvE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
import { createHash } from 'node:crypto';
|
|
2
|
-
import { mkdir, readFile, readdir, rename, rm, writeFile } from 'node:fs/promises';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { RESEARCH_DOCS_DIR, SPEC_DOC_RELPATH, isRecord, renderSpecDocuments, } from '../shared/index.js';
|
|
5
|
-
const ROUND_FILE_RE = /^round-(\d+)\.json$/;
|
|
6
|
-
const PHASES = ['spec', 'code'];
|
|
7
|
-
const SHA256_RE = /^[0-9a-f]{64}$/;
|
|
8
|
-
const FAILURE_DISPOSITIONS = new Set([
|
|
9
|
-
'auto-correct', 'hold-repeated-signature', 'hold-correction-limit',
|
|
10
|
-
]);
|
|
11
|
-
const FAILURE_REASONS = new Set([
|
|
12
|
-
'response-missing', 'response-invalid', 'round-mismatch', 'token-mismatch',
|
|
13
|
-
'findings-digest-mismatch', 'coverage-gap',
|
|
14
|
-
]);
|
|
15
|
-
export const SERVER_FEEDBACK_AUTO_CORRECTION_LIMIT = 3;
|
|
16
|
-
export function sha256Hex(value) {
|
|
17
|
-
return createHash('sha256').update(value, 'utf8').digest('hex');
|
|
18
|
-
}
|
|
19
|
-
export function reviewFindingsDigest(findings) {
|
|
20
|
-
return sha256Hex(JSON.stringify(findings));
|
|
21
|
-
}
|
|
22
|
-
export function serverResponseFailureSignature(input) {
|
|
23
|
-
return sha256Hex(JSON.stringify({
|
|
24
|
-
version: 1,
|
|
25
|
-
phase: input.phase,
|
|
26
|
-
round: input.round,
|
|
27
|
-
findingsDigest: input.findingsDigest,
|
|
28
|
-
reason: input.reason,
|
|
29
|
-
missingFindingIds: [...(input.missingFindingIds ?? [])].sort(),
|
|
30
|
-
unknownFindingIds: [...(input.unknownFindingIds ?? [])].sort(),
|
|
31
|
-
schemaViolationCodes: [...(input.schemaViolationCodes ?? [])].sort(),
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
function validateSortedStrings(value, field) {
|
|
35
|
-
if (!Array.isArray(value) || value.some(item => typeof item !== 'string' || item.trim() === '')) {
|
|
36
|
-
throw new Error(`${field} must be an array of non-empty strings`);
|
|
37
|
-
}
|
|
38
|
-
const sorted = [...value].sort();
|
|
39
|
-
if (new Set(value).size !== value.length || value.some((item, index) => item !== sorted[index])) {
|
|
40
|
-
throw new Error(`${field} must be sorted and unique`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function validateServerResponseFailures(value, phase) {
|
|
44
|
-
if (value === undefined)
|
|
45
|
-
return;
|
|
46
|
-
if (!Array.isArray(value))
|
|
47
|
-
throw new Error('serverResponseFailures must be an array');
|
|
48
|
-
for (const [index, entry] of value.entries()) {
|
|
49
|
-
if (!isRecord(entry))
|
|
50
|
-
throw new Error(`serverResponseFailures[${index}] must be an object`);
|
|
51
|
-
for (const field of ['signalKind', 'sourceToken', 'successorToken', 'failureSignature', 'reason', 'createdAt']) {
|
|
52
|
-
if (typeof entry[field] !== 'string' || entry[field].trim() === '') {
|
|
53
|
-
throw new Error(`serverResponseFailures[${index}].${field} must be a non-empty string`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (entry.signalKind !== 'code-fixed' && entry.signalKind !== 'spec-fixed') {
|
|
57
|
-
throw new Error(`serverResponseFailures[${index}].signalKind is invalid`);
|
|
58
|
-
}
|
|
59
|
-
if ((entry.signalKind === 'code-fixed' ? 'code' : 'spec') !== phase) {
|
|
60
|
-
throw new Error(`serverResponseFailures[${index}].signalKind does not match round phase`);
|
|
61
|
-
}
|
|
62
|
-
if (entry.sourceToken === entry.successorToken) {
|
|
63
|
-
throw new Error(`serverResponseFailures[${index}] tokens must identify different generations`);
|
|
64
|
-
}
|
|
65
|
-
if (!SHA256_RE.test(entry.failureSignature)) {
|
|
66
|
-
throw new Error(`serverResponseFailures[${index}].failureSignature is invalid`);
|
|
67
|
-
}
|
|
68
|
-
if (!FAILURE_REASONS.has(entry.reason)) {
|
|
69
|
-
throw new Error(`serverResponseFailures[${index}].reason is invalid`);
|
|
70
|
-
}
|
|
71
|
-
if (entry.responseDigest !== undefined
|
|
72
|
-
&& (typeof entry.responseDigest !== 'string' || !SHA256_RE.test(entry.responseDigest))) {
|
|
73
|
-
throw new Error(`serverResponseFailures[${index}].responseDigest is invalid`);
|
|
74
|
-
}
|
|
75
|
-
if (entry.rawResponse !== undefined && typeof entry.rawResponse !== 'string') {
|
|
76
|
-
throw new Error(`serverResponseFailures[${index}].rawResponse must be a string`);
|
|
77
|
-
}
|
|
78
|
-
if (typeof entry.disposition !== 'string' || !FAILURE_DISPOSITIONS.has(entry.disposition)) {
|
|
79
|
-
throw new Error(`serverResponseFailures[${index}].disposition is invalid`);
|
|
80
|
-
}
|
|
81
|
-
validateSortedStrings(entry.missingFindingIds, `serverResponseFailures[${index}].missingFindingIds`);
|
|
82
|
-
validateSortedStrings(entry.unknownFindingIds, `serverResponseFailures[${index}].unknownFindingIds`);
|
|
83
|
-
validateSortedStrings(entry.schemaViolationCodes, `serverResponseFailures[${index}].schemaViolationCodes`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
function parseDocuments(value) {
|
|
87
|
-
if (!Array.isArray(value) || value.length === 0) {
|
|
88
|
-
throw new Error('spec review round documents must be a non-empty array');
|
|
89
|
-
}
|
|
90
|
-
const documents = value.map((item, index) => {
|
|
91
|
-
if (!isRecord(item) || typeof item.relPath !== 'string' || typeof item.content !== 'string') {
|
|
92
|
-
throw new Error(`spec review round documents[${index}] is invalid`);
|
|
93
|
-
}
|
|
94
|
-
return { relPath: item.relPath, content: item.content };
|
|
95
|
-
});
|
|
96
|
-
if (documents[0].relPath !== SPEC_DOC_RELPATH) {
|
|
97
|
-
throw new Error(`spec review round must start with ${SPEC_DOC_RELPATH}`);
|
|
98
|
-
}
|
|
99
|
-
const paths = documents.map(document => document.relPath);
|
|
100
|
-
if (new Set(paths).size !== paths.length)
|
|
101
|
-
throw new Error('spec review round document paths must be unique');
|
|
102
|
-
const researchPrefix = `${RESEARCH_DOCS_DIR}/`;
|
|
103
|
-
for (const path of paths.slice(1)) {
|
|
104
|
-
const name = path.slice(researchPrefix.length);
|
|
105
|
-
if (!path.startsWith(researchPrefix) || name === '' || name.includes('/') || !name.endsWith('.md')) {
|
|
106
|
-
throw new Error(`invalid research document path: ${path}`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
const sorted = [...paths.slice(1)].sort();
|
|
110
|
-
if (paths.slice(1).some((path, index) => path !== sorted[index])) {
|
|
111
|
-
throw new Error('research document paths must be sorted');
|
|
112
|
-
}
|
|
113
|
-
return documents;
|
|
114
|
-
}
|
|
115
|
-
function parseRound(value, phase, round) {
|
|
116
|
-
if (!isRecord(value) || value.phase !== phase || value.round !== round) {
|
|
117
|
-
throw new Error(`review round identity mismatch: expected ${phase}/${round}`);
|
|
118
|
-
}
|
|
119
|
-
if (typeof value.content !== 'string' || typeof value.startedAt !== 'string') {
|
|
120
|
-
throw new Error(`review round ${phase}/${round} is missing required content or startedAt`);
|
|
121
|
-
}
|
|
122
|
-
validateServerResponseFailures(value.serverResponseFailures, phase);
|
|
123
|
-
if (phase === 'spec') {
|
|
124
|
-
const documents = parseDocuments(value.documents);
|
|
125
|
-
if (value.content !== renderSpecDocuments(documents)) {
|
|
126
|
-
throw new Error(`spec review round ${round} content does not match documents`);
|
|
127
|
-
}
|
|
128
|
-
return { ...value, phase, round, documents };
|
|
129
|
-
}
|
|
130
|
-
if (value.documents !== undefined)
|
|
131
|
-
throw new Error(`code review round ${round} must not contain documents`);
|
|
132
|
-
return { ...value, phase, round };
|
|
133
|
-
}
|
|
134
|
-
export class ReviewStore {
|
|
135
|
-
dir;
|
|
136
|
-
memory = new Map();
|
|
137
|
-
roundLocks = new Map();
|
|
138
|
-
constructor(dir) {
|
|
139
|
-
this.dir = dir;
|
|
140
|
-
}
|
|
141
|
-
async getRound(taskId, phase, round) {
|
|
142
|
-
if (!this.dir) {
|
|
143
|
-
const value = this.memory.get(this.key(taskId, phase, round));
|
|
144
|
-
return value ? parseRound(value, phase, round) : null;
|
|
145
|
-
}
|
|
146
|
-
let content;
|
|
147
|
-
try {
|
|
148
|
-
content = await readFile(this.path(taskId, phase, round), 'utf-8');
|
|
149
|
-
}
|
|
150
|
-
catch (err) {
|
|
151
|
-
if (err?.code === 'ENOENT')
|
|
152
|
-
return null;
|
|
153
|
-
throw err;
|
|
154
|
-
}
|
|
155
|
-
return parseRound(JSON.parse(content), phase, round);
|
|
156
|
-
}
|
|
157
|
-
async putRound(taskId, phase, data) {
|
|
158
|
-
await this.withRoundLock(taskId, phase, data.round, async () => {
|
|
159
|
-
await this.writeRound(taskId, phase, data);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
async recordServerResponseFailure(taskId, phase, round, input) {
|
|
163
|
-
return this.withRoundLock(taskId, phase, round, async () => {
|
|
164
|
-
const stored = await this.getRound(taskId, phase, round);
|
|
165
|
-
if (!stored)
|
|
166
|
-
throw new Error(`review round ${taskId}/${phase}/${round} not found`);
|
|
167
|
-
const existing = stored.serverResponseFailures?.find(entry => entry.signalKind === input.signalKind && entry.sourceToken === input.sourceToken);
|
|
168
|
-
if (existing)
|
|
169
|
-
return existing;
|
|
170
|
-
const failures = stored.serverResponseFailures ?? [];
|
|
171
|
-
const disposition = failures.some(entry => entry.failureSignature === input.failureSignature)
|
|
172
|
-
? 'hold-repeated-signature'
|
|
173
|
-
: failures.filter(entry => entry.disposition === 'auto-correct').length >= SERVER_FEEDBACK_AUTO_CORRECTION_LIMIT
|
|
174
|
-
? 'hold-correction-limit'
|
|
175
|
-
: 'auto-correct';
|
|
176
|
-
const entry = {
|
|
177
|
-
...input,
|
|
178
|
-
missingFindingIds: [...input.missingFindingIds].sort(),
|
|
179
|
-
unknownFindingIds: [...input.unknownFindingIds].sort(),
|
|
180
|
-
schemaViolationCodes: [...input.schemaViolationCodes].sort(),
|
|
181
|
-
disposition,
|
|
182
|
-
};
|
|
183
|
-
await this.writeRound(taskId, phase, {
|
|
184
|
-
...stored,
|
|
185
|
-
serverResponseFailures: [...failures, entry],
|
|
186
|
-
});
|
|
187
|
-
return entry;
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
async writeRound(taskId, phase, data) {
|
|
191
|
-
const parsed = parseRound(data, phase, data.round);
|
|
192
|
-
if (!this.dir) {
|
|
193
|
-
this.memory.set(this.key(taskId, phase, parsed.round), parsed);
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
const phaseDir = join(this.dir, encodeURIComponent(taskId), phase);
|
|
197
|
-
await mkdir(phaseDir, { recursive: true });
|
|
198
|
-
const final = join(phaseDir, `round-${parsed.round}.json`);
|
|
199
|
-
const tmp = `${final}.${process.pid}.${Date.now()}.tmp`;
|
|
200
|
-
await writeFile(tmp, JSON.stringify(parsed, null, 2) + '\n');
|
|
201
|
-
await rename(tmp, final);
|
|
202
|
-
}
|
|
203
|
-
async withRoundLock(taskId, phase, round, fn) {
|
|
204
|
-
const key = this.key(taskId, phase, round);
|
|
205
|
-
const previous = this.roundLocks.get(key) ?? Promise.resolve();
|
|
206
|
-
let release;
|
|
207
|
-
const current = new Promise(resolve => { release = resolve; });
|
|
208
|
-
const queued = previous.then(() => current);
|
|
209
|
-
this.roundLocks.set(key, queued);
|
|
210
|
-
await previous;
|
|
211
|
-
try {
|
|
212
|
-
return await fn();
|
|
213
|
-
}
|
|
214
|
-
finally {
|
|
215
|
-
release();
|
|
216
|
-
if (this.roundLocks.get(key) === queued)
|
|
217
|
-
this.roundLocks.delete(key);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
async listRounds(taskId, phase) {
|
|
221
|
-
const phases = phase ? [phase] : PHASES;
|
|
222
|
-
const out = [];
|
|
223
|
-
for (const p of phases) {
|
|
224
|
-
if (!this.dir) {
|
|
225
|
-
const prefix = `${taskId}::${p}::`;
|
|
226
|
-
const rounds = [...this.memory.entries()]
|
|
227
|
-
.filter(([k]) => k.startsWith(prefix))
|
|
228
|
-
.map(([, v]) => v)
|
|
229
|
-
.sort((a, b) => a.round - b.round);
|
|
230
|
-
out.push(...rounds);
|
|
231
|
-
continue;
|
|
232
|
-
}
|
|
233
|
-
let files;
|
|
234
|
-
try {
|
|
235
|
-
files = await readdir(join(this.dir, encodeURIComponent(taskId), p));
|
|
236
|
-
}
|
|
237
|
-
catch (err) {
|
|
238
|
-
if (err?.code === 'ENOENT')
|
|
239
|
-
continue;
|
|
240
|
-
throw err;
|
|
241
|
-
}
|
|
242
|
-
const rounds = files
|
|
243
|
-
.map(f => ROUND_FILE_RE.exec(f)?.[1])
|
|
244
|
-
.filter((n) => n !== undefined)
|
|
245
|
-
.map(n => Number.parseInt(n, 10))
|
|
246
|
-
.sort((a, b) => a - b);
|
|
247
|
-
for (const r of rounds) {
|
|
248
|
-
const data = await this.getRound(taskId, p, r);
|
|
249
|
-
if (data)
|
|
250
|
-
out.push(data);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return out;
|
|
254
|
-
}
|
|
255
|
-
async clear(taskId) {
|
|
256
|
-
if (!this.dir) {
|
|
257
|
-
for (const k of [...this.memory.keys()]) {
|
|
258
|
-
if (k.startsWith(`${taskId}::`))
|
|
259
|
-
this.memory.delete(k);
|
|
260
|
-
}
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
await rm(join(this.dir, encodeURIComponent(taskId)), { recursive: true, force: true });
|
|
264
|
-
}
|
|
265
|
-
key(taskId, phase, round) {
|
|
266
|
-
return `${taskId}::${phase}::${round}`;
|
|
267
|
-
}
|
|
268
|
-
path(taskId, phase, round) {
|
|
269
|
-
return join(this.dir, encodeURIComponent(taskId), phase, `round-${round}.json`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
//# sourceMappingURL=review-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"review-store.js","sourceRoot":"","sources":["../../src/state/review-store.ts"],"names":[],"mappings":"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"}
|