@xioflow/kernel 0.1.4 → 0.2.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 (39) hide show
  1. package/README.md +27 -8
  2. package/dist/domain.d.ts +40 -6
  3. package/dist/domain.d.ts.map +1 -1
  4. package/dist/domain.js +388 -24
  5. package/dist/domain.js.map +1 -1
  6. package/dist/driver/node-driver.d.ts +11 -9
  7. package/dist/driver/node-driver.d.ts.map +1 -1
  8. package/dist/driver/node-driver.js +224 -225
  9. package/dist/driver/node-driver.js.map +1 -1
  10. package/dist/driver/process-facts.d.ts +25 -0
  11. package/dist/driver/process-facts.d.ts.map +1 -0
  12. package/dist/driver/process-facts.js +164 -0
  13. package/dist/driver/process-facts.js.map +1 -0
  14. package/dist/driver/sampler.d.ts +51 -0
  15. package/dist/driver/sampler.d.ts.map +1 -0
  16. package/dist/driver/sampler.js +224 -0
  17. package/dist/driver/sampler.js.map +1 -0
  18. package/dist/driver/types.d.ts +29 -1
  19. package/dist/driver/types.d.ts.map +1 -1
  20. package/dist/recovery/engine.d.ts +2 -0
  21. package/dist/recovery/engine.d.ts.map +1 -1
  22. package/dist/recovery/engine.js +137 -14
  23. package/dist/recovery/engine.js.map +1 -1
  24. package/dist/store/sqlite.d.ts +12 -0
  25. package/dist/store/sqlite.d.ts.map +1 -1
  26. package/dist/store/sqlite.js +162 -12
  27. package/dist/store/sqlite.js.map +1 -1
  28. package/dist/supervisor/supervisor.d.ts +15 -0
  29. package/dist/supervisor/supervisor.d.ts.map +1 -1
  30. package/dist/supervisor/supervisor.js +619 -214
  31. package/dist/supervisor/supervisor.js.map +1 -1
  32. package/dist/testing/contract-suite.d.ts.map +1 -1
  33. package/dist/testing/contract-suite.js +301 -11
  34. package/dist/testing/contract-suite.js.map +1 -1
  35. package/dist/types.d.ts +37 -0
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/types.js +29 -0
  38. package/dist/types.js.map +1 -1
  39. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AASjC,OAAO,EAOL,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAsBrB,MAAM,OAAO,iBAAiB;IAcT,MAAM;IACN,MAAM;IAdjB,gBAAgB,GAUpB,IAAI,GAAG,EAAE,CAAC;IAEd,YACmB,MAAuB,EACvB,MAAsB;sBADtB,MAAM;sBACN,MAAM;IACtB,CAAC;IAEG,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,OAA8B;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,UAAU;QACvE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAM,YAAY;QAExE,6CAA6C;QAC7C,IAAI,OAAO,CAAC,cAAc,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,cAAc,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;gBACvF,MAAM,IAAI,0BAA0B,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC1E,MAAM,IAAI,0BAA0B,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC9E,MAAM,IAAI,0BAA0B,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,MAAM,EAAE,GAAc;YACpB,EAAE,EAAE,OAAO,CAAC,IAAI;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC7G,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM,EAAE,SAAS;SAClB,CAAC;QAEF,iBAAiB;QACjB,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CACzC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,aAAa,IAAI,CAAC,EAC1B,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,sDAAsD;QACtD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtE,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,MAA4B,CAAC;QACjC,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,UAAe,EAAE,CAAC;YACzB,uCAAuC;YACvC,MAAM,UAAU,GAA2B;gBACzC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,UAAU,EAAE,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC;gBACjD,YAAY,EAAE,UAAU,EAAE,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC;gBACvD,WAAW,EAAE,KAAK;gBAClB,oBAAoB,EAAE,sBAAsB;gBAC5C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtF,MAAM,OAAO,GAAG;YACd,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,KAAK;YACtB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,SAA0C;YAC7D,WAAW,EAAE,SAAmD;SACjE,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,sBAAsB;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;QAE9E,2CAA2C;QAC3C,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;YAChC,gBAAgB,IAAI,KAAK,CAAC;YAC1B,IACE,OAAO,CAAC,cAAc,EAAE,WAAW,KAAK,MAAM;gBAC9C,OAAO,CAAC,cAAc,CAAC,cAAc;gBACrC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc;gBACxD,CAAC,OAAO,CAAC,iBAAiB,EAC1B,CAAC;gBACD,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,mBAAuC,CAAC;QAC5C,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE;YACtE,IAAI,CAAC,OAAO,CAAC,aAAa;gBAAE,OAAO;YACnC,IAAI,CAAC;gBACH,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mBAAmB,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAC3C,MAAM,CAAC,MAAM,EACb,QAAQ,EACR,eAAe,EACf,OAAO,EACP,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAC3C,MAAM,CAAC,MAAM,EACb,QAAQ,EACR,eAAe,EACf,OAAO,EACP,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAC;QAEF,IAAI,YAAY,GAA0B,IAAI,CAAC;QAC/C,MAAM,cAAc,GAClB,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;gBACjC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACzE,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,OAAO,CAAY,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEvC,0BAA0B;QAC1B,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,gBAAgB,GAA0B,IAAI,CAAC;QACnD,IACE,IAAI,CAAC,MAAM,CAAC,aAAa;YACzB,OAAO,CAAC,cAAc;YACtB,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,WAAW,KAAK,SAAS,CAAC,EACnG,CAAC;YACD,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBACxC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAClE,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC9D,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAE3D,IAAI,OAAO,CAAC,cAAc,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;wBACnD,IAAI,OAAO,CAAC,cAAc,CAAC,cAAc,IAAI,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;4BACtG,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;4BAC9C,IAAI,gBAAgB;gCAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;4BACtD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;wBACvE,CAAC;6BAAM,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;4BAC1G,OAAO,CAAC,iBAAiB,GAAG,cAAc,CAAC;4BAC3C,IAAI,gBAAgB;gCAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;4BACtD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;wBACpE,CAAC;6BAAM,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;4BAChG,OAAO,CAAC,iBAAiB,GAAG,eAAe,CAAC;4BAC5C,IAAI,gBAAgB;gCAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;4BACtD,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;wBACrE,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;YAC3D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBACvC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/D,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACrD,CAAC,CAAC;YAEH,IAAI,YAAY;gBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,gBAAgB;gBAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAEtD,IAAI,UAAsE,CAAC;YAE3E,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,iBAAiB,GAAG,WAAW,CAAC;gBACxC,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC/D,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,aAAa,CAAC,GAAI,CAAC;YAClC,CAAC;YAED,UAAU;YACV,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7F,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;YAE1F,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC7B,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;aACtC,CAAC,CAAC;YAEH,iCAAiC;YACjC,oCAAoC;YACpC,IAAI,uBAAuB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACtE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM,WAAW,GAAwB;wBACvC,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,eAAe;wBACvB,MAAM,EAAE,WAAW,MAAM,CAAC,QAAQ,CAAC,GAAG,oEAAoE,UAAU,CAAC,YAAY,EAAE;wBACnI,gBAAgB,EAAE,sFAAsF;wBACxG,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;wBAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACtC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;oBAC/E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;oBACzF,OAAO,WAAgD,CAAC;gBAC1D,CAAC;gBACD,uBAAuB,GAAG,IAAI,CAAC;gBAC/B,wBAAwB;gBACxB,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;oBAC7B,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;iBACzE,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,wCAAwC;gBACxC,aAAa,CAAC,aAAa,EAAE,CAAC;gBAC9B,aAAa,CAAC,aAAa,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC;YACrE,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;YAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC;YAElE,SAAS;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEnE,MAAM,0BAA0B,GAC9B,OAAO,CAAC,QAAQ;gBAChB,OAAO,CAAC,iBAAiB,KAAK,iBAAiB;gBAC/C,OAAO,CAAC,iBAAiB,KAAK,cAAc;gBAC5C,OAAO,CAAC,iBAAiB,KAAK,eAAe;gBAC7C,OAAO,CAAC,iBAAiB,KAAK,iBAAiB,CAAC;YAElD,MAAM,WAAW,GACf,UAAU,CAAC,QAAQ,KAAK,CAAC;gBACzB,CAAC,0BAA0B;gBAC3B,CAAC,OAAO,CAAC,eAAe,CAAC;YAE3B,MAAM,WAAW,GAAG,0BAA0B;gBAC5C,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC,eAAe;oBACzB,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,QAAQ,CAAC;YAEb,MAAM,iBAAiB,GACrB,OAAO,CAAC,iBAAiB,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEvF,MAAM,MAAM,GAA2B;gBACrC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,MAAM,EAAE,UAAU,CAAC,OAAO;gBAC1B,MAAM,EAAE,UAAU,CAAC,OAAO;gBAC1B,WAAW;gBACX,eAAe,EAAE,UAAU,CAAC,WAAW;gBACvC,eAAe,EAAE,UAAU,CAAC,WAAW;gBACvC,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,WAAW,EAAE,UAAU,CAAC,SAAS;gBACjC,WAAW,EAAE,UAAU,CAAC,SAAS;gBACjC,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,SAAS;gBACT,UAAU;gBACV,iBAAiB;gBACjB,eAAe;gBACf,SAAS,EAAE,aAAa;gBACxB,oBAAoB,EAAE,QAAQ;gBAC9B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,OAAO,CAAC,WAAW,CAAC;YAC5B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC/C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAwC,CAAC;gBACzE,IAAI,YAAY,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;oBAC7C,2BAA2B;oBAC3B,OAAO,UAAU,CAAC,MAA2C,CAAC;gBAChE,CAAC;gBACD,wCAAwC;gBACxC,gCAAgC;gBAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBACzE,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,mBAAmB;YACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAEtE,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,CACpC,OAAO,CAAC,KAAK,EACb,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EACpD,iBAAiB,CAClB,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY;gBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,gBAAgB;gBAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACtD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,OAAO,GAAW,IAAI;QAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,IAAY,EACZ,MAAyB,EACzB,OAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,CAAC;QAED,MAAM,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;YAClD,CAAC;YAED,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBAChC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAElC,qCAAqC;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE/D,uDAAuD;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEhF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,4BAA4B;gBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAA2B;wBAC3C,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;wBAC5D,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,4CAA4C,MAAM,GAAG;wBAC7D,WAAW,EAAE,KAAK;wBAClB,iBAAiB,EAAE,MAAM;wBACzB,oBAAoB,EAAE,sBAAsB;wBAC5C,UAAU,EAAE,CAAC;wBACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACtC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACvE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,CACpC,EAAE,CAAC,KAAK,EACR,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EACpD,MAAM,CACP,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC/B,MAAM,WAAW,GAAG;wBAClB,IAAI,EAAE,eAAwB;wBAC9B,MAAM,EAAE,eAAwB;wBAChC,MAAM,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,oCAAoC,UAAU,CAAC,YAAY,EAAE;wBAC1G,gBAAgB,EAAE,sFAAsF;wBACxG,UAAU,EAAE,CAAC;wBACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACtC,CAAC;oBACF,qCAAqC;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;oBACvE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEO,kBAAkB,CACxB,MAA6B,EAC7B,QAAgB,EAChB,aAAsB,EACtB,OAAiC,EACjC,MAAgC;QAYhC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,UAAU,GAAuB,SAAS,CAAC;QAE/C,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,IAAI,WAAW;gBAAE,OAAO;YACxB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACtB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;gBAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChE,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC;gBACxB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACtB,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEjB,YAAY;gBACZ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBAC7B,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;gBAED,SAAS;gBACT,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;wBAC1C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;4BAClB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;4BACxC,YAAY,IAAI,SAAS,CAAC;wBAC5B,CAAC;wBACD,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,GAAG,EAAE;gBACd,UAAU,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC/C,WAAW;oBACX,SAAS,EAAE,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBACnE,UAAU;oBACV,SAAS;iBACV,CAAC;YACJ,CAAC;YACD,aAAa;YACb,aAAa,EAAE,UAAU;SAC1B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract-suite.d.ts","sourceRoot":"","sources":["../../src/testing/contract-suite.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EAEf,cAAc,EACd,iBAAiB,EAKlB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;IACpD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAwBD,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,QAuxB9C"}
1
+ {"version":3,"file":"contract-suite.d.ts","sourceRoot":"","sources":["../../src/testing/contract-suite.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EAEf,cAAc,EACd,iBAAiB,EAOlB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;IACpD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAwBD,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,QAwmC9C"}
@@ -2,7 +2,8 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
2
  import fs from 'node:fs';
3
3
  import path from 'node:path';
4
4
  import crypto from 'node:crypto';
5
- import { ExecutionDomain, SqliteStore, ProcessSupervisor, RecoveryEngine, ResourceConflictError, UnsupportedCapabilityError, EpochFencedError, } from '../index.js';
5
+ import { spawn } from 'node:child_process';
6
+ import { ExecutionDomain, SqliteStore, ProcessSupervisor, RecoveryEngine, ResourceConflictError, UnsupportedCapabilityError, EpochFencedError, OperationNotActiveError, DuplicateOperationError, } from '../index.js';
6
7
  function ensureTaskAndRun(domain, taskId, runId) {
7
8
  const store = domain.getStore();
8
9
  if (!store.getTask(taskId)) {
@@ -25,7 +26,7 @@ function ensureTaskAndRun(domain, taskId, runId) {
25
26
  }
26
27
  }
27
28
  export function defineContractTestSuite(consumerName, createContext) {
28
- describe(`18-Item Consistency Contract Suite: [${consumerName}]`, () => {
29
+ describe(`Consistency Contract Suite: [${consumerName}]`, () => {
29
30
  let ctx;
30
31
  beforeEach(async () => {
31
32
  ctx = await createContext();
@@ -103,7 +104,7 @@ export function defineContractTestSuite(consumerName, createContext) {
103
104
  return 'cannot_determine';
104
105
  },
105
106
  async terminate() {
106
- return { stopped: false, scope: 'unknown', errorDetails: 'Cannot confirm exit' };
107
+ return { stopped: 'cannot_determine', scope: 'unknown', errorDetails: 'Cannot confirm exit' };
107
108
  },
108
109
  };
109
110
  const customSupervisor = new ProcessSupervisor(domain, mockUnconfirmedDriver);
@@ -120,7 +121,7 @@ export function defineContractTestSuite(consumerName, createContext) {
120
121
  });
121
122
  await new Promise((r) => setTimeout(r, 100));
122
123
  const cancelRes = await customSupervisor.cancelOperation('op-c3-stubborn');
123
- expect(cancelRes.stopped).toBe(false);
124
+ expect(cancelRes.stopped).toBe('cannot_determine');
124
125
  // 核心断言:未确认停止前,排他锁绝不释放!
125
126
  expect(domain.isResourceLocked('res:c3-lock')).toBe(true);
126
127
  const op = domain.getStore().getOperation('op-c3-stubborn');
@@ -148,11 +149,11 @@ export function defineContractTestSuite(consumerName, createContext) {
148
149
  }
149
150
  // 2. 带排队等待异步放行
150
151
  setTimeout(() => {
151
- domain.releaseResources('op-owner-A', ['res:exclusive-port']);
152
+ domain.internalReleaseResources('op-owner-A', ['res:exclusive-port']);
152
153
  }, 50);
153
154
  await domain.allocateResourcesWithWait('op-requester-B', ['res:exclusive-port'], 300);
154
155
  expect(domain.getResourceOwner('res:exclusive-port')).toBe('op-requester-B');
155
- domain.releaseResources('op-requester-B');
156
+ domain.internalReleaseResources('op-requester-B');
156
157
  });
157
158
  it('契约 5: 不确定副作用防重放,重启恢复时阻断自动重试并保留隔离', async () => {
158
159
  const { domain, driver } = ctx;
@@ -353,7 +354,7 @@ export function defineContractTestSuite(consumerName, createContext) {
353
354
  expect(grandchildAliveBefore).toBe(true);
354
355
  // 执行整组停止流水线
355
356
  const stopRes = await supervisor.cancelOperation('op-c9-group', 1500);
356
- expect(stopRes.stopped).toBe(true);
357
+ expect(stopRes.stopped).toBe('confirmed_stopped');
357
358
  expect(domain.isResourceLocked('res:c9-group')).toBe(false);
358
359
  // 核心真实断言:整组 kill(-pgid) 广播后,同组孙进程必须确定性死亡,绝不泄漏为 PID 1 孤儿!
359
360
  let grandchildAliveAfter = true;
@@ -422,8 +423,8 @@ export function defineContractTestSuite(consumerName, createContext) {
422
423
  expect(escapedAliveBefore).toBe(true);
423
424
  // 调用停止流水线:NodePlatformDriver 真实后代树扫描探测到逃逸残留
424
425
  const cancelRes = await supervisor.cancelOperation('op-c10-escape', 1000);
425
- // 真实上报 stopped: false,且 residualPids 包含逃逸孤儿 PID
426
- expect(cancelRes.stopped).toBe(false);
426
+ // 真实上报 stopped: cannot_determine,且 residualPids 包含逃逸孤儿 PID
427
+ expect(cancelRes.stopped).toBe('cannot_determine');
427
428
  expect(cancelRes.residualPids).toBeDefined();
428
429
  expect(cancelRes.residualPids).toContain(escapedPid);
429
430
  // 核心架构红线:驱动无法确认停止时,必须转入 indeterminate,绝对保留隔离屏障与排他锁!
@@ -538,11 +539,11 @@ export function defineContractTestSuite(consumerName, createContext) {
538
539
  domain.allocateResources('op-second', ['res:op2']);
539
540
  }).toThrowError(ResourceConflictError);
540
541
  setTimeout(() => {
541
- domain.releaseResources('op-first');
542
+ domain.internalReleaseResources('op-first');
542
543
  }, 60);
543
544
  await domain.allocateResourcesWithWait('op-second', ['res:op2'], 300);
544
545
  expect(domain.getResourceOwner('res:op2')).toBe('op-second');
545
- domain.releaseResources('op-second');
546
+ domain.internalReleaseResources('op-second');
546
547
  });
547
548
  it('契约 15: 大输出流式落盘转储与 fsync 校验 (Spill to Artifacts)', async () => {
548
549
  const { supervisor, domain, tempDir } = ctx;
@@ -695,6 +696,295 @@ export function defineContractTestSuite(consumerName, createContext) {
695
696
  expect(throwing.stdout).toBe('captured-anyway');
696
697
  expect(throwing.streamCallbackError).toBe('consumer projection failed');
697
698
  });
699
+ it('契约 19: 超时 + 逃逸后代持有管道,操作在有界时间内返回 indeterminate,不挂到逃逸进程退出', async () => {
700
+ const { supervisor, domain, tempDir } = ctx;
701
+ ensureTaskAndRun(domain, 'task-c19', 'run-c19');
702
+ const subPidFile = path.join(tempDir, 'sub-c19.pid');
703
+ const runnerScript = `
704
+ const { spawn } = require('node:child_process');
705
+ const fs = require('node:fs');
706
+ const sub = spawn(process.execPath, ['-e', 'setTimeout(() => {}, 8000);'], {
707
+ detached: true,
708
+ stdio: ['ignore', 'inherit', 'inherit']
709
+ });
710
+ fs.writeFileSync(${JSON.stringify(subPidFile)}, String(sub.pid));
711
+ setInterval(() => {}, 1000);
712
+ `;
713
+ const startedAt = Date.now();
714
+ const result = await supervisor.executeProcess({
715
+ runId: 'run-c19',
716
+ opId: 'op-c19-timeout-bounded',
717
+ name: 'timeout-bounded-op',
718
+ command: {
719
+ execPath: process.execPath,
720
+ args: ['-e', runnerScript],
721
+ cwd: tempDir,
722
+ },
723
+ requiredResources: ['res:c19-bounded'],
724
+ timeoutMs: 600,
725
+ drainTimeoutMs: 300,
726
+ });
727
+ const duration = Date.now() - startedAt;
728
+ expect(duration).toBeLessThan(3500);
729
+ expect(result.status).toBe('indeterminate');
730
+ expect(domain.isResourceLocked('res:c19-bounded')).toBe(true);
731
+ // 清理逃逸孙进程
732
+ if (fs.existsSync(subPidFile)) {
733
+ try {
734
+ const pid = parseInt(fs.readFileSync(subPidFile, 'utf8'), 10);
735
+ process.kill(pid, 'SIGKILL');
736
+ }
737
+ catch { }
738
+ }
739
+ }, 15_000);
740
+ it('契约 20: 停止不存在或已终结的操作返回显式 OperationNotActiveError', async () => {
741
+ const { supervisor, domain, tempDir } = ctx;
742
+ ensureTaskAndRun(domain, 'task-c20', 'run-c20');
743
+ // 1. 不存在的操作
744
+ await expect(supervisor.cancelOperation('op-c20-nonexistent')).rejects.toSatisfy((err) => {
745
+ expect(err).toBeInstanceOf(OperationNotActiveError);
746
+ expect(err.reason).toBe('not_found');
747
+ return true;
748
+ });
749
+ // 2. 已终结的操作
750
+ const completedOpId = 'op-c20-completed';
751
+ await supervisor.executeProcess({
752
+ runId: 'run-c20',
753
+ opId: completedOpId,
754
+ name: 'completed-op',
755
+ command: {
756
+ execPath: process.execPath,
757
+ args: ['-e', 'process.exit(0);'],
758
+ cwd: tempDir,
759
+ },
760
+ requiredResources: [],
761
+ });
762
+ await expect(supervisor.cancelOperation(completedOpId)).rejects.toSatisfy((err) => {
763
+ expect(err).toBeInstanceOf(OperationNotActiveError);
764
+ expect(err.reason).toBe('already_completed');
765
+ return true;
766
+ });
767
+ });
768
+ it('契约 21: 僵尸 leader + 存活后代:恢复按组清场后才结清', async () => {
769
+ const { domain, driver, tempDir } = ctx;
770
+ const opId = 'op-c21-zombie';
771
+ const runId = 'run-c21';
772
+ ensureTaskAndRun(domain, 'task-c21', runId);
773
+ domain.registerOperationIntent({
774
+ id: opId,
775
+ runId,
776
+ kind: 'process',
777
+ name: 'process:zombie-with-orphan',
778
+ inputFingerprint: 'fp-c21',
779
+ requiredResources: ['res:c21'],
780
+ status: 'intent_registered',
781
+ });
782
+ const descendant = spawn(process.execPath, ['-e', 'process.on("SIGTERM",()=>{}); setInterval(()=>{},1000)'], { detached: true, stdio: ['ignore', 'inherit', 'inherit'] });
783
+ const descendantPid = descendant.pid;
784
+ descendant.unref();
785
+ domain.getStore().updateOperationStatus(opId, 'active', {
786
+ pid: descendantPid,
787
+ pgid: descendantPid,
788
+ spawnTime: new Date().toISOString(),
789
+ commandFingerprint: `${process.execPath}:-e`,
790
+ });
791
+ domain.getStore().updateOperationStatus(opId, 'stopping');
792
+ const stored = domain.getStore().getOperation(opId);
793
+ domain.getStore().updateOperationStatus(opId, 'active', {
794
+ ...stored.processIdentity,
795
+ pid: 2_147_483_000,
796
+ });
797
+ try {
798
+ const report = await new RecoveryEngine(domain, driver).recover();
799
+ expect(report.recoveredOperations).toHaveLength(1);
800
+ expect(report.recoveredOperations[0].action).toBe('marked_dead');
801
+ expect(report.recoveredOperations[0].resourcesReleased).toBe(true);
802
+ expect(domain.isResourceLocked('res:c21')).toBe(false);
803
+ const result = domain.getStore().getOperation(opId).result;
804
+ expect(result.status).toBe('failed');
805
+ expect(result.kind === 'process' ? result.stderr : '').toContain('reaped during recovery');
806
+ }
807
+ finally {
808
+ try {
809
+ process.kill(-descendantPid, 'SIGKILL');
810
+ }
811
+ catch { }
812
+ }
813
+ }, 20_000);
814
+ it('契约 22: 重复 opId 提交抛出 DuplicateOperationError,原操作租约与可取消性不受影响', async () => {
815
+ const { supervisor, domain, tempDir } = ctx;
816
+ ensureTaskAndRun(domain, 'task-c22', 'run-c22');
817
+ const opId = 'op-c22-duplicate';
818
+ const execPromise = supervisor.executeProcess({
819
+ runId: 'run-c22',
820
+ opId,
821
+ name: 'sleep-op',
822
+ command: {
823
+ execPath: process.execPath,
824
+ args: ['-e', 'setInterval(() => {}, 1000);'],
825
+ cwd: tempDir,
826
+ },
827
+ requiredResources: ['res:c22'],
828
+ });
829
+ await new Promise((r) => setTimeout(r, 100));
830
+ // 重复提交相同 opId 必须抛出 DuplicateOperationError
831
+ await expect(supervisor.executeProcess({
832
+ runId: 'run-c22',
833
+ opId,
834
+ name: 'duplicate-op',
835
+ command: {
836
+ execPath: process.execPath,
837
+ args: ['-e', 'process.exit(0);'],
838
+ cwd: tempDir,
839
+ },
840
+ requiredResources: ['res:c22'],
841
+ })).rejects.toThrow(DuplicateOperationError);
842
+ // 原操作排他租约未被破坏
843
+ expect(domain.isResourceLocked('res:c22')).toBe(true);
844
+ // 原操作仍可成功取消
845
+ const stopRes = await supervisor.cancelOperation(opId, 1000);
846
+ expect(stopRes.stopped).toBe('confirmed_stopped');
847
+ const opResult = await execPromise;
848
+ expect(opResult.status).toBe('cancelled');
849
+ });
850
+ it('契约 23: 恢复后 Run 状态收敛,无未终结操作时 Run 不停留在 running', async () => {
851
+ const { domain, driver } = ctx;
852
+ const taskId = 'task-c23';
853
+ const runId = 'run-c23';
854
+ ensureTaskAndRun(domain, taskId, runId);
855
+ domain.registerOperationIntent({
856
+ id: 'op-c23-1',
857
+ runId,
858
+ kind: 'process',
859
+ name: 'clean-crashed-op',
860
+ inputFingerprint: 'f'.repeat(64),
861
+ requiredResources: ['res:c23-clean'],
862
+ status: 'intent_registered',
863
+ });
864
+ const recovery = new RecoveryEngine(domain, driver);
865
+ await recovery.recover();
866
+ const runAfter = domain.getStore().getRun(runId);
867
+ expect(runAfter?.status).toBe('failed');
868
+ expect(runAfter?.terminationReason).toBe('crash_detected');
869
+ });
870
+ it('契约 24: 人工裁决受审计出口:仅对 indeterminate 生效,写 journal 并受代际栅栏约束', async () => {
871
+ const { domain } = ctx;
872
+ const opId = 'op-c24-indet';
873
+ const runId = 'run-c24';
874
+ ensureTaskAndRun(domain, 'task-c24', runId);
875
+ domain.registerOperationIntent({
876
+ id: opId,
877
+ runId,
878
+ kind: 'process',
879
+ name: 'indet-op',
880
+ inputFingerprint: 'f'.repeat(64),
881
+ requiredResources: ['res:c24'],
882
+ status: 'intent_registered',
883
+ });
884
+ // 写入 indeterminate 结果
885
+ domain.getStore().recordOperationResult(opId, {
886
+ kind: 'indeterminate',
887
+ status: 'indeterminate',
888
+ reason: 'Process cannot be determined',
889
+ recoveryGuidance: 'Check manually',
890
+ durationMs: 10,
891
+ completedAt: new Date().toISOString(),
892
+ }, false // 不释放租约
893
+ );
894
+ expect(domain.isResourceLocked('res:c24')).toBe(true);
895
+ // 人工裁决 confirmed_stopped 成功释放租约
896
+ const record = await domain.adjudicate(opId, 'confirmed_stopped', 'admin-user', 'Manual verified dead');
897
+ expect(record.verdict).toBe('confirmed_stopped');
898
+ expect(domain.isResourceLocked('res:c24')).toBe(false);
899
+ const events = domain.getStore().getJournalEvents(domain.domainId);
900
+ const adjEvent = events.find((e) => e.type === 'OPERATION_ADJUDICATED' && e.operationId === opId);
901
+ expect(adjEvent).toBeDefined();
902
+ });
903
+ it('契约 25: 内存保留 Head + Tail,截断点落在 UTF-8 边界', async () => {
904
+ const { supervisor, domain, tempDir } = ctx;
905
+ ensureTaskAndRun(domain, 'task-c25', 'run-c25');
906
+ const result = await supervisor.executeProcess({
907
+ runId: 'run-c25',
908
+ opId: 'op-c25-head-tail',
909
+ name: 'head-tail-op',
910
+ command: {
911
+ execPath: process.execPath,
912
+ args: [
913
+ '-e',
914
+ 'process.stdout.write("HEAD-START-12345\\n" + "x".repeat(120 * 1024) + "\\nTAIL-END-67890");',
915
+ ],
916
+ cwd: tempDir,
917
+ },
918
+ requiredResources: [],
919
+ maxOutputBytes: 10 * 1024,
920
+ });
921
+ expect(result.status).toBe('succeeded');
922
+ expect(result.isTruncated).toBe(true);
923
+ expect(result.stdout).toContain('HEAD-START-12345');
924
+ expect(result.stdout).toContain('TAIL-END-67890');
925
+ expect(result.stdout).toContain('[... truncated');
926
+ });
927
+ it('契约 26: 转储失败可见:spillError 出现时不返回引用', async () => {
928
+ const { supervisor, domain, tempDir } = ctx;
929
+ ensureTaskAndRun(domain, 'task-c26', 'run-c26');
930
+ const nonWritablePath = path.join(tempDir, 'non-writable-file');
931
+ fs.writeFileSync(nonWritablePath, 'block');
932
+ const result = await supervisor.executeProcess({
933
+ runId: 'run-c26',
934
+ opId: 'op-c26-spill-err',
935
+ name: 'spill-err-op',
936
+ command: {
937
+ execPath: process.execPath,
938
+ args: ['-e', 'process.stdout.write("hello-spill-fail");'],
939
+ cwd: tempDir,
940
+ },
941
+ requiredResources: [],
942
+ artifactsDir: nonWritablePath,
943
+ });
944
+ expect(result.status).toBe('succeeded');
945
+ expect(result.spillError).toBeDefined();
946
+ expect(result.outputRef).toBeUndefined();
947
+ expect(result.stdout).toBe('hello-spill-fail');
948
+ });
949
+ it('契约 27: 未截断转储在结清时删除;pruneArtifacts 拒绝回收未终结 / 未裁决 op 的产物', async () => {
950
+ const { supervisor, domain, tempDir } = ctx;
951
+ ensureTaskAndRun(domain, 'task-c27', 'run-c27');
952
+ const artifactsDir = path.join(tempDir, 'artifacts');
953
+ // 1. 未截断转储在结清时自动删除
954
+ const untruncated = await supervisor.executeProcess({
955
+ runId: 'run-c27',
956
+ opId: 'op-c27-untruncated',
957
+ name: 'untruncated-op',
958
+ command: {
959
+ execPath: process.execPath,
960
+ args: ['-e', 'process.stdout.write("short text");'],
961
+ cwd: tempDir,
962
+ },
963
+ requiredResources: [],
964
+ artifactsDir,
965
+ });
966
+ expect(untruncated.status).toBe('succeeded');
967
+ expect(untruncated.isTruncated).toBe(false);
968
+ expect(untruncated.outputRef).toBeUndefined();
969
+ const files = fs.existsSync(artifactsDir) ? fs.readdirSync(artifactsDir) : [];
970
+ expect(files.filter((f) => f.includes('op-c27-untruncated'))).toHaveLength(0);
971
+ // 2. pruneArtifacts 拒绝回收未终结 / 未裁决 op 的产物
972
+ domain.registerOperationIntent({
973
+ id: 'op-c27-active',
974
+ runId: 'run-c27',
975
+ kind: 'process',
976
+ name: 'active-op',
977
+ inputFingerprint: 'f'.repeat(64),
978
+ requiredResources: [],
979
+ status: 'intent_registered',
980
+ });
981
+ fs.mkdirSync(artifactsDir, { recursive: true });
982
+ const activeFile = path.join(artifactsDir, 'op-c27-active-stdout.log');
983
+ fs.writeFileSync(activeFile, 'active artifact');
984
+ const pruneResult = domain.pruneArtifacts();
985
+ expect(pruneResult.retained).toContain(activeFile);
986
+ expect(fs.existsSync(activeFile)).toBe(true);
987
+ });
698
988
  });
699
989
  }
700
990
  //# sourceMappingURL=contract-suite.js.map