@letta-ai/letta-code 0.19.2 → 0.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/protocol.d.ts +2 -0
- package/dist/types/protocol.d.ts.map +1 -1
- package/letta.js +176 -49
- package/package.json +1 -1
- package/vendor/ink/build/hooks/use-input.js +13 -2
- package/vendor/ink/build/package/build/parse-keypress.js +225 -0
- package/vendor/ink/build/parse-keypress.js +225 -0
package/dist/types/protocol.d.ts
CHANGED
|
@@ -551,6 +551,8 @@ export type ControlResponseBody = {
|
|
|
551
551
|
} | ExternalToolResultResponse;
|
|
552
552
|
export interface CanUseToolResponseAllow {
|
|
553
553
|
behavior: "allow";
|
|
554
|
+
/** Optional user comment attached to an allow decision */
|
|
555
|
+
message?: string;
|
|
554
556
|
/** Modified tool input */
|
|
555
557
|
updatedInput?: Record<string, unknown> | null;
|
|
556
558
|
/** TODO: Not implemented - dynamic permission rule updates */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/types/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,KAAK,EACV,gBAAgB,IAAI,qBAAqB,EACzC,OAAO,IAAI,YAAY,EACvB,gBAAgB,IAAI,qBAAqB,EACzC,sBAAsB,EACtB,eAAe,IAAI,oBAAoB,EACvC,QAAQ,EACT,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,IAAI,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAG1G,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,WAAW,GACZ,CAAC;AAOF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,wBAAwB,CAAC;AAOnE,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAClE,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kBAAkB,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,kBAAkB,CAAC;IAC/D,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAEhC;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAO9C;;;GAGG;AACH,MAAM,WAAW,oBACf,SAAQ,qBAAqB,EAC3B,eAAe;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBACf,SAAQ,oBAAoB,EAC1B,eAAe;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,oBACf,SAAQ,qBAAqB,EAC3B,eAAe;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,qBACf,SAAQ,sBAAsB,EAC5B,eAAe;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,sBAAsB,CAAC;AAM3B,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,sBAAsB,CAAC;CAC/B;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA6B,SAAQ,eAAe;IACnE,IAAI,EAAE,yBAAyB,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,SAAS,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC;CACtD;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,uFAAuF;IACvF,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,UAAU,CAAC;IACjB,iCAAiC;IACjC,aAAa,EACT,kBAAkB,GAClB,iBAAiB,GACjB,uBAAuB,CAAC;IAC5B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;AAE1E,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAUD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,mBAAmB,GACnB,UAAU,GACV,QAAQ,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,mEAAmE;IACnE,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAC3C,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9D,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,IAAI,EAAE,qBAAqB,CAAC;IAC5B,qDAAqD;IACrD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,iBAAiB,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAC7D,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,mEAAmE;IACnE,OAAO,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC1C,qCAAqC;IACrC,WAAW,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,mBAAmB,GACnB,cAAc,GACd,iBAAiB,GACjB,uBAAuB,GACvB,cAAc,CAAC;AAEnB;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,OAAO,GACP,WAAW,GACX,UAAU,GACV,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,IAAI,EAAE,oBAAoB,CAAC;IAC3B,qDAAqD;IACrD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,CAAC;AAQ1B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,GACzB;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB,4BAA4B,GAC5B,4BAA4B,GAC5B,qCAAqC,GACrC,0BAA0B,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,yBAAyB,CAAC;IACnC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oDAAoD;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,qDAAqD;IACrD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mDAAmD;IACnD,OAAO,CAAC,EAAE;QACR,oDAAoD;QACpD,UAAU,EAAE,MAAM,CAAC;QACnB,8CAA8C;QAC9C,gBAAgB,EAAE,MAAM,CAAC;QACzB,uCAAuC;QACvC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,eAAe,CAAC;IACzB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,2BAA2B,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sCAAsC;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAID,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAGhE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,sBAAsB,EAAE,OAAO,EAAE,CAAC;IAClC,uEAAuE;IACvE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,uBAAuB,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,0BAA0B,CAAC;AAG/B,MAAM,MAAM,kBAAkB,GAC1B,sBAAsB,GACtB,sBAAsB,CAAC;AAG3B,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EACL,kBAAkB,GAClB,sCAAsC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B,GACD;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvD,0BAA0B,CAAC;AAG/B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,kBAAkB,GAC1B,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,sBAAsB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAMD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;CACxB;AAUD;;;;;;GAMG;AACH,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,IAAI,EAAE,gBAAgB,CAAC;IACvB,sDAAsD;IACtD,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,IAAI,EAAE,eAAe,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAMD;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,cAAc,GACd,WAAW,GACX,wBAAwB,GACxB,uBAAuB,GACvB,2BAA2B,GAC3B,4BAA4B,GAC5B,mBAAmB,GACnB,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,aAAa,GACb,eAAe,GACf,cAAc,GACd,mBAAmB,GACnB,yBAAyB,GACzB,oBAAoB,GACpB,mBAAmB,GACnB,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/types/protocol.ts"],"names":[],"mappings":"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"}
|
package/letta.js
CHANGED
|
@@ -3240,7 +3240,7 @@ var package_default;
|
|
|
3240
3240
|
var init_package = __esm(() => {
|
|
3241
3241
|
package_default = {
|
|
3242
3242
|
name: "@letta-ai/letta-code",
|
|
3243
|
-
version: "0.19.
|
|
3243
|
+
version: "0.19.3",
|
|
3244
3244
|
description: "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
|
|
3245
3245
|
type: "module",
|
|
3246
3246
|
bin: {
|
|
@@ -5737,7 +5737,7 @@ var explore_default = `---
|
|
|
5737
5737
|
name: explore
|
|
5738
5738
|
description: Fast agent for codebase exploration - finding files, searching code, understanding structure. (Read-Only)
|
|
5739
5739
|
tools: Glob, Grep, Read, TaskOutput
|
|
5740
|
-
model:
|
|
5740
|
+
model: auto-fast
|
|
5741
5741
|
memoryBlocks: human, persona
|
|
5742
5742
|
mode: stateless
|
|
5743
5743
|
---
|
|
@@ -5772,7 +5772,7 @@ var general_purpose_default = `---
|
|
|
5772
5772
|
name: general-purpose
|
|
5773
5773
|
description: Full-capability agent for research, planning, and implementation
|
|
5774
5774
|
tools: Bash, TaskOutput, Edit, Glob, Grep, KillBash, LS, MultiEdit, Read, TodoWrite, Write
|
|
5775
|
-
model:
|
|
5775
|
+
model: auto
|
|
5776
5776
|
memoryBlocks: all
|
|
5777
5777
|
mode: stateful
|
|
5778
5778
|
---
|
|
@@ -5813,7 +5813,7 @@ name: history-analyzer
|
|
|
5813
5813
|
description: Analyze Claude Code or Codex conversation history and directly update agent memory files with insights
|
|
5814
5814
|
tools: Read, Write, Bash, Glob, Grep
|
|
5815
5815
|
skills: migrating-from-codex-and-claude-code
|
|
5816
|
-
model:
|
|
5816
|
+
model: auto
|
|
5817
5817
|
memoryBlocks: none
|
|
5818
5818
|
mode: stateless
|
|
5819
5819
|
permissionMode: bypassPermissions
|
|
@@ -5943,7 +5943,7 @@ var init_default = `---
|
|
|
5943
5943
|
name: init
|
|
5944
5944
|
description: Fast initialization of agent memory — reads key project files and creates a minimal memory hierarchy
|
|
5945
5945
|
tools: Read, Write, Edit, Bash, Glob
|
|
5946
|
-
model:
|
|
5946
|
+
model: auto-fast
|
|
5947
5947
|
memoryBlocks: none
|
|
5948
5948
|
permissionMode: bypassPermissions
|
|
5949
5949
|
---
|
|
@@ -6041,7 +6041,7 @@ var memory_default = `---
|
|
|
6041
6041
|
name: memory
|
|
6042
6042
|
description: Decompose and reorganize memory files into focused, single-purpose files using \`/\` naming
|
|
6043
6043
|
tools: Read, Edit, Write, Glob, Grep, Bash, TaskOutput
|
|
6044
|
-
model:
|
|
6044
|
+
model: auto
|
|
6045
6045
|
memoryBlocks: none
|
|
6046
6046
|
permissionMode: bypassPermissions
|
|
6047
6047
|
---
|
|
@@ -6395,7 +6395,7 @@ var reflection_default = `---
|
|
|
6395
6395
|
name: reflection
|
|
6396
6396
|
description: Background agent that reflects on recent conversations and updates memory files
|
|
6397
6397
|
tools: Read, Edit, Write, Glob, Grep, Bash, TaskOutput
|
|
6398
|
-
model:
|
|
6398
|
+
model: auto
|
|
6399
6399
|
memoryBlocks: none
|
|
6400
6400
|
mode: stateless
|
|
6401
6401
|
permissionMode: bypassPermissions
|
|
@@ -32716,13 +32716,24 @@ var import_react16, IS_LINUX, CSI_U_WITH_TRAILING_NEWLINE_PATTERN, CSI_PROTOCOL_
|
|
|
32716
32716
|
9: "tab",
|
|
32717
32717
|
13: "return",
|
|
32718
32718
|
27: "escape",
|
|
32719
|
+
32: "space",
|
|
32719
32720
|
127: "backspace"
|
|
32720
32721
|
};
|
|
32722
|
+
const csiUSeqMap = {
|
|
32723
|
+
9: "\t",
|
|
32724
|
+
13: "\r",
|
|
32725
|
+
27: "\x1B",
|
|
32726
|
+
32: " ",
|
|
32727
|
+
127: ""
|
|
32728
|
+
};
|
|
32721
32729
|
let name = csiUKeyMap[keycode] || "";
|
|
32730
|
+
let seq2 = csiUSeqMap[keycode] || data;
|
|
32722
32731
|
if (!name && keycode >= 97 && keycode <= 122) {
|
|
32723
32732
|
name = String.fromCharCode(keycode);
|
|
32733
|
+
seq2 = String.fromCharCode(keycode);
|
|
32724
32734
|
} else if (!name && keycode >= 65 && keycode <= 90) {
|
|
32725
32735
|
name = String.fromCharCode(keycode + 32);
|
|
32736
|
+
seq2 = String.fromCharCode(keycode + 32);
|
|
32726
32737
|
}
|
|
32727
32738
|
if (name) {
|
|
32728
32739
|
keypress = {
|
|
@@ -32731,7 +32742,7 @@ var import_react16, IS_LINUX, CSI_U_WITH_TRAILING_NEWLINE_PATTERN, CSI_PROTOCOL_
|
|
|
32731
32742
|
meta: !!(modifier & 10),
|
|
32732
32743
|
shift: !!(modifier & 1),
|
|
32733
32744
|
option: false,
|
|
32734
|
-
sequence:
|
|
32745
|
+
sequence: seq2,
|
|
32735
32746
|
raw: data
|
|
32736
32747
|
};
|
|
32737
32748
|
}
|
|
@@ -36931,10 +36942,17 @@ var init_byok_providers = __esm(async () => {
|
|
|
36931
36942
|
{
|
|
36932
36943
|
id: "zai",
|
|
36933
36944
|
displayName: "zAI API",
|
|
36934
|
-
description: "Connect a zAI key
|
|
36945
|
+
description: "Connect a zAI API key",
|
|
36935
36946
|
providerType: "zai",
|
|
36936
36947
|
providerName: "lc-zai"
|
|
36937
36948
|
},
|
|
36949
|
+
{
|
|
36950
|
+
id: "zai-coding",
|
|
36951
|
+
displayName: "zAI Coding Plan",
|
|
36952
|
+
description: "Connect a zAI Coding plan key",
|
|
36953
|
+
providerType: "zai_coding",
|
|
36954
|
+
providerName: "lc-zai-coding"
|
|
36955
|
+
},
|
|
36938
36956
|
{
|
|
36939
36957
|
id: "minimax",
|
|
36940
36958
|
displayName: "MiniMax API",
|
|
@@ -36993,7 +37011,9 @@ var init_byok_providers = __esm(async () => {
|
|
|
36993
37011
|
|
|
36994
37012
|
// src/cli/commands/connect-normalize.ts
|
|
36995
37013
|
function canonicalToByokId(canonical) {
|
|
36996
|
-
|
|
37014
|
+
if (canonical === "chatgpt")
|
|
37015
|
+
return "codex";
|
|
37016
|
+
return canonical;
|
|
36997
37017
|
}
|
|
36998
37018
|
function resolveConnectProvider(providerToken) {
|
|
36999
37019
|
if (!providerToken) {
|
|
@@ -37039,6 +37059,9 @@ function isConnectBedrockProvider(provider) {
|
|
|
37039
37059
|
function isConnectApiKeyProvider(provider) {
|
|
37040
37060
|
return !isConnectOAuthProvider(provider) && !isConnectBedrockProvider(provider);
|
|
37041
37061
|
}
|
|
37062
|
+
function isConnectZaiBaseProvider(provider) {
|
|
37063
|
+
return provider.canonical === "zai";
|
|
37064
|
+
}
|
|
37042
37065
|
var ALIAS_TO_CANONICAL, CANONICAL_ORDER;
|
|
37043
37066
|
var init_connect_normalize = __esm(async () => {
|
|
37044
37067
|
await init_byok_providers();
|
|
@@ -37048,6 +37071,7 @@ var init_connect_normalize = __esm(async () => {
|
|
|
37048
37071
|
anthropic: "anthropic",
|
|
37049
37072
|
openai: "openai",
|
|
37050
37073
|
zai: "zai",
|
|
37074
|
+
"zai-coding": "zai-coding",
|
|
37051
37075
|
minimax: "minimax",
|
|
37052
37076
|
gemini: "gemini",
|
|
37053
37077
|
openrouter: "openrouter",
|
|
@@ -37058,6 +37082,7 @@ var init_connect_normalize = __esm(async () => {
|
|
|
37058
37082
|
"anthropic",
|
|
37059
37083
|
"openai",
|
|
37060
37084
|
"zai",
|
|
37085
|
+
"zai-coding",
|
|
37061
37086
|
"minimax",
|
|
37062
37087
|
"gemini",
|
|
37063
37088
|
"openrouter",
|
|
@@ -40149,7 +40174,8 @@ async function executeSingleDecision(decision, onChunk, options) {
|
|
|
40149
40174
|
tool_return: decision.precomputedResult.toolReturn,
|
|
40150
40175
|
status: decision.precomputedResult.status,
|
|
40151
40176
|
stdout: decision.precomputedResult.stdout,
|
|
40152
|
-
stderr: decision.precomputedResult.stderr
|
|
40177
|
+
stderr: decision.precomputedResult.stderr,
|
|
40178
|
+
reason: decision.reason
|
|
40153
40179
|
};
|
|
40154
40180
|
}
|
|
40155
40181
|
try {
|
|
@@ -40187,7 +40213,8 @@ async function executeSingleDecision(decision, onChunk, options) {
|
|
|
40187
40213
|
tool_return: toolResult.toolReturn,
|
|
40188
40214
|
status: toolResult.status,
|
|
40189
40215
|
stdout: toolResult.stdout,
|
|
40190
|
-
stderr: toolResult.stderr
|
|
40216
|
+
stderr: toolResult.stderr,
|
|
40217
|
+
reason: decision.reason
|
|
40191
40218
|
};
|
|
40192
40219
|
} catch (e) {
|
|
40193
40220
|
const isAbortError2 = e instanceof Error && (e.name === "AbortError" || e.message === "The operation was aborted");
|
|
@@ -40206,7 +40233,8 @@ async function executeSingleDecision(decision, onChunk, options) {
|
|
|
40206
40233
|
type: "tool",
|
|
40207
40234
|
tool_call_id: decision.approval.toolCallId,
|
|
40208
40235
|
tool_return: errorMessage,
|
|
40209
|
-
status: "error"
|
|
40236
|
+
status: "error",
|
|
40237
|
+
reason: decision.reason
|
|
40210
40238
|
};
|
|
40211
40239
|
}
|
|
40212
40240
|
}
|
|
@@ -68448,7 +68476,25 @@ function getPermissionModeScopeKey(agentId, conversationId) {
|
|
|
68448
68476
|
}
|
|
68449
68477
|
function getConversationPermissionModeState(runtime, agentId, conversationId) {
|
|
68450
68478
|
const scopeKey = getPermissionModeScopeKey(agentId, conversationId);
|
|
68451
|
-
|
|
68479
|
+
const normalizedConversationId = normalizeConversationId(conversationId);
|
|
68480
|
+
const direct = runtime.permissionModeByConversation.get(scopeKey);
|
|
68481
|
+
if (direct) {
|
|
68482
|
+
return direct;
|
|
68483
|
+
}
|
|
68484
|
+
if (normalizedConversationId === "default") {
|
|
68485
|
+
const legacyDefaultKey = getPermissionModeScopeKey(null, "default");
|
|
68486
|
+
const legacyDefault = runtime.permissionModeByConversation.get(legacyDefaultKey);
|
|
68487
|
+
if (legacyDefault) {
|
|
68488
|
+
if (normalizeCwdAgentId(agentId)) {
|
|
68489
|
+
runtime.permissionModeByConversation.set(scopeKey, {
|
|
68490
|
+
...legacyDefault
|
|
68491
|
+
});
|
|
68492
|
+
runtime.permissionModeByConversation.delete(legacyDefaultKey);
|
|
68493
|
+
}
|
|
68494
|
+
return legacyDefault;
|
|
68495
|
+
}
|
|
68496
|
+
}
|
|
68497
|
+
return {
|
|
68452
68498
|
mode: permissionMode.getMode(),
|
|
68453
68499
|
planFilePath: null,
|
|
68454
68500
|
modeBeforePlan: null
|
|
@@ -69077,9 +69123,10 @@ function isValidApprovalResponseBody(value) {
|
|
|
69077
69123
|
}
|
|
69078
69124
|
const decision = maybeResponse.decision;
|
|
69079
69125
|
if (decision.behavior === "allow") {
|
|
69126
|
+
const hasMessage = decision.message === undefined || typeof decision.message === "string";
|
|
69080
69127
|
const hasUpdatedInput = decision.updated_input === undefined || decision.updated_input === null || typeof decision.updated_input === "object";
|
|
69081
69128
|
const hasUpdatedPermissions = decision.updated_permissions === undefined || Array.isArray(decision.updated_permissions) && decision.updated_permissions.every((entry) => typeof entry === "string");
|
|
69082
|
-
return hasUpdatedInput && hasUpdatedPermissions;
|
|
69129
|
+
return hasMessage && hasUpdatedInput && hasUpdatedPermissions;
|
|
69083
69130
|
}
|
|
69084
69131
|
if (decision.behavior === "deny") {
|
|
69085
69132
|
return typeof decision.message === "string";
|
|
@@ -69214,23 +69261,62 @@ function normalizeToolReturnText(value) {
|
|
|
69214
69261
|
return String(value);
|
|
69215
69262
|
}
|
|
69216
69263
|
}
|
|
69264
|
+
function isToolReturnContent(value) {
|
|
69265
|
+
if (typeof value === "string")
|
|
69266
|
+
return true;
|
|
69267
|
+
if (!Array.isArray(value))
|
|
69268
|
+
return false;
|
|
69269
|
+
return value.every((part) => !!part && typeof part === "object" && ("type" in part) && (part.type === "text" && ("text" in part) && typeof part.text === "string" || part.type === "image" && ("data" in part) && typeof part.data === "string" && ("mimeType" in part) && typeof part.mimeType === "string"));
|
|
69270
|
+
}
|
|
69271
|
+
function prependApprovalComment(toolReturn, reason) {
|
|
69272
|
+
const trimmedReason = reason?.trim();
|
|
69273
|
+
if (!trimmedReason) {
|
|
69274
|
+
return toolReturn;
|
|
69275
|
+
}
|
|
69276
|
+
const commentPart = {
|
|
69277
|
+
type: "text",
|
|
69278
|
+
text: `${APPROVAL_COMMENT_PREFIX} "${trimmedReason}"`
|
|
69279
|
+
};
|
|
69280
|
+
if (typeof toolReturn === "string") {
|
|
69281
|
+
return [commentPart, { type: "text", text: toolReturn }];
|
|
69282
|
+
}
|
|
69283
|
+
return [commentPart, ...toolReturn];
|
|
69284
|
+
}
|
|
69217
69285
|
function normalizeApprovalResultsForPersistence(approvals, options = {}) {
|
|
69218
69286
|
if (!approvals || approvals.length === 0)
|
|
69219
69287
|
return approvals ?? [];
|
|
69220
69288
|
const interruptedSet = new Set(options.interruptedToolCallIds ?? []);
|
|
69221
69289
|
return approvals.map((approval) => {
|
|
69290
|
+
if (approval && typeof approval === "object" && "type" in approval && approval.type === "approval" && "approve" in approval && approval.approve === true && "tool_return" in approval && isToolReturnContent(approval.tool_return)) {
|
|
69291
|
+
return {
|
|
69292
|
+
type: "tool",
|
|
69293
|
+
tool_call_id: "tool_call_id" in approval && typeof approval.tool_call_id === "string" ? approval.tool_call_id : "",
|
|
69294
|
+
tool_return: approval.tool_return,
|
|
69295
|
+
status: "status" in approval && approval.status === "error" ? "error" : "success",
|
|
69296
|
+
stdout: "stdout" in approval && Array.isArray(approval.stdout) ? approval.stdout : undefined,
|
|
69297
|
+
stderr: "stderr" in approval && Array.isArray(approval.stderr) ? approval.stderr : undefined
|
|
69298
|
+
};
|
|
69299
|
+
}
|
|
69222
69300
|
if (!approval || typeof approval !== "object" || !("type" in approval) || approval.type !== "tool") {
|
|
69223
69301
|
return approval;
|
|
69224
69302
|
}
|
|
69225
69303
|
const toolCallId = "tool_call_id" in approval && typeof approval.tool_call_id === "string" ? approval.tool_call_id : "";
|
|
69304
|
+
const toolReturn = prependApprovalComment(approval.tool_return, "reason" in approval && typeof approval.reason === "string" ? approval.reason : undefined);
|
|
69226
69305
|
const interruptedByStructuredId = toolCallId.length > 0 && interruptedSet.has(toolCallId);
|
|
69227
69306
|
const interruptedByLegacyText = options.allowInterruptTextFallback ? normalizeToolReturnText("tool_return" in approval ? approval.tool_return : "") === INTERRUPTED_BY_USER : false;
|
|
69228
69307
|
if ((interruptedByStructuredId || interruptedByLegacyText) && "status" in approval && approval.status !== "error") {
|
|
69229
69308
|
return {
|
|
69230
69309
|
...approval,
|
|
69310
|
+
tool_return: toolReturn,
|
|
69231
69311
|
status: "error"
|
|
69232
69312
|
};
|
|
69233
69313
|
}
|
|
69314
|
+
if (toolReturn !== approval.tool_return) {
|
|
69315
|
+
return {
|
|
69316
|
+
...approval,
|
|
69317
|
+
tool_return: toolReturn
|
|
69318
|
+
};
|
|
69319
|
+
}
|
|
69234
69320
|
return approval;
|
|
69235
69321
|
});
|
|
69236
69322
|
}
|
|
@@ -69248,6 +69334,7 @@ function normalizeOutgoingApprovalMessages(messages, options = {}) {
|
|
|
69248
69334
|
};
|
|
69249
69335
|
});
|
|
69250
69336
|
}
|
|
69337
|
+
var APPROVAL_COMMENT_PREFIX = "The user approved the tool execution with the following comment:";
|
|
69251
69338
|
var init_approval_result_normalization = __esm(() => {
|
|
69252
69339
|
init_constants();
|
|
69253
69340
|
});
|
|
@@ -71422,7 +71509,7 @@ var init_interactivePolicy = __esm(() => {
|
|
|
71422
71509
|
"ExitPlanMode"
|
|
71423
71510
|
]);
|
|
71424
71511
|
RUNTIME_USER_INPUT_TOOLS = new Set(["AskUserQuestion", "ExitPlanMode"]);
|
|
71425
|
-
HEADLESS_AUTO_ALLOW_TOOLS = new Set(["EnterPlanMode"]);
|
|
71512
|
+
HEADLESS_AUTO_ALLOW_TOOLS = new Set(["EnterPlanMode", "ExitPlanMode"]);
|
|
71426
71513
|
});
|
|
71427
71514
|
|
|
71428
71515
|
// src/cli/helpers/toolNameMapping.ts
|
|
@@ -74570,7 +74657,8 @@ async function resolveRecoveredApprovalResponse(runtime, socket, response, proce
|
|
|
74570
74657
|
approval: decision.updated_input ? {
|
|
74571
74658
|
...entry.approval,
|
|
74572
74659
|
toolArgs: JSON.stringify(decision.updated_input)
|
|
74573
|
-
} : entry.approval
|
|
74660
|
+
} : entry.approval,
|
|
74661
|
+
reason: decision.message
|
|
74574
74662
|
});
|
|
74575
74663
|
} else {
|
|
74576
74664
|
decisions.push({
|
|
@@ -74882,7 +74970,8 @@ async function resolveStaleApprovals(runtime, socket, abortSignal) {
|
|
|
74882
74970
|
approval: response.updated_input ? {
|
|
74883
74971
|
...ac.approval,
|
|
74884
74972
|
toolArgs: JSON.stringify(response.updated_input)
|
|
74885
|
-
} : ac.approval
|
|
74973
|
+
} : ac.approval,
|
|
74974
|
+
reason: response.message
|
|
74886
74975
|
});
|
|
74887
74976
|
} else {
|
|
74888
74977
|
decisions.push({
|
|
@@ -76129,7 +76218,11 @@ async function handleApprovalStop(params) {
|
|
|
76129
76218
|
...ac.approval,
|
|
76130
76219
|
toolArgs: JSON.stringify(response.updated_input)
|
|
76131
76220
|
} : ac.approval;
|
|
76132
|
-
decisions.push({
|
|
76221
|
+
decisions.push({
|
|
76222
|
+
type: "approve",
|
|
76223
|
+
approval: finalApproval,
|
|
76224
|
+
reason: response.message
|
|
76225
|
+
});
|
|
76133
76226
|
} else {
|
|
76134
76227
|
decisions.push({
|
|
76135
76228
|
type: "deny",
|
|
@@ -76718,6 +76811,10 @@ async function handleIncomingMessage(msg, socket, runtime, onStatusChange, conne
|
|
|
76718
76811
|
}
|
|
76719
76812
|
} finally {
|
|
76720
76813
|
setConversationPermissionModeState(runtime.listener, normalizedAgentId, conversationId, turnPermissionModeState);
|
|
76814
|
+
emitDeviceStatusIfOpen(runtime, {
|
|
76815
|
+
agent_id: agentId || null,
|
|
76816
|
+
conversation_id: conversationId
|
|
76817
|
+
});
|
|
76721
76818
|
runtime.activeAbortController = null;
|
|
76722
76819
|
runtime.cancelRequested = false;
|
|
76723
76820
|
runtime.isRecoveringApprovals = false;
|
|
@@ -102019,6 +102116,7 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102019
102116
|
onApproveAndAcceptEdits,
|
|
102020
102117
|
onKeepPlanning,
|
|
102021
102118
|
onCancel,
|
|
102119
|
+
showAcceptEditsOption = true,
|
|
102022
102120
|
isFocused = true,
|
|
102023
102121
|
planContent,
|
|
102024
102122
|
planFilePath,
|
|
@@ -102046,9 +102144,10 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102046
102144
|
setTimeout(() => setBrowserStatus(""), 5000);
|
|
102047
102145
|
});
|
|
102048
102146
|
}, [planContent, planFilePath, agentName]);
|
|
102049
|
-
const customOptionIndex = 2;
|
|
102147
|
+
const customOptionIndex = showAcceptEditsOption ? 2 : 1;
|
|
102050
102148
|
const maxOptionIndex = customOptionIndex;
|
|
102051
|
-
const
|
|
102149
|
+
const effectiveSelectedOption = Math.min(selectedOption, maxOptionIndex);
|
|
102150
|
+
const isOnCustomOption = effectiveSelectedOption === customOptionIndex;
|
|
102052
102151
|
const customOptionPlaceholder = "Type here to tell Letta Code what to change";
|
|
102053
102152
|
use_input_default((input, key) => {
|
|
102054
102153
|
if (!isFocused)
|
|
@@ -102088,9 +102187,9 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102088
102187
|
return;
|
|
102089
102188
|
}
|
|
102090
102189
|
if (key.return) {
|
|
102091
|
-
if (
|
|
102190
|
+
if (showAcceptEditsOption && effectiveSelectedOption === 0) {
|
|
102092
102191
|
onApproveAndAcceptEdits();
|
|
102093
|
-
} else
|
|
102192
|
+
} else {
|
|
102094
102193
|
onApprove();
|
|
102095
102194
|
}
|
|
102096
102195
|
return;
|
|
@@ -102100,10 +102199,14 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102100
102199
|
return;
|
|
102101
102200
|
}
|
|
102102
102201
|
if (input === "1") {
|
|
102103
|
-
|
|
102202
|
+
if (showAcceptEditsOption) {
|
|
102203
|
+
onApproveAndAcceptEdits();
|
|
102204
|
+
} else {
|
|
102205
|
+
onApprove();
|
|
102206
|
+
}
|
|
102104
102207
|
return;
|
|
102105
102208
|
}
|
|
102106
|
-
if (input === "2") {
|
|
102209
|
+
if (showAcceptEditsOption && input === "2") {
|
|
102107
102210
|
onApprove();
|
|
102108
102211
|
return;
|
|
102109
102212
|
}
|
|
@@ -102129,9 +102232,9 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102129
102232
|
width: 5,
|
|
102130
102233
|
flexShrink: 0,
|
|
102131
102234
|
children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text2, {
|
|
102132
|
-
color:
|
|
102235
|
+
color: effectiveSelectedOption === 0 ? colors.approval.header : undefined,
|
|
102133
102236
|
children: [
|
|
102134
|
-
|
|
102237
|
+
effectiveSelectedOption === 0 ? "❯" : " ",
|
|
102135
102238
|
" 1."
|
|
102136
102239
|
]
|
|
102137
102240
|
}, undefined, true, undefined, this)
|
|
@@ -102141,22 +102244,22 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102141
102244
|
width: Math.max(0, columns - 5),
|
|
102142
102245
|
children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text2, {
|
|
102143
102246
|
wrap: "wrap",
|
|
102144
|
-
color:
|
|
102145
|
-
children: "Yes, and auto-accept edits"
|
|
102247
|
+
color: effectiveSelectedOption === 0 ? colors.approval.header : undefined,
|
|
102248
|
+
children: showAcceptEditsOption ? "Yes, and auto-accept edits" : "Yes, proceed (bypassPermissions / yolo mode)"
|
|
102146
102249
|
}, undefined, false, undefined, this)
|
|
102147
102250
|
}, undefined, false, undefined, this)
|
|
102148
102251
|
]
|
|
102149
102252
|
}, undefined, true, undefined, this),
|
|
102150
|
-
/* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
|
|
102253
|
+
showAcceptEditsOption && /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
|
|
102151
102254
|
flexDirection: "row",
|
|
102152
102255
|
children: [
|
|
102153
102256
|
/* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
|
|
102154
102257
|
width: 5,
|
|
102155
102258
|
flexShrink: 0,
|
|
102156
102259
|
children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text2, {
|
|
102157
|
-
color:
|
|
102260
|
+
color: effectiveSelectedOption === 1 ? colors.approval.header : undefined,
|
|
102158
102261
|
children: [
|
|
102159
|
-
|
|
102262
|
+
effectiveSelectedOption === 1 ? "❯" : " ",
|
|
102160
102263
|
" 2."
|
|
102161
102264
|
]
|
|
102162
102265
|
}, undefined, true, undefined, this)
|
|
@@ -102166,7 +102269,7 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102166
102269
|
width: Math.max(0, columns - 5),
|
|
102167
102270
|
children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text2, {
|
|
102168
102271
|
wrap: "wrap",
|
|
102169
|
-
color:
|
|
102272
|
+
color: effectiveSelectedOption === 1 ? colors.approval.header : undefined,
|
|
102170
102273
|
children: "Yes, and manually approve edits"
|
|
102171
102274
|
}, undefined, false, undefined, this)
|
|
102172
102275
|
}, undefined, false, undefined, this)
|
|
@@ -102182,7 +102285,9 @@ var init_StaticPlanApproval = __esm(async () => {
|
|
|
102182
102285
|
color: isOnCustomOption ? colors.approval.header : undefined,
|
|
102183
102286
|
children: [
|
|
102184
102287
|
isOnCustomOption ? "❯" : " ",
|
|
102185
|
-
"
|
|
102288
|
+
" ",
|
|
102289
|
+
customOptionIndex + 1,
|
|
102290
|
+
"."
|
|
102186
102291
|
]
|
|
102187
102292
|
}, undefined, true, undefined, this)
|
|
102188
102293
|
}, undefined, false, undefined, this),
|
|
@@ -102298,6 +102403,7 @@ function getQuestions(approval) {
|
|
|
102298
102403
|
}
|
|
102299
102404
|
var import_react48, jsx_dev_runtime25, ApprovalSwitch;
|
|
102300
102405
|
var init_ApprovalSwitch = __esm(async () => {
|
|
102406
|
+
init_mode();
|
|
102301
102407
|
await __promiseAll([
|
|
102302
102408
|
init_toolNameMapping(),
|
|
102303
102409
|
init_InlineBashApproval(),
|
|
@@ -102334,11 +102440,13 @@ var init_ApprovalSwitch = __esm(async () => {
|
|
|
102334
102440
|
}) => {
|
|
102335
102441
|
const toolName = approval.toolName;
|
|
102336
102442
|
if (toolName === "ExitPlanMode" && onPlanApprove && onPlanKeepPlanning) {
|
|
102443
|
+
const showAcceptEditsOption = permissionMode.getMode() === "plan" && permissionMode.getModeBeforePlan() !== "bypassPermissions";
|
|
102337
102444
|
return /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(StaticPlanApproval, {
|
|
102338
102445
|
onApprove: () => onPlanApprove(false),
|
|
102339
102446
|
onApproveAndAcceptEdits: () => onPlanApprove(true),
|
|
102340
102447
|
onKeepPlanning: onPlanKeepPlanning,
|
|
102341
102448
|
onCancel: onCancel ?? (() => {}),
|
|
102449
|
+
showAcceptEditsOption,
|
|
102342
102450
|
isFocused,
|
|
102343
102451
|
planContent,
|
|
102344
102452
|
planFilePath,
|
|
@@ -124500,6 +124608,18 @@ function formatApiKeyUsage(provider) {
|
|
|
124500
124608
|
].join(`
|
|
124501
124609
|
`);
|
|
124502
124610
|
}
|
|
124611
|
+
function formatZaiCodingPlanPrompt(apiKey) {
|
|
124612
|
+
const keyHint = apiKey ? ` ${apiKey}` : " <api_key>";
|
|
124613
|
+
return [
|
|
124614
|
+
"Connect to Z.ai",
|
|
124615
|
+
"",
|
|
124616
|
+
"Do you have a Z.ai Coding plan?",
|
|
124617
|
+
"",
|
|
124618
|
+
` • Coding plan: /connect zai-coding${keyHint}`,
|
|
124619
|
+
` • Regular API: /connect zai${keyHint}`
|
|
124620
|
+
].join(`
|
|
124621
|
+
`);
|
|
124622
|
+
}
|
|
124503
124623
|
async function handleConnectChatGPT(ctx, msg) {
|
|
124504
124624
|
const existingProvider = await isChatGPTOAuthConnected();
|
|
124505
124625
|
if (existingProvider) {
|
|
@@ -124608,7 +124728,11 @@ async function handleConnect(ctx, msg) {
|
|
|
124608
124728
|
if (isConnectApiKeyProvider(provider)) {
|
|
124609
124729
|
const apiKey = parts.slice(2).join("");
|
|
124610
124730
|
if (!apiKey) {
|
|
124611
|
-
|
|
124731
|
+
if (isConnectZaiBaseProvider(provider)) {
|
|
124732
|
+
addCommandResult3(ctx.buffersRef, ctx.refreshDerived, msg, formatZaiCodingPlanPrompt(), false);
|
|
124733
|
+
} else {
|
|
124734
|
+
addCommandResult3(ctx.buffersRef, ctx.refreshDerived, msg, formatApiKeyUsage(provider), false);
|
|
124735
|
+
}
|
|
124612
124736
|
return;
|
|
124613
124737
|
}
|
|
124614
124738
|
await handleConnectApiKeyProvider(ctx, msg, provider, apiKey);
|
|
@@ -131010,10 +131134,12 @@ ${SYSTEM_REMINDER_CLOSE}
|
|
|
131010
131134
|
refreshDerived();
|
|
131011
131135
|
const recoveryApprovalResults = [
|
|
131012
131136
|
...autoAllowedResults.map((ar) => ({
|
|
131013
|
-
type: "
|
|
131137
|
+
type: "tool",
|
|
131014
131138
|
tool_call_id: ar.toolCallId,
|
|
131015
|
-
|
|
131016
|
-
|
|
131139
|
+
tool_return: ar.result.toolReturn,
|
|
131140
|
+
status: ar.result.status,
|
|
131141
|
+
stdout: ar.result.stdout,
|
|
131142
|
+
stderr: ar.result.stderr
|
|
131017
131143
|
})),
|
|
131018
131144
|
...autoDeniedResults
|
|
131019
131145
|
];
|
|
@@ -132470,7 +132596,8 @@ ${guidance}`);
|
|
|
132470
132596
|
}
|
|
132471
132597
|
const currentMode = permissionMode.getMode();
|
|
132472
132598
|
if (currentMode === "plan") {
|
|
132473
|
-
const
|
|
132599
|
+
const previousMode = permissionMode.getModeBeforePlan();
|
|
132600
|
+
const restoreMode = previousMode === "bypassPermissions" ? "bypassPermissions" : acceptEdits ? "acceptEdits" : previousMode ?? "default";
|
|
132474
132601
|
permissionMode.setMode(restoreMode);
|
|
132475
132602
|
setUiPermissionMode(restoreMode);
|
|
132476
132603
|
} else {
|
|
@@ -132551,12 +132678,10 @@ ${guidance}`);
|
|
|
132551
132678
|
const fallbackPlanPath = lastPlanFilePathRef.current;
|
|
132552
132679
|
const hasUsablePlan = planFileExists(fallbackPlanPath);
|
|
132553
132680
|
if (mode !== "plan") {
|
|
132681
|
+
if (hasUsablePlan) {
|
|
132682
|
+
return;
|
|
132683
|
+
}
|
|
132554
132684
|
if (mode === "bypassPermissions") {
|
|
132555
|
-
if (hasUsablePlan) {
|
|
132556
|
-
lastAutoHandledExitPlanToolCallIdRef.current = approval.toolCallId;
|
|
132557
|
-
handlePlanApprove();
|
|
132558
|
-
return;
|
|
132559
|
-
}
|
|
132560
132685
|
const planFilePath = activePlanPath ?? fallbackPlanPath;
|
|
132561
132686
|
const plansDir = join44(homedir34(), ".letta", "plans");
|
|
132562
132687
|
handlePlanKeepPlanning(`You must write your plan to a plan file before exiting plan mode.
|
|
@@ -132564,9 +132689,6 @@ ${guidance}`);
|
|
|
132564
132689
|
` : "") + `Use a write tool to create your plan in ${plansDir}, then use ExitPlanMode to present the plan to the user.`);
|
|
132565
132690
|
return;
|
|
132566
132691
|
}
|
|
132567
|
-
if (hasUsablePlan) {
|
|
132568
|
-
return;
|
|
132569
|
-
}
|
|
132570
132692
|
const statusId = uid5("status");
|
|
132571
132693
|
buffersRef.current.byId.set(statusId, {
|
|
132572
132694
|
kind: "status",
|
|
@@ -132605,7 +132727,6 @@ ${guidance}`);
|
|
|
132605
132727
|
}, [
|
|
132606
132728
|
pendingApprovals,
|
|
132607
132729
|
approvalResults.length,
|
|
132608
|
-
handlePlanApprove,
|
|
132609
132730
|
handlePlanKeepPlanning,
|
|
132610
132731
|
refreshDerived,
|
|
132611
132732
|
queueApprovalResults
|
|
@@ -138580,6 +138701,12 @@ async function runConnectSubcommand(argv, deps = {}) {
|
|
|
138580
138701
|
}
|
|
138581
138702
|
if (isConnectApiKeyProvider(provider)) {
|
|
138582
138703
|
let apiKey = readStringOption(parsed.values["api-key"]) ?? restPositionals[0] ?? "";
|
|
138704
|
+
if (!apiKey && isConnectZaiBaseProvider(provider)) {
|
|
138705
|
+
io.stdout(`Do you have a Z.ai Coding plan?
|
|
138706
|
+
` + ` • Coding plan: letta connect zai-coding [--api-key <key>]
|
|
138707
|
+
` + " • Regular API: letta connect zai [--api-key <key>]");
|
|
138708
|
+
return 0;
|
|
138709
|
+
}
|
|
138583
138710
|
if (!apiKey) {
|
|
138584
138711
|
if (!io.isTTY()) {
|
|
138585
138712
|
io.stderr(`Missing API key for ${provider.canonical}. Pass as positional arg or --api-key.`);
|
|
@@ -142845,4 +142972,4 @@ Error during initialization: ${message}`);
|
|
|
142845
142972
|
}
|
|
142846
142973
|
main();
|
|
142847
142974
|
|
|
142848
|
-
//# debugId=
|
|
142975
|
+
//# debugId=9B4D5740B8FA924E64756E2164756E21
|
package/package.json
CHANGED
|
@@ -147,21 +147,32 @@ const useInput = (inputHandler, options = {}) => {
|
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
// Map keycodes to names
|
|
150
|
+
// Map keycodes to names and actual character sequences
|
|
151
151
|
const csiUKeyMap = {
|
|
152
152
|
9: 'tab',
|
|
153
153
|
13: 'return',
|
|
154
154
|
27: 'escape',
|
|
155
|
+
32: 'space',
|
|
155
156
|
127: 'backspace',
|
|
156
157
|
};
|
|
158
|
+
const csiUSeqMap = {
|
|
159
|
+
9: '\t',
|
|
160
|
+
13: '\r',
|
|
161
|
+
27: '\x1b',
|
|
162
|
+
32: ' ',
|
|
163
|
+
127: '\x7f',
|
|
164
|
+
};
|
|
157
165
|
|
|
158
166
|
let name = csiUKeyMap[keycode] || '';
|
|
167
|
+
let seq = csiUSeqMap[keycode] || data;
|
|
159
168
|
|
|
160
169
|
// Handle letter keycodes (a-z: 97-122, A-Z: 65-90)
|
|
161
170
|
if (!name && keycode >= 97 && keycode <= 122) {
|
|
162
171
|
name = String.fromCharCode(keycode); // lowercase letter
|
|
172
|
+
seq = String.fromCharCode(keycode);
|
|
163
173
|
} else if (!name && keycode >= 65 && keycode <= 90) {
|
|
164
174
|
name = String.fromCharCode(keycode + 32); // convert to lowercase
|
|
175
|
+
seq = String.fromCharCode(keycode + 32);
|
|
165
176
|
}
|
|
166
177
|
|
|
167
178
|
if (name) {
|
|
@@ -171,7 +182,7 @@ const useInput = (inputHandler, options = {}) => {
|
|
|
171
182
|
meta: !!(modifier & 10),
|
|
172
183
|
shift: !!(modifier & 1),
|
|
173
184
|
option: false,
|
|
174
|
-
sequence:
|
|
185
|
+
sequence: seq,
|
|
175
186
|
raw: data,
|
|
176
187
|
};
|
|
177
188
|
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// Copied from https://github.com/enquirer/enquirer/blob/36785f3399a41cd61e9d28d1eb9c2fcd73d69b4c/lib/keypress.js
|
|
2
|
+
import { Buffer } from 'node:buffer';
|
|
3
|
+
const metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
|
|
4
|
+
const fnKeyRe = /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
|
|
5
|
+
const keyName = {
|
|
6
|
+
/* xterm/gnome ESC O letter */
|
|
7
|
+
OP: 'f1',
|
|
8
|
+
OQ: 'f2',
|
|
9
|
+
OR: 'f3',
|
|
10
|
+
OS: 'f4',
|
|
11
|
+
/* xterm/rxvt ESC [ number ~ */
|
|
12
|
+
'[11~': 'f1',
|
|
13
|
+
'[12~': 'f2',
|
|
14
|
+
'[13~': 'f3',
|
|
15
|
+
'[14~': 'f4',
|
|
16
|
+
/* from Cygwin and used in libuv */
|
|
17
|
+
'[[A': 'f1',
|
|
18
|
+
'[[B': 'f2',
|
|
19
|
+
'[[C': 'f3',
|
|
20
|
+
'[[D': 'f4',
|
|
21
|
+
'[[E': 'f5',
|
|
22
|
+
/* common */
|
|
23
|
+
'[15~': 'f5',
|
|
24
|
+
'[17~': 'f6',
|
|
25
|
+
'[18~': 'f7',
|
|
26
|
+
'[19~': 'f8',
|
|
27
|
+
'[20~': 'f9',
|
|
28
|
+
'[21~': 'f10',
|
|
29
|
+
'[23~': 'f11',
|
|
30
|
+
'[24~': 'f12',
|
|
31
|
+
/* xterm ESC [ letter */
|
|
32
|
+
'[A': 'up',
|
|
33
|
+
'[B': 'down',
|
|
34
|
+
'[C': 'right',
|
|
35
|
+
'[D': 'left',
|
|
36
|
+
'[E': 'clear',
|
|
37
|
+
'[F': 'end',
|
|
38
|
+
'[H': 'home',
|
|
39
|
+
/* xterm/gnome ESC O letter */
|
|
40
|
+
OA: 'up',
|
|
41
|
+
OB: 'down',
|
|
42
|
+
OC: 'right',
|
|
43
|
+
OD: 'left',
|
|
44
|
+
OE: 'clear',
|
|
45
|
+
OF: 'end',
|
|
46
|
+
OH: 'home',
|
|
47
|
+
/* xterm/rxvt ESC [ number ~ */
|
|
48
|
+
'[1~': 'home',
|
|
49
|
+
'[2~': 'insert',
|
|
50
|
+
'[3~': 'delete',
|
|
51
|
+
'[4~': 'end',
|
|
52
|
+
'[5~': 'pageup',
|
|
53
|
+
'[6~': 'pagedown',
|
|
54
|
+
/* putty */
|
|
55
|
+
'[[5~': 'pageup',
|
|
56
|
+
'[[6~': 'pagedown',
|
|
57
|
+
/* rxvt */
|
|
58
|
+
'[7~': 'home',
|
|
59
|
+
'[8~': 'end',
|
|
60
|
+
/* rxvt keys with modifiers */
|
|
61
|
+
'[a': 'up',
|
|
62
|
+
'[b': 'down',
|
|
63
|
+
'[c': 'right',
|
|
64
|
+
'[d': 'left',
|
|
65
|
+
'[e': 'clear',
|
|
66
|
+
'[2$': 'insert',
|
|
67
|
+
'[3$': 'delete',
|
|
68
|
+
'[5$': 'pageup',
|
|
69
|
+
'[6$': 'pagedown',
|
|
70
|
+
'[7$': 'home',
|
|
71
|
+
'[8$': 'end',
|
|
72
|
+
Oa: 'up',
|
|
73
|
+
Ob: 'down',
|
|
74
|
+
Oc: 'right',
|
|
75
|
+
Od: 'left',
|
|
76
|
+
Oe: 'clear',
|
|
77
|
+
'[2^': 'insert',
|
|
78
|
+
'[3^': 'delete',
|
|
79
|
+
'[5^': 'pageup',
|
|
80
|
+
'[6^': 'pagedown',
|
|
81
|
+
'[7^': 'home',
|
|
82
|
+
'[8^': 'end',
|
|
83
|
+
/* misc. */
|
|
84
|
+
'[Z': 'tab',
|
|
85
|
+
};
|
|
86
|
+
export const nonAlphanumericKeys = [...Object.values(keyName), 'backspace'];
|
|
87
|
+
const isShiftKey = (code) => {
|
|
88
|
+
return [
|
|
89
|
+
'[a',
|
|
90
|
+
'[b',
|
|
91
|
+
'[c',
|
|
92
|
+
'[d',
|
|
93
|
+
'[e',
|
|
94
|
+
'[2$',
|
|
95
|
+
'[3$',
|
|
96
|
+
'[5$',
|
|
97
|
+
'[6$',
|
|
98
|
+
'[7$',
|
|
99
|
+
'[8$',
|
|
100
|
+
'[Z',
|
|
101
|
+
].includes(code);
|
|
102
|
+
};
|
|
103
|
+
const isCtrlKey = (code) => {
|
|
104
|
+
return [
|
|
105
|
+
'Oa',
|
|
106
|
+
'Ob',
|
|
107
|
+
'Oc',
|
|
108
|
+
'Od',
|
|
109
|
+
'Oe',
|
|
110
|
+
'[2^',
|
|
111
|
+
'[3^',
|
|
112
|
+
'[5^',
|
|
113
|
+
'[6^',
|
|
114
|
+
'[7^',
|
|
115
|
+
'[8^',
|
|
116
|
+
].includes(code);
|
|
117
|
+
};
|
|
118
|
+
const parseKeypress = (s = '') => {
|
|
119
|
+
let parts;
|
|
120
|
+
if (Buffer.isBuffer(s)) {
|
|
121
|
+
if (s[0] > 127 && s[1] === undefined) {
|
|
122
|
+
s[0] -= 128;
|
|
123
|
+
s = '\x1b' + String(s);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
s = String(s);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else if (s !== undefined && typeof s !== 'string') {
|
|
130
|
+
s = String(s);
|
|
131
|
+
}
|
|
132
|
+
else if (!s) {
|
|
133
|
+
s = '';
|
|
134
|
+
}
|
|
135
|
+
const key = {
|
|
136
|
+
name: '',
|
|
137
|
+
ctrl: false,
|
|
138
|
+
meta: false,
|
|
139
|
+
shift: false,
|
|
140
|
+
option: false,
|
|
141
|
+
sequence: s,
|
|
142
|
+
raw: s,
|
|
143
|
+
};
|
|
144
|
+
key.sequence = key.sequence || s || key.name;
|
|
145
|
+
if (s === '\r') {
|
|
146
|
+
// carriage return
|
|
147
|
+
key.raw = undefined;
|
|
148
|
+
key.name = 'return';
|
|
149
|
+
}
|
|
150
|
+
else if (s === '\n') {
|
|
151
|
+
// enter, should have been called linefeed
|
|
152
|
+
key.name = 'enter';
|
|
153
|
+
}
|
|
154
|
+
else if (s === '\t') {
|
|
155
|
+
// tab
|
|
156
|
+
key.name = 'tab';
|
|
157
|
+
}
|
|
158
|
+
else if (s === '\b' || s === '\x1b\b') {
|
|
159
|
+
// backspace or ctrl+h
|
|
160
|
+
key.name = 'backspace';
|
|
161
|
+
key.meta = s.charAt(0) === '\x1b';
|
|
162
|
+
}
|
|
163
|
+
else if (s === '\x7f' || s === '\x1b\x7f') {
|
|
164
|
+
// TODO(vadimdemedes): `enquirer` detects delete key as backspace, but I had to split them up to avoid breaking changes in Ink. Merge them back together in the next major version.
|
|
165
|
+
// delete
|
|
166
|
+
key.name = 'delete';
|
|
167
|
+
key.meta = s.charAt(0) === '\x1b';
|
|
168
|
+
}
|
|
169
|
+
else if (s === '\x1b' || s === '\x1b\x1b') {
|
|
170
|
+
// escape key
|
|
171
|
+
key.name = 'escape';
|
|
172
|
+
key.meta = s.length === 2;
|
|
173
|
+
}
|
|
174
|
+
else if (s === ' ' || s === '\x1b ') {
|
|
175
|
+
key.name = 'space';
|
|
176
|
+
key.meta = s.length === 2;
|
|
177
|
+
}
|
|
178
|
+
else if (s <= '\x1a') {
|
|
179
|
+
// ctrl+letter
|
|
180
|
+
key.name = String.fromCharCode(s.charCodeAt(0) + 'a'.charCodeAt(0) - 1);
|
|
181
|
+
key.ctrl = true;
|
|
182
|
+
}
|
|
183
|
+
else if (s.length === 1 && s >= '0' && s <= '9') {
|
|
184
|
+
// number
|
|
185
|
+
key.name = 'number';
|
|
186
|
+
}
|
|
187
|
+
else if (s.length === 1 && s >= 'a' && s <= 'z') {
|
|
188
|
+
// lowercase letter
|
|
189
|
+
key.name = s;
|
|
190
|
+
}
|
|
191
|
+
else if (s.length === 1 && s >= 'A' && s <= 'Z') {
|
|
192
|
+
// shift+letter
|
|
193
|
+
key.name = s.toLowerCase();
|
|
194
|
+
key.shift = true;
|
|
195
|
+
}
|
|
196
|
+
else if ((parts = metaKeyCodeRe.exec(s))) {
|
|
197
|
+
// meta+character key
|
|
198
|
+
key.meta = true;
|
|
199
|
+
key.shift = /^[A-Z]$/.test(parts[1]);
|
|
200
|
+
}
|
|
201
|
+
else if ((parts = fnKeyRe.exec(s))) {
|
|
202
|
+
const segs = [...s];
|
|
203
|
+
if (segs[0] === '\u001b' && segs[1] === '\u001b') {
|
|
204
|
+
key.option = true;
|
|
205
|
+
}
|
|
206
|
+
// ansi escape sequence
|
|
207
|
+
// reassemble the key code leaving out leading \x1b's,
|
|
208
|
+
// the modifier key bitflag and any meaningless "1;" sequence
|
|
209
|
+
const code = [parts[1], parts[2], parts[4], parts[6]]
|
|
210
|
+
.filter(Boolean)
|
|
211
|
+
.join('');
|
|
212
|
+
const modifier = (parts[3] || parts[5] || 1) - 1;
|
|
213
|
+
// Parse the key modifier
|
|
214
|
+
key.ctrl = !!(modifier & 4);
|
|
215
|
+
key.meta = !!(modifier & 10);
|
|
216
|
+
key.shift = !!(modifier & 1);
|
|
217
|
+
key.code = code;
|
|
218
|
+
key.name = keyName[code];
|
|
219
|
+
key.shift = isShiftKey(code) || key.shift;
|
|
220
|
+
key.ctrl = isCtrlKey(code) || key.ctrl;
|
|
221
|
+
}
|
|
222
|
+
return key;
|
|
223
|
+
};
|
|
224
|
+
export default parseKeypress;
|
|
225
|
+
//# sourceMappingURL=parse-keypress.js.map
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// Copied from https://github.com/enquirer/enquirer/blob/36785f3399a41cd61e9d28d1eb9c2fcd73d69b4c/lib/keypress.js
|
|
2
|
+
import { Buffer } from 'node:buffer';
|
|
3
|
+
const metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
|
|
4
|
+
const fnKeyRe = /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
|
|
5
|
+
const keyName = {
|
|
6
|
+
/* xterm/gnome ESC O letter */
|
|
7
|
+
OP: 'f1',
|
|
8
|
+
OQ: 'f2',
|
|
9
|
+
OR: 'f3',
|
|
10
|
+
OS: 'f4',
|
|
11
|
+
/* xterm/rxvt ESC [ number ~ */
|
|
12
|
+
'[11~': 'f1',
|
|
13
|
+
'[12~': 'f2',
|
|
14
|
+
'[13~': 'f3',
|
|
15
|
+
'[14~': 'f4',
|
|
16
|
+
/* from Cygwin and used in libuv */
|
|
17
|
+
'[[A': 'f1',
|
|
18
|
+
'[[B': 'f2',
|
|
19
|
+
'[[C': 'f3',
|
|
20
|
+
'[[D': 'f4',
|
|
21
|
+
'[[E': 'f5',
|
|
22
|
+
/* common */
|
|
23
|
+
'[15~': 'f5',
|
|
24
|
+
'[17~': 'f6',
|
|
25
|
+
'[18~': 'f7',
|
|
26
|
+
'[19~': 'f8',
|
|
27
|
+
'[20~': 'f9',
|
|
28
|
+
'[21~': 'f10',
|
|
29
|
+
'[23~': 'f11',
|
|
30
|
+
'[24~': 'f12',
|
|
31
|
+
/* xterm ESC [ letter */
|
|
32
|
+
'[A': 'up',
|
|
33
|
+
'[B': 'down',
|
|
34
|
+
'[C': 'right',
|
|
35
|
+
'[D': 'left',
|
|
36
|
+
'[E': 'clear',
|
|
37
|
+
'[F': 'end',
|
|
38
|
+
'[H': 'home',
|
|
39
|
+
/* xterm/gnome ESC O letter */
|
|
40
|
+
OA: 'up',
|
|
41
|
+
OB: 'down',
|
|
42
|
+
OC: 'right',
|
|
43
|
+
OD: 'left',
|
|
44
|
+
OE: 'clear',
|
|
45
|
+
OF: 'end',
|
|
46
|
+
OH: 'home',
|
|
47
|
+
/* xterm/rxvt ESC [ number ~ */
|
|
48
|
+
'[1~': 'home',
|
|
49
|
+
'[2~': 'insert',
|
|
50
|
+
'[3~': 'delete',
|
|
51
|
+
'[4~': 'end',
|
|
52
|
+
'[5~': 'pageup',
|
|
53
|
+
'[6~': 'pagedown',
|
|
54
|
+
/* putty */
|
|
55
|
+
'[[5~': 'pageup',
|
|
56
|
+
'[[6~': 'pagedown',
|
|
57
|
+
/* rxvt */
|
|
58
|
+
'[7~': 'home',
|
|
59
|
+
'[8~': 'end',
|
|
60
|
+
/* rxvt keys with modifiers */
|
|
61
|
+
'[a': 'up',
|
|
62
|
+
'[b': 'down',
|
|
63
|
+
'[c': 'right',
|
|
64
|
+
'[d': 'left',
|
|
65
|
+
'[e': 'clear',
|
|
66
|
+
'[2$': 'insert',
|
|
67
|
+
'[3$': 'delete',
|
|
68
|
+
'[5$': 'pageup',
|
|
69
|
+
'[6$': 'pagedown',
|
|
70
|
+
'[7$': 'home',
|
|
71
|
+
'[8$': 'end',
|
|
72
|
+
Oa: 'up',
|
|
73
|
+
Ob: 'down',
|
|
74
|
+
Oc: 'right',
|
|
75
|
+
Od: 'left',
|
|
76
|
+
Oe: 'clear',
|
|
77
|
+
'[2^': 'insert',
|
|
78
|
+
'[3^': 'delete',
|
|
79
|
+
'[5^': 'pageup',
|
|
80
|
+
'[6^': 'pagedown',
|
|
81
|
+
'[7^': 'home',
|
|
82
|
+
'[8^': 'end',
|
|
83
|
+
/* misc. */
|
|
84
|
+
'[Z': 'tab',
|
|
85
|
+
};
|
|
86
|
+
export const nonAlphanumericKeys = [...Object.values(keyName), 'backspace'];
|
|
87
|
+
const isShiftKey = (code) => {
|
|
88
|
+
return [
|
|
89
|
+
'[a',
|
|
90
|
+
'[b',
|
|
91
|
+
'[c',
|
|
92
|
+
'[d',
|
|
93
|
+
'[e',
|
|
94
|
+
'[2$',
|
|
95
|
+
'[3$',
|
|
96
|
+
'[5$',
|
|
97
|
+
'[6$',
|
|
98
|
+
'[7$',
|
|
99
|
+
'[8$',
|
|
100
|
+
'[Z',
|
|
101
|
+
].includes(code);
|
|
102
|
+
};
|
|
103
|
+
const isCtrlKey = (code) => {
|
|
104
|
+
return [
|
|
105
|
+
'Oa',
|
|
106
|
+
'Ob',
|
|
107
|
+
'Oc',
|
|
108
|
+
'Od',
|
|
109
|
+
'Oe',
|
|
110
|
+
'[2^',
|
|
111
|
+
'[3^',
|
|
112
|
+
'[5^',
|
|
113
|
+
'[6^',
|
|
114
|
+
'[7^',
|
|
115
|
+
'[8^',
|
|
116
|
+
].includes(code);
|
|
117
|
+
};
|
|
118
|
+
const parseKeypress = (s = '') => {
|
|
119
|
+
let parts;
|
|
120
|
+
if (Buffer.isBuffer(s)) {
|
|
121
|
+
if (s[0] > 127 && s[1] === undefined) {
|
|
122
|
+
s[0] -= 128;
|
|
123
|
+
s = '\x1b' + String(s);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
s = String(s);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else if (s !== undefined && typeof s !== 'string') {
|
|
130
|
+
s = String(s);
|
|
131
|
+
}
|
|
132
|
+
else if (!s) {
|
|
133
|
+
s = '';
|
|
134
|
+
}
|
|
135
|
+
const key = {
|
|
136
|
+
name: '',
|
|
137
|
+
ctrl: false,
|
|
138
|
+
meta: false,
|
|
139
|
+
shift: false,
|
|
140
|
+
option: false,
|
|
141
|
+
sequence: s,
|
|
142
|
+
raw: s,
|
|
143
|
+
};
|
|
144
|
+
key.sequence = key.sequence || s || key.name;
|
|
145
|
+
if (s === '\r') {
|
|
146
|
+
// carriage return
|
|
147
|
+
key.raw = undefined;
|
|
148
|
+
key.name = 'return';
|
|
149
|
+
}
|
|
150
|
+
else if (s === '\n') {
|
|
151
|
+
// enter, should have been called linefeed
|
|
152
|
+
key.name = 'enter';
|
|
153
|
+
}
|
|
154
|
+
else if (s === '\t') {
|
|
155
|
+
// tab
|
|
156
|
+
key.name = 'tab';
|
|
157
|
+
}
|
|
158
|
+
else if (s === '\b' || s === '\x1b\b') {
|
|
159
|
+
// backspace or ctrl+h
|
|
160
|
+
key.name = 'backspace';
|
|
161
|
+
key.meta = s.charAt(0) === '\x1b';
|
|
162
|
+
}
|
|
163
|
+
else if (s === '\x7f' || s === '\x1b\x7f') {
|
|
164
|
+
// TODO(vadimdemedes): `enquirer` detects delete key as backspace, but I had to split them up to avoid breaking changes in Ink. Merge them back together in the next major version.
|
|
165
|
+
// delete
|
|
166
|
+
key.name = 'delete';
|
|
167
|
+
key.meta = s.charAt(0) === '\x1b';
|
|
168
|
+
}
|
|
169
|
+
else if (s === '\x1b' || s === '\x1b\x1b') {
|
|
170
|
+
// escape key
|
|
171
|
+
key.name = 'escape';
|
|
172
|
+
key.meta = s.length === 2;
|
|
173
|
+
}
|
|
174
|
+
else if (s === ' ' || s === '\x1b ') {
|
|
175
|
+
key.name = 'space';
|
|
176
|
+
key.meta = s.length === 2;
|
|
177
|
+
}
|
|
178
|
+
else if (s <= '\x1a') {
|
|
179
|
+
// ctrl+letter
|
|
180
|
+
key.name = String.fromCharCode(s.charCodeAt(0) + 'a'.charCodeAt(0) - 1);
|
|
181
|
+
key.ctrl = true;
|
|
182
|
+
}
|
|
183
|
+
else if (s.length === 1 && s >= '0' && s <= '9') {
|
|
184
|
+
// number
|
|
185
|
+
key.name = 'number';
|
|
186
|
+
}
|
|
187
|
+
else if (s.length === 1 && s >= 'a' && s <= 'z') {
|
|
188
|
+
// lowercase letter
|
|
189
|
+
key.name = s;
|
|
190
|
+
}
|
|
191
|
+
else if (s.length === 1 && s >= 'A' && s <= 'Z') {
|
|
192
|
+
// shift+letter
|
|
193
|
+
key.name = s.toLowerCase();
|
|
194
|
+
key.shift = true;
|
|
195
|
+
}
|
|
196
|
+
else if ((parts = metaKeyCodeRe.exec(s))) {
|
|
197
|
+
// meta+character key
|
|
198
|
+
key.meta = true;
|
|
199
|
+
key.shift = /^[A-Z]$/.test(parts[1]);
|
|
200
|
+
}
|
|
201
|
+
else if ((parts = fnKeyRe.exec(s))) {
|
|
202
|
+
const segs = [...s];
|
|
203
|
+
if (segs[0] === '\u001b' && segs[1] === '\u001b') {
|
|
204
|
+
key.option = true;
|
|
205
|
+
}
|
|
206
|
+
// ansi escape sequence
|
|
207
|
+
// reassemble the key code leaving out leading \x1b's,
|
|
208
|
+
// the modifier key bitflag and any meaningless "1;" sequence
|
|
209
|
+
const code = [parts[1], parts[2], parts[4], parts[6]]
|
|
210
|
+
.filter(Boolean)
|
|
211
|
+
.join('');
|
|
212
|
+
const modifier = (parts[3] || parts[5] || 1) - 1;
|
|
213
|
+
// Parse the key modifier
|
|
214
|
+
key.ctrl = !!(modifier & 4);
|
|
215
|
+
key.meta = !!(modifier & 10);
|
|
216
|
+
key.shift = !!(modifier & 1);
|
|
217
|
+
key.code = code;
|
|
218
|
+
key.name = keyName[code];
|
|
219
|
+
key.shift = isShiftKey(code) || key.shift;
|
|
220
|
+
key.ctrl = isCtrlKey(code) || key.ctrl;
|
|
221
|
+
}
|
|
222
|
+
return key;
|
|
223
|
+
};
|
|
224
|
+
export default parseKeypress;
|
|
225
|
+
//# sourceMappingURL=parse-keypress.js.map
|