@dzhechkov/harness-cli 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.dz-manifest.json CHANGED
@@ -4,21 +4,13 @@
4
4
  "pack": "harness-cli",
5
5
  "files": [
6
6
  {
7
- "path": "CHANGELOG.md",
8
- "sha256": "b99db6be2d9e6d46f0a9d3ff0877c445efac7b9e90d5fe1db9f5bfa2cb6dc107"
7
+ "path": "LICENSE",
8
+ "sha256": "3b93f7070f6843f37e0cae255f7caff22b466a4017fd2020d7d3216237e5a701"
9
9
  },
10
10
  {
11
11
  "path": "README.md",
12
12
  "sha256": "696aae63a95e8f8726eecc1aa0e68f20d7980e99bb4008b22f2e1058ca67c6c0"
13
13
  },
14
- {
15
- "path": "coverage/coverage-final.json",
16
- "sha256": "d2eef62228d4f2b31f5c7fca703f0f6844cf517d41be9dee516f3489f5babfec"
17
- },
18
- {
19
- "path": "coverage/coverage-summary.json",
20
- "sha256": "981eef381eb1e9a040a31eaa561ea078c6f6711d9908990e796d5213d6ffe89f"
21
- },
22
14
  {
23
15
  "path": "dist/bin.d.ts",
24
16
  "sha256": "1d651fdfe05fc306c857bbbee44c395b63b39c1e0c53a8166eb7ca43c6cfa157"
@@ -41,15 +33,15 @@
41
33
  },
42
34
  {
43
35
  "path": "dist/cli.d.ts.map",
44
- "sha256": "8d15372b27f7d79f54df09671b01d5944e8f3f3d87075ba4ece7f0131fc1103e"
36
+ "sha256": "ea26d4cfd1265fc9f2397a17055580425ddf1ee312e0f28a06a214804a58906a"
45
37
  },
46
38
  {
47
39
  "path": "dist/cli.js",
48
- "sha256": "be3648deb68dca8a48cc323f34f54c77c05f0ddf0d86982ea9d6f2cc8e073349"
40
+ "sha256": "aa547fee89f14b634fb3b95f95ccbe1bfcc3f29a1c8f11b01a4ecc98ff3e736d"
49
41
  },
50
42
  {
51
43
  "path": "dist/cli.js.map",
52
- "sha256": "47bcecfe2c9f1daeb73056b3a2c1e10e6b77c465c1bb0d6169690f2276a9cc77"
44
+ "sha256": "11c89da8d9b115a70397da792e9b2220e32936ecebcd2e26ab03963c14fc56d8"
53
45
  },
54
46
  {
55
47
  "path": "dist/core-compat.d.ts",
@@ -93,7 +85,7 @@
93
85
  },
94
86
  {
95
87
  "path": "package.json",
96
- "sha256": "a43608842dab18914486c96c1989b294031f35118bb91c1e8bd0807041a10ddd"
88
+ "sha256": "c8e09eb658132733bf3fbd6e4b54eaa0e8084264fddcd279e663e32809a9c485"
97
89
  },
98
90
  {
99
91
  "path": "src/bin.ts",
@@ -101,7 +93,7 @@
101
93
  },
102
94
  {
103
95
  "path": "src/cli.ts",
104
- "sha256": "d39fa1f437401419889965674889df3e5091d4ed76242e36f8e70f18683d4e4a"
96
+ "sha256": "b4f400b3e08cb7bb6326f973ca09c87411dd942ae9c8cdcd9d2d27dc562dac1f"
105
97
  },
106
98
  {
107
99
  "path": "src/core-compat.ts",
@@ -110,244 +102,8 @@
110
102
  {
111
103
  "path": "src/index.ts",
112
104
  "sha256": "76c2dc1598e72d11df59319cc64fb2aa39b8c3af4eb3077f66598f4f2a3323c0"
113
- },
114
- {
115
- "path": "test/agents-sync.test.ts",
116
- "sha256": "32606890dc57d58257e6b4a38246acb343eea88b6e4b2f643f061325a34d066a"
117
- },
118
- {
119
- "path": "test/amendment-check-cli.test.ts",
120
- "sha256": "3dd543fd3032f1fca5c063af98a7501b4cccb9d7e42f6c307074b67f2d55d231"
121
- },
122
- {
123
- "path": "test/cli.test.ts",
124
- "sha256": "d9adcce84b509e00213bda59a0948eca90d83bdd2fdbbc86aee5ce11d9176940"
125
- },
126
- {
127
- "path": "test/command-count.test.ts",
128
- "sha256": "d9677688116c0a35591cb7e53ab1502566e44336959ac0ea449f5e8a1c5e31e3"
129
- },
130
- {
131
- "path": "test/core-compat-guard.test.ts",
132
- "sha256": "98086d0b6bd7ce32cc844e0cbbc710c4dbf009389c1d020aed48ced2de8acd57"
133
- },
134
- {
135
- "path": "test/core-compat.test.ts",
136
- "sha256": "c54d5aa80a2455a396b396ff9fc398c141c3be4ec9c830e0941f830658758866"
137
- },
138
- {
139
- "path": "test/core-import-floor.test.ts",
140
- "sha256": "948ce5017d7b512f7f32c817f8d1f5cbc5ede7d7c3f2788456ec5d24b8983f14"
141
- },
142
- {
143
- "path": "test/discrimination-check-cli.test.ts",
144
- "sha256": "d0ec5796bc526d45cdad9041ea7357afc065917b347cf5421ec7d2696106b08c"
145
- },
146
- {
147
- "path": "test/epoch-replay-cli.test.ts",
148
- "sha256": "a5a48585b565288ca1ea96030b02b2ccb37a621ef7b3cfe54cd7aaa7164d6904"
149
- },
150
- {
151
- "path": "test/feature-adr-record-cli.test.ts",
152
- "sha256": "e1a2687a1ae2bc2d32cbcc852487d30f9451ce1ea4a132e188186dd4251c49d1"
153
- },
154
- {
155
- "path": "test/fixtures/discrimination-check/fake-runner.sh",
156
- "sha256": "126bbd1ba9c08ef9de826cfa21df3981720e4bc36cd993dff28e0de435cbebae"
157
- },
158
- {
159
- "path": "test/fixtures/discrimination-check/fixture.py",
160
- "sha256": "bb413a8b6e9dc597eb298e7646fb84e23ccd3e117eb61201776ef3e9e27a0e0a"
161
- },
162
- {
163
- "path": "test/fixtures/install-layouts-helpers.ts",
164
- "sha256": "7c1d53c295ec4cb7ee8e3036b663f20d660a1acff35dbcb5c99257aed7268b68"
165
- },
166
- {
167
- "path": "test/fixtures/mutation-gate-undefended/lib/env-guard.js",
168
- "sha256": "922d75852ea37cfc0e0f81f0c49918e20950f4c31d9523798cbd5c7437fdffcc"
169
- },
170
- {
171
- "path": "test/fixtures/mutation-gate-undefended/lib/flaky-load.js",
172
- "sha256": "bb3cda584546c43f22ab46c1c6a27b563f7ede3ed4a66530b6b35ad9f7eefc9e"
173
- },
174
- {
175
- "path": "test/fixtures/mutation-gate-undefended/lib/guard.js",
176
- "sha256": "69182b5c1034eda2fcf072b87847dfd27c12ddf2621f62e8db94b78f55f797cd"
177
- },
178
- {
179
- "path": "test/fixtures/mutation-gate-undefended/lib/tla-mod.mjs",
180
- "sha256": "c0a147f7c2d599b360fa9d1bb72c01be3b6b0a7b167cb7d508340382b3d8d619"
181
- },
182
- {
183
- "path": "test/fixtures/mutation-gate-undefended/package.json",
184
- "sha256": "cdceb0264c7d99c89123365ddfdc2ceb07339c2691e5e604304ee04b433b1c0b"
185
- },
186
- {
187
- "path": "test/fixtures/mutation-gate-undefended/registry-defended.json",
188
- "sha256": "037bcac91dae0acbd8eb81dbb33b79fc7208f6106aed8149dbecdf226a8b0e41"
189
- },
190
- {
191
- "path": "test/fixtures/mutation-gate-undefended/registry-load-fatal-exit.json",
192
- "sha256": "ba5c79298f3f77b6a82c78b6a8da269a98b50aa811ab785ca4a588e1262ded82"
193
- },
194
- {
195
- "path": "test/fixtures/mutation-gate-undefended/registry-load-fatal-nullcount.json",
196
- "sha256": "2bc7bfa3dc56ae6cf0f7986ecccbbbcddbce128c018fbbf1ff40f5a061758da6"
197
- },
198
- {
199
- "path": "test/fixtures/mutation-gate-undefended/registry-load-fatal-throw.json",
200
- "sha256": "fb448430a632dbf4d751947363e862391fb869d5c65d1245c8ddc817c0844649"
201
- },
202
- {
203
- "path": "test/fixtures/mutation-gate-undefended/registry-overbroad.json",
204
- "sha256": "89c445656718c9ad6e573bf728b06d688a85b15a1e73a93cbd4e1579e33a54d9"
205
- },
206
- {
207
- "path": "test/fixtures/mutation-gate-undefended/registry-r6-env-inapplicable.json",
208
- "sha256": "626c3272dfc27ec87da5f60004611940b224d14c7acbc29466b65e6eab268ab3"
209
- },
210
- {
211
- "path": "test/fixtures/mutation-gate-undefended/registry-r6-flaky-load.json",
212
- "sha256": "cbec89506f2696c09cf5c4c3a987d6921fb8b4cacb131de04624fd47f2eef507"
213
- },
214
- {
215
- "path": "test/fixtures/mutation-gate-undefended/registry-r6-tla.json",
216
- "sha256": "353c1b84ad521c04764652464c3ef60c1bf54ffa161006108d1017d57b942dbe"
217
- },
218
- {
219
- "path": "test/fixtures/mutation-gate-undefended/registry-syntax-break.json",
220
- "sha256": "486d313922800edb75520cb2a79a83ce44ea5a7b12050286522ea979df150933"
221
- },
222
- {
223
- "path": "test/fixtures/mutation-gate-undefended/registry-undefended.json",
224
- "sha256": "9aef7b82a305d1ce17ce546c73ecb94ff0e8fb5f6006d450565fcd98cb5f895c"
225
- },
226
- {
227
- "path": "test/fixtures/mutation-gate-undefended/test/env-guard.test.js",
228
- "sha256": "406c387bc6fbe01fa1d4cd2a3754cbb22abcea6380c1471e9eff21ddc8d35424"
229
- },
230
- {
231
- "path": "test/fixtures/mutation-gate-undefended/test/flaky-load.test.js",
232
- "sha256": "7a9555312097c98cb5fccd749cb61ea216a2a3bf2845db5413153eed4b9c8251"
233
- },
234
- {
235
- "path": "test/fixtures/mutation-gate-undefended/test/guard.test.js",
236
- "sha256": "d8e0a34fc79f40c7f89b1987793a8e09570f2a92e9c0937dd9ac1bf4a3cfbcb7"
237
- },
238
- {
239
- "path": "test/fixtures/mutation-gate-undefended/test/tla-mod.test.mjs",
240
- "sha256": "860e54c8bf9c86e4c09853bb862379539d360b32ea6c4b93a69659ed4dc8fe9e"
241
- },
242
- {
243
- "path": "test/guard-change-fact.test.ts",
244
- "sha256": "694b79712dc8902fd9046426c35d21052dbeff417fffb70939f88b31449c6e9a"
245
- },
246
- {
247
- "path": "test/guard-promote-cli.test.ts",
248
- "sha256": "f8e35085106a98be239104394539c3aec350123eed4a115abf14acc2cb6b5bb9"
249
- },
250
- {
251
- "path": "test/install-layouts.test.ts",
252
- "sha256": "43cc6e3251500cd547997ac0916c250c8558f6c3d5c4a60254753e1e80ba24f5"
253
- },
254
- {
255
- "path": "test/install-sync-partial.test.ts",
256
- "sha256": "35824489662dbe9315d78cd20ecf968d416fbe80685d74b6588c8521a08497ea"
257
- },
258
- {
259
- "path": "test/list-partial.test.ts",
260
- "sha256": "fd98385a9b1021cf8341d154abcdf4506a84aaadddd465fcc7e057ba1927fe64"
261
- },
262
- {
263
- "path": "test/mutation-gate-cli.test.ts",
264
- "sha256": "3b33c786713e2dfaa192ea32df8cdcf534170c59d58ce285872a3fde008afbc4"
265
- },
266
- {
267
- "path": "test/mutation-registry.json",
268
- "sha256": "3e6f9bb105154121988da41568ff85573099235857ba25e76c4264c166b414ae"
269
- },
270
- {
271
- "path": "test/packaged-trust-root.test.ts",
272
- "sha256": "46c0af5494ad717eb4d936489f4bde2199b40cd756ab6c8adb0cd1714a971304"
273
- },
274
- {
275
- "path": "test/parallel-worktree-smoke.test.ts",
276
- "sha256": "0522b12ccdf3db79215c4c42162ef970f4cba0c0af96208426ca0323c367d0ee"
277
- },
278
- {
279
- "path": "test/plan-completeness-gate.test.ts",
280
- "sha256": "fafa2d1ff56bd41a6496b7ce569be671f2f617deac07425f47ad6e87b3ec00ce"
281
- },
282
- {
283
- "path": "test/qe-bridge-cli.test.ts",
284
- "sha256": "336ba7657c55f5b958a0ebed5617f3bc3b1956017b9389bbe7c38137889f8f1b"
285
- },
286
- {
287
- "path": "test/qe-bridge-manifest-drift.test.ts",
288
- "sha256": "b7b4d9e0c1dcee32e972aab97273b04bdde9634433e7c22345793a677dfff300"
289
- },
290
- {
291
- "path": "test/roam-nested-archive.test.ts",
292
- "sha256": "0c078b6e03cc749a64e0ac327885de1eea3c13e940c8e3f231174ab84076d44c"
293
- },
294
- {
295
- "path": "test/skills-verify-static-advisories.test.ts",
296
- "sha256": "b1140c20ec04d1c8ae67f97a42dbcece1e8e63c98a5de2c087f0359d27c25f17"
297
- },
298
- {
299
- "path": "test/statusline-panel.test.ts",
300
- "sha256": "b09b42c4ece1a83e5d3f3765629b0756a8f30a7122f3fc30363f93f092a44c0d"
301
- },
302
- {
303
- "path": "test/target-alias-cli.test.ts",
304
- "sha256": "96df42acb1cc5ada5ca97912d3b7da5b486067e851b9dd395855b1b540ce738c"
305
- },
306
- {
307
- "path": "test/trace-bundle-cli.test.ts",
308
- "sha256": "fdaad63359ca7ce351e505e613b547bbc653e0847403edfae88d22a8a524b7a0"
309
- },
310
- {
311
- "path": "test/version-flag.test.ts",
312
- "sha256": "7acd80deb073fb2987c6d14a028a64c6d44324ac61a05410b7d4b6c87ff5acc6"
313
- },
314
- {
315
- "path": "test/workflow-init-lint-clean.test.ts",
316
- "sha256": "b7a64462983901adca86ecc29e76b3f95885210e5aaba68352356191e6bfac7f"
317
- },
318
- {
319
- "path": "test/workflow-legacy-shim.test.ts",
320
- "sha256": "47d35ec36aa4793ee5d61debf1d345e7d236ad21db27f052aa3e7add03852205"
321
- },
322
- {
323
- "path": "test/workflow-run-cli.test.ts",
324
- "sha256": "ac0468d8e97795602e8b8298f278356a273309674483854cd136b99ddf6e39d4"
325
- },
326
- {
327
- "path": "test/workflow-run-r2.test.ts",
328
- "sha256": "d7f308ac9538b7e9d7dc8dcd0ce7cf8127f26b5aea1f44e9d44ac1500ad733fb"
329
- },
330
- {
331
- "path": "test/workflow-run-read-plane.test.ts",
332
- "sha256": "c56111e578500d690190f9fdb4ec44182a892c7a6c2c289896509c1229d7b06d"
333
- },
334
- {
335
- "path": "test/workflow-trace-attestation-cli.test.ts",
336
- "sha256": "dad2efd147d9186b29989ef36f6e62614c4ded983d7894a7c1f9b1628e621871"
337
- },
338
- {
339
- "path": "test/workflow-trace-cli-surface.test.ts",
340
- "sha256": "28df4b51fff1dc80bb38671d56f548d859949d7a9e2f00e7045e732efc7c2e3d"
341
- },
342
- {
343
- "path": "tsconfig.json",
344
- "sha256": "e80ef2911c3347a713dc3dca6a5f6034d91e938e58e71345ea920dd9833bcdbb"
345
- },
346
- {
347
- "path": "vitest.config.ts",
348
- "sha256": "a6ffc6172b50a3a59010f8f8c66e2204e7d298b62a7f2bc5de33cbf39c99899d"
349
105
  }
350
106
  ]
351
107
  },
352
- "signature": "yL9vp8bfrRx+/nOqnZuEZbW2ccdXFsSI5KEjED+FYQZxqCfx3aQ5KD6htiBIADjoOrKOUDVq7sg6ZcxxBsMCBg=="
108
+ "signature": "6slAUaHVCFomW71+HoDnzbfXrn7eVpZJO/7YI3eqt3cZN1KwhrUZ6gzZC0KVtbNuqZytp+Z+wgS2pTjFVbASAA=="
353
109
  }
package/README.md CHANGED
@@ -3299,7 +3299,7 @@ invariants: HARD rules **block** the operation, SOFT rules warn. Zero config nee
3299
3299
  cover the known rakes; `.dz/guard.json` (via `dz guard --init`) exists only if you want to tune a severity
3300
3300
  or disable a rule.
3301
3301
  ```bash
3302
- dz guard check --op publish # no-workspace-star · no-skill-drift · no-secrets · readme-consistency · readme-first · skills-registrable · lockfile-in-sync · no-stubs · licence-hold
3302
+ dz guard check --op publish # no-workspace-star · no-skill-drift · no-secrets · readme-consistency · readme-first · skills-registrable · lockfile-in-sync · no-stubs · review-round · licence-hold
3303
3303
  dz guard check --op teach --text "the fix: export sk-abc..." # → BLOCK (exit 1): looks like a credential
3304
3304
  dz guard log # append-only audit: every verdict + every forced override
3305
3305
  ```
@@ -3334,6 +3334,27 @@ zero specifiers, and then report every real dependency as "not recorded". The ru
3334
3334
  `.dz/guard.json` cannot promote it to HARD, since a parser designed to admit "I may not understand this
3335
3335
  file" must never be able to block a publish.
3336
3336
 
3337
+ **`review-round` (HARD, publish)** — a package that bumps its version AND changes source must bring a
3338
+ GRADED `features/*/08_qe_report.md` in the same change. The gate had eleven rules and not one asked
3339
+ whether anyone but the author had read the code; the cost is on the record (health-advisor slice H:
3340
+ five rounds graded F, thirteen packages published on the author's own verification, and round six
3341
+ found six defects in already-published code).
3342
+
3343
+ Scoped to SOURCE on purpose: a HARD rule that also blocked a docs-only republish is a rule someone
3344
+ switches off. The floor defaults to PRESENCE of a grade — `.dz/guard.json` → `reviewRound.minGrade`
3345
+ sets a letter when you want one.
3346
+
3347
+ It proves a graded report EXISTS in this change. It does **not** prove the review was independent,
3348
+ was competent, covered THIS package, or was taken against this revision — the violation text says all
3349
+ four. And like every change-scoped rule here it reads the WORKING TREE, so it is silent once the
3350
+ change is committed.
3351
+
3352
+ ```
3353
+ [BLOCK] review-round: @dzhechkov/memory: source changed and the version is bumped, but this change
3354
+ brings no GRADED features/*/08_qe_report.md — a publish gate that cannot tell "reviewed" from
3355
+ "not reviewed" treats them alike.
3356
+ ```
3357
+
3337
3358
  **`licence-hold` (HARD, publish)** — the machine side of a licence precondition (ADR-001 of feature
3338
3359
  `hermes-claude-adaptation`, first holder: `@dzhechkov/cloudru-hub`). A pack that declares
3339
3360
  `package.json.licenseHold` is parked behind two belts: while it stays `private:true` the npm layer
@@ -3744,12 +3765,19 @@ dz setup --target claude-code --memory agentdb # enables the vector tier (agen
3744
3765
  dz teach "Used DataLoader to batch DB round-trips" --reward 0.9 --domain performance
3745
3766
  # ↳ mirrored to vector tier (agentdb) # best-effort, AFTER the lexical write
3746
3767
  dz recall "fix N+1 queries" # hybrid: FTS5 + vector (RRF-merged), ⟨both⟩/⟨vector⟩ labels
3747
- dz recall "fix N+1 queries" --semantic # weight the vector leg 2×; exit 1 if no engine (explicit ask)
3768
+ dz recall "fix N+1 queries" --semantic # weight the vector leg 2×; exit 1 if no engine OR nothing ranked (explicit ask)
3748
3769
  dz recall "fix N+1 queries" --no-semantic # force today's pure-lexical ranking
3749
- dz vector status # engine, mirrored vs lexical counts, pending queue
3770
+ dz vector status # engine, writer state, mirrored / pending / not-in-the-mirror
3771
+ dz recall "fix N+1 queries" --json # every hit carries `relevance` — the RRF score it ranked by
3750
3772
  dz consolidate # also BACKFILLS the mirror (heals failed/queued mirrors)
3751
3773
  ```
3752
3774
 
3775
+ - **The TOP lexical match is never displaced by `--semantic`.** It keeps a reserved seat, so a rare identifier, a file name or an error code still surfaces when you weight the vector leg (MEASURED on a live store: survival 2 of 5 → 5 of 5). The seat is taken only under `--semantic`, and never from a hit BOTH legs found. Ties break by evidence — a hit both legs found outranks one only a single leg found.
3776
+ - **Every claim the output makes follows what the run did.** The header says `+ vector (…)` only when a vector actually ranked something; with an empty tier it says `FTS5 only (semantic tier empty — run: dz vector reindex)` instead of promising a ranking that did not happen, and the `dz setup --memory agentdb` hint no longer fires at a tier that is already installed.
3777
+ - **`dz vector status` counts like with like.** `Mirrored vectors (learned patterns)` covers exactly the scope the lexical count covers; vectors of other dz-owned task types (backlog ideas) are reported on their own line, and a true orphan — a pattern vector whose record is gone — is named for the first time. The old single number counted three task types while sitting under a one-task-type lexical count: on this repository it read 547 against 274, which looks like half the index orphaned, and 273 of those were backlog ideas with ZERO real orphans.
3778
+ - **`dz vector status` distinguishes three states, not two:** `Mirror writer: ON/OFF` (whether teach is queueing at all) and `Not in the mirror: N` — mirrorable patterns in neither the mirror nor the pending queue, counted as a SET DIFFERENCE over ids. `Pending mirror queue: 0` no longer stands alone for "no debt": it used to read the same whether the queue was empty or had never been opened.
3779
+ - **`dz teach --from-json` says so when the mirror writer is off** — carrying a brain to a new machine used to land a fully unindexed store that reported zero debt.
3780
+
3753
3781
  - **Optional by design:** no engine installed ⇒ `teach`/`recall`/`consolidate` behave byte-identically to the pre-vector versions; every engine call is time-bounded and failures degrade to lexical with one honest ℹ line.
3754
3782
  - **The lexical store stays the source of truth** — vector hits are pointers; a pattern pruned from the store can never "resurrect" via the mirror.
3755
3783
  - **Two portable forms:** `dz recall --all --json` = the SHARING form (patterns themselves, re-import with `dz teach --from-json`); `dz vector export <path>` = the VECTOR form (a portable `.rvf` checkpoint, opt-in `@ruvector/rvf` engine via `.dz/config.json` → `memory.vector.engine: "rvf"`).
@@ -4023,6 +4051,16 @@ npx @dzhechkov/p-replicator init
4023
4051
 
4024
4052
  ## Status
4025
4053
 
4054
+ `v0.7.0` — `dz recall` and `dz vector status` now say what the RUN did rather than what the config
4055
+ allows. **One breaking change for scripts:** `dz recall --semantic` exits **1** when no vector could
4056
+ serve it — the code the README already documented for the sibling "no engine" case, now applied on
4057
+ every return path including `--json`, which used to report success. Also: the top lexical match keeps
4058
+ its place under `--semantic`; `--json` carries a `relevance` field and parses whole even while the
4059
+ embedder loads; the header names the empty-tier state instead of promising a ranking that did not
4060
+ happen; `dz vector status` counts like with like and distinguishes "not queued" from "queued and
4061
+ failed"; and a `--books` search that finds nothing says where it looked and, when the machine-wide
4062
+ brain holds sources, names the command that searches them.
4063
+
4026
4064
  `v0.6.1` — two commands that move checks off the model's judgement and onto the disk.
4027
4065
  `dz amendment-check` resolves every `AM-N` amendment row to a test found INSIDE the file the row names
4028
4066
  (the plan is authoritative; an amendment it drops or rewords under the same id is a failure; `--all` is
package/dist/cli.d.ts CHANGED
@@ -52,6 +52,15 @@ export type ReleaseExecRunner = (cmd: string, opts: {
52
52
  stderr: string;
53
53
  timedOut?: boolean;
54
54
  };
55
+ /**
56
+ * Run `fn` with anything written to STDOUT by code we do not own routed to STDERR instead.
57
+ *
58
+ * Used to keep `--json` output parseable: a dependency that greets stdout on first load (currently
59
+ * transformers.js) would otherwise sit in front of the JSON array. Nothing is swallowed — the text
60
+ * still reaches the terminal, on the stream diagnostics belong on. Restoration is in `finally`, so a
61
+ * throwing `fn` cannot leave stdout redirected.
62
+ */
63
+ export declare function withForeignStdoutOnStderr<T>(fn: () => Promise<T>): Promise<T>;
55
64
  export interface CodexHooksSyncInput {
56
65
  readonly codexHome?: string | undefined;
57
66
  readonly project?: string | undefined;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}