daftari 1.21.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +62 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +7 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/consolidate/admit.d.ts +15 -0
  6. package/dist/consolidate/admit.d.ts.map +1 -0
  7. package/dist/consolidate/admit.js +176 -0
  8. package/dist/consolidate/admit.js.map +1 -0
  9. package/dist/consolidate/birth.d.ts +79 -0
  10. package/dist/consolidate/birth.d.ts.map +1 -0
  11. package/dist/consolidate/birth.js +315 -0
  12. package/dist/consolidate/birth.js.map +1 -0
  13. package/dist/consolidate/clocks.d.ts +15 -0
  14. package/dist/consolidate/clocks.d.ts.map +1 -0
  15. package/dist/consolidate/clocks.js +127 -0
  16. package/dist/consolidate/clocks.js.map +1 -0
  17. package/dist/consolidate/constants.d.ts +26 -0
  18. package/dist/consolidate/constants.d.ts.map +1 -0
  19. package/dist/consolidate/constants.js +83 -0
  20. package/dist/consolidate/constants.js.map +1 -0
  21. package/dist/consolidate/decorrelation.d.ts +69 -0
  22. package/dist/consolidate/decorrelation.d.ts.map +1 -0
  23. package/dist/consolidate/decorrelation.js +287 -0
  24. package/dist/consolidate/decorrelation.js.map +1 -0
  25. package/dist/consolidate/derivation-prompt.d.ts +28 -0
  26. package/dist/consolidate/derivation-prompt.d.ts.map +1 -0
  27. package/dist/consolidate/derivation-prompt.js +72 -0
  28. package/dist/consolidate/derivation-prompt.js.map +1 -0
  29. package/dist/consolidate/edge-write.d.ts +9 -0
  30. package/dist/consolidate/edge-write.d.ts.map +1 -0
  31. package/dist/consolidate/edge-write.js +59 -0
  32. package/dist/consolidate/edge-write.js.map +1 -0
  33. package/dist/consolidate/envelope.d.ts +27 -0
  34. package/dist/consolidate/envelope.d.ts.map +1 -0
  35. package/dist/consolidate/envelope.js +90 -0
  36. package/dist/consolidate/envelope.js.map +1 -0
  37. package/dist/consolidate/index.d.ts +2 -0
  38. package/dist/consolidate/index.d.ts.map +1 -0
  39. package/dist/consolidate/index.js +531 -0
  40. package/dist/consolidate/index.js.map +1 -0
  41. package/dist/consolidate/priority.d.ts +25 -0
  42. package/dist/consolidate/priority.d.ts.map +1 -0
  43. package/dist/consolidate/priority.js +103 -0
  44. package/dist/consolidate/priority.js.map +1 -0
  45. package/dist/consolidate/revision.d.ts +81 -0
  46. package/dist/consolidate/revision.d.ts.map +1 -0
  47. package/dist/consolidate/revision.js +274 -0
  48. package/dist/consolidate/revision.js.map +1 -0
  49. package/dist/consolidate/state.d.ts +10 -0
  50. package/dist/consolidate/state.d.ts.map +1 -0
  51. package/dist/consolidate/state.js +54 -0
  52. package/dist/consolidate/state.js.map +1 -0
  53. package/dist/curation/edges.d.ts +5 -0
  54. package/dist/curation/edges.d.ts.map +1 -1
  55. package/dist/curation/edges.js +82 -9
  56. package/dist/curation/edges.js.map +1 -1
  57. package/dist/curation/shadow.d.ts +30 -0
  58. package/dist/curation/shadow.d.ts.map +1 -1
  59. package/dist/curation/shadow.js +84 -26
  60. package/dist/curation/shadow.js.map +1 -1
  61. package/dist/curation/staged-actions.d.ts +2 -0
  62. package/dist/curation/staged-actions.d.ts.map +1 -1
  63. package/dist/curation/staged-actions.js +8 -0
  64. package/dist/curation/staged-actions.js.map +1 -1
  65. package/dist/curation/tension.d.ts +1 -0
  66. package/dist/curation/tension.d.ts.map +1 -1
  67. package/dist/curation/tension.js +8 -0
  68. package/dist/curation/tension.js.map +1 -1
  69. package/dist/curation/vault-docs.d.ts +2 -1
  70. package/dist/curation/vault-docs.d.ts.map +1 -1
  71. package/dist/curation/vault-docs.js +1 -0
  72. package/dist/curation/vault-docs.js.map +1 -1
  73. package/dist/eval/llm.d.ts +3 -1
  74. package/dist/eval/llm.d.ts.map +1 -1
  75. package/dist/eval/llm.js +6 -2
  76. package/dist/eval/llm.js.map +1 -1
  77. package/dist/index.js +1 -1
  78. package/dist/storage/index-db.d.ts +2 -0
  79. package/dist/storage/index-db.d.ts.map +1 -1
  80. package/dist/storage/index-db.js +14 -9
  81. package/dist/storage/index-db.js.map +1 -1
  82. package/dist/tools/curation.d.ts.map +1 -1
  83. package/dist/tools/curation.js +16 -2
  84. package/dist/tools/curation.js.map +1 -1
  85. package/dist/tools/edges.d.ts.map +1 -1
  86. package/dist/tools/edges.js +1 -0
  87. package/dist/tools/edges.js.map +1 -1
  88. package/dist/tools/staged-actions.d.ts.map +1 -1
  89. package/dist/tools/staged-actions.js +2 -0
  90. package/dist/tools/staged-actions.js.map +1 -1
  91. package/dist/utils/git.d.ts +1 -0
  92. package/dist/utils/git.d.ts.map +1 -1
  93. package/dist/utils/git.js +19 -0
  94. package/dist/utils/git.js.map +1 -1
  95. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consolidate/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,0EAA0E;AAC1E,4CAA4C;AAC5C,0EAA0E;AAC1E,4EAA4E;AAC5E,yEAAyE;AACzE,kEAAkE;AAClE,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,2CAA2C;AAC3C,EAAE;AACF,uEAAuE;AACvE,gFAAgF;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAwB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAkB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EACL,gBAAgB,EAIhB,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAgB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,mBAAmB,EAInB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDZ,CAAC;AAEF,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,SAAS,IAAI,CAAC,IAAc,EAAE,IAAY;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,+EAA+E;AAC/E,2EAA2E;AAC3E,2EAA2E;AAC3E,0DAA0D;AAC1D,SAAS,KAAK,CAAC,CAAS;IACtB,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAGD,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,aAAa;IACb,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,UAAU,IAAI,CAAC,CAAC;QAC3F,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,IAAI,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,0BAA0B,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oEAAoE,OAAO,IAAI,CAChF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,GAAG,OAAe,CAAC;QAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,yBAAyB,CAAC;QAE/D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC;YACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;SACxB,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgD,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAElD,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;YAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAExF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,UAAU,GAAc,EAAE,CAAC;QAC/B,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,EAAE;gBAAE,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;iBAClE,CAAC;gBACJ,wEAAwE;gBACxE,wEAAwE;gBACxE,wEAAwE;gBACxE,sEAAsE;gBACtE,uEAAuE;gBACvE,aAAa,GAAG,IAAI,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,KAAK,CAAC,uBAAuB,0BAA0B;oBACpF,oEAAoE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAE/C,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;QACxF,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,UAAU,CAAC;YACrD,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC;YACvC,KAAK;YACL,MAAM;YACN,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAE3D,6EAA6E;QAE7E,IAAI,MAAM,GAAG,iBAAiB,SAAS,IAAI,CAAC;QAC5C,MAAM,IAAI,YAAY,KAAK,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,cAAc,MAAM,YAAY,IAAI,IAAI,CAAC;QAClG,MAAM,IAAI,qBAAqB,SAAS,CAAC,MAAM,MAAM,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC;QAChG,CAAC;QACD,MAAM,IAAI,kBAAkB,UAAU,CAAC,MAAM,MAAM,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,iCAAiC,wBAAwB,IAAI,CAAC;QAExE,4EAA4E;QAE5E,MAAM,MAAM,GAAiB,WAAW,EAAE,CAAC;QAC3C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC5D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,0EAA0E;YAC1E,8DAA8D;YAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yEAAyE,CAC1E,CAAC;gBACF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,GAAc,CAAC;YACnB,IAAI,CAAC;gBACH,GAAG,GAAG,qBAAqB,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrF,OAAO,CAAC,CAAC;YACX,CAAC;YAED,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,SAAS;gBACT,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU;aACjC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,SAAS;gBACT,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU;aACjC,CAAC,CAAC;YACH,gEAAgE;YAChE,oEAAoE;YACpE,sEAAsE;YACtE,qEAAqE;YACrE,EAAE;YACF,sEAAsE;YACtE,mEAAmE;YACnE,0EAA0E;YAC1E,yEAAyE;YACzE,2EAA2E;YAC3E,wEAAwE;YACxE,qDAAqD;YACrD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;gBAC/B,SAAS;gBACT,SAAS,EAAE,iBAAiB;gBAC5B,IAAI,EAAE,OAAO,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,QAAQ,CAAC,KAAK,CAAC,OAAO,wCAAwC,CACrG,CAAC;gBACF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YAEnC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,iBAAiB,CAAC;gBACxD,MAAM,SAAS,GAAG,UAAU;qBACzB,MAAM,CAAC,CAAC,CAAC,EAAqC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;qBACpE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9C,MAAM,YAAY,CAChB,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,EACP,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,cAAc,CACf,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,iBAAiB,CAAC;gBACxD,MAAM,QAAQ,GAAG,SAAS;qBACvB,MAAM,CAAC,CAAC,CAAC,EAAoC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qBAClE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,eAAe,CACnB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,CACP,CAAC;YACJ,CAAC;YAED,6EAA6E;YAC7E,8EAA8E;YAC9E,8DAA8D;YAC9D,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAE/D,MAAM,IAAI,kBAAkB,IAAI,MAAM,CAAC;YACvC,MAAM,IAAI,yBAAyB,MAAM,CAAC,eAAe,IAAI,CAAC;YAC9D,MAAM,IAAI,oBAAoB,MAAM,CAAC,UAAU,kBAAkB,MAAM,CAAC,SAAS,IAAI,CAAC;YACtF,MAAM,IAAI,iBAAiB,MAAM,CAAC,aAAa,iBAAiB,MAAM,CAAC,cAAc,aAAa,MAAM,CAAC,KAAK,IAAI,CAAC;YACnH,MAAM,IAAI,kBAAkB,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,WAAW,CAAC;YAC9G,MAAM,IAAI,qBAAqB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,IACjH,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6CAC9B,IAAI,CAAC;YACL,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,6BAA6B,MAAM,CAAC,kBAAkB,6CAA6C,CAAC;YAChH,CAAC;YACD,IAAI,MAAM,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,+BAA+B,MAAM,CAAC,oBAAoB,4BAA4B,CAAC;YACnG,CAAC;YACD,4EAA4E;YAC5E,2EAA2E;YAC3E,6EAA6E;YAC7E,kCAAkC;YAClC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,IAAI,sGAAsG,CAAC;YACnH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,2HAA2H,CAAC;YACxI,CAAC;QACH,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7B,4EAA4E;QAE5E,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,sDAAsD;QACtD,IAAI,SAAS,GAAkB,KAAK,CAAC,uBAAuB,CAAC;QAC7D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE;YAC7C,GAAG,KAAK;YACR,uBAAuB,EAAE,SAAS;YAClC,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAE7E,6EAA6E;QAC7E,8EAA8E;QAC9E,yEAAyE;QACzE,4EAA4E;QAC5E,iCAAiC;QACjC,EAAE;QACF,qEAAqE;QACrE,uEAAuE;QACvE,2EAA2E;QAC3E,6EAA6E;QAC7E,UAAU;QACV,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,wBAAwB,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,GAAuB;IAC/C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,wCAAwC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC/F,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtB,CAAC;AAoBD,SAAS,WAAW;IAClB,OAAO;QACL,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,kBAAkB,EAAE,CAAC;QACrB,oBAAoB,EAAE,CAAC;QACvB,UAAU,EAAE,KAAK;KAClB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,UAAkD,EAClD,SAA4D,EAC5D,KAAyB,EACzB,OAA6B,EAC7B,GAAc,EACd,SAAiB,EACjB,KAAa,EACb,MAAoB,EACpB,cAAsC;IAEtC,MAAM,eAAe,GAAiC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QACzE,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,wEAAwE;IACxE,MAAM,mBAAmB,GAAqC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3E,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC;IACF,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,aAAa,GAA+B,KAAK,EAAE,KAAK,EAAE,EAAE;QAChE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,uDAAuD;QAC/E,CAAC;QACD,OAAO,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAkC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAElG,MAAM,IAAI,GAAc;QACtB,SAAS;QACT,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,MAAM,CAAC,iBAAiB;QACzC,KAAK;KACN,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,SAAS,CAAC,8DAA8D;QAClF,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,GAAG,EACH;YACE,GAAG;YACH,eAAe;YACf,mBAAmB;YACnB,KAAK;YACL,OAAO;YACP,aAAa;YACb,gBAAgB;SACjB,EACD,IAAI,CACL,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACzF,SAAS;QACX,CAAC;QACD,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,wEAAwE;QACxE,8EAA8E;QAC9E,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY;YAAE,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAoB,EAAE,GAAiB;IAC9D,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;IAChD,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC;IAC/B,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC;IACtC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,SAAoE,EACpE,SAAuC,EACvC,SAA4D,EAC5D,KAA4B,EAC5B,OAAgC,EAChC,OAAgC,EAChC,GAAc,EACd,SAAiB,EACjB,KAAa,EACb,MAAoB;IAEpB,MAAM,OAAO,GAA4B,KAAK,EAAE,IAAI,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAwC,CAAC,GAAG,EAAE,EAAE,CACvE,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAiB;QACzB,SAAS;QACT,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,sBAAsB;QACjC,eAAe,EAAE,MAAM,CAAC,iBAAiB;QACzC,KAAK;KACN,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,2EAA2E;QAC3E,0EAA0E;QAC1E,6EAA6E;QAC7E,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW;YAAE,SAAS;QACpD,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,IAAI,EACJ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAC9D,IAAI,CACL,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CACrF,CAAC;YACF,SAAS;QACX,CAAC;QACD,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB,EAAE,GAAoB;IACpE,MAAM,CAAC,UAAU,EAAE,CAAC;IACpB,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;IACrC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC;IAC1C,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC;IAC5C,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7C,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC;IACtC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC;AACrD,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,yBAAyB,CAAC,IAAc;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC3F,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6EAA6E,CAC9E,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,GAAc,CAAC;IACnB,IAAI,CAAC;QACH,GAAG,GAAG,qBAAqB,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,yBAAyB,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,UAAU,CAAC,KAAK,EAChB,EAAE,GAAG,EAAE,EACP,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,CACtC,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,0EAA0E;IAC1E,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { DueEdge } from "./clocks.js";
2
+ export type Slice = "backstop" | "main" | "periphery" | "birth";
3
+ export type QueueItem = {
4
+ kind: "edge";
5
+ fromPath: string;
6
+ toPath: string;
7
+ reason: DueEdge["reason"];
8
+ slice: Slice;
9
+ } | {
10
+ kind: "birth";
11
+ path: string;
12
+ slice: "birth";
13
+ };
14
+ export interface PrioritizeInput {
15
+ edgeDue: DueEdge[];
16
+ birth: string[];
17
+ budget: number;
18
+ ages: Record<string, number>;
19
+ }
20
+ export interface PrioritizeOutput {
21
+ queue: QueueItem[];
22
+ backstopOverdueRemaining: number;
23
+ }
24
+ export declare function prioritize(input: PrioritizeInput): PrioritizeOutput;
25
+ //# sourceMappingURL=priority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../src/consolidate/priority.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAChE,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC3F;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAkGnE"}
@@ -0,0 +1,103 @@
1
+ // Four-slice priority partition + drain-under-ceiling (spec §3.3). Pure.
2
+ //
3
+ // backstop — guaranteed (the max-interval cap made real); oldest first.
4
+ // main — event + decay, ranked fragility × blast (blast = 1 in Stage 1).
5
+ // periphery — reserved, blast-blind, pure staleness — the fairness floor.
6
+ // birth — reserved, FIFO over the unprocessed-doc queue.
7
+ //
8
+ // Periphery is taken BEFORE main so a flood of high-fragility main items can't
9
+ // swallow the fairness floor (spec §3.3 — the reserved slice is the *full* fix,
10
+ // not a mitigation). Backstop is served in full (it borrows, nothing borrows
11
+ // from it); backstopOverdueRemaining is nonzero only under total-budget
12
+ // starvation, which is exactly the §9 cron-alert condition.
13
+ import { EDGE_K_CAP } from "../curation/edges.js";
14
+ import { CONSOLIDATE_SLICE_FRACTIONS } from "./constants.js";
15
+ const REASON_RANK = { backstop: 3, event: 2, decay: 1 };
16
+ export function prioritize(input) {
17
+ const { birth, budget, ages } = input;
18
+ const ek = (d) => `${d.fromPath}\n${d.toPath}`;
19
+ // Dedup by the full edge (from,to) — the edge is the review unit (§4); two
20
+ // edges sharing a `from` (a←b and a←c) are distinct work. Keep the strongest
21
+ // reason (backstop > event > decay) when one edge is due for several.
22
+ const best = new Map();
23
+ for (const d of input.edgeDue) {
24
+ const k = ek(d);
25
+ const prev = best.get(k);
26
+ if (!prev || REASON_RANK[d.reason] > REASON_RANK[prev.reason])
27
+ best.set(k, d);
28
+ }
29
+ const all = [...best.values()];
30
+ const backstop = all.filter((d) => d.reason === "backstop");
31
+ const nonBackstop = all.filter((d) => d.reason !== "backstop");
32
+ // Slice budgets. A reserved slice with a nonzero fraction yields at least ONE
33
+ // slot whenever the budget is positive — otherwise the periphery fairness floor
34
+ // silently rounds to zero below budget 7 (floor(6·0.15)=0), breaking the §3.3
35
+ // guarantee that the periphery gets nonzero compute every session.
36
+ // NOTE: at budget 1–2 the four caps (each ≥1) sum to >budget, so a single
37
+ // backstop-overdue edge can still consume the whole budget and starve the
38
+ // reserved slices that session. That is acceptable — backstop IS the guarantee,
39
+ // and a per-session budget below the number of reserved slices is degenerate
40
+ // (real budgets are CONSOLIDATE_DEFAULT_BUDGET-scale). The fairness floor holds
41
+ // for any budget ≥ the reserved-slice count.
42
+ const slot = (f) => (budget * f > 0 ? Math.max(1, Math.floor(budget * f)) : 0);
43
+ const cap = {
44
+ backstop: slot(CONSOLIDATE_SLICE_FRACTIONS.backstop),
45
+ main: slot(CONSOLIDATE_SLICE_FRACTIONS.main),
46
+ periphery: slot(CONSOLIDATE_SLICE_FRACTIONS.periphery),
47
+ birth: slot(CONSOLIDATE_SLICE_FRACTIONS.birth),
48
+ };
49
+ // Clamp ages at 0: a future-dated lastRederived (clock skew) yields a negative
50
+ // age that would otherwise invert the staleness ranking.
51
+ const ageOf = (p) => Math.max(0, ages[p] ?? 0);
52
+ const staleDesc = (a, b) => ageOf(b.fromPath) - ageOf(a.fromPath);
53
+ const fragility = (strength) => 1 - Math.min(strength, EDGE_K_CAP) / EDGE_K_CAP;
54
+ // Reserved demand for the protected slices: each reserves only what it will use,
55
+ // so unused reservation flows to main (§3.3.4 "yields its budget to the others").
56
+ const peripherySorted = [...nonBackstop].sort(staleDesc);
57
+ const reservedPeri = Math.min(cap.periphery, peripherySorted.length);
58
+ const reservedBirth = Math.min(cap.birth, birth.length);
59
+ // Allocation (the §3.3 invariants made explicit):
60
+ // - Backstop BASE (its cap) is the guarantee — served first, oldest first.
61
+ // - Backstop OVERFLOW (beyond cap) may eat only MAIN's budget (§3.3.1 "force
62
+ // capacity from the decay slice, never periphery"); it cannot touch the
63
+ // periphery or birth reserves.
64
+ // - Backstop demand that even main's budget can't absorb is left UNSERVED and
65
+ // surfaced as backstopOverdueRemaining → the §9 exit-4 cron alert. Backstop
66
+ // yields to the reserved fairness/cold-start floors, but loudly, never
67
+ // silently.
68
+ const bkSorted = [...backstop].sort(staleDesc);
69
+ let remaining = budget;
70
+ const bkBase = Math.min(cap.backstop, bkSorted.length, remaining);
71
+ const bkOverflowRoom = Math.max(0, remaining - bkBase - reservedPeri - reservedBirth);
72
+ const bkOverflow = Math.min(bkSorted.length - bkBase, bkOverflowRoom);
73
+ const backstopServe = bkBase + bkOverflow;
74
+ remaining -= backstopServe;
75
+ const backstopOverdueRemaining = bkSorted.length - backstopServe;
76
+ const servePeri = Math.min(reservedPeri, remaining);
77
+ remaining -= servePeri;
78
+ // Main gets the elastic remainder, but must leave room for the birth reserve.
79
+ const mainSorted = peripherySorted
80
+ .slice(servePeri) // periphery skimmed the stalest `servePeri`; main gets the rest
81
+ .sort((a, b) => REASON_RANK[b.reason] - REASON_RANK[a.reason] ||
82
+ fragility(b.strength) - fragility(a.strength));
83
+ const serveMain = Math.min(mainSorted.length, Math.max(0, remaining - reservedBirth));
84
+ remaining -= serveMain;
85
+ const serveBirth = Math.min(birth.length, remaining);
86
+ const edgeItem = (d, slice) => ({
87
+ kind: "edge",
88
+ fromPath: d.fromPath,
89
+ toPath: d.toPath,
90
+ reason: d.reason,
91
+ slice,
92
+ });
93
+ const queue = [
94
+ ...bkSorted.slice(0, backstopServe).map((d) => edgeItem(d, "backstop")),
95
+ ...peripherySorted.slice(0, servePeri).map((d) => edgeItem(d, "periphery")),
96
+ ...mainSorted.slice(0, serveMain).map((d) => edgeItem(d, "main")),
97
+ ...birth
98
+ .slice(0, serveBirth)
99
+ .map((path) => ({ kind: "birth", path, slice: "birth" })),
100
+ ];
101
+ return { queue, backstopOverdueRemaining };
102
+ }
103
+ //# sourceMappingURL=priority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.js","sourceRoot":"","sources":["../../src/consolidate/priority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { type ContestEdgeInput, type DerivesFromEdge, type ObserveEdgeInput } from "../curation/edges.js";
2
+ import type { LlmClient } from "../eval/llm.js";
3
+ import { type Result } from "../frontmatter/types.js";
4
+ import { type ConsolidatePromptTemplate } from "./constants.js";
5
+ import type { Admit } from "./envelope.js";
6
+ export interface RevisionDeps {
7
+ llm: LlmClient;
8
+ loadDoc: (path: string) => Promise<Result<{
9
+ path: string;
10
+ content: string;
11
+ }, Error>>;
12
+ admit: Admit;
13
+ observe: (input: ObserveEdgeInput) => Promise<Result<DerivesFromEdge, Error>>;
14
+ contest: (input: ContestEdgeInput) => Promise<Result<DerivesFromEdge, Error>>;
15
+ recordRevisionTrace: (row: RevisionTraceRow) => Promise<Result<void, Error>>;
16
+ }
17
+ export interface RevisionOpts {
18
+ vaultRoot: string;
19
+ agent: string;
20
+ panelSize: number;
21
+ budgetRemaining: number;
22
+ model: string;
23
+ }
24
+ export interface RevisionVote {
25
+ axis: ConsolidatePromptTemplate;
26
+ verdict: "survives" | "fails";
27
+ reason: string;
28
+ }
29
+ export interface RevisionVoteError {
30
+ axis: ConsolidatePromptTemplate;
31
+ error: string;
32
+ }
33
+ export type RevisionDecision = "survives" | "fails" | "tie" | "no-vote" | "gated";
34
+ export interface RevisionTraceRow {
35
+ at: string;
36
+ fromPath: string;
37
+ toPath: string;
38
+ edgeStrengthAtStart: number;
39
+ kSurvivedAtStart: number;
40
+ lastRederivedAtStart: string;
41
+ model: string;
42
+ votes: Array<RevisionVote | RevisionVoteError>;
43
+ decision: RevisionDecision;
44
+ observedCount: number;
45
+ contestedCount: number;
46
+ gate?: "invariants" | "budget" | null;
47
+ gateReason?: string;
48
+ }
49
+ export interface RevisionOutcome {
50
+ fromPath: string;
51
+ toPath: string;
52
+ votes: Array<RevisionVote | RevisionVoteError>;
53
+ decision: RevisionDecision;
54
+ observedCount: number;
55
+ contestedCount: number;
56
+ gate?: "invariants" | "budget" | null;
57
+ gateReason?: string;
58
+ writeErrors: Array<{
59
+ axis: ConsolidatePromptTemplate;
60
+ error: string;
61
+ }>;
62
+ llmCalls: number;
63
+ inputTokens: number;
64
+ outputTokens: number;
65
+ traceWritten: boolean;
66
+ traceError?: string;
67
+ }
68
+ export declare function parseRevisionVerdict(raw: unknown): Result<{
69
+ verdict: "survives" | "fails";
70
+ reason: string;
71
+ }, Error>;
72
+ export declare function revisionPanel(edge: {
73
+ fromPath: string;
74
+ toPath: string;
75
+ strength: number;
76
+ kSurvived: number;
77
+ lastRederived: string;
78
+ }, deps: RevisionDeps, opts: RevisionOpts): Promise<Result<RevisionOutcome, Error>>;
79
+ export declare function revisionTracePath(vaultRoot: string): string;
80
+ export declare function appendRevisionTrace(vaultRoot: string, row: RevisionTraceRow): Promise<Result<void, Error>>;
81
+ //# sourceMappingURL=revision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision.d.ts","sourceRoot":"","sources":["../../src/consolidate/revision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ // Revision mode (spec §4.1, brief item 2). Cast a panel of M independent votes
2
+ // on a due edge — each vote uses a distinct prompt template so §11.3's replay
3
+ // guard counts them all as independent in one sitting. Each vote either
4
+ // survives (→ edge_observe, strength accrues) or fails-case-2 (→ edge_contest,
5
+ // revoke + tension). The §11.3 replay guard handles "same (observer, axis)
6
+ // pair within EDGE_REPLAY_GAP_DAYS"; this code uses distinct axes within the
7
+ // panel so the gap never trips.
8
+ //
9
+ // Case-1 vs case-2 simplification (v1): the LLM is asked to produce
10
+ // survives | fails — we treat every "fails" as case-2 (contest). The spec
11
+ // distinguishes case-1 (an endpoint *changed*, so failure isn't a fault of the
12
+ // derivation) but C's event clock already marks such edges due via git-diff;
13
+ // running the panel on them is the same retry path. If shadow data shows we're
14
+ // contesting edges whose endpoints had recent commits, add a case-1 detector
15
+ // (`git log --since=<lastRederived>` on each endpoint) and skip the contest.
16
+ // Tracked for Stage 5 calibration.
17
+ import { appendFileSync, mkdirSync } from "node:fs";
18
+ import { join, posix } from "node:path";
19
+ import { EDGE_AXES, } from "../curation/edges.js";
20
+ import { err, ok } from "../frontmatter/types.js";
21
+ import { CONSOLIDATE_PROMPT_TEMPLATES } from "./constants.js";
22
+ // --- canon -------------------------------------------------------------------
23
+ function canon(p) {
24
+ return posix.normalize(p).replace(/^\.\//, "");
25
+ }
26
+ // Defensive wrapper around the injected admit (same rationale as birth.ts): the
27
+ // live makeAdmit does I/O and can throw; a thrown admit must NOT crash the panel
28
+ // (losing the votes + trace). Fail closed — a throw is a refusal on invariants.
29
+ async function safeAdmit(admit, action) {
30
+ try {
31
+ return await admit(action);
32
+ }
33
+ catch (e) {
34
+ return {
35
+ admit: false,
36
+ gate: "invariants",
37
+ reason: `admit threw: ${e instanceof Error ? e.message : String(e)}`,
38
+ impact: 0,
39
+ };
40
+ }
41
+ }
42
+ // --- verdict parsing ---------------------------------------------------------
43
+ const VALID_REVISION_VERDICTS = new Set(["survives", "fails"]);
44
+ export function parseRevisionVerdict(raw) {
45
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
46
+ return err(new Error("revision verdict: expected object"));
47
+ }
48
+ const obj = raw;
49
+ const v = obj.verdict;
50
+ const r = obj.reason;
51
+ if (typeof v !== "string" || !VALID_REVISION_VERDICTS.has(v)) {
52
+ return err(new Error(`revision verdict: expected 'survives' | 'fails', got ${JSON.stringify(v)}`));
53
+ }
54
+ if (typeof r !== "string" || r.trim().length === 0) {
55
+ return err(new Error("revision verdict: 'reason' is required"));
56
+ }
57
+ return ok({ verdict: v, reason: r });
58
+ }
59
+ // --- prompt construction -----------------------------------------------------
60
+ const VERDICT_SCHEMA = {
61
+ type: "object",
62
+ required: ["verdict", "reason"],
63
+ properties: {
64
+ verdict: { enum: ["survives", "fails"] },
65
+ reason: { type: "string", minLength: 1 },
66
+ },
67
+ };
68
+ const SYSTEM_BASE = "You re-evaluate whether one document's central claim still derives from another. " +
69
+ "You have re-derived this edge before — your job is to do it independently now, " +
70
+ "from the documents alone. Be conservative: only return 'survives' if the dependence is " +
71
+ "clear and load-bearing in the current text. Return 'fails' if the premise no longer " +
72
+ "supports the conclusion as previously claimed.";
73
+ const MAX_DOC_CHARS = 1500;
74
+ function truncate(s) {
75
+ return s.length <= MAX_DOC_CHARS ? s : `${s.slice(0, MAX_DOC_CHARS)}\n…[truncated]`;
76
+ }
77
+ // User body. The leading `[template:NAME]` marker is the post-hoc audit hook —
78
+ // it's how the trace + the decorrelation report (brief item 8) reconstruct
79
+ // which template each vote used without parsing prose. Tests rely on it too.
80
+ function userBody(axis, from, fromContent, to, toContent, edge) {
81
+ const tag = `[template:${axis}]`;
82
+ const meta = `Edge: ${from} derives_from ${to}. k_survived=${edge.kSurvived}, last_rederived=${edge.lastRederived}.`;
83
+ const fromBlock = `DOC FROM (${from}):\n${truncate(fromContent)}`;
84
+ const toBlock = `DOC TO (${to}):\n${truncate(toContent)}`;
85
+ switch (axis) {
86
+ case "forward":
87
+ return `${tag}\n${meta}\n\n${fromBlock}\n\n${toBlock}\n\nDoes DOC FROM still derive its central claim from DOC TO? Return JSON.`;
88
+ case "reverse":
89
+ return `${tag}\n${meta}\n\n${toBlock}\n\n${fromBlock}\n\nIs DOC FROM's central claim still load-bearing on DOC TO? Return JSON.`;
90
+ case "contrast":
91
+ return `${tag}\n${meta}\n\n${fromBlock}\n\n${toBlock}\n\nIf you had to defend or refute the edge "FROM derives_from TO" today, which would you do? Return JSON: 'survives' to defend, 'fails' to refute.`;
92
+ }
93
+ }
94
+ // --- panel -------------------------------------------------------------------
95
+ // Pick the first N distinct prompt templates so M votes get M distinct
96
+ // (observer, axis) pairs. Validated by the constants test: panelSize cannot
97
+ // exceed CONSOLIDATE_PROMPT_TEMPLATES.length. We still defend at runtime in
98
+ // case a caller passes a runaway value.
99
+ function axesForPanel(panelSize) {
100
+ const k = Math.max(1, Math.min(panelSize, CONSOLIDATE_PROMPT_TEMPLATES.length));
101
+ return CONSOLIDATE_PROMPT_TEMPLATES.slice(0, k);
102
+ }
103
+ export async function revisionPanel(edge, deps, opts) {
104
+ const fromPath = canon(edge.fromPath);
105
+ const toPath = canon(edge.toPath);
106
+ const fromRes = await deps.loadDoc(fromPath);
107
+ if (!fromRes.ok)
108
+ return fromRes;
109
+ const toRes = await deps.loadDoc(toPath);
110
+ if (!toRes.ok)
111
+ return toRes;
112
+ const axes = axesForPanel(opts.panelSize);
113
+ const votes = [];
114
+ const writeErrors = [];
115
+ let llmCalls = 0;
116
+ let inputTokens = 0;
117
+ let outputTokens = 0;
118
+ // --- Phase 1: ELICIT all M votes (no writes). Aggregation must see the whole
119
+ // panel before deciding — applying writes per-vote let a single dissent revoke
120
+ // a healthy edge and a later survive re-seed it (order-dependent churn). ---
121
+ const surviving = [];
122
+ let failsCount = 0;
123
+ let firstFailReason = "re-derivation failed";
124
+ for (const axis of axes) {
125
+ if (llmCalls >= opts.budgetRemaining)
126
+ break;
127
+ const r = await deps.llm.completeJson({
128
+ model: opts.model,
129
+ system: SYSTEM_BASE,
130
+ user: userBody(axis, fromPath, fromRes.value.content, toPath, toRes.value.content, edge),
131
+ schema: VERDICT_SCHEMA,
132
+ });
133
+ llmCalls++;
134
+ if (!r.ok) {
135
+ votes.push({ axis, error: r.error.message });
136
+ continue;
137
+ }
138
+ inputTokens += r.value.input_tokens;
139
+ outputTokens += r.value.output_tokens;
140
+ const parsed = parseRevisionVerdict(r.value.parsed);
141
+ if (!parsed.ok) {
142
+ votes.push({ axis, error: parsed.error.message });
143
+ continue;
144
+ }
145
+ votes.push({ axis, verdict: parsed.value.verdict, reason: parsed.value.reason });
146
+ if (parsed.value.verdict === "survives") {
147
+ surviving.push({ axis, reason: parsed.value.reason });
148
+ }
149
+ else {
150
+ if (failsCount === 0)
151
+ firstFailReason = parsed.value.reason;
152
+ failsCount++;
153
+ }
154
+ }
155
+ // --- Phase 2: AGGREGATE, then apply ONE decision (majority-decides). ---
156
+ const survivesCount = surviving.length;
157
+ let decision;
158
+ let observedCount = 0;
159
+ let contestedCount = 0;
160
+ let gate;
161
+ let gateReason;
162
+ if (survivesCount === 0 && failsCount === 0) {
163
+ decision = "no-vote"; // all errored / budget-starved — surface, write nothing
164
+ }
165
+ else if (failsCount > survivesCount) {
166
+ // Majority fails ⇒ ONE contest (revoke + tension). Satisfies the spec's
167
+ // multi-pass-agreement-for-contests: a lone dissent can no longer revoke.
168
+ // Consult the envelope ONCE for this panel decision (not per vote) before
169
+ // writing; on refuse the decision is gated and nothing is contested.
170
+ const verdict = await safeAdmit(deps.admit, { action: "edge-contest", fromPath, toPath });
171
+ if (!verdict.admit) {
172
+ decision = "gated";
173
+ gate = verdict.gate;
174
+ gateReason = verdict.reason;
175
+ }
176
+ else {
177
+ decision = "fails";
178
+ const con = await deps.contest({
179
+ fromPath,
180
+ toPath,
181
+ contestedBy: opts.agent,
182
+ reason: `revision panel (${failsCount}/${survivesCount + failsCount} fail): ${firstFailReason}`,
183
+ });
184
+ if (con.ok)
185
+ contestedCount = 1;
186
+ else
187
+ writeErrors.push({ axis: axes[0], error: `contest failed: ${con.error.message}` });
188
+ }
189
+ }
190
+ else if (survivesCount > failsCount) {
191
+ // Majority survives ⇒ accrue strength: each surviving vote observes with a
192
+ // DISTINCT store axis (EDGE_AXES), so the §11.3 replay guard counts them as
193
+ // independent in one sitting (panelSize ≤ EDGE_AXES.length ⇒ no collision).
194
+ // Consult the envelope ONCE for this panel decision (the per-vote observe
195
+ // loop is the mechanical accrual of the ONE admitted action); on refuse the
196
+ // decision is gated and NO observes are applied.
197
+ const verdict = await safeAdmit(deps.admit, { action: "edge-observe", fromPath, toPath });
198
+ if (!verdict.admit) {
199
+ decision = "gated";
200
+ gate = verdict.gate;
201
+ gateReason = verdict.reason;
202
+ surviving.length = 0; // ensure the loop below applies nothing
203
+ }
204
+ else {
205
+ decision = "survives";
206
+ for (let i = 0; i < surviving.length; i++) {
207
+ const storeAxis = EDGE_AXES[i % EDGE_AXES.length];
208
+ const obs = await deps.observe({
209
+ fromPath,
210
+ toPath,
211
+ observedBy: opts.agent,
212
+ blind: true,
213
+ axis: storeAxis,
214
+ note: `revision/${surviving[i].axis}: ${surviving[i].reason}`,
215
+ });
216
+ if (obs.ok)
217
+ observedCount++;
218
+ else
219
+ writeErrors.push({
220
+ axis: surviving[i].axis,
221
+ error: `observe failed: ${obs.error.message}`,
222
+ });
223
+ }
224
+ }
225
+ }
226
+ else {
227
+ // Tie (survives === fails, both > 0): no majority ⇒ surface, write nothing.
228
+ decision = "tie";
229
+ }
230
+ const traceRes = await deps.recordRevisionTrace({
231
+ at: new Date().toISOString().replace(/\.\d{3}Z$/, "Z"),
232
+ fromPath,
233
+ toPath,
234
+ edgeStrengthAtStart: edge.strength,
235
+ kSurvivedAtStart: edge.kSurvived,
236
+ lastRederivedAtStart: edge.lastRederived,
237
+ model: opts.model,
238
+ votes,
239
+ decision,
240
+ observedCount,
241
+ contestedCount,
242
+ ...(decision === "gated" ? { gate, gateReason } : {}),
243
+ });
244
+ return ok({
245
+ fromPath,
246
+ toPath,
247
+ votes,
248
+ decision,
249
+ observedCount,
250
+ contestedCount,
251
+ ...(decision === "gated" ? { gate, gateReason } : {}),
252
+ writeErrors,
253
+ llmCalls,
254
+ inputTokens,
255
+ outputTokens,
256
+ traceWritten: traceRes.ok,
257
+ ...(traceRes.ok ? {} : { traceError: traceRes.error.message }),
258
+ });
259
+ }
260
+ // --- the CLI-wired trace recorder --------------------------------------------
261
+ export function revisionTracePath(vaultRoot) {
262
+ return join(vaultRoot, ".daftari", "revision-trace.jsonl");
263
+ }
264
+ export async function appendRevisionTrace(vaultRoot, row) {
265
+ try {
266
+ mkdirSync(join(vaultRoot, ".daftari"), { recursive: true });
267
+ appendFileSync(revisionTracePath(vaultRoot), `${JSON.stringify(row)}\n`);
268
+ return ok(undefined);
269
+ }
270
+ catch (e) {
271
+ return err(new Error(`cannot record revision trace: ${e instanceof Error ? e.message : String(e)}`));
272
+ }
273
+ }
274
+ //# sourceMappingURL=revision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision.js","sourceRoot":"","sources":["../../src/consolidate/revision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type Result } from "../frontmatter/types.js";
2
+ export interface ConsolidateState {
3
+ lastConsolidationCommit: string | null;
4
+ birthProcessed: Record<string, string>;
5
+ }
6
+ export declare function consolidateStatePath(vaultRoot: string): string;
7
+ export declare function docContentHash(content: string): string;
8
+ export declare function readConsolidateState(vaultRoot: string): ConsolidateState;
9
+ export declare function writeConsolidateState(vaultRoot: string, state: ConsolidateState): Result<void, Error>;
10
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/consolidate/state.ts"],"names":[],"mappings":"AASA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAMD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAID,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAYxE;AAKD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,GACtB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAarB"}
@@ -0,0 +1,54 @@
1
+ // .daftari/consolidate-state.json — the loop's ephemeral cross-session memory:
2
+ // the last consolidation commit (the event clock's baseline) and the
3
+ // birth-processed doc hashes (so an edited doc re-births, spec §4.0). Git-ignored
4
+ // and rebuildable: absent OR corrupt ⇒ the empty default, and the next session
5
+ // treats HEAD as its baseline (the nil path, §3.1/§7).
6
+ import { createHash } from "node:crypto";
7
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
+ import { dirname, join } from "node:path";
9
+ import { err, ok } from "../frontmatter/types.js";
10
+ function emptyState() {
11
+ return { lastConsolidationCommit: null, birthProcessed: {} };
12
+ }
13
+ export function consolidateStatePath(vaultRoot) {
14
+ return join(vaultRoot, ".daftari", "consolidate-state.json");
15
+ }
16
+ export function docContentHash(content) {
17
+ return createHash("sha256").update(content).digest("hex").slice(0, 16);
18
+ }
19
+ // Absent OR corrupt ⇒ the empty default. The state is ephemeral and rebuildable
20
+ // (an empty lastCommit just means the next session uses HEAD as its baseline).
21
+ export function readConsolidateState(vaultRoot) {
22
+ const p = consolidateStatePath(vaultRoot);
23
+ if (!existsSync(p))
24
+ return emptyState();
25
+ try {
26
+ const raw = JSON.parse(readFileSync(p, "utf-8"));
27
+ return {
28
+ lastConsolidationCommit: raw.lastConsolidationCommit ?? null,
29
+ birthProcessed: raw.birthProcessed ?? {},
30
+ };
31
+ }
32
+ catch {
33
+ return emptyState();
34
+ }
35
+ }
36
+ // Returns a Result rather than throwing (CLAUDE.md house style): a full disk or
37
+ // a read-only .daftari is a recoverable degrade — the loop's state is ephemeral,
38
+ // so a failed write just means the next session re-baselines, not a crash.
39
+ export function writeConsolidateState(vaultRoot, state) {
40
+ if (typeof vaultRoot !== "string" || vaultRoot.trim().length === 0) {
41
+ return err(new Error("writeConsolidateState requires a non-empty vaultRoot"));
42
+ }
43
+ try {
44
+ const p = consolidateStatePath(vaultRoot);
45
+ mkdirSync(dirname(p), { recursive: true });
46
+ writeFileSync(p, `${JSON.stringify(state, null, 2)}\n`);
47
+ return ok(undefined);
48
+ }
49
+ catch (e) {
50
+ const reason = e instanceof Error ? e.message : String(e);
51
+ return err(new Error(`cannot write consolidate state: ${reason}`));
52
+ }
53
+ }
54
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/consolidate/state.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qEAAqE;AACrE,kFAAkF;AAClF,+EAA+E;AAC/E,uDAAuD;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAQ/D,SAAS,UAAU;IACjB,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,UAAU,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAA8B,CAAC;QAC9E,OAAO;YACL,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,IAAI,IAAI;YAC5D,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE;SACzC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,iFAAiF;AACjF,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,KAAuB;IAEvB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC1C,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}