aicodeman 1.4.1 → 1.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.
Files changed (229) hide show
  1. package/README.md +30 -8
  2. package/README.zh-CN.md +289 -92
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +168 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config/multiuser.d.ts +38 -0
  7. package/dist/config/multiuser.d.ts.map +1 -0
  8. package/dist/config/multiuser.js +58 -0
  9. package/dist/config/multiuser.js.map +1 -0
  10. package/dist/cron/cron-service.d.ts +1 -1
  11. package/dist/cron/cron-service.d.ts.map +1 -1
  12. package/dist/cron/cron-service.js +31 -4
  13. package/dist/cron/cron-service.js.map +1 -1
  14. package/dist/docker-export.d.ts +13 -0
  15. package/dist/docker-export.d.ts.map +1 -1
  16. package/dist/docker-export.js +55 -8
  17. package/dist/docker-export.js.map +1 -1
  18. package/dist/docker-hosts.d.ts +36 -5
  19. package/dist/docker-hosts.d.ts.map +1 -1
  20. package/dist/docker-hosts.js +90 -16
  21. package/dist/docker-hosts.js.map +1 -1
  22. package/dist/mux-interface.d.ts +6 -0
  23. package/dist/mux-interface.d.ts.map +1 -1
  24. package/dist/plan-orchestrator.d.ts +8 -1
  25. package/dist/plan-orchestrator.d.ts.map +1 -1
  26. package/dist/plan-orchestrator.js +20 -1
  27. package/dist/plan-orchestrator.js.map +1 -1
  28. package/dist/push-store.d.ts +17 -5
  29. package/dist/push-store.d.ts.map +1 -1
  30. package/dist/push-store.js +3 -1
  31. package/dist/push-store.js.map +1 -1
  32. package/dist/session-cli-builder.d.ts +1 -1
  33. package/dist/session-cli-builder.d.ts.map +1 -1
  34. package/dist/session-cli-builder.js +7 -2
  35. package/dist/session-cli-builder.js.map +1 -1
  36. package/dist/session.d.ts +9 -0
  37. package/dist/session.d.ts.map +1 -1
  38. package/dist/session.js +19 -2
  39. package/dist/session.js.map +1 -1
  40. package/dist/tmux-manager.d.ts +15 -1
  41. package/dist/tmux-manager.d.ts.map +1 -1
  42. package/dist/tmux-manager.js +55 -12
  43. package/dist/tmux-manager.js.map +1 -1
  44. package/dist/tunnel-manager.d.ts +17 -0
  45. package/dist/tunnel-manager.d.ts.map +1 -1
  46. package/dist/tunnel-manager.js +48 -8
  47. package/dist/tunnel-manager.js.map +1 -1
  48. package/dist/types/api.d.ts +10 -0
  49. package/dist/types/api.d.ts.map +1 -1
  50. package/dist/types/api.js +20 -0
  51. package/dist/types/api.js.map +1 -1
  52. package/dist/types/cron.d.ts +2 -0
  53. package/dist/types/cron.d.ts.map +1 -1
  54. package/dist/types/index.d.ts +1 -0
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/index.js +1 -0
  57. package/dist/types/index.js.map +1 -1
  58. package/dist/types/session.d.ts +9 -2
  59. package/dist/types/session.d.ts.map +1 -1
  60. package/dist/types/session.js +1 -1
  61. package/dist/types/session.js.map +1 -1
  62. package/dist/types/user.d.ts +59 -0
  63. package/dist/types/user.d.ts.map +1 -0
  64. package/dist/types/user.js +12 -0
  65. package/dist/types/user.js.map +1 -0
  66. package/dist/user-store.d.ts +139 -0
  67. package/dist/user-store.d.ts.map +1 -0
  68. package/dist/user-store.js +433 -0
  69. package/dist/user-store.js.map +1 -0
  70. package/dist/web/admin-audit.d.ts +17 -0
  71. package/dist/web/admin-audit.d.ts.map +1 -0
  72. package/dist/web/admin-audit.js +19 -0
  73. package/dist/web/admin-audit.js.map +1 -0
  74. package/dist/web/middleware/auth.d.ts +8 -0
  75. package/dist/web/middleware/auth.d.ts.map +1 -1
  76. package/dist/web/middleware/auth.js +250 -51
  77. package/dist/web/middleware/auth.js.map +1 -1
  78. package/dist/web/ports/auth-port.d.ts +13 -0
  79. package/dist/web/ports/auth-port.d.ts.map +1 -1
  80. package/dist/web/ports/config-port.d.ts +4 -1
  81. package/dist/web/ports/config-port.d.ts.map +1 -1
  82. package/dist/web/ports/infra-port.d.ts +4 -1
  83. package/dist/web/ports/infra-port.d.ts.map +1 -1
  84. package/dist/web/public/admin-ui.js +260 -0
  85. package/dist/web/public/admin-ui.js.br +0 -0
  86. package/dist/web/public/admin-ui.js.gz +0 -0
  87. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  88. package/dist/web/public/{app.6c4b9893.js → app.1ccca158.js} +1 -1
  89. package/dist/web/public/app.1ccca158.js.br +0 -0
  90. package/dist/web/public/app.1ccca158.js.gz +0 -0
  91. package/dist/web/public/{constants.48da7f03.js → constants.ad3a8031.js} +4 -0
  92. package/dist/web/public/constants.ad3a8031.js.br +0 -0
  93. package/dist/web/public/{constants.48da7f03.js.gz → constants.ad3a8031.js.gz} +0 -0
  94. package/dist/web/public/cron-ui.js.gz +0 -0
  95. package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
  96. package/dist/web/public/index.html +11 -9
  97. package/dist/web/public/index.html.br +0 -0
  98. package/dist/web/public/index.html.gz +0 -0
  99. package/dist/web/public/input-cjk.63794d0b.js.gz +0 -0
  100. package/dist/web/public/keyboard-accessory.3f91acef.js.gz +0 -0
  101. package/dist/web/public/mobile-handlers.b5a667ef.js.gz +0 -0
  102. package/dist/web/public/mobile.597136a6.css +1 -0
  103. package/dist/web/public/mobile.597136a6.css.br +0 -0
  104. package/dist/web/public/mobile.597136a6.css.gz +0 -0
  105. package/dist/web/public/notification-manager.ca9dc40d.js.gz +0 -0
  106. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  107. package/dist/web/public/panels-ui.3c9b0465.js.gz +0 -0
  108. package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
  109. package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
  110. package/dist/web/public/respawn-ui.2d249da9.js.gz +0 -0
  111. package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
  112. package/dist/web/public/session-ui.e5d4f9b5.js +60 -0
  113. package/dist/web/public/session-ui.e5d4f9b5.js.br +0 -0
  114. package/dist/web/public/session-ui.e5d4f9b5.js.gz +0 -0
  115. package/dist/web/public/settings-ui.29214cf1.js.gz +0 -0
  116. package/dist/web/public/styles.9e6cdb9d.css +1 -0
  117. package/dist/web/public/styles.9e6cdb9d.css.br +0 -0
  118. package/dist/web/public/styles.9e6cdb9d.css.gz +0 -0
  119. package/dist/web/public/subagent-windows.69b60c35.js.gz +0 -0
  120. package/dist/web/public/sw.js.gz +0 -0
  121. package/dist/web/public/terminal-ui.efda6083.js.gz +0 -0
  122. package/dist/web/public/ultracode-panel.js.gz +0 -0
  123. package/dist/web/public/ultracode-windows.js.gz +0 -0
  124. package/dist/web/public/upload.html.gz +0 -0
  125. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  126. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  127. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  128. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  129. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  130. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  131. package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
  132. package/dist/web/public/vendor/xterm.css.gz +0 -0
  133. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  134. package/dist/web/public/voice-input.085e9e73.js.gz +0 -0
  135. package/dist/web/route-helpers.d.ts +78 -1
  136. package/dist/web/route-helpers.d.ts.map +1 -1
  137. package/dist/web/route-helpers.js +172 -3
  138. package/dist/web/route-helpers.js.map +1 -1
  139. package/dist/web/routes/admin-routes.d.ts +20 -0
  140. package/dist/web/routes/admin-routes.d.ts.map +1 -0
  141. package/dist/web/routes/admin-routes.js +193 -0
  142. package/dist/web/routes/admin-routes.js.map +1 -0
  143. package/dist/web/routes/case-routes.d.ts +2 -2
  144. package/dist/web/routes/case-routes.d.ts.map +1 -1
  145. package/dist/web/routes/case-routes.js +193 -79
  146. package/dist/web/routes/case-routes.js.map +1 -1
  147. package/dist/web/routes/clipboard-routes.d.ts +2 -2
  148. package/dist/web/routes/clipboard-routes.d.ts.map +1 -1
  149. package/dist/web/routes/clipboard-routes.js +10 -0
  150. package/dist/web/routes/clipboard-routes.js.map +1 -1
  151. package/dist/web/routes/cron-routes.d.ts.map +1 -1
  152. package/dist/web/routes/cron-routes.js +57 -9
  153. package/dist/web/routes/cron-routes.js.map +1 -1
  154. package/dist/web/routes/file-routes.d.ts.map +1 -1
  155. package/dist/web/routes/file-routes.js +26 -20
  156. package/dist/web/routes/file-routes.js.map +1 -1
  157. package/dist/web/routes/hook-event-routes.d.ts.map +1 -1
  158. package/dist/web/routes/hook-event-routes.js +9 -0
  159. package/dist/web/routes/hook-event-routes.js.map +1 -1
  160. package/dist/web/routes/index.d.ts +2 -0
  161. package/dist/web/routes/index.d.ts.map +1 -1
  162. package/dist/web/routes/index.js +2 -0
  163. package/dist/web/routes/index.js.map +1 -1
  164. package/dist/web/routes/me-routes.d.ts +16 -0
  165. package/dist/web/routes/me-routes.d.ts.map +1 -0
  166. package/dist/web/routes/me-routes.js +73 -0
  167. package/dist/web/routes/me-routes.js.map +1 -0
  168. package/dist/web/routes/mux-routes.d.ts.map +1 -1
  169. package/dist/web/routes/mux-routes.js +23 -5
  170. package/dist/web/routes/mux-routes.js.map +1 -1
  171. package/dist/web/routes/orchestrator-routes.d.ts.map +1 -1
  172. package/dist/web/routes/orchestrator-routes.js +43 -11
  173. package/dist/web/routes/orchestrator-routes.js.map +1 -1
  174. package/dist/web/routes/plan-routes.d.ts.map +1 -1
  175. package/dist/web/routes/plan-routes.js +28 -9
  176. package/dist/web/routes/plan-routes.js.map +1 -1
  177. package/dist/web/routes/push-routes.d.ts.map +1 -1
  178. package/dist/web/routes/push-routes.js +4 -0
  179. package/dist/web/routes/push-routes.js.map +1 -1
  180. package/dist/web/routes/ralph-routes.d.ts.map +1 -1
  181. package/dist/web/routes/ralph-routes.js +21 -17
  182. package/dist/web/routes/ralph-routes.js.map +1 -1
  183. package/dist/web/routes/respawn-routes.d.ts.map +1 -1
  184. package/dist/web/routes/respawn-routes.js +23 -14
  185. package/dist/web/routes/respawn-routes.js.map +1 -1
  186. package/dist/web/routes/scheduled-routes.d.ts.map +1 -1
  187. package/dist/web/routes/scheduled-routes.js +22 -6
  188. package/dist/web/routes/scheduled-routes.js.map +1 -1
  189. package/dist/web/routes/search-routes.d.ts.map +1 -1
  190. package/dist/web/routes/search-routes.js +9 -3
  191. package/dist/web/routes/search-routes.js.map +1 -1
  192. package/dist/web/routes/session-routes.d.ts.map +1 -1
  193. package/dist/web/routes/session-routes.js +219 -64
  194. package/dist/web/routes/session-routes.js.map +1 -1
  195. package/dist/web/routes/system-routes.d.ts.map +1 -1
  196. package/dist/web/routes/system-routes.js +108 -23
  197. package/dist/web/routes/system-routes.js.map +1 -1
  198. package/dist/web/routes/ws-routes.d.ts.map +1 -1
  199. package/dist/web/routes/ws-routes.js +11 -0
  200. package/dist/web/routes/ws-routes.js.map +1 -1
  201. package/dist/web/schemas.d.ts +1 -0
  202. package/dist/web/schemas.d.ts.map +1 -1
  203. package/dist/web/schemas.js +11 -0
  204. package/dist/web/schemas.js.map +1 -1
  205. package/dist/web/server.d.ts +12 -0
  206. package/dist/web/server.d.ts.map +1 -1
  207. package/dist/web/server.js +187 -11
  208. package/dist/web/server.js.map +1 -1
  209. package/dist/web/sse-events.d.ts +9 -0
  210. package/dist/web/sse-events.d.ts.map +1 -1
  211. package/dist/web/sse-events.js +10 -0
  212. package/dist/web/sse-events.js.map +1 -1
  213. package/dist/web/sse-stream-manager.d.ts +32 -2
  214. package/dist/web/sse-stream-manager.d.ts.map +1 -1
  215. package/dist/web/sse-stream-manager.js +51 -4
  216. package/dist/web/sse-stream-manager.js.map +1 -1
  217. package/package.json +1 -1
  218. package/dist/web/public/app.6c4b9893.js.br +0 -0
  219. package/dist/web/public/app.6c4b9893.js.gz +0 -0
  220. package/dist/web/public/constants.48da7f03.js.br +0 -0
  221. package/dist/web/public/mobile.0644e3ac.css +0 -1
  222. package/dist/web/public/mobile.0644e3ac.css.br +0 -0
  223. package/dist/web/public/mobile.0644e3ac.css.gz +0 -0
  224. package/dist/web/public/session-ui.4851c61a.js +0 -58
  225. package/dist/web/public/session-ui.4851c61a.js.br +0 -0
  226. package/dist/web/public/session-ui.4851c61a.js.gz +0 -0
  227. package/dist/web/public/styles.ff43f80f.css +0 -1
  228. package/dist/web/public/styles.ff43f80f.css.br +0 -0
  229. package/dist/web/public/styles.ff43f80f.css.gz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/types/cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpE,wCAAwC;AACxC,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE5D,oDAAoD;AACpD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1C,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpG,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAEzD,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,4BAA4B,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IAErB,YAAY,EAAE,YAAY,CAAC;IAC3B,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAGnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,4EAA4E;IAC5E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC"}
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/types/cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpE,wCAAwC;AACxC,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE5D,oDAAoD;AACpD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1C,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpG,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAEzD,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,4BAA4B,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IAErB,YAAY,EAAE,YAAY,CAAC;IAC3B,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAGnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,4EAA4E;IAC5E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC"}
@@ -68,4 +68,5 @@ export * from './orchestrator.js';
68
68
  export * from './update.js';
69
69
  export * from './workflow-run.js';
70
70
  export * from './search.js';
71
+ export * from './user.js';
71
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
@@ -68,4 +68,5 @@ export * from './orchestrator.js';
68
68
  export * from './update.js';
69
69
  export * from './workflow-run.js';
70
70
  export * from './search.js';
71
+ export * from './user.js';
71
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
@@ -9,7 +9,7 @@
9
9
  * - SessionOutput — captured stdout/stderr/exitCode
10
10
  * - SessionStatus — 'idle' | 'busy' | 'stopped' | 'error'
11
11
  * - SessionMode — 'claude' | 'shell' | 'opencode' | 'codex' | 'gemini' (which CLI backend)
12
- * - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'normal' | 'allowedTools')
12
+ * - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'auto' | 'normal' | 'allowedTools')
13
13
  * - SessionColor — visual differentiation color
14
14
  * - OpenCodeConfig — OpenCode-specific settings (model, autoAllowTools, continueSession)
15
15
  * - CodexConfig — Codex (OpenAI CLI)-specific settings (model, resumeSessionId)
@@ -32,10 +32,11 @@ export type SessionStatus = 'idle' | 'busy' | 'stopped' | 'error';
32
32
  /**
33
33
  * Claude CLI startup permission mode.
34
34
  * - `'dangerously-skip-permissions'`: Bypass all permission prompts (default)
35
+ * - `'auto'`: Anthropic's classifier-guarded low-prompt mode (`--permission-mode auto`)
35
36
  * - `'normal'`: Standard mode with permission prompts
36
37
  * - `'allowedTools'`: Only allow specific tools (requires allowedTools list)
37
38
  */
38
- export type ClaudeMode = 'dangerously-skip-permissions' | 'normal' | 'allowedTools';
39
+ export type ClaudeMode = 'dangerously-skip-permissions' | 'auto' | 'normal' | 'allowedTools';
39
40
  /** Session mode: which CLI backend a session runs */
40
41
  export type SessionMode = 'claude' | 'shell' | 'opencode' | 'codex' | 'gemini';
41
42
  export type RemoteCommandMode = Extract<SessionMode, 'shell' | 'claude' | 'opencode' | 'codex' | 'gemini'>;
@@ -76,6 +77,8 @@ export interface RemoteHost extends RemoteSshOptions {
76
77
  export interface RemoteCase {
77
78
  name: string;
78
79
  type: 'remote';
80
+ /** Owning username in multi-user mode; absent = legacy/unassigned (admin-only). */
81
+ owner?: string;
79
82
  hostId: string;
80
83
  remotePath: string;
81
84
  }
@@ -149,6 +152,8 @@ export interface DockerHost {
149
152
  export interface DockerCase {
150
153
  name: string;
151
154
  type: 'docker';
155
+ /** Owning username in multi-user mode; absent = legacy/unassigned (admin-only). */
156
+ owner?: string;
152
157
  hostId: string;
153
158
  /** Absolute HOST directory: the bind-mount source AND Session.workingDir (real host bytes). */
154
159
  hostWorkspacePath: string;
@@ -296,6 +301,8 @@ export interface SessionState {
296
301
  remote?: SessionRemote;
297
302
  /** Docker execution metadata, present when this session runs inside a container via local tmux + docker exec */
298
303
  docker?: SessionDocker;
304
+ /** Owning username in multi-user mode; undefined in single-user (ignored when the flag is off) */
305
+ owner?: string;
299
306
  /** ID of currently assigned task, null if none */
300
307
  currentTaskId: string | null;
301
308
  /** Timestamp when session was created */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * - SessionOutput — captured stdout/stderr/exitCode
10
10
  * - SessionStatus — 'idle' | 'busy' | 'stopped' | 'error'
11
11
  * - SessionMode — 'claude' | 'shell' | 'opencode' | 'codex' | 'gemini' (which CLI backend)
12
- * - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'normal' | 'allowedTools')
12
+ * - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'auto' | 'normal' | 'allowedTools')
13
13
  * - SessionColor — visual differentiation color
14
14
  * - OpenCodeConfig — OpenCode-specific settings (model, autoAllowTools, continueSession)
15
15
  * - CodexConfig — Codex (OpenAI CLI)-specific settings (model, resumeSessionId)
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA8LH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAK7F,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,OAAO,KAAK,KAAK,SAAS,IAAK,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AA6LD;;GAEG"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAmMH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAK7F,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,OAAO,KAAK,KAAK,SAAS,IAAK,aAAmC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AA+LD;;GAEG"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @fileoverview Multi-user mode types (opt-in `--multiuser`).
3
+ *
4
+ * Users live in `~/.codeman/users.json` (via `dataPath`, mode 0600). Each record
5
+ * carries a scrypt password hash with its own parameters so hashing cost can be
6
+ * raised later and old records rehashed on next login. `AuthUser` is the
7
+ * request-scoped identity decorated onto Fastify requests; in SINGLE-user mode a
8
+ * synthetic `{ username: 'admin', role: 'admin' }` is used so downstream code has
9
+ * one code path. See `src/user-store.ts` and `docs/multi-user-plan.md`.
10
+ */
11
+ export type UserRole = 'admin' | 'user';
12
+ /** Per-record scrypt parameters + salt/hash (all hex). */
13
+ export interface PasswordHash {
14
+ algo: 'scrypt';
15
+ N: number;
16
+ r: number;
17
+ p: number;
18
+ salt: string;
19
+ hash: string;
20
+ }
21
+ export interface UserRecord {
22
+ /** Canonical lowercase slug; also the user's folder name under USER_SPACES_DIR. */
23
+ username: string;
24
+ role: UserRole;
25
+ password: PasswordHash;
26
+ /** Disabled accounts fail auth closed but keep their space on disk. */
27
+ disabled?: boolean;
28
+ /** Set by an admin reset; gates all API access until the user changes it. */
29
+ mustChangePassword?: boolean;
30
+ /**
31
+ * Permission-mode grant (section 6.3). When false (the default for new users),
32
+ * the user's Claude sessions are forced to `--permission-mode auto`, shell mode
33
+ * and cron `launchCommand` are refused, and other CLIs' bypass flags are dropped.
34
+ */
35
+ canBypassPermissions?: boolean;
36
+ createdAt: number;
37
+ lastLoginAt?: number;
38
+ }
39
+ /** On-disk shape of `users.json`. */
40
+ export interface UsersFile {
41
+ version: 1;
42
+ users: UserRecord[];
43
+ }
44
+ /** Request-scoped identity (decorated as `req.authUser`). */
45
+ export interface AuthUser {
46
+ username: string;
47
+ role: UserRole;
48
+ }
49
+ /** Admin-facing projection of a user: never carries the password hash. */
50
+ export interface PublicUser {
51
+ username: string;
52
+ role: UserRole;
53
+ disabled: boolean;
54
+ mustChangePassword: boolean;
55
+ canBypassPermissions: boolean;
56
+ createdAt: number;
57
+ lastLoginAt?: number;
58
+ }
59
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAExC,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qCAAqC;AACrC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Multi-user mode types (opt-in `--multiuser`).
3
+ *
4
+ * Users live in `~/.codeman/users.json` (via `dataPath`, mode 0600). Each record
5
+ * carries a scrypt password hash with its own parameters so hashing cost can be
6
+ * raised later and old records rehashed on next login. `AuthUser` is the
7
+ * request-scoped identity decorated onto Fastify requests; in SINGLE-user mode a
8
+ * synthetic `{ username: 'admin', role: 'admin' }` is used so downstream code has
9
+ * one code path. See `src/user-store.ts` and `docs/multi-user-plan.md`.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @fileoverview Multi-user store: `~/.codeman/users.json` (via `dataPath`, 0600).
3
+ *
4
+ * Mirrors the storage-module pattern of `remote-hosts.ts` / `docker-hosts.ts`, but
5
+ * because it holds password hashes it writes atomically (tmp + rename) at mode
6
+ * 0600 and keeps only a SHORT in-process cache so the CLI (`codeman users …`) can
7
+ * edit the file while the server runs and have changes picked up within the TTL.
8
+ *
9
+ * Pure, IO-free helpers (`isValidUsername`, `hashPassword`, `verifyPasswordHash`,
10
+ * `needsRehash`, `resolveClaudeModeForUser`, the last-admin invariants) are split
11
+ * out so they are unit-testable without a server. Hashing is `scrypt` from
12
+ * `node:crypto` (no new deps), compared via `timingSafeEqual`; parameters are
13
+ * stored per record so cost can be raised later and old records rehashed on their
14
+ * next successful login.
15
+ *
16
+ * See `docs/multi-user-plan.md` sections 4.1, 5, 6.3.
17
+ */
18
+ import type { AuthUser, ClaudeMode, PasswordHash, PublicUser, UserRecord, UserRole } from './types.js';
19
+ /** Current hashing parameters. Stored per record; raise these to increase cost. */
20
+ export declare const DEFAULT_SCRYPT_PARAMS: {
21
+ readonly N: 16384;
22
+ readonly r: 8;
23
+ readonly p: 1;
24
+ };
25
+ /** Typed error whose `.code` maps to an API errorCode at the route layer. */
26
+ export declare class UserStoreError extends Error {
27
+ readonly code: 'USER_EXISTS' | 'USER_NOT_FOUND' | 'LAST_ADMIN' | 'INVALID_INPUT';
28
+ constructor(message: string, code: 'USER_EXISTS' | 'USER_NOT_FOUND' | 'LAST_ADMIN' | 'INVALID_INPUT');
29
+ }
30
+ export declare function normalizeUsername(name: string): string;
31
+ export declare function isValidUsername(name: string): boolean;
32
+ /** Hash a password with the given (or current) scrypt params + a fresh random salt. */
33
+ export declare function hashPassword(password: string, params?: {
34
+ N: number;
35
+ r: number;
36
+ p: number;
37
+ }): Promise<PasswordHash>;
38
+ /** Constant-time verify of a password against a stored hash record. Never throws. */
39
+ export declare function verifyPasswordHash(password: string, record: PasswordHash): Promise<boolean>;
40
+ /** True when a stored hash uses weaker params than current and should be rehashed. */
41
+ export declare function needsRehash(record: PasswordHash, params?: {
42
+ readonly N: 16384;
43
+ readonly r: 8;
44
+ readonly p: 1;
45
+ }): boolean;
46
+ /** URL-safe one-time password (16 chars) for admin create/reset flows. */
47
+ export declare function generateOneTimePassword(): string;
48
+ export declare function toPublicUser(u: UserRecord): PublicUser;
49
+ export declare function countEnabledAdmins(users: UserRecord[]): number;
50
+ /**
51
+ * Section 6.3: resolve the effective Claude permission mode for a user. Admins and
52
+ * granted users get the global mode as-is; a non-granted regular user whose mode
53
+ * would be `dangerously-skip-permissions` is silently downgraded to `auto` (all
54
+ * other modes are already <= auto and pass through). Pure.
55
+ */
56
+ export declare function resolveClaudeModeForUser(globalMode: ClaudeMode | undefined, grant: {
57
+ role: UserRole;
58
+ canBypassPermissions?: boolean;
59
+ }): ClaudeMode;
60
+ /**
61
+ * Section 6.3: whether a user may run arbitrary commands as the host account
62
+ * (shell-mode sessions, cron `launchCommand`, other CLIs' bypass flags). Same
63
+ * one-bit grant as bypass. Admins always may.
64
+ */
65
+ export declare function canRunPrivilegedCommands(grant: {
66
+ role: UserRole;
67
+ canBypassPermissions?: boolean;
68
+ }): boolean;
69
+ /** Drop the in-process cache (called after every write; exported for tests). */
70
+ export declare function invalidateUsersCache(): void;
71
+ export declare function readUsers(force?: boolean): Promise<UserRecord[]>;
72
+ export declare function hasUsers(): Promise<boolean>;
73
+ /**
74
+ * Verify a username/password against the store. Returns the record (plus whether it
75
+ * should be rehashed) on success, or null for wrong password / unknown / disabled
76
+ * user. Runs a dummy scrypt on the miss path so timing does not reveal which users
77
+ * exist. Never writes (the caller decides when to persist lastLogin / rehash).
78
+ */
79
+ export declare function verifyPassword(username: string, password: string): Promise<{
80
+ user: UserRecord;
81
+ needsRehash: boolean;
82
+ } | null>;
83
+ export declare function findUser(username: string): Promise<UserRecord | undefined>;
84
+ export interface CreateUserOptions {
85
+ username: string;
86
+ role: UserRole;
87
+ password: string;
88
+ mustChangePassword?: boolean;
89
+ canBypassPermissions?: boolean;
90
+ }
91
+ export declare function createUser(opts: CreateUserOptions): Promise<UserRecord>;
92
+ /** Set a user's password. `mustChangePassword` is left unchanged unless specified. */
93
+ export declare function setPassword(username: string, password: string, opts?: {
94
+ mustChangePassword?: boolean;
95
+ }): Promise<UserRecord>;
96
+ export interface UpdateUserPatch {
97
+ role?: UserRole;
98
+ disabled?: boolean;
99
+ canBypassPermissions?: boolean;
100
+ mustChangePassword?: boolean;
101
+ }
102
+ export declare function updateUser(username: string, patch: UpdateUserPatch): Promise<UserRecord>;
103
+ /**
104
+ * Record a successful login timestamp. Best-effort + throttled: skips the write if
105
+ * the last login was within the last minute (Basic clients re-send credentials on
106
+ * every request, so this fires often — the throttle keeps disk churn bounded).
107
+ */
108
+ export declare function touchLastLogin(username: string): Promise<void>;
109
+ export declare function deleteUser(username: string): Promise<void>;
110
+ /**
111
+ * First-boot bootstrap: in multi-user mode with no users yet, create the initial
112
+ * admin from `CODEMAN_USERNAME`/`CODEMAN_PASSWORD` if both are set. Returns a
113
+ * status the caller (server start / CLI) uses to decide whether to refuse boot.
114
+ */
115
+ export declare function bootstrapInitialAdmin(): Promise<{
116
+ status: 'created' | 'exists' | 'missing-env';
117
+ username?: string;
118
+ }>;
119
+ /**
120
+ * Delete a user's on-disk space (`<USER_SPACES_DIR>/<username>`) with the section 8
121
+ * guard rails: the top-level dir must not be a symlink, and its realpath must
122
+ * resolve strictly inside USER_SPACES_DIR (so a symlinked or `..`-escaping target
123
+ * can never be used to rm an arbitrary tree). No-op if the space does not exist.
124
+ */
125
+ export declare function deleteUserSpace(username: string): Promise<void>;
126
+ /** The synthetic admin used in single-user mode so downstream has one code path. */
127
+ export declare const SYNTHETIC_ADMIN: AuthUser;
128
+ /**
129
+ * Whether a username may run arbitrary commands (shell mode, cron launchCommand,
130
+ * other CLIs' bypass). Single-user or an unset owner: allowed. In multi-user a
131
+ * MISSING user (e.g. deleted) fails closed (non-privileged). Used at cron fire time.
132
+ */
133
+ export declare function canUsernameRunPrivilegedCommands(username: string | undefined): Promise<boolean>;
134
+ /**
135
+ * Resolve the effective Claude mode for a username by looking up the grant. In
136
+ * single-user mode (or for an unknown owner) the global mode passes through.
137
+ */
138
+ export declare function resolveClaudeModeForUsername(globalMode: ClaudeMode | undefined, username: string | undefined): Promise<ClaudeMode>;
139
+ //# sourceMappingURL=user-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-store.d.ts","sourceRoot":"","sources":["../src/user-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAgBlH,mFAAmF;AACnF,eAAO,MAAM,qBAAqB;;;;CAAoC,CAAC;AAKvE,6EAA6E;AAC7E,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,YAAY,GAAG,eAAe;gBADvF,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,YAAY,GAAG,eAAe;CAK1F;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,uFAAuF;AACvF,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAA0B,GAClE,OAAO,CAAC,YAAY,CAAC,CAWvB;AAED,qFAAqF;AACrF,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBjG;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM;;;;CAAwB,GAAG,OAAO,CAEzF;AAED,0EAA0E;AAC1E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAUtD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD,UAAU,CAIZ;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE3G;AAMD,gFAAgF;AAChF,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAsB,SAAS,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAuBpE;AAuCD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjD;AAUD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAS5D;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAKhF;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmC7E;AAED,sFAAsF;AACtF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,OAAO,CAAC,UAAU,CAAC,CAcrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA0B9F;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpE;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAchE;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAOD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE;AAED,oFAAoF;AACpF,eAAO,MAAM,eAAe,EAAE,QAA+C,CAAC;AAE9E;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAIrG;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,UAAU,CAAC,CAQrB"}