@visualprd/mcp-server 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +396 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +27 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +243 -0
- package/dist/index.js.map +1 -0
- package/dist/intelligence/context-optimizer.d.ts +93 -0
- package/dist/intelligence/context-optimizer.d.ts.map +1 -0
- package/dist/intelligence/context-optimizer.js +481 -0
- package/dist/intelligence/context-optimizer.js.map +1 -0
- package/dist/intelligence/error-analyzer.d.ts +49 -0
- package/dist/intelligence/error-analyzer.d.ts.map +1 -0
- package/dist/intelligence/error-analyzer.js +765 -0
- package/dist/intelligence/error-analyzer.js.map +1 -0
- package/dist/intelligence/gap-filler.d.ts +56 -0
- package/dist/intelligence/gap-filler.d.ts.map +1 -0
- package/dist/intelligence/gap-filler.js +410 -0
- package/dist/intelligence/gap-filler.js.map +1 -0
- package/dist/intelligence/guidance-generator.d.ts +43 -0
- package/dist/intelligence/guidance-generator.d.ts.map +1 -0
- package/dist/intelligence/guidance-generator.js +314 -0
- package/dist/intelligence/guidance-generator.js.map +1 -0
- package/dist/intelligence/index.d.ts +132 -0
- package/dist/intelligence/index.d.ts.map +1 -0
- package/dist/intelligence/index.js +683 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/server-http.d.ts +9 -0
- package/dist/server-http.d.ts.map +1 -0
- package/dist/server-http.js +141 -0
- package/dist/server-http.js.map +1 -0
- package/dist/services/api-key-service.d.ts +68 -0
- package/dist/services/api-key-service.d.ts.map +1 -0
- package/dist/services/api-key-service.js +298 -0
- package/dist/services/api-key-service.js.map +1 -0
- package/dist/services/llm-client.d.ts +66 -0
- package/dist/services/llm-client.d.ts.map +1 -0
- package/dist/services/llm-client.js +141 -0
- package/dist/services/llm-client.js.map +1 -0
- package/dist/services/model-registry.d.ts +135 -0
- package/dist/services/model-registry.d.ts.map +1 -0
- package/dist/services/model-registry.js +276 -0
- package/dist/services/model-registry.js.map +1 -0
- package/dist/services/visualprd-client.d.ts +191 -0
- package/dist/services/visualprd-client.d.ts.map +1 -0
- package/dist/services/visualprd-client.js +805 -0
- package/dist/services/visualprd-client.js.map +1 -0
- package/dist/tools/index.d.ts +803 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +570 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +497 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VisualPRD API Client
|
|
3
|
+
*
|
|
4
|
+
* Connects to VisualPRD's Firestore backend to fetch project data,
|
|
5
|
+
* update build prompt status, and manage dynamic steps.
|
|
6
|
+
*/
|
|
7
|
+
import { ProjectConfig, ProjectData, BuildPrompt, PageEntity, SchemaEntity, EndpointEntity, TechStackEntity, DesignSystem, MCPSession, BuildCategory, BuildInstructionV2, BuildProgressV2 } from '../types/index.js';
|
|
8
|
+
export declare class VisualPRDClient {
|
|
9
|
+
private db;
|
|
10
|
+
private config;
|
|
11
|
+
private projectDataCache;
|
|
12
|
+
private cacheTimestamp;
|
|
13
|
+
private readonly CACHE_TTL_MS;
|
|
14
|
+
constructor(config: ProjectConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Load full project data including all entities
|
|
17
|
+
*/
|
|
18
|
+
loadProjectData(forceRefresh?: boolean): Promise<ProjectData>;
|
|
19
|
+
private loadPages;
|
|
20
|
+
private loadSchemas;
|
|
21
|
+
private loadEndpoints;
|
|
22
|
+
private loadTechStack;
|
|
23
|
+
private loadBuildPrompts;
|
|
24
|
+
/**
|
|
25
|
+
* Load build prompts from v9-mega format (category documents with instructions array)
|
|
26
|
+
*/
|
|
27
|
+
private loadBuildPromptsV9Mega;
|
|
28
|
+
private detectVersion;
|
|
29
|
+
private extractDesignSystem;
|
|
30
|
+
/**
|
|
31
|
+
* Get the next incomplete build prompt with all dependencies met
|
|
32
|
+
*/
|
|
33
|
+
getNextBuildPrompt(): Promise<BuildPrompt | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Mark a build prompt as complete
|
|
36
|
+
*/
|
|
37
|
+
markPromptComplete(promptId: string, completionData: {
|
|
38
|
+
completionNotes?: string;
|
|
39
|
+
filesCreated?: string[];
|
|
40
|
+
testResults?: {
|
|
41
|
+
passed: number;
|
|
42
|
+
failed: number;
|
|
43
|
+
};
|
|
44
|
+
}): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Uncheck/revert a build prompt
|
|
47
|
+
*/
|
|
48
|
+
uncheckPrompt(promptId: string): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
* Inject a new dynamic build prompt
|
|
51
|
+
*/
|
|
52
|
+
injectBuildPrompt(insertAfterPromptId: string, newPrompt: {
|
|
53
|
+
title: string;
|
|
54
|
+
category: BuildCategory;
|
|
55
|
+
instruction: string;
|
|
56
|
+
reason: string;
|
|
57
|
+
relatedDocuments?: {
|
|
58
|
+
pages?: string[];
|
|
59
|
+
schemas?: string[];
|
|
60
|
+
endpoints?: string[];
|
|
61
|
+
techStack?: string[];
|
|
62
|
+
};
|
|
63
|
+
estimatedMinutes?: number;
|
|
64
|
+
dependsOn?: string[];
|
|
65
|
+
}): Promise<BuildPrompt | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Get a specific page by ID or name
|
|
68
|
+
*/
|
|
69
|
+
getPage(identifier: string): Promise<PageEntity | null>;
|
|
70
|
+
/**
|
|
71
|
+
* Get a specific schema by ID or collection name
|
|
72
|
+
*/
|
|
73
|
+
getSchema(identifier: string): Promise<SchemaEntity | null>;
|
|
74
|
+
/**
|
|
75
|
+
* Get a specific endpoint by ID or name
|
|
76
|
+
*/
|
|
77
|
+
getEndpoint(identifier: string): Promise<EndpointEntity | null>;
|
|
78
|
+
/**
|
|
79
|
+
* Get a specific tech stack item by ID or name
|
|
80
|
+
*/
|
|
81
|
+
getTechStackItem(identifier: string): Promise<TechStackEntity | null>;
|
|
82
|
+
/**
|
|
83
|
+
* Get multiple entities by their references
|
|
84
|
+
*/
|
|
85
|
+
resolveEntityReferences(refs: {
|
|
86
|
+
pages?: string[];
|
|
87
|
+
schemas?: string[];
|
|
88
|
+
endpoints?: string[];
|
|
89
|
+
techStack?: string[];
|
|
90
|
+
}): Promise<{
|
|
91
|
+
pages: PageEntity[];
|
|
92
|
+
schemas: SchemaEntity[];
|
|
93
|
+
endpoints: EndpointEntity[];
|
|
94
|
+
techStack: TechStackEntity[];
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Create or update MCP session
|
|
98
|
+
*/
|
|
99
|
+
updateSession(sessionId: string, data: Partial<MCPSession>): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Log a tool call for analytics
|
|
102
|
+
*/
|
|
103
|
+
logToolCall(sessionId: string, toolName: string, request: any, response: any, durationMs: number, intelligenceUsed: string): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Log an error for debugging
|
|
106
|
+
*/
|
|
107
|
+
logError(sessionId: string, promptId: string, error: {
|
|
108
|
+
errorType: string;
|
|
109
|
+
errorMessage: string;
|
|
110
|
+
stackTrace?: string;
|
|
111
|
+
context?: string;
|
|
112
|
+
}, diagnosis: any): Promise<void>;
|
|
113
|
+
private normalize;
|
|
114
|
+
private truncateForStorage;
|
|
115
|
+
/**
|
|
116
|
+
* Get build progress statistics
|
|
117
|
+
*/
|
|
118
|
+
getBuildProgress(): Promise<{
|
|
119
|
+
totalSteps: number;
|
|
120
|
+
completedSteps: number;
|
|
121
|
+
currentStep: number;
|
|
122
|
+
percentComplete: number;
|
|
123
|
+
estimatedTimeRemaining: number;
|
|
124
|
+
}>;
|
|
125
|
+
/**
|
|
126
|
+
* Get the design system
|
|
127
|
+
*/
|
|
128
|
+
getDesignSystem(): Promise<DesignSystem | undefined>;
|
|
129
|
+
/**
|
|
130
|
+
* Clear cache (force refresh on next load)
|
|
131
|
+
*/
|
|
132
|
+
clearCache(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Get next incomplete build instruction with V2 format (structured testCriteria)
|
|
135
|
+
* For v9-mega projects only
|
|
136
|
+
*/
|
|
137
|
+
getNextBuildInstructionV2(): Promise<BuildInstructionV2 | null>;
|
|
138
|
+
/**
|
|
139
|
+
* Convert BuildPrompt to BuildInstructionV2 format
|
|
140
|
+
*/
|
|
141
|
+
private promptToInstructionV2;
|
|
142
|
+
/**
|
|
143
|
+
* Normalize test criteria to V2 format
|
|
144
|
+
* Handles both string[] (old format) and TestCriterionV2[] (new format)
|
|
145
|
+
*/
|
|
146
|
+
private normalizeTestCriteria;
|
|
147
|
+
/**
|
|
148
|
+
* Mark an instruction as complete in v9-mega format
|
|
149
|
+
* Updates the instruction within its category document
|
|
150
|
+
*/
|
|
151
|
+
markInstructionCompleteV2(promptId: string, completionData: {
|
|
152
|
+
completionNotes?: string;
|
|
153
|
+
filesCreated?: string[];
|
|
154
|
+
validationSummary?: string;
|
|
155
|
+
}): Promise<boolean>;
|
|
156
|
+
/**
|
|
157
|
+
* Flag an instruction for human review (after max retry attempts)
|
|
158
|
+
*/
|
|
159
|
+
flagInstructionForReview(promptId: string, reason: string, validationHistory: Array<{
|
|
160
|
+
attempt: number;
|
|
161
|
+
verdict: string;
|
|
162
|
+
message: string;
|
|
163
|
+
}>): Promise<boolean>;
|
|
164
|
+
/**
|
|
165
|
+
* Get V2 build progress with flagged counts
|
|
166
|
+
*/
|
|
167
|
+
getBuildProgressV2(): Promise<BuildProgressV2>;
|
|
168
|
+
/**
|
|
169
|
+
* Log a V2 validation event for analytics
|
|
170
|
+
*/
|
|
171
|
+
logValidationEvent(sessionId: string, promptId: string, event: {
|
|
172
|
+
type: 'submission' | 'validation' | 'retry' | 'flagged' | 'approved';
|
|
173
|
+
attempt?: number;
|
|
174
|
+
verdict?: string;
|
|
175
|
+
summary?: string;
|
|
176
|
+
criteriaResults?: Array<{
|
|
177
|
+
criterion: string;
|
|
178
|
+
status: string;
|
|
179
|
+
reason: string;
|
|
180
|
+
}>;
|
|
181
|
+
}): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* Get user's BYOK configuration if available
|
|
184
|
+
*/
|
|
185
|
+
getUserBYOKConfig(userId: string): Promise<{
|
|
186
|
+
hasCustomKey: boolean;
|
|
187
|
+
encryptedApiKey?: string;
|
|
188
|
+
preferredModel?: string;
|
|
189
|
+
} | null>;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=visualprd-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualprd-client.d.ts","sourceRoot":"","sources":["../../src/services/visualprd-client.ts"],"names":[],"mappings":"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"}
|