codekin 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{index-CfBnNU24.js → index-B8opKRtJ.js} +50 -50
- package/dist/assets/index-wajPH8o6.css +1 -0
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/server/dist/approval-manager.d.ts +2 -0
- package/server/dist/approval-manager.js +4 -1
- package/server/dist/approval-manager.js.map +1 -1
- package/server/dist/claude-process.d.ts +0 -4
- package/server/dist/claude-process.js +2 -66
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/orchestrator-children.js +16 -10
- package/server/dist/orchestrator-children.js.map +1 -1
- package/server/dist/orchestrator-reports.js +1 -1
- package/server/dist/plan-manager.d.ts +74 -0
- package/server/dist/plan-manager.js +121 -0
- package/server/dist/plan-manager.js.map +1 -0
- package/server/dist/session-manager.d.ts +19 -4
- package/server/dist/session-manager.js +171 -47
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-persistence.js +2 -1
- package/server/dist/session-persistence.js.map +1 -1
- package/server/dist/tsconfig.tsbuildinfo +1 -1
- package/server/dist/types.d.ts +6 -3
- package/server/dist/types.js.map +1 -1
- package/dist/assets/index-BwKZeT4V.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-children.js","sourceRoot":"","sources":["../orchestrator-children.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"orchestrator-children.js","sourceRoot":"","sources":["../orchestrator-children.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAqCjD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,cAAc,GAAG,CAAC,CAAA;AACxB,MAAM,kBAAkB,GAAG,OAAO,CAAA,CAAE,aAAa;AACjD,MAAM,kBAAkB,GAAG,SAAS,CAAA,CAAE,4CAA4C;AAClF,MAAM,qBAAqB,GAAG,GAAG,CAAA,CAAI,4BAA4B;AAEjE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,OAAO,wBAAwB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC1C,QAAQ,CAAgB;IAEhC,YAAY,QAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,4CAA4C;IAC5C,IAAI;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,iCAAiC;IACjC,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IACtC,CAAC;IAED,uEAAuE;IAC/D,kBAAkB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAQ;YACvE,IAAI,KAAK,CAAC,WAAW,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;gBAC1F,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;iBAClD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;iBACpE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAA;YACjF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,qBAAqB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,EAAG,CAAA;gBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;aAC9D,MAAM,CAAA;IACX,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,OAA4B;QACtC,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,cAAc,sCAAsC,CAAC,CAAA;QACtG,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAA;QAC9B,MAAM,WAAW,GAAG,GAAG,mBAAmB,EAAE,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAA;QAClF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAEpC,MAAM,KAAK,GAAiB;YAC1B,EAAE,EAAE,SAAS;YACb,OAAO;YACP,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAA;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEnC,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;gBAC9C,MAAM,EAAE,OAAO;gBACf,EAAE,EAAE,SAAS;gBACb,QAAQ,EAAE,OAAO,CAAC,IAAI;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,CAAC,cAAc,CAAC;aAC/B,CAAC,CAAA;YAEF,+EAA+E;YAC/E,gFAAgF;YAChF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,sDAAsD,SAAS,kCAAkC,CAAC,CAAA;gBACjH,CAAC;YACH,CAAC;YAED,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YACpC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAA;YAExB,iCAAiC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAE1C,oCAAoC;YACpC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAE7B,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAA;YACvB,KAAK,CAAC,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC9D,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAA4B;QAC9C,MAAM,KAAK,GAAG;YACZ,WAAW,OAAO,CAAC,IAAI,EAAE;YACzB,EAAE;YACF,iBAAiB;YACjB,EAAE;YACF,kCAAkC,mBAAmB,EAAE,8EAA8E;YACrI,EAAE;YACF,aAAa,OAAO,CAAC,IAAI,EAAE;YAC3B,+CAA+C,OAAO,CAAC,UAAU,IAAI;YACrE,EAAE;SACH,CAAA;QAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,eAAe,EACf,EAAE,EACF,sDAAsD,EACtD,+BAA+B,EAC/B,oDAAoD,EACpD,8CAA8C,EAC9C,uEAAuE,EACvE,EAAE,CACH,CAAA;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CACR,eAAe,EACf,EAAE,EACF,qDAAqD,EACrD,oDAAoD,EACpD,wCAAwC,EACxC,EAAE,CACH,CAAA;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,eAAe,EACf,EAAE,EACF,+BAA+B,EAC/B,oDAAoD,EACpD,sCAAsC,EACtC,EAAE,CACH,CAAA;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CACR,eAAe,EACf,EAAE,EACF,gDAAgD,EAChD,kCAAkC,EAClC,wEAAwE,EACxE,0DAA0D,CAC3D,CAAA;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY,CAAC,KAAmB;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAA;QAC/D,IAAI,WAAqC,CAAA;QACzC,IAAI,SAAmC,CAAA;QACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;QACnC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAA;QAEjD,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,OAAO,GAAG,KAAK,CAAA;gBACnB,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAA;gBAAC,CAAC,CAAC,CAAC,CAAA;gBAEpE,kBAAkB;gBAClB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,IAAI,OAAO;wBAAE,OAAM;oBACnB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAA;oBAC1B,KAAK,CAAC,KAAK,GAAG,mBAAmB,SAAS,IAAI,CAAA;oBAC9C,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBAC3C,IAAI,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;wBACtC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;oBAC9B,CAAC;oBACD,MAAM,EAAE,CAAA;gBACV,CAAC,EAAE,SAAS,CAAC,CAAA;gBAEb,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,OAAgB,EAAE,EAAE;oBACvD,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE,IAAI,OAAO;wBAAE,OAAM;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAA;wBACvB,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAA;wBACnC,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;wBAC5C,YAAY,CAAC,KAAK,CAAC,CAAA;wBACnB,MAAM,EAAE,CAAA;wBACR,OAAM;oBACR,CAAC;oBAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBACpD,mEAAmE;oBACnE,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC;wBAAE,OAAM;oBAEjF,8DAA8D;oBAC9D,8DAA8D;oBAC9D,6DAA6D;oBAC7D,gEAAgE;oBAChE,IAAI,OAAO,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC;wBAAE,OAAM;oBAE5F,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAA;oBAC/C,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,IAAI,CAAA;oBAC3B,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAA;oBACzD,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAC5C,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,EAAE,CAAA;gBACV,CAAC,CAAA;gBAED,mCAAmC;gBACnC,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,KAAoB,EAAE,OAAsB,EAAE,WAAoB,EAAE,EAAE;oBACvG,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE,IAAI,OAAO;wBAAE,OAAM;oBAC7C,IAAI,WAAW;wBAAE,OAAM,CAAE,qCAAqC;oBAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAA;oBACzD,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,IAAI,CAAA;oBAC3B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,IAAI,CAAA;oBACnF,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAC5C,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,EAAE,CAAA;gBACV,CAAC,CAAA;gBAED,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;gBACrD,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YACjD,CAAC,CAAC,CAAA;QACJ,CAAC;gBAAS,CAAC;YACT,qEAAqE;YACrE,WAAW,EAAE,EAAE,CAAA;YACf,SAAS,EAAE,EAAE,CAAA;YACb,mEAAmE;YACnE,mEAAmE;YACnE,8DAA8D;YAC9D,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,eAAe,CACrB,KAAmB,EACnB,OAAgB,EAChB,IAAY,EACZ,SAAsB,EACtB,cAAoC;QAEpC,4BAA4B;QAC5B,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAA;QAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEpC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,WAAW,GAAG,EAAE,CAAA;QAEpB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,4BAA4B;YAC5B,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;YAChI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAA;gBACd,WAAW,GAAG,qKAAqK,CAAA;YACrL,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,+BAA+B;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,GAAG,IAAI,CAAA;gBACd,WAAW,GAAG,mGAAmG,CAAA;YACnH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YAC/D,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACvB,sFAAsF;YACtF,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YACtE,IAAI,SAAS;gBAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC5C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAA0B;QAC5C,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAqD,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aACrF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAChB,IAAI,CAAC,EAAE,CAAC,CAAA;IACb,CAAC;CACF"}
|
|
@@ -88,7 +88,7 @@ export function readReport(filePath) {
|
|
|
88
88
|
if (!existsSync(resolved))
|
|
89
89
|
return null;
|
|
90
90
|
const content = readFileSync(resolved, 'utf-8');
|
|
91
|
-
const stat = statSync(
|
|
91
|
+
const stat = statSync(resolved);
|
|
92
92
|
// Extract metadata from path
|
|
93
93
|
const parts = filePath.split('/');
|
|
94
94
|
const reportsIdx = parts.indexOf('reports');
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan mode state machine for Codekin.
|
|
3
|
+
*
|
|
4
|
+
* Owns the entire plan mode lifecycle as a single, testable state machine.
|
|
5
|
+
* Replaces the distributed flag-based tracking that was previously spread
|
|
6
|
+
* across ClaudeProcess (pendingExitPlanModeId, exitPlanModeDenied),
|
|
7
|
+
* SessionManager (clearPendingExitPlanMode wiring), and the PreToolUse hook
|
|
8
|
+
* (deny-with-message workaround for ExitPlanMode).
|
|
9
|
+
*
|
|
10
|
+
* State transitions:
|
|
11
|
+
* idle ──EnterPlanMode──► planning
|
|
12
|
+
* planning ──ExitPlanMode hook──► reviewing (user sees approval prompt)
|
|
13
|
+
* reviewing ──approve──► idle (hook returns deny-with-approval-message)
|
|
14
|
+
* reviewing ──deny──► planning (hook returns deny-with-rejection-message)
|
|
15
|
+
* planning ──result (turn end)──► idle (safety reset if plan mode ends naturally)
|
|
16
|
+
*
|
|
17
|
+
* Enforcement architecture:
|
|
18
|
+
* The PreToolUse hook is the real gate — it intercepts ExitPlanMode before
|
|
19
|
+
* the CLI can execute it. The hook calls requestToolApproval() on the server,
|
|
20
|
+
* which delegates to PlanManager. PlanManager transitions to 'reviewing' and
|
|
21
|
+
* the server shows an approval prompt. The hook blocks until the user responds.
|
|
22
|
+
* On approve: hook returns deny-with-approval-message (CLI workaround for
|
|
23
|
+
* requiresUserInteraction). On deny: hook returns deny-with-rejection-message.
|
|
24
|
+
* PlanManager never auto-approves — if the turn ends while reviewing, it
|
|
25
|
+
* auto-denies and returns to planning state.
|
|
26
|
+
*/
|
|
27
|
+
import { EventEmitter } from 'events';
|
|
28
|
+
export type PlanState = 'idle' | 'planning' | 'reviewing';
|
|
29
|
+
export interface PlanManagerEvents {
|
|
30
|
+
/** Emitted when plan mode state changes. The UI should show/hide the plan mode indicator. */
|
|
31
|
+
planning_mode: [active: boolean];
|
|
32
|
+
}
|
|
33
|
+
export declare class PlanManager extends EventEmitter<PlanManagerEvents> {
|
|
34
|
+
private _state;
|
|
35
|
+
/** Current pending review request ID (unique per ExitPlanMode attempt). */
|
|
36
|
+
private _pendingReviewId;
|
|
37
|
+
get state(): PlanState;
|
|
38
|
+
get pendingReviewId(): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Called when Claude invokes EnterPlanMode.
|
|
41
|
+
* Transitions idle → planning and emits planning_mode:true.
|
|
42
|
+
*/
|
|
43
|
+
onEnterPlanMode(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Called when the ExitPlanMode hook request arrives at the server.
|
|
46
|
+
* Transitions planning → reviewing and returns the review request ID.
|
|
47
|
+
* Returns null if not in planning state (caller should fall through).
|
|
48
|
+
*/
|
|
49
|
+
onExitPlanModeRequested(): string | null;
|
|
50
|
+
/**
|
|
51
|
+
* Called when the user approves the plan.
|
|
52
|
+
* Transitions reviewing → idle and emits planning_mode:false.
|
|
53
|
+
* Returns true if the approval was valid (state was reviewing with matching ID).
|
|
54
|
+
*/
|
|
55
|
+
approve(reviewId?: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Called when the user denies (rejects) the plan.
|
|
58
|
+
* Transitions reviewing → planning.
|
|
59
|
+
* Returns the rejection message to send back via the hook.
|
|
60
|
+
*/
|
|
61
|
+
deny(reviewId?: string, feedback?: string): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* Called when a turn ends (result event).
|
|
64
|
+
* If we're still in 'reviewing' at turn end, auto-deny — never auto-approve.
|
|
65
|
+
* The hook may have timed out or the CLI may have handled ExitPlanMode
|
|
66
|
+
* through a non-hook path. Stay safe: return to planning.
|
|
67
|
+
*/
|
|
68
|
+
onTurnEnd(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Reset to idle state. Used when the Claude process exits or restarts.
|
|
71
|
+
* Emits planning_mode:false if we were in a non-idle state.
|
|
72
|
+
*/
|
|
73
|
+
reset(): void;
|
|
74
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan mode state machine for Codekin.
|
|
3
|
+
*
|
|
4
|
+
* Owns the entire plan mode lifecycle as a single, testable state machine.
|
|
5
|
+
* Replaces the distributed flag-based tracking that was previously spread
|
|
6
|
+
* across ClaudeProcess (pendingExitPlanModeId, exitPlanModeDenied),
|
|
7
|
+
* SessionManager (clearPendingExitPlanMode wiring), and the PreToolUse hook
|
|
8
|
+
* (deny-with-message workaround for ExitPlanMode).
|
|
9
|
+
*
|
|
10
|
+
* State transitions:
|
|
11
|
+
* idle ──EnterPlanMode──► planning
|
|
12
|
+
* planning ──ExitPlanMode hook──► reviewing (user sees approval prompt)
|
|
13
|
+
* reviewing ──approve──► idle (hook returns deny-with-approval-message)
|
|
14
|
+
* reviewing ──deny──► planning (hook returns deny-with-rejection-message)
|
|
15
|
+
* planning ──result (turn end)──► idle (safety reset if plan mode ends naturally)
|
|
16
|
+
*
|
|
17
|
+
* Enforcement architecture:
|
|
18
|
+
* The PreToolUse hook is the real gate — it intercepts ExitPlanMode before
|
|
19
|
+
* the CLI can execute it. The hook calls requestToolApproval() on the server,
|
|
20
|
+
* which delegates to PlanManager. PlanManager transitions to 'reviewing' and
|
|
21
|
+
* the server shows an approval prompt. The hook blocks until the user responds.
|
|
22
|
+
* On approve: hook returns deny-with-approval-message (CLI workaround for
|
|
23
|
+
* requiresUserInteraction). On deny: hook returns deny-with-rejection-message.
|
|
24
|
+
* PlanManager never auto-approves — if the turn ends while reviewing, it
|
|
25
|
+
* auto-denies and returns to planning state.
|
|
26
|
+
*/
|
|
27
|
+
import { randomUUID } from 'crypto';
|
|
28
|
+
import { EventEmitter } from 'events';
|
|
29
|
+
export class PlanManager extends EventEmitter {
|
|
30
|
+
_state = 'idle';
|
|
31
|
+
/** Current pending review request ID (unique per ExitPlanMode attempt). */
|
|
32
|
+
_pendingReviewId = null;
|
|
33
|
+
get state() {
|
|
34
|
+
return this._state;
|
|
35
|
+
}
|
|
36
|
+
get pendingReviewId() {
|
|
37
|
+
return this._pendingReviewId;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Called when Claude invokes EnterPlanMode.
|
|
41
|
+
* Transitions idle → planning and emits planning_mode:true.
|
|
42
|
+
*/
|
|
43
|
+
onEnterPlanMode() {
|
|
44
|
+
if (this._state !== 'idle') {
|
|
45
|
+
// Already in planning — idempotent
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this._state = 'planning';
|
|
49
|
+
this.emit('planning_mode', true);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Called when the ExitPlanMode hook request arrives at the server.
|
|
53
|
+
* Transitions planning → reviewing and returns the review request ID.
|
|
54
|
+
* Returns null if not in planning state (caller should fall through).
|
|
55
|
+
*/
|
|
56
|
+
onExitPlanModeRequested() {
|
|
57
|
+
if (this._state !== 'planning') {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
this._state = 'reviewing';
|
|
61
|
+
this._pendingReviewId = randomUUID();
|
|
62
|
+
return this._pendingReviewId;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Called when the user approves the plan.
|
|
66
|
+
* Transitions reviewing → idle and emits planning_mode:false.
|
|
67
|
+
* Returns true if the approval was valid (state was reviewing with matching ID).
|
|
68
|
+
*/
|
|
69
|
+
approve(reviewId) {
|
|
70
|
+
if (this._state !== 'reviewing')
|
|
71
|
+
return false;
|
|
72
|
+
if (reviewId && reviewId !== this._pendingReviewId)
|
|
73
|
+
return false;
|
|
74
|
+
this._state = 'idle';
|
|
75
|
+
this._pendingReviewId = null;
|
|
76
|
+
this.emit('planning_mode', false);
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Called when the user denies (rejects) the plan.
|
|
81
|
+
* Transitions reviewing → planning.
|
|
82
|
+
* Returns the rejection message to send back via the hook.
|
|
83
|
+
*/
|
|
84
|
+
deny(reviewId, feedback) {
|
|
85
|
+
if (this._state !== 'reviewing')
|
|
86
|
+
return null;
|
|
87
|
+
if (reviewId && reviewId !== this._pendingReviewId)
|
|
88
|
+
return null;
|
|
89
|
+
this._state = 'planning';
|
|
90
|
+
this._pendingReviewId = null;
|
|
91
|
+
return feedback
|
|
92
|
+
? `Plan rejected. Please revise: ${feedback}`
|
|
93
|
+
: 'Plan rejected. Please revise the plan and try again.';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Called when a turn ends (result event).
|
|
97
|
+
* If we're still in 'reviewing' at turn end, auto-deny — never auto-approve.
|
|
98
|
+
* The hook may have timed out or the CLI may have handled ExitPlanMode
|
|
99
|
+
* through a non-hook path. Stay safe: return to planning.
|
|
100
|
+
*/
|
|
101
|
+
onTurnEnd() {
|
|
102
|
+
if (this._state === 'reviewing') {
|
|
103
|
+
// Auto-deny: return to planning, don't silently approve
|
|
104
|
+
this._state = 'planning';
|
|
105
|
+
this._pendingReviewId = null;
|
|
106
|
+
// Don't emit planning_mode:false — we're still in plan mode
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Reset to idle state. Used when the Claude process exits or restarts.
|
|
111
|
+
* Emits planning_mode:false if we were in a non-idle state.
|
|
112
|
+
*/
|
|
113
|
+
reset() {
|
|
114
|
+
if (this._state !== 'idle') {
|
|
115
|
+
this._state = 'idle';
|
|
116
|
+
this._pendingReviewId = null;
|
|
117
|
+
this.emit('planning_mode', false);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=plan-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-manager.js","sourceRoot":"","sources":["../plan-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AASrC,MAAM,OAAO,WAAY,SAAQ,YAA+B;IACtD,MAAM,GAAc,MAAM,CAAA;IAClC,2EAA2E;IACnE,gBAAgB,GAAkB,IAAI,CAAA;IAE9C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,mCAAmC;YACnC,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,uBAAuB;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;QACzB,IAAI,CAAC,gBAAgB,GAAG,UAAU,EAAE,CAAA;QACpC,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAiB;QACvB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAA;QAC7C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAA;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAiB,EAAE,QAAiB;QACvC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAC5C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAA;QAC/D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC5B,OAAO,QAAQ;YACb,CAAC,CAAC,iCAAiC,QAAQ,EAAE;YAC7C,CAAC,CAAC,sDAAsD,CAAA;IAC5D,CAAC;IAED;;;;;OAKG;IACH,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,wDAAwD;YACxD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -104,11 +104,11 @@ export declare class SessionManager {
|
|
|
104
104
|
setWorktreeBranchPrefix(prefix: string): void;
|
|
105
105
|
/** Register a listener called when any session's Claude process exits.
|
|
106
106
|
* The `willRestart` flag indicates whether the session will be auto-restarted. */
|
|
107
|
-
onSessionExit(listener: (sessionId: string, code: number | null, signal: string | null, willRestart: boolean) => void): void;
|
|
107
|
+
onSessionExit(listener: (sessionId: string, code: number | null, signal: string | null, willRestart: boolean) => void): () => void;
|
|
108
108
|
/** Register a listener called when any session emits a prompt (permission request or question). */
|
|
109
109
|
onSessionPrompt(listener: (sessionId: string, promptType: 'permission' | 'question', toolName: string | undefined, requestId: string | undefined) => void): void;
|
|
110
110
|
/** Register a listener called when any session completes a turn (result event). */
|
|
111
|
-
onSessionResult(listener: (sessionId: string, isError: boolean) => void): void;
|
|
111
|
+
onSessionResult(listener: (sessionId: string, isError: boolean) => void): () => void;
|
|
112
112
|
get(id: string): Session | undefined;
|
|
113
113
|
/** Get all sessions that have pending prompts (waiting for approval or answer). */
|
|
114
114
|
getPendingPrompts(): Array<{
|
|
@@ -152,6 +152,12 @@ export declare class SessionManager {
|
|
|
152
152
|
private wireClaudeEvents;
|
|
153
153
|
/** Broadcast a message and add it to the session's output history. */
|
|
154
154
|
private broadcastAndHistory;
|
|
155
|
+
/**
|
|
156
|
+
* Wire PlanManager events for a session.
|
|
157
|
+
* Called once at session creation (not per-process, since PlanManager outlives restarts).
|
|
158
|
+
* Idempotent — guards against double-wiring on restore + restart.
|
|
159
|
+
*/
|
|
160
|
+
private wirePlanManager;
|
|
155
161
|
private onSystemInit;
|
|
156
162
|
private onTextEvent;
|
|
157
163
|
private onThinkingEvent;
|
|
@@ -206,6 +212,13 @@ export declare class SessionManager {
|
|
|
206
212
|
always: boolean;
|
|
207
213
|
answer?: string;
|
|
208
214
|
}>;
|
|
215
|
+
/**
|
|
216
|
+
* Handle ExitPlanMode approval through PlanManager.
|
|
217
|
+
* Shows a plan-specific approval prompt (Approve/Reject) and blocks the hook
|
|
218
|
+
* until the user responds. On approve, returns allow:true (the hook will use
|
|
219
|
+
* the deny-with-approval-message workaround). On deny, returns allow:false.
|
|
220
|
+
*/
|
|
221
|
+
private handleExitPlanModeApproval;
|
|
209
222
|
/**
|
|
210
223
|
* Check if a tool invocation can be auto-approved without prompting the user.
|
|
211
224
|
* Returns 'registry' if matched by auto-approval rules, 'session' if matched
|
|
@@ -234,6 +247,10 @@ export declare class SessionManager {
|
|
|
234
247
|
stopClaudeAndWait(sessionId: string): Promise<void>;
|
|
235
248
|
/** Check if an error result text matches a transient API error worth retrying. */
|
|
236
249
|
private isRetryableApiError;
|
|
250
|
+
/** Extract the concatenated text output from the current turn (after the last 'result' in history). */
|
|
251
|
+
private extractCurrentTurnText;
|
|
252
|
+
/** Remove output messages from the current turn in history (after the last 'result'). */
|
|
253
|
+
private stripCurrentTurnOutput;
|
|
237
254
|
/**
|
|
238
255
|
* Build a condensed text summary of a session's conversation history.
|
|
239
256
|
* Used as context when auto-starting Claude for sessions without a saved
|
|
@@ -241,8 +258,6 @@ export declare class SessionManager {
|
|
|
241
258
|
* Caps output at ~4000 chars, keeping the most recent exchanges.
|
|
242
259
|
*/
|
|
243
260
|
private buildSessionContext;
|
|
244
|
-
private resetStallTimer;
|
|
245
|
-
private clearStallTimer;
|
|
246
261
|
/**
|
|
247
262
|
* Append a message to a session's output history for replay.
|
|
248
263
|
* Merges consecutive 'output' chunks into a single entry to save space.
|