@taico/taico 0.0.5 → 0.2.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.
Files changed (509) hide show
  1. package/dist/agent-runs/agent-run.entity.d.ts +3 -0
  2. package/dist/agent-runs/agent-run.entity.js +14 -1
  3. package/dist/agent-runs/agent-run.entity.js.map +1 -1
  4. package/dist/agent-runs/agent-runs.controller.js +17 -2
  5. package/dist/agent-runs/agent-runs.controller.js.map +1 -1
  6. package/dist/agent-runs/agent-runs.service.js +14 -0
  7. package/dist/agent-runs/agent-runs.service.js.map +1 -1
  8. package/dist/agent-runs/dto/agent-run-response.dto.d.ts +1 -0
  9. package/dist/agent-runs/dto/agent-run-response.dto.js +12 -0
  10. package/dist/agent-runs/dto/agent-run-response.dto.js.map +1 -1
  11. package/dist/agent-runs/dto/create-agent-run.dto.d.ts +1 -0
  12. package/dist/agent-runs/dto/create-agent-run.dto.js +11 -0
  13. package/dist/agent-runs/dto/create-agent-run.dto.js.map +1 -1
  14. package/dist/agent-runs/dto/service/agent-runs.service.types.d.ts +3 -0
  15. package/dist/agent-runs/dto/update-agent-run.dto.d.ts +1 -0
  16. package/dist/agent-runs/dto/update-agent-run.dto.js +11 -0
  17. package/dist/agent-runs/dto/update-agent-run.dto.js.map +1 -1
  18. package/dist/agents/agent-execution-tokens.controller.d.ts +13 -0
  19. package/dist/agents/agent-execution-tokens.controller.js +87 -0
  20. package/dist/agents/agent-execution-tokens.controller.js.map +1 -0
  21. package/dist/agents/agents.module.js +6 -1
  22. package/dist/agents/agents.module.js.map +1 -1
  23. package/dist/agents/agents.scopes.d.ts +4 -0
  24. package/dist/agents/agents.scopes.js +4 -0
  25. package/dist/agents/agents.scopes.js.map +1 -1
  26. package/dist/agents/agents.service.d.ts +3 -0
  27. package/dist/agents/agents.service.js +15 -0
  28. package/dist/agents/agents.service.js.map +1 -1
  29. package/dist/agents/dto/agent-execution-token-response.dto.d.ts +7 -0
  30. package/dist/agents/dto/agent-execution-token-response.dto.js +58 -0
  31. package/dist/agents/dto/agent-execution-token-response.dto.js.map +1 -0
  32. package/dist/agents/dto/request-agent-execution-token.dto.d.ts +4 -0
  33. package/dist/agents/dto/request-agent-execution-token.dto.js +43 -0
  34. package/dist/agents/dto/request-agent-execution-token.dto.js.map +1 -0
  35. package/dist/app-init/agent/taico.agent.js +4 -1
  36. package/dist/app-init/agent/taico.agent.js.map +1 -1
  37. package/dist/app-init/app-init.module.js +2 -0
  38. package/dist/app-init/app-init.module.js.map +1 -1
  39. package/dist/app-init/app-init.runner.d.ts +5 -1
  40. package/dist/app-init/app-init.runner.js +57 -16
  41. package/dist/app-init/app-init.runner.js.map +1 -1
  42. package/dist/app-init/mcp/elen.mcp.d.ts +2 -0
  43. package/dist/app-init/mcp/elen.mcp.js +12 -0
  44. package/dist/app-init/mcp/elen.mcp.js.map +1 -0
  45. package/dist/app-init/mcp/internal-worker-auth.mcp.d.ts +3 -0
  46. package/dist/app-init/mcp/internal-worker-auth.mcp.js +15 -0
  47. package/dist/app-init/mcp/internal-worker-auth.mcp.js.map +1 -0
  48. package/dist/app.module.js +31 -3
  49. package/dist/app.module.js.map +1 -1
  50. package/dist/auth/core/constants/internal-auth-target.constant.d.ts +1 -0
  51. package/dist/auth/core/constants/internal-auth-target.constant.js +10 -0
  52. package/dist/auth/core/constants/internal-auth-target.constant.js.map +1 -0
  53. package/dist/auth/core/scopes/all-api.scopes.js +4 -0
  54. package/dist/auth/core/scopes/all-api.scopes.js.map +1 -1
  55. package/dist/auth/guards/constants/headers.constants.d.ts +1 -0
  56. package/dist/auth/guards/constants/headers.constants.js +2 -1
  57. package/dist/auth/guards/constants/headers.constants.js.map +1 -1
  58. package/dist/auth/guards/decorators/current-execution-id.decorator.d.ts +1 -0
  59. package/dist/auth/guards/decorators/current-execution-id.decorator.js +11 -0
  60. package/dist/auth/guards/decorators/current-execution-id.decorator.js.map +1 -0
  61. package/dist/authorization-server/dto/authorization-request.dto.d.ts +1 -1
  62. package/dist/authorization-server/dto/authorization-request.dto.js +2 -2
  63. package/dist/authorization-server/dto/authorization-request.dto.js.map +1 -1
  64. package/dist/authorization-server/dto/authorization-request.dto.spec.d.ts +1 -0
  65. package/dist/authorization-server/dto/authorization-request.dto.spec.js +30 -0
  66. package/dist/authorization-server/dto/authorization-request.dto.spec.js.map +1 -0
  67. package/dist/authorization-server/dto/onboarding-request.dto.d.ts +6 -0
  68. package/dist/authorization-server/dto/onboarding-request.dto.js +57 -0
  69. package/dist/authorization-server/dto/onboarding-request.dto.js.map +1 -0
  70. package/dist/authorization-server/dto/onboarding-status-response.dto.d.ts +3 -0
  71. package/dist/authorization-server/dto/onboarding-status-response.dto.js +25 -0
  72. package/dist/authorization-server/dto/onboarding-status-response.dto.js.map +1 -0
  73. package/dist/authorization-server/dto/register-client.dto.js +2 -2
  74. package/dist/authorization-server/dto/register-client.dto.js.map +1 -1
  75. package/dist/authorization-server/dto/user-response.dto.d.ts +1 -0
  76. package/dist/authorization-server/dto/user-response.dto.js +8 -0
  77. package/dist/authorization-server/dto/user-response.dto.js.map +1 -1
  78. package/dist/authorization-server/issued-access-token.service.d.ts +13 -0
  79. package/dist/authorization-server/issued-access-token.service.js +53 -27
  80. package/dist/authorization-server/issued-access-token.service.js.map +1 -1
  81. package/dist/authorization-server/web-auth.controller.d.ts +7 -0
  82. package/dist/authorization-server/web-auth.controller.js +129 -0
  83. package/dist/authorization-server/web-auth.controller.js.map +1 -1
  84. package/dist/chat-providers/chat-provider.entity.d.ts +14 -0
  85. package/dist/chat-providers/chat-provider.entity.js +73 -0
  86. package/dist/chat-providers/chat-provider.entity.js.map +1 -0
  87. package/dist/chat-providers/chat-providers.controller.d.ts +19 -0
  88. package/dist/chat-providers/chat-providers.controller.js +179 -0
  89. package/dist/chat-providers/chat-providers.controller.js.map +1 -0
  90. package/dist/chat-providers/chat-providers.module.d.ts +2 -0
  91. package/dist/chat-providers/chat-providers.module.js +32 -0
  92. package/dist/chat-providers/chat-providers.module.js.map +1 -0
  93. package/dist/chat-providers/chat-providers.scopes.d.ts +20 -0
  94. package/dist/chat-providers/chat-providers.scopes.js +23 -0
  95. package/dist/chat-providers/chat-providers.scopes.js.map +1 -0
  96. package/dist/chat-providers/chat-providers.service.d.ts +20 -0
  97. package/dist/chat-providers/chat-providers.service.js +189 -0
  98. package/dist/chat-providers/chat-providers.service.js.map +1 -0
  99. package/dist/chat-providers/dto/http/chat-provider-params.dto.d.ts +3 -0
  100. package/dist/chat-providers/dto/http/chat-provider-params.dto.js +27 -0
  101. package/dist/chat-providers/dto/http/chat-provider-params.dto.js.map +1 -0
  102. package/dist/chat-providers/dto/http/chat-provider-response.dto.d.ts +12 -0
  103. package/dist/chat-providers/dto/http/chat-provider-response.dto.js +93 -0
  104. package/dist/chat-providers/dto/http/chat-provider-response.dto.js.map +1 -0
  105. package/dist/chat-providers/dto/http/create-chat-provider.dto.d.ts +6 -0
  106. package/dist/chat-providers/dto/http/create-chat-provider.dto.js +51 -0
  107. package/dist/chat-providers/dto/http/create-chat-provider.dto.js.map +1 -0
  108. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.d.ts +3 -0
  109. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js +28 -0
  110. package/dist/chat-providers/dto/http/set-active-chat-provider.dto.js.map +1 -0
  111. package/dist/chat-providers/dto/http/update-chat-provider.dto.d.ts +5 -0
  112. package/dist/chat-providers/dto/http/update-chat-provider.dto.js +49 -0
  113. package/dist/chat-providers/dto/http/update-chat-provider.dto.js.map +1 -0
  114. package/dist/chat-providers/dto/service/chat-providers.service.types.d.ts +30 -0
  115. package/dist/chat-providers/dto/service/chat-providers.service.types.js +3 -0
  116. package/dist/chat-providers/dto/service/chat-providers.service.types.js.map +1 -0
  117. package/dist/chat-providers/enums/chat-provider-type.enum.d.ts +3 -0
  118. package/dist/chat-providers/enums/chat-provider-type.enum.js +8 -0
  119. package/dist/chat-providers/enums/chat-provider-type.enum.js.map +1 -0
  120. package/dist/chat-providers/enums/index.d.ts +1 -0
  121. package/dist/chat-providers/enums/index.js +18 -0
  122. package/dist/chat-providers/enums/index.js.map +1 -0
  123. package/dist/chat-providers/errors/chat-providers.errors.d.ts +25 -0
  124. package/dist/chat-providers/errors/chat-providers.errors.js +48 -0
  125. package/dist/chat-providers/errors/chat-providers.errors.js.map +1 -0
  126. package/dist/config/env.config.d.ts +4 -1
  127. package/dist/config/env.config.js +17 -13
  128. package/dist/config/env.config.js.map +1 -1
  129. package/dist/context/context.controller.d.ts +3 -0
  130. package/dist/context/context.controller.js +26 -0
  131. package/dist/context/context.controller.js.map +1 -1
  132. package/dist/context/context.gateway.d.ts +15 -3
  133. package/dist/context/context.gateway.js +45 -9
  134. package/dist/context/context.gateway.js.map +1 -1
  135. package/dist/context/context.mcp.gateway.js +36 -0
  136. package/dist/context/context.mcp.gateway.js.map +1 -1
  137. package/dist/context/context.service.d.ts +5 -2
  138. package/dist/context/context.service.js +39 -2
  139. package/dist/context/context.service.js.map +1 -1
  140. package/dist/context/dto/block-search-result.dto.d.ts +5 -0
  141. package/dist/context/dto/block-search-result.dto.js +43 -0
  142. package/dist/context/dto/block-search-result.dto.js.map +1 -0
  143. package/dist/context/dto/search-blocks-query.dto.d.ts +5 -0
  144. package/dist/context/dto/search-blocks-query.dto.js +60 -0
  145. package/dist/context/dto/search-blocks-query.dto.js.map +1 -0
  146. package/dist/context/dto/service/context.service.types.d.ts +10 -0
  147. package/dist/discovery/discovery.service.js +2 -0
  148. package/dist/discovery/discovery.service.js.map +1 -1
  149. package/dist/errors/http/error-catalog.js +96 -0
  150. package/dist/errors/http/error-catalog.js.map +1 -1
  151. package/dist/executions/dto/http/execution-list-response.dto.d.ts +8 -0
  152. package/dist/executions/dto/http/execution-list-response.dto.js +58 -0
  153. package/dist/executions/dto/http/execution-list-response.dto.js.map +1 -0
  154. package/dist/executions/dto/http/execution-response.dto.d.ts +24 -0
  155. package/dist/executions/dto/http/execution-response.dto.js +225 -0
  156. package/dist/executions/dto/http/execution-response.dto.js.map +1 -0
  157. package/dist/executions/dto/http/list-executions-query.dto.d.ts +8 -0
  158. package/dist/executions/dto/http/list-executions-query.dto.js +79 -0
  159. package/dist/executions/dto/http/list-executions-query.dto.js.map +1 -0
  160. package/dist/executions/dto/service/execution-claim.service.types.d.ts +27 -0
  161. package/dist/executions/dto/service/execution-claim.service.types.js +3 -0
  162. package/dist/executions/dto/service/execution-claim.service.types.js.map +1 -0
  163. package/dist/executions/dto/service/executions.service.types.d.ts +35 -0
  164. package/dist/executions/dto/service/executions.service.types.js +3 -0
  165. package/dist/executions/dto/service/executions.service.types.js.map +1 -0
  166. package/dist/executions/enums/index.d.ts +2 -0
  167. package/dist/executions/enums/index.js +8 -0
  168. package/dist/executions/enums/index.js.map +1 -0
  169. package/dist/executions/enums/task-execution-status.enum.d.ts +10 -0
  170. package/dist/executions/enums/task-execution-status.enum.js +15 -0
  171. package/dist/executions/enums/task-execution-status.enum.js.map +1 -0
  172. package/dist/executions/enums/worker-session-status.enum.d.ts +6 -0
  173. package/dist/executions/enums/worker-session-status.enum.js +11 -0
  174. package/dist/executions/enums/worker-session-status.enum.js.map +1 -0
  175. package/dist/executions/errors/executions.errors.d.ts +21 -0
  176. package/dist/executions/errors/executions.errors.js +41 -0
  177. package/dist/executions/errors/executions.errors.js.map +1 -0
  178. package/dist/executions/events/executions.events.d.ts +25 -0
  179. package/dist/executions/events/executions.events.js +39 -0
  180. package/dist/executions/events/executions.events.js.map +1 -0
  181. package/dist/executions/execution-claim.service.d.ts +17 -0
  182. package/dist/executions/execution-claim.service.js +368 -0
  183. package/dist/executions/execution-claim.service.js.map +1 -0
  184. package/dist/executions/execution-context-resolver.service.d.ts +21 -0
  185. package/dist/executions/execution-context-resolver.service.js +119 -0
  186. package/dist/executions/execution-context-resolver.service.js.map +1 -0
  187. package/dist/executions/execution-reconciler.service.d.ts +24 -0
  188. package/dist/executions/execution-reconciler.service.js +345 -0
  189. package/dist/executions/execution-reconciler.service.js.map +1 -0
  190. package/dist/executions/executions.controller.d.ts +8 -0
  191. package/dist/executions/executions.controller.js +70 -0
  192. package/dist/executions/executions.controller.js.map +1 -0
  193. package/dist/executions/executions.gateway.d.ts +21 -0
  194. package/dist/executions/executions.gateway.js +167 -0
  195. package/dist/executions/executions.gateway.js.map +1 -0
  196. package/dist/executions/executions.module.d.ts +2 -0
  197. package/dist/executions/executions.module.js +64 -0
  198. package/dist/executions/executions.module.js.map +1 -0
  199. package/dist/executions/executions.service.d.ts +15 -0
  200. package/dist/executions/executions.service.js +119 -0
  201. package/dist/executions/executions.service.js.map +1 -0
  202. package/dist/executions/task-execution.entity.d.ts +25 -0
  203. package/dist/executions/task-execution.entity.js +130 -0
  204. package/dist/executions/task-execution.entity.js.map +1 -0
  205. package/dist/executions/worker-session.entity.d.ts +19 -0
  206. package/dist/executions/worker-session.entity.js +103 -0
  207. package/dist/executions/worker-session.entity.js.map +1 -0
  208. package/dist/executions/worker-session.service.d.ts +24 -0
  209. package/dist/executions/worker-session.service.js +115 -0
  210. package/dist/executions/worker-session.service.js.map +1 -0
  211. package/dist/executions/workers.gateway.d.ts +25 -0
  212. package/dist/executions/workers.gateway.js +355 -0
  213. package/dist/executions/workers.gateway.js.map +1 -0
  214. package/dist/executions/workers.scopes.d.ts +8 -0
  215. package/dist/executions/workers.scopes.js +11 -0
  216. package/dist/executions/workers.scopes.js.map +1 -0
  217. package/dist/executions-v2/active/active-execution-context-resolver.service.d.ts +18 -0
  218. package/dist/executions-v2/active/active-execution-context-resolver.service.js +78 -0
  219. package/dist/executions-v2/active/active-execution-context-resolver.service.js.map +1 -0
  220. package/dist/executions-v2/active/active-task-execution.controller.d.ts +11 -0
  221. package/dist/executions-v2/active/active-task-execution.controller.js +93 -0
  222. package/dist/executions-v2/active/active-task-execution.controller.js.map +1 -0
  223. package/dist/executions-v2/active/active-task-execution.entity.d.ts +24 -0
  224. package/dist/executions-v2/active/active-task-execution.entity.js +108 -0
  225. package/dist/executions-v2/active/active-task-execution.entity.js.map +1 -0
  226. package/dist/executions-v2/active/active-task-execution.service.d.ts +24 -0
  227. package/dist/executions-v2/active/active-task-execution.service.js +127 -0
  228. package/dist/executions-v2/active/active-task-execution.service.js.map +1 -0
  229. package/dist/executions-v2/active/dto/http/active-task-execution-response.dto.d.ts +22 -0
  230. package/dist/executions-v2/active/dto/http/active-task-execution-response.dto.js +152 -0
  231. package/dist/executions-v2/active/dto/http/active-task-execution-response.dto.js.map +1 -0
  232. package/dist/executions-v2/active/dto/http/stop-active-task-execution.dto.d.ts +7 -0
  233. package/dist/executions-v2/active/dto/http/stop-active-task-execution.dto.js +58 -0
  234. package/dist/executions-v2/active/dto/http/stop-active-task-execution.dto.js.map +1 -0
  235. package/dist/executions-v2/errors/executions-v2.errors.d.ts +13 -0
  236. package/dist/executions-v2/errors/executions-v2.errors.js +31 -0
  237. package/dist/executions-v2/errors/executions-v2.errors.js.map +1 -0
  238. package/dist/executions-v2/events/execution-activity.events.d.ts +20 -0
  239. package/dist/executions-v2/events/execution-activity.events.js +15 -0
  240. package/dist/executions-v2/events/execution-activity.events.js.map +1 -0
  241. package/dist/executions-v2/execution-activity.service.d.ts +20 -0
  242. package/dist/executions-v2/execution-activity.service.js +68 -0
  243. package/dist/executions-v2/execution-activity.service.js.map +1 -0
  244. package/dist/executions-v2/executions-v2-worker.gateway.d.ts +29 -0
  245. package/dist/executions-v2/executions-v2-worker.gateway.js +149 -0
  246. package/dist/executions-v2/executions-v2-worker.gateway.js.map +1 -0
  247. package/dist/executions-v2/executions-v2.module.d.ts +2 -0
  248. package/dist/executions-v2/executions-v2.module.js +78 -0
  249. package/dist/executions-v2/executions-v2.module.js.map +1 -0
  250. package/dist/executions-v2/history/dto/http/task-execution-history-response.dto.d.ts +18 -0
  251. package/dist/executions-v2/history/dto/http/task-execution-history-response.dto.js +129 -0
  252. package/dist/executions-v2/history/dto/http/task-execution-history-response.dto.js.map +1 -0
  253. package/dist/executions-v2/history/task-execution-history-error-code.enum.d.ts +4 -0
  254. package/dist/executions-v2/history/task-execution-history-error-code.enum.js +9 -0
  255. package/dist/executions-v2/history/task-execution-history-error-code.enum.js.map +1 -0
  256. package/dist/executions-v2/history/task-execution-history-status.enum.d.ts +6 -0
  257. package/dist/executions-v2/history/task-execution-history-status.enum.js +11 -0
  258. package/dist/executions-v2/history/task-execution-history-status.enum.js.map +1 -0
  259. package/dist/executions-v2/history/task-execution-history.controller.d.ts +7 -0
  260. package/dist/executions-v2/history/task-execution-history.controller.js +51 -0
  261. package/dist/executions-v2/history/task-execution-history.controller.js.map +1 -0
  262. package/dist/executions-v2/history/task-execution-history.entity.d.ts +21 -0
  263. package/dist/executions-v2/history/task-execution-history.entity.js +113 -0
  264. package/dist/executions-v2/history/task-execution-history.entity.js.map +1 -0
  265. package/dist/executions-v2/history/task-execution-history.service.d.ts +7 -0
  266. package/dist/executions-v2/history/task-execution-history.service.js +38 -0
  267. package/dist/executions-v2/history/task-execution-history.service.js.map +1 -0
  268. package/dist/executions-v2/queue/dto/http/task-execution-queue-entry-response.dto.d.ts +8 -0
  269. package/dist/executions-v2/queue/dto/http/task-execution-queue-entry-response.dto.js +52 -0
  270. package/dist/executions-v2/queue/dto/http/task-execution-queue-entry-response.dto.js.map +1 -0
  271. package/dist/executions-v2/queue/task-execution-queue.controller.d.ts +12 -0
  272. package/dist/executions-v2/queue/task-execution-queue.controller.js +100 -0
  273. package/dist/executions-v2/queue/task-execution-queue.controller.js.map +1 -0
  274. package/dist/executions-v2/queue/task-execution-queue.entity.d.ts +9 -0
  275. package/dist/executions-v2/queue/task-execution-queue.entity.js +52 -0
  276. package/dist/executions-v2/queue/task-execution-queue.entity.js.map +1 -0
  277. package/dist/executions-v2/queue/task-execution-queue.service.d.ts +7 -0
  278. package/dist/executions-v2/queue/task-execution-queue.service.js +38 -0
  279. package/dist/executions-v2/queue/task-execution-queue.service.js.map +1 -0
  280. package/dist/executions-v2/readiness/readiness-candidate.repository.d.ts +11 -0
  281. package/dist/executions-v2/readiness/readiness-candidate.repository.js +65 -0
  282. package/dist/executions-v2/readiness/readiness-candidate.repository.js.map +1 -0
  283. package/dist/executions-v2/readiness/task-eligibility-event-source.service.d.ts +13 -0
  284. package/dist/executions-v2/readiness/task-eligibility-event-source.service.js +83 -0
  285. package/dist/executions-v2/readiness/task-eligibility-event-source.service.js.map +1 -0
  286. package/dist/executions-v2/readiness/task-eligibility-scheduler.service.d.ts +7 -0
  287. package/dist/executions-v2/readiness/task-eligibility-scheduler.service.js +41 -0
  288. package/dist/executions-v2/readiness/task-eligibility-scheduler.service.js.map +1 -0
  289. package/dist/executions-v2/readiness/task-execution-queue-populator.service.d.ts +19 -0
  290. package/dist/executions-v2/readiness/task-execution-queue-populator.service.js +138 -0
  291. package/dist/executions-v2/readiness/task-execution-queue-populator.service.js.map +1 -0
  292. package/dist/executions-v2/staleness/stale-active-task-execution-detector.service.d.ts +13 -0
  293. package/dist/executions-v2/staleness/stale-active-task-execution-detector.service.js +54 -0
  294. package/dist/executions-v2/staleness/stale-active-task-execution-detector.service.js.map +1 -0
  295. package/dist/executions-v2/staleness/stale-active-task-execution-pruner.service.d.ts +9 -0
  296. package/dist/executions-v2/staleness/stale-active-task-execution-pruner.service.js +116 -0
  297. package/dist/executions-v2/staleness/stale-active-task-execution-pruner.service.js.map +1 -0
  298. package/dist/executions-v2/staleness/stale-active-task-execution-scheduler.service.d.ts +9 -0
  299. package/dist/executions-v2/staleness/stale-active-task-execution-scheduler.service.js +62 -0
  300. package/dist/executions-v2/staleness/stale-active-task-execution-scheduler.service.js.map +1 -0
  301. package/dist/executions-v2/task-activity-projection.service.d.ts +7 -0
  302. package/dist/executions-v2/task-activity-projection.service.js +43 -0
  303. package/dist/executions-v2/task-activity-projection.service.js.map +1 -0
  304. package/dist/global-search/dto/global-search-query.dto.d.ts +5 -0
  305. package/dist/global-search/dto/global-search-query.dto.js +60 -0
  306. package/dist/global-search/dto/global-search-query.dto.js.map +1 -0
  307. package/dist/global-search/dto/global-search-result.dto.d.ts +15 -0
  308. package/dist/global-search/dto/global-search-result.dto.js +69 -0
  309. package/dist/global-search/dto/global-search-result.dto.js.map +1 -0
  310. package/dist/global-search/global-search.controller.d.ts +8 -0
  311. package/dist/global-search/global-search.controller.js +63 -0
  312. package/dist/global-search/global-search.controller.js.map +1 -0
  313. package/dist/global-search/global-search.module.d.ts +2 -0
  314. package/dist/global-search/global-search.module.js +37 -0
  315. package/dist/global-search/global-search.module.js.map +1 -0
  316. package/dist/global-search/global-search.service.d.ts +28 -0
  317. package/dist/global-search/global-search.service.js +137 -0
  318. package/dist/global-search/global-search.service.js.map +1 -0
  319. package/dist/identity-provider/errors/identity-provider.errors.d.ts +38 -0
  320. package/dist/identity-provider/errors/identity-provider.errors.js +70 -0
  321. package/dist/identity-provider/errors/identity-provider.errors.js.map +1 -0
  322. package/dist/identity-provider/identity-provider.service.d.ts +3 -0
  323. package/dist/identity-provider/identity-provider.service.js +71 -4
  324. package/dist/identity-provider/identity-provider.service.js.map +1 -1
  325. package/dist/identity-provider/user.entity.d.ts +1 -0
  326. package/dist/identity-provider/user.entity.js +5 -0
  327. package/dist/identity-provider/user.entity.js.map +1 -1
  328. package/dist/llm/llm.module.js +2 -0
  329. package/dist/llm/llm.module.js.map +1 -1
  330. package/dist/llm/openai-responses.service.d.ts +3 -0
  331. package/dist/llm/openai-responses.service.js +20 -5
  332. package/dist/llm/openai-responses.service.js.map +1 -1
  333. package/dist/main.js +73 -30
  334. package/dist/main.js.map +1 -1
  335. package/dist/mcp-registry/dto/service/mcp-registry.service.types.d.ts +10 -0
  336. package/dist/mcp-registry/entities/mcp-server.entity.js +1 -1
  337. package/dist/mcp-registry/entities/mcp-server.entity.js.map +1 -1
  338. package/dist/mcp-registry/mcp-registry.module.js +2 -0
  339. package/dist/mcp-registry/mcp-registry.module.js.map +1 -1
  340. package/dist/mcp-registry/mcp-registry.service.d.ts +6 -2
  341. package/dist/mcp-registry/mcp-registry.service.js +68 -20
  342. package/dist/mcp-registry/mcp-registry.service.js.map +1 -1
  343. package/dist/meta/dto/create-project.dto.js +3 -2
  344. package/dist/meta/dto/create-project.dto.js.map +1 -1
  345. package/dist/meta/dto/patch-project.dto.js +3 -2
  346. package/dist/meta/dto/patch-project.dto.js.map +1 -1
  347. package/dist/meta/meta.module.js +2 -1
  348. package/dist/meta/meta.module.js.map +1 -1
  349. package/dist/meta/meta.service.d.ts +5 -1
  350. package/dist/meta/meta.service.js +63 -6
  351. package/dist/meta/meta.service.js.map +1 -1
  352. package/dist/meta/tag-usage.entity.d.ts +10 -0
  353. package/dist/meta/tag-usage.entity.js +58 -0
  354. package/dist/meta/tag-usage.entity.js.map +1 -0
  355. package/dist/meta/validators/is-git-url.validator.d.ts +6 -0
  356. package/dist/meta/validators/is-git-url.validator.js +47 -0
  357. package/dist/meta/validators/is-git-url.validator.js.map +1 -0
  358. package/dist/meta/validators/is-git-url.validator.spec.d.ts +1 -0
  359. package/dist/meta/validators/is-git-url.validator.spec.js +73 -0
  360. package/dist/meta/validators/is-git-url.validator.spec.js.map +1 -0
  361. package/dist/migrations/1740100000000-AddChatProvidersTable.d.ts +5 -0
  362. package/dist/migrations/1740100000000-AddChatProvidersTable.js +32 -0
  363. package/dist/migrations/1740100000000-AddChatProvidersTable.js.map +1 -0
  364. package/dist/migrations/1741100000000-AddTagUsageTable.d.ts +6 -0
  365. package/dist/migrations/1741100000000-AddTagUsageTable.js +67 -0
  366. package/dist/migrations/1741100000000-AddTagUsageTable.js.map +1 -0
  367. package/dist/migrations/1741200000000-McpServerProvidedIdPartialUniqueIndex.d.ts +5 -0
  368. package/dist/migrations/1741200000000-McpServerProvidedIdPartialUniqueIndex.js +69 -0
  369. package/dist/migrations/1741200000000-McpServerProvidedIdPartialUniqueIndex.js.map +1 -0
  370. package/dist/migrations/1741300000000-AddHasSeenWalkthroughToUsers.d.ts +6 -0
  371. package/dist/migrations/1741300000000-AddHasSeenWalkthroughToUsers.js +43 -0
  372. package/dist/migrations/1741300000000-AddHasSeenWalkthroughToUsers.js.map +1 -0
  373. package/dist/migrations/1741400000000-EnforceSingleThreadPerParentTask.d.ts +5 -0
  374. package/dist/migrations/1741400000000-EnforceSingleThreadPerParentTask.js +76 -0
  375. package/dist/migrations/1741400000000-EnforceSingleThreadPerParentTask.js.map +1 -0
  376. package/dist/migrations/1741500000000-AddExecutionPersistenceTables.d.ts +5 -0
  377. package/dist/migrations/1741500000000-AddExecutionPersistenceTables.js +84 -0
  378. package/dist/migrations/1741500000000-AddExecutionPersistenceTables.js.map +1 -0
  379. package/dist/migrations/1741600000000-AddTaskExecutionIdToAgentRuns.d.ts +5 -0
  380. package/dist/migrations/1741600000000-AddTaskExecutionIdToAgentRuns.js +66 -0
  381. package/dist/migrations/1741600000000-AddTaskExecutionIdToAgentRuns.js.map +1 -0
  382. package/dist/migrations/1741700000000-AddExecutionsV2Tables.d.ts +5 -0
  383. package/dist/migrations/1741700000000-AddExecutionsV2Tables.js +103 -0
  384. package/dist/migrations/1741700000000-AddExecutionsV2Tables.js.map +1 -0
  385. package/dist/migrations/1741800000000-AddLastHeartbeatAtToActiveExecutionsV2.d.ts +5 -0
  386. package/dist/migrations/1741800000000-AddLastHeartbeatAtToActiveExecutionsV2.js +19 -0
  387. package/dist/migrations/1741800000000-AddLastHeartbeatAtToActiveExecutionsV2.js.map +1 -0
  388. package/dist/migrations/1741900000000-AddErrorMessageToTaskExecutionHistoryV2.d.ts +6 -0
  389. package/dist/migrations/1741900000000-AddErrorMessageToTaskExecutionHistoryV2.js +20 -0
  390. package/dist/migrations/1741900000000-AddErrorMessageToTaskExecutionHistoryV2.js.map +1 -0
  391. package/dist/public/assets/index-BYBolBql.css +1 -0
  392. package/dist/public/assets/index-Cr1iblrK.js +73 -0
  393. package/dist/public/beta/assets/index-DCkmROA6.js +85 -0
  394. package/dist/public/beta/index.html +1 -1
  395. package/dist/public/index.html +2 -2
  396. package/dist/secrets/errors/secrets.errors.js +1 -1
  397. package/dist/secrets/errors/secrets.errors.js.map +1 -1
  398. package/dist/secrets/secrets-encryption.service.d.ts +1 -0
  399. package/dist/secrets/secrets-encryption.service.js +21 -6
  400. package/dist/secrets/secrets-encryption.service.js.map +1 -1
  401. package/dist/tasks/dto/service/tasks.service.types.d.ts +2 -1
  402. package/dist/tasks/dto/task-response.dto.js +1 -0
  403. package/dist/tasks/dto/task-response.dto.js.map +1 -1
  404. package/dist/tasks/events/tasks.events.d.ts +11 -0
  405. package/dist/tasks/events/tasks.events.js +8 -1
  406. package/dist/tasks/events/tasks.events.js.map +1 -1
  407. package/dist/tasks/tasks.controller.d.ts +2 -2
  408. package/dist/tasks/tasks.controller.js +33 -17
  409. package/dist/tasks/tasks.controller.js.map +1 -1
  410. package/dist/tasks/tasks.gateway.d.ts +4 -3
  411. package/dist/tasks/tasks.gateway.js +17 -0
  412. package/dist/tasks/tasks.gateway.js.map +1 -1
  413. package/dist/tasks/tasks.mcp.gateway.d.ts +1 -1
  414. package/dist/tasks/tasks.mcp.gateway.js +43 -4
  415. package/dist/tasks/tasks.mcp.gateway.js.map +1 -1
  416. package/dist/tasks/tasks.module.js +2 -0
  417. package/dist/tasks/tasks.module.js.map +1 -1
  418. package/dist/tasks/tasks.service.create-task-in-thread.spec.d.ts +1 -0
  419. package/dist/tasks/tasks.service.create-task-in-thread.spec.js +46 -0
  420. package/dist/tasks/tasks.service.create-task-in-thread.spec.js.map +1 -0
  421. package/dist/tasks/tasks.service.d.ts +3 -1
  422. package/dist/tasks/tasks.service.js +34 -20
  423. package/dist/tasks/tasks.service.js.map +1 -1
  424. package/dist/threads/chat.service.d.ts +18 -3
  425. package/dist/threads/chat.service.js +372 -54
  426. package/dist/threads/chat.service.js.map +1 -1
  427. package/dist/threads/dto/service/threads.service.types.d.ts +1 -0
  428. package/dist/threads/dto/thread-list-item-response.dto.d.ts +1 -0
  429. package/dist/threads/dto/thread-list-item-response.dto.js +8 -0
  430. package/dist/threads/dto/thread-list-item-response.dto.js.map +1 -1
  431. package/dist/threads/errors/threads.errors.d.ts +4 -1
  432. package/dist/threads/errors/threads.errors.js +8 -1
  433. package/dist/threads/errors/threads.errors.js.map +1 -1
  434. package/dist/threads/events/threads.events.d.ts +9 -0
  435. package/dist/threads/events/threads.events.js +8 -1
  436. package/dist/threads/events/threads.events.js.map +1 -1
  437. package/dist/threads/openai-mcp-server-factory.service.d.ts +5 -2
  438. package/dist/threads/openai-mcp-server-factory.service.js.map +1 -1
  439. package/dist/threads/thread-state-reconciler.service.js +1 -18
  440. package/dist/threads/thread-state-reconciler.service.js.map +1 -1
  441. package/dist/threads/threads.controller.d.ts +1 -0
  442. package/dist/threads/threads.controller.js +16 -0
  443. package/dist/threads/threads.controller.js.map +1 -1
  444. package/dist/threads/threads.gateway.d.ts +3 -1
  445. package/dist/threads/threads.gateway.js +52 -0
  446. package/dist/threads/threads.gateway.js.map +1 -1
  447. package/dist/threads/threads.module.js +2 -0
  448. package/dist/threads/threads.module.js.map +1 -1
  449. package/dist/threads/threads.service.d.ts +13 -0
  450. package/dist/threads/threads.service.js +143 -14
  451. package/dist/threads/threads.service.js.map +1 -1
  452. package/dist/threads/threads.service.spec.js +41 -27
  453. package/dist/threads/threads.service.spec.js.map +1 -1
  454. package/dist/tsconfig.tsbuildinfo +1 -1
  455. package/dist/worker/auth/callback-server.d.ts +6 -0
  456. package/dist/worker/auth/callback-server.js +50 -0
  457. package/dist/worker/auth/callback-server.js.map +1 -0
  458. package/dist/worker/auth/credentials-store.d.ts +4 -0
  459. package/dist/worker/auth/credentials-store.js +23 -0
  460. package/dist/worker/auth/credentials-store.js.map +1 -0
  461. package/dist/worker/auth/oauth-client.d.ts +4 -0
  462. package/dist/worker/auth/oauth-client.js +116 -0
  463. package/dist/worker/auth/oauth-client.js.map +1 -0
  464. package/dist/worker/auth/worker-auth-client.d.ts +9 -0
  465. package/dist/worker/auth/worker-auth-client.js +35 -0
  466. package/dist/worker/auth/worker-auth-client.js.map +1 -0
  467. package/dist/worker/auth/worker-auth.types.d.ts +30 -0
  468. package/dist/worker/auth/worker-auth.types.js +3 -0
  469. package/dist/worker/auth/worker-auth.types.js.map +1 -0
  470. package/dist/worker/execution-orchestrator.d.ts +25 -0
  471. package/dist/worker/execution-orchestrator.js +186 -0
  472. package/dist/worker/execution-orchestrator.js.map +1 -0
  473. package/dist/worker/formatters/claude-message-formatter.d.ts +13 -0
  474. package/dist/worker/formatters/claude-message-formatter.js +90 -0
  475. package/dist/worker/formatters/claude-message-formatter.js.map +1 -0
  476. package/dist/worker/formatters/opencode-message-formatter.d.ts +6 -0
  477. package/dist/worker/formatters/opencode-message-formatter.js +51 -0
  478. package/dist/worker/formatters/opencode-message-formatter.js.map +1 -0
  479. package/dist/worker/helpers/ensure-repo.d.ts +1 -0
  480. package/dist/worker/helpers/ensure-repo.js +37 -0
  481. package/dist/worker/helpers/ensure-repo.js.map +1 -0
  482. package/dist/worker/helpers/prepare-workspace.d.ts +1 -0
  483. package/dist/worker/helpers/prepare-workspace.js +24 -0
  484. package/dist/worker/helpers/prepare-workspace.js.map +1 -0
  485. package/dist/worker/helpers/session-store.d.ts +2 -0
  486. package/dist/worker/helpers/session-store.js +47 -0
  487. package/dist/worker/helpers/session-store.js.map +1 -0
  488. package/dist/worker/runners/agent-runner.types.d.ts +28 -0
  489. package/dist/worker/runners/agent-runner.types.js +3 -0
  490. package/dist/worker/runners/agent-runner.types.js.map +1 -0
  491. package/dist/worker/runners/base-agent-runner.d.ts +10 -0
  492. package/dist/worker/runners/base-agent-runner.js +41 -0
  493. package/dist/worker/runners/base-agent-runner.js.map +1 -0
  494. package/dist/worker/runners/claude-agent-runner.d.ts +9 -0
  495. package/dist/worker/runners/claude-agent-runner.js +79 -0
  496. package/dist/worker/runners/claude-agent-runner.js.map +1 -0
  497. package/dist/worker/runners/opencode-agent-runner.d.ts +18 -0
  498. package/dist/worker/runners/opencode-agent-runner.js +170 -0
  499. package/dist/worker/runners/opencode-agent-runner.js.map +1 -0
  500. package/dist/worker/worker-gateway-client.d.ts +45 -0
  501. package/dist/worker/worker-gateway-client.js +332 -0
  502. package/dist/worker/worker-gateway-client.js.map +1 -0
  503. package/dist/worker/worker-mode.d.ts +6 -0
  504. package/dist/worker/worker-mode.js +40 -0
  505. package/dist/worker/worker-mode.js.map +1 -0
  506. package/package.json +19 -12
  507. package/dist/public/assets/index-BpWAKFIY.css +0 -1
  508. package/dist/public/assets/index-gfAmuo9i.js +0 -11
  509. package/dist/public/beta/assets/index-B-4bxmRw.js +0 -85
@@ -92,12 +92,12 @@ __decorate([
92
92
  __metadata("design:type", String)
93
93
  ], AuthorizationRequestDto.prototype, "state", void 0);
94
94
  __decorate([
95
- (0, swagger_1.ApiProperty)({
95
+ (0, swagger_1.ApiPropertyOptional)({
96
96
  description: 'Resource server URL that the client wants to access',
97
97
  example: 'http://localhost:4001/',
98
98
  }),
99
+ (0, class_validator_1.IsOptional)(),
99
100
  (0, class_validator_1.IsString)(),
100
- (0, class_validator_1.IsNotEmpty)(),
101
101
  (0, class_validator_1.IsUrl)({ require_tld: false, require_protocol: true }),
102
102
  __metadata("design:type", String)
103
103
  ], AuthorizationRequestDto.prototype, "resource", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"authorization-request.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/authorization-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AACzB,6CAAmE;AACnE,oCAAwC;AAMxC,MAAa,uBAAuB;IAQlC,aAAa,CAAgB;IAQ7B,KAAK,CAAU;IAQf,SAAS,CAAU;IAUnB,cAAc,CAAU;IASxB,qBAAqB,CAAU;IAS/B,YAAY,CAAU;IAQtB,KAAK,CAAU;IASf,QAAQ,CAAU;CACnB;AAtED,0DAsEC;AA9DC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EACT,sEAAsE;QACxE,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,oBAAY;KACnB,CAAC;IACD,IAAA,wBAAM,EAAC,oBAAY,CAAC;;8DACQ;AAQ7B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,wBAAwB;KAClC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sDACI;AAQf;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,kCAAkC;KAC5C,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACM;AAUnB;IARC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,6CAA6C;KACvD,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,EAAE,EAAE,GAAG,CAAC;IACf,IAAA,yBAAO,EAAC,kBAAkB,CAAC;;+DACJ;AASxB;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+CAA+C;QAC5D,OAAO,EAAE,MAAM;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,EAAC,QAAQ,CAAC;;sEACa;AAS/B;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4DAA4D;QACzE,OAAO,EAAE,4CAA4C;KACtD,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,EAAC,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;;6DAChC;AAQtB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,kEAAkE;KAC5E,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACE;AASf;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qDAAqD;QAClE,OAAO,EAAE,wBAAwB;KAClC,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,EAAC,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;;yDACpC"}
1
+ {"version":3,"file":"authorization-request.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/authorization-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AACzB,6CAAmE;AACnE,oCAAwC;AAMxC,MAAa,uBAAuB;IAQlC,aAAa,CAAgB;IAQ7B,KAAK,CAAU;IAQf,SAAS,CAAU;IAUnB,cAAc,CAAU;IASxB,qBAAqB,CAAU;IAS/B,YAAY,CAAU;IAQtB,KAAK,CAAU;IASf,QAAQ,CAAU;CACnB;AAtED,0DAsEC;AA9DC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EACT,sEAAsE;QACxE,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,oBAAY;KACnB,CAAC;IACD,IAAA,wBAAM,EAAC,oBAAY,CAAC;;8DACQ;AAQ7B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,wBAAwB;KAClC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sDACI;AAQf;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,kCAAkC;KAC5C,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACM;AAUnB;IARC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,6CAA6C;KACvD,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,EAAE,EAAE,GAAG,CAAC;IACf,IAAA,yBAAO,EAAC,kBAAkB,CAAC;;+DACJ;AASxB;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+CAA+C;QAC5D,OAAO,EAAE,MAAM;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,EAAC,QAAQ,CAAC;;sEACa;AAS/B;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4DAA4D;QACzE,OAAO,EAAE,4CAA4C;KACtD,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,EAAC,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;;6DAChC;AAQtB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,kEAAkE;KAC5E,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACE;AASf;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,qDAAqD;QAClE,OAAO,EAAE,wBAAwB;KAClC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,uBAAK,EAAC,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;;yDACpC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const class_validator_1 = require("class-validator");
4
+ const authorization_request_dto_1 = require("./authorization-request.dto");
5
+ const enums_1 = require("../enums");
6
+ describe('AuthorizationRequestDto', () => {
7
+ const createValidDto = () => {
8
+ const dto = new authorization_request_dto_1.AuthorizationRequestDto();
9
+ dto.response_type = enums_1.ResponseType.CODE;
10
+ dto.client_id = 'client-id';
11
+ dto.code_challenge = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_1';
12
+ dto.code_challenge_method = 'S256';
13
+ dto.redirect_uri = 'http://127.0.0.1:53299/callback';
14
+ dto.state = 'state-value';
15
+ dto.scope = 'tasks:read';
16
+ return dto;
17
+ };
18
+ it('allows authorization requests without resource', async () => {
19
+ const dto = createValidDto();
20
+ const errors = await (0, class_validator_1.validate)(dto);
21
+ expect(errors).toHaveLength(0);
22
+ });
23
+ it('still validates resource format when resource is provided', async () => {
24
+ const dto = createValidDto();
25
+ dto.resource = 'not-a-url';
26
+ const errors = await (0, class_validator_1.validate)(dto);
27
+ expect(errors.some((error) => error.property === 'resource')).toBe(true);
28
+ });
29
+ });
30
+ //# sourceMappingURL=authorization-request.dto.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization-request.dto.spec.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/authorization-request.dto.spec.ts"],"names":[],"mappings":";;AAAA,qDAA2C;AAC3C,2EAAsE;AACtE,oCAAwC;AAExC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,cAAc,GAAG,GAA4B,EAAE;QACnD,MAAM,GAAG,GAAG,IAAI,mDAAuB,EAAE,CAAC;QAC1C,GAAG,CAAC,aAAa,GAAG,oBAAY,CAAC,IAAI,CAAC;QACtC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;QAC5B,GAAG,CAAC,cAAc,GAAG,mEAAmE,CAAC;QACzF,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC;QACnC,GAAG,CAAC,YAAY,GAAG,iCAAiC,CAAC;QACrD,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC;QAC1B,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,GAAG,CAAC,CAAC;QAEnC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,GAAG,CAAC,CAAC;QAEnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class OnboardingRequestDto {
2
+ email: string;
3
+ displayName: string;
4
+ slug: string;
5
+ password: string;
6
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OnboardingRequestDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ class OnboardingRequestDto {
16
+ email;
17
+ displayName;
18
+ slug;
19
+ password;
20
+ }
21
+ exports.OnboardingRequestDto = OnboardingRequestDto;
22
+ __decorate([
23
+ (0, swagger_1.ApiProperty)({
24
+ description: 'Email address for the first admin user',
25
+ example: 'admin@example.com',
26
+ }),
27
+ (0, class_validator_1.IsEmail)(),
28
+ __metadata("design:type", String)
29
+ ], OnboardingRequestDto.prototype, "email", void 0);
30
+ __decorate([
31
+ (0, swagger_1.ApiProperty)({
32
+ description: 'Display name for the first admin user',
33
+ example: 'Admin User',
34
+ }),
35
+ (0, class_validator_1.IsString)(),
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ __metadata("design:type", String)
38
+ ], OnboardingRequestDto.prototype, "displayName", void 0);
39
+ __decorate([
40
+ (0, swagger_1.ApiProperty)({
41
+ description: 'Slug/username for the first admin user',
42
+ example: 'admin',
43
+ }),
44
+ (0, class_validator_1.IsString)(),
45
+ (0, class_validator_1.IsNotEmpty)(),
46
+ __metadata("design:type", String)
47
+ ], OnboardingRequestDto.prototype, "slug", void 0);
48
+ __decorate([
49
+ (0, swagger_1.ApiProperty)({
50
+ description: 'Password for the first admin user (minimum 8 characters)',
51
+ example: 'securepassword123',
52
+ }),
53
+ (0, class_validator_1.IsString)(),
54
+ (0, class_validator_1.MinLength)(8),
55
+ __metadata("design:type", String)
56
+ ], OnboardingRequestDto.prototype, "password", void 0);
57
+ //# sourceMappingURL=onboarding-request.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-request.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/onboarding-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2E;AAE3E,MAAa,oBAAoB;IAM/B,KAAK,CAAU;IAQf,WAAW,CAAU;IAQrB,IAAI,CAAU;IAQd,QAAQ,CAAU;CACnB;AA/BD,oDA+BC;AAzBC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,mBAAmB;KAC7B,CAAC;IACD,IAAA,yBAAO,GAAE;;mDACK;AAQf;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,YAAY;KACtB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yDACQ;AAQrB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,OAAO;KACjB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACC;AAQd;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE,mBAAmB;KAC7B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;;sDACK"}
@@ -0,0 +1,3 @@
1
+ export declare class OnboardingStatusResponseDto {
2
+ needsOnboarding: boolean;
3
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OnboardingStatusResponseDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ class OnboardingStatusResponseDto {
15
+ needsOnboarding;
16
+ }
17
+ exports.OnboardingStatusResponseDto = OnboardingStatusResponseDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({
20
+ description: 'Whether the system needs to be onboarded (no admin users exist)',
21
+ example: true,
22
+ }),
23
+ __metadata("design:type", Boolean)
24
+ ], OnboardingStatusResponseDto.prototype, "needsOnboarding", void 0);
25
+ //# sourceMappingURL=onboarding-status-response.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-status-response.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/onboarding-status-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,2BAA2B;IAKtC,eAAe,CAAW;CAC3B;AAND,kEAMC;AADC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,iEAAiE;QAC9E,OAAO,EAAE,IAAI;KACd,CAAC;;oEACwB"}
@@ -87,8 +87,8 @@ __decorate([
87
87
  __decorate([
88
88
  (0, swagger_1.ApiPropertyOptional)({
89
89
  description: 'Requested scopes for the client',
90
- example: ['data:read', 'data:write'],
91
- type: [String],
90
+ example: 'data:read data:write',
91
+ type: String,
92
92
  }),
93
93
  (0, class_validator_1.IsString)(),
94
94
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"register-client.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/register-client.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-client.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/register-client.dto.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export declare class UserResponseDto {
4
4
  displayName: string;
5
5
  role: 'admin' | 'standard';
6
6
  actorId: string;
7
+ hasSeenWalkthrough: boolean;
7
8
  }
@@ -17,6 +17,7 @@ class UserResponseDto {
17
17
  displayName;
18
18
  role;
19
19
  actorId;
20
+ hasSeenWalkthrough;
20
21
  }
21
22
  exports.UserResponseDto = UserResponseDto;
22
23
  __decorate([
@@ -55,4 +56,11 @@ __decorate([
55
56
  }),
56
57
  __metadata("design:type", String)
57
58
  ], UserResponseDto.prototype, "actorId", void 0);
59
+ __decorate([
60
+ (0, swagger_1.ApiProperty)({
61
+ description: 'Whether the user has seen the walkthrough',
62
+ example: false,
63
+ }),
64
+ __metadata("design:type", Boolean)
65
+ ], UserResponseDto.prototype, "hasSeenWalkthrough", void 0);
58
66
  //# sourceMappingURL=user-response.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-response.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/user-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,eAAe;IAK1B,EAAE,CAAU;IAMZ,KAAK,CAAU;IAMf,WAAW,CAAU;IAOrB,IAAI,CAAwB;IAM5B,OAAO,CAAU;CAClB;AA/BD,0CA+BC;AA1BC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,sCAAsC;KAChD,CAAC;;2CACU;AAMZ;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;;8CACa;AAMf;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,UAAU;KACpB,CAAC;;oDACmB;AAOrB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;QAC3B,OAAO,EAAE,UAAU;KACpB,CAAC;;6CAC0B;AAM5B;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,sCAAsC;KAChD,CAAC;;gDACe"}
1
+ {"version":3,"file":"user-response.dto.js","sourceRoot":"","sources":["../../../src/authorization-server/dto/user-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,eAAe;IAK1B,EAAE,CAAU;IAMZ,KAAK,CAAU;IAMf,WAAW,CAAU;IAOrB,IAAI,CAAwB;IAM5B,OAAO,CAAU;IAMjB,kBAAkB,CAAW;CAC9B;AArCD,0CAqCC;AAhCC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,sCAAsC;KAChD,CAAC;;2CACU;AAMZ;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;;8CACa;AAMf;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,UAAU;KACpB,CAAC;;oDACmB;AAOrB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;QAC3B,OAAO,EAAE,UAAU;KACpB,CAAC;;6CAC0B;AAM5B;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,sCAAsC;KAChD,CAAC;;gDACe;AAMjB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,KAAK;KACf,CAAC;;2DAC2B"}
@@ -26,14 +26,27 @@ export interface IssueTokenResult {
26
26
  entity: IssuedAccessTokenEntity;
27
27
  token: string;
28
28
  }
29
+ export interface IssueSystemTokenResult {
30
+ jti: string;
31
+ expiresAt: Date;
32
+ token: string;
33
+ }
34
+ export interface IssueSystemTokenInput {
35
+ subjectActor: ActorInfo;
36
+ issuedByActor: ActorInfo;
37
+ scopes: string[];
38
+ expirationSeconds?: number;
39
+ }
29
40
  export declare class IssuedAccessTokenService {
30
41
  private readonly tokenRepository;
31
42
  private readonly tokenSignerService;
32
43
  private readonly logger;
33
44
  constructor(tokenRepository: Repository<IssuedAccessTokenEntity>, tokenSignerService: TokenSignerService);
34
45
  issueToken(input: IssueTokenInput): Promise<IssueTokenResult>;
46
+ issueSystemToken(input: IssueSystemTokenInput): Promise<IssueSystemTokenResult>;
35
47
  issueTokenFromPersistedActors(input: IssueTokenFromPersistedActorsInput): Promise<IssueTokenResult>;
36
48
  private toActorInfo;
49
+ private signIssuedToken;
37
50
  listTokensForSubject(subjectActorId: string): Promise<IssuedAccessTokenEntity[]>;
38
51
  getTokenById(tokenId: string): Promise<IssuedAccessTokenEntity | null>;
39
52
  revokeTokenById(tokenId: string): Promise<IssuedAccessTokenEntity | null>;
@@ -32,47 +32,41 @@ let IssuedAccessTokenService = IssuedAccessTokenService_1 = class IssuedAccessTo
32
32
  async issueToken(input) {
33
33
  const config = (0, env_config_1.getConfig)();
34
34
  const expirationDays = input.expirationDays ?? 30;
35
- const jti = (0, crypto_1.randomBytes)(16).toString('hex');
36
- const now = Math.floor(Date.now() / 1000);
37
- const expiresAt = new Date();
38
- expiresAt.setDate(expiresAt.getDate() + expirationDays);
39
- const expSeconds = now + expirationDays * 24 * 60 * 60;
40
- const claims = {
41
- iss: config.issuerUrl,
42
- sub: input.subjectActor.id,
43
- actor_id: input.subjectActor.id,
44
- actor_slug: input.subjectActor.slug,
45
- actor_type: input.subjectActor.type,
46
- displayName: input.subjectActor.displayName,
47
- aud: config.issuerUrl,
48
- exp: expSeconds,
49
- iat: now,
50
- jti,
51
- client_id: 'issued-token',
52
- scope: input.scopes,
53
- resource: config.issuerUrl,
54
- version: '1.0.0',
55
- issued_by: input.issuedByActor.id,
56
- };
57
- const token = await this.tokenSignerService.signToken(claims);
35
+ const issuedToken = await this.signIssuedToken({
36
+ subjectActor: input.subjectActor,
37
+ issuedByActor: input.issuedByActor,
38
+ scopes: input.scopes,
39
+ expirationSeconds: expirationDays * 24 * 60 * 60,
40
+ });
58
41
  const entity = this.tokenRepository.create({
59
42
  subjectActorId: input.subjectActor.id,
60
43
  issuedByActorId: input.issuedByActor.id,
61
- jti,
44
+ jti: issuedToken.jti,
62
45
  name: input.name,
63
46
  scopes: input.scopes,
64
- expiresAt,
47
+ expiresAt: issuedToken.expiresAt,
65
48
  revokedAt: null,
66
49
  lastUsedAt: null,
67
50
  });
68
51
  const savedEntity = await this.tokenRepository.save(entity);
69
52
  this.logger.log(`Issued access token "${input.name}" for actor ${input.subjectActor.slug} ` +
70
- `(expires: ${expiresAt.toISOString()})`);
53
+ `(expires: ${issuedToken.expiresAt.toISOString()})`);
71
54
  return {
72
55
  entity: savedEntity,
73
- token,
56
+ token: issuedToken.token,
74
57
  };
75
58
  }
59
+ async issueSystemToken(input) {
60
+ const issuedToken = await this.signIssuedToken({
61
+ subjectActor: input.subjectActor,
62
+ issuedByActor: input.issuedByActor,
63
+ scopes: input.scopes,
64
+ expirationSeconds: input.expirationSeconds,
65
+ });
66
+ this.logger.debug(`Issued ephemeral system token for actor ${input.subjectActor.slug} ` +
67
+ `(jti: ${issuedToken.jti}, expires: ${issuedToken.expiresAt.toISOString()})`);
68
+ return issuedToken;
69
+ }
76
70
  async issueTokenFromPersistedActors(input) {
77
71
  return this.issueToken({
78
72
  subjectActor: this.toActorInfo(input.subjectActor),
@@ -90,6 +84,38 @@ let IssuedAccessTokenService = IssuedAccessTokenService_1 = class IssuedAccessTo
90
84
  displayName: actor.displayName,
91
85
  };
92
86
  }
87
+ async signIssuedToken(input) {
88
+ const config = (0, env_config_1.getConfig)();
89
+ const lifetimeSeconds = input.expirationSeconds ?? config.mcpAccessTokenDurationSeconds;
90
+ const safeLifetimeSeconds = Math.max(1, Math.floor(lifetimeSeconds));
91
+ const jti = (0, crypto_1.randomBytes)(16).toString('hex');
92
+ const nowSeconds = Math.floor(Date.now() / 1000);
93
+ const expSeconds = nowSeconds + safeLifetimeSeconds;
94
+ const expiresAt = new Date(expSeconds * 1000);
95
+ const claims = {
96
+ iss: config.issuerUrl,
97
+ sub: input.subjectActor.id,
98
+ actor_id: input.subjectActor.id,
99
+ actor_slug: input.subjectActor.slug,
100
+ actor_type: input.subjectActor.type,
101
+ displayName: input.subjectActor.displayName,
102
+ aud: config.issuerUrl,
103
+ exp: expSeconds,
104
+ iat: nowSeconds,
105
+ jti,
106
+ client_id: 'issued-token',
107
+ scope: input.scopes,
108
+ resource: config.issuerUrl,
109
+ version: '1.0.0',
110
+ issued_by: input.issuedByActor.id,
111
+ };
112
+ const token = await this.tokenSignerService.signToken(claims);
113
+ return {
114
+ token,
115
+ jti,
116
+ expiresAt,
117
+ };
118
+ }
93
119
  async listTokensForSubject(subjectActorId) {
94
120
  return this.tokenRepository.find({
95
121
  where: { subjectActorId },
@@ -1 +1 @@
1
- {"version":3,"file":"issued-access-token.service.js","sourceRoot":"","sources":["../../src/authorization-server/issued-access-token.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,qCAAqC;AACrC,mCAAqC;AACrC,sFAAgF;AAChF,8EAAyE;AAGzE,qDAAiD;AA8D1C,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAKhB;IACA;IALF,MAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAEpE,YAEmB,eAAoD,EACpD,kBAAsC;QADtC,oBAAe,GAAf,eAAe,CAAqC;QACpD,uBAAkB,GAAlB,kBAAkB,CAAoB;IACtD,CAAC;IAQJ,KAAK,CAAC,UAAU,CAAC,KAAsB;QACrC,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;QAGlD,MAAM,GAAG,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAG5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,GAAG,GAAG,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAGvD,MAAM,MAAM,GAAsB;YAChC,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;YAC1B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;YAC/B,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;YACnC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;YACnC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW;YAC3C,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,GAAG;YACR,GAAG;YACH,SAAS,EAAE,cAAc;YACzB,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,OAAO,EAAE,OAAO;YAEhB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;SAClC,CAAC;QAGF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAG9D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YACzC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;YACrC,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;YACvC,GAAG;YACH,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS;YACT,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,wBAAwB,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG;YACzE,aAAa,SAAS,CAAC,WAAW,EAAE,GAAG,CAC1C,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,KAAK;SACN,CAAC;IACJ,CAAC;IAMD,KAAK,CAAC,6BAA6B,CACjC,KAAyC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;YAClD,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;YACpD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,KAAkB;QACpC,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,oBAAoB,CACxB,cAAsB;QAEtB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC/B,KAAK,EAAE,EAAE,cAAc,EAAE;YACzB,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;YAC5C,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;YACtB,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,eAAe,CACnB,OAAe;QAEf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;YACtB,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAEpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,UAAU,OAAO,GAAG,CAAC,CAAC;QAElE,OAAO,UAAU,CAAC;IACpB,CAAC;IAKD,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,GAAG,EAAE;YACd,SAAS,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,GAAG,GAAG,CAAC,CAAC;QAEjD,OAAO,UAAU,CAAC;IACpB,CAAC;IAKD,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,GAAG,EAAE;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAClC,CAAC;IAKD,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;CACF,CAAA;AAvMY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,0BAAgB,EAAC,oDAAuB,CAAC,CAAA;qCACR,oBAAU;QACP,yCAAkB;GAN9C,wBAAwB,CAuMpC"}
1
+ {"version":3,"file":"issued-access-token.service.js","sourceRoot":"","sources":["../../src/authorization-server/issued-access-token.service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import { LoginRequestDto } from './dto/login-request.dto';
4
4
  import { LoginResponseDto } from './dto/login-response.dto';
5
5
  import { UserResponseDto } from './dto/user-response.dto';
6
6
  import { ChangePasswordRequestDto } from './dto/change-password-request.dto';
7
+ import { OnboardingStatusResponseDto } from './dto/onboarding-status-response.dto';
8
+ import { OnboardingRequestDto } from './dto/onboarding-request.dto';
7
9
  import { TokenVerifierService } from '../auth/crypto/token-verifier.service';
8
10
  import { WebAuthService } from './web-auth.service';
9
11
  import { ActorService } from 'src/identity-provider/actor.service';
@@ -23,4 +25,9 @@ export declare class WebAuthController {
23
25
  changePassword(request: Request, changePasswordDto: ChangePasswordRequestDto): Promise<{
24
26
  ok: boolean;
25
27
  }>;
28
+ getOnboardingStatus(): Promise<OnboardingStatusResponseDto>;
29
+ onboard(onboardingDto: OnboardingRequestDto, response: Response): Promise<LoginResponseDto>;
30
+ markWalkthroughSeen(request: Request): Promise<{
31
+ ok: boolean;
32
+ }>;
26
33
  }
@@ -21,11 +21,15 @@ const login_request_dto_1 = require("./dto/login-request.dto");
21
21
  const login_response_dto_1 = require("./dto/login-response.dto");
22
22
  const user_response_dto_1 = require("./dto/user-response.dto");
23
23
  const change_password_request_dto_1 = require("./dto/change-password-request.dto");
24
+ const onboarding_status_response_dto_1 = require("./dto/onboarding-status-response.dto");
25
+ const onboarding_request_dto_1 = require("./dto/onboarding-request.dto");
24
26
  const env_config_1 = require("../config/env.config");
25
27
  const cookie_keys_constant_1 = require("../auth/core/constants/cookie-keys.constant");
26
28
  const token_verifier_service_1 = require("../auth/crypto/token-verifier.service");
27
29
  const web_auth_service_1 = require("./web-auth.service");
28
30
  const actor_service_1 = require("../identity-provider/actor.service");
31
+ const enums_1 = require("../identity-provider/enums");
32
+ const identity_provider_errors_1 = require("../identity-provider/errors/identity-provider.errors");
29
33
  let WebAuthController = WebAuthController_1 = class WebAuthController {
30
34
  webAuthService;
31
35
  tokenVerifierService;
@@ -64,6 +68,7 @@ let WebAuthController = WebAuthController_1 = class WebAuthController {
64
68
  displayName: actor.displayName,
65
69
  role: user.role,
66
70
  actorId: user.actorId,
71
+ hasSeenWalkthrough: user.hasSeenWalkthrough,
67
72
  },
68
73
  expiresIn: expiresInSeconds,
69
74
  };
@@ -100,6 +105,7 @@ let WebAuthController = WebAuthController_1 = class WebAuthController {
100
105
  displayName: actor.displayName,
101
106
  role: user.role,
102
107
  actorId: user.actorId,
108
+ hasSeenWalkthrough: user.hasSeenWalkthrough,
103
109
  },
104
110
  expiresIn,
105
111
  };
@@ -137,6 +143,7 @@ let WebAuthController = WebAuthController_1 = class WebAuthController {
137
143
  displayName: actor.displayName,
138
144
  role: actor.user.role,
139
145
  actorId: actor.user.actorId,
146
+ hasSeenWalkthrough: actor.user.hasSeenWalkthrough,
140
147
  };
141
148
  }
142
149
  async changePassword(request, changePasswordDto) {
@@ -157,6 +164,73 @@ let WebAuthController = WebAuthController_1 = class WebAuthController {
157
164
  this.logger.log(`Password changed for user: ${actor.user.email}`);
158
165
  return { ok: true };
159
166
  }
167
+ async getOnboardingStatus() {
168
+ const hasAdmins = await this.identityProviderService.hasAdminUsers();
169
+ return { needsOnboarding: !hasAdmins };
170
+ }
171
+ async onboard(onboardingDto, response) {
172
+ const user = await this.identityProviderService.createFirstAdminUserIfNeeded({
173
+ email: onboardingDto.email,
174
+ slug: onboardingDto.slug,
175
+ displayName: onboardingDto.displayName,
176
+ password: onboardingDto.password,
177
+ });
178
+ if (!user) {
179
+ throw new identity_provider_errors_1.OnboardingNotAllowedError();
180
+ }
181
+ const actor = await this.actorService.getActorById(user.actorId);
182
+ if (!actor) {
183
+ this.logger.error('Actor not found after user creation');
184
+ throw new common_1.InternalServerErrorException('Failed to retrieve actor');
185
+ }
186
+ const { accessToken, refreshToken, expiresInSeconds } = await this.webAuthService.login(onboardingDto.email, onboardingDto.password);
187
+ const config = (0, env_config_1.getConfig)();
188
+ const isProduction = config.nodeEnv === 'production';
189
+ const cookieOptions = {
190
+ httpOnly: true,
191
+ secure: isProduction,
192
+ sameSite: 'lax',
193
+ path: '/',
194
+ };
195
+ response.cookie(cookie_keys_constant_1.COOKIE_KEYS.ACCESS_TOKEN, accessToken, {
196
+ ...cookieOptions,
197
+ maxAge: expiresInSeconds * 1000,
198
+ });
199
+ response.cookie(cookie_keys_constant_1.COOKIE_KEYS.REFRESH_TOKEN, refreshToken, {
200
+ ...cookieOptions,
201
+ maxAge: 24 * 60 * 60 * 1000,
202
+ });
203
+ this.logger.log(`First admin user created: ${onboardingDto.email}`);
204
+ return {
205
+ user: {
206
+ id: actor.id,
207
+ email: user.email,
208
+ displayName: actor.displayName,
209
+ role: enums_1.UserRole.ADMIN,
210
+ actorId: user.actorId,
211
+ hasSeenWalkthrough: user.hasSeenWalkthrough,
212
+ },
213
+ expiresIn: expiresInSeconds,
214
+ };
215
+ }
216
+ async markWalkthroughSeen(request) {
217
+ const accessToken = request.cookies?.[cookie_keys_constant_1.COOKIE_KEYS.ACCESS_TOKEN];
218
+ if (!accessToken) {
219
+ throw new common_1.UnauthorizedException('Not authenticated');
220
+ }
221
+ const payload = await this.tokenVerifierService.verifyAndDecode(accessToken);
222
+ const actor = await this.actorService.getActorById(payload.actor_id, true);
223
+ if (!actor) {
224
+ throw new common_1.UnauthorizedException('Actor not found');
225
+ }
226
+ if (!actor.user) {
227
+ this.logger.error('Actor returned no user. This should not happen');
228
+ throw new common_1.InternalServerErrorException('Failed to retrieve actor');
229
+ }
230
+ await this.identityProviderService.markWalkthroughSeen(actor.user.id);
231
+ this.logger.log(`Walkthrough marked as seen for user: ${actor.user.email}`);
232
+ return { ok: true };
233
+ }
160
234
  };
161
235
  exports.WebAuthController = WebAuthController;
162
236
  __decorate([
@@ -260,6 +334,61 @@ __decorate([
260
334
  __metadata("design:paramtypes", [Object, change_password_request_dto_1.ChangePasswordRequestDto]),
261
335
  __metadata("design:returntype", Promise)
262
336
  ], WebAuthController.prototype, "changePassword", null);
337
+ __decorate([
338
+ (0, common_1.Get)('onboarding-status'),
339
+ (0, swagger_1.ApiOperation)({ summary: 'Check if system needs onboarding' }),
340
+ (0, swagger_1.ApiResponse)({
341
+ status: 200,
342
+ description: 'Onboarding status',
343
+ type: onboarding_status_response_dto_1.OnboardingStatusResponseDto,
344
+ }),
345
+ __metadata("design:type", Function),
346
+ __metadata("design:paramtypes", []),
347
+ __metadata("design:returntype", Promise)
348
+ ], WebAuthController.prototype, "getOnboardingStatus", null);
349
+ __decorate([
350
+ (0, common_1.Post)('onboard'),
351
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
352
+ (0, swagger_1.ApiOperation)({ summary: 'Create first admin user (only works if no admins exist)' }),
353
+ (0, swagger_1.ApiBody)({ type: onboarding_request_dto_1.OnboardingRequestDto }),
354
+ (0, swagger_1.ApiResponse)({
355
+ status: 200,
356
+ description: 'First admin user created and logged in',
357
+ type: login_response_dto_1.LoginResponseDto,
358
+ }),
359
+ (0, swagger_1.ApiResponse)({
360
+ status: 409,
361
+ description: 'Admin users already exist, onboarding not allowed',
362
+ }),
363
+ __param(0, (0, common_1.Body)()),
364
+ __param(1, (0, common_1.Res)({ passthrough: true })),
365
+ __metadata("design:type", Function),
366
+ __metadata("design:paramtypes", [onboarding_request_dto_1.OnboardingRequestDto, Object]),
367
+ __metadata("design:returntype", Promise)
368
+ ], WebAuthController.prototype, "onboard", null);
369
+ __decorate([
370
+ (0, common_1.Post)('mark-walkthrough-seen'),
371
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
372
+ (0, swagger_1.ApiOperation)({ summary: 'Mark walkthrough as seen for authenticated user' }),
373
+ (0, swagger_1.ApiResponse)({
374
+ status: 200,
375
+ description: 'Walkthrough marked as seen',
376
+ schema: {
377
+ type: 'object',
378
+ properties: {
379
+ ok: { type: 'boolean', example: true },
380
+ },
381
+ },
382
+ }),
383
+ (0, swagger_1.ApiResponse)({
384
+ status: 401,
385
+ description: 'Not authenticated',
386
+ }),
387
+ __param(0, (0, common_1.Req)()),
388
+ __metadata("design:type", Function),
389
+ __metadata("design:paramtypes", [Object]),
390
+ __metadata("design:returntype", Promise)
391
+ ], WebAuthController.prototype, "markWalkthroughSeen", null);
263
392
  exports.WebAuthController = WebAuthController = WebAuthController_1 = __decorate([
264
393
  (0, swagger_1.ApiTags)('Web Authentication'),
265
394
  (0, common_1.Controller)('auth'),