@dzhechkov/harness-cli 0.3.262 → 0.4.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/harness-cli",
3
- "version": "0.3.262",
3
+ "version": "0.4.1",
4
4
  "description": "The dz CLI — install AI skills for Claude Code, Codex, OpenCode, Hermes, OpenClaude, GitHub Copilot. 35 commands, 13 presets, 6 platform targets.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -41,7 +41,7 @@
41
41
  "sbom.json"
42
42
  ],
43
43
  "dependencies": {
44
- "@dzhechkov/harness-core": "^0.3.150",
44
+ "@dzhechkov/harness-core": "^0.4.0",
45
45
  "@dzhechkov/harness-presets": "^0.5.0",
46
46
  "@dzhechkov/scout": "^0.8.0",
47
47
  "@dzhechkov/skills-devops": "^0.3.0",
package/sbom.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "hashes": [
26
26
  {
27
27
  "alg": "SHA-256",
28
- "content": "af18869081f5141177b6427e812d724e15995d49b10cf67f24803eb5e1d79cb5"
28
+ "content": "357bb891e287a2af120a66914085b3b7dec24092aa99f46a8767c096741d713f"
29
29
  }
30
30
  ]
31
31
  },
@@ -35,17 +35,7 @@
35
35
  "hashes": [
36
36
  {
37
37
  "alg": "SHA-256",
38
- "content": "667bf610bf890a7b93480a4b1045e98dc0c765effd80b78fde4e48538f595b3e"
39
- }
40
- ]
41
- },
42
- {
43
- "type": "file",
44
- "name": "coverage/coverage-summary.json",
45
- "hashes": [
46
- {
47
- "alg": "SHA-256",
48
- "content": "593705e81f851c0e65ffa9feaa9bbd396e7a3295b9b21076cfd953ee5a05b93a"
38
+ "content": "e539390d6899ede6cdd0acb76cae6c58e90d4fb3d4389c00dce8604a014aeea7"
49
39
  }
50
40
  ]
51
41
  },
@@ -75,7 +65,7 @@
75
65
  "hashes": [
76
66
  {
77
67
  "alg": "SHA-256",
78
- "content": "ad24e06de21b036e2b5a43abc4efd6e7ceb2ae126177b218a3ee13a026641f83"
68
+ "content": "c4a6b64f875db72a2897df0e3b0c7cd279308dba2471ae29a57775dad7a7d8f8"
79
69
  }
80
70
  ]
81
71
  },
@@ -85,7 +75,7 @@
85
75
  "hashes": [
86
76
  {
87
77
  "alg": "SHA-256",
88
- "content": "c2dd399fec3f26e48e23971b29e27c508c1a1f96376a193e72dc8042015c8e65"
78
+ "content": "9661e4d167ea1c13c3f40de510f311024da3c44bcb452d3781fb89f46373eadc"
89
79
  }
90
80
  ]
91
81
  },
@@ -95,7 +85,7 @@
95
85
  "hashes": [
96
86
  {
97
87
  "alg": "SHA-256",
98
- "content": "628c55bb864dd8a8f337a9cb3fe4271f0df7c0bf9237b1150427171f0577fd57"
88
+ "content": "9afd7c4a02708d7d425214c5d3b76a2ad7bd5ea3ba6c725e4880a91d76062f34"
99
89
  }
100
90
  ]
101
91
  },
@@ -105,7 +95,7 @@
105
95
  "hashes": [
106
96
  {
107
97
  "alg": "SHA-256",
108
- "content": "02a2ba1def8a57e1d4dcde048d5a62af19ab4cd825c98bcfbe8ac0df7de2062c"
98
+ "content": "a8cff82f9f31b06b6a5f1934747631fcc551945ee3b7ac2c620b7c25076303cc"
109
99
  }
110
100
  ]
111
101
  },
@@ -115,7 +105,7 @@
115
105
  "hashes": [
116
106
  {
117
107
  "alg": "SHA-256",
118
- "content": "8d3674dc681dc2493886534c8a30e124664a158fd4f7f2da476f5ff2ec615edd"
108
+ "content": "7afd2be99a3b9581b6fd8bfae58df6c608db346f741263c219d2140a5e8300ce"
119
109
  }
120
110
  ]
121
111
  },
@@ -125,7 +115,7 @@
125
115
  "hashes": [
126
116
  {
127
117
  "alg": "SHA-256",
128
- "content": "3975feb3b9102aad34cdcc070315a7756ef9241aa2bb618759a1bbac25ec7951"
118
+ "content": "481e6ddd256869585b3450ebe901057398a30bb8292e6f93f80a18d5c89ad0c0"
129
119
  }
130
120
  ]
131
121
  },
@@ -185,7 +175,7 @@
185
175
  "hashes": [
186
176
  {
187
177
  "alg": "SHA-256",
188
- "content": "3e9deb36cf53245aaae26a72de359a7f57e9691d52454266ffe32f61dc963a27"
178
+ "content": "5a2d203ef20d2b6179595627b4fa1856fd7e17a31b19690324f589487874f9e0"
189
179
  }
190
180
  ]
191
181
  },
@@ -195,7 +185,7 @@
195
185
  "hashes": [
196
186
  {
197
187
  "alg": "SHA-256",
198
- "content": "a0d4e20fafc5cba35816f1f0c6cd03d9ce7c4434d2ca049384491079d2408fd4"
188
+ "content": "f799d9771166fe95eb40463d1ebbeb0dd3acdd78fa9c692e086a6a673f54752a"
199
189
  }
200
190
  ]
201
191
  },
@@ -205,7 +195,7 @@
205
195
  "hashes": [
206
196
  {
207
197
  "alg": "SHA-256",
208
- "content": "9549a9864fddc36eb99a172f3f0e7c7e72ae32d36aebadaf826b58af0bed16b4"
198
+ "content": "1aba996c4e5dd717a496074baa83778e8f2e04927689fc2cfc315033b8982b38"
209
199
  }
210
200
  ]
211
201
  },
@@ -225,7 +215,7 @@
225
215
  "hashes": [
226
216
  {
227
217
  "alg": "SHA-256",
228
- "content": "24f2feb4c5c4fa939beb79cd658b03fbc7ce4bd87f15da563240abcb252c472c"
218
+ "content": "e63d24934506b3d6c6ec7f67072273ed9c9dabb86e8a24a7838819217ca6035d"
229
219
  }
230
220
  ]
231
221
  },
@@ -239,6 +229,216 @@
239
229
  }
240
230
  ]
241
231
  },
232
+ {
233
+ "type": "file",
234
+ "name": "test/fixtures/install-layouts-helpers.ts",
235
+ "hashes": [
236
+ {
237
+ "alg": "SHA-256",
238
+ "content": "7c1d53c295ec4cb7ee8e3036b663f20d660a1acff35dbcb5c99257aed7268b68"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "type": "file",
244
+ "name": "test/fixtures/mutation-gate-undefended/lib/env-guard.js",
245
+ "hashes": [
246
+ {
247
+ "alg": "SHA-256",
248
+ "content": "922d75852ea37cfc0e0f81f0c49918e20950f4c31d9523798cbd5c7437fdffcc"
249
+ }
250
+ ]
251
+ },
252
+ {
253
+ "type": "file",
254
+ "name": "test/fixtures/mutation-gate-undefended/lib/flaky-load.js",
255
+ "hashes": [
256
+ {
257
+ "alg": "SHA-256",
258
+ "content": "bb3cda584546c43f22ab46c1c6a27b563f7ede3ed4a66530b6b35ad9f7eefc9e"
259
+ }
260
+ ]
261
+ },
262
+ {
263
+ "type": "file",
264
+ "name": "test/fixtures/mutation-gate-undefended/lib/guard.js",
265
+ "hashes": [
266
+ {
267
+ "alg": "SHA-256",
268
+ "content": "69182b5c1034eda2fcf072b87847dfd27c12ddf2621f62e8db94b78f55f797cd"
269
+ }
270
+ ]
271
+ },
272
+ {
273
+ "type": "file",
274
+ "name": "test/fixtures/mutation-gate-undefended/lib/tla-mod.mjs",
275
+ "hashes": [
276
+ {
277
+ "alg": "SHA-256",
278
+ "content": "c0a147f7c2d599b360fa9d1bb72c01be3b6b0a7b167cb7d508340382b3d8d619"
279
+ }
280
+ ]
281
+ },
282
+ {
283
+ "type": "file",
284
+ "name": "test/fixtures/mutation-gate-undefended/package.json",
285
+ "hashes": [
286
+ {
287
+ "alg": "SHA-256",
288
+ "content": "cdceb0264c7d99c89123365ddfdc2ceb07339c2691e5e604304ee04b433b1c0b"
289
+ }
290
+ ]
291
+ },
292
+ {
293
+ "type": "file",
294
+ "name": "test/fixtures/mutation-gate-undefended/registry-defended.json",
295
+ "hashes": [
296
+ {
297
+ "alg": "SHA-256",
298
+ "content": "037bcac91dae0acbd8eb81dbb33b79fc7208f6106aed8149dbecdf226a8b0e41"
299
+ }
300
+ ]
301
+ },
302
+ {
303
+ "type": "file",
304
+ "name": "test/fixtures/mutation-gate-undefended/registry-load-fatal-exit.json",
305
+ "hashes": [
306
+ {
307
+ "alg": "SHA-256",
308
+ "content": "ba5c79298f3f77b6a82c78b6a8da269a98b50aa811ab785ca4a588e1262ded82"
309
+ }
310
+ ]
311
+ },
312
+ {
313
+ "type": "file",
314
+ "name": "test/fixtures/mutation-gate-undefended/registry-load-fatal-nullcount.json",
315
+ "hashes": [
316
+ {
317
+ "alg": "SHA-256",
318
+ "content": "2bc7bfa3dc56ae6cf0f7986ecccbbbcddbce128c018fbbf1ff40f5a061758da6"
319
+ }
320
+ ]
321
+ },
322
+ {
323
+ "type": "file",
324
+ "name": "test/fixtures/mutation-gate-undefended/registry-load-fatal-throw.json",
325
+ "hashes": [
326
+ {
327
+ "alg": "SHA-256",
328
+ "content": "fb448430a632dbf4d751947363e862391fb869d5c65d1245c8ddc817c0844649"
329
+ }
330
+ ]
331
+ },
332
+ {
333
+ "type": "file",
334
+ "name": "test/fixtures/mutation-gate-undefended/registry-overbroad.json",
335
+ "hashes": [
336
+ {
337
+ "alg": "SHA-256",
338
+ "content": "89c445656718c9ad6e573bf728b06d688a85b15a1e73a93cbd4e1579e33a54d9"
339
+ }
340
+ ]
341
+ },
342
+ {
343
+ "type": "file",
344
+ "name": "test/fixtures/mutation-gate-undefended/registry-r6-env-inapplicable.json",
345
+ "hashes": [
346
+ {
347
+ "alg": "SHA-256",
348
+ "content": "626c3272dfc27ec87da5f60004611940b224d14c7acbc29466b65e6eab268ab3"
349
+ }
350
+ ]
351
+ },
352
+ {
353
+ "type": "file",
354
+ "name": "test/fixtures/mutation-gate-undefended/registry-r6-flaky-load.json",
355
+ "hashes": [
356
+ {
357
+ "alg": "SHA-256",
358
+ "content": "cbec89506f2696c09cf5c4c3a987d6921fb8b4cacb131de04624fd47f2eef507"
359
+ }
360
+ ]
361
+ },
362
+ {
363
+ "type": "file",
364
+ "name": "test/fixtures/mutation-gate-undefended/registry-r6-tla.json",
365
+ "hashes": [
366
+ {
367
+ "alg": "SHA-256",
368
+ "content": "353c1b84ad521c04764652464c3ef60c1bf54ffa161006108d1017d57b942dbe"
369
+ }
370
+ ]
371
+ },
372
+ {
373
+ "type": "file",
374
+ "name": "test/fixtures/mutation-gate-undefended/registry-syntax-break.json",
375
+ "hashes": [
376
+ {
377
+ "alg": "SHA-256",
378
+ "content": "486d313922800edb75520cb2a79a83ce44ea5a7b12050286522ea979df150933"
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ "type": "file",
384
+ "name": "test/fixtures/mutation-gate-undefended/registry-undefended.json",
385
+ "hashes": [
386
+ {
387
+ "alg": "SHA-256",
388
+ "content": "9aef7b82a305d1ce17ce546c73ecb94ff0e8fb5f6006d450565fcd98cb5f895c"
389
+ }
390
+ ]
391
+ },
392
+ {
393
+ "type": "file",
394
+ "name": "test/fixtures/mutation-gate-undefended/test/env-guard.test.js",
395
+ "hashes": [
396
+ {
397
+ "alg": "SHA-256",
398
+ "content": "406c387bc6fbe01fa1d4cd2a3754cbb22abcea6380c1471e9eff21ddc8d35424"
399
+ }
400
+ ]
401
+ },
402
+ {
403
+ "type": "file",
404
+ "name": "test/fixtures/mutation-gate-undefended/test/flaky-load.test.js",
405
+ "hashes": [
406
+ {
407
+ "alg": "SHA-256",
408
+ "content": "7a9555312097c98cb5fccd749cb61ea216a2a3bf2845db5413153eed4b9c8251"
409
+ }
410
+ ]
411
+ },
412
+ {
413
+ "type": "file",
414
+ "name": "test/fixtures/mutation-gate-undefended/test/guard.test.js",
415
+ "hashes": [
416
+ {
417
+ "alg": "SHA-256",
418
+ "content": "d8e0a34fc79f40c7f89b1987793a8e09570f2a92e9c0937dd9ac1bf4a3cfbcb7"
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "type": "file",
424
+ "name": "test/fixtures/mutation-gate-undefended/test/tla-mod.test.mjs",
425
+ "hashes": [
426
+ {
427
+ "alg": "SHA-256",
428
+ "content": "860e54c8bf9c86e4c09853bb862379539d360b32ea6c4b93a69659ed4dc8fe9e"
429
+ }
430
+ ]
431
+ },
432
+ {
433
+ "type": "file",
434
+ "name": "test/guard-change-fact.test.ts",
435
+ "hashes": [
436
+ {
437
+ "alg": "SHA-256",
438
+ "content": "694b79712dc8902fd9046426c35d21052dbeff417fffb70939f88b31449c6e9a"
439
+ }
440
+ ]
441
+ },
242
442
  {
243
443
  "type": "file",
244
444
  "name": "test/guard-promote-cli.test.ts",
@@ -249,6 +449,66 @@
249
449
  }
250
450
  ]
251
451
  },
452
+ {
453
+ "type": "file",
454
+ "name": "test/install-layouts.test.ts",
455
+ "hashes": [
456
+ {
457
+ "alg": "SHA-256",
458
+ "content": "43cc6e3251500cd547997ac0916c250c8558f6c3d5c4a60254753e1e80ba24f5"
459
+ }
460
+ ]
461
+ },
462
+ {
463
+ "type": "file",
464
+ "name": "test/mutation-gate-cli.test.ts",
465
+ "hashes": [
466
+ {
467
+ "alg": "SHA-256",
468
+ "content": "3b33c786713e2dfaa192ea32df8cdcf534170c59d58ce285872a3fde008afbc4"
469
+ }
470
+ ]
471
+ },
472
+ {
473
+ "type": "file",
474
+ "name": "test/mutation-registry.json",
475
+ "hashes": [
476
+ {
477
+ "alg": "SHA-256",
478
+ "content": "36276fa51f9e5301ddb317687d0dbc839641b86f47f203e5d392bab31f4f178e"
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ "type": "file",
484
+ "name": "test/workflow-init-lint-clean.test.ts",
485
+ "hashes": [
486
+ {
487
+ "alg": "SHA-256",
488
+ "content": "b7a64462983901adca86ecc29e76b3f95885210e5aaba68352356191e6bfac7f"
489
+ }
490
+ ]
491
+ },
492
+ {
493
+ "type": "file",
494
+ "name": "test/workflow-legacy-shim.test.ts",
495
+ "hashes": [
496
+ {
497
+ "alg": "SHA-256",
498
+ "content": "47d35ec36aa4793ee5d61debf1d345e7d236ad21db27f052aa3e7add03852205"
499
+ }
500
+ ]
501
+ },
502
+ {
503
+ "type": "file",
504
+ "name": "test/workflow-trace-cli-surface.test.ts",
505
+ "hashes": [
506
+ {
507
+ "alg": "SHA-256",
508
+ "content": "28df4b51fff1dc80bb38671d56f548d859949d7a9e2f00e7045e732efc7c2e3d"
509
+ }
510
+ ]
511
+ },
252
512
  {
253
513
  "type": "file",
254
514
  "name": "tsconfig.json",
package/src/bin.ts CHANGED
@@ -5,4 +5,15 @@
5
5
 
6
6
  import { runCli } from './cli.js';
7
7
 
8
- process.exit(await runCli(process.argv.slice(2)));
8
+ const code = await runCli(process.argv.slice(2));
9
+
10
+ // `process.exit()` here TRUNCATED large output on a pipe, silently and at exactly the
11
+ // pipe buffer size. On a pipe (not a TTY, not a file) Node's stdout is ASYNCHRONOUS, so
12
+ // `process.exit` discards whatever has not flushed yet: `dz recall --all --json > file`
13
+ // wrote 122826 bytes while `dz recall --all --json | jq` got exactly 65536 and a parse
14
+ // error. That is data loss in the documented sharing path, and silent — the exit code
15
+ // was 0 and the JSON simply stopped mid-string.
16
+ //
17
+ // So: set the code and let the process end when the event loop drains, which is what
18
+ // flushes stdout. `process.exitCode` preserves the status without the race.
19
+ process.exitCode = code;