UNPKG

@z-test/memory-bank-mcp

Version:
80 lines (79 loc) 2.59 kB
/** * 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>; }