@weavelogic/knowledge-graph-agent 0.8.8 → 0.10.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":"types.d.ts","sourceRoot":"","sources":["../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,MAAM,EAAE,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG,QAAQ,MAAM,EAAE,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,EAAE,CAAC;AACxC,MAAM,MAAM,UAAU,GAAG,QAAQ,MAAM,EAAE,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,SAAS,MAAM,EAAE,CAAC;AAC3C,MAAM,MAAM,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;AACxC,MAAM,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,0BAA0B,GAC1B,0BAA0B,GAC1B,4BAA4B,GAC5B,wBAAwB,GACxB,0BAA0B,GAC1B,yBAAyB,GACzB,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,UAAU,GACV,aAAa,GACb,WAAW,GACX,YAAY,GACZ,SAAS,GACT,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAMnE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1C,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC9C;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,SAAS,EAAE,IAAI,CAAC;IAChB,4BAA4B;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,SAAS,EAAE,IAAI,CAAC;IAChB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,6BAA6B;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,2CAA2C;IAC3C,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,oDAAoD;IACpD,UAAU,EAAE,oBAAoB,CAAC;IACjC,gEAAgE;IAChE,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,uBAAuB;IACvB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,EAAE,EAAE,cAAc,CAAC;IACnB,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,KAAK,EAAE,WAAW,CAAC;IACnB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,mDAAmD;IACnD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,kCAAkC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,gCAAgC;IAChC,SAAS,EAAE,IAAI,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,8CAA8C;IAC9C,UAAU,EAAE,UAAU,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,4BAA4B;IAC5B,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;CACpF;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,6BAA6B;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,uDAAuD;IACvD,IAAI,EAAE,WAAW,CAAC;IAClB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,uDAAuD;IACvD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,wEAAwE;IACxE,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,mCAAmC;IACnC,SAAS,EAAE,IAAI,CAAC;IAChB,mCAAmC;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,CAAC;IACtE,uBAAuB;IACvB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,sBAAsB,GACtB,oBAAoB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,oEAAoE;IACpE,SAAS,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,YAAY,EAAE,YAAY,CAAC;IAC3B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,iCAAiC;IACjC,SAAS,EAAE,IAAI,CAAC;IAChB,mCAAmC;IACnC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,yBAAyB;IACzB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,QAAQ,GACR,KAAK,GACL,MAAM,GACN,UAAU,GACV,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,kDAAkD;IAClD,oBAAoB,EAAE,cAAc,CAAC;IACrC,+CAA+C;IAC/C,eAAe,EAAE,SAAS,CAAC;IAC3B,2CAA2C;IAC3C,UAAU,EAAE,UAAU,CAAC;IACvB,gCAAgC;IAChC,SAAS,EAAE,eAAe,CAAC;IAC3B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,6BAA6B;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,wCAAwC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,qBAAqB;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,yBAAyB;IACzB,QAAQ,EAAE,aAAa,CAAC;IACxB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,qCAAqC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,wCAAwC;IACxC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6BAA6B;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,qBAAqB;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACjD,2BAA2B;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,EAAE,EAAE,UAAU,CAAC;IACf,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAClD,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,4BAA4B;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,sBAAsB;IACtB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,6BAA6B;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,+BAA+B;IAC/B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,4BAA4B;IAC5B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACzD,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kCAAkC;IAClC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,kBAAkB;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,+BAA+B,GAC/B,wBAAwB,GACxB,2BAA2B,GAC3B,+BAA+B,GAC/B,2BAA2B,GAC3B,4BAA4B,GAC5B,yBAAyB,GACzB,wBAAwB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,wBAAwB,GACxB,oBAAoB,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,IAAI,CAAC;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,iCAAiC;IACjC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,2BAA2B;IAC3B,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,IAAI,CAAC;QACb,GAAG,CAAC,EAAE,IAAI,CAAC;KACZ,CAAC;IACF,uBAAuB;IACvB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,sBAAsB;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,CAAC;IAClE,qBAAqB;IACrB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACxE,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI,CAAC;QACf,MAAM,EAAE,IAAI,CAAC;KACd,CAAC;CACH;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB9B,CAAC;AAMH;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAQlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAQ5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAQlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAQpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAQpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAQ9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAQpE"}
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ const TokenUsageSchema = z.object({
3
+ inputTokens: z.number().int().nonnegative(),
4
+ outputTokens: z.number().int().nonnegative(),
5
+ cacheReadTokens: z.number().int().nonnegative().optional(),
6
+ cacheWriteTokens: z.number().int().nonnegative().optional(),
7
+ totalTokens: z.number().int().nonnegative(),
8
+ estimatedCostUsd: z.number().nonnegative().optional()
9
+ });
10
+ const BaseMetadataSchema = z.object({
11
+ createdAt: z.coerce.date(),
12
+ updatedAt: z.coerce.date(),
13
+ tags: z.array(z.string()),
14
+ custom: z.record(z.unknown()).optional()
15
+ });
16
+ z.object({
17
+ id: z.string().startsWith("session_"),
18
+ name: z.string().min(1),
19
+ purpose: z.string().optional(),
20
+ startedAt: z.coerce.date(),
21
+ endedAt: z.coerce.date().optional(),
22
+ status: z.enum(["pending", "running", "completed", "failed", "cancelled", "timeout"]),
23
+ conversationIds: z.array(z.string().startsWith("conv_")),
24
+ swarmIds: z.array(z.string().startsWith("swarm_")).optional(),
25
+ workflowIds: z.array(z.string().startsWith("wf_")).optional(),
26
+ tokenUsage: TokenUsageSchema.extend({
27
+ operationCount: z.number().int().nonnegative(),
28
+ byModel: z.record(TokenUsageSchema).optional(),
29
+ byOperationType: z.record(TokenUsageSchema).optional()
30
+ }),
31
+ metadata: BaseMetadataSchema
32
+ });
33
+ function createSessionId() {
34
+ return `session_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
35
+ }
36
+ function createConversationId() {
37
+ return `conv_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
38
+ }
39
+ function createMessageId() {
40
+ return `msg_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
41
+ }
42
+ function createToolCallId() {
43
+ return `tool_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
44
+ }
45
+ function createSubAgentId() {
46
+ return `agent_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
47
+ }
48
+ function createSwarmId() {
49
+ return `swarm_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
50
+ }
51
+ export {
52
+ BaseMetadataSchema,
53
+ TokenUsageSchema,
54
+ createConversationId,
55
+ createMessageId,
56
+ createSessionId,
57
+ createSubAgentId,
58
+ createSwarmId,
59
+ createToolCallId
60
+ };
61
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../src/claude/types.ts"],"sourcesContent":["/**\n * Claude Interaction Storage Schema\n *\n * Hierarchical storage schema for storing Claude prompts, outputs, and tool calls\n * in a knowledge graph. Supports hierarchical nesting from sessions down to\n * individual tool calls and sub-agent operations.\n *\n * @module claude/types\n */\n\nimport { z } from 'zod';\n\n// ============================================================================\n// Base Identifiers and Enums\n// ============================================================================\n\n/**\n * Unique identifier types for different hierarchy levels\n */\nexport type SessionId = `session_${string}`;\nexport type ConversationId = `conv_${string}`;\nexport type MessageId = `msg_${string}`;\nexport type ToolCallId = `tool_${string}`;\nexport type SubAgentId = `agent_${string}`;\nexport type SwarmId = `swarm_${string}`;\nexport type WorkflowId = `wf_${string}`;\n\n/**\n * Claude model identifiers\n */\nexport type ClaudeModel =\n | 'claude-opus-4-5-20251101'\n | 'claude-sonnet-4-20250514'\n | 'claude-3-5-sonnet-20241022'\n | 'claude-3-opus-20240229'\n | 'claude-3-sonnet-20240229'\n | 'claude-3-haiku-20240307'\n | string; // Allow for future models\n\n/**\n * Message role in conversation\n */\nexport type MessageRole = 'user' | 'assistant' | 'system';\n\n/**\n * Status of a hierarchical node\n */\nexport type ExecutionStatus =\n | 'pending'\n | 'running'\n | 'completed'\n | 'failed'\n | 'cancelled'\n | 'timeout';\n\n/**\n * Agent type classification for sub-agents and swarm members\n */\nexport type ClaudeAgentType =\n | 'researcher'\n | 'coder'\n | 'tester'\n | 'analyst'\n | 'architect'\n | 'reviewer'\n | 'coordinator'\n | 'optimizer'\n | 'documenter'\n | 'planner'\n | 'custom';\n\n/**\n * Swarm topology types from claude-flow\n */\nexport type SwarmTopology = 'mesh' | 'hierarchical' | 'ring' | 'star';\n\n/**\n * Swarm execution strategy\n */\nexport type SwarmStrategy = 'parallel' | 'sequential' | 'adaptive';\n\n// ============================================================================\n// Token Usage Tracking\n// ============================================================================\n\n/**\n * Token usage metrics for cost tracking and optimization\n */\nexport interface TokenUsage {\n /** Input tokens consumed */\n inputTokens: number;\n /** Output tokens generated */\n outputTokens: number;\n /** Cache read tokens (if using prompt caching) */\n cacheReadTokens?: number;\n /** Cache write tokens (if using prompt caching) */\n cacheWriteTokens?: number;\n /** Total tokens (computed) */\n totalTokens: number;\n /** Estimated cost in USD (based on model pricing) */\n estimatedCostUsd?: number;\n}\n\n/**\n * Aggregated token usage across multiple operations\n */\nexport interface AggregatedTokenUsage extends TokenUsage {\n /** Number of operations aggregated */\n operationCount: number;\n /** Breakdown by model if multiple models used */\n byModel?: Record<ClaudeModel, TokenUsage>;\n /** Breakdown by operation type */\n byOperationType?: Record<string, TokenUsage>;\n}\n\n// ============================================================================\n// Base Metadata Interface\n// ============================================================================\n\n/**\n * Common metadata for all hierarchical nodes\n */\nexport interface BaseMetadata {\n /** Creation timestamp */\n createdAt: Date;\n /** Last update timestamp */\n updatedAt: Date;\n /** User-defined tags for categorization */\n tags: string[];\n /** Custom key-value metadata */\n custom?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Session Level (Top of Hierarchy)\n// ============================================================================\n\n/**\n * Session represents a complete interaction session with Claude\n *\n * Sessions are the top level of the hierarchy and contain multiple conversations.\n * They track overall context, purpose, and aggregated metrics.\n *\n * @example\n * ```typescript\n * const session: ClaudeSession = {\n * id: 'session_abc123',\n * name: 'Feature Development Session',\n * purpose: 'Implement user authentication feature',\n * startedAt: new Date('2024-01-15T10:00:00Z'),\n * status: 'running',\n * conversationIds: ['conv_xyz789'],\n * tokenUsage: { inputTokens: 5000, outputTokens: 3000, totalTokens: 8000 },\n * metadata: { tags: ['auth', 'feature'], createdAt: new Date() },\n * };\n * ```\n */\nexport interface ClaudeSession {\n /** Unique session identifier */\n id: SessionId;\n /** Human-readable session name */\n name: string;\n /** Purpose or goal of the session */\n purpose?: string;\n /** When the session started */\n startedAt: Date;\n /** When the session ended (if completed) */\n endedAt?: Date;\n /** Current session status */\n status: ExecutionStatus;\n /** IDs of conversations in this session */\n conversationIds: ConversationId[];\n /** IDs of swarms spawned during this session */\n swarmIds?: SwarmId[];\n /** IDs of workflows executed during this session */\n workflowIds?: WorkflowId[];\n /** Aggregated token usage for the entire session */\n tokenUsage: AggregatedTokenUsage;\n /** Environment context (working directory, git branch, etc.) */\n environment?: SessionEnvironment;\n /** Session metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Environment context captured at session start\n */\nexport interface SessionEnvironment {\n /** Working directory path */\n workingDirectory: string;\n /** Git branch if in a repository */\n gitBranch?: string;\n /** Git commit hash at session start */\n gitCommit?: string;\n /** Platform (linux, darwin, win32) */\n platform: string;\n /** Node.js version if applicable */\n nodeVersion?: string;\n /** Claude Code version */\n claudeCodeVersion?: string;\n /** Active MCP servers */\n mcpServers?: string[];\n}\n\n// ============================================================================\n// Conversation/Thread Level\n// ============================================================================\n\n/**\n * Conversation represents a single thread of messages with Claude\n *\n * Conversations are contained within sessions and contain ordered messages.\n * They track the flow of interaction including tool calls and responses.\n *\n * @example\n * ```typescript\n * const conversation: ClaudeConversation = {\n * id: 'conv_xyz789',\n * sessionId: 'session_abc123',\n * title: 'Implement login endpoint',\n * model: 'claude-opus-4-5-20251101',\n * messageIds: ['msg_001', 'msg_002'],\n * status: 'completed',\n * tokenUsage: { inputTokens: 2000, outputTokens: 1500, totalTokens: 3500 },\n * metadata: { tags: ['api', 'auth'] },\n * };\n * ```\n */\nexport interface ClaudeConversation {\n /** Unique conversation identifier */\n id: ConversationId;\n /** Parent session ID */\n sessionId: SessionId;\n /** Conversation title or topic */\n title?: string;\n /** Primary model used in this conversation */\n model: ClaudeModel;\n /** System prompt used (if any) */\n systemPrompt?: string;\n /** Ordered list of message IDs */\n messageIds: MessageId[];\n /** Sub-agent IDs spawned from this conversation */\n subAgentIds?: SubAgentId[];\n /** Current conversation status */\n status: ExecutionStatus;\n /** When conversation started */\n startedAt: Date;\n /** When conversation ended */\n endedAt?: Date;\n /** Total token usage for this conversation */\n tokenUsage: TokenUsage;\n /** Conversation context (file paths, topics, etc.) */\n context?: ConversationContext;\n /** Conversation metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Context information for a conversation\n */\nexport interface ConversationContext {\n /** Primary files being discussed or edited */\n primaryFiles?: string[];\n /** Related knowledge graph node IDs */\n relatedNodeIds?: string[];\n /** Topic keywords extracted from conversation */\n topics?: string[];\n /** User intent classification */\n intent?: 'query' | 'task' | 'debug' | 'refactor' | 'document' | 'review' | 'other';\n}\n\n// ============================================================================\n// Message Level\n// ============================================================================\n\n/**\n * Message represents a single prompt or response in a conversation\n *\n * Messages are the core unit of interaction and contain the actual content\n * exchanged between user and Claude, including any tool calls made.\n *\n * @example\n * ```typescript\n * const message: ClaudeMessage = {\n * id: 'msg_001',\n * conversationId: 'conv_xyz789',\n * role: 'user',\n * content: 'Create a login endpoint with JWT authentication',\n * timestamp: new Date(),\n * tokenUsage: { inputTokens: 50, outputTokens: 0, totalTokens: 50 },\n * metadata: { tags: ['request'] },\n * };\n * ```\n */\nexport interface ClaudeMessage {\n /** Unique message identifier */\n id: MessageId;\n /** Parent conversation ID */\n conversationId: ConversationId;\n /** Message role (user prompt or assistant response) */\n role: MessageRole;\n /** Text content of the message */\n content: string;\n /** Structured content blocks (for complex responses) */\n contentBlocks?: MessageContentBlock[];\n /** Tool calls made in this message (assistant only) */\n toolCallIds?: ToolCallId[];\n /** Tool results included in this message (user only, as tool_result) */\n toolResultIds?: ToolCallId[];\n /** When the message was created */\n timestamp: Date;\n /** Token usage for this message */\n tokenUsage: TokenUsage;\n /** Stop reason (for assistant messages) */\n stopReason?: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use';\n /** Message metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Content block types for structured message content\n */\nexport type MessageContentBlock =\n | TextContentBlock\n | CodeContentBlock\n | ToolUseContentBlock\n | ToolResultContentBlock\n | ThinkingContentBlock;\n\n/**\n * Plain text content block\n */\nexport interface TextContentBlock {\n type: 'text';\n text: string;\n}\n\n/**\n * Code content block with language identification\n */\nexport interface CodeContentBlock {\n type: 'code';\n language: string;\n code: string;\n /** File path if this code is for a specific file */\n filePath?: string;\n}\n\n/**\n * Tool use content block\n */\nexport interface ToolUseContentBlock {\n type: 'tool_use';\n toolCallId: ToolCallId;\n toolName: string;\n input: Record<string, unknown>;\n}\n\n/**\n * Tool result content block\n */\nexport interface ToolResultContentBlock {\n type: 'tool_result';\n toolCallId: ToolCallId;\n content: string;\n isError?: boolean;\n}\n\n/**\n * Extended thinking content block (for extended thinking mode)\n */\nexport interface ThinkingContentBlock {\n type: 'thinking';\n thinking: string;\n /** Summary of the thinking (for display) */\n summary?: string;\n}\n\n// ============================================================================\n// Tool Call Level\n// ============================================================================\n\n/**\n * Tool call represents a single tool invocation by Claude\n *\n * Tool calls are made by assistant messages and track the full lifecycle\n * from invocation through execution to result.\n *\n * @example\n * ```typescript\n * const toolCall: ClaudeToolCall = {\n * id: 'tool_abc123',\n * messageId: 'msg_002',\n * toolName: 'Edit',\n * toolCategory: 'file',\n * input: { file_path: '/src/auth.ts', old_string: '...', new_string: '...' },\n * output: { success: true },\n * status: 'completed',\n * executionTimeMs: 150,\n * metadata: { tags: ['edit'] },\n * };\n * ```\n */\nexport interface ClaudeToolCall {\n /** Unique tool call identifier */\n id: ToolCallId;\n /** Parent message ID (the assistant message that made this call) */\n messageId: MessageId;\n /** Name of the tool invoked */\n toolName: string;\n /** Category of tool (for grouping and analysis) */\n toolCategory: ToolCategory;\n /** Input parameters passed to the tool */\n input: Record<string, unknown>;\n /** Output/result from the tool */\n output?: unknown;\n /** Error information if tool call failed */\n error?: ToolCallError;\n /** Execution status */\n status: ExecutionStatus;\n /** When the tool call started */\n startedAt: Date;\n /** When the tool call completed */\n completedAt?: Date;\n /** Total execution time in milliseconds */\n executionTimeMs?: number;\n /** Files affected by this tool call */\n affectedFiles?: string[];\n /** Tool call metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Tool categories for grouping and analysis\n */\nexport type ToolCategory =\n | 'file' // Read, Write, Edit, Glob, Grep\n | 'bash' // Bash command execution\n | 'search' // WebSearch, WebFetch\n | 'mcp' // MCP server tools\n | 'task' // Task tool for sub-agents\n | 'notebook' // NotebookEdit\n | 'todo' // TodoWrite\n | 'skill' // Skill invocations\n | 'other';\n\n/**\n * Error information for failed tool calls\n */\nexport interface ToolCallError {\n /** Error type/code */\n type: string;\n /** Human-readable error message */\n message: string;\n /** Additional error details */\n details?: Record<string, unknown>;\n /** Whether the error is recoverable */\n recoverable?: boolean;\n}\n\n// ============================================================================\n// Sub-Agent Level (Task Tool Spawns)\n// ============================================================================\n\n/**\n * Sub-agent represents an agent spawned via the Task tool\n *\n * Sub-agents are child agents created during a conversation to handle\n * specific tasks. They have their own conversation context and can\n * spawn further sub-agents.\n *\n * @example\n * ```typescript\n * const subAgent: ClaudeSubAgent = {\n * id: 'agent_def456',\n * parentConversationId: 'conv_xyz789',\n * parentMessageId: 'msg_002',\n * agentType: 'coder',\n * name: 'Backend Implementation Agent',\n * task: 'Implement the login endpoint with proper validation',\n * model: 'claude-sonnet-4-20250514',\n * conversationId: 'conv_sub001',\n * status: 'completed',\n * result: { success: true, filesCreated: ['src/auth.ts'] },\n * tokenUsage: { inputTokens: 1000, outputTokens: 800, totalTokens: 1800 },\n * metadata: { tags: ['backend'] },\n * };\n * ```\n */\nexport interface ClaudeSubAgent {\n /** Unique sub-agent identifier */\n id: SubAgentId;\n /** Parent conversation that spawned this agent */\n parentConversationId: ConversationId;\n /** Specific message that spawned this agent */\n parentMessageId: MessageId;\n /** Tool call ID that created this agent */\n toolCallId: ToolCallId;\n /** Agent type/specialization */\n agentType: ClaudeAgentType;\n /** Agent name (for identification) */\n name: string;\n /** Task description given to the agent */\n task: string;\n /** Model used by this sub-agent */\n model: ClaudeModel;\n /** Conversation ID for this agent's work */\n conversationId?: ConversationId;\n /** Child sub-agent IDs spawned by this agent */\n childAgentIds?: SubAgentId[];\n /** Execution status */\n status: ExecutionStatus;\n /** When the agent started */\n startedAt: Date;\n /** When the agent completed */\n completedAt?: Date;\n /** Result/output from the agent */\n result?: SubAgentResult;\n /** Token usage for this agent's work */\n tokenUsage: TokenUsage;\n /** Agent metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Result from a sub-agent execution\n */\nexport interface SubAgentResult {\n /** Whether the task was successful */\n success: boolean;\n /** Summary of what was accomplished */\n summary?: string;\n /** Files created by the agent */\n filesCreated?: string[];\n /** Files modified by the agent */\n filesModified?: string[];\n /** Files deleted by the agent */\n filesDeleted?: string[];\n /** Error message if failed */\n error?: string;\n /** Structured output data */\n data?: unknown;\n}\n\n// ============================================================================\n// Swarm Level (Claude-Flow Swarms)\n// ============================================================================\n\n/**\n * Swarm represents a claude-flow swarm coordination\n *\n * Swarms are multi-agent orchestrations that coordinate multiple agents\n * working together on complex tasks.\n *\n * @example\n * ```typescript\n * const swarm: ClaudeSwarm = {\n * id: 'swarm_ghi789',\n * sessionId: 'session_abc123',\n * name: 'Full Stack Development Swarm',\n * topology: 'mesh',\n * strategy: 'adaptive',\n * maxAgents: 5,\n * agentIds: ['agent_001', 'agent_002', 'agent_003'],\n * task: 'Implement complete user management module',\n * status: 'running',\n * tokenUsage: { inputTokens: 10000, outputTokens: 8000, totalTokens: 18000, operationCount: 5 },\n * metadata: { tags: ['fullstack'] },\n * };\n * ```\n */\nexport interface ClaudeSwarm {\n /** Unique swarm identifier */\n id: SwarmId;\n /** Parent session ID */\n sessionId: SessionId;\n /** Swarm name */\n name: string;\n /** Network topology */\n topology: SwarmTopology;\n /** Execution strategy */\n strategy: SwarmStrategy;\n /** Maximum agents in the swarm */\n maxAgents: number;\n /** IDs of agents in this swarm */\n agentIds: SubAgentId[];\n /** High-level task for the swarm */\n task: string;\n /** Execution status */\n status: ExecutionStatus;\n /** When the swarm was initialized */\n startedAt: Date;\n /** When the swarm completed */\n completedAt?: Date;\n /** Aggregated result from all agents */\n result?: SwarmResult;\n /** Aggregated token usage */\n tokenUsage: AggregatedTokenUsage;\n /** MCP tool calls made for swarm coordination */\n coordinationCallIds?: ToolCallId[];\n /** Swarm metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Aggregated result from a swarm execution\n */\nexport interface SwarmResult {\n /** Overall success status */\n success: boolean;\n /** Summary of swarm accomplishments */\n summary?: string;\n /** Individual agent results */\n agentResults: Record<SubAgentId, SubAgentResult>;\n /** Total files affected */\n totalFilesAffected: number;\n /** Metrics about the swarm execution */\n metrics?: SwarmMetrics;\n}\n\n/**\n * Metrics for swarm execution\n */\nexport interface SwarmMetrics {\n /** Number of agents that completed successfully */\n successfulAgents: number;\n /** Number of agents that failed */\n failedAgents: number;\n /** Total execution time in milliseconds */\n totalExecutionTimeMs: number;\n /** Average time per agent */\n avgAgentTimeMs: number;\n /** Coordination overhead time */\n coordinationOverheadMs?: number;\n}\n\n// ============================================================================\n// Workflow Level (Script/Workflow Executions)\n// ============================================================================\n\n/**\n * Workflow represents a script or structured workflow execution\n *\n * Workflows are structured sequences of operations that may involve\n * multiple tools, agents, or manual steps.\n *\n * @example\n * ```typescript\n * const workflow: ClaudeWorkflow = {\n * id: 'wf_jkl012',\n * sessionId: 'session_abc123',\n * name: 'CI/CD Pipeline Setup',\n * type: 'skill',\n * skillName: 'github-workflow-automation',\n * steps: [...],\n * status: 'completed',\n * tokenUsage: { inputTokens: 3000, outputTokens: 2000, totalTokens: 5000, operationCount: 3 },\n * metadata: { tags: ['ci', 'github'] },\n * };\n * ```\n */\nexport interface ClaudeWorkflow {\n /** Unique workflow identifier */\n id: WorkflowId;\n /** Parent session ID */\n sessionId: SessionId;\n /** Workflow name */\n name: string;\n /** Type of workflow */\n type: 'skill' | 'script' | 'manual' | 'automated';\n /** Skill name if type is 'skill' */\n skillName?: string;\n /** Script path if type is 'script' */\n scriptPath?: string;\n /** Workflow steps */\n steps: WorkflowStep[];\n /** Current step index (if running) */\n currentStepIndex?: number;\n /** Execution status */\n status: ExecutionStatus;\n /** When workflow started */\n startedAt: Date;\n /** When workflow completed */\n completedAt?: Date;\n /** Workflow result */\n result?: WorkflowResult;\n /** Aggregated token usage */\n tokenUsage: AggregatedTokenUsage;\n /** Related conversation IDs */\n conversationIds?: ConversationId[];\n /** Related tool call IDs */\n toolCallIds?: ToolCallId[];\n /** Workflow metadata */\n metadata: BaseMetadata;\n}\n\n/**\n * Individual step in a workflow\n */\nexport interface WorkflowStep {\n /** Step index (0-based) */\n index: number;\n /** Step name */\n name: string;\n /** Step description */\n description?: string;\n /** Type of step */\n type: 'tool' | 'agent' | 'manual' | 'condition' | 'loop';\n /** Tool name if type is 'tool' */\n toolName?: string;\n /** Tool call ID if executed */\n toolCallId?: ToolCallId;\n /** Agent ID if type is 'agent' */\n agentId?: SubAgentId;\n /** Step status */\n status: ExecutionStatus;\n /** Step input */\n input?: unknown;\n /** Step output */\n output?: unknown;\n /** Execution time in milliseconds */\n executionTimeMs?: number;\n /** Error if failed */\n error?: string;\n}\n\n/**\n * Result from a workflow execution\n */\nexport interface WorkflowResult {\n /** Overall success */\n success: boolean;\n /** Summary of workflow completion */\n summary?: string;\n /** Number of steps completed */\n stepsCompleted: number;\n /** Total steps in workflow */\n totalSteps: number;\n /** Output data */\n data?: unknown;\n /** Error if failed */\n error?: string;\n}\n\n// ============================================================================\n// Graph Edge Types for Relationships\n// ============================================================================\n\n/**\n * Edge types for hierarchical relationships in the knowledge graph\n */\nexport type ClaudeGraphEdgeType =\n | 'session_contains_conversation'\n | 'session_contains_swarm'\n | 'session_contains_workflow'\n | 'conversation_contains_message'\n | 'conversation_spawns_agent'\n | 'message_contains_tool_call'\n | 'message_has_tool_result'\n | 'agent_has_conversation'\n | 'agent_spawns_child'\n | 'swarm_contains_agent'\n | 'workflow_contains_step'\n | 'workflow_uses_tool'\n | 'workflow_uses_agent'\n | 'references_file'\n | 'references_node'\n | 'related_to';\n\n/**\n * Graph edge for Claude interaction hierarchy\n */\nexport interface ClaudeGraphEdge {\n /** Source node ID */\n source: string;\n /** Target node ID */\n target: string;\n /** Relationship type */\n type: ClaudeGraphEdgeType;\n /** Edge weight (for relevance scoring) */\n weight: number;\n /** Additional context about the relationship */\n context?: string;\n /** When this relationship was created */\n createdAt: Date;\n}\n\n// ============================================================================\n// Query and Filter Types\n// ============================================================================\n\n/**\n * Filter options for querying Claude interactions\n */\nexport interface ClaudeInteractionFilter {\n /** Filter by session IDs */\n sessionIds?: SessionId[];\n /** Filter by conversation IDs */\n conversationIds?: ConversationId[];\n /** Filter by date range */\n dateRange?: {\n start?: Date;\n end?: Date;\n };\n /** Filter by status */\n status?: ExecutionStatus[];\n /** Filter by tags */\n tags?: string[];\n /** Filter by model */\n models?: ClaudeModel[];\n /** Filter by agent type */\n agentTypes?: ClaudeAgentType[];\n /** Filter by tool names */\n toolNames?: string[];\n /** Full-text search query */\n textQuery?: string;\n /** Minimum token count */\n minTokens?: number;\n /** Maximum token count */\n maxTokens?: number;\n}\n\n/**\n * Sort options for query results\n */\nexport interface ClaudeInteractionSort {\n /** Field to sort by */\n field: 'createdAt' | 'updatedAt' | 'tokenUsage' | 'executionTime';\n /** Sort direction */\n direction: 'asc' | 'desc';\n}\n\n/**\n * Pagination options\n */\nexport interface PaginationOptions {\n /** Number of items per page */\n limit: number;\n /** Offset for pagination */\n offset: number;\n}\n\n// ============================================================================\n// Analytics Types\n// ============================================================================\n\n/**\n * Analytics summary for Claude interactions\n */\nexport interface ClaudeAnalyticsSummary {\n /** Total sessions */\n totalSessions: number;\n /** Total conversations */\n totalConversations: number;\n /** Total messages */\n totalMessages: number;\n /** Total tool calls */\n totalToolCalls: number;\n /** Total sub-agents spawned */\n totalSubAgents: number;\n /** Total swarms */\n totalSwarms: number;\n /** Total workflows */\n totalWorkflows: number;\n /** Aggregated token usage */\n tokenUsage: AggregatedTokenUsage;\n /** Breakdown by model */\n byModel: Record<ClaudeModel, { count: number; tokenUsage: TokenUsage }>;\n /** Breakdown by tool category */\n byToolCategory: Record<ToolCategory, { count: number; avgExecutionTimeMs: number }>;\n /** Success rate */\n successRate: number;\n /** Date range of data */\n dateRange: {\n earliest: Date;\n latest: Date;\n };\n}\n\n// ============================================================================\n// Zod Schemas for Validation\n// ============================================================================\n\n/**\n * Zod schema for token usage validation\n */\nexport const TokenUsageSchema = z.object({\n inputTokens: z.number().int().nonnegative(),\n outputTokens: z.number().int().nonnegative(),\n cacheReadTokens: z.number().int().nonnegative().optional(),\n cacheWriteTokens: z.number().int().nonnegative().optional(),\n totalTokens: z.number().int().nonnegative(),\n estimatedCostUsd: z.number().nonnegative().optional(),\n});\n\n/**\n * Zod schema for base metadata validation\n */\nexport const BaseMetadataSchema = z.object({\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n tags: z.array(z.string()),\n custom: z.record(z.unknown()).optional(),\n});\n\n/**\n * Zod schema for session validation\n */\nexport const ClaudeSessionSchema = z.object({\n id: z.string().startsWith('session_'),\n name: z.string().min(1),\n purpose: z.string().optional(),\n startedAt: z.coerce.date(),\n endedAt: z.coerce.date().optional(),\n status: z.enum(['pending', 'running', 'completed', 'failed', 'cancelled', 'timeout']),\n conversationIds: z.array(z.string().startsWith('conv_')),\n swarmIds: z.array(z.string().startsWith('swarm_')).optional(),\n workflowIds: z.array(z.string().startsWith('wf_')).optional(),\n tokenUsage: TokenUsageSchema.extend({\n operationCount: z.number().int().nonnegative(),\n byModel: z.record(TokenUsageSchema).optional(),\n byOperationType: z.record(TokenUsageSchema).optional(),\n }),\n metadata: BaseMetadataSchema,\n});\n\n// ============================================================================\n// Helper Functions for ID Generation\n// ============================================================================\n\n/**\n * Generate a unique session ID\n */\nexport function createSessionId(): SessionId {\n return `session_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as SessionId;\n}\n\n/**\n * Generate a unique conversation ID\n */\nexport function createConversationId(): ConversationId {\n return `conv_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as ConversationId;\n}\n\n/**\n * Generate a unique message ID\n */\nexport function createMessageId(): MessageId {\n return `msg_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as MessageId;\n}\n\n/**\n * Generate a unique tool call ID\n */\nexport function createToolCallId(): ToolCallId {\n return `tool_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as ToolCallId;\n}\n\n/**\n * Generate a unique sub-agent ID\n */\nexport function createSubAgentId(): SubAgentId {\n return `agent_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as SubAgentId;\n}\n\n/**\n * Generate a unique swarm ID\n */\nexport function createSwarmId(): SwarmId {\n return `swarm_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as SwarmId;\n}\n\n/**\n * Generate a unique workflow ID\n */\nexport function createWorkflowId(): WorkflowId {\n return `wf_${Date.now()}_${Math.random().toString(36).substring(2, 9)}` as WorkflowId;\n}\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\n/**\n * Type guard for ClaudeSession\n */\nexport function isClaudeSession(obj: unknown): obj is ClaudeSession {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeSession).id === 'string' &&\n (obj as ClaudeSession).id.startsWith('session_')\n );\n}\n\n/**\n * Type guard for ClaudeConversation\n */\nexport function isClaudeConversation(obj: unknown): obj is ClaudeConversation {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeConversation).id === 'string' &&\n (obj as ClaudeConversation).id.startsWith('conv_')\n );\n}\n\n/**\n * Type guard for ClaudeMessage\n */\nexport function isClaudeMessage(obj: unknown): obj is ClaudeMessage {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeMessage).id === 'string' &&\n (obj as ClaudeMessage).id.startsWith('msg_')\n );\n}\n\n/**\n * Type guard for ClaudeToolCall\n */\nexport function isClaudeToolCall(obj: unknown): obj is ClaudeToolCall {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeToolCall).id === 'string' &&\n (obj as ClaudeToolCall).id.startsWith('tool_')\n );\n}\n\n/**\n * Type guard for ClaudeSubAgent\n */\nexport function isClaudeSubAgent(obj: unknown): obj is ClaudeSubAgent {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeSubAgent).id === 'string' &&\n (obj as ClaudeSubAgent).id.startsWith('agent_')\n );\n}\n\n/**\n * Type guard for ClaudeSwarm\n */\nexport function isClaudeSwarm(obj: unknown): obj is ClaudeSwarm {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeSwarm).id === 'string' &&\n (obj as ClaudeSwarm).id.startsWith('swarm_')\n );\n}\n\n/**\n * Type guard for ClaudeWorkflow\n */\nexport function isClaudeWorkflow(obj: unknown): obj is ClaudeWorkflow {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n 'id' in obj &&\n typeof (obj as ClaudeWorkflow).id === 'string' &&\n (obj as ClaudeWorkflow).id.startsWith('wf_')\n );\n}\n"],"names":[],"mappings":";AAs3BO,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,aAAa,EAAE,OAAA,EAAS,IAAA,EAAM,YAAA;AAAA,EAC9B,cAAc,EAAE,OAAA,EAAS,IAAA,EAAM,YAAA;AAAA,EAC/B,iBAAiB,EAAE,OAAA,EAAS,MAAM,YAAA,EAAc,SAAA;AAAA,EAChD,kBAAkB,EAAE,OAAA,EAAS,MAAM,YAAA,EAAc,SAAA;AAAA,EACjD,aAAa,EAAE,OAAA,EAAS,IAAA,EAAM,YAAA;AAAA,EAC9B,kBAAkB,EAAE,SAAS,YAAA,EAAc,SAAA;AAC7C,CAAC;AAKM,MAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,WAAW,EAAE,OAAO,KAAA;AAAA,EACpB,WAAW,EAAE,OAAO,KAAA;AAAA,EACpB,MAAM,EAAE,MAAM,EAAE,QAAQ;AAAA,EACxB,QAAQ,EAAE,OAAO,EAAE,QAAA,CAAS,EAAE,SAAA;AAChC,CAAC;AAKkC,EAAE,OAAO;AAAA,EAC1C,IAAI,EAAE,SAAS,WAAW,UAAU;AAAA,EACpC,MAAM,EAAE,SAAS,IAAI,CAAC;AAAA,EACtB,SAAS,EAAE,OAAA,EAAS,SAAA;AAAA,EACpB,WAAW,EAAE,OAAO,KAAA;AAAA,EACpB,SAAS,EAAE,OAAO,KAAA,EAAO,SAAA;AAAA,EACzB,QAAQ,EAAE,KAAK,CAAC,WAAW,WAAW,aAAa,UAAU,aAAa,SAAS,CAAC;AAAA,EACpF,iBAAiB,EAAE,MAAM,EAAE,SAAS,WAAW,OAAO,CAAC;AAAA,EACvD,UAAU,EAAE,MAAM,EAAE,OAAA,EAAS,WAAW,QAAQ,CAAC,EAAE,SAAA;AAAA,EACnD,aAAa,EAAE,MAAM,EAAE,OAAA,EAAS,WAAW,KAAK,CAAC,EAAE,SAAA;AAAA,EACnD,YAAY,iBAAiB,OAAO;AAAA,IAClC,gBAAgB,EAAE,OAAA,EAAS,IAAA,EAAM,YAAA;AAAA,IACjC,SAAS,EAAE,OAAO,gBAAgB,EAAE,SAAA;AAAA,IACpC,iBAAiB,EAAE,OAAO,gBAAgB,EAAE,SAAA;AAAA,EAAS,CACtD;AAAA,EACD,UAAU;AACZ,CAAC;AASM,SAAS,kBAA6B;AAC3C,SAAO,WAAW,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAC5E;AAKO,SAAS,uBAAuC;AACrD,SAAO,QAAQ,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AACzE;AAKO,SAAS,kBAA6B;AAC3C,SAAO,OAAO,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AACxE;AAKO,SAAS,mBAA+B;AAC7C,SAAO,QAAQ,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AACzE;AAKO,SAAS,mBAA+B;AAC7C,SAAO,SAAS,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAC1E;AAKO,SAAS,gBAAyB;AACvC,SAAO,SAAS,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAC1E;"}
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAoM3C"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CA6U3C"}
@@ -1,8 +1,10 @@
1
1
  import { Command } from "commander";
2
2
  import chalk from "chalk";
3
3
  import ora from "ora";
4
+ import { join } from "path";
4
5
  import { docsExist, initDocs, getDocsPath } from "../../generators/docs-init.js";
5
6
  import { generateDocsWithAgents } from "../../generators/doc-generator-agents.js";
7
+ import { cultivateDocs } from "../../generators/doc-cultivator.js";
6
8
  import { validateProjectRoot, validateDocsPath } from "../../core/security.js";
7
9
  function createDocsCommand() {
8
10
  const command = new Command("docs");
@@ -144,6 +146,110 @@ function createDocsCommand() {
144
146
  });
145
147
  console.log();
146
148
  });
149
+ command.command("cultivate").description("Recursively build out all documentation using claude-flow swarm").option("-p, --path <path>", "Project root path", ".").option("-d, --docs <path>", "Docs directory path", "docs").option("--dry-run", "Show what would be generated without creating files").option("-v, --verbose", "Show detailed output").option("-f, --force", "Force regenerate all documents").option("--no-dev-plan", "Skip development plan generation").option("--no-infra-plan", "Skip infrastructure plan generation").option("--include-sops", "Include SOP compliance analysis").option("--services <services>", "Comma-separated list of services to analyze").option("--max-agents <number>", "Maximum concurrent agents", "4").option("--background", "Run in background mode").action(async (options) => {
150
+ const projectRoot = validateProjectRoot(options.path);
151
+ const docsPath = options.docs;
152
+ validateDocsPath(projectRoot, docsPath);
153
+ console.log();
154
+ console.log(chalk.cyan.bold(" Documentation Cultivation"));
155
+ console.log(chalk.gray(" ─────────────────────────────"));
156
+ console.log();
157
+ if (options.dryRun) {
158
+ console.log(chalk.yellow(" [Dry Run Mode]"));
159
+ console.log();
160
+ }
161
+ const spinner = ora("Starting documentation cultivation...").start();
162
+ try {
163
+ const result = await cultivateDocs(
164
+ projectRoot,
165
+ join(projectRoot, docsPath),
166
+ {
167
+ dryRun: options.dryRun,
168
+ verbose: options.verbose,
169
+ force: options.force,
170
+ generateDevPlan: options.devPlan !== false,
171
+ generateInfraPlan: options.infraPlan !== false,
172
+ includeSops: options.includeSops,
173
+ services: options.services?.split(",").map((s) => s.trim()),
174
+ maxAgents: parseInt(options.maxAgents, 10),
175
+ background: options.background
176
+ }
177
+ );
178
+ if (options.dryRun) {
179
+ spinner.info("Dry run complete");
180
+ } else if (result.success) {
181
+ spinner.succeed("Documentation cultivation complete!");
182
+ } else {
183
+ spinner.warn("Cultivation completed with errors");
184
+ }
185
+ console.log();
186
+ console.log(chalk.white(" Services Analyzed:"));
187
+ for (const service of result.services) {
188
+ console.log(chalk.gray(` • ${service.name} (${service.type}) - ${service.sourceFiles.length} files`));
189
+ }
190
+ if (!options.dryRun) {
191
+ console.log();
192
+ console.log(chalk.white(" Documents Generated:"), chalk.green(result.documentsGenerated.length));
193
+ if (result.documentsGenerated.length > 0 && options.verbose) {
194
+ for (const doc of result.documentsGenerated) {
195
+ console.log(chalk.gray(` ✓ ${doc}`));
196
+ }
197
+ }
198
+ if (result.developmentPlan) {
199
+ console.log();
200
+ console.log(chalk.white(" Development Plan:"));
201
+ console.log(chalk.gray(` Phases: ${result.developmentPlan.phases.length}`));
202
+ console.log(chalk.gray(` Total Estimate: ${result.developmentPlan.totalEstimate}`));
203
+ for (const phase of result.developmentPlan.phases) {
204
+ console.log(chalk.gray(` • ${phase.name} (${phase.estimatedEffort})`));
205
+ }
206
+ }
207
+ if (result.infrastructurePlan) {
208
+ console.log();
209
+ console.log(chalk.white(" Infrastructure Plan:"));
210
+ console.log(chalk.gray(` Environments: ${result.infrastructurePlan.environments.join(", ")}`));
211
+ }
212
+ if (result.sopCompliance) {
213
+ console.log();
214
+ console.log(chalk.white(" SOP Compliance:"));
215
+ const scoreColor = result.sopCompliance.score >= 80 ? chalk.green : result.sopCompliance.score >= 50 ? chalk.yellow : chalk.red;
216
+ console.log(chalk.gray(` Score: `) + scoreColor(`${result.sopCompliance.score}%`));
217
+ if (result.sopCompliance.gaps.length > 0) {
218
+ console.log(chalk.gray(` Gaps: ${result.sopCompliance.gaps.length}`));
219
+ }
220
+ }
221
+ }
222
+ if (result.errors.length > 0) {
223
+ console.log();
224
+ console.log(chalk.yellow(" Errors:"));
225
+ for (const error of result.errors.slice(0, 5)) {
226
+ console.log(chalk.gray(` - ${error}`));
227
+ }
228
+ if (result.errors.length > 5) {
229
+ console.log(chalk.gray(` ... and ${result.errors.length - 5} more`));
230
+ }
231
+ }
232
+ console.log();
233
+ console.log(chalk.cyan(" Generated files in: ") + chalk.white(join(projectRoot, docsPath)));
234
+ console.log();
235
+ if (!options.dryRun) {
236
+ console.log(chalk.cyan(" Key documents:"));
237
+ console.log(chalk.gray(" • docs/planning/development-plan.md"));
238
+ console.log(chalk.gray(" • docs/planning/infrastructure-plan.md"));
239
+ console.log(chalk.gray(" • docs/services/{service}/README.md"));
240
+ console.log();
241
+ }
242
+ console.log(chalk.cyan("Next steps:"));
243
+ console.log(chalk.gray(" 1. Review generated documentation"));
244
+ console.log(chalk.gray(" 2. Fill in project-specific details"));
245
+ console.log(chalk.gray(" 3. Run ") + chalk.white("kg graph") + chalk.gray(" to visualize"));
246
+ console.log();
247
+ } catch (error) {
248
+ spinner.fail("Cultivation failed");
249
+ console.error(chalk.red(String(error)));
250
+ process.exit(1);
251
+ }
252
+ });
147
253
  return command;
148
254
  }
149
255
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sources":["../../../src/cli/commands/docs.ts"],"sourcesContent":["/**\n * Docs Command\n *\n * Initialize and manage documentation directory.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { initDocs, docsExist, getDocsPath } from '../../generators/docs-init.js';\nimport { generateDocsWithAgents } from '../../generators/doc-generator-agents.js';\nimport { validateProjectRoot, validateDocsPath } from '../../core/security.js';\n\n/**\n * Create docs command\n */\nexport function createDocsCommand(): Command {\n const command = new Command('docs');\n\n command\n .description('Documentation management commands');\n\n // Init subcommand\n command\n .command('init')\n .description('Initialize documentation directory with weave-nn structure')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-d, --docs <path>', 'Docs directory path', 'docs')\n .option('-t, --template <template>', 'Template to use (default, minimal)')\n .option('--no-examples', 'Skip example files')\n .option('--no-detect', 'Skip framework detection')\n .option('-f, --force', 'Overwrite existing files')\n .option('-g, --generate', 'Generate documents using expert agents')\n .option('--parallel', 'Run agent generation in parallel')\n .option('--dry-run', 'Show what would be generated without creating files')\n .option('-v, --verbose', 'Show detailed agent output')\n .option('--force-generate', 'Force regenerate documents even if they exist')\n .action(async (options) => {\n const spinner = ora('Initializing documentation...').start();\n\n try {\n // Validate paths to prevent traversal attacks\n const projectRoot = validateProjectRoot(options.path);\n const docsPath = options.docs;\n validateDocsPath(projectRoot, docsPath); // Ensure docs stays within project\n\n // Note: initDocs is additive - it only creates missing files/directories\n // The --force flag is for overwriting existing files if needed in the future\n const isExisting = docsExist(projectRoot, docsPath);\n if (isExisting) {\n spinner.text = 'Adding missing files to existing documentation...';\n }\n\n const result = await initDocs({\n projectRoot,\n docsPath,\n includeExamples: options.examples !== false,\n detectFramework: options.detect !== false,\n });\n\n if (result.success) {\n if (isExisting && result.filesCreated.length === 0) {\n spinner.succeed('Documentation already complete - no new files needed');\n } else if (isExisting) {\n spinner.succeed(`Documentation updated - added ${result.filesCreated.length} missing files`);\n } else {\n spinner.succeed('Documentation initialized!');\n }\n } else {\n spinner.warn('Documentation initialized with errors');\n }\n\n console.log();\n console.log(chalk.white(' Created:'));\n console.log(chalk.gray(` Path: ${result.docsPath}`));\n console.log(chalk.green(` Files: ${result.filesCreated.length}`));\n\n if (result.errors.length > 0) {\n console.log();\n console.log(chalk.yellow(' Errors:'));\n result.errors.forEach(err => {\n console.log(chalk.gray(` - ${err}`));\n });\n }\n\n console.log();\n console.log(chalk.cyan('Structure created:'));\n console.log(chalk.gray(`\n ${docsPath}/\n ├── README.md # Documentation home\n ├── PRIMITIVES.md # Technology primitives\n ├── MOC.md # Map of Content\n ├── concepts/ # Abstract concepts\n ├── components/ # Reusable components\n ├── services/ # Backend services\n ├── features/ # Product features\n ├── integrations/ # External integrations\n ├── standards/ # Coding standards\n ├── guides/ # How-to guides\n └── references/ # API references\n `));\n\n // Run agent generation if requested\n if (options.generate) {\n console.log();\n const genSpinner = ora('Analyzing project and generating documents with expert agents...').start();\n\n try {\n const genResult = await generateDocsWithAgents(projectRoot, result.docsPath, {\n parallel: options.parallel,\n dryRun: options.dryRun,\n verbose: options.verbose,\n force: options.forceGenerate,\n });\n\n if (options.dryRun) {\n genSpinner.info('Dry run complete - no files created');\n } else if (genResult.success) {\n genSpinner.succeed(`Generated ${genResult.documentsGenerated.filter(d => d.generated).length} documents using ${genResult.agentsSpawned} agents`);\n } else {\n genSpinner.warn(`Generated ${genResult.documentsGenerated.filter(d => d.generated).length} documents with ${genResult.errors.length} errors`);\n }\n\n if (genResult.documentsGenerated.length > 0 && !options.dryRun) {\n console.log();\n console.log(chalk.white(' Generated Documents:'));\n for (const doc of genResult.documentsGenerated) {\n const icon = doc.generated ? chalk.green('✓') : chalk.red('✗');\n console.log(` ${icon} ${doc.path}${doc.error ? chalk.gray(` (${doc.error})`) : ''}`);\n }\n }\n\n if (genResult.errors.length > 0 && !options.dryRun) {\n console.log();\n console.log(chalk.yellow(' Agent Errors:'));\n genResult.errors.forEach(err => {\n console.log(chalk.gray(` - ${err}`));\n });\n }\n } catch (genError) {\n genSpinner.fail('Agent generation failed');\n console.error(chalk.red(String(genError)));\n }\n }\n\n console.log();\n console.log(chalk.cyan('Next: ') + chalk.white('kg graph') + chalk.gray(' to generate knowledge graph'));\n console.log();\n\n } catch (error) {\n spinner.fail('Failed to initialize documentation');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // Status subcommand\n command\n .command('status')\n .description('Show documentation status')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n // Validate path to prevent traversal\n const projectRoot = validateProjectRoot(options.path);\n const docsPath = getDocsPath(projectRoot);\n\n if (!docsPath) {\n console.log(chalk.yellow(' No documentation directory found'));\n console.log(chalk.gray(' Run ') + chalk.cyan('kg docs init') + chalk.gray(' to create one'));\n return;\n }\n\n console.log(chalk.white('\\n Documentation Status\\n'));\n console.log(chalk.gray(' Path:'), chalk.white(docsPath));\n console.log();\n\n // Count files\n const fg = await import('fast-glob');\n const files = await fg.default('**/*.md', {\n cwd: docsPath,\n ignore: ['node_modules/**', '.git/**'],\n });\n\n console.log(chalk.gray(' Markdown files:'), chalk.white(files.length));\n\n // Check for key files\n const keyFiles = ['README.md', 'PRIMITIVES.md', 'MOC.md'];\n const fs = await import('fs');\n const path = await import('path');\n\n console.log();\n console.log(chalk.white(' Key Files:'));\n keyFiles.forEach(file => {\n const exists = fs.existsSync(path.join(docsPath, file));\n const icon = exists ? chalk.green('✓') : chalk.red('✗');\n console.log(` ${icon} ${file}`);\n });\n\n // Check directories\n const dirs = ['concepts', 'components', 'services', 'features', 'guides'];\n console.log();\n console.log(chalk.white(' Directories:'));\n dirs.forEach(dir => {\n const exists = fs.existsSync(path.join(docsPath, dir));\n const icon = exists ? chalk.green('✓') : chalk.gray('○');\n console.log(` ${icon} ${dir}/`);\n });\n\n console.log();\n });\n\n return command;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sources":["../../../src/cli/commands/docs.ts"],"sourcesContent":["/**\n * Docs Command\n *\n * Initialize and manage documentation directory.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { join } from 'path';\nimport { initDocs, docsExist, getDocsPath } from '../../generators/docs-init.js';\nimport { generateDocsWithAgents } from '../../generators/doc-generator-agents.js';\nimport { cultivateDocs } from '../../generators/doc-cultivator.js';\nimport { validateProjectRoot, validateDocsPath } from '../../core/security.js';\n\n/**\n * Create docs command\n */\nexport function createDocsCommand(): Command {\n const command = new Command('docs');\n\n command\n .description('Documentation management commands');\n\n // Init subcommand\n command\n .command('init')\n .description('Initialize documentation directory with weave-nn structure')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-d, --docs <path>', 'Docs directory path', 'docs')\n .option('-t, --template <template>', 'Template to use (default, minimal)')\n .option('--no-examples', 'Skip example files')\n .option('--no-detect', 'Skip framework detection')\n .option('-f, --force', 'Overwrite existing files')\n .option('-g, --generate', 'Generate documents using expert agents')\n .option('--parallel', 'Run agent generation in parallel')\n .option('--dry-run', 'Show what would be generated without creating files')\n .option('-v, --verbose', 'Show detailed agent output')\n .option('--force-generate', 'Force regenerate documents even if they exist')\n .action(async (options) => {\n const spinner = ora('Initializing documentation...').start();\n\n try {\n // Validate paths to prevent traversal attacks\n const projectRoot = validateProjectRoot(options.path);\n const docsPath = options.docs;\n validateDocsPath(projectRoot, docsPath); // Ensure docs stays within project\n\n // Note: initDocs is additive - it only creates missing files/directories\n // The --force flag is for overwriting existing files if needed in the future\n const isExisting = docsExist(projectRoot, docsPath);\n if (isExisting) {\n spinner.text = 'Adding missing files to existing documentation...';\n }\n\n const result = await initDocs({\n projectRoot,\n docsPath,\n includeExamples: options.examples !== false,\n detectFramework: options.detect !== false,\n });\n\n if (result.success) {\n if (isExisting && result.filesCreated.length === 0) {\n spinner.succeed('Documentation already complete - no new files needed');\n } else if (isExisting) {\n spinner.succeed(`Documentation updated - added ${result.filesCreated.length} missing files`);\n } else {\n spinner.succeed('Documentation initialized!');\n }\n } else {\n spinner.warn('Documentation initialized with errors');\n }\n\n console.log();\n console.log(chalk.white(' Created:'));\n console.log(chalk.gray(` Path: ${result.docsPath}`));\n console.log(chalk.green(` Files: ${result.filesCreated.length}`));\n\n if (result.errors.length > 0) {\n console.log();\n console.log(chalk.yellow(' Errors:'));\n result.errors.forEach(err => {\n console.log(chalk.gray(` - ${err}`));\n });\n }\n\n console.log();\n console.log(chalk.cyan('Structure created:'));\n console.log(chalk.gray(`\n ${docsPath}/\n ├── README.md # Documentation home\n ├── PRIMITIVES.md # Technology primitives\n ├── MOC.md # Map of Content\n ├── concepts/ # Abstract concepts\n ├── components/ # Reusable components\n ├── services/ # Backend services\n ├── features/ # Product features\n ├── integrations/ # External integrations\n ├── standards/ # Coding standards\n ├── guides/ # How-to guides\n └── references/ # API references\n `));\n\n // Run agent generation if requested\n if (options.generate) {\n console.log();\n const genSpinner = ora('Analyzing project and generating documents with expert agents...').start();\n\n try {\n const genResult = await generateDocsWithAgents(projectRoot, result.docsPath, {\n parallel: options.parallel,\n dryRun: options.dryRun,\n verbose: options.verbose,\n force: options.forceGenerate,\n });\n\n if (options.dryRun) {\n genSpinner.info('Dry run complete - no files created');\n } else if (genResult.success) {\n genSpinner.succeed(`Generated ${genResult.documentsGenerated.filter(d => d.generated).length} documents using ${genResult.agentsSpawned} agents`);\n } else {\n genSpinner.warn(`Generated ${genResult.documentsGenerated.filter(d => d.generated).length} documents with ${genResult.errors.length} errors`);\n }\n\n if (genResult.documentsGenerated.length > 0 && !options.dryRun) {\n console.log();\n console.log(chalk.white(' Generated Documents:'));\n for (const doc of genResult.documentsGenerated) {\n const icon = doc.generated ? chalk.green('✓') : chalk.red('✗');\n console.log(` ${icon} ${doc.path}${doc.error ? chalk.gray(` (${doc.error})`) : ''}`);\n }\n }\n\n if (genResult.errors.length > 0 && !options.dryRun) {\n console.log();\n console.log(chalk.yellow(' Agent Errors:'));\n genResult.errors.forEach(err => {\n console.log(chalk.gray(` - ${err}`));\n });\n }\n } catch (genError) {\n genSpinner.fail('Agent generation failed');\n console.error(chalk.red(String(genError)));\n }\n }\n\n console.log();\n console.log(chalk.cyan('Next: ') + chalk.white('kg graph') + chalk.gray(' to generate knowledge graph'));\n console.log();\n\n } catch (error) {\n spinner.fail('Failed to initialize documentation');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // Status subcommand\n command\n .command('status')\n .description('Show documentation status')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n // Validate path to prevent traversal\n const projectRoot = validateProjectRoot(options.path);\n const docsPath = getDocsPath(projectRoot);\n\n if (!docsPath) {\n console.log(chalk.yellow(' No documentation directory found'));\n console.log(chalk.gray(' Run ') + chalk.cyan('kg docs init') + chalk.gray(' to create one'));\n return;\n }\n\n console.log(chalk.white('\\n Documentation Status\\n'));\n console.log(chalk.gray(' Path:'), chalk.white(docsPath));\n console.log();\n\n // Count files\n const fg = await import('fast-glob');\n const files = await fg.default('**/*.md', {\n cwd: docsPath,\n ignore: ['node_modules/**', '.git/**'],\n });\n\n console.log(chalk.gray(' Markdown files:'), chalk.white(files.length));\n\n // Check for key files\n const keyFiles = ['README.md', 'PRIMITIVES.md', 'MOC.md'];\n const fs = await import('fs');\n const path = await import('path');\n\n console.log();\n console.log(chalk.white(' Key Files:'));\n keyFiles.forEach(file => {\n const exists = fs.existsSync(path.join(docsPath, file));\n const icon = exists ? chalk.green('✓') : chalk.red('✗');\n console.log(` ${icon} ${file}`);\n });\n\n // Check directories\n const dirs = ['concepts', 'components', 'services', 'features', 'guides'];\n console.log();\n console.log(chalk.white(' Directories:'));\n dirs.forEach(dir => {\n const exists = fs.existsSync(path.join(docsPath, dir));\n const icon = exists ? chalk.green('✓') : chalk.gray('○');\n console.log(` ${icon} ${dir}/`);\n });\n\n console.log();\n });\n\n // Cultivate subcommand - long-running swarm-based documentation buildout\n command\n .command('cultivate')\n .description('Recursively build out all documentation using claude-flow swarm')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-d, --docs <path>', 'Docs directory path', 'docs')\n .option('--dry-run', 'Show what would be generated without creating files')\n .option('-v, --verbose', 'Show detailed output')\n .option('-f, --force', 'Force regenerate all documents')\n .option('--no-dev-plan', 'Skip development plan generation')\n .option('--no-infra-plan', 'Skip infrastructure plan generation')\n .option('--include-sops', 'Include SOP compliance analysis')\n .option('--services <services>', 'Comma-separated list of services to analyze')\n .option('--max-agents <number>', 'Maximum concurrent agents', '4')\n .option('--background', 'Run in background mode')\n .action(async (options) => {\n const projectRoot = validateProjectRoot(options.path);\n const docsPath = options.docs;\n validateDocsPath(projectRoot, docsPath);\n\n console.log();\n console.log(chalk.cyan.bold(' Documentation Cultivation'));\n console.log(chalk.gray(' ─────────────────────────────'));\n console.log();\n\n if (options.dryRun) {\n console.log(chalk.yellow(' [Dry Run Mode]'));\n console.log();\n }\n\n const spinner = ora('Starting documentation cultivation...').start();\n\n try {\n const result = await cultivateDocs(\n projectRoot,\n join(projectRoot, docsPath),\n {\n dryRun: options.dryRun,\n verbose: options.verbose,\n force: options.force,\n generateDevPlan: options.devPlan !== false,\n generateInfraPlan: options.infraPlan !== false,\n includeSops: options.includeSops,\n services: options.services?.split(',').map((s: string) => s.trim()),\n maxAgents: parseInt(options.maxAgents, 10),\n background: options.background,\n }\n );\n\n if (options.dryRun) {\n spinner.info('Dry run complete');\n } else if (result.success) {\n spinner.succeed('Documentation cultivation complete!');\n } else {\n spinner.warn('Cultivation completed with errors');\n }\n\n // Display results\n console.log();\n console.log(chalk.white(' Services Analyzed:'));\n for (const service of result.services) {\n console.log(chalk.gray(` • ${service.name} (${service.type}) - ${service.sourceFiles.length} files`));\n }\n\n if (!options.dryRun) {\n console.log();\n console.log(chalk.white(' Documents Generated:'), chalk.green(result.documentsGenerated.length));\n if (result.documentsGenerated.length > 0 && options.verbose) {\n for (const doc of result.documentsGenerated) {\n console.log(chalk.gray(` ✓ ${doc}`));\n }\n }\n\n if (result.developmentPlan) {\n console.log();\n console.log(chalk.white(' Development Plan:'));\n console.log(chalk.gray(` Phases: ${result.developmentPlan.phases.length}`));\n console.log(chalk.gray(` Total Estimate: ${result.developmentPlan.totalEstimate}`));\n for (const phase of result.developmentPlan.phases) {\n console.log(chalk.gray(` • ${phase.name} (${phase.estimatedEffort})`));\n }\n }\n\n if (result.infrastructurePlan) {\n console.log();\n console.log(chalk.white(' Infrastructure Plan:'));\n console.log(chalk.gray(` Environments: ${result.infrastructurePlan.environments.join(', ')}`));\n }\n\n if (result.sopCompliance) {\n console.log();\n console.log(chalk.white(' SOP Compliance:'));\n const scoreColor = result.sopCompliance.score >= 80 ? chalk.green :\n result.sopCompliance.score >= 50 ? chalk.yellow : chalk.red;\n console.log(chalk.gray(` Score: `) + scoreColor(`${result.sopCompliance.score}%`));\n if (result.sopCompliance.gaps.length > 0) {\n console.log(chalk.gray(` Gaps: ${result.sopCompliance.gaps.length}`));\n }\n }\n }\n\n if (result.errors.length > 0) {\n console.log();\n console.log(chalk.yellow(' Errors:'));\n for (const error of result.errors.slice(0, 5)) {\n console.log(chalk.gray(` - ${error}`));\n }\n if (result.errors.length > 5) {\n console.log(chalk.gray(` ... and ${result.errors.length - 5} more`));\n }\n }\n\n console.log();\n console.log(chalk.cyan(' Generated files in: ') + chalk.white(join(projectRoot, docsPath)));\n console.log();\n\n if (!options.dryRun) {\n console.log(chalk.cyan(' Key documents:'));\n console.log(chalk.gray(' • docs/planning/development-plan.md'));\n console.log(chalk.gray(' • docs/planning/infrastructure-plan.md'));\n console.log(chalk.gray(' • docs/services/{service}/README.md'));\n console.log();\n }\n\n console.log(chalk.cyan('Next steps:'));\n console.log(chalk.gray(' 1. Review generated documentation'));\n console.log(chalk.gray(' 2. Fill in project-specific details'));\n console.log(chalk.gray(' 3. Run ') + chalk.white('kg graph') + chalk.gray(' to visualize'));\n console.log();\n\n } catch (error) {\n spinner.fail('Cultivation failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n return command;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Hooks Command
3
+ *
4
+ * Manage Claude Code hooks for capturing interactions in the knowledge graph.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Create hooks command
9
+ */
10
+ export declare function createHooksCommand(): Command;
11
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAsV5C"}