@spences10/pi-lsp 0.0.11 → 0.0.12

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,GAKV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACN,iBAAiB,EACjB,eAAe,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACN,gBAAgB,EAChB,SAAS,GAOT,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,GAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,+BAA+B,EAC/B,4BAA4B,EAC5B,qBAAqB,GACrB,MAAM,YAAY,CAAC;AAWpB,MAAM,wBAAyB,SAAQ,KAAK;IAC3C,YAAY,QAAgB,EAAE,cAAsB;QACnD,KAAK,CACJ,yBAAyB,QAAQ,WAAW,cAAc,EAAE,CAC5D,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACxC,CAAC;CACD;AAOD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC9B,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;IACjB,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;CACtB,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAE1D,KAAK,UAAU,6BAA6B,CAC3C,aAA8B,EAC9B,GAAsB;IAEtB,IAAI,CAAC,aAAa,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,OAAO,GAAG;QACf,GAAG,+BAA+B,CAAC,aAAa,CAAC,OAAO,CAAC;QACzD,YAAY,EACX,kFAAkF;QACnF,aAAa,EAAE;YACd,aAAa,aAAa,CAAC,QAAQ,EAAE;YACrC,WAAW,aAAa,CAAC,OAAO,EAAE;SAClC;QACD,gBAAgB,EAAE,gDAAgD,aAAa,CAAC,OAAO,SAAS,sBAAsB,mCAAmC;KACzJ,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE;QACrD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,GAAG,EAAE,KAAK;QAClB,MAAM,EAAE,GAAG,EAAE,KAAK;YACjB,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC3B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;YAC/C,CAAC,CAAC,SAAS;QACZ,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,gBAAgB,EAAE,4BAA4B,EAAE;KAChD,CAAC,CAAC;IAEH,OAAO,CACN,QAAQ,CAAC,MAAM,KAAK,YAAY;QAChC,QAAQ,CAAC,MAAM,KAAK,iBAAiB,CACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,KAAyD;IAEzD,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,EAAE,aAAa,CAAC;IAChE,OAAO,CACN,CAAC,cAAc;QACf,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,KAAU,EACV,WAAmB,EACnB,MAA8C;IAE9C,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;QAC/C,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,UAAU,CAAC;YACzB,UAAU,IAAI,CAAC,CAAC;YAChB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO;YAClC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;IACF,CAAC,CAAC,CACF,CAAC;IAEF,OAAO,OAAO,CAAC;AAChB,CAAC;AA8BD,MAAM,UAAU,oBAAoB,CACnC,UAAqC,EAAE;IAEvC,MAAM,aAAa,GAClB,OAAO,CAAC,aAAa;QACrB,CAAC,CAAC,cAAgC,EAAE,EAAE,CACrC,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;IACjC,MAAM,SAAS,GACd,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAElE,OAAO,KAAK,UAAU,GAAG,CAAC,EAAgB;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAEhE,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAC5C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,CAClB,QAAgB,EAChB,cAAsB,EACb,EAAE,CAAC,GAAG,QAAQ,SAAS,cAAc,EAAE,CAAC;QAClD,MAAM,gBAAgB,GAAG,CACxB,IAAY,EACZ,UAAmB,EAAE,EACpB,EAAE,CAAC,CAAC;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;YAC1C,OAAO;SACP,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,CAAC,OAA4B,EAAE,EAAE,CACxD,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC5C,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO;SACd,CAAC,CAAC;QAEJ,MAAM,oBAAoB,GAAG,KAAK,EACjC,QAAiB,EACD,EAAE;YAClB,MAAM,MAAM,GAAG,QAAQ;gBACtB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAC1C;gBACF,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,QAAQ;gBACxB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CACxD,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ,QAAQ,CAAC,CACnC;gBACF,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACvC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,OAAO,CAAC,UAAU,CACvB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAC9C,CAAC;YACF,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC5B,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,cAAc,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO;YACR,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACnC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,mBAAmB,GAAG,KAAK,EAChC,SAAiB,EACjB,GAAsB,EACa,EAAE;YACrC,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC;YAExC,IAAI,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa;gBAAE,OAAO,SAAS,CAAC;YACrC,IACC,aAAa,CAAC,gBAAgB;gBAC9B,CAAC,CAAC,MAAM,6BAA6B,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EACzD,CAAC;gBACF,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC,aAAa;oBAAE,OAAO,SAAS,CAAC;YACtC,CAAC;YACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAElD,MAAM,OAAO,GAAwB;gBACpC,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO,CAA0B,SAAS,CAAC;aAC5D,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;gBACjC,MAAM,MAAM,GAAG,aAAa,CAAC;oBAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,QAAQ;oBACR,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC;iBACvD,CAAC,CAAC;gBAEH,IAAI,CAAC;oBACJ,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;wBACvB,MAAM,IAAI,wBAAwB,CACjC,QAAQ,EACR,cAAc,CACd,CAAC;oBACH,CAAC;oBACD,MAAM,OAAO,GAAG,iBAAiB,CAChC,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,YAAY,EAC1B,KAAK,CACL,CAAC;oBACF,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBACjC,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACvB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC1C,MAAM,IAAI,wBAAwB,CACjC,QAAQ,EACR,cAAc,CACd,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,GAAgB;oBAC1B,MAAM;oBACN,QAAQ;oBACR,cAAc;oBACd,QAAQ;oBACR,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,YAAY,EAAE,aAAa,CAAC,YAAY;iBACxC,CAAC;gBACF,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACd,CAAC,CAAC,EAAE,CAAC;YAEL,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;YAChC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC;gBACJ,OAAO,MAAM,aAAa,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACV,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;oBAC3C,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,EACtB,KAAkB,EAClB,QAAgB,EACE,EAAE;YACpB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,KAAK,EAC3B,IAAY,EACZ,GAAsB,EAQrB,EAAE;YACH,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,KAAK,EAC/B,IAAY,EACZ,GAAsB,EACrB,EAAE;YACH,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,OAAO;wBACN,EAAE,EAAE,KAAc;wBAClB,KAAK,EAAE;4BACN,IAAI,EAAE,sBAA+B;4BACrC,IAAI,EAAE,GAAG;4BACT,OAAO,EAAE,qCAAqC,GAAG,EAAE;yBACnD;qBACD,CAAC;gBACH,CAAC;gBACD,OAAO;oBACN,EAAE,EAAE,IAAa;oBACjB,MAAM;iBACN,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;oBACnC,OAAO;wBACN,EAAE,EAAE,KAAc;wBAClB,KAAK,EAAE,KAAK,CAAC,OAAO;qBACpB,CAAC;gBACH,CAAC;gBACD,OAAO;oBACN,EAAE,EAAE,KAAc;oBAClB,KAAK,EAAE;wBACN,IAAI,EAAE,uBAAgC;wBACtC,IAAI,EAAE,GAAG;wBACT,OAAO,EACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBACvD;iBACD,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,KAAK,EAC5B,IAAY,EACZ,GAAqB,EACrB,GAIqB,EACpB,EAAE;YACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAC5B,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,gBAAgB,CAAC,IAAI,EAAE;oBAC7B,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;oBAC/B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;oBAC7B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;iBAC3C,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,eAAe,CACrB,iBAAiB,CAChB,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK,CAAC,QAAQ,EACrB,MAAM,CAAC,KAAK,CAAC,cAAc,EAC3B,MAAM,CAAC,KAAK,CAAC,OAAO,EACpB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,KAAK,CACL,CACD,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EACV,uJAAuJ;YACxJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;oBACjB,WAAW,EACV,0DAA0D;iBAC3D,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,QAAQ,CACrB,IAAI,CAAC,MAAM,CAAC;oBACX,WAAW,EACV,sEAAsE;iBACvE,CAAC,CACF;aACD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACxD,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,WAAW,GAChB,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAC7C,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,OAAO,IAAI,IAAI,CACtB,CAAC;gBACH,OAAO,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC,CAAC;SACH,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACV,oHAAoH;YACrH,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;oBAChC,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,GAAG;oBACb,WAAW,EACV,+CAA+C;iBAChD,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,QAAQ,CACrB,IAAI,CAAC,MAAM,CAAC;oBACX,WAAW,EACV,uEAAuE;iBACxE,CAAC,CACF;aACD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;gBACvC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAClD,MAAM,CAAC,KAAK,EACZ,4BAA4B,EAC5B,KAAK,EAAE,IAAI,EAAE,EAAE;oBACd,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBAClB,OAAO;4BACN,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACvC,WAAW,EAAE,CAAC;4BACd,KAAK,EAAE,IAAI;yBACX,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC;wBACJ,MAAM,WAAW,GAChB,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CACtD,QAAQ,CAAC,MAAM,CAAC,GAAG,EACnB,OAAO,CACP,CAAC;wBACH,OAAO;4BACN,IAAI,EAAE,kBAAkB,CACvB,QAAQ,CAAC,MAAM,CAAC,GAAG,EACnB,WAAW,CACX;4BACD,WAAW,EAAE,WAAW,CAAC,MAAM;4BAC/B,KAAK,EAAE,KAAK;yBACZ,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,OAAO;4BACN,IAAI,EAAE,iBAAiB,CACtB,iBAAiB,CAChB,QAAQ,CAAC,MAAM,CAAC,GAAG,EACnB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC9B,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACpC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAC7B,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAClC,KAAK,CACL,CACD;4BACD,WAAW,EAAE,CAAC;4BACd,KAAK,EAAE,IAAI;yBACX,CAAC;oBACH,CAAC;gBACF,CAAC,CACD,CAAC;gBAEF,IAAI,gBAAgB,GAAG,CAAC,CAAC;gBACzB,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACjB,WAAW,IAAI,CAAC,CAAC;oBAClB,CAAC;yBAAM,CAAC;wBACP,gBAAgB,IAAI,KAAK,CAAC,WAAW,CAAC;wBACtC,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC;4BAAE,WAAW,IAAI,CAAC,CAAC;oBAC/C,CAAC;gBACF,CAAC;gBAED,OAAO,gBAAgB,CACtB;oBACC,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,gBAAgB,mBAAmB,WAAW,WAAW,WAAW,WAAW;oBAC1H,GAAG,KAAK;iBACR,CAAC,IAAI,CAAC,MAAM,CAAC,EACd;oBACC,EAAE,EAAE,WAAW,KAAK,CAAC;oBACrB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC5B,gBAAgB;oBAChB,WAAW;oBACX,WAAW;iBACX,CACD,CAAC;YACH,CAAC;SACD,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EACV,uIAAuI;YACxI,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;oBAClB,WAAW,EACV,kDAAkD;iBACnD,CAAC;gBACF,WAAW,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,MAAM,CAAC;oBACX,WAAW,EACV,8CAA8C;iBAC/C,CAAC,CACF;gBACD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC5B,IAAI,CAAC,OAAO,CAAC;oBACZ,WAAW,EACV,8CAA8C;iBAC/C,CAAC,CACF;gBACD,WAAW,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,OAAO,CAAC;oBACZ,WAAW,EACV,wFAAwF;iBACzF,CAAC,CACF;gBACD,KAAK,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;oBAC9B,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,iBAAiB,CAAC,MAAM;oBAClC,WAAW,EAAE,yCAAyC;iBACtD,CAAC,CACF;aACD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACxD,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,OAAO,GACZ,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,mBAAmB,CAClC,OAAO,EACP,MAAM,CAAC,KAAK,EACZ;oBACC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;oBACrC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK;oBAC9C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;oBACxC,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;iBAClC,CACD,CAAC;gBACF,OAAO,qBAAqB,CAC3B,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK,EACZ,OAAO,CACP,CAAC;YACH,CAAC,CAAC;SACH,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,YAAY;YACnB,WAAW,EACV,iFAAiF;YAClF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;oBACjB,WAAW,EAAE,yBAAyB;iBACtC,CAAC;gBACF,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;oBACtB,WAAW,EAAE,8BAA8B;iBAC3C,CAAC;aACF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACxD,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC5C,MAAM,CAAC,GAAG,EACV;oBACC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC3B,CACD,CAAC;gBACF,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,CAAC;SACH,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACV,mFAAmF;YACpF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;aACxB,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACxD,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CACrD,MAAM,CAAC,GAAG,EACV;oBACC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC3B,CACD,CAAC;gBACF,OAAO,gBAAgB,CACtB,SAAS,EACT,sBAAsB,CACtB,CAAC;YACH,CAAC,CAAC;SACH,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EACV,wEAAwE;YACzE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;gBACxB,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aAClD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACxD,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CACrD,MAAM,CAAC,GAAG,EACV;oBACC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC3B,EACD,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAClC,CAAC;gBACF,OAAO,gBAAgB,CACtB,SAAS,EACT,sBAAsB,CACtB,CAAC;YACH,CAAC,CAAC;SACH,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,YAAY,CACd,UAAU,CAAC;YACV,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACV,mFAAmF;YACpF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;aACnB,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CACxD,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,OAAO,GACZ,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxD,OAAO,uBAAuB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC,CAAC;SACH,CAAC,CACF,CAAC;QAEF,EAAE,CAAC,EAAE,CACJ,oBAAoB,EACpB,KAAK,EAAE,KAA4B,EAAE,EAAE;YACtC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAChD,OAAO;gBACN,YAAY,EACX,KAAK,CAAC,YAAY;oBAClB;;;;;;;;;;qLAU+K;aAChL,CAAC;QACH,CAAC,CACD,CAAC;QAEF,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE;YACzB,WAAW,EAAE,sCAAsC;YACnD,sBAAsB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACpB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAClC,KAAK;wBACL,KAAK,EAAE,KAAK;qBACZ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,WAAW;yBAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,OAAO,CAAC,KAAK,EAAE,GAAG,wBAAwB,EAAE,CAAC;yBAC3C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;yBAC9C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAChB,KAAK,EAAE,WAAW,KAAK,EAAE;wBACzB,KAAK,EAAE,KAAK;qBACZ,CAAC,CAAC,CAAC;gBACN,CAAC;gBACD,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,kBAAkB,CACvB,IAAI,EACJ,GAAG,EACH,GAAG,EACH,iBAAiB,EACjB,cAAc,EACd,oBAAoB,CACpB,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,oBAAoB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC;AAED,eAAe,oBAAoB,EAAE,CAAC;AAEtC,KAAK,UAAU,kBAAkB,CAChC,IAAY,EACZ,GAA4B,EAC5B,GAAW,EACX,iBAA2C,EAC3C,cAAgD,EAChD,oBAA0D;IAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CACzC,GAAG,EACH,GAAG,EACH,iBAAiB,EACjB,cAAc,CACd,CAAC;YACF,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;gBAC1D,SAAS;YACV,CAAC;YACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;gBAChC,MAAM,uBAAuB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;gBACzD,SAAS;YACV,CAAC;YACD,MAAM,mBAAmB,CACxB,GAAG,EACH,QAAQ,KAAK,SAAS;gBACrB,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,QAAQ,KAAK,QAAQ;oBACtB,CAAC,CAAC,oBAAoB;oBACtB,CAAC,CAAC,YAAY,EAChB,eAAe,CACd,QAAQ,EACR,GAAG,EACH,iBAAiB,EACjB,cAAc,CACd,CACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAE9C,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACV,MAAM,gBAAgB,CACrB,GAAG,EACH,YAAY,EACZ,mBAAmB,CAClB,GAAG,EACH,iBAAiB,EACjB,cAAc,CACd,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ,CAAC;YACF,OAAO;QACR,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;gBAC1D,OAAO;YACR,CAAC;YACD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACjC,MAAM,oBAAoB,EAAE,CAAC;gBAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;gBACtD,OAAO;YACR,CAAC;YACD,IAAI,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,qBAAqB,MAAM,iBAAiB,wBAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACnF,SAAS,CACT,CAAC;gBACF,OAAO;YACR,CAAC;YACD,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACnC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,MAAM,yBAAyB,CAAC,CAAC;YAC5D,OAAO;QACR,CAAC;QACD;YACC,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,uBAAuB,UAAU,8BAA8B,EAC/D,SAAS,CACT,CAAC;IACJ,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B;IACjD,OAAO,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC9B,GAA4B,EAC5B,KAAa,EACb,IAAY;IAEZ,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO;IACR,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,mBAAmB,CACjC,GAA4B,EAC5B,GAAW,EACX,iBAA2C,EAC3C,cAAgD;IAEhD,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC;IAC7C,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;IACzC,OAAO,MAAM,iBAAiB,CAAC,GAAG,EAAE;QACnC,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,GAAG,aAAa,cAAc,YAAY,aAAa,wBAAwB,EAAE,CAAC,MAAM,YAAY;QAC9G,KAAK,EAAE;YACN;gBACC,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,uCAAuC,GAAG,EAAE;aACzD;YACD;gBACC,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,GAAG,aAAa,6BAA6B;aAC1D;YACD;gBACC,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,GAAG,YAAY,mBAAmB;aAC/C;YACD;gBACC,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,sCAAsC;aACnD;YACD;gBACC,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,oCAAoC;aACjD;SACD;QACD,MAAM,EAAE,8BAA8B;KACtC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CACjC,GAA4B,EAC5B,KAAa,EACb,IAAY;IAEZ,MAAM,eAAe,CAAC,GAAG,EAAE;QAC1B,KAAK;QACL,IAAI;QACJ,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;KAC/C,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACtC,GAA4B,EAC5B,oBAA0D;IAE1D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE;QAC7C,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,oCAAoC;QAC9C,KAAK,EAAE;YACN;gBACC,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,oCAAoC;aACjD;YACD,GAAG,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAChD,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,WAAW,QAAQ,wBAAwB;aACxD,CAAC,CAAC;SACH;QACD,MAAM,EAAE,2BAA2B;KACnC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,uBAAuB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACzD,OAAO;IACR,CAAC;IACD,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,QAAQ,yBAAyB,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,uBAAuB,CACrC,GAA4B,EAC5B,oBAA0D;IAE1D,MAAM,oBAAoB,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACN,wBAAwB,EACxB,wBAAwB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,gBAAgB,GAEhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAKvD,MAAM,UAAU,oBAAoB,CACnC,UAAqC,EAAE;IAEvC,OAAO,KAAK,UAAU,GAAG,CAAC,EAAgB;QACzC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE9C,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhC,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAChD,OAAO;gBACN,YAAY,EAAE,wBAAwB,CAAC,KAAK,CAAC,YAAY,CAAC;aAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAElC,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC;AAED,eAAe,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BeforeAgentStartEvent } from '@mariozechner/pi-coding-agent';
2
+ export declare const LSP_TOOL_NAMES: Set<string>;
3
+ export declare const LSP_SYSTEM_PROMPT = "\n\n## Language server support via LSP tools\n\nYou have access to Language Server Protocol tools for diagnostics, hover/type information, definitions, references, and document symbols. Use them when:\n- Debugging TypeScript, JavaScript, Svelte, or other language-server-supported errors\n- Checking types, symbol definitions, or API documentation from code\n- Finding references more precisely than text search\n- Validating focused code changes before reporting completion\n\nAfter editing language-server-supported files, check changed files with LSP diagnostics before reporting completion or committing. Prefer lsp_diagnostics_many for batches: use git to identify changed files, filter to supported source files, then run diagnostics on that list.\n\nPrefer LSP diagnostics over guessing from build output when a file-level check is enough. Use text search for broad discovery, then LSP tools for precise type and symbol questions.";
4
+ export declare function should_inject_lsp_prompt(event: Pick<BeforeAgentStartEvent, 'systemPromptOptions'>): boolean;
5
+ export declare function append_lsp_system_prompt(system_prompt: string): string;
package/dist/prompt.js ADDED
@@ -0,0 +1,31 @@
1
+ export const LSP_TOOL_NAMES = new Set([
2
+ 'lsp_diagnostics',
3
+ 'lsp_diagnostics_many',
4
+ 'lsp_find_symbol',
5
+ 'lsp_hover',
6
+ 'lsp_definition',
7
+ 'lsp_references',
8
+ 'lsp_document_symbols',
9
+ ]);
10
+ export const LSP_SYSTEM_PROMPT = `
11
+
12
+ ## Language server support via LSP tools
13
+
14
+ You have access to Language Server Protocol tools for diagnostics, hover/type information, definitions, references, and document symbols. Use them when:
15
+ - Debugging TypeScript, JavaScript, Svelte, or other language-server-supported errors
16
+ - Checking types, symbol definitions, or API documentation from code
17
+ - Finding references more precisely than text search
18
+ - Validating focused code changes before reporting completion
19
+
20
+ After editing language-server-supported files, check changed files with LSP diagnostics before reporting completion or committing. Prefer lsp_diagnostics_many for batches: use git to identify changed files, filter to supported source files, then run diagnostics on that list.
21
+
22
+ Prefer LSP diagnostics over guessing from build output when a file-level check is enough. Use text search for broad discovery, then LSP tools for precise type and symbol questions.`;
23
+ export function should_inject_lsp_prompt(event) {
24
+ const selected_tools = event.systemPromptOptions?.selectedTools;
25
+ return (!selected_tools ||
26
+ selected_tools.some((tool) => LSP_TOOL_NAMES.has(tool)));
27
+ }
28
+ export function append_lsp_system_prompt(system_prompt) {
29
+ return system_prompt + LSP_SYSTEM_PROMPT;
30
+ }
31
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IACrC,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;IACjB,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;qLAYoJ,CAAC;AAEtL,MAAM,UAAU,wBAAwB,CACvC,KAAyD;IAEzD,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,EAAE,aAAa,CAAC;IAChE,OAAO,CACN,CAAC,cAAc;QACf,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,aAAqB;IAErB,OAAO,aAAa,GAAG,iBAAiB,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { ExtensionContext } from '@mariozechner/pi-coding-agent';
2
+ import { type LspClientOptions, type LspDiagnostic, type LspDocumentSymbol, type LspHover, type LspLocation, type LspPosition } from './client.js';
3
+ import { type LspToolErrorDetails } from './format.js';
4
+ export interface LspClientLike {
5
+ start(): Promise<void>;
6
+ stop(): Promise<void>;
7
+ is_ready(): boolean;
8
+ ensure_document_open(uri: string, text: string): Promise<void>;
9
+ hover(uri: string, position: LspPosition): Promise<LspHover | null>;
10
+ definition(uri: string, position: LspPosition): Promise<LspLocation[]>;
11
+ references(uri: string, position: LspPosition, include_declaration: boolean): Promise<LspLocation[]>;
12
+ document_symbols(uri: string): Promise<LspDocumentSymbol[]>;
13
+ wait_for_diagnostics(uri: string, timeout_ms?: number): Promise<LspDiagnostic[]>;
14
+ }
15
+ export interface ServerState {
16
+ client: LspClientLike;
17
+ language: string;
18
+ workspace_root: string;
19
+ root_uri: string;
20
+ command: string;
21
+ install_hint?: string;
22
+ }
23
+ export interface FileState {
24
+ abs: string;
25
+ uri: string;
26
+ state: ServerState;
27
+ }
28
+ export type ResolveFileStateResult = {
29
+ ok: true;
30
+ result: FileState;
31
+ } | {
32
+ ok: false;
33
+ error: LspToolErrorDetails;
34
+ };
35
+ export interface CreateLspServerManagerOptions {
36
+ create_client?: (options: LspClientOptions) => LspClientLike;
37
+ read_file?: (path: string) => Promise<string>;
38
+ cwd?: () => string;
39
+ }
40
+ export declare class LspServerManager {
41
+ #private;
42
+ readonly cwd: string;
43
+ readonly clients_by_server: Map<string, ServerState>;
44
+ readonly failed_servers: Map<string, LspToolErrorDetails>;
45
+ constructor(options?: CreateLspServerManagerOptions);
46
+ resolve_abs(file: string): string;
47
+ clear_language_state(language?: string): Promise<void>;
48
+ resolve_file_state(file: string, ctx?: ExtensionContext): Promise<ResolveFileStateResult>;
49
+ }
@@ -0,0 +1,205 @@
1
+ import { resolve_project_trust } from '@spences10/pi-project-trust';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { isAbsolute, resolve } from 'node:path';
4
+ import { file_path_to_uri, LspClient, } from './client.js';
5
+ import { LspToolError, to_lsp_tool_error, } from './format.js';
6
+ import { detect_language, find_workspace_root, get_server_config, language_id_for_file, } from './servers.js';
7
+ import { create_lsp_binary_trust_subject, default_lsp_trust_store_path, is_lsp_binary_trusted, } from './trust.js';
8
+ const LSP_PROJECT_BINARY_ENV = 'MY_PI_LSP_PROJECT_BINARY';
9
+ class LspStartupCancelledError extends Error {
10
+ constructor(language, workspace_root) {
11
+ super(`Startup cancelled for ${language} LSP in ${workspace_root}`);
12
+ this.name = 'LspStartupCancelledError';
13
+ }
14
+ }
15
+ async function should_use_project_lsp_binary(server_config, ctx) {
16
+ if (!server_config.is_project_local)
17
+ return true;
18
+ if (is_lsp_binary_trusted(server_config.command))
19
+ return true;
20
+ const subject = {
21
+ ...create_lsp_binary_trust_subject(server_config.command),
22
+ prompt_title: 'Project-local language server binaries can execute code.\nTrust this LSP binary?',
23
+ summary_lines: [
24
+ `Language: ${server_config.language}`,
25
+ `Binary: ${server_config.command}`,
26
+ ],
27
+ headless_warning: `Skipping untrusted project-local LSP binary: ${server_config.command}. Set ${LSP_PROJECT_BINARY_ENV}=allow to enable it for this run.`,
28
+ };
29
+ const decision = await resolve_project_trust(subject, {
30
+ env: process.env,
31
+ has_ui: ctx?.hasUI,
32
+ select: ctx?.hasUI
33
+ ? async (message, choices) => (await ctx.ui.select(message, choices)) ?? ''
34
+ : undefined,
35
+ warn: console.warn,
36
+ trust_store_path: default_lsp_trust_store_path(),
37
+ });
38
+ return (decision.action === 'allow-once' ||
39
+ decision.action === 'trust-persisted');
40
+ }
41
+ export class LspServerManager {
42
+ cwd;
43
+ clients_by_server = new Map();
44
+ failed_servers = new Map();
45
+ #create_client;
46
+ #read_file;
47
+ #starting_servers = new Map();
48
+ constructor(options = {}) {
49
+ this.cwd = options.cwd?.() ?? process.cwd();
50
+ this.#create_client =
51
+ options.create_client ??
52
+ ((client_options) => new LspClient(client_options));
53
+ this.#read_file =
54
+ options.read_file ??
55
+ ((path) => readFile(path, 'utf-8'));
56
+ }
57
+ resolve_abs(file) {
58
+ return isAbsolute(file) ? file : resolve(this.cwd, file);
59
+ }
60
+ async clear_language_state(language) {
61
+ const states = language
62
+ ? Array.from(this.clients_by_server.entries()).filter(([, state]) => state.language === language)
63
+ : Array.from(this.clients_by_server.entries());
64
+ const starting = language
65
+ ? Array.from(this.#starting_servers.entries()).filter(([key]) => key.startsWith(`${language}\u0000`))
66
+ : Array.from(this.#starting_servers.entries());
67
+ for (const [key, startup] of starting) {
68
+ startup.cancelled = true;
69
+ this.#starting_servers.delete(key);
70
+ }
71
+ await Promise.allSettled(states.map(([, state]) => state.client.stop()));
72
+ for (const [key] of states) {
73
+ this.clients_by_server.delete(key);
74
+ }
75
+ if (!language) {
76
+ this.failed_servers.clear();
77
+ return;
78
+ }
79
+ for (const [key, failure] of this.failed_servers.entries()) {
80
+ if (failure.language === language) {
81
+ this.failed_servers.delete(key);
82
+ }
83
+ }
84
+ }
85
+ async resolve_file_state(file, ctx) {
86
+ const abs = this.resolve_abs(file);
87
+ try {
88
+ const result = await this.#get_file_state(abs, ctx);
89
+ if (!result) {
90
+ return {
91
+ ok: false,
92
+ error: {
93
+ kind: 'unsupported_language',
94
+ file: abs,
95
+ message: `No language server configured for ${abs}`,
96
+ },
97
+ };
98
+ }
99
+ return { ok: true, result };
100
+ }
101
+ catch (error) {
102
+ if (error instanceof LspToolError) {
103
+ return { ok: false, error: error.details };
104
+ }
105
+ return {
106
+ ok: false,
107
+ error: {
108
+ kind: 'tool_execution_failed',
109
+ file: abs,
110
+ message: error instanceof Error ? error.message : String(error),
111
+ },
112
+ };
113
+ }
114
+ }
115
+ async #get_file_state(file, ctx) {
116
+ const abs = this.resolve_abs(file);
117
+ const state = await this.#get_or_start_client(abs, ctx);
118
+ if (!state)
119
+ return undefined;
120
+ const uri = await this.#open_file(state, abs);
121
+ return { abs, uri, state };
122
+ }
123
+ async #get_or_start_client(file_path, ctx) {
124
+ const language = detect_language(file_path);
125
+ if (!language)
126
+ return undefined;
127
+ const workspace_root = find_workspace_root(file_path, this.cwd);
128
+ const key = `${language}\u0000${workspace_root}`;
129
+ const existing = this.clients_by_server.get(key);
130
+ if (existing)
131
+ return existing;
132
+ const failed = this.failed_servers.get(key);
133
+ if (failed) {
134
+ throw new LspToolError(failed);
135
+ }
136
+ const in_flight = this.#starting_servers.get(key);
137
+ if (in_flight)
138
+ return in_flight.promise;
139
+ let server_config = get_server_config(language, workspace_root);
140
+ if (!server_config)
141
+ return undefined;
142
+ if (server_config.is_project_local &&
143
+ !(await should_use_project_lsp_binary(server_config, ctx))) {
144
+ server_config = get_server_config(language, '/');
145
+ if (!server_config)
146
+ return undefined;
147
+ }
148
+ const root_uri = file_path_to_uri(workspace_root);
149
+ const startup = {
150
+ cancelled: false,
151
+ promise: Promise.resolve(undefined),
152
+ };
153
+ const start_promise = (async () => {
154
+ const client = this.#create_client({
155
+ command: server_config.command,
156
+ args: server_config.args,
157
+ root_uri,
158
+ language_id_for_uri: (uri) => language_id_for_file(uri),
159
+ });
160
+ try {
161
+ await client.start();
162
+ }
163
+ catch (error) {
164
+ if (startup.cancelled) {
165
+ throw new LspStartupCancelledError(language, workspace_root);
166
+ }
167
+ const failure = to_lsp_tool_error(file_path, language, workspace_root, server_config.command, server_config.install_hint, error);
168
+ this.failed_servers.set(key, failure);
169
+ throw new LspToolError(failure);
170
+ }
171
+ if (startup.cancelled) {
172
+ await Promise.allSettled([client.stop()]);
173
+ throw new LspStartupCancelledError(language, workspace_root);
174
+ }
175
+ const state = {
176
+ client,
177
+ language,
178
+ workspace_root,
179
+ root_uri,
180
+ command: server_config.command,
181
+ install_hint: server_config.install_hint,
182
+ };
183
+ this.clients_by_server.set(key, state);
184
+ this.failed_servers.delete(key);
185
+ return state;
186
+ })();
187
+ startup.promise = start_promise;
188
+ this.#starting_servers.set(key, startup);
189
+ try {
190
+ return await start_promise;
191
+ }
192
+ finally {
193
+ if (this.#starting_servers.get(key) === startup) {
194
+ this.#starting_servers.delete(key);
195
+ }
196
+ }
197
+ }
198
+ async #open_file(state, abs_path) {
199
+ const text = await this.#read_file(abs_path);
200
+ const uri = file_path_to_uri(abs_path);
201
+ await state.client.ensure_document_open(uri, text);
202
+ return uri;
203
+ }
204
+ }
205
+ //# sourceMappingURL=server-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ExtensionAPI } from '@mariozechner/pi-coding-agent';
2
+ import { LspServerManager } from './server-manager.js';
3
+ export declare function register_lsp_tools(pi: ExtensionAPI, manager: LspServerManager): void;
package/dist/tools.js ADDED
@@ -0,0 +1,236 @@
1
+ import { defineTool, } from '@mariozechner/pi-coding-agent';
2
+ import { Type } from 'typebox';
3
+ import { find_symbol_matches, format_diagnostics, format_document_symbols, format_hover, format_locations, format_symbol_matches, format_tool_error, SYMBOL_KIND_NAMES, SYMBOL_KIND_SCHEMA, to_lsp_tool_error, } from './format.js';
4
+ const DIAGNOSTICS_MANY_CONCURRENCY = 8;
5
+ function make_tool_result(text, details = {}) {
6
+ return {
7
+ content: [{ type: 'text', text }],
8
+ details,
9
+ };
10
+ }
11
+ function make_tool_error(details) {
12
+ return make_tool_result(format_tool_error(details), {
13
+ ok: false,
14
+ error: details,
15
+ });
16
+ }
17
+ async function map_with_concurrency(items, concurrency, mapper) {
18
+ const results = [];
19
+ let next_index = 0;
20
+ const worker_count = Math.min(concurrency, items.length);
21
+ await Promise.all(Array.from({ length: worker_count }, async () => {
22
+ while (true) {
23
+ const index = next_index;
24
+ next_index += 1;
25
+ if (index >= items.length)
26
+ return;
27
+ results[index] = await mapper(items[index], index);
28
+ }
29
+ }));
30
+ return results;
31
+ }
32
+ async function with_file_state(manager, file, ctx, run) {
33
+ const resolved = await manager.resolve_file_state(file, ctx);
34
+ if (!resolved.ok) {
35
+ return make_tool_error(resolved.error);
36
+ }
37
+ const { result } = resolved;
38
+ try {
39
+ const text = await run(result);
40
+ return make_tool_result(text, {
41
+ ok: true,
42
+ language: result.state.language,
43
+ command: result.state.command,
44
+ workspace_root: result.state.workspace_root,
45
+ });
46
+ }
47
+ catch (error) {
48
+ return make_tool_error(to_lsp_tool_error(result.abs, result.state.language, result.state.workspace_root, result.state.command, result.state.install_hint, error));
49
+ }
50
+ }
51
+ export function register_lsp_tools(pi, manager) {
52
+ pi.registerTool(defineTool({
53
+ name: 'lsp_diagnostics',
54
+ label: 'LSP: diagnostics',
55
+ description: 'Get language server diagnostics (errors, warnings, hints) for a file. Uses the project language server and returns empty output if the file is clean.',
56
+ parameters: Type.Object({
57
+ file: Type.String({
58
+ description: 'Path to the file to check (relative to cwd or absolute).',
59
+ }),
60
+ wait_ms: Type.Optional(Type.Number({
61
+ description: 'Max ms to wait for diagnostics after opening the file. Default 1500.',
62
+ })),
63
+ }),
64
+ execute: async (_id, params, _signal, _on_update, ctx) => with_file_state(manager, params.file, ctx, async (result) => {
65
+ const diagnostics = await result.state.client.wait_for_diagnostics(result.uri, params.wait_ms ?? 1500);
66
+ return format_diagnostics(result.abs, diagnostics);
67
+ }),
68
+ }));
69
+ pi.registerTool(defineTool({
70
+ name: 'lsp_diagnostics_many',
71
+ label: 'LSP: diagnostics many',
72
+ description: 'Get language server diagnostics for multiple files in one call. Useful for changed-file sweeps, package-level checks, and summarization.',
73
+ parameters: Type.Object({
74
+ files: Type.Array(Type.String(), {
75
+ minItems: 1,
76
+ maxItems: 100,
77
+ description: 'Files to check (relative to cwd or absolute).',
78
+ }),
79
+ wait_ms: Type.Optional(Type.Number({
80
+ description: 'Max ms to wait for diagnostics after opening each file. Default 1500.',
81
+ })),
82
+ }),
83
+ execute: async (_id, params, _signal, _on_update, ctx) => {
84
+ const wait_ms = params.wait_ms ?? 1500;
85
+ const lines_with_stats = await map_with_concurrency(params.files, DIAGNOSTICS_MANY_CONCURRENCY, async (file) => {
86
+ const resolved = await manager.resolve_file_state(file, ctx);
87
+ if (!resolved.ok) {
88
+ return {
89
+ line: format_tool_error(resolved.error),
90
+ diagnostics: 0,
91
+ error: true,
92
+ };
93
+ }
94
+ try {
95
+ const diagnostics = await resolved.result.state.client.wait_for_diagnostics(resolved.result.uri, wait_ms);
96
+ return {
97
+ line: format_diagnostics(resolved.result.abs, diagnostics),
98
+ diagnostics: diagnostics.length,
99
+ error: false,
100
+ };
101
+ }
102
+ catch (error) {
103
+ return {
104
+ line: format_tool_error(to_lsp_tool_error(resolved.result.abs, resolved.result.state.language, resolved.result.state.workspace_root, resolved.result.state.command, resolved.result.state.install_hint, error)),
105
+ diagnostics: 0,
106
+ error: true,
107
+ };
108
+ }
109
+ });
110
+ let diagnostic_count = 0;
111
+ let clean_count = 0;
112
+ let error_count = 0;
113
+ const lines = [];
114
+ for (const entry of lines_with_stats) {
115
+ lines.push(entry.line);
116
+ if (entry.error) {
117
+ error_count += 1;
118
+ }
119
+ else {
120
+ diagnostic_count += entry.diagnostics;
121
+ if (entry.diagnostics === 0)
122
+ clean_count += 1;
123
+ }
124
+ }
125
+ return make_tool_result([
126
+ `Checked ${params.files.length} file(s): ${diagnostic_count} diagnostic(s), ${clean_count} clean, ${error_count} error(s)`,
127
+ ...lines,
128
+ ].join('\n\n'), {
129
+ ok: error_count === 0,
130
+ checked: params.files.length,
131
+ diagnostic_count,
132
+ clean_count,
133
+ error_count,
134
+ });
135
+ },
136
+ }));
137
+ pi.registerTool(defineTool({
138
+ name: 'lsp_find_symbol',
139
+ label: 'LSP: find symbol',
140
+ description: 'Find symbols in a file by name or detail text using document symbols. Supports exact matching, kind filters, and top-level-only mode.',
141
+ parameters: Type.Object({
142
+ file: Type.String(),
143
+ query: Type.String({
144
+ description: 'Substring to match against symbol names/details.',
145
+ }),
146
+ max_results: Type.Optional(Type.Number({
147
+ description: 'Max number of matches to return. Default 20.',
148
+ })),
149
+ top_level_only: Type.Optional(Type.Boolean({
150
+ description: 'Only match top-level symbols. Default false.',
151
+ })),
152
+ exact_match: Type.Optional(Type.Boolean({
153
+ description: 'Match whole symbol names/details exactly instead of substring matching. Default false.',
154
+ })),
155
+ kinds: Type.Optional(Type.Array(SYMBOL_KIND_SCHEMA, {
156
+ minItems: 1,
157
+ maxItems: SYMBOL_KIND_NAMES.length,
158
+ description: 'Restrict matches to these symbol kinds.',
159
+ })),
160
+ }),
161
+ execute: async (_id, params, _signal, _on_update, ctx) => with_file_state(manager, params.file, ctx, async (result) => {
162
+ const symbols = await result.state.client.document_symbols(result.uri);
163
+ return format_symbol_matches(result.abs, params.query, find_symbol_matches(symbols, params.query, {
164
+ max_results: params.max_results ?? 20,
165
+ top_level_only: params.top_level_only ?? false,
166
+ exact_match: params.exact_match ?? false,
167
+ kinds: new Set(params.kinds ?? []),
168
+ }));
169
+ }),
170
+ }));
171
+ pi.registerTool(defineTool({
172
+ name: 'lsp_hover',
173
+ label: 'LSP: hover',
174
+ description: 'Get hover info (types, docs) at a position in a file. Positions are zero-based.',
175
+ parameters: Type.Object({
176
+ file: Type.String(),
177
+ line: Type.Number(),
178
+ character: Type.Number(),
179
+ }),
180
+ execute: async (_id, params, _signal, _on_update, ctx) => with_file_state(manager, params.file, ctx, async (result) => {
181
+ const hover = await result.state.client.hover(result.uri, {
182
+ line: params.line,
183
+ character: params.character,
184
+ });
185
+ return format_hover(hover);
186
+ }),
187
+ }));
188
+ pi.registerTool(defineTool({
189
+ name: 'lsp_definition',
190
+ label: 'LSP: go to definition',
191
+ description: 'Find definition locations for the symbol at a position. Positions are zero-based.',
192
+ parameters: Type.Object({
193
+ file: Type.String(),
194
+ line: Type.Number(),
195
+ character: Type.Number(),
196
+ }),
197
+ execute: async (_id, params, _signal, _on_update, ctx) => with_file_state(manager, params.file, ctx, async (result) => {
198
+ const locations = await result.state.client.definition(result.uri, {
199
+ line: params.line,
200
+ character: params.character,
201
+ });
202
+ return format_locations(locations, 'No definition found.');
203
+ }),
204
+ }));
205
+ pi.registerTool(defineTool({
206
+ name: 'lsp_references',
207
+ label: 'LSP: find references',
208
+ description: 'Find references to the symbol at a position. Positions are zero-based.',
209
+ parameters: Type.Object({
210
+ file: Type.String(),
211
+ line: Type.Number(),
212
+ character: Type.Number(),
213
+ include_declaration: Type.Optional(Type.Boolean()),
214
+ }),
215
+ execute: async (_id, params, _signal, _on_update, ctx) => with_file_state(manager, params.file, ctx, async (result) => {
216
+ const locations = await result.state.client.references(result.uri, {
217
+ line: params.line,
218
+ character: params.character,
219
+ }, params.include_declaration ?? true);
220
+ return format_locations(locations, 'No references found.');
221
+ }),
222
+ }));
223
+ pi.registerTool(defineTool({
224
+ name: 'lsp_document_symbols',
225
+ label: 'LSP: document symbols',
226
+ description: 'List symbols in a file (functions, classes, variables) using the language server.',
227
+ parameters: Type.Object({
228
+ file: Type.String(),
229
+ }),
230
+ execute: async (_id, params, _signal, _on_update, ctx) => with_file_state(manager, params.file, ctx, async (result) => {
231
+ const symbols = await result.state.client.document_symbols(result.uri);
232
+ return format_document_symbols(result.abs, symbols);
233
+ }),
234
+ }));
235
+ }
236
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spences10/pi-lsp",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "Pi extension that exposes Language Server Protocol diagnostics, hover, definition, and reference tools",
5
5
  "keywords": [
6
6
  "language-server",
@@ -34,9 +34,9 @@
34
34
  "dependencies": {
35
35
  "@mariozechner/pi-coding-agent": "^0.72.1",
36
36
  "typebox": "^1.1.37",
37
+ "@spences10/pi-tui-modal": "0.0.5",
37
38
  "@spences10/pi-child-env": "0.1.3",
38
- "@spences10/pi-project-trust": "0.0.5",
39
- "@spences10/pi-tui-modal": "0.0.5"
39
+ "@spences10/pi-project-trust": "0.0.5"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^25.6.0",