@ameshkin/ticket-mate 0.1.20

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 (1379) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +1214 -0
  3. package/config/_design-specs.json +39 -0
  4. package/config/bugs-demo.json +186 -0
  5. package/config/design-specs.ts +39 -0
  6. package/config/envSpec.ts +120 -0
  7. package/config/nav.admin.ts +165 -0
  8. package/config/nav.main.json +90 -0
  9. package/config/nav.main.ts +92 -0
  10. package/package.json +299 -0
  11. package/public/acceptance-criteria/extractors.d.ts +30 -0
  12. package/public/acceptance-criteria/extractors.d.ts.map +1 -0
  13. package/public/acceptance-criteria/extractors.js +133 -0
  14. package/public/acceptance-criteria/extractors.js.map +1 -0
  15. package/public/acceptance-criteria/file-discovery.d.ts +22 -0
  16. package/public/acceptance-criteria/file-discovery.d.ts.map +1 -0
  17. package/public/acceptance-criteria/file-discovery.js +102 -0
  18. package/public/acceptance-criteria/file-discovery.js.map +1 -0
  19. package/public/acceptance-criteria/file-utils.d.ts +29 -0
  20. package/public/acceptance-criteria/file-utils.d.ts.map +1 -0
  21. package/public/acceptance-criteria/file-utils.js +103 -0
  22. package/public/acceptance-criteria/file-utils.js.map +1 -0
  23. package/public/acceptance-criteria/merger.d.ts +17 -0
  24. package/public/acceptance-criteria/merger.d.ts.map +1 -0
  25. package/public/acceptance-criteria/merger.js +73 -0
  26. package/public/acceptance-criteria/merger.js.map +1 -0
  27. package/public/acceptance-criteria/sync.d.ts +12 -0
  28. package/public/acceptance-criteria/sync.d.ts.map +1 -0
  29. package/public/acceptance-criteria/sync.js +72 -0
  30. package/public/acceptance-criteria/sync.js.map +1 -0
  31. package/public/acceptance-criteria/verifier.d.ts +10 -0
  32. package/public/acceptance-criteria/verifier.d.ts.map +1 -0
  33. package/public/acceptance-criteria/verifier.js +54 -0
  34. package/public/acceptance-criteria/verifier.js.map +1 -0
  35. package/public/ai/agent-handler-integration.d.ts +67 -0
  36. package/public/ai/agent-handler-integration.d.ts.map +1 -0
  37. package/public/ai/agent-handler-integration.js +277 -0
  38. package/public/ai/agent-handler-integration.js.map +1 -0
  39. package/public/ai/agent-integration.d.ts +96 -0
  40. package/public/ai/agent-integration.d.ts.map +1 -0
  41. package/public/ai/agent-integration.js +82 -0
  42. package/public/ai/agent-integration.js.map +1 -0
  43. package/public/ai/ai-ready.d.ts +28 -0
  44. package/public/ai/ai-ready.d.ts.map +1 -0
  45. package/public/ai/ai-ready.js +70 -0
  46. package/public/ai/ai-ready.js.map +1 -0
  47. package/public/ai/executor.d.ts +108 -0
  48. package/public/ai/executor.d.ts.map +1 -0
  49. package/public/ai/executor.js +30 -0
  50. package/public/ai/executor.js.map +1 -0
  51. package/public/ai/jira-updates.d.ts +25 -0
  52. package/public/ai/jira-updates.d.ts.map +1 -0
  53. package/public/ai/jira-updates.js +132 -0
  54. package/public/ai/jira-updates.js.map +1 -0
  55. package/public/ai/progress.d.ts +59 -0
  56. package/public/ai/progress.d.ts.map +1 -0
  57. package/public/ai/progress.js +92 -0
  58. package/public/ai/progress.js.map +1 -0
  59. package/public/ai/repo.d.ts +54 -0
  60. package/public/ai/repo.d.ts.map +1 -0
  61. package/public/ai/repo.js +171 -0
  62. package/public/ai/repo.js.map +1 -0
  63. package/public/ai/safeguards.d.ts +59 -0
  64. package/public/ai/safeguards.d.ts.map +1 -0
  65. package/public/ai/safeguards.js +139 -0
  66. package/public/ai/safeguards.js.map +1 -0
  67. package/public/ai/test-runner.d.ts +37 -0
  68. package/public/ai/test-runner.d.ts.map +1 -0
  69. package/public/ai/test-runner.js +114 -0
  70. package/public/ai/test-runner.js.map +1 -0
  71. package/public/ai/workflow.d.ts +41 -0
  72. package/public/ai/workflow.d.ts.map +1 -0
  73. package/public/ai/workflow.js +205 -0
  74. package/public/ai/workflow.js.map +1 -0
  75. package/public/app/api/acceptance-criteria/acceptance-criteria.service.d.ts +8 -0
  76. package/public/app/api/acceptance-criteria/acceptance-criteria.service.d.ts.map +1 -0
  77. package/public/app/api/acceptance-criteria/acceptance-criteria.service.js +18 -0
  78. package/public/app/api/acceptance-criteria/acceptance-criteria.service.js.map +1 -0
  79. package/public/app/api/automation/automation.service.d.ts +20 -0
  80. package/public/app/api/automation/automation.service.d.ts.map +1 -0
  81. package/public/app/api/automation/automation.service.js +112 -0
  82. package/public/app/api/automation/automation.service.js.map +1 -0
  83. package/public/app/api/automation/bulk-operations.d.ts +41 -0
  84. package/public/app/api/automation/bulk-operations.d.ts.map +1 -0
  85. package/public/app/api/automation/bulk-operations.js +146 -0
  86. package/public/app/api/automation/bulk-operations.js.map +1 -0
  87. package/public/app/api/automation/fix-now.d.ts +27 -0
  88. package/public/app/api/automation/fix-now.d.ts.map +1 -0
  89. package/public/app/api/automation/fix-now.js +82 -0
  90. package/public/app/api/automation/fix-now.js.map +1 -0
  91. package/public/app/api/batch/batch.service.d.ts +7 -0
  92. package/public/app/api/batch/batch.service.d.ts.map +1 -0
  93. package/public/app/api/batch/batch.service.js +11 -0
  94. package/public/app/api/batch/batch.service.js.map +1 -0
  95. package/public/app/api/bugs/bugs-jira.service.d.ts +27 -0
  96. package/public/app/api/bugs/bugs-jira.service.d.ts.map +1 -0
  97. package/public/app/api/bugs/bugs-jira.service.js +103 -0
  98. package/public/app/api/bugs/bugs-jira.service.js.map +1 -0
  99. package/public/app/api/bugs/bugs.service.d.ts +29 -0
  100. package/public/app/api/bugs/bugs.service.d.ts.map +1 -0
  101. package/public/app/api/bugs/bugs.service.js +51 -0
  102. package/public/app/api/bugs/bugs.service.js.map +1 -0
  103. package/public/app/api/config/config.service.d.ts +12 -0
  104. package/public/app/api/config/config.service.d.ts.map +1 -0
  105. package/public/app/api/config/config.service.js +45 -0
  106. package/public/app/api/config/config.service.js.map +1 -0
  107. package/public/app/api/google/google-maps.service.d.ts +30 -0
  108. package/public/app/api/google/google-maps.service.d.ts.map +1 -0
  109. package/public/app/api/google/google-maps.service.js +74 -0
  110. package/public/app/api/google/google-maps.service.js.map +1 -0
  111. package/public/app/api/google/google-search.service.d.ts +73 -0
  112. package/public/app/api/google/google-search.service.d.ts.map +1 -0
  113. package/public/app/api/google/google-search.service.js +83 -0
  114. package/public/app/api/google/google-search.service.js.map +1 -0
  115. package/public/app/api/issues/execution.service.d.ts +13 -0
  116. package/public/app/api/issues/execution.service.d.ts.map +1 -0
  117. package/public/app/api/issues/execution.service.js +27 -0
  118. package/public/app/api/issues/execution.service.js.map +1 -0
  119. package/public/app/api/issues/git.service.d.ts +10 -0
  120. package/public/app/api/issues/git.service.d.ts.map +1 -0
  121. package/public/app/api/issues/git.service.js +22 -0
  122. package/public/app/api/issues/git.service.js.map +1 -0
  123. package/public/app/api/issues/issues.service.d.ts +14 -0
  124. package/public/app/api/issues/issues.service.d.ts.map +1 -0
  125. package/public/app/api/issues/issues.service.js +32 -0
  126. package/public/app/api/issues/issues.service.js.map +1 -0
  127. package/public/app/api/jira/jira-auth.service.d.ts +36 -0
  128. package/public/app/api/jira/jira-auth.service.d.ts.map +1 -0
  129. package/public/app/api/jira/jira-auth.service.js +89 -0
  130. package/public/app/api/jira/jira-auth.service.js.map +1 -0
  131. package/public/app/api/orchestrator/orchestrator-processor.d.ts +32 -0
  132. package/public/app/api/orchestrator/orchestrator-processor.d.ts.map +1 -0
  133. package/public/app/api/orchestrator/orchestrator-processor.js +130 -0
  134. package/public/app/api/orchestrator/orchestrator-processor.js.map +1 -0
  135. package/public/app/api/orchestrator/orchestrator.service.d.ts +56 -0
  136. package/public/app/api/orchestrator/orchestrator.service.d.ts.map +1 -0
  137. package/public/app/api/orchestrator/orchestrator.service.js +91 -0
  138. package/public/app/api/orchestrator/orchestrator.service.js.map +1 -0
  139. package/public/app/api/projects/projects.service.d.ts +12 -0
  140. package/public/app/api/projects/projects.service.d.ts.map +1 -0
  141. package/public/app/api/projects/projects.service.js +13 -0
  142. package/public/app/api/projects/projects.service.js.map +1 -0
  143. package/public/app/api/prompts/pr.service.d.ts +13 -0
  144. package/public/app/api/prompts/pr.service.d.ts.map +1 -0
  145. package/public/app/api/prompts/pr.service.js +12 -0
  146. package/public/app/api/prompts/pr.service.js.map +1 -0
  147. package/public/app/api/prompts/prompts.service.d.ts +5 -0
  148. package/public/app/api/prompts/prompts.service.d.ts.map +1 -0
  149. package/public/app/api/prompts/prompts.service.js +7 -0
  150. package/public/app/api/prompts/prompts.service.js.map +1 -0
  151. package/public/app/api/report/api-report.d.ts +60 -0
  152. package/public/app/api/report/api-report.d.ts.map +1 -0
  153. package/public/app/api/report/api-report.js +212 -0
  154. package/public/app/api/report/api-report.js.map +1 -0
  155. package/public/app/api/research/research.service.d.ts +82 -0
  156. package/public/app/api/research/research.service.d.ts.map +1 -0
  157. package/public/app/api/research/research.service.js +115 -0
  158. package/public/app/api/research/research.service.js.map +1 -0
  159. package/public/app/api/sync/sync.service.d.ts +11 -0
  160. package/public/app/api/sync/sync.service.d.ts.map +1 -0
  161. package/public/app/api/sync/sync.service.js +20 -0
  162. package/public/app/api/sync/sync.service.js.map +1 -0
  163. package/public/app/api/task-folders/task-folders.service.d.ts +15 -0
  164. package/public/app/api/task-folders/task-folders.service.d.ts.map +1 -0
  165. package/public/app/api/task-folders/task-folders.service.js +27 -0
  166. package/public/app/api/task-folders/task-folders.service.js.map +1 -0
  167. package/public/app/api/ticket-mate-config/ticket-mate-config.service.d.ts +129 -0
  168. package/public/app/api/ticket-mate-config/ticket-mate-config.service.d.ts.map +1 -0
  169. package/public/app/api/ticket-mate-config/ticket-mate-config.service.js +140 -0
  170. package/public/app/api/ticket-mate-config/ticket-mate-config.service.js.map +1 -0
  171. package/public/app/api/webhooks/webhooks.service.d.ts +11 -0
  172. package/public/app/api/webhooks/webhooks.service.d.ts.map +1 -0
  173. package/public/app/api/webhooks/webhooks.service.js +12 -0
  174. package/public/app/api/webhooks/webhooks.service.js.map +1 -0
  175. package/public/assets/images/logo.jpg +0 -0
  176. package/public/automation/bugs-sync.d.ts +36 -0
  177. package/public/automation/bugs-sync.d.ts.map +1 -0
  178. package/public/automation/bugs-sync.js +234 -0
  179. package/public/automation/bugs-sync.js.map +1 -0
  180. package/public/automation/bugs-watcher.d.ts +22 -0
  181. package/public/automation/bugs-watcher.d.ts.map +1 -0
  182. package/public/automation/bugs-watcher.js +100 -0
  183. package/public/automation/bugs-watcher.js.map +1 -0
  184. package/public/automation/index.d.ts +17 -0
  185. package/public/automation/index.d.ts.map +1 -0
  186. package/public/automation/index.js +21 -0
  187. package/public/automation/index.js.map +1 -0
  188. package/public/automation/json-reader.d.ts +102 -0
  189. package/public/automation/json-reader.d.ts.map +1 -0
  190. package/public/automation/json-reader.js +147 -0
  191. package/public/automation/json-reader.js.map +1 -0
  192. package/public/automation/label-assigner.d.ts +54 -0
  193. package/public/automation/label-assigner.d.ts.map +1 -0
  194. package/public/automation/label-assigner.js +233 -0
  195. package/public/automation/label-assigner.js.map +1 -0
  196. package/public/automation/pattern-learner.d.ts +47 -0
  197. package/public/automation/pattern-learner.d.ts.map +1 -0
  198. package/public/automation/pattern-learner.js +192 -0
  199. package/public/automation/pattern-learner.js.map +1 -0
  200. package/public/automation/pattern-matcher.d.ts +86 -0
  201. package/public/automation/pattern-matcher.d.ts.map +1 -0
  202. package/public/automation/pattern-matcher.js +215 -0
  203. package/public/automation/pattern-matcher.js.map +1 -0
  204. package/public/automation/pattern-store.d.ts +32 -0
  205. package/public/automation/pattern-store.d.ts.map +1 -0
  206. package/public/automation/pattern-store.js +97 -0
  207. package/public/automation/pattern-store.js.map +1 -0
  208. package/public/automation/ticket-creator.d.ts +54 -0
  209. package/public/automation/ticket-creator.d.ts.map +1 -0
  210. package/public/automation/ticket-creator.js +267 -0
  211. package/public/automation/ticket-creator.js.map +1 -0
  212. package/public/automation/types.d.ts +96 -0
  213. package/public/automation/types.d.ts.map +1 -0
  214. package/public/automation/types.js +7 -0
  215. package/public/automation/types.js.map +1 -0
  216. package/public/batch/batch-execute.d.ts +88 -0
  217. package/public/batch/batch-execute.d.ts.map +1 -0
  218. package/public/batch/batch-execute.js +182 -0
  219. package/public/batch/batch-execute.js.map +1 -0
  220. package/public/batch/batch-sync.d.ts +46 -0
  221. package/public/batch/batch-sync.d.ts.map +1 -0
  222. package/public/batch/batch-sync.js +83 -0
  223. package/public/batch/batch-sync.js.map +1 -0
  224. package/public/cache/cache.d.ts +65 -0
  225. package/public/cache/cache.d.ts.map +1 -0
  226. package/public/cache/cache.js +198 -0
  227. package/public/cache/cache.js.map +1 -0
  228. package/public/cache/etag.d.ts +51 -0
  229. package/public/cache/etag.d.ts.map +1 -0
  230. package/public/cache/etag.js +108 -0
  231. package/public/cache/etag.js.map +1 -0
  232. package/public/ci/github-sync.d.ts +92 -0
  233. package/public/ci/github-sync.d.ts.map +1 -0
  234. package/public/ci/github-sync.js +166 -0
  235. package/public/ci/github-sync.js.map +1 -0
  236. package/public/cli/commands/agent-instruct.d.ts +8 -0
  237. package/public/cli/commands/agent-instruct.d.ts.map +1 -0
  238. package/public/cli/commands/agent-instruct.js +138 -0
  239. package/public/cli/commands/agent-instruct.js.map +1 -0
  240. package/public/cli/commands/assign-to-cursor.d.ts +8 -0
  241. package/public/cli/commands/assign-to-cursor.d.ts.map +1 -0
  242. package/public/cli/commands/assign-to-cursor.js +84 -0
  243. package/public/cli/commands/assign-to-cursor.js.map +1 -0
  244. package/public/cli/commands/assign.d.ts +8 -0
  245. package/public/cli/commands/assign.d.ts.map +1 -0
  246. package/public/cli/commands/assign.js +84 -0
  247. package/public/cli/commands/assign.js.map +1 -0
  248. package/public/cli/commands/auth-check.d.ts +8 -0
  249. package/public/cli/commands/auth-check.d.ts.map +1 -0
  250. package/public/cli/commands/auth-check.js +72 -0
  251. package/public/cli/commands/auth-check.js.map +1 -0
  252. package/public/cli/commands/autoplay.d.ts +3 -0
  253. package/public/cli/commands/autoplay.d.ts.map +1 -0
  254. package/public/cli/commands/autoplay.js +188 -0
  255. package/public/cli/commands/autoplay.js.map +1 -0
  256. package/public/cli/commands/batch.d.ts +8 -0
  257. package/public/cli/commands/batch.d.ts.map +1 -0
  258. package/public/cli/commands/batch.js +125 -0
  259. package/public/cli/commands/batch.js.map +1 -0
  260. package/public/cli/commands/bug-tix.d.ts +9 -0
  261. package/public/cli/commands/bug-tix.d.ts.map +1 -0
  262. package/public/cli/commands/bug-tix.js +306 -0
  263. package/public/cli/commands/bug-tix.js.map +1 -0
  264. package/public/cli/commands/bugs-create-jira.d.ts +8 -0
  265. package/public/cli/commands/bugs-create-jira.d.ts.map +1 -0
  266. package/public/cli/commands/bugs-create-jira.js +113 -0
  267. package/public/cli/commands/bugs-create-jira.js.map +1 -0
  268. package/public/cli/commands/bugs-ls.d.ts +8 -0
  269. package/public/cli/commands/bugs-ls.d.ts.map +1 -0
  270. package/public/cli/commands/bugs-ls.js +63 -0
  271. package/public/cli/commands/bugs-ls.js.map +1 -0
  272. package/public/cli/commands/bugs-open.d.ts +8 -0
  273. package/public/cli/commands/bugs-open.d.ts.map +1 -0
  274. package/public/cli/commands/bugs-open.js +69 -0
  275. package/public/cli/commands/bugs-open.js.map +1 -0
  276. package/public/cli/commands/bugs-sync.d.ts +8 -0
  277. package/public/cli/commands/bugs-sync.d.ts.map +1 -0
  278. package/public/cli/commands/bugs-sync.js +76 -0
  279. package/public/cli/commands/bugs-sync.js.map +1 -0
  280. package/public/cli/commands/check-permissions.d.ts +9 -0
  281. package/public/cli/commands/check-permissions.d.ts.map +1 -0
  282. package/public/cli/commands/check-permissions.js +180 -0
  283. package/public/cli/commands/check-permissions.js.map +1 -0
  284. package/public/cli/commands/check-statuses.d.ts +8 -0
  285. package/public/cli/commands/check-statuses.d.ts.map +1 -0
  286. package/public/cli/commands/check-statuses.js +58 -0
  287. package/public/cli/commands/check-statuses.js.map +1 -0
  288. package/public/cli/commands/ci-sync.d.ts +8 -0
  289. package/public/cli/commands/ci-sync.d.ts.map +1 -0
  290. package/public/cli/commands/ci-sync.js +45 -0
  291. package/public/cli/commands/ci-sync.js.map +1 -0
  292. package/public/cli/commands/clone-project.d.ts +11 -0
  293. package/public/cli/commands/clone-project.d.ts.map +1 -0
  294. package/public/cli/commands/clone-project.js +139 -0
  295. package/public/cli/commands/clone-project.js.map +1 -0
  296. package/public/cli/commands/cloud-projects.d.ts +9 -0
  297. package/public/cli/commands/cloud-projects.d.ts.map +1 -0
  298. package/public/cli/commands/cloud-projects.js +164 -0
  299. package/public/cli/commands/cloud-projects.js.map +1 -0
  300. package/public/cli/commands/comment.d.ts +8 -0
  301. package/public/cli/commands/comment.d.ts.map +1 -0
  302. package/public/cli/commands/comment.js +64 -0
  303. package/public/cli/commands/comment.js.map +1 -0
  304. package/public/cli/commands/config-test.d.ts +10 -0
  305. package/public/cli/commands/config-test.d.ts.map +1 -0
  306. package/public/cli/commands/config-test.js +92 -0
  307. package/public/cli/commands/config-test.js.map +1 -0
  308. package/public/cli/commands/create-board.d.ts +8 -0
  309. package/public/cli/commands/create-board.d.ts.map +1 -0
  310. package/public/cli/commands/create-board.js +84 -0
  311. package/public/cli/commands/create-board.js.map +1 -0
  312. package/public/cli/commands/create-bug.d.ts +8 -0
  313. package/public/cli/commands/create-bug.d.ts.map +1 -0
  314. package/public/cli/commands/create-bug.js +33 -0
  315. package/public/cli/commands/create-bug.js.map +1 -0
  316. package/public/cli/commands/create-epic.d.ts +8 -0
  317. package/public/cli/commands/create-epic.d.ts.map +1 -0
  318. package/public/cli/commands/create-epic.js +31 -0
  319. package/public/cli/commands/create-epic.js.map +1 -0
  320. package/public/cli/commands/create-label.d.ts +8 -0
  321. package/public/cli/commands/create-label.d.ts.map +1 -0
  322. package/public/cli/commands/create-label.js +48 -0
  323. package/public/cli/commands/create-label.js.map +1 -0
  324. package/public/cli/commands/create-story.d.ts +8 -0
  325. package/public/cli/commands/create-story.d.ts.map +1 -0
  326. package/public/cli/commands/create-story.js +33 -0
  327. package/public/cli/commands/create-story.js.map +1 -0
  328. package/public/cli/commands/create-task-folder.d.ts +8 -0
  329. package/public/cli/commands/create-task-folder.d.ts.map +1 -0
  330. package/public/cli/commands/create-task-folder.js +45 -0
  331. package/public/cli/commands/create-task-folder.js.map +1 -0
  332. package/public/cli/commands/create-ticket.d.ts +32 -0
  333. package/public/cli/commands/create-ticket.d.ts.map +1 -0
  334. package/public/cli/commands/create-ticket.js +610 -0
  335. package/public/cli/commands/create-ticket.js.map +1 -0
  336. package/public/cli/commands/env-check.d.ts +8 -0
  337. package/public/cli/commands/env-check.d.ts.map +1 -0
  338. package/public/cli/commands/env-check.js +131 -0
  339. package/public/cli/commands/env-check.js.map +1 -0
  340. package/public/cli/commands/env-debug.d.ts +8 -0
  341. package/public/cli/commands/env-debug.d.ts.map +1 -0
  342. package/public/cli/commands/env-debug.js +169 -0
  343. package/public/cli/commands/env-debug.js.map +1 -0
  344. package/public/cli/commands/execute.d.ts +9 -0
  345. package/public/cli/commands/execute.d.ts.map +1 -0
  346. package/public/cli/commands/execute.js +97 -0
  347. package/public/cli/commands/execute.js.map +1 -0
  348. package/public/cli/commands/export.d.ts +8 -0
  349. package/public/cli/commands/export.d.ts.map +1 -0
  350. package/public/cli/commands/export.js +126 -0
  351. package/public/cli/commands/export.js.map +1 -0
  352. package/public/cli/commands/go.d.ts +15 -0
  353. package/public/cli/commands/go.d.ts.map +1 -0
  354. package/public/cli/commands/go.js +326 -0
  355. package/public/cli/commands/go.js.map +1 -0
  356. package/public/cli/commands/health-check.d.ts +8 -0
  357. package/public/cli/commands/health-check.d.ts.map +1 -0
  358. package/public/cli/commands/health-check.js +209 -0
  359. package/public/cli/commands/health-check.js.map +1 -0
  360. package/public/cli/commands/import-template.d.ts +8 -0
  361. package/public/cli/commands/import-template.d.ts.map +1 -0
  362. package/public/cli/commands/import-template.js +98 -0
  363. package/public/cli/commands/import-template.js.map +1 -0
  364. package/public/cli/commands/init-repo.d.ts +8 -0
  365. package/public/cli/commands/init-repo.d.ts.map +1 -0
  366. package/public/cli/commands/init-repo.js +112 -0
  367. package/public/cli/commands/init-repo.js.map +1 -0
  368. package/public/cli/commands/interactive.d.ts +11 -0
  369. package/public/cli/commands/interactive.d.ts.map +1 -0
  370. package/public/cli/commands/interactive.js +124 -0
  371. package/public/cli/commands/interactive.js.map +1 -0
  372. package/public/cli/commands/jm-status.d.ts +8 -0
  373. package/public/cli/commands/jm-status.d.ts.map +1 -0
  374. package/public/cli/commands/jm-status.js +81 -0
  375. package/public/cli/commands/jm-status.js.map +1 -0
  376. package/public/cli/commands/list-jira-projects.d.ts +12 -0
  377. package/public/cli/commands/list-jira-projects.d.ts.map +1 -0
  378. package/public/cli/commands/list-jira-projects.js +109 -0
  379. package/public/cli/commands/list-jira-projects.js.map +1 -0
  380. package/public/cli/commands/list-tickets.d.ts +9 -0
  381. package/public/cli/commands/list-tickets.d.ts.map +1 -0
  382. package/public/cli/commands/list-tickets.js +73 -0
  383. package/public/cli/commands/list-tickets.js.map +1 -0
  384. package/public/cli/commands/ls-issues.d.ts +14 -0
  385. package/public/cli/commands/ls-issues.d.ts.map +1 -0
  386. package/public/cli/commands/ls-issues.js +54 -0
  387. package/public/cli/commands/ls-issues.js.map +1 -0
  388. package/public/cli/commands/ls-projects.d.ts +10 -0
  389. package/public/cli/commands/ls-projects.d.ts.map +1 -0
  390. package/public/cli/commands/ls-projects.js +14 -0
  391. package/public/cli/commands/ls-projects.js.map +1 -0
  392. package/public/cli/commands/my-tickets.d.ts +8 -0
  393. package/public/cli/commands/my-tickets.d.ts.map +1 -0
  394. package/public/cli/commands/my-tickets.js +96 -0
  395. package/public/cli/commands/my-tickets.js.map +1 -0
  396. package/public/cli/commands/orc-go.d.ts +3 -0
  397. package/public/cli/commands/orc-go.d.ts.map +1 -0
  398. package/public/cli/commands/orc-go.js +272 -0
  399. package/public/cli/commands/orc-go.js.map +1 -0
  400. package/public/cli/commands/orc-notes-get.d.ts +3 -0
  401. package/public/cli/commands/orc-notes-get.d.ts.map +1 -0
  402. package/public/cli/commands/orc-notes-get.js +78 -0
  403. package/public/cli/commands/orc-notes-get.js.map +1 -0
  404. package/public/cli/commands/orc-notes-go.d.ts +3 -0
  405. package/public/cli/commands/orc-notes-go.d.ts.map +1 -0
  406. package/public/cli/commands/orc-notes-go.js +182 -0
  407. package/public/cli/commands/orc-notes-go.js.map +1 -0
  408. package/public/cli/commands/orc-notes-status.d.ts +3 -0
  409. package/public/cli/commands/orc-notes-status.d.ts.map +1 -0
  410. package/public/cli/commands/orc-notes-status.js +89 -0
  411. package/public/cli/commands/orc-notes-status.js.map +1 -0
  412. package/public/cli/commands/plan-ticket.d.ts +8 -0
  413. package/public/cli/commands/plan-ticket.d.ts.map +1 -0
  414. package/public/cli/commands/plan-ticket.js +61 -0
  415. package/public/cli/commands/plan-ticket.js.map +1 -0
  416. package/public/cli/commands/process-bugs.d.ts +8 -0
  417. package/public/cli/commands/process-bugs.d.ts.map +1 -0
  418. package/public/cli/commands/process-bugs.js +106 -0
  419. package/public/cli/commands/process-bugs.js.map +1 -0
  420. package/public/cli/commands/project-config.d.ts +8 -0
  421. package/public/cli/commands/project-config.d.ts.map +1 -0
  422. package/public/cli/commands/project-config.js +172 -0
  423. package/public/cli/commands/project-config.js.map +1 -0
  424. package/public/cli/commands/project-info.d.ts +8 -0
  425. package/public/cli/commands/project-info.d.ts.map +1 -0
  426. package/public/cli/commands/project-info.js +289 -0
  427. package/public/cli/commands/project-info.js.map +1 -0
  428. package/public/cli/commands/project-link-repo.d.ts +8 -0
  429. package/public/cli/commands/project-link-repo.d.ts.map +1 -0
  430. package/public/cli/commands/project-link-repo.js +95 -0
  431. package/public/cli/commands/project-link-repo.js.map +1 -0
  432. package/public/cli/commands/project-list.d.ts +8 -0
  433. package/public/cli/commands/project-list.d.ts.map +1 -0
  434. package/public/cli/commands/project-list.js +44 -0
  435. package/public/cli/commands/project-list.js.map +1 -0
  436. package/public/cli/commands/queue.d.ts +8 -0
  437. package/public/cli/commands/queue.d.ts.map +1 -0
  438. package/public/cli/commands/queue.js +106 -0
  439. package/public/cli/commands/queue.js.map +1 -0
  440. package/public/cli/commands/quick-sync.d.ts +8 -0
  441. package/public/cli/commands/quick-sync.d.ts.map +1 -0
  442. package/public/cli/commands/quick-sync.js +105 -0
  443. package/public/cli/commands/quick-sync.js.map +1 -0
  444. package/public/cli/commands/replit-test-webhook.d.ts +8 -0
  445. package/public/cli/commands/replit-test-webhook.d.ts.map +1 -0
  446. package/public/cli/commands/replit-test-webhook.js +123 -0
  447. package/public/cli/commands/replit-test-webhook.js.map +1 -0
  448. package/public/cli/commands/report.d.ts +8 -0
  449. package/public/cli/commands/report.d.ts.map +1 -0
  450. package/public/cli/commands/report.js +86 -0
  451. package/public/cli/commands/report.js.map +1 -0
  452. package/public/cli/commands/search.d.ts +9 -0
  453. package/public/cli/commands/search.d.ts.map +1 -0
  454. package/public/cli/commands/search.js +87 -0
  455. package/public/cli/commands/search.js.map +1 -0
  456. package/public/cli/commands/setup-cursor-board.d.ts +8 -0
  457. package/public/cli/commands/setup-cursor-board.d.ts.map +1 -0
  458. package/public/cli/commands/setup-cursor-board.js +72 -0
  459. package/public/cli/commands/setup-cursor-board.js.map +1 -0
  460. package/public/cli/commands/show-issue.d.ts +8 -0
  461. package/public/cli/commands/show-issue.d.ts.map +1 -0
  462. package/public/cli/commands/show-issue.js +71 -0
  463. package/public/cli/commands/show-issue.js.map +1 -0
  464. package/public/cli/commands/start-work.d.ts +12 -0
  465. package/public/cli/commands/start-work.d.ts.map +1 -0
  466. package/public/cli/commands/start-work.js +281 -0
  467. package/public/cli/commands/start-work.js.map +1 -0
  468. package/public/cli/commands/start.d.ts +3 -0
  469. package/public/cli/commands/start.d.ts.map +1 -0
  470. package/public/cli/commands/start.js +127 -0
  471. package/public/cli/commands/start.js.map +1 -0
  472. package/public/cli/commands/status.d.ts +13 -0
  473. package/public/cli/commands/status.d.ts.map +1 -0
  474. package/public/cli/commands/status.js +175 -0
  475. package/public/cli/commands/status.js.map +1 -0
  476. package/public/cli/commands/sync-acceptance.d.ts +8 -0
  477. package/public/cli/commands/sync-acceptance.d.ts.map +1 -0
  478. package/public/cli/commands/sync-acceptance.js +167 -0
  479. package/public/cli/commands/sync-acceptance.js.map +1 -0
  480. package/public/cli/commands/sync-fields.d.ts +8 -0
  481. package/public/cli/commands/sync-fields.d.ts.map +1 -0
  482. package/public/cli/commands/sync-fields.js +71 -0
  483. package/public/cli/commands/sync-fields.js.map +1 -0
  484. package/public/cli/commands/sync-tickets.d.ts +8 -0
  485. package/public/cli/commands/sync-tickets.d.ts.map +1 -0
  486. package/public/cli/commands/sync-tickets.js +203 -0
  487. package/public/cli/commands/sync-tickets.js.map +1 -0
  488. package/public/cli/commands/test-workflow.d.ts +8 -0
  489. package/public/cli/commands/test-workflow.d.ts.map +1 -0
  490. package/public/cli/commands/test-workflow.js +205 -0
  491. package/public/cli/commands/test-workflow.js.map +1 -0
  492. package/public/cli/commands/tickets-list.d.ts +8 -0
  493. package/public/cli/commands/tickets-list.d.ts.map +1 -0
  494. package/public/cli/commands/tickets-list.js +346 -0
  495. package/public/cli/commands/tickets-list.js.map +1 -0
  496. package/public/cli/commands/transition.d.ts +8 -0
  497. package/public/cli/commands/transition.d.ts.map +1 -0
  498. package/public/cli/commands/transition.js +112 -0
  499. package/public/cli/commands/transition.js.map +1 -0
  500. package/public/cli/commands/validate-branch.d.ts +5 -0
  501. package/public/cli/commands/validate-branch.d.ts.map +1 -0
  502. package/public/cli/commands/validate-branch.js +35 -0
  503. package/public/cli/commands/validate-branch.js.map +1 -0
  504. package/public/cli/commands/validate-commit.d.ts +5 -0
  505. package/public/cli/commands/validate-commit.d.ts.map +1 -0
  506. package/public/cli/commands/validate-commit.js +38 -0
  507. package/public/cli/commands/validate-commit.js.map +1 -0
  508. package/public/cli/commands/watch-bugs.d.ts +8 -0
  509. package/public/cli/commands/watch-bugs.d.ts.map +1 -0
  510. package/public/cli/commands/watch-bugs.js +61 -0
  511. package/public/cli/commands/watch-bugs.js.map +1 -0
  512. package/public/cli/commands/watch.d.ts +12 -0
  513. package/public/cli/commands/watch.d.ts.map +1 -0
  514. package/public/cli/commands/watch.js +193 -0
  515. package/public/cli/commands/watch.js.map +1 -0
  516. package/public/cli/commands/webhooks-debug.d.ts +3 -0
  517. package/public/cli/commands/webhooks-debug.d.ts.map +1 -0
  518. package/public/cli/commands/webhooks-debug.js +209 -0
  519. package/public/cli/commands/webhooks-debug.js.map +1 -0
  520. package/public/cli/commands/workflow.d.ts +8 -0
  521. package/public/cli/commands/workflow.d.ts.map +1 -0
  522. package/public/cli/commands/workflow.js +67 -0
  523. package/public/cli/commands/workflow.js.map +1 -0
  524. package/public/cli/index.d.ts +7 -0
  525. package/public/cli/index.d.ts.map +1 -0
  526. package/public/cli/index.js +375 -0
  527. package/public/cli/index.js.map +1 -0
  528. package/public/cli/orchestrator.d.ts +10 -0
  529. package/public/cli/orchestrator.d.ts.map +1 -0
  530. package/public/cli/orchestrator.js +183 -0
  531. package/public/cli/orchestrator.js.map +1 -0
  532. package/public/cli/project-list.d.ts +9 -0
  533. package/public/cli/project-list.d.ts.map +1 -0
  534. package/public/cli/project-list.js +37 -0
  535. package/public/cli/project-list.js.map +1 -0
  536. package/public/cli/utils/auth-helper.d.ts +28 -0
  537. package/public/cli/utils/auth-helper.d.ts.map +1 -0
  538. package/public/cli/utils/auth-helper.js +83 -0
  539. package/public/cli/utils/auth-helper.js.map +1 -0
  540. package/public/cli/utils/get-cli-client.d.ts +13 -0
  541. package/public/cli/utils/get-cli-client.d.ts.map +1 -0
  542. package/public/cli/utils/get-cli-client.js +81 -0
  543. package/public/cli/utils/get-cli-client.js.map +1 -0
  544. package/public/cli/utils/oauth-cli-helper.d.ts +32 -0
  545. package/public/cli/utils/oauth-cli-helper.d.ts.map +1 -0
  546. package/public/cli/utils/oauth-cli-helper.js +226 -0
  547. package/public/cli/utils/oauth-cli-helper.js.map +1 -0
  548. package/public/cli/utils/session-reader.d.ts +14 -0
  549. package/public/cli/utils/session-reader.d.ts.map +1 -0
  550. package/public/cli/utils/session-reader.js +48 -0
  551. package/public/cli/utils/session-reader.js.map +1 -0
  552. package/public/cli/utils/table.d.ts +35 -0
  553. package/public/cli/utils/table.d.ts.map +1 -0
  554. package/public/cli/utils/table.js +179 -0
  555. package/public/cli/utils/table.js.map +1 -0
  556. package/public/client/errors.d.ts +63 -0
  557. package/public/client/errors.d.ts.map +1 -0
  558. package/public/client/errors.js +219 -0
  559. package/public/client/errors.js.map +1 -0
  560. package/public/client/jira-client.d.ts +153 -0
  561. package/public/client/jira-client.d.ts.map +1 -0
  562. package/public/client/jira-client.js +636 -0
  563. package/public/client/jira-client.js.map +1 -0
  564. package/public/client/jira-debug.d.ts +27 -0
  565. package/public/client/jira-debug.d.ts.map +1 -0
  566. package/public/client/jira-debug.js +63 -0
  567. package/public/client/jira-debug.js.map +1 -0
  568. package/public/client/jira-errors.d.ts +26 -0
  569. package/public/client/jira-errors.d.ts.map +1 -0
  570. package/public/client/jira-errors.js +46 -0
  571. package/public/client/jira-errors.js.map +1 -0
  572. package/public/client/jira-sprint.d.ts +39 -0
  573. package/public/client/jira-sprint.d.ts.map +1 -0
  574. package/public/client/jira-sprint.js +187 -0
  575. package/public/client/jira-sprint.js.map +1 -0
  576. package/public/client/jira-user.d.ts +43 -0
  577. package/public/client/jira-user.d.ts.map +1 -0
  578. package/public/client/jira-user.js +96 -0
  579. package/public/client/jira-user.js.map +1 -0
  580. package/public/client/resolve-reporter.d.ts +27 -0
  581. package/public/client/resolve-reporter.d.ts.map +1 -0
  582. package/public/client/resolve-reporter.js +54 -0
  583. package/public/client/resolve-reporter.js.map +1 -0
  584. package/public/client/ticket-mate-client.d.ts +202 -0
  585. package/public/client/ticket-mate-client.d.ts.map +1 -0
  586. package/public/client/ticket-mate-client.js +280 -0
  587. package/public/client/ticket-mate-client.js.map +1 -0
  588. package/public/components/keyboard/CommandPalette.d.ts +2 -0
  589. package/public/components/keyboard/CommandPalette.d.ts.map +1 -0
  590. package/public/components/keyboard/CommandPalette.js +123 -0
  591. package/public/components/keyboard/CommandPalette.js.map +1 -0
  592. package/public/components/keyboard/GlobalShortcuts.d.ts +2 -0
  593. package/public/components/keyboard/GlobalShortcuts.d.ts.map +1 -0
  594. package/public/components/keyboard/GlobalShortcuts.js +32 -0
  595. package/public/components/keyboard/GlobalShortcuts.js.map +1 -0
  596. package/public/config/auth-mode.d.ts +38 -0
  597. package/public/config/auth-mode.d.ts.map +1 -0
  598. package/public/config/auth-mode.js +125 -0
  599. package/public/config/auth-mode.js.map +1 -0
  600. package/public/config/config-loader.d.ts +142 -0
  601. package/public/config/config-loader.d.ts.map +1 -0
  602. package/public/config/config-loader.js +247 -0
  603. package/public/config/config-loader.js.map +1 -0
  604. package/public/config/config-wizard.d.ts +58 -0
  605. package/public/config/config-wizard.d.ts.map +1 -0
  606. package/public/config/config-wizard.js +147 -0
  607. package/public/config/config-wizard.js.map +1 -0
  608. package/public/config/config.d.ts +79 -0
  609. package/public/config/config.d.ts.map +1 -0
  610. package/public/config/config.js +462 -0
  611. package/public/config/config.js.map +1 -0
  612. package/public/config/jira-mate-config.types.d.ts +27 -0
  613. package/public/config/jira-mate-config.types.d.ts.map +1 -0
  614. package/public/config/jira-mate-config.types.js +7 -0
  615. package/public/config/jira-mate-config.types.js.map +1 -0
  616. package/public/config/jira-pat-config.d.ts +44 -0
  617. package/public/config/jira-pat-config.d.ts.map +1 -0
  618. package/public/config/jira-pat-config.js +78 -0
  619. package/public/config/jira-pat-config.js.map +1 -0
  620. package/public/config/jiraConnection.d.ts +81 -0
  621. package/public/config/jiraConnection.d.ts.map +1 -0
  622. package/public/config/jiraConnection.js +207 -0
  623. package/public/config/jiraConnection.js.map +1 -0
  624. package/public/config/jiraCredentials.d.ts +20 -0
  625. package/public/config/jiraCredentials.d.ts.map +1 -0
  626. package/public/config/jiraCredentials.js +35 -0
  627. package/public/config/jiraCredentials.js.map +1 -0
  628. package/public/config/jiraProject.d.ts +32 -0
  629. package/public/config/jiraProject.d.ts.map +1 -0
  630. package/public/config/jiraProject.js +72 -0
  631. package/public/config/jiraProject.js.map +1 -0
  632. package/public/config/loadJiraMateConfig.d.ts +24 -0
  633. package/public/config/loadJiraMateConfig.d.ts.map +1 -0
  634. package/public/config/loadJiraMateConfig.js +100 -0
  635. package/public/config/loadJiraMateConfig.js.map +1 -0
  636. package/public/config/pricing.d.ts +65 -0
  637. package/public/config/pricing.d.ts.map +1 -0
  638. package/public/config/pricing.js +166 -0
  639. package/public/config/pricing.js.map +1 -0
  640. package/public/config/project-mapping.d.ts +36 -0
  641. package/public/config/project-mapping.d.ts.map +1 -0
  642. package/public/config/project-mapping.js +136 -0
  643. package/public/config/project-mapping.js.map +1 -0
  644. package/public/config/project-store.d.ts +35 -0
  645. package/public/config/project-store.d.ts.map +1 -0
  646. package/public/config/project-store.js +99 -0
  647. package/public/config/project-store.js.map +1 -0
  648. package/public/config/scanMonorepo.d.ts +23 -0
  649. package/public/config/scanMonorepo.d.ts.map +1 -0
  650. package/public/config/scanMonorepo.js +96 -0
  651. package/public/config/scanMonorepo.js.map +1 -0
  652. package/public/config/ticket-mate-config.types.d.ts +139 -0
  653. package/public/config/ticket-mate-config.types.d.ts.map +1 -0
  654. package/public/config/ticket-mate-config.types.js +8 -0
  655. package/public/config/ticket-mate-config.types.js.map +1 -0
  656. package/public/diff/diff-engine.d.ts +40 -0
  657. package/public/diff/diff-engine.d.ts.map +1 -0
  658. package/public/diff/diff-engine.js +222 -0
  659. package/public/diff/diff-engine.js.map +1 -0
  660. package/public/export/export.d.ts +67 -0
  661. package/public/export/export.d.ts.map +1 -0
  662. package/public/export/export.js +208 -0
  663. package/public/export/export.js.map +1 -0
  664. package/public/fast-tasks/index.d.ts +3 -0
  665. package/public/fast-tasks/index.d.ts.map +1 -0
  666. package/public/fast-tasks/index.js +3 -0
  667. package/public/fast-tasks/index.js.map +1 -0
  668. package/public/fast-tasks/storage.d.ts +38 -0
  669. package/public/fast-tasks/storage.d.ts.map +1 -0
  670. package/public/fast-tasks/storage.js +126 -0
  671. package/public/fast-tasks/storage.js.map +1 -0
  672. package/public/fast-tasks/types.d.ts +47 -0
  673. package/public/fast-tasks/types.d.ts.map +1 -0
  674. package/public/fast-tasks/types.js +7 -0
  675. package/public/fast-tasks/types.js.map +1 -0
  676. package/public/fields/field-generators.d.ts +33 -0
  677. package/public/fields/field-generators.d.ts.map +1 -0
  678. package/public/fields/field-generators.js +162 -0
  679. package/public/fields/field-generators.js.map +1 -0
  680. package/public/fields/field-mapper.d.ts +87 -0
  681. package/public/fields/field-mapper.d.ts.map +1 -0
  682. package/public/fields/field-mapper.js +231 -0
  683. package/public/fields/field-mapper.js.map +1 -0
  684. package/public/fields/field-sync.d.ts +45 -0
  685. package/public/fields/field-sync.d.ts.map +1 -0
  686. package/public/fields/field-sync.js +98 -0
  687. package/public/fields/field-sync.js.map +1 -0
  688. package/public/fields/index.d.ts +9 -0
  689. package/public/fields/index.d.ts.map +1 -0
  690. package/public/fields/index.js +9 -0
  691. package/public/fields/index.js.map +1 -0
  692. package/public/fields/llm-generator.d.ts +28 -0
  693. package/public/fields/llm-generator.d.ts.map +1 -0
  694. package/public/fields/llm-generator.js +90 -0
  695. package/public/fields/llm-generator.js.map +1 -0
  696. package/public/git/branch-generator.d.ts +40 -0
  697. package/public/git/branch-generator.d.ts.map +1 -0
  698. package/public/git/branch-generator.js +93 -0
  699. package/public/git/branch-generator.js.map +1 -0
  700. package/public/git/branch-validation.d.ts +28 -0
  701. package/public/git/branch-validation.d.ts.map +1 -0
  702. package/public/git/branch-validation.js +97 -0
  703. package/public/git/branch-validation.js.map +1 -0
  704. package/public/git/commit-validation.d.ts +32 -0
  705. package/public/git/commit-validation.d.ts.map +1 -0
  706. package/public/git/commit-validation.js +90 -0
  707. package/public/git/commit-validation.js.map +1 -0
  708. package/public/import/import.d.ts +49 -0
  709. package/public/import/import.d.ts.map +1 -0
  710. package/public/import/import.js +193 -0
  711. package/public/import/import.js.map +1 -0
  712. package/public/index.d.ts +120 -0
  713. package/public/index.d.ts.map +1 -0
  714. package/public/index.js +161 -0
  715. package/public/index.js.map +1 -0
  716. package/public/instrumentation.d.ts +8 -0
  717. package/public/instrumentation.d.ts.map +1 -0
  718. package/public/instrumentation.js +14 -0
  719. package/public/instrumentation.js.map +1 -0
  720. package/public/integrations/orchestrator-client.d.ts +69 -0
  721. package/public/integrations/orchestrator-client.d.ts.map +1 -0
  722. package/public/integrations/orchestrator-client.js +151 -0
  723. package/public/integrations/orchestrator-client.js.map +1 -0
  724. package/public/integrations/orchestrator-work-trigger.d.ts +54 -0
  725. package/public/integrations/orchestrator-work-trigger.d.ts.map +1 -0
  726. package/public/integrations/orchestrator-work-trigger.js +184 -0
  727. package/public/integrations/orchestrator-work-trigger.js.map +1 -0
  728. package/public/jira/jiraClient.d.ts +19 -0
  729. package/public/jira/jiraClient.d.ts.map +1 -0
  730. package/public/jira/jiraClient.js +144 -0
  731. package/public/jira/jiraClient.js.map +1 -0
  732. package/public/jira-management/boards.d.ts +80 -0
  733. package/public/jira-management/boards.d.ts.map +1 -0
  734. package/public/jira-management/boards.js +306 -0
  735. package/public/jira-management/boards.js.map +1 -0
  736. package/public/jira-management/cursor-board.d.ts +37 -0
  737. package/public/jira-management/cursor-board.d.ts.map +1 -0
  738. package/public/jira-management/cursor-board.js +222 -0
  739. package/public/jira-management/cursor-board.js.map +1 -0
  740. package/public/jira-management/custom-fields.d.ts +32 -0
  741. package/public/jira-management/custom-fields.d.ts.map +1 -0
  742. package/public/jira-management/custom-fields.js +94 -0
  743. package/public/jira-management/custom-fields.js.map +1 -0
  744. package/public/jira-management/epics.d.ts +25 -0
  745. package/public/jira-management/epics.d.ts.map +1 -0
  746. package/public/jira-management/epics.js +98 -0
  747. package/public/jira-management/epics.js.map +1 -0
  748. package/public/jira-management/index.d.ts +19 -0
  749. package/public/jira-management/index.d.ts.map +1 -0
  750. package/public/jira-management/index.js +19 -0
  751. package/public/jira-management/index.js.map +1 -0
  752. package/public/jira-management/labels.d.ts +35 -0
  753. package/public/jira-management/labels.d.ts.map +1 -0
  754. package/public/jira-management/labels.js +153 -0
  755. package/public/jira-management/labels.js.map +1 -0
  756. package/public/jira-management/project-templates.d.ts +48 -0
  757. package/public/jira-management/project-templates.d.ts.map +1 -0
  758. package/public/jira-management/project-templates.js +120 -0
  759. package/public/jira-management/project-templates.js.map +1 -0
  760. package/public/jira-management/projects.d.ts +45 -0
  761. package/public/jira-management/projects.d.ts.map +1 -0
  762. package/public/jira-management/projects.js +127 -0
  763. package/public/jira-management/projects.js.map +1 -0
  764. package/public/jira-management/statuses.d.ts +46 -0
  765. package/public/jira-management/statuses.d.ts.map +1 -0
  766. package/public/jira-management/statuses.js +116 -0
  767. package/public/jira-management/statuses.js.map +1 -0
  768. package/public/jira-management/templates.d.ts +68 -0
  769. package/public/jira-management/templates.d.ts.map +1 -0
  770. package/public/jira-management/templates.js +244 -0
  771. package/public/jira-management/templates.js.map +1 -0
  772. package/public/jira-management/workflow-columns.d.ts +43 -0
  773. package/public/jira-management/workflow-columns.d.ts.map +1 -0
  774. package/public/jira-management/workflow-columns.js +195 -0
  775. package/public/jira-management/workflow-columns.js.map +1 -0
  776. package/public/jira-notes/index.d.ts +3 -0
  777. package/public/jira-notes/index.d.ts.map +1 -0
  778. package/public/jira-notes/index.js +5 -0
  779. package/public/jira-notes/index.js.map +1 -0
  780. package/public/jira-notes/lib/jiraNotesClient.d.ts +18 -0
  781. package/public/jira-notes/lib/jiraNotesClient.d.ts.map +1 -0
  782. package/public/jira-notes/lib/jiraNotesClient.js +61 -0
  783. package/public/jira-notes/lib/jiraNotesClient.js.map +1 -0
  784. package/public/jira-notes/lib/jiraNotesTypes.d.ts +28 -0
  785. package/public/jira-notes/lib/jiraNotesTypes.d.ts.map +1 -0
  786. package/public/jira-notes/lib/jiraNotesTypes.js +2 -0
  787. package/public/jira-notes/lib/jiraNotesTypes.js.map +1 -0
  788. package/public/lib/ai/ai-errors.d.ts +49 -0
  789. package/public/lib/ai/ai-errors.d.ts.map +1 -0
  790. package/public/lib/ai/ai-errors.js +115 -0
  791. package/public/lib/ai/ai-errors.js.map +1 -0
  792. package/public/lib/ai/llmRouter.d.ts +56 -0
  793. package/public/lib/ai/llmRouter.d.ts.map +1 -0
  794. package/public/lib/ai/llmRouter.js +190 -0
  795. package/public/lib/ai/llmRouter.js.map +1 -0
  796. package/public/lib/ai/models.d.ts +56 -0
  797. package/public/lib/ai/models.d.ts.map +1 -0
  798. package/public/lib/ai/models.js +84 -0
  799. package/public/lib/ai/models.js.map +1 -0
  800. package/public/lib/ai/openaiClient.d.ts +31 -0
  801. package/public/lib/ai/openaiClient.d.ts.map +1 -0
  802. package/public/lib/ai/openaiClient.js +92 -0
  803. package/public/lib/ai/openaiClient.js.map +1 -0
  804. package/public/lib/ai/planLimits.d.ts +43 -0
  805. package/public/lib/ai/planLimits.d.ts.map +1 -0
  806. package/public/lib/ai/planLimits.js +154 -0
  807. package/public/lib/ai/planLimits.js.map +1 -0
  808. package/public/lib/ai/priceConfig.d.ts +53 -0
  809. package/public/lib/ai/priceConfig.d.ts.map +1 -0
  810. package/public/lib/ai/priceConfig.js +111 -0
  811. package/public/lib/ai/priceConfig.js.map +1 -0
  812. package/public/lib/ai/provider.d.ts +63 -0
  813. package/public/lib/ai/provider.d.ts.map +1 -0
  814. package/public/lib/ai/provider.js +199 -0
  815. package/public/lib/ai/provider.js.map +1 -0
  816. package/public/lib/ai/replitClient.d.ts +44 -0
  817. package/public/lib/ai/replitClient.d.ts.map +1 -0
  818. package/public/lib/ai/replitClient.js +88 -0
  819. package/public/lib/ai/replitClient.js.map +1 -0
  820. package/public/lib/ai/usageLogger.d.ts +30 -0
  821. package/public/lib/ai/usageLogger.d.ts.map +1 -0
  822. package/public/lib/ai/usageLogger.js +113 -0
  823. package/public/lib/ai/usageLogger.js.map +1 -0
  824. package/public/lib/auth/debug.d.ts +3 -0
  825. package/public/lib/auth/debug.d.ts.map +1 -0
  826. package/public/lib/auth/debug.js +12 -0
  827. package/public/lib/auth/debug.js.map +1 -0
  828. package/public/lib/auth/index.d.ts +2 -0
  829. package/public/lib/auth/index.d.ts.map +1 -0
  830. package/public/lib/auth/index.js +2 -0
  831. package/public/lib/auth/index.js.map +1 -0
  832. package/public/lib/auth/options.d.ts +16 -0
  833. package/public/lib/auth/options.d.ts.map +1 -0
  834. package/public/lib/auth/options.js +893 -0
  835. package/public/lib/auth/options.js.map +1 -0
  836. package/public/lib/auth/requireAuthPage.d.ts +23 -0
  837. package/public/lib/auth/requireAuthPage.d.ts.map +1 -0
  838. package/public/lib/auth/requireAuthPage.js +33 -0
  839. package/public/lib/auth/requireAuthPage.js.map +1 -0
  840. package/public/lib/auth/superadmin.d.ts +20 -0
  841. package/public/lib/auth/superadmin.d.ts.map +1 -0
  842. package/public/lib/auth/superadmin.js +40 -0
  843. package/public/lib/auth/superadmin.js.map +1 -0
  844. package/public/lib/auth/token-mutex.d.ts +20 -0
  845. package/public/lib/auth/token-mutex.d.ts.map +1 -0
  846. package/public/lib/auth/token-mutex.js +36 -0
  847. package/public/lib/auth/token-mutex.js.map +1 -0
  848. package/public/lib/automation/engine.d.ts +12 -0
  849. package/public/lib/automation/engine.d.ts.map +1 -0
  850. package/public/lib/automation/engine.js +150 -0
  851. package/public/lib/automation/engine.js.map +1 -0
  852. package/public/lib/dashboard-widgets.d.ts +22 -0
  853. package/public/lib/dashboard-widgets.d.ts.map +1 -0
  854. package/public/lib/dashboard-widgets.js +99 -0
  855. package/public/lib/dashboard-widgets.js.map +1 -0
  856. package/public/lib/data/templates/index.d.ts +16 -0
  857. package/public/lib/data/templates/index.d.ts.map +1 -0
  858. package/public/lib/data/templates/index.js +37 -0
  859. package/public/lib/data/templates/index.js.map +1 -0
  860. package/public/lib/data/templates/it-service.json +122 -0
  861. package/public/lib/data/templates/marketing.json +122 -0
  862. package/public/lib/data/templates/software.json +122 -0
  863. package/public/lib/docs.d.ts +14 -0
  864. package/public/lib/docs.d.ts.map +1 -0
  865. package/public/lib/docs.js +87 -0
  866. package/public/lib/docs.js.map +1 -0
  867. package/public/lib/email/client.d.ts +18 -0
  868. package/public/lib/email/client.d.ts.map +1 -0
  869. package/public/lib/email/client.js +31 -0
  870. package/public/lib/email/client.js.map +1 -0
  871. package/public/lib/email/templates/TeamInviteEmail.d.ts +12 -0
  872. package/public/lib/email/templates/TeamInviteEmail.d.ts.map +1 -0
  873. package/public/lib/email/templates/TeamInviteEmail.js +12 -0
  874. package/public/lib/email/templates/TeamInviteEmail.js.map +1 -0
  875. package/public/lib/encryption/webhook-encryption.d.ts +11 -0
  876. package/public/lib/encryption/webhook-encryption.d.ts.map +1 -0
  877. package/public/lib/encryption/webhook-encryption.js +46 -0
  878. package/public/lib/encryption/webhook-encryption.js.map +1 -0
  879. package/public/lib/encryption.d.ts +17 -0
  880. package/public/lib/encryption.d.ts.map +1 -0
  881. package/public/lib/encryption.js +65 -0
  882. package/public/lib/encryption.js.map +1 -0
  883. package/public/lib/env/baseUrl.d.ts +34 -0
  884. package/public/lib/env/baseUrl.d.ts.map +1 -0
  885. package/public/lib/env/baseUrl.js +51 -0
  886. package/public/lib/env/baseUrl.js.map +1 -0
  887. package/public/lib/env/externalUrl.d.ts +34 -0
  888. package/public/lib/env/externalUrl.d.ts.map +1 -0
  889. package/public/lib/env/externalUrl.js +66 -0
  890. package/public/lib/env/externalUrl.js.map +1 -0
  891. package/public/lib/env/server.d.ts +26 -0
  892. package/public/lib/env/server.d.ts.map +1 -0
  893. package/public/lib/env/server.js +45 -0
  894. package/public/lib/env/server.js.map +1 -0
  895. package/public/lib/env.d.ts +75 -0
  896. package/public/lib/env.d.ts.map +1 -0
  897. package/public/lib/env.js +108 -0
  898. package/public/lib/env.js.map +1 -0
  899. package/public/lib/events/jira-connect-events.d.ts +47 -0
  900. package/public/lib/events/jira-connect-events.d.ts.map +1 -0
  901. package/public/lib/events/jira-connect-events.js +104 -0
  902. package/public/lib/events/jira-connect-events.js.map +1 -0
  903. package/public/lib/git/local.d.ts +27 -0
  904. package/public/lib/git/local.d.ts.map +1 -0
  905. package/public/lib/git/local.js +100 -0
  906. package/public/lib/git/local.js.map +1 -0
  907. package/public/lib/git/remote.d.ts +18 -0
  908. package/public/lib/git/remote.d.ts.map +1 -0
  909. package/public/lib/git/remote.js +92 -0
  910. package/public/lib/git/remote.js.map +1 -0
  911. package/public/lib/github/user-client.d.ts +8 -0
  912. package/public/lib/github/user-client.d.ts.map +1 -0
  913. package/public/lib/github/user-client.js +23 -0
  914. package/public/lib/github/user-client.js.map +1 -0
  915. package/public/lib/github-public.d.ts +37 -0
  916. package/public/lib/github-public.d.ts.map +1 -0
  917. package/public/lib/github-public.js +120 -0
  918. package/public/lib/github-public.js.map +1 -0
  919. package/public/lib/integrations/teams/auth.d.ts +14 -0
  920. package/public/lib/integrations/teams/auth.d.ts.map +1 -0
  921. package/public/lib/integrations/teams/auth.js +46 -0
  922. package/public/lib/integrations/teams/auth.js.map +1 -0
  923. package/public/lib/integrations/teams/event-router.d.ts +15 -0
  924. package/public/lib/integrations/teams/event-router.d.ts.map +1 -0
  925. package/public/lib/integrations/teams/event-router.js +122 -0
  926. package/public/lib/integrations/teams/event-router.js.map +1 -0
  927. package/public/lib/integrations/teams/message-builder.d.ts +5 -0
  928. package/public/lib/integrations/teams/message-builder.d.ts.map +1 -0
  929. package/public/lib/integrations/teams/message-builder.js +19 -0
  930. package/public/lib/integrations/teams/message-builder.js.map +1 -0
  931. package/public/lib/integrations/teams/templates.d.ts +237 -0
  932. package/public/lib/integrations/teams/templates.d.ts.map +1 -0
  933. package/public/lib/integrations/teams/templates.js +237 -0
  934. package/public/lib/integrations/teams/templates.js.map +1 -0
  935. package/public/lib/integrations/teams/transformer.d.ts +39 -0
  936. package/public/lib/integrations/teams/transformer.d.ts.map +1 -0
  937. package/public/lib/integrations/teams/transformer.js +83 -0
  938. package/public/lib/integrations/teams/transformer.js.map +1 -0
  939. package/public/lib/integrations.d.ts +28 -0
  940. package/public/lib/integrations.d.ts.map +1 -0
  941. package/public/lib/integrations.js +40 -0
  942. package/public/lib/integrations.js.map +1 -0
  943. package/public/lib/invite/accept.d.ts +30 -0
  944. package/public/lib/invite/accept.d.ts.map +1 -0
  945. package/public/lib/invite/accept.js +196 -0
  946. package/public/lib/invite/accept.js.map +1 -0
  947. package/public/lib/invite/service.d.ts +11 -0
  948. package/public/lib/invite/service.d.ts.map +1 -0
  949. package/public/lib/invite/service.js +87 -0
  950. package/public/lib/invite/service.js.map +1 -0
  951. package/public/lib/invite/types.d.ts +19 -0
  952. package/public/lib/invite/types.d.ts.map +1 -0
  953. package/public/lib/invite/types.js +2 -0
  954. package/public/lib/invite/types.js.map +1 -0
  955. package/public/lib/jql/jqlBuilder.d.ts +47 -0
  956. package/public/lib/jql/jqlBuilder.d.ts.map +1 -0
  957. package/public/lib/jql/jqlBuilder.js +258 -0
  958. package/public/lib/jql/jqlBuilder.js.map +1 -0
  959. package/public/lib/jql/useJqlBuilder.d.ts +12 -0
  960. package/public/lib/jql/useJqlBuilder.d.ts.map +1 -0
  961. package/public/lib/jql/useJqlBuilder.js +97 -0
  962. package/public/lib/jql/useJqlBuilder.js.map +1 -0
  963. package/public/lib/keyboard/ShortcutContext.d.ts +7 -0
  964. package/public/lib/keyboard/ShortcutContext.d.ts.map +1 -0
  965. package/public/lib/keyboard/ShortcutContext.js +37 -0
  966. package/public/lib/keyboard/ShortcutContext.js.map +1 -0
  967. package/public/lib/keyboard/types.d.ts +22 -0
  968. package/public/lib/keyboard/types.d.ts.map +1 -0
  969. package/public/lib/keyboard/types.js +2 -0
  970. package/public/lib/keyboard/types.js.map +1 -0
  971. package/public/lib/keyboard/useShortcut.d.ts +12 -0
  972. package/public/lib/keyboard/useShortcut.d.ts.map +1 -0
  973. package/public/lib/keyboard/useShortcut.js +55 -0
  974. package/public/lib/keyboard/useShortcut.js.map +1 -0
  975. package/public/lib/markdown/fallback-handler.d.ts +25 -0
  976. package/public/lib/markdown/fallback-handler.d.ts.map +1 -0
  977. package/public/lib/markdown/fallback-handler.js +104 -0
  978. package/public/lib/markdown/fallback-handler.js.map +1 -0
  979. package/public/lib/notifications-cli.d.ts +16 -0
  980. package/public/lib/notifications-cli.d.ts.map +1 -0
  981. package/public/lib/notifications-cli.js +36 -0
  982. package/public/lib/notifications-cli.js.map +1 -0
  983. package/public/lib/notifications.d.ts +77 -0
  984. package/public/lib/notifications.d.ts.map +1 -0
  985. package/public/lib/notifications.js +161 -0
  986. package/public/lib/notifications.js.map +1 -0
  987. package/public/lib/ollama.d.ts +94 -0
  988. package/public/lib/ollama.d.ts.map +1 -0
  989. package/public/lib/ollama.js +249 -0
  990. package/public/lib/ollama.js.map +1 -0
  991. package/public/lib/orcMcp/client.d.ts +55 -0
  992. package/public/lib/orcMcp/client.d.ts.map +1 -0
  993. package/public/lib/orcMcp/client.js +134 -0
  994. package/public/lib/orcMcp/client.js.map +1 -0
  995. package/public/lib/orcMcp/execution.d.ts +24 -0
  996. package/public/lib/orcMcp/execution.d.ts.map +1 -0
  997. package/public/lib/orcMcp/execution.js +19 -0
  998. package/public/lib/orcMcp/execution.js.map +1 -0
  999. package/public/lib/password.d.ts +12 -0
  1000. package/public/lib/password.d.ts.map +1 -0
  1001. package/public/lib/password.js +18 -0
  1002. package/public/lib/password.js.map +1 -0
  1003. package/public/lib/platform-event-bus.d.ts +15 -0
  1004. package/public/lib/platform-event-bus.d.ts.map +1 -0
  1005. package/public/lib/platform-event-bus.js +46 -0
  1006. package/public/lib/platform-event-bus.js.map +1 -0
  1007. package/public/lib/prisma.d.ts +23 -0
  1008. package/public/lib/prisma.d.ts.map +1 -0
  1009. package/public/lib/prisma.js +135 -0
  1010. package/public/lib/prisma.js.map +1 -0
  1011. package/public/lib/projects.d.ts +38 -0
  1012. package/public/lib/projects.d.ts.map +1 -0
  1013. package/public/lib/projects.js +91 -0
  1014. package/public/lib/projects.js.map +1 -0
  1015. package/public/lib/soft-failure.d.ts +38 -0
  1016. package/public/lib/soft-failure.d.ts.map +1 -0
  1017. package/public/lib/soft-failure.js +46 -0
  1018. package/public/lib/soft-failure.js.map +1 -0
  1019. package/public/lib/ticket-mate/dataLoader.d.ts +52 -0
  1020. package/public/lib/ticket-mate/dataLoader.d.ts.map +1 -0
  1021. package/public/lib/ticket-mate/dataLoader.js +128 -0
  1022. package/public/lib/ticket-mate/dataLoader.js.map +1 -0
  1023. package/public/lib/ticket-mate/filtering.d.ts +33 -0
  1024. package/public/lib/ticket-mate/filtering.d.ts.map +1 -0
  1025. package/public/lib/ticket-mate/filtering.js +190 -0
  1026. package/public/lib/ticket-mate/filtering.js.map +1 -0
  1027. package/public/lib/ticket-mate/logging.d.ts +42 -0
  1028. package/public/lib/ticket-mate/logging.d.ts.map +1 -0
  1029. package/public/lib/ticket-mate/logging.js +83 -0
  1030. package/public/lib/ticket-mate/logging.js.map +1 -0
  1031. package/public/lib/ticket-mate/repoRoot.d.ts +15 -0
  1032. package/public/lib/ticket-mate/repoRoot.d.ts.map +1 -0
  1033. package/public/lib/ticket-mate/repoRoot.js +34 -0
  1034. package/public/lib/ticket-mate/repoRoot.js.map +1 -0
  1035. package/public/lib/webhook-events-store.d.ts +23 -0
  1036. package/public/lib/webhook-events-store.d.ts.map +1 -0
  1037. package/public/lib/webhook-events-store.js +39 -0
  1038. package/public/lib/webhook-events-store.js.map +1 -0
  1039. package/public/lib/webhook-notifications.d.ts +32 -0
  1040. package/public/lib/webhook-notifications.d.ts.map +1 -0
  1041. package/public/lib/webhook-notifications.js +107 -0
  1042. package/public/lib/webhook-notifications.js.map +1 -0
  1043. package/public/lib/webhooks/delivery.d.ts +11 -0
  1044. package/public/lib/webhooks/delivery.d.ts.map +1 -0
  1045. package/public/lib/webhooks/delivery.js +54 -0
  1046. package/public/lib/webhooks/delivery.js.map +1 -0
  1047. package/public/lib/workflow-compiler.d.ts +6 -0
  1048. package/public/lib/workflow-compiler.d.ts.map +1 -0
  1049. package/public/lib/workflow-compiler.js +110 -0
  1050. package/public/lib/workflow-compiler.js.map +1 -0
  1051. package/public/observability/metrics.d.ts +52 -0
  1052. package/public/observability/metrics.d.ts.map +1 -0
  1053. package/public/observability/metrics.js +177 -0
  1054. package/public/observability/metrics.js.map +1 -0
  1055. package/public/pr/pr-builder.d.ts +16 -0
  1056. package/public/pr/pr-builder.d.ts.map +1 -0
  1057. package/public/pr/pr-builder.js +117 -0
  1058. package/public/pr/pr-builder.js.map +1 -0
  1059. package/public/progress/task-manager.d.ts +53 -0
  1060. package/public/progress/task-manager.d.ts.map +1 -0
  1061. package/public/progress/task-manager.js +204 -0
  1062. package/public/progress/task-manager.js.map +1 -0
  1063. package/public/progress/template.d.ts +38 -0
  1064. package/public/progress/template.d.ts.map +1 -0
  1065. package/public/progress/template.js +232 -0
  1066. package/public/progress/template.js.map +1 -0
  1067. package/public/prompts/prompt-builder.d.ts +11 -0
  1068. package/public/prompts/prompt-builder.d.ts.map +1 -0
  1069. package/public/prompts/prompt-builder.js +161 -0
  1070. package/public/prompts/prompt-builder.js.map +1 -0
  1071. package/public/research/types.d.ts +158 -0
  1072. package/public/research/types.d.ts.map +1 -0
  1073. package/public/research/types.js +5 -0
  1074. package/public/research/types.js.map +1 -0
  1075. package/public/scripts/seed-epics.d.ts +2 -0
  1076. package/public/scripts/seed-epics.d.ts.map +1 -0
  1077. package/public/scripts/seed-epics.js +88 -0
  1078. package/public/scripts/seed-epics.js.map +1 -0
  1079. package/public/search/search-engine.d.ts +75 -0
  1080. package/public/search/search-engine.d.ts.map +1 -0
  1081. package/public/search/search-engine.js +176 -0
  1082. package/public/search/search-engine.js.map +1 -0
  1083. package/public/server/auth/account-provisioning.d.ts +16 -0
  1084. package/public/server/auth/account-provisioning.d.ts.map +1 -0
  1085. package/public/server/auth/account-provisioning.js +109 -0
  1086. package/public/server/auth/account-provisioning.js.map +1 -0
  1087. package/public/server/auth/atlassian-user-mapping.d.ts +36 -0
  1088. package/public/server/auth/atlassian-user-mapping.d.ts.map +1 -0
  1089. package/public/server/auth/atlassian-user-mapping.js +97 -0
  1090. package/public/server/auth/atlassian-user-mapping.js.map +1 -0
  1091. package/public/server/auth.d.ts +14 -0
  1092. package/public/server/auth.d.ts.map +1 -0
  1093. package/public/server/auth.js +35 -0
  1094. package/public/server/auth.js.map +1 -0
  1095. package/public/server/jira/client.d.ts +17 -0
  1096. package/public/server/jira/client.d.ts.map +1 -0
  1097. package/public/server/jira/client.js +55 -0
  1098. package/public/server/jira/client.js.map +1 -0
  1099. package/public/server/jira/cloudInfo.d.ts +30 -0
  1100. package/public/server/jira/cloudInfo.d.ts.map +1 -0
  1101. package/public/server/jira/cloudInfo.js +152 -0
  1102. package/public/server/jira/cloudInfo.js.map +1 -0
  1103. package/public/server/jira/ensure-user.d.ts +20 -0
  1104. package/public/server/jira/ensure-user.d.ts.map +1 -0
  1105. package/public/server/jira/ensure-user.js +59 -0
  1106. package/public/server/jira/ensure-user.js.map +1 -0
  1107. package/public/server/jira/errors.d.ts +18 -0
  1108. package/public/server/jira/errors.d.ts.map +1 -0
  1109. package/public/server/jira/errors.js +30 -0
  1110. package/public/server/jira/errors.js.map +1 -0
  1111. package/public/server/jira/fieldResolver.d.ts +76 -0
  1112. package/public/server/jira/fieldResolver.d.ts.map +1 -0
  1113. package/public/server/jira/fieldResolver.js +320 -0
  1114. package/public/server/jira/fieldResolver.js.map +1 -0
  1115. package/public/server/jira/jiraClient.d.ts +84 -0
  1116. package/public/server/jira/jiraClient.d.ts.map +1 -0
  1117. package/public/server/jira/jiraClient.js +330 -0
  1118. package/public/server/jira/jiraClient.js.map +1 -0
  1119. package/public/server/jira/tokens.d.ts +37 -0
  1120. package/public/server/jira/tokens.d.ts.map +1 -0
  1121. package/public/server/jira/tokens.js +161 -0
  1122. package/public/server/jira/tokens.js.map +1 -0
  1123. package/public/server/jira/unified-client.d.ts +48 -0
  1124. package/public/server/jira/unified-client.d.ts.map +1 -0
  1125. package/public/server/jira/unified-client.js +227 -0
  1126. package/public/server/jira/unified-client.js.map +1 -0
  1127. package/public/server/mcp/execution.d.ts +22 -0
  1128. package/public/server/mcp/execution.d.ts.map +1 -0
  1129. package/public/server/mcp/execution.js +15 -0
  1130. package/public/server/mcp/execution.js.map +1 -0
  1131. package/public/server/openai/client.d.ts +23 -0
  1132. package/public/server/openai/client.d.ts.map +1 -0
  1133. package/public/server/openai/client.js +43 -0
  1134. package/public/server/openai/client.js.map +1 -0
  1135. package/public/server/startup/orcMcpHealthCheck.d.ts +8 -0
  1136. package/public/server/startup/orcMcpHealthCheck.d.ts.map +1 -0
  1137. package/public/server/startup/orcMcpHealthCheck.js +24 -0
  1138. package/public/server/startup/orcMcpHealthCheck.js.map +1 -0
  1139. package/public/services/config.service.d.ts +2 -0
  1140. package/public/services/config.service.d.ts.map +1 -0
  1141. package/public/services/config.service.js +3 -0
  1142. package/public/services/config.service.js.map +1 -0
  1143. package/public/services/index.d.ts +20 -0
  1144. package/public/services/index.d.ts.map +1 -0
  1145. package/public/services/index.js +21 -0
  1146. package/public/services/index.js.map +1 -0
  1147. package/public/services/issues.service.d.ts +2 -0
  1148. package/public/services/issues.service.d.ts.map +1 -0
  1149. package/public/services/issues.service.js +3 -0
  1150. package/public/services/issues.service.js.map +1 -0
  1151. package/public/services/jiraBootstrap.d.ts +18 -0
  1152. package/public/services/jiraBootstrap.d.ts.map +1 -0
  1153. package/public/services/jiraBootstrap.js +288 -0
  1154. package/public/services/jiraBootstrap.js.map +1 -0
  1155. package/public/services/jiraProjectCheck.d.ts +60 -0
  1156. package/public/services/jiraProjectCheck.d.ts.map +1 -0
  1157. package/public/services/jiraProjectCheck.js +264 -0
  1158. package/public/services/jiraProjectCheck.js.map +1 -0
  1159. package/public/services/prompts.service.d.ts +2 -0
  1160. package/public/services/prompts.service.d.ts.map +1 -0
  1161. package/public/services/prompts.service.js +3 -0
  1162. package/public/services/prompts.service.js.map +1 -0
  1163. package/public/services/sync.service.d.ts +2 -0
  1164. package/public/services/sync.service.d.ts.map +1 -0
  1165. package/public/services/sync.service.js +3 -0
  1166. package/public/services/sync.service.js.map +1 -0
  1167. package/public/shared/migrations/bugsMigrations.d.ts +46 -0
  1168. package/public/shared/migrations/bugsMigrations.d.ts.map +1 -0
  1169. package/public/shared/migrations/bugsMigrations.js +252 -0
  1170. package/public/shared/migrations/bugsMigrations.js.map +1 -0
  1171. package/public/shared/migrations/ticketMateMigrations.d.ts +53 -0
  1172. package/public/shared/migrations/ticketMateMigrations.d.ts.map +1 -0
  1173. package/public/shared/migrations/ticketMateMigrations.js +223 -0
  1174. package/public/shared/migrations/ticketMateMigrations.js.map +1 -0
  1175. package/public/shared/ticketMateHelpers.d.ts +46 -0
  1176. package/public/shared/ticketMateHelpers.d.ts.map +1 -0
  1177. package/public/shared/ticketMateHelpers.js +197 -0
  1178. package/public/shared/ticketMateHelpers.js.map +1 -0
  1179. package/public/shared/ticketMateProjectLinks.d.ts +27 -0
  1180. package/public/shared/ticketMateProjectLinks.d.ts.map +1 -0
  1181. package/public/shared/ticketMateProjectLinks.js +64 -0
  1182. package/public/shared/ticketMateProjectLinks.js.map +1 -0
  1183. package/public/shared/ticketMateTypes.d.ts +155 -0
  1184. package/public/shared/ticketMateTypes.d.ts.map +1 -0
  1185. package/public/shared/ticketMateTypes.js +56 -0
  1186. package/public/shared/ticketMateTypes.js.map +1 -0
  1187. package/public/sync/authoritative-sync.d.ts +111 -0
  1188. package/public/sync/authoritative-sync.d.ts.map +1 -0
  1189. package/public/sync/authoritative-sync.js +459 -0
  1190. package/public/sync/authoritative-sync.js.map +1 -0
  1191. package/public/sync/ensure-jira-before-md.d.ts +34 -0
  1192. package/public/sync/ensure-jira-before-md.d.ts.map +1 -0
  1193. package/public/sync/ensure-jira-before-md.js +40 -0
  1194. package/public/sync/ensure-jira-before-md.js.map +1 -0
  1195. package/public/sync/epic-sync.d.ts +23 -0
  1196. package/public/sync/epic-sync.d.ts.map +1 -0
  1197. package/public/sync/epic-sync.js +77 -0
  1198. package/public/sync/epic-sync.js.map +1 -0
  1199. package/public/sync/index.d.ts +11 -0
  1200. package/public/sync/index.d.ts.map +1 -0
  1201. package/public/sync/index.js +92 -0
  1202. package/public/sync/index.js.map +1 -0
  1203. package/public/sync/reports.d.ts +9 -0
  1204. package/public/sync/reports.d.ts.map +1 -0
  1205. package/public/sync/reports.js +55 -0
  1206. package/public/sync/reports.js.map +1 -0
  1207. package/public/sync/status.d.ts +31 -0
  1208. package/public/sync/status.d.ts.map +1 -0
  1209. package/public/sync/status.js +100 -0
  1210. package/public/sync/status.js.map +1 -0
  1211. package/public/sync/sync-engine.d.ts +38 -0
  1212. package/public/sync/sync-engine.d.ts.map +1 -0
  1213. package/public/sync/sync-engine.js +166 -0
  1214. package/public/sync/sync-engine.js.map +1 -0
  1215. package/public/sync/ticket-sync.d.ts +25 -0
  1216. package/public/sync/ticket-sync.d.ts.map +1 -0
  1217. package/public/sync/ticket-sync.js +148 -0
  1218. package/public/sync/ticket-sync.js.map +1 -0
  1219. package/public/templates/template-engine.d.ts +86 -0
  1220. package/public/templates/template-engine.d.ts.map +1 -0
  1221. package/public/templates/template-engine.js +214 -0
  1222. package/public/templates/template-engine.js.map +1 -0
  1223. package/public/ticket-mate/bugs/loader.d.ts +30 -0
  1224. package/public/ticket-mate/bugs/loader.d.ts.map +1 -0
  1225. package/public/ticket-mate/bugs/loader.js +242 -0
  1226. package/public/ticket-mate/bugs/loader.js.map +1 -0
  1227. package/public/ticket-mate/bugs/paths.d.ts +12 -0
  1228. package/public/ticket-mate/bugs/paths.d.ts.map +1 -0
  1229. package/public/ticket-mate/bugs/paths.js +17 -0
  1230. package/public/ticket-mate/bugs/paths.js.map +1 -0
  1231. package/public/ticket-mate/bugs/types.d.ts +99 -0
  1232. package/public/ticket-mate/bugs/types.d.ts.map +1 -0
  1233. package/public/ticket-mate/bugs/types.js +9 -0
  1234. package/public/ticket-mate/bugs/types.js.map +1 -0
  1235. package/public/ticket-mate/errors.d.ts +57 -0
  1236. package/public/ticket-mate/errors.d.ts.map +1 -0
  1237. package/public/ticket-mate/errors.js +98 -0
  1238. package/public/ticket-mate/errors.js.map +1 -0
  1239. package/public/ticket-mate/fsConfig.d.ts +34 -0
  1240. package/public/ticket-mate/fsConfig.d.ts.map +1 -0
  1241. package/public/ticket-mate/fsConfig.js +68 -0
  1242. package/public/ticket-mate/fsConfig.js.map +1 -0
  1243. package/public/ticket-mate/fsHelpers.d.ts +34 -0
  1244. package/public/ticket-mate/fsHelpers.d.ts.map +1 -0
  1245. package/public/ticket-mate/fsHelpers.js +199 -0
  1246. package/public/ticket-mate/fsHelpers.js.map +1 -0
  1247. package/public/ticket-mate/fsLayout.d.ts +115 -0
  1248. package/public/ticket-mate/fsLayout.d.ts.map +1 -0
  1249. package/public/ticket-mate/fsLayout.js +282 -0
  1250. package/public/ticket-mate/fsLayout.js.map +1 -0
  1251. package/public/ticket-mate/fsTickets.d.ts +62 -0
  1252. package/public/ticket-mate/fsTickets.d.ts.map +1 -0
  1253. package/public/ticket-mate/fsTickets.js +303 -0
  1254. package/public/ticket-mate/fsTickets.js.map +1 -0
  1255. package/public/ticket-mate/replitWebhook.d.ts +13 -0
  1256. package/public/ticket-mate/replitWebhook.d.ts.map +1 -0
  1257. package/public/ticket-mate/replitWebhook.js +102 -0
  1258. package/public/ticket-mate/replitWebhook.js.map +1 -0
  1259. package/public/ticket-mate/types.d.ts +89 -0
  1260. package/public/ticket-mate/types.d.ts.map +1 -0
  1261. package/public/ticket-mate/types.js +11 -0
  1262. package/public/ticket-mate/types.js.map +1 -0
  1263. package/public/ticket-mate/webhookSigning.d.ts +12 -0
  1264. package/public/ticket-mate/webhookSigning.d.ts.map +1 -0
  1265. package/public/ticket-mate/webhookSigning.js +21 -0
  1266. package/public/ticket-mate/webhookSigning.js.map +1 -0
  1267. package/public/types/common.d.ts +59 -0
  1268. package/public/types/common.d.ts.map +1 -0
  1269. package/public/types/common.js +28 -0
  1270. package/public/types/common.js.map +1 -0
  1271. package/public/types/workflow.d.ts +35 -0
  1272. package/public/types/workflow.d.ts.map +1 -0
  1273. package/public/types/workflow.js +2 -0
  1274. package/public/types/workflow.js.map +1 -0
  1275. package/public/types.d.ts +311 -0
  1276. package/public/types.d.ts.map +1 -0
  1277. package/public/types.js +5 -0
  1278. package/public/types.js.map +1 -0
  1279. package/public/utils/adf.d.ts +45 -0
  1280. package/public/utils/adf.d.ts.map +1 -0
  1281. package/public/utils/adf.js +197 -0
  1282. package/public/utils/adf.js.map +1 -0
  1283. package/public/utils/bug-reporter.d.ts +39 -0
  1284. package/public/utils/bug-reporter.d.ts.map +1 -0
  1285. package/public/utils/bug-reporter.js +189 -0
  1286. package/public/utils/bug-reporter.js.map +1 -0
  1287. package/public/utils/filesystem.d.ts +32 -0
  1288. package/public/utils/filesystem.d.ts.map +1 -0
  1289. package/public/utils/filesystem.js +78 -0
  1290. package/public/utils/filesystem.js.map +1 -0
  1291. package/public/utils/formatCurrency.d.ts +11 -0
  1292. package/public/utils/formatCurrency.d.ts.map +1 -0
  1293. package/public/utils/formatCurrency.js +27 -0
  1294. package/public/utils/formatCurrency.js.map +1 -0
  1295. package/public/utils/instruction-writer.d.ts +35 -0
  1296. package/public/utils/instruction-writer.d.ts.map +1 -0
  1297. package/public/utils/instruction-writer.js +84 -0
  1298. package/public/utils/instruction-writer.js.map +1 -0
  1299. package/public/utils/jira-keys.d.ts +26 -0
  1300. package/public/utils/jira-keys.d.ts.map +1 -0
  1301. package/public/utils/jira-keys.js +46 -0
  1302. package/public/utils/jira-keys.js.map +1 -0
  1303. package/public/utils/jiraAvatar.d.ts +20 -0
  1304. package/public/utils/jiraAvatar.d.ts.map +1 -0
  1305. package/public/utils/jiraAvatar.js +78 -0
  1306. package/public/utils/jiraAvatar.js.map +1 -0
  1307. package/public/utils/logger.d.ts +33 -0
  1308. package/public/utils/logger.d.ts.map +1 -0
  1309. package/public/utils/logger.js +73 -0
  1310. package/public/utils/logger.js.map +1 -0
  1311. package/public/utils/path-migration.d.ts +7 -0
  1312. package/public/utils/path-migration.d.ts.map +1 -0
  1313. package/public/utils/path-migration.js +57 -0
  1314. package/public/utils/path-migration.js.map +1 -0
  1315. package/public/utils/progress-reporter.d.ts +39 -0
  1316. package/public/utils/progress-reporter.d.ts.map +1 -0
  1317. package/public/utils/progress-reporter.js +66 -0
  1318. package/public/utils/progress-reporter.js.map +1 -0
  1319. package/public/utils/project-code-generator.d.ts +88 -0
  1320. package/public/utils/project-code-generator.d.ts.map +1 -0
  1321. package/public/utils/project-code-generator.js +212 -0
  1322. package/public/utils/project-code-generator.js.map +1 -0
  1323. package/public/utils/retry.d.ts +20 -0
  1324. package/public/utils/retry.d.ts.map +1 -0
  1325. package/public/utils/retry.js +82 -0
  1326. package/public/utils/retry.js.map +1 -0
  1327. package/public/utils/slugify.d.ts +5 -0
  1328. package/public/utils/slugify.d.ts.map +1 -0
  1329. package/public/utils/slugify.js +13 -0
  1330. package/public/utils/slugify.js.map +1 -0
  1331. package/public/utils/string.d.ts +8 -0
  1332. package/public/utils/string.d.ts.map +1 -0
  1333. package/public/utils/string.js +19 -0
  1334. package/public/utils/string.js.map +1 -0
  1335. package/public/utils/ticket-template.d.ts +28 -0
  1336. package/public/utils/ticket-template.d.ts.map +1 -0
  1337. package/public/utils/ticket-template.js +55 -0
  1338. package/public/utils/ticket-template.js.map +1 -0
  1339. package/public/utils/validation.d.ts +33 -0
  1340. package/public/utils/validation.d.ts.map +1 -0
  1341. package/public/utils/validation.js +86 -0
  1342. package/public/utils/validation.js.map +1 -0
  1343. package/public/validation/brief-validator.d.ts +55 -0
  1344. package/public/validation/brief-validator.d.ts.map +1 -0
  1345. package/public/validation/brief-validator.js +168 -0
  1346. package/public/validation/brief-validator.js.map +1 -0
  1347. package/public/validation/ticket-validator.d.ts +47 -0
  1348. package/public/validation/ticket-validator.d.ts.map +1 -0
  1349. package/public/validation/ticket-validator.js +155 -0
  1350. package/public/validation/ticket-validator.js.map +1 -0
  1351. package/public/webhooks/assignment-handler.d.ts +33 -0
  1352. package/public/webhooks/assignment-handler.d.ts.map +1 -0
  1353. package/public/webhooks/assignment-handler.js +187 -0
  1354. package/public/webhooks/assignment-handler.js.map +1 -0
  1355. package/public/webhooks/in-progress-handler.d.ts +36 -0
  1356. package/public/webhooks/in-progress-handler.d.ts.map +1 -0
  1357. package/public/webhooks/in-progress-handler.js +170 -0
  1358. package/public/webhooks/in-progress-handler.js.map +1 -0
  1359. package/public/webhooks/orchestrator-notifier.d.ts +42 -0
  1360. package/public/webhooks/orchestrator-notifier.d.ts.map +1 -0
  1361. package/public/webhooks/orchestrator-notifier.js +84 -0
  1362. package/public/webhooks/orchestrator-notifier.js.map +1 -0
  1363. package/public/webhooks/ticket-created-handler.d.ts +33 -0
  1364. package/public/webhooks/ticket-created-handler.d.ts.map +1 -0
  1365. package/public/webhooks/ticket-created-handler.js +150 -0
  1366. package/public/webhooks/ticket-created-handler.js.map +1 -0
  1367. package/public/webhooks/webhook-handler.d.ts +81 -0
  1368. package/public/webhooks/webhook-handler.d.ts.map +1 -0
  1369. package/public/webhooks/webhook-handler.js +186 -0
  1370. package/public/webhooks/webhook-handler.js.map +1 -0
  1371. package/public/webhooks/webhook-security.d.ts +58 -0
  1372. package/public/webhooks/webhook-security.d.ts.map +1 -0
  1373. package/public/webhooks/webhook-security.js +258 -0
  1374. package/public/webhooks/webhook-security.js.map +1 -0
  1375. package/public/workers/teams-delivery-worker.d.ts +91 -0
  1376. package/public/workers/teams-delivery-worker.d.ts.map +1 -0
  1377. package/public/workers/teams-delivery-worker.js +328 -0
  1378. package/public/workers/teams-delivery-worker.js.map +1 -0
  1379. package/scripts/cli-wrapper.mjs +28 -0
@@ -0,0 +1,893 @@
1
+ import AtlassianProvider from "next-auth/providers/atlassian";
2
+ import GitHubProvider from "next-auth/providers/github";
3
+ import GoogleProvider from "next-auth/providers/google";
4
+ import AppleProvider from "next-auth/providers/apple";
5
+ import CredentialsProvider from "next-auth/providers/credentials";
6
+ import { PrismaAdapter } from "@next-auth/prisma-adapter";
7
+ import { prisma } from "@/lib/prisma";
8
+ import { verifyPassword } from "@/lib/password";
9
+ import { encrypt } from "@/lib/encryption";
10
+ import { upsertUserFromAtlassianProfile, } from "@/server/auth/atlassian-user-mapping";
11
+ import { logJiraConnectEvent, getRemediationHint, } from "@/lib/events/jira-connect-events";
12
+ import { ensureAccountForUser, getPrimaryAccountId, } from "@/server/auth/account-provisioning";
13
+ /**
14
+ * Extract Atlassian identity from OAuth profile with fallback logic
15
+ *
16
+ * Atlassian returns different field names depending on the OAuth flow:
17
+ * - profile.id (common)
18
+ * - profile.account_id (OAuthProfile)
19
+ * - profile.accountId (legacy)
20
+ * - profile.sub (OIDC standard)
21
+ * - account.providerAccountId (NextAuth adapter)
22
+ */
23
+ function getAtlassianIdentity({ profile, account, user, }) {
24
+ // Try all possible sources for accountId
25
+ const accountId = profile?.id ||
26
+ profile?.account_id ||
27
+ profile?.accountId ||
28
+ profile?.sub ||
29
+ account?.providerAccountId ||
30
+ "";
31
+ // Try all possible sources for email
32
+ const email = user?.email || profile?.email || profile?.emailAddress || "";
33
+ // Try all possible sources for name
34
+ const name = user?.name || profile?.name || profile?.displayName || null;
35
+ // Try all possible sources for picture
36
+ const picture = profile?.picture || profile?.avatarUrl || profile?.avatar || null;
37
+ // Validate we have the minimum required fields
38
+ if (!accountId || !email) {
39
+ console.error("[ticket-mate] ❌ Failed to extract Atlassian identity. Missing accountId or email.", {
40
+ hasAccountId: !!accountId,
41
+ hasEmail: !!email,
42
+ profileKeys: profile ? Object.keys(profile) : [],
43
+ accountKeys: account ? Object.keys(account) : [],
44
+ userKeys: user ? Object.keys(user) : [],
45
+ // Log full objects once for debugging (sanitize sensitive data)
46
+ profile: profile
47
+ ? { ...profile, access_token: undefined, refresh_token: undefined }
48
+ : null,
49
+ });
50
+ return null;
51
+ }
52
+ return { accountId, email, name, picture };
53
+ }
54
+ // Validate critical environment variables at module load time
55
+ // Skip validation in test environment (tests mock these dependencies or use different env setup)
56
+ const isTestEnv = process.env.NODE_ENV === "test" ||
57
+ typeof process.env.VITEST !== "undefined" ||
58
+ process.argv.some((arg) => arg.includes("vitest"));
59
+ const requiredEnvVars = {
60
+ NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET,
61
+ NEXTAUTH_URL: process.env.NEXTAUTH_URL,
62
+ DATABASE_URL: process.env.DATABASE_URL,
63
+ };
64
+ const missingVars = Object.entries(requiredEnvVars)
65
+ .filter(([_, value]) => !value)
66
+ .map(([key]) => key);
67
+ if (missingVars.length > 0 && !isTestEnv) {
68
+ console.error("[ticket-mate] ⚠️ Missing required environment variables:", missingVars.join(", "));
69
+ console.error("[ticket-mate] NextAuth will not work without these variables.");
70
+ console.error("[ticket-mate] Please set them in your .env.local file or Vercel environment variables.");
71
+ }
72
+ // Use ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET as canonical env vars
73
+ const atlassianClientId = process.env.ATLASSIAN_CLIENT_ID?.trim();
74
+ const atlassianClientSecret = process.env.ATLASSIAN_CLIENT_SECRET?.trim();
75
+ // Validate required Atlassian OAuth env vars
76
+ if (!atlassianClientId) {
77
+ console.warn("⚠️ ATLASSIAN_CLIENT_ID is not set. " +
78
+ "Atlassian OAuth will not work. " +
79
+ "Set ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET in your .env file.");
80
+ }
81
+ if (!atlassianClientSecret) {
82
+ console.warn("⚠️ ATLASSIAN_CLIENT_SECRET is not set. " +
83
+ "Atlassian OAuth will not work. " +
84
+ "Set ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET in your .env file.");
85
+ }
86
+ // Check if GitHub OAuth is enabled (only log once at startup, not on every request)
87
+ const githubEnabled = !!(process.env.GITHUB_CLIENT_ID && process.env.GITHUB_CLIENT_SECRET);
88
+ /**
89
+ * Jira OAuth Scopes Configuration
90
+ *
91
+ * Two-tier scope design:
92
+ * 1. BASELINE scopes: Minimal set required for login and basic Jira read access
93
+ * 2. ELEVATED scopes: Additional admin permissions for workspace management
94
+ *
95
+ * Use ATLASSIAN_USE_ELEVATED_SCOPES=true to request elevated scopes.
96
+ * Start with baseline scopes (default) to ensure consent works, then enable elevated scopes
97
+ * after confirming your Atlassian app is configured for those permissions.
98
+ */
99
+ // Baseline scopes: Minimal set for login and basic Jira read access
100
+ // These scopes almost always work and don't require special Atlassian app configuration
101
+ export const BASELINE_JIRA_SCOPES = [
102
+ "offline_access", // Required for refresh tokens
103
+ "read:me", // Read current user profile
104
+ "read:account", // Read account information
105
+ "read:jira-user", // Read Jira user information
106
+ "read:jira-work", // Read Jira issues and work items
107
+ "write:jira-work", // Create/update Jira issues
108
+ ].join(" ");
109
+ // Elevated scopes: Additional permissions for workspace management and admin operations
110
+ // These scopes require your Atlassian app to be configured with the appropriate permissions
111
+ export const ELEVATED_JIRA_SCOPES = [
112
+ ...BASELINE_JIRA_SCOPES.split(" "),
113
+ "write:jira-work", // Create/update Jira issues
114
+ "manage:jira-project", // Manage Jira projects
115
+ "manage:jira-configuration", // Manage Jira configuration
116
+ "manage:jira-webhook", // Manage Jira webhooks
117
+ "manage:jira-data-provider", // Manage Jira data providers
118
+ ].join(" ");
119
+ // Determine which scope set to use
120
+ // Default to BASELINE for maximum compatibility
121
+ // Set ATLASSIAN_USE_ELEVATED_SCOPES=true to request elevated permissions
122
+ const useElevatedScopes = process.env.ATLASSIAN_USE_ELEVATED_SCOPES === "true";
123
+ const jiraScopes = useElevatedScopes
124
+ ? ELEVATED_JIRA_SCOPES
125
+ : BASELINE_JIRA_SCOPES;
126
+ // Log minimal config info
127
+ if (process.env.NODE_ENV === "development") {
128
+ console.log(`[ticket-mate] Jira Scopes: ${useElevatedScopes ? "ELEVATED" : "BASELINE"}`);
129
+ }
130
+ // Log Atlassian OAuth config in all environments to debug production issues
131
+ // This helps identify when NEXTAUTH_URL is misconfigured (e.g., localhost in production)
132
+ const nextAuthUrl = process.env.NEXTAUTH_URL?.trim();
133
+ // Enforce callback path normalization (ANTIGRAVITY DIRECTIVE)
134
+ if (!nextAuthUrl) {
135
+ console.error("[ticket-mate] 🚨 NEXTAUTH_URL is missing! Hard failing.");
136
+ if (process.env.NODE_ENV === "production") {
137
+ throw new Error("NEXTAUTH_URL must be set in production");
138
+ }
139
+ }
140
+ const expectedCallbackPath = "/api/auth/callback/atlassian";
141
+ const callbackUrl = nextAuthUrl
142
+ ? `${nextAuthUrl}${expectedCallbackPath}`
143
+ : "(NEXTAUTH_URL not set)";
144
+ console.log("[ticket-mate] 🔒 Atlassian OAuth Configuration:");
145
+ console.log(`[ticket-mate] Provider ID: atlassian`);
146
+ console.log(`[ticket-mate] Callback Path: ${expectedCallbackPath}`);
147
+ console.log(`[ticket-mate] Full Callback URL: ${callbackUrl}`);
148
+ console.log(`[ticket-mate] NEXTAUTH_URL: ${nextAuthUrl}`);
149
+ const githubCallbackPath = "/api/auth/callback/github";
150
+ const githubCallbackUrl = nextAuthUrl
151
+ ? `${nextAuthUrl}${githubCallbackPath}`
152
+ : "(NEXTAUTH_URL not set)";
153
+ console.log("[ticket-mate] 🐙 GitHub OAuth Configuration:");
154
+ console.log(`[ticket-mate] Provider ID: github`);
155
+ console.log(`[ticket-mate] Enabled: ${githubEnabled}`);
156
+ console.log(`[ticket-mate] Callback Path: ${githubCallbackPath}`);
157
+ console.log(`[ticket-mate] Full Callback URL: ${githubCallbackUrl}`);
158
+ console.log(`[ticket-mate] Client ID Set: ${!!process.env.GITHUB_CLIENT_ID}`);
159
+ // Hard validation of environment
160
+ if (nextAuthUrl &&
161
+ nextAuthUrl.includes("localhost") &&
162
+ process.env.NODE_ENV === "production") {
163
+ console.error("[ticket-mate] 🚨 NEXTAUTH_URL is localhost in PRODUCTION! This will break OAuth.");
164
+ }
165
+ // Check if we're actually in a production deployment (Vercel sets VERCEL=1)
166
+ const isProductionDeployment = process.env.VERCEL === "1" || process.env.VERCEL_ENV === "production";
167
+ const isLocalBuild = !isProductionDeployment && process.env.NODE_ENV === "production";
168
+ /**
169
+ * NextAuth Configuration
170
+ *
171
+ * IMPORTANT: NextAuth v4 does NOT support a `url` property in authOptions.
172
+ * The base URL is controlled by the NEXTAUTH_URL environment variable.
173
+ *
174
+ * NextAuth automatically constructs callback URLs as:
175
+ * ${NEXTAUTH_URL}/api/auth/callback/atlassian
176
+ *
177
+ * This must match EXACTLY what's registered in Atlassian Developer Console.
178
+ * The callback URL is derived from NEXTAUTH_URL environment variable.
179
+ *
180
+ * Environment Configuration:
181
+ * - Local dev (.env.local): NEXTAUTH_URL="http://localhost:4000"
182
+ * - Vercel production: Set NEXTAUTH_URL="https://ticket-mate.app" in Vercel dashboard
183
+ *
184
+ * NOTE: Do not test /api/auth/callback/atlassian directly.
185
+ * It must be reached via the "Sign in with Jira" button,
186
+ * so NextAuth can set and validate the state cookie correctly.
187
+ */
188
+ // Validate NEXTAUTH_SECRET (required for NextAuth to work)
189
+ if (!process.env.NEXTAUTH_SECRET) {
190
+ console.error("[ticket-mate] ⚠️ NEXTAUTH_SECRET is not set! NextAuth will not work.");
191
+ console.error("[ticket-mate] Set NEXTAUTH_SECRET in your environment:");
192
+ console.error("[ticket-mate] - Generate a secret: openssl rand -base64 32");
193
+ console.error('[ticket-mate] - Add to .env.local: NEXTAUTH_SECRET="your-secret-here"');
194
+ console.error("[ticket-mate] - For production: Set in Vercel dashboard → Environment Variables");
195
+ }
196
+ export const authOptions = {
197
+ adapter: PrismaAdapter(prisma),
198
+ secret: process.env.NEXTAUTH_SECRET, // Required for JWT signing
199
+ session: {
200
+ strategy: "jwt", // Use JWT even with adapter for better control
201
+ },
202
+ // NextAuth automatically uses secure cookies when NEXTAUTH_URL starts with https://
203
+ providers: [
204
+ CredentialsProvider({
205
+ name: "Credentials",
206
+ credentials: {
207
+ email: { label: "Email", type: "email" },
208
+ password: { label: "Password", type: "password" },
209
+ },
210
+ async authorize(credentials) {
211
+ try {
212
+ console.log("[ticket-mate] CredentialsProvider: authorize called for email:", credentials?.email);
213
+ if (!credentials?.email || !credentials?.password) {
214
+ console.log("[ticket-mate] CredentialsProvider: Missing email or password");
215
+ return null;
216
+ }
217
+ let user;
218
+ try {
219
+ console.log("[ticket-mate] CredentialsProvider: Looking up user in database...");
220
+ console.log("[ticket-mate] Database connection:", {
221
+ url: process.env.DATABASE_URL
222
+ ? process.env.DATABASE_URL.replace(/:[^:@]+@/, ":****@")
223
+ : "(not set)",
224
+ });
225
+ user = await prisma.user.findUnique({
226
+ where: { email: credentials.email },
227
+ });
228
+ console.log("[ticket-mate] CredentialsProvider: User lookup result:", user ? `Found user ID: ${user.id}` : "User not found");
229
+ }
230
+ catch (dbError) {
231
+ console.error("[ticket-mate] Database error in CredentialsProvider:", dbError);
232
+ return null;
233
+ }
234
+ if (!user) {
235
+ // User not found - don't reveal this to prevent email enumeration
236
+ console.log("[ticket-mate] CredentialsProvider: User not found (silent return)");
237
+ return null;
238
+ }
239
+ // Check if user has a password set (for local auth)
240
+ if (!user.hashedPassword) {
241
+ // User exists but no password set - they need to use OAuth or set a password
242
+ console.log("[ticket-mate] CredentialsProvider: User has no password set, must use OAuth");
243
+ return null;
244
+ }
245
+ // Check if email is verified (allow login if emailVerified is null for backward compatibility)
246
+ // TODO: Implement email verification flow if required
247
+ // For now, we allow login even if emailVerified is null to support existing users
248
+ // if (!user.emailVerified) {
249
+ // console.log('[ticket-mate] CredentialsProvider: Email not verified for', credentials.email);
250
+ // throw new Error('Please verify your email address before signing in.');
251
+ // }
252
+ // Verify password
253
+ console.log("[ticket-mate] CredentialsProvider: Verifying password...");
254
+ const isValid = await verifyPassword(credentials.password, user.hashedPassword);
255
+ if (!isValid) {
256
+ console.log("[ticket-mate] CredentialsProvider: Password verification failed for", credentials.email);
257
+ return null;
258
+ }
259
+ console.log("[ticket-mate] CredentialsProvider: Login successful for", credentials.email, "userId:", user.id);
260
+ // Return user object for NextAuth
261
+ return {
262
+ id: user.id,
263
+ email: user.email,
264
+ name: user.name || undefined,
265
+ };
266
+ }
267
+ catch (error) {
268
+ console.error("[ticket-mate] CredentialsProvider authorize error:", error);
269
+ return null;
270
+ }
271
+ },
272
+ }),
273
+ // GitHub OAuth App (NextAuth) - for user login and identity
274
+ // Purpose: User authentication, consent, mapping GitHub user → internal User
275
+ // Callback URL: https://ticket-mate.app/api/auth/callback/github (handled by NextAuth)
276
+ //
277
+ // IMPORTANT: This is separate from GitHub App (installation/automation)
278
+ // - OAuth App = Human identity + consent
279
+ // - GitHub App = System authority (repos, PRs, automation)
280
+ // Never use OAuth tokens for repo mutations in production
281
+ ...(githubEnabled
282
+ ? [
283
+ GitHubProvider({
284
+ clientId: process.env.GITHUB_CLIENT_ID,
285
+ clientSecret: process.env.GITHUB_CLIENT_SECRET,
286
+ allowDangerousEmailAccountLinking: true, // Allow linking accounts with same email
287
+ authorization: {
288
+ params: {
289
+ scope: "read:user user:email repo",
290
+ },
291
+ },
292
+ // NextAuth automatically constructs callback URL as:
293
+ // ${NEXTAUTH_URL}/api/auth/callback/github
294
+ // This must match what's configured in GitHub OAuth App settings
295
+ }),
296
+ ]
297
+ : []),
298
+ AtlassianProvider({
299
+ /**
300
+ * Jira/Atlassian OAuth Provider Configuration
301
+ *
302
+ * Uses ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET env vars.
303
+ * These must be set in your environment:
304
+ * - ATLASSIAN_CLIENT_ID - must match Atlassian Developer Console Client ID exactly
305
+ * - ATLASSIAN_CLIENT_SECRET - from same Atlassian app
306
+ * - NEXTAUTH_URL (REQUIRED - no default, must be set per environment)
307
+ * - ATLASSIAN_USE_ELEVATED_SCOPES (optional) - set to "true" to request admin scopes
308
+ *
309
+ * The callback URL is automatically constructed by NextAuth as:
310
+ * ${NEXTAUTH_URL}/api/auth/callback/atlassian
311
+ *
312
+ * Atlassian Developer Console Configuration:
313
+ * - Go to: https://developer.atlassian.com/console/myapps/
314
+ * - Select your TICKET MATE app → Authorization → OAuth 2.0 (3LO)
315
+ * - Client ID must match ATLASSIAN_CLIENT_ID exactly
316
+ * - Callback URLs (one per line, EXACT match, no trailing slash):
317
+ * * http://localhost:4000/api/auth/callback/atlassian
318
+ * * https://ticket-mate.app/api/auth/callback/atlassian
319
+ * - Permissions: Ensure your app has the permissions for the requested scopes
320
+ * * Baseline scopes: Usually work by default
321
+ * * Elevated scopes: Require explicit permission configuration in Atlassian
322
+ *
323
+ * Scope Configuration:
324
+ * - Default: BASELINE scopes (read-only, recommended for initial setup)
325
+ * - Elevated: Set ATLASSIAN_USE_ELEVATED_SCOPES=true for admin permissions
326
+ * - If consent fails, start with baseline scopes and add elevated scopes incrementally
327
+ */
328
+ id: "atlassian",
329
+ clientId: atlassianClientId,
330
+ clientSecret: atlassianClientSecret,
331
+ authorization: {
332
+ url: "https://auth.atlassian.com/authorize",
333
+ params: {
334
+ audience: "api.atlassian.com",
335
+ prompt: "consent",
336
+ // NextAuth will automatically add: client_id, redirect_uri, response_type=code
337
+ scope: jiraScopes,
338
+ },
339
+ },
340
+ token: "https://auth.atlassian.com/oauth/token",
341
+ allowDangerousEmailAccountLinking: true,
342
+ }),
343
+ GoogleProvider({
344
+ clientId: process.env.GOOGLE_CLIENT_ID ?? "",
345
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET ?? "",
346
+ allowDangerousEmailAccountLinking: true,
347
+ }),
348
+ AppleProvider({
349
+ clientId: process.env.APPLE_ID ?? "",
350
+ clientSecret: process.env.APPLE_SECRET ?? "",
351
+ allowDangerousEmailAccountLinking: true,
352
+ }),
353
+ ],
354
+ callbacks: {
355
+ // redirect callback moved to avoid duplication - see below
356
+ async jwt({ token, account, user, profile }) {
357
+ // On first sign-in (when account and user are present), map Atlassian profile to internal User
358
+ if (account && user && account.provider === "atlassian" && profile) {
359
+ try {
360
+ // Extract Atlassian profile data using helper with fallback logic
361
+ const identity = getAtlassianIdentity({ profile, account, user });
362
+ if (!identity) {
363
+ console.error("[ticket-mate] ❌ JWT callback: Failed to extract Atlassian identity");
364
+ // Don't block token creation - use what we have from user object
365
+ }
366
+ else {
367
+ // Construct AtlassianProfile for upsert
368
+ const atlassianProfile = {
369
+ accountId: identity.accountId,
370
+ email: identity.email,
371
+ name: identity.name,
372
+ picture: identity.picture,
373
+ avatarUrl: identity.picture,
374
+ };
375
+ // Upsert user from Atlassian profile - this ensures we have an internal User id
376
+ const internalUserId = await upsertUserFromAtlassianProfile(atlassianProfile);
377
+ // Store internal User id in token (this is the Prisma pk, not Atlassian account id)
378
+ token.userId = internalUserId;
379
+ token.id = String(internalUserId);
380
+ token.email = atlassianProfile.email;
381
+ token.name = atlassianProfile.name || atlassianProfile.email;
382
+ token.atlassianAccountId = atlassianProfile.accountId; // Store for reference only
383
+ console.log("[ticket-mate] Atlassian profile mapped to User:", {
384
+ atlassianAccountId: atlassianProfile.accountId,
385
+ internalUserId,
386
+ email: atlassianProfile.email,
387
+ });
388
+ }
389
+ }
390
+ catch (error) {
391
+ console.error("[ticket-mate] Error mapping Atlassian profile in jwt callback:", error);
392
+ // Don't block token creation - use what we have
393
+ }
394
+ }
395
+ // Ensure token.userId is set if user object is present (standard login)
396
+ // This must happen BEFORE processing account-specific logic below (like GitHub credential storage)
397
+ if (user) {
398
+ if (!token.userId) {
399
+ token.userId = user.id;
400
+ token.id = String(user.id);
401
+ console.log("[ticket-mate] JWT callback: Set userId from user object:", user.id, "(type:", typeof user.id, ")");
402
+ }
403
+ if (!token.email && user.email) {
404
+ token.email = user.email || undefined;
405
+ }
406
+ if (!token.name && user.name) {
407
+ token.name = user.name || undefined;
408
+ }
409
+ }
410
+ if (account) {
411
+ // Store provider-specific tokens (for reference, but adapter stores in DB)
412
+ if (account.provider === "github") {
413
+ token.githubAccessToken = account.access_token;
414
+ // GITHUB-1: Store GitHub credentials persistently
415
+ if (token.userId && account.access_token) {
416
+ console.log("[ticket-mate] 💾 Storing GitHub credentials...");
417
+ const { encrypt } = await import("@/lib/encryption");
418
+ const encryptedToken = encrypt(account.access_token);
419
+ const encryptedRefreshToken = account.refresh_token
420
+ ? encrypt(account.refresh_token)
421
+ : null;
422
+ const githubProfile = profile;
423
+ const userIdStr = String(token.userId);
424
+ await prisma.gitHubCredential.upsert({
425
+ where: { userId: userIdStr },
426
+ create: {
427
+ userId: userIdStr,
428
+ accessToken: encryptedToken,
429
+ refreshToken: encryptedRefreshToken,
430
+ scope: account.scope || null,
431
+ githubUserId: githubProfile.id ? parseInt(String(githubProfile.id)) : null,
432
+ githubLogin: githubProfile.login || null,
433
+ githubName: githubProfile.name || null,
434
+ githubEmail: githubProfile.email || null,
435
+ },
436
+ update: {
437
+ accessToken: encryptedToken,
438
+ refreshToken: encryptedRefreshToken,
439
+ scope: account.scope || null,
440
+ githubUserId: githubProfile.id ? parseInt(String(githubProfile.id)) : null,
441
+ githubLogin: githubProfile.login || null,
442
+ githubName: githubProfile.name || null,
443
+ githubEmail: githubProfile.email || null,
444
+ },
445
+ });
446
+ console.log("[ticket-mate] ✅ GitHub credentials stored");
447
+ token.hasGitHub = true;
448
+ }
449
+ }
450
+ else if (account.provider === "atlassian") {
451
+ token.atlassianAccessToken = account.access_token;
452
+ token.atlassianRefreshToken = account.refresh_token;
453
+ if (typeof account.expires_at === "number") {
454
+ token.atlassianExpiresAt = account.expires_at * 1000;
455
+ }
456
+ // Store Atlassian account ID for reference (but use internal User id as primary)
457
+ token.atlassianAccountId =
458
+ token.atlassianAccountId || profile?.accountId;
459
+ // ANTIGRAVITY DIRECTIVE: Normalize Credential Storage
460
+ // Store Jira credentials immediately upon login/link to avoid needing a separate flow
461
+ console.log("[ticket-mate] 🔍 Jira credential storage check:", {
462
+ hasUserId: !!token.userId,
463
+ userId: token.userId,
464
+ hasAccessToken: !!account.access_token,
465
+ hasRefreshToken: !!account.refresh_token,
466
+ });
467
+ if (token.userId && account.access_token && account.refresh_token) {
468
+ console.log("[ticket-mate] ✅ All conditions met, attempting to store Jira credentials...");
469
+ // Log connect start event
470
+ await logJiraConnectEvent({
471
+ eventType: "jira.connect.start",
472
+ userId: String(token.userId),
473
+ metadata: {
474
+ atlassianCallbackUrlResolved: `${process.env.NEXTAUTH_URL}/api/auth/callback/atlassian`,
475
+ nextAuthUrlResolved: process.env.NEXTAUTH_URL,
476
+ },
477
+ });
478
+ try {
479
+ const userIdStr = String(token.userId);
480
+ // 1. Fetch accessible resources (Jira Cloud ID)
481
+ console.log("[ticket-mate] 📡 Fetching accessible Jira resources...");
482
+ const resourcesResponse = await fetch("https://api.atlassian.com/oauth/token/accessible-resources", {
483
+ headers: {
484
+ Authorization: `Bearer ${account.access_token}`,
485
+ Accept: "application/json",
486
+ },
487
+ });
488
+ console.log("[ticket-mate] 📡 Resources response status:", resourcesResponse.status);
489
+ if (resourcesResponse.ok) {
490
+ const resources = (await resourcesResponse.json());
491
+ console.log("[ticket-mate] 📡 Found", resources.length, "accessible resources");
492
+ const jiraResource = resources.find((r) => r.url.includes(".atlassian.net"));
493
+ if (jiraResource) {
494
+ console.log("[ticket-mate] 🎯 Found Jira resource:", {
495
+ id: jiraResource.id,
496
+ url: jiraResource.url,
497
+ name: jiraResource.name,
498
+ });
499
+ console.log("[ticket-mate] 🔐 Encrypting tokens...");
500
+ const encryptedAccessToken = encrypt(account.access_token);
501
+ const encryptedRefreshToken = encrypt(account.refresh_token);
502
+ console.log("[ticket-mate] ✅ Tokens encrypted successfully");
503
+ const expiresAt = typeof account.expires_at === "number"
504
+ ? new Date(account.expires_at * 1000)
505
+ : new Date(Date.now() + 3600 * 1000);
506
+ // Ensure User exists before creating JiraCredential (prevents P2025)
507
+ const { ensureUserExists } = await import("../../server/jira/ensure-user");
508
+ await ensureUserExists(userIdStr);
509
+ console.log("[ticket-mate] 💾 Upserting Jira credential to database...");
510
+ await prisma.jiraCredential.upsert({
511
+ where: { userId: userIdStr },
512
+ create: {
513
+ userId: userIdStr,
514
+ cloudId: jiraResource.id,
515
+ jiraBaseUrl: jiraResource.url,
516
+ accessToken: encryptedAccessToken,
517
+ refreshToken: encryptedRefreshToken,
518
+ scope: account.scope || "",
519
+ expiresAt,
520
+ },
521
+ update: {
522
+ cloudId: jiraResource.id,
523
+ jiraBaseUrl: jiraResource.url,
524
+ accessToken: encryptedAccessToken,
525
+ refreshToken: encryptedRefreshToken,
526
+ scope: account.scope || "",
527
+ expiresAt,
528
+ },
529
+ });
530
+ console.log("[ticket-mate] ✅ ✅ ✅ Auto-stored Jira credentials for user:", userIdStr);
531
+ // Log success event
532
+ await logJiraConnectEvent({
533
+ eventType: "jira.connect.callback.success",
534
+ userId: userIdStr,
535
+ metadata: {
536
+ cloudId: jiraResource.id,
537
+ jiraBaseUrl: jiraResource.url,
538
+ scope: account.scope || "",
539
+ expiresAt,
540
+ },
541
+ });
542
+ }
543
+ else {
544
+ console.warn("[ticket-mate] ⚠️ No Jira resource found in accessible resources");
545
+ }
546
+ }
547
+ else {
548
+ console.error("[ticket-mate] ❌ Failed to fetch accessible resources:", resourcesResponse.statusText);
549
+ }
550
+ }
551
+ catch (credError) {
552
+ console.error("[ticket-mate] ❌ Failed to auto-store Jira credential:", credError);
553
+ console.error("[ticket-mate] ❌ Error stack:", credError.stack);
554
+ // Log failure event
555
+ await logJiraConnectEvent({
556
+ eventType: "jira.connect.callback.failed",
557
+ userId: String(token.userId),
558
+ metadata: {
559
+ errorClass: credError.name,
560
+ errorMessage: credError.message,
561
+ remediationHint: getRemediationHint(credError),
562
+ },
563
+ });
564
+ }
565
+ }
566
+ else {
567
+ console.warn("[ticket-mate] ⚠️ Skipping Jira credential storage - missing required data");
568
+ }
569
+ }
570
+ else if (account.provider === "google") {
571
+ token.googleAccessToken = account.access_token;
572
+ }
573
+ else if (account.provider === "apple") {
574
+ token.appleAccessToken = account.access_token;
575
+ }
576
+ // Store provider info for session
577
+ token.lastProvider = account.provider;
578
+ }
579
+ // Note: User info assignment moved to top of function (lines 533+) to ensure token.userId is available
580
+ // ANTIGRAVITY DIRECTIVE: Tenancy - Ensure Account Exists
581
+ // This runs on every JWT generation (sign-in, refresh), creating a safe checkpoint
582
+ if (token.userId) {
583
+ try {
584
+ // We use token.email/name which might be populated from user object above
585
+ const userId = String(token.userId);
586
+ const userEmail = token.email || null;
587
+ const userName = token.name || null;
588
+ // Ensure account exists and get active account ID
589
+ // This is efficient because ensureAccountForUser checks existence first
590
+ const accountId = await ensureAccountForUser(userId, userEmail, userName);
591
+ // Store in token for session callback to use without DB hit (optimization)
592
+ token.accountId = accountId;
593
+ }
594
+ catch (err) {
595
+ console.error("[ticket-mate] ❌ Failed to ensure account tenancy in JWT callback:", err);
596
+ }
597
+ }
598
+ return token;
599
+ },
600
+ async session({ session, token }) {
601
+ try {
602
+ // session.user.id is the internal User id (Prisma pk), not Atlassian account id
603
+ // This is set from token.userId which comes from user.id in jwt callback
604
+ if (token.userId) {
605
+ // token.userId is already a string (from Prisma User.id)
606
+ session.user.id = String(token.userId); // Ensure it's a string for NextAuth compatibility
607
+ session.userId = token.userId; // Internal User id (string, for backward compatibility)
608
+ console.log("[ticket-mate] Session callback: Set user.id from token.userId:", token.userId);
609
+ }
610
+ else if (token.id) {
611
+ session.user.id = String(token.id);
612
+ // token.id is a string (from Prisma User.id), so userId should also be string
613
+ session.userId = String(token.id);
614
+ console.log("[ticket-mate] Session callback: Set user.id from token.id:", token.id);
615
+ }
616
+ else {
617
+ console.warn("[ticket-mate] Session callback: No userId or id in token!", {
618
+ tokenKeys: Object.keys(token),
619
+ });
620
+ }
621
+ // Add provider info to session
622
+ // Note: We don't expose access tokens in session for security
623
+ // Tokens are stored in DB via PrismaAdapter and can be accessed server-side
624
+ session.atlassian = {
625
+ hasJira: Boolean(token.atlassianAccessToken),
626
+ accountId: token.atlassianAccountId || null, // Atlassian account ID for reference
627
+ // Do NOT expose accessToken in session (security risk)
628
+ };
629
+ // ANTIGRAVITY DIRECTIVE: Tenancy - Expose Account ID
630
+ if (token.accountId) {
631
+ session.user.accountId = token.accountId;
632
+ }
633
+ else if (token.userId) {
634
+ // Fallback: If token doesn't have it (legacy), fetch from DB
635
+ const pId = await getPrimaryAccountId(String(token.userId));
636
+ if (pId) {
637
+ session.user.accountId = pId;
638
+ }
639
+ }
640
+ // GITHUB-1: Query GitHubCredential to get actual connection status
641
+ if (token.userId) {
642
+ try {
643
+ const githubCred = await prisma.gitHubCredential.findUnique({
644
+ where: { userId: String(token.userId) },
645
+ // select: { githubLogin: true }, // Removed to avoid Prisma mismatch
646
+ });
647
+ if (githubCred) {
648
+ session.github = {
649
+ hasGitHub: true,
650
+ login: githubCred.githubLogin || githubCred.login,
651
+ };
652
+ }
653
+ else {
654
+ session.github = {
655
+ hasGitHub: false,
656
+ };
657
+ }
658
+ }
659
+ catch (error) {
660
+ console.warn("[ticket-mate] Failed to check GitHub credential:", error);
661
+ session.github = {
662
+ hasGitHub: Boolean(token.githubAccessToken),
663
+ };
664
+ }
665
+ }
666
+ else {
667
+ session.github = {
668
+ hasGitHub: Boolean(token.githubAccessToken),
669
+ };
670
+ }
671
+ session.google = {
672
+ hasGoogle: Boolean(token.googleAccessToken),
673
+ };
674
+ session.apple = {
675
+ hasApple: Boolean(token.appleAccessToken),
676
+ };
677
+ session.lastProvider = token.lastProvider; // Last provider used for sign-in
678
+ return session;
679
+ }
680
+ catch (error) {
681
+ console.error("[ticket-mate] Session callback error:", error);
682
+ return session; // Return existing session on error
683
+ }
684
+ },
685
+ async signIn({ user, account, profile }) {
686
+ // Validate Atlassian sign-in has required profile data
687
+ // The actual user mapping happens in jwt callback where we have full control
688
+ if (account?.provider === "atlassian") {
689
+ if (!profile) {
690
+ console.error("[ticket-mate] Atlassian sign-in missing profile data");
691
+ return false;
692
+ }
693
+ // Use helper to extract identity with comprehensive fallback logic
694
+ const identity = getAtlassianIdentity({ profile, account, user });
695
+ if (!identity) {
696
+ console.error("[ticket-mate] ❌ Atlassian sign-in rejected: Could not extract accountId or email from profile");
697
+ return false;
698
+ }
699
+ console.log("[ticket-mate] ✅ Atlassian identity extracted successfully:", {
700
+ accountId: identity.accountId,
701
+ email: identity.email,
702
+ hasName: !!identity.name,
703
+ hasPicture: !!identity.picture,
704
+ });
705
+ // Sign-in is valid - user mapping will happen in jwt callback
706
+ // NOTE: We do NOT store JiraCredential here
707
+ // Credential storage happens in the "Connect Jira workspace" flow (separate from login)
708
+ // This separation ensures login = identity, workspace connection = which Jira site to use
709
+ }
710
+ else if (account?.provider === "github" && user?.email) {
711
+ // Handle GitHub sign-in (existing logic)
712
+ try {
713
+ let dbUser = await prisma.user.findUnique({
714
+ where: { email: user.email },
715
+ });
716
+ if (!dbUser) {
717
+ // Create new user for GitHub
718
+ // Note: firstName, lastName, isNewUser, onboardingStep, status don't exist in simplified User schema
719
+ // User.id is String in schema and required - generate a cuid
720
+ const { randomUUID } = await import("crypto");
721
+ dbUser = await prisma.user.create({
722
+ data: {
723
+ id: randomUUID(),
724
+ email: user.email,
725
+ name: user.name || null,
726
+ subscription: "free", // Default subscription
727
+ },
728
+ });
729
+ }
730
+ // Store GitHub tokens
731
+ if (account.access_token) {
732
+ const expiresAt = account.expires_at
733
+ ? new Date(account.expires_at * 1000)
734
+ : undefined;
735
+ // Note: githubAccessToken, githubRefreshToken, githubTokenExpiresAt, onboardingStep don't exist in simplified User schema
736
+ // GitHub tokens are not stored in User model - they're handled by NextAuth Account model (if it exists)
737
+ // For now, just update the user's name if provided
738
+ if (user.name && user.name !== dbUser.name) {
739
+ await prisma.user.update({
740
+ where: { id: dbUser.id },
741
+ data: {
742
+ name: user.name,
743
+ },
744
+ });
745
+ }
746
+ }
747
+ // Update user object with internal id
748
+ user.id = String(dbUser.id);
749
+ }
750
+ catch (error) {
751
+ console.error("[ticket-mate] Error handling GitHub sign-in:", error);
752
+ // Allow sign-in to proceed even if token storage fails
753
+ }
754
+ }
755
+ // Allow all sign-ins (authentication succeeded)
756
+ return true;
757
+ },
758
+ // Explicit redirect callback to ensure URLs are properly constructed
759
+ // For Atlassian OAuth, NextAuth automatically constructs the callback URL as:
760
+ // ${NEXTAUTH_URL}/api/auth/callback/atlassian
761
+ // This must match exactly what's registered in Atlassian Developer Console
762
+ async redirect({ url, baseUrl }) {
763
+ if (process.env.OAUTH_DEBUG === "true") {
764
+ try {
765
+ console.log("[oauth-debug] NEXTAUTH_REDIRECT_CALLBACK", JSON.stringify({ url, baseUrl }, null, 2));
766
+ }
767
+ catch {
768
+ console.log("[oauth-debug] NEXTAUTH_REDIRECT_CALLBACK", {
769
+ url,
770
+ baseUrl,
771
+ });
772
+ }
773
+ }
774
+ // baseUrl is automatically set from NEXTAUTH_URL or request origin
775
+ // For local dev: http://localhost:4000
776
+ // For production: ${NEXTAUTH_URL}
777
+ // Force admin dashboard for root and dashboard paths
778
+ if (url === "/" ||
779
+ url === "/dashboard" ||
780
+ url === `${baseUrl}/` ||
781
+ url === `${baseUrl}/dashboard`) {
782
+ return `${baseUrl}/admin/dashboard`;
783
+ }
784
+ if (url.startsWith("/")) {
785
+ return `${baseUrl}${url}`;
786
+ }
787
+ if (new URL(url).origin === baseUrl) {
788
+ return url;
789
+ }
790
+ return `${baseUrl}/admin/dashboard`;
791
+ },
792
+ },
793
+ pages: {
794
+ signIn: "/login",
795
+ error: "/login?error=oauth_error", // Error page redirects to login with error param
796
+ },
797
+ events: {
798
+ async signIn({ user, account, profile, isNewUser }) {
799
+ if (account?.provider === "atlassian") {
800
+ console.log("[ticket-mate] ✅ Atlassian sign-in successful:", {
801
+ userId: user.id,
802
+ email: user.email,
803
+ accountId: account.providerAccountId,
804
+ isNewUser,
805
+ });
806
+ }
807
+ // ANTIGRAVITY DIRECTIVE: FEAT-002 - Token Encryption
808
+ // Clear plain text tokens from the Account table immediately after sign-in.
809
+ // We store encrypted tokens in JiraCredential (for Atlassian) or rely on re-auth (for others).
810
+ if (account && user) {
811
+ try {
812
+ console.log("[ticket-mate] 🔒 Clearing plain-text tokens from Account table...");
813
+ await prisma.account.updateMany({
814
+ where: {
815
+ provider: account.provider,
816
+ providerAccountId: account.providerAccountId,
817
+ },
818
+ data: {
819
+ access_token: null,
820
+ refresh_token: null,
821
+ },
822
+ });
823
+ console.log("[ticket-mate] ✨ Account tokens cleared successfully");
824
+ }
825
+ catch (error) {
826
+ // Non-critical: if the account record isn't found yet (race condition) or update fails
827
+ console.warn("[ticket-mate] ⚠️ Failed to clear account tokens:", error);
828
+ }
829
+ }
830
+ },
831
+ },
832
+ logger: {
833
+ error(code, metadata) {
834
+ // Enhanced error logging for OAuth/OAuthCallback errors
835
+ if (code === "OAUTH_CALLBACK_ERROR" ||
836
+ code === "OAUTH_CALLBACK_HANDLER_ERROR") {
837
+ console.error("[ticket-mate] ❌ Atlassian OAuth Callback Error:", {
838
+ code,
839
+ message: metadata?.message,
840
+ error: metadata?.error,
841
+ // Safely log error_description if present (Atlassian often includes this)
842
+ errorDescription: metadata?.error_description,
843
+ // Log stack only in development
844
+ stack: process.env.NODE_ENV === "development"
845
+ ? metadata?.stack
846
+ : undefined,
847
+ });
848
+ // If Atlassian returned error params, provide actionable hints
849
+ const error = metadata?.error;
850
+ const errorDescription = metadata?.error_description;
851
+ if (error || errorDescription) {
852
+ console.error("[ticket-mate] 💡 Atlassian Error Details:", {
853
+ error,
854
+ errorDescription,
855
+ });
856
+ console.error("[ticket-mate] 💡 Common causes:");
857
+ console.error("[ticket-mate] 1. Requested scopes not allowed in Atlassian app configuration");
858
+ console.error("[ticket-mate] 2. Redirect URI mismatch (check Atlassian Developer Console)");
859
+ console.error("[ticket-mate] 3. App not authorized for requested permissions");
860
+ console.error("[ticket-mate] 💡 Try: Set ATLASSIAN_USE_ELEVATED_SCOPES=false to use baseline scopes");
861
+ }
862
+ return;
863
+ }
864
+ // Suppress JWT_SESSION_ERROR from console.error as it's often transient/recoverable (e.g. secret rotation)
865
+ // We log it as a warning to keep it in "logs" but reduce noise
866
+ if (code === "JWT_SESSION_ERROR") {
867
+ // Log strictly to stdout or a warning, avoiding the scary console.error trace
868
+ console.warn(`[ticket-mate] NextAuth Warning: ${code} - ${metadata?.message || "Decryption failed"}. This is expected if secrets rotated.`);
869
+ return;
870
+ }
871
+ // Log other errors
872
+ console.error(`[ticket-mate] NextAuth Error [${code}]:`, metadata);
873
+ },
874
+ warn(code, metadata) {
875
+ // Enhanced warning for OAuth-related warnings
876
+ if (code?.includes("OAUTH") || code?.includes("oauth")) {
877
+ console.warn(`[ticket-mate] ⚠️ NextAuth OAuth Warning [${code}]:`, metadata);
878
+ }
879
+ else {
880
+ console.warn(`[ticket-mate] NextAuth Warning [${code}]:`, metadata);
881
+ }
882
+ },
883
+ debug(code, metadata) {
884
+ // Enable debug logging in development for OAuth flows
885
+ if (process.env.NODE_ENV === "development" &&
886
+ (code?.includes("OAUTH") || code?.includes("oauth"))) {
887
+ console.debug(`[ticket-mate] 🔍 NextAuth OAuth Debug [${code}]:`, metadata);
888
+ }
889
+ },
890
+ },
891
+ debug: false, // Disable debug logging to reduce JWT error noise (errors still logged at error level)
892
+ };
893
+ //# sourceMappingURL=options.js.map