@dsh-enhanced/assistant-automations 0.1.64 → 0.1.66

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 (50) hide show
  1. package/README.md +34 -1
  2. package/lib/coordinator.d.ts +15 -0
  3. package/lib/coordinator.d.ts.map +1 -1
  4. package/lib/coordinator.js +12 -0
  5. package/lib/coordinator.js.map +1 -1
  6. package/lib/host-agent-execution.d.ts +24 -0
  7. package/lib/host-agent-execution.d.ts.map +1 -0
  8. package/lib/host-agent-execution.js +248 -0
  9. package/lib/host-agent-execution.js.map +1 -0
  10. package/lib/host-executors.d.ts +10 -1
  11. package/lib/host-executors.d.ts.map +1 -1
  12. package/lib/host-executors.js +37 -7
  13. package/lib/host-executors.js.map +1 -1
  14. package/lib/index.d.ts +3 -2
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/index.js +2 -1
  17. package/lib/index.js.map +1 -1
  18. package/lib/native-agent-execution.d.ts +123 -0
  19. package/lib/native-agent-execution.d.ts.map +1 -0
  20. package/lib/native-agent-execution.js +922 -0
  21. package/lib/native-agent-execution.js.map +1 -0
  22. package/lib/operator.d.ts +56 -2
  23. package/lib/operator.d.ts.map +1 -1
  24. package/lib/operator.js +307 -8
  25. package/lib/operator.js.map +1 -1
  26. package/lib/runner.d.ts +2 -86
  27. package/lib/runner.d.ts.map +1 -1
  28. package/lib/runner.js +2 -777
  29. package/lib/runner.js.map +1 -1
  30. package/lib/schedule.d.ts +2 -0
  31. package/lib/schedule.d.ts.map +1 -1
  32. package/lib/schedule.js +8 -1
  33. package/lib/schedule.js.map +1 -1
  34. package/lib/service.d.ts +38 -4
  35. package/lib/service.d.ts.map +1 -1
  36. package/lib/service.js +112 -8
  37. package/lib/service.js.map +1 -1
  38. package/lib/sqlite.d.ts +1 -1
  39. package/lib/sqlite.d.ts.map +1 -1
  40. package/lib/sqlite.js +53 -2
  41. package/lib/sqlite.js.map +1 -1
  42. package/lib/store.d.ts +47 -1
  43. package/lib/store.d.ts.map +1 -1
  44. package/lib/store.js +221 -10
  45. package/lib/store.js.map +1 -1
  46. package/lib/types.d.ts +59 -0
  47. package/lib/types.d.ts.map +1 -1
  48. package/lib/version.d.ts +1 -1
  49. package/lib/version.js +1 -1
  50. package/package.json +13 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-agent-execution.js","sourceRoot":"","sources":["../src/native-agent-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAQrE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EACL,qBAAqB,GAGtB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAA2D,MAAM,sBAAsB,CAAA;AACpI,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAqB,MAAM,0BAA0B,CAAA;AAG3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAI7B,MAAM,kBAAkB,CAAA;AAgBzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAQvD,MAAM,WAAW,GAAG;IAClB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;CACT,CAAA;AAEV,SAAS,SAAS,CAAC,MAA+B,EAAE,MAAmB;IACrE,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,IAAI,UAAmB,CAAA;IACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;iBACpC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;iBACtC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrD,IAAI,CAAC,EAAE,CAAC,CAAA;YACX,IAAI,IAAI,KAAK,EAAE;gBAAE,MAAM,GAAG,IAAI,CAAA;YAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACnC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACtC,IAAI,MAAM,KAAK,SAAS;wBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;IAC/D,CAAC;IACD,IAAI,OAAO,GAAsC,SAAS,CAAA;IAC1D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,GAAG,WAAW,CAAA;SACpC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACvF,MAAM,IAAI,GAAI,UAA+B,CAAC,IAAI,CAAA;QAClD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY;YAAE,OAAO,GAAG,WAAW,CAAA;aACnE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,WAAW,CAAA;aAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,GAAG,QAAQ,CAAA;IACrE,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,IAAI,UAAU;QAC5F,CAAC,CAAC,MAAM,CAAE,UAAgC,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,SAAS,CAAA;IACb,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;AACpF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAA6B;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACnE,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAA;QAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAoD;QAChE,SAAS,EAAE,kBAAkB;QAC7B,gBAAgB,EAAE,uBAAuB;QACzC,oBAAoB,EAAE,2BAA2B;QACjD,mBAAmB,EAAE,0BAA0B;QAC/C,gBAAgB,EAAE,uBAAuB;QACzC,gBAAgB,EAAE,uBAAuB;QACzC,aAAa,EAAE,oBAAoB;QACnC,mBAAmB,EAAE,0BAA0B;QAC/C,iBAAiB,EAAE,wBAAwB;QAC3C,eAAe,EAAE,sBAAsB;QACvC,mBAAmB,EAAE,0BAA0B;KAChD,CAAA;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAA;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,KAA6B,EAAE,MAAmB,EAAE,KAAc;IACtF,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,WAAW,CAAA;IACtC,IAAI,KAAK,KAAK,oBAAoB,IAAI,KAAK,KAAK,mBAAmB;QAAE,OAAO,QAAQ,CAAA;IACpF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;WAC7D,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC;QAAE,OAAO,QAAQ,CAAA;IACnG,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,eAAe,CAAA;IAC7G,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,gBAAgB,CAAA;IAClH,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAA;IACnF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAOnB;IACC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC;QAChB,GAAG,KAAK;QACR,YAAY,EAAE,KAAK,CAAC,YAAY,KAAK,MAAM;YACzC,CAAC,CAAC,KAAK,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YACtD,CAAC,CAAC,KAAK,CAAC,eAAe,KAAK,UAAU,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;gBAC3E,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,eAAe,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ;oBAC5G,CAAC,CAAC,oBAAoB;oBACtB,CAAC,CAAC,MAAM;KACf,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,OAAO,2BAA4B,SAAQ,4BAA4B;IAGtD;IAFZ,IAAI,GAAG,wCAAiD,CAAA;IAEjE,YAAqB,iBAAwD;QAC3E,KAAK,CACH,uDAAuD,iBAAiB,gCAAgC,EACxG,UAAU,CAAC;YACT,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,wCAAwC;YACrD,qBAAqB,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YACrF,eAAe,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACtE,qBAAqB,EAAE,iBAAiB;SACzC,CAAC,CACH,CAAA;QAXkB,sBAAiB,GAAjB,iBAAiB,CAAuC;QAY3E,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAA;AAC7D,MAAM,yBAAyB,GAAG,oBAAoB,CAAA;AAEtD;;;;GAIG;AACH,SAAS,wBAAwB,CAC/B,KAA4B,EAC5B,uBAA+B,EAC/B,QAAgB;IAEhB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACxD,sCAAsC;QACtC,KAAK,CAAC,UAAU,CAAC,EAAE;QACnB,KAAK,CAAC,UAAU,CAAC,EAAE;QACnB,uBAAuB;QACvB,4BAA4B;QAC5B,QAAQ;KACT,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACjB,OAAO,6BAA6B,MAAM,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA4B;IACxD,OAAO,KAAK,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE;WACvD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE;WAC/C,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE;WAC/C,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;WAC/B,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;WAC7C,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,0BAA0B,CACjC,KAA4B,EAC5B,UAAoC;IAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC;WAC7B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC;WACpD,UAAU,CAAC,WAAW,KAAK,YAAY;WACvC,UAAU,CAAC,SAAS,CAAC,UAAU,KAAK,yBAAyB,CAAA;AACpE,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,yBAAyB,CACvC,MAAuD,EACvD,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;IAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oDAAoD,QAAQ,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,4BAA4B,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,aAAa,4BAA4B,SAAS,MAAM,CAAC,MAAM,EAAE,CAC3G,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAuBD,SAAS,8BAA8B,CACrC,GAAe,EACf,QAAgB,EAChB,KAAa,EACb,QAAgB,EAChB,SAAiB;IAEjB,IAAI,SAAS,KAAK,CAAC;QAAE,OAAM;IAC3B,IAAI,yBAAyB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK,MAAM,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,IAAI,KAAK,kDAAkD,QAAQ,EAAE,CAChH,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,oBAAoB;IASL;IACA;IAEA;IAXF,wBAAwB,CAAS;IACjC,iBAAiB,CAAiD;IAClE,iBAAiB,CAAiD;IAClE,YAAY,CAA4C;IACxD,aAAa,CAA6C;IAC1D,SAAS,CAAS;IAEnC,YACmB,GAAY,EACZ,MAA8B,EAC/C,UAAsC,EAAE,EACvB,YAAyO;QAHzO,QAAG,GAAH,GAAG,CAAS;QACZ,WAAM,GAAN,MAAM,CAAwB;QAE9B,iBAAY,GAAZ,YAAY,CAA6N;QAE1P,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,KAAK,CAAA;QACzE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;QAClD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;QAClD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YACvH,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;QACzF,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAA4B;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;QAC9C,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,4BAA4B,CACpC,4EAA4E,EAC5E,UAAU,CAAC;gBACT,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB;gBACpE,WAAW,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,gBAAgB;gBACpF,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,QAAQ,KAAK,SAAS;oBAC/E,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,cAAc;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,4BAA4B,CACpC,mFAAmF,EACnF,UAAU,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,kCAAkC;gBACpH,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CACjK,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QACpC,IAAI,aAAiC,CAAA;QACrC,IAAI,kBAAkB,GAAG,KAAK,CAAA;QAC9B,IAAI,MAA+B,CAAA;QACnC,IAAI,UAA6B,CAAA;QACjC,IAAI,sBAAsB,GAAG,KAAK,CAAA;QAClC,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,IAAI,WAAqC,CAAA;QACzC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,KAAK,GAA2B,WAAW,CAAA;QAC/C,IAAI,qBAAqB,GAAoC,eAAe,CAAA;QAC5E,IAAI,eAAe,GAA8B,MAAM,CAAA;QACvD,IAAI,qBAAqB,GAAoC,QAAQ,KAAK,SAAS;YACjF,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,cAAc,CAAA;QAClB,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC/F,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;YAC7F,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAC/E,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;YAC3G,KAAK,GAAG,oBAAoB,CAAA;YAC5B,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;YACpG,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS;gBAAE,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC5E,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAwD,CAAA;YAC1I,KAAK,GAAG,mBAAmB,CAAA;YAC3B,MAAM,QAAQ,GAAG,YAAY,KAAK,SAAS;gBACzC,CAAC,CAAC,UAAU,CAAC,WAAW;gBACxB,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;YAE3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,KAAK,GAAG,oBAAoB,CAAA;gBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACtC,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,YAAY;wBAClB,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;wBACvB,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;qBAChC;oBACD,MAAM,EAAE,UAAU,CAAC,YAAa;oBAChC,cAAc,EAAE;wBACd,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,4BAA4B,EAAE,QAAQ;qBACtG,CAAC,IAAI,CAAC,GAAG,CAAC;iBACZ,CAAC,CAAA;gBACF,IAAI,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC9D,MAAM,IAAI,2BAA2B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBAC3D,CAAC;gBACD,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;gBACzC,qBAAqB,GAAG,UAAU,CAAA;YACpC,CAAC;YAED,KAAK,GAAG,WAAW,CAAA;YACnB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;gBACxD,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;gBACjC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;aACG,CAAC,CAAA;YACvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAA;gBAC3C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK;oBAC/F,GAAG,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC3K,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe;uBACpI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,eAAe;oBAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;gBACnJ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;YACpC,CAAC;YACD,KAAK,GAAG,gBAAgB,CAAA;YACxB,sBAAsB,GAAG,IAAI,CAAA;YAC7B,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBAC3B,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;gBACrC,IAAI,EAAE;oBACJ,GAAG,EAAE,UAAU,CAAC,SAAS;oBACzB,WAAW,EAAE,QAAQ;iBACtB;gBACD,YAAY,EAAE;oBACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,SAAS,EAAE,UAAU,CAAC,eAAe;oBACrC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;iBACzJ;gBACD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAqB,EAAE,EAAE;oBAC/C,KAAK,GAAG,aAAa,CAAA;oBACrB,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;oBACnC,MAAM,KAAK,GAAG,aAAa,CAAA;oBAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;oBAC9F,CAAC;oBACD,IAAI,IAAI,CAAC,YAAY;wBAAE,UAAU,GAAG,KAAK,CAAA;oBACzC,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;oBAC5J,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC,SAAS;2BAChD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;wBACnD,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;oBAC7G,CAAC;oBACD,QAAQ,CAAC,OAAO,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAA;oBAC3D,IAAI,UAAU,GAAG,CAAC,CAAA;oBAClB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;oBACxC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;oBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAA;oBAChC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC,EAAE,QAAyB,EAAE,IAAsC;wBAC1G,IAAI,MAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;4BAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;4BAAC,OAAM;wBAAC,CAAC;wBAChF,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;4BAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;4BAChC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;mCAC3E,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,eAAe;mCACxG,yBAAyB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,gBAAgB;mCAC7E,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gCAC5F,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,CAAA;gCAC3E,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;4BAC5F,CAAC;wBACH,CAAC;wBACD,IAAI,aAAa,KAAK,SAAS,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;4BAC/D,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;wBACjF,CAAC;wBACD,YAAY,EAAE,EAAE,CAAA;wBAChB,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAA;wBAC9B,UAAU,IAAI,CAAC,CAAA;wBACf,IAAI,CAAC,MAAM,EAAE,CAAC;4BAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;4BAAC,OAAM;wBAAC,CAAC;wBACtC,IAAI,WAAW,GAAG,CAAC,CAAA;wBACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC;4BACjC,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gCACvB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;oCAAE,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;qCAC5G,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;oCAAE,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;gCACjG,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;oCACtJ,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAA;oCACjE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;gCAC5E,CAAC;4BACH,CAAC;4BACD,MAAM,KAAK,CAAA;wBACb,CAAC;wBACD,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;oBAC1B,CAAC,CAAC,CAAA;oBACF,gEAAgE;oBAChE,iEAAiE;oBACjE,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;oBACjH,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,4CAA4C,CAAC,CAAA;oBACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAEpC,CAAA;oBACb,8DAA8D;oBAC9D,8DAA8D;oBAC9D,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,IAAI,UAAU,CAAC,iBAAiB,CAAA;oBAC9E,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,QAAQ,EAAE,sBAAsB,KAAK,UAAU,EAAE,CAAC;wBACtF,MAAM,cAAc,GAAG,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;wBAC5E,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,sCAAsC,CAAC,CAAA;oBAC/E,CAAC;oBACD,qBAAqB,CAAC,QAAQ,EAAE;wBAC9B,OAAO,EAAE;4BACP,QAAQ,EAAE,UAAU,CAAC,QAAQ;4BAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;4BACvB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;yBACzJ;wBACD,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAA;oBACF,IAAI,CAAC,IAAI,CAAC,SAAS;wBAAE,MAAM,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;oBAClE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;oBAC7E,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;wBAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;4BACjC,MAAM,IAAI,KAAK,CAAC,qEAAqE,IAAI,EAAE,CAAC,CAAA;wBAC9F,CAAC;oBACH,CAAC;oBACD,kEAAkE;oBAClE,oEAAoE;oBACpE,kEAAkE;oBAClE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;oBAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;oBAClD,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;oBACnG,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,mDAAmD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1H,CAAA;oBACH,CAAC;oBACD,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI,yBAAyB,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB;4BAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;wBACjN,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,kDAAkD,EAAE;4BACpF,QAAQ,EAAE,8CAA8C,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM;4BAClH,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;yBACvG,CAAC,CAAA;oBACJ,CAAC;oBACD,8BAA8B,CAC5B,GAAG,EACH,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,KAAK,EAChB,QAAQ,EACR,YAAY,CAAC,MAAM,CACpB,CAAA;oBACD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE;wBACjC,IAAI,MAAM,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK;4BAAE,OAAO,SAAS,CAAA;wBACzD,IAAI,MAAM,EAAE,CAAC;4BAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;4BAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;4BAAC,IAAI,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB;gCAAE,OAAO,kDAAkD,CAAA;wBAAC,CAAC;wBACpO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;4BAAE,OAAO,gEAAgE,CAAA;wBACzG,IAAI,SAAS,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;4BACzC,OAAO,6DAA6D,CAAA;wBACtE,CAAC;wBACD,SAAS,IAAI,CAAC,CAAA;wBACd,OAAO,SAAS,CAAA;oBAClB,CAAC,CAAC,CAAA;gBACJ,CAAC;aACF,CAAC,CAAA;YACF,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;YAChM,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,MAAM,GAAG,SAAS,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;YAAC,CAAC;YAC1K,eAAe,GAAG,UAAU,CAAA;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YAC1B,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;gBACvC,iHAAiH;gBACjH,MAAM,KAAK,GAA4B,EAAE,SAAS,EAAE,CAAA;gBACpD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;oBACnD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;wBAAE,SAAQ;oBAClF,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;wBAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBACtC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;4BACxE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;4BAC9C,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;gCAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;YACjG,CAAC,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAA6B,CAE/C,CAAA;YACb,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY;mBACpD,OAAO,SAAS,EAAE,wBAAwB,KAAK,UAAU,EAAE,CAAC;gBAC/D,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YACtD,CAAC;YACD,2EAA2E;YAC3E,mEAAmE;YACnE,gEAAgE;YAChE,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;gBACnH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAEpC,CAAA;gBACb,IAAI,KAAkC,CAAA;gBACtC,IAAI,OAAwE,CAAA;gBAC5E,IAAI,OAAO,QAAQ,EAAE,oBAAoB,KAAK,UAAU,EAAE,CAAC;oBACzD,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE;4BACjD,QAAQ,EAAE,iCAAiC;yBAC5C,CAAC,CAAA;wBACF,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,iCAAiC;+BAC/E,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;+BACzE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC;+BACvE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC;+BAC7E,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC;+BACtF,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;4BAChC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;wBACtF,CAAC;wBACD,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAA;wBAC/G,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAA;oBACtH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,+DAA+D;wBAC/D,+DAA+D;wBAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;+BAC1C,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;4BAAE,MAAM,KAAK,CAAA;oBAC1E,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;oBAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM;oBACzG,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;iBACzF,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAA;YAC1F,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7D,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACpE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;YACrB,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAA;YACzC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;YACnC,KAAK,GAAG,mBAAmB,CAAA;YAC3B,qBAAqB,GAAG,SAAS,CAAA;YACjC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAC/B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpD,MAAM,EAAE;oBACN,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,eAAe,UAAU,CAAC,IAAI,EAAE;iBAC1C;aACF,CAAC,CAAC,CAAA;YACH,qBAAqB,GAAG,WAAW,CAAA;YACnC,iBAAiB,GAAG,IAAI,CAAA;YACxB,KAAK,GAAG,iBAAiB,CAAA;YACzB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;YACtB,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;YACnC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YACvE,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY;gBAAE,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAA;YACtF,eAAe,GAAG,UAAU,CAAA;YAC5B,KAAK,GAAG,eAAe,CAAA;YACvB,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,GAAG,mBAAmB,CAAA;gBAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,YAAa,CAAC,CAAA;gBAC7D,kBAAkB,GAAG,IAAI,CAAA;gBACzB,qBAAqB,GAAG,WAAW,CAAA;YACrC,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,WAAW;gBAChD,CAAC,CAAC,EAAE,YAAY,EAAE,MAAe,EAAE,YAAY,EAAE,MAAe,EAAE,WAAW,EAAE,MAAM,EAAE;gBACvF,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW;oBAC/B,CAAC,CAAC,EAAE,YAAY,EAAE,WAAoB,EAAE,YAAY,EAAE,iBAA0B,EAAE,WAAW,EAAE,sBAAsB,EAAE;oBACvH,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;wBAC7B,CAAC,CAAC,EAAE,YAAY,EAAE,WAAoB,EAAE,YAAY,EAAE,iBAA0B,EAAE,WAAW,EAAE,oBAAoB,EAAE;wBACrH,CAAC,CAAC;4BACE,YAAY,EAAE,WAAoB;4BAClC,YAAY,EAAE,iBAA0B;4BACxC,WAAW,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB;yBACzF,CAAA;YACT,MAAM,SAAS,GAA2B;gBACxC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,UAAU,CAAC;oBACrB,GAAG,UAAU;oBACb,qBAAqB;oBACrB,eAAe;oBACf,qBAAqB;iBACtB,CAAC;gBACF,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;aACjC,CAAA;YACD,WAAW,EAAE,EAAE,CAAA;YACf,WAAW,GAAG,SAAS,CAAA;YACvB,KAAK,GAAG,gBAAgB,CAAA;YACxB,MAAM,MAAM,EAAE,OAAO,EAAE,CAAA;YACvB,MAAM,GAAG,SAAS,CAAA;YAClB,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;YACnC,OAAO,SAAS,CAAA;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAA2B;gBAAE,MAAM,KAAK,CAAA;YAC7D,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;wBAClC,qBAAqB,GAAG,UAAU,CAAA;oBACpC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,YAAa,CAAC,CAAA;wBAC7D,qBAAqB,GAAG,WAAW,CAAA;oBACrC,CAAC;oBACD,kBAAkB,GAAG,IAAI,CAAA;gBAC3B,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,KAAK,GAAG,mBAAmB,CAAA;oBAC3B,qBAAqB,GAAG,SAAS,CAAA;oBACjC,eAAe,GAAG,sBAAsB;wBACtC,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,qBAAqB,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;oBAClE,MAAM,GAAG,IAAI,8BAA8B,CACzC,iEAAiE,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EACvJ;wBACE,KAAK,EAAE,eAAe;wBACtB,UAAU,EAAE,UAAU,CAAC;4BACrB,YAAY,EAAE,QAAQ;4BACtB,YAAY,EAAE,mBAAmB;4BACjC,WAAW,EAAE,iBAAiB,CAAC,eAAe,EAAE,mBAAmB,CAAC;4BACpE,qBAAqB;4BACrB,eAAe;4BACf,qBAAqB;yBACtB,CAAC;qBACH,CACF,CAAA;gBACH,CAAC;YACH,CAAC;YACD,IAAI,MAAM,YAAY,8BAA8B;gBAAE,MAAM,MAAM,CAAA;YAClE,eAAe,GAAG,sBAAsB;gBACtC,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,qBAAqB,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;YAClE,MAAM,OAAO,GAAG,UAAU,CAAC;gBACzB,YAAY,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;gBACvD,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;gBAC7C,qBAAqB;gBACrB,eAAe;gBACf,qBAAqB;aACtB,CAAC,CAAA;YACF,IAAI,iBAAiB,IAAI,qBAAqB,KAAK,eAAe,EAAE,CAAC;gBACnE,MAAM,IAAI,8BAA8B,CACtC,0EAA0E,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EACrI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CACvC,CAAA;YACH,CAAC;YACD,MAAM,IAAI,4BAA4B,CACpC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACzD,OAAO,EACP,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,WAAW,EAAE,EAAE,CAAA;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,EAAE,OAAO,EAAE,CAAA;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,sEAAsE;YACxE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAeD,kFAAkF;AAClF,MAAM,OAAO,mBAAoB,SAAQ,oBAAoB;IAC3D,YAAY,GAAY,EAAE,MAA8B,EAAE,UAAsC,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA,CAAC,CAAC;CACpI;AAED,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAAC,GAAY,EAAE,MAA8B,EAAE,KAA4B,EAC3G,QAA8C,EAAE,cAAsB,EAAE,MAAmB,EAAE,QAA4I;IACzO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACtL,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;IAC3H,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM;QAC1G,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAA;IACvH,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;SACpK,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;AAC/E,CAAC;AAMD,iFAAiF;AACjF,MAAM,OAAO,oBAAoB;IAKZ;IACA;IALF,wBAAwB,CAAS;IACzC,aAAa,CAAoB;IAE1C,YACmB,QAAwC,EACxC,MAA8B,EAC/C,UAAuC,EAAE,EACzC,YAAqB;QAHJ,aAAQ,GAAR,QAAQ,CAAgC;QACxC,WAAM,GAAN,MAAM,CAAwB;QAI/C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;QACjC,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,KAAK,CAAA;IAC3E,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAA4B;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,4BAA4B,CACpC,iEAAiE,EACjE,MAAM,CAAC,MAAM,CAAC;gBACZ,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW;gBAC1E,WAAW,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,gBAAgB;gBACpF,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB;gBAC3D,qBAAqB,EAAE,cAAc;aACtC,CAAC,CACH,CAAA;QACH,CAAC;QACD,MAAM,sCAAsC,GAC1C,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAA;QACrE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,4BAA4B,CACpC,gEAAgE,EAChE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBAC9B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW;gBACxD,WAAW,EAAE,+BAA+B,EAAE,eAAe,EAAE,MAAM;gBACrE,YAAY,EAAE,oBAAoB;gBAClC,qBAAqB,EAAE,sCAAsC;aAC9D,CAAC,CACH,CAAA;QACH,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QAChD,MAAM,wBAAwB,GAAG,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QAC9E,IAAI,YAAY,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9C,MAAM,IAAI,4BAA4B,CACpC,8EAA8E,EAC9E,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBAC9B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW;gBACxD,WAAW,EAAE,qCAAqC,EAAE,eAAe,EAAE,MAAM;gBAC3E,YAAY,EAAE,oBAAoB;gBAClC,qBAAqB,EAAE,sCAAsC;aAC9D,CAAC,CACH,CAAA;QACH,CAAC;QACD,MAAM,uBAAuB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE,CAAC;YAC/E,MAAM,IAAI,4BAA4B,CACpC,2DAA2D,EAC3D,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBAC9B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB;gBACpE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB;gBAC9I,qBAAqB,EAAE,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc;aAC3F,CAAC,CACH,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QACpC,IAAI,aAAiC,CAAA;QACrC,IAAI,qBAAqB,GAAoC,QAAQ,KAAK,SAAS;YACjF,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,cAAc,CAAA;QAClB,IAAI,+BAA+B,GAAG,KAAK,CAAA;QAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAA;QAC5B,IAAI,mBAAmB,GAAG,KAAK,CAAA;QAC/B,IAAI,YAAgD,CAAA;QACpD,IAAI,CAAC;YACH,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC7D,MAAM,IAAI,4BAA4B,CACpC,sFAAsF,EACtF,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;oBAC9B,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB;oBAC1D,WAAW,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM;oBAClE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB;iBAC1D,CAAC,CACH,CAAA;YACH,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBAChD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACtC,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;wBAC3C,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS;qBACjE;oBACD,MAAM,EAAE,UAAU,CAAC,YAAa;oBAChC,cAAc,EAAE,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,CAAC;iBACnF,CAAC,CAAA;gBACF,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW;uBACjC,WAAW,CAAC,QAAQ;uBACpB,wBAAwB,EAAE,CAAC;oBAC9B,qEAAqE;oBACrE,sEAAsE;oBACtE,kEAAkE;oBAClE,sEAAsE;oBACtE,qEAAqE;oBACrE,+BAA+B,GAAG,IAAI,CAAA;oBACtC,qBAAqB,GAAG,WAAW,CAAA;gBACrC,CAAC;qBAAM,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,KAAK,UAAU,CAAA;oBACnD,MAAM,IAAI,4BAA4B,CACpC,6DAA6D,EAC7D,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;wBAC9B,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB;wBAC1D,WAAW,EAAE,wCAAwC;wBACrD,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;wBAC/C,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB;wBACzD,qBAAqB,EAAE,WAAW,CAAC,MAAM;qBAC1C,CAAC,CACH,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;oBACzC,qBAAqB,GAAG,UAAU,CAAA;gBACpC,CAAC;gBACD,IAAI,CAAC,+BAA+B,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBAC1F,mEAAmE;oBACnE,+DAA+D;oBAC/D,aAAa,GAAG,SAAS,CAAA;oBACzB,MAAM,IAAI,4BAA4B,CACpC,qFAAqF,EACrF,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;wBAC9B,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB;wBAC1D,WAAW,EAAE,wCAAwC;wBACrD,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ;wBAClD,qBAAqB,EAAE,UAAU;qBAClC,CAAC,CACH,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,+BAA+B,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,wBAAwB,EAAE,CAAC;oBAC1F,oEAAoE;oBACpE,mEAAmE;oBACnE,mEAAmE;oBACnE,0DAA0D;oBAC1D,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;wBAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BACnC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;wBAC7F,CAAC;wBACD,qBAAqB,GAAG,UAAU,CAAA;wBAClC,aAAa,GAAG,SAAS,CAAA;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,qBAAqB,GAAG,SAAS,CAAA;wBACjC,aAAa,GAAG,SAAS,CAAA;wBACzB,MAAM,IAAI,8BAA8B,CACtC,+EAA+E,EAC/E;4BACE,KAAK,EAAE,KAAK;4BACZ,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gCAC1C,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB;gCACzD,WAAW,EAAE,0BAA0B,EAAE,eAAe,EAAE,SAAS;gCACnE,YAAY,EAAE,QAAQ,EAAE,qBAAqB;6BAC9C,CAAC;yBACH,CACF,CAAA;oBACH,CAAC;oBACD,MAAM,IAAI,4BAA4B,CACpC,sFAAsF,EACtF,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;wBAC9B,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB;wBAC1D,WAAW,EAAE,mCAAmC,EAAE,eAAe,EAAE,MAAM;wBACzE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB;qBAC1D,CAAC,CACH,CAAA;gBACH,CAAC;YACH,CAAC;YAED,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAC5D,IAAI,CAAC,UAAU,CAAC,SAAS;mBACpB,CAAC,KAAK,CAAC,SAAS;mBAChB,UAAU,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB;mBACxD,cAAc,CAAC,UAAU,CAAC,KAAK,uBAAuB,EAAE,CAAC;gBAC5D,MAAM,IAAI,yBAAyB,CACjC,oBAAoB,EACpB,gEAAgE,CACjE,CAAA;YACH,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAA;YACvB,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;gBACvD,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;gBACjC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;gBACjC,cAAc,EAAE,uBAAuB;gBACvC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;gBACjE,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW;gBAC7C,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY;gBAC/C,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe;gBACrD,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,aAAa;gBACjD,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK;gBAChF,gBAAgB,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,+BAA+B,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,GAAG,YAAY,GAAG,MAAM,CAAA,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3I,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;YACpJ,IAAI,YAAY,EAAE,OAAO,KAAK,SAAS;gBAAE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;oBAC/G,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC1H,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,mBAAmB,GAAG,IAAI,CAAA;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,YAAa,CAAC,CAAA;gBAC7D,qBAAqB,GAAG,WAAW,CAAA;YACrC,CAAC;YACD,sEAAsE;YACtE,MAAM,eAAe,GAA8B,YAAY,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;gBAChG,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAA;YAC7G,MAAM,YAAY,GAAG,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAA;YACpF,OAAO;gBACL,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,MAAM,EAAE,iCAAiC,UAAU,CAAC,WAAW,EAAE;gBACjE,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;gBAChC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAa,EAAE,CAAC;gBAC7E,GAAG,CAAC,YAAY,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;gBACvF,GAAG,CAAC,YAAY,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;gBACvF,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;oBACxB,aAAa,EAAE,CAAC;oBAChB,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,qBAAqB,EAAE,gBAAgB;oBACvC,eAAe;oBACf,YAAY;oBACZ,qBAAqB;iBACtB,CAAC;aACH,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,YAAY,4BAA4B,IAAI,KAAK,YAAY,8BAA8B,CAAC;gBAAE,MAAM,KAAK,CAAA;YACxI,IAAI,gBAAgB,GAAG,mBAAmB,IAAI,qBAAqB,KAAK,UAAU,CAAA;YAClF,IAAI,gBAAgB;gBAAE,qBAAqB,GAAG,SAAS,CAAA;YACvD,IAAI,aAAa,KAAK,SAAS,IAAI,qBAAqB,KAAK,UAAU,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAChG,IAAI,CAAC;oBACH,sEAAsE;oBACtE,yEAAyE;oBACzE,mBAAmB,GAAG,IAAI,CAAA;oBAC1B,IAAI,gBAAgB,EAAE,CAAC;wBACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,YAAa,CAAC,CAAA;wBAC7D,qBAAqB,GAAG,WAAW,CAAA;oBACrC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;wBAClC,qBAAqB,GAAG,UAAU,CAAA;oBACpC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,gBAAgB,GAAG,IAAI,CAAA;oBACvB,qBAAqB,GAAG,SAAS,CAAA;gBACnC,CAAC;YACH,CAAC;YACD,MAAM,eAAe,GAA8B,gBAAgB,IAAI,gBAAgB;gBACrF,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,qBAAqB,KAAK,UAAU,IAAI,qBAAqB,KAAK,cAAc;oBAChF,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,SAAS,CAAA;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBAC9C,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB;gBAC5D,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB;gBACvE,WAAW,EAAE,gBAAgB;oBAC3B,CAAC,CAAC,0BAA0B;oBAC5B,CAAC,CAAC,KAAK,YAAY,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB;gBACpF,eAAe;gBACf,YAAY,EAAE,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAC5D,qBAAqB;aACtB,CAAC,CAAA;YACF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,yEAAyE;oBACvI,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;oBACtE,GAAG,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;oBACtF,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;YAC3C,CAAC;YACD,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,IAAI,8BAA8B,CACtC,0EAA0E,EAC1E,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CACtC,CAAA;YACH,CAAC;YACD,MAAM,IAAI,4BAA4B,CACpC,sEAAsE,EACtE,OAAO,EACP,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAA;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CACpB,WAAqC,EACrC,KAAqF;QAErF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;IAC/F,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,OAAO,sBAAsB;IAEd;IACA;IAFnB,YACmB,KAAuB,EACvB,IAAsB;QADtB,UAAK,GAAL,KAAK,CAAkB;QACvB,SAAI,GAAJ,IAAI,CAAkB;IACtC,CAAC;IAEJ,GAAG,CAAC,KAA4B;QAC9B,OAAO,0BAA0B,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;CACF;AAED,SAAS,cAAc,CAAC,UAAoC;IAC1D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9E,CAAC"}
package/lib/operator.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { AutomationRecord, AutomationStatus } from './types.js';
1
+ import type { AutomationDefinition, AutomationRecord, AutomationStatus } from './types.js';
2
+ export declare const automationRetirementSnapshotProtocol: "assistant-automations/retirement-snapshot/v1";
2
3
  export declare const automationsOperatorSnapshotProtocol: "assistant-automations-operator-snapshot/v1";
3
4
  export type AutomationOperatorSnapshotErrorCode = 'database-busy' | 'database-corrupt' | 'database-drift' | 'database-missing' | 'database-unavailable' | 'invalid-path' | 'schema-unsupported' | 'unsafe-parent' | 'unsafe-path';
4
5
  export declare class AutomationOperatorSnapshotError extends Error {
@@ -26,7 +27,7 @@ export interface AutomationOperatorRecord {
26
27
  }
27
28
  export interface AutomationsOperatorSnapshot {
28
29
  readonly protocol: typeof automationsOperatorSnapshotProtocol;
29
- readonly schemaVersion: 15;
30
+ readonly schemaVersion: 17;
30
31
  readonly database: AutomationOperatorFileIdentity;
31
32
  readonly sidecars: Readonly<{
32
33
  wal: AutomationOperatorFileIdentity | null;
@@ -40,6 +41,54 @@ export interface AutomationsOperatorSnapshot {
40
41
  /** Complete definition inventory, including paused and deleted rows. */
41
42
  readonly records: readonly AutomationOperatorRecord[];
42
43
  }
44
+ /** Privileged upgrade proof: definitions can contain task prompts and authority. */
45
+ export interface AutomationRetirementDefinitionRecord extends AutomationOperatorRecord {
46
+ readonly definition: AutomationDefinition;
47
+ readonly createIdempotencyKeyDigest: string;
48
+ /** Exact typed original columns, excluding only status/next-run/update/version. */
49
+ readonly immutableDigest: string;
50
+ }
51
+ export interface AutomationRetirementReceipt {
52
+ readonly owner: string;
53
+ readonly automationId: string;
54
+ readonly operationId: string;
55
+ readonly definitionHash: string;
56
+ readonly expectedVersion: number;
57
+ readonly definitionVersion: number;
58
+ readonly automationStatus: 'paused';
59
+ readonly reason: 'owner-revoked';
60
+ readonly evidenceDigest: string;
61
+ readonly retiredAt: number;
62
+ }
63
+ export interface AutomationRetirementHistoryTable {
64
+ readonly name: string;
65
+ readonly rowCount: number;
66
+ readonly digest: string;
67
+ /** Only schema 17 automation_runs: exact historical column projection. */
68
+ readonly legacyDigest?: string;
69
+ readonly nonNullQuiescentCount?: number;
70
+ }
71
+ export interface AutomationRetirementSchemaEntry {
72
+ readonly type: 'table' | 'index' | 'trigger';
73
+ readonly name: string;
74
+ readonly table: string;
75
+ /** Exact SQLite schema SQL; implicit indexes have null SQL. */
76
+ readonly sql: string | null;
77
+ }
78
+ export interface AutomationRetirementSnapshot {
79
+ readonly protocol: typeof automationRetirementSnapshotProtocol;
80
+ readonly schemaVersion: 15 | 16 | 17;
81
+ readonly database: AutomationOperatorFileIdentity;
82
+ readonly sidecars: AutomationsOperatorSnapshot['sidecars'];
83
+ readonly storageDigest: string;
84
+ readonly inFlightCount: number;
85
+ readonly records: readonly AutomationRetirementDefinitionRecord[];
86
+ readonly retirements: readonly AutomationRetirementReceipt[];
87
+ readonly historyTables: readonly AutomationRetirementHistoryTable[];
88
+ readonly schemaEntries: readonly AutomationRetirementSchemaEntry[];
89
+ readonly schemaDigest: string;
90
+ readonly snapshotDigest: string;
91
+ }
43
92
  /** Pure canonical digest used by both writers and trusted local attestation. */
44
93
  export declare function automationDefinitionDigest(definition: unknown): string;
45
94
  /**
@@ -63,6 +112,11 @@ export declare function parseWritableProcLock(line: string): {
63
112
  * checkpoints, or changes journal mode, and fails closed if its source drifts.
64
113
  */
65
114
  export declare function inspectAutomationsOperatorSnapshot(databasePath: string): AutomationsOperatorSnapshot;
115
+ /**
116
+ * Privileged read-only v15/v16 upgrade proof. Never migrates or opens a writable
117
+ * SQLite handle. History bodies remain private; their exact typed bytes are hashed.
118
+ */
119
+ export declare function inspectAutomationRetirementSnapshot(databasePath: string): AutomationRetirementSnapshot;
66
120
  /** Compatibility name for callers built against the earlier inventory proposal. */
67
121
  export declare const inspectAutomationInventoryLocally: typeof inspectAutomationsOperatorSnapshot;
68
122
  /** Read-only local compatibility projection; never starts the scheduler. */
@@ -1 +1 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"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"}
package/lib/operator.js CHANGED
@@ -8,6 +8,7 @@ import { pathToFileURL } from 'node:url';
8
8
  import { automationSchemaVersion } from './sqlite.js';
9
9
  import { assertNoMacProcessConnection, macCleanupPinnedDirectory, macConnectionInodes, macExclusiveWriter } from './operator-macos.js';
10
10
  import { normalizeAutomationDefinition } from './store.js';
11
+ export const automationRetirementSnapshotProtocol = 'assistant-automations/retirement-snapshot/v1';
11
12
  export const automationsOperatorSnapshotProtocol = 'assistant-automations-operator-snapshot/v1';
12
13
  export class AutomationOperatorSnapshotError extends Error {
13
14
  code;
@@ -785,7 +786,274 @@ function publicRecord(record) {
785
786
  runningTaskCount: record.runningTaskCount,
786
787
  });
787
788
  }
788
- function readSnapshot(databasePath) {
789
+ const retirementColumns = {
790
+ "automation_attempts": "attempt_number:INTEGER automation_snapshot_hash:TEXT automation_snapshot_json:TEXT created_at:INTEGER failure_code:TEXT fencing_token:INTEGER finished_at:INTEGER id:TEXT owner_id:TEXT session_id:TEXT started_at:INTEGER status:TEXT task_id:TEXT updated_at:INTEGER",
791
+ "automation_changes": "automation_id:TEXT created_at:INTEGER expected_version:INTEGER idempotency_key:TEXT input_hash:TEXT operation:TEXT result_json:TEXT",
792
+ "automation_circuit_operations": "automation_id:TEXT created_at:INTEGER definition_hash:TEXT expected_circuit_version:INTEGER input_hash:TEXT lease_ms:INTEGER operation_id:TEXT result_json:TEXT system_owner:TEXT",
793
+ "automation_circuits": "automation_id:TEXT definition_hash:TEXT failure_class:TEXT failure_code:TEXT failure_phase:TEXT opened_at:INTEGER probe_lease_until:INTEGER probe_task_id:TEXT probe_token:TEXT state:TEXT updated_at:INTEGER version:INTEGER",
794
+ "automation_definitions": "create_idempotency_key:TEXT created_at:INTEGER definition_hash:TEXT definition_json:TEXT id:TEXT next_run_at:INTEGER status:TEXT system_owner:TEXT updated_at:INTEGER version:INTEGER",
795
+ "automation_evaluation_outbox": "attempt_count:INTEGER created_at:INTEGER id:TEXT last_error_code:TEXT last_failure_at:INTEGER next_attempt_at:INTEGER observation_kind:TEXT payload_json:TEXT run_id:TEXT status:TEXT updated_at:INTEGER",
796
+ "automation_growth_artifacts": "approval_diff_hash:TEXT artifact_id:TEXT automation_id:TEXT canary_evaluation_digest:TEXT canary_evaluation_id:TEXT canary_evaluation_proof_json:TEXT canary_run_id:TEXT canary_task_id:TEXT candidate_digest:TEXT candidate_id:TEXT candidate_revision:INTEGER created_at:INTEGER deadline_at:INTEGER definition_hash:TEXT definition_version:INTEGER evidence_count:INTEGER evidence_digest:TEXT experiment_id:TEXT owner_binding_id:TEXT preset:TEXT principal_id:TEXT privacy_attestation_json:TEXT proposal_id:TEXT shadow_task_id:TEXT state:TEXT steps_json:TEXT template_digest:TEXT template_ref:TEXT updated_at:INTEGER workspace:TEXT",
797
+ "automation_growth_operations": "created_at:INTEGER operation_id:TEXT operation_kind:TEXT payload_digest:TEXT receipt_json:TEXT status:TEXT updated_at:INTEGER",
798
+ "automation_incidents": "alert_ref:TEXT alert_status:TEXT automation_id:TEXT definition_hash:TEXT failure_class:TEXT failure_code:TEXT failure_phase:TEXT id:TEXT lifecycle_generation:INTEGER notification_route_id:TEXT opened_at:INTEGER presentation_revision:INTEGER resolved_at:INTEGER retryability:TEXT run_id:TEXT side_effect_state:TEXT stage:TEXT state:TEXT updated_at:INTEGER version:INTEGER",
799
+ "automation_occurrences": "automation_id:TEXT created_at:INTEGER dry_run:INTEGER external_event_digest:TEXT external_event_json:TEXT id:TEXT reason:TEXT scheduled_at:INTEGER status:TEXT trigger_key:TEXT trigger_kind:TEXT updated_at:INTEGER",
800
+ "automation_proposals": "change_hash:TEXT change_json:TEXT created_at:INTEGER dispatch_json:TEXT expires_at:INTEGER id:TEXT idempotency_key:TEXT policy_proposal_id:TEXT principal:TEXT requester:TEXT result_automation_id:TEXT status:TEXT ttl_ms:INTEGER updated_at:INTEGER version:INTEGER",
801
+ "automation_runs": "artifact_ref:TEXT attempt_id:TEXT automation_id:TEXT created_at:INTEGER definition_hash:TEXT delivery_ref:TEXT delivery_status:TEXT diagnostic_json:TEXT evidence_json:TEXT evidence_status:TEXT execution_mode:TEXT id:TEXT occurrence_id:TEXT output_preview:TEXT session_id:TEXT status:TEXT task_id:TEXT updated_at:INTEGER usage_json:TEXT",
802
+ "automation_system_reconciles": "automation_id:TEXT created_at:INTEGER idempotency_key:TEXT input_hash:TEXT result_json:TEXT system_owner:TEXT",
803
+ "automation_system_retirements": "automation_id:TEXT definition_hash:TEXT definition_version:INTEGER evidence_digest:TEXT expected_version:INTEGER operation_id:TEXT reason:TEXT retired_at:INTEGER system_owner:TEXT",
804
+ "automation_task_acceptance": "binding_generation:INTEGER binding_id:TEXT binding_version:INTEGER contract_digest:TEXT contract_id:TEXT dispatched_at:INTEGER preset:TEXT principal_record_id:TEXT principal_version:INTEGER quiescent:INTEGER submitted:INTEGER task_id:TEXT workspace:TEXT",
805
+ "automation_tasks": "attempt_count:INTEGER automation_id:TEXT cancel_requested:INTEGER claimed_by:TEXT created_at:INTEGER fencing_token:INTEGER id:TEXT lease_until:INTEGER occurrence_id:TEXT status:TEXT updated_at:INTEGER",
806
+ "duty_lease": "fencing_token:INTEGER lease_until:INTEGER owner_id:TEXT singleton:INTEGER updated_at:INTEGER"
807
+ };
808
+ const retirementIndexes = {
809
+ "automation_circuit_operation_scope": "automation_circuit_operations",
810
+ "automation_due": "automation_definitions",
811
+ "automation_evaluation_dispatch": "automation_evaluation_outbox",
812
+ "automation_growth_artifact_state": "automation_growth_artifacts",
813
+ "automation_incident_alert_outbox": "automation_incidents",
814
+ "automation_occurrence_history": "automation_occurrences",
815
+ "automation_open_circuits": "automation_circuits",
816
+ "automation_open_incidents": "automation_incidents",
817
+ "automation_task_claim": "automation_tasks"
818
+ };
819
+ const retirementAdditions = {
820
+ "automation_system_retirements": "CREATE TABLE automation_system_retirements (\n system_owner TEXT NOT NULL,\n automation_id TEXT NOT NULL,\n operation_id TEXT NOT NULL UNIQUE,\n definition_hash TEXT NOT NULL CHECK(length(definition_hash) = 64),\n expected_version INTEGER NOT NULL CHECK(expected_version >= 1),\n definition_version INTEGER NOT NULL CHECK(definition_version = expected_version + 1),\n reason TEXT NOT NULL CHECK(reason = 'owner-revoked'),\n evidence_digest TEXT NOT NULL CHECK(length(evidence_digest) = 64),\n retired_at INTEGER NOT NULL CHECK(retired_at >= 0),\n PRIMARY KEY(system_owner, automation_id)\n ) STRICT",
821
+ "automation_retired_no_activate_insert": "CREATE TRIGGER automation_retired_no_activate_insert BEFORE INSERT ON automation_definitions\n WHEN NEW.status = 'active' AND EXISTS (\n SELECT 1 FROM automation_system_retirements WHERE system_owner = NEW.system_owner AND automation_id = NEW.id\n ) BEGIN SELECT RAISE(ABORT, 'system automation is retired'); END",
822
+ "automation_retired_no_activate_update": "CREATE TRIGGER automation_retired_no_activate_update BEFORE UPDATE ON automation_definitions\n WHEN NEW.status = 'active' AND EXISTS (\n SELECT 1 FROM automation_system_retirements WHERE system_owner = NEW.system_owner AND automation_id = NEW.id\n ) BEGIN SELECT RAISE(ABORT, 'system automation is retired'); END",
823
+ "automation_retirements_no_delete": "CREATE TRIGGER automation_retirements_no_delete BEFORE DELETE ON automation_system_retirements\n BEGIN SELECT RAISE(ABORT, 'system retirement is permanent'); END",
824
+ "automation_retirements_no_update": "CREATE TRIGGER automation_retirements_no_update BEFORE UPDATE ON automation_system_retirements\n BEGIN SELECT RAISE(ABORT, 'system retirement is immutable'); END"
825
+ };
826
+ const quiescenceAddition = {
827
+ automation_run_quiescence_immutable: `CREATE TRIGGER automation_run_quiescence_immutable
828
+ BEFORE UPDATE OF quiescent ON automation_runs WHEN NEW.quiescent IS NOT OLD.quiescent
829
+ BEGIN SELECT RAISE(ABORT, 'run quiescence observation is immutable'); END`,
830
+ };
831
+ function normalizedSchemaSql(sql) {
832
+ // Whitespace normalization must never rewrite string or quoted identifier bytes.
833
+ return sql.replace(/'(?:''|[^'])*'|"(?:""|[^"])*"|\s+/gu, token => /^\s/u.test(token) ? ' ' : token).trim();
834
+ }
835
+ function inspectRetirementSchema(database, version) {
836
+ const raw = database.prepare(`SELECT type, name, tbl_name AS "table", sql
837
+ FROM sqlite_schema ORDER BY type COLLATE BINARY, name COLLATE BINARY`).all();
838
+ const entries = [];
839
+ const expectedTables = Object.keys(retirementColumns).filter(name => version >= 16 || name !== 'automation_system_retirements');
840
+ const additions = version === 17
841
+ ? { ...retirementAdditions, ...quiescenceAddition } : retirementAdditions;
842
+ const seenTables = new Set();
843
+ const seenIndexes = new Set();
844
+ const seenAdditions = new Set();
845
+ for (const row of raw) {
846
+ if ((row.type !== 'table' && row.type !== 'index' && row.type !== 'trigger')
847
+ || typeof row.name !== 'string' || typeof row.table !== 'string'
848
+ || (row.sql !== null && typeof row.sql !== 'string') || !expectedTables.includes(row.table)) {
849
+ fail('schema-unsupported', 'unreviewed schema entry');
850
+ }
851
+ const entry = row;
852
+ if (entry.type === 'table') {
853
+ if (entry.name !== entry.table || entry.sql === null || !expectedTables.includes(entry.name)) {
854
+ fail('schema-unsupported', 'unreviewed table');
855
+ }
856
+ const columns = database.prepare(`PRAGMA table_xinfo("${entry.name}")`).all();
857
+ const expectedColumns = version === 17 && entry.name === 'automation_runs'
858
+ ? `${retirementColumns[entry.name]} quiescent:INTEGER`.split(' ').sort().join(' ')
859
+ : retirementColumns[entry.name];
860
+ if (columns.some(column => column.hidden !== 0)
861
+ || columns.map(column => `${column.name}:${column.type}`).sort().join(' ') !== expectedColumns) {
862
+ fail('schema-unsupported', 'unreviewed table columns');
863
+ }
864
+ if (version === 17 && entry.name === 'automation_runs') {
865
+ const quiescent = columns.find(column => column.name === 'quiescent');
866
+ if (quiescent?.notnull !== 0 || quiescent.dflt_value !== null || quiescent.pk !== 0
867
+ || !/\bquiescent INTEGER CHECK\s*\(quiescent IN\s*\(0, 1\)\)/u.test(normalizedSchemaSql(entry.sql))) {
868
+ fail('schema-unsupported', 'run quiescence observation schema changed');
869
+ }
870
+ }
871
+ seenTables.add(entry.name);
872
+ }
873
+ else if (entry.type === 'index') {
874
+ if (entry.sql === null) {
875
+ if (!new RegExp(`^sqlite_autoindex_${entry.table}_[1-9][0-9]*$`, 'u').test(entry.name)) {
876
+ fail('schema-unsupported', 'unreviewed implicit index');
877
+ }
878
+ }
879
+ else if (retirementIndexes[entry.name] !== entry.table)
880
+ fail('schema-unsupported', 'unreviewed index');
881
+ else
882
+ seenIndexes.add(entry.name);
883
+ }
884
+ const addition = additions[entry.name];
885
+ if (entry.type === 'trigger' || addition !== undefined) {
886
+ if (version < 16 || addition === undefined || entry.sql === null
887
+ || normalizedSchemaSql(entry.sql) !== normalizedSchemaSql(addition)) {
888
+ fail('schema-unsupported', 'retirement schema protection is missing or changed');
889
+ }
890
+ seenAdditions.add(entry.name);
891
+ }
892
+ entries.push({ type: entry.type, name: entry.name, table: entry.table, sql: entry.sql });
893
+ }
894
+ const tableKinds = database.prepare('PRAGMA table_list').all().filter(row => row.schema === 'main' && row.name !== 'sqlite_schema');
895
+ if (expectedTables.some(name => !seenTables.has(name))
896
+ || Object.keys(retirementIndexes).some(name => !seenIndexes.has(name))
897
+ || (version >= 16 && Object.keys(additions).some(name => !seenAdditions.has(name)))
898
+ || tableKinds.length !== expectedTables.length
899
+ || tableKinds.some(row => row.type !== 'table' || row.strict !== 1)) {
900
+ fail('schema-unsupported', 'reviewed schema is incomplete');
901
+ }
902
+ return freeze(entries);
903
+ }
904
+ /** Length framing and type tags make NULL/text/BLOB/integers/reals unambiguous. */
905
+ function typedRowDigest(table, columns, row) {
906
+ const hash = createHash('sha256');
907
+ hash.update(JSON.stringify({ protocol: 'assistant-automations/retirement-row/v1', table, columns }));
908
+ for (let index = 0; index < columns.length; index++) {
909
+ const kind = row[`t${index}`];
910
+ const value = row[`v${index}`];
911
+ let bytes;
912
+ if (kind === 'null' && value === null)
913
+ bytes = Buffer.alloc(0);
914
+ else if (kind === 'integer' && typeof value === 'bigint')
915
+ bytes = Buffer.from(value.toString(), 'ascii');
916
+ else if (kind === 'real' && typeof value === 'number') {
917
+ bytes = Buffer.allocUnsafe(8);
918
+ bytes.writeDoubleBE(value);
919
+ }
920
+ else if ((kind === 'text' || kind === 'blob') && value instanceof Uint8Array)
921
+ bytes = Buffer.from(value);
922
+ else
923
+ return fail('database-corrupt', 'history value has an unsupported SQLite representation');
924
+ hash.update(`\0${kind}:${bytes.length}:`);
925
+ hash.update(bytes);
926
+ }
927
+ return hash.digest('hex');
928
+ }
929
+ function typedProjection(columns) {
930
+ return columns.map((column, index) => `typeof("${column}") AS "t${index}",
931
+ CASE WHEN typeof("${column}") = 'text' THEN CAST("${column}" AS BLOB) ELSE "${column}" END AS "v${index}"`).join(', ');
932
+ }
933
+ function inspectHistoryTable(database, name, columns) {
934
+ // Sort columns independently of migration-era physical column order. Every
935
+ // actual column is included; inspectRetirementSchema validated the full set.
936
+ const statement = database.prepare(`SELECT ${typedProjection(columns)} FROM "${name}"`);
937
+ statement.setReadBigInts(true);
938
+ const rows = [];
939
+ // Bound memory by fixed-size digests, not stored task/message bodies. Sorting
940
+ // row hashes defines a canonical multiset and supports WITHOUT ROWID tables.
941
+ for (const row of statement.iterate())
942
+ rows.push(typedRowDigest(name, columns, row));
943
+ const hash = createHash('sha256');
944
+ hash.update(JSON.stringify({ protocol: 'assistant-automations/retirement-table/v1', name, columns, rowCount: rows.length }));
945
+ for (const digest of rows.sort())
946
+ hash.update(`\0${digest}`);
947
+ return freeze({ name, rowCount: rows.length, digest: hash.digest('hex') });
948
+ }
949
+ function inspectRetirementDefinitions(database, records) {
950
+ const columns = ['id', 'system_owner', 'definition_hash', 'definition_json', 'created_at', 'create_idempotency_key'];
951
+ const statement = database.prepare(`SELECT create_idempotency_key, ${typedProjection(columns)}
952
+ FROM automation_definitions WHERE id = ?`);
953
+ statement.setReadBigInts(true);
954
+ return freeze(records.map(record => {
955
+ const row = statement.get(record.id);
956
+ if (row === undefined || !canonicalText(row.create_idempotency_key, 500)) {
957
+ return fail('database-corrupt', 'definition creation identity is invalid');
958
+ }
959
+ // SQLite TEXT decoding must not collapse distinct malformed UTF-8 bytes
960
+ // into the same JavaScript replacement characters in the public inventory.
961
+ for (const [index, value] of [record.id, record.owner ?? null, record.definitionHash,
962
+ JSON.stringify(record.definition), null, row.create_idempotency_key].entries()) {
963
+ if (index === 4 || value === null)
964
+ continue;
965
+ const bytes = row[`v${index}`];
966
+ if (!(bytes instanceof Uint8Array) || !Buffer.from(bytes).equals(Buffer.from(value))) {
967
+ return fail('database-corrupt', 'definition text bytes are not canonical UTF-8');
968
+ }
969
+ }
970
+ const createIdempotencyKeyDigest = typedRowDigest('automation_definitions/create-idempotency-key', ['create_idempotency_key'], { t0: row.t5, v0: row.v5 });
971
+ return { ...record, createIdempotencyKeyDigest, immutableDigest: typedRowDigest('automation_definitions', columns, row) };
972
+ }));
973
+ }
974
+ function retirementDeleteIsRecorded(database, record, definitionVersion) {
975
+ // changeApproved(delete) is the only legal transition after retirement: one
976
+ // version increment, the same definition/owner, and its atomic change receipt.
977
+ // Match the exact stored bytes of the writer's public AutomationRecord so an
978
+ // arbitrary deleted status, version or timestamp cannot stand in for that API.
979
+ if (record.status !== 'deleted' || record.version !== definitionVersion + 1)
980
+ return false;
981
+ const result = JSON.stringify({
982
+ id: record.id, ...(record.owner === undefined ? {} : { owner: record.owner }),
983
+ definition: record.definition, status: record.status, createdAt: record.createdAt,
984
+ updatedAt: record.updatedAt, version: record.version,
985
+ });
986
+ const changes = database.prepare(`SELECT input_hash FROM automation_changes
987
+ WHERE automation_id = ? AND operation = 'delete' AND expected_version = ?
988
+ AND created_at = ? AND CAST(result_json AS BLOB) = ? LIMIT 2`)
989
+ .all(record.id, definitionVersion, record.updatedAt, Buffer.from(result));
990
+ return changes.length === 1 && typeof changes[0]?.input_hash === 'string' && digestPattern.test(changes[0].input_hash);
991
+ }
992
+ function inspectRetirements(database, records) {
993
+ const definitions = new Map(records.map(record => [record.id, record]));
994
+ const operations = new Set();
995
+ const tuples = new Set();
996
+ return freeze(database.prepare(`SELECT *, CAST(system_owner AS BLOB) AS owner_bytes,
997
+ CAST(automation_id AS BLOB) AS automation_bytes, CAST(operation_id AS BLOB) AS operation_bytes
998
+ FROM automation_system_retirements
999
+ ORDER BY system_owner COLLATE BINARY, automation_id COLLATE BINARY`).all().map(row => {
1000
+ if (!canonicalText(row.system_owner, 200) || !canonicalText(row.automation_id, 500)
1001
+ || !canonicalText(row.operation_id, 500) || typeof row.definition_hash !== 'string' || !digestPattern.test(row.definition_hash)
1002
+ || !safeInteger(row.expected_version, 1) || !safeInteger(row.definition_version, 2)
1003
+ || row.definition_version !== row.expected_version + 1 || row.reason !== 'owner-revoked'
1004
+ || typeof row.evidence_digest !== 'string' || !digestPattern.test(row.evidence_digest) || !safeInteger(row.retired_at)) {
1005
+ return fail('database-corrupt', 'system retirement receipt is invalid');
1006
+ }
1007
+ for (const [value, bytes] of [[row.system_owner, row.owner_bytes], [row.automation_id, row.automation_bytes],
1008
+ [row.operation_id, row.operation_bytes]]) {
1009
+ if (typeof value !== 'string' || !(bytes instanceof Uint8Array) || !Buffer.from(bytes).equals(Buffer.from(value))) {
1010
+ return fail('database-corrupt', 'retirement text bytes are not canonical UTF-8');
1011
+ }
1012
+ }
1013
+ const record = definitions.get(row.automation_id);
1014
+ const tuple = JSON.stringify([row.system_owner, row.automation_id]);
1015
+ if (operations.has(row.operation_id) || tuples.has(tuple)) {
1016
+ return fail('database-corrupt', 'system retirement receipt identity is duplicated');
1017
+ }
1018
+ // Permanent markers outlive physical definition deletion. If the row still
1019
+ // exists, accept only the exact retired state or its recorded formal delete.
1020
+ if (record !== undefined && (record.owner !== row.system_owner || record.definitionHash !== row.definition_hash
1021
+ || record.nextRunAt !== undefined
1022
+ || !(record.status === 'paused' && record.version === row.definition_version && record.updatedAt === row.retired_at
1023
+ || retirementDeleteIsRecorded(database, record, row.definition_version)))) {
1024
+ return fail('database-corrupt', 'system retirement receipt is not bound to its exact definition');
1025
+ }
1026
+ operations.add(row.operation_id);
1027
+ tuples.add(tuple);
1028
+ return {
1029
+ owner: row.system_owner, automationId: row.automation_id, operationId: row.operation_id,
1030
+ definitionHash: row.definition_hash, expectedVersion: row.expected_version, definitionVersion: row.definition_version,
1031
+ automationStatus: 'paused', reason: 'owner-revoked', evidenceDigest: row.evidence_digest, retiredAt: row.retired_at,
1032
+ };
1033
+ }));
1034
+ }
1035
+ function retirementContents(database, version, records) {
1036
+ const schemaEntries = inspectRetirementSchema(database, version);
1037
+ const schemaDigest = sha256(JSON.stringify({ protocol: 'assistant-automations/retirement-schema/v1', schemaEntries }));
1038
+ const historyTables = Object.keys(retirementColumns).filter(name => name !== 'automation_definitions'
1039
+ && name !== 'automation_system_retirements').sort().map(name => {
1040
+ const columns = retirementColumns[name].split(' ').map(column => column.split(':')[0]);
1041
+ const legacy = inspectHistoryTable(database, name, columns);
1042
+ if (version !== 17 || name !== 'automation_runs')
1043
+ return legacy;
1044
+ const count = database.prepare('SELECT COUNT(*) AS count FROM automation_runs WHERE quiescent IS NOT NULL').get()?.count;
1045
+ if (!safeInteger(count))
1046
+ fail('database-corrupt', 'invalid run quiescence observation count');
1047
+ return freeze({ ...inspectHistoryTable(database, name, [...columns, 'quiescent'].sort()),
1048
+ legacyDigest: legacy.digest, nonNullQuiescentCount: count });
1049
+ });
1050
+ return freeze({
1051
+ records: inspectRetirementDefinitions(database, records),
1052
+ retirements: version === 15 ? [] : inspectRetirements(database, records),
1053
+ historyTables, schemaEntries, schemaDigest,
1054
+ });
1055
+ }
1056
+ function readSnapshot(databasePath, retirement = false) {
789
1057
  const path = privateDatabasePath(databasePath);
790
1058
  // Pin the private parent directory for the whole snapshot so an ancestor
791
1059
  // rename or a same-name directory swap cannot retarget the database path
@@ -943,8 +1211,9 @@ function readSnapshot(databasePath) {
943
1211
  if (queryOnly !== 1)
944
1212
  fail('database-unavailable', 'read-only guard was not enabled');
945
1213
  const version = database.prepare('PRAGMA user_version').get().user_version;
946
- if (version !== automationSchemaVersion)
947
- fail('schema-unsupported', `expected schema ${automationSchemaVersion}`);
1214
+ if (version !== automationSchemaVersion && !(retirement && (version === 15 || version === 16))) {
1215
+ fail('schema-unsupported', retirement ? 'expected schema 15, 16 or 17' : `expected schema ${automationSchemaVersion}`);
1216
+ }
948
1217
  const check = database.prepare('PRAGMA quick_check').all();
949
1218
  if (check.length !== 1 || check[0]?.quick_check !== 'ok')
950
1219
  fail('database-corrupt', 'SQLite quick_check failed');
@@ -975,6 +1244,10 @@ function readSnapshot(databasePath) {
975
1244
  if (foreignKeys.length !== 0)
976
1245
  fail('database-corrupt', 'foreign-key integrity check failed');
977
1246
  const records = freeze(internalRecords.map(publicRecord));
1247
+ const proof = retirement ? retirementContents(database, version, internalRecords) : undefined;
1248
+ // History scans can lazily open SQLite resources as well.
1249
+ if (inodeBindSupported)
1250
+ assertConnectionBound(bound, selfDescriptors());
978
1251
  database.exec('ROLLBACK');
979
1252
  transaction = false;
980
1253
  database.close();
@@ -990,14 +1263,14 @@ function readSnapshot(databasePath) {
990
1263
  }));
991
1264
  const inventoryDigest = sha256(JSON.stringify({
992
1265
  protocol: automationsOperatorSnapshotProtocol,
993
- schemaVersion: 15,
1266
+ schemaVersion: 17,
994
1267
  storageDigest,
995
1268
  inFlightCount: inFlight.count,
996
1269
  records,
997
1270
  }));
998
1271
  const snapshot = freeze({
999
1272
  protocol: automationsOperatorSnapshotProtocol,
1000
- schemaVersion: 15,
1273
+ schemaVersion: 17,
1001
1274
  database: identity(source),
1002
1275
  sidecars: freeze({ wal: wal === null ? null : identity(wal), shm: shm === null ? null : identity(shm) }),
1003
1276
  storageDigest,
@@ -1005,7 +1278,23 @@ function readSnapshot(databasePath) {
1005
1278
  inventoryDigest,
1006
1279
  records,
1007
1280
  });
1008
- result = { snapshot, internalRecords };
1281
+ if (proof !== undefined) {
1282
+ const semantic = {
1283
+ protocol: automationRetirementSnapshotProtocol,
1284
+ schemaVersion: version,
1285
+ storageDigest,
1286
+ inFlightCount: inFlight.count,
1287
+ ...proof,
1288
+ };
1289
+ result = freeze({
1290
+ ...semantic,
1291
+ database: identity(source),
1292
+ sidecars: freeze({ wal: wal === null ? null : identity(wal), shm: shm === null ? null : identity(shm) }),
1293
+ snapshotDigest: sha256(JSON.stringify(semantic)),
1294
+ });
1295
+ }
1296
+ else
1297
+ result = { snapshot, internalRecords };
1009
1298
  }
1010
1299
  catch (error) {
1011
1300
  deferred = error;
@@ -1091,6 +1380,13 @@ function readSnapshot(databasePath) {
1091
1380
  export function inspectAutomationsOperatorSnapshot(databasePath) {
1092
1381
  return readSnapshot(databasePath).snapshot;
1093
1382
  }
1383
+ /**
1384
+ * Privileged read-only v15/v16 upgrade proof. Never migrates or opens a writable
1385
+ * SQLite handle. History bodies remain private; their exact typed bytes are hashed.
1386
+ */
1387
+ export function inspectAutomationRetirementSnapshot(databasePath) {
1388
+ return readSnapshot(databasePath, true);
1389
+ }
1094
1390
  /** Compatibility name for callers built against the earlier inventory proposal. */
1095
1391
  export const inspectAutomationInventoryLocally = inspectAutomationsOperatorSnapshot;
1096
1392
  /**
@@ -1206,8 +1502,11 @@ export function listActiveAutomationsForReadiness(databasePath) {
1206
1502
  if (queryOnly !== 1)
1207
1503
  fail('database-unavailable', 'read-only guard was not enabled');
1208
1504
  const version = database.prepare('PRAGMA user_version').get().user_version;
1209
- if (version !== automationSchemaVersion)
1210
- fail('schema-unsupported', `expected schema ${automationSchemaVersion}`);
1505
+ // Readiness also reads the still-running original program's store during an owner update;
1506
+ // automation_definitions is unchanged from schema 15 (16/17 only add tables, triggers and a runs column).
1507
+ if (version !== automationSchemaVersion && version !== 15 && version !== 16) {
1508
+ fail('schema-unsupported', 'expected schema 15, 16 or 17');
1509
+ }
1211
1510
  const rows = database.prepare(`
1212
1511
  SELECT id, system_owner, definition_hash, definition_json, status, next_run_at,
1213
1512
  created_at, updated_at, version, 0 AS running_task_count