@mossbear/eval-core 0.1.0-alpha.100
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/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/adapter.d.ts +31 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +10 -0
- package/dist/adapter.js.map +1 -0
- package/dist/credential-patterns.d.ts +9 -0
- package/dist/credential-patterns.d.ts.map +1 -0
- package/dist/credential-patterns.js +9 -0
- package/dist/credential-patterns.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/redact-prose.d.ts +77 -0
- package/dist/redact-prose.d.ts.map +1 -0
- package/dist/redact-prose.js +339 -0
- package/dist/redact-prose.js.map +1 -0
- package/dist/redact-prose.test.d.ts +2 -0
- package/dist/redact-prose.test.d.ts.map +1 -0
- package/dist/redact-prose.test.js +429 -0
- package/dist/redact-prose.test.js.map +1 -0
- package/dist/redaction.d.ts +23 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +23 -0
- package/dist/redaction.js.map +1 -0
- package/dist/sanitize-command.d.ts +21 -0
- package/dist/sanitize-command.d.ts.map +1 -0
- package/dist/sanitize-command.js +908 -0
- package/dist/sanitize-command.js.map +1 -0
- package/dist/sanitize-command.test.d.ts +2 -0
- package/dist/sanitize-command.test.d.ts.map +1 -0
- package/dist/sanitize-command.test.js +867 -0
- package/dist/sanitize-command.test.js.map +1 -0
- package/dist/steering-classification.d.ts +19 -0
- package/dist/steering-classification.d.ts.map +1 -0
- package/dist/steering-classification.js +55 -0
- package/dist/steering-classification.js.map +1 -0
- package/dist/strip-code-blocks.d.ts +68 -0
- package/dist/strip-code-blocks.d.ts.map +1 -0
- package/dist/strip-code-blocks.js +280 -0
- package/dist/strip-code-blocks.js.map +1 -0
- package/dist/strip-code-blocks.test.d.ts +2 -0
- package/dist/strip-code-blocks.test.d.ts.map +1 -0
- package/dist/strip-code-blocks.test.js +250 -0
- package/dist/strip-code-blocks.test.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize-command.test.js","sourceRoot":"","sources":["../src/sanitize-command.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC7E,KAAK,MAAM,KAAK,IAAI;gBAClB,oBAAoB;gBACpB,sBAAsB;gBACtB,sBAAsB;aACvB,EAAE,CAAC;gBACF,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,IAAI,KAAK,YAAY,CAAC,CAAA;gBACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;QACD,MAAM,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC/E,MAAM,CAAC,eAAe,CAAC,iCAAiC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAChF,OAAO,CACR,CAAA;QACD,MAAM,CAAC,eAAe,CAAC,iCAAiC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAChF,OAAO,CACR,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG;YACX,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,gBAAgB;YAC/B,OAAO,EAAE,OAAO;SACjB,CAAA;QACD,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAA;QACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAC/C,MAAM,CACJ,eAAe,CAAC,MAAM,CAAC,GAAG,CAAA,8CAA8C,CAAC,CAC1E,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,IAAI,GAAG;YACX,QAAQ,EAAE,kBAAkB;YAC5B,aAAa,EAAE,0BAA0B;YACzC,MAAM,EAAE,CAAC,eAAe,CAAC;YACzB,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YAC9C,OAAO,EAAE,OAAO;SACjB,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAA;YACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,KAAK,MAAM,OAAO,IAAI;YACpB,MAAM,CAAC,GAAG,CAAA,gDAAgD;YAC1D,MAAM,CAAC,GAAG,CAAA,gDAAgD;YAC1D,MAAM,CAAC,GAAG,CAAA,iDAAiD;YAC3D,qDAAqD;YACrD,MAAM,CAAC,GAAG,CAAA,6DAA6D;YACvE,MAAM,CAAC,GAAG,CAAA,4CAA4C;SACvD,EAAE,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,MAAM,CAAC,eAAe,CAAC,iCAAiC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAChF,OAAO,CACR,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YACvC,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,eAAe,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,KAAK,MAAM,OAAO,IAAI;YACpB,kCAAkC;YAClC,mCAAmC;YACnC,cAAc;SACf,EAAE,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;SACzD,CAAC,CAAA;QACF,KAAK,MAAM,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAA;YACrD,MAAM,CAAC,eAAe,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACvE,MAAM,KAAK,GAAG,WAAW,OAAO,WAAW,CAAA;YAC3C,MAAM,CAAC,eAAe,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CACtD,4BAA4B,CAC7B,CAAA;YACD,MAAM,CAAC,eAAe,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACpF,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAA;QAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC7D,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,KAAK,MAAM,OAAO,IAAI;YACpB,mDAAmD;YACnD,YAAY,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,GAAG;YAChF,6BAA6B;SAC9B,EAAE,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,KAAK,MAAM,OAAO,IAAI;YACpB,MAAM,CAAC,GAAG,CAAA,2CAA2C;YACrD,MAAM,CAAC,GAAG,CAAA,+BAA+B;SAC1C,EAAE,CAAC;YACF,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CACxD,4BAA4B,CAC7B,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,6DAA6D;QAC7D,wEAAwE;QACxE,MAAM,CACJ,eAAe,CAAC,yDAAyD,CAAC,CAC3E,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QAC1C,MAAM,CAAC,eAAe,CAAC,iDAAiD,CAAC,CAAC,CAAC,IAAI,CAC7E,kCAAkC,CACnC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,4EAA4E;QAC5E,6EAA6E;QAC7E,gCAAgC;QAChC,MAAM,CAAC,eAAe,CAAC,sDAAsD,CAAC,CAAC,CAAC,IAAI,CAClF,kCAAkC,CACnC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAChF,MAAM,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,GAAG,GAAG,eAAe,CACzB,+EAA+E,CAChF,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAG,eAAe,CAAC,yDAAyD,CAAC,CAAA;QACtF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,kDAAkD,CAAC,CAAA;QAC/E,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,eAAe,CAAC,gDAAgD,CAAC,CAAA;QAC7E,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAA;QACzD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAE/B,MAAM,MAAM,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,GAAG,GAAG,eAAe,CACzB,qFAAqF,CACtF,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,KAAK,MAAM,MAAM,IAAI;YACnB,0CAA0C,EAAE,yCAAyC;YACrF,iCAAiC,EAAE,yCAAyC;YAC5E,6BAA6B,EAAE,yCAAyC;YACxE,sBAAsB,EAAE,yCAAyC;SAClE,EAAE,CAAC;YACF,MAAM,GAAG,GAAG,eAAe,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;YACtD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAG,eAAe,CACzB,mEAAmE,CAAC,0DAA0D;SAC/H,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QACtC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CACJ,eAAe,CACb,kFAAkF,CACnF,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QACjC,MAAM,CACJ,eAAe,CAAC,uDAAuD,CAAC,CACzE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;YACxE,MAAM,CACJ,eAAe,CACb,QAAQ,IAAI,sDAAsD,CACnE,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,KAAK,MAAM,KAAK,IAAI;YAClB,yCAAyC;YACzC,2CAA2C;SAC5C;YACC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,KAAK,MAAM,KAAK,IAAI;YAClB,6CAA6C;YAC7C,iEAAiE;SAClE,EAAE,CAAC;YACF,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,eAAe,CAC5B,yDAAyD,CAC1D,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,IAAI,GAAG,eAAe,CAC1B,sFAAsF,CACvF,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC;QACN,4BAA4B;QAC5B,cAAc;QACd,4BAA4B;QAC5B,YAAY;QACZ,6BAA6B;KAC9B,CAAC,CAAC,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,eAAe,CAC1B,+DAA+D,UAAU,wBAAwB,CAClG,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CACjD,6BAA6B,EAC7B,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,MAAM,GAAG,eAAe,CAC5B,QAAQ,IAAI,8CAA8C,CAC3D,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,CACF,CAAA;IACD,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,eAAe,CAAC,+CAA+C,CAAC,CAAA;QAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,EAAE,CAAC,IAAI,CAAC;QACN,yFAAyF;QACzF,kGAAkG;QAClG,uFAAuF;QACvF,wDAAwD;QACxD,kFAAkF;QAClF,sFAAsF;QACtF,qFAAqF;QACrF,oGAAoG;KACrG,CAAC,CAAC,mEAAmE,EAAE,CAAC,OAAO,EAAE,EAAE;QAClF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC;QACN,kFAAkF;QAClF,4EAA4E;QAC5E,2FAA2F;QAC3F,2EAA2E;QAC3E,iFAAiF;QACjF,2EAA2E;QAC3E,gFAAgF;QAChF,kFAAkF;KACnF,CAAC,CAAC,4DAA4D,EAAE,CAAC,OAAO,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC;QACN,2DAA2D;QAC3D,+DAA+D;KAChE,CAAC,CAAC,iDAAiD,EAAE,CAAC,OAAO,EAAE,EAAE;QAChE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC;QACN,8EAA8E;QAC9E,qFAAqF;QACrF,mGAAmG;QACnG,iFAAiF;QACjF,iFAAiF;QACjF,4EAA4E;QAC5E,+EAA+E;QAC/E,8EAA8E;QAC9E,gFAAgF;QAChF,MAAM,CAAC,GAAG,CAAA,uFAAuF;QACjG,wFAAwF;QACxF,iFAAiF;QACjF,MAAM,CAAC,GAAG,CAAA,uFAAuF;QACjG,MAAM,CAAC,GAAG,CAAA,oFAAoF;QAC9F,MAAM,CAAC,GAAG,CAAA,oGAAoG;KAC/G,CAAC,CAAC,oDAAoD,EAAE,CAAC,OAAO,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC;QACN,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,gFAAgF;QAChF,mFAAmF;QACnF,qFAAqF;QACrF,MAAM,CAAC,GAAG,CAAA,wFAAwF;QAClG,iHAAiH;QACjH,2EAA2E;KAC5E,CAAC,CAAC,+CAA+C,EAAE,CAAC,OAAO,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,IAAI,OAAO,GAAG,sEAAsE,CAAA;QACpF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC;YACxC,OAAO,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAA;QAChD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAClE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAC/D,iDAAiD,EACjD,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,uCAAuC,CAAC,CACrE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC,CACF,CAAA;IACD,EAAE,CAAC,IAAI,CAAC;QACN,gDAAgD;QAChD,qDAAqD;QACrD,mDAAmD;QACnD,kDAAkD;QAClD,0DAA0D;KAC3D,CAAC,CAAC,qDAAqD,EAAE,CAAC,OAAO,EAAE,EAAE;QACpE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,KAAK,MAAM,OAAO,IAAI;YACpB,4DAA4D;YAC5D,uCAAuC;YACvC,sCAAsC;SACvC;YACC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,GAAG,EAAE,yCAAyC,CAAC;QAChD,CAAC,GAAG,EAAE,yBAAyB,CAAC;QAChC,CAAC,GAAG,EAAE,yBAAyB,CAAC;QAChC,CAAC,GAAG,EAAE,wBAAwB,CAAC;QAC/B,CAAC,GAAG,EAAE,+BAA+B,CAAC;QACtC,CAAC,GAAG,EAAE,2BAA2B,CAAC;QAClC,CAAC,GAAG,EAAE,yBAAyB,CAAC;QAChC,CAAC,GAAG,EAAE,yBAAyB,CAAC;KACjC,CAAC,CAAC,yCAAyC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5D,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,eAAe,CAC5B,SAAS,MAAM,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,wBAAwB,CAChE,CAAA;gBACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC,CAAA;gBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAA;gBAChD,IAAI,IAAI,KAAK,GAAG;oBAAE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,OAAO,GACX,wEAAwE,CAAA;QAC1E,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,+CAA+C,CAAA;QAC7D,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CACrC,uCAAuC,EACvC,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,oDAAoD,CAAC,CAClF,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC,CACF,CAAA;IACD,EAAE,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAC/C,8CAA8C,EAC9C,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,qCAAqC,CAAC,CACnE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC,CACF,CAAA;IACD,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAC3D,wCAAwC,EACxC,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CACJ,eAAe,CACb,QAAQ,IAAI,sDAAsD,CACnE,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC,CACF,CAAA;IACD,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,CACjE,0CAA0C,EAC1C,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CACJ,eAAe,CACb,QAAQ,IAAI,yDAAyD,CACtE,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1B,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,iDAAiD,CAAC,CAC/E,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC,CACF,CAAA;IACD,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAC7E,uCAAuC,EACvC,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,CACJ,eAAe,CACb,QAAQ,IAAI,gEAAgE,CAC7E,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1B,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,oDAAoD,CAAC,CAClF,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1B,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,qCAAqC,CAAC,CACnE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC7B,CAAC,CACF,CAAA;IACD,EAAE,CAAC,IAAI,CAAC;QACN,cAAc;QACd,cAAc;QACd,MAAM,CAAC,GAAG,CAAA,aAAa;QACvB,+BAA+B;KAChC,CAAC,CAAC,2CAA2C,EAAE,CAAC,IAAI,EAAE,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,QAAQ,IAAI,EAAE;YAChB,CAAC,CAAC,QAAQ,IAAI,+BAA+B,CAAA;QAC/C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,MAAM,GAAG,eAAe,CAC5B,yEAAyE,CAC1E,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAC3D,2CAA2C,EAC3C,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,MAAM,GAAG,eAAe,CAC5B,QAAQ,IAAI,gEAAgE,CAC7E,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CACJ,eAAe,CAAC,QAAQ,IAAI,sCAAsC,CAAC,CACpE,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC9B,MAAM,CACJ,eAAe,CACb,QAAQ,IAAI,uEAAuE,CACpF,CACF,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC,CACF,CAAA;IACD,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,IAAI,CAAC;YACN,qFAAqF;YACrF,mFAAmF;YACnF,MAAM,CAAC,GAAG,CAAA,oFAAoF;SAC/F,CAAC,CAAC,sDAAsD,EAAE,CAAC,OAAO,EAAE,EAAE;YACrE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QACpF,MAAM,MAAM,GAAG;YACb,yCAAyC;YACzC,2CAA2C;YAC3C,2CAA2C;YAC3C,2CAA2C;SAC5C,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mCAAmC,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACtE,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;oBACzD,MAAM,MAAM,GAAG,eAAe,CAC5B,GAAG,MAAM,GAAG,IAAI,IAAI,KAAK,4BAA4B,CACtD,CAAA;oBACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;oBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;oBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;oBAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAA;gBACvD,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,KAAK,MAAM,OAAO,IAAI;gBACpB,uDAAuD;gBACvD,gEAAgE;gBAChE,wDAAwD;aACzD;gBACC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,KAAK,MAAM,OAAO,IAAI;gBACpB,gDAAgD;gBAChD,uCAAuC;aACxC;gBACC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,EAAE,CAAC,IAAI,CAAC;YACN,mEAAmE;YACnE,yDAAyD;YACzD,4DAA4D;YAC5D,8CAA8C;YAC9C,sDAAsD;YACtD,uDAAuD;YACvD,uDAAuD;YACvD,wDAAwD;YACxD,6DAA6D;YAC7D,+CAA+C;YAC/C,gDAAgD;YAChD,2DAA2D;YAC3D,iEAAiE;YACjE,mDAAmD;YACnD,sDAAsD;YACtD,qDAAqD;YACrD,+CAA+C;YAC/C,kEAAkE;YAClE,MAAM,CAAC,GAAG,CAAA,oDAAoD;YAC9D,sCAAsC;YACtC,oCAAoC;YACpC,8CAA8C;YAC9C,mEAAmE;YACnE,+DAA+D;YAC/D,wDAAwD;SACzD,CAAC,CAAC,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,8CAA8C;YAC9C,+CAA+C;YAC/C,sDAAsD;YACtD,8BAA8B;YAC9B,yBAAyB;YACzB,8CAA8C;YAC9C,4BAA4B;YAC5B,4CAA4C;YAC5C,8BAA8B;YAC9B,0BAA0B;YAC1B,gCAAgC;YAChC,uBAAuB;YACvB,oCAAoC;YACpC,wCAAwC;SACzC,CAAC,CAAC,0DAA0D,EAAE,CAAC,OAAO,EAAE,EAAE;YACzE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACtD,EAAE,CAAC,IAAI,CAAC;YACN,wCAAwC;YACxC,8CAA8C;YAC9C,yCAAyC;YACzC,yCAAyC;YACzC,uCAAuC;YACvC,wCAAwC;YACxC,uCAAuC;YACvC,6BAA6B;YAC7B,sCAAsC;YACtC,8GAA8G;YAC9G,8EAA8E;YAC9E,gDAAgD;YAChD,6CAA6C;YAC7C,yCAAyC;YACzC,yDAAyD;SAC1D,CAAC,CAAC,iCAAiC,EAAE,CAAC,OAAO,EAAE,EAAE;YAChD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,kCAAkC;YAClC,kCAAkC;YAClC,gDAAgD;YAChD,wCAAwC;YACxC,0BAA0B;YAC1B,wBAAwB;YACxB,eAAe;YACf,qBAAqB;YACrB,yBAAyB;SAC1B,CAAC,CAAC,mCAAmC,EAAE,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC9D,EAAE,CAAC,IAAI,CAAC;YACN,sCAAsC;YACtC,+CAA+C;YAC/C,wCAAwC;YACxC,0CAA0C;YAC1C,0CAA0C;YAC1C,+EAA+E;YAC/E,2DAA2D;YAC3D,4DAA4D;YAC5D,0DAA0D;YAC1D,kDAAkD;YAClD,sDAAsD;YACtD,0CAA0C;YAC1C,yCAAyC;YACzC,+BAA+B;YAC/B,wCAAwC;YACxC,yCAAyC;YACzC,2CAA2C;YAC3C,0CAA0C;YAC1C,4CAA4C;YAC5C,6CAA6C;YAC7C,4CAA4C;YAC5C,6CAA6C;YAC7C,+CAA+C;YAC/C,gDAAgD;YAChD,0CAA0C;YAC1C,mCAAmC;YACnC,qCAAqC;YACrC,iCAAiC;YACjC,0CAA0C;YAC1C,+CAA+C;YAC/C,6CAA6C;SAC9C,CAAC,CAAC,iCAAiC,EAAE,CAAC,OAAO,EAAE,EAAE;YAChD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,4EAA4E;QAC5E,+EAA+E;QAC/E,2DAA2D;QAC3D,EAAE,CAAC,IAAI,CAAC;YACN,wBAAwB;YACxB,6BAA6B;YAC7B,4BAA4B;YAC5B,4BAA4B;YAC5B,+BAA+B;SAChC,CAAC,CACA,qEAAqE,EACrE,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YACvD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACxD,CAAC,CACF,CAAA;QAED,EAAE,CAAC,IAAI,CAAC;YACN,mCAAmC;YACnC,mCAAmC;YACnC,oCAAoC;YACpC,iDAAiD;YACjD,yCAAyC;YACzC,4BAA4B;YAC5B,0BAA0B;YAC1B,iBAAiB;YACjB,mBAAmB;YACnB,4BAA4B;YAC5B,4BAA4B;YAC5B,uEAAuE;YACvE,+BAA+B;YAC/B,0BAA0B;YAC1B,8BAA8B;YAC9B,iCAAiC;YACjC,yCAAyC;SAC1C,CAAC,CAAC,mCAAmC,EAAE,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACrD,EAAE,CAAC,IAAI,CAAC;YACN,wEAAwE;YACxE,MAAM,CAAC,GAAG,CAAA,iEAAiE;YAC3E,MAAM,CAAC,GAAG,CAAA,0EAA0E;SACrF,CAAC,CAAC,wCAAwC,EAAE,CAAC,OAAO,EAAE,EAAE;YACvD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,8EAA8E;YAC9E,6EAA6E;YAC7E,+EAA+E;SAChF,CAAC,CAAC,6CAA6C,EAAE,CAAC,OAAO,EAAE,EAAE;YAC5D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,8EAA8E;YAC9E,+EAA+E;SAChF,CAAC,CAAC,sCAAsC,EAAE,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,oEAAoE;YACpE,qEAAqE;YACrE,wEAAwE;YACxE,kEAAkE;SACnE,CAAC,CAAC,8CAA8C,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,gFAAgF;YAChF,0EAA0E;YAC1E,uFAAuF;YACvF,yEAAyE;YACzE,yEAAyE;YACzE,8EAA8E;YAC9E,oFAAoF;YACpF,sFAAsF;YACtF,6EAA6E;YAC7E,yEAAyE;SAC1E,CAAC,CAAC,uCAAuC,EAAE,CAAC,OAAO,EAAE,EAAE;YACtD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CACJ,eAAe,CACb,2FAA2F,CAC5F,CACF,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAG,iEAAiE,CAAA;YACjF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,GAAG,GAAG,kCAAkC,CAAA;YAC9C,MAAM,EAAE,GAAG,kCAAkC,CAAA;YAC7C,MAAM,MAAM,GAAG,eAAe,CAC5B,+BAA+B,GAAG,QAAQ,EAAE,kBAAkB,CAC/D,CAAA;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClF,MAAM,CAAC,eAAe,CAAC,sBAAsB,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAC7D,8BAA8B,CAC/B,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,sCAAsC;YACtC,sCAAsC;YACtC,mDAAmD;YACnD,2DAA2D;YAC3D,oCAAoC;YACpC,yDAAyD;YACzD,0DAA0D;SAC3D,CAAC,CAAC,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE;YACzC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,yDAAyD;YACzD,0BAA0B;YAC1B,mEAAmE;SACpE,CAAC,CAAC,yCAAyC,EAAE,CAAC,OAAO,EAAE,EAAE;YACxD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,IAAI,CAAC;YACN,gHAAgH;YAChH,sFAAsF;YACtF,uGAAuG;YACvG,8FAA8F;SAC/F,CAAC,CAAC,wDAAwD,EAAE,CAAC,OAAO,EAAE,EAAE;YACvE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,sDAAsD;YACtD,sDAAsD;YACtD,wDAAwD;SACzD,CAAC,CAAC,yCAAyC,EAAE,CAAC,OAAO,EAAE,EAAE;YACxD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,+CAA+C;SAChD,CAAC,CAAC,8CAA8C,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC1B,MAAM,CACJ,eAAe,CAAC,0BAA0B,GAAG,yBAAyB,CAAC,CACxE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,gEAAgE;YAChE,sDAAsD;YACtD,mDAAmD;YACnD,+DAA+D;YAC/D,qDAAqD;YACrD,iFAAiF;YACjF,sEAAsE;YACtE,kEAAkE;YAClE,0EAA0E;YAC1E,0CAA0C;SAC3C,CAAC,CAAC,6DAA6D,EAAE,CAAC,OAAO,EAAE,EAAE;YAC5E,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,6BAA6B;YAC7B,sCAAsC;YACtC,8CAA8C;YAC9C,gFAAgF;SACjF,CAAC,CAAC,iEAAiE,EAAE,CAAC,OAAO,EAAE,EAAE;YAChF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,sFAAsF;YACtF,gGAAgG;YAChG,qGAAqG;YACrG,kGAAkG;YAClG,8FAA8F;YAC9F,2FAA2F;YAC3F,kGAAkG;YAClG,wHAAwH;YACxH,iHAAiH;YACjH,2GAA2G;YAC3G,kGAAkG;YAClG,6FAA6F;YAC7F,kGAAkG;SACnG,CAAC,CAAC,uDAAuD,EAAE,CAAC,OAAO,EAAE,EAAE;YACtE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,sFAAsF;YACtF,kDAAkD;YAClD,6CAA6C;YAC7C,mDAAmD;YACnD,2DAA2D;YAC3D,2DAA2D;YAC3D,2EAA2E;YAC3E,sDAAsD;YACtD,mDAAmD;YACnD,8CAA8C;YAC9C,uEAAuE;YACvE,iDAAiD;YACjD,uEAAuE;YACvE,sDAAsD;SACvD,CAAC,CAAC,kDAAkD,EAAE,CAAC,OAAO,EAAE,EAAE;YACjE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,gFAAgF;YAChF,gFAAgF;SACjF,CAAC,CAAC,wCAAwC,EAAE,CAAC,OAAO,EAAE,EAAE;YACvD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACzD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC;YACN,yCAAyC;YACzC,0EAA0E;YAC1E,mDAAmD;YACnD,+CAA+C;YAC/C,2EAA2E;YAC3E,2EAA2E;YAC3E,oEAAoE;YACpE,0EAA0E;YAC1E,2EAA2E;YAC3E,4CAA4C;YAC5C,4CAA4C;SAC7C,CAAC,CAAC,2DAA2D,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1E,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,4EAA4E;YAC5E,sEAAsE;YACtE,qEAAqE;YACrE,+EAA+E;YAC/E,uEAAuE;SACxE,CAAC,CAAC,yDAAyD,EAAE,CAAC,OAAO,EAAE,EAAE;YACxE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,IAAI,CAAC;YACN,8DAA8D;YAC9D,iEAAiE;YACjE,0DAA0D;YAC1D,iFAAiF;YACjF,+EAA+E;SAChF,CAAC,CAAC,iDAAiD,EAAE,CAAC,OAAO,EAAE,EAAE;YAChE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAC5E,kDAAkD,EAClD,CAAC,GAAG,EAAE,EAAE;YACN,KAAK,MAAM,OAAO,IAAI;gBACpB,SAAS,GAAG,yDAAyD;gBACrE,UAAU,GAAG,+DAA+D;aAC7E,EAAE,CAAC;gBACF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBACzD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC,CACF,CAAA;QACD,EAAE,CAAC,IAAI,CAAC;YACN,kFAAkF;YAClF,uFAAuF;YACvF,0FAA0F;SAC3F,CAAC,CAAC,0DAA0D,EAAE,CAAC,OAAO,EAAE,EAAE;YACzE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const STEERING_LABELS: readonly ["correction", "steering", "new request", "acknowledgement", "insufficient evidence"];
|
|
2
|
+
export type SteeringLabel = (typeof STEERING_LABELS)[number];
|
|
3
|
+
/** Stored with each prediction so a baseline change is explicit in history. */
|
|
4
|
+
export declare const STEERING_CLASSIFIER_VERSION = "v1";
|
|
5
|
+
/** Conservative, deterministic prediction for one already-redacted user turn. */
|
|
6
|
+
export declare function classifySteeringTurnV1(text: string): SteeringLabel;
|
|
7
|
+
/** The active baseline classifier. Persisted v1 predictions remain immutable. */
|
|
8
|
+
export declare const classifySteeringTurn: typeof classifySteeringTurnV1;
|
|
9
|
+
export type SteeringBaselineScore = {
|
|
10
|
+
total: number;
|
|
11
|
+
classified: number;
|
|
12
|
+
coverage: number;
|
|
13
|
+
counts: Record<SteeringLabel, number>;
|
|
14
|
+
};
|
|
15
|
+
/** Score label distribution and coverage without writing per-turn predictions. */
|
|
16
|
+
export declare function scoreSteeringBaseline(turns: readonly {
|
|
17
|
+
text: string;
|
|
18
|
+
}[]): SteeringBaselineScore;
|
|
19
|
+
//# sourceMappingURL=steering-classification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steering-classification.d.ts","sourceRoot":"","sources":["../src/steering-classification.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,gGAMlB,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,OAAO,CAAA;AAW/C,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAYlE;AAED,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,+BAAyB,CAAA;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;CACtC,CAAA;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GACjC,qBAAqB,CAkBvB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export const STEERING_LABELS = [
|
|
2
|
+
'correction',
|
|
3
|
+
'steering',
|
|
4
|
+
'new request',
|
|
5
|
+
'acknowledgement',
|
|
6
|
+
'insufficient evidence',
|
|
7
|
+
];
|
|
8
|
+
/** Stored with each prediction so a baseline change is explicit in history. */
|
|
9
|
+
export const STEERING_CLASSIFIER_VERSION = 'v1';
|
|
10
|
+
const ACKNOWLEDGEMENT = /^(?:ok(?:ay)?|yes|yep|got it|thanks|thank you|great|perfect|looks good|lgtm|sounds good)[.! \t\r\n]*$/i;
|
|
11
|
+
const CORRECTION = /\b(?:that's wrong|that is wrong|not what i (?:asked|meant)|you misunderstood|you missed|you forgot|i meant|i said|i asked for|you did(?:n't| not)|undo that|revert that|wrong file|wrong branch)\b/i;
|
|
12
|
+
const STEERING = /\b(?:instead|also|make sure|don't|do not|remember to|keep it|keep the|focus on|before you|after that|one more thing|please preserve)\b/i;
|
|
13
|
+
const REQUEST = /\b(?:can you|could you|please|implement|add|create|write|fix|update|change|remove|build|explain|show me|summarize|compare|find)\b/i;
|
|
14
|
+
/** Conservative, deterministic prediction for one already-redacted user turn. */
|
|
15
|
+
export function classifySteeringTurnV1(text) {
|
|
16
|
+
const normalized = text
|
|
17
|
+
.normalize('NFKC')
|
|
18
|
+
.replace(/[’‘]/g, "'")
|
|
19
|
+
.trim()
|
|
20
|
+
.replace(/\s+/g, ' ');
|
|
21
|
+
if (normalized.length < 3)
|
|
22
|
+
return 'insufficient evidence';
|
|
23
|
+
if (ACKNOWLEDGEMENT.test(normalized))
|
|
24
|
+
return 'acknowledgement';
|
|
25
|
+
if (CORRECTION.test(normalized))
|
|
26
|
+
return 'correction';
|
|
27
|
+
if (STEERING.test(normalized))
|
|
28
|
+
return 'steering';
|
|
29
|
+
if (REQUEST.test(normalized))
|
|
30
|
+
return 'new request';
|
|
31
|
+
return 'insufficient evidence';
|
|
32
|
+
}
|
|
33
|
+
/** The active baseline classifier. Persisted v1 predictions remain immutable. */
|
|
34
|
+
export const classifySteeringTurn = classifySteeringTurnV1;
|
|
35
|
+
/** Score label distribution and coverage without writing per-turn predictions. */
|
|
36
|
+
export function scoreSteeringBaseline(turns) {
|
|
37
|
+
const counts = {
|
|
38
|
+
correction: 0,
|
|
39
|
+
steering: 0,
|
|
40
|
+
'new request': 0,
|
|
41
|
+
acknowledgement: 0,
|
|
42
|
+
'insufficient evidence': 0,
|
|
43
|
+
};
|
|
44
|
+
for (const turn of turns)
|
|
45
|
+
counts[classifySteeringTurn(turn.text)] += 1;
|
|
46
|
+
const total = turns.length;
|
|
47
|
+
const classified = total - counts['insufficient evidence'];
|
|
48
|
+
return {
|
|
49
|
+
total,
|
|
50
|
+
classified,
|
|
51
|
+
coverage: total === 0 ? 0 : classified / total,
|
|
52
|
+
counts,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=steering-classification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steering-classification.js","sourceRoot":"","sources":["../src/steering-classification.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,UAAU;IACV,aAAa;IACb,iBAAiB;IACjB,uBAAuB;CACf,CAAA;AAIV,+EAA+E;AAC/E,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAA;AAE/C,MAAM,eAAe,GACnB,wGAAwG,CAAA;AAC1G,MAAM,UAAU,GACd,qMAAqM,CAAA;AACvM,MAAM,QAAQ,GACZ,yIAAyI,CAAA;AAC3I,MAAM,OAAO,GACX,oIAAoI,CAAA;AAEtI,iFAAiF;AACjF,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,UAAU,GAAG,IAAI;SACpB,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,uBAAuB,CAAA;IACzD,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,iBAAiB,CAAA;IAC9D,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,YAAY,CAAA;IACpD,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAA;IAChD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,aAAa,CAAA;IAClD,OAAO,uBAAuB,CAAA;AAChC,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAS1D,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CACnC,KAAkC;IAElC,MAAM,MAAM,GAAkC;QAC5C,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,CAAC;QAClB,uBAAuB,EAAE,CAAC;KAC3B,CAAA;IACD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;IAEtE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1B,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAC1D,OAAO;QACL,KAAK;QACL,UAAU;QACV,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK;QAC9C,MAAM;KACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural removal of Markdown code blocks from an assistant message, ahead
|
|
3
|
+
* of any redaction.
|
|
4
|
+
*
|
|
5
|
+
* `transcript-content-classes-plan.md` puts assistant code blocks in the
|
|
6
|
+
* highest-risk row it still syncs anything from — "it is the user's code" — and
|
|
7
|
+
* decides they are **stripped by default**, leaving a language-and-line-count
|
|
8
|
+
* placeholder. The same plan is explicit about *how*: "a regex over prose must
|
|
9
|
+
* never be what stands between a code block and the wire". So this walks the
|
|
10
|
+
* message by Markdown block structure and removes whole blocks, and the prose
|
|
11
|
+
* redactor (`./redact-prose.ts`) runs afterwards on what is left — never
|
|
12
|
+
* instead of this.
|
|
13
|
+
*
|
|
14
|
+
* It lives here rather than in the CLI for the reason the plan gives for
|
|
15
|
+
* `redactProse`: shared, so the CLI and any future server-side path cannot
|
|
16
|
+
* drift into different strengths of the same protection.
|
|
17
|
+
*
|
|
18
|
+
* **This deliberately over-strips, and that asymmetry is the design.** Every
|
|
19
|
+
* ambiguous case below resolves toward "treat it as code". Stripping a line of
|
|
20
|
+
* prose costs the grader a sentence; failing to strip a line of code puts the
|
|
21
|
+
* user's source on the wire, which is the one outcome the class table exists to
|
|
22
|
+
* prevent. Two places where that shows:
|
|
23
|
+
*
|
|
24
|
+
* - **Indented blocks are stripped regardless of what precedes them.**
|
|
25
|
+
* CommonMark says an indented chunk cannot interrupt a paragraph, so
|
|
26
|
+
* `Here is the code:\n const key = 'sk-live-…'` is officially a lazy
|
|
27
|
+
* paragraph continuation, not a code block. Following the spec there would
|
|
28
|
+
* leak exactly the text a reader would call code. Any line indented four
|
|
29
|
+
* spaces or a tab outside a fence is therefore code here. The cost is that
|
|
30
|
+
* a hanging-indented prose line, or a list nested four spaces deep, is
|
|
31
|
+
* stripped too.
|
|
32
|
+
* - **An unterminated fence eats the rest of the message.** A message that
|
|
33
|
+
* opens ``` and never closes it is truncated at the fence rather than
|
|
34
|
+
* recovered from, because the alternative is guessing where the author
|
|
35
|
+
* meant the code to end.
|
|
36
|
+
*/
|
|
37
|
+
/** What a stripped block leaves behind, and what it cost. */
|
|
38
|
+
export type CodeBlockStripResult = {
|
|
39
|
+
/** The message with every code block replaced by a placeholder. */
|
|
40
|
+
text: string;
|
|
41
|
+
/** How many blocks were removed. */
|
|
42
|
+
blocks: number;
|
|
43
|
+
/**
|
|
44
|
+
* How many lines those blocks contained. Fence lines are excluded; a raw HTML
|
|
45
|
+
* block's tag lines are included, since its tags are the whole of its
|
|
46
|
+
* delimiting and a `<pre>` with nothing between its tags is still one line.
|
|
47
|
+
*/
|
|
48
|
+
lines: number;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Replace every fenced, indented, and raw HTML code block in `message` with a
|
|
52
|
+
* placeholder.
|
|
53
|
+
*
|
|
54
|
+
* A raw HTML block runs from its opening line to the first line containing its
|
|
55
|
+
* closing tag (`</pre>` or `</code>`, case-insensitive), checked on the opening
|
|
56
|
+
* line too so a one-line block closes where it starts. The close is matched as
|
|
57
|
+
* a substring, as CommonMark's end condition is. With no closing tag it runs to
|
|
58
|
+
* the end of the message — the same fail-closed choice an unterminated fence
|
|
59
|
+
* makes, for the same reason.
|
|
60
|
+
*
|
|
61
|
+
* Inline `<code>` inside a sentence never opens a block: the start must be at
|
|
62
|
+
* the beginning of a line.
|
|
63
|
+
*
|
|
64
|
+
* Pure and total: any string is valid input, and the result never contains a
|
|
65
|
+
* line that was inside a code block.
|
|
66
|
+
*/
|
|
67
|
+
export declare function stripCodeBlocks(message: string): CodeBlockStripResult;
|
|
68
|
+
//# sourceMappingURL=strip-code-blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip-code-blocks.d.ts","sourceRoot":"","sources":["../src/strip-code-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AA+BH,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AA6HD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CA0FrE"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural removal of Markdown code blocks from an assistant message, ahead
|
|
3
|
+
* of any redaction.
|
|
4
|
+
*
|
|
5
|
+
* `transcript-content-classes-plan.md` puts assistant code blocks in the
|
|
6
|
+
* highest-risk row it still syncs anything from — "it is the user's code" — and
|
|
7
|
+
* decides they are **stripped by default**, leaving a language-and-line-count
|
|
8
|
+
* placeholder. The same plan is explicit about *how*: "a regex over prose must
|
|
9
|
+
* never be what stands between a code block and the wire". So this walks the
|
|
10
|
+
* message by Markdown block structure and removes whole blocks, and the prose
|
|
11
|
+
* redactor (`./redact-prose.ts`) runs afterwards on what is left — never
|
|
12
|
+
* instead of this.
|
|
13
|
+
*
|
|
14
|
+
* It lives here rather than in the CLI for the reason the plan gives for
|
|
15
|
+
* `redactProse`: shared, so the CLI and any future server-side path cannot
|
|
16
|
+
* drift into different strengths of the same protection.
|
|
17
|
+
*
|
|
18
|
+
* **This deliberately over-strips, and that asymmetry is the design.** Every
|
|
19
|
+
* ambiguous case below resolves toward "treat it as code". Stripping a line of
|
|
20
|
+
* prose costs the grader a sentence; failing to strip a line of code puts the
|
|
21
|
+
* user's source on the wire, which is the one outcome the class table exists to
|
|
22
|
+
* prevent. Two places where that shows:
|
|
23
|
+
*
|
|
24
|
+
* - **Indented blocks are stripped regardless of what precedes them.**
|
|
25
|
+
* CommonMark says an indented chunk cannot interrupt a paragraph, so
|
|
26
|
+
* `Here is the code:\n const key = 'sk-live-…'` is officially a lazy
|
|
27
|
+
* paragraph continuation, not a code block. Following the spec there would
|
|
28
|
+
* leak exactly the text a reader would call code. Any line indented four
|
|
29
|
+
* spaces or a tab outside a fence is therefore code here. The cost is that
|
|
30
|
+
* a hanging-indented prose line, or a list nested four spaces deep, is
|
|
31
|
+
* stripped too.
|
|
32
|
+
* - **An unterminated fence eats the rest of the message.** A message that
|
|
33
|
+
* opens ``` and never closes it is truncated at the fence rather than
|
|
34
|
+
* recovered from, because the alternative is guessing where the author
|
|
35
|
+
* meant the code to end.
|
|
36
|
+
*/
|
|
37
|
+
/** Longest info-string word accepted as a language label. */
|
|
38
|
+
const MAX_LANGUAGE_LENGTH = 20;
|
|
39
|
+
/**
|
|
40
|
+
* Characters a language label may contain.
|
|
41
|
+
*
|
|
42
|
+
* The info string is author-controlled free text sitting on the same line as
|
|
43
|
+
* the fence — ```` ```ts title="~/.aws/credentials" ```` is well-formed
|
|
44
|
+
* Markdown. Copying it into the placeholder verbatim would hand back a
|
|
45
|
+
* free-text channel out of the very block this function just removed, so only
|
|
46
|
+
* the first whitespace-delimited word is considered and it must match this
|
|
47
|
+
* shape; anything else yields a placeholder with no language rather than a
|
|
48
|
+
* sanitized approximation of one.
|
|
49
|
+
*/
|
|
50
|
+
const LANGUAGE_PATTERN = /^[A-Za-z0-9_+#-]+$/;
|
|
51
|
+
/** Columns a tab advances to, for deciding whether a line is indented code. */
|
|
52
|
+
const TAB_WIDTH = 4;
|
|
53
|
+
/**
|
|
54
|
+
* A raw HTML block that carries code: a line opening with `<pre` or `<code`,
|
|
55
|
+
* followed by whitespace, `>` or end of line. The `<pre` form is CommonMark's
|
|
56
|
+
* HTML block type 1 start condition. CommonMark has no block-level `<code>`
|
|
57
|
+
* type — a line of just `<code>` is a type-7 block that ends at a blank line,
|
|
58
|
+
* which would let code past a blank line escape — so `<code>` takes the same
|
|
59
|
+
* `</code>` end condition as `<pre>` (see {@link stripCodeBlocks}).
|
|
60
|
+
*/
|
|
61
|
+
const HTML_CODE_START_PATTERN = /^<(pre|code)(?=[\s>]|$)/i;
|
|
62
|
+
/**
|
|
63
|
+
* Render the placeholder that stands in for a removed block.
|
|
64
|
+
*
|
|
65
|
+
* Line count and language only: the plan's class table specifies exactly this
|
|
66
|
+
* pair, and anything more (a first line, a hash, a length in characters) is a
|
|
67
|
+
* fingerprint of the code rather than a description of it.
|
|
68
|
+
*
|
|
69
|
+
* **Settled 2026-08-21 (founder): no hash, ever — this pair is the complete
|
|
70
|
+
* placeholder.** This comment previously called it an open question, which
|
|
71
|
+
* would have read to a later maintainer as an invitation to add the
|
|
72
|
+
* fingerprint the decision rejects. A hash of code stripped for privacy
|
|
73
|
+
* re-imports the risk the stripping removed. The stated cost, so nobody
|
|
74
|
+
* rediscovers it as a surprise: the opt-in backfill the question was
|
|
75
|
+
* protecting becomes impossible, not merely unbuilt.
|
|
76
|
+
*/
|
|
77
|
+
function placeholder(language, lines) {
|
|
78
|
+
const unit = lines === 1 ? 'line' : 'lines';
|
|
79
|
+
return language
|
|
80
|
+
? `[code block: ${language}, ${lines} ${unit}]`
|
|
81
|
+
: `[code block: ${lines} ${unit}]`;
|
|
82
|
+
}
|
|
83
|
+
/** First word of a fence's info string, when it is a plausible language. */
|
|
84
|
+
function parseLanguage(infoString) {
|
|
85
|
+
const first = infoString.trim().split(/\s+/)[0];
|
|
86
|
+
if (!first || first.length > MAX_LANGUAGE_LENGTH)
|
|
87
|
+
return null;
|
|
88
|
+
return LANGUAGE_PATTERN.test(first) ? first : null;
|
|
89
|
+
}
|
|
90
|
+
/** One container marker and its whitespace, before padding is classified. */
|
|
91
|
+
const CONTAINER_PREFIX_PATTERN = /^ {0,3}(?:>[ \t]?|(?:[-+*]|\d{1,9}[.)])[ \t]+)/;
|
|
92
|
+
/** Advance through a container prefix using the same tab stops as indentation. */
|
|
93
|
+
function prefixColumns(prefix, start) {
|
|
94
|
+
let columns = start;
|
|
95
|
+
for (const char of prefix)
|
|
96
|
+
columns += char === '\t' ? TAB_WIDTH - (columns % TAB_WIDTH) : 1;
|
|
97
|
+
return columns;
|
|
98
|
+
}
|
|
99
|
+
/** Remove nested quote/list markers before structural code tests. */
|
|
100
|
+
function stripContainerPrefixes(line) {
|
|
101
|
+
let bare = line;
|
|
102
|
+
let listIndent = 0;
|
|
103
|
+
const quoteIndents = [];
|
|
104
|
+
let sourceColumns = 0;
|
|
105
|
+
for (;;) {
|
|
106
|
+
const match = CONTAINER_PREFIX_PATTERN.exec(bare);
|
|
107
|
+
if (!match)
|
|
108
|
+
return { text: bare, listIndent, quoteIndents };
|
|
109
|
+
let consumed = match[0].length;
|
|
110
|
+
if (match[0].includes('>')) {
|
|
111
|
+
quoteIndents.push(listIndent);
|
|
112
|
+
listIndent = 0;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const whitespace = /[ \t]+$/.exec(match[0])?.[0] ?? '';
|
|
116
|
+
const markerLength = match[0].length - whitespace.length;
|
|
117
|
+
const markerColumns = prefixColumns(match[0].slice(0, markerLength), sourceColumns);
|
|
118
|
+
const paddingColumns = prefixColumns(match[0], sourceColumns) - markerColumns;
|
|
119
|
+
// One to four columns are list padding. With more, only the first
|
|
120
|
+
// whitespace belongs to the marker; the remainder is indented code.
|
|
121
|
+
if (paddingColumns > 4)
|
|
122
|
+
consumed = markerLength + 1;
|
|
123
|
+
listIndent +=
|
|
124
|
+
prefixColumns(match[0].slice(0, consumed), sourceColumns) - sourceColumns;
|
|
125
|
+
}
|
|
126
|
+
sourceColumns = prefixColumns(match[0].slice(0, consumed), sourceColumns);
|
|
127
|
+
bare = bare.slice(consumed);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Leading indentation in columns, counting a tab as up to {@link TAB_WIDTH}. */
|
|
131
|
+
function indentColumns(line) {
|
|
132
|
+
let columns = 0;
|
|
133
|
+
for (const char of line) {
|
|
134
|
+
if (char === ' ')
|
|
135
|
+
columns += 1;
|
|
136
|
+
else if (char === '\t')
|
|
137
|
+
columns += TAB_WIDTH - (columns % TAB_WIDTH);
|
|
138
|
+
else
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
return columns;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A fence opener: up to three spaces of indent, then three or more backticks or
|
|
145
|
+
* tildes. Four spaces would make it indented code instead, which the caller
|
|
146
|
+
* handles.
|
|
147
|
+
*/
|
|
148
|
+
const FENCE_PATTERN = /^ {0,3}(`{3,}|~{3,})(.*)$/;
|
|
149
|
+
/**
|
|
150
|
+
* Whether `line` closes a fence opened with `marker`.
|
|
151
|
+
*
|
|
152
|
+
* CommonMark's rule, and it matters: a closing fence must be at least as long
|
|
153
|
+
* as its opener and carry no info string, so ``` inside a ````-fenced block
|
|
154
|
+
* does not end it. Getting this wrong in the lenient direction would end the
|
|
155
|
+
* block early and emit its remaining lines as prose.
|
|
156
|
+
*/
|
|
157
|
+
function closesFence(line, marker, container) {
|
|
158
|
+
let bare = line;
|
|
159
|
+
// Remove only the quote depth of the opener. List continuation lines carry
|
|
160
|
+
// indentation, not list markers: a literal marker inside code cannot close it.
|
|
161
|
+
for (const minimumIndent of container.quoteIndents) {
|
|
162
|
+
const quote = /^ *>[ \t]?/.exec(bare);
|
|
163
|
+
if (!quote)
|
|
164
|
+
return false;
|
|
165
|
+
const leading = indentColumns(quote[0]);
|
|
166
|
+
if (leading < minimumIndent || leading > minimumIndent + 3)
|
|
167
|
+
return false;
|
|
168
|
+
bare = bare.slice(quote[0].length);
|
|
169
|
+
}
|
|
170
|
+
const indent = indentColumns(bare);
|
|
171
|
+
if (indent < container.listIndent || indent > 3 + container.listIndent)
|
|
172
|
+
return false;
|
|
173
|
+
const match = FENCE_PATTERN.exec(bare.trimStart());
|
|
174
|
+
if (!match)
|
|
175
|
+
return false;
|
|
176
|
+
const [, fence, rest] = match;
|
|
177
|
+
if (!fence || fence[0] !== marker[0])
|
|
178
|
+
return false;
|
|
179
|
+
return fence.length >= marker.length && rest !== undefined && rest.trim() === '';
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Replace every fenced, indented, and raw HTML code block in `message` with a
|
|
183
|
+
* placeholder.
|
|
184
|
+
*
|
|
185
|
+
* A raw HTML block runs from its opening line to the first line containing its
|
|
186
|
+
* closing tag (`</pre>` or `</code>`, case-insensitive), checked on the opening
|
|
187
|
+
* line too so a one-line block closes where it starts. The close is matched as
|
|
188
|
+
* a substring, as CommonMark's end condition is. With no closing tag it runs to
|
|
189
|
+
* the end of the message — the same fail-closed choice an unterminated fence
|
|
190
|
+
* makes, for the same reason.
|
|
191
|
+
*
|
|
192
|
+
* Inline `<code>` inside a sentence never opens a block: the start must be at
|
|
193
|
+
* the beginning of a line.
|
|
194
|
+
*
|
|
195
|
+
* Pure and total: any string is valid input, and the result never contains a
|
|
196
|
+
* line that was inside a code block.
|
|
197
|
+
*/
|
|
198
|
+
export function stripCodeBlocks(message) {
|
|
199
|
+
const source = message.split('\n');
|
|
200
|
+
const out = [];
|
|
201
|
+
let blocks = 0;
|
|
202
|
+
let lines = 0;
|
|
203
|
+
let index = 0;
|
|
204
|
+
while (index < source.length) {
|
|
205
|
+
const line = source[index] ?? '';
|
|
206
|
+
// Structural tests run on the line with any container prefix removed; the
|
|
207
|
+
// *original* line is what gets emitted when it turns out to be prose.
|
|
208
|
+
const container = stripContainerPrefixes(line);
|
|
209
|
+
const bare = container.text;
|
|
210
|
+
const fence = indentColumns(bare) < 4 ? FENCE_PATTERN.exec(bare) : null;
|
|
211
|
+
if (fence) {
|
|
212
|
+
const marker = fence[1] ?? '```';
|
|
213
|
+
const language = parseLanguage(fence[2] ?? '');
|
|
214
|
+
let cursor = index + 1;
|
|
215
|
+
let body = 0;
|
|
216
|
+
while (cursor < source.length &&
|
|
217
|
+
!closesFence(source[cursor] ?? '', marker, container)) {
|
|
218
|
+
body += 1;
|
|
219
|
+
cursor += 1;
|
|
220
|
+
}
|
|
221
|
+
out.push(placeholder(language, body));
|
|
222
|
+
blocks += 1;
|
|
223
|
+
lines += body;
|
|
224
|
+
// Past the closing fence, or past the end when there was none — an
|
|
225
|
+
// unterminated fence consumes the remainder rather than recovering.
|
|
226
|
+
index = cursor + 1;
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
const htmlCode = indentColumns(bare) < 4 ? HTML_CODE_START_PATTERN.exec(bare.trimStart()) : null;
|
|
230
|
+
if (htmlCode) {
|
|
231
|
+
const close = `</${(htmlCode[1] ?? '').toLowerCase()}>`;
|
|
232
|
+
let cursor = index;
|
|
233
|
+
while (cursor < source.length &&
|
|
234
|
+
!stripContainerPrefixes(source[cursor] ?? '')
|
|
235
|
+
.text.toLowerCase()
|
|
236
|
+
.includes(close)) {
|
|
237
|
+
cursor += 1;
|
|
238
|
+
}
|
|
239
|
+
// No closing line means the block runs to the end of the message.
|
|
240
|
+
const end = Math.min(cursor, source.length - 1);
|
|
241
|
+
const body = end - index + 1;
|
|
242
|
+
out.push(placeholder(null, body));
|
|
243
|
+
blocks += 1;
|
|
244
|
+
lines += body;
|
|
245
|
+
index = end + 1;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (indentColumns(bare) >= 4 && bare.trim() !== '') {
|
|
249
|
+
let cursor = index;
|
|
250
|
+
let body = 0;
|
|
251
|
+
// Blank lines *inside* an indented run belong to the block, so a chunk
|
|
252
|
+
// separated by an empty line is one placeholder rather than two. A blank
|
|
253
|
+
// line is only a terminator once a non-indented line follows it.
|
|
254
|
+
while (cursor < source.length) {
|
|
255
|
+
const current = stripContainerPrefixes(source[cursor] ?? '').text;
|
|
256
|
+
if (current.trim() === '') {
|
|
257
|
+
const next = stripContainerPrefixes(source[cursor + 1] ?? '').text;
|
|
258
|
+
if (next.trim() === '' || indentColumns(next) < 4)
|
|
259
|
+
break;
|
|
260
|
+
cursor += 1;
|
|
261
|
+
body += 1;
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
if (indentColumns(current) < 4)
|
|
265
|
+
break;
|
|
266
|
+
cursor += 1;
|
|
267
|
+
body += 1;
|
|
268
|
+
}
|
|
269
|
+
out.push(placeholder(null, body));
|
|
270
|
+
blocks += 1;
|
|
271
|
+
lines += body;
|
|
272
|
+
index = cursor;
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
out.push(line);
|
|
276
|
+
index += 1;
|
|
277
|
+
}
|
|
278
|
+
return { text: out.join('\n'), blocks, lines };
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=strip-code-blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip-code-blocks.js","sourceRoot":"","sources":["../src/strip-code-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip-code-blocks.test.d.ts","sourceRoot":"","sources":["../src/strip-code-blocks.test.ts"],"names":[],"mappings":""}
|