@dzhechkov/harness-core 0.8.32 → 0.8.34

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.
Files changed (63) hide show
  1. package/.dz-manifest.json +107 -47
  2. package/README.md +108 -0
  3. package/dist/agentdb-index.d.ts +17 -6
  4. package/dist/agentdb-index.d.ts.map +1 -1
  5. package/dist/agentdb-index.js +61 -17
  6. package/dist/agentdb-index.js.map +1 -1
  7. package/dist/apply-leg.d.ts +68 -5
  8. package/dist/apply-leg.d.ts.map +1 -1
  9. package/dist/apply-leg.js +466 -37
  10. package/dist/apply-leg.js.map +1 -1
  11. package/dist/embed-socket-path.d.ts +65 -0
  12. package/dist/embed-socket-path.d.ts.map +1 -0
  13. package/dist/embed-socket-path.js +100 -0
  14. package/dist/embed-socket-path.js.map +1 -0
  15. package/dist/index.d.ts +11 -4
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +9 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/operations.d.ts.map +1 -1
  20. package/dist/operations.js +105 -3
  21. package/dist/operations.js.map +1 -1
  22. package/dist/packed-install-smoke.d.ts +108 -0
  23. package/dist/packed-install-smoke.d.ts.map +1 -0
  24. package/dist/packed-install-smoke.js +172 -0
  25. package/dist/packed-install-smoke.js.map +1 -0
  26. package/dist/publish-sibling-drift.d.ts +139 -0
  27. package/dist/publish-sibling-drift.d.ts.map +1 -0
  28. package/dist/publish-sibling-drift.js +408 -0
  29. package/dist/publish-sibling-drift.js.map +1 -0
  30. package/dist/publish.d.ts +44 -0
  31. package/dist/publish.d.ts.map +1 -1
  32. package/dist/publish.js +243 -24
  33. package/dist/publish.js.map +1 -1
  34. package/dist/qe-bridge.d.ts +16 -0
  35. package/dist/qe-bridge.d.ts.map +1 -1
  36. package/dist/qe-bridge.js +1 -0
  37. package/dist/qe-bridge.js.map +1 -1
  38. package/dist/release.d.ts +91 -0
  39. package/dist/release.d.ts.map +1 -1
  40. package/dist/release.js +317 -21
  41. package/dist/release.js.map +1 -1
  42. package/dist/setup.d.ts +36 -0
  43. package/dist/setup.d.ts.map +1 -1
  44. package/dist/setup.js +96 -2
  45. package/dist/setup.js.map +1 -1
  46. package/dist/vector-tier.d.ts +27 -2
  47. package/dist/vector-tier.d.ts.map +1 -1
  48. package/dist/vector-tier.js +112 -3
  49. package/dist/vector-tier.js.map +1 -1
  50. package/package.json +23 -23
  51. package/sbom.json +196 -46
  52. package/src/agentdb-index.ts +65 -17
  53. package/src/apply-leg.ts +461 -37
  54. package/src/embed-socket-path.ts +113 -0
  55. package/src/index.ts +44 -3
  56. package/src/operations.ts +104 -3
  57. package/src/packed-install-smoke.ts +273 -0
  58. package/src/publish-sibling-drift.ts +498 -0
  59. package/src/publish.ts +280 -25
  60. package/src/qe-bridge.ts +14 -0
  61. package/src/release.ts +366 -19
  62. package/src/setup.ts +108 -2
  63. package/src/vector-tier.ts +147 -5
package/sbom.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "hashes": [
26
26
  {
27
27
  "alg": "SHA-256",
28
- "content": "54263cdc0ff93b433ed446ce4c4e73d65c8b9aa485d85e572619e4ac0f127acb"
28
+ "content": "7fb2af101753ac28e469a24a8f15789d0235d5749dd3a3cda42422d61ff13c0d"
29
29
  }
30
30
  ]
31
31
  },
@@ -75,7 +75,7 @@
75
75
  "hashes": [
76
76
  {
77
77
  "alg": "SHA-256",
78
- "content": "69023233508c656035c8a27b95690bcfddab535d25dffb85f2041c4bfbf77f64"
78
+ "content": "6e86eca1e1b3db58f83c5e60b3af2943cb97a7365eb9754825b3e2fcdde5fe22"
79
79
  }
80
80
  ]
81
81
  },
@@ -85,7 +85,7 @@
85
85
  "hashes": [
86
86
  {
87
87
  "alg": "SHA-256",
88
- "content": "965f21e2cb4c4f6ac8cf51b0238a64c3c44b0442ecc2ec198d67463bd7e76b31"
88
+ "content": "601500870a060848fd75912b8473b1d715ab4c97ea1d8c91db0711e0a0ebf352"
89
89
  }
90
90
  ]
91
91
  },
@@ -95,7 +95,7 @@
95
95
  "hashes": [
96
96
  {
97
97
  "alg": "SHA-256",
98
- "content": "2975c8ee201c4b6e7d78d0a7fc34e976d2d1c97692e6fce82c56417d90d397cd"
98
+ "content": "fdb88618197b66d9b107c50ac75b625e23a4498ddb20d13d8e9168d7e6aee790"
99
99
  }
100
100
  ]
101
101
  },
@@ -105,7 +105,7 @@
105
105
  "hashes": [
106
106
  {
107
107
  "alg": "SHA-256",
108
- "content": "866790c8dcb6614538513927c389231e3617ec5c883470e1e15c19d1f3b2128b"
108
+ "content": "8ada5fd59f070ece1436c97b0d4e96bc9067a2ab042a06637a4592ee9fcf74e9"
109
109
  }
110
110
  ]
111
111
  },
@@ -315,7 +315,7 @@
315
315
  "hashes": [
316
316
  {
317
317
  "alg": "SHA-256",
318
- "content": "a55d5bf49f07b754abf06b14d4e7d6aa588d068e3ef8078eb375256c67254583"
318
+ "content": "7d405581035820ac6e35fc3acf30685fb66f97120f4222d4389e81182cb234b6"
319
319
  }
320
320
  ]
321
321
  },
@@ -325,7 +325,7 @@
325
325
  "hashes": [
326
326
  {
327
327
  "alg": "SHA-256",
328
- "content": "1bce79ef725136a5f4f46520ffbba6b028fa407add47930e117472462a35d64a"
328
+ "content": "1ec81dba7e182385ee9cebd1d4c41128915549797fb07bbff0cc540b7f72287a"
329
329
  }
330
330
  ]
331
331
  },
@@ -335,7 +335,7 @@
335
335
  "hashes": [
336
336
  {
337
337
  "alg": "SHA-256",
338
- "content": "d7d36c98560831a883b6c161a8758789dd458981c1846c23f2a8791bc08009e0"
338
+ "content": "94a7c64d577a8134413cd508b37ec346cf729571b86b0d0cb55168d9a67f7a76"
339
339
  }
340
340
  ]
341
341
  },
@@ -345,7 +345,7 @@
345
345
  "hashes": [
346
346
  {
347
347
  "alg": "SHA-256",
348
- "content": "66b3a643d29f340c96c7d8bca16cc8e5ab39763db030d31ecf154b27f0a817de"
348
+ "content": "cc1ed9820f186de277c75bbcffd102e651e34283a7728307d4c377ad7e207b7a"
349
349
  }
350
350
  ]
351
351
  },
@@ -1869,6 +1869,46 @@
1869
1869
  }
1870
1870
  ]
1871
1871
  },
1872
+ {
1873
+ "type": "file",
1874
+ "name": "dist/embed-socket-path.d.ts",
1875
+ "hashes": [
1876
+ {
1877
+ "alg": "SHA-256",
1878
+ "content": "d1e9b3cb7982f012b3da1de5b97b2a584b14e00c74a8de4bdc481e48b52f414b"
1879
+ }
1880
+ ]
1881
+ },
1882
+ {
1883
+ "type": "file",
1884
+ "name": "dist/embed-socket-path.d.ts.map",
1885
+ "hashes": [
1886
+ {
1887
+ "alg": "SHA-256",
1888
+ "content": "67d855dd419e6221658bd96039db2328b4f0336f236dd5304de604f8b6d99045"
1889
+ }
1890
+ ]
1891
+ },
1892
+ {
1893
+ "type": "file",
1894
+ "name": "dist/embed-socket-path.js",
1895
+ "hashes": [
1896
+ {
1897
+ "alg": "SHA-256",
1898
+ "content": "c5d11ebcd03e0b952a7021206cdffe6474cbd79101dfdaf0dfcd302fec1d4302"
1899
+ }
1900
+ ]
1901
+ },
1902
+ {
1903
+ "type": "file",
1904
+ "name": "dist/embed-socket-path.js.map",
1905
+ "hashes": [
1906
+ {
1907
+ "alg": "SHA-256",
1908
+ "content": "aa0bcf9922795cd37e0be3fed8b8de7750e981e5cc6c373848fc283a9a581926"
1909
+ }
1910
+ ]
1911
+ },
1872
1912
  {
1873
1913
  "type": "file",
1874
1914
  "name": "dist/embedding-config.d.ts",
@@ -2555,7 +2595,7 @@
2555
2595
  "hashes": [
2556
2596
  {
2557
2597
  "alg": "SHA-256",
2558
- "content": "fd97f39647b729ea810c902f273fdfc36f59e567f3a4884290bed49fff4ec052"
2598
+ "content": "0ec8aabd62c19b421d56b9ddfc3a769ca88a6edad072e6b458a9ec0dce144847"
2559
2599
  }
2560
2600
  ]
2561
2601
  },
@@ -2565,7 +2605,7 @@
2565
2605
  "hashes": [
2566
2606
  {
2567
2607
  "alg": "SHA-256",
2568
- "content": "d6430786c63f4b4fa3fada8187ac9402aa3594872a0db2c88ec7a2d5d9c822dc"
2608
+ "content": "d55811cc24161673964196697f78774b618ceff986f12d61233129af1309a06e"
2569
2609
  }
2570
2610
  ]
2571
2611
  },
@@ -2575,7 +2615,7 @@
2575
2615
  "hashes": [
2576
2616
  {
2577
2617
  "alg": "SHA-256",
2578
- "content": "b47ef22031aadc12196f5baec464fcc1f7feeeb0b72777e8b14016d7c78cfb95"
2618
+ "content": "db5d3897a75a8b5f41e4d63fc2b89e1ba0ad59d81c9ec7409f4a4e4bcaef3ed2"
2579
2619
  }
2580
2620
  ]
2581
2621
  },
@@ -2585,7 +2625,7 @@
2585
2625
  "hashes": [
2586
2626
  {
2587
2627
  "alg": "SHA-256",
2588
- "content": "16328408edcd3a051077e91cabaf1e4d83b89f4e6f299cdea7036704d2d9f8a8"
2628
+ "content": "7ed1c3d692bf9f60b3239b2ec714552c524139f98a666529c1c614c00b1928a2"
2589
2629
  }
2590
2630
  ]
2591
2631
  },
@@ -3685,7 +3725,7 @@
3685
3725
  "hashes": [
3686
3726
  {
3687
3727
  "alg": "SHA-256",
3688
- "content": "ed5a263c47219eaa072cce5a0abaa470c32c9289ebe88f8b62294957ecebc120"
3728
+ "content": "5e21fd824b54842ab455e1c2b4d381d3ba81eaefb37ee525ab44b61f3e1a4719"
3689
3729
  }
3690
3730
  ]
3691
3731
  },
@@ -3695,7 +3735,7 @@
3695
3735
  "hashes": [
3696
3736
  {
3697
3737
  "alg": "SHA-256",
3698
- "content": "fb7ab749fea417fa2674b414b8a4b9447aba71f452d0013c7b2c434c51755e1c"
3738
+ "content": "cb895bd26042f722c29594f1c5d0db6471146516745de6b366ed3b1a06af1906"
3699
3739
  }
3700
3740
  ]
3701
3741
  },
@@ -3705,7 +3745,7 @@
3705
3745
  "hashes": [
3706
3746
  {
3707
3747
  "alg": "SHA-256",
3708
- "content": "d35bd1d760e49c2e0c5e95d350f121ccdc4f7de11ba498d42767d58cb26dc749"
3748
+ "content": "3d7103bd1f9c96aefe9ade44d53a321ae5c057171a6556b228350fc3faf74f33"
3709
3749
  }
3710
3750
  ]
3711
3751
  },
@@ -3749,6 +3789,46 @@
3749
3789
  }
3750
3790
  ]
3751
3791
  },
3792
+ {
3793
+ "type": "file",
3794
+ "name": "dist/packed-install-smoke.d.ts",
3795
+ "hashes": [
3796
+ {
3797
+ "alg": "SHA-256",
3798
+ "content": "5fab8ab0b347d09711324875be550ce44724dca46d56be901f86dffd471e0506"
3799
+ }
3800
+ ]
3801
+ },
3802
+ {
3803
+ "type": "file",
3804
+ "name": "dist/packed-install-smoke.d.ts.map",
3805
+ "hashes": [
3806
+ {
3807
+ "alg": "SHA-256",
3808
+ "content": "3f3bdc901c79b61534649c138306756cc2b59df0682def6ca903d3632e9fcfa7"
3809
+ }
3810
+ ]
3811
+ },
3812
+ {
3813
+ "type": "file",
3814
+ "name": "dist/packed-install-smoke.js",
3815
+ "hashes": [
3816
+ {
3817
+ "alg": "SHA-256",
3818
+ "content": "440ae2f1a8876ffae09f3a01534973a9fb7666b6ca963d7ecd01760d6abb32f5"
3819
+ }
3820
+ ]
3821
+ },
3822
+ {
3823
+ "type": "file",
3824
+ "name": "dist/packed-install-smoke.js.map",
3825
+ "hashes": [
3826
+ {
3827
+ "alg": "SHA-256",
3828
+ "content": "0b929c1db7a5cc426160c4e2c19b16bf3db5e4a54a55719b46ea6d69d016277e"
3829
+ }
3830
+ ]
3831
+ },
3752
3832
  {
3753
3833
  "type": "file",
3754
3834
  "name": "dist/parity.d.ts",
@@ -4109,6 +4189,46 @@
4109
4189
  }
4110
4190
  ]
4111
4191
  },
4192
+ {
4193
+ "type": "file",
4194
+ "name": "dist/publish-sibling-drift.d.ts",
4195
+ "hashes": [
4196
+ {
4197
+ "alg": "SHA-256",
4198
+ "content": "8e39c9f1d527ddaaa8b8655ee1e2fa0ee005926e25da8c3218cf0fb9cbed5502"
4199
+ }
4200
+ ]
4201
+ },
4202
+ {
4203
+ "type": "file",
4204
+ "name": "dist/publish-sibling-drift.d.ts.map",
4205
+ "hashes": [
4206
+ {
4207
+ "alg": "SHA-256",
4208
+ "content": "257237bac3a1d173113b4525ea19dbb4f7984a08ad017ebdd7af164ba6cc7cfe"
4209
+ }
4210
+ ]
4211
+ },
4212
+ {
4213
+ "type": "file",
4214
+ "name": "dist/publish-sibling-drift.js",
4215
+ "hashes": [
4216
+ {
4217
+ "alg": "SHA-256",
4218
+ "content": "16ac3f704998f295ed42c112277482d6adfb5d26e4c8a4c89781d24b63118f6f"
4219
+ }
4220
+ ]
4221
+ },
4222
+ {
4223
+ "type": "file",
4224
+ "name": "dist/publish-sibling-drift.js.map",
4225
+ "hashes": [
4226
+ {
4227
+ "alg": "SHA-256",
4228
+ "content": "8143d41cd1c706713fe6d9a742b71d9a28b3519a72072ca4683837ab54732d30"
4229
+ }
4230
+ ]
4231
+ },
4112
4232
  {
4113
4233
  "type": "file",
4114
4234
  "name": "dist/publish-signing.d.ts",
@@ -4155,7 +4275,7 @@
4155
4275
  "hashes": [
4156
4276
  {
4157
4277
  "alg": "SHA-256",
4158
- "content": "613cf29c62332171a95b152ebc73d383a71e7ba2ff2d97ed1619f9a1f6f77b96"
4278
+ "content": "c2494e9728e80aecd427671f17f252d250ea8866e5b1770efa74f64e37ced8d7"
4159
4279
  }
4160
4280
  ]
4161
4281
  },
@@ -4165,7 +4285,7 @@
4165
4285
  "hashes": [
4166
4286
  {
4167
4287
  "alg": "SHA-256",
4168
- "content": "52bd5d82f546c0a9dce2a25b4775c44502d199ea1e11c33a0e0f4ca9c986215e"
4288
+ "content": "a4cedae6fed2af78018ae9db1d57f71008373df4c42a9d23f6b73e0a1fde00a1"
4169
4289
  }
4170
4290
  ]
4171
4291
  },
@@ -4175,7 +4295,7 @@
4175
4295
  "hashes": [
4176
4296
  {
4177
4297
  "alg": "SHA-256",
4178
- "content": "23aa88616d9296bd571619baca8f31524c4c21ca3844dc71971ea66e56172238"
4298
+ "content": "5521d2668e6ddb77086a911166eee4b7df1776ff94b23b5bab9ba927d479b6d4"
4179
4299
  }
4180
4300
  ]
4181
4301
  },
@@ -4185,7 +4305,7 @@
4185
4305
  "hashes": [
4186
4306
  {
4187
4307
  "alg": "SHA-256",
4188
- "content": "b6a45c54545e890424561cf8bfcbfa8f98061852ffc6b1fcaea526eb420a5a9e"
4308
+ "content": "2dae5163293e7aa626a27d8da7642a82437b8bdac98b2735706f535572ec71c1"
4189
4309
  }
4190
4310
  ]
4191
4311
  },
@@ -4195,7 +4315,7 @@
4195
4315
  "hashes": [
4196
4316
  {
4197
4317
  "alg": "SHA-256",
4198
- "content": "dc7d9b6325d8ef314d75834c649aeca914e0453324d1dbd631508b5d6e3e400d"
4318
+ "content": "7bf6a9f4bbd79eef7858d3a5e073fbb897d7af01accf9257894635664432f449"
4199
4319
  }
4200
4320
  ]
4201
4321
  },
@@ -4205,7 +4325,7 @@
4205
4325
  "hashes": [
4206
4326
  {
4207
4327
  "alg": "SHA-256",
4208
- "content": "0a32cc82bbc3b5df2576495e5d4823b32ddcc4375b9217d3c8a008cc68054997"
4328
+ "content": "6eac09175e7d75786e831dc07a79fa17574a61cbe607ffecbe263ac4248f818d"
4209
4329
  }
4210
4330
  ]
4211
4331
  },
@@ -4215,7 +4335,7 @@
4215
4335
  "hashes": [
4216
4336
  {
4217
4337
  "alg": "SHA-256",
4218
- "content": "805dbe6e3d2e60b243b51b5f76c688707f1634625ab5326723f8e7e28b4f0246"
4338
+ "content": "c61ce95a1fe307b340cb247cb7eb82708525452a12621fa42345e1561eb200e8"
4219
4339
  }
4220
4340
  ]
4221
4341
  },
@@ -4225,7 +4345,7 @@
4225
4345
  "hashes": [
4226
4346
  {
4227
4347
  "alg": "SHA-256",
4228
- "content": "82b9a67c5432a3b2d029720a16c7336b1443ed8b7f00e7ce911fb4eb31e106e5"
4348
+ "content": "5f9c7d67e269024896199f171d84e918d6adb71d022983bfc959b3697d78be67"
4229
4349
  }
4230
4350
  ]
4231
4351
  },
@@ -4635,7 +4755,7 @@
4635
4755
  "hashes": [
4636
4756
  {
4637
4757
  "alg": "SHA-256",
4638
- "content": "ccc6b0c5267e3c6236f7abba5c9b436d728acff7e1265b8661633150006da7aa"
4758
+ "content": "937161c359ffed77233d43ba2b5280cd8f34962baa1758daf8479805e23621ef"
4639
4759
  }
4640
4760
  ]
4641
4761
  },
@@ -4645,7 +4765,7 @@
4645
4765
  "hashes": [
4646
4766
  {
4647
4767
  "alg": "SHA-256",
4648
- "content": "e73877b3aa674936b7b195f7d2f310cfb8490d0c1c341c56612eb93cad4d7fb1"
4768
+ "content": "6ce025a95be2b36246e6a8dbe3b324539e60d3f79febe1330071e51fced1282a"
4649
4769
  }
4650
4770
  ]
4651
4771
  },
@@ -4655,7 +4775,7 @@
4655
4775
  "hashes": [
4656
4776
  {
4657
4777
  "alg": "SHA-256",
4658
- "content": "c7af542cf783fcd639e6c0b3e15463864aaa816d93abce5e05c39d75979d4b1f"
4778
+ "content": "0030839d3dfaa43dabed352703255a7f6f0e11c8e3db01abaa4341fddb57e211"
4659
4779
  }
4660
4780
  ]
4661
4781
  },
@@ -4665,7 +4785,7 @@
4665
4785
  "hashes": [
4666
4786
  {
4667
4787
  "alg": "SHA-256",
4668
- "content": "9123f8a37ffc19886f2940c700c2622509cd4deb0eea762ed3cc1e1f0907d17f"
4788
+ "content": "2f1cfa37c4f868859e6ea2b5aba4b896bd106e8ed1a9a8b5285b9ad30e52d896"
4669
4789
  }
4670
4790
  ]
4671
4791
  },
@@ -5315,7 +5435,7 @@
5315
5435
  "hashes": [
5316
5436
  {
5317
5437
  "alg": "SHA-256",
5318
- "content": "653c6b53ddece860e58a148e6293fdeb88a780b2bb794cbffe10f74406cf8e2d"
5438
+ "content": "f83a15a0c183e2dc67d95323a3eae1eddfd8b375ca92a0de488081ec9d020603"
5319
5439
  }
5320
5440
  ]
5321
5441
  },
@@ -5325,7 +5445,7 @@
5325
5445
  "hashes": [
5326
5446
  {
5327
5447
  "alg": "SHA-256",
5328
- "content": "b0be51ebb68bf00ba4649dd82a5ed862361e59a8911697e7e6a103e398ca801b"
5448
+ "content": "baefa9d4a927880e51b8dc9ec4b899e7625c029de82ed397501b32cb1d3e925a"
5329
5449
  }
5330
5450
  ]
5331
5451
  },
@@ -5335,7 +5455,7 @@
5335
5455
  "hashes": [
5336
5456
  {
5337
5457
  "alg": "SHA-256",
5338
- "content": "0c2b6ff57f0362bb17c5c28843b52e8801f71218121dc0d6260d684aa7068d68"
5458
+ "content": "6f8cbb59ffc98b5f8722134b9b28b4d2bd5d847fe50edc38d2f539ebc9980151"
5339
5459
  }
5340
5460
  ]
5341
5461
  },
@@ -5345,7 +5465,7 @@
5345
5465
  "hashes": [
5346
5466
  {
5347
5467
  "alg": "SHA-256",
5348
- "content": "ee3832352ba91e98f5497a3de74bfe6fdb395392a007eaa689974dd1cc2207fb"
5468
+ "content": "f859ac7532e6b9d2232fbdbe6f7b3cb5e0a739842bc70024544c9263f78ec67e"
5349
5469
  }
5350
5470
  ]
5351
5471
  },
@@ -6515,7 +6635,7 @@
6515
6635
  "hashes": [
6516
6636
  {
6517
6637
  "alg": "SHA-256",
6518
- "content": "289cc4a73d023af16d44ab00caa4c1cad2cbe6bd6720b6eddf932ef37e200a5b"
6638
+ "content": "cdf68fa28b6a7e78d0381a5b2d23647ae812fee004e31b4c8c3893a897fd6f6f"
6519
6639
  }
6520
6640
  ]
6521
6641
  },
@@ -6525,7 +6645,7 @@
6525
6645
  "hashes": [
6526
6646
  {
6527
6647
  "alg": "SHA-256",
6528
- "content": "52e4813a1af157a58ea91b7787c44c09dfc68e44b0baee315182467913c4dc08"
6648
+ "content": "2943b848f7af427dcfecf801a778fe7eb2a6f899e395956aca5f45a9fcce3d79"
6529
6649
  }
6530
6650
  ]
6531
6651
  },
@@ -6535,7 +6655,7 @@
6535
6655
  "hashes": [
6536
6656
  {
6537
6657
  "alg": "SHA-256",
6538
- "content": "cf0d978a1e9bffb32a854d20a0a88a4daad7e852f12287db15ae1707c0db66a3"
6658
+ "content": "a48e13d799185bc95134a23cbe7d9ee91f9dcaf64c1c7c5faa4cf45a4cf94d08"
6539
6659
  }
6540
6660
  ]
6541
6661
  },
@@ -6545,7 +6665,7 @@
6545
6665
  "hashes": [
6546
6666
  {
6547
6667
  "alg": "SHA-256",
6548
- "content": "f8db2ecd2284f2d5af15049443aa295c56fa3d67a2240bb4f08b884f36cf41bd"
6668
+ "content": "9a74e49879f494f01aec757b4efe0f41245cf20cf1cc4e07123852f6939463cf"
6549
6669
  }
6550
6670
  ]
6551
6671
  },
@@ -6719,7 +6839,7 @@
6719
6839
  },
6720
6840
  {
6721
6841
  "name": "dz:canonical-json-sha256-v2",
6722
- "value": "2cd4274fb6e5283df38211af9daa121f9b8d0078c4ec6b9c7be7b9ff0d6f69e7"
6842
+ "value": "26a1b1c5cd3d01ea854d9fb9ef126fe3cfd6580a52d0a1c7b60f4dffcc280d8d"
6723
6843
  }
6724
6844
  ]
6725
6845
  },
@@ -6739,7 +6859,7 @@
6739
6859
  "hashes": [
6740
6860
  {
6741
6861
  "alg": "SHA-256",
6742
- "content": "49c55278320cf79d50463374cb4bd98702381eefc61aa81cf3889f117857f7d0"
6862
+ "content": "f3b7a86fc7ec49fc7b47d69a6beb4ace4e193f9a4b63237b257a7cae1879d4f7"
6743
6863
  }
6744
6864
  ]
6745
6865
  },
@@ -6799,7 +6919,7 @@
6799
6919
  "hashes": [
6800
6920
  {
6801
6921
  "alg": "SHA-256",
6802
- "content": "1d8f1c5f6edf5f3cc26de81a5697aae835511826b38b67832d51943d9dd1d14c"
6922
+ "content": "d0bc07ff16397b8d0d6b26fd72a770553f421902b81e3d5e775e08b4db4710a3"
6803
6923
  }
6804
6924
  ]
6805
6925
  },
@@ -7193,6 +7313,16 @@
7193
7313
  }
7194
7314
  ]
7195
7315
  },
7316
+ {
7317
+ "type": "file",
7318
+ "name": "src/embed-socket-path.ts",
7319
+ "hashes": [
7320
+ {
7321
+ "alg": "SHA-256",
7322
+ "content": "2168f61719813abe70d90493a1e12936e084ae43bfc59cf131d9ad9bcbe27939"
7323
+ }
7324
+ ]
7325
+ },
7196
7326
  {
7197
7327
  "type": "file",
7198
7328
  "name": "src/embedding-config.ts",
@@ -7369,7 +7499,7 @@
7369
7499
  "hashes": [
7370
7500
  {
7371
7501
  "alg": "SHA-256",
7372
- "content": "5df0f960a0c66a364f123c9e519a2dccce1cbda9fdf210d0dfc622cffaedb05f"
7502
+ "content": "a2ae53ebaa9993545153419f615db85f7a2d412f61deddb44780773e8ea52be2"
7373
7503
  }
7374
7504
  ]
7375
7505
  },
@@ -7659,7 +7789,7 @@
7659
7789
  "hashes": [
7660
7790
  {
7661
7791
  "alg": "SHA-256",
7662
- "content": "3f4047a17032ba1b84facf899b9934d4b4b5e4e126d84895c2a4dc2265343b8b"
7792
+ "content": "9f20a5a9c3e6ff41245612f74f04f62e719744fab2f97ee9d93fcdf4fa52668b"
7663
7793
  }
7664
7794
  ]
7665
7795
  },
@@ -7673,6 +7803,16 @@
7673
7803
  }
7674
7804
  ]
7675
7805
  },
7806
+ {
7807
+ "type": "file",
7808
+ "name": "src/packed-install-smoke.ts",
7809
+ "hashes": [
7810
+ {
7811
+ "alg": "SHA-256",
7812
+ "content": "c6c9ed22e4e06fc6de233efc1214349e60f66ea012c5162ef9fb1fcbc0a169d5"
7813
+ }
7814
+ ]
7815
+ },
7676
7816
  {
7677
7817
  "type": "file",
7678
7818
  "name": "src/parity.ts",
@@ -7763,6 +7903,16 @@
7763
7903
  }
7764
7904
  ]
7765
7905
  },
7906
+ {
7907
+ "type": "file",
7908
+ "name": "src/publish-sibling-drift.ts",
7909
+ "hashes": [
7910
+ {
7911
+ "alg": "SHA-256",
7912
+ "content": "5a7c2cffce4e62e4e859578b7014020670125e1ea68d4e04f2b1f6256c423b7a"
7913
+ }
7914
+ ]
7915
+ },
7766
7916
  {
7767
7917
  "type": "file",
7768
7918
  "name": "src/publish-signing.ts",
@@ -7779,7 +7929,7 @@
7779
7929
  "hashes": [
7780
7930
  {
7781
7931
  "alg": "SHA-256",
7782
- "content": "4c699867eb449f72e83407f9f5901f480f0e7a5a99412ea8e08c4dc06f0d1a4a"
7932
+ "content": "00024c5a639339c5184bdad4d0ccf2e2e7d609cd74f25e64b624a43c22ac8625"
7783
7933
  }
7784
7934
  ]
7785
7935
  },
@@ -7789,7 +7939,7 @@
7789
7939
  "hashes": [
7790
7940
  {
7791
7941
  "alg": "SHA-256",
7792
- "content": "5d4329089e2ad573a65663bfde91e2d94194dfe04f1bf4f8e1d7ac8f90db0e05"
7942
+ "content": "abea068557211791925c6a046c71d49fa67753ec46c8f982f8f4351feb539970"
7793
7943
  }
7794
7944
  ]
7795
7945
  },
@@ -7899,7 +8049,7 @@
7899
8049
  "hashes": [
7900
8050
  {
7901
8051
  "alg": "SHA-256",
7902
- "content": "aa9168da8584d311a2cdef736c2352180e6a52752a4d9859ad535d825cd502ad"
8052
+ "content": "4e3390606a39f54b2a15db985a6e72a4f34c2ef59765c5124e1d64844d97447c"
7903
8053
  }
7904
8054
  ]
7905
8055
  },
@@ -8059,7 +8209,7 @@
8059
8209
  "hashes": [
8060
8210
  {
8061
8211
  "alg": "SHA-256",
8062
- "content": "d38887d6192184e02db4e3dc3932a88f09379c59fab92a146f7af17d80b11fdc"
8212
+ "content": "795f796ad5093244807d5fd0c80478c89e28e3e3ef26540e8f636eb24d517038"
8063
8213
  }
8064
8214
  ]
8065
8215
  },
@@ -8369,7 +8519,7 @@
8369
8519
  "hashes": [
8370
8520
  {
8371
8521
  "alg": "SHA-256",
8372
- "content": "f5b5187d2537f2d00c3f248676928d286e715e9984f67491aa1e02eb0f4b1b50"
8522
+ "content": "6086c8aabf98d69d9fc7d8b22d88dfbe1588ac1a4e2ddae66a3738e02dc638f2"
8373
8523
  }
8374
8524
  ]
8375
8525
  },
@@ -284,30 +284,43 @@ export interface AgentdbSearchResult {
284
284
 
285
285
  const DEPS_MISSING = 'agentdb/better-sqlite3 not installed in project (run: dz setup --memory agentdb)';
286
286
 
287
+ type Embedder = { embed: (t: string) => Promise<Float32Array> } | { error: string };
288
+
287
289
  /**
288
- * Resolve agentdb's `EmbeddingService` from the PROJECT (same dynamic-resolution discipline as
289
- * {@link indexPatternsToAgentdb}); every dz call site uses the same resolved model so query and row
290
- * vectors stay in the same space.
290
+ * `agentdb-embedder-cache` (feature): the transformers pipeline behind `EmbeddingService` is
291
+ * expensive to stand up (MEASURED 2026-09-14: 2-3.6s per `resolveAgentdbEmbedder` call — see
292
+ * `features/agentdb-embedder-cache/00_complexity_assessment.md`), yet the resolved model/dim never
293
+ * changes within one process. Keyed by `${agentdbDir}|${model}|${dim}` so a config/env change (a
294
+ * different `resolveEmbedModel` source) gets its own entry (FR-2) rather than reusing a stale
295
+ * pipeline. The PROMISE is cached, not the awaited result (FR-4): concurrent first callers for the
296
+ * same key join the same in-flight initialization instead of racing two pipelines. An `{error}`
297
+ * outcome (or a rejection) evicts its own entry so the next call retries cleanly (FR-3) — a failure
298
+ * must never "stick".
291
299
  */
292
- export async function resolveAgentdbEmbedder(
293
- projectRoot: string,
294
- ): Promise<{ embed: (t: string) => Promise<Float32Array> } | { error: string }> {
295
- let agentdbDir: string;
296
- try {
297
- const req = createRequire(join(projectRoot, 'package.json'));
298
- agentdbDir = dirname(req.resolve('agentdb'));
299
- } catch {
300
- return { error: DEPS_MISSING };
301
- }
300
+ const embedderCache = new Map<string, Promise<Embedder>>();
301
+ let embedderCacheInitializations = 0;
302
+
303
+ /** Test-only (and future warm-start) reset — callers (`vector-tier.ts`, `backlog.ts`) are unaffected. */
304
+ export function resetAgentdbEmbedderCache(): void {
305
+ embedderCache.clear();
306
+ embedderCacheInitializations = 0;
307
+ }
308
+
309
+ /** `entries` = cached keys right now — a SUCCESSFUL pipeline or an IN-FLIGHT initialization (the promise is
310
+ * cached before it settles, FR-4; a failed one is evicted, FR-3); `initializations` = pipelines actually
311
+ * started since the last reset. (Codex round-1, 2026-09-14: the earlier wording said "successful" only.) */
312
+ export function getAgentdbEmbedderCacheStats(): { entries: number; initializations: number } {
313
+ return { entries: embedderCache.size, initializations: embedderCacheInitializations };
314
+ }
315
+
316
+ async function initAgentdbEmbedder(agentdbDir: string, model: string, dim: number): Promise<Embedder> {
302
317
  try {
303
318
  const { EmbeddingService } = (await import(pathToFileURL(join(agentdbDir, 'controllers', 'EmbeddingService.js')).href)) as {
304
319
  EmbeddingService: new (o: object) => { initialize: () => Promise<void>; embed: (t: string) => Promise<Float32Array> };
305
320
  };
306
- const model = resolveEmbedModel(projectRoot);
307
- if ('error' in model) return { error: model.error };
308
321
  const emb = new EmbeddingService({
309
- model: model.model,
310
- dimension: model.dim,
322
+ model,
323
+ dimension: dim,
311
324
  provider: 'transformers',
312
325
  // agentdb >= 3.0.0-alpha.20 refuses UNREGISTERED models without an explicit role policy
313
326
  // (its built-in registry knows all-MiniLM-L6-v2 but not our multilingual variant — grounded
@@ -325,6 +338,41 @@ export async function resolveAgentdbEmbedder(
325
338
  }
326
339
  }
327
340
 
341
+ /**
342
+ * Resolve agentdb's `EmbeddingService` from the PROJECT (same dynamic-resolution discipline as
343
+ * {@link indexPatternsToAgentdb}); every dz call site uses the same resolved model so query and row
344
+ * vectors stay in the same space. Cached per process — see {@link embedderCache} above.
345
+ */
346
+ export async function resolveAgentdbEmbedder(projectRoot: string): Promise<Embedder> {
347
+ let agentdbDir: string;
348
+ try {
349
+ const req = createRequire(join(projectRoot, 'package.json'));
350
+ agentdbDir = dirname(req.resolve('agentdb'));
351
+ } catch {
352
+ return { error: DEPS_MISSING };
353
+ }
354
+ const model = resolveEmbedModel(projectRoot);
355
+ if ('error' in model) return { error: model.error };
356
+ const key = `${agentdbDir}|${model.model}|${model.dim}`;
357
+ const hit = embedderCache.get(key);
358
+ if (hit !== undefined) return hit;
359
+ embedderCacheInitializations += 1;
360
+ const promise = initAgentdbEmbedder(agentdbDir, model.model, model.dim);
361
+ embedderCache.set(key, promise);
362
+ // FR-3: an init failure must not stick — evict so the next call retries instead of replaying
363
+ // the same {error} forever. `.catch` here only guards a rejection that slips past
364
+ // `initAgentdbEmbedder`'s own try/catch; it never rethrows (this is bookkeeping, not the return path).
365
+ void promise.then(
366
+ (result) => {
367
+ if ('error' in result && embedderCache.get(key) === promise) embedderCache.delete(key);
368
+ },
369
+ () => {
370
+ if (embedderCache.get(key) === promise) embedderCache.delete(key);
371
+ },
372
+ );
373
+ return promise;
374
+ }
375
+
328
376
  /** `absent: true` = no store file yet — an EMPTY mirror is a state, not an error (backfill relies on this). */
329
377
  function openReadonly(projectRoot: string, dbPath?: string): { db: ReadonlyDb } | { absent: true } | { error: string } {
330
378
  const dbFile = resolveAgentdbPath(projectRoot, dbPath);