@benchcubed/today-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +296 -0
  2. package/dist/ai/bedrock-client.d.ts +1 -0
  3. package/dist/ai/bedrock-client.d.ts.map +1 -0
  4. package/dist/ai/bedrock-client.js +2 -0
  5. package/dist/ai/bedrock-client.js.map +1 -0
  6. package/dist/ai/knowledge-processor.d.ts +1 -0
  7. package/dist/ai/knowledge-processor.d.ts.map +1 -0
  8. package/dist/ai/knowledge-processor.js +2 -0
  9. package/dist/ai/knowledge-processor.js.map +1 -0
  10. package/dist/cli.d.ts +3 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +70 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/commands/ask.d.ts +3 -0
  15. package/dist/commands/ask.d.ts.map +1 -0
  16. package/dist/commands/ask.js +217 -0
  17. package/dist/commands/ask.js.map +1 -0
  18. package/dist/commands/audit.d.ts +3 -0
  19. package/dist/commands/audit.d.ts.map +1 -0
  20. package/dist/commands/audit.js +153 -0
  21. package/dist/commands/audit.js.map +1 -0
  22. package/dist/commands/auth.d.ts +3 -0
  23. package/dist/commands/auth.d.ts.map +1 -0
  24. package/dist/commands/auth.js +114 -0
  25. package/dist/commands/auth.js.map +1 -0
  26. package/dist/commands/config.d.ts +3 -0
  27. package/dist/commands/config.d.ts.map +1 -0
  28. package/dist/commands/config.js +72 -0
  29. package/dist/commands/config.js.map +1 -0
  30. package/dist/commands/embeddings.d.ts +3 -0
  31. package/dist/commands/embeddings.d.ts.map +1 -0
  32. package/dist/commands/embeddings.js +118 -0
  33. package/dist/commands/embeddings.js.map +1 -0
  34. package/dist/commands/experts.d.ts +3 -0
  35. package/dist/commands/experts.d.ts.map +1 -0
  36. package/dist/commands/experts.js +129 -0
  37. package/dist/commands/experts.js.map +1 -0
  38. package/dist/commands/export-import.d.ts +4 -0
  39. package/dist/commands/export-import.d.ts.map +1 -0
  40. package/dist/commands/export-import.js +285 -0
  41. package/dist/commands/export-import.js.map +1 -0
  42. package/dist/commands/git.d.ts +4 -0
  43. package/dist/commands/git.d.ts.map +1 -0
  44. package/dist/commands/git.js +274 -0
  45. package/dist/commands/git.js.map +1 -0
  46. package/dist/commands/impact.d.ts +3 -0
  47. package/dist/commands/impact.d.ts.map +1 -0
  48. package/dist/commands/impact.js +121 -0
  49. package/dist/commands/impact.js.map +1 -0
  50. package/dist/commands/insights.d.ts +3 -0
  51. package/dist/commands/insights.d.ts.map +1 -0
  52. package/dist/commands/insights.js +113 -0
  53. package/dist/commands/insights.js.map +1 -0
  54. package/dist/commands/learned.d.ts +3 -0
  55. package/dist/commands/learned.d.ts.map +1 -0
  56. package/dist/commands/learned.js +355 -0
  57. package/dist/commands/learned.js.map +1 -0
  58. package/dist/commands/onboard.d.ts +3 -0
  59. package/dist/commands/onboard.d.ts.map +1 -0
  60. package/dist/commands/onboard.js +141 -0
  61. package/dist/commands/onboard.js.map +1 -0
  62. package/dist/commands/recent.d.ts +3 -0
  63. package/dist/commands/recent.d.ts.map +1 -0
  64. package/dist/commands/recent.js +83 -0
  65. package/dist/commands/recent.js.map +1 -0
  66. package/dist/commands/secrets.d.ts +3 -0
  67. package/dist/commands/secrets.d.ts.map +1 -0
  68. package/dist/commands/secrets.js +203 -0
  69. package/dist/commands/secrets.js.map +1 -0
  70. package/dist/commands/stats.d.ts +3 -0
  71. package/dist/commands/stats.d.ts.map +1 -0
  72. package/dist/commands/stats.js +120 -0
  73. package/dist/commands/stats.js.map +1 -0
  74. package/dist/config/index.d.ts +12 -0
  75. package/dist/config/index.d.ts.map +1 -0
  76. package/dist/config/index.js +46 -0
  77. package/dist/config/index.js.map +1 -0
  78. package/dist/database/migrations.d.ts +13 -0
  79. package/dist/database/migrations.d.ts.map +1 -0
  80. package/dist/database/migrations.js +190 -0
  81. package/dist/database/migrations.js.map +1 -0
  82. package/dist/database/postgresql.d.ts +92 -0
  83. package/dist/database/postgresql.d.ts.map +1 -0
  84. package/dist/database/postgresql.js +382 -0
  85. package/dist/database/postgresql.js.map +1 -0
  86. package/dist/database/sqlite.d.ts +54 -0
  87. package/dist/database/sqlite.d.ts.map +1 -0
  88. package/dist/database/sqlite.js +337 -0
  89. package/dist/database/sqlite.js.map +1 -0
  90. package/dist/lambda/admin.d.ts +3 -0
  91. package/dist/lambda/admin.d.ts.map +1 -0
  92. package/dist/lambda/admin.js +818 -0
  93. package/dist/lambda/admin.js.map +1 -0
  94. package/dist/lambda/ai-services.d.ts +6 -0
  95. package/dist/lambda/ai-services.d.ts.map +1 -0
  96. package/dist/lambda/ai-services.js +472 -0
  97. package/dist/lambda/ai-services.js.map +1 -0
  98. package/dist/lambda/analytics.d.ts +3 -0
  99. package/dist/lambda/analytics.d.ts.map +1 -0
  100. package/dist/lambda/analytics.js +481 -0
  101. package/dist/lambda/analytics.js.map +1 -0
  102. package/dist/lambda/api-router.d.ts +3 -0
  103. package/dist/lambda/api-router.d.ts.map +1 -0
  104. package/dist/lambda/api-router.js +162 -0
  105. package/dist/lambda/api-router.js.map +1 -0
  106. package/dist/lambda/custom-topics.d.ts +3 -0
  107. package/dist/lambda/custom-topics.d.ts.map +1 -0
  108. package/dist/lambda/custom-topics.js +425 -0
  109. package/dist/lambda/custom-topics.js.map +1 -0
  110. package/dist/lambda/graph-builder.d.ts +3 -0
  111. package/dist/lambda/graph-builder.d.ts.map +1 -0
  112. package/dist/lambda/graph-builder.js +442 -0
  113. package/dist/lambda/graph-builder.js.map +1 -0
  114. package/dist/lambda/knowledge-ai.d.ts +3 -0
  115. package/dist/lambda/knowledge-ai.d.ts.map +1 -0
  116. package/dist/lambda/knowledge-ai.js +849 -0
  117. package/dist/lambda/knowledge-ai.js.map +1 -0
  118. package/dist/lambda/post-confirmation.d.ts +8 -0
  119. package/dist/lambda/post-confirmation.d.ts.map +1 -0
  120. package/dist/lambda/post-confirmation.js +92 -0
  121. package/dist/lambda/post-confirmation.js.map +1 -0
  122. package/dist/lambda/teams.d.ts +3 -0
  123. package/dist/lambda/teams.d.ts.map +1 -0
  124. package/dist/lambda/teams.js +568 -0
  125. package/dist/lambda/teams.js.map +1 -0
  126. package/dist/lib/export-helpers.d.ts +5 -0
  127. package/dist/lib/export-helpers.d.ts.map +1 -0
  128. package/dist/lib/export-helpers.js +137 -0
  129. package/dist/lib/export-helpers.js.map +1 -0
  130. package/dist/lib/import-helpers.d.ts +5 -0
  131. package/dist/lib/import-helpers.d.ts.map +1 -0
  132. package/dist/lib/import-helpers.js +185 -0
  133. package/dist/lib/import-helpers.js.map +1 -0
  134. package/dist/lib/insights-helpers.d.ts +123 -0
  135. package/dist/lib/insights-helpers.d.ts.map +1 -0
  136. package/dist/lib/insights-helpers.js +374 -0
  137. package/dist/lib/insights-helpers.js.map +1 -0
  138. package/dist/lib/search-helpers.d.ts +4 -0
  139. package/dist/lib/search-helpers.d.ts.map +1 -0
  140. package/dist/lib/search-helpers.js +124 -0
  141. package/dist/lib/search-helpers.js.map +1 -0
  142. package/dist/lib/secret-helpers.d.ts +2 -0
  143. package/dist/lib/secret-helpers.d.ts.map +1 -0
  144. package/dist/lib/secret-helpers.js +85 -0
  145. package/dist/lib/secret-helpers.js.map +1 -0
  146. package/dist/lib/stats-helpers.d.ts +41 -0
  147. package/dist/lib/stats-helpers.d.ts.map +1 -0
  148. package/dist/lib/stats-helpers.js +263 -0
  149. package/dist/lib/stats-helpers.js.map +1 -0
  150. package/dist/services/aws-api.d.ts +81 -0
  151. package/dist/services/aws-api.d.ts.map +1 -0
  152. package/dist/services/aws-api.js +388 -0
  153. package/dist/services/aws-api.js.map +1 -0
  154. package/dist/services/bedrock.d.ts +83 -0
  155. package/dist/services/bedrock.d.ts.map +1 -0
  156. package/dist/services/bedrock.js +434 -0
  157. package/dist/services/bedrock.js.map +1 -0
  158. package/dist/services/commit-learnings.d.ts +25 -0
  159. package/dist/services/commit-learnings.d.ts.map +1 -0
  160. package/dist/services/commit-learnings.js +180 -0
  161. package/dist/services/commit-learnings.js.map +1 -0
  162. package/dist/services/embedding-storage.d.ts +42 -0
  163. package/dist/services/embedding-storage.d.ts.map +1 -0
  164. package/dist/services/embedding-storage.js +124 -0
  165. package/dist/services/embedding-storage.js.map +1 -0
  166. package/dist/services/expert-engine.d.ts +21 -0
  167. package/dist/services/expert-engine.d.ts.map +1 -0
  168. package/dist/services/expert-engine.js +58 -0
  169. package/dist/services/expert-engine.js.map +1 -0
  170. package/dist/services/onboarding-accelerator.d.ts +118 -0
  171. package/dist/services/onboarding-accelerator.d.ts.map +1 -0
  172. package/dist/services/onboarding-accelerator.js +403 -0
  173. package/dist/services/onboarding-accelerator.js.map +1 -0
  174. package/dist/services/secret-detection.d.ts +46 -0
  175. package/dist/services/secret-detection.d.ts.map +1 -0
  176. package/dist/services/secret-detection.js +75 -0
  177. package/dist/services/secret-detection.js.map +1 -0
  178. package/dist/services/secret-manager-simple.d.ts +51 -0
  179. package/dist/services/secret-manager-simple.d.ts.map +1 -0
  180. package/dist/services/secret-manager-simple.js +119 -0
  181. package/dist/services/secret-manager-simple.js.map +1 -0
  182. package/dist/services/secret-manager.d.ts +150 -0
  183. package/dist/services/secret-manager.d.ts.map +1 -0
  184. package/dist/services/secret-manager.js +287 -0
  185. package/dist/services/secret-manager.js.map +1 -0
  186. package/dist/services/vector-embeddings.d.ts +70 -0
  187. package/dist/services/vector-embeddings.d.ts.map +1 -0
  188. package/dist/services/vector-embeddings.js +167 -0
  189. package/dist/services/vector-embeddings.js.map +1 -0
  190. package/dist/services/vector-search.d.ts +28 -0
  191. package/dist/services/vector-search.d.ts.map +1 -0
  192. package/dist/services/vector-search.js +192 -0
  193. package/dist/services/vector-search.js.map +1 -0
  194. package/dist/types/index.d.ts +86 -0
  195. package/dist/types/index.d.ts.map +1 -0
  196. package/dist/types/index.js +4 -0
  197. package/dist/types/index.js.map +1 -0
  198. package/dist/utils/formatting.d.ts +10 -0
  199. package/dist/utils/formatting.d.ts.map +1 -0
  200. package/dist/utils/formatting.js +82 -0
  201. package/dist/utils/formatting.js.map +1 -0
  202. package/dist/utils/git.d.ts +52 -0
  203. package/dist/utils/git.d.ts.map +1 -0
  204. package/dist/utils/git.js +182 -0
  205. package/dist/utils/git.js.map +1 -0
  206. package/dist/utils/validation.d.ts +17 -0
  207. package/dist/utils/validation.d.ts.map +1 -0
  208. package/dist/utils/validation.js +187 -0
  209. package/dist/utils/validation.js.map +1 -0
  210. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-router.js","sourceRoot":"","sources":["../../src/lambda/api-router.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACnB,6BAA6B,EAAE,GAAG;IAClC,8BAA8B,EAAE,4BAA4B;IAC5D,8BAA8B,EAAE,6BAA6B;IAC7D,cAAc,EAAE,kBAAkB;CACnC,CAAC;AAEF,gCAAgC;AAChC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;AAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;AACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;AAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;AAE3D,IAAI,mBAAwB,CAAC;AAC7B,IAAI,CAAC;IACH,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;IAChE,mBAAmB,GAAG,IAAI,CAAC;AAC7B,CAAC;AAED,IAAI,YAAiB,CAAC;AACtB,IAAI,CAAC;IACH,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACrD,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IACxD,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAEM,MAAM,OAAO,GAAG,KAAK,EAAE,KAA2B,EAAkC,EAAE;IAC3F,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjE,wBAAwB;IACxB,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO;YACL,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,oCAAoC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,qDAAqD;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,sDAAsD;QACnG,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,wDAAwD;QAEtF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAErD,uEAAuE;QACvE,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9I,MAAM,aAAa,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC;QAExF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC;YAChF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,YAAY;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;iBACjE,CAAC;YACJ,CAAC;YACD,uDAAuD;QACzD,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAA6B,CAAC;QAElC,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,QAAQ;gBACX,yDAAyD;gBACzD,MAAM,WAAW,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;gBACpF,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,SAAS;gBACZ,wCAAwC;gBACxC,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;gBACtF,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS;gBACZ,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACZ,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,mBAAmB,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;oBAC7C,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACrD,MAAM,GAAG;wBACP,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,YAAY;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;qBACpE,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC7C,MAAM,GAAG;wBACP,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,YAAY;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;qBAC5D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACrC,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM;YACR;gBACE,MAAM,GAAG;oBACP,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,YAAY;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;iBACnD,CAAC;QACN,CAAC;QAED,kCAAkC;QAClC,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC;IAEhB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO;YACL,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,CAAC;SACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAtIW,QAAA,OAAO,WAsIlB"}
@@ -0,0 +1,3 @@
1
+ import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
2
+ export declare const handler: (event: APIGatewayProxyEvent) => Promise<APIGatewayProxyResult>;
3
+ //# sourceMappingURL=custom-topics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-topics.d.ts","sourceRoot":"","sources":["../../src/lambda/custom-topics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAuDzE,eAAO,MAAM,OAAO,GAAU,OAAO,oBAAoB,KAAG,OAAO,CAAC,qBAAqB,CAkExF,CAAC"}
@@ -0,0 +1,425 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handler = void 0;
4
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
5
+ const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
6
+ const dynamoClient = new client_dynamodb_1.DynamoDBClient({});
7
+ const headers = {
8
+ 'Content-Type': 'application/json',
9
+ 'Access-Control-Allow-Origin': '*',
10
+ 'Access-Control-Allow-Headers': 'Content-Type,Authorization',
11
+ 'Access-Control-Allow-Methods': 'GET,POST,PUT,DELETE,OPTIONS',
12
+ };
13
+ // Helper function to decode JWT token
14
+ function decodeJWT(token) {
15
+ try {
16
+ const parts = token.split('.');
17
+ if (parts.length !== 3)
18
+ return null;
19
+ const payload = Buffer.from(parts[1], 'base64').toString('utf8');
20
+ return JSON.parse(payload);
21
+ }
22
+ catch (error) {
23
+ console.error('Failed to decode JWT:', error);
24
+ return null;
25
+ }
26
+ }
27
+ // Extract user info from Authorization header
28
+ function getUserFromAuth(event) {
29
+ const authHeader = event.headers?.Authorization || event.headers?.authorization;
30
+ if (!authHeader)
31
+ return null;
32
+ const token = authHeader.replace('Bearer ', '');
33
+ const decoded = decodeJWT(token);
34
+ if (!decoded || !decoded.sub)
35
+ return null;
36
+ return {
37
+ userId: decoded.sub,
38
+ teamId: decoded['custom:team_id'] || 'default'
39
+ };
40
+ }
41
+ const handler = async (event) => {
42
+ // Handle CORS preflight
43
+ if (event.httpMethod === 'OPTIONS') {
44
+ return {
45
+ statusCode: 200,
46
+ headers,
47
+ body: '',
48
+ };
49
+ }
50
+ try {
51
+ const userInfo = getUserFromAuth(event);
52
+ if (!userInfo) {
53
+ return {
54
+ statusCode: 401,
55
+ headers,
56
+ body: JSON.stringify({ error: 'Unauthorized' }),
57
+ };
58
+ }
59
+ const { userId, teamId } = userInfo;
60
+ const path = event.path;
61
+ const method = event.httpMethod;
62
+ console.log('Custom Topics Handler - Path:', path, 'Method:', method);
63
+ // Route requests - check more specific routes first
64
+ if (path.includes('/custom-topics') && path.includes('/entries') && method === 'POST') {
65
+ // Add entry to custom topic: /api/custom-topics/{topicId}/entries
66
+ const parts = path.split('/');
67
+ const topicIdIndex = parts.indexOf('custom-topics') + 1;
68
+ const topicId = parts[topicIdIndex];
69
+ console.log('Adding entry to topic:', topicId);
70
+ return await addEntryToTopic(event, topicId, teamId);
71
+ }
72
+ else if (path.includes('/custom-topics') && path.includes('/entries') && method === 'DELETE') {
73
+ // Remove entry from custom topic: /api/custom-topics/{topicId}/entries/{entryId}
74
+ const parts = path.split('/');
75
+ const topicIdIndex = parts.indexOf('custom-topics') + 1;
76
+ const topicId = parts[topicIdIndex];
77
+ const entryId = parts[parts.indexOf('entries') + 1];
78
+ return await removeEntryFromTopic(topicId, entryId, teamId);
79
+ }
80
+ else if (path.match(/\/custom-topics\/[^/]+$/) && method === 'PUT') {
81
+ const topicId = path.split('/').pop();
82
+ return await updateCustomTopic(event, topicId, teamId);
83
+ }
84
+ else if (path.match(/\/custom-topics\/[^/]+$/) && method === 'DELETE') {
85
+ const topicId = path.split('/').pop();
86
+ return await deleteCustomTopic(topicId, teamId);
87
+ }
88
+ else if (path.includes('/custom-topics') && method === 'GET' && !path.match(/\/custom-topics\/[^/]+/)) {
89
+ return await listCustomTopics(teamId);
90
+ }
91
+ else if (path.includes('/custom-topics') && method === 'POST' && !path.includes('/entries')) {
92
+ return await createCustomTopic(event, userId, teamId);
93
+ }
94
+ return {
95
+ statusCode: 404,
96
+ headers,
97
+ body: JSON.stringify({ error: 'Not found' }),
98
+ };
99
+ }
100
+ catch (error) {
101
+ console.error('Error in custom-topics handler:', error);
102
+ return {
103
+ statusCode: 500,
104
+ headers,
105
+ body: JSON.stringify({ error: 'Internal server error' }),
106
+ };
107
+ }
108
+ };
109
+ exports.handler = handler;
110
+ async function listCustomTopics(teamId) {
111
+ try {
112
+ // Query all custom topics for the team
113
+ const response = await dynamoClient.send(new client_dynamodb_1.QueryCommand({
114
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
115
+ KeyConditionExpression: 'team_id = :teamId AND begins_with(relationship_id, :prefix)',
116
+ ExpressionAttributeValues: {
117
+ ':teamId': { S: teamId },
118
+ ':prefix': { S: 'custom-topic-' },
119
+ },
120
+ }));
121
+ const topics = (response.Items || []).map(item => {
122
+ const unmarshalled = (0, util_dynamodb_1.unmarshall)(item);
123
+ return JSON.parse(unmarshalled.topic_data || '{}');
124
+ });
125
+ // Get entry counts for each topic
126
+ const topicsWithCounts = await Promise.all(topics.map(async (topic) => {
127
+ const entryCountResponse = await dynamoClient.send(new client_dynamodb_1.QueryCommand({
128
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
129
+ KeyConditionExpression: 'team_id = :teamId AND begins_with(relationship_id, :prefix)',
130
+ ExpressionAttributeValues: {
131
+ ':teamId': { S: teamId },
132
+ ':prefix': { S: `custom-topic-entry-${topic.id}-` },
133
+ },
134
+ Select: 'COUNT',
135
+ }));
136
+ return {
137
+ ...topic,
138
+ entryCount: entryCountResponse.Count || 0,
139
+ };
140
+ }));
141
+ return {
142
+ statusCode: 200,
143
+ headers,
144
+ body: JSON.stringify({ topics: topicsWithCounts }),
145
+ };
146
+ }
147
+ catch (error) {
148
+ console.error('Error listing custom topics:', error);
149
+ return {
150
+ statusCode: 500,
151
+ headers,
152
+ body: JSON.stringify({ error: 'Failed to list custom topics' }),
153
+ };
154
+ }
155
+ }
156
+ async function createCustomTopic(event, userId, teamId) {
157
+ try {
158
+ const body = JSON.parse(event.body || '{}');
159
+ const { name, description, isDefault, color } = body;
160
+ if (!name) {
161
+ return {
162
+ statusCode: 400,
163
+ headers,
164
+ body: JSON.stringify({ error: 'Topic name is required' }),
165
+ };
166
+ }
167
+ const topicId = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
168
+ const now = new Date().toISOString();
169
+ const topic = {
170
+ id: topicId,
171
+ teamId,
172
+ name,
173
+ description: description || '',
174
+ isDefault: isDefault || false,
175
+ color: color || '#3B82F6',
176
+ createdAt: now,
177
+ updatedAt: now,
178
+ createdBy: userId,
179
+ };
180
+ // Store in DynamoDB
181
+ await dynamoClient.send(new client_dynamodb_1.PutItemCommand({
182
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
183
+ Item: {
184
+ team_id: { S: teamId },
185
+ relationship_id: { S: `custom-topic-${topicId}` },
186
+ topic_data: { S: JSON.stringify(topic) },
187
+ topic_name: { S: name },
188
+ is_default: { BOOL: isDefault || false },
189
+ created_at: { S: now },
190
+ },
191
+ }));
192
+ return {
193
+ statusCode: 201,
194
+ headers,
195
+ body: JSON.stringify({ topic }),
196
+ };
197
+ }
198
+ catch (error) {
199
+ console.error('Error creating custom topic:', error);
200
+ return {
201
+ statusCode: 500,
202
+ headers,
203
+ body: JSON.stringify({ error: 'Failed to create custom topic' }),
204
+ };
205
+ }
206
+ }
207
+ async function updateCustomTopic(event, topicId, teamId) {
208
+ try {
209
+ const body = JSON.parse(event.body || '{}');
210
+ const { name, description, isDefault, color } = body;
211
+ // Fetch existing topic
212
+ const existingResponse = await dynamoClient.send(new client_dynamodb_1.QueryCommand({
213
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
214
+ KeyConditionExpression: 'team_id = :teamId AND relationship_id = :relationshipId',
215
+ ExpressionAttributeValues: {
216
+ ':teamId': { S: teamId },
217
+ ':relationshipId': { S: `custom-topic-${topicId}` },
218
+ },
219
+ }));
220
+ if (!existingResponse.Items || existingResponse.Items.length === 0) {
221
+ return {
222
+ statusCode: 404,
223
+ headers,
224
+ body: JSON.stringify({ error: 'Topic not found' }),
225
+ };
226
+ }
227
+ const existingData = (0, util_dynamodb_1.unmarshall)(existingResponse.Items[0]);
228
+ const existingTopic = JSON.parse(existingData.topic_data || '{}');
229
+ const updatedTopic = {
230
+ ...existingTopic,
231
+ name: name !== undefined ? name : existingTopic.name,
232
+ description: description !== undefined ? description : existingTopic.description,
233
+ isDefault: isDefault !== undefined ? isDefault : existingTopic.isDefault,
234
+ color: color !== undefined ? color : existingTopic.color,
235
+ updatedAt: new Date().toISOString(),
236
+ };
237
+ // Update in DynamoDB
238
+ await dynamoClient.send(new client_dynamodb_1.PutItemCommand({
239
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
240
+ Item: {
241
+ team_id: { S: teamId },
242
+ relationship_id: { S: `custom-topic-${topicId}` },
243
+ topic_data: { S: JSON.stringify(updatedTopic) },
244
+ topic_name: { S: updatedTopic.name },
245
+ is_default: { BOOL: updatedTopic.isDefault },
246
+ created_at: { S: existingTopic.createdAt },
247
+ },
248
+ }));
249
+ return {
250
+ statusCode: 200,
251
+ headers,
252
+ body: JSON.stringify({ topic: updatedTopic }),
253
+ };
254
+ }
255
+ catch (error) {
256
+ console.error('Error updating custom topic:', error);
257
+ return {
258
+ statusCode: 500,
259
+ headers,
260
+ body: JSON.stringify({ error: 'Failed to update custom topic' }),
261
+ };
262
+ }
263
+ }
264
+ async function deleteCustomTopic(topicId, teamId) {
265
+ try {
266
+ // Delete the topic
267
+ await dynamoClient.send(new client_dynamodb_1.DeleteItemCommand({
268
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
269
+ Key: {
270
+ team_id: { S: teamId },
271
+ relationship_id: { S: `custom-topic-${topicId}` },
272
+ },
273
+ }));
274
+ // Also delete all entry-topic relationships
275
+ const entriesResponse = await dynamoClient.send(new client_dynamodb_1.QueryCommand({
276
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
277
+ KeyConditionExpression: 'team_id = :teamId AND begins_with(relationship_id, :prefix)',
278
+ ExpressionAttributeValues: {
279
+ ':teamId': { S: teamId },
280
+ ':prefix': { S: `custom-topic-entry-${topicId}-` },
281
+ },
282
+ }));
283
+ // Delete all entry relationships
284
+ for (const item of entriesResponse.Items || []) {
285
+ const unmarshalled = (0, util_dynamodb_1.unmarshall)(item);
286
+ await dynamoClient.send(new client_dynamodb_1.DeleteItemCommand({
287
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
288
+ Key: {
289
+ team_id: { S: teamId },
290
+ relationship_id: { S: unmarshalled.relationship_id },
291
+ },
292
+ }));
293
+ }
294
+ return {
295
+ statusCode: 200,
296
+ headers,
297
+ body: JSON.stringify({ success: true, message: 'Topic deleted' }),
298
+ };
299
+ }
300
+ catch (error) {
301
+ console.error('Error deleting custom topic:', error);
302
+ return {
303
+ statusCode: 500,
304
+ headers,
305
+ body: JSON.stringify({ error: 'Failed to delete custom topic' }),
306
+ };
307
+ }
308
+ }
309
+ async function addEntryToTopic(event, topicId, teamId) {
310
+ try {
311
+ const body = JSON.parse(event.body || '{}');
312
+ const { entryId } = body;
313
+ if (!entryId) {
314
+ return {
315
+ statusCode: 400,
316
+ headers,
317
+ body: JSON.stringify({ error: 'Entry ID is required' }),
318
+ };
319
+ }
320
+ const now = new Date().toISOString();
321
+ // Create relationship between entry and custom topic
322
+ await dynamoClient.send(new client_dynamodb_1.PutItemCommand({
323
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
324
+ Item: {
325
+ team_id: { S: teamId },
326
+ relationship_id: { S: `custom-topic-entry-${topicId}-${entryId}` },
327
+ topic_id: { S: topicId },
328
+ entry_id: { S: entryId },
329
+ created_at: { S: now },
330
+ },
331
+ }));
332
+ // Also update the entry to include this custom topic in its customTopics array
333
+ // First, fetch the entry
334
+ const entryResponse = await dynamoClient.send(new client_dynamodb_1.QueryCommand({
335
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
336
+ KeyConditionExpression: 'team_id = :teamId AND relationship_id = :relationshipId',
337
+ ExpressionAttributeValues: {
338
+ ':teamId': { S: teamId },
339
+ ':relationshipId': { S: `entry-${entryId}` },
340
+ },
341
+ }));
342
+ if (entryResponse.Items && entryResponse.Items.length > 0) {
343
+ const entryData = (0, util_dynamodb_1.unmarshall)(entryResponse.Items[0]);
344
+ const entry = JSON.parse(entryData.entry_data || '{}');
345
+ // Add custom topic to entry's customTopics array
346
+ const customTopics = entry.customTopics || [];
347
+ if (!customTopics.includes(topicId)) {
348
+ customTopics.push(topicId);
349
+ entry.customTopics = customTopics;
350
+ // Update the entry in DynamoDB
351
+ await dynamoClient.send(new client_dynamodb_1.PutItemCommand({
352
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
353
+ Item: {
354
+ ...entryResponse.Items[0],
355
+ entry_data: { S: JSON.stringify(entry) },
356
+ },
357
+ }));
358
+ }
359
+ }
360
+ return {
361
+ statusCode: 200,
362
+ headers,
363
+ body: JSON.stringify({ success: true, message: 'Entry added to topic' }),
364
+ };
365
+ }
366
+ catch (error) {
367
+ console.error('Error adding entry to topic:', error);
368
+ return {
369
+ statusCode: 500,
370
+ headers,
371
+ body: JSON.stringify({ error: 'Failed to add entry to topic' }),
372
+ };
373
+ }
374
+ }
375
+ async function removeEntryFromTopic(topicId, entryId, teamId) {
376
+ try {
377
+ // Delete relationship
378
+ await dynamoClient.send(new client_dynamodb_1.DeleteItemCommand({
379
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
380
+ Key: {
381
+ team_id: { S: teamId },
382
+ relationship_id: { S: `custom-topic-entry-${topicId}-${entryId}` },
383
+ },
384
+ }));
385
+ // Also update the entry to remove this custom topic from its customTopics array
386
+ const entryResponse = await dynamoClient.send(new client_dynamodb_1.QueryCommand({
387
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
388
+ KeyConditionExpression: 'team_id = :teamId AND relationship_id = :relationshipId',
389
+ ExpressionAttributeValues: {
390
+ ':teamId': { S: teamId },
391
+ ':relationshipId': { S: `entry-${entryId}` },
392
+ },
393
+ }));
394
+ if (entryResponse.Items && entryResponse.Items.length > 0) {
395
+ const entryData = (0, util_dynamodb_1.unmarshall)(entryResponse.Items[0]);
396
+ const entry = JSON.parse(entryData.entry_data || '{}');
397
+ // Remove custom topic from entry's customTopics array
398
+ if (entry.customTopics) {
399
+ entry.customTopics = entry.customTopics.filter((id) => id !== topicId);
400
+ // Update the entry in DynamoDB
401
+ await dynamoClient.send(new client_dynamodb_1.PutItemCommand({
402
+ TableName: process.env.KNOWLEDGE_GRAPH_TABLE,
403
+ Item: {
404
+ ...entryResponse.Items[0],
405
+ entry_data: { S: JSON.stringify(entry) },
406
+ },
407
+ }));
408
+ }
409
+ }
410
+ return {
411
+ statusCode: 200,
412
+ headers,
413
+ body: JSON.stringify({ success: true, message: 'Entry removed from topic' }),
414
+ };
415
+ }
416
+ catch (error) {
417
+ console.error('Error removing entry from topic:', error);
418
+ return {
419
+ statusCode: 500,
420
+ headers,
421
+ body: JSON.stringify({ error: 'Failed to remove entry from topic' }),
422
+ };
423
+ }
424
+ }
425
+ //# sourceMappingURL=custom-topics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-topics.js","sourceRoot":"","sources":["../../src/lambda/custom-topics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
2
+ export declare const handler: (event: APIGatewayProxyEvent) => Promise<APIGatewayProxyResult>;
3
+ //# sourceMappingURL=graph-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-builder.d.ts","sourceRoot":"","sources":["../../src/lambda/graph-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAmGzE,eAAO,MAAM,OAAO,GAClB,OAAO,oBAAoB,KAC1B,OAAO,CAAC,qBAAqB,CAgF/B,CAAC"}