Files
msd-core/gsd-memory/dist/registry.d.ts
Lex Christopherson af7a057294 feat: add GSD Memory cross-project knowledge system
Implements MCP server for semantic search across GSD projects:

MCP Tools:
- gsd_memory_search: Search across all registered projects
- gsd_memory_decisions: Find decisions from SUMMARY/PROJECT.md
- gsd_memory_patterns: Find patterns from SUMMARY.md
- gsd_memory_pitfalls: Find pitfalls from RESEARCH.md
- gsd_memory_stack: Find tech stack entries
- gsd_memory_register: Register project with memory
- gsd_memory_index: Trigger indexing/update
- gsd_memory_status: Show system status

Architecture:
- QMD wrapper with grep fallback when QMD unavailable
- YAML frontmatter extractors for GSD document types
- Project registry at ~/.gsd/projects.json
- Auto-install via bin/install.js for Claude Code

Workflow integrations:
- new-project: Registers project with memory
- plan-phase: Indexes after planning
- execute-phase: Indexes after execution
- complete-milestone: Indexes milestone completion
- Researcher agents query memory before Context7

Tests: 117 passing (66 unit + 51 integration)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:13:22 -06:00

44 lines
1.1 KiB
TypeScript

export interface RegisteredProject {
name: string;
path: string;
qmdCollection?: string;
registeredAt: string;
lastIndexed?: string;
}
export interface Registry {
version: string;
projects: RegisteredProject[];
}
/**
* Read the project registry
*/
export declare function readRegistry(): Registry;
/**
* Write the project registry
*/
export declare function writeRegistry(registry: Registry): void;
/**
* Register a new project
*/
export declare function registerProject(project: Omit<RegisteredProject, 'registeredAt'>): RegisteredProject;
/**
* Update a project's last indexed time
*/
export declare function updateProjectIndexTime(name: string): void;
/**
* Get a project by name
*/
export declare function getProject(name: string): RegisteredProject | undefined;
/**
* Get all registered projects
*/
export declare function getAllProjects(): RegisteredProject[];
/**
* Remove a project from the registry
*/
export declare function unregisterProject(name: string): boolean;
/**
* Get the registry path (for testing)
*/
export declare function getRegistryPath(): string;
//# sourceMappingURL=registry.d.ts.map