MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / registerTasksRoutes

Function registerTasksRoutes

packages/server/src/routes/tasks.ts:71–208  ·  view source on GitHub ↗
(
  app: TasksRouteHost,
  ix: IInstantiationService,
)

Source from the content-addressed store, hash-verified

69const detailsSchema = z.array(z.object({ path: z.string(), message: z.string() }));
70
71export function registerTasksRoutes(
72 app: TasksRouteHost,
73 ix: IInstantiationService,
74): void {
75 // GET /sessions/{session_id}/tasks ------------------------------------
76 const listRoute = defineRoute(
77 {
78 method: 'GET',
79 path: '/sessions/{session_id}/tasks',
80 params: sessionIdParamSchema,
81 querystring: listTasksQuerySchema,
82 success: { data: listTasksResponseSchema },
83 errors: {
84 [ErrorCode.VALIDATION_FAILED]: { detailsSchema },
85 [ErrorCode.SESSION_NOT_FOUND]: {},
86 },
87 description: 'List background tasks for a session',
88 tags: ['tasks'],
89 },
90 async (req, reply) => {
91 try {
92 const { session_id } = req.params;
93 const query = req.query;
94 const items = await ix.invokeFunction((a) =>
95 a.get(ITaskService).list(session_id, query),
96 );
97 reply.send(okEnvelope({ items }, req.id));
98 } catch (err) {
99 sendMappedError(reply, req.id, err);
100 }
101 },
102 );
103 app.get(listRoute.path, listRoute.options, listRoute.handler as Parameters<TasksRouteHost['get']>[2]);
104
105 // GET /sessions/{session_id}/tasks/{task_id} --------------------------
106 const getRoute = defineRoute(
107 {
108 method: 'GET',
109 path: '/sessions/{session_id}/tasks/{task_id}',
110 params: sessionAndTaskIdParamSchema,
111 querystring: getTaskQuerySchema,
112 success: { data: getTaskResponseSchema },
113 errors: {
114 [ErrorCode.VALIDATION_FAILED]: { detailsSchema },
115 [ErrorCode.SESSION_NOT_FOUND]: {},
116 [ErrorCode.TASK_NOT_FOUND]: {},
117 },
118 description: 'Get a background task by ID',
119 tags: ['tasks'],
120 },
121 async (req, reply) => {
122 try {
123 const { session_id, task_id } = req.params;
124 const query = req.query as { with_output?: boolean; output_bytes?: number };
125 const task = await ix.invokeFunction((a) =>
126 a.get(ITaskService).get(session_id, task_id, {
127 withOutput: query.with_output,
128 outputBytes: query.output_bytes,

Callers 1

registerApiV1RoutesFunction · 0.90

Calls 11

defineRouteFunction · 0.90
okEnvelopeFunction · 0.90
parseActionSuffixFunction · 0.90
errEnvelopeFunction · 0.90
sendMappedErrorFunction · 0.70
invokeFunctionMethod · 0.65
listMethod · 0.65
getMethod · 0.65
sendMethod · 0.65
cancelMethod · 0.65
postMethod · 0.65

Tested by

no test coverage detected