UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

62 lines (61 loc) 2.4 kB
/** _shared.js — 多个工具模块共享的常量和辅助函数 */ import type { UnifiedValidator } from '#domain/knowledge/UnifiedValidator.js'; export declare const PROJECT_ROOT: string; /** skills/ 目录绝对路径 */ export declare const SKILLS_DIR: string; /** 项目级 skills 目录 */ export declare const PROJECT_SKILLS_DIR: string; export { DIMENSION_DISPLAY_GROUP } from '#domain/dimension/DimensionRegistry.js'; /** * 基于维度元数据 (dimensionMeta) 检查提交是否合法 * @param dimensionMeta * @param params submit_knowledge 的参数 * @returns | null} 不合法返回 rejected,合法返回 null */ export declare function checkDimensionType(dimensionMeta: DimensionMeta, params: Record<string, unknown>, logger?: { info(msg: string, ...args: unknown[]): void; warn(msg: string, ...args: unknown[]): void; } | null): null; /** DI container service lookup (returns dynamic service instances) */ export interface ServiceContainer { get(name: string): any; } /** Dimension metadata injected by bootstrap pipeline */ export interface DimensionMeta { id: string; outputType?: string; allowedKnowledgeTypes?: string[]; } /** Common tool handler context provided by ToolRegistry.execute() */ export interface ToolHandlerContext { container: ServiceContainer; projectRoot: string; logger?: { info(msg: string, ...args: unknown[]): void; debug(msg: string, ...args: unknown[]): void; warn(msg: string, ...args: unknown[]): void; error?(msg: string, ...args: unknown[]): void; }; source?: string; _dimensionMeta?: DimensionMeta; _projectLanguage?: string; _validator?: UnifiedValidator; _submittedTitles?: Set<string>; _submittedPatterns?: Set<string>; _sessionToolCalls?: Array<{ tool: string; params?: Record<string, unknown>; }>; [key: string]: unknown; } /** Tool schema entry returned by ToolRegistry.getToolSchemas() */ export interface ToolSchemaEntry { name: string; description: string; parameters: Record<string, unknown>; } /** * 剥离标题中冗余的项目名前缀(如 "BiliDili 分页控制器" → "分页控制器") * 同一知识库内所有条目都属于同一项目,标题中重复项目名没有信息量。 */ export declare function stripProjectNamePrefix(title: string, projectRoot: string): string;