@su-record/vibe 4.1.25 → 4.1.27
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +45 -13
- package/card.md +9 -9
- package/dist/cli/common.js +4 -2
- package/dist/cli/common.js.map +1 -1
- package/dist/cli/human.js +2 -2
- package/dist/cli/human.js.map +1 -1
- package/dist/cli/session.js +16 -0
- package/dist/cli/session.js.map +1 -0
- package/dist/cli/work.js +60 -26
- package/dist/cli/work.js.map +1 -1
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -1
- package/dist/core/check-process.js +51 -0
- package/dist/core/check-process.js.map +1 -0
- package/dist/core/check.js +94 -49
- package/dist/core/check.js.map +1 -1
- package/dist/core/checks/eval.js +10 -19
- package/dist/core/checks/eval.js.map +1 -1
- package/dist/core/checks/file.js +4 -0
- package/dist/core/checks/file.js.map +1 -1
- package/dist/core/checks/http.js +22 -3
- package/dist/core/checks/http.js.map +1 -1
- package/dist/core/checks/review.js +13 -9
- package/dist/core/checks/review.js.map +1 -1
- package/dist/core/checks/run.js +7 -29
- package/dist/core/checks/run.js.map +1 -1
- package/dist/core/config.js +5 -3
- package/dist/core/config.js.map +1 -1
- package/dist/core/consent.js +33 -0
- package/dist/core/consent.js.map +1 -0
- package/dist/core/context.js +11 -2
- package/dist/core/context.js.map +1 -1
- package/dist/core/evidence.js +35 -0
- package/dist/core/evidence.js.map +1 -0
- package/dist/core/failure-message.js +23 -0
- package/dist/core/failure-message.js.map +1 -0
- package/dist/core/failure.js +54 -0
- package/dist/core/failure.js.map +1 -0
- package/dist/core/handoff-results.js +44 -0
- package/dist/core/handoff-results.js.map +1 -0
- package/dist/core/handoff.js +65 -0
- package/dist/core/handoff.js.map +1 -0
- package/dist/core/inspect.js +136 -0
- package/dist/core/inspect.js.map +1 -0
- package/dist/core/intent.js +33 -9
- package/dist/core/intent.js.map +1 -1
- package/dist/core/ledger.js.map +1 -1
- package/dist/core/output-capture.js +31 -0
- package/dist/core/output-capture.js.map +1 -0
- package/dist/core/private-store.js +17 -0
- package/dist/core/private-store.js.map +1 -0
- package/dist/core/read-guard.js +6 -0
- package/dist/core/read-guard.js.map +1 -0
- package/dist/core/readerSession.js +8 -27
- package/dist/core/readerSession.js.map +1 -1
- package/dist/core/regress.js +1 -1
- package/dist/core/regress.js.map +1 -1
- package/dist/core/repair.js +39 -0
- package/dist/core/repair.js.map +1 -0
- package/dist/core/run-id.js +29 -0
- package/dist/core/run-id.js.map +1 -0
- package/dist/core/scenarios.js +11 -0
- package/dist/core/scenarios.js.map +1 -1
- package/dist/core/session.js +29 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/source-basis.js +75 -0
- package/dist/core/source-basis.js.map +1 -0
- package/dist/core/state.js.map +1 -1
- package/dist/core/view.js +36 -15
- package/dist/core/view.js.map +1 -1
- package/dist/install/hooks.js +2 -2
- package/dist/install/hooks.js.map +1 -1
- package/dist/install/plugin.js +13 -7
- package/dist/install/plugin.js.map +1 -1
- package/dist/install/tree.js +2 -2
- package/dist/install/tree.js.map +1 -1
- package/hooks/codex-hooks.json +2 -2
- package/hooks/hooks.json +2 -2
- package/hooks/notify.js +29 -71
- package/hooks/private-store.cjs +59 -0
- package/hooks/session-context.cjs +59 -0
- package/hooks/session-files.cjs +81 -0
- package/hooks/session-repair.cjs +24 -0
- package/hooks/session-state.cjs +177 -0
- package/hooks/session.js +17 -66
- package/hooks/slice-command.cjs +121 -0
- package/hooks/slice-guard.cjs +41 -0
- package/hooks/slice-store.cjs +72 -0
- package/package.json +1 -1
- package/skills/vibe/SKILL.md +4 -3
- package/skills/vibe-build/SKILL.md +3 -2
- package/skills/vibe-discover/SKILL.md +12 -11
- package/skills/vibe-discover/work-opportunities.md +13 -0
- package/skills/vibe-handoff/SKILL.md +1 -0
- package/skills/vibe-prove/SKILL.md +7 -11
- package/skills/vibe-scope/SKILL.md +6 -4
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "An AX/FDE harness for Claude Code, Codex CLI and ChatGPT desktop. Say what you need, approve the scenarios once; the harness proves the work by running the checks itself. Memory in plain files, human tokens for irreversible actions, a ledger instead of claims.",
|
|
9
|
-
"version": "4.1.
|
|
9
|
+
"version": "4.1.27"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "vibe",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "An AX/FDE harness for Claude Code, Codex CLI and ChatGPT desktop. Say what you need, approve the scenarios once; the harness proves the work by running the checks itself. Memory in plain files, human tokens for irreversible actions, a ledger instead of claims.",
|
|
16
|
-
"version": "4.1.
|
|
16
|
+
"version": "4.1.27",
|
|
17
17
|
"category": "productivity"
|
|
18
18
|
}
|
|
19
19
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.27",
|
|
4
4
|
"description": "An AX/FDE harness for Claude Code, Codex CLI and ChatGPT desktop. Say what you need, approve the scenarios once; the harness proves the work by running the checks itself. Memory in plain files, human tokens for irreversible actions, a ledger instead of claims.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "su-record",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.27",
|
|
4
4
|
"description": "An AX/FDE harness for Claude Code, Codex CLI and ChatGPT desktop. Say what you need, approve the scenarios once; the harness proves the work by running the checks itself. Memory in plain files, human tokens for irreversible actions, a ledger instead of claims.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "su-record",
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# vibe 4
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Use AI as an FDE.** Start with the customer's problem, agree on what success means, build, prove the result, and hand it to the person who will run it. vibe carries that procedure across clients and sessions, with executable checks and recorded decisions.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The [4.1.25 measurements](bench/claims/2026-09-09-4.1.25.md) are historical evidence toward that purpose: equal observed final artifact scores, with the supplied-scope arm using 0.69× and 0.81× bare weighted input tokens on a two-session task, 0.75× on a Claude-to-Codex handover, and 0.61× and 0.50× on the brownfield task. The arm that wrote its own scope used 1.3–5.8× bare weighted input tokens. Those final scores did not measure the quality of discovery or agreement. Six trap attempts failed to separate the arms; no prevention number is claimed. The 4.1.26 comparison evaluates the agreement separately and requires new evidence before any new quality or cost claim.
|
|
6
6
|
|
|
7
7
|
Main surfaces: Claude Code · Codex CLI · ChatGPT desktop app · Hermes Agent · Claude desktop app (interview, approval, verdict, handoff).
|
|
8
8
|
|
|
@@ -31,16 +31,44 @@ Then, in chat:
|
|
|
31
31
|
## The flow
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
request `vibe state` says the stage and the next step
|
|
35
|
-
→
|
|
36
|
-
→ scenarios
|
|
34
|
+
request `vibe state` says the stage and the next step; bind the host session to this worktree
|
|
35
|
+
→ discover evidence first; ask only about consequential unknowns, up to three per round
|
|
36
|
+
→ scenarios sufficient agreement · executable checks · needed tools → one approval
|
|
37
37
|
→ build everything first, then one `vibe check --all`; on a failure, fix what the check names; `vibe context <id>` when that is not enough
|
|
38
|
-
→ prove `vibe check --all` — every scenario plus every regression, ordered by the work graph
|
|
38
|
+
→ prove explicitly run `vibe check --all` — every scenario plus every regression, ordered by the work graph
|
|
39
39
|
→ report from the check output; HANDOFF.md only when the intent asks; irreversible steps need a token
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Any client can pick the work up: `vibe state` says where you are, because the state lives in plain files inside the repository. There is no handoff document — the state is the handoff.
|
|
43
43
|
|
|
44
|
+
In the intended worktree, run `vibe session bind` once per host session. It uses `CODEX_THREAD_ID` or `CLAUDE_SESSION_ID`; if the host supplies only a hook `session_id`, pass that exact value with `--session <id>`. `vibe session status` reports the association. Binding is explicit and private to the local machine: a copied ledger, parent repository or sibling worktree cannot choose the session's target. Missing or conflicting identifiers leave Stop unavailable until the association is corrected.
|
|
45
|
+
|
|
46
|
+
SessionStart and Stop perform bounded local reads with packaged modules. They run no checks, models, services or PATH commands. Stop recognizes completion only from a fresh explicit-check record for the exact canonical worktree, revision, contract and files. It blocks unchanged unfinished work at most twice, then releases it as unmet. An inbox wait or scenario handoff also releases without success. Titles, check output, transcript claims and handoff reasons never become Stop instructions.
|
|
47
|
+
|
|
48
|
+
Session bindings, retry counters and explicit-check proofs live outside the project in `~/.vibe-runtime`, with private directory/file permissions and linked-entry rejection. Rebinding does not clear an existing retry counter. On Windows, confidentiality still depends on the user's home ACL; POSIX mode bits cannot prove it. A project fingerprint is bounded to 10,000 entries, 64 MiB total, 8 MiB per file and a 1.5-second traversal budget. Unsupported files, changing inputs or exceeded limits produce a private unavailable snapshot while preserving the explicit check's verdict. Stop then reports unavailable and unmet. Failure to write the private proof itself remains an error. Git metadata, dependency trees and client configuration directories are excluded from this fingerprint; contract files, configuration and regressions under `.vibe/` remain included.
|
|
49
|
+
|
|
50
|
+
The private proof also retains the reviewed execution plan. Stop compares the local consent receipt, PATH/PATHEXT, shell and Node paths, selected environment values, declared working directories and verifier hashes without executing them. External declared verifier files are included in that comparison. Reads are capped at 512 distinct verifier files, 32 MiB total and one second; unavailable or changed context cannot become verified completion. Undeclared shell dependencies and same-user hostile processes remain outside this guarantee.
|
|
51
|
+
|
|
52
|
+
Read fewer relevant files, each in full: Claude Code uses Read, Codex uses `cat`. The Bash hook blocks recognized slices of the current state's files, `.vibe/intent.md`, `scenarios.yaml` and `spec/` or `specs/`; other source/document slices receive a warning each time. `grep -n`/`rg -n` locate lines, `-l` locates files; file-fed `head`, `tail`, `sed -n`, `cut` and `awk` excerpts do not replace reading the source. Logs, `.dev/` and pipelines carrying command output remain exempt. The recognizer does not execute or expand shell variables, aliases or heredocs. An unavailable state-file mirror is reported, and the built-in contract/spec rules still apply.
|
|
53
|
+
|
|
54
|
+
Slice-read counters contain only blocked/warned counts in the private runtime store. Benchmark initialization distinguishes a measured zero from a missing or unreadable counter; each session records the difference and each attempt records the sum. No shell command or file excerpt is copied into these counter records.
|
|
55
|
+
|
|
56
|
+
A clear request needs no ceremonial interview. Relevant documents and sample profiles can answer questions before the customer is asked. An unanswered material question remains unanswered even if a default was proposed. Research and new integrations are used for a specific unresolved need, not on every local task.
|
|
57
|
+
|
|
58
|
+
An intent can record its stable evidence files with `sources` in the `intent draft --stdin` payload. Their content hashes become part of the approval; `vibe intent show --json` reports `sourceBasis` and names changed or missing inputs. Reuse unchanged findings and re-evaluate affected decisions when the evidence changes. Generated outputs, session prompts, and files the implementation will edit are not stable evidence inputs.
|
|
59
|
+
|
|
60
|
+
## Find work AI can take over
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
/vibe Look at these work logs, exported mail, documents and meeting notes. Find recurring work worth automating, agree on one item with me, and build a checked local pilot.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
vibe establishes the observation window, counts distinct work events, and records which have measured active time. The same event in a message and a meeting note counts once. Missing duration stays unknown; meeting length and a vendor's productivity claim do not establish time saved.
|
|
67
|
+
|
|
68
|
+
Each grounded opportunity names its sources, input/output, tool or connection, setup, failure cases, permission and human-review boundaries, rollback, and an executable check. Rank up to three feasible candidates against the customer's objective, then agree on one to build. Fewer than three is a valid result. A request to find opportunities does not itself authorize an external installation, send, payment, or deletion.
|
|
69
|
+
|
|
70
|
+
The selected local pilot must work on changed input, handle a failure, preserve source data, and support rerun and rollback. Report its actual behavior and machine runtime. Human time saved or ROI requires a comparable manual baseline and measured setup, correction, review, and maintenance effort; without those, the value remains unknown.
|
|
71
|
+
|
|
44
72
|
## Five things the harness does (and nothing else)
|
|
45
73
|
|
|
46
74
|
1. **Independent verdict.** Every scenario carries a check: `run` (exit code), `file` (exists / regex / contains / JSON Schema / column sum), `http` (status / JSON Schema / latency ceiling), `eval` (count of matching labelled cases through a runner), or `human` (no verdict — goes to the inbox). Only what `vibe check` executed itself becomes evidence. A model saying "done" changes nothing; DONE is void the moment a file changes.
|
|
@@ -103,6 +131,7 @@ The policy is per project (`.vibe/config.json`); `vibe tokens` alone prints it.
|
|
|
103
131
|
```
|
|
104
132
|
setup update [--check] · status · tokens · uninstall [--purge-state] · plugin build | mcpb | install | status
|
|
105
133
|
work state [--graph] · read <file…> [--ask "…"] · profile <file> · intent draft | show | analyze · approve · check [id…] [--all] · evidence · abandon
|
|
134
|
+
session session bind [--session id] · session status [--session id]
|
|
106
135
|
checks run · file · http · eval · review · human · size [--max-file 400] [--max-function 50]
|
|
107
136
|
map map · symbols <file> · callers <symbol> · blast · context <scenario> · conventions
|
|
108
137
|
human ask · authorize --action <action> · inbox [answer <id> "…" | resolve <id>]
|
|
@@ -118,6 +147,8 @@ ledger ledger · ledger compare --metric checks|turns|cost|ms|tokens [--paire
|
|
|
118
147
|
|
|
119
148
|
`vibe research --from-intent` turns the intent title, the hosts its `http` checks target and the stack into queries, searches GitHub repositories, code (`SKILL.md` files — needs a token) and skill catalogs, and ranks up to five candidates — what moved inside the research window first (`--days N`, default 30: the latest releases, else the latest commit, one or two requests per repository), then keyword match, recency, stars and license; evidence outside the window is demoted, never dropped. Each candidate carries one action: `vibe skill add …`, a knowledge note, or none. The note lands in `.vibe/knowledge/research/`; the same query is cached for a day. Nothing fetched is executed or installed.
|
|
120
149
|
|
|
150
|
+
Run it when a consequential tool or technical choice remains unresolved after inspecting the available capabilities. Reuse an installed tool when it already meets the agreed check.
|
|
151
|
+
|
|
121
152
|
Default catalogs: `anthropics/skills`, `vercel-labs/agent-skills`, `NousResearch/hermes-agent` (a skill is any directory with a `SKILL.md`, at any depth). Add your own under `catalogs` in `.vibe/config.json`. Without a GitHub token (`GITHUB_TOKEN`, or `gh auth login`) code search is skipped and catalogs are read within the public limits.
|
|
122
153
|
|
|
123
154
|
## Skills
|
|
@@ -137,7 +168,7 @@ vibe skill add owner/repo[@name] [--pin <sha>] [--yes] # shows the commands in
|
|
|
137
168
|
vibe skill search <keyword> · list · used <name> · prune [--unused-runs 10] · dismiss <ref>
|
|
138
169
|
```
|
|
139
170
|
|
|
140
|
-
Proposals are proposals: the harness never installs a proposed skill
|
|
171
|
+
Proposals are proposals: the harness never installs a proposed skill or runs remote commands without an explicit action. Its local installation and private runtime records live outside the project. A dismissed proposal is not repeated.
|
|
141
172
|
|
|
142
173
|
## Language
|
|
143
174
|
|
|
@@ -148,6 +179,7 @@ The always-on card (1KB), the skills and every record vibe writes are English. T
|
|
|
148
179
|
```
|
|
149
180
|
intent.md what and why — the one page you approve
|
|
150
181
|
scenarios.yaml given / when / then + the check that judges each + needs (the work graph)
|
|
182
|
+
source-basis.json optional evidence-file hashes bound to the approval
|
|
151
183
|
evidence/ what the harness actually ran, per run
|
|
152
184
|
ledger.jsonl state changes, client, model, results, cost, typed edges
|
|
153
185
|
inbox.jsonl questions, STUCK notices, token hashes
|
|
@@ -164,23 +196,23 @@ config.json token policy · skill catalogs · reader and reviewer model set
|
|
|
164
196
|
|
|
165
197
|
## Bench — the ledger is the benchmark
|
|
166
198
|
|
|
167
|
-
`bench/run.js`
|
|
199
|
+
`bench/run.js` gives each arm the same public evidence and runnable check capability. `on` receives a public scope; `scoped` writes its own. Approval snapshots retain the agent's scope and check files, and private grading runs in a separate copy. Agent verification and the private artifact score are recorded separately. New-protocol experiments use an isolated ledger; the 4.1.25 ledger stays fixed. See `bench/README.md` for the cohort and comparison rules.
|
|
168
200
|
|
|
169
201
|
## The basic harness — structure, context, conventions, a gate at the tool call
|
|
170
202
|
|
|
171
|
-
|
|
203
|
+
The mechanisms below support the FDE procedure. Their effect on a particular task is a measurement, not a guarantee of a better answer.
|
|
172
204
|
|
|
173
205
|
- **`vibe map [path]`** builds the codebase map — files, symbols with a one-line signature and line range, import edges — from the lexers `vibe size` already has (ts js py go java kt rs swift rb cs php), cached by content hash under `.vibe/cache/map.json` so a warm run re-reads only what changed. `vibe symbols <file>` is a file's skeleton; `vibe callers <symbol> [--depth N]` names who calls it, each caller marked `import` (the edge is confirmed) or `name` (the name alone); `vibe blast` takes the working tree's changed symbols from `git diff` and follows their callers. A `review … changed: true` on code takes its dependents from `blast`, and the bundle opens with the changed and affected symbols; `vibe read --ask` on code prepends each file's skeleton.
|
|
174
|
-
- **`vibe context <scenario>`** hands the model what one scenario needs, most relevant first and each with its source: the check,
|
|
206
|
+
- **`vibe context <scenario>`** hands the model what one scenario needs, most relevant first and each with its source: the check, files, nearby symbols, conventions, relevant ledger events and knowledge notes, within 12,000 characters. Use it when the files named by a failed check do not answer the question; it is not a mandatory read before building.
|
|
175
207
|
- **`vibe conventions`** writes `.vibe/knowledge/conventions.md`: what the repository declares (lint and formatter configs, `tsconfig` strictness, the test and lint scripts, an `AGENTS.md` heading) and what the harness learned — a REJECT reason or a KEEP line that recurs, every regression title, every decision recorded at approval — one line each with its source, append-only. `vibe knowledge add --global` keeps a note under `~/.config/vibe/knowledge/` for every project.
|
|
176
208
|
- **`vibe intent analyze`** is the read-only check before approval: each bullet of "What counts as success" against the scenarios — `uncovered` bullets, `unrequested` scenarios, a `human` check where a file or a command is named is `weak`. The scope skill resolves `uncovered` before it asks for the approval.
|
|
177
|
-
- **The hooks
|
|
209
|
+
- **The hooks report bounded status.** SessionStart hands over the card when needed and reports the explicit session/worktree association. Stop reads existing check proof and can release unfinished work without calling it complete; it never executes the next step. Run `vibe state` for the procedure and `vibe check` for a verdict. Claude Code and Codex use the same packaged readers once the client trusts the hooks; client trust does not turn repository text or a copied ledger into a session binding.
|
|
178
210
|
- **The hook gates the irreversible.** Under the `strict` and `irreversible` token policies (opt-in: the default is `off`) the `PreToolUse` hook blocks (exit 2) a command with no authorize record in the last ten minutes that does what the check gate calls irreversible — `restore`, `reset`, `drop`, `truncate`, `seed`, `migrate … down`, `rm -rf`, `git push`, `deploy`, `publish`, `terraform apply`, plus a send — the same action words `vibe authorize --action` takes, so a blocked tool call and a blocked check ask for the same record; a command that only reads (`grep`, `cat`, `git log` …) is never gated; under `off` it warns, and `vibe tokens off` says once that `off` belongs inside a container or a VM.
|
|
179
211
|
- **Other tools are used when present, never listed.** `graft` and `trace` (map, callers, blast), `claude` and `codex` (reader, reviewer), `pdftotext` (pdf), `agent-browser` and `playwright` (a screenshot for the art director) are detected and used through one convention; absent, vibe does the work itself. The scope skill puts a one-line install in the approval message when a project would use one. Nothing is installed by vibe, and `vibe status` shows the install, not a tool table.
|
|
180
212
|
- **The bench is a gate.** `bench/tasks/` holds three deterministic tasks (`settlement`, `vibe-fix`, `report`); `bench/run.js --task all --parallel 4` runs the arms side by side and records turns, reported cost, cost recomputed from tokens with the published cache multipliers, tokens by kind, wall-clock and pass; `vibe ledger compare --metric ms --paired` compares only runs both arms passed; `checks/bench-gate.js` passes when every task has five runs per arm and the `on` arm is not worse on checks. A release that claims a saving writes the claim in its intent before the bench runs and quotes the verdict; a claim that lands `inconclusive` is not made.
|
|
181
|
-
- **`vibe state` says what to do next.** Its `next` line is the procedure — `build a, b, c — then one vibe check --all` · `approve — …` · `report — DONE r-3; …` — each scenario line names its check (`— check: node --test tests/add.test.cjs`) and, for a scenario still to pass, the files it is about (`— files: …` — the check's files plus one hop of imports from the codebase map, built on the way), so the state is the brief, no record needs opening, and card rule 8 says: read whole what the state names, open nothing else until a check fails; `vibe check` ends with the same `next` line; the card starts at `vibe state` and loads only the skill `next` names;
|
|
213
|
+
- **`vibe state` says what to do next.** Its `next` line is the procedure — `build a, b, c — then one vibe check --all` · `approve — …` · `report — DONE r-3; …` — each scenario line names its check (`— check: node --test tests/add.test.cjs`) and, for a scenario still to pass, the files it is about (`— files: …` — the check's files plus one hop of imports from the codebase map, built on the way), so the state is the brief, no record needs opening, and card rule 8 says: read whole what the state names, open nothing else until a check fails; `vibe check` ends with the same `next` line; the card starts at `vibe state` and loads only the skill `next` names; the model reuses an approved intent unless the requested outcome, constraints, or evidence basis changes. Every size takes the **fast path**: build everything, then one `check --all`, no `vibe context` before building, no HANDOFF.md unless the intent asks, and no check after DONE; `size: full` (an irreversible scenario, a review/http/eval check, a needs chain two deep, or more than eight scenarios — a count of five is not a reason) adds only the failure handling — `vibe context <id>` and `vibe check <id>` for a scenario that failed. `vibe map` and `vibe context` are tools for a question, not steps. A regression is recorded only for a failure `vibe check` reported, never for the task's own bug. This is what the first clean bench said the harness was paying for: procedure, on tasks that did not need it.
|
|
182
214
|
- **A check observes.** A `run` command that would change the world — `restore`, `reset`, `drop`, `truncate`, `seed`, `migrate … down/fresh/rollback`, `rm -rf`, `git push`, `deploy`, `publish`, `terraform apply` — is detected at parse time and marked `irreversible` with its action (a scenario may declare its own). `vibe check --all` and `vibe check <id>` never execute an irreversible scenario without an `authorize` record for that action in the last ten minutes: the outcome is `blocked` with the reason, DONE stays out of reach, the run is not STUCK for it. `vibe regress record` refuses to copy such a check. This is the fix for an incident where a regression that carried a database restore was re-run by `check --all` after seeding and overwrote the seed.
|
|
183
|
-
- **The
|
|
215
|
+
- **The existing release sets retain their rules.** Overhead (`settlement`, `vibe-fix`, `report`) requires `on` weighted input tokens ≤ `off` × 1.25 and time ≤ `off` × 1.5, without a quality regression. Direction contains `handover` and `session-split`: `on` must retain quality and use no more weighted input tokens over the sessions. Context is `brownfield`, described below. `anomaly`, `ask`, `irreversible-trap`, `hidden-requirement`, `regression-trap`, `long-context`, and `ambiguous-brief` remain retired diagnostics runnable by name. The separate discovery cohort measures agreement quality and whole-flow cost; it does not change those historical thresholds or require a contrived trap to separate.
|
|
184
216
|
- **The context set.** `brownfield` is this repository at the release commit, built, with one cross-cutting change to make (a `lines` rule for the `file` check, wired through validation, the check, the README table and the scope skill), judged by tests; five scenarios, so the `on` arm runs `full` with the map and `vibe context` on. `vibe ledger compare --metric tokens` compares weighted input (`input + 0.1 × cacheRead + 1.25 × cacheWrite`); the pre-registered rule is `on` ≤ `off` × 0.7 at equal quality — the saving Graft measures on rediscovery, measured here on vibe's own map.
|
|
185
217
|
- CI runs the platform-independent tests on Windows as well as Linux and drives the CLI through npm's `.cmd` shim (`vibe --version`, `vibe state`, `vibe read --ask` against a fake reader); the fixtures that fake a client CLI with a POSIX shim stay Linux-only until they are ported.
|
|
186
218
|
|
package/card.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
You work inside vibe. Rules:
|
|
2
|
-
1. Start
|
|
3
|
-
2.
|
|
4
|
-
3.
|
|
5
|
-
4. Same failure twice:
|
|
6
|
-
5.
|
|
7
|
-
6. `vibe regress record` only for
|
|
8
|
-
7.
|
|
9
|
-
8. Read
|
|
10
|
-
9. Report
|
|
2
|
+
1. Start `vibe state`; follow `next` and its skill. Bind the host with `vibe session bind`.
|
|
3
|
+
2. Build all first, then one `vibe check --all`; on a failure, fix what the check names; `vibe context <id>` when that is not enough. DONE is its verdict. Stop never checks.
|
|
4
|
+
3. Token: show it, wait in chat; never invent it.
|
|
5
|
+
4. Same failure twice: diagnose and change approach; ask at five or outside authority.
|
|
6
|
+
5. At most three unasked findings, with reasons.
|
|
7
|
+
6. `vibe regress record` only for fixed `vibe check` failures.
|
|
8
|
+
7. User's language in chat; English records.
|
|
9
|
+
8. Read fewer files from state, in full: Claude Read, Codex `cat`. grep/rg/find locate only; never content slices. Over 400 lines, not editing: `vibe read --ask`. Office: `vibe read`; samples over 100 rows: `vibe profile`; images: your eyes.
|
|
10
|
+
9. Report changes and evidence; unchecked is unverified. Give cause/fix and next-step limits. Answer first; no praise or offer.
|
package/dist/cli/common.js
CHANGED
|
@@ -3,7 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { usage } from '../core/errors.js';
|
|
4
4
|
import { packageRoot } from '../core/paths.js';
|
|
5
5
|
import { readJson } from '../core/store.js';
|
|
6
|
-
const BOOLEAN_FLAGS = new Set(['json', 'all', 'stdin', 'purge-state', 'dry-run', 'yes', 'help', 'version']);
|
|
6
|
+
const BOOLEAN_FLAGS = new Set(['json', 'all', 'stdin', 'purge-state', 'dry-run', 'yes', 'help', 'version', 'preview', 'diagnostics']);
|
|
7
7
|
export function parseArgs(argv) {
|
|
8
8
|
const positionals = [];
|
|
9
9
|
const flags = {};
|
|
@@ -39,7 +39,9 @@ export const HELP = `vibe — an AX/FDE harness. The harness judges; a human app
|
|
|
39
39
|
plugin build [--check] (manifests from package.json) · plugin mcpb [--out vibe.mcpb] (Claude desktop app bundle) · plugin install | status [--home <dir>]
|
|
40
40
|
work state [--graph] · read <file…> [--sheet] [--pages] (xlsx·docx·pptx·pdf·hwp·hwpx·html·tables·code) · read <file…> --ask "question" (a low-reasoning model reads, only the answer returns)
|
|
41
41
|
profile <file> [--sheet] (csv·tsv·jsonl·json·xlsx) · intent draft <intent.md> <scenarios.yaml> | --stdin · intent show
|
|
42
|
-
approve [token] · check [id…] [--all] · evidence [run]
|
|
42
|
+
intent inspect [intent.md scenarios.yaml] · approve [token] [--preview] · check [id…] [--all] [--diagnostics] · evidence [run]
|
|
43
|
+
abandon --reason "…" [--scenario id --category environment --next "…" --owner "…"] · reopen <scenario> --reason "…"
|
|
44
|
+
session bind [--session id] · session status [--session id] (Stop reports this worktree; it never checks)
|
|
43
45
|
checks run (exit code; a mutating command is irreversible and needs vibe authorize) · file (exists·pattern·contains·absent·schema·sum·traceable·a11y) · http (status·schema·maxMs) · eval (matching cases ≥ expect.pass)
|
|
44
46
|
review (pack ko|en|design|code, path, changed, screenshot — two reviewer stages, PASS only) · human (inbox, no verdict)
|
|
45
47
|
size [paths…] [--max-file 400] [--max-function 50] — a built-in check for a scenario: exit 1 when a file or function is over
|
package/dist/cli/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAa5C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/human.js
CHANGED
|
@@ -21,8 +21,8 @@ export function cmdAsk(root, args, flags) {
|
|
|
21
21
|
const policy = readConfig(root).tokens;
|
|
22
22
|
if (needsRaw === 'approve') {
|
|
23
23
|
const state = readState(root);
|
|
24
|
-
if (
|
|
25
|
-
throw denied('an approval token
|
|
24
|
+
if (!['DRAFT', 'APPROVED', 'RUNNING', 'STUCK', 'DONE'].includes(state.state) || !state.intentHash)
|
|
25
|
+
throw denied('an approval token needs an active drafted contract');
|
|
26
26
|
if (policy === 'strict')
|
|
27
27
|
needs = { kind: 'approve', target: state.intentHash };
|
|
28
28
|
}
|
package/dist/cli/human.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"human.js","sourceRoot":"","sources":["../../src/cli/human.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAA2B,MAAM,aAAa,CAAC;AAElE,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,IAAc,EAAE,KAAY;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,QAAQ;QAAE,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,KAAoE,CAAC;IACzE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,
|
|
1
|
+
{"version":3,"file":"human.js","sourceRoot":"","sources":["../../src/cli/human.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAA2B,MAAM,aAAa,CAAC;AAElE,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,IAAc,EAAE,KAAY;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,QAAQ;QAAE,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,KAAoE,CAAC;IACzE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,MAAM,MAAM,CAAC,oDAAoD,CAAC,CAAC;QACtK,IAAI,MAAM,KAAK,QAAQ;YAAE,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IACjF,CAAC;SAAM,IAAI,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,sBAAsB,CAAC,MAAM,CAAC;YAAE,KAAK,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;IAC9H,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAA8B,EAAE,QAAQ,EAAE,CAAC;IACtD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACvD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACzC,IAAI,GAAG;QAAE,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IAC7B,IAAI,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG;QACX,sBAAsB,MAAM,CAAC,EAAE,GAAG;QAClC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,iBAAiB,MAAM,CAAC,SAAS,kEAAkE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpJ,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,MAAM,oDAAoD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,yEAAyE,MAAM,CAAC,EAAE,gDAAgD;KACnI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAc,EAAE,KAAY;IACrE,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,MAAM,KAAK,CAAC,yEAAyE,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,KAAK,GAAqB,MAAM,CAAC;IACrC,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,MAAM,MAAM,CAAC,IAAI,MAAM,uCAAuC,MAAM,GAAG,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,KAAK,GAAG,OAAO,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;IACpH,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,MAAM,QAAQ,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAuB,EAAE,IAAc;IAC5E,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,MAAM,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,EAAE;YAAE,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YAAE,MAAM,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC9N,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { bindSession, sessionStatus } from '../core/session.js';
|
|
2
|
+
import { usage } from '../core/errors.js';
|
|
3
|
+
import { flagString } from './common.js';
|
|
4
|
+
export function cmdSession(root, sub, flags) {
|
|
5
|
+
const requested = flagString(flags, 'session');
|
|
6
|
+
if (sub === 'bind') {
|
|
7
|
+
const view = bindSession(root, requested);
|
|
8
|
+
return { json: view, text: `Session bound to ${view.root}; revision ${view.revision}. Stop reports status; explicit checks still determine completion.`, code: 0 };
|
|
9
|
+
}
|
|
10
|
+
if (sub === 'status') {
|
|
11
|
+
const view = sessionStatus(requested);
|
|
12
|
+
return { json: view, text: `${view.status}; root=${view.root ?? 'unavailable'}; revision=${view.revision ?? 'unavailable'}; no check executed`, code: view.status === 'bound' ? 0 : 1 };
|
|
13
|
+
}
|
|
14
|
+
throw usage('session bind [--session id] | session status [--session id]');
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAA2B,MAAM,aAAa,CAAC;AAElE,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAuB,EAAE,KAAY;IAC5E,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,QAAQ,oEAAoE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACrK,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,IAAI,IAAI,aAAa,cAAc,IAAI,CAAC,QAAQ,IAAI,aAAa,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1L,CAAC;IACD,MAAM,KAAK,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC"}
|
package/dist/cli/work.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { analyzeIntent, renderAnalysis } from '../core/analyze.js';
|
|
4
|
+
import { failureLine } from '../core/failure.js';
|
|
4
5
|
import { runChecks } from '../core/check.js';
|
|
5
6
|
import { readDocument } from '../core/docs/read.js';
|
|
6
7
|
import { usage } from '../core/errors.js';
|
|
@@ -12,9 +13,14 @@ import { measureSize } from '../core/size.js';
|
|
|
12
13
|
import { listRegressions } from '../core/regress.js';
|
|
13
14
|
import { graphMermaid } from '../core/scenarios.js';
|
|
14
15
|
import { readJson, readText } from '../core/store.js';
|
|
16
|
+
import { sourceValidity } from '../core/source-basis.js';
|
|
15
17
|
import { buildStateView } from '../core/view.js';
|
|
16
18
|
import { ensureProject } from '../install/project.js';
|
|
17
19
|
import { flagString, readStdin } from './common.js';
|
|
20
|
+
import { executionPlan, inspectContract } from '../core/inspect.js';
|
|
21
|
+
import { consentStatus } from '../core/consent.js';
|
|
22
|
+
import { renderEvidence } from '../core/evidence.js';
|
|
23
|
+
import { handoffScenario, reopenScenario } from '../core/handoff.js';
|
|
18
24
|
const GLYPH = { pass: '✔', fail: '✘', pending: '?', blocked: '⊘', never: '·', stale: '↻' };
|
|
19
25
|
export function cmdState(root, flags) {
|
|
20
26
|
const view = buildStateView(root);
|
|
@@ -82,11 +88,37 @@ export function cmdProfile(root, file, flags) {
|
|
|
82
88
|
];
|
|
83
89
|
return { json: p, text: lines.join('\n'), code: 0 };
|
|
84
90
|
}
|
|
91
|
+
function draftInput(root, args, flags) {
|
|
92
|
+
if (flags['sources'] === true)
|
|
93
|
+
throw usage('--sources requires comma-separated input file paths');
|
|
94
|
+
if (flags['stdin'] === true) {
|
|
95
|
+
if (flags['sources'] !== undefined)
|
|
96
|
+
throw usage('with --stdin, supply sources in the JSON payload');
|
|
97
|
+
return JSON.parse(readStdin());
|
|
98
|
+
}
|
|
99
|
+
const [intentFile, scenariosFile] = args;
|
|
100
|
+
if (!intentFile || !scenariosFile)
|
|
101
|
+
throw usage('intent draft <intent.md> <scenarios.yaml> [--sources a,b] or --stdin');
|
|
102
|
+
const intent = readText(path.resolve(root, intentFile)) ?? '';
|
|
103
|
+
const scenarios = readText(path.resolve(root, scenariosFile)) ?? '';
|
|
104
|
+
if (!intent)
|
|
105
|
+
throw usage(`cannot read ${intentFile}`);
|
|
106
|
+
if (!scenarios)
|
|
107
|
+
throw usage(`cannot read ${scenariosFile}`);
|
|
108
|
+
const sources = flagString(flags, 'sources');
|
|
109
|
+
return sources === undefined ? { intent, scenarios } : { intent, scenarios, sources: sources.split(',').map((file) => file.trim()) };
|
|
110
|
+
}
|
|
85
111
|
export function cmdIntent(root, sub, args, flags) {
|
|
112
|
+
if (sub === 'inspect') {
|
|
113
|
+
const inspected = inspectContract(root, args);
|
|
114
|
+
return { json: inspected, text: `Untrusted contract data; no checks executed.\n${JSON.stringify(inspected, null, 2)}`, code: inspected.rejections.length ? 1 : 0 };
|
|
115
|
+
}
|
|
86
116
|
if (sub === 'show') {
|
|
87
117
|
const scenarios = loadScenarios(root);
|
|
88
118
|
const intent = readText(intentPath(root)) ?? '';
|
|
89
|
-
|
|
119
|
+
const sourceBasis = sourceValidity(root);
|
|
120
|
+
const sources = sourceBasis ? `\n\nSource basis: ${sourceBasis.valid ? 'unchanged' : 're-evaluate changed or missing inputs'}\n${sourceBasis.sources.map((source) => `- ${source.path}: ${source.status}`).join('\n')}` : '';
|
|
121
|
+
return { json: { intent, scenarios, sourceBasis }, text: `${intent.trim()}\n\n${scenarios.map((s) => `- ${s.id} [${s.check.type}] ${s.then}`).join('\n')}${sources}`, code: 0 };
|
|
90
122
|
}
|
|
91
123
|
if (sub === 'analyze') {
|
|
92
124
|
const analysis = analyzeIntent(root);
|
|
@@ -94,26 +126,9 @@ export function cmdIntent(root, sub, args, flags) {
|
|
|
94
126
|
}
|
|
95
127
|
if (sub !== 'draft')
|
|
96
128
|
throw usage('intent draft | intent show | intent analyze');
|
|
129
|
+
const input = draftInput(root, args, flags);
|
|
97
130
|
ensureProject(root);
|
|
98
|
-
|
|
99
|
-
let scenariosText;
|
|
100
|
-
if (flags['stdin'] === true) {
|
|
101
|
-
const payload = JSON.parse(readStdin());
|
|
102
|
-
intentText = payload.intent ?? '';
|
|
103
|
-
scenariosText = payload.scenarios ?? '';
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
const [intentFile, scenariosFile] = args;
|
|
107
|
-
if (!intentFile || !scenariosFile)
|
|
108
|
-
throw usage('intent draft <intent.md> <scenarios.yaml> or --stdin');
|
|
109
|
-
intentText = readText(path.resolve(root, intentFile)) ?? '';
|
|
110
|
-
scenariosText = readText(path.resolve(root, scenariosFile)) ?? '';
|
|
111
|
-
if (!intentText)
|
|
112
|
-
throw usage(`cannot read ${intentFile}`);
|
|
113
|
-
if (!scenariosText)
|
|
114
|
-
throw usage(`cannot read ${scenariosFile}`);
|
|
115
|
-
}
|
|
116
|
-
const result = draft(root, intentText, scenariosText);
|
|
131
|
+
const result = draft(root, input.intent ?? '', input.scenarios ?? '', input.sources);
|
|
117
132
|
if (!result.ok) {
|
|
118
133
|
return { json: result, text: `rejected ${result.rejections.length} — nothing was saved\n${result.rejections.map((r) => ` ${r.id}: ${r.reason}`).join('\n')}`, code: 1 };
|
|
119
134
|
}
|
|
@@ -126,7 +141,13 @@ export function cmdIntent(root, sub, args, flags) {
|
|
|
126
141
|
].join('\n');
|
|
127
142
|
return { json: result, text, code: 0 };
|
|
128
143
|
}
|
|
129
|
-
export function cmdApprove(root, args) {
|
|
144
|
+
export function cmdApprove(root, args, flags = {}) {
|
|
145
|
+
if (flags['preview'] === true) {
|
|
146
|
+
const plan = executionPlan(root);
|
|
147
|
+
const consent = consentStatus(root, plan);
|
|
148
|
+
const preview = { plan, consent, untrusted: true, executed: false };
|
|
149
|
+
return { json: preview, text: `Execution plan preview; no commands executed or approval saved.\n${JSON.stringify(preview, null, 2)}`, code: 0 };
|
|
150
|
+
}
|
|
130
151
|
ensureProject(root);
|
|
131
152
|
const token = args.join(' ') || null;
|
|
132
153
|
const result = approve(root, token);
|
|
@@ -135,16 +156,17 @@ export function cmdApprove(root, args) {
|
|
|
135
156
|
export async function cmdCheck(root, args, flags) {
|
|
136
157
|
ensureProject(root);
|
|
137
158
|
const options = flags['all'] === true ? { all: true } : args.length ? { ids: args } : {};
|
|
138
|
-
const
|
|
159
|
+
const approach = flagString(flags, 'approach');
|
|
160
|
+
const report = await runChecks(root, { ...options, diagnostics: flags['diagnostics'] === true, ...(approach ? { approach } : {}) });
|
|
139
161
|
const files = new Map(buildStateView(root).scenarios.map((s) => [s.id, s.files ?? []]));
|
|
140
162
|
const lines = [
|
|
141
163
|
`${report.run} · ${report.state} · pass ${report.passed} · fail ${report.failed}${report.pending ? ` · pending ${report.pending}` : ''}`,
|
|
142
|
-
...report.outcomes.map((o) => ` ${o.status === 'pass' ? '✔' : o.status === 'fail' ? '✘' : '?'} ${o.id} [${o.type}] exit=${o.exit ?? '-'} ${o.ms}ms${o.reason ? ` — ${o.reason}` : ''}${o.status === 'fail' && files.get(o.id)?.length ? ` — files: ${files.get(o.id).join(', ')}` : ''}${o.tail && o.status !== 'pass' ? `\n ${o.tail.split('\n').join('\n ')}` : ''}`),
|
|
164
|
+
...report.outcomes.map((o) => ` ${o.status === 'pass' ? '✔' : o.status === 'fail' ? '✘' : '?'} ${o.id} [${o.type}] exit=${o.exit ?? '-'} ${o.ms}ms${o.failure ? ` — ${failureLine(o.failure)}` : o.reason ? ` — ${o.reason}` : ''}${o.status === 'fail' && files.get(o.id)?.length ? ` — files: ${files.get(o.id).join(', ')}` : ''}${o.tail && o.status !== 'pass' ? `\n ${o.tail.split('\n').join('\n ')}` : ''}`),
|
|
143
165
|
report.done ? ' DONE — every gate scenario passed' : ` remaining ${report.remaining.join(', ') || 'none'}`,
|
|
144
|
-
...(report.stuck ? [' STUCK — the
|
|
166
|
+
...(report.stuck ? [' STUCK — follow the diagnosis or explicit inbox wait below'] : []),
|
|
145
167
|
` next ${buildStateView(root).next}`,
|
|
146
168
|
];
|
|
147
|
-
const code = report.stuck || report.failed > 0 ? 1 : 0;
|
|
169
|
+
const code = report.stuck || report.failed > 0 || report.outcomes.some((outcome) => outcome.status === 'handoff') ? 1 : 0;
|
|
148
170
|
return { json: { ...report, next: buildStateView(root).next }, text: lines.join('\n'), code };
|
|
149
171
|
}
|
|
150
172
|
export function cmdEvidence(root, args) {
|
|
@@ -155,11 +177,23 @@ export function cmdEvidence(root, args) {
|
|
|
155
177
|
const evidence = readJson(path.join(dir, `${runId}.json`));
|
|
156
178
|
if (!evidence)
|
|
157
179
|
throw usage(`no such run: ${runId}`);
|
|
158
|
-
|
|
180
|
+
const rendered = renderEvidence(evidence);
|
|
181
|
+
return { json: rendered, text: JSON.stringify(rendered, null, 2), code: 0 };
|
|
159
182
|
}
|
|
160
183
|
export function cmdAbandon(root, flags) {
|
|
184
|
+
const scenario = flagString(flags, 'scenario');
|
|
185
|
+
if (scenario) {
|
|
186
|
+
const handoff = handoffScenario(root, scenario, { reason: flagString(flags, 'reason') ?? '', category: flagString(flags, 'category') ?? '', nextAction: flagString(flags, 'next') ?? '', ...(flagString(flags, 'owner') ? { owner: flagString(flags, 'owner') } : {}) });
|
|
187
|
+
return { json: { status: 'handoff', passed: false, handoff }, text: `HANDOFF ${scenario} — required work remains unmet`, code: 0 };
|
|
188
|
+
}
|
|
161
189
|
ensureProject(root);
|
|
162
190
|
abandon(root, flagString(flags, 'reason') ?? '');
|
|
163
191
|
return { json: { state: 'ABANDONED' }, text: 'ABANDONED', code: 0 };
|
|
164
192
|
}
|
|
193
|
+
export function cmdReopen(root, args, flags) {
|
|
194
|
+
if (args.length !== 1)
|
|
195
|
+
throw usage('reopen <scenario> --reason "…"');
|
|
196
|
+
reopenScenario(root, args[0], flagString(flags, 'reason') ?? '');
|
|
197
|
+
return { json: { status: 'reopened', scenario: args[0] }, text: `REOPENED ${args[0]} — original check required`, code: 0 };
|
|
198
|
+
}
|
|
165
199
|
//# sourceMappingURL=work.js.map
|
package/dist/cli/work.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/cli/work.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/cli/work.ts"],"names":[],"mappings":"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"}
|