@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.
- package/LICENSE +202 -0
- package/README.md +158 -0
- package/bin/cli.js +7 -0
- package/dist/app/friday/args.py +65 -0
- package/dist/app/friday/hook.py +52 -0
- package/dist/app/friday/main.py +164 -0
- package/dist/app/friday/model.py +124 -0
- package/dist/app/friday/tool/agentscope_tools.py +159 -0
- package/dist/app/friday/tool/utils.py +161 -0
- package/dist/app/friday/utils/common.py +28 -0
- package/dist/app/friday/utils/connect.py +63 -0
- package/dist/app/friday/utils/constants.py +8 -0
- package/dist/app/requirements.txt +1 -0
- package/dist/public/assets/001-aaron-Bb4ZO8rt.js +1 -0
- package/dist/public/assets/001-little girl-CnyQBZ0k.js +1 -0
- package/dist/public/assets/001-man-16-BO6NLPD_.js +1 -0
- package/dist/public/assets/002-avatar-C3FPnFjo.js +1 -0
- package/dist/public/assets/002-man-15-DfiiX2xR.js +1 -0
- package/dist/public/assets/002-old man-D4L-hA2l.js +1 -0
- package/dist/public/assets/003-avatar-UMXD80xE.js +1 -0
- package/dist/public/assets/003-cat-Cgyj1qJU.js +1 -0
- package/dist/public/assets/003-woman-20-Dy0WdjIG.js +1 -0
- package/dist/public/assets/004-avatar-D6Aw4tpO.js +1 -0
- package/dist/public/assets/004-dog-DUajs1ZO.js +1 -0
- package/dist/public/assets/004-woman-19-D5go5okE.js +1 -0
- package/dist/public/assets/005-avatar-NNQ3sWMe.js +1 -0
- package/dist/public/assets/005-child-SN-FoL0R.js +1 -0
- package/dist/public/assets/005-woman-18-AedSRg8a.js +1 -0
- package/dist/public/assets/006-avatar-FD8IUNL_.js +1 -0
- package/dist/public/assets/006-grandpa-T90IdpYr.js +1 -0
- package/dist/public/assets/006-man-14-DuMA-IZ-.js +1 -0
- package/dist/public/assets/007-avatar-eSQZtpkg.js +1 -0
- package/dist/public/assets/007-grandson-DV7UWhrR.js +1 -0
- package/dist/public/assets/007-man-13-owFTee2M.js +1 -0
- package/dist/public/assets/008-avatar-B9Rcm8D2.js +1 -0
- package/dist/public/assets/008-grandmother-1-BrQNVu9I.js +1 -0
- package/dist/public/assets/008-teenager-ClYxB7sG.js +1 -0
- package/dist/public/assets/009-avatar-DNSTEyOZ.js +1 -0
- package/dist/public/assets/009-grandfather-1-CPOn7LN0.js +1 -0
- package/dist/public/assets/009-grandmother-BAW_dEQC.js +1 -0
- package/dist/public/assets/010-avatar-CRXWH-A0.js +1 -0
- package/dist/public/assets/010-boy-1-C21LhAEr.js +1 -0
- package/dist/public/assets/011-woman-17-CI0UoPMR.js +1 -0
- package/dist/public/assets/012-avatar-BO5j-gGw.js +1 -0
- package/dist/public/assets/012-boy-T-hL8z9d.js +1 -0
- package/dist/public/assets/012-niece-M-tDMWMW.js +1 -0
- package/dist/public/assets/013-avatar-BTyOVKVo.js +1 -0
- package/dist/public/assets/013-granddaughter-D4VonRL-.js +1 -0
- package/dist/public/assets/013-woman-16-CuR7_ppw.js +1 -0
- package/dist/public/assets/014-avatar-DAW_Hvos.js +1 -0
- package/dist/public/assets/014-man-k8AXOF1Q.js +1 -0
- package/dist/public/assets/014-nurse-DnVigtmM.js +1 -0
- package/dist/public/assets/015-avatar-AxHR3j7h.js +1 -0
- package/dist/public/assets/015-woman-15-rDPwBxxc.js +1 -0
- package/dist/public/assets/015-woman-B71QRPrr.js +1 -0
- package/dist/public/assets/016-avatar-BVbMUisT.js +1 -0
- package/dist/public/assets/016-boy-BV_jzAu3.js +1 -0
- package/dist/public/assets/016-woman-14-D08zoPt9.js +1 -0
- package/dist/public/assets/017-gaming-BEpEpa1H.js +1 -0
- package/dist/public/assets/017-superpower-9xQAqiKN.js +1 -0
- package/dist/public/assets/017-uncle-EB1lmqAo.js +1 -0
- package/dist/public/assets/017-woman-13-BFsTAnGR.js +1 -0
- package/dist/public/assets/018-avatar-CnCLJXqW.js +1 -0
- package/dist/public/assets/018-young-QpIX6g3z.js +1 -0
- package/dist/public/assets/019-gaming-Dz5tR0Te.js +1 -0
- package/dist/public/assets/019-man-12-DiRb1dri.js +1 -0
- package/dist/public/assets/019-nephew-tXAgA9cr.js +1 -0
- package/dist/public/assets/020-avatar-Djtnu7jj.js +1 -0
- package/dist/public/assets/020-man-11-BNIZQyX4.js +1 -0
- package/dist/public/assets/020-young woman-BzklF8tq.js +1 -0
- package/dist/public/assets/021-aunt-CX9ikaTy.js +1 -0
- package/dist/public/assets/021-avatar-DP2sODK2.js +1 -0
- package/dist/public/assets/021-superhero-CIWREXp0.js +1 -0
- package/dist/public/assets/021-wizard-Dc9X50m_.js +1 -0
- package/dist/public/assets/021-woman-12-n9ipJK5z.js +1 -0
- package/dist/public/assets/022-father-B1_-ZTn1.js +1 -0
- package/dist/public/assets/022-woman-11-BUCsm06E.js +1 -0
- package/dist/public/assets/023-avatar-TeJ6vGqs.js +1 -0
- package/dist/public/assets/023-ghost-BYvGsa7H.js +1 -0
- package/dist/public/assets/023-man-10-Dfii-GE1.js +1 -0
- package/dist/public/assets/023-uncle-DoAMe1Iy.js +1 -0
- package/dist/public/assets/024-gaming-5ovd4aeT.js +1 -0
- package/dist/public/assets/024-man-9-CEenp_2W.js +1 -0
- package/dist/public/assets/024-prince-Fx3eCiNX.js +1 -0
- package/dist/public/assets/024-uncle-B6tqhqxU.js +1 -0
- package/dist/public/assets/025-gaming-CdlTp3Ub.js +1 -0
- package/dist/public/assets/025-man-8-Cfp6jNt4.js +1 -0
- package/dist/public/assets/025-man-BxhR-XTO.js +1 -0
- package/dist/public/assets/025-princess-Di5TdSnG.js +1 -0
- package/dist/public/assets/026-avatar-DojOPRVd.js +1 -0
- package/dist/public/assets/026-dad-CHaoMWM5.js +1 -0
- package/dist/public/assets/026-owl-Dl-UtZM8.js +1 -0
- package/dist/public/assets/026-woman-10-CywXJiaj.js +1 -0
- package/dist/public/assets/027-avatar-CrEyLmOb.js +1 -0
- package/dist/public/assets/027-girl-Box_GaMO.js +1 -0
- package/dist/public/assets/028-gaming-CmOZ2uGp.js +1 -0
- package/dist/public/assets/028-mom-tEacX7K4.js +1 -0
- package/dist/public/assets/028-woman-9-C1oq4sFk.js +1 -0
- package/dist/public/assets/029-boy-CVg6oMuZ.js +1 -0
- package/dist/public/assets/029-man-7-C4eeEeTQ.js +1 -0
- package/dist/public/assets/030-elf-C8vikAvx.js +1 -0
- package/dist/public/assets/030-gaming-ufCRMN7S.js +1 -0
- package/dist/public/assets/030-granddaughter-DVCp3D8k.js +1 -0
- package/dist/public/assets/030-woman-8-Bv_tRQci.js +1 -0
- package/dist/public/assets/031-avatar-D0u5HVaC.js +1 -0
- package/dist/public/assets/031-grandpa-jKj5oB8I.js +1 -0
- package/dist/public/assets/031-superhero-DfSkK-j2.js +1 -0
- package/dist/public/assets/031-woman-7-DJHfCbTS.js +1 -0
- package/dist/public/assets/032-avatar-BvY6LKIZ.js +1 -0
- package/dist/public/assets/032-grandson-DIjRxDr-.js +1 -0
- package/dist/public/assets/032-man-6-CU7pJmmt.js +1 -0
- package/dist/public/assets/033-avatar-Dviobgw8.js +1 -0
- package/dist/public/assets/033-elf-CTAEJgfN.js +1 -0
- package/dist/public/assets/033-grandfather-BCXPgoJj.js +1 -0
- package/dist/public/assets/033-man-5-wgMylvNO.js +1 -0
- package/dist/public/assets/034-avatar-BqtUHT3_.js +1 -0
- package/dist/public/assets/034-little girl-CrgnV25d.js +1 -0
- package/dist/public/assets/034-man-4-DJdzfcSi.js +1 -0
- package/dist/public/assets/035-gaming-Bp8xnJp_.js +1 -0
- package/dist/public/assets/035-mother-Ccg5FDO8.js +1 -0
- package/dist/public/assets/036-avatar-q6pZKQVf.js +1 -0
- package/dist/public/assets/036-father-DzpzeKJJ.js +1 -0
- package/dist/public/assets/036-goblin-vDsj4aP0.js +1 -0
- package/dist/public/assets/036-grandmother-BI_Fl_aR.js +1 -0
- package/dist/public/assets/037-avatar-CmfvVc7v.js +1 -0
- package/dist/public/assets/037-grandfather-Dtp4XH-s.js +1 -0
- package/dist/public/assets/037-sister-BQv83Uhf.js +1 -0
- package/dist/public/assets/038-gaming-UtXFtv5k.js +1 -0
- package/dist/public/assets/038-girl-Cwg5Rv36.js +1 -0
- package/dist/public/assets/038-gnome-HbogTmVa.js +1 -0
- package/dist/public/assets/038-woman-6-B7jMwsP0.js +1 -0
- package/dist/public/assets/039-avatar-Bb3kVg4l.js +1 -0
- package/dist/public/assets/039-man-3-BSjLnoLV.js +1 -0
- package/dist/public/assets/039-student-CIi32WG9.js +1 -0
- package/dist/public/assets/040-aunt-B5XQH_sJ.js +1 -0
- package/dist/public/assets/040-gaming-CzTjib4v.js +1 -0
- package/dist/public/assets/040-vampire-UFzaHu5c.js +1 -0
- package/dist/public/assets/040-woman-5-Byal-gfX.js +1 -0
- package/dist/public/assets/041-avatar-CPQN2PvT.js +1 -0
- package/dist/public/assets/041-little boy-DUZFMrmJ.js +1 -0
- package/dist/public/assets/041-queen-CqFzW3uO.js +1 -0
- package/dist/public/assets/041-woman-4-CKi_Q-ns.js +1 -0
- package/dist/public/assets/042-avatar-BatY-WQG.js +1 -0
- package/dist/public/assets/042-cyclops-DAxxBVqG.js +1 -0
- package/dist/public/assets/042-man-omzAnpu1.js +1 -0
- package/dist/public/assets/042-woman-3-2Ki1Qz3j.js +1 -0
- package/dist/public/assets/043-avatar-DN026abg.js +1 -0
- package/dist/public/assets/043-child-D8_xXkcm.js +1 -0
- package/dist/public/assets/043-genie-DK78Ykl6.js +1 -0
- package/dist/public/assets/043-woman-2-DMnB0A-0.js +1 -0
- package/dist/public/assets/044-avatar-Bz2FAXUw.js +1 -0
- package/dist/public/assets/044-avatar-DzDIyuj0.js +1 -0
- package/dist/public/assets/044-fairy-BT73odE0.js +1 -0
- package/dist/public/assets/044-sister-CtNPPHh-.js +1 -0
- package/dist/public/assets/045-avatar-DgiFAlxj.js +1 -0
- package/dist/public/assets/045-man-2-BZPavI2b.js +1 -0
- package/dist/public/assets/045-young-B39gytpm.js +1 -0
- package/dist/public/assets/046-avatar-ClHeZPOV.js +1 -0
- package/dist/public/assets/046-brother-BSvJBKnA.js +1 -0
- package/dist/public/assets/046-witch-CVjM2-iJ.js +1 -0
- package/dist/public/assets/046-woman-1-CHWuzLfU.js +1 -0
- package/dist/public/assets/047-avatar-DM01i1ZC.js +1 -0
- package/dist/public/assets/047-king-knA4oWNa.js +1 -0
- package/dist/public/assets/047-man-1-DRWdGzL5.js +1 -0
- package/dist/public/assets/048-father-B0wiM2h6.js +1 -0
- package/dist/public/assets/048-gaming-D7s83-h3.js +1 -0
- package/dist/public/assets/048-girl-CxGcfLgU.js +1 -0
- package/dist/public/assets/049-avatar-BfGDVwlO.js +1 -0
- package/dist/public/assets/049-little boy-Bu5mmsUf.js +1 -0
- package/dist/public/assets/049-man-B3xcAso3.js +1 -0
- package/dist/public/assets/050-avatar-itJOA0dd.js +1 -0
- package/dist/public/assets/050-boy-DEIcVyYT.js +1 -0
- package/dist/public/assets/050-knight-KRUkfXDS.js +1 -0
- package/dist/public/assets/051-avatar-fISL-mLU.js +1 -0
- package/dist/public/assets/052-avatar-BYrM0aPD.js +1 -0
- package/dist/public/assets/053-avatar-B-rnufvm.js +1 -0
- package/dist/public/assets/054-avatar-B7rwS7Qv.js +1 -0
- package/dist/public/assets/055-gaming-DqUOmMvT.js +1 -0
- package/dist/public/assets/056-avatar-D1lb7KL9.js +1 -0
- package/dist/public/assets/057-avatar-Df7NRaJW.js +1 -0
- package/dist/public/assets/058-avatar-C8zso2zk.js +1 -0
- package/dist/public/assets/059-avatar-zEhHpOcr.js +1 -0
- package/dist/public/assets/060-avatar-DkNabW8M.js +1 -0
- package/dist/public/assets/index-CWvY7i3l.css +1 -0
- package/dist/public/assets/index-Zxr-JuKD.js +820 -0
- package/dist/public/index.html +14 -0
- package/dist/public/logo.svg +42 -0
- package/dist/server/src/dao/FridayAppMessage.js +103 -0
- package/dist/server/src/dao/InputRequest.js +99 -0
- package/dist/server/src/dao/Message.js +42 -0
- package/dist/server/src/dao/Reply.js +96 -0
- package/dist/server/src/dao/Run.js +395 -0
- package/dist/server/src/dao/Trace.js +643 -0
- package/dist/server/src/database.js +54 -0
- package/dist/server/src/index.js +211 -0
- package/dist/server/src/migrations/1730000000000-AddMessageReplyForeignKey.js +216 -0
- package/dist/server/src/migrations/1740000000000-MigrateSpanTable.js +638 -0
- package/dist/server/src/migrations/index.js +19 -0
- package/dist/server/src/models/FridayApp.js +69 -0
- package/dist/server/src/models/FridayAppView.js +94 -0
- package/dist/server/src/models/InputRequest.js +41 -0
- package/dist/server/src/models/Message.js +39 -0
- package/dist/server/src/models/ModelInvocationView.js +127 -0
- package/dist/server/src/models/Reply.js +50 -0
- package/dist/server/src/models/Run.js +63 -0
- package/dist/server/src/models/RunView.js +111 -0
- package/dist/server/src/models/Trace.js +154 -0
- package/dist/server/src/otel/grpc-server.js +154 -0
- package/dist/server/src/otel/opentelemetry/proto/collector/trace/v1/trace_service.js +309 -0
- package/dist/server/src/otel/opentelemetry/proto/common/v1/common.js +747 -0
- package/dist/server/src/otel/opentelemetry/proto/resource/v1/resource.js +170 -0
- package/dist/server/src/otel/opentelemetry/proto/trace/v1/trace.js +1134 -0
- package/dist/server/src/otel/processor.js +395 -0
- package/dist/server/src/otel/router.js +128 -0
- package/dist/server/src/services/ReplyingStateManager.js +21 -0
- package/dist/server/src/trpc/router.js +385 -0
- package/dist/server/src/trpc/socket.js +589 -0
- package/dist/server/src/utils/index.js +17 -0
- package/dist/server/src/utils/processUtils.js +27 -0
- package/dist/shared/src/config/client.js +6 -0
- package/dist/shared/src/config/common.js +32 -0
- package/dist/shared/src/config/friday.js +168 -0
- package/dist/shared/src/config/index.js +19 -0
- package/dist/shared/src/config/server.js +104 -0
- package/dist/shared/src/index.js +18 -0
- package/dist/shared/src/types/index.js +20 -0
- package/dist/shared/src/types/messageForm.js +25 -0
- package/dist/shared/src/types/trace.js +20 -0
- package/dist/shared/src/types/trpc.js +98 -0
- package/dist/shared/src/types/usage.js +7 -0
- package/dist/shared/src/utils/banner.js +74 -0
- package/dist/shared/src/utils/objectUtils.js +74 -0
- package/dist/shared/src/utils/terminal.js +30 -0
- package/dist/shared/src/utils/timeUtils.js +86 -0
- 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
|
+
});
|