@zhijianma/studio 1.0.10

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 (235) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +158 -0
  3. package/bin/cli.js +7 -0
  4. package/dist/app/friday/args.py +65 -0
  5. package/dist/app/friday/hook.py +52 -0
  6. package/dist/app/friday/main.py +164 -0
  7. package/dist/app/friday/model.py +124 -0
  8. package/dist/app/friday/tool/agentscope_tools.py +159 -0
  9. package/dist/app/friday/tool/utils.py +161 -0
  10. package/dist/app/friday/utils/common.py +28 -0
  11. package/dist/app/friday/utils/connect.py +63 -0
  12. package/dist/app/friday/utils/constants.py +8 -0
  13. package/dist/app/requirements.txt +1 -0
  14. package/dist/public/assets/001-aaron-Bb4ZO8rt.js +1 -0
  15. package/dist/public/assets/001-little girl-CnyQBZ0k.js +1 -0
  16. package/dist/public/assets/001-man-16-BO6NLPD_.js +1 -0
  17. package/dist/public/assets/002-avatar-C3FPnFjo.js +1 -0
  18. package/dist/public/assets/002-man-15-DfiiX2xR.js +1 -0
  19. package/dist/public/assets/002-old man-D4L-hA2l.js +1 -0
  20. package/dist/public/assets/003-avatar-UMXD80xE.js +1 -0
  21. package/dist/public/assets/003-cat-Cgyj1qJU.js +1 -0
  22. package/dist/public/assets/003-woman-20-Dy0WdjIG.js +1 -0
  23. package/dist/public/assets/004-avatar-D6Aw4tpO.js +1 -0
  24. package/dist/public/assets/004-dog-DUajs1ZO.js +1 -0
  25. package/dist/public/assets/004-woman-19-D5go5okE.js +1 -0
  26. package/dist/public/assets/005-avatar-NNQ3sWMe.js +1 -0
  27. package/dist/public/assets/005-child-SN-FoL0R.js +1 -0
  28. package/dist/public/assets/005-woman-18-AedSRg8a.js +1 -0
  29. package/dist/public/assets/006-avatar-FD8IUNL_.js +1 -0
  30. package/dist/public/assets/006-grandpa-T90IdpYr.js +1 -0
  31. package/dist/public/assets/006-man-14-DuMA-IZ-.js +1 -0
  32. package/dist/public/assets/007-avatar-eSQZtpkg.js +1 -0
  33. package/dist/public/assets/007-grandson-DV7UWhrR.js +1 -0
  34. package/dist/public/assets/007-man-13-owFTee2M.js +1 -0
  35. package/dist/public/assets/008-avatar-B9Rcm8D2.js +1 -0
  36. package/dist/public/assets/008-grandmother-1-BrQNVu9I.js +1 -0
  37. package/dist/public/assets/008-teenager-ClYxB7sG.js +1 -0
  38. package/dist/public/assets/009-avatar-DNSTEyOZ.js +1 -0
  39. package/dist/public/assets/009-grandfather-1-CPOn7LN0.js +1 -0
  40. package/dist/public/assets/009-grandmother-BAW_dEQC.js +1 -0
  41. package/dist/public/assets/010-avatar-CRXWH-A0.js +1 -0
  42. package/dist/public/assets/010-boy-1-C21LhAEr.js +1 -0
  43. package/dist/public/assets/011-woman-17-CI0UoPMR.js +1 -0
  44. package/dist/public/assets/012-avatar-BO5j-gGw.js +1 -0
  45. package/dist/public/assets/012-boy-T-hL8z9d.js +1 -0
  46. package/dist/public/assets/012-niece-M-tDMWMW.js +1 -0
  47. package/dist/public/assets/013-avatar-BTyOVKVo.js +1 -0
  48. package/dist/public/assets/013-granddaughter-D4VonRL-.js +1 -0
  49. package/dist/public/assets/013-woman-16-CuR7_ppw.js +1 -0
  50. package/dist/public/assets/014-avatar-DAW_Hvos.js +1 -0
  51. package/dist/public/assets/014-man-k8AXOF1Q.js +1 -0
  52. package/dist/public/assets/014-nurse-DnVigtmM.js +1 -0
  53. package/dist/public/assets/015-avatar-AxHR3j7h.js +1 -0
  54. package/dist/public/assets/015-woman-15-rDPwBxxc.js +1 -0
  55. package/dist/public/assets/015-woman-B71QRPrr.js +1 -0
  56. package/dist/public/assets/016-avatar-BVbMUisT.js +1 -0
  57. package/dist/public/assets/016-boy-BV_jzAu3.js +1 -0
  58. package/dist/public/assets/016-woman-14-D08zoPt9.js +1 -0
  59. package/dist/public/assets/017-gaming-BEpEpa1H.js +1 -0
  60. package/dist/public/assets/017-superpower-9xQAqiKN.js +1 -0
  61. package/dist/public/assets/017-uncle-EB1lmqAo.js +1 -0
  62. package/dist/public/assets/017-woman-13-BFsTAnGR.js +1 -0
  63. package/dist/public/assets/018-avatar-CnCLJXqW.js +1 -0
  64. package/dist/public/assets/018-young-QpIX6g3z.js +1 -0
  65. package/dist/public/assets/019-gaming-Dz5tR0Te.js +1 -0
  66. package/dist/public/assets/019-man-12-DiRb1dri.js +1 -0
  67. package/dist/public/assets/019-nephew-tXAgA9cr.js +1 -0
  68. package/dist/public/assets/020-avatar-Djtnu7jj.js +1 -0
  69. package/dist/public/assets/020-man-11-BNIZQyX4.js +1 -0
  70. package/dist/public/assets/020-young woman-BzklF8tq.js +1 -0
  71. package/dist/public/assets/021-aunt-CX9ikaTy.js +1 -0
  72. package/dist/public/assets/021-avatar-DP2sODK2.js +1 -0
  73. package/dist/public/assets/021-superhero-CIWREXp0.js +1 -0
  74. package/dist/public/assets/021-wizard-Dc9X50m_.js +1 -0
  75. package/dist/public/assets/021-woman-12-n9ipJK5z.js +1 -0
  76. package/dist/public/assets/022-father-B1_-ZTn1.js +1 -0
  77. package/dist/public/assets/022-woman-11-BUCsm06E.js +1 -0
  78. package/dist/public/assets/023-avatar-TeJ6vGqs.js +1 -0
  79. package/dist/public/assets/023-ghost-BYvGsa7H.js +1 -0
  80. package/dist/public/assets/023-man-10-Dfii-GE1.js +1 -0
  81. package/dist/public/assets/023-uncle-DoAMe1Iy.js +1 -0
  82. package/dist/public/assets/024-gaming-5ovd4aeT.js +1 -0
  83. package/dist/public/assets/024-man-9-CEenp_2W.js +1 -0
  84. package/dist/public/assets/024-prince-Fx3eCiNX.js +1 -0
  85. package/dist/public/assets/024-uncle-B6tqhqxU.js +1 -0
  86. package/dist/public/assets/025-gaming-CdlTp3Ub.js +1 -0
  87. package/dist/public/assets/025-man-8-Cfp6jNt4.js +1 -0
  88. package/dist/public/assets/025-man-BxhR-XTO.js +1 -0
  89. package/dist/public/assets/025-princess-Di5TdSnG.js +1 -0
  90. package/dist/public/assets/026-avatar-DojOPRVd.js +1 -0
  91. package/dist/public/assets/026-dad-CHaoMWM5.js +1 -0
  92. package/dist/public/assets/026-owl-Dl-UtZM8.js +1 -0
  93. package/dist/public/assets/026-woman-10-CywXJiaj.js +1 -0
  94. package/dist/public/assets/027-avatar-CrEyLmOb.js +1 -0
  95. package/dist/public/assets/027-girl-Box_GaMO.js +1 -0
  96. package/dist/public/assets/028-gaming-CmOZ2uGp.js +1 -0
  97. package/dist/public/assets/028-mom-tEacX7K4.js +1 -0
  98. package/dist/public/assets/028-woman-9-C1oq4sFk.js +1 -0
  99. package/dist/public/assets/029-boy-CVg6oMuZ.js +1 -0
  100. package/dist/public/assets/029-man-7-C4eeEeTQ.js +1 -0
  101. package/dist/public/assets/030-elf-C8vikAvx.js +1 -0
  102. package/dist/public/assets/030-gaming-ufCRMN7S.js +1 -0
  103. package/dist/public/assets/030-granddaughter-DVCp3D8k.js +1 -0
  104. package/dist/public/assets/030-woman-8-Bv_tRQci.js +1 -0
  105. package/dist/public/assets/031-avatar-D0u5HVaC.js +1 -0
  106. package/dist/public/assets/031-grandpa-jKj5oB8I.js +1 -0
  107. package/dist/public/assets/031-superhero-DfSkK-j2.js +1 -0
  108. package/dist/public/assets/031-woman-7-DJHfCbTS.js +1 -0
  109. package/dist/public/assets/032-avatar-BvY6LKIZ.js +1 -0
  110. package/dist/public/assets/032-grandson-DIjRxDr-.js +1 -0
  111. package/dist/public/assets/032-man-6-CU7pJmmt.js +1 -0
  112. package/dist/public/assets/033-avatar-Dviobgw8.js +1 -0
  113. package/dist/public/assets/033-elf-CTAEJgfN.js +1 -0
  114. package/dist/public/assets/033-grandfather-BCXPgoJj.js +1 -0
  115. package/dist/public/assets/033-man-5-wgMylvNO.js +1 -0
  116. package/dist/public/assets/034-avatar-BqtUHT3_.js +1 -0
  117. package/dist/public/assets/034-little girl-CrgnV25d.js +1 -0
  118. package/dist/public/assets/034-man-4-DJdzfcSi.js +1 -0
  119. package/dist/public/assets/035-gaming-Bp8xnJp_.js +1 -0
  120. package/dist/public/assets/035-mother-Ccg5FDO8.js +1 -0
  121. package/dist/public/assets/036-avatar-q6pZKQVf.js +1 -0
  122. package/dist/public/assets/036-father-DzpzeKJJ.js +1 -0
  123. package/dist/public/assets/036-goblin-vDsj4aP0.js +1 -0
  124. package/dist/public/assets/036-grandmother-BI_Fl_aR.js +1 -0
  125. package/dist/public/assets/037-avatar-CmfvVc7v.js +1 -0
  126. package/dist/public/assets/037-grandfather-Dtp4XH-s.js +1 -0
  127. package/dist/public/assets/037-sister-BQv83Uhf.js +1 -0
  128. package/dist/public/assets/038-gaming-UtXFtv5k.js +1 -0
  129. package/dist/public/assets/038-girl-Cwg5Rv36.js +1 -0
  130. package/dist/public/assets/038-gnome-HbogTmVa.js +1 -0
  131. package/dist/public/assets/038-woman-6-B7jMwsP0.js +1 -0
  132. package/dist/public/assets/039-avatar-Bb3kVg4l.js +1 -0
  133. package/dist/public/assets/039-man-3-BSjLnoLV.js +1 -0
  134. package/dist/public/assets/039-student-CIi32WG9.js +1 -0
  135. package/dist/public/assets/040-aunt-B5XQH_sJ.js +1 -0
  136. package/dist/public/assets/040-gaming-CzTjib4v.js +1 -0
  137. package/dist/public/assets/040-vampire-UFzaHu5c.js +1 -0
  138. package/dist/public/assets/040-woman-5-Byal-gfX.js +1 -0
  139. package/dist/public/assets/041-avatar-CPQN2PvT.js +1 -0
  140. package/dist/public/assets/041-little boy-DUZFMrmJ.js +1 -0
  141. package/dist/public/assets/041-queen-CqFzW3uO.js +1 -0
  142. package/dist/public/assets/041-woman-4-CKi_Q-ns.js +1 -0
  143. package/dist/public/assets/042-avatar-BatY-WQG.js +1 -0
  144. package/dist/public/assets/042-cyclops-DAxxBVqG.js +1 -0
  145. package/dist/public/assets/042-man-omzAnpu1.js +1 -0
  146. package/dist/public/assets/042-woman-3-2Ki1Qz3j.js +1 -0
  147. package/dist/public/assets/043-avatar-DN026abg.js +1 -0
  148. package/dist/public/assets/043-child-D8_xXkcm.js +1 -0
  149. package/dist/public/assets/043-genie-DK78Ykl6.js +1 -0
  150. package/dist/public/assets/043-woman-2-DMnB0A-0.js +1 -0
  151. package/dist/public/assets/044-avatar-Bz2FAXUw.js +1 -0
  152. package/dist/public/assets/044-avatar-DzDIyuj0.js +1 -0
  153. package/dist/public/assets/044-fairy-BT73odE0.js +1 -0
  154. package/dist/public/assets/044-sister-CtNPPHh-.js +1 -0
  155. package/dist/public/assets/045-avatar-DgiFAlxj.js +1 -0
  156. package/dist/public/assets/045-man-2-BZPavI2b.js +1 -0
  157. package/dist/public/assets/045-young-B39gytpm.js +1 -0
  158. package/dist/public/assets/046-avatar-ClHeZPOV.js +1 -0
  159. package/dist/public/assets/046-brother-BSvJBKnA.js +1 -0
  160. package/dist/public/assets/046-witch-CVjM2-iJ.js +1 -0
  161. package/dist/public/assets/046-woman-1-CHWuzLfU.js +1 -0
  162. package/dist/public/assets/047-avatar-DM01i1ZC.js +1 -0
  163. package/dist/public/assets/047-king-knA4oWNa.js +1 -0
  164. package/dist/public/assets/047-man-1-DRWdGzL5.js +1 -0
  165. package/dist/public/assets/048-father-B0wiM2h6.js +1 -0
  166. package/dist/public/assets/048-gaming-D7s83-h3.js +1 -0
  167. package/dist/public/assets/048-girl-CxGcfLgU.js +1 -0
  168. package/dist/public/assets/049-avatar-BfGDVwlO.js +1 -0
  169. package/dist/public/assets/049-little boy-Bu5mmsUf.js +1 -0
  170. package/dist/public/assets/049-man-B3xcAso3.js +1 -0
  171. package/dist/public/assets/050-avatar-itJOA0dd.js +1 -0
  172. package/dist/public/assets/050-boy-DEIcVyYT.js +1 -0
  173. package/dist/public/assets/050-knight-KRUkfXDS.js +1 -0
  174. package/dist/public/assets/051-avatar-fISL-mLU.js +1 -0
  175. package/dist/public/assets/052-avatar-BYrM0aPD.js +1 -0
  176. package/dist/public/assets/053-avatar-B-rnufvm.js +1 -0
  177. package/dist/public/assets/054-avatar-B7rwS7Qv.js +1 -0
  178. package/dist/public/assets/055-gaming-DqUOmMvT.js +1 -0
  179. package/dist/public/assets/056-avatar-D1lb7KL9.js +1 -0
  180. package/dist/public/assets/057-avatar-Df7NRaJW.js +1 -0
  181. package/dist/public/assets/058-avatar-C8zso2zk.js +1 -0
  182. package/dist/public/assets/059-avatar-zEhHpOcr.js +1 -0
  183. package/dist/public/assets/060-avatar-DkNabW8M.js +1 -0
  184. package/dist/public/assets/index-CWvY7i3l.css +1 -0
  185. package/dist/public/assets/index-Zxr-JuKD.js +820 -0
  186. package/dist/public/index.html +14 -0
  187. package/dist/public/logo.svg +42 -0
  188. package/dist/server/src/dao/FridayAppMessage.js +103 -0
  189. package/dist/server/src/dao/InputRequest.js +99 -0
  190. package/dist/server/src/dao/Message.js +42 -0
  191. package/dist/server/src/dao/Reply.js +96 -0
  192. package/dist/server/src/dao/Run.js +395 -0
  193. package/dist/server/src/dao/Trace.js +643 -0
  194. package/dist/server/src/database.js +54 -0
  195. package/dist/server/src/index.js +211 -0
  196. package/dist/server/src/migrations/1730000000000-AddMessageReplyForeignKey.js +216 -0
  197. package/dist/server/src/migrations/1740000000000-MigrateSpanTable.js +638 -0
  198. package/dist/server/src/migrations/index.js +19 -0
  199. package/dist/server/src/models/FridayApp.js +69 -0
  200. package/dist/server/src/models/FridayAppView.js +94 -0
  201. package/dist/server/src/models/InputRequest.js +41 -0
  202. package/dist/server/src/models/Message.js +39 -0
  203. package/dist/server/src/models/ModelInvocationView.js +127 -0
  204. package/dist/server/src/models/Reply.js +50 -0
  205. package/dist/server/src/models/Run.js +63 -0
  206. package/dist/server/src/models/RunView.js +111 -0
  207. package/dist/server/src/models/Trace.js +154 -0
  208. package/dist/server/src/otel/grpc-server.js +154 -0
  209. package/dist/server/src/otel/opentelemetry/proto/collector/trace/v1/trace_service.js +309 -0
  210. package/dist/server/src/otel/opentelemetry/proto/common/v1/common.js +747 -0
  211. package/dist/server/src/otel/opentelemetry/proto/resource/v1/resource.js +170 -0
  212. package/dist/server/src/otel/opentelemetry/proto/trace/v1/trace.js +1134 -0
  213. package/dist/server/src/otel/processor.js +395 -0
  214. package/dist/server/src/otel/router.js +128 -0
  215. package/dist/server/src/services/ReplyingStateManager.js +21 -0
  216. package/dist/server/src/trpc/router.js +385 -0
  217. package/dist/server/src/trpc/socket.js +589 -0
  218. package/dist/server/src/utils/index.js +17 -0
  219. package/dist/server/src/utils/processUtils.js +27 -0
  220. package/dist/shared/src/config/client.js +6 -0
  221. package/dist/shared/src/config/common.js +32 -0
  222. package/dist/shared/src/config/friday.js +168 -0
  223. package/dist/shared/src/config/index.js +19 -0
  224. package/dist/shared/src/config/server.js +104 -0
  225. package/dist/shared/src/index.js +18 -0
  226. package/dist/shared/src/types/index.js +20 -0
  227. package/dist/shared/src/types/messageForm.js +25 -0
  228. package/dist/shared/src/types/trace.js +20 -0
  229. package/dist/shared/src/types/trpc.js +98 -0
  230. package/dist/shared/src/types/usage.js +7 -0
  231. package/dist/shared/src/utils/banner.js +74 -0
  232. package/dist/shared/src/utils/objectUtils.js +74 -0
  233. package/dist/shared/src/utils/terminal.js +30 -0
  234. package/dist/shared/src/utils/timeUtils.js +86 -0
  235. package/package.json +89 -0
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.appRouter = void 0;
13
+ const server_1 = require("@trpc/server");
14
+ const zod_1 = require("zod");
15
+ const src_1 = require("../../../shared/src");
16
+ const Run_1 = require("../dao/Run");
17
+ const InputRequest_1 = require("../dao/InputRequest");
18
+ const Message_1 = require("../dao/Message");
19
+ const socket_1 = require("./socket");
20
+ const friday_1 = require("../../../shared/src/config/friday");
21
+ const FridayAppMessage_1 = require("../dao/FridayAppMessage");
22
+ const Reply_1 = require("@/dao/Reply");
23
+ const Trace_1 = require("../dao/Trace");
24
+ const textBlock = zod_1.z.object({
25
+ text: zod_1.z.string(),
26
+ type: zod_1.z.literal(src_1.BlockType.TEXT),
27
+ });
28
+ const thinkingBlock = zod_1.z.object({
29
+ thinking: zod_1.z.string(),
30
+ type: zod_1.z.literal(src_1.BlockType.THINKING),
31
+ });
32
+ const base64Source = zod_1.z.object({
33
+ type: zod_1.z.literal('base64'),
34
+ media_type: zod_1.z.string(),
35
+ data: zod_1.z.string(),
36
+ });
37
+ const urlSource = zod_1.z.object({
38
+ type: zod_1.z.literal('url'),
39
+ url: zod_1.z.string(),
40
+ });
41
+ const imageBlock = zod_1.z.object({
42
+ type: zod_1.z.literal(src_1.BlockType.IMAGE),
43
+ source: zod_1.z.union([base64Source, urlSource]),
44
+ });
45
+ const audioBlock = zod_1.z.object({
46
+ type: zod_1.z.literal(src_1.BlockType.AUDIO),
47
+ source: zod_1.z.union([base64Source, urlSource]),
48
+ });
49
+ const videoBlock = zod_1.z.object({
50
+ type: zod_1.z.literal(src_1.BlockType.VIDEO),
51
+ source: zod_1.z.union([base64Source, urlSource]),
52
+ });
53
+ const toolUseBlock = zod_1.z.object({
54
+ type: zod_1.z.literal(src_1.BlockType.TOOL_USE),
55
+ id: zod_1.z.string(),
56
+ name: zod_1.z.string(),
57
+ input: zod_1.z.record(zod_1.z.unknown()),
58
+ });
59
+ const toolResultBlock = zod_1.z.object({
60
+ type: zod_1.z.literal(src_1.BlockType.TOOL_RESULT),
61
+ id: zod_1.z.string(),
62
+ name: zod_1.z.string(),
63
+ output: zod_1.z.union([
64
+ zod_1.z.string(),
65
+ zod_1.z.array(zod_1.z.union([textBlock, imageBlock, audioBlock])),
66
+ ]),
67
+ });
68
+ // Define ContentBlock as a union of all possible block types
69
+ const contentBlock = zod_1.z.union([
70
+ textBlock,
71
+ thinkingBlock,
72
+ imageBlock,
73
+ audioBlock,
74
+ videoBlock,
75
+ toolUseBlock,
76
+ toolResultBlock,
77
+ ]);
78
+ // Define ContentBlocks as an array of ContentBlock
79
+ const contentBlocks = zod_1.z.array(contentBlock);
80
+ // Define ContentType as a string or ContentBlocks
81
+ const contentType = zod_1.z.union([zod_1.z.string(), contentBlocks]);
82
+ const t = server_1.initTRPC.create();
83
+ exports.appRouter = t.router({
84
+ registerRun: t.procedure
85
+ .input(zod_1.z.object({
86
+ id: zod_1.z.string(),
87
+ project: zod_1.z.string(),
88
+ name: zod_1.z.string(),
89
+ timestamp: zod_1.z.string(),
90
+ pid: zod_1.z.number(),
91
+ status: zod_1.z.enum(Object.values(src_1.Status)),
92
+ // Deprecated
93
+ run_dir: zod_1.z.string().optional().nullable(),
94
+ }))
95
+ .mutation((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
96
+ const runData = {
97
+ id: input.id,
98
+ project: input.project,
99
+ name: input.name,
100
+ timestamp: input.timestamp,
101
+ run_dir: input.run_dir || '', // Deprecated
102
+ pid: input.pid,
103
+ status: input.status,
104
+ };
105
+ yield Run_1.RunDao.addRun(runData);
106
+ // Notify the subscribers of the specific project
107
+ socket_1.SocketManager.broadcastRunToProjectRoom(input.project);
108
+ // Notify the clients of the project list
109
+ socket_1.SocketManager.broadcastRunToProjectListRoom();
110
+ // Notify the clients of the overview room
111
+ socket_1.SocketManager.broadcastOverviewDataToDashboardRoom();
112
+ })),
113
+ requestUserInput: t.procedure
114
+ .input(zod_1.z.object({
115
+ requestId: zod_1.z.string(),
116
+ runId: zod_1.z.string(),
117
+ agentId: zod_1.z.string(),
118
+ agentName: zod_1.z.string(),
119
+ structuredInput: zod_1.z.record(zod_1.z.unknown()).nullable(),
120
+ }))
121
+ .mutation((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
122
+ const runExist = yield Run_1.RunDao.doesRunExist(input.runId);
123
+ if (!runExist) {
124
+ throw new server_1.TRPCError({
125
+ code: 'BAD_REQUEST',
126
+ message: `Run with id ${input.runId} does not exist`,
127
+ });
128
+ }
129
+ try {
130
+ // Save the input request to the database
131
+ yield InputRequest_1.InputRequestDao.saveInputRequest({
132
+ requestId: input.requestId,
133
+ runId: input.runId,
134
+ agentId: input.agentId,
135
+ agentName: input.agentName,
136
+ structuredInput: input.structuredInput,
137
+ });
138
+ console.debug(`${input.runId}: input request saved with id ${input.requestId}`);
139
+ // Broadcast the input request to the run room
140
+ socket_1.SocketManager.broadcastInputRequestToRunRoom(input.runId, {
141
+ requestId: input.requestId,
142
+ agentId: input.agentId,
143
+ agentName: input.agentName,
144
+ structuredInput: input.structuredInput,
145
+ });
146
+ }
147
+ catch (error) {
148
+ console.error(error);
149
+ throw new server_1.TRPCError({
150
+ code: 'BAD_REQUEST',
151
+ message: 'Failed to save input request, look at the server logs for more information',
152
+ });
153
+ }
154
+ })),
155
+ registerReply: t.procedure
156
+ .input(src_1.RegisterReplyParamsSchema)
157
+ .mutation((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
158
+ try {
159
+ yield Reply_1.ReplyDao.saveReply(input);
160
+ }
161
+ catch (error) {
162
+ console.error(error);
163
+ throw new server_1.TRPCError({
164
+ code: 'BAD_REQUEST',
165
+ message: `Failed to register reply for error: ${error}`,
166
+ });
167
+ }
168
+ })),
169
+ pushMessage: t.procedure
170
+ .input(zod_1.z.object({
171
+ runId: zod_1.z.string(),
172
+ replyId: zod_1.z.string().optional().nullable(),
173
+ replyName: zod_1.z.string().optional().nullable(),
174
+ replyRole: zod_1.z.string().optional().nullable(),
175
+ msg: zod_1.z.object({
176
+ id: zod_1.z.string(),
177
+ name: zod_1.z.string(),
178
+ role: zod_1.z.string(),
179
+ content: contentType,
180
+ metadata: zod_1.z.unknown(),
181
+ timestamp: zod_1.z.string(),
182
+ }),
183
+ // The name and role here are deprecated, use replyName and replyRole instead
184
+ name: zod_1.z.string().optional().nullable(),
185
+ role: zod_1.z.string().optional().nullable(),
186
+ }))
187
+ .mutation((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
188
+ var _b, _c, _d;
189
+ const runExist = yield Run_1.RunDao.doesRunExist(input.runId);
190
+ console.log('Received pushMessage:', input);
191
+ if (!runExist) {
192
+ throw new server_1.TRPCError({
193
+ code: 'BAD_REQUEST',
194
+ message: `Run with id ${input.runId} does not exist`,
195
+ });
196
+ }
197
+ // Let's determine the replyId to use for this message
198
+ const replyId = (_b = input.replyId) !== null && _b !== void 0 ? _b : input.msg.id;
199
+ // Check if the replyId exists
200
+ if (!(yield Reply_1.ReplyDao.doesReplyExist(replyId))) {
201
+ // Create a reply record if it does not exist
202
+ yield Reply_1.ReplyDao.saveReply({
203
+ runId: input.runId,
204
+ replyId: replyId,
205
+ replyRole: (_c = input.replyRole) !== null && _c !== void 0 ? _c : input.role,
206
+ replyName: (_d = input.replyName) !== null && _d !== void 0 ? _d : input.name,
207
+ createdAt: input.msg.timestamp,
208
+ });
209
+ }
210
+ // Save the message to the database
211
+ const msgFormData = {
212
+ id: input.msg.id,
213
+ runId: input.runId,
214
+ replyId: replyId,
215
+ msg: {
216
+ name: input.msg.name,
217
+ role: input.msg.role,
218
+ content: input.msg.content,
219
+ metadata: input.msg.metadata,
220
+ timestamp: input.msg.timestamp,
221
+ },
222
+ };
223
+ // Save the message
224
+ yield Message_1.MessageDao.saveMessage(msgFormData);
225
+ console.debug(`RUN-${input.runId}: message saved`);
226
+ // Obtain the reply and broadcast to the frontend
227
+ Reply_1.ReplyDao.getReply(replyId)
228
+ .then((reply) => {
229
+ // Broadcast the message to the run room
230
+ console.debug(`Broadcasting message to room run-${input.runId}`);
231
+ if (reply) {
232
+ socket_1.SocketManager.broadcastMessageToRunRoom(input.runId, reply);
233
+ }
234
+ else {
235
+ console.error(`Reply with id ${replyId} not found for broadcasting`);
236
+ }
237
+ })
238
+ .catch((error) => {
239
+ console.error(error);
240
+ throw error;
241
+ });
242
+ })),
243
+ pushMessageToFridayApp: t.procedure
244
+ .input(zod_1.z.object({
245
+ replyId: zod_1.z.string(),
246
+ msg: zod_1.z.object({
247
+ id: zod_1.z.string(),
248
+ name: zod_1.z.string(),
249
+ role: zod_1.z.string(),
250
+ content: contentBlocks,
251
+ metadata: zod_1.z.unknown(),
252
+ timestamp: zod_1.z.string(),
253
+ }),
254
+ }))
255
+ .mutation((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
256
+ FridayAppMessage_1.FridayAppMessageDao.saveReplyMessage(input.replyId, input.msg, false)
257
+ .then((reply) => {
258
+ // Broadcast to all the clients in the FridayAppRoom
259
+ socket_1.SocketManager.broadcastReplyToFridayAppRoom(reply);
260
+ })
261
+ .catch((error) => {
262
+ console.error(error);
263
+ throw error;
264
+ });
265
+ })),
266
+ pushFinishedSignalToFridayApp: t.procedure
267
+ .input(zod_1.z.object({
268
+ replyId: zod_1.z.string(),
269
+ }))
270
+ .mutation((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
271
+ FridayAppMessage_1.FridayAppMessageDao.finishReply(input.replyId)
272
+ .then((reply) => {
273
+ // Broadcast to all the clients in the FridayAppRoom
274
+ socket_1.SocketManager.broadcastReplyToFridayAppRoom(reply);
275
+ })
276
+ .catch((error) => {
277
+ console.error(error);
278
+ throw error;
279
+ });
280
+ })),
281
+ clientGetFridayConfig: t.procedure.query(() => __awaiter(void 0, void 0, void 0, function* () {
282
+ return friday_1.FridayConfigManager.getInstance().getConfig();
283
+ })),
284
+ /**
285
+ * Get paginated projects with optional sorting and filtering
286
+ *
287
+ * @param pagination - Pagination parameters (page number and page size)
288
+ * @param sort - Optional sorting configuration (field name and order)
289
+ * @param filters - Optional filters for project search (e.g., project name)
290
+ * @returns ResponseBody containing TableData with project list and metadata
291
+ *
292
+ * @example
293
+ * Input: {
294
+ * pagination: { page: 1, pageSize: 10 },
295
+ * sort: { field: 'createdAt', order: 'desc' },
296
+ * filters: { project: 'my-project' }
297
+ * }
298
+ *
299
+ * Output: {
300
+ * success: true,
301
+ * message: 'Projects fetched successfully',
302
+ * data: {
303
+ * list: [...],
304
+ * total: 100,
305
+ * page: 1,
306
+ * pageSize: 10
307
+ * }
308
+ * }
309
+ */
310
+ getProjects: t.procedure
311
+ .input(src_1.TableRequestParamsSchema)
312
+ .query((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
313
+ try {
314
+ const result = yield Run_1.RunDao.getProjects(input.pagination, input.sort, input.filters);
315
+ return {
316
+ success: true,
317
+ message: 'Projects fetched successfully',
318
+ data: result,
319
+ };
320
+ }
321
+ catch (error) {
322
+ console.error('Error fetching projects:', error);
323
+ return {
324
+ success: false,
325
+ message: error instanceof Error
326
+ ? error.message
327
+ : 'Unknown error',
328
+ };
329
+ }
330
+ })),
331
+ getTraceList: t.procedure
332
+ .input(src_1.GetTraceListParamsSchema)
333
+ .query((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
334
+ try {
335
+ console.debug('[TRPC] getTraceList called with input:', input);
336
+ const result = yield Trace_1.SpanDao.getTraceList(input);
337
+ console.debug('[TRPC] getTraceList result:', {
338
+ total: result.total,
339
+ tracesCount: result.traces.length,
340
+ });
341
+ return result;
342
+ }
343
+ catch (error) {
344
+ console.error('Error in getTraceList:', error);
345
+ throw new server_1.TRPCError({
346
+ code: 'INTERNAL_SERVER_ERROR',
347
+ message: error instanceof Error
348
+ ? error.message
349
+ : 'Failed to get trace list',
350
+ });
351
+ }
352
+ })),
353
+ getTrace: t.procedure
354
+ .input(src_1.GetTraceParamsSchema)
355
+ .query((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
356
+ try {
357
+ return yield Trace_1.SpanDao.getTrace(input.traceId);
358
+ }
359
+ catch (error) {
360
+ console.error('Error in getTrace:', error);
361
+ throw new server_1.TRPCError({
362
+ code: 'INTERNAL_SERVER_ERROR',
363
+ message: error instanceof Error
364
+ ? error.message
365
+ : 'Failed to get trace',
366
+ });
367
+ }
368
+ })),
369
+ getTraceStatistic: t.procedure
370
+ .input(src_1.GetTraceStatisticParamsSchema)
371
+ .query((_a) => __awaiter(void 0, [_a], void 0, function* ({ input }) {
372
+ try {
373
+ return yield Trace_1.SpanDao.getTraceStatistic(input);
374
+ }
375
+ catch (error) {
376
+ console.error('Error in getTraceStatistic:', error);
377
+ throw new server_1.TRPCError({
378
+ code: 'INTERNAL_SERVER_ERROR',
379
+ message: error instanceof Error
380
+ ? error.message
381
+ : 'Failed to get trace statistics',
382
+ });
383
+ }
384
+ })),
385
+ });