@iambarryking/ag 3.2.5 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/memory/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/memory/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChI,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AAEtC,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,KAAK,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,CAAC,MAAM,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjB,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QACvC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACtC,QAAQ;QACR,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;QACpC,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,gBAAgB,CAAC,GAAY,IAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAChG,MAAM,UAAU,iBAAiB,CAAC,GAAY,IAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAClG,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,WAAW,CAAC,GAAG,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;SACjE,IAAI,EAAE;SACN,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,GAAY;IACvD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;IACrC,yBAAyB;IACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,+BAA+B;IAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAC;QACrE,CAAC;IACH,CAAC;IACD,mCAAmC;IACnC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE;QACtC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK;YAAE,OAAO,CAAC,CAAC;QAChC,2EAA2E;QAC3E,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,oBAAoB,CAAC,CAAC;IACvE,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,qBAAqB,CAAC,CAAC;IAC3E,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,+BAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,KAAK,IAAI,mBAAmB,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,KAAK,GAAG,EAAE;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACzE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,GAAY;IAC5D,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,GAAY;IAC9D,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,GAAY;IAC7D,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,GAAY;IAC/D,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,GAAY;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;IAC5D,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;IAC9F,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAa,EAAE,GAAY;IACnE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,GAAG,EAAE,IAAI,QAAQ,KAAK,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrD,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,GAAY;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,GAAY;IAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7B,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,qBAAqB;IACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO;QACL,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QAC3E,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;QAC9E,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM;QAChC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAmCjD"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAqBxC,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiEjD"}
@@ -1,7 +1,24 @@
1
1
  /**
2
2
  * Bash tool - the universal interface for system operations
3
3
  */
4
- import { execSync } from 'node:child_process';
4
+ import { spawn } from 'node:child_process';
5
+ const MAX_BUFFER = 1024 * 1024; // 1 MB
6
+ const DANGEROUS_PATTERNS = [
7
+ { pattern: /\bfind\s+[~\/](?![\w.])/, message: 'Blocked: `find` on home/root directory. Use the grep tool (action=find) to search for files, or scope to a specific subdirectory.' },
8
+ { pattern: /\brm\s+(-[a-zA-Z]*r[a-zA-Z]*)?\s*-[a-zA-Z]*f[a-zA-Z]*\s+[~\/]\s*/, message: 'Blocked: destructive `rm` targeting home or root directory.' },
9
+ { pattern: /\brm\s+(-[a-zA-Z]*f[a-zA-Z]*)?\s*-[a-zA-Z]*r[a-zA-Z]*\s+[~\/]\s*/, message: 'Blocked: destructive `rm` targeting home or root directory.' },
10
+ { pattern: /:\(\)\{.*:\|:/, message: 'Blocked: fork bomb detected.' },
11
+ { pattern: /\bdd\b.*\bof=\/dev\//, message: 'Blocked: dd write to device.' },
12
+ { pattern: /\bmkfs\b/, message: 'Blocked: filesystem format command.' },
13
+ { pattern: /\b(chmod|chown)\s+-[a-zA-Z]*R[a-zA-Z]*\s+[~\/]\s*/, message: 'Blocked: recursive permission change on home/root.' },
14
+ ];
15
+ function checkCommand(command) {
16
+ for (const { pattern, message } of DANGEROUS_PATTERNS) {
17
+ if (pattern.test(command))
18
+ return `Error: ${message}`;
19
+ }
20
+ return null;
21
+ }
5
22
  export function bashToolFactory(cwd) {
6
23
  return {
7
24
  type: 'function',
@@ -20,22 +37,48 @@ export function bashToolFactory(cwd) {
20
37
  }
21
38
  },
22
39
  execute: ({ command }) => {
23
- try {
24
- // execSync is intentional here — this is a general-purpose shell tool
25
- // where the model constructs arbitrary commands (pipes, redirects, etc.)
26
- return execSync(command, {
40
+ const blocked = checkCommand(command);
41
+ if (blocked)
42
+ return Promise.resolve(blocked);
43
+ return new Promise((resolve) => {
44
+ const child = spawn('sh', ['-c', command], {
27
45
  cwd,
28
- encoding: 'utf-8',
29
46
  timeout: 60_000,
30
- maxBuffer: 1024 * 1024
31
- }).trim();
32
- }
33
- catch (error) {
34
- const status = error.status ?? 1;
35
- const stdout = error.stdout ?? '';
36
- const stderr = error.stderr ?? '';
37
- return `EXIT ${status}\n${(stdout + stderr).trim()}`;
38
- }
47
+ stdio: ['pipe', 'pipe', 'pipe']
48
+ });
49
+ let stdout = '';
50
+ let stderr = '';
51
+ let stdoutOverflow = false;
52
+ child.stdout.on('data', (chunk) => {
53
+ if (stdout.length < MAX_BUFFER) {
54
+ stdout += chunk.toString();
55
+ }
56
+ else {
57
+ stdoutOverflow = true;
58
+ }
59
+ });
60
+ child.stderr.on('data', (chunk) => {
61
+ if (stderr.length < MAX_BUFFER) {
62
+ stderr += chunk.toString();
63
+ }
64
+ });
65
+ child.on('close', (code) => {
66
+ let result = stdout.trim();
67
+ if (stdoutOverflow) {
68
+ result += '\n... (output truncated at 1MB)';
69
+ }
70
+ if (code === 0) {
71
+ resolve(result);
72
+ }
73
+ else {
74
+ const status = code ?? 1;
75
+ resolve(`EXIT ${status}\n${(stdout + stderr).trim()}`);
76
+ }
77
+ });
78
+ child.on('error', (err) => {
79
+ resolve(`EXIT 1\n${err.message}`);
80
+ });
81
+ });
39
82
  }
40
83
  };
41
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,qRAAqR;YAClS,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8BAA8B;qBAC5C;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;QACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAuB,EAAU,EAAE;YACpD,IAAI,CAAC;gBACH,sEAAsE;gBACtE,yEAAyE;gBACzE,OAAO,QAAQ,CAAC,OAAO,EAAE;oBACvB,GAAG;oBACH,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,MAAM;oBACf,SAAS,EAAE,IAAI,GAAG,IAAI;iBACvB,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBAClC,OAAO,QAAQ,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * File tool — read files and list directories
3
+ * Prevents the model from falling back to bash for cat/head/tail/ls.
4
+ */
5
+ import { Tool } from '../core/types.js';
6
+ export declare function fileTool(cwd: string): Tool;
7
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/tools/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA4HxC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA6B1C"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * File tool — read files and list directories
3
+ * Prevents the model from falling back to bash for cat/head/tail/ls.
4
+ */
5
+ import { readFileSync, readdirSync, statSync, openSync, readSync, closeSync } from 'node:fs';
6
+ import { resolve, extname } from 'node:path';
7
+ const MAX_READ_BYTES = 100 * 1024; // 100 KB text cap
8
+ const MAX_LIST_ENTRIES = 200;
9
+ const MAX_LIST_DEPTH = 3;
10
+ const DEFAULT_IGNORE = new Set([
11
+ '.git', 'node_modules', 'dist', 'build', '.next', '.nuxt',
12
+ 'coverage', '.cache', '__pycache__', '.venv', 'venv',
13
+ ]);
14
+ function isBinary(filePath) {
15
+ try {
16
+ const fd = openSync(filePath, 'r');
17
+ const buf = Buffer.alloc(512);
18
+ const bytesRead = readSync(fd, buf, 0, 512, 0);
19
+ closeSync(fd);
20
+ for (let i = 0; i < bytesRead; i++) {
21
+ if (buf[i] === 0)
22
+ return true;
23
+ }
24
+ return false;
25
+ }
26
+ catch {
27
+ return true;
28
+ }
29
+ }
30
+ function formatSize(bytes) {
31
+ if (bytes < 1024)
32
+ return `${bytes}B`;
33
+ if (bytes < 1024 * 1024)
34
+ return `${(bytes / 1024).toFixed(1)}KB`;
35
+ return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
36
+ }
37
+ function doRead(cwd, path, offset, limit) {
38
+ const resolved = resolve(cwd, path);
39
+ let stat;
40
+ try {
41
+ stat = statSync(resolved);
42
+ }
43
+ catch (e) {
44
+ if (e.code === 'ENOENT')
45
+ return `Error: file not found — ${path}. Use grep(action=find) or file(action=list) to discover the correct filename.`;
46
+ if (e.code === 'EACCES')
47
+ return `Error: permission denied — ${path}`;
48
+ return `Error: ${e.message}`;
49
+ }
50
+ if (stat.isDirectory())
51
+ return `Error: "${path}" is a directory. Use action=list instead.`;
52
+ if (isBinary(resolved)) {
53
+ const ext = extname(resolved);
54
+ return `Binary file (${formatSize(stat.size)} ${ext || 'unknown type'}). Use bash with an appropriate tool (e.g. pdftotext, xxd, strings) to inspect.`;
55
+ }
56
+ let content;
57
+ try {
58
+ content = readFileSync(resolved, 'utf-8');
59
+ }
60
+ catch (e) {
61
+ return `Error: ${e.message}`;
62
+ }
63
+ const lines = content.split('\n');
64
+ const start = Math.max(0, (offset ?? 1) - 1);
65
+ const count = limit ?? lines.length;
66
+ const slice = lines.slice(start, start + count);
67
+ // Check if we need to truncate by byte size
68
+ let totalBytes = 0;
69
+ let truncIdx = slice.length;
70
+ for (let i = 0; i < slice.length; i++) {
71
+ totalBytes += slice[i].length + 1;
72
+ if (totalBytes > MAX_READ_BYTES) {
73
+ truncIdx = i;
74
+ break;
75
+ }
76
+ }
77
+ const output = slice.slice(0, truncIdx);
78
+ const numbered = output.map((line, i) => `${String(start + i + 1).padStart(6)}\t${line}`);
79
+ let result = numbered.join('\n');
80
+ if (truncIdx < slice.length) {
81
+ result += `\n... (truncated at 100KB — showing lines ${start + 1}-${start + truncIdx} of ${lines.length} total)`;
82
+ }
83
+ else if (start + count < lines.length && !limit) {
84
+ // no truncation needed
85
+ }
86
+ return result;
87
+ }
88
+ function doList(cwd, path, maxDepth) {
89
+ const resolved = resolve(cwd, path);
90
+ const entries = [];
91
+ let count = 0;
92
+ function walk(dir, depth, prefix) {
93
+ if (depth > maxDepth || count >= MAX_LIST_ENTRIES)
94
+ return;
95
+ let items;
96
+ try {
97
+ items = readdirSync(dir, { withFileTypes: true });
98
+ }
99
+ catch {
100
+ return;
101
+ }
102
+ // Sort: dirs first, then files
103
+ items.sort((a, b) => {
104
+ if (a.isDirectory() && !b.isDirectory())
105
+ return -1;
106
+ if (!a.isDirectory() && b.isDirectory())
107
+ return 1;
108
+ return a.name.localeCompare(b.name);
109
+ });
110
+ for (const item of items) {
111
+ if (count >= MAX_LIST_ENTRIES)
112
+ break;
113
+ if (DEFAULT_IGNORE.has(item.name))
114
+ continue;
115
+ if (item.name.startsWith('.') && item.name !== '.')
116
+ continue;
117
+ const full = resolve(dir, item.name);
118
+ if (item.isDirectory()) {
119
+ entries.push(`${prefix}[dir] ${item.name}/`);
120
+ count++;
121
+ if (depth < maxDepth)
122
+ walk(full, depth + 1, prefix + ' ');
123
+ }
124
+ else if (item.isFile()) {
125
+ try {
126
+ const s = statSync(full);
127
+ entries.push(`${prefix}${item.name} (${formatSize(s.size)})`);
128
+ }
129
+ catch {
130
+ entries.push(`${prefix}${item.name}`);
131
+ }
132
+ count++;
133
+ }
134
+ }
135
+ }
136
+ walk(resolved, 1, '');
137
+ if (entries.length === 0)
138
+ return 'Empty directory.';
139
+ let result = entries.join('\n');
140
+ if (count >= MAX_LIST_ENTRIES)
141
+ result += `\n... (${MAX_LIST_ENTRIES} entries shown. Narrow with path.)`;
142
+ return result;
143
+ }
144
+ export function fileTool(cwd) {
145
+ return {
146
+ type: 'function',
147
+ function: {
148
+ name: 'file',
149
+ description: 'Read file contents or list directory entries. Actions: read (view a file with line numbers), list (show directory tree).',
150
+ parameters: {
151
+ type: 'object',
152
+ properties: {
153
+ action: { type: 'string', enum: ['read', 'list'], description: 'read = view file contents, list = directory listing.' },
154
+ path: { type: 'string', description: 'File or directory path (relative to project root, or absolute).' },
155
+ offset: { type: 'number', description: 'Line number to start reading from (read only, default: 1).' },
156
+ limit: { type: 'number', description: 'Max lines to return (read only). Omit to read entire file.' },
157
+ depth: { type: 'number', description: 'Directory depth for list (default: 2, max: 3).' },
158
+ },
159
+ required: ['action', 'path']
160
+ }
161
+ },
162
+ execute: async ({ action, path, offset, limit, depth }) => {
163
+ if (!path)
164
+ return 'Error: path is required.';
165
+ switch (action) {
166
+ case 'read': return doRead(cwd, path, offset, limit);
167
+ case 'list': return doList(cwd, path, Math.min(depth ?? 2, MAX_LIST_DEPTH));
168
+ default: return `Unknown action "${action}". Use: read, list.`;
169
+ }
170
+ }
171
+ };
172
+ }
173
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/tools/file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAY,OAAO,EAAY,MAAM,WAAW,CAAC;AAGjE,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,kBAAkB;AACrD,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACzD,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM;CACrD,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,QAAgB;IAChC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/C,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IACrC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY,EAAE,MAAe,EAAE,KAAc;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEpC,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,2BAA2B,IAAI,gFAAgF,CAAC;QAChJ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,8BAA8B,IAAI,EAAE,CAAC;QACrE,OAAO,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO,WAAW,IAAI,4CAA4C,CAAC;IAE3F,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,gBAAgB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,cAAc,iFAAiF,CAAC;IACzJ,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACjE,OAAO,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IAEhD,4CAA4C;IAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;YAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAE1F,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,6CAA6C,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;IACnH,CAAC;SAAM,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAClD,uBAAuB;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY,EAAE,QAAgB;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc;QACtD,IAAI,KAAK,GAAG,QAAQ,IAAI,KAAK,IAAI,gBAAgB;YAAE,OAAO;QAC1D,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAE5E,+BAA+B;QAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,IAAI,gBAAgB;gBAAE,MAAM;YACrC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;gBAAE,SAAS;YAE7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC7C,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,GAAG,QAAQ;oBAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxC,CAAC;gBACD,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACpD,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,IAAI,gBAAgB;QAAE,MAAM,IAAI,UAAU,gBAAgB,oCAAoC,CAAC;IACxG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,0HAA0H;YACvI,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE;oBACvH,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;oBACxG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;oBACrG,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;oBACpG,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;iBACzF;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC7B;SACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAEnD,EAAmB,EAAE;YACpB,IAAI,CAAC,IAAI;gBAAE,OAAO,0BAA0B,CAAC;YAC7C,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrD,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,CAAC,OAAO,mBAAmB,MAAM,qBAAqB,CAAC;YACjE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA4LxC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAsCzC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA8LxC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAsCzC"}
package/dist/tools/git.js CHANGED
@@ -1,12 +1,15 @@
1
- import { execFileSync } from 'node:child_process';
1
+ import { execFile } from 'node:child_process';
2
+ import { promisify } from 'node:util';
2
3
  import { existsSync } from 'node:fs';
3
4
  import { join } from 'node:path';
4
- function run(args, cwd) {
5
- return execFileSync('git', args, { cwd, encoding: 'utf-8', timeout: 30_000 }).trim();
5
+ const execFileAsync = promisify(execFile);
6
+ async function run(args, cwd) {
7
+ const { stdout } = await execFileAsync('git', args, { cwd, encoding: 'utf-8', timeout: 30_000 });
8
+ return stdout.trim();
6
9
  }
7
- function tryRun(args, cwd) {
10
+ async function tryRun(args, cwd) {
8
11
  try {
9
- return { ok: true, out: run(args, cwd) };
12
+ return { ok: true, out: await run(args, cwd) };
10
13
  }
11
14
  catch (e) {
12
15
  return { ok: false, out: ((e.stdout ?? '') + (e.stderr ?? '')).trim() };
@@ -15,11 +18,11 @@ function tryRun(args, cwd) {
15
18
  function isRepo(cwd) {
16
19
  return existsSync(join(cwd, '.git'));
17
20
  }
18
- function defaultBranch(cwd) {
19
- const ref = tryRun(['symbolic-ref', 'refs/remotes/origin/HEAD'], cwd);
21
+ async function defaultBranch(cwd) {
22
+ const ref = await tryRun(['symbolic-ref', 'refs/remotes/origin/HEAD'], cwd);
20
23
  if (ref.ok)
21
24
  return ref.out.replace('refs/remotes/origin/', '');
22
- const branches = tryRun(['branch', '-r'], cwd);
25
+ const branches = await tryRun(['branch', '-r'], cwd);
23
26
  if (branches.ok) {
24
27
  if (branches.out.includes('origin/main'))
25
28
  return 'main';
@@ -28,38 +31,37 @@ function defaultBranch(cwd) {
28
31
  }
29
32
  return 'main';
30
33
  }
31
- function currentBranch(cwd) {
32
- const result = tryRun(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
34
+ async function currentBranch(cwd) {
35
+ const result = await tryRun(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
33
36
  if (result.ok)
34
37
  return result.out;
35
- // No commits yet — check symbolic ref for initial branch name
36
- const sym = tryRun(['symbolic-ref', '--short', 'HEAD'], cwd);
38
+ const sym = await tryRun(['symbolic-ref', '--short', 'HEAD'], cwd);
37
39
  return sym.ok ? `${sym.out} (no commits yet)` : '(no commits yet)';
38
40
  }
39
- function remoteUrl(cwd) {
40
- const r = tryRun(['remote', 'get-url', 'origin'], cwd);
41
+ async function remoteUrl(cwd) {
42
+ const r = await tryRun(['remote', 'get-url', 'origin'], cwd);
41
43
  return r.ok ? r.out : '';
42
44
  }
43
- function compareUrl(cwd, branch) {
44
- const remote = remoteUrl(cwd);
45
+ async function compareUrl(cwd, branch) {
46
+ const remote = await remoteUrl(cwd);
45
47
  if (!remote)
46
48
  return '';
47
- const base = defaultBranch(cwd);
49
+ const base = await defaultBranch(cwd);
48
50
  const url = remote
49
51
  .replace(/^git@([^:]+):/, 'https://$1/')
50
52
  .replace(/\.git$/, '');
51
53
  return `${url}/compare/${base}...${branch}`;
52
54
  }
53
55
  // ── Action handlers ────────────────────────────────────────────────────────
54
- function doStatus(cwd) {
56
+ async function doStatus(cwd) {
55
57
  if (!isRepo(cwd))
56
58
  return 'Not a git repository. Use action=init first.';
57
59
  const lines = [];
58
- lines.push(`Branch: ${currentBranch(cwd)}`);
59
- const remote = remoteUrl(cwd);
60
+ lines.push(`Branch: ${await currentBranch(cwd)}`);
61
+ const remote = await remoteUrl(cwd);
60
62
  if (remote)
61
63
  lines.push(`Remote: ${remote}`);
62
- const status = run(['status', '--porcelain'], cwd);
64
+ const status = await run(['status', '--porcelain'], cwd);
63
65
  if (status) {
64
66
  const files = status.split('\n');
65
67
  const staged = files.filter(f => /^[MADRC]/.test(f)).length;
@@ -70,98 +72,98 @@ function doStatus(cwd) {
70
72
  else {
71
73
  lines.push('Working tree clean.');
72
74
  }
73
- const ahead = tryRun(['rev-list', '@{u}..HEAD', '--count'], cwd);
74
- const behind = tryRun(['rev-list', 'HEAD..@{u}', '--count'], cwd);
75
+ const ahead = await tryRun(['rev-list', '@{u}..HEAD', '--count'], cwd);
76
+ const behind = await tryRun(['rev-list', 'HEAD..@{u}', '--count'], cwd);
75
77
  if (ahead.ok && behind.ok) {
76
78
  lines.push(`Ahead: ${ahead.out}, Behind: ${behind.out}`);
77
79
  }
78
- const log = tryRun(['log', '--oneline', '-5'], cwd);
80
+ const log = await tryRun(['log', '--oneline', '-5'], cwd);
79
81
  if (log.ok && log.out)
80
82
  lines.push(`\nRecent commits:\n${log.out}`);
81
83
  return lines.join('\n');
82
84
  }
83
- function doInit(cwd, remote) {
85
+ async function doInit(cwd, remote) {
84
86
  if (isRepo(cwd)) {
85
- const branch = currentBranch(cwd);
86
- const existing = remoteUrl(cwd);
87
+ const branch = await currentBranch(cwd);
88
+ const existing = await remoteUrl(cwd);
87
89
  let msg = `Already a git repo. Branch: ${branch}`;
88
90
  if (existing)
89
91
  msg += `, Remote: ${existing}`;
90
92
  if (remote && remote !== existing) {
91
- tryRun(['remote', 'remove', 'origin'], cwd);
92
- run(['remote', 'add', 'origin', remote], cwd);
93
+ await tryRun(['remote', 'remove', 'origin'], cwd);
94
+ await run(['remote', 'add', 'origin', remote], cwd);
93
95
  msg += `\nRemote updated to: ${remote}`;
94
96
  }
95
97
  return msg;
96
98
  }
97
- run(['init'], cwd);
99
+ await run(['init'], cwd);
98
100
  let msg = 'Initialized git repository.';
99
101
  if (remote) {
100
- run(['remote', 'add', 'origin', remote], cwd);
102
+ await run(['remote', 'add', 'origin', remote], cwd);
101
103
  msg += ` Remote set to: ${remote}`;
102
104
  }
103
105
  return msg;
104
106
  }
105
- function doBranch(cwd, name) {
107
+ async function doBranch(cwd, name) {
106
108
  if (!isRepo(cwd))
107
109
  return 'Not a git repository. Use action=init first.';
108
110
  const lines = [];
109
- const status = run(['status', '--porcelain'], cwd);
111
+ const status = await run(['status', '--porcelain'], cwd);
110
112
  if (status) {
111
113
  lines.push(`Warning: ${status.split('\n').length} uncommitted change(s). Consider committing or stashing first.`);
112
114
  }
113
- const fetch = tryRun(['fetch', 'origin'], cwd);
114
- if (fetch.ok) {
115
+ const fetchResult = await tryRun(['fetch', 'origin'], cwd);
116
+ if (fetchResult.ok) {
115
117
  lines.push('Fetched latest from origin.');
116
118
  }
117
119
  else {
118
120
  lines.push('Warning: Could not fetch from origin (no remote or offline). Branching from local state.');
119
121
  }
120
- const base = defaultBranch(cwd);
121
- if (fetch.ok) {
122
- tryRun(['checkout', base], cwd);
123
- tryRun(['reset', '--hard', `origin/${base}`], cwd);
122
+ const base = await defaultBranch(cwd);
123
+ if (fetchResult.ok) {
124
+ await tryRun(['checkout', base], cwd);
125
+ await tryRun(['reset', '--hard', `origin/${base}`], cwd);
124
126
  lines.push(`Updated local ${base} to origin/${base}.`);
125
127
  }
126
- const result = tryRun(['checkout', '-b', name], cwd);
128
+ const result = await tryRun(['checkout', '-b', name], cwd);
127
129
  if (result.ok) {
128
130
  lines.push(`Created and switched to branch: ${name}`);
129
131
  }
130
132
  else {
131
- const sw = tryRun(['checkout', name], cwd);
133
+ const sw = await tryRun(['checkout', name], cwd);
132
134
  lines.push(sw.ok
133
135
  ? `Branch ${name} already exists. Switched to it.`
134
136
  : `Error creating branch: ${result.out}`);
135
137
  }
136
138
  return lines.join('\n');
137
139
  }
138
- function doCommit(cwd, message, files) {
140
+ async function doCommit(cwd, message, files) {
139
141
  if (!isRepo(cwd))
140
142
  return 'Not a git repository. Use action=init first.';
141
143
  if (files && files.length > 0) {
142
- run(['add', ...files], cwd);
144
+ await run(['add', ...files], cwd);
143
145
  }
144
146
  else {
145
- run(['add', '-A'], cwd);
147
+ await run(['add', '-A'], cwd);
146
148
  }
147
- const staged = tryRun(['diff', '--cached', '--stat'], cwd);
149
+ const staged = await tryRun(['diff', '--cached', '--stat'], cwd);
148
150
  if (!staged.out)
149
151
  return 'Nothing to commit. Working tree clean.';
150
- const result = tryRun(['commit', '-m', message], cwd);
152
+ const result = await tryRun(['commit', '-m', message], cwd);
151
153
  return result.ok ? `Committed: ${message}\n${result.out}` : `Commit failed: ${result.out}`;
152
154
  }
153
- function doPush(cwd, force) {
155
+ async function doPush(cwd, force) {
154
156
  if (!isRepo(cwd))
155
157
  return 'Not a git repository. Use action=init first.';
156
- const branch = currentBranch(cwd);
157
- const base = defaultBranch(cwd);
158
+ const branch = await currentBranch(cwd);
159
+ const base = await defaultBranch(cwd);
158
160
  if (branch === base) {
159
161
  return `You're on ${base}. Create a feature branch first with action=branch.`;
160
162
  }
161
163
  const args = ['push', '-u', 'origin', branch];
162
164
  if (force)
163
165
  args.splice(1, 0, '--force-with-lease');
164
- const result = tryRun(args, cwd);
166
+ const result = await tryRun(args, cwd);
165
167
  const lines = [];
166
168
  if (result.ok || result.out.includes('->')) {
167
169
  lines.push(`Pushed ${branch} to origin.`);
@@ -169,7 +171,7 @@ function doPush(cwd, force) {
169
171
  else {
170
172
  return `Push failed: ${result.out}`;
171
173
  }
172
- const url = compareUrl(cwd, branch);
174
+ const url = await compareUrl(cwd, branch);
173
175
  if (url)
174
176
  lines.push(`\nCreate PR: ${url}`);
175
177
  return lines.join('\n');
@@ -194,7 +196,7 @@ export function gitTool(cwd) {
194
196
  required: ['action']
195
197
  }
196
198
  },
197
- execute: ({ action, name, message, files, remote, force }) => {
199
+ execute: async ({ action, name, message, files, remote, force }) => {
198
200
  switch (action) {
199
201
  case 'status': return doStatus(cwd);
200
202
  case 'init': return doInit(cwd, remote);
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"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"}