Download packages/kap-server/src/protocol/question.ts from SaylorTwift/kimi-code: direct link, hf CLI and curl.
- Browser
- Download file 2.13 kB
-
https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/kap-server/src/protocol/question.ts
- Command line
-
hf download hf://SaylorTwift/kimi-code/packages/kap-server/src/protocol/question.ts
-
curl -L -o question.ts https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/kap-server/src/protocol/question.ts
2.13 kB
| import { z } from 'zod'; | |
| import { isoDateTimeSchema } from '@moonshot-ai/agent-core-v2/_base/utils/isoDateTime'; | |
| export const questionOptionSchema = z.object({ | |
| id: z.string().min(1), | |
| label: z.string().min(1), | |
| description: z.string().optional(), | |
| }); | |
| export type QuestionOption = z.infer<typeof questionOptionSchema>; | |
| export const questionItemSchema = z.object({ | |
| id: z.string().min(1), | |
| question: z.string().min(1), | |
| header: z.string().optional(), | |
| body: z.string().optional(), | |
| options: z.array(questionOptionSchema).min(2).max(4), | |
| multi_select: z.boolean().optional(), | |
| allow_other: z.boolean().optional(), | |
| other_label: z.string().optional(), | |
| other_description: z.string().optional(), | |
| }); | |
| export type QuestionItem = z.infer<typeof questionItemSchema>; | |
| export const questionRequestSchema = z.object({ | |
| question_id: z.string().min(1), | |
| session_id: z.string().min(1), | |
| turn_id: z.number().int().nonnegative().optional(), | |
| tool_call_id: z.string().min(1).optional(), | |
| questions: z.array(questionItemSchema).min(1).max(4), | |
| created_at: isoDateTimeSchema, | |
| }); | |
| export type QuestionRequest = z.infer<typeof questionRequestSchema>; | |
| export const questionAnswerSchema = z.discriminatedUnion('kind', [ | |
| z.object({ kind: z.literal('single'), option_id: z.string().min(1) }), | |
| z.object({ kind: z.literal('multi'), option_ids: z.array(z.string().min(1)).min(1) }), | |
| z.object({ kind: z.literal('other'), text: z.string() }), | |
| z.object({ | |
| kind: z.literal('multi_with_other'), | |
| option_ids: z.array(z.string().min(1)), | |
| other_text: z.string(), | |
| }), | |
| z.object({ kind: z.literal('skipped') }), | |
| ]); | |
| export type QuestionAnswer = z.infer<typeof questionAnswerSchema>; | |
| export const questionAnswerMethodSchema = z.enum(['enter', 'space', 'number_key', 'click']); | |
| export type QuestionAnswerMethod = z.infer<typeof questionAnswerMethodSchema>; | |
| export const questionResponseSchema = z.object({ | |
| answers: z.record(z.string().min(1), questionAnswerSchema), | |
| method: questionAnswerMethodSchema.optional(), | |
| note: z.string().optional(), | |
| }); | |
| export type QuestionResponse = z.infer<typeof questionResponseSchema>; | |