@brutalist/mcp 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/brutalist-server.d.ts +5 -0
- package/dist/brutalist-server.d.ts.map +1 -1
- package/dist/brutalist-server.js +244 -80
- package/dist/brutalist-server.js.map +1 -1
- package/dist/cli-agents.d.ts +7 -3
- package/dist/cli-agents.d.ts.map +1 -1
- package/dist/cli-agents.js +307 -48
- package/dist/cli-agents.js.map +1 -1
- package/dist/streaming/circuit-breaker.d.ts +186 -0
- package/dist/streaming/circuit-breaker.d.ts.map +1 -0
- package/dist/streaming/circuit-breaker.js +463 -0
- package/dist/streaming/circuit-breaker.js.map +1 -0
- package/dist/streaming/intelligent-buffer.d.ts +141 -0
- package/dist/streaming/intelligent-buffer.d.ts.map +1 -0
- package/dist/streaming/intelligent-buffer.js +555 -0
- package/dist/streaming/intelligent-buffer.js.map +1 -0
- package/dist/streaming/output-parser.d.ts +89 -0
- package/dist/streaming/output-parser.d.ts.map +1 -0
- package/dist/streaming/output-parser.js +349 -0
- package/dist/streaming/output-parser.js.map +1 -0
- package/dist/streaming/progress-tracker.d.ts +149 -0
- package/dist/streaming/progress-tracker.d.ts.map +1 -0
- package/dist/streaming/progress-tracker.js +519 -0
- package/dist/streaming/progress-tracker.js.map +1 -0
- package/dist/streaming/session-manager.d.ts +238 -0
- package/dist/streaming/session-manager.d.ts.map +1 -0
- package/dist/streaming/session-manager.js +546 -0
- package/dist/streaming/session-manager.js.map +1 -0
- package/dist/streaming/sse-transport.d.ts +95 -0
- package/dist/streaming/sse-transport.d.ts.map +1 -0
- package/dist/streaming/sse-transport.js +319 -0
- package/dist/streaming/sse-transport.js.map +1 -0
- package/dist/streaming/streaming-orchestrator.d.ts +153 -0
- package/dist/streaming/streaming-orchestrator.d.ts.map +1 -0
- package/dist/streaming/streaming-orchestrator.js +436 -0
- package/dist/streaming/streaming-orchestrator.js.map +1 -0
- package/dist/test-utils/process-manager.d.ts +61 -0
- package/dist/test-utils/process-manager.d.ts.map +1 -0
- package/dist/test-utils/process-manager.js +262 -0
- package/dist/test-utils/process-manager.js.map +1 -0
- package/dist/test-utils/server-harness.d.ts +73 -0
- package/dist/test-utils/server-harness.d.ts.map +1 -0
- package/dist/test-utils/server-harness.js +296 -0
- package/dist/test-utils/server-harness.js.map +1 -0
- package/dist/test-utils/streaming-fuzz.d.ts +57 -0
- package/dist/test-utils/streaming-fuzz.d.ts.map +1 -0
- package/dist/test-utils/streaming-fuzz.js +287 -0
- package/dist/test-utils/streaming-fuzz.js.map +1 -0
- package/dist/test-utils/test-isolation.d.ts +70 -0
- package/dist/test-utils/test-isolation.d.ts.map +1 -0
- package/dist/test-utils/test-isolation.js +193 -0
- package/dist/test-utils/test-isolation.js.map +1 -0
- package/dist/tool-definitions.d.ts.map +1 -1
- package/dist/tool-definitions.js +12 -6
- package/dist/tool-definitions.js.map +1 -1
- package/dist/types/brutalist.d.ts +3 -3
- package/dist/types/brutalist.d.ts.map +1 -1
- package/dist/types/tool-config.d.ts +0 -1
- package/dist/types/tool-config.d.ts.map +1 -1
- package/dist/types/tool-config.js +0 -1
- package/dist/types/tool-config.js.map +1 -1
- package/dist/utils/response-cache.d.ts +14 -7
- package/dist/utils/response-cache.d.ts.map +1 -1
- package/dist/utils/response-cache.js +173 -62
- package/dist/utils/response-cache.js.map +1 -1
- package/package.json +13 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intelligent-buffer.js","sourceRoot":"","sources":["../../src/streaming/intelligent-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkBtC;;GAEG;AACH,MAAM,cAAc;IACV,MAAM,CAAM;IACZ,IAAI,CAAS;IACb,IAAI,GAAG,CAAC,CAAC;IACT,IAAI,GAAG,CAAC,CAAC;IACT,KAAK,GAAG,CAAC,CAAC;IAElB,YAAY,QAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,IAAO;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAExC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,QAAgB,IAAI,CAAC,KAAK;QAC7B,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACtC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,aAAa;IACT,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9B,UAAU,GAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtF;QACE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAO,EAAE,QAAuB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,QAAwB;QACjC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBACzB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,sCAAsC;QACtC,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;gBACrB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,QAAwB;QAC3B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF;AA0BD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC3D,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IACxC,OAAO,GAAG,IAAI,GAAG,EAA0C,CAAC;IAEpE,qDAAqD;IACpC,eAAe,GAAkC;QAChE,qCAAqC;QACrC,kBAAkB,EAAE;YAClB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,WAAW;SACtB;QAED,oCAAoC;QACpC,kBAAkB,EAAE;YAClB,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,MAAM;SACjB;QAED,0CAA0C;QAC1C,SAAS,EAAE;YACT,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,QAAQ;SACnB;QAED,4CAA4C;QAC5C,gBAAgB,EAAE;YAChB,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,QAAQ;SACnB;QAED,kCAAkC;QAClC,aAAa,EAAE;YACb,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,WAAW;SACtB;QAED,sCAAsC;QACtC,gBAAgB,EAAE;YAChB,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,MAAM;SACjB;QAED,sCAAsC;QACtC,YAAY,EAAE;YACZ,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,KAAK;SAChB;QAED,8CAA8C;QAC9C,WAAW,EAAE;YACX,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;IAEe,YAAY,GAAkB;QAC7C,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,gBAAgB;IACC,eAAe,GAAG,IAAI,CAAC,CAAC,qBAAqB;IAC7C,aAAa,GAAG,EAAE,CAAC,CAAK,2BAA2B;IACnD,YAAY,GAAG,GAAG,CAAC,CAAK,sCAAsC;IAE/E;QACE,qCAAqC;QACrC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe;IACxE,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAqB;QACvB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAErD,yBAAyB;QACzB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,qCAAqC,KAAK,CAAC,SAAS,gCAAgC,CAAC,CAAC;YAClG,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC3C,OAAO;YACT,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAEvE,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEvD,sCAAsC;QACtC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEzB,wBAAwB;QACxB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,eAAe;QACf,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE9D,sBAAsB;QACtB,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACzD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE1C,MAAM,CAAC,KAAK,CAAC,YAAY,cAAc,sBAAsB,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,aAAa,WAAW,CAAC,CAAC;IACnH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAiB,EAAE,QAAwB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEtD,eAAe;QACf,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,wBAAwB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,KAAK,GAAe;YACxB,SAAS;YACT,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,QAAQ,IAAI,QAAQ;YAC9B,OAAO,EAAE,GAAG,SAAS,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YACzD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,WAAW,eAAe,CAAC,MAAM,uBAAuB,SAAS,YAAY,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAE5G,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB,EAAE,KAAc;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,SAAiB;QACvB,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtB,cAAc;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE/B,MAAM,CAAC,IAAI,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,UAAU;QAMR,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhD,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9D,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YACrE,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;SAChE,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAqB;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEhC,sCAAsC;QACtC,IAAI,QAAQ,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,kBAAkB,CAAC;YAC5B,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtE,OAAO,kBAAkB,CAAC;YAC5B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,4BAA4B;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,+BAA+B;QAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,IAAI,QAAQ,EAAE,WAAW,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,EAAE,WAAW,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAqB;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,SAAiB,EAAE,IAAmB;QAC1D,qBAAqB;QACrB,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrB,YAAY,CAAC,GAAG,EAAE;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEf,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAwB;QAC/C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEnD,uBAAuB;QACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,sBAAsB;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAqB;QAC7C,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,WAAW,IAAI,SAAS,EAAE,CAAC;IACpF,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,MAAwB;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEvC,OAAO;YACL,GAAG,KAAK;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;gBACxB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,EAAE;gBAClF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE;gBACR,GAAG,KAAK,CAAC,QAAQ;gBACjB,cAAc,EAAE,MAAM,CAAC,MAAM;gBAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;aAC3C;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,SAAiB;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,aAAa,EAAkB,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,SAAiB;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;gBACzB,SAAS;gBACT,WAAW,EAAE,CAAC;gBACd,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAqB;QACxC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,SAAiB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE5C,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,6CAA6C;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,uBAAuB;QACtD,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,SAAiB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3C,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAE1B,uDAAuD;QACvD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,4BAA4B,iBAAiB,CAAC,MAAM,oCAAoC,SAAS,EAAE,CAAC,CAAC;QACnH,CAAC;QAED,mCAAmC;QACnC,UAAU,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;QAEhD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,cAAc,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAiB;QACpC,6CAA6C;QAC7C,4DAA4D;QAC5D,oFAAoF;QACpF,0CAA0C;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { StreamingEvent } from '../cli-agents.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parser state for tracking CLI output phases
|
|
4
|
+
*/
|
|
5
|
+
export interface ParserState {
|
|
6
|
+
phase: 'starting' | 'thinking' | 'analyzing' | 'outputting' | 'complete';
|
|
7
|
+
agent: string;
|
|
8
|
+
sessionId?: string;
|
|
9
|
+
bufferSize: number;
|
|
10
|
+
processedChunks: number;
|
|
11
|
+
lastEventTime: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Streaming parser interface for real-time CLI output processing
|
|
15
|
+
*/
|
|
16
|
+
export interface StreamingParser {
|
|
17
|
+
parse(chunk: string, agent: string): StreamingEvent[];
|
|
18
|
+
flush(): StreamingEvent[];
|
|
19
|
+
getState(): ParserState;
|
|
20
|
+
reset(): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Advanced semantic output parser with boundary detection and content classification
|
|
24
|
+
*
|
|
25
|
+
* Key features:
|
|
26
|
+
* - State machine tracking for CLI phases
|
|
27
|
+
* - Sentence/paragraph boundary detection
|
|
28
|
+
* - Content classification (findings vs debug info)
|
|
29
|
+
* - Streaming tokenization with incomplete sentence handling
|
|
30
|
+
* - Memory-efficient circular buffering
|
|
31
|
+
*/
|
|
32
|
+
export declare class SemanticOutputParser implements StreamingParser {
|
|
33
|
+
private buffer;
|
|
34
|
+
private state;
|
|
35
|
+
private readonly BOUNDARY_PATTERNS;
|
|
36
|
+
private readonly CLASSIFICATION_PATTERNS;
|
|
37
|
+
private readonly PHASE_PATTERNS;
|
|
38
|
+
constructor(agent: string, sessionId?: string);
|
|
39
|
+
/**
|
|
40
|
+
* Parse incoming CLI output chunk into semantic streaming events
|
|
41
|
+
*/
|
|
42
|
+
parse(chunk: string, agent: string): StreamingEvent[];
|
|
43
|
+
/**
|
|
44
|
+
* Flush any remaining content as final events
|
|
45
|
+
*/
|
|
46
|
+
flush(): StreamingEvent[];
|
|
47
|
+
/**
|
|
48
|
+
* Get current parser state
|
|
49
|
+
*/
|
|
50
|
+
getState(): ParserState;
|
|
51
|
+
/**
|
|
52
|
+
* Reset parser to initial state
|
|
53
|
+
*/
|
|
54
|
+
reset(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Detect semantic boundaries in text for clean chunking
|
|
57
|
+
*/
|
|
58
|
+
private detectBoundaries;
|
|
59
|
+
/**
|
|
60
|
+
* Check if text ends with complete sentence
|
|
61
|
+
*/
|
|
62
|
+
private isCompleteSentence;
|
|
63
|
+
/**
|
|
64
|
+
* Restore code blocks in text
|
|
65
|
+
*/
|
|
66
|
+
private restoreCodeBlocks;
|
|
67
|
+
/**
|
|
68
|
+
* Update parser phase based on content analysis
|
|
69
|
+
*/
|
|
70
|
+
private updatePhase;
|
|
71
|
+
/**
|
|
72
|
+
* Create streaming event from text segment
|
|
73
|
+
*/
|
|
74
|
+
private createEventFromSegment;
|
|
75
|
+
/**
|
|
76
|
+
* Classify content to determine event type and severity
|
|
77
|
+
*/
|
|
78
|
+
private classifyContent;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Factory for creating parsers optimized for different CLI agents
|
|
82
|
+
*/
|
|
83
|
+
export declare class ParserFactory {
|
|
84
|
+
/**
|
|
85
|
+
* Create parser optimized for specific CLI agent
|
|
86
|
+
*/
|
|
87
|
+
static createParser(agent: 'claude' | 'codex' | 'gemini', sessionId?: string): StreamingParser;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=output-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-parser.d.ts","sourceRoot":"","sources":["../../src/streaming/output-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAmBD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;IACtD,KAAK,IAAI,cAAc,EAAE,CAAC;IAC1B,QAAQ,IAAI,WAAW,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAc;IAG3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAMhC;IAGF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAYtC;IAGF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAM7B;gBAEU,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAW7C;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAuCrD;;OAEG;IACH,KAAK,IAAI,cAAc,EAAE;IAezB;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,eAAe;CAgCxB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;CAY/F"}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { logger } from '../logger.js';
|
|
2
|
+
/**
|
|
3
|
+
* Advanced semantic output parser with boundary detection and content classification
|
|
4
|
+
*
|
|
5
|
+
* Key features:
|
|
6
|
+
* - State machine tracking for CLI phases
|
|
7
|
+
* - Sentence/paragraph boundary detection
|
|
8
|
+
* - Content classification (findings vs debug info)
|
|
9
|
+
* - Streaming tokenization with incomplete sentence handling
|
|
10
|
+
* - Memory-efficient circular buffering
|
|
11
|
+
*/
|
|
12
|
+
export class SemanticOutputParser {
|
|
13
|
+
buffer = '';
|
|
14
|
+
state;
|
|
15
|
+
// Boundary detection patterns for clean chunking
|
|
16
|
+
BOUNDARY_PATTERNS = {
|
|
17
|
+
sentence: /([.!?]+)\s+(?=[A-Z])/g,
|
|
18
|
+
paragraph: /\n\s*\n/g,
|
|
19
|
+
codeBlock: /```[\s\S]*?```/g,
|
|
20
|
+
listItem: /^\s*[-*+]\s+/gm,
|
|
21
|
+
numberedItem: /^\s*\d+\.\s+/gm
|
|
22
|
+
};
|
|
23
|
+
// Content classification patterns
|
|
24
|
+
CLASSIFICATION_PATTERNS = {
|
|
25
|
+
finding: {
|
|
26
|
+
critical: /\b(CRITICAL|SECURITY|VULNERABILITY|EXPLOIT|DANGEROUS)\b/i,
|
|
27
|
+
high: /\b(ERROR|WARNING|ISSUE|PROBLEM|BUG|FAIL)\b/i,
|
|
28
|
+
medium: /\b(CONCERN|RISK|POTENTIAL|IMPROVE|OPTIMIZE)\b/i,
|
|
29
|
+
low: /\b(SUGGESTION|CONSIDER|MINOR|STYLE)\b/i,
|
|
30
|
+
info: /\b(INFO|NOTE|TIP|FOUND|DETECTED)\b/i
|
|
31
|
+
},
|
|
32
|
+
progress: /\b(ANALYZING|SCANNING|PROCESSING|CHECKING|LOADING)\b/i,
|
|
33
|
+
debug: /\b(DEBUG|TRACE|VERBOSE|LOG)\b/i,
|
|
34
|
+
error: /\b(FAILED|CRASHED|TIMEOUT|EXCEPTION)\b/i,
|
|
35
|
+
milestone: /\b(COMPLETED?|FINISHED|DONE|SUCCESS|STARTED?)\b/i
|
|
36
|
+
};
|
|
37
|
+
// Phase transition patterns
|
|
38
|
+
PHASE_PATTERNS = {
|
|
39
|
+
starting: /\b(starting|initializing|beginning|loading)\b/i,
|
|
40
|
+
thinking: /\b(thinking|considering|planning|preparing)\b/i,
|
|
41
|
+
analyzing: /\b(analyzing|examining|reviewing|checking)\b/i,
|
|
42
|
+
outputting: /\b(found|detected|identified|discovered)\b/i,
|
|
43
|
+
complete: /\b(complete|finished|done|analysis complete)\b/i
|
|
44
|
+
};
|
|
45
|
+
constructor(agent, sessionId) {
|
|
46
|
+
this.state = {
|
|
47
|
+
phase: 'starting',
|
|
48
|
+
agent,
|
|
49
|
+
sessionId,
|
|
50
|
+
bufferSize: 0,
|
|
51
|
+
processedChunks: 0,
|
|
52
|
+
lastEventTime: Date.now()
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse incoming CLI output chunk into semantic streaming events
|
|
57
|
+
*/
|
|
58
|
+
parse(chunk, agent) {
|
|
59
|
+
if (!chunk || chunk.trim().length === 0) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
this.buffer += chunk;
|
|
63
|
+
this.state.bufferSize = this.buffer.length;
|
|
64
|
+
this.state.processedChunks++;
|
|
65
|
+
this.state.lastEventTime = Date.now();
|
|
66
|
+
const events = [];
|
|
67
|
+
// Update parser state based on content
|
|
68
|
+
this.updatePhase(chunk);
|
|
69
|
+
// Extract complete semantic units
|
|
70
|
+
const boundaries = this.detectBoundaries(this.buffer);
|
|
71
|
+
for (const segment of boundaries.complete) {
|
|
72
|
+
const event = this.createEventFromSegment(segment, agent);
|
|
73
|
+
if (event) {
|
|
74
|
+
events.push(event);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Keep remaining incomplete content in buffer
|
|
78
|
+
this.buffer = boundaries.remaining;
|
|
79
|
+
this.state.bufferSize = this.buffer.length;
|
|
80
|
+
// Prevent buffer overflow
|
|
81
|
+
if (this.buffer.length > 8192) { // 8KB limit
|
|
82
|
+
logger.warn(`Parser buffer overflow for ${agent}, flushing incomplete content`);
|
|
83
|
+
const flushEvents = this.flush();
|
|
84
|
+
events.push(...flushEvents);
|
|
85
|
+
}
|
|
86
|
+
return events;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Flush any remaining content as final events
|
|
90
|
+
*/
|
|
91
|
+
flush() {
|
|
92
|
+
if (!this.buffer.trim()) {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
logger.debug(`Flushing remaining ${this.buffer.length} chars for ${this.state.agent}`);
|
|
96
|
+
const event = this.createEventFromSegment(this.buffer, this.state.agent);
|
|
97
|
+
this.buffer = '';
|
|
98
|
+
this.state.bufferSize = 0;
|
|
99
|
+
this.state.phase = 'complete';
|
|
100
|
+
return event ? [event] : [];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get current parser state
|
|
104
|
+
*/
|
|
105
|
+
getState() {
|
|
106
|
+
return { ...this.state };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Reset parser to initial state
|
|
110
|
+
*/
|
|
111
|
+
reset() {
|
|
112
|
+
this.buffer = '';
|
|
113
|
+
this.state = {
|
|
114
|
+
phase: 'starting',
|
|
115
|
+
agent: this.state.agent,
|
|
116
|
+
sessionId: this.state.sessionId,
|
|
117
|
+
bufferSize: 0,
|
|
118
|
+
processedChunks: 0,
|
|
119
|
+
lastEventTime: Date.now()
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Detect semantic boundaries in text for clean chunking
|
|
124
|
+
*/
|
|
125
|
+
detectBoundaries(text) {
|
|
126
|
+
const complete = [];
|
|
127
|
+
let remaining = text;
|
|
128
|
+
// First, extract complete code blocks (highest priority)
|
|
129
|
+
const codeBlocks = [];
|
|
130
|
+
remaining = remaining.replace(this.BOUNDARY_PATTERNS.codeBlock, (match) => {
|
|
131
|
+
codeBlocks.push(match);
|
|
132
|
+
return '\n__CODE_BLOCK__\n';
|
|
133
|
+
});
|
|
134
|
+
// Extract complete paragraphs
|
|
135
|
+
const paragraphs = remaining.split(this.BOUNDARY_PATTERNS.paragraph);
|
|
136
|
+
for (let i = 0; i < paragraphs.length - 1; i++) {
|
|
137
|
+
const paragraph = paragraphs[i].trim();
|
|
138
|
+
if (paragraph) {
|
|
139
|
+
// Restore code blocks
|
|
140
|
+
const restored = this.restoreCodeBlocks(paragraph, codeBlocks);
|
|
141
|
+
complete.push(restored);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Check if last paragraph is complete (ends with sentence boundary)
|
|
145
|
+
const lastParagraph = paragraphs[paragraphs.length - 1];
|
|
146
|
+
if (lastParagraph && this.isCompleteSentence(lastParagraph)) {
|
|
147
|
+
const restored = this.restoreCodeBlocks(lastParagraph.trim(), codeBlocks);
|
|
148
|
+
complete.push(restored);
|
|
149
|
+
remaining = '';
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
remaining = this.restoreCodeBlocks(lastParagraph || '', codeBlocks);
|
|
153
|
+
}
|
|
154
|
+
return { complete, remaining };
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Check if text ends with complete sentence
|
|
158
|
+
*/
|
|
159
|
+
isCompleteSentence(text) {
|
|
160
|
+
const trimmed = text.trim();
|
|
161
|
+
return /[.!?]$/.test(trimmed) || /```\s*$/.test(trimmed);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Restore code blocks in text
|
|
165
|
+
*/
|
|
166
|
+
restoreCodeBlocks(text, codeBlocks) {
|
|
167
|
+
let index = 0;
|
|
168
|
+
return text.replace(/\n__CODE_BLOCK__\n/g, () => {
|
|
169
|
+
return codeBlocks[index++] || '';
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Update parser phase based on content analysis
|
|
174
|
+
*/
|
|
175
|
+
updatePhase(content) {
|
|
176
|
+
for (const [phase, pattern] of Object.entries(this.PHASE_PATTERNS)) {
|
|
177
|
+
if (pattern.test(content)) {
|
|
178
|
+
this.state.phase = phase;
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Create streaming event from text segment
|
|
185
|
+
*/
|
|
186
|
+
createEventFromSegment(segment, agent) {
|
|
187
|
+
const trimmed = segment.trim();
|
|
188
|
+
if (!trimmed) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
const classification = this.classifyContent(trimmed);
|
|
192
|
+
// Filter out low-value debug content
|
|
193
|
+
if (classification.type === 'debug' && classification.confidence < 0.5) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
// Determine event type based on classification
|
|
197
|
+
let eventType = 'agent_progress';
|
|
198
|
+
if (classification.type === 'finding') {
|
|
199
|
+
eventType = 'agent_progress'; // Findings are progress updates with metadata
|
|
200
|
+
}
|
|
201
|
+
else if (classification.type === 'error') {
|
|
202
|
+
eventType = 'agent_error';
|
|
203
|
+
}
|
|
204
|
+
else if (classification.type === 'milestone') {
|
|
205
|
+
eventType = this.state.phase === 'complete' ? 'agent_complete' : 'agent_progress';
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
type: eventType,
|
|
209
|
+
agent: agent,
|
|
210
|
+
content: trimmed,
|
|
211
|
+
timestamp: Date.now(),
|
|
212
|
+
sessionId: this.state.sessionId,
|
|
213
|
+
metadata: {
|
|
214
|
+
phase: this.state.phase,
|
|
215
|
+
severity: classification.severity,
|
|
216
|
+
contentType: classification.type,
|
|
217
|
+
confidence: classification.confidence,
|
|
218
|
+
bufferSize: this.state.bufferSize,
|
|
219
|
+
processedChunks: this.state.processedChunks
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Classify content to determine event type and severity
|
|
225
|
+
*/
|
|
226
|
+
classifyContent(content) {
|
|
227
|
+
// Check for findings with severity
|
|
228
|
+
for (const [severity, pattern] of Object.entries(this.CLASSIFICATION_PATTERNS.finding)) {
|
|
229
|
+
if (pattern.test(content)) {
|
|
230
|
+
return {
|
|
231
|
+
type: 'finding',
|
|
232
|
+
severity: severity,
|
|
233
|
+
confidence: 0.9
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Check for other content types
|
|
238
|
+
if (this.CLASSIFICATION_PATTERNS.progress.test(content)) {
|
|
239
|
+
return { type: 'progress', confidence: 0.8 };
|
|
240
|
+
}
|
|
241
|
+
if (this.CLASSIFICATION_PATTERNS.error.test(content)) {
|
|
242
|
+
return { type: 'error', confidence: 0.9 };
|
|
243
|
+
}
|
|
244
|
+
if (this.CLASSIFICATION_PATTERNS.milestone.test(content)) {
|
|
245
|
+
return { type: 'milestone', confidence: 0.7 };
|
|
246
|
+
}
|
|
247
|
+
if (this.CLASSIFICATION_PATTERNS.debug.test(content)) {
|
|
248
|
+
return { type: 'debug', confidence: 0.6 };
|
|
249
|
+
}
|
|
250
|
+
// Default classification
|
|
251
|
+
return { type: 'progress', confidence: 0.5 };
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Factory for creating parsers optimized for different CLI agents
|
|
256
|
+
*/
|
|
257
|
+
export class ParserFactory {
|
|
258
|
+
/**
|
|
259
|
+
* Create parser optimized for specific CLI agent
|
|
260
|
+
*/
|
|
261
|
+
static createParser(agent, sessionId) {
|
|
262
|
+
switch (agent) {
|
|
263
|
+
case 'claude':
|
|
264
|
+
return new ClaudeOptimizedParser(agent, sessionId);
|
|
265
|
+
case 'codex':
|
|
266
|
+
return new CodexOptimizedParser(agent, sessionId);
|
|
267
|
+
case 'gemini':
|
|
268
|
+
return new GeminiOptimizedParser(agent, sessionId);
|
|
269
|
+
default:
|
|
270
|
+
return new SemanticOutputParser(agent, sessionId);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Claude-optimized parser (handles thinking blocks and stream-json format)
|
|
276
|
+
*/
|
|
277
|
+
class ClaudeOptimizedParser extends SemanticOutputParser {
|
|
278
|
+
CLAUDE_PATTERNS = {
|
|
279
|
+
thinking: /<thinking>[\s\S]*?<\/thinking>/g,
|
|
280
|
+
streamJson: /^data: (.+)$/gm
|
|
281
|
+
};
|
|
282
|
+
parse(chunk, agent) {
|
|
283
|
+
// Handle Claude's stream-json format
|
|
284
|
+
let processedChunk = chunk;
|
|
285
|
+
const streamJsonMatches = chunk.match(this.CLAUDE_PATTERNS.streamJson);
|
|
286
|
+
if (streamJsonMatches) {
|
|
287
|
+
processedChunk = streamJsonMatches
|
|
288
|
+
.map(match => {
|
|
289
|
+
try {
|
|
290
|
+
const jsonStr = match.replace(/^data: /, '');
|
|
291
|
+
const data = JSON.parse(jsonStr);
|
|
292
|
+
return data.content || '';
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
return '';
|
|
296
|
+
}
|
|
297
|
+
})
|
|
298
|
+
.join(' ');
|
|
299
|
+
}
|
|
300
|
+
// Remove thinking blocks (internal reasoning)
|
|
301
|
+
processedChunk = processedChunk.replace(this.CLAUDE_PATTERNS.thinking, '');
|
|
302
|
+
return super.parse(processedChunk, agent);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Codex-optimized parser (handles JSON structured output)
|
|
307
|
+
*/
|
|
308
|
+
class CodexOptimizedParser extends SemanticOutputParser {
|
|
309
|
+
parse(chunk, agent) {
|
|
310
|
+
// Codex outputs structured JSON, extract assistant messages
|
|
311
|
+
try {
|
|
312
|
+
const lines = chunk.split('\n').filter(line => line.trim());
|
|
313
|
+
let extractedContent = '';
|
|
314
|
+
for (const line of lines) {
|
|
315
|
+
try {
|
|
316
|
+
const data = JSON.parse(line);
|
|
317
|
+
if (data.type === 'assistant' && data.content) {
|
|
318
|
+
extractedContent += data.content + '\n';
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
// Not JSON, treat as raw text
|
|
323
|
+
extractedContent += line + '\n';
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return super.parse(extractedContent, agent);
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
// Fallback to regular parsing
|
|
330
|
+
return super.parse(chunk, agent);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Gemini-optimized parser (handles markdown and structured output)
|
|
336
|
+
*/
|
|
337
|
+
class GeminiOptimizedParser extends SemanticOutputParser {
|
|
338
|
+
GEMINI_PATTERNS = {
|
|
339
|
+
metadata: /^(\*\*|##|\s*-\s*)/gm,
|
|
340
|
+
thinking: /\[THINKING:[\s\S]*?\]/g
|
|
341
|
+
};
|
|
342
|
+
parse(chunk, agent) {
|
|
343
|
+
// Remove Gemini's thinking annotations
|
|
344
|
+
let processedChunk = chunk.replace(this.GEMINI_PATTERNS.thinking, '');
|
|
345
|
+
// Gemini often uses markdown formatting, preserve structure
|
|
346
|
+
return super.parse(processedChunk, agent);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=output-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-parser.js","sourceRoot":"","sources":["../../src/streaming/output-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { StreamingEvent } from '../cli-agents.js';
|
|
3
|
+
/**
|
|
4
|
+
* Analysis progress phases with detailed milestones
|
|
5
|
+
*/
|
|
6
|
+
export declare enum AnalysisPhase {
|
|
7
|
+
INITIALIZING = "initializing",
|
|
8
|
+
COLLECTING_DATA = "collecting_data",
|
|
9
|
+
ANALYZING = "analyzing",
|
|
10
|
+
PROCESSING_RESULTS = "processing_results",
|
|
11
|
+
GENERATING_REPORT = "generating_report",
|
|
12
|
+
COMPLETE = "complete",
|
|
13
|
+
ERROR = "error"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Progress milestone definition
|
|
17
|
+
*/
|
|
18
|
+
export interface ProgressMilestone {
|
|
19
|
+
id: string;
|
|
20
|
+
phase: AnalysisPhase;
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
estimatedDuration?: number;
|
|
24
|
+
weight: number;
|
|
25
|
+
dependencies?: string[];
|
|
26
|
+
optional?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Progress state tracking
|
|
30
|
+
*/
|
|
31
|
+
export interface ProgressState {
|
|
32
|
+
currentPhase: AnalysisPhase;
|
|
33
|
+
overallProgress: number;
|
|
34
|
+
phaseProgress: number;
|
|
35
|
+
completedMilestones: Set<string>;
|
|
36
|
+
currentMilestone?: ProgressMilestone;
|
|
37
|
+
startTime: number;
|
|
38
|
+
lastUpdate: number;
|
|
39
|
+
estimatedCompletion?: number;
|
|
40
|
+
errors: string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Progress event emitted for tracking
|
|
44
|
+
*/
|
|
45
|
+
export interface ProgressEvent {
|
|
46
|
+
type: 'milestone_started' | 'milestone_completed' | 'phase_changed' | 'progress_updated' | 'analysis_complete' | 'analysis_error';
|
|
47
|
+
sessionId: string;
|
|
48
|
+
timestamp: number;
|
|
49
|
+
phase: AnalysisPhase;
|
|
50
|
+
milestone?: ProgressMilestone;
|
|
51
|
+
progress: {
|
|
52
|
+
overall: number;
|
|
53
|
+
phase: number;
|
|
54
|
+
};
|
|
55
|
+
estimatedCompletion?: number;
|
|
56
|
+
metadata?: Record<string, any>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Analysis type-specific milestone definitions
|
|
60
|
+
*/
|
|
61
|
+
export declare const ANALYSIS_MILESTONES: Record<string, ProgressMilestone[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Progress milestone system with intelligent phase detection
|
|
64
|
+
*
|
|
65
|
+
* Features:
|
|
66
|
+
* - Dynamic milestone tracking based on analysis type
|
|
67
|
+
* - Intelligent progress estimation with dependencies
|
|
68
|
+
* - Phase transition detection from CLI output
|
|
69
|
+
* - ETA calculation with adaptive learning
|
|
70
|
+
* - Progress events for real-time updates
|
|
71
|
+
*/
|
|
72
|
+
export declare class ProgressTracker extends EventEmitter {
|
|
73
|
+
private state;
|
|
74
|
+
private milestones;
|
|
75
|
+
private sessionId;
|
|
76
|
+
private analysisType;
|
|
77
|
+
private readonly PHASE_PATTERNS;
|
|
78
|
+
private readonly MILESTONE_TRIGGERS;
|
|
79
|
+
constructor(sessionId: string, analysisType: string);
|
|
80
|
+
/**
|
|
81
|
+
* Process streaming event and update progress
|
|
82
|
+
*/
|
|
83
|
+
processEvent(event: StreamingEvent): void;
|
|
84
|
+
/**
|
|
85
|
+
* Detect current phase from CLI output content
|
|
86
|
+
*/
|
|
87
|
+
private detectPhaseFromContent;
|
|
88
|
+
/**
|
|
89
|
+
* Detect milestone completion from content
|
|
90
|
+
*/
|
|
91
|
+
private detectMilestonesFromContent;
|
|
92
|
+
/**
|
|
93
|
+
* Transition to new phase
|
|
94
|
+
*/
|
|
95
|
+
private transitionToPhase;
|
|
96
|
+
/**
|
|
97
|
+
* Complete a milestone
|
|
98
|
+
*/
|
|
99
|
+
private completeMilestone;
|
|
100
|
+
/**
|
|
101
|
+
* Check if milestone dependencies are met
|
|
102
|
+
*/
|
|
103
|
+
private areDependenciesMet;
|
|
104
|
+
/**
|
|
105
|
+
* Check if milestone should be auto-completed
|
|
106
|
+
*/
|
|
107
|
+
private shouldAutoCompleteMilestone;
|
|
108
|
+
/**
|
|
109
|
+
* Auto-complete milestones from previous phases
|
|
110
|
+
*/
|
|
111
|
+
private autoCompletePreviousPhaseMilestones;
|
|
112
|
+
/**
|
|
113
|
+
* Update progress calculations
|
|
114
|
+
*/
|
|
115
|
+
private updateProgress;
|
|
116
|
+
/**
|
|
117
|
+
* Update estimated completion time
|
|
118
|
+
*/
|
|
119
|
+
private updateEstimatedCompletion;
|
|
120
|
+
/**
|
|
121
|
+
* Handle error in analysis
|
|
122
|
+
*/
|
|
123
|
+
private handleError;
|
|
124
|
+
/**
|
|
125
|
+
* Mark analysis as complete
|
|
126
|
+
*/
|
|
127
|
+
markComplete(): void;
|
|
128
|
+
/**
|
|
129
|
+
* Emit progress event
|
|
130
|
+
*/
|
|
131
|
+
private emitProgressEvent;
|
|
132
|
+
/**
|
|
133
|
+
* Get current progress state
|
|
134
|
+
*/
|
|
135
|
+
getState(): ProgressState;
|
|
136
|
+
/**
|
|
137
|
+
* Get progress summary for display
|
|
138
|
+
*/
|
|
139
|
+
getProgressSummary(): {
|
|
140
|
+
phase: string;
|
|
141
|
+
overallProgress: number;
|
|
142
|
+
phaseProgress: number;
|
|
143
|
+
currentMilestone?: string;
|
|
144
|
+
estimatedTimeRemaining?: number;
|
|
145
|
+
completedMilestones: number;
|
|
146
|
+
totalMilestones: number;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=progress-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../../src/streaming/progress-tracker.ts"],"names":[],"mappings":"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"}
|