factory-factory 0.3.5 → 0.3.6

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 (253) hide show
  1. package/README.md +17 -0
  2. package/dist/client/assets/_basePickBy-CzLmZHC2.js +1 -0
  3. package/dist/client/assets/{_baseUniq-DuVP6l01.js → _baseUniq-B2vXSgXW.js} +1 -1
  4. package/dist/client/assets/arc-Dq49BrkB.js +1 -0
  5. package/dist/client/assets/architectureDiagram-VXUJARFQ-BGubq_o9.js +36 -0
  6. package/dist/client/assets/{blockDiagram-VD42YOAC-DvVRHTty.js → blockDiagram-VD42YOAC-CJ7hB7tD.js} +4 -4
  7. package/dist/client/assets/{c4Diagram-YG6GDRKO-BZaLUCEP.js → c4Diagram-YG6GDRKO-C9-3yIl7.js} +3 -3
  8. package/dist/client/assets/channel-DMaON2vY.js +1 -0
  9. package/dist/client/assets/{chunk-4BX2VUAB-n69YHsoN.js → chunk-4BX2VUAB-LA-tkKjD.js} +1 -1
  10. package/dist/client/assets/{chunk-55IACEB6-C67Ak1Qy.js → chunk-55IACEB6-D8Jq3_Ne.js} +1 -1
  11. package/dist/client/assets/{chunk-B4BG7PRW-_Ja9GXA4.js → chunk-B4BG7PRW-BbB1Mssd.js} +1 -1
  12. package/dist/client/assets/{chunk-DI55MBZ5-C1TAOocX.js → chunk-DI55MBZ5-CpO3WS5m.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-Co8OmD7c.js → chunk-FMBD7UC4-zaxR2CzR.js} +1 -1
  14. package/dist/client/assets/chunk-QN33PNHL-BMmRcEqx.js +1 -0
  15. package/dist/client/assets/{chunk-QZHKN3VN-DQTGFT4I.js → chunk-QZHKN3VN-CbCQqsiw.js} +1 -1
  16. package/dist/client/assets/chunk-TZMSLE5B-BhRzmVVB.js +1 -0
  17. package/dist/client/assets/classDiagram-2ON5EDUG-BKODUnN9.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-WZHVMYZB-BKODUnN9.js +1 -0
  19. package/dist/client/assets/clone-d5fivKBG.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-Dg_Elpr2.js → cose-bilkent-S5V4N54A-BZtg5BPr.js} +1 -1
  21. package/dist/client/assets/{dagre-6UL2VRFP-DC_BntL_.js → dagre-6UL2VRFP-DiejfPfI.js} +2 -2
  22. package/dist/client/assets/diagram-PSM6KHXK-CRE7v2e7.js +24 -0
  23. package/dist/client/assets/diagram-QEK2KX5R-DpAOzBlm.js +43 -0
  24. package/dist/client/assets/diagram-S2PKOQOG-BOJvuhJd.js +24 -0
  25. package/dist/client/assets/{erDiagram-Q2GNP2WA-CoIzOJMx.js → erDiagram-Q2GNP2WA-IM11uKRy.js} +4 -4
  26. package/dist/client/assets/{flowDiagram-NV44I4VS-H-hzyVxN.js → flowDiagram-NV44I4VS-DTbQf_7g.js} +5 -5
  27. package/dist/client/assets/{ganttDiagram-JELNMOA3-BZbu1Bvf.js → ganttDiagram-JELNMOA3-Bqd3rUDW.js} +2 -2
  28. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-Cd1j3VMN.js +65 -0
  29. package/dist/client/assets/{graph-0fFVLhuM.js → graph-D667hHAk.js} +1 -1
  30. package/dist/client/assets/{index-D2gG7VAV.js → index-BXRnTMjJ.js} +248 -247
  31. package/dist/client/assets/index-DllMnbgu.css +1 -0
  32. package/dist/client/assets/infoDiagram-HS3SLOUP-CzpZPq7Y.js +2 -0
  33. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BgD0iboh.js → journeyDiagram-XKPGCS4Q-Br2GUbhE.js} +1 -1
  34. package/dist/client/assets/{kanban-definition-3W4ZIXB7-2cCK2J0j.js → kanban-definition-3W4ZIXB7-D0SM1ldH.js} +6 -6
  35. package/dist/client/assets/{layout-UQByNmge.js → layout-BPE9Dzp9.js} +1 -1
  36. package/dist/client/assets/{linear-COsW-oY4.js → linear-5exZFNBA.js} +1 -1
  37. package/dist/client/assets/{mindmap-definition-VGOIOE7T-CnhVGcBr.js → mindmap-definition-VGOIOE7T-D1W9h2lc.js} +3 -3
  38. package/dist/client/assets/mobile-baseline-BHP-K4kd.js +10 -0
  39. package/dist/client/assets/pieDiagram-ADFJNKIX-DG-umOTY.js +30 -0
  40. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-nfJepDyE.js → quadrantDiagram-AYHSOK5B-Cb0ciONq.js} +1 -1
  41. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-I_tnp42L.js → requirementDiagram-UZGBJVZJ-BKYaJZ83.js} +1 -1
  42. package/dist/client/assets/sankeyDiagram-TZEHDZUN-DkR9L4Vw.js +10 -0
  43. package/dist/client/assets/{sequenceDiagram-WL72ISMW-DWymCFZa.js → sequenceDiagram-WL72ISMW-Cys03qhv.js} +6 -6
  44. package/dist/client/assets/stateDiagram-FKZM4ZOC-DQWCRtS7.js +1 -0
  45. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DoWi8XaX.js +1 -0
  46. package/dist/client/assets/terminal-instance-CpEqekOB.js +1 -0
  47. package/dist/client/assets/{timeline-definition-IT6M3QCI-EkYjHzU_.js → timeline-definition-IT6M3QCI-C0mVV_zL.js} +4 -4
  48. package/dist/client/assets/treemap-GDKQZRPO-DK-Wlxvy.js +160 -0
  49. package/dist/client/assets/{xychartDiagram-PRI3JC2R-DwOnTNwE.js → xychartDiagram-PRI3JC2R-CFg2MfK9.js} +4 -4
  50. package/dist/client/index.html +3 -3
  51. package/dist/prisma/generated/commonInputTypes.d.ts +69 -39
  52. package/dist/prisma/generated/commonInputTypes.d.ts.map +1 -1
  53. package/dist/prisma/generated/enums.d.ts +6 -0
  54. package/dist/prisma/generated/enums.d.ts.map +1 -1
  55. package/dist/prisma/generated/enums.js +6 -1
  56. package/dist/prisma/generated/enums.js.map +1 -1
  57. package/dist/prisma/generated/internal/class.d.ts.map +1 -1
  58. package/dist/prisma/generated/internal/class.js +12 -4
  59. package/dist/prisma/generated/internal/class.js.map +1 -1
  60. package/dist/prisma/generated/internal/prismaNamespace.d.ts +13 -7
  61. package/dist/prisma/generated/internal/prismaNamespace.d.ts.map +1 -1
  62. package/dist/prisma/generated/internal/prismaNamespace.js +11 -6
  63. package/dist/prisma/generated/internal/prismaNamespace.js.map +1 -1
  64. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts +10 -5
  65. package/dist/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -1
  66. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js +9 -4
  67. package/dist/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  68. package/dist/prisma/generated/models/Project.d.ts +63 -1
  69. package/dist/prisma/generated/models/Project.d.ts.map +1 -1
  70. package/dist/prisma/generated/models/Workspace.d.ts +130 -1
  71. package/dist/prisma/generated/models/Workspace.d.ts.map +1 -1
  72. package/dist/src/backend/domains/linear/index.d.ts +3 -0
  73. package/dist/src/backend/domains/linear/index.d.ts.map +1 -0
  74. package/dist/src/backend/domains/linear/index.js +3 -0
  75. package/dist/src/backend/domains/linear/index.js.map +1 -0
  76. package/dist/src/backend/domains/linear/linear-client.service.d.ts +40 -0
  77. package/dist/src/backend/domains/linear/linear-client.service.d.ts.map +1 -0
  78. package/dist/src/backend/domains/linear/linear-client.service.js +134 -0
  79. package/dist/src/backend/domains/linear/linear-client.service.js.map +1 -0
  80. package/dist/src/backend/domains/linear/linear-state-sync.service.d.ts +7 -0
  81. package/dist/src/backend/domains/linear/linear-state-sync.service.d.ts.map +1 -0
  82. package/dist/src/backend/domains/linear/linear-state-sync.service.js +29 -0
  83. package/dist/src/backend/domains/linear/linear-state-sync.service.js.map +1 -0
  84. package/dist/src/backend/domains/ratchet/ratchet.service.d.ts +2 -0
  85. package/dist/src/backend/domains/ratchet/ratchet.service.d.ts.map +1 -1
  86. package/dist/src/backend/domains/ratchet/ratchet.service.js +16 -2
  87. package/dist/src/backend/domains/ratchet/ratchet.service.js.map +1 -1
  88. package/dist/src/backend/domains/ratchet/ratchet.service.test.js +43 -0
  89. package/dist/src/backend/domains/ratchet/ratchet.service.test.js.map +1 -1
  90. package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.d.ts.map +1 -1
  91. package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.js +35 -4
  92. package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.js.map +1 -1
  93. package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.test.js +108 -0
  94. package/dist/src/backend/domains/session/acp/codex-app-server-adapter/codex-app-server-acp-adapter.test.js.map +1 -1
  95. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.d.ts.map +1 -1
  96. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.js +1 -0
  97. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.js.map +1 -1
  98. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.test.js +3 -0
  99. package/dist/src/backend/domains/session/chat/chat-message-handlers/handlers/stop.handler.test.js.map +1 -1
  100. package/dist/src/backend/domains/session/chat/chat-message-handlers/types.d.ts +1 -0
  101. package/dist/src/backend/domains/session/chat/chat-message-handlers/types.d.ts.map +1 -1
  102. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.d.ts +4 -0
  103. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.d.ts.map +1 -1
  104. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js +20 -3
  105. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.js.map +1 -1
  106. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.js +38 -0
  107. package/dist/src/backend/domains/session/chat/chat-message-handlers.service.test.js.map +1 -1
  108. package/dist/src/backend/domains/session/data/codex-session-history-loader.service.d.ts.map +1 -1
  109. package/dist/src/backend/domains/session/data/codex-session-history-loader.service.js +0 -11
  110. package/dist/src/backend/domains/session/data/codex-session-history-loader.service.js.map +1 -1
  111. package/dist/src/backend/domains/session/data/codex-session-history-loader.service.test.js +9 -6
  112. package/dist/src/backend/domains/session/data/codex-session-history-loader.service.test.js.map +1 -1
  113. package/dist/src/backend/domains/session/data/session-data.service.d.ts +6 -0
  114. package/dist/src/backend/domains/session/data/session-data.service.d.ts.map +1 -1
  115. package/dist/src/backend/domains/session/session-domain.service.d.ts +2 -1
  116. package/dist/src/backend/domains/session/session-domain.service.d.ts.map +1 -1
  117. package/dist/src/backend/domains/session/session-domain.service.js +17 -1
  118. package/dist/src/backend/domains/session/session-domain.service.js.map +1 -1
  119. package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts +9 -0
  120. package/dist/src/backend/domains/workspace/lifecycle/creation.service.d.ts.map +1 -1
  121. package/dist/src/backend/domains/workspace/lifecycle/creation.service.js +18 -0
  122. package/dist/src/backend/domains/workspace/lifecycle/creation.service.js.map +1 -1
  123. package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js +46 -0
  124. package/dist/src/backend/domains/workspace/lifecycle/creation.service.test.js.map +1 -1
  125. package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts +25 -0
  126. package/dist/src/backend/domains/workspace/lifecycle/data.service.d.ts.map +1 -1
  127. package/dist/src/backend/domains/workspace/query/project-management.service.d.ts +16 -0
  128. package/dist/src/backend/domains/workspace/query/project-management.service.d.ts.map +1 -1
  129. package/dist/src/backend/domains/workspace/query/project-management.service.js.map +1 -1
  130. package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts +6 -0
  131. package/dist/src/backend/domains/workspace/query/workspace-query.service.d.ts.map +1 -1
  132. package/dist/src/backend/migrate.d.ts.map +1 -1
  133. package/dist/src/backend/migrate.js +13 -3
  134. package/dist/src/backend/migrate.js.map +1 -1
  135. package/dist/src/backend/migrate.test.js +44 -0
  136. package/dist/src/backend/migrate.test.js.map +1 -1
  137. package/dist/src/backend/orchestration/data-backup.service.d.ts.map +1 -1
  138. package/dist/src/backend/orchestration/data-backup.service.js +21 -1
  139. package/dist/src/backend/orchestration/data-backup.service.js.map +1 -1
  140. package/dist/src/backend/orchestration/data-backup.service.test.js +19 -9
  141. package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
  142. package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
  143. package/dist/src/backend/orchestration/event-collector.orchestrator.js +63 -3
  144. package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
  145. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js +49 -3
  146. package/dist/src/backend/orchestration/event-collector.orchestrator.test.js.map +1 -1
  147. package/dist/src/backend/orchestration/linear-config.helper.d.ts +9 -0
  148. package/dist/src/backend/orchestration/linear-config.helper.d.ts.map +1 -0
  149. package/dist/src/backend/orchestration/linear-config.helper.js +23 -0
  150. package/dist/src/backend/orchestration/linear-config.helper.js.map +1 -0
  151. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts +3 -0
  152. package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
  153. package/dist/src/backend/orchestration/workspace-init.orchestrator.d.ts.map +1 -1
  154. package/dist/src/backend/orchestration/workspace-init.orchestrator.js +228 -3
  155. package/dist/src/backend/orchestration/workspace-init.orchestrator.js.map +1 -1
  156. package/dist/src/backend/resource_accessors/project.accessor.d.ts +7 -1
  157. package/dist/src/backend/resource_accessors/project.accessor.d.ts.map +1 -1
  158. package/dist/src/backend/resource_accessors/project.accessor.js +8 -1
  159. package/dist/src/backend/resource_accessors/project.accessor.js.map +1 -1
  160. package/dist/src/backend/resource_accessors/workspace.accessor.d.ts +4 -1
  161. package/dist/src/backend/resource_accessors/workspace.accessor.d.ts.map +1 -1
  162. package/dist/src/backend/resource_accessors/workspace.accessor.js +3 -0
  163. package/dist/src/backend/resource_accessors/workspace.accessor.js.map +1 -1
  164. package/dist/src/backend/server.d.ts.map +1 -1
  165. package/dist/src/backend/server.js +11 -9
  166. package/dist/src/backend/server.js.map +1 -1
  167. package/dist/src/backend/services/crypto.service.d.ts +10 -0
  168. package/dist/src/backend/services/crypto.service.d.ts.map +1 -0
  169. package/dist/src/backend/services/crypto.service.js +61 -0
  170. package/dist/src/backend/services/crypto.service.js.map +1 -0
  171. package/dist/src/backend/trpc/admin.trpc.d.ts +14 -4
  172. package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
  173. package/dist/src/backend/trpc/index.d.ts +168 -9
  174. package/dist/src/backend/trpc/index.d.ts.map +1 -1
  175. package/dist/src/backend/trpc/index.js +2 -0
  176. package/dist/src/backend/trpc/index.js.map +1 -1
  177. package/dist/src/backend/trpc/linear.trpc.d.ts +44 -0
  178. package/dist/src/backend/trpc/linear.trpc.d.ts.map +1 -0
  179. package/dist/src/backend/trpc/linear.trpc.js +69 -0
  180. package/dist/src/backend/trpc/linear.trpc.js.map +1 -0
  181. package/dist/src/backend/trpc/project.trpc.d.ts +50 -5
  182. package/dist/src/backend/trpc/project.trpc.d.ts.map +1 -1
  183. package/dist/src/backend/trpc/project.trpc.js +46 -18
  184. package/dist/src/backend/trpc/project.trpc.js.map +1 -1
  185. package/dist/src/backend/trpc/session.trpc.d.ts +12 -0
  186. package/dist/src/backend/trpc/session.trpc.d.ts.map +1 -1
  187. package/dist/src/backend/trpc/workspace/git.trpc.d.ts +10 -0
  188. package/dist/src/backend/trpc/workspace/git.trpc.d.ts.map +1 -1
  189. package/dist/src/backend/trpc/workspace/git.trpc.js +25 -0
  190. package/dist/src/backend/trpc/workspace/git.trpc.js.map +1 -1
  191. package/dist/src/backend/trpc/workspace/init.trpc.d.ts +3 -0
  192. package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
  193. package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts +8 -0
  194. package/dist/src/backend/trpc/workspace/workspace-helpers.d.ts.map +1 -1
  195. package/dist/src/backend/trpc/workspace.trpc.d.ts +49 -0
  196. package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
  197. package/dist/src/backend/trpc/workspace.trpc.js +20 -4
  198. package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
  199. package/dist/src/cli/index.js +17 -91
  200. package/dist/src/cli/index.js.map +1 -1
  201. package/dist/src/cli/proxy.d.ts +80 -0
  202. package/dist/src/cli/proxy.d.ts.map +1 -0
  203. package/dist/src/cli/proxy.js +1054 -0
  204. package/dist/src/cli/proxy.js.map +1 -0
  205. package/dist/src/cli/proxy.test.d.ts +2 -0
  206. package/dist/src/cli/proxy.test.d.ts.map +1 -0
  207. package/dist/src/cli/proxy.test.js +249 -0
  208. package/dist/src/cli/proxy.test.js.map +1 -0
  209. package/dist/src/cli/runtime-utils.d.ts +9 -0
  210. package/dist/src/cli/runtime-utils.d.ts.map +1 -0
  211. package/dist/src/cli/runtime-utils.js +86 -0
  212. package/dist/src/cli/runtime-utils.js.map +1 -0
  213. package/dist/src/shared/core/enums.d.ts +6 -0
  214. package/dist/src/shared/core/enums.d.ts.map +1 -1
  215. package/dist/src/shared/core/enums.js +5 -0
  216. package/dist/src/shared/core/enums.js.map +1 -1
  217. package/dist/src/shared/core/index.d.ts +1 -1
  218. package/dist/src/shared/core/index.d.ts.map +1 -1
  219. package/dist/src/shared/core/index.js +1 -1
  220. package/dist/src/shared/core/index.js.map +1 -1
  221. package/dist/src/shared/schemas/export-data.schema.d.ts +19 -1
  222. package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
  223. package/dist/src/shared/schemas/export-data.schema.js +8 -2
  224. package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
  225. package/dist/src/shared/schemas/issue-tracker-config.schema.d.ts +35 -0
  226. package/dist/src/shared/schemas/issue-tracker-config.schema.d.ts.map +1 -0
  227. package/dist/src/shared/schemas/issue-tracker-config.schema.js +29 -0
  228. package/dist/src/shared/schemas/issue-tracker-config.schema.js.map +1 -0
  229. package/dist/tsconfig.backend.tsbuildinfo +1 -1
  230. package/package.json +40 -36
  231. package/prisma/migrations/20260217190642_add_linear_integration/migration.sql +34 -0
  232. package/prisma/schema.prisma +13 -0
  233. package/dist/client/assets/_basePickBy-DOa44aLB.js +0 -1
  234. package/dist/client/assets/arc-BRTVE1a5.js +0 -1
  235. package/dist/client/assets/architectureDiagram-VXUJARFQ-DphOng2K.js +0 -36
  236. package/dist/client/assets/channel-v55vPUhK.js +0 -1
  237. package/dist/client/assets/chunk-QN33PNHL-ESdvapXF.js +0 -1
  238. package/dist/client/assets/chunk-TZMSLE5B-C7a0BTNr.js +0 -1
  239. package/dist/client/assets/classDiagram-2ON5EDUG-DV-E9odE.js +0 -1
  240. package/dist/client/assets/classDiagram-v2-WZHVMYZB-DV-E9odE.js +0 -1
  241. package/dist/client/assets/clone-DQgzPMba.js +0 -1
  242. package/dist/client/assets/diagram-PSM6KHXK-D4EnEadG.js +0 -24
  243. package/dist/client/assets/diagram-QEK2KX5R-DeDgxkkd.js +0 -43
  244. package/dist/client/assets/diagram-S2PKOQOG-DqCrW2Mz.js +0 -24
  245. package/dist/client/assets/gitGraphDiagram-NY62KEGX-yHNzOwte.js +0 -65
  246. package/dist/client/assets/index-CzQJ6qnR.css +0 -1
  247. package/dist/client/assets/infoDiagram-WHAUD3N6-BdYcSIzA.js +0 -2
  248. package/dist/client/assets/pieDiagram-ADFJNKIX-DX0wt7fJ.js +0 -30
  249. package/dist/client/assets/sankeyDiagram-TZEHDZUN-4r_mPLW_.js +0 -10
  250. package/dist/client/assets/stateDiagram-FKZM4ZOC-CCHlcmzO.js +0 -1
  251. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CuSoER-j.js +0 -1
  252. package/dist/client/assets/terminal-instance-DKydBe-u.js +0 -1
  253. package/dist/client/assets/treemap-KMMF4GRG-BH9wTzrS.js +0 -128
@@ -0,0 +1,61 @@
1
+ import { createCipheriv, createDecipheriv, randomBytes } from 'node:crypto';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ import { configService } from './config.service.js';
5
+ import { createLogger } from './logger.service.js';
6
+ const logger = createLogger('crypto');
7
+ const ALGORITHM = 'aes-256-gcm';
8
+ const KEY_LENGTH = 32;
9
+ const IV_LENGTH = 12;
10
+ const AUTH_TAG_LENGTH = 16;
11
+ class CryptoService {
12
+ encryptionKey = null;
13
+ getKeyPath() {
14
+ return join(configService.getBaseDir(), 'encryption.key');
15
+ }
16
+ loadOrCreateKey() {
17
+ if (this.encryptionKey) {
18
+ return this.encryptionKey;
19
+ }
20
+ const keyPath = this.getKeyPath();
21
+ if (existsSync(keyPath)) {
22
+ this.encryptionKey = readFileSync(keyPath);
23
+ if (this.encryptionKey.length !== KEY_LENGTH) {
24
+ throw new Error(`Encryption key at ${keyPath} has invalid length: ${this.encryptionKey.length} (expected ${KEY_LENGTH})`);
25
+ }
26
+ return this.encryptionKey;
27
+ }
28
+ logger.info('Generating new encryption key', { path: keyPath });
29
+ const key = randomBytes(KEY_LENGTH);
30
+ const dir = dirname(keyPath);
31
+ if (!existsSync(dir)) {
32
+ mkdirSync(dir, { recursive: true });
33
+ }
34
+ writeFileSync(keyPath, key, { mode: 0o600 });
35
+ this.encryptionKey = key;
36
+ return key;
37
+ }
38
+ encrypt(plaintext) {
39
+ const key = this.loadOrCreateKey();
40
+ const iv = randomBytes(IV_LENGTH);
41
+ const cipher = createCipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
42
+ const encrypted = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
43
+ const authTag = cipher.getAuthTag();
44
+ return `${iv.toString('base64')}:${authTag.toString('base64')}:${encrypted.toString('base64')}`;
45
+ }
46
+ decrypt(encrypted) {
47
+ const key = this.loadOrCreateKey();
48
+ const parts = encrypted.split(':');
49
+ if (parts.length !== 3) {
50
+ throw new Error('Invalid encrypted value format: expected iv:authTag:ciphertext');
51
+ }
52
+ const iv = Buffer.from(parts[0], 'base64');
53
+ const authTag = Buffer.from(parts[1], 'base64');
54
+ const ciphertext = Buffer.from(parts[2], 'base64');
55
+ const decipher = createDecipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
56
+ decipher.setAuthTag(authTag);
57
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString('utf8');
58
+ }
59
+ }
60
+ export const cryptoService = new CryptoService();
61
+ //# sourceMappingURL=crypto.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.service.js","sourceRoot":"","sources":["../../../../src/backend/services/crypto.service.ts"],"names":[],"mappings":"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"}
@@ -126,7 +126,7 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
126
126
  meta: {
127
127
  exportedAt: string;
128
128
  version: string;
129
- schemaVersion: 3;
129
+ schemaVersion: 4;
130
130
  };
131
131
  data: {
132
132
  projects: {
@@ -138,6 +138,8 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
138
138
  defaultBranch: string;
139
139
  githubOwner: string | null;
140
140
  githubRepo: string | null;
141
+ issueProvider: "GITHUB" | "LINEAR";
142
+ issueTrackerConfig: unknown;
141
143
  isArchived: boolean;
142
144
  startupScriptCommand: string | null;
143
145
  startupScriptPath: string | null;
@@ -154,7 +156,7 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
154
156
  worktreePath: string | null;
155
157
  branchName: string | null;
156
158
  isAutoGeneratedBranch: boolean;
157
- creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE";
159
+ creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE" | "LINEAR_ISSUE";
158
160
  creationMetadata: unknown;
159
161
  initErrorMessage: string | null;
160
162
  initOutput: string | null;
@@ -170,6 +172,9 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
170
172
  prUrl: string | null;
171
173
  githubIssueNumber: number | null;
172
174
  githubIssueUrl: string | null;
175
+ linearIssueId: string | null;
176
+ linearIssueIdentifier: string | null;
177
+ linearIssueUrl: string | null;
173
178
  defaultSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
174
179
  ratchetSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
175
180
  prNumber: number | null;
@@ -233,7 +238,7 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
233
238
  meta: {
234
239
  exportedAt: string;
235
240
  version: string;
236
- schemaVersion: 3;
241
+ schemaVersion: 4;
237
242
  };
238
243
  data: {
239
244
  projects: {
@@ -245,6 +250,8 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
245
250
  defaultBranch: string;
246
251
  githubOwner: string | null;
247
252
  githubRepo: string | null;
253
+ issueProvider: "GITHUB" | "LINEAR";
254
+ issueTrackerConfig: unknown;
248
255
  isArchived: boolean;
249
256
  startupScriptCommand: string | null;
250
257
  startupScriptPath: string | null;
@@ -261,7 +268,7 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
261
268
  worktreePath: string | null;
262
269
  branchName: string | null;
263
270
  isAutoGeneratedBranch: boolean;
264
- creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE";
271
+ creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE" | "LINEAR_ISSUE";
265
272
  creationMetadata: unknown;
266
273
  initErrorMessage: string | null;
267
274
  initOutput: string | null;
@@ -277,6 +284,9 @@ export declare const adminRouter: import("@trpc/server").TRPCBuiltRouter<{
277
284
  prUrl: string | null;
278
285
  githubIssueNumber: number | null;
279
286
  githubIssueUrl: string | null;
287
+ linearIssueId: string | null;
288
+ linearIssueIdentifier: string | null;
289
+ linearIssueUrl: string | null;
280
290
  defaultSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
281
291
  ratchetSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
282
292
  prNumber: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.trpc.d.ts","sourceRoot":"","sources":["../../../../src/backend/trpc/admin.trpc.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,OAAO,EAA2B,MAAM,QAAQ,CAAC;AAM/D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoVtB,CAAC"}
1
+ {"version":3,"file":"admin.trpc.d.ts","sourceRoot":"","sources":["../../../../src/backend/trpc/admin.trpc.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,OAAO,EAA2B,MAAM,QAAQ,CAAC;AAM/D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoVtB,CAAC"}
@@ -16,11 +16,18 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
16
16
  limit?: number | undefined;
17
17
  offset?: number | undefined;
18
18
  } | undefined;
19
- output: ({
19
+ output: {
20
+ issueTrackerConfig: {
21
+ linear?: {
22
+ viewerName: string;
23
+ teamId: string;
24
+ teamName: string;
25
+ hasApiKey: boolean;
26
+ } | undefined;
27
+ } | null;
20
28
  _count: {
21
29
  workspaces: number;
22
30
  };
23
- } & {
24
31
  name: string;
25
32
  updatedAt: Date;
26
33
  createdAt: Date;
@@ -32,10 +39,11 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
32
39
  githubOwner: string | null;
33
40
  githubRepo: string | null;
34
41
  isArchived: boolean;
42
+ issueProvider: import("../../../prisma/generated/enums.js").IssueProvider;
35
43
  startupScriptCommand: string | null;
36
44
  startupScriptPath: string | null;
37
45
  startupScriptTimeout: number;
38
- })[];
46
+ }[];
39
47
  meta: object;
40
48
  }>;
41
49
  getById: import("@trpc/server").TRPCQueryProcedure<{
@@ -43,6 +51,14 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
43
51
  id: string;
44
52
  };
45
53
  output: {
54
+ issueTrackerConfig: {
55
+ linear?: {
56
+ viewerName: string;
57
+ teamId: string;
58
+ teamName: string;
59
+ hasApiKey: boolean;
60
+ } | undefined;
61
+ } | null;
46
62
  workspaces: {
47
63
  name: string;
48
64
  prUrl: string | null;
@@ -76,6 +92,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
76
92
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
77
93
  githubIssueNumber: number | null;
78
94
  githubIssueUrl: string | null;
95
+ linearIssueId: string | null;
96
+ linearIssueIdentifier: string | null;
97
+ linearIssueUrl: string | null;
79
98
  prUpdatedAt: Date | null;
80
99
  prCiFailedAt: Date | null;
81
100
  prCiLastNotifiedAt: Date | null;
@@ -90,7 +109,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
90
109
  cachedKanbanColumn: import("../../../prisma/generated/enums.js").KanbanColumn;
91
110
  stateComputedAt: Date | null;
92
111
  }[];
93
- } & {
94
112
  name: string;
95
113
  updatedAt: Date;
96
114
  createdAt: Date;
@@ -102,6 +120,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
102
120
  githubOwner: string | null;
103
121
  githubRepo: string | null;
104
122
  isArchived: boolean;
123
+ issueProvider: import("../../../prisma/generated/enums.js").IssueProvider;
105
124
  startupScriptCommand: string | null;
106
125
  startupScriptPath: string | null;
107
126
  startupScriptTimeout: number;
@@ -113,6 +132,14 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
113
132
  slug: string;
114
133
  };
115
134
  output: {
135
+ issueTrackerConfig: {
136
+ linear?: {
137
+ viewerName: string;
138
+ teamId: string;
139
+ teamName: string;
140
+ hasApiKey: boolean;
141
+ } | undefined;
142
+ } | null;
116
143
  workspaces: {
117
144
  name: string;
118
145
  prUrl: string | null;
@@ -146,6 +173,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
146
173
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
147
174
  githubIssueNumber: number | null;
148
175
  githubIssueUrl: string | null;
176
+ linearIssueId: string | null;
177
+ linearIssueIdentifier: string | null;
178
+ linearIssueUrl: string | null;
149
179
  prUpdatedAt: Date | null;
150
180
  prCiFailedAt: Date | null;
151
181
  prCiLastNotifiedAt: Date | null;
@@ -160,7 +190,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
160
190
  cachedKanbanColumn: import("../../../prisma/generated/enums.js").KanbanColumn;
161
191
  stateComputedAt: Date | null;
162
192
  }[];
163
- } & {
164
193
  name: string;
165
194
  updatedAt: Date;
166
195
  createdAt: Date;
@@ -172,6 +201,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
172
201
  githubOwner: string | null;
173
202
  githubRepo: string | null;
174
203
  isArchived: boolean;
204
+ issueProvider: import("../../../prisma/generated/enums.js").IssueProvider;
175
205
  startupScriptCommand: string | null;
176
206
  startupScriptPath: string | null;
177
207
  startupScriptTimeout: number;
@@ -214,6 +244,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
214
244
  githubOwner: string | null;
215
245
  githubRepo: string | null;
216
246
  isArchived: boolean;
247
+ issueProvider: import("../../../prisma/generated/enums.js").IssueProvider;
248
+ issueTrackerConfig: import("@prisma/client/runtime/client").JsonValue | null;
217
249
  startupScriptCommand: string | null;
218
250
  startupScriptPath: string | null;
219
251
  startupScriptTimeout: number;
@@ -231,6 +263,15 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
231
263
  startupScriptCommand?: string | null | undefined;
232
264
  startupScriptPath?: string | null | undefined;
233
265
  startupScriptTimeout?: number | undefined;
266
+ issueProvider?: "GITHUB" | "LINEAR" | undefined;
267
+ issueTrackerConfig?: {
268
+ linear?: {
269
+ apiKey: string;
270
+ teamId: string;
271
+ teamName: string;
272
+ viewerName: string;
273
+ } | undefined;
274
+ } | null | undefined;
234
275
  };
235
276
  output: {
236
277
  name: string;
@@ -244,6 +285,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
244
285
  githubOwner: string | null;
245
286
  githubRepo: string | null;
246
287
  isArchived: boolean;
288
+ issueProvider: import("../../../prisma/generated/enums.js").IssueProvider;
289
+ issueTrackerConfig: import("@prisma/client/runtime/client").JsonValue | null;
247
290
  startupScriptCommand: string | null;
248
291
  startupScriptPath: string | null;
249
292
  startupScriptTimeout: number;
@@ -266,6 +309,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
266
309
  githubOwner: string | null;
267
310
  githubRepo: string | null;
268
311
  isArchived: boolean;
312
+ issueProvider: import("../../../prisma/generated/enums.js").IssueProvider;
313
+ issueTrackerConfig: import("@prisma/client/runtime/client").JsonValue | null;
269
314
  startupScriptCommand: string | null;
270
315
  startupScriptPath: string | null;
271
316
  startupScriptTimeout: number;
@@ -485,7 +530,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
485
530
  meta: {
486
531
  exportedAt: string;
487
532
  version: string;
488
- schemaVersion: 3;
533
+ schemaVersion: 4;
489
534
  };
490
535
  data: {
491
536
  projects: {
@@ -497,6 +542,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
497
542
  defaultBranch: string;
498
543
  githubOwner: string | null;
499
544
  githubRepo: string | null;
545
+ issueProvider: "GITHUB" | "LINEAR";
546
+ issueTrackerConfig: unknown;
500
547
  isArchived: boolean;
501
548
  startupScriptCommand: string | null;
502
549
  startupScriptPath: string | null;
@@ -513,7 +560,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
513
560
  worktreePath: string | null;
514
561
  branchName: string | null;
515
562
  isAutoGeneratedBranch: boolean;
516
- creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE";
563
+ creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE" | "LINEAR_ISSUE";
517
564
  creationMetadata: unknown;
518
565
  initErrorMessage: string | null;
519
566
  initOutput: string | null;
@@ -529,6 +576,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
529
576
  prUrl: string | null;
530
577
  githubIssueNumber: number | null;
531
578
  githubIssueUrl: string | null;
579
+ linearIssueId: string | null;
580
+ linearIssueIdentifier: string | null;
581
+ linearIssueUrl: string | null;
532
582
  defaultSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
533
583
  ratchetSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
534
584
  prNumber: number | null;
@@ -592,7 +642,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
592
642
  meta: {
593
643
  exportedAt: string;
594
644
  version: string;
595
- schemaVersion: 3;
645
+ schemaVersion: 4;
596
646
  };
597
647
  data: {
598
648
  projects: {
@@ -604,6 +654,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
604
654
  defaultBranch: string;
605
655
  githubOwner: string | null;
606
656
  githubRepo: string | null;
657
+ issueProvider: "GITHUB" | "LINEAR";
658
+ issueTrackerConfig: unknown;
607
659
  isArchived: boolean;
608
660
  startupScriptCommand: string | null;
609
661
  startupScriptPath: string | null;
@@ -620,7 +672,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
620
672
  worktreePath: string | null;
621
673
  branchName: string | null;
622
674
  isAutoGeneratedBranch: boolean;
623
- creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE";
675
+ creationSource: "MANUAL" | "RESUME_BRANCH" | "GITHUB_ISSUE" | "LINEAR_ISSUE";
624
676
  creationMetadata: unknown;
625
677
  initErrorMessage: string | null;
626
678
  initOutput: string | null;
@@ -636,6 +688,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
636
688
  prUrl: string | null;
637
689
  githubIssueNumber: number | null;
638
690
  githubIssueUrl: string | null;
691
+ linearIssueId: string | null;
692
+ linearIssueIdentifier: string | null;
693
+ linearIssueUrl: string | null;
639
694
  defaultSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
640
695
  ratchetSessionProvider: "WORKSPACE_DEFAULT" | "CLAUDE" | "CODEX";
641
696
  prNumber: number | null;
@@ -868,6 +923,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
868
923
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
869
924
  githubIssueNumber: number | null;
870
925
  githubIssueUrl: string | null;
926
+ linearIssueId: string | null;
927
+ linearIssueIdentifier: string | null;
928
+ linearIssueUrl: string | null;
871
929
  prUpdatedAt: Date | null;
872
930
  prCiFailedAt: Date | null;
873
931
  prCiLastNotifiedAt: Date | null;
@@ -945,6 +1003,16 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
945
1003
  };
946
1004
  meta: object;
947
1005
  }>;
1006
+ getUnpushedFiles: import("@trpc/server").TRPCQueryProcedure<{
1007
+ input: {
1008
+ workspaceId: string;
1009
+ };
1010
+ output: {
1011
+ files: string[];
1012
+ hasUpstream: boolean;
1013
+ };
1014
+ meta: object;
1015
+ }>;
948
1016
  getFileDiff: import("@trpc/server").TRPCQueryProcedure<{
949
1017
  input: {
950
1018
  workspaceId: string;
@@ -1068,6 +1136,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1068
1136
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1069
1137
  githubIssueNumber: number | null;
1070
1138
  githubIssueUrl: string | null;
1139
+ linearIssueId: string | null;
1140
+ linearIssueIdentifier: string | null;
1141
+ linearIssueUrl: string | null;
1071
1142
  prUpdatedAt: Date | null;
1072
1143
  prCiFailedAt: Date | null;
1073
1144
  prCiLastNotifiedAt: Date | null;
@@ -1193,6 +1264,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1193
1264
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1194
1265
  githubIssueNumber: number | null;
1195
1266
  githubIssueUrl: string | null;
1267
+ linearIssueId: string | null;
1268
+ linearIssueIdentifier: string | null;
1269
+ linearIssueUrl: string | null;
1196
1270
  prUpdatedAt: Date | null;
1197
1271
  prCiFailedAt: Date | null;
1198
1272
  prCiLastNotifiedAt: Date | null;
@@ -1275,6 +1349,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1275
1349
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1276
1350
  githubIssueNumber: number | null;
1277
1351
  githubIssueUrl: string | null;
1352
+ linearIssueId: string | null;
1353
+ linearIssueIdentifier: string | null;
1354
+ linearIssueUrl: string | null;
1278
1355
  prUpdatedAt: Date | null;
1279
1356
  prCiFailedAt: Date | null;
1280
1357
  prCiLastNotifiedAt: Date | null;
@@ -1357,6 +1434,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1357
1434
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1358
1435
  githubIssueNumber: number | null;
1359
1436
  githubIssueUrl: string | null;
1437
+ linearIssueId: string | null;
1438
+ linearIssueIdentifier: string | null;
1439
+ linearIssueUrl: string | null;
1360
1440
  prUpdatedAt: Date | null;
1361
1441
  prCiFailedAt: Date | null;
1362
1442
  prCiLastNotifiedAt: Date | null;
@@ -1396,6 +1476,15 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1396
1476
  name?: string | undefined;
1397
1477
  description?: string | undefined;
1398
1478
  ratchetEnabled?: boolean | undefined;
1479
+ } | {
1480
+ type: "LINEAR_ISSUE";
1481
+ projectId: string;
1482
+ issueId: string;
1483
+ issueIdentifier: string;
1484
+ issueUrl: string;
1485
+ name?: string | undefined;
1486
+ description?: string | undefined;
1487
+ ratchetEnabled?: boolean | undefined;
1399
1488
  };
1400
1489
  output: {
1401
1490
  name: string;
@@ -1430,6 +1519,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1430
1519
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1431
1520
  githubIssueNumber: number | null;
1432
1521
  githubIssueUrl: string | null;
1522
+ linearIssueId: string | null;
1523
+ linearIssueIdentifier: string | null;
1524
+ linearIssueUrl: string | null;
1433
1525
  prUpdatedAt: Date | null;
1434
1526
  prCiFailedAt: Date | null;
1435
1527
  prCiLastNotifiedAt: Date | null;
@@ -1509,6 +1601,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1509
1601
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1510
1602
  githubIssueNumber: number | null;
1511
1603
  githubIssueUrl: string | null;
1604
+ linearIssueId: string | null;
1605
+ linearIssueIdentifier: string | null;
1606
+ linearIssueUrl: string | null;
1512
1607
  prUpdatedAt: Date | null;
1513
1608
  prCiFailedAt: Date | null;
1514
1609
  prCiLastNotifiedAt: Date | null;
@@ -1564,6 +1659,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1564
1659
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1565
1660
  githubIssueNumber: number | null;
1566
1661
  githubIssueUrl: string | null;
1662
+ linearIssueId: string | null;
1663
+ linearIssueIdentifier: string | null;
1664
+ linearIssueUrl: string | null;
1567
1665
  prUpdatedAt: Date | null;
1568
1666
  prCiFailedAt: Date | null;
1569
1667
  prCiLastNotifiedAt: Date | null;
@@ -1618,6 +1716,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1618
1716
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1619
1717
  githubIssueNumber: number | null;
1620
1718
  githubIssueUrl: string | null;
1719
+ linearIssueId: string | null;
1720
+ linearIssueIdentifier: string | null;
1721
+ linearIssueUrl: string | null;
1621
1722
  prUpdatedAt: Date | null;
1622
1723
  prCiFailedAt: Date | null;
1623
1724
  prCiLastNotifiedAt: Date | null;
@@ -1671,6 +1772,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1671
1772
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1672
1773
  githubIssueNumber: number | null;
1673
1774
  githubIssueUrl: string | null;
1775
+ linearIssueId: string | null;
1776
+ linearIssueIdentifier: string | null;
1777
+ linearIssueUrl: string | null;
1674
1778
  prUpdatedAt: Date | null;
1675
1779
  prCiFailedAt: Date | null;
1676
1780
  prCiLastNotifiedAt: Date | null;
@@ -1836,6 +1940,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1836
1940
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1837
1941
  githubIssueNumber: number | null;
1838
1942
  githubIssueUrl: string | null;
1943
+ linearIssueId: string | null;
1944
+ linearIssueIdentifier: string | null;
1945
+ linearIssueUrl: string | null;
1839
1946
  prUpdatedAt: Date | null;
1840
1947
  prCiFailedAt: Date | null;
1841
1948
  prCiLastNotifiedAt: Date | null;
@@ -1956,6 +2063,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
1956
2063
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
1957
2064
  githubIssueNumber: number | null;
1958
2065
  githubIssueUrl: string | null;
2066
+ linearIssueId: string | null;
2067
+ linearIssueIdentifier: string | null;
2068
+ linearIssueUrl: string | null;
1959
2069
  prUpdatedAt: Date | null;
1960
2070
  prCiFailedAt: Date | null;
1961
2071
  prCiLastNotifiedAt: Date | null;
@@ -2025,6 +2135,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2025
2135
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
2026
2136
  githubIssueNumber: number | null;
2027
2137
  githubIssueUrl: string | null;
2138
+ linearIssueId: string | null;
2139
+ linearIssueIdentifier: string | null;
2140
+ linearIssueUrl: string | null;
2028
2141
  prUpdatedAt: Date | null;
2029
2142
  prCiFailedAt: Date | null;
2030
2143
  prCiLastNotifiedAt: Date | null;
@@ -2132,6 +2245,9 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2132
2245
  runScriptStatus: import("../../../prisma/generated/enums.js").RunScriptStatus;
2133
2246
  githubIssueNumber: number | null;
2134
2247
  githubIssueUrl: string | null;
2248
+ linearIssueId: string | null;
2249
+ linearIssueIdentifier: string | null;
2250
+ linearIssueUrl: string | null;
2135
2251
  prUpdatedAt: Date | null;
2136
2252
  prCiFailedAt: Date | null;
2137
2253
  prCiLastNotifiedAt: Date | null;
@@ -2413,6 +2529,49 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
2413
2529
  meta: object;
2414
2530
  }>;
2415
2531
  }>>;
2532
+ linear: import("@trpc/server").TRPCBuiltRouter<{
2533
+ ctx: import("./trpc.js").Context;
2534
+ meta: object;
2535
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
2536
+ transformer: true;
2537
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
2538
+ validateKeyAndListTeams: import("@trpc/server").TRPCMutationProcedure<{
2539
+ input: {
2540
+ apiKey: string;
2541
+ };
2542
+ output: import("../domains/linear/index.js").LinearValidationResult & {
2543
+ teams?: import("../domains/linear/index.js").LinearTeam[];
2544
+ };
2545
+ meta: object;
2546
+ }>;
2547
+ listIssuesForProject: import("@trpc/server").TRPCQueryProcedure<{
2548
+ input: {
2549
+ projectId: string;
2550
+ };
2551
+ output: {
2552
+ issues: never[];
2553
+ error: string;
2554
+ } | {
2555
+ issues: import("../domains/linear/index.js").LinearIssue[];
2556
+ error: null;
2557
+ };
2558
+ meta: object;
2559
+ }>;
2560
+ getIssue: import("@trpc/server").TRPCQueryProcedure<{
2561
+ input: {
2562
+ projectId: string;
2563
+ issueId: string;
2564
+ };
2565
+ output: {
2566
+ issue: null;
2567
+ error: string;
2568
+ } | {
2569
+ issue: import("../domains/linear/index.js").LinearIssue | null;
2570
+ error: null;
2571
+ };
2572
+ meta: object;
2573
+ }>;
2574
+ }>>;
2416
2575
  }>>;
2417
2576
  export type AppRouter = typeof appRouter;
2418
2577
  export { projectScopedProcedure } from './procedures/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/trpc/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GASpB,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/backend/trpc/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUpB,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { adminRouter } from './admin.trpc.js';
2
2
  import { decisionLogRouter } from './decision-log.trpc.js';
3
3
  import { githubRouter } from './github.trpc.js';
4
+ import { linearRouter } from './linear.trpc.js';
4
5
  import { prReviewRouter } from './pr-review.trpc.js';
5
6
  import { projectRouter } from './project.trpc.js';
6
7
  import { sessionRouter } from './session.trpc.js';
@@ -16,6 +17,7 @@ export const appRouter = router({
16
17
  prReview: prReviewRouter,
17
18
  userSettings: userSettingsRouter,
18
19
  github: githubRouter,
20
+ linear: linearRouter,
19
21
  });
20
22
  export { projectScopedProcedure } from './procedures/index.js';
21
23
  export { createContext, publicProcedure } from './trpc.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/backend/trpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;IAC9B,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,iBAAiB;IAC9B,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,kBAAkB;IAChC,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAKH,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/backend/trpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;IAC9B,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,iBAAiB;IAC9B,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,kBAAkB;IAChC,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAKH,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}