@bastani/atomic 0.9.52-alpha.1 → 0.9.53-alpha.1

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 (34) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/package.json +1 -1
  4. package/dist/builtin/subagents/package.json +1 -1
  5. package/dist/builtin/subagents/src/extension/index.bundle.mjs +13 -0
  6. package/dist/builtin/web-access/CHANGELOG.md +6 -0
  7. package/dist/builtin/web-access/package.json +1 -1
  8. package/dist/builtin/workflows/CHANGELOG.md +11 -0
  9. package/dist/builtin/workflows/package.json +1 -1
  10. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  11. package/dist/core/agent-session-extension-bindings.js +5 -0
  12. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  13. package/dist/core/agent-session-types.d.ts +6 -0
  14. package/dist/core/agent-session-types.d.ts.map +1 -1
  15. package/dist/core/agent-session-types.js.map +1 -1
  16. package/dist/core/extensions/runner.d.ts +6 -0
  17. package/dist/core/extensions/runner.d.ts.map +1 -1
  18. package/dist/core/extensions/runner.js +9 -0
  19. package/dist/core/extensions/runner.js.map +1 -1
  20. package/dist/core/tasks/supervisor.d.ts +8 -0
  21. package/dist/core/tasks/supervisor.d.ts.map +1 -1
  22. package/dist/core/tasks/supervisor.js +49 -0
  23. package/dist/core/tasks/supervisor.js.map +1 -1
  24. package/dist/modes/interactive/components/footer.d.ts +5 -0
  25. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  26. package/dist/modes/interactive/components/footer.js +13 -4
  27. package/dist/modes/interactive/components/footer.js.map +1 -1
  28. package/dist/modes/interactive/components/task-inspector.d.ts +7 -0
  29. package/dist/modes/interactive/components/task-inspector.d.ts.map +1 -1
  30. package/dist/modes/interactive/components/task-inspector.js +36 -4
  31. package/dist/modes/interactive/components/task-inspector.js.map +1 -1
  32. package/docs/background-tasks.md +2 -0
  33. package/npm-shrinkwrap.json +36 -36
  34. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/core/tasks/supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAWnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD,qFAAqF;AACrF,MAAM,UAAU;IACf,KAAK,GAAG,IAAI,CAAC;IACb,MAAM;QACL,MAAM,IAAI,SAAS,CAAC,wCAAwC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IAChG,CAAC;CACD;AACD,MAAM,cAAe,SAAQ,UAAU;IAC7B,IAAI,GAAG,MAAM,CAAC;CACvB;AACD,MAAM,eAAgB,SAAQ,UAAU;IAC9B,IAAI,GAAG,OAAO,CAAC;CACxB;AACD,MAAM,cAAe,SAAQ,UAAU;IAC7B,IAAI,GAAG,MAAM,CAAC;CACvB;AACD,MAAM,cAAe,SAAQ,UAAU;IAC7B,IAAI,GAAG,MAAM,CAAC;CACvB;AACD,MAAM,sBAAuB,SAAQ,UAAU;IACrC,IAAI,GAAG,cAAc,CAAC;CAC/B;AACD,MAAM,eAAgB,SAAQ,UAAU;IAC9B,IAAI,GAAG,OAAO,CAAC;CACxB;AAsDD,uFAAuF;AACvF,MAAM,WAAW,GAAG;IACnB,KAAK,EAAE,IAAI,OAAO,EAA0B;IAC5C,MAAM,EAAE,IAAI,OAAO,EAA0B;IAC7C,KAAK,EAAE,IAAI,OAAO,EAAwB;IAC1C,MAAM,EAAE,IAAI,OAAO,EAAiC;IACpD,KAAK,EAAE,IAAI,OAAO,EAAwB;IAC1C,YAAY,EAAE,IAAI,GAAG,EAAuB;IAC5C,QAAQ,EAAE,IAAI,GAAG,EAAyB;CAC1C,CAAC;AAEF,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CACnC,IAAe;IAEf,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;IAC1F,IAAI,CAAC,KAAK,CAAC,UAAU;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,CAAC;IACnG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;AACrF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,wBAAwB,CAAC,IAAe;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,mGAAmG;AACnG,SAAS,gBAAgB,CAAI,MAAS;IACrC,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,kCAAkC,CAAC;IAC3C,CAAC;AACF,CAAC;AACD,SAAS,MAAM,CACd,MAAuC,EACvC,OAAwB,EACxB,KAAsB;IAEtB,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5G,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;AACtE,CAAC;AACD,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,oBAAoB,CAAU,CAAC;AACrE,MAAM,WAAW,GAAG;IACnB,cAAc;IACd,cAAc;IACd,YAAY;IACZ,eAAe;IACf,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,wBAAwB;CACf,CAAC;AACX,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,CAAU,CAAC;AACvH,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AACjG,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,CAAU,CAAC;AACtF,SAAS,SAAS,CAAC,KAA2B;IAC7C,OAAO;QACN,OAAO,EAAE,KAAK,CAAC,OAAoB;QACnC,MAAM,EAAE,KAAK,CAAC,MAAkB;QAChC,SAAS,EAAE,KAAK,CAAC,SAAwB;QACzC,UAAU,EAAE,KAAK,CAAC,UAA0B;KAC5C,CAAC;AACH,CAAC;AACD,SAAS,MAAM,CAAC,KAAoB;IACnC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAA0B,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAsB,EAAE,CAAC;AACjG,CAAC;AACD,SAAS,MAAM,CAAC,KAAuB;IACtC,OAAO;QACN,OAAO,EAAE,KAAK,CAAC,OAAoB;QACnC,MAAM,EAAE,KAAK,CAAC,MAAkB;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;KAC5E,CAAC;AACH,CAAC;AACD,SAAS,UAAU,CAAC,KAAwB;IAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,WAAW;YACf,OAAO;gBACN,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC5B,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;aACrE,CAAC;QACH,KAAK,QAAQ;YACZ,OAAO;gBACN,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvE,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;aACrE,CAAC;QACH,KAAK,WAAW;YACf,OAAO;gBACN,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;aACvE,CAAC;IACJ,CAAC;AACF,CAAC;AACD,SAAS,SAAS,CAAC,KAAuB;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACjG,CAAC;AACD,SAAS,WAAW,CAAC,KAA6B;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAkB,EAAE,CAAC;IAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,cAAc,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC;QACjG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG;QACf,UAAU;QACV,oBAAoB;QACpB,SAAS;QACT,uBAAuB;QACvB,cAAc;QACd,cAAc;QACd,oBAAoB;KACX,CAAC;IACX,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAC/E,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACpD,CAAC;AACD,qFAAqF;AACrF,uFAAuF;AACvF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC9D,SAAS,MAAM,CAAC,KAAwB;IACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnH,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO;QACN,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;QACzB,iBAAiB,EAAE,KAAK,CAAC,iBAAkC;QAC3D,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAwB,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;QACpF,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;QACpF,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QACzF,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACA,OAAO,EAAE;oBACR,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACxF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACxF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;iBAC3F;aACD,CAAC;QACJ,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;KAC5B,CAAC;AACH,CAAC;AACD,SAAS,QAAQ,CAAC,KAA2B;IAC5C,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;QAClF,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,OAAO;QACN,OAAO,EAAE,KAAK,CAAC,OAAoB;QACnC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAA0B;QAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;KAC5B,CAAC;AACH,CAAC;AACD,SAAS,QAAQ,CAAC,KAA4B;IAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;QAClF,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,oGAAoG;IACpG,OAAO,KAAyB,CAAC;AAClC,CAAC;AACD,SAAS,OAAO,CAAC,KAAuB;IACvC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,eAAe;YACnB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,KAAK,cAAc;YAClB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,KAAK,cAAc,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACtG,OAAO;gBACN,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;gBACzB,MAAM,EAAE,KAAK,CAAC,MAAkB;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACxB,CAAC;QACH,CAAC;QACD,KAAK,cAAc;YAClB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAChH,KAAK,0BAA0B;YAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACrG,KAAK,eAAe;YACnB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5F,KAAK,iBAAiB;YACrB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5E,KAAK,cAAc;YAClB,OAAO;gBACN,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;gBACzB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;aAChC,CAAC;QACH,KAAK,iBAAiB;YACrB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAChF,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YAClB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;AACF,CAAC;AACD,SAAS,KAAK,CAAC,KAAyB;IACvC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACvF,OAAO;QACN,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAoB;QACnC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAkB,EAAE,CAAC;QAC3E,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;KAC/B,CAAC;AACH,CAAC;AACD,SAAS,WAAW,CAAC,KAAyB;IAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS;QAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAkB,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QAC1F,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACnH,CAAC;AACD,SAAS,aAAa,CAAC,KAA2B;IACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,iBAAiB,IAAI,KAAK,CAAC,QAAQ,KAAK,wBAAwB;QACtF,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClD,OAAO;QACN,MAAM,EAAE,KAAK,CAAC,MAAkB;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAA2B;IACjD,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW;QACxE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;AACnG,CAAC;AACD,6EAA6E;AAC7E,SAAS,UAAU,CAAC,OAAwB,EAAE,KAAoB;IACjE,MAAM,IAAI,GAAoB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC9F,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CACnF,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpF,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACzB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,cAAc;YAClB,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACrC,MAAM;QACP,KAAK,0BAA0B;YAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACtC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,cAAc;gBAC3F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,MAAM;QACP,KAAK,iBAAiB;YACrB,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7D,MAAM;QACP,KAAK,cAAc;YAClB,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5D,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3E,MAAM;QACP,KAAK,iBAAiB;YACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC9B,MAAM;QACP,KAAK,eAAe,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACxC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvB,KAAK,QAAQ;oBACZ,IAAI,CAAC,aAAa,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,oBAAoB;wBAAE,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oBACpF,MAAM;gBACP,KAAK,OAAO;oBACX,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBAClC,MAAM;gBACP,KAAK,SAAS;oBACb,IAAI,CAAC,OAAO,GAAG;wBACd,GAAG,IAAI,CAAC,OAAO;wBACf,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;wBAC9E,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;wBAC9E,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;qBACjF,CAAC;oBACF,MAAM;gBACP,KAAK,eAAe;oBACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;oBACpC,MAAM;gBACP,KAAK,iBAAiB;oBACrB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;wBAC5F,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oBACnC,MAAM;gBACP,KAAK,QAAQ;oBACZ,MAAM;YACR,CAAC;YACD,MAAM;QACP,CAAC;QACD,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc;YAClB,MAAM;IACR,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AACD,+FAA+F;AAC/F,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,OAAO,gBAAgB;IAC5B,OAAO,CAAwB;IAC/B,MAAM,CAA2B;IACjC,SAAS,GAAG,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,CAAiC;IACvC,MAAM,GAAoB,EAAE,CAAC;IAC7B,MAAM,GAAG,CAAC,CAAC;IACX,KAAK,CAAkD;IACvD,SAAS,GAAG,KAAK,CAAC;IAClB,SAAS,CAAkB;IAC3B,OAAO,CAAW;IAClB,uGAAuG;IACvG,WAAW,GAA0E,GAAG,EAAE,GAAE,CAAC,CAAC;IAC9F,UAAU,CAAa;IACvB,QAAQ,CAAS;IACR,MAAM,CAA+B;IACrC,KAAK,GAAsB,IAAI,sBAAsB,EAAE,CAAC;IAEjE,YAAY,KAA4B,EAAE,OAAsC,EAAE,SAAqB;QACtG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG;YACb,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;gBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC1B,OAAO;oBACN,IAAI,EAAE,GAAG,EAAE;wBACV,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;4BAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;wBACpF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,KAAK;4BAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC1D,IAAI,IAAI,CAAC,SAAS;4BAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC7E,IAAI,IAAI,CAAC,KAAK;4BAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;wBACpG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;4BAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;wBACtB,CAAC,CAAC,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE,KAAK,IAAI,EAAE;wBAClB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;4BAAE,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBACzC,CAAC;iBACD,CAAC;YACH,CAAC;SACD,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IACD,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,4FAA4F;IAC5F,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,yFAAyF;IACzF,IAAI,CAAC,KAAyB;QAC7B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI;QACH,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC1C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IACD,KAAK;QACJ,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACzE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC;QACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,gFAAgF;YAChF,4EAA4E;YAC5E,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACxB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACJ,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,KAAK;YACT,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;oBACvB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9B,CAAC;;oBAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,KAAK,GAAG,IAAI;QACnB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM;YAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,KAAK;YAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;CACD;AAED,SAAS,sBAAsB;IAC9B,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,yBAAyB,CAAkB,CAAC;IACjG,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,OAAO,cAAc;IAC1B,OAAO,GAAG,sBAAsB,EAAE,CAAC;IACnC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;IAC3B,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7B,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;IAC3B,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;IAC3B,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC;IACzC,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;IACjC,eAAe,CAAC,OAAwB;QACvC,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,aAAa,CAAC,IAAiB,EAAE,KAAmB;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,MAAM,CACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAC/C,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAoB,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,UAAU,GAAe;gBAC9B,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,IAAI,GAAG,EAAE;gBAChB,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,iBAAiB,EAAE,IAAI,GAAG,EAAE;gBAC5B,OAAO,EAAE,IAAI,eAAe,EAAE;gBAC9B,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,QAAQ,EAAE,IAAI,GAAG,EAAE;gBACnB,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,IAAI,GAAG,EAAE;aACxB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,UAAU,EAAE,EAAE;gBAC1C,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ;oBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC7E,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvC,MAAM,KAAK,GACV,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY;wBACrC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK;wBACxB,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;4BAChE,CAAC,CAAC,aAAa;4BACf,CAAC,CAAC,SAAS,CAAC;oBACf,IAAI,CAAC,KAAK;wBAAE,SAAS;oBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC7D,IAAI,IAAI;wBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpD,CAAC;gBACD,IAAI,OAA0B,CAAC;gBAC/B,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;wBAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1F,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvC,IACC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;wBACnC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC9C,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa;wBAE5B,SAAS;oBACV,IAAI,CAAC;wBACJ,+EAA+E;wBAC/E,yEAAyE;wBACzE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC/D,IAAI,CAAC,IAAI,CAAC,EAAE;4BAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxD,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACxD,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChE,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,OAAO,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;oBAChD,CAAC;gBACF,CAAC;gBACD,IAAI,OAAO;oBAAE,MAAM,OAAO,CAAC;YAC5B,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACd,CAAC,EACD,WAAW,CACX,CAAC;IACH,CAAC;IACD,cAAc,CAAC,KAAiB,EAAE,MAAgB;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAkB,OAAO,EAAE;aACtC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,kBAAkB,CAAC,KAAiB,EAAE,GAAoB,EAAE,OAAiC;QAC5F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACpF,6EAA6E;QAC7E,uEAAuE;QACvE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE;YACrC,MAAM,EAAE,OAAO,CAAC,MAAkB;YAClC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,YAAY,EAAE,OAAO,CAAC,YAAY;SAClC,CAAC,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,gBAAgB,CACrB,KAAiB,EACjB,MAAuB,EACvB,SAAwB,EACxB,MAAoB;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;YACjE,OAAO;gBACN,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,gDAAgD,EAAE;aAC/F,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,GAAG,EAAE;YACnB,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM;gBAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClG,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IACf,CAAC;IACD,KAAK,CAAC,kBAAkB,CACvB,KAAiB,EACjB,MAAuB,EACvB,SAAwB,EACxB,MAAoB;QAEpB,+EAA+E;QAC/E,IAAI,eAA4B,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC/C,eAAe,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,OAAmC,CAAC;QACxC,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,CAAC,wBAAwB,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAC5F,SAAS,EACT,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAC/E,CAAC;YACF,IAAI,OAAuE,CAAC;YAC5E,IAAI,CAAC;gBACJ,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yDAAyD,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE;oBACnG,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM,IAAI,KAAK,CACd,yDAAyD,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CACvG,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,QAAQ,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAkB,CAAC;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACnD,IAAI,WAA8B,CAAC;YACnC,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC5D,IAAI,CAAC,KAAK,CAAC,EAAE;wBAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;wBAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtG,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,WAAW,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC/B,OAAO,GAAG,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;gBACrB,MAAM,EAAE,QAAQ,CAAC,KAAK;gBACtB,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;gBACzB,UAAU,EAAE,IAAI,eAAe,EAAE;gBACjC,IAAI,EAAE,SAAS;aACf,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAClE,MAAM,WAAW,CAAC;YACnB,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;wBAChG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC;YACF,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC;gBACJ,MAAM,OAAO,EAAE,EAAE,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACV,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1C,eAAe,EAAE,CAAC;YACnB,CAAC;QACF,CAAC;IACF,CAAC;IACD,+EAA+E;IAC/E,KAAK,CAAC,sBAAsB,CAAC,KAAiB;QAC7C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,SAAS,CAAC,IAAe;QACxB,OAAO,MAAM,CACZ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAC/C,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;YACpC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;QACd,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,CAAU,CAC5E,CAAC;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CACnB,KAAiB,EACjB,SAAwB,EACxB,IAAiB;QAEjB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC5D,OAAO,MAAM,CACZ,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAChC,KAAK,EACL,SAAS,EACT,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAChF,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACX,WAAW,EAAE,KAAK,CAAC,WAA4B;YAC/C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAuB;SACnC,CAAC,EACF,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,sBAAsB,CAAU,CAC1G,CAAC;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,IAAe,EAAE,KAAoB;QACzD,OAAO,MAAM,CACZ,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EACjE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACV,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpG,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;SACzE,CAAC,EACF,CAAC,aAAa,EAAE,mBAAmB,CAAU,CAC7C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CACnB,KAAiB,EACjB,MAAqB,EACrB,SAAwB,EACxB,QAAkD;QAElD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CACtB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAChB,WAAW,CACX,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAkB,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACnD,IAAI,MAAM,CAAC,eAAe;YAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,SAAS,GAAc;YAC5B,MAAM,EAAE,QAAQ,CAAC,KAAK;YACtB,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,UAAU,EAAE,IAAI,eAAe,EAAE;SACjC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO;YAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACnG,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,IAAI,SAAwB,CAAC;YAC7B,IAAI,CAAC;gBACJ,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1C;oBACC,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC;oBAC7B,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM;oBACnC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;wBAC3B,SAAS,CAAC,mBAAmB,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;wBAC9D,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC;oBAChC,CAAC;oBACD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC;iBAC3F,EACD,MAAM,CACN,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxC,SAAS,GAAG;oBACX,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;oBACzE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;wBACxB,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;qBACnF,CAAC;iBACF,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM;iBAC9B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACvG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChB,OAAO,MAAM,CACZ,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EACtD,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EACnE,YAAY,CACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACJ,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CACtC,CAAC,KAAK,EAAa,EAAE,CAAC,CAAC;gBACtB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;aACjG,CAAC,CACF,CAAC;YACF,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACrD,+EAA+E;gBAC/E,+EAA+E;gBAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC3C,IAAI,OAAoB,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;oBACpD,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAI,MAAM,CAAC,OAAO;wBAAE,OAAO,EAAE,CAAC;;wBACzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACtE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,CAC1B,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAC3D,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EACpB,YAAY,CACZ,CAAC;gBACF,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;oBAC5F,OAAO,QAAQ,CAAC;gBACjB,OAAO,YAAY,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ;YAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;;YAC5B,KAAK,QAAQ,EAAE,CAAC;QACrB,4FAA4F;QAC5F,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,aAAa,CAAC,IAAe;QAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,WAAW,CAChB,IAAe,EACf,QAAiB,EACjB,WAAyB;QAEzB,MAAM,UAAU,GAAG,MAAM,CACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EACxF,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACxD,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAChC,UAAU,CACV,CAAC;QACF,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC5E,CAAC;IACD,yFAAyF;IACzF,UAAU,CAAC,KAAiB,EAAE,MAAgB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/G,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,+BAA+B,EAAE,EAAE,CAAC;QACjH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,KAAiB,EACjB,MAAgB,EAChB,QAAiB,EACjB,YAAwC;QAExC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/G,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CACvB,KAAK,CAAC,KAAK,EACX,IAAI,CAAC,YAAY,CAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAClB,QAAQ,EACR,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAC3D,CACD,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAChC,UAAU,CACV,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;QACtC,YAAY,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,IAAe,EAAE,QAAiB;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,CAAU,CAAC;QAC7F,MAAM,UAAU,GAAG,MAAM,CACxB,IAAI,CAAC,OAAO,CAAC,cAAc,CAC1B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAClE,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAChC,MAAM,CACN,CAAC;QACF,OAAO,UAAU,CAAC,EAAE;YACnB,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YACpF,CAAC,CAAC,UAAU,CAAC;IACf,CAAC;IACD,MAAM,CAAC,IAAe;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAkB,CAAC;IACnD,CAAC;IACD,QAAQ,CAAC,EAAY;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,eAAe,CAAC,IAAe;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IACjC,CAAC;IACD,aAAa,CAAC,IAAe,EAAE,MAAqB;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE;YACvF,aAAa;YACb,iBAAiB;YACjB,mBAAmB;SACnB,CAAC,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,IAAe;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,CAAC,kBAAkB,CACvB,IAAe,EACf,MAAqB,EACrB,YAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,CACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CACvB,KAAK,CAAC,MAAM,EACZ,MAAM,EAAE,IAAI,KAAK,YAAY;YAC5B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;YAC3E,CAAC,CAAC,SAAS,EACZ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CACvB,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAChC,UAAU,CACV,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;QACtC,YAAY,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY;YAChC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,IAAe,EAAE,KAAoB;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE;YAClF,aAAa;YACb,eAAe;SACf,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,wBAAwB;YAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnG,OAAO,MAAM,CAAC;IACf,CAAC;IACD,KAAK,CAAC,cAAc,CACnB,KAAiB,EACjB,KAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,MAAM,CACpB,MAAM,OAAO,EACb,CAAC,OAAO,EAAuB,EAAE,CAAC,CAAC;YAClC,OAAO,EAAE,OAAO,CAAC,OAAoB;YACrC,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;SACvC,CAAC,EACF,CAAC,eAAe,EAAE,oBAAoB,CAAC,CACvC,CAAC;QACF,IAAI,MAAM,CAAC,EAAE;YACZ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;gBACnD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,CAAC;QACF,IAAI,MAAM,CAAC,EAAE;YACZ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACF,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACnF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACD;;;;;;OAMG;IACH,eAAe,CAAC,KAAiB,EAAE,IAAe;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,YAA0C,CAAC;QAC/C,OAAO,MAAM,CACZ,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EACpF,CAAC,OAAO,EAAE,EAAE;YACX,YAAY,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;gBAC/D,IAAI,YAAY;oBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,OAAO,YAAY,CAAC;QACrB,CAAC,EACD,WAAW,CACX,CAAC;IACH,CAAC;IACD,YAAY,CAAC,KAAiB,EAAE,QAAiB,EAAE,OAAO,GAAG,KAAK;QACjE,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;QACrD,IAAI,aAAa,EAAE,IAAI,KAAK,eAAe;YAAE,OAAO,SAAS,CAAC;QAC9D,OAAO,OAAO;YACb,CAAC,CAAC,CAAC,aAAa,EAAE,eAAe,IAAI,4BAA4B,CAAC;YAClE,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,IAAI,4BAA4B,CAAC,CAAC;IACnE,CAAC;IACD,SAAS,CAAC,KAAuB;QAChC,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAkB,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aAC1B,eAAe,CAAC,KAAK,CAAC;aACtB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;aACzD,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,KAAK,CAAC,IAAiB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,CAAC,KAAiB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,KAAK,CAAC,IAAe;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,KAAK,CAAC,IAAe;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACd,CAAC;CACD","sourcesContent":["import { AsyncResource } from \"node:async_hooks\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type * as native from \"@bastani/atomic-natives\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { createModuleRequire } from \"../../utils/module-require.ts\";\nimport type { AgentSessionEvent } from \"../agent-session.js\";\nimport { currentResourceAdmission } from \"../resource-admission-scope.ts\";\nimport type { ResourcePermit } from \"../sdk-types.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport { COMMAND_FOREGROUND_BUDGET_MS } from \"./command-output.js\";\nimport type { TaskCompletionSource } from \"./completion-ordering.js\";\nimport type * as C from \"./contracts.js\";\n\nexport type TaskTranscriptSource = Pick<SessionManager, \"getSessionId\" | \"getEntries\"> & {\n\treadonly completionSource?: TaskCompletionSource;\n\t/** Viewer-only subscription; updates never publish task lifecycle events. */\n\tsubscribe?(listener: (event: AgentSessionEvent) => void): () => void;\n\tgetStreamingMessage?(): AgentMessage | undefined;\n};\n\nexport const DEFAULT_AGENT_WAIT_BUDGET_MS = 30000;\n/** These objects are live authority, not DTOs, restart tokens or model arguments. */\nclass Capability {\n\t#live = true;\n\ttoJSON(): never {\n\t\tthrow new TypeError(`Task capability is not serializable (${this.#live ? \"live\" : \"closed\"})`);\n\t}\n}\nclass HostCapability extends Capability {\n\treadonly kind = \"host\";\n}\nclass OwnerCapability extends Capability {\n\treadonly kind = \"owner\";\n}\nclass TaskCapability extends Capability {\n\treadonly kind = \"task\";\n}\nclass WaitCapability extends Capability {\n\treadonly kind = \"wait\";\n}\nclass SubscriptionCapability extends Capability {\n\treadonly kind = \"subscription\";\n}\nclass StdinCapability extends Capability {\n\treadonly kind = \"stdin\";\n}\nexport type StdinLease = StdinCapability;\nexport type HostSession = HostCapability;\nexport type OwnerLease = OwnerCapability;\nexport type TaskLease = TaskCapability;\nexport type WaitLease = WaitCapability;\nexport type SubscriptionLease = SubscriptionCapability;\n\nexport type FakeRunnerContext = {\n\tref: C.NativeTaskRef;\n\tsignal: AbortSignal;\n\treportActivity(report: C.ActivityReport): C.Result<C.ReportReceipt, C.ReportError>;\n\t/** Bind existing child history while holding the admitted runner authority. */\n\tbindTranscript(session: TaskTranscriptSource): void;\n};\n/** Independent cleanup evidence: an outcome alone never proves resource release. */\nexport type FakeExecution = { result: Promise<C.TaskResult>; cleanup: Promise<C.Cleanup> };\nexport type TrustedTaskHost = {\n\tscope: C.OwnerScope;\n\t/** Owner-host observation settings; never an execution deadline. */\n\ttasks?: { wait?: C.TaskWaitConfiguration };\n\t/** The existing host/tool refusal throws here, before native admission. */\n\tauthorizeCommandLaunch?(intent: C.CommandIntent): void;\n\tauthorizeLaunch(intent: C.AgentIntent): void;\n\tresourceAdmission?: import(\"../sdk-types.ts\").ResourceAdmission;\n\tonTaskSettled?(ref: C.NativeTaskRef, receipt: C.SettlementReceipt): void;\n\tcreateRunner(context: FakeRunnerContext, intent: C.AgentIntent): FakeExecution;\n};\ntype HostState = { native: native.HostSession; binding: TrustedTaskHost };\ntype OwnerState = {\n\tnative: native.OwnerLease;\n\thost: HostState;\n\ttasks: Map<C.TaskId, TaskLease>;\n\twatches: Set<TaskSubscription>;\n\tsettledTasks: Set<C.TaskId>;\n\tcommandAdmissions: Set<Promise<void>>;\n\tclosing: AbortController;\n\tpermits: Map<C.TaskId, ResourcePermit>;\n\treleases: Set<Promise<void>>;\n\treleaseFailures: Error[];\n\tcommandStarts: Map<C.OperationId, { intent: C.CommandIntent; result: Promise<C.Result<TaskLease, C.StartFailure>> }>;\n};\ntype TaskState = {\n\tnative: native.TaskLease;\n\towner: OwnerState;\n\tref: C.NativeTaskRef;\n\tcontroller: AbortController;\n\tkind?: \"command\";\n\texecution?: Promise<C.Result<C.Cleanup, C.ReportError>>;\n\ttranscript?: TaskTranscriptSource;\n\tinheritedEntryCount?: number;\n};\ntype WaitState = { native: native.WaitLease; outcome: Promise<C.Result<C.WaitOutcome, C.WaitError>> };\n\n// Native supervisors share one actor per environment; their JS continuations must too.\nconst environment = {\n\thosts: new WeakMap<HostSession, HostState>(),\n\towners: new WeakMap<OwnerLease, OwnerState>(),\n\ttasks: new WeakMap<TaskLease, TaskState>(),\n\tinputs: new WeakMap<StdinLease, native.StdinLease>(),\n\twaits: new WeakMap<WaitLease, WaitState>(),\n\twaitRegistry: new Map<C.WaitId, WaitLease>(),\n\townerIds: new Map<C.OwnerId, OwnerLease>(),\n};\n\n/** Reads only history bound by the admitted runner, never a caller-selected session. */\nexport function taskTranscriptSource(\n\ttask: TaskLease,\n): C.Result<{ session: TaskTranscriptSource; taskId: C.TaskId }, C.Failure<\"UnknownTask\" | \"TranscriptUnavailable\">> {\n\tconst state = environment.tasks.get(task);\n\tif (!state) return { ok: false, error: { code: \"UnknownTask\", message: \"Unknown task\" } };\n\tif (!state.transcript)\n\t\treturn { ok: false, error: { code: \"TranscriptUnavailable\", message: \"Transcript unavailable\" } };\n\treturn { ok: true, value: { session: state.transcript, taskId: state.ref.taskId } };\n}\n\n/** History the runner produced; a forked child's inherited parent entries are excluded. */\nexport function taskOwnTranscriptEntries(task: TaskLease): ReturnType<TaskTranscriptSource[\"getEntries\"]> | undefined {\n\tconst state = environment.tasks.get(task);\n\treturn state?.transcript?.getEntries().slice(state.inheritedEntryCount ?? 0);\n}\n\n/** Promise rejections, setup throws and consumer exceptions may be arbitrary JavaScript values. */\nfunction rejectionMessage<T>(reason: T): string {\n\ttry {\n\t\tconst message = reason instanceof Error ? reason.message : reason;\n\t\treturn typeof message === \"string\" ? message : String(message);\n\t} catch {\n\t\treturn \"Unprintable JavaScript rejection\";\n\t}\n}\nfunction mapped<T, U, Code extends string>(\n\tresult: C.Result<T, native.TaskFailure>,\n\tconvert: (value: T) => U,\n\tcodes: readonly Code[],\n): C.Result<U, C.Failure<Code>> {\n\tif (result.ok) return { ok: true, value: convert(result.value) };\n\tconst code = codes.find((candidate) => candidate === result.error.code);\n\tif (!code) throw new Error(`Unexpected native task refusal: ${result.error.code}: ${result.error.message}`);\n\treturn { ok: false, error: { code, message: result.error.message } };\n}\nconst ownerErrors = [\"ScopeMismatch\", \"EnvironmentClosing\"] as const;\nconst startErrors = [\n\t\"OwnerClosing\",\n\t\"UnknownAgent\",\n\t\"InvalidCwd\",\n\t\"DepthExceeded\",\n\t\"CapacityExhausted\",\n\t\"DispatchGuardBusy\",\n\t\"OperationConflict\",\n\t\"RunnerUnavailable\",\n\t\"SpawnFailed\",\n\t\"ContainmentUnavailable\",\n] as const;\nconst waitErrors = [\"UnknownTask\", \"OwnerClosed\", \"EnvironmentClosing\", \"ScopeMismatch\", \"ObserverCancelled\"] as const;\nconst reportErrors = [\"StaleAttempt\", \"OwnerClosing\", \"TaskTerminal\", \"ReportConflict\"] as const;\nconst watchErrors = [\"OwnerClosed\", \"StaleGeneration\", \"EnvironmentClosing\"] as const;\nfunction reference(value: native.NativeTaskRef): C.NativeTaskRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tattemptId: value.attemptId as C.AttemptId,\n\t\tgeneration: value.generation as C.Generation,\n\t};\n}\nfunction cursor(value: native.Cursor): C.Cursor {\n\treturn { generation: value.generation as C.Generation, sequence: value.sequence as C.Sequence };\n}\nfunction output(value: native.OutputRef): C.OutputRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tartifactId: value.artifactId,\n\t\tbyteCount: value.byteCount,\n\t\tomittedRanges: value.omittedRanges.map(({ start, end }) => ({ start, end })),\n\t};\n}\nfunction taskResult(value: native.TaskResult): C.TaskResult {\n\tswitch (value.kind) {\n\t\tcase \"completed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\toutput: output(value.output),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"failed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcode: value.code,\n\t\t\t\tmessage: value.message,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"cancelled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcause: value.cause,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t};\n\t}\n}\nfunction execution(value: native.Execution): C.Execution {\n\treturn value.kind === \"settled\" ? { kind: \"settled\", result: taskResult(value.result) } : value;\n}\nfunction observation(value: native.HostObservation): C.HostObservation {\n\tif (value.kind === \"foreground\") return { kind: value.kind, waitId: value.waitId as C.WaitId };\n\tif (value.kind === \"none\" && (value.reason === \"task-settled\" || value.reason === \"owner-closing\"))\n\t\treturn { kind: value.kind, reason: value.reason };\n\tconst reasons = [\n\t\t\"explicit\",\n\t\t\"default-background\",\n\t\t\"elapsed\",\n\t\t\"intercom-coordination\",\n\t\t\"input-needed\",\n\t\t\"not-observed\",\n\t\t\"observer-cancelled\",\n\t] as const;\n\tconst reason = reasons.find((reason) => reason === value.reason);\n\tif (value.kind === \"background\" && reason) return { kind: value.kind, reason };\n\tthrow new Error(\"Invalid native host observation\");\n}\n// Native records own lifecycle and mutable execution metadata. Routing provenance is\n// immutable host metadata, retained for the same environment lifetime as task records.\nconst routerSelections = new Map<string, C.RouterSelection>();\nfunction record(value: native.TaskRecord): C.TaskRecord {\n\tif (value.kind !== \"agent\" && value.kind !== \"command\") throw new Error(`Invalid native task kind: ${value.kind}`);\n\tconst routerSelection = routerSelections.get(value.ref.taskId);\n\treturn {\n\t\tref: reference(value.ref),\n\t\tlaunchOperationId: value.launchOperationId as C.OperationId,\n\t\t...(value.parentTaskId === undefined ? {} : { parentTaskId: value.parentTaskId as C.TaskId }),\n\t\t...(value.launchGroupId === undefined ? {} : { launchGroupId: value.launchGroupId }),\n\t\tlaunchOrdinal: value.launchOrdinal,\n\t\tkind: value.kind,\n\t\ttitle: value.title,\n\t\t...(value.agentName === undefined ? {} : { agentName: value.agentName }),\n\t\t...(value.model === undefined ? {} : { model: value.model }),\n\t\t...(value.thinking === undefined ? {} : { thinking: value.thinking }),\n\t\t...(routerSelection ? { routerSelection } : {}),\n\t\texecution: execution(value.execution),\n\t\tobservation: observation(value.observation),\n\t\t...(value.wasBackground === undefined ? {} : { wasBackground: value.wasBackground }),\n\t\tattention: value.attention,\n\t\tcleanup: value.cleanup,\n\t\t...(value.currentAction === undefined\n\t\t\t? {}\n\t\t\t: { currentAction: { tool: value.currentAction.tool, text: value.currentAction.text } }),\n\t\t...(value.metrics === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tmetrics: {\n\t\t\t\t\t\t...(value.metrics.elapsedMs === undefined ? {} : { elapsedMs: value.metrics.elapsedMs }),\n\t\t\t\t\t\t...(value.metrics.toolCount === undefined ? {} : { toolCount: value.metrics.toolCount }),\n\t\t\t\t\t\t...(value.metrics.tokenCount === undefined ? {} : { tokenCount: value.metrics.tokenCount }),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\toutput: output(value.output),\n\t};\n}\nfunction snapshot(value: native.OwnerSnapshot): C.OwnerSnapshot {\n\tif (value.state !== \"open\" && value.state !== \"closing\" && value.state !== \"closed\")\n\t\tthrow new Error(`Invalid native owner state: ${value.state}`);\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\tscope: value.scope,\n\t\tgeneration: value.generation as C.Generation,\n\t\tstate: value.state,\n\t\ttasks: value.tasks.map(record),\n\t\tcursor: cursor(value.cursor),\n\t};\n}\nfunction activity(value: native.ActivityReport): C.ActivityReport {\n\tif (value.change.kind === \"attention-set\" && value.change.attention.kind === \"none\")\n\t\tthrow new Error(\"Native attention-set cannot clear attention\");\n\t// Native tagged variants are owned wire data; only attention-set has a wider generated declaration.\n\treturn value as C.ActivityReport;\n}\nfunction payload(value: native.TaskEvent): C.TaskEvent {\n\tswitch (value.kind) {\n\t\tcase \"task-admitted\":\n\t\t\treturn { kind: value.kind, task: record(value.task) };\n\t\tcase \"task-started\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref) };\n\t\tcase \"wait-started\": {\n\t\t\tif (value.observer !== \"sdk\" && value.observer !== \"host\") throw new Error(\"Invalid native observer\");\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\twaitId: value.waitId as C.WaitId,\n\t\t\t\tobserver: value.observer,\n\t\t\t};\n\t\t}\n\t\tcase \"wait-yielded\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), waitId: value.waitId as C.WaitId, reason: value.reason };\n\t\tcase \"host-observation-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), observation: observation(value.observation) };\n\t\tcase \"task-activity\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), activity: activity(value.activity) };\n\t\tcase \"task-cancelling\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cause: value.cause };\n\t\tcase \"task-settled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\tresult: taskResult(value.result),\n\t\t\t\tcompletionId: value.completionId,\n\t\t\t};\n\t\tcase \"cleanup-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cleanup: value.cleanup };\n\t\tcase \"owner-closing\":\n\t\tcase \"owner-closed\":\n\t\t\treturn { kind: value.kind };\n\t}\n}\nfunction event(value: native.NativeEvent): C.NativeEvent {\n\tif (value.schemaVersion !== 1) throw new Error(\"Unsupported native task event schema\");\n\treturn {\n\t\tschemaVersion: 1,\n\t\tcursor: cursor(value.cursor),\n\t\townerId: value.ownerId as C.OwnerId,\n\t\t...(value.taskId === undefined ? {} : { taskId: value.taskId as C.TaskId }),\n\t\tpayload: payload(value.payload),\n\t};\n}\nfunction waitOutcome(value: native.WaitOutcome): C.WaitOutcome {\n\treturn value.kind === \"settled\"\n\t\t? { kind: value.kind, taskId: value.taskId as C.TaskId, result: taskResult(value.result) }\n\t\t: { kind: value.kind, taskId: value.taskId as C.TaskId, waitId: value.waitId as C.WaitId, reason: value.reason };\n}\nfunction cancelReceipt(value: native.CancelReceipt): C.CancelReceipt {\n\tif (value.decision !== \"already-settled\" && value.decision !== \"cancellation-requested\")\n\t\tthrow new Error(\"Invalid cancellation decision\");\n\treturn {\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tdecision: value.decision,\n\t\texecution: execution(value.execution),\n\t\tcleanup: value.cleanup,\n\t};\n}\n\nfunction reportReceipt(value: native.ReportReceipt): C.ReportReceipt {\n\tif (value.disposition !== \"accepted\" && value.disposition !== \"duplicate\")\n\t\tthrow new Error(\"Invalid report disposition\");\n\treturn { reportId: value.reportId, cursor: cursor(value.cursor), disposition: value.disposition };\n}\n/** Projection only: native ordering remains the sole lifecycle authority. */\nfunction applyEvent(current: C.OwnerSnapshot, value: C.NativeEvent): C.OwnerSnapshot {\n\tconst next: C.OwnerSnapshot = { ...current, tasks: [...current.tasks], cursor: value.cursor };\n\tconst change = value.payload;\n\tif (change.kind === \"owner-closing\") {\n\t\tnext.state = \"closing\";\n\t\tnext.tasks = next.tasks.map((task) =>\n\t\t\ttask.execution.kind === \"settled\" ? task : { ...task, attention: { kind: \"none\" } },\n\t\t);\n\t\treturn next;\n\t}\n\tif (change.kind === \"owner-closed\") {\n\t\tnext.state = \"closed\";\n\t\treturn next;\n\t}\n\tif (change.kind === \"task-admitted\") {\n\t\tnext.tasks.push(change.task);\n\t\treturn next;\n\t}\n\tconst index = next.tasks.findIndex((task) => task.ref.taskId === change.ref.taskId);\n\tif (index < 0) throw new Error(\"Native delta references a task absent from its snapshot\");\n\tconst task: C.TaskRecord = { ...next.tasks[index] };\n\tnext.tasks[index] = task;\n\tswitch (change.kind) {\n\t\tcase \"task-started\":\n\t\t\ttask.execution = { kind: \"running\" };\n\t\t\tbreak;\n\t\tcase \"host-observation-changed\":\n\t\t\ttask.observation = change.observation;\n\t\t\tif (change.observation.kind === \"background\" && change.observation.reason !== \"not-observed\")\n\t\t\t\ttask.wasBackground = true;\n\t\t\tbreak;\n\t\tcase \"task-cancelling\":\n\t\t\ttask.execution = { kind: \"cancelling\", cause: change.cause };\n\t\t\tbreak;\n\t\tcase \"task-settled\":\n\t\t\ttask.execution = { kind: \"settled\", result: change.result };\n\t\t\ttask.attention = { kind: \"none\" };\n\t\t\tif (change.result.output !== undefined) task.output = change.result.output;\n\t\t\tbreak;\n\t\tcase \"cleanup-changed\":\n\t\t\ttask.cleanup = change.cleanup;\n\t\t\tbreak;\n\t\tcase \"task-activity\": {\n\t\t\tconst activity = change.activity.change;\n\t\t\tswitch (activity.kind) {\n\t\t\t\tcase \"action\":\n\t\t\t\t\ttask.currentAction = { tool: activity.tool, text: activity.text };\n\t\t\t\t\tif (task.attention.kind === \"no-recent-activity\") task.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\":\n\t\t\t\t\ttask.model = activity.model;\n\t\t\t\t\ttask.thinking = activity.thinking;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"metrics\":\n\t\t\t\t\ttask.metrics = {\n\t\t\t\t\t\t...task.metrics,\n\t\t\t\t\t\t...(activity.elapsedMs === undefined ? {} : { elapsedMs: activity.elapsedMs }),\n\t\t\t\t\t\t...(activity.toolCount === undefined ? {} : { toolCount: activity.toolCount }),\n\t\t\t\t\t\t...(activity.tokenCount === undefined ? {} : { tokenCount: activity.tokenCount }),\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-set\":\n\t\t\t\t\ttask.attention = activity.attention;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-clear\":\n\t\t\t\t\tif (task.attention.kind === \"input-needed\" && task.attention.requestId === activity.requestId)\n\t\t\t\t\t\ttask.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"output\":\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"wait-started\":\n\t\tcase \"wait-yielded\":\n\t\t\tbreak;\n\t}\n\treturn next;\n}\n/** One bounded wake poll per live subscription, including a journal with no retained event. */\nconst RECONCILE_INTERVAL_MS = 25;\nconst MAX_PENDING_EVENTS = 64;\nexport class TaskSubscription {\n\t#native: native.TaskSupervisor;\n\t#lease: native.SubscriptionLease;\n\t#resource = new AsyncResource(\"TaskSubscription\");\n\t#timer?: ReturnType<typeof setTimeout>;\n\t#queue: C.NativeEvent[] = [];\n\t#epoch = 0;\n\t#next?: (value: IteratorResult<C.NativeEvent>) => void;\n\t#disposed = false;\n\t#snapshot: C.OwnerSnapshot;\n\t#cursor: C.Cursor;\n\t/** Reconciliation supplements the RFC snapshot/cursor/iterable contract with the events it applied. */\n\tonReconcile: (snapshot: C.OwnerSnapshot, events: readonly C.NativeEvent[]) => void = () => {};\n\t#onDispose: () => void;\n\t#failure?: Error;\n\treadonly events: AsyncIterable<C.NativeEvent>;\n\treadonly lease: SubscriptionLease = new SubscriptionCapability();\n\n\tconstructor(actor: native.TaskSupervisor, initial: native.NativeTaskSubscription, onDispose: () => void) {\n\t\tObject.freeze(this.lease);\n\t\tthis.#native = actor;\n\t\tthis.#lease = initial.lease;\n\t\tthis.#snapshot = snapshot(initial.snapshot);\n\t\tthis.#cursor = cursor(initial.cursor);\n\t\tthis.#onDispose = onDispose;\n\t\tthis.events = {\n\t\t\t[Symbol.asyncIterator]: () => {\n\t\t\t\tconst epoch = this.#epoch;\n\t\t\t\treturn {\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tif (epoch !== this.#epoch) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tconst value = this.#queue.shift();\n\t\t\t\t\t\tif (value) return Promise.resolve({ done: false, value });\n\t\t\t\t\t\tif (this.#disposed) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tif (this.#next) return Promise.reject(new Error(\"Only one pending subscription read is supported\"));\n\t\t\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\t\t\tthis.#next = resolve;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\treturn: async () => {\n\t\t\t\t\t\tif (epoch === this.#epoch) this.dispose();\n\t\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t\tthis.#arm();\n\t}\n\tget snapshot(): C.OwnerSnapshot {\n\t\treturn this.#snapshot;\n\t}\n\tget cursor(): C.Cursor {\n\t\treturn this.#cursor;\n\t}\n\t/** Consumer exceptions are observable without breaking the native wake or fallback poll. */\n\tget failure(): Error | undefined {\n\t\treturn this.#failure;\n\t}\n\t/** Callback payloads are authentic hints; only the journal/snapshot is authoritative. */\n\twake(_hint: native.NativeEvent): void {\n\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t}\n\t#arm(): void {\n\t\tif (this.#disposed || this.#timer) return;\n\t\tthis.#timer = setTimeout(() => {\n\t\t\tthis.#timer = undefined;\n\t\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t\t\tthis.#arm();\n\t\t}, RECONCILE_INTERVAL_MS);\n\t\tthis.#timer.unref();\n\t}\n\tdrain(): void {\n\t\tif (this.#disposed) return;\n\t\tconst drained = this.#native.drainOwnerTasks(this.#lease);\n\t\tif (!drained.ok) {\n\t\t\tthis.dispose();\n\t\t\treturn;\n\t\t}\n\t\tconst events = drained.value.events.map(event);\n\t\tif (drained.value.snapshot) this.#snapshot = snapshot(drained.value.snapshot);\n\t\tfor (const value of events) {\n\t\t\tif (BigInt(value.cursor.sequence) > BigInt(this.#snapshot.cursor.sequence))\n\t\t\t\tthis.#snapshot = applyEvent(this.#snapshot, value);\n\t\t}\n\t\tthis.#cursor = cursor(drained.value.cursor);\n\t\tthis.#snapshot = { ...this.#snapshot, cursor: this.#cursor };\n\t\tconst overflow = this.#queue.length + events.length > MAX_PENDING_EVENTS;\n\t\tconst reset = drained.value.reset || overflow;\n\t\tif (reset) {\n\t\t\tthis.#queue = [];\n\t\t\tthis.#epoch++;\n\t\t\t// End the old iterator only after publishing the authoritative snapshot/cursor.\n\t\t\t// A new iterator on the same iterable observes subsequent authentic deltas.\n\t\t\tthis.#next?.({ done: true, value: undefined });\n\t\t\tthis.#next = undefined;\n\t\t}\n\t\tif (drained.value.snapshot || events.length) {\n\t\t\ttry {\n\t\t\t\tthis.#resource.runInAsyncScope(this.onReconcile, undefined, this.#snapshot, events);\n\t\t\t} catch (error) {\n\t\t\t\tthis.#failure = new Error(rejectionMessage(error));\n\t\t\t}\n\t\t}\n\t\tif (this.#disposed) return;\n\t\tif (!reset)\n\t\t\tfor (const value of events) {\n\t\t\t\tif (this.#next) {\n\t\t\t\t\tconst next = this.#next;\n\t\t\t\t\tthis.#next = undefined;\n\t\t\t\t\tnext({ done: false, value });\n\t\t\t\t} else this.#queue.push(value);\n\t\t\t}\n\t\tif (this.#snapshot.state === \"closed\") this.dispose(false);\n\t}\n\tdispose(clear = true): void {\n\t\tif (this.#disposed) return;\n\t\tthis.#disposed = true;\n\t\tif (this.#timer) clearTimeout(this.#timer);\n\t\tthis.#timer = undefined;\n\t\tthis.#native.disposeSubscription(this.#lease);\n\t\tif (clear) this.#queue = [];\n\t\tthis.#next?.({ done: true, value: undefined });\n\t\tthis.#next = undefined;\n\t\tthis.#resource.emitDestroy();\n\t\tthis.#onDispose();\n\t}\n}\n\nfunction createNativeSupervisor(): native.TaskSupervisor {\n\t// Keep loading separate from `new`: type-assertion erasure in the build\n\t// must not move construction onto createModuleRequire instead of the class.\n\tconst binding = createModuleRequire(import.meta.url)(\"@bastani/atomic-natives\") as typeof native;\n\treturn new binding.TaskSupervisor();\n}\n\nexport class TaskSupervisor {\n\t#native = createNativeSupervisor();\n\t#hosts = environment.hosts;\n\t#owners = environment.owners;\n\t#tasks = environment.tasks;\n\t#waits = environment.waits;\n\t#waitRegistry = environment.waitRegistry;\n\t#ownerIds = environment.ownerIds;\n\tbindHostSession(binding: TrustedTaskHost): HostSession {\n\t\tconst host = new HostCapability();\n\t\tObject.freeze(host);\n\t\tthis.#hosts.set(host, { native: this.#native.bindHostSession(binding.scope), binding });\n\t\treturn host;\n\t}\n\topenTaskOwner(host: HostSession, scope: C.OwnerScope): C.Result<OwnerLease, C.OwnerError> {\n\t\tconst state = this.#host(host);\n\t\treturn mapped(\n\t\t\tthis.#native.openTaskOwner(state.native, scope),\n\t\t\t(lease) => {\n\t\t\t\tconst probe = this.#native.watchOwnerTasks(lease, (_hint) => {});\n\t\t\t\tif (!probe.ok) throw new Error(probe.error.message);\n\t\t\t\tconst id = probe.value.snapshot.ownerId as C.OwnerId;\n\t\t\t\tthis.#native.disposeSubscription(probe.value.lease);\n\t\t\t\tconst existing = this.#ownerIds.get(id);\n\t\t\t\tif (existing) return existing;\n\t\t\t\tconst owner = new OwnerCapability();\n\t\t\t\tObject.freeze(owner);\n\t\t\t\tconst ownerState: OwnerState = {\n\t\t\t\t\tnative: lease,\n\t\t\t\t\thost: state,\n\t\t\t\t\ttasks: new Map(),\n\t\t\t\t\twatches: new Set(),\n\t\t\t\t\tsettledTasks: new Set(),\n\t\t\t\t\tcommandAdmissions: new Set(),\n\t\t\t\t\tclosing: new AbortController(),\n\t\t\t\t\tpermits: new Map(),\n\t\t\t\t\treleases: new Set(),\n\t\t\t\t\treleaseFailures: [],\n\t\t\t\t\tcommandStarts: new Map(),\n\t\t\t\t};\n\t\t\t\tthis.#owners.set(owner, ownerState);\n\t\t\t\tthis.#ownerIds.set(id, owner);\n\t\t\t\tconst watched = this.watchOwnerTasks(owner);\n\t\t\t\tif (!watched.ok) throw new Error(watched.error.message);\n\t\t\t\twatched.value.onReconcile = (projection) => {\n\t\t\t\t\tif (projection.state === \"closed\") this.#ownerIds.delete(projection.ownerId);\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tconst cause =\n\t\t\t\t\t\t\trecord.execution.kind === \"cancelling\"\n\t\t\t\t\t\t\t\t? record.execution.cause\n\t\t\t\t\t\t\t\t: projection.state !== \"open\" && record.cleanup.kind !== \"reaped\"\n\t\t\t\t\t\t\t\t\t? \"owner-close\"\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tif (!cause) continue;\n\t\t\t\t\t\tconst task = this.#owner(owner).tasks.get(record.ref.taskId);\n\t\t\t\t\t\tif (task) this.#task(task).controller.abort(cause);\n\t\t\t\t\t}\n\t\t\t\t\tlet failure: Error | undefined;\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (record.cleanup.kind === \"reaped\") this.#releasePermit(ownerState, record.ref.taskId);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\trecord.execution.kind !== \"settled\" ||\n\t\t\t\t\t\t\townerState.settledTasks.has(record.ref.taskId) ||\n\t\t\t\t\t\t\t!state.binding.onTaskSettled\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Cancellation settles at cleanup (or while queued), without a runner outcome.\n\t\t\t\t\t\t\t// Recover its authentic receipt even when the bounded journal has reset.\n\t\t\t\t\t\t\tconst task = this.#native.lookupTask(lease, record.ref.taskId);\n\t\t\t\t\t\t\tif (!task.ok) throw new Error(task.error.message);\n\t\t\t\t\t\t\tconst settled = this.#native.taskSettlement(task.value);\n\t\t\t\t\t\t\tif (!settled.ok) throw new Error(settled.error.message);\n\t\t\t\t\t\t\tthis.#notifyTaskSettled(ownerState, record.ref, settled.value);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfailure ??= new Error(rejectionMessage(error));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (failure) throw failure;\n\t\t\t\t};\n\t\t\t\twatched.value.onReconcile(watched.value.snapshot, []);\n\t\t\t\treturn owner;\n\t\t\t},\n\t\t\townerErrors,\n\t\t);\n\t}\n\t#releasePermit(state: OwnerState, taskId: C.TaskId): void {\n\t\tconst release = state.permits.get(taskId);\n\t\tif (!release) return;\n\t\tstate.permits.delete(taskId);\n\t\tconst pending: Promise<void> = release()\n\t\t\t.catch((error) => {\n\t\t\t\tstate.releaseFailures.push(new Error(rejectionMessage(error)));\n\t\t\t})\n\t\t\t.finally(() => state.releases.delete(pending));\n\t\tstate.releases.add(pending);\n\t}\n\t#notifyTaskSettled(state: OwnerState, ref: C.NativeTaskRef, receipt: native.SettlementReceipt): void {\n\t\tif (!state.host.binding.onTaskSettled || state.settledTasks.has(ref.taskId)) return;\n\t\t// Runner outcomes and snapshot recovery share one delivery door. Mark before\n\t\t// host code so reentrant drains or callback failures cannot redeliver.\n\t\tstate.settledTasks.add(ref.taskId);\n\t\tstate.host.binding.onTaskSettled(ref, {\n\t\t\ttaskId: receipt.taskId as C.TaskId,\n\t\t\tcursor: cursor(receipt.cursor),\n\t\t\tresult: taskResult(receipt.result),\n\t\t\tcompletionId: receipt.completionId,\n\t\t});\n\t}\n\tasync startCommandTask(\n\t\towner: OwnerLease,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeCommandLaunch?.(intent);\n\t\tconst known = state.commandStarts.get(operation);\n\t\tif (known) {\n\t\t\tif (isDeepStrictEqual(known.intent, intent)) return known.result;\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: { code: \"OperationConflict\", message: \"Operation was started with a different command\" },\n\t\t\t};\n\t\t}\n\t\tconst snapshot = structuredClone(intent);\n\t\tconst result = this.#launchCommandTask(state, snapshot, operation, signal);\n\t\tstate.commandStarts.set(operation, { intent: snapshot, result });\n\t\tconst forget = () => {\n\t\t\tif (state.commandStarts.get(operation)?.result === result) state.commandStarts.delete(operation);\n\t\t};\n\t\tresult.then((started) => started.ok || forget(), forget);\n\t\treturn result;\n\t}\n\tasync #launchCommandTask(\n\t\tstate: OwnerState,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\t// Native command setup can be admitted before its task lease is visible in JS.\n\t\tlet finishAdmission!: () => void;\n\t\tconst admission = new Promise<void>((resolve) => {\n\t\t\tfinishAdmission = resolve;\n\t\t});\n\t\tstate.commandAdmissions.add(admission);\n\t\tlet release: ResourcePermit | undefined;\n\t\ttry {\n\t\t\trelease = await (currentResourceAdmission() ?? state.host.binding.resourceAdmission)?.acquire(\n\t\t\t\t\"process\",\n\t\t\t\tsignal ? AbortSignal.any([signal, state.closing.signal]) : state.closing.signal,\n\t\t\t);\n\t\t\tlet started: Awaited<ReturnType<native.TaskSupervisor[\"startCommandTask\"]>>;\n\t\t\ttry {\n\t\t\t\tstarted = await this.#native.startCommandTask(state.native, intent, operation);\n\t\t\t} catch (error) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(`Command cleanup unconfirmed; process permit retained: ${rejectionMessage(error)}`, {\n\t\t\t\t\tcause: error,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!started.ok && !startErrors.some((code) => code === started.error.code)) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Command cleanup unconfirmed; process permit retained: ${started.error.code}: ${started.error.message}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst admitted = mapped(started, (lease) => lease, startErrors);\n\t\t\tif (!admitted.ok) return admitted;\n\t\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\t\tconst id = ref.value.taskId as C.TaskId;\n\t\t\tconst existing = state.tasks.get(id);\n\t\t\tif (existing) return { ok: true, value: existing };\n\t\t\tlet bindFailure: Error | undefined;\n\t\t\tif (release?.bindProcess) {\n\t\t\t\ttry {\n\t\t\t\t\tconst group = this.#native.taskProcessGroup(admitted.value);\n\t\t\t\t\tif (!group.ok) throw new Error(group.error.message);\n\t\t\t\t\tif (group.value !== null) await release.bindProcess({ kind: \"unix-process-group\", id: group.value });\n\t\t\t\t} catch (error) {\n\t\t\t\t\tbindFailure = new Error(rejectionMessage(error));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (release) {\n\t\t\t\tstate.permits.set(id, release);\n\t\t\t\trelease = undefined;\n\t\t\t}\n\t\t\tconst task = new TaskCapability();\n\t\t\tthis.#tasks.set(task, {\n\t\t\t\tnative: admitted.value,\n\t\t\t\towner: state,\n\t\t\t\tref: reference(ref.value),\n\t\t\t\tcontroller: new AbortController(),\n\t\t\t\tkind: \"command\",\n\t\t\t});\n\t\t\tstate.tasks.set(id, task);\n\t\t\tif (bindFailure) {\n\t\t\t\tawait this.cancelTask(task, \"owner-close\").catch(() => undefined);\n\t\t\t\tthrow bindFailure;\n\t\t\t}\n\t\t\tif (state.permits.has(id)) {\n\t\t\t\tfor (const watch of state.watches) {\n\t\t\t\t\twatch.drain();\n\t\t\t\t\tif (watch.snapshot.tasks.some((item) => item.ref.taskId === id && item.cleanup.kind === \"reaped\"))\n\t\t\t\t\t\tthis.#releasePermit(state, id);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { ok: true, value: task };\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait release?.();\n\t\t\t} finally {\n\t\t\t\tstate.commandAdmissions.delete(admission);\n\t\t\t\tfinishAdmission();\n\t\t\t}\n\t\t}\n\t}\n\t/** Caller must hold launch authorization closed while this snapshot drains. */\n\tasync drainCommandAdmissions(owner: OwnerLease): Promise<void> {\n\t\tawait Promise.all([...this.#owner(owner).commandAdmissions]);\n\t}\n\ttaskStdin(task: TaskLease): C.Result<StdinLease, C.InputError> {\n\t\treturn mapped(\n\t\t\tthis.#native.taskStdin(this.#task(task).native),\n\t\t\t(input) => {\n\t\t\t\tconst lease = new StdinCapability();\n\t\t\t\tenvironment.inputs.set(lease, input);\n\t\t\t\treturn lease;\n\t\t\t},\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync writeTaskInput(\n\t\tinput: StdinLease,\n\t\toperation: C.OperationId,\n\t\tdata: C.InputData,\n\t): Promise<C.Result<C.InputReceipt, C.InputError>> {\n\t\tconst lease = environment.inputs.get(input);\n\t\tif (!lease) throw new TypeError(\"Foreign stdin capability\");\n\t\treturn mapped(\n\t\t\tawait this.#native.writeTaskInput(\n\t\t\t\tlease,\n\t\t\t\toperation,\n\t\t\t\tdata.kind === \"bytes\" ? { kind: \"bytes\", bytes: Buffer.from(data.bytes) } : data,\n\t\t\t),\n\t\t\t(value) => ({\n\t\t\t\toperationId: value.operationId as C.OperationId,\n\t\t\t\tacceptedBytes: value.acceptedBytes,\n\t\t\t\tkind: value.kind as \"bytes\" | \"eof\",\n\t\t\t}),\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"InputBackpressure\", \"OperationConflict\", \"InputDeliveryUnknown\"] as const,\n\t\t);\n\t}\n\tasync readTaskOutput(task: TaskLease, range: C.OutputRange): Promise<C.Result<C.OutputPage, C.OutputError>> {\n\t\treturn mapped(\n\t\t\tawait this.#native.readTaskOutput(this.#task(task).native, range),\n\t\t\t(page) => ({\n\t\t\t\trequested: page.requested,\n\t\t\t\tchunks: page.chunks.map((chunk) => ({ offsets: chunk.offsets, bytes: new Uint8Array(chunk.bytes) })),\n\t\t\t\tomittedRanges: page.omittedRanges,\n\t\t\t\t...(page.nextOffset === undefined ? {} : { nextOffset: page.nextOffset }),\n\t\t\t}),\n\t\t\t[\"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync startAgentTask(\n\t\towner: OwnerLease,\n\t\tintent: C.AgentIntent,\n\t\toperation: C.OperationId,\n\t\tschedule?: (dispatch: () => Promise<void>) => void,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeLaunch(intent);\n\t\tconst admitted = mapped(\n\t\t\tthis.#native.startAgentTask(state.native, intent, operation),\n\t\t\t(lease) => lease,\n\t\t\tstartErrors,\n\t\t);\n\t\tif (!admitted.ok) return admitted;\n\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\tconst id = ref.value.taskId as C.TaskId;\n\t\tconst existing = state.tasks.get(id);\n\t\tif (existing) return { ok: true, value: existing };\n\t\tif (intent.routerSelection) routerSelections.set(id, Object.freeze({ ...intent.routerSelection }));\n\t\tconst task = new TaskCapability();\n\t\tObject.freeze(task);\n\t\tconst taskState: TaskState = {\n\t\t\tnative: admitted.value,\n\t\t\towner: state,\n\t\t\tref: reference(ref.value),\n\t\t\tcontroller: new AbortController(),\n\t\t};\n\t\tthis.#tasks.set(task, taskState);\n\t\tstate.tasks.set(id, task);\n\t\tconst dispatch = AsyncResource.bind(async () => {\n\t\t\tif (taskState.controller.signal.aborted) return;\n\t\t\tconst runner = mapped(this.#native.claimTaskRunner(admitted.value), (lease) => lease, startErrors);\n\t\t\tif (!runner.ok) throw new Error(`${runner.error.code}: ${runner.error.message}`);\n\t\t\tlet execution: FakeExecution;\n\t\t\ttry {\n\t\t\t\texecution = state.host.binding.createRunner(\n\t\t\t\t\t{\n\t\t\t\t\t\tref: reference(taskState.ref),\n\t\t\t\t\t\tsignal: taskState.controller.signal,\n\t\t\t\t\t\tbindTranscript: (session) => {\n\t\t\t\t\t\t\ttaskState.inheritedEntryCount ??= session.getEntries().length;\n\t\t\t\t\t\t\ttaskState.transcript = session;\n\t\t\t\t\t\t},\n\t\t\t\t\t\treportActivity: (report) =>\n\t\t\t\t\t\t\tmapped(this.#native.reportTaskActivity(runner.value, report), reportReceipt, reportErrors),\n\t\t\t\t\t},\n\t\t\t\t\tintent,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = rejectionMessage(error);\n\t\t\t\texecution = {\n\t\t\t\t\tresult: Promise.resolve({ kind: \"failed\", code: \"SpawnFailed\", message }),\n\t\t\t\t\tcleanup: Promise.resolve({\n\t\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\t\tresources: [{ resource: \"fake-runner-setup\", code: \"CleanupUnconfirmed\", message }],\n\t\t\t\t\t}),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst outcome = execution.result\n\t\t\t\t.catch((error) => ({ kind: \"failed\" as const, code: \"RunnerFailed\", message: rejectionMessage(error) }))\n\t\t\t\t.then((result) => {\n\t\t\t\t\treturn mapped(\n\t\t\t\t\t\tthis.#native.reportRunnerOutcome(runner.value, result),\n\t\t\t\t\t\t(receipt) => this.#notifyTaskSettled(state, taskState.ref, receipt),\n\t\t\t\t\t\treportErrors,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\tconst cleanup = execution.cleanup.catch(\n\t\t\t\t(error): C.Cleanup => ({\n\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\tresources: [{ resource: \"fake-runner\", code: \"CleanupFailed\", message: rejectionMessage(error) }],\n\t\t\t\t}),\n\t\t\t);\n\t\t\ttaskState.execution = cleanup.then(async (evidence) => {\n\t\t\t\t// Natural reaping follows its outcome; cancellation needs only confirmed stop.\n\t\t\t\t// A result may never arrive after abort, including when cleanup arrived first.\n\t\t\t\tconst signal = taskState.controller.signal;\n\t\t\t\tlet stopped!: () => void;\n\t\t\t\tconst cancelled = new Promise<undefined>((resolve) => {\n\t\t\t\t\tstopped = () => resolve(undefined);\n\t\t\t\t\tif (signal.aborted) stopped();\n\t\t\t\t\telse signal.addEventListener(\"abort\", stopped, { once: true });\n\t\t\t\t});\n\t\t\t\tconst reported = await Promise.race([outcome, cancelled]).finally(() => {\n\t\t\t\t\tsignal.removeEventListener(\"abort\", stopped);\n\t\t\t\t});\n\t\t\t\tconst acknowledged = mapped(\n\t\t\t\t\tthis.#native.acknowledgeTaskCleanup(runner.value, evidence),\n\t\t\t\t\t(cleanup) => cleanup,\n\t\t\t\t\treportErrors,\n\t\t\t\t);\n\t\t\t\tif (reported && !reported.ok && !(signal.aborted && reported.error.code === \"ReportConflict\"))\n\t\t\t\t\treturn reported;\n\t\t\t\treturn acknowledged;\n\t\t\t});\n\t\t\tawait taskState.execution;\n\t\t});\n\t\tif (schedule) schedule(dispatch);\n\t\telse void dispatch();\n\t\t// Setup is complete. Do not await execution; ready terminal microtasks may win observation.\n\t\tawait Promise.resolve();\n\t\treturn { ok: true, value: task };\n\t}\n\ttaskReference(task: TaskLease): C.NativeTaskRef {\n\t\treturn reference(this.#task(task).ref);\n\t}\n\tasync waitForTask(\n\t\ttask: TaskLease,\n\t\tbudgetMs?: number,\n\t\tdesignation?: HostSession,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tthis.#task(task).native,\n\t\t\t\tthis.#agentBudget(this.#task(task).owner, budgetMs, this.#task(task).kind === \"command\"),\n\t\t\t\tdesignation ? this.#host(designation).native : undefined,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\treturn registered.ok ? this.observeTaskWait(registered.value) : registered;\n\t}\n\t/** Resolve only a task admitted under this live owner; IDs alone confer no authority. */\n\tlookupTask(owner: OwnerLease, taskId: C.TaskId): C.Result<TaskLease, C.WaitError> {\n\t\tconst state = this.#owner(owner);\n\t\tconst found = mapped(this.#native.lookupTask(state.native, taskId), () => state.tasks.get(taskId), waitErrors);\n\t\tif (!found.ok) return found;\n\t\tif (!found.value) return { ok: false, error: { code: \"UnknownTask\", message: \"No agent runner bound to task\" } };\n\t\treturn { ok: true, value: found.value };\n\t}\n\n\tasync waitForTaskId(\n\t\towner: OwnerLease,\n\t\ttaskId: C.TaskId,\n\t\tbudgetMs?: number,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst found = mapped(this.#native.lookupTask(this.#owner(owner).native, taskId), (lease) => lease, waitErrors);\n\t\tif (!found.ok) return found;\n\t\tconst known = this.#owner(owner).tasks.get(taskId);\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tfound.value,\n\t\t\t\tthis.#agentBudget(\n\t\t\t\t\tthis.#owner(owner),\n\t\t\t\t\tbudgetMs,\n\t\t\t\t\tknown !== undefined && this.#task(known).kind === \"command\",\n\t\t\t\t),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync foregroundTask(task: TaskLease, budgetMs?: number): Promise<C.Result<C.WaitOutcome, C.ForegroundError>> {\n\t\tconst state = this.#task(task);\n\t\tconst errors = [\"TaskTerminal\", \"OwnerClosing\", \"UnknownTask\", \"ObserverCancelled\"] as const;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.foregroundTask(\n\t\t\t\tstate.native,\n\t\t\t\tstate.owner.host.native,\n\t\t\t\tthis.#agentBudget(state.owner, budgetMs, state.kind === \"command\"),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\terrors,\n\t\t);\n\t\treturn registered.ok\n\t\t\t? mapped(await this.observeTaskWait(registered.value), (outcome) => outcome, errors)\n\t\t\t: registered;\n\t}\n\twaitId(wait: WaitLease): C.WaitId {\n\t\treturn this.#wait(wait).native.waitId as C.WaitId;\n\t}\n\tfindWait(id: C.WaitId): WaitLease | undefined {\n\t\treturn this.#waitRegistry.get(id);\n\t}\n\tobserveTaskWait(wait: WaitLease): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\treturn this.#wait(wait).outcome;\n\t}\n\tyieldTaskWait(wait: WaitLease, reason: C.YieldReason): C.Result<C.WaitOutcome, C.YieldError> {\n\t\treturn mapped(this.#native.yieldTaskWait(this.#wait(wait).native, reason), waitOutcome, [\n\t\t\t\"UnknownWait\",\n\t\t\t\"StaleGeneration\",\n\t\t\t\"ObserverCancelled\",\n\t\t]);\n\t}\n\tdisposeTaskWait(wait: WaitLease): C.Result<void, C.WaitError> {\n\t\treturn mapped(this.#native.disposeTaskWait(this.#wait(wait).native), () => undefined, waitErrors);\n\t}\n\tasync initialObservation(\n\t\ttask: TaskLease,\n\t\tpolicy?: C.WaitPolicy,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst state = this.#task(task);\n\t\tpolicy ??= state.kind === \"command\" ? { kind: \"foreground\" } : undefined;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tstate.native,\n\t\t\t\tpolicy?.kind === \"foreground\"\n\t\t\t\t\t? this.#agentBudget(state.owner, policy.budgetMs, state.kind === \"command\")\n\t\t\t\t\t: undefined,\n\t\t\t\tstate.owner.host.native,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\tif (policy?.kind !== \"foreground\")\n\t\t\tthis.yieldTaskWait(registered.value, policy ? \"explicit\" : \"default-background\");\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync cancelTask(task: TaskLease, cause: C.CancelCause): Promise<C.Result<C.CancelReceipt, C.CancelError>> {\n\t\tconst state = this.#task(task);\n\t\tconst result = mapped(this.#native.cancelTask(state.native, cause), cancelReceipt, [\n\t\t\t\"UnknownTask\",\n\t\t\t\"CleanupFailed\",\n\t\t]);\n\t\tif (result.ok && result.value.decision === \"cancellation-requested\") state.controller.abort(cause);\n\t\treturn result;\n\t}\n\tasync closeTaskOwner(\n\t\towner: OwnerLease,\n\t\tcause: C.OwnerCloseCause,\n\t): Promise<C.Result<C.OwnerCloseReceipt, C.CloseError>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.closing.abort(new Error(\"Task owner is closed\"));\n\t\tconst closing = this.#native.closeTaskOwner(state.native, cause);\n\t\tfor (const task of state.tasks.values()) this.#task(task).controller.abort(\"owner-close\");\n\t\tconst result = mapped(\n\t\t\tawait closing,\n\t\t\t(receipt): C.OwnerCloseReceipt => ({\n\t\t\t\townerId: receipt.ownerId as C.OwnerId,\n\t\t\t\tstate: \"closed\",\n\t\t\t\ttasks: receipt.tasks.map(cancelReceipt),\n\t\t\t}),\n\t\t\t[\"CleanupFailed\", \"EnvironmentClosing\"],\n\t\t);\n\t\tif (result.ok)\n\t\t\tfor (const task of state.tasks.values()) {\n\t\t\t\tconst completed = await this.#task(task).execution;\n\t\t\t\tif (completed && !completed.ok)\n\t\t\t\t\tthrow new Error(`Runner protocol failed: ${completed.error.code}: ${completed.error.message}`);\n\t\t\t}\n\t\tif (result.ok)\n\t\t\tfor (const watch of state.watches) {\n\t\t\t\twatch.drain();\n\t\t\t\twatch.dispose(false);\n\t\t\t}\n\t\tif (result.ok) {\n\t\t\tfor (const taskId of [...state.permits.keys()]) this.#releasePermit(state, taskId);\n\t\t\tawait Promise.all([...state.releases]);\n\t\t\tconst failure = state.releaseFailures.shift();\n\t\t\tif (failure) throw failure;\n\t\t}\n\t\treturn result;\n\t}\n\t/**\n\t * The bounded stream carries only authentic deltas. Overflow/native reset publishes\n\t * snapshot/cursor then ends the current iterator, even with no surviving delta.\n\t * Reconcile on completion; obtain a new iterator on the same events iterable to\n\t * continue observing. Apply snapshots first and ignore deltas at/below their cursor.\n\t * onReconcile is optional; consumer failures never disable the fallback poll.\n\t */\n\twatchOwnerTasks(owner: OwnerLease, from?: C.Cursor): C.Result<TaskSubscription, C.WatchError> {\n\t\tconst state = this.#owner(owner);\n\t\tlet subscription: TaskSubscription | undefined;\n\t\treturn mapped(\n\t\t\tthis.#native.watchOwnerTasks(state.native, (hint) => subscription?.wake(hint), from),\n\t\t\t(initial) => {\n\t\t\t\tsubscription = new TaskSubscription(this.#native, initial, () => {\n\t\t\t\t\tif (subscription) state.watches.delete(subscription);\n\t\t\t\t});\n\t\t\t\tstate.watches.add(subscription);\n\t\t\t\treturn subscription;\n\t\t\t},\n\t\t\twatchErrors,\n\t\t);\n\t}\n\t#agentBudget(owner: OwnerState, budgetMs?: number, command = false): number | undefined {\n\t\tif (budgetMs !== undefined) return budgetMs;\n\t\tconst configuration = owner.host.binding.tasks?.wait;\n\t\tif (configuration?.kind === \"until-settled\") return undefined;\n\t\treturn command\n\t\t\t? (configuration?.commandBudgetMs ?? COMMAND_FOREGROUND_BUDGET_MS)\n\t\t\t: (configuration?.agentBudgetMs ?? DEFAULT_AGENT_WAIT_BUDGET_MS);\n\t}\n\t#register(lease: native.WaitLease): WaitLease {\n\t\tconst wait = new WaitCapability();\n\t\tObject.freeze(wait);\n\t\tconst id = lease.waitId as C.WaitId;\n\t\tthis.#waitRegistry.set(id, wait);\n\t\tconst outcome = this.#native\n\t\t\t.observeTaskWait(lease)\n\t\t\t.then((result) => mapped(result, waitOutcome, waitErrors))\n\t\t\t.finally(() => {\n\t\t\t\tthis.#waitRegistry.delete(id);\n\t\t\t});\n\t\tthis.#waits.set(wait, { native: lease, outcome });\n\t\treturn wait;\n\t}\n\t#host(host: HostSession): HostState {\n\t\tconst state = this.#hosts.get(host);\n\t\tif (!state) throw new TypeError(\"Foreign host capability\");\n\t\treturn state;\n\t}\n\t#owner(owner: OwnerLease): OwnerState {\n\t\tconst state = this.#owners.get(owner);\n\t\tif (!state) throw new TypeError(\"Foreign owner capability\");\n\t\treturn state;\n\t}\n\t#task(task: TaskLease): TaskState {\n\t\tconst state = this.#tasks.get(task);\n\t\tif (!state) throw new TypeError(\"Foreign task capability\");\n\t\treturn state;\n\t}\n\t#wait(wait: WaitLease): WaitState {\n\t\tconst state = this.#waits.get(wait);\n\t\tif (!state) throw new TypeError(\"Foreign wait capability\");\n\t\treturn state;\n\t}\n}\n"]}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/core/tasks/supervisor.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncResource } from \"node:async_hooks\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type * as native from \"@bastani/atomic-natives\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { createModuleRequire } from \"../../utils/module-require.ts\";\nimport type { AgentSessionEvent } from \"../agent-session.js\";\nimport { currentResourceAdmission } from \"../resource-admission-scope.ts\";\nimport type { ResourcePermit } from \"../sdk-types.ts\";\nimport type { SessionManager } from \"../session-manager.ts\";\nimport { COMMAND_FOREGROUND_BUDGET_MS } from \"./command-output.js\";\nimport type { TaskCompletionSource } from \"./completion-ordering.js\";\nimport type * as C from \"./contracts.js\";\n\nexport type TaskTranscriptSource = Pick<SessionManager, \"getSessionId\" | \"getEntries\"> & {\n\treadonly completionSource?: TaskCompletionSource;\n\t/** Viewer-only subscription; updates never publish task lifecycle events. */\n\tsubscribe?(listener: (event: AgentSessionEvent) => void): () => void;\n\tgetStreamingMessage?(): AgentMessage | undefined;\n};\n\nexport const DEFAULT_AGENT_WAIT_BUDGET_MS = 30000;\n/** These objects are live authority, not DTOs, restart tokens or model arguments. */\nclass Capability {\n\t#live = true;\n\ttoJSON(): never {\n\t\tthrow new TypeError(`Task capability is not serializable (${this.#live ? \"live\" : \"closed\"})`);\n\t}\n}\nclass HostCapability extends Capability {\n\treadonly kind = \"host\";\n}\nclass OwnerCapability extends Capability {\n\treadonly kind = \"owner\";\n}\nclass TaskCapability extends Capability {\n\treadonly kind = \"task\";\n}\nclass WaitCapability extends Capability {\n\treadonly kind = \"wait\";\n}\nclass SubscriptionCapability extends Capability {\n\treadonly kind = \"subscription\";\n}\nclass StdinCapability extends Capability {\n\treadonly kind = \"stdin\";\n}\nexport type StdinLease = StdinCapability;\nexport type HostSession = HostCapability;\nexport type OwnerLease = OwnerCapability;\nexport type TaskLease = TaskCapability;\nexport type WaitLease = WaitCapability;\nexport type SubscriptionLease = SubscriptionCapability;\n\nexport type FakeRunnerContext = {\n\tref: C.NativeTaskRef;\n\tsignal: AbortSignal;\n\treportActivity(report: C.ActivityReport): C.Result<C.ReportReceipt, C.ReportError>;\n\t/** Bind existing child history while holding the admitted runner authority. */\n\tbindTranscript(session: TaskTranscriptSource): void;\n\t/** Record (or, with `undefined`, remove) one extension status written by the task's own session. */\n\tsetExtensionStatus(statusKey: string, text: string | undefined): void;\n\t/** Drop every status the task's session set: its session ended or was replaced. */\n\tclearExtensionStatuses(): void;\n};\n/** Independent cleanup evidence: an outcome alone never proves resource release. */\nexport type FakeExecution = { result: Promise<C.TaskResult>; cleanup: Promise<C.Cleanup> };\nexport type TrustedTaskHost = {\n\tscope: C.OwnerScope;\n\t/** Owner-host observation settings; never an execution deadline. */\n\ttasks?: { wait?: C.TaskWaitConfiguration };\n\t/** The existing host/tool refusal throws here, before native admission. */\n\tauthorizeCommandLaunch?(intent: C.CommandIntent): void;\n\tauthorizeLaunch(intent: C.AgentIntent): void;\n\tresourceAdmission?: import(\"../sdk-types.ts\").ResourceAdmission;\n\tonTaskSettled?(ref: C.NativeTaskRef, receipt: C.SettlementReceipt): void;\n\tcreateRunner(context: FakeRunnerContext, intent: C.AgentIntent): FakeExecution;\n};\ntype HostState = { native: native.HostSession; binding: TrustedTaskHost };\ntype OwnerState = {\n\tnative: native.OwnerLease;\n\thost: HostState;\n\ttasks: Map<C.TaskId, TaskLease>;\n\twatches: Set<TaskSubscription>;\n\tsettledTasks: Set<C.TaskId>;\n\tcommandAdmissions: Set<Promise<void>>;\n\tclosing: AbortController;\n\tpermits: Map<C.TaskId, ResourcePermit>;\n\treleases: Set<Promise<void>>;\n\treleaseFailures: Error[];\n\tcommandStarts: Map<C.OperationId, { intent: C.CommandIntent; result: Promise<C.Result<TaskLease, C.StartFailure>> }>;\n};\ntype TaskState = {\n\tnative: native.TaskLease;\n\towner: OwnerState;\n\tref: C.NativeTaskRef;\n\tcontroller: AbortController;\n\tkind?: \"command\";\n\texecution?: Promise<C.Result<C.Cleanup, C.ReportError>>;\n\ttranscript?: TaskTranscriptSource;\n\tinheritedEntryCount?: number;\n\t/** Extension `setStatus` writes of the task's own session; they never reach the host's footer. */\n\tstatuses: Map<string, string>;\n\tstatusListeners: Set<() => void>;\n};\ntype WaitState = { native: native.WaitLease; outcome: Promise<C.Result<C.WaitOutcome, C.WaitError>> };\n\n// Native supervisors share one actor per environment; their JS continuations must too.\nconst environment = {\n\thosts: new WeakMap<HostSession, HostState>(),\n\towners: new WeakMap<OwnerLease, OwnerState>(),\n\ttasks: new WeakMap<TaskLease, TaskState>(),\n\tinputs: new WeakMap<StdinLease, native.StdinLease>(),\n\twaits: new WeakMap<WaitLease, WaitState>(),\n\twaitRegistry: new Map<C.WaitId, WaitLease>(),\n\townerIds: new Map<C.OwnerId, OwnerLease>(),\n};\n\n/** Reads only history bound by the admitted runner, never a caller-selected session. */\nexport function taskTranscriptSource(\n\ttask: TaskLease,\n): C.Result<{ session: TaskTranscriptSource; taskId: C.TaskId }, C.Failure<\"UnknownTask\" | \"TranscriptUnavailable\">> {\n\tconst state = environment.tasks.get(task);\n\tif (!state) return { ok: false, error: { code: \"UnknownTask\", message: \"Unknown task\" } };\n\tif (!state.transcript)\n\t\treturn { ok: false, error: { code: \"TranscriptUnavailable\", message: \"Transcript unavailable\" } };\n\treturn { ok: true, value: { session: state.transcript, taskId: state.ref.taskId } };\n}\n\nconst NO_STATUSES: ReadonlyMap<string, string> = new Map();\n\n/** Extension statuses written by this task's own session, by status key; empty once it ends. */\nexport function taskExtensionStatuses(task: TaskLease): ReadonlyMap<string, string> {\n\treturn environment.tasks.get(task)?.statuses ?? NO_STATUSES;\n}\n\n/** Viewer-only: runs `listener` whenever the task's extension statuses change. */\nexport function watchTaskExtensionStatuses(task: TaskLease, listener: () => void): () => void {\n\tconst listeners = environment.tasks.get(task)?.statusListeners;\n\tlisteners?.add(listener);\n\treturn () => {\n\t\tlisteners?.delete(listener);\n\t};\n}\n\nfunction notifyStatusListeners(state: TaskState): void {\n\tfor (const listener of [...state.statusListeners]) {\n\t\ttry {\n\t\t\tlistener();\n\t\t} catch {\n\t\t\t// A viewer's repaint failure must not break the extension's status write.\n\t\t}\n\t}\n}\n\nfunction setTaskStatus(state: TaskState, statusKey: string, text: string | undefined): void {\n\tif (text === undefined) {\n\t\tif (!state.statuses.delete(statusKey)) return;\n\t} else {\n\t\tif (state.statuses.get(statusKey) === text) return;\n\t\tstate.statuses.set(statusKey, text);\n\t}\n\tnotifyStatusListeners(state);\n}\n\nfunction clearTaskStatuses(state: TaskState): void {\n\tif (state.statuses.size === 0) return;\n\tstate.statuses.clear();\n\tnotifyStatusListeners(state);\n}\n\n/** History the runner produced; a forked child's inherited parent entries are excluded. */\nexport function taskOwnTranscriptEntries(task: TaskLease): ReturnType<TaskTranscriptSource[\"getEntries\"]> | undefined {\n\tconst state = environment.tasks.get(task);\n\treturn state?.transcript?.getEntries().slice(state.inheritedEntryCount ?? 0);\n}\n\n/** Promise rejections, setup throws and consumer exceptions may be arbitrary JavaScript values. */\nfunction rejectionMessage<T>(reason: T): string {\n\ttry {\n\t\tconst message = reason instanceof Error ? reason.message : reason;\n\t\treturn typeof message === \"string\" ? message : String(message);\n\t} catch {\n\t\treturn \"Unprintable JavaScript rejection\";\n\t}\n}\nfunction mapped<T, U, Code extends string>(\n\tresult: C.Result<T, native.TaskFailure>,\n\tconvert: (value: T) => U,\n\tcodes: readonly Code[],\n): C.Result<U, C.Failure<Code>> {\n\tif (result.ok) return { ok: true, value: convert(result.value) };\n\tconst code = codes.find((candidate) => candidate === result.error.code);\n\tif (!code) throw new Error(`Unexpected native task refusal: ${result.error.code}: ${result.error.message}`);\n\treturn { ok: false, error: { code, message: result.error.message } };\n}\nconst ownerErrors = [\"ScopeMismatch\", \"EnvironmentClosing\"] as const;\nconst startErrors = [\n\t\"OwnerClosing\",\n\t\"UnknownAgent\",\n\t\"InvalidCwd\",\n\t\"DepthExceeded\",\n\t\"CapacityExhausted\",\n\t\"DispatchGuardBusy\",\n\t\"OperationConflict\",\n\t\"RunnerUnavailable\",\n\t\"SpawnFailed\",\n\t\"ContainmentUnavailable\",\n] as const;\nconst waitErrors = [\"UnknownTask\", \"OwnerClosed\", \"EnvironmentClosing\", \"ScopeMismatch\", \"ObserverCancelled\"] as const;\nconst reportErrors = [\"StaleAttempt\", \"OwnerClosing\", \"TaskTerminal\", \"ReportConflict\"] as const;\nconst watchErrors = [\"OwnerClosed\", \"StaleGeneration\", \"EnvironmentClosing\"] as const;\nfunction reference(value: native.NativeTaskRef): C.NativeTaskRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tattemptId: value.attemptId as C.AttemptId,\n\t\tgeneration: value.generation as C.Generation,\n\t};\n}\nfunction cursor(value: native.Cursor): C.Cursor {\n\treturn { generation: value.generation as C.Generation, sequence: value.sequence as C.Sequence };\n}\nfunction output(value: native.OutputRef): C.OutputRef {\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tartifactId: value.artifactId,\n\t\tbyteCount: value.byteCount,\n\t\tomittedRanges: value.omittedRanges.map(({ start, end }) => ({ start, end })),\n\t};\n}\nfunction taskResult(value: native.TaskResult): C.TaskResult {\n\tswitch (value.kind) {\n\t\tcase \"completed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\toutput: output(value.output),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"failed\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcode: value.code,\n\t\t\t\tmessage: value.message,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t\t...(value.exitCode === undefined ? {} : { exitCode: value.exitCode }),\n\t\t\t};\n\t\tcase \"cancelled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tcause: value.cause,\n\t\t\t\t...(value.output === undefined ? {} : { output: output(value.output) }),\n\t\t\t};\n\t}\n}\nfunction execution(value: native.Execution): C.Execution {\n\treturn value.kind === \"settled\" ? { kind: \"settled\", result: taskResult(value.result) } : value;\n}\nfunction observation(value: native.HostObservation): C.HostObservation {\n\tif (value.kind === \"foreground\") return { kind: value.kind, waitId: value.waitId as C.WaitId };\n\tif (value.kind === \"none\" && (value.reason === \"task-settled\" || value.reason === \"owner-closing\"))\n\t\treturn { kind: value.kind, reason: value.reason };\n\tconst reasons = [\n\t\t\"explicit\",\n\t\t\"default-background\",\n\t\t\"elapsed\",\n\t\t\"intercom-coordination\",\n\t\t\"input-needed\",\n\t\t\"not-observed\",\n\t\t\"observer-cancelled\",\n\t] as const;\n\tconst reason = reasons.find((reason) => reason === value.reason);\n\tif (value.kind === \"background\" && reason) return { kind: value.kind, reason };\n\tthrow new Error(\"Invalid native host observation\");\n}\n// Native records own lifecycle and mutable execution metadata. Routing provenance is\n// immutable host metadata, retained for the same environment lifetime as task records.\nconst routerSelections = new Map<string, C.RouterSelection>();\nfunction record(value: native.TaskRecord): C.TaskRecord {\n\tif (value.kind !== \"agent\" && value.kind !== \"command\") throw new Error(`Invalid native task kind: ${value.kind}`);\n\tconst routerSelection = routerSelections.get(value.ref.taskId);\n\treturn {\n\t\tref: reference(value.ref),\n\t\tlaunchOperationId: value.launchOperationId as C.OperationId,\n\t\t...(value.parentTaskId === undefined ? {} : { parentTaskId: value.parentTaskId as C.TaskId }),\n\t\t...(value.launchGroupId === undefined ? {} : { launchGroupId: value.launchGroupId }),\n\t\tlaunchOrdinal: value.launchOrdinal,\n\t\tkind: value.kind,\n\t\ttitle: value.title,\n\t\t...(value.agentName === undefined ? {} : { agentName: value.agentName }),\n\t\t...(value.model === undefined ? {} : { model: value.model }),\n\t\t...(value.thinking === undefined ? {} : { thinking: value.thinking }),\n\t\t...(routerSelection ? { routerSelection } : {}),\n\t\texecution: execution(value.execution),\n\t\tobservation: observation(value.observation),\n\t\t...(value.wasBackground === undefined ? {} : { wasBackground: value.wasBackground }),\n\t\tattention: value.attention,\n\t\tcleanup: value.cleanup,\n\t\t...(value.currentAction === undefined\n\t\t\t? {}\n\t\t\t: { currentAction: { tool: value.currentAction.tool, text: value.currentAction.text } }),\n\t\t...(value.metrics === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tmetrics: {\n\t\t\t\t\t\t...(value.metrics.elapsedMs === undefined ? {} : { elapsedMs: value.metrics.elapsedMs }),\n\t\t\t\t\t\t...(value.metrics.toolCount === undefined ? {} : { toolCount: value.metrics.toolCount }),\n\t\t\t\t\t\t...(value.metrics.tokenCount === undefined ? {} : { tokenCount: value.metrics.tokenCount }),\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\toutput: output(value.output),\n\t};\n}\nfunction snapshot(value: native.OwnerSnapshot): C.OwnerSnapshot {\n\tif (value.state !== \"open\" && value.state !== \"closing\" && value.state !== \"closed\")\n\t\tthrow new Error(`Invalid native owner state: ${value.state}`);\n\treturn {\n\t\townerId: value.ownerId as C.OwnerId,\n\t\tscope: value.scope,\n\t\tgeneration: value.generation as C.Generation,\n\t\tstate: value.state,\n\t\ttasks: value.tasks.map(record),\n\t\tcursor: cursor(value.cursor),\n\t};\n}\nfunction activity(value: native.ActivityReport): C.ActivityReport {\n\tif (value.change.kind === \"attention-set\" && value.change.attention.kind === \"none\")\n\t\tthrow new Error(\"Native attention-set cannot clear attention\");\n\t// Native tagged variants are owned wire data; only attention-set has a wider generated declaration.\n\treturn value as C.ActivityReport;\n}\nfunction payload(value: native.TaskEvent): C.TaskEvent {\n\tswitch (value.kind) {\n\t\tcase \"task-admitted\":\n\t\t\treturn { kind: value.kind, task: record(value.task) };\n\t\tcase \"task-started\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref) };\n\t\tcase \"wait-started\": {\n\t\t\tif (value.observer !== \"sdk\" && value.observer !== \"host\") throw new Error(\"Invalid native observer\");\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\twaitId: value.waitId as C.WaitId,\n\t\t\t\tobserver: value.observer,\n\t\t\t};\n\t\t}\n\t\tcase \"wait-yielded\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), waitId: value.waitId as C.WaitId, reason: value.reason };\n\t\tcase \"host-observation-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), observation: observation(value.observation) };\n\t\tcase \"task-activity\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), activity: activity(value.activity) };\n\t\tcase \"task-cancelling\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cause: value.cause };\n\t\tcase \"task-settled\":\n\t\t\treturn {\n\t\t\t\tkind: value.kind,\n\t\t\t\tref: reference(value.ref),\n\t\t\t\tresult: taskResult(value.result),\n\t\t\t\tcompletionId: value.completionId,\n\t\t\t};\n\t\tcase \"cleanup-changed\":\n\t\t\treturn { kind: value.kind, ref: reference(value.ref), cleanup: value.cleanup };\n\t\tcase \"owner-closing\":\n\t\tcase \"owner-closed\":\n\t\t\treturn { kind: value.kind };\n\t}\n}\nfunction event(value: native.NativeEvent): C.NativeEvent {\n\tif (value.schemaVersion !== 1) throw new Error(\"Unsupported native task event schema\");\n\treturn {\n\t\tschemaVersion: 1,\n\t\tcursor: cursor(value.cursor),\n\t\townerId: value.ownerId as C.OwnerId,\n\t\t...(value.taskId === undefined ? {} : { taskId: value.taskId as C.TaskId }),\n\t\tpayload: payload(value.payload),\n\t};\n}\nfunction waitOutcome(value: native.WaitOutcome): C.WaitOutcome {\n\treturn value.kind === \"settled\"\n\t\t? { kind: value.kind, taskId: value.taskId as C.TaskId, result: taskResult(value.result) }\n\t\t: { kind: value.kind, taskId: value.taskId as C.TaskId, waitId: value.waitId as C.WaitId, reason: value.reason };\n}\nfunction cancelReceipt(value: native.CancelReceipt): C.CancelReceipt {\n\tif (value.decision !== \"already-settled\" && value.decision !== \"cancellation-requested\")\n\t\tthrow new Error(\"Invalid cancellation decision\");\n\treturn {\n\t\ttaskId: value.taskId as C.TaskId,\n\t\tdecision: value.decision,\n\t\texecution: execution(value.execution),\n\t\tcleanup: value.cleanup,\n\t};\n}\n\nfunction reportReceipt(value: native.ReportReceipt): C.ReportReceipt {\n\tif (value.disposition !== \"accepted\" && value.disposition !== \"duplicate\")\n\t\tthrow new Error(\"Invalid report disposition\");\n\treturn { reportId: value.reportId, cursor: cursor(value.cursor), disposition: value.disposition };\n}\n/** Projection only: native ordering remains the sole lifecycle authority. */\nfunction applyEvent(current: C.OwnerSnapshot, value: C.NativeEvent): C.OwnerSnapshot {\n\tconst next: C.OwnerSnapshot = { ...current, tasks: [...current.tasks], cursor: value.cursor };\n\tconst change = value.payload;\n\tif (change.kind === \"owner-closing\") {\n\t\tnext.state = \"closing\";\n\t\tnext.tasks = next.tasks.map((task) =>\n\t\t\ttask.execution.kind === \"settled\" ? task : { ...task, attention: { kind: \"none\" } },\n\t\t);\n\t\treturn next;\n\t}\n\tif (change.kind === \"owner-closed\") {\n\t\tnext.state = \"closed\";\n\t\treturn next;\n\t}\n\tif (change.kind === \"task-admitted\") {\n\t\tnext.tasks.push(change.task);\n\t\treturn next;\n\t}\n\tconst index = next.tasks.findIndex((task) => task.ref.taskId === change.ref.taskId);\n\tif (index < 0) throw new Error(\"Native delta references a task absent from its snapshot\");\n\tconst task: C.TaskRecord = { ...next.tasks[index] };\n\tnext.tasks[index] = task;\n\tswitch (change.kind) {\n\t\tcase \"task-started\":\n\t\t\ttask.execution = { kind: \"running\" };\n\t\t\tbreak;\n\t\tcase \"host-observation-changed\":\n\t\t\ttask.observation = change.observation;\n\t\t\tif (change.observation.kind === \"background\" && change.observation.reason !== \"not-observed\")\n\t\t\t\ttask.wasBackground = true;\n\t\t\tbreak;\n\t\tcase \"task-cancelling\":\n\t\t\ttask.execution = { kind: \"cancelling\", cause: change.cause };\n\t\t\tbreak;\n\t\tcase \"task-settled\":\n\t\t\ttask.execution = { kind: \"settled\", result: change.result };\n\t\t\ttask.attention = { kind: \"none\" };\n\t\t\tif (change.result.output !== undefined) task.output = change.result.output;\n\t\t\tbreak;\n\t\tcase \"cleanup-changed\":\n\t\t\ttask.cleanup = change.cleanup;\n\t\t\tbreak;\n\t\tcase \"task-activity\": {\n\t\t\tconst activity = change.activity.change;\n\t\t\tswitch (activity.kind) {\n\t\t\t\tcase \"action\":\n\t\t\t\t\ttask.currentAction = { tool: activity.tool, text: activity.text };\n\t\t\t\t\tif (task.attention.kind === \"no-recent-activity\") task.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\":\n\t\t\t\t\ttask.model = activity.model;\n\t\t\t\t\ttask.thinking = activity.thinking;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"metrics\":\n\t\t\t\t\ttask.metrics = {\n\t\t\t\t\t\t...task.metrics,\n\t\t\t\t\t\t...(activity.elapsedMs === undefined ? {} : { elapsedMs: activity.elapsedMs }),\n\t\t\t\t\t\t...(activity.toolCount === undefined ? {} : { toolCount: activity.toolCount }),\n\t\t\t\t\t\t...(activity.tokenCount === undefined ? {} : { tokenCount: activity.tokenCount }),\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-set\":\n\t\t\t\t\ttask.attention = activity.attention;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"attention-clear\":\n\t\t\t\t\tif (task.attention.kind === \"input-needed\" && task.attention.requestId === activity.requestId)\n\t\t\t\t\t\ttask.attention = { kind: \"none\" };\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"output\":\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"wait-started\":\n\t\tcase \"wait-yielded\":\n\t\t\tbreak;\n\t}\n\treturn next;\n}\n/** One bounded wake poll per live subscription, including a journal with no retained event. */\nconst RECONCILE_INTERVAL_MS = 25;\nconst MAX_PENDING_EVENTS = 64;\nexport class TaskSubscription {\n\t#native: native.TaskSupervisor;\n\t#lease: native.SubscriptionLease;\n\t#resource = new AsyncResource(\"TaskSubscription\");\n\t#timer?: ReturnType<typeof setTimeout>;\n\t#queue: C.NativeEvent[] = [];\n\t#epoch = 0;\n\t#next?: (value: IteratorResult<C.NativeEvent>) => void;\n\t#disposed = false;\n\t#snapshot: C.OwnerSnapshot;\n\t#cursor: C.Cursor;\n\t/** Reconciliation supplements the RFC snapshot/cursor/iterable contract with the events it applied. */\n\tonReconcile: (snapshot: C.OwnerSnapshot, events: readonly C.NativeEvent[]) => void = () => {};\n\t#onDispose: () => void;\n\t#failure?: Error;\n\treadonly events: AsyncIterable<C.NativeEvent>;\n\treadonly lease: SubscriptionLease = new SubscriptionCapability();\n\n\tconstructor(actor: native.TaskSupervisor, initial: native.NativeTaskSubscription, onDispose: () => void) {\n\t\tObject.freeze(this.lease);\n\t\tthis.#native = actor;\n\t\tthis.#lease = initial.lease;\n\t\tthis.#snapshot = snapshot(initial.snapshot);\n\t\tthis.#cursor = cursor(initial.cursor);\n\t\tthis.#onDispose = onDispose;\n\t\tthis.events = {\n\t\t\t[Symbol.asyncIterator]: () => {\n\t\t\t\tconst epoch = this.#epoch;\n\t\t\t\treturn {\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\tif (epoch !== this.#epoch) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tconst value = this.#queue.shift();\n\t\t\t\t\t\tif (value) return Promise.resolve({ done: false, value });\n\t\t\t\t\t\tif (this.#disposed) return Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\tif (this.#next) return Promise.reject(new Error(\"Only one pending subscription read is supported\"));\n\t\t\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\t\t\tthis.#next = resolve;\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\treturn: async () => {\n\t\t\t\t\t\tif (epoch === this.#epoch) this.dispose();\n\t\t\t\t\t\treturn { done: true, value: undefined };\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t\tthis.#arm();\n\t}\n\tget snapshot(): C.OwnerSnapshot {\n\t\treturn this.#snapshot;\n\t}\n\tget cursor(): C.Cursor {\n\t\treturn this.#cursor;\n\t}\n\t/** Consumer exceptions are observable without breaking the native wake or fallback poll. */\n\tget failure(): Error | undefined {\n\t\treturn this.#failure;\n\t}\n\t/** Callback payloads are authentic hints; only the journal/snapshot is authoritative. */\n\twake(_hint: native.NativeEvent): void {\n\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t}\n\t#arm(): void {\n\t\tif (this.#disposed || this.#timer) return;\n\t\tthis.#timer = setTimeout(() => {\n\t\t\tthis.#timer = undefined;\n\t\t\tthis.#resource.runInAsyncScope(() => this.drain());\n\t\t\tthis.#arm();\n\t\t}, RECONCILE_INTERVAL_MS);\n\t\tthis.#timer.unref();\n\t}\n\tdrain(): void {\n\t\tif (this.#disposed) return;\n\t\tconst drained = this.#native.drainOwnerTasks(this.#lease);\n\t\tif (!drained.ok) {\n\t\t\tthis.dispose();\n\t\t\treturn;\n\t\t}\n\t\tconst events = drained.value.events.map(event);\n\t\tif (drained.value.snapshot) this.#snapshot = snapshot(drained.value.snapshot);\n\t\tfor (const value of events) {\n\t\t\tif (BigInt(value.cursor.sequence) > BigInt(this.#snapshot.cursor.sequence))\n\t\t\t\tthis.#snapshot = applyEvent(this.#snapshot, value);\n\t\t}\n\t\tthis.#cursor = cursor(drained.value.cursor);\n\t\tthis.#snapshot = { ...this.#snapshot, cursor: this.#cursor };\n\t\tconst overflow = this.#queue.length + events.length > MAX_PENDING_EVENTS;\n\t\tconst reset = drained.value.reset || overflow;\n\t\tif (reset) {\n\t\t\tthis.#queue = [];\n\t\t\tthis.#epoch++;\n\t\t\t// End the old iterator only after publishing the authoritative snapshot/cursor.\n\t\t\t// A new iterator on the same iterable observes subsequent authentic deltas.\n\t\t\tthis.#next?.({ done: true, value: undefined });\n\t\t\tthis.#next = undefined;\n\t\t}\n\t\tif (drained.value.snapshot || events.length) {\n\t\t\ttry {\n\t\t\t\tthis.#resource.runInAsyncScope(this.onReconcile, undefined, this.#snapshot, events);\n\t\t\t} catch (error) {\n\t\t\t\tthis.#failure = new Error(rejectionMessage(error));\n\t\t\t}\n\t\t}\n\t\tif (this.#disposed) return;\n\t\tif (!reset)\n\t\t\tfor (const value of events) {\n\t\t\t\tif (this.#next) {\n\t\t\t\t\tconst next = this.#next;\n\t\t\t\t\tthis.#next = undefined;\n\t\t\t\t\tnext({ done: false, value });\n\t\t\t\t} else this.#queue.push(value);\n\t\t\t}\n\t\tif (this.#snapshot.state === \"closed\") this.dispose(false);\n\t}\n\tdispose(clear = true): void {\n\t\tif (this.#disposed) return;\n\t\tthis.#disposed = true;\n\t\tif (this.#timer) clearTimeout(this.#timer);\n\t\tthis.#timer = undefined;\n\t\tthis.#native.disposeSubscription(this.#lease);\n\t\tif (clear) this.#queue = [];\n\t\tthis.#next?.({ done: true, value: undefined });\n\t\tthis.#next = undefined;\n\t\tthis.#resource.emitDestroy();\n\t\tthis.#onDispose();\n\t}\n}\n\nfunction createNativeSupervisor(): native.TaskSupervisor {\n\t// Keep loading separate from `new`: type-assertion erasure in the build\n\t// must not move construction onto createModuleRequire instead of the class.\n\tconst binding = createModuleRequire(import.meta.url)(\"@bastani/atomic-natives\") as typeof native;\n\treturn new binding.TaskSupervisor();\n}\n\nexport class TaskSupervisor {\n\t#native = createNativeSupervisor();\n\t#hosts = environment.hosts;\n\t#owners = environment.owners;\n\t#tasks = environment.tasks;\n\t#waits = environment.waits;\n\t#waitRegistry = environment.waitRegistry;\n\t#ownerIds = environment.ownerIds;\n\tbindHostSession(binding: TrustedTaskHost): HostSession {\n\t\tconst host = new HostCapability();\n\t\tObject.freeze(host);\n\t\tthis.#hosts.set(host, { native: this.#native.bindHostSession(binding.scope), binding });\n\t\treturn host;\n\t}\n\topenTaskOwner(host: HostSession, scope: C.OwnerScope): C.Result<OwnerLease, C.OwnerError> {\n\t\tconst state = this.#host(host);\n\t\treturn mapped(\n\t\t\tthis.#native.openTaskOwner(state.native, scope),\n\t\t\t(lease) => {\n\t\t\t\tconst probe = this.#native.watchOwnerTasks(lease, (_hint) => {});\n\t\t\t\tif (!probe.ok) throw new Error(probe.error.message);\n\t\t\t\tconst id = probe.value.snapshot.ownerId as C.OwnerId;\n\t\t\t\tthis.#native.disposeSubscription(probe.value.lease);\n\t\t\t\tconst existing = this.#ownerIds.get(id);\n\t\t\t\tif (existing) return existing;\n\t\t\t\tconst owner = new OwnerCapability();\n\t\t\t\tObject.freeze(owner);\n\t\t\t\tconst ownerState: OwnerState = {\n\t\t\t\t\tnative: lease,\n\t\t\t\t\thost: state,\n\t\t\t\t\ttasks: new Map(),\n\t\t\t\t\twatches: new Set(),\n\t\t\t\t\tsettledTasks: new Set(),\n\t\t\t\t\tcommandAdmissions: new Set(),\n\t\t\t\t\tclosing: new AbortController(),\n\t\t\t\t\tpermits: new Map(),\n\t\t\t\t\treleases: new Set(),\n\t\t\t\t\treleaseFailures: [],\n\t\t\t\t\tcommandStarts: new Map(),\n\t\t\t\t};\n\t\t\t\tthis.#owners.set(owner, ownerState);\n\t\t\t\tthis.#ownerIds.set(id, owner);\n\t\t\t\tconst watched = this.watchOwnerTasks(owner);\n\t\t\t\tif (!watched.ok) throw new Error(watched.error.message);\n\t\t\t\twatched.value.onReconcile = (projection) => {\n\t\t\t\t\tif (projection.state === \"closed\") this.#ownerIds.delete(projection.ownerId);\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tconst cause =\n\t\t\t\t\t\t\trecord.execution.kind === \"cancelling\"\n\t\t\t\t\t\t\t\t? record.execution.cause\n\t\t\t\t\t\t\t\t: projection.state !== \"open\" && record.cleanup.kind !== \"reaped\"\n\t\t\t\t\t\t\t\t\t? \"owner-close\"\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\tif (!cause) continue;\n\t\t\t\t\t\tconst task = this.#owner(owner).tasks.get(record.ref.taskId);\n\t\t\t\t\t\tif (task) this.#task(task).controller.abort(cause);\n\t\t\t\t\t}\n\t\t\t\t\tlet failure: Error | undefined;\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (record.cleanup.kind === \"reaped\") this.#releasePermit(ownerState, record.ref.taskId);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const record of projection.tasks) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\trecord.execution.kind !== \"settled\" ||\n\t\t\t\t\t\t\townerState.settledTasks.has(record.ref.taskId) ||\n\t\t\t\t\t\t\t!state.binding.onTaskSettled\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Cancellation settles at cleanup (or while queued), without a runner outcome.\n\t\t\t\t\t\t\t// Recover its authentic receipt even when the bounded journal has reset.\n\t\t\t\t\t\t\tconst task = this.#native.lookupTask(lease, record.ref.taskId);\n\t\t\t\t\t\t\tif (!task.ok) throw new Error(task.error.message);\n\t\t\t\t\t\t\tconst settled = this.#native.taskSettlement(task.value);\n\t\t\t\t\t\t\tif (!settled.ok) throw new Error(settled.error.message);\n\t\t\t\t\t\t\tthis.#notifyTaskSettled(ownerState, record.ref, settled.value);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tfailure ??= new Error(rejectionMessage(error));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (failure) throw failure;\n\t\t\t\t};\n\t\t\t\twatched.value.onReconcile(watched.value.snapshot, []);\n\t\t\t\treturn owner;\n\t\t\t},\n\t\t\townerErrors,\n\t\t);\n\t}\n\t#releasePermit(state: OwnerState, taskId: C.TaskId): void {\n\t\tconst release = state.permits.get(taskId);\n\t\tif (!release) return;\n\t\tstate.permits.delete(taskId);\n\t\tconst pending: Promise<void> = release()\n\t\t\t.catch((error) => {\n\t\t\t\tstate.releaseFailures.push(new Error(rejectionMessage(error)));\n\t\t\t})\n\t\t\t.finally(() => state.releases.delete(pending));\n\t\tstate.releases.add(pending);\n\t}\n\t#notifyTaskSettled(state: OwnerState, ref: C.NativeTaskRef, receipt: native.SettlementReceipt): void {\n\t\tif (!state.host.binding.onTaskSettled || state.settledTasks.has(ref.taskId)) return;\n\t\t// Runner outcomes and snapshot recovery share one delivery door. Mark before\n\t\t// host code so reentrant drains or callback failures cannot redeliver.\n\t\tstate.settledTasks.add(ref.taskId);\n\t\tstate.host.binding.onTaskSettled(ref, {\n\t\t\ttaskId: receipt.taskId as C.TaskId,\n\t\t\tcursor: cursor(receipt.cursor),\n\t\t\tresult: taskResult(receipt.result),\n\t\t\tcompletionId: receipt.completionId,\n\t\t});\n\t}\n\tasync startCommandTask(\n\t\towner: OwnerLease,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeCommandLaunch?.(intent);\n\t\tconst known = state.commandStarts.get(operation);\n\t\tif (known) {\n\t\t\tif (isDeepStrictEqual(known.intent, intent)) return known.result;\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: { code: \"OperationConflict\", message: \"Operation was started with a different command\" },\n\t\t\t};\n\t\t}\n\t\tconst snapshot = structuredClone(intent);\n\t\tconst result = this.#launchCommandTask(state, snapshot, operation, signal);\n\t\tstate.commandStarts.set(operation, { intent: snapshot, result });\n\t\tconst forget = () => {\n\t\t\tif (state.commandStarts.get(operation)?.result === result) state.commandStarts.delete(operation);\n\t\t};\n\t\tresult.then((started) => started.ok || forget(), forget);\n\t\treturn result;\n\t}\n\tasync #launchCommandTask(\n\t\tstate: OwnerState,\n\t\tintent: C.CommandIntent,\n\t\toperation: C.OperationId,\n\t\tsignal?: AbortSignal,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\t// Native command setup can be admitted before its task lease is visible in JS.\n\t\tlet finishAdmission!: () => void;\n\t\tconst admission = new Promise<void>((resolve) => {\n\t\t\tfinishAdmission = resolve;\n\t\t});\n\t\tstate.commandAdmissions.add(admission);\n\t\tlet release: ResourcePermit | undefined;\n\t\ttry {\n\t\t\trelease = await (currentResourceAdmission() ?? state.host.binding.resourceAdmission)?.acquire(\n\t\t\t\t\"process\",\n\t\t\t\tsignal ? AbortSignal.any([signal, state.closing.signal]) : state.closing.signal,\n\t\t\t);\n\t\t\tlet started: Awaited<ReturnType<native.TaskSupervisor[\"startCommandTask\"]>>;\n\t\t\ttry {\n\t\t\t\tstarted = await this.#native.startCommandTask(state.native, intent, operation);\n\t\t\t} catch (error) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(`Command cleanup unconfirmed; process permit retained: ${rejectionMessage(error)}`, {\n\t\t\t\t\tcause: error,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!started.ok && !startErrors.some((code) => code === started.error.code)) {\n\t\t\t\trelease = undefined;\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Command cleanup unconfirmed; process permit retained: ${started.error.code}: ${started.error.message}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst admitted = mapped(started, (lease) => lease, startErrors);\n\t\t\tif (!admitted.ok) return admitted;\n\t\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\t\tconst id = ref.value.taskId as C.TaskId;\n\t\t\tconst existing = state.tasks.get(id);\n\t\t\tif (existing) return { ok: true, value: existing };\n\t\t\tlet bindFailure: Error | undefined;\n\t\t\tif (release?.bindProcess) {\n\t\t\t\ttry {\n\t\t\t\t\tconst group = this.#native.taskProcessGroup(admitted.value);\n\t\t\t\t\tif (!group.ok) throw new Error(group.error.message);\n\t\t\t\t\tif (group.value !== null) await release.bindProcess({ kind: \"unix-process-group\", id: group.value });\n\t\t\t\t} catch (error) {\n\t\t\t\t\tbindFailure = new Error(rejectionMessage(error));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (release) {\n\t\t\t\tstate.permits.set(id, release);\n\t\t\t\trelease = undefined;\n\t\t\t}\n\t\t\tconst task = new TaskCapability();\n\t\t\tthis.#tasks.set(task, {\n\t\t\t\tnative: admitted.value,\n\t\t\t\towner: state,\n\t\t\t\tref: reference(ref.value),\n\t\t\t\tcontroller: new AbortController(),\n\t\t\t\tkind: \"command\",\n\t\t\t\tstatuses: new Map(),\n\t\t\t\tstatusListeners: new Set(),\n\t\t\t});\n\t\t\tstate.tasks.set(id, task);\n\t\t\tif (bindFailure) {\n\t\t\t\tawait this.cancelTask(task, \"owner-close\").catch(() => undefined);\n\t\t\t\tthrow bindFailure;\n\t\t\t}\n\t\t\tif (state.permits.has(id)) {\n\t\t\t\tfor (const watch of state.watches) {\n\t\t\t\t\twatch.drain();\n\t\t\t\t\tif (watch.snapshot.tasks.some((item) => item.ref.taskId === id && item.cleanup.kind === \"reaped\"))\n\t\t\t\t\t\tthis.#releasePermit(state, id);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { ok: true, value: task };\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait release?.();\n\t\t\t} finally {\n\t\t\t\tstate.commandAdmissions.delete(admission);\n\t\t\t\tfinishAdmission();\n\t\t\t}\n\t\t}\n\t}\n\t/** Caller must hold launch authorization closed while this snapshot drains. */\n\tasync drainCommandAdmissions(owner: OwnerLease): Promise<void> {\n\t\tawait Promise.all([...this.#owner(owner).commandAdmissions]);\n\t}\n\ttaskStdin(task: TaskLease): C.Result<StdinLease, C.InputError> {\n\t\treturn mapped(\n\t\t\tthis.#native.taskStdin(this.#task(task).native),\n\t\t\t(input) => {\n\t\t\t\tconst lease = new StdinCapability();\n\t\t\t\tenvironment.inputs.set(lease, input);\n\t\t\t\treturn lease;\n\t\t\t},\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync writeTaskInput(\n\t\tinput: StdinLease,\n\t\toperation: C.OperationId,\n\t\tdata: C.InputData,\n\t): Promise<C.Result<C.InputReceipt, C.InputError>> {\n\t\tconst lease = environment.inputs.get(input);\n\t\tif (!lease) throw new TypeError(\"Foreign stdin capability\");\n\t\treturn mapped(\n\t\t\tawait this.#native.writeTaskInput(\n\t\t\t\tlease,\n\t\t\t\toperation,\n\t\t\t\tdata.kind === \"bytes\" ? { kind: \"bytes\", bytes: Buffer.from(data.bytes) } : data,\n\t\t\t),\n\t\t\t(value) => ({\n\t\t\t\toperationId: value.operationId as C.OperationId,\n\t\t\t\tacceptedBytes: value.acceptedBytes,\n\t\t\t\tkind: value.kind as \"bytes\" | \"eof\",\n\t\t\t}),\n\t\t\t[\"TaskTerminal\", \"StdinClosed\", \"InputBackpressure\", \"OperationConflict\", \"InputDeliveryUnknown\"] as const,\n\t\t);\n\t}\n\tasync readTaskOutput(task: TaskLease, range: C.OutputRange): Promise<C.Result<C.OutputPage, C.OutputError>> {\n\t\treturn mapped(\n\t\t\tawait this.#native.readTaskOutput(this.#task(task).native, range),\n\t\t\t(page) => ({\n\t\t\t\trequested: page.requested,\n\t\t\t\tchunks: page.chunks.map((chunk) => ({ offsets: chunk.offsets, bytes: new Uint8Array(chunk.bytes) })),\n\t\t\t\tomittedRanges: page.omittedRanges,\n\t\t\t\t...(page.nextOffset === undefined ? {} : { nextOffset: page.nextOffset }),\n\t\t\t}),\n\t\t\t[\"UnknownTask\", \"OutputUnavailable\"] as const,\n\t\t);\n\t}\n\tasync startAgentTask(\n\t\towner: OwnerLease,\n\t\tintent: C.AgentIntent,\n\t\toperation: C.OperationId,\n\t\tschedule?: (dispatch: () => Promise<void>) => void,\n\t): Promise<C.Result<TaskLease, C.StartFailure>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.host.binding.authorizeLaunch(intent);\n\t\tconst admitted = mapped(\n\t\t\tthis.#native.startAgentTask(state.native, intent, operation),\n\t\t\t(lease) => lease,\n\t\t\tstartErrors,\n\t\t);\n\t\tif (!admitted.ok) return admitted;\n\t\tconst ref = this.#native.taskReference(admitted.value);\n\t\tif (!ref.ok) throw new Error(ref.error.message);\n\t\tconst id = ref.value.taskId as C.TaskId;\n\t\tconst existing = state.tasks.get(id);\n\t\tif (existing) return { ok: true, value: existing };\n\t\tif (intent.routerSelection) routerSelections.set(id, Object.freeze({ ...intent.routerSelection }));\n\t\tconst task = new TaskCapability();\n\t\tObject.freeze(task);\n\t\tconst taskState: TaskState = {\n\t\t\tnative: admitted.value,\n\t\t\towner: state,\n\t\t\tref: reference(ref.value),\n\t\t\tcontroller: new AbortController(),\n\t\t\tstatuses: new Map(),\n\t\t\tstatusListeners: new Set(),\n\t\t};\n\t\tthis.#tasks.set(task, taskState);\n\t\tstate.tasks.set(id, task);\n\t\tconst dispatch = AsyncResource.bind(async () => {\n\t\t\tif (taskState.controller.signal.aborted) return;\n\t\t\tconst runner = mapped(this.#native.claimTaskRunner(admitted.value), (lease) => lease, startErrors);\n\t\t\tif (!runner.ok) throw new Error(`${runner.error.code}: ${runner.error.message}`);\n\t\t\tlet execution: FakeExecution;\n\t\t\ttry {\n\t\t\t\texecution = state.host.binding.createRunner(\n\t\t\t\t\t{\n\t\t\t\t\t\tref: reference(taskState.ref),\n\t\t\t\t\t\tsignal: taskState.controller.signal,\n\t\t\t\t\t\tbindTranscript: (session) => {\n\t\t\t\t\t\t\ttaskState.inheritedEntryCount ??= session.getEntries().length;\n\t\t\t\t\t\t\ttaskState.transcript = session;\n\t\t\t\t\t\t},\n\t\t\t\t\t\treportActivity: (report) =>\n\t\t\t\t\t\t\tmapped(this.#native.reportTaskActivity(runner.value, report), reportReceipt, reportErrors),\n\t\t\t\t\t\tsetExtensionStatus: (statusKey, text) => setTaskStatus(taskState, statusKey, text),\n\t\t\t\t\t\tclearExtensionStatuses: () => clearTaskStatuses(taskState),\n\t\t\t\t\t},\n\t\t\t\t\tintent,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = rejectionMessage(error);\n\t\t\t\texecution = {\n\t\t\t\t\tresult: Promise.resolve({ kind: \"failed\", code: \"SpawnFailed\", message }),\n\t\t\t\t\tcleanup: Promise.resolve({\n\t\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\t\tresources: [{ resource: \"fake-runner-setup\", code: \"CleanupUnconfirmed\", message }],\n\t\t\t\t\t}),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst outcome = execution.result\n\t\t\t\t.catch((error) => ({ kind: \"failed\" as const, code: \"RunnerFailed\", message: rejectionMessage(error) }))\n\t\t\t\t.then((result) => {\n\t\t\t\t\treturn mapped(\n\t\t\t\t\t\tthis.#native.reportRunnerOutcome(runner.value, result),\n\t\t\t\t\t\t(receipt) => this.#notifyTaskSettled(state, taskState.ref, receipt),\n\t\t\t\t\t\treportErrors,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\tconst cleanup = execution.cleanup.catch(\n\t\t\t\t(error): C.Cleanup => ({\n\t\t\t\t\tkind: \"failed\",\n\t\t\t\t\tresources: [{ resource: \"fake-runner\", code: \"CleanupFailed\", message: rejectionMessage(error) }],\n\t\t\t\t}),\n\t\t\t);\n\t\t\ttaskState.execution = cleanup.then(async (evidence) => {\n\t\t\t\t// Natural reaping follows its outcome; cancellation needs only confirmed stop.\n\t\t\t\t// A result may never arrive after abort, including when cleanup arrived first.\n\t\t\t\tconst signal = taskState.controller.signal;\n\t\t\t\tlet stopped!: () => void;\n\t\t\t\tconst cancelled = new Promise<undefined>((resolve) => {\n\t\t\t\t\tstopped = () => resolve(undefined);\n\t\t\t\t\tif (signal.aborted) stopped();\n\t\t\t\t\telse signal.addEventListener(\"abort\", stopped, { once: true });\n\t\t\t\t});\n\t\t\t\tconst reported = await Promise.race([outcome, cancelled]).finally(() => {\n\t\t\t\t\tsignal.removeEventListener(\"abort\", stopped);\n\t\t\t\t});\n\t\t\t\t// The task ended: nothing of its session's presentation outlives it.\n\t\t\t\tclearTaskStatuses(taskState);\n\t\t\t\tconst acknowledged = mapped(\n\t\t\t\t\tthis.#native.acknowledgeTaskCleanup(runner.value, evidence),\n\t\t\t\t\t(cleanup) => cleanup,\n\t\t\t\t\treportErrors,\n\t\t\t\t);\n\t\t\t\tif (reported && !reported.ok && !(signal.aborted && reported.error.code === \"ReportConflict\"))\n\t\t\t\t\treturn reported;\n\t\t\t\treturn acknowledged;\n\t\t\t});\n\t\t\tawait taskState.execution;\n\t\t});\n\t\tif (schedule) schedule(dispatch);\n\t\telse void dispatch();\n\t\t// Setup is complete. Do not await execution; ready terminal microtasks may win observation.\n\t\tawait Promise.resolve();\n\t\treturn { ok: true, value: task };\n\t}\n\ttaskReference(task: TaskLease): C.NativeTaskRef {\n\t\treturn reference(this.#task(task).ref);\n\t}\n\tasync waitForTask(\n\t\ttask: TaskLease,\n\t\tbudgetMs?: number,\n\t\tdesignation?: HostSession,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tthis.#task(task).native,\n\t\t\t\tthis.#agentBudget(this.#task(task).owner, budgetMs, this.#task(task).kind === \"command\"),\n\t\t\t\tdesignation ? this.#host(designation).native : undefined,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\treturn registered.ok ? this.observeTaskWait(registered.value) : registered;\n\t}\n\t/** Resolve only a task admitted under this live owner; IDs alone confer no authority. */\n\tlookupTask(owner: OwnerLease, taskId: C.TaskId): C.Result<TaskLease, C.WaitError> {\n\t\tconst state = this.#owner(owner);\n\t\tconst found = mapped(this.#native.lookupTask(state.native, taskId), () => state.tasks.get(taskId), waitErrors);\n\t\tif (!found.ok) return found;\n\t\tif (!found.value) return { ok: false, error: { code: \"UnknownTask\", message: \"No agent runner bound to task\" } };\n\t\treturn { ok: true, value: found.value };\n\t}\n\n\tasync waitForTaskId(\n\t\towner: OwnerLease,\n\t\ttaskId: C.TaskId,\n\t\tbudgetMs?: number,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst found = mapped(this.#native.lookupTask(this.#owner(owner).native, taskId), (lease) => lease, waitErrors);\n\t\tif (!found.ok) return found;\n\t\tconst known = this.#owner(owner).tasks.get(taskId);\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tfound.value,\n\t\t\t\tthis.#agentBudget(\n\t\t\t\t\tthis.#owner(owner),\n\t\t\t\t\tbudgetMs,\n\t\t\t\t\tknown !== undefined && this.#task(known).kind === \"command\",\n\t\t\t\t),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync foregroundTask(task: TaskLease, budgetMs?: number): Promise<C.Result<C.WaitOutcome, C.ForegroundError>> {\n\t\tconst state = this.#task(task);\n\t\tconst errors = [\"TaskTerminal\", \"OwnerClosing\", \"UnknownTask\", \"ObserverCancelled\"] as const;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.foregroundTask(\n\t\t\t\tstate.native,\n\t\t\t\tstate.owner.host.native,\n\t\t\t\tthis.#agentBudget(state.owner, budgetMs, state.kind === \"command\"),\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\terrors,\n\t\t);\n\t\treturn registered.ok\n\t\t\t? mapped(await this.observeTaskWait(registered.value), (outcome) => outcome, errors)\n\t\t\t: registered;\n\t}\n\twaitId(wait: WaitLease): C.WaitId {\n\t\treturn this.#wait(wait).native.waitId as C.WaitId;\n\t}\n\tfindWait(id: C.WaitId): WaitLease | undefined {\n\t\treturn this.#waitRegistry.get(id);\n\t}\n\tobserveTaskWait(wait: WaitLease): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\treturn this.#wait(wait).outcome;\n\t}\n\tyieldTaskWait(wait: WaitLease, reason: C.YieldReason): C.Result<C.WaitOutcome, C.YieldError> {\n\t\treturn mapped(this.#native.yieldTaskWait(this.#wait(wait).native, reason), waitOutcome, [\n\t\t\t\"UnknownWait\",\n\t\t\t\"StaleGeneration\",\n\t\t\t\"ObserverCancelled\",\n\t\t]);\n\t}\n\tdisposeTaskWait(wait: WaitLease): C.Result<void, C.WaitError> {\n\t\treturn mapped(this.#native.disposeTaskWait(this.#wait(wait).native), () => undefined, waitErrors);\n\t}\n\tasync initialObservation(\n\t\ttask: TaskLease,\n\t\tpolicy?: C.WaitPolicy,\n\t\tonRegistered?: (wait: WaitLease) => void,\n\t): Promise<C.Result<C.WaitOutcome, C.WaitError>> {\n\t\tconst state = this.#task(task);\n\t\tpolicy ??= state.kind === \"command\" ? { kind: \"foreground\" } : undefined;\n\t\tconst registered = mapped(\n\t\t\tthis.#native.waitForTask(\n\t\t\t\tstate.native,\n\t\t\t\tpolicy?.kind === \"foreground\"\n\t\t\t\t\t? this.#agentBudget(state.owner, policy.budgetMs, state.kind === \"command\")\n\t\t\t\t\t: undefined,\n\t\t\t\tstate.owner.host.native,\n\t\t\t),\n\t\t\t(lease) => this.#register(lease),\n\t\t\twaitErrors,\n\t\t);\n\t\tif (!registered.ok) return registered;\n\t\tonRegistered?.(registered.value);\n\t\tif (policy?.kind !== \"foreground\")\n\t\t\tthis.yieldTaskWait(registered.value, policy ? \"explicit\" : \"default-background\");\n\t\treturn this.observeTaskWait(registered.value);\n\t}\n\tasync cancelTask(task: TaskLease, cause: C.CancelCause): Promise<C.Result<C.CancelReceipt, C.CancelError>> {\n\t\tconst state = this.#task(task);\n\t\tconst result = mapped(this.#native.cancelTask(state.native, cause), cancelReceipt, [\n\t\t\t\"UnknownTask\",\n\t\t\t\"CleanupFailed\",\n\t\t]);\n\t\tif (result.ok && result.value.decision === \"cancellation-requested\") state.controller.abort(cause);\n\t\treturn result;\n\t}\n\tasync closeTaskOwner(\n\t\towner: OwnerLease,\n\t\tcause: C.OwnerCloseCause,\n\t): Promise<C.Result<C.OwnerCloseReceipt, C.CloseError>> {\n\t\tconst state = this.#owner(owner);\n\t\tstate.closing.abort(new Error(\"Task owner is closed\"));\n\t\tconst closing = this.#native.closeTaskOwner(state.native, cause);\n\t\tfor (const task of state.tasks.values()) this.#task(task).controller.abort(\"owner-close\");\n\t\tconst result = mapped(\n\t\t\tawait closing,\n\t\t\t(receipt): C.OwnerCloseReceipt => ({\n\t\t\t\townerId: receipt.ownerId as C.OwnerId,\n\t\t\t\tstate: \"closed\",\n\t\t\t\ttasks: receipt.tasks.map(cancelReceipt),\n\t\t\t}),\n\t\t\t[\"CleanupFailed\", \"EnvironmentClosing\"],\n\t\t);\n\t\tif (result.ok)\n\t\t\tfor (const task of state.tasks.values()) {\n\t\t\t\tconst completed = await this.#task(task).execution;\n\t\t\t\tif (completed && !completed.ok)\n\t\t\t\t\tthrow new Error(`Runner protocol failed: ${completed.error.code}: ${completed.error.message}`);\n\t\t\t}\n\t\tif (result.ok)\n\t\t\tfor (const watch of state.watches) {\n\t\t\t\twatch.drain();\n\t\t\t\twatch.dispose(false);\n\t\t\t}\n\t\tif (result.ok) {\n\t\t\tfor (const taskId of [...state.permits.keys()]) this.#releasePermit(state, taskId);\n\t\t\tawait Promise.all([...state.releases]);\n\t\t\tconst failure = state.releaseFailures.shift();\n\t\t\tif (failure) throw failure;\n\t\t}\n\t\treturn result;\n\t}\n\t/**\n\t * The bounded stream carries only authentic deltas. Overflow/native reset publishes\n\t * snapshot/cursor then ends the current iterator, even with no surviving delta.\n\t * Reconcile on completion; obtain a new iterator on the same events iterable to\n\t * continue observing. Apply snapshots first and ignore deltas at/below their cursor.\n\t * onReconcile is optional; consumer failures never disable the fallback poll.\n\t */\n\twatchOwnerTasks(owner: OwnerLease, from?: C.Cursor): C.Result<TaskSubscription, C.WatchError> {\n\t\tconst state = this.#owner(owner);\n\t\tlet subscription: TaskSubscription | undefined;\n\t\treturn mapped(\n\t\t\tthis.#native.watchOwnerTasks(state.native, (hint) => subscription?.wake(hint), from),\n\t\t\t(initial) => {\n\t\t\t\tsubscription = new TaskSubscription(this.#native, initial, () => {\n\t\t\t\t\tif (subscription) state.watches.delete(subscription);\n\t\t\t\t});\n\t\t\t\tstate.watches.add(subscription);\n\t\t\t\treturn subscription;\n\t\t\t},\n\t\t\twatchErrors,\n\t\t);\n\t}\n\t#agentBudget(owner: OwnerState, budgetMs?: number, command = false): number | undefined {\n\t\tif (budgetMs !== undefined) return budgetMs;\n\t\tconst configuration = owner.host.binding.tasks?.wait;\n\t\tif (configuration?.kind === \"until-settled\") return undefined;\n\t\treturn command\n\t\t\t? (configuration?.commandBudgetMs ?? COMMAND_FOREGROUND_BUDGET_MS)\n\t\t\t: (configuration?.agentBudgetMs ?? DEFAULT_AGENT_WAIT_BUDGET_MS);\n\t}\n\t#register(lease: native.WaitLease): WaitLease {\n\t\tconst wait = new WaitCapability();\n\t\tObject.freeze(wait);\n\t\tconst id = lease.waitId as C.WaitId;\n\t\tthis.#waitRegistry.set(id, wait);\n\t\tconst outcome = this.#native\n\t\t\t.observeTaskWait(lease)\n\t\t\t.then((result) => mapped(result, waitOutcome, waitErrors))\n\t\t\t.finally(() => {\n\t\t\t\tthis.#waitRegistry.delete(id);\n\t\t\t});\n\t\tthis.#waits.set(wait, { native: lease, outcome });\n\t\treturn wait;\n\t}\n\t#host(host: HostSession): HostState {\n\t\tconst state = this.#hosts.get(host);\n\t\tif (!state) throw new TypeError(\"Foreign host capability\");\n\t\treturn state;\n\t}\n\t#owner(owner: OwnerLease): OwnerState {\n\t\tconst state = this.#owners.get(owner);\n\t\tif (!state) throw new TypeError(\"Foreign owner capability\");\n\t\treturn state;\n\t}\n\t#task(task: TaskLease): TaskState {\n\t\tconst state = this.#tasks.get(task);\n\t\tif (!state) throw new TypeError(\"Foreign task capability\");\n\t\treturn state;\n\t}\n\t#wait(wait: WaitLease): WaitState {\n\t\tconst state = this.#waits.get(wait);\n\t\tif (!state) throw new TypeError(\"Foreign wait capability\");\n\t\treturn state;\n\t}\n}\n"]}
@@ -6,6 +6,11 @@ export interface FooterRenderStyle {
6
6
  muted(text: string): string;
7
7
  warning(text: string): string;
8
8
  }
9
+ /**
10
+ * The extension status row under the footer: statuses sorted by key, joined by a dim bullet and
11
+ * truncated to the width. Shared by the chat footer and a task page's footer.
12
+ */
13
+ export declare function renderExtensionStatusRow(statuses: ReadonlyMap<string, string>, width: number, style?: Pick<FooterRenderStyle, "dim">): string | undefined;
9
14
  export declare function formatCwdForFooter(cwd: string, home: string | undefined): string;
10
15
  /**
11
16
  * Right-aligned usage meter that sits above the composer, matching the approved
@@ -1 +1 @@
1
- {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/footer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAiC,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAOxF,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAuKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAYhF;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACpD,OAAO,CAAC,kBAAkB,CAAQ;IAElC,QAAgB,OAAO,CAAe;IAEtC,YAAY,OAAO,EAAE,YAAY,EAEhC;IAED,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAEtC;IAED,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE5C;IAED,UAAU,IAAI,IAAI,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9B;CACD;AAED;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAChD,QAAgB,OAAO,CAAe;IACtC,QAAgB,UAAU,CAA6B;IACvD,iBAAyB,WAAW,CAAoB;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YACC,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,0BAA0B,EACtC,WAAW,GAAE,iBAA4C,EACzD,gBAAgB,GAAE,MAAM,OAAqB,EAM7C;IAED,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAOtC;IAED,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAE7C;IAED;;;OAGG;IACH,UAAU,IAAI,IAAI,CAEjB;IAED,sFAAsF;IACtF,OAAO,IAAI,IAAI,CAId;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA+C9B;CACD"}
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/footer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAiC,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAOxF,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAmBD;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAA4B,GAC9D,MAAM,GAAG,SAAS,CAQpB;AAsJD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAYhF;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACpD,OAAO,CAAC,kBAAkB,CAAQ;IAElC,QAAgB,OAAO,CAAe;IAEtC,YAAY,OAAO,EAAE,YAAY,EAEhC;IAED,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAEtC;IAED,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE5C;IAED,UAAU,IAAI,IAAI,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9B;CACD;AAED;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAChD,QAAgB,OAAO,CAAe;IACtC,QAAgB,UAAU,CAA6B;IACvD,iBAAyB,WAAW,CAAoB;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YACC,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,0BAA0B,EACtC,WAAW,GAAE,iBAA4C,EACzD,gBAAgB,GAAE,MAAM,OAAqB,EAM7C;IAED,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAOtC;IAED,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAE7C;IAED;;;OAGG;IACH,UAAU,IAAI,IAAI,CAEjB;IAED,sFAAsF;IACtF,OAAO,IAAI,IAAI,CAId;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAuC9B;CACD"}
@@ -21,6 +21,16 @@ function sanitizeStatusText(text) {
21
21
  .replace(/ +/g, " ")
22
22
  .trim();
23
23
  }
24
+ /**
25
+ * The extension status row under the footer: statuses sorted by key, joined by a dim bullet and
26
+ * truncated to the width. Shared by the chat footer and a task page's footer.
27
+ */
28
+ export function renderExtensionStatusRow(statuses, width, style = defaultFooterRenderStyle) {
29
+ if (statuses.size === 0)
30
+ return undefined;
31
+ const sorted = [...statuses].sort(([a], [b]) => a.localeCompare(b));
32
+ return truncateToWidth(sorted.map(([, text]) => sanitizeStatusText(text)).join(` ${style.dim("•")} `), width, style.dim("..."));
33
+ }
24
34
  /**
25
35
  * Format token counts (similar to web-ui)
26
36
  */
@@ -254,10 +264,9 @@ export class FooterComponent {
254
264
  if (areExperimentalFeaturesEnabled())
255
265
  statusText += ` ${this.renderStyle.warning("xp")}`;
256
266
  const lines = [truncateToWidth(statusText, width, this.renderStyle.dim("..."))];
257
- const statuses = [...this.footerData.getExtensionStatuses()].sort(([a], [b]) => a.localeCompare(b));
258
- if (statuses.length > 0) {
259
- lines.push(truncateToWidth(statuses.map(([, text]) => sanitizeStatusText(text)).join(` ${this.renderStyle.dim("•")} `), width, this.renderStyle.dim("...")));
260
- }
267
+ const statusRow = renderExtensionStatusRow(this.footerData.getExtensionStatuses(), width, this.renderStyle);
268
+ if (statusRow !== undefined)
269
+ lines.push(statusRow);
261
270
  lines.push(...renderTaskFooter(getOwnerTaskStore(this.session)?.backgroundTasks ?? [], width));
262
271
  return lines;
263
272
  }