autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
345 lines (344 loc) • 13 kB
TypeScript
/**
* http-requests.ts — HTTP 路由请求 Zod Schemas
*
* 为 Express 路由提供运行时输入校验,覆盖:
* - knowledge(CRUD + 生命周期)
* - guardRules(规则管理 + 批量操作)
* - search(统合搜索 + 上下文搜索)
* - candidates(候选条目操作)
* - guard(文件质量检查)
* - skills(技能管理)
* - task(统一任务分发)
* - modules(模块扫描)
* - ai(AI 配置、摘要、翻译、对话、Agent 工具/任务)
* - extract(路径/文本提取)
* - auth(登录)
* - commands(文件读写)
* - remote(远程指令、通知)
*
* @module shared/schemas/http-requests
*/
import { z } from 'zod';
export declare const CreateKnowledgeBody: z.ZodObject<{
title: z.ZodString;
content: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
description: z.ZodOptional<z.ZodString>;
kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
pattern: "pattern";
rule: "rule";
fact: "fact";
}>>>;
language: z.ZodOptional<z.ZodString>;
category: z.ZodOptional<z.ZodString>;
knowledgeType: z.ZodOptional<z.ZodString>;
complexity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
scope: z.ZodOptional<z.ZodNullable<z.ZodString>>;
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$loose>;
export declare const UpdateKnowledgeBody: z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
pattern: "pattern";
rule: "rule";
fact: "fact";
}>>>;
language: z.ZodOptional<z.ZodString>;
category: z.ZodOptional<z.ZodString>;
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$loose>;
export declare const DeprecateKnowledgeBody: z.ZodObject<{
reason: z.ZodString;
}, z.core.$strip>;
export declare const BatchPublishBody: z.ZodObject<{
ids: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
export declare const BatchDeleteBody: z.ZodObject<{
ids: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
export declare const BatchDeprecateBody: z.ZodObject<{
ids: z.ZodArray<z.ZodString>;
reason: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const KnowledgeUsageBody: z.ZodObject<{
type: z.ZodDefault<z.ZodEnum<{
view: "view";
feedback: "feedback";
adoption: "adoption";
}>>;
feedback: z.ZodOptional<z.ZodUnknown>;
}, z.core.$strip>;
export declare const KnowledgeListQuery: z.ZodObject<{
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
lifecycle: z.ZodOptional<z.ZodString>;
kind: z.ZodOptional<z.ZodString>;
category: z.ZodOptional<z.ZodString>;
language: z.ZodOptional<z.ZodString>;
knowledgeType: z.ZodOptional<z.ZodString>;
scope: z.ZodOptional<z.ZodString>;
keyword: z.ZodOptional<z.ZodString>;
tag: z.ZodOptional<z.ZodString>;
source: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const CreateGuardRuleBody: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
ruleId: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
message: z.ZodOptional<z.ZodString>;
pattern: z.ZodString;
severity: z.ZodDefault<z.ZodEnum<{
error: "error";
info: "info";
warning: "warning";
}>>;
category: z.ZodOptional<z.ZodString>;
sourceRecipeId: z.ZodOptional<z.ZodString>;
sourceReason: z.ZodOptional<z.ZodString>;
note: z.ZodOptional<z.ZodString>;
languages: z.ZodOptional<z.ZodArray<z.ZodString>>;
dimension: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const BatchEnableBody: z.ZodObject<{
ids: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
export declare const BatchDisableBody: z.ZodObject<{
ids: z.ZodArray<z.ZodString>;
reason: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const DisableRuleBody: z.ZodObject<{
reason: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const CheckCodeBody: z.ZodObject<{
code: z.ZodString;
language: z.ZodOptional<z.ZodString>;
ruleIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const ImportFromRecipeBody: z.ZodObject<{
recipeId: z.ZodString;
rules: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const GuardRulesListQuery: z.ZodObject<{
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
severity: z.ZodOptional<z.ZodString>;
category: z.ZodOptional<z.ZodString>;
sourceRecipe: z.ZodOptional<z.ZodString>;
keyword: z.ZodOptional<z.ZodString>;
enabled: z.ZodPipe<z.ZodOptional<z.ZodEnum<{
true: "true";
false: "false";
}>>, z.ZodTransform<boolean | undefined, "true" | "false" | undefined>>;
}, z.core.$strip>;
export declare const ComplianceQuery: z.ZodObject<{
path: z.ZodOptional<z.ZodString>;
maxErrors: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
maxWarnings: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
minScore: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
maxFiles: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;
export declare const SearchQuery: z.ZodObject<{
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
q: z.ZodString;
type: z.ZodDefault<z.ZodEnum<{
rule: "rule";
candidate: "candidate";
recipe: "recipe";
all: "all";
solution: "solution";
}>>;
mode: z.ZodDefault<z.ZodEnum<{
keyword: "keyword";
semantic: "semantic";
bm25: "bm25";
}>>;
groupByKind: z.ZodPipe<z.ZodOptional<z.ZodEnum<{
true: "true";
false: "false";
}>>, z.ZodTransform<boolean, "true" | "false" | undefined>>;
}, z.core.$strip>;
export declare const ContextAwareSearchBody: z.ZodObject<{
keyword: z.ZodString;
limit: z.ZodDefault<z.ZodNumber>;
language: z.ZodOptional<z.ZodString>;
sessionHistory: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, z.core.$strip>;
export declare const SimilarityBody: z.ZodObject<{
code: z.ZodOptional<z.ZodString>;
targetName: z.ZodOptional<z.ZodString>;
candidateId: z.ZodOptional<z.ZodString>;
candidate: z.ZodOptional<z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
summary: z.ZodOptional<z.ZodString>;
code: z.ZodOptional<z.ZodString>;
pattern: z.ZodOptional<z.ZodString>;
usageGuide: z.ZodOptional<z.ZodString>;
markdown: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
export declare const EnrichBody: z.ZodObject<{
candidateIds: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
export declare const BootstrapRefineBody: z.ZodObject<{
candidateIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
userPrompt: z.ZodOptional<z.ZodString>;
dryRun: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export declare const RefinePreviewBody: z.ZodObject<{
candidateId: z.ZodString;
userPrompt: z.ZodString;
}, z.core.$strip>;
export declare const RefineApplyBody: z.ZodObject<{
candidateId: z.ZodString;
userPrompt: z.ZodOptional<z.ZodString>;
preview: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const GuardFileBody: z.ZodObject<{
filePath: z.ZodString;
content: z.ZodOptional<z.ZodString>;
language: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const GuardBatchBody: z.ZodObject<{
files: z.ZodArray<z.ZodObject<{
filePath: z.ZodString;
content: z.ZodOptional<z.ZodString>;
language: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
export declare const CreateSkillBody: z.ZodObject<{
name: z.ZodString;
description: z.ZodString;
content: z.ZodString;
overwrite: z.ZodDefault<z.ZodBoolean>;
createdBy: z.ZodDefault<z.ZodString>;
}, z.core.$strip>;
export declare const UpdateSkillBody: z.ZodObject<{
description: z.ZodOptional<z.ZodString>;
content: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const TaskDispatchBody: z.ZodObject<{
operation: z.ZodString;
}, z.core.$loose>;
export declare const ScanFolderBody: z.ZodObject<{
path: z.ZodString;
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const ScanTargetBody: z.ZodObject<{
target: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
targetName: z.ZodOptional<z.ZodString>;
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const ScanProjectBody: z.ZodObject<{
options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const ModuleBootstrapBody: z.ZodObject<{
maxFiles: z.ZodDefault<z.ZodNumber>;
skipGuard: z.ZodDefault<z.ZodBoolean>;
contentMaxLines: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
export declare const ModuleRescanBody: z.ZodObject<{
reason: z.ZodOptional<z.ZodString>;
dimensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const GraphQuery: z.ZodObject<{
nodeId: z.ZodString;
nodeType: z.ZodString;
relation: z.ZodOptional<z.ZodString>;
direction: z.ZodDefault<z.ZodEnum<{
out: "out";
in: "in";
both: "both";
}>>;
}, z.core.$strip>;
export declare const GraphImpactQuery: z.ZodObject<{
nodeId: z.ZodString;
nodeType: z.ZodString;
maxDepth: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;
export declare const AiLangBody: z.ZodObject<{
lang: z.ZodEnum<{
en: "en";
zh: "zh";
}>;
}, z.core.$strip>;
export declare const AiConfigBody: z.ZodObject<{
provider: z.ZodString;
model: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AiSummarizeBody: z.ZodObject<{
code: z.ZodString;
language: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AiTranslateBody: z.ZodObject<{
summary: z.ZodOptional<z.ZodString>;
usageGuide: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AiChatBody: z.ZodObject<{
prompt: z.ZodString;
history: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
lang: z.ZodOptional<z.ZodString>;
conversationId: z.ZodOptional<z.ZodString>;
sseSessionId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AiStreamBody: z.ZodObject<{
prompt: z.ZodString;
history: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
lang: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AiToolBody: z.ZodObject<{
tool: z.ZodString;
params: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const AiTaskBody: z.ZodObject<{
task: z.ZodString;
params: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const AiFormatUsageGuideBody: z.ZodObject<{
text: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AiEnvConfigBody: z.ZodObject<{
provider: z.ZodString;
model: z.ZodOptional<z.ZodString>;
apiKey: z.ZodOptional<z.ZodString>;
proxy: z.ZodOptional<z.ZodString>;
embedProvider: z.ZodOptional<z.ZodString>;
embedModel: z.ZodOptional<z.ZodString>;
embedBaseUrl: z.ZodOptional<z.ZodString>;
embedApiKey: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const ExtractPathBody: z.ZodObject<{
relativePath: z.ZodString;
projectRoot: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const ExtractTextBody: z.ZodObject<{
text: z.ZodString;
language: z.ZodOptional<z.ZodString>;
relativePath: z.ZodOptional<z.ZodString>;
projectRoot: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const AuthLoginBody: z.ZodObject<{
username: z.ZodString;
password: z.ZodString;
}, z.core.$strip>;
export declare const FileReadQuery: z.ZodObject<{
path: z.ZodString;
}, z.core.$strip>;
export declare const FileSaveBody: z.ZodObject<{
path: z.ZodString;
content: z.ZodString;
}, z.core.$strip>;
export declare const RemoteSendBody: z.ZodObject<{
command: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
}, z.core.$strip>;
export declare const RemoteNotifyBody: z.ZodObject<{
text: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
}, z.core.$strip>;
export declare const RemoteResultBody: z.ZodObject<{
result: z.ZodOptional<z.ZodString>;
status: z.ZodDefault<z.ZodString>;
}, z.core.$strip>;
export declare const RemoteHistoryQuery: z.ZodObject<{
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;