@loomwork/ui-renderer-terminal 0.0.0-stage → 0.1.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 (46) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +8 -0
  3. package/README.md +369 -2
  4. package/dist/esm/index.js +6 -0
  5. package/dist/esm/index.js.map +1 -0
  6. package/dist/esm/inert.js +13 -0
  7. package/dist/esm/inert.js.map +1 -0
  8. package/dist/esm/interactive.js +677 -0
  9. package/dist/esm/interactive.js.map +1 -0
  10. package/dist/esm/registry.js +428 -0
  11. package/dist/esm/registry.js.map +1 -0
  12. package/dist/esm/status.js +64 -0
  13. package/dist/esm/status.js.map +1 -0
  14. package/dist/esm/watch.js +17 -0
  15. package/dist/esm/watch.js.map +1 -0
  16. package/dist/index.d.ts +9 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +22 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/inert.d.ts +12 -0
  21. package/dist/inert.d.ts.map +1 -0
  22. package/dist/inert.js +17 -0
  23. package/dist/inert.js.map +1 -0
  24. package/dist/interactive.d.ts +142 -0
  25. package/dist/interactive.d.ts.map +1 -0
  26. package/dist/interactive.js +685 -0
  27. package/dist/interactive.js.map +1 -0
  28. package/dist/registry.d.ts +55 -0
  29. package/dist/registry.d.ts.map +1 -0
  30. package/dist/registry.js +434 -0
  31. package/dist/registry.js.map +1 -0
  32. package/dist/status.d.ts +49 -0
  33. package/dist/status.d.ts.map +1 -0
  34. package/dist/status.js +69 -0
  35. package/dist/status.js.map +1 -0
  36. package/dist/watch.d.ts +9 -0
  37. package/dist/watch.d.ts.map +1 -0
  38. package/dist/watch.js +20 -0
  39. package/dist/watch.js.map +1 -0
  40. package/package.json +60 -3
  41. package/src/index.ts +25 -0
  42. package/src/inert.ts +14 -0
  43. package/src/interactive.ts +868 -0
  44. package/src/registry.ts +630 -0
  45. package/src/status.ts +103 -0
  46. package/src/watch.ts +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":";;AAkFA,0CAKC;AAgDD,4CAyHC;AAeD,gCAEC;AAUD,gCAKC;AAMD,oCAIC;AA0GD,kDA+cC;AAl2BD,+CAQ2B;AAE3B,uDAWmC;AAEnC,mCAAgC;AAChC,qCAA0E;AA4C1E,iGAAiG;AACjG,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,6CAA6C;AAC7C,MAAM,QAAQ,GAAG,aAAa,CAAC;AAC/B,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,uEAAuE;AACvE,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;AAE1B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE,CACxC,IAAA,0BAAgB,EAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAElF,8FAA8F;AAC9F,SAAgB,eAAe,CAAC,EAAW;IACzC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrF,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,IAAA,0BAAgB,EAAC,EAAE,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,KAAK,GAA8C;IACvD,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,IAAI,EAAE,KAAK,CAAC;IACb,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,IAAI,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,OAAO,CAAC;IACf,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,IAAI,EAAE,WAAW,CAAC;IACnB,CAAC,MAAM,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,yGAAyG;AACzG,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,gHAAgH;AAChH,SAAS,UAAU,CAAC,CAAS;IAC3B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AASD;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,OAA0B,EAAE;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC;IACjD,IAAI,OAA2B,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,iGAAiG;IACjG,kGAAkG;IAClG,8FAA8F;IAC9F,gGAAgG;IAChG,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,OAAO,GAAG,SAAS,CAAC;QACpB,QAAQ,GAAG,KAAK,CAAC;QACjB,KAAK,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,EAAE,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC;YACzD,UAAU,EAAE,CAAC;YACb,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;QACD,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,IAAI,GAAG,EAAE,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC;YACnE,qFAAqF;YACrF,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,KAAK,GAAG,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACjC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,QAAQ,GAAG,KAAK,CAAC;gBACjB,wFAAwF;gBACxF,kCAAkC;gBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/B,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,mFAAmF;gBACnF,sCAAsC;gBACtC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;gBACxB,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,UAAU,GAAG,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC1B,KAAK,GAAG,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBAC9C,+EAA+E;oBAC/E,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBACjC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;oBACrB,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;gBACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;wBAC/B,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,GAAG,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACf,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACxF,UAAU,EAAE,CAAC;gBACb,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;gBACnC,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,GAAG,GAAG,EAAE,CAAC;gBACnB,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,6FAA6F;gBAC7F,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1E,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC/B,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACnB,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9B,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;YACf,mFAAmF;YACnF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,cAAc,GAAG,2CAA2C,CAAC;AACnE,kGAAkG;AAClG,MAAM,GAAG,GAAG,4BAA4B,CAAC;AACzC,kGAAkG;AAClG,MAAM,GAAG,GAAG,aAAa,CAAC;AAE1B;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AACvE,CAAC;AASD,wFAAwF;AACxF,SAAgB,UAAU,CAAC,IAAuB,EAAE,IAAuB;IACzE,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,YAAY,GAAG,eAAe,CAAC;AACrC,MAAM,EAAE,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC;AAE3D,uFAAuF;AACvF,SAAgB,YAAY,CAAC,OAA6B,EAAE,UAAkB;IAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AACpC,CAAC;AA8ED,sGAAsG;AACtG,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,CAAC,IAAqB,EAAQ,EAAE;QAC5C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,GAAY,EAAU,EAAE,CACzC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,yBAAe,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,OAAkB,EAClB,IAAwB;IAExB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,IAA0B,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,OAAO,CAAC;IACrC,MAAM,UAAU,GAA4B,CAAC,CAAC,EAC5C,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,EAAE,EACX,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,EAAE,EACX,cAAc,EAAE,GAAG,EACnB,GAAG,EAAE,EAAE,EACP,WAAW,EAAE,GAAG,EAChB,GAAG,IAAI,EACR,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAElB,IAAI,SAAS,GAAG,OAAO,CAAC;IACxB,IAAI,OAA2B,CAAC;IAChC,IAAI,IAAI,GAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,QAA8B,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,6GAA6G;IAC7G,IAAI,KAAsF,CAAC;IAC3F,IAAI,QAAkE,CAAC;IAEvE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAW,EAAE;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,iCAAuB,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACtF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iCAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,CAAS,EAA+C,EAAE;QAC1E,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iCAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,EAAE,KAAK,SAAS;YACrB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC,CAAC;IAQF,SAAS,OAAO;QACd,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuD,CAAC;QAChF,MAAM,KAAK,GAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,SAAS,WAAW;QAClB,MAAM,GAAG,GAAwC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC9B,kDAAkD;gBAClD,IAAI,UAAU,CAAC,CAAC,CAAC;oBACf,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,qBAAqB,CAAC;wBAC1C,MAAM,EAAE,CAAC;qBACV,CAAC,CAAC;YACP,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACpC,IAAI,IAAA,wBAAc,EAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS;oBAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9F,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACzC,IAAI,IAAA,gCAAsB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;oBACpD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAmD,EAAE,CAC/E,IAAA,wBAAc,EAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS;QAC3C,CAAC,CAAE,CAAC,CAAC,KAAK,CAAC,OAA2D;QACtE,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,OAAO,GAAG,CAAC,CAAS,EAAgC,EAAE;QAC1D,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAA,gCAAsB,EAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAE,CAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,4BAAkB;YACtF,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,4BAAkB,CAAC;IACzB,CAAC,CAAC;IAEF,gHAAgH;IAChH,MAAM,SAAS,GAAG,CAChB,CAAS,EACT,KAAa,EACb,KAAwB,EACY,EAAE;QACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACpE,CAAC,CAAC;IAEF,SAAS,KAAK;QACZ,MAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YACrE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1B,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,KAAK,GAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YACvC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,qBAAqB,CAAC,SAAS,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAC1F,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;gBAChD,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,GAAI,IAA0B,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CACjF,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5B,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxD,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;oBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;oBAClE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAChD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;wBACnB,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAA,yBAAe,EAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CACjG,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;gBACtD,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;oBACtB,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAA,yBAAe,EAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CACnF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,KAAK,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,gGAAgG;QAChG,+DAA+D;QAC/D,OAAO,IAAA,aAAK,EAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,KAAK,CAAC,KAAK,GAAG,KAAK;QAC1B,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC;QACtB,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;YACR,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC7C,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,UAAU,EAAE,IAAI,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ,CACrB,MAA6D,EAC7D,CAAS,EACT,IAAc;QAEd,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,6FAA6F;QAC7F,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,OAAO,GAAkB;YAC7B,GAAG,MAAM;YACT,aAAa,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;SACzD,CAAC;QACF,IAAI,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAA8C,CAAC;YACnF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;gBAChE,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;gBAC1F,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD;;;OAGG;IACH,SAAS,OAAO,CAAC,IAAa,EAAE,IAAc;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,GAAQ,EAAE,IAAa,EAAE,IAAc;QAC3D,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,KAAK,GAAG,SAAS,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACxE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;iBAC1E,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;iBACvF,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;iBACxF,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACxC,MAAM,CAAC,GAAG,IAAA,2BAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACV,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC3F,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,MAAM,QAAQ,CACvB;wBACE,IAAI,EAAE,4BAAkB;wBACxB,QAAQ,EAAE,CAAC,CAAC,EAAE;wBACd,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAA,sBAAY,GAAE,EAAE;qBAC/C,EACD,CAAC,CAAC,MAAM,EACR,IAAI,CACL,CAAC;oBACF,uEAAuE;oBACvE,IAAI,EAAE;wBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAA0B,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;iBACnF,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;gBAC1B,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;iBAC1E,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;iBAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAChF,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM,CAAC,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,6BAAmB,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxF,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;wBAAE,OAAO,MAAM,CAAC;oBACxC,MAAM,EAAE,GAAG,MAAM,QAAQ,CACvB;wBACE,IAAI,EAAE,uBAAa;wBACnB,QAAQ,EAAE,CAAC,CAAC,EAAE;wBACd,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAA,sBAAY,GAAE,EAAE;qBACjD,EACD,CAAC,CAAC,MAAM,EACR,IAAI,CACL,CAAC;oBACF,IAAI,EAAE;wBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpB,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAClC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;gBAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;iBAC9E,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;gBAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;iBACnF,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,GAAG;wBAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;yBACvE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC1C,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACxC,MAAM,EAAE,GAAG,MAAM,QAAQ,CACvB;oBACE,IAAI,EAAE,4BAAkB;oBACxB,QAAQ,EAAE,CAAC,CAAC,EAAE;oBACd,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAA,sBAAY,GAAE,EAAE;iBAC1D,EACD,CAAC,CAAC,MAAM,EACR,IAAI,CACL,CAAC;gBACF,IAAI,EAAE;oBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,iEAAiE;QACjE,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,GAAG,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,CAAC,CAAS,EAAQ,EAAE;YAC/B,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACtE,CAAC,CAAC;QACF,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aAClD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,IACH,CAAC,CAAC,IAAI,KAAK,UAAU;YACrB,GAAG,CAAC,IAAI,KAAK,MAAM;YACnB,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EACtC,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,MAAM,CAAC;YACxC,sFAAsF;YACtF,6EAA6E;YAC7E,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC;YAC7F,IACE,IAAI,CAAC,cAAc,KAAK,IAAI;gBAC5B,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EACjF,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC5B,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;gBACxC,IAAI,GAAG,MAAM,EAAE,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC;gBACvC,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;YAClC,MAAM,EAAE,GAAG,MAAM,QAAQ,CACvB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAChF,CAAC,CAAC,MAAM,EACR,IAAI,CACL,CAAC;YACF,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBACrD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;iBAC3D,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;gBACzB,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3F,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,IAAyB,EAAiB,EAAE;QACvD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,4FAA4F;IAC5F,KAAK,UAAU,OAAO,CAAC,IAAW;QAChC,yFAAyF;QACzF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/B,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxC,KAAK,EAAE,CAAC;gBACR,0FAA0F;gBAC1F,6DAA6D;gBAC7D,IAAI,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAO;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,oGAAoG;IACpG,KAAK,UAAU,KAAK,CAAC,GAAG,IAAW;QACjC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,KAA0B,EAAQ,EAAE;QAClD,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IAEF,4FAA4F;IAC5F,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;IAC9D,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,SAAS,IAAI;QACX,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QACrC,IAAI,SAAS;YAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACd,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjE,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS;QAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK,EAAE,CAAC;IAER,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;QACtB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,KAAK;QACL,MAAM,CAAC,IAAI;YACT,SAAS,GAAG,IAAI,CAAC;YACjB,KAAK,EAAE,CAAC;QACV,CAAC;QACD,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { RendererRegistry } from "@loomwork/blueprint-runtime";
2
+ import { type TerminalWidgetRenderer } from "@loomwork/plugin-renderer-terminal";
3
+ import { type LuI18n, type MediaKind, type MediaPolicy, type MediaRef } from "@loomwork/ui-core";
4
+ /**
5
+ * Who draws a widget's title: `"widget"` (default) prints `Title: …` in the body; `"host"` leaves
6
+ * the title to the embedding app's own chrome (a title bar, a frame), so the body carries none —
7
+ * error and empty renderings included. One rule for every kind either way.
8
+ */
9
+ export type TitleChrome = "widget" | "host";
10
+ /**
11
+ * What a terminal can do about media (U9). A terminal loads nothing, so there is no resolver: it
12
+ * prints WHAT the media is (name, type, size) and a way to name it. Media is shown as untrusted
13
+ * unless the host says otherwise, exactly as the web surface does without a vouching resolver.
14
+ */
15
+ export interface TerminalMediaOptions {
16
+ /**
17
+ * A SYNCHRONOUS viewer-scoped link for a ref (e.g. a short-lived signed URL the host minted for
18
+ * this session), or `undefined` for none. It is re-checked with `checkMediaUrl` before printing;
19
+ * a refused link prints nothing. Without one the line carries a non-reversible tag only, never any part of the
20
+ * address (an address is a capability, and terminal output is copied and logged).
21
+ */
22
+ readonly link?: (ref: MediaRef, kind: MediaKind) => string | undefined;
23
+ /** Whether the HOST vouches for this ref's bytes. Default: nothing is trusted. User-origin media never is. */
24
+ readonly trusted?: (ref: MediaRef, kind: MediaKind) => boolean;
25
+ /** The same display policy the web surface takes (size limits, URL rules). */
26
+ readonly policy?: MediaPolicy;
27
+ }
28
+ export interface TerminalRegistryOptions {
29
+ /** Who draws each widget's title. Default `"widget"` — today's output, unchanged. */
30
+ readonly chrome?: TitleChrome;
31
+ /** How media prints. Default: handle only, everything untrusted. */
32
+ readonly media?: TerminalMediaOptions;
33
+ /**
34
+ * The host override for every fixed word the terminal prints (see `LU_MESSAGE_KEYS`) and the locale
35
+ * its numbers and plurals use. Default: English, locale `en-US` — see {@link DEFAULT_TERMINAL_LOCALE}.
36
+ */
37
+ readonly i18n?: LuI18n;
38
+ }
39
+ /**
40
+ * The terminal's default locale for every number and plural: one fixed, deterministic tag, so the
41
+ * same value prints the same bytes on every machine (logs, snapshots, CI) instead of varying with the
42
+ * host's own locale. A host that wants another passes `i18n: { locale }`.
43
+ */
44
+ export declare const DEFAULT_TERMINAL_LOCALE = "en-US";
45
+ export declare function sparkline(values: readonly number[]): string;
46
+ /** The framework kinds' renderers. A NEW registry each call — never mutate a shared one. */
47
+ export declare function createLoomUiTerminalRegistry(opts?: TerminalRegistryOptions): RendererRegistry<TerminalWidgetRenderer>;
48
+ export declare const loomUiTerminalRegistry: RendererRegistry<TerminalWidgetRenderer>;
49
+ /**
50
+ * loom's eight built-ins plus the framework's kinds. A NEW registry each call — never mutate a shared one.
51
+ * With `chrome: "host"` the framework kinds print no title; loom's own eight built-ins are loom's
52
+ * renderers and keep theirs (the framework does not rewrite them).
53
+ */
54
+ export declare function terminalRegistry(opts?: TerminalRegistryOptions): RendererRegistry<TerminalWidgetRenderer>;
55
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAe,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAOL,KAAK,MAAM,EAGX,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,QAAQ,EAiCd,MAAM,mBAAmB,CAAC;AAgB3B;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE,8GAA8G;IAC9G,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IAC/D,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,UAAU,CAAC;AA8D/C,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAW3D;AA+YD,4FAA4F;AAC5F,wBAAgB,4BAA4B,CAC1C,IAAI,GAAE,uBAA4B,GACjC,gBAAgB,CAAC,sBAAsB,CAAC,CAwB1C;AAED,eAAO,MAAM,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB,CAC5C,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,uBAA4B,GACjC,gBAAgB,CAAC,sBAAsB,CAAC,CAE1C"}
@@ -0,0 +1,434 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loomUiTerminalRegistry = exports.DEFAULT_TERMINAL_LOCALE = void 0;
4
+ exports.sparkline = sparkline;
5
+ exports.createLoomUiTerminalRegistry = createLoomUiTerminalRegistry;
6
+ exports.terminalRegistry = terminalRegistry;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const blueprint_runtime_1 = require("@loomwork/blueprint-runtime");
9
+ const plugin_renderer_terminal_1 = require("@loomwork/plugin-renderer-terminal");
10
+ const ui_core_1 = require("@loomwork/ui-core");
11
+ const chat_ui_1 = require("@loomwork/ui-core/chat-ui");
12
+ const document_1 = require("@loomwork/ui-core/document");
13
+ const inert_1 = require("./inert");
14
+ const LEVEL_KEY = {
15
+ ok: "lu.level.ok",
16
+ warning: "lu.level.warning",
17
+ critical: "lu.level.critical",
18
+ };
19
+ const SPARK = "▁▂▃▄▅▆▇█";
20
+ /** A non-empty string is a title; `""` (or a stray non-string) is none, so the kind stands in. */
21
+ const titleText = (w) => typeof w.title === "string" && w.title !== "" ? w.title : undefined;
22
+ const title = (w) => titleText(w) ?? w.kind;
23
+ const pad = (s, n) => (s.length >= n ? s.slice(0, n) : s.padEnd(n));
24
+ /**
25
+ * The terminal's default locale for every number and plural: one fixed, deterministic tag, so the
26
+ * same value prints the same bytes on every machine (logs, snapshots, CI) instead of varying with the
27
+ * host's own locale. A host that wants another passes `i18n: { locale }`.
28
+ */
29
+ exports.DEFAULT_TERMINAL_LOCALE = "en-US";
30
+ function envOf(i18n) {
31
+ const locale = i18n?.locale ?? exports.DEFAULT_TERMINAL_LOCALE;
32
+ return {
33
+ locale,
34
+ say: (0, ui_core_1.createSay)(i18n),
35
+ plural: (base, n) => (0, ui_core_1.selectPlural)(locale, base, n, (0, ui_core_1.pluralForms)(base), (k, f) => (0, ui_core_1.lookupMessage)(i18n, k, f)),
36
+ };
37
+ }
38
+ /**
39
+ * A number exactly as the web's `measure()` would print it for the same value, format and unit —
40
+ * full numeric parity, not merely the same shape: an explicit `format` (or, absent one, a legacy
41
+ * `unit` read as semantics via `effectiveFormat`, the same "$"/"€"/"%"/ISO-4217 lookup the DOM
42
+ * renderer uses) goes through `@loomwork/ui-core`'s `formatSemanticNumber`, so a `currency` prints
43
+ * the web's own symbol ("€1,234,567.89"), never an ISO-code suffix, and a plain number groups and
44
+ * rounds exactly as `Intl.NumberFormat` does for the DOM renderer. The raw `unit` shows as a
45
+ * literal suffix unless the format draws its own symbol (currency, percentage) — core's
46
+ * `unitSuffix`, the same rule by which the DOM renderer shows it as a separate span. (renderer-lit is an ESM/lit-DOM package this CommonJS one
47
+ * cannot import, so this DOM-free part of its formatting logic lives in core instead of being
48
+ * re-derived here.)
49
+ */
50
+ function formatted(x, v, format, unit) {
51
+ const fmt = (0, ui_core_1.effectiveFormat)(format, unit);
52
+ const text = (0, ui_core_1.formatSemanticNumber)(v, fmt, x.locale);
53
+ const suffix = (0, ui_core_1.unitSuffix)(fmt, unit);
54
+ return suffix === undefined ? text : `${text} ${suffix}`;
55
+ }
56
+ /**
57
+ * Min and max of the finite values, in one pass — never `Math.min(...values)` /
58
+ * `Math.max(...values)`, which spreads the whole array into call arguments and hits V8's
59
+ * argument-count ceiling on a long series. `undefined` iff no value is finite.
60
+ */
61
+ function finiteMinMax(values) {
62
+ let min = Number.POSITIVE_INFINITY;
63
+ let max = Number.NEGATIVE_INFINITY;
64
+ let seen = false;
65
+ for (const v of values) {
66
+ if (!Number.isFinite(v))
67
+ continue;
68
+ seen = true;
69
+ if (v < min)
70
+ min = v;
71
+ if (v > max)
72
+ max = v;
73
+ }
74
+ return seen ? { min, max } : undefined;
75
+ }
76
+ function sparkline(values) {
77
+ const range = finiteMinMax(values);
78
+ if (range === undefined)
79
+ return "";
80
+ const { min, max } = range;
81
+ return values
82
+ .map((v) => Number.isFinite(v)
83
+ ? SPARK[max === min ? 0 : Math.round(((v - min) / (max - min)) * (SPARK.length - 1))]
84
+ : " ")
85
+ .join("");
86
+ }
87
+ const lead = (host) => (w, rest) => host ? rest : `${title(w)}: ${rest}`;
88
+ /**
89
+ * The hanging indent that sets a multi-line body's rows under its `Title:` lead. Host chrome has no
90
+ * lead to hang under, so it gets none (G18) — one helper, so every multi-line kind agrees.
91
+ */
92
+ const HANG = " ";
93
+ const hang = (host) => (host ? "" : HANG);
94
+ const guarded = (host, kind, body) => (w, v) => {
95
+ const l = lead(host);
96
+ const check = (0, ui_core_1.checkKindValue)(kind, v);
97
+ if (!check.ok)
98
+ return `✗ ${l(w, check.finding.message)}`;
99
+ if (v === undefined)
100
+ return l(w, "—");
101
+ const out = body(w, v, l, host);
102
+ const notes = refFootnotes(kind, v, host);
103
+ return notes === "" ? out : `${out}\n${notes}`;
104
+ };
105
+ /**
106
+ * `[1] label` per source the value cites, one line each under the widget (`[1]` alone without a label). The label is
107
+ * data, so it is cut to one clean line like any untrusted text; the numbering is the web's (array order from 1).
108
+ */
109
+ function refFootnotes(kind, v, host) {
110
+ return (0, ui_core_1.widgetRefsOf)(kind, v)
111
+ .map((r, i) => {
112
+ const label = r.label === undefined ? "" : (0, ui_core_1.oneLineChatText)(r.label, 80);
113
+ return `${hang(host)}[${i + 1}]${label === "" ? "" : ` ${label}`}`;
114
+ })
115
+ .join("\n");
116
+ }
117
+ // The right-axis marker is semantic information (which axis a series reads against), so it must
118
+ // never be lost to the label column's fixed width. `pad(`${label}${marker}`, width)` — padding
119
+ // the already-concatenated string — truncates whichever part lands past the width, so a label
120
+ // alone at or beyond `width` swallows the marker whole. Truncate the LABEL alone to leave room
121
+ // for the marker, then append the marker after, so it always survives; a short label+marker
122
+ // still pads to `width` exactly as before, so every row's sparkline column stays aligned.
123
+ const RIGHT_AXIS_MARKER = " (R)";
124
+ function padLabelWithMarker(label, marker, width) {
125
+ const combined = `${label}${marker}`;
126
+ if (combined.length <= width)
127
+ return combined.padEnd(width);
128
+ if (marker === "")
129
+ return combined.slice(0, width);
130
+ const truncatedLabel = label.slice(0, Math.max(width - marker.length, 0));
131
+ return `${truncatedLabel}${marker}`;
132
+ }
133
+ const timeSeries = (host, x) => guarded(host, "TimeSeries", (w, v, l) => {
134
+ const { series } = v;
135
+ const props = w.props;
136
+ // Same rule as the web's lu-timeseries: a right axis exists only when some series is on the
137
+ // left to contrast it with; all-right falls back to one shared axis, so nothing is marked.
138
+ const splitAxes = series.some((s) => s.axis !== "right") && series.some((s) => s.axis === "right");
139
+ const lines = series.map((s) => {
140
+ const values = s.points.map((p) => p.value);
141
+ const last = values.length > 0 ? values[values.length - 1] : Number.NaN;
142
+ // Same precedence as the web's `formatOf` (lu-timeseries.ts): this series' own format, else
143
+ // the widget's; a unit resolves only when neither format does.
144
+ const text = formatted(x, last, s.format ?? props.format, s.unit ?? props.unit);
145
+ const marker = splitAxes && s.axis === "right" ? RIGHT_AXIS_MARKER : "";
146
+ return `${hang(host)}${padLabelWithMarker(s.label, marker, 12)} ${sparkline(values)} ${text}`;
147
+ });
148
+ return (host ? lines : [`${title(w)}:`, ...lines]).join("\n");
149
+ });
150
+ const barChart = (host, x) => guarded(host, "BarChart", (w, v, l) => {
151
+ const { bars, format, unit } = v;
152
+ const props = w.props;
153
+ // Same precedence as the web's lu-bar-chart.ts: the chart's own value-level format, else the
154
+ // widget's props.format; a unit resolves only when neither format does. One format for every
155
+ // bar, exactly as the web computes it once and reuses it for every bar's `measure()` call.
156
+ const chartFormat = format ?? props.format;
157
+ const chartUnit = unit ?? props.unit;
158
+ // Single-pass max (never Math.max(...spread) — same argument-count hazard as sparkline's
159
+ // min/max), floored at 1 so an all-non-finite/zero series never divides by zero below.
160
+ let max = 1;
161
+ for (const b of bars) {
162
+ const abs = Math.abs(b.value);
163
+ if (Number.isFinite(abs) && abs > max)
164
+ max = abs;
165
+ }
166
+ const lines = bars.map((b) => {
167
+ const filled = Number.isFinite(b.value) ? Math.round((Math.abs(b.value) / max) * 20) : 0;
168
+ const text = formatted(x, b.value, chartFormat, chartUnit);
169
+ return `${hang(host)}${pad(b.label, 12)} ${"█".repeat(filled)}${"·".repeat(20 - filled)} ${text}`;
170
+ });
171
+ return (host ? lines : [`${title(w)}:`, ...lines]).join("\n");
172
+ });
173
+ const kpi = (host, x) => guarded(host, "Kpi", (w, v, l) => {
174
+ const k = v;
175
+ const props = w.props;
176
+ const delta = k.deltaPct ?? null;
177
+ const direction = delta === null ? undefined : (0, ui_core_1.deltaDirection)(delta);
178
+ const arrow = direction === "up" ? "▲ " : direction === "down" ? "▼ " : "";
179
+ const change = delta === null
180
+ ? ""
181
+ : ` ${arrow}${(0, ui_core_1.formatSemanticNumber)(Math.abs(delta), ui_core_1.DELTA_FORMAT, x.locale)}`;
182
+ // The label is a caption beside the title, as on the web — the title stays.
183
+ const text = `${formatted(x, k.value, k.format ?? props.format, k.unit ?? props.unit)}${change}`;
184
+ // Host-owned title: the caption (still information) trails the figure instead.
185
+ if (host)
186
+ return k.label ? `${text} (${k.label})` : text;
187
+ return `${k.label ? `${title(w)} (${k.label})` : title(w)}: ${text}`;
188
+ });
189
+ /** Rows printed before the "… N more rows" line. */
190
+ const TABLE_ROWS = 20;
191
+ /** Widest a terminal column grows before its cells are cut. */
192
+ const TABLE_COL_MAX = 24;
193
+ const table = (host, x) => guarded(host, "Table", (w, v, l) => {
194
+ const t = v;
195
+ // Widths are computed over the text that will be PRINTED: loom's traversal strips controls
196
+ // from the whole frame afterwards, which would otherwise misalign a hostile cell.
197
+ const labels = t.columns.map((c) => (0, inert_1.inert)((0, ui_core_1.tableColumnLabel)(c)));
198
+ const formats = t.columns.map(ui_core_1.tableColumnFormat);
199
+ const cellText = (c) => c === null
200
+ ? "—"
201
+ : typeof c === "number"
202
+ ? formatted(x, c, undefined, undefined)
203
+ : (0, inert_1.inert)((0, ui_core_1.tableCellText)(c));
204
+ const body = t.rows.slice(0, TABLE_ROWS).map((row) => labels.map((_, i) => {
205
+ const c = row[i] ?? null;
206
+ const f = formats[i];
207
+ return typeof c === "number" && f !== undefined
208
+ ? formatted(x, c, f, undefined)
209
+ : cellText(c);
210
+ }));
211
+ // Single pass per column (never Math.max(...spread)); capped so one long cell cannot push
212
+ // every other column off the screen.
213
+ const widths = labels.map((label, i) => {
214
+ let width = label.length;
215
+ for (const row of body)
216
+ width = Math.max(width, (row[i] ?? "").length);
217
+ return Math.min(width, TABLE_COL_MAX);
218
+ });
219
+ const line = (cells) => `${hang(host)}${cells.map((c, i) => pad(c, widths[i] ?? 0)).join(" ")}`.trimEnd();
220
+ const out = [...(host ? [] : [`${title(w)}:`]), line(labels), ...body.map(line)];
221
+ if (t.rows.length > TABLE_ROWS) {
222
+ const more = t.rows.length - TABLE_ROWS;
223
+ // The terminal's locale (see DEFAULT_TERMINAL_LOCALE) decides the plural, like its numbers.
224
+ out.push(`${hang(host)}${x.say("lu.terminal.table.moreRows", { n: more, noun: x.plural("lu.plural.row", more) })}`);
225
+ }
226
+ return out.join("\n");
227
+ });
228
+ const statusCard = (host, x) => guarded(host, "StatusCard", (w, v, l) => {
229
+ const s = v;
230
+ return l(w, `[${x.say(LEVEL_KEY[s.level])}] ${s.headline}${s.detail ? ` — ${s.detail}` : ""}`);
231
+ });
232
+ // A document laid out as text: markdown and org through core's document parsers and `chatMarkdownLines` (which
233
+ // cleans every line and caps the total), plain text as its first lines. Hung under the title like Chat.
234
+ const prose = (host, x) => guarded(host, "Prose", (w, v) => {
235
+ const p = v;
236
+ // Plain text over the document cap is cut (before it is split) and says so.
237
+ const over = p.format === "plain" && p.text.length > document_1.MD_DOC_MAX_TEXT;
238
+ const body = p.text === ""
239
+ ? [x.say("lu.prose.empty")]
240
+ : p.format === "plain"
241
+ ? (over ? p.text.slice(0, document_1.MD_DOC_MAX_TEXT) : p.text)
242
+ .split("\n")
243
+ .slice(0, ui_core_1.MD_MAX_LINES)
244
+ .map((l) => (0, ui_core_1.oneLineChatText)(l, 200))
245
+ : (0, ui_core_1.chatMarkdownLines)(p.format === "org" ? (0, document_1.parseOrgDocument)(p.text) : (0, document_1.parseMarkdownDocument)(p.text));
246
+ const out = [
247
+ ...(p.note ? [(0, ui_core_1.oneLineChatText)(p.note)] : []),
248
+ ...body,
249
+ ...(p.truncated || over ? [x.say("lu.prose.cut")] : []),
250
+ ];
251
+ const indent = hang(host);
252
+ return [...(host ? [] : [`${title(w)}:`]), ...out.map((l) => `${indent}${l}`)].join("\n");
253
+ });
254
+ // A diagram as text: core's shared outline (the same lines the web's hidden outline holds), one per
255
+ // line, hung under the title. Every label is untrusted data: cut to one clean line BEFORE the outline
256
+ // joins them, so no control or bidi character, and no newline, reaches the frame.
257
+ const diagram = (host, x) => guarded(host, "Diagram", (w, v) => {
258
+ const d = v;
259
+ const clean = (t) => (0, ui_core_1.oneLineChatText)(t, 200);
260
+ const checked = {
261
+ ...d,
262
+ nodes: d.nodes.map((n) => ({
263
+ ...n,
264
+ label: clean(n.label),
265
+ ...(n.at === undefined ? {} : { at: n.at }),
266
+ })),
267
+ edges: d.edges.map((e) => ({
268
+ ...e,
269
+ ...(e.label === undefined ? {} : { label: clean(e.label) }),
270
+ })),
271
+ };
272
+ const indent = hang(host);
273
+ const body = (0, ui_core_1.diagramOutline)(checked, x.locale, x.say).map((l) => `${indent}${" ".repeat(l.depth)}${l.text}`);
274
+ return [
275
+ ...(host ? [] : [`${title(w)}:`]),
276
+ ...(d.title ? [`${indent}${clean(d.title)}`] : []),
277
+ ...body,
278
+ ].join("\n");
279
+ });
280
+ // Never bound, so never `guarded`: loom calls a channel-less widget's renderer directly, with
281
+ // `value === undefined`, and the text lives in props (a string after compile; an uncompiled
282
+ // LocalizedText shows its fallback, never its key).
283
+ const note = (host, x) => (w) => {
284
+ const raw = w.props.text;
285
+ const parsed = ui_core_1.LocalizedText.safeParse(raw);
286
+ const text = typeof raw === "string" ? raw : parsed.success ? parsed.data.fallback : "";
287
+ // Only a non-empty string is a title — `""` and a stray `0` are none, as for every kind.
288
+ const t = titleText(w);
289
+ return t !== undefined && !host ? `${t}: ${text}` : text;
290
+ };
291
+ // The A2UI tree and the sandboxed component are web surfaces: an interpreter this CommonJS
292
+ // package cannot import, and code that cannot run in a terminal. Say so, don't fake it.
293
+ const a2uiView = (host, x) => guarded(host, "A2UIView", (w, _v, l) => l(w, x.say("lu.terminal.a2ui")));
294
+ const sandboxView = (host, x) => guarded(host, "SandboxView", (w, _v, l) => l(w, x.say("lu.terminal.sandbox")));
295
+ // ── Media (U9) ─────────────────────────────────────────────────────────────────
296
+ // `Image 'chart.png' (image/png, 1 KiB) [untrusted] ref#1a2b3c4d` — the SAME one-line
297
+ // description the web surface speaks (`describeMedia`), a trust marker, and a link or a non-reversible tag.
298
+ const mediaLine = (host, x, kind, media) => guarded(host, kind, (w, v, l) => {
299
+ const ref = v;
300
+ const policy = media?.policy;
301
+ const tooLarge = ref.size !== undefined && ref.size > (0, ui_core_1.maxBytesFor)(kind, policy);
302
+ const trusted = ref.origin !== "user" && media?.trusted?.(ref, kind) === true;
303
+ // Untrusted active content (HTML, SVG, XML, script types) is never offered: no link, no handle.
304
+ const active = !trusted && (0, ui_core_1.isActiveMediaType)(ref.mediaType);
305
+ const sameOrigin = (u) => !trusted && (0, ui_core_1.isSameOriginMediaUrl)(u, policy?.appOrigin);
306
+ const link = tooLarge || active ? undefined : media?.link?.(ref, kind);
307
+ const checked = (0, ui_core_1.checkMediaUrl)(link, policy);
308
+ const offered = checked.ok && !(sameOrigin(checked.url) && policy?.allowSameOriginUntrusted !== true)
309
+ ? checked.url
310
+ : undefined;
311
+ // A NON-REVERSIBLE tag, never any part of the address (a prefix of a capability is a partial
312
+ // capability, and terminal output is copied and logged). A usable link is the host's `media.link`.
313
+ const tag = `ref#${(0, node_crypto_1.createHash)("sha256").update(ref.address).digest("hex").slice(0, 8)}`;
314
+ const where = tooLarge
315
+ ? x.say("lu.terminal.media.tooLarge")
316
+ : active
317
+ ? x.say("lu.terminal.media.blocked")
318
+ : (offered ?? tag);
319
+ const alt = kind === "Image" ? (0, ui_core_1.cleanMediaText)(ref.alt, 200) : "";
320
+ return l(w, `${(0, ui_core_1.describeMedia)(kind, ref, x.say)}${alt === "" ? "" : ` — ${alt}`}${trusted ? "" : ` ${x.say("lu.terminal.untrusted")}`} ${where}`);
321
+ });
322
+ // A media input is a web control (a file picker): say so, don't fake it. Static, so never `guarded`.
323
+ const mediaInput = (host, x) => (w) => {
324
+ const t = titleText(w);
325
+ const body = x.say("lu.terminal.fileUpload");
326
+ return t !== undefined && !host ? `${t}: ${body}` : body;
327
+ };
328
+ // ── Chat and inputs (U8) ───────────────────────────────────────────────────────
329
+ // The transcript prints as the SAME lines the web surface speaks (`chatTranscriptLines`: speaker,
330
+ // status note, fixed failure sentence + reference id, restricted entries as bare placeholders, media
331
+ // described without an address), under the title. Untrusted text is cleaned and bounded: a plain part is one
332
+ // line of at most `maxText` characters, a markdown part is up to 200 plain lines of at most 4 x `maxText`
333
+ // characters in all (`chatMarkdownLines`). A terminal escape (ESC), a C1 control or a bidi override in a turn
334
+ // cannot reach the screen.
335
+ const chatTranscript = (host, x) => guarded(host, "Chat", (w, v) => {
336
+ const chat = v;
337
+ const lines = (0, ui_core_1.chatTranscriptLines)(chat, { say: x.say });
338
+ const out = [];
339
+ if (chat.older !== undefined)
340
+ out.push(x.say("lu.terminal.chat.earlier"));
341
+ out.push(...(lines.length === 0 ? [x.say("lu.terminal.chat.empty")] : lines));
342
+ if (chat.running === true && !chat.entries.some((e) => e.status === "streaming"))
343
+ out.push(x.say("lu.terminal.chat.replying"));
344
+ if (chat.state === "closed")
345
+ out.push(x.say("lu.terminal.chat.closed"));
346
+ const indent = hang(host);
347
+ return [...(host ? [] : [`${title(w)}:`]), ...out.map((l) => `${indent}${l}`)].join("\n");
348
+ });
349
+ /** A prop that is text: a string, or an uncompiled LocalizedText's fallback; cleaned to one line. */
350
+ const propText = (raw) => {
351
+ const parsed = ui_core_1.LocalizedText.safeParse(raw);
352
+ const text = typeof raw === "string" ? raw : parsed.success ? parsed.data.fallback : "";
353
+ return (0, ui_core_1.oneLineChatText)(text, 120);
354
+ };
355
+ // An input is a prompt in a terminal: say what it asks, so an interactive host can collect the answer
356
+ // (and send it through the same write-back as the web). Static, so never `guarded`.
357
+ const textPrompt = (host, x) => (w) => {
358
+ const label = propText(w.props.label) || x.say("lu.input.message");
359
+ const multi = w.props.multiline === true ? x.say("lu.terminal.multiline") : "";
360
+ const body = `> ${label}${multi} ${x.say("lu.terminal.textInput")}`;
361
+ return host ? body : `${title(w)}: ${body}`;
362
+ };
363
+ const formPrompt = (host, x) => (w) => {
364
+ const label = propText(w.props.label) || x.say("lu.input.form");
365
+ const fields = (0, ui_core_1.fieldsProblem)(w.props.fields) === undefined
366
+ ? w.props.fields
367
+ : [];
368
+ const rows = fields.map((f) => `${hang(host)} ${(0, ui_core_1.oneLineChatText)(f.label, 60)}${f.required === true ? "*" : ""} (${f.type})`);
369
+ const head = `> ${label} ${x.say("lu.terminal.formInput")}`;
370
+ return [host ? head : `${title(w)}: ${head}`, ...rows].join("\n");
371
+ };
372
+ const selectPrompt = (host, x) => (w, v) => {
373
+ const label = propText(w.props.label) || x.say("lu.input.choose");
374
+ const options = (0, ui_core_1.optionsProblem)(w.props.options) === undefined
375
+ ? w.props.options
376
+ : [];
377
+ // The bound current choice marks its option; a value that is not declared marks none and is never printed.
378
+ const rows = options.map((o, i) => `${hang(host)} ${i + 1}) ${(0, ui_core_1.oneLineChatText)(o.label, 60)}${o.value === v ? ` ${x.say("lu.terminal.current")}` : ""}`);
379
+ const head = `> ${label} ${x.say("lu.terminal.selectInput")}`;
380
+ return [host ? head : `${title(w)}: ${head}`, ...rows].join("\n");
381
+ };
382
+ const multiPrompt = (host, x) => (w, v) => {
383
+ const label = propText(w.props.label) || x.say("lu.input.choose");
384
+ const m = (0, chat_ui_1.multiSelectValueIssues)(v).length === 0 ? v : undefined;
385
+ const byValue = new Map((m?.options ?? []).map((o) => [o.value, o]));
386
+ const chosen = (m?.selected ?? []).map((s) => byValue.get(s)).filter((o) => o !== undefined);
387
+ const text = (o) => `${(0, ui_core_1.oneLineChatText)(o.label, 60)}${o.hint === undefined ? "" : ` (${(0, ui_core_1.oneLineChatText)(o.hint, 40)})`}`;
388
+ const rows = chosen.length === 0
389
+ ? [`${hang(host)} ${propText(w.props.emptyLabel) || x.say("lu.input.none")}`]
390
+ : chosen.map((o, i) => `${hang(host)} ${i + 1}) ${text(o)} ${x.say("lu.terminal.current")}`);
391
+ const rest = (m?.options.length ?? 0) - chosen.length;
392
+ if (rest > 0)
393
+ rows.push(`${hang(host)} + ${rest} ${x.say("lu.terminal.moreOptions")}`);
394
+ if (m?.note !== undefined)
395
+ rows.push(`${hang(host)} ${(0, ui_core_1.oneLineChatText)(m.note, 200)}`);
396
+ const head = `> ${label} ${x.say("lu.terminal.multiSelectInput")}`;
397
+ return [host ? head : `${title(w)}: ${head}`, ...rows].join("\n");
398
+ };
399
+ /** The framework kinds' renderers. A NEW registry each call — never mutate a shared one. */
400
+ function createLoomUiTerminalRegistry(opts = {}) {
401
+ const host = opts.chrome === "host";
402
+ const x = envOf(opts.i18n);
403
+ return new blueprint_runtime_1.RendererRegistry()
404
+ .register("TimeSeries", timeSeries(host, x))
405
+ .register("BarChart", barChart(host, x))
406
+ .register("Kpi", kpi(host, x))
407
+ .register("Table", table(host, x))
408
+ .register("StatusCard", statusCard(host, x))
409
+ .register("Note", note(host, x))
410
+ .register("Prose", prose(host, x))
411
+ .register("Diagram", diagram(host, x))
412
+ .register("A2UIView", a2uiView(host, x))
413
+ .register("SandboxView", sandboxView(host, x))
414
+ .register("Image", mediaLine(host, x, "Image", opts.media))
415
+ .register("Audio", mediaLine(host, x, "Audio", opts.media))
416
+ .register("Video", mediaLine(host, x, "Video", opts.media))
417
+ .register("File", mediaLine(host, x, "File", opts.media))
418
+ .register("MediaInput", mediaInput(host, x))
419
+ .register("Chat", chatTranscript(host, x))
420
+ .register("TextInput", textPrompt(host, x))
421
+ .register("FormInput", formPrompt(host, x))
422
+ .register("SelectInput", selectPrompt(host, x))
423
+ .register("MultiSelectInput", multiPrompt(host, x));
424
+ }
425
+ exports.loomUiTerminalRegistry = createLoomUiTerminalRegistry();
426
+ /**
427
+ * loom's eight built-ins plus the framework's kinds. A NEW registry each call — never mutate a shared one.
428
+ * With `chrome: "host"` the framework kinds print no title; loom's own eight built-ins are loom's
429
+ * renderers and keep theirs (the framework does not rewrite them).
430
+ */
431
+ function terminalRegistry(opts = {}) {
432
+ return plugin_renderer_terminal_1.defaultTerminalRegistry.merge(createLoomUiTerminalRegistry(opts));
433
+ }
434
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}