@dzhechkov/harness-core 0.8.10 → 0.8.11

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 (76) hide show
  1. package/.dz-manifest.json +120 -60
  2. package/dist/codex-invoke.d.ts +73 -0
  3. package/dist/codex-invoke.d.ts.map +1 -0
  4. package/dist/codex-invoke.js +80 -0
  5. package/dist/codex-invoke.js.map +1 -0
  6. package/dist/discrimination-gate.d.ts +63 -3
  7. package/dist/discrimination-gate.d.ts.map +1 -1
  8. package/dist/discrimination-gate.js +113 -16
  9. package/dist/discrimination-gate.js.map +1 -1
  10. package/dist/event-chain.d.ts +30 -0
  11. package/dist/event-chain.d.ts.map +1 -1
  12. package/dist/event-chain.js +24 -0
  13. package/dist/event-chain.js.map +1 -1
  14. package/dist/guard.d.ts +8 -0
  15. package/dist/guard.d.ts.map +1 -1
  16. package/dist/guard.js +37 -0
  17. package/dist/guard.js.map +1 -1
  18. package/dist/index.d.ts +8 -5
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +8 -4
  21. package/dist/index.js.map +1 -1
  22. package/dist/mutation-gate.d.ts +39 -36
  23. package/dist/mutation-gate.d.ts.map +1 -1
  24. package/dist/mutation-gate.js +111 -5
  25. package/dist/mutation-gate.js.map +1 -1
  26. package/dist/operations.d.ts.map +1 -1
  27. package/dist/operations.js +8 -5
  28. package/dist/operations.js.map +1 -1
  29. package/dist/plugin.d.ts.map +1 -1
  30. package/dist/plugin.js +27 -5
  31. package/dist/plugin.js.map +1 -1
  32. package/dist/recommend.d.ts +4 -5
  33. package/dist/recommend.d.ts.map +1 -1
  34. package/dist/recommend.js +110 -45
  35. package/dist/recommend.js.map +1 -1
  36. package/dist/registry.d.ts +32 -1
  37. package/dist/registry.d.ts.map +1 -1
  38. package/dist/registry.js +165 -9
  39. package/dist/registry.js.map +1 -1
  40. package/dist/run-records.d.ts +3 -0
  41. package/dist/run-records.d.ts.map +1 -1
  42. package/dist/run-records.js +18 -0
  43. package/dist/run-records.js.map +1 -1
  44. package/dist/score.d.ts +95 -0
  45. package/dist/score.d.ts.map +1 -1
  46. package/dist/score.js +274 -2
  47. package/dist/score.js.map +1 -1
  48. package/dist/skill-selection.d.ts +72 -0
  49. package/dist/skill-selection.d.ts.map +1 -0
  50. package/dist/skill-selection.js +76 -0
  51. package/dist/skill-selection.js.map +1 -0
  52. package/dist/stem.d.ts +12 -0
  53. package/dist/stem.d.ts.map +1 -0
  54. package/dist/stem.js +89 -0
  55. package/dist/stem.js.map +1 -0
  56. package/dist/telemetry-vocabulary.d.ts +7 -0
  57. package/dist/telemetry-vocabulary.d.ts.map +1 -1
  58. package/dist/telemetry-vocabulary.js +29 -0
  59. package/dist/telemetry-vocabulary.js.map +1 -1
  60. package/package.json +8 -8
  61. package/sbom.json +209 -59
  62. package/src/codex-invoke.ts +138 -0
  63. package/src/discrimination-gate.ts +183 -19
  64. package/src/event-chain.ts +41 -0
  65. package/src/guard.ts +40 -0
  66. package/src/index.ts +10 -4
  67. package/src/mutation-gate.ts +165 -5
  68. package/src/operations.ts +8 -5
  69. package/src/plugin.ts +27 -5
  70. package/src/recommend.ts +116 -46
  71. package/src/registry.ts +144 -11
  72. package/src/run-records.ts +23 -0
  73. package/src/score.ts +361 -3
  74. package/src/skill-selection.ts +111 -0
  75. package/src/stem.ts +87 -0
  76. package/src/telemetry-vocabulary.ts +36 -0
package/.dz-manifest.json CHANGED
@@ -395,6 +395,22 @@
395
395
  "path": "dist/codex-hooks.js.map",
396
396
  "sha256": "f6c5aba9f2fc31d2834296b617b76bd291b252c08629140a27ea5f6b02e8303c"
397
397
  },
398
+ {
399
+ "path": "dist/codex-invoke.d.ts",
400
+ "sha256": "363a4535a0020430551bd198198039b341b2beb3600f0c0f19b2d382d5224594"
401
+ },
402
+ {
403
+ "path": "dist/codex-invoke.d.ts.map",
404
+ "sha256": "a1dae1659b260210682f4e23210576fa4f2ba75f4ba0085d27fc14a0b40647e4"
405
+ },
406
+ {
407
+ "path": "dist/codex-invoke.js",
408
+ "sha256": "538c8b6a5421c16e92743e41d317be3009a2bba775f6f3be5b3beda6d86af372"
409
+ },
410
+ {
411
+ "path": "dist/codex-invoke.js.map",
412
+ "sha256": "bbd71ccc9e7bc61620e9a598ca71e3e1b42691e2e001a0b22df0b68260488cbe"
413
+ },
398
414
  {
399
415
  "path": "dist/compounding.d.ts",
400
416
  "sha256": "f3881b843a59607a9481d0b8f713cc920e3857e401c68e0557c0f0934e319ba9"
@@ -493,19 +509,19 @@
493
509
  },
494
510
  {
495
511
  "path": "dist/discrimination-gate.d.ts",
496
- "sha256": "c4efdd056b63cd84e71db867df7f5a5262746da451f62dfa4e36f7a3fbef43e7"
512
+ "sha256": "23883a6eb8e10d121e579a5c1fc60ba427d91626dca484ac013e99d5fce9977c"
497
513
  },
498
514
  {
499
515
  "path": "dist/discrimination-gate.d.ts.map",
500
- "sha256": "76a2508c953a2c9735b3e6e5c9fba9fdf08af14914e9b2c013c610ec81dd2d5b"
516
+ "sha256": "98926b358f069b91d5d0588c0082e4b14a4f2886ee8a73e42275658c9bab5fcd"
501
517
  },
502
518
  {
503
519
  "path": "dist/discrimination-gate.js",
504
- "sha256": "0b0d9b97564133b6db195e307b3a5b9b70c82b37d0647ee927419e4147995e76"
520
+ "sha256": "36ccd10e789638315de2bd24601f63762ff5c716355d5789dd0ebe8a11a19b0c"
505
521
  },
506
522
  {
507
523
  "path": "dist/discrimination-gate.js.map",
508
- "sha256": "8758c2de8732851d2352c33e5746ac9f4079d4ec277ea4b7974d8e238169f365"
524
+ "sha256": "4dd9ae0d7773ede6e798462b82c2c498e974a1ae21b4cd87757badd2663f261b"
509
525
  },
510
526
  {
511
527
  "path": "dist/downloads.d.ts",
@@ -573,19 +589,19 @@
573
589
  },
574
590
  {
575
591
  "path": "dist/event-chain.d.ts",
576
- "sha256": "2414c9d733242709baa1f34c003a2f7fa954446e8d132b9ee0c7e87ef41135b1"
592
+ "sha256": "a79755c44826c2a11ee5852bba45a9f2ec77aa030a473ba3057b06072d4d7d70"
577
593
  },
578
594
  {
579
595
  "path": "dist/event-chain.d.ts.map",
580
- "sha256": "c94f56cfab60c125f22c2ca4f7e0b29e69fe95b1e1ff6a5a77409d582aabec85"
596
+ "sha256": "3b40ce151fec73e9ce03ece5b7d44d4060be28bf3a7d8c72d4c138e096efa79d"
581
597
  },
582
598
  {
583
599
  "path": "dist/event-chain.js",
584
- "sha256": "94f23468a3a149519c22a0f15940732c687724fbe5d06a9644eb7cc10a7edd76"
600
+ "sha256": "cdcc4387e96203bb6579b5ee9e00cb744660819fa5677ec07fe63892a19bc32c"
585
601
  },
586
602
  {
587
603
  "path": "dist/event-chain.js.map",
588
- "sha256": "af3646d640a123d797d40e12f91958642b6b6d809c9ff226727313f546b23e9f"
604
+ "sha256": "5b1d2fd82d6c22381fd72f548f105ba82bc06e132acfc6fb26fd9fe82e64b044"
589
605
  },
590
606
  {
591
607
  "path": "dist/export-holdout.d.ts",
@@ -733,19 +749,19 @@
733
749
  },
734
750
  {
735
751
  "path": "dist/guard.d.ts",
736
- "sha256": "bcb750e7e34f1bd73eb2d7cf5b7443b564aaaded3e850e39da5088c2fccacec1"
752
+ "sha256": "25bf9d51405b3e70099f4a4d7d5bc21da46a7de7dd2cddfff35431060dfa26ed"
737
753
  },
738
754
  {
739
755
  "path": "dist/guard.d.ts.map",
740
- "sha256": "283119b4c759d23fbee81d2b10c02bcd451f0540794b91c3951498c43549fd1f"
756
+ "sha256": "993ba51346d134ad9cbf72e9ac5a3b1da81daf0d1efe07e64085dc97cf283d65"
741
757
  },
742
758
  {
743
759
  "path": "dist/guard.js",
744
- "sha256": "6036c3edd2fce559cee1ae0fffef7cade11ff531e8fe2b5d2e4a8bc77ca031d5"
760
+ "sha256": "c95d73fce9eddb6e86ffa08c029857b4ecfe7cc1b00a3580ae2a313c4c9714f2"
745
761
  },
746
762
  {
747
763
  "path": "dist/guard.js.map",
748
- "sha256": "47661b987532eee84f529b2f4931a68422f83a2694d933889d3d4178e33c4b38"
764
+ "sha256": "3efa53229726935de9447f3b9c34b7ba49ad5fc7a70ef8f01da2e641a8e78124"
749
765
  },
750
766
  {
751
767
  "path": "dist/import-ecc.d.ts",
@@ -765,19 +781,19 @@
765
781
  },
766
782
  {
767
783
  "path": "dist/index.d.ts",
768
- "sha256": "e95e547b5901767d3c59085de0626c4a89c3694b8d5f80f5e4d157fe19767bdf"
784
+ "sha256": "7b823cf93aa8039fa4465ed9cf80fa44d9f294e82070caba851ccb046fc495ee"
769
785
  },
770
786
  {
771
787
  "path": "dist/index.d.ts.map",
772
- "sha256": "07128b0d25ab1ff6ad0f7ff6bb63def44dacd226222a6599219ab9283362badd"
788
+ "sha256": "612adb8b3543d181bb552b4c22eeb7bd98d793fb5ac46b78ee4c8b729c7ad117"
773
789
  },
774
790
  {
775
791
  "path": "dist/index.js",
776
- "sha256": "847a6fa9b8222c34555fa33e42db269239397fe0fc0c6987e28c833a03442dcd"
792
+ "sha256": "e415703584555419ee30c451320e7e81931b0ed400dd5e9e792ea49cce7e3a98"
777
793
  },
778
794
  {
779
795
  "path": "dist/index.js.map",
780
- "sha256": "a99db52a966843ed20405014a4f85b0ac7659af41e21a430ec02a061e07344be"
796
+ "sha256": "c9432eff1b15efe5d4d1c820c1e5aff0c1b8f98f32ea7ea18aa49302f01dca28"
781
797
  },
782
798
  {
783
799
  "path": "dist/integration-apply.d.ts",
@@ -1085,19 +1101,19 @@
1085
1101
  },
1086
1102
  {
1087
1103
  "path": "dist/mutation-gate.d.ts",
1088
- "sha256": "daf7980d41cc67d23bc09ebf5306714cba2ac4385f2fd530ce69e3b503a10026"
1104
+ "sha256": "28008307b985d7c0f4c1f67adb532ec09139de968bb1477f17305b008a4dddd2"
1089
1105
  },
1090
1106
  {
1091
1107
  "path": "dist/mutation-gate.d.ts.map",
1092
- "sha256": "d413843c83945c4241a863a16c4fdf131f24bd4764b365d0fd5dea0f090518d4"
1108
+ "sha256": "598d1dec09456cffa5729d42a9416aecc7e1fae93a722e64fadf441339d63eaf"
1093
1109
  },
1094
1110
  {
1095
1111
  "path": "dist/mutation-gate.js",
1096
- "sha256": "0376af0ec9f6b850667cf9942ea2fc8f8ee6f83a597a40aded811fe184b3fc29"
1112
+ "sha256": "234e912acb8e42eee87a710c4549dd72adc2a58f43ccaf67c81ab72040895db8"
1097
1113
  },
1098
1114
  {
1099
1115
  "path": "dist/mutation-gate.js.map",
1100
- "sha256": "ce6ea1cbc97cf80338f9fa7d6e7bf7a1535f0670aad888524e4af4b388a7c4b2"
1116
+ "sha256": "76d021851692fe60c6241ab1fb6114cd3a538bf2c53601960e237edb4fd90433"
1101
1117
  },
1102
1118
  {
1103
1119
  "path": "dist/name-check.d.ts",
@@ -1169,15 +1185,15 @@
1169
1185
  },
1170
1186
  {
1171
1187
  "path": "dist/operations.d.ts.map",
1172
- "sha256": "76c0c00fe3c06a5a6c5443803b77308b2665fa6221fdcc02600144617c8595a5"
1188
+ "sha256": "571433c31f28593013ec7ccf252fdc724bd35cee43f143d3910a3f4b6f56e67e"
1173
1189
  },
1174
1190
  {
1175
1191
  "path": "dist/operations.js",
1176
- "sha256": "ac48be10d0eaa48ace8df0c0295424d9bcbf9cbf8adcc35753cc2c1b2ae7f516"
1192
+ "sha256": "9d3cdb8eb809dda709ed6843e39c99713a8cd6d5ba9bac0e303a3c488f270a8f"
1177
1193
  },
1178
1194
  {
1179
1195
  "path": "dist/operations.js.map",
1180
- "sha256": "1f6f6bdf7cf03521191a93d0581664e617a45770a7812118ea35488f932aac77"
1196
+ "sha256": "b77288d5aeb7f4daf73747908c8c3ab5f1e1d1d8749622022197ebb9899d088c"
1181
1197
  },
1182
1198
  {
1183
1199
  "path": "dist/package-skill-layouts.d.ts",
@@ -1249,15 +1265,15 @@
1249
1265
  },
1250
1266
  {
1251
1267
  "path": "dist/plugin.d.ts.map",
1252
- "sha256": "7aadc7de2124396aca8a4200a9ff9be5926525c47d7e3627735f42822b8c1575"
1268
+ "sha256": "7a98a93fed227adfa281f633ec009f4ac731f8af6509972618b39186f3fb705f"
1253
1269
  },
1254
1270
  {
1255
1271
  "path": "dist/plugin.js",
1256
- "sha256": "e4c6b0bf4b69217bc8e50b77b5bd8b12cc1417e266ae4169473b0b20a306332d"
1272
+ "sha256": "93f986c29c6ba19c56e08b7f7ed3a1b3e3f47888c7c8a5fa19995d314d8bb3e1"
1257
1273
  },
1258
1274
  {
1259
1275
  "path": "dist/plugin.js.map",
1260
- "sha256": "6516f8677ea45d93930678d2b2e54a24ce9636af4d2a9d338cd827c695dfeeb4"
1276
+ "sha256": "f307fe953a90018bf442e4ca38ca90ef1128392e063504420f77ae660747ae71"
1261
1277
  },
1262
1278
  {
1263
1279
  "path": "dist/pretrain.d.ts",
@@ -1485,19 +1501,19 @@
1485
1501
  },
1486
1502
  {
1487
1503
  "path": "dist/recommend.d.ts",
1488
- "sha256": "5928ad03d6b6e9e4e0ae7c00d1e39719ceb120df579d095841cf912e7be09a6e"
1504
+ "sha256": "cc42dadd133b262d62c05c77c3a5446b99a30111ba88f3a8b69e078daf4bcbe8"
1489
1505
  },
1490
1506
  {
1491
1507
  "path": "dist/recommend.d.ts.map",
1492
- "sha256": "3d85400fd8ffdd5f46dade9ad777df13384a913f6bd0b027b17d143961f53a68"
1508
+ "sha256": "4d4a7934cc1fc61b84b18a6bfe13af5e1af5e59b02343b3b72c19baa81d3f95f"
1493
1509
  },
1494
1510
  {
1495
1511
  "path": "dist/recommend.js",
1496
- "sha256": "3f092cffcbb0f7ad3f5a5bc7c41337416a476687dce97a21b28f641b69c80112"
1512
+ "sha256": "5fe368f7e948d44e14043a81fe7c256d795996e849ecdab47d1e65754760805e"
1497
1513
  },
1498
1514
  {
1499
1515
  "path": "dist/recommend.js.map",
1500
- "sha256": "b83fd56e77d9c4f0af08d640e64f8fcfb53d545cb44cb82fc7c45db9deb135a3"
1516
+ "sha256": "8c0580c1ce0c789e6f892890e89b4d74b762a3ae5662870b4c7cb4f9acc20508"
1501
1517
  },
1502
1518
  {
1503
1519
  "path": "dist/reconcile.d.ts",
@@ -1517,19 +1533,19 @@
1517
1533
  },
1518
1534
  {
1519
1535
  "path": "dist/registry.d.ts",
1520
- "sha256": "3b220197eb07ad9278ffc9f91755b7a9cb1965c13313f6a4d93152a0a5d2fbf3"
1536
+ "sha256": "0f06b499f6a9967caecd3cc3b7ff36df95d57b1a94a38c4495e9d210aae06b5c"
1521
1537
  },
1522
1538
  {
1523
1539
  "path": "dist/registry.d.ts.map",
1524
- "sha256": "5544fd42d5bd8ddb167628c18e306168f86ca922c886fb9853ca0d80054980f4"
1540
+ "sha256": "d85bc6803c9cbf15f4ddfdc26d99226c94fcabf3ecec69b171fc01c20f68c334"
1525
1541
  },
1526
1542
  {
1527
1543
  "path": "dist/registry.js",
1528
- "sha256": "3e49beac79cb842733304ef5446396cdab20381d6162f710d84d634da46a3e3e"
1544
+ "sha256": "e6a3dde9f468844f0e4dfbaa2c416779e0b79e9cdc48eaa1d73bf2a64066328b"
1529
1545
  },
1530
1546
  {
1531
1547
  "path": "dist/registry.js.map",
1532
- "sha256": "cd9592056c32f7fb1943f76a0de4d5110d1eb7d58a740e6f815a3c5e4f9ccc8d"
1548
+ "sha256": "df1c370632a3dd6916b7f96446233037fa08aa4f50331e026a02bd2a127704eb"
1533
1549
  },
1534
1550
  {
1535
1551
  "path": "dist/release.d.ts",
@@ -1629,19 +1645,19 @@
1629
1645
  },
1630
1646
  {
1631
1647
  "path": "dist/run-records.d.ts",
1632
- "sha256": "f53f7fba2d81cb1b71127781ca879fb0f8dd4e91f9a21c0230b68c20c4aa6df0"
1648
+ "sha256": "b52abf7998b3f525b57ac3351df6d9a50786d3c050da141a00b99f2d463538b7"
1633
1649
  },
1634
1650
  {
1635
1651
  "path": "dist/run-records.d.ts.map",
1636
- "sha256": "8852e53c19bd0953f3d65f5c8a0ede79438f93f82d7fefbc86687a89729d37ef"
1652
+ "sha256": "4eeb776150c97ff68549c4a4f9c4d400e7171d2f0904054e82e83bb2d1e10072"
1637
1653
  },
1638
1654
  {
1639
1655
  "path": "dist/run-records.js",
1640
- "sha256": "39b3d6c3fd37e238bf31d8fbebf37dd3d6d3cc943bb1412f8c3dfc900e6a0854"
1656
+ "sha256": "02f64f1fc1e2dde8781fb52f8852b76ab1c673cd0787c6371114b2f123800a62"
1641
1657
  },
1642
1658
  {
1643
1659
  "path": "dist/run-records.js.map",
1644
- "sha256": "fab23c9af95a91083fde29a57a106679fa0199a6e974c02c78941eae29d27e3b"
1660
+ "sha256": "e262c1126c023ba2068834ce2a208b139633557e6005a79b5b0b192c91a5f445"
1645
1661
  },
1646
1662
  {
1647
1663
  "path": "dist/safla-delta.d.ts",
@@ -1677,19 +1693,19 @@
1677
1693
  },
1678
1694
  {
1679
1695
  "path": "dist/score.d.ts",
1680
- "sha256": "0558d5a3ea988184f08459a3ed0c6e138541b86cb78cbca378a6ceef797f3c1f"
1696
+ "sha256": "6232e1e18ec9d19dd526eb81aaf0f9cb996de0a5d9b9b295ea4f7c97034166e9"
1681
1697
  },
1682
1698
  {
1683
1699
  "path": "dist/score.d.ts.map",
1684
- "sha256": "4775208c01c974b495c6001974902447bf3375ed675e4822dc8c1d5022b2e665"
1700
+ "sha256": "617ff8be6f46dfceee9986899155c84968c8f18798688256ca77aa9b2b9e4a41"
1685
1701
  },
1686
1702
  {
1687
1703
  "path": "dist/score.js",
1688
- "sha256": "ce87f3d528feaeb2f5c9d1c0287065078b388fd2b061a3412a49a836938ca7a8"
1704
+ "sha256": "49055c43da84383f98653ca94809370dd03022a2c788f8d72cb805247e4c1ff1"
1689
1705
  },
1690
1706
  {
1691
1707
  "path": "dist/score.js.map",
1692
- "sha256": "7bcbb79b446908423948e131d1abfc3b01f6caf1ddcadeeffe083614bf119bbf"
1708
+ "sha256": "ffe197bd07fad94b7cf33aed7a71d6a232c1b4d498e0c34aa368df2cec43c3f6"
1693
1709
  },
1694
1710
  {
1695
1711
  "path": "dist/session-retro.d.ts",
@@ -1803,6 +1819,22 @@
1803
1819
  "path": "dist/skill-schema.js.map",
1804
1820
  "sha256": "e0320a726789780a72d64ca6d81f260ca46878c26fe6d3d98135d6afc54eba1d"
1805
1821
  },
1822
+ {
1823
+ "path": "dist/skill-selection.d.ts",
1824
+ "sha256": "34f7e53a2431c5ceba656c7b32e11356712bfca5753582ecce497fac2b497187"
1825
+ },
1826
+ {
1827
+ "path": "dist/skill-selection.d.ts.map",
1828
+ "sha256": "a95079eb7806135035b841178da3f62dfff1cdd1e85d81028854bdea87f31fe9"
1829
+ },
1830
+ {
1831
+ "path": "dist/skill-selection.js",
1832
+ "sha256": "908ea2b3eb6afcd3fa3abf89470792fbd6911172fedbb98bf36fb3a9e7407848"
1833
+ },
1834
+ {
1835
+ "path": "dist/skill-selection.js.map",
1836
+ "sha256": "18d50112de1c23c5bb37eafbf2a07e627521db0ccdd6c4efce36e3277827be27"
1837
+ },
1806
1838
  {
1807
1839
  "path": "dist/skills-verify.d.ts",
1808
1840
  "sha256": "e83c3cbd2e2ed5a861bf916ab8bf88f6984dfdc785a0168550ea47bb36484d6a"
@@ -1867,6 +1899,22 @@
1867
1899
  "path": "dist/statusline.js.map",
1868
1900
  "sha256": "124317a63f64b9dc21f248fb275553bbee7bed62f8df8840fe969995ab73191b"
1869
1901
  },
1902
+ {
1903
+ "path": "dist/stem.d.ts",
1904
+ "sha256": "37451f43d0841b5499de285163476068732a1e225326c1ccb83c93d688bf972c"
1905
+ },
1906
+ {
1907
+ "path": "dist/stem.d.ts.map",
1908
+ "sha256": "3a1cd2382379beba1e20213d463a234290cf4f40802913423d2a3d0758fddfa5"
1909
+ },
1910
+ {
1911
+ "path": "dist/stem.js",
1912
+ "sha256": "2a8b1fd6eededc6d75e48c237a3117e8f15acdc26f1034af53df01837b0bef46"
1913
+ },
1914
+ {
1915
+ "path": "dist/stem.js.map",
1916
+ "sha256": "fabce74243ceb2296ea9fc4c9b14b61e44654f2371f68aca0362afae0b6f0498"
1917
+ },
1870
1918
  {
1871
1919
  "path": "dist/store-location.d.ts",
1872
1920
  "sha256": "183a6402cd7138a843c4511c1a7602a51c5b3b549d3e710d3a194a8dbebe439d"
@@ -1981,19 +2029,19 @@
1981
2029
  },
1982
2030
  {
1983
2031
  "path": "dist/telemetry-vocabulary.d.ts",
1984
- "sha256": "034f40510ecaa9ae9d867f482c87dbf3a1f771bc9b7ec67ff181fa4f9acf6499"
2032
+ "sha256": "d2dff1220cd1020d677be2a1e3be3d70bf1fcc9df253514cfefc6fd169363177"
1985
2033
  },
1986
2034
  {
1987
2035
  "path": "dist/telemetry-vocabulary.d.ts.map",
1988
- "sha256": "9431269b10db42cba8796139d104a61182b08f080c7497b84542e7649c9947b5"
2036
+ "sha256": "6b9719547e5088c9990260b685a4ecfab14b89fa6cd45a2e1ccc6134ab8e4832"
1989
2037
  },
1990
2038
  {
1991
2039
  "path": "dist/telemetry-vocabulary.js",
1992
- "sha256": "9cedc164e6d9b68583912a738c70b712763241c6b2d91a9e904505ebd31118e1"
2040
+ "sha256": "f48903f80ffa51fe3c5a9c1046ca6420f237aa345886477e694838f13a9bb877"
1993
2041
  },
1994
2042
  {
1995
2043
  "path": "dist/telemetry-vocabulary.js.map",
1996
- "sha256": "a35a1fc29fc679ed9f27e43482a041a9d32f61289924f6e7599765043be8ec45"
2044
+ "sha256": "a2b6e3564a4cb89aaa209aaac520244040edf89ae5b432bd2c0555b92f89b454"
1997
2045
  },
1998
2046
  {
1999
2047
  "path": "dist/tg-post.d.ts",
@@ -2157,7 +2205,7 @@
2157
2205
  },
2158
2206
  {
2159
2207
  "path": "package.json",
2160
- "sha256": "29369a7720880ba5b0ed2934af324756dd97688231da11b9ddcec28ce9c65970"
2208
+ "sha256": "bc6664a6631daea787c91a54203668ce91c1bab8ef0de54b18dfa73315d1a580"
2161
2209
  },
2162
2210
  {
2163
2211
  "path": "src/__tests__/golden-baseline.test.ts",
@@ -2255,6 +2303,10 @@
2255
2303
  "path": "src/codex-hooks.ts",
2256
2304
  "sha256": "918e5e7fbae4806abbb0c9a8f87dd2b0758b7f1372e1c010bf9417620c1acd99"
2257
2305
  },
2306
+ {
2307
+ "path": "src/codex-invoke.ts",
2308
+ "sha256": "ae5688a2686675438eb7ac5b13d5a4870c82741cdf3a7105c892f52746ddceca"
2309
+ },
2258
2310
  {
2259
2311
  "path": "src/compounding.ts",
2260
2312
  "sha256": "25cf5ee4081c42773c3bbe4965860bc1ca7cca6ebbed3fff27ff3d2640859f9a"
@@ -2285,7 +2337,7 @@
2285
2337
  },
2286
2338
  {
2287
2339
  "path": "src/discrimination-gate.ts",
2288
- "sha256": "a2f605bff0a93e85eccf4552581297a08032d67a6111b6b9024d4496299b4c6b"
2340
+ "sha256": "4fd506c88f27c4279a6bb9b1091c18f44bc4e6a8feb9234436edf36307231d11"
2289
2341
  },
2290
2342
  {
2291
2343
  "path": "src/downloads.ts",
@@ -2305,7 +2357,7 @@
2305
2357
  },
2306
2358
  {
2307
2359
  "path": "src/event-chain.ts",
2308
- "sha256": "0c81b088e76780fef7dd902c0cd01dd51b4bf192d7fb5241eaf0ecf35dccfbdd"
2360
+ "sha256": "26cdff101a6a0ade14954598ec77942df078668ee3ee05c4a6a37f362f516b03"
2309
2361
  },
2310
2362
  {
2311
2363
  "path": "src/export-holdout.ts",
@@ -2345,7 +2397,7 @@
2345
2397
  },
2346
2398
  {
2347
2399
  "path": "src/guard.ts",
2348
- "sha256": "7775d0493ddf333e43664e4b746500061eab5acdf74c2631b5ea70afbd404bed"
2400
+ "sha256": "56e07c75f48bd455559eae1fd088b27bdae20d858c9d2d55b9ced6c17d750f4b"
2349
2401
  },
2350
2402
  {
2351
2403
  "path": "src/import-ecc.ts",
@@ -2353,7 +2405,7 @@
2353
2405
  },
2354
2406
  {
2355
2407
  "path": "src/index.ts",
2356
- "sha256": "dd028e5c37a3fe5dc34e5d0a969aae9944c5d57b420dfab46e8a03028ff46d6b"
2408
+ "sha256": "d57d8676d37ba7c1b9fc83b4065724d8b3862af8bcfcbd4e3e958b7f2abae197"
2357
2409
  },
2358
2410
  {
2359
2411
  "path": "src/integration-apply.ts",
@@ -2437,7 +2489,7 @@
2437
2489
  },
2438
2490
  {
2439
2491
  "path": "src/mutation-gate.ts",
2440
- "sha256": "515b06be48c86477150579fd3437f61e4aa06f97c91123a6bdb3c6c502ef9397"
2492
+ "sha256": "47e29e30aebe03d72abb3cedc248f66b895851ca16ddbff9e6f9b10a92a3c59b"
2441
2493
  },
2442
2494
  {
2443
2495
  "path": "src/name-check.ts",
@@ -2457,7 +2509,7 @@
2457
2509
  },
2458
2510
  {
2459
2511
  "path": "src/operations.ts",
2460
- "sha256": "0b7bc942d070899223f80126f93e35eab14918bda599ff3c74bf1e3e56614055"
2512
+ "sha256": "1ea322b72160981f224204852fc46b46cddb389aa87ecf64abd14af7f917e237"
2461
2513
  },
2462
2514
  {
2463
2515
  "path": "src/package-skill-layouts.ts",
@@ -2477,7 +2529,7 @@
2477
2529
  },
2478
2530
  {
2479
2531
  "path": "src/plugin.ts",
2480
- "sha256": "d250a80b8116b8770a15cb65713dc7a4a6cd015a1b9ee3fcc18301aabb45e761"
2532
+ "sha256": "d2bbea531d236d944fc26cb13765ad3d034528218f4ee9202e45d828a4532cca"
2481
2533
  },
2482
2534
  {
2483
2535
  "path": "src/pretrain.ts",
@@ -2537,7 +2589,7 @@
2537
2589
  },
2538
2590
  {
2539
2591
  "path": "src/recommend.ts",
2540
- "sha256": "b0c2a7ce89bc8aee60d974fe0d27c9d1787b6da0de6c473b832e9960864983b7"
2592
+ "sha256": "95307269b33ba16503eaa1892828c5dc7a127b32f2f9390ac25af047a0b12bc9"
2541
2593
  },
2542
2594
  {
2543
2595
  "path": "src/reconcile.ts",
@@ -2545,7 +2597,7 @@
2545
2597
  },
2546
2598
  {
2547
2599
  "path": "src/registry.ts",
2548
- "sha256": "48e1de153df99b6a4944dbad652d1e34b4bffb4b211184d74826903b11112f83"
2600
+ "sha256": "a267e37498c1bf8ea9fb18630f2a1ba62e8fc5da5bc5ff862356891720e20ece"
2549
2601
  },
2550
2602
  {
2551
2603
  "path": "src/release.ts",
@@ -2569,7 +2621,7 @@
2569
2621
  },
2570
2622
  {
2571
2623
  "path": "src/run-records.ts",
2572
- "sha256": "95709428def7a4ad1f34026bfb93b2def09ed38efbba8c8556ee8feb4220e40f"
2624
+ "sha256": "e978fed335dc383f153ff38b66f941eff0c87e318beb01861f6a1dfe0b49515b"
2573
2625
  },
2574
2626
  {
2575
2627
  "path": "src/safla-delta.ts",
@@ -2577,7 +2629,7 @@
2577
2629
  },
2578
2630
  {
2579
2631
  "path": "src/score.ts",
2580
- "sha256": "31c96e4bae47eedea0ef30b4a79997ef05e950dc8c61a3fd9b4c41070bb72ada"
2632
+ "sha256": "2ccb7822853a273f924cfa9808a4232c3280c21acca035b4bafca2f5f67952d2"
2581
2633
  },
2582
2634
  {
2583
2635
  "path": "src/security/boundaries.json",
@@ -2611,6 +2663,10 @@
2611
2663
  "path": "src/skill-schema.ts",
2612
2664
  "sha256": "31dd8fc0cdd17f4269a2eadbfc8126293382ce98ffea8bf9c6b1295b1a5caaeb"
2613
2665
  },
2666
+ {
2667
+ "path": "src/skill-selection.ts",
2668
+ "sha256": "9fae6b49b868713fec00de4d45883ebf5620ad9d50b067c6567a308aefbb9d9d"
2669
+ },
2614
2670
  {
2615
2671
  "path": "src/skills-verify.ts",
2616
2672
  "sha256": "ca2f5d5f65be107e7c1740a5447b729f08ec297baf5383a3dbe473e2c3c588da"
@@ -2631,6 +2687,10 @@
2631
2687
  "path": "src/statusline.ts",
2632
2688
  "sha256": "31000d5b249345d659478d7eb49f10771015d9c180ab265ab1cb915ee180b092"
2633
2689
  },
2690
+ {
2691
+ "path": "src/stem.ts",
2692
+ "sha256": "7209ad9fe3d793974415d3d9bd506114de19463e067800a706ae43041e541ca0"
2693
+ },
2634
2694
  {
2635
2695
  "path": "src/store-location.ts",
2636
2696
  "sha256": "7853208f94d3e3127f59fe72f432f9939eaf0c955e0487093883acb1bdc3b1c8"
@@ -2661,7 +2721,7 @@
2661
2721
  },
2662
2722
  {
2663
2723
  "path": "src/telemetry-vocabulary.ts",
2664
- "sha256": "8d6c4da15bb76eca46bff58a0519e4fc0f0b835e5a2b20fa701425ae8d518f10"
2724
+ "sha256": "153c68b79d4e95ff46cd0708ea44ed18da0b77c722b4ae2688770abb265021e8"
2665
2725
  },
2666
2726
  {
2667
2727
  "path": "src/tg-post.ts",
@@ -2705,5 +2765,5 @@
2705
2765
  }
2706
2766
  ]
2707
2767
  },
2708
- "signature": "1+P9AkFOnWiuF182GE76WA40kgEVSTdZQYfvJiL4UD3GHJeLa4isFuqekLFXtDf56hInxVcMh9fJK0w/JK/pDg=="
2768
+ "signature": "qoP7f9v9r/J2Hd3Pd7i5a7RXmG1VPnjkBEox4UCh0vnZOGLKd1b9fM64Sji9LU7Qjd43laM2R2vjuHEtIhsmAg=="
2709
2769
  }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * The one supported way to invoke Codex from a Claude Code session.
3
+ *
4
+ * Three failure modes were measured on 2026-08-31, each violating knowledge we had already
5
+ * written down and could not enforce: the fire-and-forget wrapper returning a dispatch stub for a
6
+ * stage whose deliverable is its return value; a prompt passed as a shell ARGUMENT whose backticks
7
+ * the shell read as command substitution, leaving codex to read an empty stdin and hang for 26
8
+ * minutes; and an unscoped run spending its whole budget exploring the tree and returning no
9
+ * verdict at all.
10
+ *
11
+ * The cure is structural, not advisory: this module has no parameter that accepts a prompt STRING
12
+ * (so a shell can never mangle it), a timeout is always present, and the outcome set is CLOSED —
13
+ * either the model's text, or one of five named refusals. There is no third state, which is the
14
+ * property the tests pin.
15
+ */
16
+ /** Every way this can fail, enumerated. A refusal outside this set is a bug, not a new case. */
17
+ export type CodexRefusal = 'timeout' | 'no-output' | 'model-unavailable' | 'tool-error' | 'bad-usage';
18
+ export interface CodexOk {
19
+ readonly ok: true;
20
+ readonly text: string;
21
+ readonly model: string;
22
+ readonly elapsedMs: number;
23
+ }
24
+ export interface CodexRefused {
25
+ readonly ok: false;
26
+ readonly refusal: CodexRefusal;
27
+ /** Human-readable, names WHAT was observed — never a guess at the cause. */
28
+ readonly detail: string;
29
+ readonly model?: string;
30
+ readonly elapsedMs?: number;
31
+ }
32
+ export type CodexOutcome = CodexOk | CodexRefused;
33
+ export declare const CODEX_DEFAULT_TIMEOUT_MS = 600000;
34
+ export declare const CODEX_PROBE_TIMEOUT_MS = 90000;
35
+ /** Model ids this account has been seen to answer on. A name here is spellable, never available. */
36
+ export declare const CODEX_KNOWN_MODELS: readonly ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5"];
37
+ export interface CodexRunInput {
38
+ /** Absolute path to a file holding the prompt. There is deliberately no string variant. */
39
+ readonly promptFile: string;
40
+ readonly model: string;
41
+ readonly timeoutMs?: number;
42
+ /**
43
+ * Files the model may read. REQUIRED for review-shaped work: an unscoped run was measured at
44
+ * 280s / exit 124 / 416KB of exploration and no verdict, while the same question scoped to two
45
+ * named files answered in 41s. Empty means "no scope declared" and is allowed only for a
46
+ * self-contained question that needs no repository access.
47
+ */
48
+ readonly scope?: readonly string[];
49
+ readonly effort?: 'low' | 'medium' | 'high' | 'xhigh';
50
+ }
51
+ /** What a runner must provide. Kept tiny so tests can substitute it without spawning anything. */
52
+ export interface CodexRunner {
53
+ (argv: readonly string[], timeoutMs: number): {
54
+ readonly status: number | null;
55
+ readonly stdout: string;
56
+ readonly stderr: string;
57
+ readonly timedOut: boolean;
58
+ };
59
+ }
60
+ /** Build the argv. Exported so a test can assert the prompt never rides on the command line. */
61
+ export declare function codexArgv(input: CodexRunInput): string[];
62
+ /** Turn a raw runner result into the closed outcome set. */
63
+ export declare function classifyCodexResult(raw: {
64
+ status: number | null;
65
+ stdout: string;
66
+ stderr: string;
67
+ timedOut: boolean;
68
+ }, model: string, elapsedMs: number): CodexOutcome;
69
+ /** Compose the prompt file's content: the task, plus the scope fence when one is declared. */
70
+ export declare function codexPromptBody(task: string, scope?: readonly string[]): string;
71
+ /** True when the outcome may be consumed as an answer. Exists so callers cannot forget the check. */
72
+ export declare function codexAnswered(outcome: CodexOutcome): outcome is CodexOk;
73
+ //# sourceMappingURL=codex-invoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-invoke.d.ts","sourceRoot":"","sources":["../src/codex-invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gGAAgG;AAChG,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,WAAW,GACX,mBAAmB,GACnB,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,YAAY,CAAC;AAElD,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAChD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,oGAAoG;AACpG,eAAO,MAAM,kBAAkB,sEAAuE,CAAC;AAEvG,MAAM,WAAW,aAAa;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACvD;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG;QAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;KAC5B,CAAC;CACH;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAIxD;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CACjC,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EACjF,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,YAAY,CAgCd;AAED,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAY/E;AAED,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,IAAI,OAAO,CAEvE"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The one supported way to invoke Codex from a Claude Code session.
3
+ *
4
+ * Three failure modes were measured on 2026-08-31, each violating knowledge we had already
5
+ * written down and could not enforce: the fire-and-forget wrapper returning a dispatch stub for a
6
+ * stage whose deliverable is its return value; a prompt passed as a shell ARGUMENT whose backticks
7
+ * the shell read as command substitution, leaving codex to read an empty stdin and hang for 26
8
+ * minutes; and an unscoped run spending its whole budget exploring the tree and returning no
9
+ * verdict at all.
10
+ *
11
+ * The cure is structural, not advisory: this module has no parameter that accepts a prompt STRING
12
+ * (so a shell can never mangle it), a timeout is always present, and the outcome set is CLOSED —
13
+ * either the model's text, or one of five named refusals. There is no third state, which is the
14
+ * property the tests pin.
15
+ */
16
+ export const CODEX_DEFAULT_TIMEOUT_MS = 600_000;
17
+ export const CODEX_PROBE_TIMEOUT_MS = 90_000;
18
+ /** Model ids this account has been seen to answer on. A name here is spellable, never available. */
19
+ export const CODEX_KNOWN_MODELS = ['gpt-5.6-sol', 'gpt-5.6-terra', 'gpt-5.6-luna', 'gpt-5.5'];
20
+ /** Build the argv. Exported so a test can assert the prompt never rides on the command line. */
21
+ export function codexArgv(input) {
22
+ const argv = ['exec', '-m', input.model, '--skip-git-repo-check'];
23
+ if (input.effort !== undefined)
24
+ argv.push('-c', `model_reasoning_effort=${input.effort}`);
25
+ return argv;
26
+ }
27
+ /** Turn a raw runner result into the closed outcome set. */
28
+ export function classifyCodexResult(raw, model, elapsedMs) {
29
+ if (raw.timedOut) {
30
+ return {
31
+ ok: false,
32
+ refusal: 'timeout',
33
+ detail: `no answer within the deadline (${elapsedMs}ms); narrow the scope rather than raising the ceiling — an unscoped run spends the budget exploring`,
34
+ model,
35
+ elapsedMs,
36
+ };
37
+ }
38
+ if (raw.status !== 0) {
39
+ return {
40
+ ok: false,
41
+ refusal: 'tool-error',
42
+ detail: `codex exited ${raw.status === null ? 'by signal' : String(raw.status)}: ${raw.stderr.trim().slice(0, 300) || '(no stderr)'}`,
43
+ model,
44
+ elapsedMs,
45
+ };
46
+ }
47
+ const text = raw.stdout.trim();
48
+ if (text === '') {
49
+ // Silence is the failure this module exists to make impossible. A clean exit with nothing
50
+ // written is what a mangled prompt looks like from the outside, and it must never read as ok.
51
+ return {
52
+ ok: false,
53
+ refusal: 'no-output',
54
+ detail: 'codex exited 0 but wrote nothing — an empty answer is a refusal, never a clean result',
55
+ model,
56
+ elapsedMs,
57
+ };
58
+ }
59
+ return { ok: true, text, model, elapsedMs };
60
+ }
61
+ /** Compose the prompt file's content: the task, plus the scope fence when one is declared. */
62
+ export function codexPromptBody(task, scope) {
63
+ const trimmed = String(task ?? '').trim();
64
+ if (scope === undefined || scope.length === 0)
65
+ return trimmed;
66
+ const list = scope.map((p) => `- ${p}`).join('\n');
67
+ return [
68
+ trimmed,
69
+ '',
70
+ 'SCOPE — read ONLY these files and do not open others. This bound is what makes an answer',
71
+ 'possible at all: an unscoped run was measured spending its entire budget exploring the tree',
72
+ 'and returning no verdict.',
73
+ list,
74
+ ].join('\n');
75
+ }
76
+ /** True when the outcome may be consumed as an answer. Exists so callers cannot forget the check. */
77
+ export function codexAnswered(outcome) {
78
+ return outcome.ok === true;
79
+ }
80
+ //# sourceMappingURL=codex-invoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-invoke.js","sourceRoot":"","sources":["../src/codex-invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA4BH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C,oGAAoG;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,CAAU,CAAC;AA2BvG,gGAAgG;AAChG,MAAM,UAAU,SAAS,CAAC,KAAoB;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CACjC,GAAiF,EACjF,KAAa,EACb,SAAiB;IAEjB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,kCAAkC,SAAS,qGAAqG;YACxJ,KAAK;YACL,SAAS;SACV,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,gBAAgB,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,aAAa,EAAE;YACrI,KAAK;YACL,SAAS;SACV,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,0FAA0F;QAC1F,8FAA8F;QAC9F,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,uFAAuF;YAC/F,KAAK;YACL,SAAS;SACV,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAyB;IACrE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO;QACL,OAAO;QACP,EAAE;QACF,0FAA0F;QAC1F,6FAA6F;QAC7F,2BAA2B;QAC3B,IAAI;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,OAAO,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;AAC7B,CAAC"}