@dzhechkov/harness-core 0.8.28 → 0.8.29
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 +91 -31
- package/README.md +15 -2
- package/dist/amendment-trace.d.ts.map +1 -1
- package/dist/amendment-trace.js +10 -1
- package/dist/amendment-trace.js.map +1 -1
- package/dist/cmd-usage.d.ts.map +1 -1
- package/dist/cmd-usage.js +22 -10
- package/dist/cmd-usage.js.map +1 -1
- package/dist/core-boundary.d.ts +1 -1
- package/dist/core-boundary.d.ts.map +1 -1
- package/dist/core-boundary.js +8 -1
- package/dist/core-boundary.js.map +1 -1
- package/dist/guard.d.ts +19 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +110 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/publish.d.ts +9 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +82 -0
- package/dist/publish.js.map +1 -1
- package/dist/release-line.d.ts +10 -0
- package/dist/release-line.d.ts.map +1 -0
- package/dist/release-line.js +21 -0
- package/dist/release-line.js.map +1 -0
- package/dist/repo-boundary.d.ts +13 -0
- package/dist/repo-boundary.d.ts.map +1 -0
- package/dist/repo-boundary.js +16 -0
- package/dist/repo-boundary.js.map +1 -0
- package/dist/repository-origin.d.ts +2 -0
- package/dist/repository-origin.d.ts.map +1 -0
- package/dist/repository-origin.js +2 -0
- package/dist/repository-origin.js.map +1 -0
- package/package.json +6 -6
- package/sbom.json +180 -30
- package/src/amendment-trace.ts +10 -1
- package/src/cmd-usage.ts +13 -6
- package/src/core-boundary.ts +7 -1
- package/src/guard.ts +137 -1
- package/src/index.ts +6 -1
- package/src/publish.ts +84 -0
- package/src/release-line.ts +31 -0
- package/src/repo-boundary.ts +25 -0
- package/src/repository-origin.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/harness-core",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.29",
|
|
4
4
|
"description": "Shared harness logic - skill loading, additive apply, and the init/sync/verify/doctor operations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,17 +33,17 @@
|
|
|
33
33
|
"proper-lockfile": "^4.1.2",
|
|
34
34
|
"yaml": "^2.0.0",
|
|
35
35
|
"@dzhechkov/adapter-agents-md": "0.1.7",
|
|
36
|
-
"@dzhechkov/adapter-codex": "^0.2.6",
|
|
37
|
-
"@dzhechkov/adapter-copilot": "0.1.7",
|
|
38
36
|
"@dzhechkov/adapter-claude": "^0.2.7",
|
|
37
|
+
"@dzhechkov/adapter-codex": "^0.2.6",
|
|
39
38
|
"@dzhechkov/adapter-cursor": "0.1.7",
|
|
39
|
+
"@dzhechkov/adapter-copilot": "0.1.7",
|
|
40
40
|
"@dzhechkov/adapter-gemini": "0.1.7",
|
|
41
41
|
"@dzhechkov/adapter-hermes": "^0.2.6",
|
|
42
42
|
"@dzhechkov/adapter-openclaude": "^0.1.6",
|
|
43
43
|
"@dzhechkov/adapter-opencode": "^0.2.6",
|
|
44
44
|
"@dzhechkov/adapter-windsurf": "0.1.7",
|
|
45
|
-
"@dzhechkov/
|
|
46
|
-
"@dzhechkov/
|
|
45
|
+
"@dzhechkov/core": "0.2.22",
|
|
46
|
+
"@dzhechkov/memory": "0.2.19"
|
|
47
47
|
},
|
|
48
48
|
"peerDependenciesMeta": {
|
|
49
49
|
"@ruvector/rvf": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
},
|
|
66
66
|
"repository": {
|
|
67
67
|
"type": "git",
|
|
68
|
-
"url": "git+https://github.com/djd1m/dz-harness.git",
|
|
68
|
+
"url": "git+https://github.com/djd1m/dz-harness-hub.git",
|
|
69
69
|
"directory": "packages/@dzhechkov/harness-core"
|
|
70
70
|
},
|
|
71
71
|
"homepage": "https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/harness-core#readme",
|
package/sbom.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"hashes": [
|
|
26
26
|
{
|
|
27
27
|
"alg": "SHA-256",
|
|
28
|
-
"content": "
|
|
28
|
+
"content": "bddf877e7b0408a54c025a03c86dd5e2c89c99110d5d27e510571eea534499a6"
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
},
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
"hashes": [
|
|
166
166
|
{
|
|
167
167
|
"alg": "SHA-256",
|
|
168
|
-
"content": "
|
|
168
|
+
"content": "b291715890d294acc61005a1d2a99494cae32bd9562e7541d0824f3b5dac39df"
|
|
169
169
|
}
|
|
170
170
|
]
|
|
171
171
|
},
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
"hashes": [
|
|
176
176
|
{
|
|
177
177
|
"alg": "SHA-256",
|
|
178
|
-
"content": "
|
|
178
|
+
"content": "a9449a1d5be2834c7be8ca7af09648869e51539f103c7637cee1c2cf24994204"
|
|
179
179
|
}
|
|
180
180
|
]
|
|
181
181
|
},
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
"hashes": [
|
|
186
186
|
{
|
|
187
187
|
"alg": "SHA-256",
|
|
188
|
-
"content": "
|
|
188
|
+
"content": "5ecf31f4c05612c6679dece720cdc5190ebf572d92928957bf1334014bd892df"
|
|
189
189
|
}
|
|
190
190
|
]
|
|
191
191
|
},
|
|
@@ -1005,7 +1005,7 @@
|
|
|
1005
1005
|
"hashes": [
|
|
1006
1006
|
{
|
|
1007
1007
|
"alg": "SHA-256",
|
|
1008
|
-
"content": "
|
|
1008
|
+
"content": "31469abeab31a3a697c23fc4b96d8572c2913e20162b61fcb8ecfa01011c7e47"
|
|
1009
1009
|
}
|
|
1010
1010
|
]
|
|
1011
1011
|
},
|
|
@@ -1015,7 +1015,7 @@
|
|
|
1015
1015
|
"hashes": [
|
|
1016
1016
|
{
|
|
1017
1017
|
"alg": "SHA-256",
|
|
1018
|
-
"content": "
|
|
1018
|
+
"content": "89918a27fd1cac68565e50a5c5ce47ddbd9726184b44c7d482cf85685669a686"
|
|
1019
1019
|
}
|
|
1020
1020
|
]
|
|
1021
1021
|
},
|
|
@@ -1025,7 +1025,7 @@
|
|
|
1025
1025
|
"hashes": [
|
|
1026
1026
|
{
|
|
1027
1027
|
"alg": "SHA-256",
|
|
1028
|
-
"content": "
|
|
1028
|
+
"content": "f8611a96d9f5ec203a021afb80bc86063be39c755a07b86a4a0f91ce2d215eb1"
|
|
1029
1029
|
}
|
|
1030
1030
|
]
|
|
1031
1031
|
},
|
|
@@ -1315,7 +1315,7 @@
|
|
|
1315
1315
|
"hashes": [
|
|
1316
1316
|
{
|
|
1317
1317
|
"alg": "SHA-256",
|
|
1318
|
-
"content": "
|
|
1318
|
+
"content": "e4dcd937b75fbb9fdfd47e65a72959431cedf54bbf852d7a3448ebb818f6dc5c"
|
|
1319
1319
|
}
|
|
1320
1320
|
]
|
|
1321
1321
|
},
|
|
@@ -1325,7 +1325,7 @@
|
|
|
1325
1325
|
"hashes": [
|
|
1326
1326
|
{
|
|
1327
1327
|
"alg": "SHA-256",
|
|
1328
|
-
"content": "
|
|
1328
|
+
"content": "4f8104799ceb5856bbee26ffa63784ebb18714792ee87611a34ee086124e520d"
|
|
1329
1329
|
}
|
|
1330
1330
|
]
|
|
1331
1331
|
},
|
|
@@ -1335,7 +1335,7 @@
|
|
|
1335
1335
|
"hashes": [
|
|
1336
1336
|
{
|
|
1337
1337
|
"alg": "SHA-256",
|
|
1338
|
-
"content": "
|
|
1338
|
+
"content": "d9d7727b585ccd75cb0a0bbefedfd6f894dc19371bfae82765dee43c7d1a6b99"
|
|
1339
1339
|
}
|
|
1340
1340
|
]
|
|
1341
1341
|
},
|
|
@@ -1345,7 +1345,7 @@
|
|
|
1345
1345
|
"hashes": [
|
|
1346
1346
|
{
|
|
1347
1347
|
"alg": "SHA-256",
|
|
1348
|
-
"content": "
|
|
1348
|
+
"content": "14e5aaf85d29b42cf68c4c0c4cc1f65d8c221768018db7e106ab221c0f175b34"
|
|
1349
1349
|
}
|
|
1350
1350
|
]
|
|
1351
1351
|
},
|
|
@@ -2275,7 +2275,7 @@
|
|
|
2275
2275
|
"hashes": [
|
|
2276
2276
|
{
|
|
2277
2277
|
"alg": "SHA-256",
|
|
2278
|
-
"content": "
|
|
2278
|
+
"content": "e658567f35e926a36c15c66e0bfd02234ee64d773dadb60640a1e2f847edc0cf"
|
|
2279
2279
|
}
|
|
2280
2280
|
]
|
|
2281
2281
|
},
|
|
@@ -2285,7 +2285,7 @@
|
|
|
2285
2285
|
"hashes": [
|
|
2286
2286
|
{
|
|
2287
2287
|
"alg": "SHA-256",
|
|
2288
|
-
"content": "
|
|
2288
|
+
"content": "6ee0da8a5c265397afb51766148f9dd1c72b2ae26b45605bfadbe983f76c6cbf"
|
|
2289
2289
|
}
|
|
2290
2290
|
]
|
|
2291
2291
|
},
|
|
@@ -2295,7 +2295,7 @@
|
|
|
2295
2295
|
"hashes": [
|
|
2296
2296
|
{
|
|
2297
2297
|
"alg": "SHA-256",
|
|
2298
|
-
"content": "
|
|
2298
|
+
"content": "e0fc3f3ffcd19d9ec926d0e77f4633a5e1427f539c4d0f297fab264d9bfbf1c1"
|
|
2299
2299
|
}
|
|
2300
2300
|
]
|
|
2301
2301
|
},
|
|
@@ -2305,7 +2305,7 @@
|
|
|
2305
2305
|
"hashes": [
|
|
2306
2306
|
{
|
|
2307
2307
|
"alg": "SHA-256",
|
|
2308
|
-
"content": "
|
|
2308
|
+
"content": "5220eb59e77cf27d20196c3bf7e146dfc4a7c785632cfff54f7edd20a7825a4e"
|
|
2309
2309
|
}
|
|
2310
2310
|
]
|
|
2311
2311
|
},
|
|
@@ -2395,7 +2395,7 @@
|
|
|
2395
2395
|
"hashes": [
|
|
2396
2396
|
{
|
|
2397
2397
|
"alg": "SHA-256",
|
|
2398
|
-
"content": "
|
|
2398
|
+
"content": "18720137d89dd6f7361531c43149ecb1dd9b56738aee52a5f93601e4fb1c8616"
|
|
2399
2399
|
}
|
|
2400
2400
|
]
|
|
2401
2401
|
},
|
|
@@ -2405,7 +2405,7 @@
|
|
|
2405
2405
|
"hashes": [
|
|
2406
2406
|
{
|
|
2407
2407
|
"alg": "SHA-256",
|
|
2408
|
-
"content": "
|
|
2408
|
+
"content": "792c11583407b1b67877c0b7740ccb24f1d608e48557414f51705e9208791042"
|
|
2409
2409
|
}
|
|
2410
2410
|
]
|
|
2411
2411
|
},
|
|
@@ -2415,7 +2415,7 @@
|
|
|
2415
2415
|
"hashes": [
|
|
2416
2416
|
{
|
|
2417
2417
|
"alg": "SHA-256",
|
|
2418
|
-
"content": "
|
|
2418
|
+
"content": "651fe46692a3048512755c8eb240673eb7fa704c328af1d8020efadb7a5dd68c"
|
|
2419
2419
|
}
|
|
2420
2420
|
]
|
|
2421
2421
|
},
|
|
@@ -2425,7 +2425,7 @@
|
|
|
2425
2425
|
"hashes": [
|
|
2426
2426
|
{
|
|
2427
2427
|
"alg": "SHA-256",
|
|
2428
|
-
"content": "
|
|
2428
|
+
"content": "11779afdbf2ef32c0e03a779ee280ec450fbc5428089be3f134989c4e5eba31e"
|
|
2429
2429
|
}
|
|
2430
2430
|
]
|
|
2431
2431
|
},
|
|
@@ -3995,7 +3995,7 @@
|
|
|
3995
3995
|
"hashes": [
|
|
3996
3996
|
{
|
|
3997
3997
|
"alg": "SHA-256",
|
|
3998
|
-
"content": "
|
|
3998
|
+
"content": "6ce490f9136bfd15ef2e9792a715481d758cd0bb9d8026de37dfbede40376d1f"
|
|
3999
3999
|
}
|
|
4000
4000
|
]
|
|
4001
4001
|
},
|
|
@@ -4005,7 +4005,7 @@
|
|
|
4005
4005
|
"hashes": [
|
|
4006
4006
|
{
|
|
4007
4007
|
"alg": "SHA-256",
|
|
4008
|
-
"content": "
|
|
4008
|
+
"content": "5c6e51bbd372261646937864fa10460cc15497e46528fc7243b06f9e13bd52c6"
|
|
4009
4009
|
}
|
|
4010
4010
|
]
|
|
4011
4011
|
},
|
|
@@ -4015,7 +4015,7 @@
|
|
|
4015
4015
|
"hashes": [
|
|
4016
4016
|
{
|
|
4017
4017
|
"alg": "SHA-256",
|
|
4018
|
-
"content": "
|
|
4018
|
+
"content": "23aa88616d9296bd571619baca8f31524c4c21ca3844dc71971ea66e56172238"
|
|
4019
4019
|
}
|
|
4020
4020
|
]
|
|
4021
4021
|
},
|
|
@@ -4025,7 +4025,7 @@
|
|
|
4025
4025
|
"hashes": [
|
|
4026
4026
|
{
|
|
4027
4027
|
"alg": "SHA-256",
|
|
4028
|
-
"content": "
|
|
4028
|
+
"content": "9546cbe709b7f064901e36a4700bf612b8ac7f64df976f28f730326ea4ec9741"
|
|
4029
4029
|
}
|
|
4030
4030
|
]
|
|
4031
4031
|
},
|
|
@@ -4429,6 +4429,46 @@
|
|
|
4429
4429
|
}
|
|
4430
4430
|
]
|
|
4431
4431
|
},
|
|
4432
|
+
{
|
|
4433
|
+
"type": "file",
|
|
4434
|
+
"name": "dist/release-line.d.ts",
|
|
4435
|
+
"hashes": [
|
|
4436
|
+
{
|
|
4437
|
+
"alg": "SHA-256",
|
|
4438
|
+
"content": "0c0a981edaf3480952c45035c51f76a0218d3dc88b54a2658acf917fe0cca605"
|
|
4439
|
+
}
|
|
4440
|
+
]
|
|
4441
|
+
},
|
|
4442
|
+
{
|
|
4443
|
+
"type": "file",
|
|
4444
|
+
"name": "dist/release-line.d.ts.map",
|
|
4445
|
+
"hashes": [
|
|
4446
|
+
{
|
|
4447
|
+
"alg": "SHA-256",
|
|
4448
|
+
"content": "612b67646d8f82e9ce320578e05f8e721ea5532b6b6eaffa6738adb64434f38b"
|
|
4449
|
+
}
|
|
4450
|
+
]
|
|
4451
|
+
},
|
|
4452
|
+
{
|
|
4453
|
+
"type": "file",
|
|
4454
|
+
"name": "dist/release-line.js",
|
|
4455
|
+
"hashes": [
|
|
4456
|
+
{
|
|
4457
|
+
"alg": "SHA-256",
|
|
4458
|
+
"content": "122160d1bd467c98e2a7a38836ad44152a3f85d60fb3cb3f2ab3e0304524e841"
|
|
4459
|
+
}
|
|
4460
|
+
]
|
|
4461
|
+
},
|
|
4462
|
+
{
|
|
4463
|
+
"type": "file",
|
|
4464
|
+
"name": "dist/release-line.js.map",
|
|
4465
|
+
"hashes": [
|
|
4466
|
+
{
|
|
4467
|
+
"alg": "SHA-256",
|
|
4468
|
+
"content": "d6da1dc84b6885bf5976f0787b16888f2561502782d600d1b611c777ef0fdfe4"
|
|
4469
|
+
}
|
|
4470
|
+
]
|
|
4471
|
+
},
|
|
4432
4472
|
{
|
|
4433
4473
|
"type": "file",
|
|
4434
4474
|
"name": "dist/release.d.ts",
|
|
@@ -4469,6 +4509,86 @@
|
|
|
4469
4509
|
}
|
|
4470
4510
|
]
|
|
4471
4511
|
},
|
|
4512
|
+
{
|
|
4513
|
+
"type": "file",
|
|
4514
|
+
"name": "dist/repo-boundary.d.ts",
|
|
4515
|
+
"hashes": [
|
|
4516
|
+
{
|
|
4517
|
+
"alg": "SHA-256",
|
|
4518
|
+
"content": "a03e8e0f2cf70a10ad8c2a9f3590533bd0a99aaf930ab817871ee25fd88c368d"
|
|
4519
|
+
}
|
|
4520
|
+
]
|
|
4521
|
+
},
|
|
4522
|
+
{
|
|
4523
|
+
"type": "file",
|
|
4524
|
+
"name": "dist/repo-boundary.d.ts.map",
|
|
4525
|
+
"hashes": [
|
|
4526
|
+
{
|
|
4527
|
+
"alg": "SHA-256",
|
|
4528
|
+
"content": "de0da69ac32926be1b3293ca92deea90eda126ec178719f61b7448269d9e44dd"
|
|
4529
|
+
}
|
|
4530
|
+
]
|
|
4531
|
+
},
|
|
4532
|
+
{
|
|
4533
|
+
"type": "file",
|
|
4534
|
+
"name": "dist/repo-boundary.js",
|
|
4535
|
+
"hashes": [
|
|
4536
|
+
{
|
|
4537
|
+
"alg": "SHA-256",
|
|
4538
|
+
"content": "bddb5afea497089fcf2a883d07918e034c4139b8ba9711400f7f86dfcae7f938"
|
|
4539
|
+
}
|
|
4540
|
+
]
|
|
4541
|
+
},
|
|
4542
|
+
{
|
|
4543
|
+
"type": "file",
|
|
4544
|
+
"name": "dist/repo-boundary.js.map",
|
|
4545
|
+
"hashes": [
|
|
4546
|
+
{
|
|
4547
|
+
"alg": "SHA-256",
|
|
4548
|
+
"content": "a9e5808ef3fda09ef867b465ec4bb6dc7aec76b674886365c43ac3bd042f3dd3"
|
|
4549
|
+
}
|
|
4550
|
+
]
|
|
4551
|
+
},
|
|
4552
|
+
{
|
|
4553
|
+
"type": "file",
|
|
4554
|
+
"name": "dist/repository-origin.d.ts",
|
|
4555
|
+
"hashes": [
|
|
4556
|
+
{
|
|
4557
|
+
"alg": "SHA-256",
|
|
4558
|
+
"content": "44a3f136279f847e67c8145d38483c4027843883157c5ea8f85139833acc6a31"
|
|
4559
|
+
}
|
|
4560
|
+
]
|
|
4561
|
+
},
|
|
4562
|
+
{
|
|
4563
|
+
"type": "file",
|
|
4564
|
+
"name": "dist/repository-origin.d.ts.map",
|
|
4565
|
+
"hashes": [
|
|
4566
|
+
{
|
|
4567
|
+
"alg": "SHA-256",
|
|
4568
|
+
"content": "58b97e6902ff68823caefcbe6e92ec8d25d5706d6355404042f1336946fb8201"
|
|
4569
|
+
}
|
|
4570
|
+
]
|
|
4571
|
+
},
|
|
4572
|
+
{
|
|
4573
|
+
"type": "file",
|
|
4574
|
+
"name": "dist/repository-origin.js",
|
|
4575
|
+
"hashes": [
|
|
4576
|
+
{
|
|
4577
|
+
"alg": "SHA-256",
|
|
4578
|
+
"content": "185247680ec63757a2ba3c6dcdbae287f34659adab483c28a25db0481edba61e"
|
|
4579
|
+
}
|
|
4580
|
+
]
|
|
4581
|
+
},
|
|
4582
|
+
{
|
|
4583
|
+
"type": "file",
|
|
4584
|
+
"name": "dist/repository-origin.js.map",
|
|
4585
|
+
"hashes": [
|
|
4586
|
+
{
|
|
4587
|
+
"alg": "SHA-256",
|
|
4588
|
+
"content": "5f51fb8ce5ce4946b35f8a4a06f4ec6a51f00e8a977abc7c97532f1812712028"
|
|
4589
|
+
}
|
|
4590
|
+
]
|
|
4591
|
+
},
|
|
4472
4592
|
{
|
|
4473
4593
|
"type": "file",
|
|
4474
4594
|
"name": "dist/reqe.d.ts",
|
|
@@ -6319,7 +6439,7 @@
|
|
|
6319
6439
|
},
|
|
6320
6440
|
{
|
|
6321
6441
|
"name": "dz:canonical-json-sha256-v2",
|
|
6322
|
-
"value": "
|
|
6442
|
+
"value": "abea877a1811396654a7d48a892f912464119aded024b588a5ddd06fc592b87c"
|
|
6323
6443
|
}
|
|
6324
6444
|
]
|
|
6325
6445
|
},
|
|
@@ -6359,7 +6479,7 @@
|
|
|
6359
6479
|
"hashes": [
|
|
6360
6480
|
{
|
|
6361
6481
|
"alg": "SHA-256",
|
|
6362
|
-
"content": "
|
|
6482
|
+
"content": "788bdb7bd036e71aa3ee6bb681c81641e56de3d67cdcfd014714f27f9138be7a"
|
|
6363
6483
|
}
|
|
6364
6484
|
]
|
|
6365
6485
|
},
|
|
@@ -6569,7 +6689,7 @@
|
|
|
6569
6689
|
"hashes": [
|
|
6570
6690
|
{
|
|
6571
6691
|
"alg": "SHA-256",
|
|
6572
|
-
"content": "
|
|
6692
|
+
"content": "e62ded3e5f5c1fe7c06270e9f1b961ddaac96bb3f67f71ad6b52de5c62ccedb0"
|
|
6573
6693
|
}
|
|
6574
6694
|
]
|
|
6575
6695
|
},
|
|
@@ -6649,7 +6769,7 @@
|
|
|
6649
6769
|
"hashes": [
|
|
6650
6770
|
{
|
|
6651
6771
|
"alg": "SHA-256",
|
|
6652
|
-
"content": "
|
|
6772
|
+
"content": "4b8eca9f73266f65c6e1b53b6c4aff5f59b8a77501d6c67296a7df42a483d325"
|
|
6653
6773
|
}
|
|
6654
6774
|
]
|
|
6655
6775
|
},
|
|
@@ -6899,7 +7019,7 @@
|
|
|
6899
7019
|
"hashes": [
|
|
6900
7020
|
{
|
|
6901
7021
|
"alg": "SHA-256",
|
|
6902
|
-
"content": "
|
|
7022
|
+
"content": "384be263ce0401f8ff323863e0e2b3fbbda6b5b0f36f389a17aabf4d3f8948e5"
|
|
6903
7023
|
}
|
|
6904
7024
|
]
|
|
6905
7025
|
},
|
|
@@ -6929,7 +7049,7 @@
|
|
|
6929
7049
|
"hashes": [
|
|
6930
7050
|
{
|
|
6931
7051
|
"alg": "SHA-256",
|
|
6932
|
-
"content": "
|
|
7052
|
+
"content": "0f45b3e48325d2670e7e69a1537c602939ef7d60d8213200c62d328fda5cc6bb"
|
|
6933
7053
|
}
|
|
6934
7054
|
]
|
|
6935
7055
|
},
|
|
@@ -7339,7 +7459,7 @@
|
|
|
7339
7459
|
"hashes": [
|
|
7340
7460
|
{
|
|
7341
7461
|
"alg": "SHA-256",
|
|
7342
|
-
"content": "
|
|
7462
|
+
"content": "3b3a7e4c45142db1ba3e170dab6269962637f919712b21ef1b998f97fea7ac50"
|
|
7343
7463
|
}
|
|
7344
7464
|
]
|
|
7345
7465
|
},
|
|
@@ -7443,6 +7563,16 @@
|
|
|
7443
7563
|
}
|
|
7444
7564
|
]
|
|
7445
7565
|
},
|
|
7566
|
+
{
|
|
7567
|
+
"type": "file",
|
|
7568
|
+
"name": "src/release-line.ts",
|
|
7569
|
+
"hashes": [
|
|
7570
|
+
{
|
|
7571
|
+
"alg": "SHA-256",
|
|
7572
|
+
"content": "19b4f6df4bf9683eb06ff6fbfca13cd74409f201340abacf7c1ff2e1ee06a6e2"
|
|
7573
|
+
}
|
|
7574
|
+
]
|
|
7575
|
+
},
|
|
7446
7576
|
{
|
|
7447
7577
|
"type": "file",
|
|
7448
7578
|
"name": "src/release.ts",
|
|
@@ -7453,6 +7583,26 @@
|
|
|
7453
7583
|
}
|
|
7454
7584
|
]
|
|
7455
7585
|
},
|
|
7586
|
+
{
|
|
7587
|
+
"type": "file",
|
|
7588
|
+
"name": "src/repo-boundary.ts",
|
|
7589
|
+
"hashes": [
|
|
7590
|
+
{
|
|
7591
|
+
"alg": "SHA-256",
|
|
7592
|
+
"content": "9c532ccb70cff667426cd0d5c51d99bd81ed0f35fbbb6670b192ec55c478a8e2"
|
|
7593
|
+
}
|
|
7594
|
+
]
|
|
7595
|
+
},
|
|
7596
|
+
{
|
|
7597
|
+
"type": "file",
|
|
7598
|
+
"name": "src/repository-origin.ts",
|
|
7599
|
+
"hashes": [
|
|
7600
|
+
{
|
|
7601
|
+
"alg": "SHA-256",
|
|
7602
|
+
"content": "403f853e71ff552ffadbf0e93d41e6c8c2ac84b4b5608a764bb7a6ecd4220148"
|
|
7603
|
+
}
|
|
7604
|
+
]
|
|
7605
|
+
},
|
|
7456
7606
|
{
|
|
7457
7607
|
"type": "file",
|
|
7458
7608
|
"name": "src/reqe.ts",
|
package/src/amendment-trace.ts
CHANGED
|
@@ -97,7 +97,16 @@ export interface AmendmentDecision {
|
|
|
97
97
|
* Template placeholders that reach shipped reports. A stub read as an ordinary unresolvable id lets
|
|
98
98
|
* the author believe they merely mistyped a name, so it earns its own verdict (acid case A1).
|
|
99
99
|
*/
|
|
100
|
-
const PLACEHOLDER_IDS = new Set([
|
|
100
|
+
const PLACEHOLDER_IDS = new Set([
|
|
101
|
+
'test_name',
|
|
102
|
+
'test-name',
|
|
103
|
+
'<test>',
|
|
104
|
+
'<test_name>',
|
|
105
|
+
'tbd',
|
|
106
|
+
'todo',
|
|
107
|
+
'name',
|
|
108
|
+
'названный кодером при реализации — заменить на имя реального теста',
|
|
109
|
+
]);
|
|
101
110
|
|
|
102
111
|
/**
|
|
103
112
|
* Below this many normalised characters an id is too short to match anything meaningfully: the
|
package/src/cmd-usage.ts
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
import { dirname, join, resolve } from 'node:path';
|
|
23
23
|
|
|
24
24
|
import { withNamedLockSync } from './named-lock.js';
|
|
25
|
+
import { isRepoBoundary } from './repo-boundary.js';
|
|
25
26
|
|
|
26
27
|
export const CMD_USAGE_LOG_RELATIVE = '.dz/cmd-usage.jsonl';
|
|
27
28
|
export const CMD_USAGE_LOG_MAX_BYTES = 1_048_576;
|
|
@@ -154,6 +155,16 @@ interface RuleUsage {
|
|
|
154
155
|
readonly outOfRange: number;
|
|
155
156
|
}
|
|
156
157
|
|
|
158
|
+
const REPO_BOUNDARY_IO = {
|
|
159
|
+
exists: (path: string): boolean => existsSync(path),
|
|
160
|
+
isDirectory: (path: string): boolean => {
|
|
161
|
+
try { return statSync(path).isDirectory(); } catch { return false; }
|
|
162
|
+
},
|
|
163
|
+
readText: (path: string): string | null => {
|
|
164
|
+
try { return readFileSync(path, 'utf8'); } catch { return null; }
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
|
|
157
168
|
/** Walk up to the nearest `.dz` directory without ever making telemetry throw. */
|
|
158
169
|
export function resolveCmdUsageRoot(startDir: string): string {
|
|
159
170
|
try {
|
|
@@ -176,12 +187,8 @@ export function resolveCmdUsageRoot(startDir: string): string {
|
|
|
176
187
|
// Тот же класс, что чинился в p-replicator неделей раньше, но зеркально: там поиск шёл ВЫШЕ
|
|
177
188
|
// границы репозитория, здесь останавливается НИЖЕ неё. Общее правило одно — у поиска корня
|
|
178
189
|
// должна быть НАЗВАННАЯ граница, а не первое попавшееся совпадение.
|
|
179
|
-
const atBoundary = (
|
|
180
|
-
|
|
181
|
-
try { statSync(join(dir, marker)); return true; } catch { /* keep checking */ }
|
|
182
|
-
}
|
|
183
|
-
return false;
|
|
184
|
-
})();
|
|
190
|
+
const atBoundary = isRepoBoundary(dir, REPO_BOUNDARY_IO, join)
|
|
191
|
+
|| existsSync(join(dir, 'pnpm-workspace.yaml'));
|
|
185
192
|
if (atBoundary) {
|
|
186
193
|
try {
|
|
187
194
|
if (statSync(join(dir, '.dz')).isDirectory()) return dir;
|
package/src/core-boundary.ts
CHANGED
|
@@ -15,7 +15,7 @@ export function findProcessAccessInCode(source: string): Array<{ line: number; k
|
|
|
15
15
|
return hits;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
/** Count import declarations, import-equals, require
|
|
18
|
+
/** Count import declarations, import-equals, require, dynamic imports and process.getBuiltinModule, not mentions. */
|
|
19
19
|
export function countIoImports(
|
|
20
20
|
source: string,
|
|
21
21
|
modules: readonly string[] = ['node:fs', 'fs', 'node:child_process', 'child_process', 'node:https', 'https'],
|
|
@@ -31,6 +31,12 @@ export function countIoImports(
|
|
|
31
31
|
&& (node.expression.kind === ts.SyntaxKind.ImportKeyword
|
|
32
32
|
|| (ts.isIdentifier(node.expression) && node.expression.text === 'require'))) {
|
|
33
33
|
specifier = node.arguments[0];
|
|
34
|
+
} else if (ts.isCallExpression(node)
|
|
35
|
+
&& ts.isPropertyAccessExpression(node.expression)
|
|
36
|
+
&& ts.isIdentifier(node.expression.expression)
|
|
37
|
+
&& node.expression.expression.text === 'process'
|
|
38
|
+
&& node.expression.name.text === 'getBuiltinModule') {
|
|
39
|
+
specifier = node.arguments[0];
|
|
34
40
|
}
|
|
35
41
|
if (specifier && ts.isStringLiteralLike(specifier)
|
|
36
42
|
&& modules.some((name) => specifier.text === name || specifier.text.startsWith(`${name}/`))) {
|