@z-test/memory-bank-mcp
Version:
MCP Server for managing Memory Bank
80 lines (79 loc) • 2.59 kB
TypeScript
/**
* Type utilities for Memory Bank MCP
*
* This file contains utility types that can be used throughout the codebase.
*/
import { ProgressDetails, Decision, ActiveContext } from './progress.js';
import { MemoryBankStatus } from './index.js';
/**
* Makes all properties of T optional
*/
export type Optional<T> = Partial<T>;
/**
* Makes all properties of T required
*/
export type Required<T> = {
[P in keyof T]-?: T[P];
};
/**
* Makes all properties of T read-only
*/
export type Readonly<T> = {
readonly [P in keyof T]: T[P];
};
/**
* Picks specific properties from T
*/
export type Pick<T, K extends keyof T> = {
[P in K]: T[P];
};
/**
* Omits specific properties from T
*/
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
/**
* Utility types for MemoryBankStatus
*/
/** Partial version of MemoryBankStatus */
export type PartialMemoryBankStatus = Optional<MemoryBankStatus>;
/** Required version of MemoryBankStatus */
export type RequiredMemoryBankStatus = Required<MemoryBankStatus>;
/** Read-only version of MemoryBankStatus */
export type ReadonlyMemoryBankStatus = Readonly<MemoryBankStatus>;
/** Memory Bank status summary with only essential fields */
export type MemoryBankStatusSummary = Pick<MemoryBankStatus, 'path' | 'isComplete' | 'language'>;
/**
* Utility types for ProgressDetails
*/
export declare namespace ProgressTypes {
/** Partial version of ProgressDetails */
type PartialProgressDetails = Optional<ProgressDetails>;
/** Required version of ProgressDetails */
type RequiredProgressDetails = Required<ProgressDetails>;
/** Read-only version of ProgressDetails */
type ReadonlyProgressDetails = Readonly<ProgressDetails>;
}
/**
* Utility types for Decision
*/
export declare namespace DecisionTypes {
/** Partial version of Decision */
type PartialDecision = Optional<Decision>;
/** Required version of Decision */
type RequiredDecision = Required<Decision>;
/** Read-only version of Decision */
type ReadonlyDecision = Readonly<Decision>;
/** Decision summary with only essential fields */
type DecisionSummary = Pick<Decision, 'title' | 'decision'>;
}
/**
* Utility types for ActiveContext
*/
export declare namespace ActiveContextTypes {
/** Partial version of ActiveContext */
type PartialActiveContext = Optional<ActiveContext>;
/** Required version of ActiveContext */
type RequiredActiveContext = Required<ActiveContext>;
/** Read-only version of ActiveContext */
type ReadonlyActiveContext = Readonly<ActiveContext>;
}