looply-cli 0.5.9 → 0.5.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 (141) hide show
  1. package/dist/.src-hash +1 -1
  2. package/dist/account-failover.d.ts +30 -0
  3. package/dist/account-failover.d.ts.map +1 -0
  4. package/dist/account-failover.js +32 -0
  5. package/dist/account-failover.js.map +1 -0
  6. package/dist/autonomy-controller.d.ts +23 -1
  7. package/dist/autonomy-controller.d.ts.map +1 -1
  8. package/dist/autonomy-controller.js +50 -9
  9. package/dist/autonomy-controller.js.map +1 -1
  10. package/dist/autonomy-store.d.ts +33 -1
  11. package/dist/autonomy-store.d.ts.map +1 -1
  12. package/dist/autonomy-store.js +58 -8
  13. package/dist/autonomy-store.js.map +1 -1
  14. package/dist/autonomy-tick.d.ts +23 -1
  15. package/dist/autonomy-tick.d.ts.map +1 -1
  16. package/dist/autonomy-tick.js +80 -14
  17. package/dist/autonomy-tick.js.map +1 -1
  18. package/dist/bin.d.ts.map +1 -1
  19. package/dist/bin.js +25 -5
  20. package/dist/bin.js.map +1 -1
  21. package/dist/branch-delivery-wiring.d.ts.map +1 -1
  22. package/dist/branch-delivery-wiring.js +6 -1
  23. package/dist/branch-delivery-wiring.js.map +1 -1
  24. package/dist/branch-delivery.d.ts +135 -6
  25. package/dist/branch-delivery.d.ts.map +1 -1
  26. package/dist/branch-delivery.js +540 -80
  27. package/dist/branch-delivery.js.map +1 -1
  28. package/dist/branch-replay.d.ts +45 -0
  29. package/dist/branch-replay.d.ts.map +1 -0
  30. package/dist/branch-replay.js +123 -0
  31. package/dist/branch-replay.js.map +1 -0
  32. package/dist/commit-ownership.d.ts +102 -0
  33. package/dist/commit-ownership.d.ts.map +1 -0
  34. package/dist/commit-ownership.js +97 -0
  35. package/dist/commit-ownership.js.map +1 -0
  36. package/dist/coordinator-state.d.ts.map +1 -1
  37. package/dist/coordinator-state.js +21 -1
  38. package/dist/coordinator-state.js.map +1 -1
  39. package/dist/daemon-cmd.d.ts.map +1 -1
  40. package/dist/daemon-cmd.js +53 -4
  41. package/dist/daemon-cmd.js.map +1 -1
  42. package/dist/daemon.d.ts +10 -1
  43. package/dist/daemon.d.ts.map +1 -1
  44. package/dist/daemon.js +31 -5
  45. package/dist/daemon.js.map +1 -1
  46. package/dist/deliver-cmd.d.ts +18 -0
  47. package/dist/deliver-cmd.d.ts.map +1 -1
  48. package/dist/deliver-cmd.js +71 -5
  49. package/dist/deliver-cmd.js.map +1 -1
  50. package/dist/delivery-settings-cache.d.ts +15 -1
  51. package/dist/delivery-settings-cache.d.ts.map +1 -1
  52. package/dist/delivery-settings-cache.js +31 -3
  53. package/dist/delivery-settings-cache.js.map +1 -1
  54. package/dist/environment-hold.d.ts +69 -0
  55. package/dist/environment-hold.d.ts.map +1 -0
  56. package/dist/environment-hold.js +120 -0
  57. package/dist/environment-hold.js.map +1 -0
  58. package/dist/gate.d.ts.map +1 -1
  59. package/dist/gate.js +15 -1
  60. package/dist/gate.js.map +1 -1
  61. package/dist/github-api.d.ts +19 -0
  62. package/dist/github-api.d.ts.map +1 -1
  63. package/dist/github-api.js +26 -0
  64. package/dist/github-api.js.map +1 -1
  65. package/dist/goal-adaptive.d.ts +1 -0
  66. package/dist/goal-adaptive.d.ts.map +1 -1
  67. package/dist/goal-adaptive.js +26 -13
  68. package/dist/goal-adaptive.js.map +1 -1
  69. package/dist/goal-compile.d.ts +37 -0
  70. package/dist/goal-compile.d.ts.map +1 -1
  71. package/dist/goal-compile.js +25 -1
  72. package/dist/goal-compile.js.map +1 -1
  73. package/dist/goal-replay.d.ts +83 -0
  74. package/dist/goal-replay.d.ts.map +1 -0
  75. package/dist/goal-replay.js +121 -0
  76. package/dist/goal-replay.js.map +1 -0
  77. package/dist/goal-reproof.d.ts +5 -0
  78. package/dist/goal-reproof.d.ts.map +1 -1
  79. package/dist/goal-reproof.js +11 -4
  80. package/dist/goal-reproof.js.map +1 -1
  81. package/dist/grant-pause.d.ts +48 -0
  82. package/dist/grant-pause.d.ts.map +1 -0
  83. package/dist/grant-pause.js +103 -0
  84. package/dist/grant-pause.js.map +1 -0
  85. package/dist/grant-reconcile.d.ts +8 -2
  86. package/dist/grant-reconcile.d.ts.map +1 -1
  87. package/dist/grant-reconcile.js +9 -2
  88. package/dist/grant-reconcile.js.map +1 -1
  89. package/dist/grant-waiting-wiring.d.ts +49 -0
  90. package/dist/grant-waiting-wiring.d.ts.map +1 -0
  91. package/dist/grant-waiting-wiring.js +77 -0
  92. package/dist/grant-waiting-wiring.js.map +1 -0
  93. package/dist/model-transport.d.ts +13 -0
  94. package/dist/model-transport.d.ts.map +1 -1
  95. package/dist/model-transport.js +70 -9
  96. package/dist/model-transport.js.map +1 -1
  97. package/dist/planner-timeouts.d.ts +14 -0
  98. package/dist/planner-timeouts.d.ts.map +1 -0
  99. package/dist/planner-timeouts.js +51 -0
  100. package/dist/planner-timeouts.js.map +1 -0
  101. package/dist/provider-accounts-cmd.d.ts +58 -0
  102. package/dist/provider-accounts-cmd.d.ts.map +1 -0
  103. package/dist/provider-accounts-cmd.js +247 -0
  104. package/dist/provider-accounts-cmd.js.map +1 -0
  105. package/dist/provider-accounts.d.ts +157 -0
  106. package/dist/provider-accounts.d.ts.map +1 -0
  107. package/dist/provider-accounts.js +423 -0
  108. package/dist/provider-accounts.js.map +1 -0
  109. package/dist/provider-cmd.d.ts +3 -0
  110. package/dist/provider-cmd.d.ts.map +1 -1
  111. package/dist/provider-cmd.js +25 -0
  112. package/dist/provider-cmd.js.map +1 -1
  113. package/dist/provider-limit.d.ts +6 -0
  114. package/dist/provider-limit.d.ts.map +1 -1
  115. package/dist/provider-limit.js +12 -0
  116. package/dist/provider-limit.js.map +1 -1
  117. package/dist/provider-state.d.ts +3 -0
  118. package/dist/provider-state.d.ts.map +1 -1
  119. package/dist/provider-state.js +4 -1
  120. package/dist/provider-state.js.map +1 -1
  121. package/dist/run-cmd.d.ts +12 -1
  122. package/dist/run-cmd.d.ts.map +1 -1
  123. package/dist/run-cmd.js +187 -15
  124. package/dist/run-cmd.js.map +1 -1
  125. package/dist/run-refusal-marks.d.ts +7 -1
  126. package/dist/run-refusal-marks.d.ts.map +1 -1
  127. package/dist/run-refusal-marks.js +4 -0
  128. package/dist/run-refusal-marks.js.map +1 -1
  129. package/dist/server-client.d.ts +33 -2
  130. package/dist/server-client.d.ts.map +1 -1
  131. package/dist/server-client.js +33 -1
  132. package/dist/server-client.js.map +1 -1
  133. package/dist/spend-ledger.d.ts +7 -0
  134. package/dist/spend-ledger.d.ts.map +1 -1
  135. package/dist/spend-ledger.js +1 -0
  136. package/dist/spend-ledger.js.map +1 -1
  137. package/dist/start-attempts.d.ts +4 -2
  138. package/dist/start-attempts.d.ts.map +1 -1
  139. package/dist/start-attempts.js +6 -1
  140. package/dist/start-attempts.js.map +1 -1
  141. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"goal-compile.js","sourceRoot":"","sources":["../src/goal-compile.ts"],"names":[],"mappings":";;;AAwHA,0BAEC;AAUD,wCAEC;AAmBD,wDAOC;AAQD,oCAEC;AAyBD,gCAuBC;AAoBD,oCAQC;AAQD,gCAIC;AAcD,kCAYC;AAkCD,sCA6BC;AAuED,gDA+DC;AASD,kCA6CC;AAcD,kCA4CC;AAjlBD,6CAAyC;AACzC,uCAAkJ;AAElJ,qDAAkD;AAElD;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACU,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEnC,mEAAmE;AACtD,QAAA,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAyDjD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,MAAc,EAAE,WAAmB,EAAE,GAAW;IAC7E,OAAO,IAAA,gBAAS,EAAC,MAAM,EAAE,IAAA,aAAM,EAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,sBAAsB,CACpC,MAAc,EACd,WAAmB,EACnB,QAAgB,EAChB,GAAW;IAEX,OAAO,IAAA,gBAAS,EAAC,MAAM,EAAE,IAAA,aAAM,EAAC,oBAAoB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,MAAc,EAAE,WAAmB,EAAE,QAAgB;IAChF,OAAO,IAAA,gBAAS,EAAC,MAAM,EAAE,IAAA,aAAM,EAAC,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,UAAU,CAAC,GAM1B;IACC,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC;QAC3D,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,KAAK,EAAE,QAAQ,GAAG,CAAC,QAAQ,gBAAgB;QAC3C,GAAG,EAAE,MAAM;QACX,sEAAsE;QACtE,KAAK,EAAE,QAAiB;QACxB,MAAM,EAAE,MAAe;QACvB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,sBAAsB,EAAE,GAAG,CAAC,WAAW;QACvC,uBAAuB,EAAE,GAAG,CAAC,QAAQ;QACrC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,YAAY,CAC1B,IAAwF;IAExF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrF,OAAO,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,MAAc,EAAE,WAAmB,EAAE,QAAgB,EAAE,GAAW;IAC3F,OAAO,QAAQ,IAAI,0BAAmB;QACpC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC;QAC1C,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CAAC,UAAkB;IAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAE/E,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,GAAG,GAAI,MAA8B,CAAC,KAAK,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,0EAA0E;QAC1E,0EAA0E;QAC1E,0CAA0C;QAC1C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,CAAU;IACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAClD,MAAM,EAAE,GAAG,CAA4B,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAAE,SAAS;QAC5D,MAAM,GAAG,GAAa,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1F,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO;QACL,KAAK;QACL,sEAAsE;QACtE,oEAAoE;QACpE,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM;QAC/E,QAAQ;QACR,0EAA0E;QAC1E,qEAAqE;QACrE,gDAAgD;QAChD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC;AAuED,SAAgB,kBAAkB,CAAC,KAAuB,EAAE,QAAQ,GAAG,yBAAiB;IACtF,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAA,oBAAa,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAClC,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,aAAa,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACtG,OAAO;QACL,sDAAsD;QACtD,EAAE;QACF,YAAY,KAAK,CAAC,WAAW,EAAE;QAC/B,+DAA+D;QAC/D,KAAK,CAAC,QAAQ;QACd,EAAE;QACF,4EAA4E;QAC5E,yEAAyE;QACzE,WAAW;QACX,qEAAqE;QACrE,2EAA2E;QAC3E,iEAAiE;QACjE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAA,uBAAgB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,uBAAgB,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7H,0EAA0E;QAC1E,yEAAyE;QACzE,qEAAqE;QACrE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;YACrD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,4CAA4C,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;YACtE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,qDAAqD,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACpF,6EAA6E;QAC7E,mFAAmF;QACnF,EAAE;QACF,OAAO;QACP,aAAa,QAAQ,mEAAmE;QACxF,4EAA4E;QAC5E,8EAA8E;QAC9E,gDAAgD;QAChD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAA,oBAAa,EAAC,KAAK,CAAC,MAAM,CAAC;YAC3D,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,uGAAuG;gBACvG,6FAA6F;aAC9F,CAAC;QACN,iFAAiF;QACjF,sEAAsE;QACtE,wFAAwF;QACxF,GAAG,CAAC,aAAa;YACf,CAAC,CAAC;gBACE,uFAAuF;gBACvF,sFAAsF;gBACtF,4EAA4E;gBAC5E,sFAAsF;gBACtF,4FAA4F;gBAC5F,EAAE;gBACF,6EAA6E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACjG;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,oEAAoE;QACpE,aAAa;YACX,CAAC,CAAC,yJAAyJ;YAC3J,CAAC,CAAC,oFAAoF;KACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,KAAuB,EAAE,IAAiB;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,cAAc;IACd,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,yBAAiB,CAAC;IAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,0BAAkB,CAAC,CAAC;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,CAAC,GAAG,IAAA,+BAAc,EAAC,GAAG,CAAC,CAAC;IAC9B,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IAElC,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IACxH,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAE7G,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAEpH,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,wEAAwE;QACxE,2EAA2E;QAC3E,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAC9C,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CACzB,KAA0B,EAC1B,GAcC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,IAAI,0BAAmB,CAAC;IACzD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1B,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvE,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,KAAK,EAAE,OAAgB;QACvB,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,EAAE,MAAe;QACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,yEAAyE;QACzE,wEAAwE;QACxE,0BAA0B;QAC1B,sBAAsB,EAAE,GAAG,CAAC,WAAW;QACvC,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,GAAG,CAAC,QAAQ,GAAG,0BAAmB,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,oEAAoE;QACpE,0CAA0C;QAC1C,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3B,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"goal-compile.js","sourceRoot":"","sources":["../src/goal-compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * A GOAL'S OWN WORK, REBUILT ONTO THE BASE WHEN THE TREE MOVED AWAY FROM IT.
3
+ *
4
+ * ─────────────────────────────────────────────────────────────────────────────
5
+ * TAB-B-64 (2026-10-15/16): its plan was delivered, gated and proved; then other tickets' runs
6
+ * moved the checkout, and the goal's later "is it met" Start found a tree that did not hold its
7
+ * commits — "this goal looks done, but nothing here proves it", `run_refused`, back to a person.
8
+ * `goal-reproof.ts` (0.5.6) re-checks the tree when the commits are still IN it; this covers the
9
+ * rest: when they are not, the plan's committed rounds are replayed, oldest first, onto the
10
+ * project's base on a fresh run branch, and the goal check judges THAT tree — the evaluator and
11
+ * the gates both, so the verdict and the proof are about one tree. The rebuilt branch holds only
12
+ * this goal's work, which is also what its pull request should hold.
13
+ *
14
+ * Only in a checkout Looply made (its provisioning marker): moving HEAD in a person's own
15
+ * checkout is not a run's to do. A pick that does not apply is not a hand-back either — the
16
+ * checkout is put back where it was, and the goal plans what is missing instead.
17
+ *
18
+ * THE MAP. A replayed commit is a new commit; KEY 2 knows the plan by its ORIGINAL shas (the
19
+ * ledger's rounds). So the replay is written down — original → rebuilt, per goal — and the
20
+ * re-proof accepts a rebuilt commit as the original's work (`replayedAs`).
21
+ */
22
+ export declare const GOAL_REPLAYS_FILE = "goal-replays.json";
23
+ /** The commits each original of this goal was rebuilt as (most recent replay last). */
24
+ export declare function replayedAs(stateDir: string, goalId: string): (sha: string) => readonly string[];
25
+ export declare function recordReplay(stateDir: string, goalId: string, picked: ReadonlyArray<{
26
+ from: string;
27
+ to: string | null;
28
+ }>): void;
29
+ /** The git verbs a rebuild needs. The checkout's HEAD moves only once, onto the finished branch. */
30
+ export interface ReplayDeps {
31
+ headSha(): Promise<string>;
32
+ changedPaths(): Promise<readonly string[]>;
33
+ isAncestor(ancestor: string, of: string): Promise<boolean>;
34
+ /** The project's base branch as a ref, or null. */
35
+ baseRef(): Promise<string | null>;
36
+ commitOf(ref: string): Promise<string>;
37
+ /**
38
+ * Replay these commits, oldest first, onto `base` in a temporary worktree (`branch-replay.ts`:
39
+ * each commit's own change applied as a patch, checked first, never a 3-way merge — so a commit
40
+ * that does not fit is refused rather than merged wrongly). The checkout is not touched.
41
+ */
42
+ replay(base: string, shas: readonly string[]): Promise<{
43
+ ok: true;
44
+ sha: string;
45
+ alreadyInBase: readonly string[];
46
+ } | {
47
+ ok: false;
48
+ because: string;
49
+ }>;
50
+ /** The commits base..sha, oldest first. */
51
+ commitsBetween(base: string, sha: string): Promise<readonly string[]>;
52
+ /** Create `name` at `from` and switch to it. */
53
+ createBranch(name: string, from: string): Promise<void>;
54
+ }
55
+ export type ReplayOutcome =
56
+ /** The work is in HEAD already: nothing moved. */
57
+ {
58
+ readonly kind: 'present';
59
+ } | {
60
+ readonly kind: 'rebuilt';
61
+ readonly branch: string;
62
+ readonly base: string;
63
+ readonly head: string;
64
+ readonly picked: ReadonlyArray<{
65
+ from: string;
66
+ to: string | null;
67
+ }>;
68
+ }
69
+ /** It could not be rebuilt; HEAD did not move. `because` is what to plan around. */
70
+ | {
71
+ readonly kind: 'failed';
72
+ readonly because: string;
73
+ };
74
+ /**
75
+ * Is this plan's work in HEAD (by its own shas or a recorded replay)? If not, rebuild it onto
76
+ * the base as `branch`. `committed` is the plan's committed shas, oldest first.
77
+ */
78
+ export declare function alignWithOwnWork(deps: ReplayDeps, input: {
79
+ readonly committed: readonly string[];
80
+ readonly branch: string;
81
+ readonly aliases: (sha: string) => readonly string[];
82
+ }): Promise<ReplayOutcome>;
83
+ //# sourceMappingURL=goal-replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-replay.d.ts","sourceRoot":"","sources":["../src/goal-replay.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAarD,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAY/F;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAAG,IAAI,CAU/H;AAED,oGAAoG;AACpG,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC3C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,mDAAmD;IACnD,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrJ,2CAA2C;IAC3C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACtE,gDAAgD;IAChD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,aAAa;AACvB,kDAAkD;AAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE;AAC1K,oFAAoF;GAClF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAA;CAAE,GAC9H,OAAO,CAAC,aAAa,CAAC,CA2CxB"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GOAL_REPLAYS_FILE = void 0;
4
+ exports.replayedAs = replayedAs;
5
+ exports.recordReplay = recordReplay;
6
+ exports.alignWithOwnWork = alignWithOwnWork;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
9
+ /**
10
+ * A GOAL'S OWN WORK, REBUILT ONTO THE BASE WHEN THE TREE MOVED AWAY FROM IT.
11
+ *
12
+ * ─────────────────────────────────────────────────────────────────────────────
13
+ * TAB-B-64 (2026-10-15/16): its plan was delivered, gated and proved; then other tickets' runs
14
+ * moved the checkout, and the goal's later "is it met" Start found a tree that did not hold its
15
+ * commits — "this goal looks done, but nothing here proves it", `run_refused`, back to a person.
16
+ * `goal-reproof.ts` (0.5.6) re-checks the tree when the commits are still IN it; this covers the
17
+ * rest: when they are not, the plan's committed rounds are replayed, oldest first, onto the
18
+ * project's base on a fresh run branch, and the goal check judges THAT tree — the evaluator and
19
+ * the gates both, so the verdict and the proof are about one tree. The rebuilt branch holds only
20
+ * this goal's work, which is also what its pull request should hold.
21
+ *
22
+ * Only in a checkout Looply made (its provisioning marker): moving HEAD in a person's own
23
+ * checkout is not a run's to do. A pick that does not apply is not a hand-back either — the
24
+ * checkout is put back where it was, and the goal plans what is missing instead.
25
+ *
26
+ * THE MAP. A replayed commit is a new commit; KEY 2 knows the plan by its ORIGINAL shas (the
27
+ * ledger's rounds). So the replay is written down — original → rebuilt, per goal — and the
28
+ * re-proof accepts a rebuilt commit as the original's work (`replayedAs`).
29
+ */
30
+ exports.GOAL_REPLAYS_FILE = 'goal-replays.json';
31
+ function read(stateDir) {
32
+ try {
33
+ const raw = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(stateDir, exports.GOAL_REPLAYS_FILE), 'utf8'));
34
+ return typeof raw === 'object' && raw !== null && !Array.isArray(raw) ? raw : {};
35
+ }
36
+ catch {
37
+ return {};
38
+ }
39
+ }
40
+ /** The commits each original of this goal was rebuilt as (most recent replay last). */
41
+ function replayedAs(stateDir, goalId) {
42
+ const mine = read(stateDir)[goalId] ?? {};
43
+ return (sha) => {
44
+ const out = [];
45
+ let cur = mine[sha];
46
+ // A rebuilt commit can itself be rebuilt later: follow the chain, bounded.
47
+ for (let i = 0; cur !== undefined && i < 8; i++) {
48
+ out.push(cur);
49
+ cur = mine[cur];
50
+ }
51
+ return out;
52
+ };
53
+ }
54
+ function recordReplay(stateDir, goalId, picked) {
55
+ const all = read(stateDir);
56
+ const mine = { ...(all[goalId] ?? {}) };
57
+ for (const p of picked)
58
+ if (p.to !== null)
59
+ mine[p.from] = p.to;
60
+ all[goalId] = mine;
61
+ (0, node_fs_1.mkdirSync)(stateDir, { recursive: true });
62
+ const path = (0, node_path_1.join)(stateDir, exports.GOAL_REPLAYS_FILE);
63
+ const tmp = `${path}.${process.pid}.tmp`;
64
+ (0, node_fs_1.writeFileSync)(tmp, `${JSON.stringify(all, null, 2)}\n`, 'utf8');
65
+ (0, node_fs_1.renameSync)(tmp, path);
66
+ }
67
+ /**
68
+ * Is this plan's work in HEAD (by its own shas or a recorded replay)? If not, rebuild it onto
69
+ * the base as `branch`. `committed` is the plan's committed shas, oldest first.
70
+ */
71
+ async function alignWithOwnWork(deps, input) {
72
+ if (input.committed.length === 0)
73
+ return { kind: 'present' };
74
+ const head = await deps.headSha();
75
+ const contains = async (sha) => {
76
+ for (const s of [sha, ...input.aliases(sha)]) {
77
+ if (s === head || (await deps.isAncestor(s, head).catch(() => false)))
78
+ return true;
79
+ }
80
+ return false;
81
+ };
82
+ let missing = 0;
83
+ for (const sha of input.committed)
84
+ if (!(await contains(sha)))
85
+ missing += 1;
86
+ // Partly or wholly present: the re-proof at HEAD (`goal-reproof.ts`) is the right check.
87
+ if (missing < input.committed.length)
88
+ return { kind: 'present' };
89
+ if ((await deps.changedPaths()).length > 0) {
90
+ return { kind: 'failed', because: 'the working tree has uncommitted changes, so this goal’s work could not be rebuilt onto the base' };
91
+ }
92
+ const baseRef = await deps.baseRef();
93
+ if (baseRef === null)
94
+ return { kind: 'failed', because: 'the base branch could not be found to rebuild this goal’s work onto' };
95
+ const base = await deps.commitOf(baseRef);
96
+ const replayed = await deps.replay(base, input.committed);
97
+ let tip;
98
+ let picked;
99
+ if (replayed.ok) {
100
+ tip = replayed.sha;
101
+ const already = new Set(replayed.alreadyInBase);
102
+ const carried = input.committed.filter((c) => !already.has(c));
103
+ const made = await deps.commitsBetween(base, tip);
104
+ // Paired in order; when an empty change made no commit the counts differ, and the pairing is
105
+ // not trusted — the work is still rebuilt, it is just not recognised by its old names.
106
+ picked = carried.length === made.length
107
+ ? [...carried.map((c, i) => ({ from: c, to: made[i] })), ...[...already].map((c) => ({ from: c, to: null }))]
108
+ : [];
109
+ }
110
+ else if (/already on/.test(replayed.because)) {
111
+ // Every change is on the base already (merged another way): the base IS this goal's work.
112
+ tip = base;
113
+ picked = input.committed.map((c) => ({ from: c, to: null }));
114
+ }
115
+ else {
116
+ return { kind: 'failed', because: `this goal’s earlier commits do not apply to ${baseRef} any more — ${replayed.because}` };
117
+ }
118
+ await deps.createBranch(input.branch, tip);
119
+ return { kind: 'rebuilt', branch: input.branch, base: baseRef, head: await deps.headSha(), picked };
120
+ }
121
+ //# sourceMappingURL=goal-replay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-replay.js","sourceRoot":"","sources":["../src/goal-replay.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,11 @@ export interface ReproofDeps {
23
23
  changedPathsBetween(fromSha: string, toSha: string): Promise<readonly string[]>;
24
24
  /** Run the project's gate at the current tree; `changedPaths` feeds the steps' `when:` filters. */
25
25
  runGates(changedPaths: readonly string[]): Promise<readonly GateStepResult[]>;
26
+ /**
27
+ * The commits an original was REBUILT as (`goal-replay.ts`): a plan whose work was replayed
28
+ * onto the base is in the tree as those, and is this plan's work all the same. Absent: none.
29
+ */
30
+ aliases?(sha: string): readonly string[];
26
31
  }
27
32
  export type ReproofOutcome = {
28
33
  readonly ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"goal-reproof.d.ts","sourceRoot":"","sources":["../src/goal-reproof.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,YAAY,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC3C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAChF,mGAAmG;IACnG,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;CAC/E;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACxG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAoB1H"}
1
+ {"version":3,"file":"goal-reproof.d.ts","sourceRoot":"","sources":["../src/goal-reproof.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,YAAY,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC3C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAChF,mGAAmG;IACnG,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IAC9E;;;OAGG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACxG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CA4B1H"}
@@ -15,19 +15,26 @@ async function reproveAtHead(head, committed, deps) {
15
15
  return { ok: false, because: `the working tree has ${dirty.length} uncommitted change(s), so it is not the tree a gate would check` };
16
16
  }
17
17
  const contains = [];
18
+ /** Where the contained work begins in THIS tree: the first contained commit, or its rebuilt copy. */
19
+ const firstHere = [];
18
20
  for (const sha of committed) {
19
- if (sha === head || (await deps.isAncestor(sha, head).catch(() => false)))
20
- contains.push(sha);
21
+ for (const s of [sha, ...(deps.aliases?.(sha) ?? [])]) {
22
+ if (s === head || (await deps.isAncestor(s, head).catch(() => false))) {
23
+ contains.push(sha);
24
+ firstHere.push(s);
25
+ break;
26
+ }
27
+ }
21
28
  }
22
29
  if (contains.length === 0)
23
30
  return { ok: false, because: 'none of this plan’s commits is in the tree that is here now' };
24
31
  let paths = [];
25
32
  try {
26
- paths = await deps.changedPathsBetween(`${contains[0]}~1`, head);
33
+ paths = await deps.changedPathsBetween(`${firstHere[0]}~1`, head);
27
34
  }
28
35
  catch {
29
36
  // A plan whose first commit is the repository's root has no parent: the plan's own commits still name its files.
30
- paths = await deps.changedPathsBetween(contains[0], head).catch(() => []);
37
+ paths = await deps.changedPathsBetween(firstHere[0], head).catch(() => []);
31
38
  }
32
39
  const steps = await deps.runGates(paths);
33
40
  return { ok: true, contains: new Set(contains), steps };
@@ -1 +1 @@
1
- {"version":3,"file":"goal-reproof.js","sourceRoot":"","sources":["../src/goal-reproof.ts"],"names":[],"mappings":";;AAsCA,sCAoBC;AA1BD;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,SAA4B,EAAE,IAAiB;IAC/F,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,KAAK,CAAC,MAAM,kEAAkE,EAAE,CAAC;IACxI,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,6DAA6D,EAAE,CAAC;IACxH,IAAI,KAAK,GAAsB,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,iHAAiH;QACjH,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"goal-reproof.js","sourceRoot":"","sources":["../src/goal-reproof.ts"],"names":[],"mappings":";;AA2CA,sCA4BC;AAlCD;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,SAA4B,EAAE,IAAiB;IAC/F,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,KAAK,CAAC,MAAM,kEAAkE,EAAE,CAAC;IACxI,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,qGAAqG;IACrG,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,6DAA6D,EAAE,CAAC;IACxH,IAAI,KAAK,GAAsB,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,iHAAiH;QACjH,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * A GRANT'S CLOCK STANDS STILL WHILE ITS GOAL WAITS WITHOUT SPENDING.
3
+ *
4
+ * ─────────────────────────────────────────────────────────────────────────────
5
+ * A grant is 8 Starts within 24 hours. The hours were meant to bound SPENDING; they also ran
6
+ * while a goal could not spend at all — waiting for a goal it depends on, for a checkout slot,
7
+ * or out a machine fault — and the grant ran out with nothing done. TAB-B-64 (2026-10-16) waited
8
+ * on TAB-B-63 from 00:37 and would have lost its grant at 00:37 the next day without one Start.
9
+ *
10
+ * So while the tick DEFERS a goal for one of those reasons, before anything is spent, this
11
+ * accrues the time, and the controller judges expiry against `expiresAt + pausedMs`
12
+ * (`effectiveExpiry`). The figure is reported to the server, which applies it to its own
13
+ * projection; `expiresAt` itself is never touched — it is the immutable term the person granted,
14
+ * compared on every reconcile.
15
+ *
16
+ * Bounded by MAX_GRANT_PAUSE_MS (7 days), so a goal nothing will ever unblock still ends.
17
+ *
18
+ * ⚠️ ONE WRITE PER TRANSITION, NOT PER CADENCE. `since` marks a wait in progress; the time is
19
+ * folded into `pausedMs` only when the wait ends, and `effective` adds the open stretch on read.
20
+ */
21
+ export declare const GRANT_PAUSE_FILE = "pause.json";
22
+ export interface GrantPause {
23
+ /** Closed waits, summed. */
24
+ readonly pausedMs: number;
25
+ /** When the wait now in progress began (ms since epoch), or null. */
26
+ readonly since: number | null;
27
+ /** The figure last accepted by the server, so a report is sent only when it moved. */
28
+ readonly reportedMs: number;
29
+ }
30
+ export declare function readGrantPause(stateDir: string, controllerId: string): GrantPause;
31
+ /** The paused time so far, the open stretch included, capped. */
32
+ export declare function pausedNow(p: GrantPause, now: number): number;
33
+ /** The grant's effective end as an ISO string, for the controller's facts. */
34
+ export declare function effectiveExpiresAt(expiresAt: string, p: GrantPause, now: number): string;
35
+ /**
36
+ * Note whether the goal is waiting (deferred before spending) this cadence. Writes only on a
37
+ * change: a wait starting, or a wait ending (folded into `pausedMs`). Returns the state now.
38
+ */
39
+ export declare function noteWaiting(stateDir: string, controllerId: string, waiting: boolean, now: number): GrantPause;
40
+ /** Record that the server accepted this figure. */
41
+ export declare function noteReported(stateDir: string, controllerId: string, reportedMs: number): void;
42
+ /**
43
+ * Is a report due? The server's projection ends a grant at `expiresAt + pausedMs`, so a figure
44
+ * it has not heard cannot keep the grant alive there: report every minute of new pause.
45
+ */
46
+ export declare const PAUSE_REPORT_STEP_MS: number;
47
+ export declare function pauseReportDue(p: GrantPause, now: number): number | null;
48
+ //# sourceMappingURL=grant-pause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant-pause.d.ts","sourceRoot":"","sources":["../src/grant-pause.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAQD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CAYjF;AAUD,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGxF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAa7G;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAI7F;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PAUSE_REPORT_STEP_MS = exports.GRANT_PAUSE_FILE = void 0;
4
+ exports.readGrantPause = readGrantPause;
5
+ exports.pausedNow = pausedNow;
6
+ exports.effectiveExpiresAt = effectiveExpiresAt;
7
+ exports.noteWaiting = noteWaiting;
8
+ exports.noteReported = noteReported;
9
+ exports.pauseReportDue = pauseReportDue;
10
+ const node_fs_1 = require("node:fs");
11
+ const node_path_1 = require("node:path");
12
+ const core_1 = require("@looply/core");
13
+ /**
14
+ * A GRANT'S CLOCK STANDS STILL WHILE ITS GOAL WAITS WITHOUT SPENDING.
15
+ *
16
+ * ─────────────────────────────────────────────────────────────────────────────
17
+ * A grant is 8 Starts within 24 hours. The hours were meant to bound SPENDING; they also ran
18
+ * while a goal could not spend at all — waiting for a goal it depends on, for a checkout slot,
19
+ * or out a machine fault — and the grant ran out with nothing done. TAB-B-64 (2026-10-16) waited
20
+ * on TAB-B-63 from 00:37 and would have lost its grant at 00:37 the next day without one Start.
21
+ *
22
+ * So while the tick DEFERS a goal for one of those reasons, before anything is spent, this
23
+ * accrues the time, and the controller judges expiry against `expiresAt + pausedMs`
24
+ * (`effectiveExpiry`). The figure is reported to the server, which applies it to its own
25
+ * projection; `expiresAt` itself is never touched — it is the immutable term the person granted,
26
+ * compared on every reconcile.
27
+ *
28
+ * Bounded by MAX_GRANT_PAUSE_MS (7 days), so a goal nothing will ever unblock still ends.
29
+ *
30
+ * ⚠️ ONE WRITE PER TRANSITION, NOT PER CADENCE. `since` marks a wait in progress; the time is
31
+ * folded into `pausedMs` only when the wait ends, and `effective` adds the open stretch on read.
32
+ */
33
+ exports.GRANT_PAUSE_FILE = 'pause.json';
34
+ const EMPTY = { pausedMs: 0, since: null, reportedMs: 0 };
35
+ function pathFor(stateDir, controllerId) {
36
+ return (0, node_path_1.join)(stateDir, 'autonomy', controllerId, exports.GRANT_PAUSE_FILE);
37
+ }
38
+ function readGrantPause(stateDir, controllerId) {
39
+ try {
40
+ const raw = JSON.parse((0, node_fs_1.readFileSync)(pathFor(stateDir, controllerId), 'utf8'));
41
+ const num = (x) => (typeof x === 'number' && Number.isFinite(x) && x >= 0 ? x : 0);
42
+ return {
43
+ pausedMs: num(raw.pausedMs),
44
+ since: typeof raw.since === 'number' && Number.isFinite(raw.since) ? raw.since : null,
45
+ reportedMs: num(raw.reportedMs),
46
+ };
47
+ }
48
+ catch {
49
+ return EMPTY;
50
+ }
51
+ }
52
+ function write(stateDir, controllerId, p) {
53
+ const target = pathFor(stateDir, controllerId);
54
+ (0, node_fs_1.mkdirSync)((0, node_path_1.join)(stateDir, 'autonomy', controllerId), { recursive: true });
55
+ const tmp = `${target}.${process.pid}.tmp`;
56
+ (0, node_fs_1.writeFileSync)(tmp, `${JSON.stringify(p)}\n`, 'utf8');
57
+ (0, node_fs_1.renameSync)(tmp, target);
58
+ }
59
+ /** The paused time so far, the open stretch included, capped. */
60
+ function pausedNow(p, now) {
61
+ const open = p.since === null ? 0 : Math.max(0, now - p.since);
62
+ return Math.min(p.pausedMs + open, core_1.MAX_GRANT_PAUSE_MS);
63
+ }
64
+ /** The grant's effective end as an ISO string, for the controller's facts. */
65
+ function effectiveExpiresAt(expiresAt, p, now) {
66
+ const at = (0, core_1.effectiveExpiry)(expiresAt, pausedNow(p, now));
67
+ return Number.isNaN(at) ? expiresAt : new Date(at).toISOString();
68
+ }
69
+ /**
70
+ * Note whether the goal is waiting (deferred before spending) this cadence. Writes only on a
71
+ * change: a wait starting, or a wait ending (folded into `pausedMs`). Returns the state now.
72
+ */
73
+ function noteWaiting(stateDir, controllerId, waiting, now) {
74
+ const cur = readGrantPause(stateDir, controllerId);
75
+ if (waiting && cur.since === null) {
76
+ const next = { ...cur, since: now };
77
+ write(stateDir, controllerId, next);
78
+ return next;
79
+ }
80
+ if (!waiting && cur.since !== null) {
81
+ const next = { ...cur, pausedMs: pausedNow(cur, now), since: null };
82
+ write(stateDir, controllerId, next);
83
+ return next;
84
+ }
85
+ return cur;
86
+ }
87
+ /** Record that the server accepted this figure. */
88
+ function noteReported(stateDir, controllerId, reportedMs) {
89
+ const cur = readGrantPause(stateDir, controllerId);
90
+ if (reportedMs <= cur.reportedMs)
91
+ return;
92
+ write(stateDir, controllerId, { ...cur, reportedMs });
93
+ }
94
+ /**
95
+ * Is a report due? The server's projection ends a grant at `expiresAt + pausedMs`, so a figure
96
+ * it has not heard cannot keep the grant alive there: report every minute of new pause.
97
+ */
98
+ exports.PAUSE_REPORT_STEP_MS = 60 * 1000;
99
+ function pauseReportDue(p, now) {
100
+ const current = pausedNow(p, now);
101
+ return current - p.reportedMs >= exports.PAUSE_REPORT_STEP_MS ? current : null;
102
+ }
103
+ //# sourceMappingURL=grant-pause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant-pause.js","sourceRoot":"","sources":["../src/grant-pause.ts"],"names":[],"mappings":";;;AA0CA,wCAYC;AAWD,8BAGC;AAGD,gDAGC;AAMD,kCAaC;AAGD,oCAIC;AAQD,wCAGC;AA/GD,qCAA6E;AAC7E,yCAAiC;AACjC,uCAAmE;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AAEU,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAW7C,MAAM,KAAK,GAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AAEtE,SAAS,OAAO,CAAC,QAAgB,EAAE,YAAoB;IACrD,OAAO,IAAA,gBAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAgB,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,cAAc,CAAC,QAAgB,EAAE,YAAoB;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;QACrG,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,OAAO;YACL,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC3B,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACrF,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;SAChC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,QAAgB,EAAE,YAAoB,EAAE,CAAa;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAC3C,IAAA,uBAAa,EAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,IAAA,oBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,iEAAiE;AACjE,SAAgB,SAAS,CAAC,CAAa,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,EAAE,yBAAkB,CAAC,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,SAAgB,kBAAkB,CAAC,SAAiB,EAAE,CAAa,EAAE,GAAW;IAC9E,MAAM,EAAE,GAAG,IAAA,sBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,YAAoB,EAAE,OAAgB,EAAE,GAAW;IAC/F,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACpC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpE,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mDAAmD;AACnD,SAAgB,YAAY,CAAC,QAAgB,EAAE,YAAoB,EAAE,UAAkB;IACrF,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,UAAU,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO;IACzC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACU,QAAA,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,SAAgB,cAAc,CAAC,CAAa,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,OAAO,GAAG,CAAC,CAAC,UAAU,IAAI,4BAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { GoalAutonomyState, GoalState, MachineSettlableState } from '@looply/core';
1
+ import { type GoalAutonomyState, type GoalState, type MachineSettlableState } from '@looply/core';
2
2
  import type { Reconciliation } from './autonomy-controller';
3
3
  import type { AutonomyProgress } from './autonomy-store';
4
4
  import type { ServerAutonomy } from './server-client';
@@ -51,7 +51,13 @@ export declare const IMMUTABLE_GRANT_FIELDS: readonly ["controllerId", "goalId",
51
51
  * which is a contradiction rather than an absence, since the machine only holds
52
52
  * grants the server minted.
53
53
  */
54
- export declare function reconcileGrant(local: LocalGrant, remote: ServerAutonomy | null, goal: CurrentGoal | null, now: number): Reconciliation;
54
+ export declare function reconcileGrant(local: LocalGrant, remote: ServerAutonomy | null, goal: CurrentGoal | null, now: number,
55
+ /**
56
+ * How long this machine has seen the goal wait without spending (`grant-pause.ts`). The
57
+ * server's own figure (`remote.pausedMs`) lags it by at most one report; the larger of the two
58
+ * is the clock that stood still. Capped by core's MAX_GRANT_PAUSE_MS either way.
59
+ */
60
+ localPausedMs?: number): Reconciliation;
55
61
  /**
56
62
  * The states a machine may report about itself, as the controller's vocabulary.
57
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"grant-reconcile.d.ts","sourceRoot":"","sources":["../src/grant-reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,gBAAgB,EAChB,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CACtE,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,8EAMzB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,GAAG,EAAE,MAAM,GACV,cAAc,CAgEhB;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAoBrF"}
1
+ {"version":3,"file":"grant-reconcile.d.ts","sourceRoot":"","sources":["../src/grant-reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,gBAAgB,EAChB,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CACtE,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,8EAMzB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,GAAG,EAAE,MAAM;AACX;;;;GAIG;AACH,aAAa,SAAI,GAChB,cAAc,CAgEhB;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAoBrF"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IMMUTABLE_GRANT_FIELDS = void 0;
4
4
  exports.reconcileGrant = reconcileGrant;
5
5
  exports.settlableState = settlableState;
6
+ const core_1 = require("@looply/core");
6
7
  /** The immutable fields, named once so the comparison and its test agree. */
7
8
  exports.IMMUTABLE_GRANT_FIELDS = [
8
9
  'controllerId',
@@ -18,7 +19,13 @@ exports.IMMUTABLE_GRANT_FIELDS = [
18
19
  * which is a contradiction rather than an absence, since the machine only holds
19
20
  * grants the server minted.
20
21
  */
21
- function reconcileGrant(local, remote, goal, now) {
22
+ function reconcileGrant(local, remote, goal, now,
23
+ /**
24
+ * How long this machine has seen the goal wait without spending (`grant-pause.ts`). The
25
+ * server's own figure (`remote.pausedMs`) lags it by at most one report; the larger of the two
26
+ * is the clock that stood still. Capped by core's MAX_GRANT_PAUSE_MS either way.
27
+ */
28
+ localPausedMs = 0) {
22
29
  if (remote === null) {
23
30
  return {
24
31
  kind: 'mismatch',
@@ -66,7 +73,7 @@ function reconcileGrant(local, remote, goal, now) {
66
73
  // The clock, checked against the SERVER's copy. A machine whose clock ran
67
74
  // fast must not be able to extend an authorization, and one whose clock ran
68
75
  // slow must not keep spending past the end.
69
- const expires = Date.parse(remote.expiresAt);
76
+ const expires = (0, core_1.effectiveExpiry)(remote.expiresAt, Math.max(remote.pausedMs ?? 0, localPausedMs));
70
77
  if (Number.isNaN(expires)) {
71
78
  return { kind: 'mismatch', because: 'the expiry on this grant cannot be read' };
72
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grant-reconcile.js","sourceRoot":"","sources":["../src/grant-reconcile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grant-reconcile.js","sourceRoot":"","sources":["../src/grant-reconcile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { EnvironmentCode, GoalHold } from '@looply/core';
2
+ import type { AutonomyProgress } from './autonomy-store';
3
+ import { type EnvironmentHoldFact } from './environment-hold';
4
+ /**
5
+ * THE DAEMON'S HANDLE ON A GOAL THAT WAITS: built once per project, so `daemon-cmd` gains a few
6
+ * fields on the tick and nothing else.
7
+ *
8
+ * environmentHold(grant) — is a machine fault being waited out (`environment-hold.ts`)?
9
+ * onEnvironmentFault(...) — a Start was voided for one: write the hold, tell the server;
10
+ * grantClock — the paused clock (`grant-pause.ts`), and its report to the server;
11
+ * dependencyWait / moved — say a dependency hold to the server, and clear it once the goal moves.
12
+ *
13
+ * Every server call here is fire-and-forget: the server's copy is for a reader (AutoRyn says
14
+ * "Can't start yet: …"), and a failure is retried on the next change or the next minute.
15
+ */
16
+ export interface GrantWaitingDeps {
17
+ readonly stateDir: string;
18
+ readonly projectDir: string;
19
+ readonly projectId: string;
20
+ readonly client: {
21
+ recordAutonomyPause(projectId: string, controllerId: string, pausedMs: number): Promise<{
22
+ pausedMs: number;
23
+ }>;
24
+ recordGoalHold(projectId: string, goalId: string, hold: GoalHold | null): Promise<unknown>;
25
+ };
26
+ readonly log: (line: string) => void;
27
+ /** The Looply version running now. Defaults to this package's own. */
28
+ readonly looplyVersion?: string;
29
+ /** The config digest now. Defaults to `configDigest(projectDir)`. */
30
+ readonly digest?: () => string;
31
+ }
32
+ export interface GrantWaiting {
33
+ environmentHold(grant: AutonomyProgress): EnvironmentHoldFact;
34
+ onEnvironmentFault(grant: AutonomyProgress, code: EnvironmentCode, because: string): void;
35
+ readonly grantClock: {
36
+ expiresAt(grant: AutonomyProgress, now: number): string;
37
+ waiting(grant: AutonomyProgress, waiting: boolean, now: number): void;
38
+ };
39
+ /** The local paused figure, for reconcile. */
40
+ pausedMs(grant: AutonomyProgress, now: number): number;
41
+ /** A dependency hold, said to the server once per change. */
42
+ dependencyHold(goalId: string, because: string): void;
43
+ /** The goal moved (launched or ended): any hold the server shows is cleared. */
44
+ moved(goalId: string): void;
45
+ }
46
+ /** This package's version, read the way `looply --version` reads it. */
47
+ export declare function packageVersion(): string;
48
+ export declare function makeGrantWaiting(deps: GrantWaitingDeps): GrantWaiting;
49
+ //# sourceMappingURL=grant-waiting-wiring.d.ts.map