@heyditto/cli 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -0
- package/dist/agents/claude.d.ts +11 -0
- package/dist/agents/claude.js +48 -0
- package/dist/agents/claude.js.map +1 -0
- package/dist/agents/codex.d.ts +13 -0
- package/dist/agents/codex.js +48 -0
- package/dist/agents/codex.js.map +1 -0
- package/dist/agents/launch.d.ts +20 -0
- package/dist/agents/launch.js +274 -0
- package/dist/agents/launch.js.map +1 -0
- package/dist/agents/sessions.d.ts +28 -0
- package/dist/agents/sessions.js +63 -0
- package/dist/agents/sessions.js.map +1 -0
- package/dist/agents/types.d.ts +50 -0
- package/dist/agents/types.js +44 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/agents/worktree.d.ts +19 -0
- package/dist/agents/worktree.js +72 -0
- package/dist/agents/worktree.js.map +1 -0
- package/dist/api.d.ts +110 -0
- package/dist/api.js +119 -0
- package/dist/api.js.map +1 -0
- package/dist/cli.js +80 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +30 -0
- package/dist/commands.js +293 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/device-login.d.ts +12 -0
- package/dist/device-login.js +34 -0
- package/dist/device-login.js.map +1 -0
- package/dist/mcp-session.d.ts +40 -0
- package/dist/mcp-session.js +133 -0
- package/dist/mcp-session.js.map +1 -0
- package/dist/store.d.ts +10 -0
- package/dist/store.js +14 -0
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAgB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAA0C,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjG,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQ9D,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,CAAoB;IACvC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IACnD,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,MAAM,CAAC;IAC/E,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpI,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC/G,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,gBAAgB,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,iBAAiB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC9H,CAAC;QACD,MAAM,gBAAgB,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,eAAe,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,WAAW,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3G,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wGAAwG,CAAC,CAAC;QAC/H,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QAClC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK;QACP,WAAW,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvH,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjG,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB;IACxD,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC9G,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAC5H,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,qBAAqB,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU;IAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,4CAA4C,CAAC,CAAC;AACvG,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,WAAgD;IACxG,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAY,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjE,MAAM,GAAG,GAAG,OAAO;aAChB,OAAO,CAAC,GAAG,OAAO,YAAY,CAAC;aAC/B,WAAW,CACV,UAAU,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,0DAA0D,CACnH;aACA,OAAO,CAAC,UAAU,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,2BAA2B,CAAC;aAC5F,MAAM,CAAC,uBAAuB,EAAE,qEAAqE,CAAC;aACtG,MAAM,CAAC,mBAAmB,EAAE,mDAAmD,CAAC;aAChF,SAAS,CACR,IAAI,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,CAAC;aACxE,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;aAC1B,OAAO,CAAC,IAAI,CAAC,CACjB;aACA,MAAM,CAAC,YAAY,EAAE,4CAA4C,CAAC;aAClE,MAAM,CAAC,gBAAgB,EAAE,qEAAqE,CAAC;aAC/F,MAAM,CAAC,eAAe,EAAE,0EAA0E,CAAC;aACnG,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,OAAO,iCAAiC,CAAC;aAC9F,MAAM,CAAC,QAAQ,EAAE,kCAAkC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,4CAA4C,GAAG,CAAC;aAC7J,MAAM,CAAC,UAAU,EAAE,sBAAsB,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,kCAAkC,GAAG,CAAC;aACxI,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,mCAAmC,CAAC;aACpI,MAAM,CAAC,kBAAkB,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,yDAAyD,CAAC;aACrJ,MAAM,CAAC,uBAAuB,EAAE,4EAA4E,CAAC;aAC7G,MAAM,CAAC,gBAAgB,EAAE,qEAAqE,CAAC;aAC/F,MAAM,CAAC,WAAW,EAAE,oEAAoE,CAAC;aACzF,kBAAkB,EAAE;aACpB,kBAAkB,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,QAAQ;YAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC,CAAC;QAC9F,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,OAAO,EAAE,EAAE;YAC3C,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,WAAW,CACT,GAAG,EACH,cAAc,OAAO;aACd,OAAO;aACP,OAAO;aACP,OAAO;aACP,OAAO;aACP,OAAO,8CAA8C,OAAO;wBACjD,KAAK,GAAG,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAUD,SAAS,OAAO,CAAC,OAA6B;IAC5C,OAAO,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,WAAW,CAAC,GAA8B;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACtD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAmB,EAAE,OAA+C;IACtG,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK;QACxE,4BAA4B,iBAAiB,2CAA2C,CAC3F,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAiD;IACpF,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAC5G,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,MAAM,KAAK,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,iBAAiB,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACrH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU,EAAE,OAA6B;IAC3E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA6B;IACnE,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC5C,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,WAAW,KAAK,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,EAAE,sDAAsD,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,WAAgD;IACxG,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,OAAO,CAAC,iCAAiC,CAAC;SAC1C,kBAAkB,EAAE;SACpB,WAAW,CACV,OAAO,EACP;;;EAGJ,iBAAiB;EACjB,WAAW,4CAA4C,CACpD,CAAC;IACJ,WAAW,CACT,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAChE,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;SACnE,SAAS,CAAC,mBAAmB,EAAE,CAAC;SAChC,MAAM,CAAC,aAAa,CAAC,EACxB;iDAC6C,CAC9C,CAAC;IACF,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,OAAO,EAAE,2CAA2C,CAAC;SAC5D,SAAS,CAAC,mBAAmB,EAAE,CAAC;SAChC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1B,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,iCAAiC,CAAC;SAC9C,QAAQ,CAAC,MAAM,EAAE,wDAAwD,CAAC;SAC1E,SAAS,CAAC,mBAAmB,EAAE,CAAC;SAChC,MAAM,CAAC,aAAa,CAAC,CAAC;IACzB,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,SAAS,CAAC,mBAAmB,EAAE,CAAC;SAChC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC7B,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,0CAA0C,CAAC;SACvD,SAAS,CAAC,mBAAmB,EAAE,CAAC;SAChC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,CAAY;IACrC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA6B;IAC3D,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI;QACN,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC;QAC5C,iBAAiB,CAAC,CAAC,CAAC;KACrB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare function apiBaseURL(): string;
|
|
|
4
4
|
export declare function mcpServerURL(): string;
|
|
5
5
|
export declare function configDir(): string;
|
|
6
6
|
export declare function authFilePath(): string;
|
|
7
|
+
/** Directory holding one JSON record per coding-agent session launched by the CLI. */
|
|
8
|
+
export declare function sessionsDir(): string;
|
|
7
9
|
export declare function newKeyURL(): string;
|
|
8
10
|
export declare function agentSignupURL(): string;
|
|
9
11
|
export type ApiKeySource = "env" | "config" | "none";
|
package/dist/config.js
CHANGED
|
@@ -21,6 +21,10 @@ export function configDir() {
|
|
|
21
21
|
export function authFilePath() {
|
|
22
22
|
return path.join(configDir(), "config.json");
|
|
23
23
|
}
|
|
24
|
+
/** Directory holding one JSON record per coding-agent session launched by the CLI. */
|
|
25
|
+
export function sessionsDir() {
|
|
26
|
+
return path.join(configDir(), "sessions");
|
|
27
|
+
}
|
|
24
28
|
export function newKeyURL() {
|
|
25
29
|
return "https://app.heyditto.ai/mcp/newkey";
|
|
26
30
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAsC,CAAC;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;AAE1C,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,UAAU,EAAE,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,oCAAoC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,UAAU,EAAE,uBAAuB,CAAC;AAChD,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,GAAG,GAAG,UAAU,CAAC,iBAAiB,CAAsC,CAAC;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;AAE1C,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,UAAU,EAAE,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,oCAAoC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,UAAU,EAAE,uBAAuB,CAAC;AAChD,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,IAAI,MAAM;QAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface DeviceLoginHooks {
|
|
2
|
+
/** Called with the code and URL the user must visit. */
|
|
3
|
+
onCode: (userCode: string, url: string) => void;
|
|
4
|
+
/** Called once per poll while waiting. */
|
|
5
|
+
onWaiting?: () => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Runs the browser device-login flow and resolves to the minted API key.
|
|
9
|
+
* Polls at the server's interval (backing off on slow_down) until approval,
|
|
10
|
+
* denial, or the code's expiry.
|
|
11
|
+
*/
|
|
12
|
+
export declare function deviceLogin(hooks: DeviceLoginHooks): Promise<string>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { pollDeviceToken, requestDeviceCode } from "./api.js";
|
|
2
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
3
|
+
/**
|
|
4
|
+
* Runs the browser device-login flow and resolves to the minted API key.
|
|
5
|
+
* Polls at the server's interval (backing off on slow_down) until approval,
|
|
6
|
+
* denial, or the code's expiry.
|
|
7
|
+
*/
|
|
8
|
+
export async function deviceLogin(hooks) {
|
|
9
|
+
const code = await requestDeviceCode();
|
|
10
|
+
const url = `${code.verification_url}${code.verification_url.includes("?") ? "&" : "?"}code=${encodeURIComponent(code.user_code)}`;
|
|
11
|
+
hooks.onCode(code.user_code, url);
|
|
12
|
+
const deadline = Date.now() + Math.max(30, code.expires_in || 600) * 1000;
|
|
13
|
+
let interval = Math.max(2, code.interval || 5) * 1000;
|
|
14
|
+
while (Date.now() < deadline) {
|
|
15
|
+
await sleep(interval);
|
|
16
|
+
const result = await pollDeviceToken(code.device_code);
|
|
17
|
+
switch (result.status) {
|
|
18
|
+
case "ok":
|
|
19
|
+
return result.accessToken;
|
|
20
|
+
case "pending":
|
|
21
|
+
hooks.onWaiting?.();
|
|
22
|
+
break;
|
|
23
|
+
case "slow_down":
|
|
24
|
+
interval += 5000;
|
|
25
|
+
break;
|
|
26
|
+
case "denied":
|
|
27
|
+
throw new Error("login was denied in the browser");
|
|
28
|
+
case "expired":
|
|
29
|
+
throw new Error("the login code expired before it was approved; run `heyditto login` again");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
throw new Error("timed out waiting for browser approval; run `heyditto login` again");
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=device-login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-login.js","sourceRoot":"","sources":["../src/device-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAStF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IACnI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1E,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,IAAI;gBACP,OAAO,MAAM,CAAC,WAAW,CAAC;YAC5B,KAAK,SAAS;gBACZ,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBACpB,MAAM;YACR,KAAK,WAAW;gBACd,QAAQ,IAAI,IAAI,CAAC;gBACjB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explicit MCP sessions: `heyditto session new` picks an id that every later
|
|
3
|
+
* MCP request carries as X-Ditto-Session-Id, so saves and searches land in one
|
|
4
|
+
* thread inside the agent the key is attached to. The name rides once on
|
|
5
|
+
* X-Ditto-Session-Name (the backend titles the thread with it).
|
|
6
|
+
*/
|
|
7
|
+
export declare const SESSION_ID_HEADER = "X-Ditto-Session-Id";
|
|
8
|
+
export declare const SESSION_NAME_HEADER = "X-Ditto-Session-Name";
|
|
9
|
+
/** Overrides the stored active session so scripts and spawned shells can pin one. */
|
|
10
|
+
export declare const SESSION_ENV = "DITTO_SESSION_ID";
|
|
11
|
+
export declare const SESSION_ID_PATTERN: RegExp;
|
|
12
|
+
export interface McpSessionRecord {
|
|
13
|
+
id: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
lastUsedAt?: string;
|
|
17
|
+
endedAt?: string;
|
|
18
|
+
/** True once X-Ditto-Session-Name went out on a successful request. */
|
|
19
|
+
nameSent?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface ActiveSession {
|
|
22
|
+
id: string;
|
|
23
|
+
name?: string;
|
|
24
|
+
createdAt?: string;
|
|
25
|
+
source: "env" | "config";
|
|
26
|
+
/** Send the name header on the next request. */
|
|
27
|
+
sendName: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare function sessionsHistoryPath(): string;
|
|
30
|
+
export declare function readSessionHistory(): Promise<McpSessionRecord[]>;
|
|
31
|
+
export declare function upsertSessionRecord(record: McpSessionRecord): Promise<void>;
|
|
32
|
+
/** The session every MCP request should be tagged with, or undefined. */
|
|
33
|
+
export declare function resolveActiveSession(): Promise<ActiveSession | undefined>;
|
|
34
|
+
/** Pure: the extra headers for one MCP request. */
|
|
35
|
+
export declare function sessionHeaders(active: ActiveSession | undefined): Record<string, string>;
|
|
36
|
+
/** Record a successful request: the name is sent once, lastUsedAt moves. */
|
|
37
|
+
export declare function markSessionUsed(active: ActiveSession | undefined): Promise<void>;
|
|
38
|
+
export declare function startSession(name: string | undefined, id?: string): Promise<McpSessionRecord>;
|
|
39
|
+
export declare function useSession(id: string): Promise<McpSessionRecord>;
|
|
40
|
+
export declare function endSession(): Promise<McpSessionRecord | undefined>;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { configDir } from "./config.js";
|
|
5
|
+
import { readStoredAuth, updateStoredAuth } from "./store.js";
|
|
6
|
+
/**
|
|
7
|
+
* Explicit MCP sessions: `heyditto session new` picks an id that every later
|
|
8
|
+
* MCP request carries as X-Ditto-Session-Id, so saves and searches land in one
|
|
9
|
+
* thread inside the agent the key is attached to. The name rides once on
|
|
10
|
+
* X-Ditto-Session-Name (the backend titles the thread with it).
|
|
11
|
+
*/
|
|
12
|
+
export const SESSION_ID_HEADER = "X-Ditto-Session-Id";
|
|
13
|
+
export const SESSION_NAME_HEADER = "X-Ditto-Session-Name";
|
|
14
|
+
/** Overrides the stored active session so scripts and spawned shells can pin one. */
|
|
15
|
+
export const SESSION_ENV = "DITTO_SESSION_ID";
|
|
16
|
+
export const SESSION_ID_PATTERN = /^[A-Za-z0-9._:@-]{1,128}$/;
|
|
17
|
+
const HISTORY_LIMIT = 200;
|
|
18
|
+
export function sessionsHistoryPath() {
|
|
19
|
+
return path.join(configDir(), "mcp-sessions.json");
|
|
20
|
+
}
|
|
21
|
+
export async function readSessionHistory() {
|
|
22
|
+
try {
|
|
23
|
+
const raw = await readFile(sessionsHistoryPath(), "utf-8");
|
|
24
|
+
const parsed = JSON.parse(raw);
|
|
25
|
+
return Array.isArray(parsed.sessions) ? parsed.sessions : [];
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (err.code === "ENOENT")
|
|
29
|
+
return [];
|
|
30
|
+
throw err;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function writeSessionHistory(sessions) {
|
|
34
|
+
const file = sessionsHistoryPath();
|
|
35
|
+
await mkdir(path.dirname(file), { recursive: true, mode: 0o700 });
|
|
36
|
+
const trimmed = [...sessions]
|
|
37
|
+
.sort((a, b) => (b.createdAt > a.createdAt ? 1 : b.createdAt < a.createdAt ? -1 : 0))
|
|
38
|
+
.slice(0, HISTORY_LIMIT);
|
|
39
|
+
await writeFile(file, `${JSON.stringify({ sessions: trimmed }, null, 2)}\n`, { mode: 0o600 });
|
|
40
|
+
await chmod(file, 0o600);
|
|
41
|
+
}
|
|
42
|
+
export async function upsertSessionRecord(record) {
|
|
43
|
+
const history = await readSessionHistory();
|
|
44
|
+
const idx = history.findIndex((s) => s.id === record.id);
|
|
45
|
+
if (idx >= 0)
|
|
46
|
+
history[idx] = { ...history[idx], ...record };
|
|
47
|
+
else
|
|
48
|
+
history.push(record);
|
|
49
|
+
await writeSessionHistory(history);
|
|
50
|
+
}
|
|
51
|
+
/** The session every MCP request should be tagged with, or undefined. */
|
|
52
|
+
export async function resolveActiveSession() {
|
|
53
|
+
const envID = process.env[SESSION_ENV]?.trim();
|
|
54
|
+
if (envID) {
|
|
55
|
+
if (!SESSION_ID_PATTERN.test(envID))
|
|
56
|
+
throw new Error(`${SESSION_ENV} must match ${SESSION_ID_PATTERN}`);
|
|
57
|
+
return { id: envID, source: "env", sendName: false };
|
|
58
|
+
}
|
|
59
|
+
const stored = (await readStoredAuth())?.activeSession;
|
|
60
|
+
if (!stored?.id)
|
|
61
|
+
return undefined;
|
|
62
|
+
const history = await readSessionHistory();
|
|
63
|
+
const record = history.find((s) => s.id === stored.id);
|
|
64
|
+
const name = record?.name ?? stored.name;
|
|
65
|
+
return {
|
|
66
|
+
id: stored.id,
|
|
67
|
+
name,
|
|
68
|
+
createdAt: record?.createdAt ?? stored.createdAt,
|
|
69
|
+
source: "config",
|
|
70
|
+
sendName: Boolean(name) && !record?.nameSent,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/** Pure: the extra headers for one MCP request. */
|
|
74
|
+
export function sessionHeaders(active) {
|
|
75
|
+
if (!active)
|
|
76
|
+
return {};
|
|
77
|
+
const headers = { [SESSION_ID_HEADER]: active.id };
|
|
78
|
+
if (active.sendName && active.name)
|
|
79
|
+
headers[SESSION_NAME_HEADER] = active.name;
|
|
80
|
+
return headers;
|
|
81
|
+
}
|
|
82
|
+
/** Record a successful request: the name is sent once, lastUsedAt moves. */
|
|
83
|
+
export async function markSessionUsed(active) {
|
|
84
|
+
if (!active || active.source !== "config")
|
|
85
|
+
return;
|
|
86
|
+
const history = await readSessionHistory();
|
|
87
|
+
const record = history.find((s) => s.id === active.id);
|
|
88
|
+
if (!record)
|
|
89
|
+
return;
|
|
90
|
+
await upsertSessionRecord({ ...record, lastUsedAt: new Date().toISOString(), nameSent: record.nameSent || active.sendName });
|
|
91
|
+
}
|
|
92
|
+
export async function startSession(name, id) {
|
|
93
|
+
const sessionID = id?.trim() || randomUUID();
|
|
94
|
+
if (!SESSION_ID_PATTERN.test(sessionID))
|
|
95
|
+
throw new Error(`session id must match ${SESSION_ID_PATTERN}`);
|
|
96
|
+
const record = { id: sessionID, createdAt: new Date().toISOString() };
|
|
97
|
+
const cleaned = name?.trim();
|
|
98
|
+
if (cleaned)
|
|
99
|
+
record.name = cleaned;
|
|
100
|
+
await upsertSessionRecord(record);
|
|
101
|
+
await updateStoredAuth({ activeSession: { id: record.id, name: record.name, createdAt: record.createdAt } });
|
|
102
|
+
return record;
|
|
103
|
+
}
|
|
104
|
+
export async function useSession(id) {
|
|
105
|
+
const wanted = id.trim();
|
|
106
|
+
const history = await readSessionHistory();
|
|
107
|
+
const record = history.find((s) => s.id === wanted || (wanted.length >= 6 && s.id.startsWith(wanted)));
|
|
108
|
+
if (!record) {
|
|
109
|
+
if (!SESSION_ID_PATTERN.test(wanted))
|
|
110
|
+
throw new Error(`no local session "${wanted}"; see \`heyditto session list\``);
|
|
111
|
+
// An id minted elsewhere (another machine, the app) can still be pinned.
|
|
112
|
+
const fresh = { id: wanted, createdAt: new Date().toISOString(), nameSent: true };
|
|
113
|
+
await upsertSessionRecord(fresh);
|
|
114
|
+
await updateStoredAuth({ activeSession: { id: fresh.id, createdAt: fresh.createdAt } });
|
|
115
|
+
return fresh;
|
|
116
|
+
}
|
|
117
|
+
const revived = { ...record, endedAt: undefined };
|
|
118
|
+
await upsertSessionRecord(revived);
|
|
119
|
+
await updateStoredAuth({ activeSession: { id: revived.id, name: revived.name, createdAt: revived.createdAt } });
|
|
120
|
+
return revived;
|
|
121
|
+
}
|
|
122
|
+
export async function endSession() {
|
|
123
|
+
const stored = (await readStoredAuth())?.activeSession;
|
|
124
|
+
if (!stored?.id)
|
|
125
|
+
return undefined;
|
|
126
|
+
const history = await readSessionHistory();
|
|
127
|
+
const record = history.find((s) => s.id === stored.id);
|
|
128
|
+
const ended = { ...(record ?? { id: stored.id, createdAt: stored.createdAt ?? new Date().toISOString() }), endedAt: new Date().toISOString() };
|
|
129
|
+
await upsertSessionRecord(ended);
|
|
130
|
+
await updateStoredAuth({ activeSession: undefined });
|
|
131
|
+
return ended;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=mcp-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-session.js","sourceRoot":"","sources":["../src/mcp-session.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -6,9 +6,19 @@ export interface StoredAuth {
|
|
|
6
6
|
agentCaller?: string;
|
|
7
7
|
claimURL?: string;
|
|
8
8
|
createdAt?: string;
|
|
9
|
+
/** Endpoint slug or id used by `heyditto claude` / `heyditto codex` when --endpoint is omitted. */
|
|
10
|
+
defaultEndpoint?: string;
|
|
11
|
+
/** Explicit MCP session (`heyditto session new`) sent as X-Ditto-Session-Id on every request. */
|
|
12
|
+
activeSession?: {
|
|
13
|
+
id: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
createdAt?: string;
|
|
16
|
+
};
|
|
9
17
|
}
|
|
10
18
|
export declare function readStoredAuth(): Promise<StoredAuth | undefined>;
|
|
11
19
|
export declare function readStoredKey(): Promise<string | undefined>;
|
|
12
20
|
export declare function writeStoredAuth(auth: StoredAuth): Promise<void>;
|
|
21
|
+
/** Merge fields into the stored auth file without dropping the saved key or agent fields. */
|
|
22
|
+
export declare function updateStoredAuth(partial: Partial<StoredAuth>): Promise<StoredAuth>;
|
|
13
23
|
export declare function writeStoredKey(key: string): Promise<void>;
|
|
14
24
|
export declare function clearStoredKey(): Promise<boolean>;
|
package/dist/store.js
CHANGED
|
@@ -27,6 +27,20 @@ export async function writeStoredAuth(auth) {
|
|
|
27
27
|
await writeFile(path, `${JSON.stringify({ ...auth, apiKey: cleaned }, null, 2)}\n`, { mode: 0o600 });
|
|
28
28
|
await chmod(path, 0o600);
|
|
29
29
|
}
|
|
30
|
+
/** Merge fields into the stored auth file without dropping the saved key or agent fields. */
|
|
31
|
+
export async function updateStoredAuth(partial) {
|
|
32
|
+
const current = (await readStoredAuth()) ?? {};
|
|
33
|
+
const merged = { ...current, ...partial };
|
|
34
|
+
for (const [k, v] of Object.entries(partial)) {
|
|
35
|
+
if (v === undefined)
|
|
36
|
+
delete merged[k];
|
|
37
|
+
}
|
|
38
|
+
const path = authFilePath();
|
|
39
|
+
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
40
|
+
await writeFile(path, `${JSON.stringify(merged, null, 2)}\n`, { mode: 0o600 });
|
|
41
|
+
await chmod(path, 0o600);
|
|
42
|
+
return merged;
|
|
43
|
+
}
|
|
30
44
|
export async function writeStoredKey(key) {
|
|
31
45
|
const cleaned = key.trim();
|
|
32
46
|
if (!cleaned)
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|