UNPKG

@vfarcic/dot-ai

Version:

AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance

118 lines (117 loc) 4.93 kB
"use strict"; /** * Knowledge Base REST API Response Schemas * * PRD #356: Knowledge Base System * Schemas for HTTP-only endpoints (not exposed via MCP) */ Object.defineProperty(exports, "__esModule", { value: true }); exports.KnowledgeAskErrorSchema = exports.KnowledgeAskPluginUnavailableErrorSchema = exports.KnowledgeAskAIUnavailableErrorSchema = exports.KnowledgeAskBadRequestErrorSchema = exports.KnowledgeAskResponseSchema = exports.KnowledgeAskDataSchema = exports.KnowledgeAskChunkSchema = exports.KnowledgeAskSourceSchema = exports.KnowledgeAskRequestSchema = exports.DeleteBySourceErrorSchema = exports.DeleteBySourcePluginUnavailableErrorSchema = exports.DeleteBySourceBadRequestErrorSchema = exports.DeleteBySourceResponseSchema = exports.DeleteBySourceDataSchema = void 0; const zod_1 = require("zod"); const common_1 = require("./common"); /** * Delete by source response data */ exports.DeleteBySourceDataSchema = zod_1.z.object({ sourceIdentifier: zod_1.z.string().describe('The source identifier that was deleted'), chunksDeleted: zod_1.z.number().describe('Number of chunks deleted'), }); /** * Delete by source success response */ exports.DeleteBySourceResponseSchema = (0, common_1.createSuccessResponseSchema)(exports.DeleteBySourceDataSchema); /** * Delete by source error responses */ exports.DeleteBySourceBadRequestErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.literal('BAD_REQUEST'), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), }); exports.DeleteBySourcePluginUnavailableErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.literal('PLUGIN_UNAVAILABLE'), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), }); exports.DeleteBySourceErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.literal('DELETE_SOURCE_ERROR'), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), }); // ============================================ // Knowledge Ask Schemas (PRD #356) // HTTP-only endpoint for AI-synthesized answers // ============================================ /** * Knowledge Ask request body */ exports.KnowledgeAskRequestSchema = zod_1.z.object({ query: zod_1.z.string().min(1).describe('The question to answer from the knowledge base'), limit: zod_1.z.number().optional().default(20).describe('Maximum chunks to retrieve (default: 20)'), uriFilter: zod_1.z.string().optional().describe('Optional: filter to specific document URI'), }); /** * Source reference in knowledge ask response */ exports.KnowledgeAskSourceSchema = zod_1.z.object({ uri: zod_1.z.string().describe('Source document URI'), title: zod_1.z.string().optional().describe('Document title if available from metadata'), }); /** * Chunk in knowledge ask response */ exports.KnowledgeAskChunkSchema = zod_1.z.object({ content: zod_1.z.string().describe('Chunk text content'), uri: zod_1.z.string().describe('Source document URI'), score: zod_1.z.number().describe('Relevance score from semantic search'), chunkIndex: zod_1.z.number().describe('Position of chunk within source document'), }); /** * Knowledge Ask response data */ exports.KnowledgeAskDataSchema = zod_1.z.object({ answer: zod_1.z.string().describe('AI-synthesized answer to the question'), sources: zod_1.z.array(exports.KnowledgeAskSourceSchema).describe('Deduplicated source documents used'), chunks: zod_1.z.array(exports.KnowledgeAskChunkSchema).describe('Original chunks for transparency'), }); /** * Knowledge Ask success response */ exports.KnowledgeAskResponseSchema = (0, common_1.createSuccessResponseSchema)(exports.KnowledgeAskDataSchema); /** * Knowledge Ask error responses */ exports.KnowledgeAskBadRequestErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.literal('BAD_REQUEST'), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), }); exports.KnowledgeAskAIUnavailableErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.literal('AI_UNAVAILABLE'), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), }); exports.KnowledgeAskPluginUnavailableErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.literal('PLUGIN_UNAVAILABLE'), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), }); exports.KnowledgeAskErrorSchema = common_1.ErrorResponseSchema.extend({ error: zod_1.z.object({ code: zod_1.z.enum(['SEARCH_ERROR', 'SYNTHESIS_ERROR']), message: zod_1.z.string(), details: zod_1.z.unknown().optional(), }), });