@memory-bank/mcp
Version:
Memory-enabled Co-Pilot (MCP) server for managing project documentation and context
124 lines • 3.36 kB
TypeScript
import { DocumentType } from "../../../domain/entities/JsonDocument.js";
import type { IJsonDocumentRepository } from "../../../domain/repositories/IJsonDocumentRepository.js";
import type { IIndexService } from "../../../infrastructure/index/index.js";
import type { IUseCase } from "../../interfaces/IUseCase.js";
/**
* Input data for write JSON document use case
*/
export interface WriteJsonDocumentInput {
/**
* Branch name (required for branch documents, omit for global)
*/
branchName?: string;
/**
* Document data
*/
document: {
/**
* Document ID (optional, will be generated if not provided)
*/
id?: string;
/**
* Document path (required)
*/
path: string;
/**
* Document title
*/
title: string;
/**
* Document type (required)
*/
documentType: DocumentType;
/**
* Document tags (optional)
*/
tags?: string[];
/**
* Document content (required)
*/
content: Record<string, unknown>;
};
}
/**
* Output data for write JSON document use case
*/
export interface WriteJsonDocumentOutput {
/**
* Document data after saving
*/
document: {
/**
* Document ID
*/
id: string;
/**
* Document path
*/
path: string;
/**
* Document title
*/
title: string;
/**
* Document type
*/
documentType: string;
/**
* Document tags
*/
tags: string[];
/**
* Document content
*/
content: Record<string, unknown>;
/**
* Last modified date (ISO string)
*/
lastModified: string;
/**
* Created date (ISO string)
*/
createdAt: string;
/**
* Document version
*/
version: number;
};
/**
* Flag indicating if this was a new document (true) or an update (false)
*/
isNew: boolean;
/**
* Location where document was saved (branch name or "global")
*/
location: string;
}
/**
* Use case for writing (creating or updating) a JSON document
*/
export declare class WriteJsonDocumentUseCase implements IUseCase<WriteJsonDocumentInput, WriteJsonDocumentOutput> {
private readonly jsonRepository;
private readonly indexService;
private readonly globalRepository?;
/**
* Constructor
* @param jsonRepository JSON document repository
* @param indexService Index service for updating indexes after write
* @param globalRepository Global JSON document repository (optional)
*/
constructor(jsonRepository: IJsonDocumentRepository, indexService: IIndexService, globalRepository?: IJsonDocumentRepository | undefined);
/**
* Execute the use case
* @param input Input data
* @returns Promise resolving to output data
*/
execute(input: WriteJsonDocumentInput): Promise<WriteJsonDocumentOutput>;
/**
* Validate the input data
* @param input Input data to validate
* @throws ApplicationError if validation fails
*/
private validateInput;
}
//# sourceMappingURL=WriteJsonDocumentUseCase.d.ts.map