flowzap-mcp 1.0.7 → 1.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifactToDiagram.js","sourceRoot":"","sources":["../../src/tools/artifactToDiagram.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACzC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,4LAA4L;IAC9L,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC;gBACtC,WAAW,EAAE,4GAA4G;aAC1H;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC7C;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;gBAC9B,WAAW,EAAE,2EAA2E;aACzF;SACF;QACD,QAAQ,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;KACtC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAuD,EAAE,CAAC;IAErE,uBAAuB;IACvB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,0EAA0E;IAC1E,MAAM,aAAa,GAAG,6CAA6C,CAAC;IACpE,MAAM,WAAW,GAAG,mEAAmE,CAAC;IACxF,MAAM,eAAe,GAAG,iBAAiB,CAAC;IAE1C,IAAI,aAAa,GAAG,QAAQ,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,0BAA0B;QAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;YAE3C,8CAA8C;YAC9C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;gBACnF,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAE1B,UAAU;YACV,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;aAC9E,CAAC,CAAC;YAEH,8BAA8B;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,aAAa;oBACnB,EAAE,EAAE,QAAQ;oBACZ,KAAK,EAAE,GAAG,MAAM,WAAW;iBAC5B,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG,WAAW,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACjB,EAAE,EAAE,QAAQ,CAAC,IAAI;gBACjB,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,2EAA2E;YACjF,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,gHAAgH;YACvH,MAAM,EAAE,CAAC,QAAQ,CAAC;YAClB,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mBAAmB;IACnB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAEvB,6DAA6D;QAC7D,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,UAAkB,CAAC;QAEvB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,UAAU,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,sBAAsB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChF,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5C,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC;QACjD,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,sBAAsB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5E,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/B,cAAc;QACd,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,UAAU,qBAAqB,QAAQ,eAAe,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,UAAU,sBAAsB,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,QAAQ,wBAAwB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9J,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,IAAI,GAAG,MAAM,WAAW,KAAK,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEhC,0CAA0C;QAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,OAAO,CAAC;IAClB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,YAAY,SAAS,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,uBAAuB;QACrF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,KAAK,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,IAAS,CAAC;IAEd,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;QAChC,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,aAAa,GAAG,EAAE,CAAC;YAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAChD,IAAI,SAAS,EAAE,CAAC;oBACd,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC/B,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACpE,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;oBAC/B,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAC3D,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACvD,IAAI,YAAY,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;oBACjD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,sEAAsE;gBAC5E,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,kEAAkE;gBACzE,MAAM,EAAE,CAAC,KAAK,CAAC;gBACf,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAA6D,EAAE,CAAC;IAE3E,oBAAoB;IACpB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QAE9D,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAA8B,CAAC,EAAE,CAAC;YAC/E,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YAExF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,WAAW,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;YAC9F,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAC5B,IAAI;gBACJ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,cAAc,KAAK,8CAA8C;YACvE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,6CAA6C;YACpD,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,IAAI,GAAG,yDAAyD,CAAC;IACrE,IAAI,IAAI,GAAG,SAAS,WAAW,KAAK,IAAI,CAAC;IAEzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9F,IAAI,IAAI,MAAM,MAAM,sBAAsB,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC;IACX,CAAC;IAED,0CAA0C;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC;IAC9E,CAAC;IAED,eAAe;IACf,IAAI,IAAI,MAAM,MAAM,wBAAwB,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,sBAAsB,MAAM,iBAAiB,CAAC;IACxF,CAAC;IAED,IAAI,IAAI,KAAK,CAAC;IAEd,oDAAoD;IACpD,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,+BAA+B,EAC/B,oDAAoD,SAAS,oBAAoB,CAClF,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,aAAa,KAAK,CAAC,MAAM,iCAAiC,KAAK,GAAG;QACzE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1B,SAAS,EAAE,KAAK,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,KAAK,GAA8D,EAAE,CAAC;IAE5E,8BAA8B;IAC9B,MAAM,QAAQ,GAAG;QACf,kEAAkE;QAClE,iCAAiC;QACjC,4CAA4C;QAC5C,oBAAoB;QACpB,sDAAsD;QACtD,4CAA4C;QAC5C,4CAA4C;QAC5C,4BAA4B;KAC7B,CAAC;IAEF,IAAI,aAAa,GAAG,MAAM,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,kCAAkC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,8BAA8B;QAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC1F,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;YAElC,gCAAgC;YAChC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3F,SAAS;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,GAAG;gBACX,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,sEAAsE;YAC5E,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,sDAAsD;YAC7D,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,mBAAmB;IACnB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,IAAI,GAAG,MAAM,WAAW,KAAK,IAAI,CAAC;QACtC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,OAAO,CAAC;IAClB,CAAC;IAED,qCAAqC;IACrC,IAAI,GAAG,EAAE,CAAC;IACV,MAAM,QAAQ,GAAuD,EAAE,CAAC;IACxE,MAAM,QAAQ,GAA0C,EAAE,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEnE,MAAM,UAAU,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC;QAEhC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAElE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,UAAU,qBAAqB,QAAQ,eAAe,EAAE,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,UAAU,sBAAsB,MAAM,IAAI,QAAQ,wBAAwB,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1I,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;IACb,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,IAAI,GAAG,MAAM,WAAW,KAAK,IAAI,CAAC;QAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,sBAAsB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,GAAI,QAAkB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACxE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,OAAO,CAAC;IAClB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,YAAY,KAAK,CAAC,MAAM,0BAA0B,SAAS,CAAC,MAAM,UAAU;QACnF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,KAAK,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI;SACR,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAqB,EACrB,OAAgB,EAChB,IAAc;IAEd,kBAAkB;IAClB,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,+BAA+B;SACvC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yBAAyB,YAAY,6CAA6C;SAC1F,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,0BAA0B;SAClC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yBAAyB;SACjC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,sDAAsD;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,IAAI,MAAsB,CAAC;QAE3B,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,WAAW;gBACd,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM;YACR;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,8BAA8B,YAAY,EAAE;iBACpD,CAAC,CAAC;QACP,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,8EAA8E;aACrF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC7F,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * DiffAndApply Tool
3
+ *
4
+ * Provides diff and structured patch operations for FlowZap Code.
5
+ * Enables AI agents to show "what changed" and safely update diagrams.
6
+ */
7
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
8
+ import { GraphNode, GraphEdge } from "./exportGraph.js";
9
+ export interface DiffResult {
10
+ nodesAdded: GraphNode[];
11
+ nodesRemoved: GraphNode[];
12
+ nodesUpdated: Array<{
13
+ id: string;
14
+ changes: Record<string, {
15
+ old: string;
16
+ new: string;
17
+ }>;
18
+ }>;
19
+ edgesAdded: GraphEdge[];
20
+ edgesRemoved: GraphEdge[];
21
+ lanesAdded: string[];
22
+ lanesRemoved: string[];
23
+ summary: string;
24
+ }
25
+ export interface PatchOperation {
26
+ op: "insertNode" | "removeNode" | "updateNode" | "insertEdge" | "removeEdge" | "updateEdge";
27
+ nodeId?: string;
28
+ edgeId?: string;
29
+ afterNodeId?: string;
30
+ beforeNodeId?: string;
31
+ laneId?: string;
32
+ newNode?: {
33
+ shape: "circle" | "rectangle" | "diamond" | "taskbox";
34
+ label?: string;
35
+ properties?: Record<string, string>;
36
+ };
37
+ newEdge?: {
38
+ from: string;
39
+ to: string;
40
+ label?: string;
41
+ fromHandle?: string;
42
+ toHandle?: string;
43
+ };
44
+ updates?: Record<string, string>;
45
+ }
46
+ export declare const diffTool: Tool;
47
+ export declare const applyChangeTool: Tool;
48
+ /**
49
+ * Compare two FlowZap Code versions and return structured diff
50
+ */
51
+ export declare function diffCode(oldCode: string, newCode: string): DiffResult;
52
+ /**
53
+ * Apply patch operations to FlowZap Code
54
+ */
55
+ export declare function applyChanges(code: string, operations: PatchOperation[]): {
56
+ code: string;
57
+ applied: string[];
58
+ };
59
+ /**
60
+ * Handle diff tool call
61
+ */
62
+ export declare function handleDiff(oldCode: unknown, newCode: unknown): string;
63
+ /**
64
+ * Handle apply_change tool call
65
+ */
66
+ export declare function handleApplyChange(code: unknown, operations: unknown): string;
67
+ //# sourceMappingURL=diffAndApply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffAndApply.d.ts","sourceRoot":"","sources":["../../src/tools/diffAndApply.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAgB,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,YAAY,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC3F,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;QACtD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,QAAQ,EAAE,IAkBtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAiE7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAuGrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuO5G;AAaD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA8BrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CA4C5E"}
@@ -0,0 +1,474 @@
1
+ /**
2
+ * DiffAndApply Tool
3
+ *
4
+ * Provides diff and structured patch operations for FlowZap Code.
5
+ * Enables AI agents to show "what changed" and safely update diagrams.
6
+ */
7
+ import { parseToGraph } from "./exportGraph.js";
8
+ export const diffTool = {
9
+ name: "flowzap_diff",
10
+ description: "Compare two versions of FlowZap Code and get a structured diff showing what changed (nodes/edges added, removed, updated). Use this to explain changes to users.",
11
+ inputSchema: {
12
+ type: "object",
13
+ properties: {
14
+ oldCode: {
15
+ type: "string",
16
+ description: "Original FlowZap Code",
17
+ },
18
+ newCode: {
19
+ type: "string",
20
+ description: "Updated FlowZap Code",
21
+ },
22
+ },
23
+ required: ["oldCode", "newCode"],
24
+ },
25
+ };
26
+ export const applyChangeTool = {
27
+ name: "flowzap_apply_change",
28
+ description: "Apply a structured change to FlowZap Code (insert/remove/update nodes or edges). Safer than regenerating entire diagrams - preserves existing structure.",
29
+ inputSchema: {
30
+ type: "object",
31
+ properties: {
32
+ code: {
33
+ type: "string",
34
+ description: "Current FlowZap Code to modify",
35
+ },
36
+ operations: {
37
+ type: "array",
38
+ description: "Array of patch operations to apply",
39
+ items: {
40
+ type: "object",
41
+ properties: {
42
+ op: {
43
+ type: "string",
44
+ enum: ["insertNode", "removeNode", "updateNode", "insertEdge", "removeEdge"],
45
+ description: "Operation type",
46
+ },
47
+ nodeId: {
48
+ type: "string",
49
+ description: "Node ID for remove/update operations",
50
+ },
51
+ afterNodeId: {
52
+ type: "string",
53
+ description: "Insert new node after this node ID",
54
+ },
55
+ laneId: {
56
+ type: "string",
57
+ description: "Lane ID for insert operations",
58
+ },
59
+ newNode: {
60
+ type: "object",
61
+ description: "New node definition for insert operations",
62
+ properties: {
63
+ shape: { type: "string", enum: ["circle", "rectangle", "diamond", "taskbox"] },
64
+ label: { type: "string" },
65
+ properties: { type: "object" },
66
+ },
67
+ },
68
+ newEdge: {
69
+ type: "object",
70
+ description: "New edge definition for insertEdge",
71
+ properties: {
72
+ from: { type: "string" },
73
+ to: { type: "string" },
74
+ label: { type: "string" },
75
+ fromHandle: { type: "string" },
76
+ toHandle: { type: "string" },
77
+ },
78
+ },
79
+ updates: {
80
+ type: "object",
81
+ description: "Property updates for updateNode operation",
82
+ },
83
+ },
84
+ required: ["op"],
85
+ },
86
+ },
87
+ },
88
+ required: ["code", "operations"],
89
+ },
90
+ };
91
+ /**
92
+ * Compare two FlowZap Code versions and return structured diff
93
+ */
94
+ export function diffCode(oldCode, newCode) {
95
+ const oldGraph = parseToGraph(oldCode);
96
+ const newGraph = parseToGraph(newCode);
97
+ // Build maps for comparison
98
+ const oldNodes = new Map(oldGraph.nodes.map((n) => [n.id, n]));
99
+ const newNodes = new Map(newGraph.nodes.map((n) => [n.id, n]));
100
+ const oldEdges = new Map(oldGraph.edges.map((e) => [`${e.from}->${e.to}`, e]));
101
+ const newEdges = new Map(newGraph.edges.map((e) => [`${e.from}->${e.to}`, e]));
102
+ const oldLanes = new Set(oldGraph.lanes.map((l) => l.id));
103
+ const newLanes = new Set(newGraph.lanes.map((l) => l.id));
104
+ // Find added/removed nodes
105
+ const nodesAdded = [];
106
+ const nodesRemoved = [];
107
+ const nodesUpdated = [];
108
+ for (const [id, node] of newNodes) {
109
+ if (!oldNodes.has(id)) {
110
+ nodesAdded.push(node);
111
+ }
112
+ else {
113
+ // Check for updates
114
+ const oldNode = oldNodes.get(id);
115
+ const changes = {};
116
+ if (oldNode.label !== node.label) {
117
+ changes.label = { old: oldNode.label, new: node.label };
118
+ }
119
+ if (oldNode.shape !== node.shape) {
120
+ changes.shape = { old: oldNode.shape, new: node.shape };
121
+ }
122
+ if (oldNode.laneId !== node.laneId) {
123
+ changes.laneId = { old: oldNode.laneId, new: node.laneId };
124
+ }
125
+ if (Object.keys(changes).length > 0) {
126
+ nodesUpdated.push({ id, changes });
127
+ }
128
+ }
129
+ }
130
+ for (const [id, node] of oldNodes) {
131
+ if (!newNodes.has(id)) {
132
+ nodesRemoved.push(node);
133
+ }
134
+ }
135
+ // Find added/removed edges
136
+ const edgesAdded = [];
137
+ const edgesRemoved = [];
138
+ for (const [key, edge] of newEdges) {
139
+ if (!oldEdges.has(key)) {
140
+ edgesAdded.push(edge);
141
+ }
142
+ }
143
+ for (const [key, edge] of oldEdges) {
144
+ if (!newEdges.has(key)) {
145
+ edgesRemoved.push(edge);
146
+ }
147
+ }
148
+ // Find added/removed lanes
149
+ const lanesAdded = Array.from(newLanes).filter((l) => !oldLanes.has(l));
150
+ const lanesRemoved = Array.from(oldLanes).filter((l) => !newLanes.has(l));
151
+ // Generate summary
152
+ const parts = [];
153
+ if (nodesAdded.length > 0) {
154
+ parts.push(`Added ${nodesAdded.length} node(s): ${nodesAdded.map((n) => `"${n.label}"`).join(", ")}`);
155
+ }
156
+ if (nodesRemoved.length > 0) {
157
+ parts.push(`Removed ${nodesRemoved.length} node(s): ${nodesRemoved.map((n) => `"${n.label}"`).join(", ")}`);
158
+ }
159
+ if (nodesUpdated.length > 0) {
160
+ parts.push(`Updated ${nodesUpdated.length} node(s)`);
161
+ }
162
+ if (edgesAdded.length > 0) {
163
+ parts.push(`Added ${edgesAdded.length} connection(s)`);
164
+ }
165
+ if (edgesRemoved.length > 0) {
166
+ parts.push(`Removed ${edgesRemoved.length} connection(s)`);
167
+ }
168
+ if (lanesAdded.length > 0) {
169
+ parts.push(`Added lane(s): ${lanesAdded.join(", ")}`);
170
+ }
171
+ if (lanesRemoved.length > 0) {
172
+ parts.push(`Removed lane(s): ${lanesRemoved.join(", ")}`);
173
+ }
174
+ const summary = parts.length > 0 ? parts.join(". ") : "No changes detected";
175
+ return {
176
+ nodesAdded,
177
+ nodesRemoved,
178
+ nodesUpdated,
179
+ edgesAdded,
180
+ edgesRemoved,
181
+ lanesAdded,
182
+ lanesRemoved,
183
+ summary,
184
+ };
185
+ }
186
+ /**
187
+ * Apply patch operations to FlowZap Code
188
+ */
189
+ export function applyChanges(code, operations) {
190
+ let lines = code.split("\n");
191
+ const applied = [];
192
+ // Parse current structure to understand node positions
193
+ const graph = parseToGraph(code);
194
+ const nodeLines = new Map(); // nodeId -> line number
195
+ const laneRanges = new Map(); // laneId -> line range
196
+ // Find node and lane positions
197
+ let currentLane = null;
198
+ let laneStart = 0;
199
+ for (let i = 0; i < lines.length; i++) {
200
+ const line = lines[i].trim();
201
+ const laneMatch = line.match(/^(.+?)\s*\{/);
202
+ if (laneMatch) {
203
+ currentLane = laneMatch[1].trim();
204
+ laneStart = i;
205
+ }
206
+ if (line === "}" && currentLane) {
207
+ laneRanges.set(currentLane, { start: laneStart, end: i });
208
+ currentLane = null;
209
+ }
210
+ const nodeMatch = line.match(/^(n\d+):/);
211
+ if (nodeMatch) {
212
+ nodeLines.set(nodeMatch[1], i);
213
+ }
214
+ }
215
+ // Find highest node number
216
+ let maxNodeNum = 0;
217
+ for (const node of graph.nodes) {
218
+ const match = node.id.match(/^n(\d+)$/);
219
+ if (match) {
220
+ maxNodeNum = Math.max(maxNodeNum, parseInt(match[1], 10));
221
+ }
222
+ }
223
+ // Apply operations
224
+ for (const op of operations) {
225
+ switch (op.op) {
226
+ case "insertNode": {
227
+ if (!op.newNode || !op.laneId) {
228
+ applied.push(`insertNode: skipped (missing newNode or laneId)`);
229
+ continue;
230
+ }
231
+ const newNodeId = `n${++maxNodeNum}`;
232
+ const shape = op.newNode.shape || "rectangle";
233
+ let nodeLine = ` ${newNodeId}: ${shape}`;
234
+ if (op.newNode.label) {
235
+ nodeLine += ` label:"${escapeLabel(op.newNode.label)}"`;
236
+ }
237
+ if (op.newNode.properties) {
238
+ for (const [key, value] of Object.entries(op.newNode.properties)) {
239
+ nodeLine += ` ${key}:"${escapeLabel(value)}"`;
240
+ }
241
+ }
242
+ // Find insertion point
243
+ const laneRange = laneRanges.get(op.laneId);
244
+ if (!laneRange) {
245
+ applied.push(`insertNode: skipped (lane "${op.laneId}" not found)`);
246
+ continue;
247
+ }
248
+ let insertAt = laneRange.end; // Default: before closing brace
249
+ if (op.afterNodeId && nodeLines.has(op.afterNodeId)) {
250
+ insertAt = nodeLines.get(op.afterNodeId) + 1;
251
+ }
252
+ lines.splice(insertAt, 0, nodeLine);
253
+ applied.push(`insertNode: added "${op.newNode.label || newNodeId}" as ${newNodeId} in ${op.laneId}`);
254
+ // Update line numbers for subsequent operations
255
+ for (const [nodeId, lineNum] of nodeLines) {
256
+ if (lineNum >= insertAt) {
257
+ nodeLines.set(nodeId, lineNum + 1);
258
+ }
259
+ }
260
+ for (const [laneId, range] of laneRanges) {
261
+ if (range.start >= insertAt)
262
+ range.start++;
263
+ if (range.end >= insertAt)
264
+ range.end++;
265
+ }
266
+ nodeLines.set(newNodeId, insertAt);
267
+ break;
268
+ }
269
+ case "removeNode": {
270
+ if (!op.nodeId) {
271
+ applied.push(`removeNode: skipped (missing nodeId)`);
272
+ continue;
273
+ }
274
+ const lineNum = nodeLines.get(op.nodeId);
275
+ if (lineNum === undefined) {
276
+ applied.push(`removeNode: skipped (node "${op.nodeId}" not found)`);
277
+ continue;
278
+ }
279
+ lines.splice(lineNum, 1);
280
+ applied.push(`removeNode: removed ${op.nodeId}`);
281
+ // Update line numbers
282
+ for (const [nodeId, ln] of nodeLines) {
283
+ if (ln > lineNum) {
284
+ nodeLines.set(nodeId, ln - 1);
285
+ }
286
+ }
287
+ nodeLines.delete(op.nodeId);
288
+ break;
289
+ }
290
+ case "updateNode": {
291
+ if (!op.nodeId || !op.updates) {
292
+ applied.push(`updateNode: skipped (missing nodeId or updates)`);
293
+ continue;
294
+ }
295
+ const lineNum = nodeLines.get(op.nodeId);
296
+ if (lineNum === undefined) {
297
+ applied.push(`updateNode: skipped (node "${op.nodeId}" not found)`);
298
+ continue;
299
+ }
300
+ let line = lines[lineNum];
301
+ for (const [key, value] of Object.entries(op.updates)) {
302
+ // Replace existing property or add new one
303
+ const propRegex = new RegExp(`${key}\\s*[:=]\\s*"[^"]*"`);
304
+ if (propRegex.test(line)) {
305
+ line = line.replace(propRegex, `${key}:"${escapeLabel(value)}"`);
306
+ }
307
+ else {
308
+ // Add before end of line
309
+ line = line.trimEnd() + ` ${key}:"${escapeLabel(value)}"`;
310
+ }
311
+ }
312
+ lines[lineNum] = line;
313
+ applied.push(`updateNode: updated ${op.nodeId} with ${Object.keys(op.updates).join(", ")}`);
314
+ break;
315
+ }
316
+ case "insertEdge": {
317
+ if (!op.newEdge) {
318
+ applied.push(`insertEdge: skipped (missing newEdge)`);
319
+ continue;
320
+ }
321
+ const { from, to, label, fromHandle = "right", toHandle = "left" } = op.newEdge;
322
+ // Find the lane of the source node
323
+ const sourceNode = graph.nodes.find((n) => n.id === from);
324
+ if (!sourceNode) {
325
+ applied.push(`insertEdge: skipped (source node "${from}" not found)`);
326
+ continue;
327
+ }
328
+ const laneRange = laneRanges.get(sourceNode.laneId);
329
+ if (!laneRange) {
330
+ applied.push(`insertEdge: skipped (lane not found)`);
331
+ continue;
332
+ }
333
+ // Check if target is in different lane (cross-lane edge)
334
+ const targetNode = graph.nodes.find((n) => n.id === to);
335
+ let edgeLine;
336
+ if (targetNode && targetNode.laneId !== sourceNode.laneId) {
337
+ edgeLine = ` ${from}.handle(${fromHandle}) -> ${targetNode.laneId}.${to}.handle(${toHandle})`;
338
+ }
339
+ else {
340
+ edgeLine = ` ${from}.handle(${fromHandle}) -> ${to}.handle(${toHandle})`;
341
+ }
342
+ if (label) {
343
+ edgeLine += ` [label="${escapeLabel(label)}"]`;
344
+ }
345
+ // Insert before closing brace of the lane
346
+ lines.splice(laneRange.end, 0, edgeLine);
347
+ applied.push(`insertEdge: added ${from} -> ${to}${label ? ` [${label}]` : ""}`);
348
+ // Update ranges
349
+ for (const [laneId, range] of laneRanges) {
350
+ if (range.end >= laneRange.end)
351
+ range.end++;
352
+ }
353
+ break;
354
+ }
355
+ case "removeEdge": {
356
+ if (!op.newEdge) {
357
+ applied.push(`removeEdge: skipped (missing edge specification)`);
358
+ continue;
359
+ }
360
+ const { from, to } = op.newEdge;
361
+ // Find and remove the edge line
362
+ const edgePattern = new RegExp(`^\\s*${from}\\.handle\\([^)]+\\)\\s*->\\s*(?:\\w+\\.)?${to}\\.handle`);
363
+ let removed = false;
364
+ for (let i = 0; i < lines.length; i++) {
365
+ if (edgePattern.test(lines[i])) {
366
+ lines.splice(i, 1);
367
+ removed = true;
368
+ applied.push(`removeEdge: removed ${from} -> ${to}`);
369
+ break;
370
+ }
371
+ }
372
+ if (!removed) {
373
+ applied.push(`removeEdge: skipped (edge ${from} -> ${to} not found)`);
374
+ }
375
+ break;
376
+ }
377
+ default:
378
+ applied.push(`Unknown operation: ${op.op}`);
379
+ }
380
+ }
381
+ return {
382
+ code: lines.join("\n"),
383
+ applied,
384
+ };
385
+ }
386
+ /**
387
+ * Escape label text
388
+ */
389
+ function escapeLabel(text) {
390
+ return text
391
+ .replace(/\\/g, "\\\\")
392
+ .replace(/"/g, '\\"')
393
+ .replace(/\n/g, " ")
394
+ .trim();
395
+ }
396
+ /**
397
+ * Handle diff tool call
398
+ */
399
+ export function handleDiff(oldCode, newCode) {
400
+ if (typeof oldCode !== "string" || typeof newCode !== "string") {
401
+ return JSON.stringify({
402
+ success: false,
403
+ error: "Both oldCode and newCode must be strings",
404
+ });
405
+ }
406
+ try {
407
+ const diff = diffCode(oldCode, newCode);
408
+ return JSON.stringify({
409
+ success: true,
410
+ changes: {
411
+ nodesAdded: diff.nodesAdded.map((n) => ({ id: n.id, label: n.label, lane: n.laneId })),
412
+ nodesRemoved: diff.nodesRemoved.map((n) => ({ id: n.id, label: n.label, lane: n.laneId })),
413
+ nodesUpdated: diff.nodesUpdated,
414
+ edgesAdded: diff.edgesAdded.map((e) => ({ from: e.from, to: e.to, label: e.label })),
415
+ edgesRemoved: diff.edgesRemoved.map((e) => ({ from: e.from, to: e.to, label: e.label })),
416
+ lanesAdded: diff.lanesAdded,
417
+ lanesRemoved: diff.lanesRemoved,
418
+ },
419
+ summary: diff.summary,
420
+ }, null, 2);
421
+ }
422
+ catch (error) {
423
+ return JSON.stringify({
424
+ success: false,
425
+ error: `Failed to diff code: ${error instanceof Error ? error.message : String(error)}`,
426
+ });
427
+ }
428
+ }
429
+ /**
430
+ * Handle apply_change tool call
431
+ */
432
+ export function handleApplyChange(code, operations) {
433
+ if (typeof code !== "string") {
434
+ return JSON.stringify({
435
+ success: false,
436
+ error: "code must be a string",
437
+ });
438
+ }
439
+ if (!Array.isArray(operations)) {
440
+ return JSON.stringify({
441
+ success: false,
442
+ error: "operations must be an array",
443
+ });
444
+ }
445
+ // Validate operations
446
+ const validOps = ["insertNode", "removeNode", "updateNode", "insertEdge", "removeEdge"];
447
+ for (const op of operations) {
448
+ if (typeof op !== "object" || !op || !validOps.includes(op.op)) {
449
+ return JSON.stringify({
450
+ success: false,
451
+ error: `Invalid operation: ${JSON.stringify(op)}. op must be one of: ${validOps.join(", ")}`,
452
+ });
453
+ }
454
+ }
455
+ try {
456
+ const result = applyChanges(code, operations);
457
+ return JSON.stringify({
458
+ success: true,
459
+ code: result.code,
460
+ applied: result.applied,
461
+ summary: `Applied ${result.applied.length} operation(s)`,
462
+ _next: {
463
+ hint: "Call flowzap_create_playground with the updated code to get a shareable URL",
464
+ },
465
+ }, null, 2);
466
+ }
467
+ catch (error) {
468
+ return JSON.stringify({
469
+ success: false,
470
+ error: `Failed to apply changes: ${error instanceof Error ? error.message : String(error)}`,
471
+ });
472
+ }
473
+ }
474
+ //# sourceMappingURL=diffAndApply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffAndApply.js","sourceRoot":"","sources":["../../src/tools/diffAndApply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * ExportGraph Tool
3
+ *
4
+ * Parses FlowZap Code into a structured JSON graph for AI agent reasoning.
5
+ * Enables agents to query diagram structure without re-parsing DSL.
6
+ */
7
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
8
+ export interface Lane {
9
+ id: string;
10
+ label: string;
11
+ type: "actor" | "system" | "unknown";
12
+ }
13
+ export interface GraphNode {
14
+ id: string;
15
+ laneId: string;
16
+ label: string;
17
+ kind: "start" | "end" | "step" | "decision" | "task";
18
+ shape: "circle" | "rectangle" | "diamond" | "taskbox";
19
+ properties?: Record<string, string>;
20
+ }
21
+ export interface GraphEdge {
22
+ id: string;
23
+ from: string;
24
+ to: string;
25
+ fromLane?: string;
26
+ toLane?: string;
27
+ label?: string;
28
+ sourceHandle: string;
29
+ targetHandle: string;
30
+ }
31
+ export interface ExportedGraph {
32
+ lanes: Lane[];
33
+ nodes: GraphNode[];
34
+ edges: GraphEdge[];
35
+ stats: {
36
+ laneCount: number;
37
+ nodeCount: number;
38
+ edgeCount: number;
39
+ crossLaneEdges: number;
40
+ };
41
+ }
42
+ export declare const exportGraphTool: Tool;
43
+ /**
44
+ * Parse FlowZap Code into a structured graph
45
+ */
46
+ export declare function parseToGraph(code: string): ExportedGraph;
47
+ /**
48
+ * Handle the export_graph tool call
49
+ */
50
+ export declare function handleExportGraph(code: unknown): string;
51
+ //# sourceMappingURL=exportGraph.d.ts.map