codekin 0.6.3 → 0.6.4
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/README.md +3 -2
- package/dist/assets/index-BRB_Ksyk.js +182 -0
- package/dist/assets/index-Q2WSVlHo.css +1 -0
- package/dist/index.html +2 -2
- package/package.json +3 -3
- package/server/dist/auth-routes.js +6 -0
- package/server/dist/auth-routes.js.map +1 -1
- package/server/dist/claude-process.js +3 -2
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/commit-event-handler.d.ts +2 -1
- package/server/dist/commit-event-handler.js +4 -3
- package/server/dist/commit-event-handler.js.map +1 -1
- package/server/dist/commit-event-hooks.d.ts +11 -0
- package/server/dist/commit-event-hooks.js +61 -11
- package/server/dist/commit-event-hooks.js.map +1 -1
- package/server/dist/config.d.ts +7 -0
- package/server/dist/config.js +19 -1
- package/server/dist/config.js.map +1 -1
- package/server/dist/docs-routes.js +4 -7
- package/server/dist/docs-routes.js.map +1 -1
- package/server/dist/json-parse.d.ts +8 -0
- package/server/dist/json-parse.js +9 -0
- package/server/dist/json-parse.js.map +1 -0
- package/server/dist/opencode-process.js +8 -1
- package/server/dist/opencode-process.js.map +1 -1
- package/server/dist/orchestrator-learning-router.d.ts +8 -0
- package/server/dist/orchestrator-learning-router.js +126 -0
- package/server/dist/orchestrator-learning-router.js.map +1 -0
- package/server/dist/orchestrator-learning.d.ts +0 -5
- package/server/dist/orchestrator-learning.js +2 -9
- package/server/dist/orchestrator-learning.js.map +1 -1
- package/server/dist/orchestrator-memory-router.d.ts +10 -0
- package/server/dist/orchestrator-memory-router.js +148 -0
- package/server/dist/orchestrator-memory-router.js.map +1 -0
- package/server/dist/orchestrator-memory.js +2 -1
- package/server/dist/orchestrator-memory.js.map +1 -1
- package/server/dist/orchestrator-monitor.d.ts +6 -0
- package/server/dist/orchestrator-monitor.js +14 -0
- package/server/dist/orchestrator-monitor.js.map +1 -1
- package/server/dist/orchestrator-reports.d.ts +0 -4
- package/server/dist/orchestrator-reports.js +8 -10
- package/server/dist/orchestrator-reports.js.map +1 -1
- package/server/dist/orchestrator-routes.d.ts +2 -2
- package/server/dist/orchestrator-routes.js +11 -506
- package/server/dist/orchestrator-routes.js.map +1 -1
- package/server/dist/orchestrator-session-router.d.ts +13 -0
- package/server/dist/orchestrator-session-router.js +312 -0
- package/server/dist/orchestrator-session-router.js.map +1 -0
- package/server/dist/process-coordinator.d.ts +83 -0
- package/server/dist/process-coordinator.js +167 -0
- package/server/dist/process-coordinator.js.map +1 -0
- package/server/dist/prompt-router.js +2 -1
- package/server/dist/prompt-router.js.map +1 -1
- package/server/dist/session-archive.js +2 -1
- package/server/dist/session-archive.js.map +1 -1
- package/server/dist/session-lifecycle.js +14 -36
- package/server/dist/session-lifecycle.js.map +1 -1
- package/server/dist/session-manager.d.ts +4 -0
- package/server/dist/session-manager.js +56 -73
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-persistence.js +3 -1
- package/server/dist/session-persistence.js.map +1 -1
- package/server/dist/session-routes.d.ts +18 -0
- package/server/dist/session-routes.js +56 -11
- package/server/dist/session-routes.js.map +1 -1
- package/server/dist/stepflow-handler.js +5 -1
- package/server/dist/stepflow-handler.js.map +1 -1
- package/server/dist/stepflow-prompt.js +16 -12
- package/server/dist/stepflow-prompt.js.map +1 -1
- package/server/dist/tsconfig.tsbuildinfo +1 -1
- package/server/dist/types.d.ts +4 -0
- package/server/dist/types.js +1 -0
- package/server/dist/types.js.map +1 -1
- package/server/dist/upload-routes.d.ts +5 -0
- package/server/dist/upload-routes.js +48 -11
- package/server/dist/upload-routes.js.map +1 -1
- package/server/dist/version-check.js +3 -2
- package/server/dist/version-check.js.map +1 -1
- package/server/dist/webhook-rate-limiter.js +9 -1
- package/server/dist/webhook-rate-limiter.js.map +1 -1
- package/server/dist/webhook-workspace.d.ts +12 -0
- package/server/dist/webhook-workspace.js +126 -3
- package/server/dist/webhook-workspace.js.map +1 -1
- package/server/dist/workflow-engine.d.ts +80 -7
- package/server/dist/workflow-engine.js +209 -28
- package/server/dist/workflow-engine.js.map +1 -1
- package/server/dist/workflow-loader.d.ts +6 -1
- package/server/dist/workflow-loader.js +97 -27
- package/server/dist/workflow-loader.js.map +1 -1
- package/server/dist/workflow-routes.d.ts +13 -0
- package/server/dist/workflow-routes.js +106 -4
- package/server/dist/workflow-routes.js.map +1 -1
- package/server/dist/ws-origin-check.d.ts +11 -0
- package/server/dist/ws-origin-check.js +20 -0
- package/server/dist/ws-origin-check.js.map +1 -0
- package/server/dist/ws-rate-limit.d.ts +19 -0
- package/server/dist/ws-rate-limit.js +30 -0
- package/server/dist/ws-rate-limit.js.map +1 -0
- package/server/dist/ws-server.js +41 -22
- package/server/dist/ws-server.js.map +1 -1
- package/dist/assets/index-CxlBrS5y.js +0 -182
- package/dist/assets/index-DgeUVGjz.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-routes.js","sourceRoot":"","sources":["../upload-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACnF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;AAWhE,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,IAAI,GAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IAC3D,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAC9B,IAAI,aAAa,EAAE,CAAC;gBAClB,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;gBACjB,MAAK;YACP,CAAC;YACD,aAAa,GAAG,IAAI,CAAA;YACpB,SAAQ;QACV,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAA;gBAC5B,IAAI,GAAG,KAAK,MAAM;oBAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;gBAC5C,IAAI,GAAG,KAAK,aAAa;oBAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IACrD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAA;IAErC,MAAM,MAAM,GAA+F,EAAE,CAAA;IAC7G,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAQ;QAClC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK,CAAC,IAAI;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;YACzB,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;SAC3B,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB;IACrC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAA;IAEtC,MAAM,OAAO,GAA8E,EAAE,CAAA;IAC7F,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACnC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,KAAK,CAAC,IAAI;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,OAAO,EAAE,MAAM,CAAC,IAAI;SACrB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,6EAA6E;AAC7E,yDAAyD;AACzD,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAChC,OAAO,KAAK,CAAC,YAAY,CAAA;AAEzB,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,SAAiB;IAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;QAC3C,MAAM,EAAE,MAAM,EAAE,KAAK;QACrB,QAAQ,EAAE,sBAAsB;QAChC,SAAS,EAAE,KAAK;KACjB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAClB,MAAM,KAAK,GAA+D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5F,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACnC,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,IAAI;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,MAAM;YACN,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;YAChC,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACrE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACxE,IAAI,EAAE,EAAE;SACT,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAChC,WAAqB,EACrB,YAAuB,EACvB,YAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;IAEvB,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;YAC7B,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;QAC3B,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,iCAAiC;IACjC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,WAAW,EAAE,eAAe;QAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;YAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;YAC5E,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;QAC3B,CAAC;KACF,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;IAClG,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5E,MAAM,MAAM,GAAG,MAAM,CAAC;QACpB,OAAO;QACP,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE;QACtC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;YACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACnD,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9D,MAAM,OAAO,GAAG,UAAU,IAAI,WAAW,CAAA;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,EAAE,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACxD,OAAM;YACR,CAAC;YACD,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;IAEF,sBAAsB;IACtB,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;YAChD,OAAM;QACR,CAAC;QACD,IAAI,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,MAAM,GAAG,GAAG,YAAY,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;gBAC9F,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;YACD,IAAI,EAAE,CAAA;QACR,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAA;YACnD,OAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzD,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAA;QACtC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,qBAAqB;IACrB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAA;QACpC,MAAM,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAA;QAErD,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;YACzF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;YAEhC,MAAM,MAAM,GAA8E,EAAE,CAAA;YAE5F,qEAAqE;YACrE,IAAI,IAAI,GAAG,OAAO,CAAA;YAClB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;oBACjH,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACpD,CAAC;gBAAC,MAAM,CAAC;oBACP,qDAAqD;gBACvD,CAAC;YACH,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBACnD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC9C,CAAC;YAED,mBAAmB;YACnB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YACzD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAElD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACvD,MAAM,SAAS,GAAG,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAA;YAC3G,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;YAChF,CAAC;YACD,wDAAwD;YACxD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;QACxF,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,uBAAuB;IACvB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAyC,CAAA;QACrE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAA;YACxD,OAAM;QACR,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,SAAS,GAAG,sBAAsB,CAAA;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAA;YAC7D,OAAM;QACR,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAA;YAC7D,OAAM;QACR,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAClC,+DAA+D;QAC/D,0DAA0D;QAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC5E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,CAAA;QACvD,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAClF,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,CAAA;YACtC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAA;YACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"upload-routes.js","sourceRoot":"","sources":["../upload-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { readFileSync } from 'fs';
|
|
9
9
|
import { join } from 'path';
|
|
10
|
+
import { jsonParse } from './json-parse.js';
|
|
10
11
|
/** How long to cache the npm lookup result (6 hours). */
|
|
11
12
|
const CACHE_TTL_MS = 6 * 60 * 60 * 1000;
|
|
12
13
|
/** npm registry endpoint for the package. */
|
|
@@ -21,8 +22,8 @@ const state = {
|
|
|
21
22
|
function getCurrentVersion() {
|
|
22
23
|
if (!state.currentVersion) {
|
|
23
24
|
const pkgPath = join(import.meta.dirname, '..', 'package.json');
|
|
24
|
-
const pkg =
|
|
25
|
-
state.currentVersion = pkg.version;
|
|
25
|
+
const pkg = jsonParse(readFileSync(pkgPath, 'utf-8'));
|
|
26
|
+
state.currentVersion = String(pkg.version);
|
|
26
27
|
}
|
|
27
28
|
return state.currentVersion;
|
|
28
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../version-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../version-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { jsonParse } from './json-parse.js';
|
|
1
2
|
/**
|
|
2
3
|
* Creates a per-key sliding window rate limiter for webhook requests.
|
|
3
4
|
*
|
|
@@ -27,6 +28,8 @@
|
|
|
27
28
|
export function createWebhookRateLimiter(maxPerMinute = 30,
|
|
28
29
|
/** Extract a rate-limit key from the parsed body. Return `undefined` to skip limiting. */
|
|
29
30
|
keyExtractor = (body) => body?.repository?.full_name) {
|
|
31
|
+
/** Maximum number of tracked keys to prevent unbounded memory growth. */
|
|
32
|
+
const WEBHOOK_RATE_MAP_MAX_SIZE = 10_000;
|
|
30
33
|
const keyTimestamps = new Map();
|
|
31
34
|
// Periodic cleanup: every 5 minutes, remove keys with no recent timestamps
|
|
32
35
|
const cleanupInterval = setInterval(() => {
|
|
@@ -50,7 +53,7 @@ keyExtractor = (body) => body?.repository?.full_name) {
|
|
|
50
53
|
try {
|
|
51
54
|
const body = req.body;
|
|
52
55
|
if (Buffer.isBuffer(body)) {
|
|
53
|
-
const parsed =
|
|
56
|
+
const parsed = jsonParse(body.toString('utf-8'));
|
|
54
57
|
key = keyExtractor(parsed);
|
|
55
58
|
}
|
|
56
59
|
}
|
|
@@ -70,6 +73,11 @@ keyExtractor = (body) => body?.repository?.full_name) {
|
|
|
70
73
|
res.status(429).json({ error: 'Too Many Requests', repo: key, retryAfter: 60 });
|
|
71
74
|
return;
|
|
72
75
|
}
|
|
76
|
+
// Reject new keys if the map has grown too large (DoS protection)
|
|
77
|
+
if (recent.length === 0 && keyTimestamps.size >= WEBHOOK_RATE_MAP_MAX_SIZE) {
|
|
78
|
+
res.status(429).json({ error: 'Too Many Requests', retryAfter: 60 });
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
73
81
|
recent.push(now);
|
|
74
82
|
keyTimestamps.set(key, recent);
|
|
75
83
|
next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-rate-limiter.js","sourceRoot":"","sources":["../webhook-rate-limiter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webhook-rate-limiter.js","sourceRoot":"","sources":["../webhook-rate-limiter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAY,GAAG,EAAE;AACjB,2FAA2F;AAC3F,eAAsD,CAAC,IAAI,EAAE,EAAE,CAC5D,IAA4D,EAAE,UAAU,EAAE,SAAS;IAEtF,yEAAyE;IACzE,MAAM,yBAAyB,GAAG,MAAM,CAAA;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEjD,2EAA2E;IAC3E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAEjB,6DAA6D;IAC7D,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,eAAe,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,IAAI,GAAuB,CAAA;QAE3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAY,GAAG,CAAC,IAAI,CAAA;YAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;gBACzD,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAE/C,yCAAyC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAEvD,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;YAC/E,OAAM;QACR,CAAC;QAED,kEAAkE;QAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,IAAI,yBAAyB,EAAE,CAAC;YAC3E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;YACpE,OAAM;QACR,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -10,6 +10,18 @@
|
|
|
10
10
|
* @returns The absolute path to the created workspace directory.
|
|
11
11
|
*/
|
|
12
12
|
export declare function createWorkspace(sessionId: string, repo: string, cloneUrl: string, branch: string, headSha: string): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Scan a workspace for report files under `.codekin/reports/` and commit them
|
|
15
|
+
* to the `codekin/reports` branch of origin.
|
|
16
|
+
*
|
|
17
|
+
* Uses the same worktree-based approach as the MD workflow engine's save_report
|
|
18
|
+
* step so that reports from both systems end up in the same place. This must
|
|
19
|
+
* be called BEFORE cleanupWorkspace() so the workspace still exists.
|
|
20
|
+
*
|
|
21
|
+
* @param sessionId - Session ID (used for log context and temp worktree naming).
|
|
22
|
+
* @param commitPrefix - Commit message prefix (e.g. "chore: code review").
|
|
23
|
+
*/
|
|
24
|
+
export declare function commitReportsFromWorkspace(sessionId: string, commitPrefix: string): void;
|
|
13
25
|
/**
|
|
14
26
|
* Remove a workspace directory when a session closes.
|
|
15
27
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { execFile } from 'child_process';
|
|
2
|
-
import { existsSync, mkdirSync, rmSync } from 'fs';
|
|
1
|
+
import { execFile, execFileSync } from 'child_process';
|
|
2
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
|
-
import { join, resolve } from 'path';
|
|
4
|
+
import { dirname, join, resolve } from 'path';
|
|
5
5
|
import { promisify } from 'util';
|
|
6
6
|
const execFileAsync = promisify(execFile);
|
|
7
7
|
const GIT_TIMEOUT_MS = 120_000;
|
|
@@ -158,6 +158,129 @@ export async function createWorkspace(sessionId, repo, cloneUrl, branch, headSha
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Scan a workspace for report files under `.codekin/reports/` and commit them
|
|
163
|
+
* to the `codekin/reports` branch of origin.
|
|
164
|
+
*
|
|
165
|
+
* Uses the same worktree-based approach as the MD workflow engine's save_report
|
|
166
|
+
* step so that reports from both systems end up in the same place. This must
|
|
167
|
+
* be called BEFORE cleanupWorkspace() so the workspace still exists.
|
|
168
|
+
*
|
|
169
|
+
* @param sessionId - Session ID (used for log context and temp worktree naming).
|
|
170
|
+
* @param commitPrefix - Commit message prefix (e.g. "chore: code review").
|
|
171
|
+
*/
|
|
172
|
+
export function commitReportsFromWorkspace(sessionId, commitPrefix) {
|
|
173
|
+
const workspacePath = join(WORKSPACES_DIR, sessionId);
|
|
174
|
+
const reportsDir = join(workspacePath, '.codekin', 'reports');
|
|
175
|
+
if (!existsSync(reportsDir))
|
|
176
|
+
return;
|
|
177
|
+
// Collect all .md report files
|
|
178
|
+
const reportFiles = [];
|
|
179
|
+
try {
|
|
180
|
+
for (const category of readdirSync(reportsDir)) {
|
|
181
|
+
const categoryDir = join(reportsDir, category);
|
|
182
|
+
let entries;
|
|
183
|
+
try {
|
|
184
|
+
entries = readdirSync(categoryDir);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
for (const file of entries) {
|
|
190
|
+
if (!file.endsWith('.md'))
|
|
191
|
+
continue;
|
|
192
|
+
const fullPath = join(categoryDir, file);
|
|
193
|
+
reportFiles.push({
|
|
194
|
+
relativePath: `.codekin/reports/${category}/${file}`,
|
|
195
|
+
content: readFileSync(fullPath, 'utf-8'),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
console.warn(`[webhook-workspace] Failed to scan reports in ${workspacePath}:`, err);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
if (reportFiles.length === 0)
|
|
205
|
+
return;
|
|
206
|
+
const REPORTS_BRANCH = 'codekin/reports';
|
|
207
|
+
const dateStr = new Date().toISOString().slice(0, 10);
|
|
208
|
+
try {
|
|
209
|
+
// Ensure the reports branch exists on origin (create from HEAD if needed)
|
|
210
|
+
try {
|
|
211
|
+
execFileSync('git', ['rev-parse', '--verify', `origin/${REPORTS_BRANCH}`], {
|
|
212
|
+
cwd: workspacePath, timeout: 5_000, stdio: 'pipe',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Remote branch doesn't exist — create it locally first
|
|
217
|
+
try {
|
|
218
|
+
execFileSync('git', ['branch', REPORTS_BRANCH], {
|
|
219
|
+
cwd: workspacePath, timeout: 5_000,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
// May already exist locally
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Fetch the reports branch so we have the latest
|
|
227
|
+
try {
|
|
228
|
+
execFileSync('git', ['fetch', 'origin', `${REPORTS_BRANCH}:${REPORTS_BRANCH}`], { cwd: workspacePath, timeout: 30_000, stdio: 'pipe', env: GIT_AUTH_ENV });
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// Branch may not exist on remote yet — that's OK
|
|
232
|
+
}
|
|
233
|
+
// Create a temporary worktree on the reports branch
|
|
234
|
+
const wtDir = join(WORKSPACES_DIR, `.report-wt-${sessionId.slice(0, 12)}`);
|
|
235
|
+
try {
|
|
236
|
+
execFileSync('git', ['worktree', 'add', wtDir, REPORTS_BRANCH], {
|
|
237
|
+
cwd: workspacePath, timeout: 10_000,
|
|
238
|
+
});
|
|
239
|
+
// Copy each report file into the worktree
|
|
240
|
+
for (const report of reportFiles) {
|
|
241
|
+
const destPath = join(wtDir, report.relativePath);
|
|
242
|
+
const destDir = dirname(destPath);
|
|
243
|
+
if (!existsSync(destDir))
|
|
244
|
+
mkdirSync(destDir, { recursive: true });
|
|
245
|
+
writeFileSync(destPath, report.content, 'utf-8');
|
|
246
|
+
}
|
|
247
|
+
// Stage and check if there's anything to commit
|
|
248
|
+
execFileSync('git', ['add', '.codekin/reports'], { cwd: wtDir, timeout: 10_000 });
|
|
249
|
+
try {
|
|
250
|
+
execFileSync('git', ['diff', '--cached', '--quiet'], { cwd: wtDir, timeout: 5_000 });
|
|
251
|
+
// Exit code 0 means no staged changes — nothing to commit
|
|
252
|
+
console.log(`[webhook-workspace] Reports already up to date on ${REPORTS_BRANCH}, skipping commit`);
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
// Exit code 1 means there are staged changes — proceed with commit
|
|
257
|
+
}
|
|
258
|
+
// Set git identity in the worktree to avoid "Author identity unknown"
|
|
259
|
+
execFileSync('git', ['config', 'user.name', 'Codekin Workflow'], { cwd: wtDir, timeout: 5_000 });
|
|
260
|
+
execFileSync('git', ['config', 'user.email', 'workflow@codekin.local'], { cwd: wtDir, timeout: 5_000 });
|
|
261
|
+
execFileSync('git', ['commit', '-m', `${commitPrefix} ${dateStr}`], { cwd: wtDir, timeout: 15_000 });
|
|
262
|
+
console.log(`[webhook-workspace] Committed ${reportFiles.length} report(s) on ${REPORTS_BRANCH}`);
|
|
263
|
+
try {
|
|
264
|
+
execFileSync('git', ['push', 'origin', REPORTS_BRANCH], { cwd: wtDir, timeout: 30_000, stdio: 'pipe', env: GIT_AUTH_ENV });
|
|
265
|
+
console.log(`[webhook-workspace] Pushed ${REPORTS_BRANCH} to origin`);
|
|
266
|
+
}
|
|
267
|
+
catch (pushErr) {
|
|
268
|
+
console.warn(`[webhook-workspace] Could not push ${REPORTS_BRANCH}: ${pushErr}`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
finally {
|
|
272
|
+
try {
|
|
273
|
+
execFileSync('git', ['worktree', 'remove', '--force', wtDir], {
|
|
274
|
+
cwd: workspacePath, timeout: 10_000,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
catch { /* best-effort cleanup */ }
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch (err) {
|
|
281
|
+
console.warn(`[webhook-workspace] Could not commit reports from workspace ${sessionId}: ${err}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
161
284
|
/**
|
|
162
285
|
* Remove a workspace directory when a session closes.
|
|
163
286
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-workspace.js","sourceRoot":"","sources":["../webhook-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"webhook-workspace.js","sourceRoot":"","sources":["../webhook-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,18 @@ export type RunStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'cancele
|
|
|
23
23
|
export declare class WorkflowSkipped extends Error {
|
|
24
24
|
constructor(message: string);
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Thrown when a step references a session that no longer exists in the session manager —
|
|
28
|
+
* either because it was deleted, expired, or never persisted across a server restart.
|
|
29
|
+
* Carries enough context (run id, step key, session id, last heartbeat) for diagnostics.
|
|
30
|
+
*/
|
|
31
|
+
export declare class SessionGoneError extends Error {
|
|
32
|
+
readonly runId: string;
|
|
33
|
+
readonly stepKey: string;
|
|
34
|
+
readonly sessionId: string;
|
|
35
|
+
readonly lastSeen: string | null;
|
|
36
|
+
constructor(runId: string, stepKey: string, sessionId: string, lastSeen: string | null);
|
|
37
|
+
}
|
|
26
38
|
/**
|
|
27
39
|
* Lifecycle status of an individual workflow step.
|
|
28
40
|
* - `pending` — not yet reached by the executor
|
|
@@ -52,6 +64,12 @@ export interface WorkflowRun {
|
|
|
52
64
|
startedAt: string | null;
|
|
53
65
|
/** ISO timestamp when execution finished (success, failure, or skip). */
|
|
54
66
|
completedAt: string | null;
|
|
67
|
+
/** Codekin session id owned by this run, recorded by `create_session`. Null until that step records it. */
|
|
68
|
+
sessionId?: string | null;
|
|
69
|
+
/** ISO timestamp updated whenever a step starts; serves as a liveness heartbeat for resume. */
|
|
70
|
+
lastStepAt?: string | null;
|
|
71
|
+
/** Key of the step that was most recently marked running. Used to resume from the right place. */
|
|
72
|
+
currentStepKey?: string | null;
|
|
55
73
|
}
|
|
56
74
|
/** A single step within a workflow run. Insertion order (rowid) preserves definition order. */
|
|
57
75
|
export interface WorkflowStep {
|
|
@@ -111,15 +129,33 @@ export interface WorkflowEvent {
|
|
|
111
129
|
/**
|
|
112
130
|
* Step handler function — receives step input + run context, returns step output.
|
|
113
131
|
* @param input Merged output of all preceding steps (plus the run's original input).
|
|
114
|
-
* @param context.runId
|
|
115
|
-
* @param context.run
|
|
116
|
-
* @param context.abortSignal
|
|
132
|
+
* @param context.runId UUID of the current run.
|
|
133
|
+
* @param context.run Full WorkflowRun object (mutable — reflects current status).
|
|
134
|
+
* @param context.abortSignal Fires when `cancelRun()` is called; handlers should check or listen on it.
|
|
135
|
+
* @param context.resumed True when this step is being re-executed after a server restart.
|
|
136
|
+
* Handlers can use this to skip side effects already performed
|
|
137
|
+
* (e.g. don't re-send a Claude prompt — just await the result).
|
|
138
|
+
* @param context.recordSessionId Persist the session id atomically with `create_session`, so that
|
|
139
|
+
* a later `resumeInterrupted()` scan can reattach to the session
|
|
140
|
+
* even if the server crashed before the step's output row was written.
|
|
117
141
|
*/
|
|
118
142
|
export type StepHandler = (input: Record<string, unknown>, context: {
|
|
119
143
|
runId: string;
|
|
120
144
|
run: WorkflowRun;
|
|
121
145
|
abortSignal: AbortSignal;
|
|
146
|
+
resumed?: boolean;
|
|
147
|
+
recordSessionId?: (sessionId: string) => void;
|
|
122
148
|
}) => Promise<Record<string, unknown>>;
|
|
149
|
+
/**
|
|
150
|
+
* Result of resolving a workflow's session at resume time.
|
|
151
|
+
* `null` means the session is gone (deleted, expired, never persisted) and the run cannot resume.
|
|
152
|
+
*/
|
|
153
|
+
export interface SessionLiveness {
|
|
154
|
+
/** ISO timestamp of the most recent activity on the session, if known. */
|
|
155
|
+
lastActivityAt?: string | null;
|
|
156
|
+
}
|
|
157
|
+
/** Lookup function used by `resumeInterrupted()` to decide whether a session is still resumable. */
|
|
158
|
+
export type SessionResolver = (sessionId: string) => SessionLiveness | null;
|
|
123
159
|
interface StepDefinition {
|
|
124
160
|
key: string;
|
|
125
161
|
handler: StepHandler;
|
|
@@ -135,8 +171,23 @@ export declare class WorkflowEngine extends EventEmitter {
|
|
|
135
171
|
private workflows;
|
|
136
172
|
private activeAbortControllers;
|
|
137
173
|
private cronTimer;
|
|
174
|
+
private sessionResolver;
|
|
138
175
|
constructor(dbPath?: string);
|
|
139
176
|
private createTables;
|
|
177
|
+
/**
|
|
178
|
+
* Apply additive (backwards-compatible) schema migrations.
|
|
179
|
+
* Each ALTER TABLE is wrapped in try/catch so a re-run on a migrated DB is a no-op
|
|
180
|
+
* (SQLite has no `ADD COLUMN IF NOT EXISTS`). New columns are nullable so older rows
|
|
181
|
+
* keep working without backfill.
|
|
182
|
+
*/
|
|
183
|
+
private migrateSchema;
|
|
184
|
+
/**
|
|
185
|
+
* Register a callback used by `resumeInterrupted()` to decide whether a workflow's
|
|
186
|
+
* session is still alive. Pass `null` to clear. Without a resolver, all interrupted
|
|
187
|
+
* runs whose session_id is set are conservatively treated as resumable — but the
|
|
188
|
+
* step handler will still surface a typed error if the session has actually gone.
|
|
189
|
+
*/
|
|
190
|
+
setSessionResolver(resolver: SessionResolver | null): void;
|
|
140
191
|
/** Register a workflow kind with its step definitions. Must be called before `startRun()`. */
|
|
141
192
|
registerWorkflow(definition: WorkflowDefinition): void;
|
|
142
193
|
/** Check whether a workflow kind has been registered. */
|
|
@@ -155,10 +206,21 @@ export declare class WorkflowEngine extends EventEmitter {
|
|
|
155
206
|
*
|
|
156
207
|
* Cancellation: `cancelRun()` calls controller.abort(); the AbortSignal is
|
|
157
208
|
* passed to each handler so long-running async work can exit cooperatively.
|
|
209
|
+
*
|
|
210
|
+
* Resume: when `opts.resumeFromKey` is set, steps before that key are skipped
|
|
211
|
+
* (their outputs come from `opts.priorOutput`) and the resumed step receives
|
|
212
|
+
* `resumed: true` in its context so the handler can avoid double side effects.
|
|
158
213
|
*/
|
|
159
214
|
private executeRun;
|
|
160
215
|
/** Signal an active run to abort. Returns true if the run was in-flight and the signal was sent. */
|
|
161
216
|
cancelRun(runId: string): boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Persist a session id on a run so that `resumeInterrupted()` can locate the
|
|
219
|
+
* still-alive session even if the server crashes before the `create_session`
|
|
220
|
+
* step's output row is committed. Called from inside the step handler via
|
|
221
|
+
* `ctx.recordSessionId(...)`.
|
|
222
|
+
*/
|
|
223
|
+
recordSessionId(runId: string, sessionId: string): void;
|
|
162
224
|
/** Fetch a single run with all its steps (ordered by definition order). Returns `null` if not found. */
|
|
163
225
|
getRun(runId: string): (WorkflowRun & {
|
|
164
226
|
steps: WorkflowStep[];
|
|
@@ -185,12 +247,23 @@ export declare class WorkflowEngine extends EventEmitter {
|
|
|
185
247
|
/** Stop the cron polling loop. Safe to call multiple times. */
|
|
186
248
|
stopCronScheduler(): void;
|
|
187
249
|
/**
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
250
|
+
* Resume runs that were in-flight when the server last shut down.
|
|
251
|
+
*
|
|
252
|
+
* Strategy:
|
|
253
|
+
* 1. Find all runs still marked `running` (no graceful completion happened).
|
|
254
|
+
* 2. For each, look at `session_id` + `current_step_key` — captured before the crash.
|
|
255
|
+
* 3. If the session is still alive (per `sessionResolver`) and the step is one we know how
|
|
256
|
+
* to resume (`run_prompt`, `save_report`), re-execute from there with `resumed: true`.
|
|
257
|
+
* 4. Otherwise mark the run failed with a clear, typed reason. We do NOT silently mark
|
|
258
|
+
* remaining steps `skipped` — the failure surface is loud so reports don't go missing.
|
|
259
|
+
*
|
|
260
|
+
* Earlier steps (`validate_repo`, `create_session`) are not resumed: by the time they were
|
|
261
|
+
* running, the workflow had no usable session yet, and re-creating one mid-way would risk
|
|
262
|
+
* spawning duplicate sessions or sending the prompt twice.
|
|
192
263
|
*/
|
|
193
264
|
resumeInterrupted(): Promise<void>;
|
|
265
|
+
/** Mark a run as failed during the resume scan (no AbortController, no in-memory run object). */
|
|
266
|
+
private failInterrupted;
|
|
194
267
|
private emitEvent;
|
|
195
268
|
/** Gracefully shut down: stop cron, cancel active runs, close the database. */
|
|
196
269
|
shutdown(): void;
|