@merabylabs/promptarchitect-mcp 0.1.0 → 0.1.2
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 +182 -15
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -13
- package/dist/server.js.map +1 -1
- package/dist/tools/analyzePrompt.d.ts +1 -0
- package/dist/tools/analyzePrompt.d.ts.map +1 -1
- package/dist/tools/analyzePrompt.js +23 -46
- package/dist/tools/analyzePrompt.js.map +1 -1
- package/dist/tools/generatePrompt.d.ts +6 -4
- package/dist/tools/generatePrompt.d.ts.map +1 -1
- package/dist/tools/generatePrompt.js +24 -65
- package/dist/tools/generatePrompt.js.map +1 -1
- package/dist/tools/refinePrompt.d.ts +3 -2
- package/dist/tools/refinePrompt.d.ts.map +1 -1
- package/dist/tools/refinePrompt.js +23 -40
- package/dist/tools/refinePrompt.js.map +1 -1
- package/dist/utils/apiClient.d.ts +83 -0
- package/dist/utils/apiClient.d.ts.map +1 -0
- package/dist/utils/apiClient.js +117 -0
- package/dist/utils/apiClient.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +16 -3
package/README.md
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
# @promptarchitect
|
|
1
|
+
# @merabylabs/promptarchitect-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@merabylabs/promptarchitect-mcp)
|
|
4
|
+
[](https://modelcontextprotocol.io)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
2
6
|
|
|
3
7
|
A Model Context Protocol (MCP) server that refines your prompts using PromptArchitect's AI-powered prompt engineering. Simply pass your current prompt and get an improved version back.
|
|
4
8
|
|
|
9
|
+
**Works with:** Claude Desktop • VS Code (Copilot) • Cursor • Windsurf • Zed • JetBrains IDEs • Continue.dev • Cline
|
|
10
|
+
|
|
5
11
|
## Features
|
|
6
12
|
|
|
7
13
|
### 🛠️ Tools
|
|
@@ -20,53 +26,214 @@ A Model Context Protocol (MCP) server that refines your prompts using PromptArch
|
|
|
20
26
|
## Installation
|
|
21
27
|
|
|
22
28
|
```bash
|
|
23
|
-
npm install @promptarchitect
|
|
29
|
+
npm install @merabylabs/promptarchitect-mcp
|
|
24
30
|
```
|
|
25
31
|
|
|
26
32
|
Or install globally:
|
|
27
33
|
|
|
28
34
|
```bash
|
|
29
|
-
npm install -g @promptarchitect
|
|
35
|
+
npm install -g @merabylabs/promptarchitect-mcp
|
|
30
36
|
```
|
|
31
37
|
|
|
32
38
|
## Usage
|
|
33
39
|
|
|
34
|
-
|
|
40
|
+
PromptArchitect MCP server works with any IDE or application that supports the [Model Context Protocol](https://modelcontextprotocol.io). Below are configuration examples for popular editors.
|
|
41
|
+
|
|
42
|
+
> **No API key required!** The MCP server uses the PromptArchitect backend API, so you don't need your own Gemini API key.
|
|
35
43
|
|
|
36
|
-
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### Claude Desktop
|
|
47
|
+
|
|
48
|
+
Add to your Claude Desktop configuration file:
|
|
49
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
50
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
37
51
|
|
|
38
52
|
```json
|
|
39
53
|
{
|
|
40
54
|
"mcpServers": {
|
|
41
55
|
"promptarchitect": {
|
|
42
56
|
"command": "npx",
|
|
43
|
-
"args": ["@promptarchitect
|
|
44
|
-
"env": {
|
|
45
|
-
"GEMINI_API_KEY": "your-api-key-here"
|
|
46
|
-
}
|
|
57
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
60
|
}
|
|
50
61
|
```
|
|
51
62
|
|
|
52
|
-
|
|
63
|
+
---
|
|
53
64
|
|
|
54
|
-
|
|
65
|
+
### VS Code (GitHub Copilot)
|
|
66
|
+
|
|
67
|
+
Add to your VS Code `settings.json` (Cmd/Ctrl+Shift+P → "Preferences: Open Settings (JSON)"):
|
|
55
68
|
|
|
56
69
|
```json
|
|
57
70
|
{
|
|
58
71
|
"github.copilot.chat.mcp.servers": {
|
|
59
72
|
"promptarchitect": {
|
|
60
73
|
"command": "npx",
|
|
61
|
-
"args": ["@promptarchitect
|
|
62
|
-
|
|
63
|
-
|
|
74
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Cursor
|
|
83
|
+
|
|
84
|
+
Add to your Cursor MCP settings:
|
|
85
|
+
- **macOS/Linux**: `~/.cursor/mcp.json`
|
|
86
|
+
- **Windows**: `%USERPROFILE%\.cursor\mcp.json`
|
|
87
|
+
- Or via: Settings → MCP
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"mcpServers": {
|
|
92
|
+
"promptarchitect": {
|
|
93
|
+
"command": "npx",
|
|
94
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
📖 [Cursor MCP Documentation](https://docs.cursor.com/advanced/model-context-protocol)
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Windsurf (Codeium)
|
|
105
|
+
|
|
106
|
+
Add to your Windsurf MCP configuration:
|
|
107
|
+
- **macOS/Linux**: `~/.codeium/windsurf/mcp_config.json`
|
|
108
|
+
- **Windows**: `%USERPROFILE%\.codeium\windsurf\mcp_config.json`
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"mcpServers": {
|
|
113
|
+
"promptarchitect": {
|
|
114
|
+
"command": "npx",
|
|
115
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
📖 [Windsurf MCP Documentation](https://docs.codeium.com/windsurf/mcp)
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### Zed
|
|
126
|
+
|
|
127
|
+
Add to your Zed settings:
|
|
128
|
+
- **macOS**: `~/.config/zed/settings.json`
|
|
129
|
+
- **Linux**: `~/.config/zed/settings.json`
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"context_servers": {
|
|
134
|
+
"promptarchitect": {
|
|
135
|
+
"command": {
|
|
136
|
+
"path": "npx",
|
|
137
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
138
|
+
},
|
|
139
|
+
"settings": {}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
📖 [Zed MCP Documentation](https://zed.dev/docs/assistant/model-context-protocol)
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### JetBrains IDEs
|
|
150
|
+
|
|
151
|
+
Works with **IntelliJ IDEA, PyCharm, WebStorm, PhpStorm, GoLand, RubyMine, CLion, DataGrip, Rider, Android Studio**.
|
|
152
|
+
|
|
153
|
+
1. Install the **MCP Client** plugin from JetBrains Marketplace
|
|
154
|
+
2. Go to Settings → Tools → MCP Servers
|
|
155
|
+
3. Add a new server with this configuration:
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"mcpServers": {
|
|
160
|
+
"promptarchitect": {
|
|
161
|
+
"command": "npx",
|
|
162
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Or add to `.idea/mcp.json` in your project.
|
|
169
|
+
|
|
170
|
+
📖 [JetBrains MCP Plugin](https://plugins.jetbrains.com/plugin/mcp-client)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### Continue.dev
|
|
175
|
+
|
|
176
|
+
Add to your Continue configuration:
|
|
177
|
+
- **Global**: `~/.continue/config.json`
|
|
178
|
+
- **Project**: `.continue/config.json`
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"experimental": {
|
|
183
|
+
"modelContextProtocolServers": [
|
|
184
|
+
{
|
|
185
|
+
"transport": {
|
|
186
|
+
"type": "stdio",
|
|
187
|
+
"command": "npx",
|
|
188
|
+
"args": ["@merabylabs/promptarchitect-mcp"]
|
|
189
|
+
}
|
|
64
190
|
}
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
📖 [Continue MCP Documentation](https://docs.continue.dev/customize/model-context-protocol)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### Cline (VS Code Extension)
|
|
201
|
+
|
|
202
|
+
Open Cline Settings → MCP Servers, or edit `cline_mcp_settings.json`:
|
|
203
|
+
|
|
204
|
+
```json
|
|
205
|
+
{
|
|
206
|
+
"mcpServers": {
|
|
207
|
+
"promptarchitect": {
|
|
208
|
+
"command": "npx",
|
|
209
|
+
"args": ["@merabylabs/promptarchitect-mcp"],
|
|
210
|
+
"disabled": false
|
|
65
211
|
}
|
|
66
212
|
}
|
|
67
213
|
}
|
|
68
214
|
```
|
|
69
215
|
|
|
216
|
+
📖 [Cline MCP Documentation](https://github.com/cline/cline#mcp-support)
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### Other MCP-Compatible Applications
|
|
221
|
+
|
|
222
|
+
Any application supporting MCP can use this server. The standard configuration is:
|
|
223
|
+
|
|
224
|
+
| Property | Value |
|
|
225
|
+
|----------|-------|
|
|
226
|
+
| Command | `npx` |
|
|
227
|
+
| Args | `["@merabylabs/promptarchitect-mcp"]` |
|
|
228
|
+
| Environment | `GEMINI_API_KEY` (optional) |
|
|
229
|
+
|
|
230
|
+
For global installation, use `promptarchitect-mcp` as the command after running:
|
|
231
|
+
```bash
|
|
232
|
+
npm install -g @merabylabs/promptarchitect-mcp
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
70
237
|
### Programmatic Usage
|
|
71
238
|
|
|
72
239
|
```typescript
|
|
@@ -95,7 +262,6 @@ console.log(analysis.suggestions); // ["Be more specific about...", ...]
|
|
|
95
262
|
|
|
96
263
|
| Variable | Required | Description |
|
|
97
264
|
|----------|----------|-------------|
|
|
98
|
-
| `GEMINI_API_KEY` | No | Google Gemini API key for AI-powered refinement. Falls back to rule-based refinement if not provided. |
|
|
99
265
|
| `LOG_LEVEL` | No | Logging level: `debug`, `info`, `warn`, `error`. Default: `info` |
|
|
100
266
|
|
|
101
267
|
## Tool Reference
|
|
@@ -228,3 +394,4 @@ MIT
|
|
|
228
394
|
- [PromptArchitect](https://github.com/promptarchitect) - Full web application
|
|
229
395
|
- [Model Context Protocol](https://modelcontextprotocol.io) - MCP specification
|
|
230
396
|
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - SDK used by this server
|
|
397
|
+
|
package/dist/index.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
export { createServer, runServer } from './server.js';
|
|
6
6
|
export { generatePrompt, generatePromptSchema, type GeneratePromptInput, refinePrompt, refinePromptSchema, type RefinePromptInput, analyzePrompt, analyzePromptSchema, type AnalyzePromptInput, type AnalysisResult, } from './tools/index.js';
|
|
7
7
|
export { getAllTemplates, getTemplateById, getTemplatesByCategory, getCategories, fillTemplate, type PromptTemplate, } from './resources/templates.js';
|
|
8
|
-
export { logger,
|
|
8
|
+
export { logger, isApiClientAvailable, initializeApiClient, } from './utils/index.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,YAAY,EACZ,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,aAAa,EACb,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,YAAY,EACZ,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,aAAa,EACb,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,5 +9,5 @@ export { generatePrompt, generatePromptSchema, refinePrompt, refinePromptSchema,
|
|
|
9
9
|
// Resource exports
|
|
10
10
|
export { getAllTemplates, getTemplateById, getTemplatesByCategory, getCategories, fillTemplate, } from './resources/templates.js';
|
|
11
11
|
// Utility exports
|
|
12
|
-
export { logger,
|
|
12
|
+
export { logger, isApiClientAvailable, initializeApiClient, } from './utils/index.js';
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAe;AACf,OAAO,EACL,cAAc,EACd,oBAAoB,EAEpB,YAAY,EACZ,kBAAkB,EAElB,aAAa,EACb,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,YAAY,GAEb,MAAM,0BAA0B,CAAC;AAElC,kBAAkB;AAClB,OAAO,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAe;AACf,OAAO,EACL,cAAc,EACd,oBAAoB,EAEpB,YAAY,EACZ,kBAAkB,EAElB,aAAa,EACb,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,YAAY,GAEb,MAAM,0BAA0B,CAAC;AAElC,kBAAkB;AAClB,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA4BnE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA4BnE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6BrC;AAwTD;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB/C;AAED,eAAe,YAAY,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -7,7 +7,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
7
7
|
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import { generatePrompt, generatePromptSchema, refinePrompt, refinePromptSchema, analyzePrompt, analyzePromptSchema, } from './tools/index.js';
|
|
9
9
|
import { getAllTemplates, getTemplateById, getCategories, } from './resources/templates.js';
|
|
10
|
-
import { logger,
|
|
10
|
+
import { logger, getStats, isApiClientAvailable } from './utils/index.js';
|
|
11
11
|
/**
|
|
12
12
|
* Create and configure the MCP server
|
|
13
13
|
*/
|
|
@@ -21,16 +21,8 @@ export function createServer() {
|
|
|
21
21
|
resources: {},
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
const apiKey = process.env.GEMINI_API_KEY || process.env.VITE_GEMINI_API_KEY;
|
|
27
|
-
if (apiKey) {
|
|
28
|
-
initializeGemini(apiKey);
|
|
29
|
-
logger.info('Gemini API initialized');
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
logger.warn('GEMINI_API_KEY not set - using fallback generation');
|
|
33
|
-
}
|
|
24
|
+
// API client is auto-initialized - no API key needed from user
|
|
25
|
+
logger.info('PromptArchitect API client ready');
|
|
34
26
|
// Register tool handlers
|
|
35
27
|
registerToolHandlers(server);
|
|
36
28
|
// Register resource handlers
|
|
@@ -207,7 +199,7 @@ Use this tool to check:
|
|
|
207
199
|
const status = {
|
|
208
200
|
server: 'promptarchitect-mcp',
|
|
209
201
|
version: '1.0.0',
|
|
210
|
-
|
|
202
|
+
apiAvailable: isApiClientAvailable(),
|
|
211
203
|
performance: {
|
|
212
204
|
totalRequests: stats.totalRequests,
|
|
213
205
|
cacheHits: stats.cacheHits,
|
|
@@ -216,7 +208,7 @@ Use this tool to check:
|
|
|
216
208
|
: 'N/A',
|
|
217
209
|
avgLatencyMs: stats.avgLatencyMs,
|
|
218
210
|
},
|
|
219
|
-
status:
|
|
211
|
+
status: isApiClientAvailable() ? 'ready' : 'degraded (using fallbacks)',
|
|
220
212
|
};
|
|
221
213
|
return {
|
|
222
214
|
content: [
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzePrompt.d.ts","sourceRoot":"","sources":["../../src/tools/analyzePrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"analyzePrompt.d.ts","sourceRoot":"","sources":["../../src/tools/analyzePrompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AASD,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4CtF;AA0HD,eAAe,aAAa,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Analyze Prompt Tool
|
|
3
3
|
* Evaluates prompt quality and provides improvement suggestions
|
|
4
|
+
* Uses PromptArchitect API with local fallback
|
|
4
5
|
*/
|
|
5
6
|
import { z } from 'zod';
|
|
6
|
-
import {
|
|
7
|
+
import { logger, apiAnalyzePrompt, isApiClientAvailable, } from '../utils/index.js';
|
|
7
8
|
export const analyzePromptSchema = z.object({
|
|
8
9
|
prompt: z.string().min(1).describe('The prompt to analyze'),
|
|
9
10
|
evaluationCriteria: z.array(z.string()).optional().describe('Specific criteria to evaluate'),
|
|
@@ -20,33 +21,38 @@ export async function analyzePrompt(input) {
|
|
|
20
21
|
promptLength: prompt.length,
|
|
21
22
|
criteria: evaluationCriteria
|
|
22
23
|
});
|
|
23
|
-
// Calculate structural metadata
|
|
24
|
+
// Calculate structural metadata (always needed)
|
|
24
25
|
const metadata = calculateMetadata(prompt);
|
|
25
|
-
|
|
26
|
+
// Use PromptArchitect API
|
|
27
|
+
if (isApiClientAvailable()) {
|
|
26
28
|
try {
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const response = await apiAnalyzePrompt({
|
|
30
|
+
prompt,
|
|
31
|
+
evaluationCriteria,
|
|
32
|
+
});
|
|
33
|
+
logger.info('Analyzed via PromptArchitect API');
|
|
31
34
|
return {
|
|
32
35
|
scores: {
|
|
33
|
-
overall: overallScore,
|
|
34
|
-
clarity:
|
|
35
|
-
specificity:
|
|
36
|
-
structure:
|
|
37
|
-
actionability:
|
|
36
|
+
overall: response.overallScore,
|
|
37
|
+
clarity: response.scores.clarity,
|
|
38
|
+
specificity: response.scores.specificity,
|
|
39
|
+
structure: response.scores.structure,
|
|
40
|
+
actionability: response.scores.actionability,
|
|
38
41
|
},
|
|
39
|
-
suggestions:
|
|
40
|
-
strengths: identifyStrengths(prompt, metadata),
|
|
41
|
-
weaknesses: identifyWeaknesses(prompt, metadata),
|
|
42
|
+
suggestions: response.suggestions || [],
|
|
43
|
+
strengths: response.strengths || identifyStrengths(prompt, metadata),
|
|
44
|
+
weaknesses: response.weaknesses || identifyWeaknesses(prompt, metadata),
|
|
42
45
|
metadata,
|
|
43
46
|
};
|
|
44
47
|
}
|
|
45
48
|
catch (error) {
|
|
46
|
-
logger.warn('
|
|
49
|
+
logger.warn('API request failed, using fallback', {
|
|
50
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
51
|
+
});
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
|
-
// Fallback
|
|
54
|
+
// Fallback rule-based analysis
|
|
55
|
+
logger.warn('Using fallback rule-based analysis');
|
|
50
56
|
return performRuleBasedAnalysis(prompt, metadata);
|
|
51
57
|
}
|
|
52
58
|
function calculateMetadata(prompt) {
|
|
@@ -60,35 +66,6 @@ function calculateMetadata(prompt) {
|
|
|
60
66
|
hasConstraints: /must|should|avoid|don't|do not|never|always|required/i.test(prompt),
|
|
61
67
|
};
|
|
62
68
|
}
|
|
63
|
-
function estimateSubscore(prompt, criterion, baseScore) {
|
|
64
|
-
// Adjust base score based on criterion-specific heuristics
|
|
65
|
-
let adjustment = 0;
|
|
66
|
-
switch (criterion) {
|
|
67
|
-
case 'clarity':
|
|
68
|
-
// Shorter sentences = clearer
|
|
69
|
-
const avgSentenceLength = prompt.length / (prompt.split(/[.!?]+/).length || 1);
|
|
70
|
-
adjustment = avgSentenceLength < 100 ? 5 : avgSentenceLength > 200 ? -10 : 0;
|
|
71
|
-
break;
|
|
72
|
-
case 'specificity':
|
|
73
|
-
// Specific words indicate specificity
|
|
74
|
-
const specificIndicators = (prompt.match(/specific|exact|precisely|particular|detailed/gi) || []).length;
|
|
75
|
-
const vagueIndicators = (prompt.match(/something|anything|whatever|stuff|things/gi) || []).length;
|
|
76
|
-
adjustment = specificIndicators * 3 - vagueIndicators * 5;
|
|
77
|
-
break;
|
|
78
|
-
case 'structure':
|
|
79
|
-
// Headers, lists, sections
|
|
80
|
-
const hasHeaders = /^#+\s/m.test(prompt);
|
|
81
|
-
const hasList = /^[-*•\d.]+\s/m.test(prompt);
|
|
82
|
-
adjustment = (hasHeaders ? 10 : 0) + (hasList ? 5 : 0);
|
|
83
|
-
break;
|
|
84
|
-
case 'actionability':
|
|
85
|
-
// Clear actions/verbs at start
|
|
86
|
-
const hasActionVerb = /^(create|generate|write|analyze|explain|list|describe|build|design)/i.test(prompt);
|
|
87
|
-
adjustment = hasActionVerb ? 10 : -5;
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
return Math.max(0, Math.min(100, baseScore + adjustment));
|
|
91
|
-
}
|
|
92
69
|
function identifyStrengths(prompt, metadata) {
|
|
93
70
|
const strengths = [];
|
|
94
71
|
if (metadata.hasStructure) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzePrompt.js","sourceRoot":"","sources":["../../src/tools/analyzePrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"analyzePrompt.js","sourceRoot":"","sources":["../../src/tools/analyzePrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate Prompt Tool
|
|
3
3
|
* Transforms user ideas into well-structured prompts
|
|
4
|
+
*
|
|
5
|
+
* Uses PromptArchitect backend API with fallback to local template generation.
|
|
4
6
|
*/
|
|
5
7
|
import { z } from 'zod';
|
|
6
8
|
export declare const generatePromptSchema: z.ZodObject<{
|
|
@@ -9,15 +11,15 @@ export declare const generatePromptSchema: z.ZodObject<{
|
|
|
9
11
|
context: z.ZodOptional<z.ZodString>;
|
|
10
12
|
targetModel: z.ZodDefault<z.ZodOptional<z.ZodEnum<["gpt-4", "claude", "gemini", "general"]>>>;
|
|
11
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
template: "general" | "coding" | "writing" | "research" | "analysis" | "factcheck";
|
|
12
15
|
idea: string;
|
|
13
|
-
|
|
14
|
-
targetModel: "general" | "gpt-4" | "claude" | "gemini";
|
|
16
|
+
targetModel: "general" | "gemini" | "gpt-4" | "claude";
|
|
15
17
|
context?: string | undefined;
|
|
16
18
|
}, {
|
|
17
19
|
idea: string;
|
|
18
|
-
template?: "coding" | "writing" | "research" | "analysis" | "factcheck" |
|
|
20
|
+
template?: "general" | "coding" | "writing" | "research" | "analysis" | "factcheck" | undefined;
|
|
19
21
|
context?: string | undefined;
|
|
20
|
-
targetModel?: "general" | "
|
|
22
|
+
targetModel?: "general" | "gemini" | "gpt-4" | "claude" | undefined;
|
|
21
23
|
}>;
|
|
22
24
|
export type GeneratePromptInput = z.infer<typeof generatePromptSchema>;
|
|
23
25
|
export declare function generatePrompt(input: GeneratePromptInput): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePrompt.d.ts","sourceRoot":"","sources":["../../src/tools/generatePrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generatePrompt.d.ts","sourceRoot":"","sources":["../../src/tools/generatePrompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAW/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;CACH,CAAC,CA6CD;AA0BD,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate Prompt Tool
|
|
3
3
|
* Transforms user ideas into well-structured prompts
|
|
4
|
+
*
|
|
5
|
+
* Uses PromptArchitect backend API with fallback to local template generation.
|
|
4
6
|
*/
|
|
5
7
|
import { z } from 'zod';
|
|
6
|
-
import {
|
|
8
|
+
import { logger, apiGeneratePrompt, isApiClientAvailable, } from '../utils/index.js';
|
|
7
9
|
export const generatePromptSchema = z.object({
|
|
8
10
|
idea: z.string().min(1).describe('The user\'s raw prompt idea or concept'),
|
|
9
11
|
template: z.enum(['coding', 'writing', 'research', 'analysis', 'factcheck', 'general'])
|
|
@@ -16,75 +18,32 @@ export const generatePromptSchema = z.object({
|
|
|
16
18
|
.default('general')
|
|
17
19
|
.describe('Target AI model to optimize for'),
|
|
18
20
|
});
|
|
19
|
-
const TEMPLATE_PREFIXES = {
|
|
20
|
-
coding: `Generate a detailed coding/development prompt for the following task. Include:
|
|
21
|
-
- Clear problem statement
|
|
22
|
-
- Technical requirements and constraints
|
|
23
|
-
- Expected input/output specifications
|
|
24
|
-
- Edge cases to consider
|
|
25
|
-
- Code quality expectations
|
|
26
|
-
|
|
27
|
-
Task: `,
|
|
28
|
-
writing: `Generate a comprehensive writing prompt for the following. Include:
|
|
29
|
-
- Clear writing objective
|
|
30
|
-
- Target audience and tone
|
|
31
|
-
- Structure/format requirements
|
|
32
|
-
- Key points to cover
|
|
33
|
-
- Style guidelines
|
|
34
|
-
|
|
35
|
-
Topic: `,
|
|
36
|
-
research: `Generate a thorough research prompt for the following topic. Include:
|
|
37
|
-
- Research questions to answer
|
|
38
|
-
- Scope and depth expectations
|
|
39
|
-
- Source requirements
|
|
40
|
-
- Output format (report, summary, etc.)
|
|
41
|
-
- Key areas to investigate
|
|
42
|
-
|
|
43
|
-
Topic: `,
|
|
44
|
-
analysis: `Generate an analytical prompt for the following. Include:
|
|
45
|
-
- What to analyze and why
|
|
46
|
-
- Analytical framework or approach
|
|
47
|
-
- Data/evidence expectations
|
|
48
|
-
- Output format and structure
|
|
49
|
-
- Key insights to uncover
|
|
50
|
-
|
|
51
|
-
Subject: `,
|
|
52
|
-
factcheck: `Generate a fact-checking prompt for the following claim. Include:
|
|
53
|
-
- The claim to verify
|
|
54
|
-
- Evidence standards required
|
|
55
|
-
- Source credibility criteria
|
|
56
|
-
- Output format (verdict, confidence, sources)
|
|
57
|
-
- Edge cases and nuances
|
|
58
|
-
|
|
59
|
-
Claim: `,
|
|
60
|
-
general: `Generate a well-structured prompt for the following request. Include:
|
|
61
|
-
- Clear objective
|
|
62
|
-
- Context and constraints
|
|
63
|
-
- Expected output format
|
|
64
|
-
- Quality criteria
|
|
65
|
-
|
|
66
|
-
Request: `,
|
|
67
|
-
};
|
|
68
21
|
export async function generatePrompt(input) {
|
|
69
22
|
const { idea, template = 'general', context, targetModel } = input;
|
|
70
23
|
logger.info('Generating prompt', { template, targetModel, ideaLength: idea.length });
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
24
|
+
let generatedPrompt = '';
|
|
25
|
+
// Use PromptArchitect API
|
|
26
|
+
if (isApiClientAvailable()) {
|
|
27
|
+
try {
|
|
28
|
+
const response = await apiGeneratePrompt({
|
|
29
|
+
idea,
|
|
30
|
+
template,
|
|
31
|
+
context,
|
|
32
|
+
targetModel,
|
|
33
|
+
});
|
|
34
|
+
generatedPrompt = response.prompt;
|
|
35
|
+
logger.info('Generated via PromptArchitect API');
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
logger.warn('API request failed, using fallback', {
|
|
39
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
40
|
+
});
|
|
41
|
+
}
|
|
76
42
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
let generatedPrompt;
|
|
81
|
-
if (isGeminiAvailable()) {
|
|
82
|
-
generatedPrompt = await generateContent(fullRequest);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
// Fallback: Return a structured template without AI
|
|
43
|
+
// Fallback template generation
|
|
44
|
+
if (!generatedPrompt) {
|
|
86
45
|
generatedPrompt = createFallbackPrompt(idea, template, context);
|
|
87
|
-
logger.warn('Using fallback prompt generation
|
|
46
|
+
logger.warn('Using fallback prompt generation');
|
|
88
47
|
}
|
|
89
48
|
// Calculate metadata
|
|
90
49
|
const wordCount = generatedPrompt.split(/\s+/).length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePrompt.js","sourceRoot":"","sources":["../../src/tools/generatePrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generatePrompt.js","sourceRoot":"","sources":["../../src/tools/generatePrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Refine Prompt Tool
|
|
3
3
|
* Iteratively improves existing prompts based on feedback
|
|
4
|
+
* Uses PromptArchitect API with local fallback
|
|
4
5
|
*/
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
export declare const refinePromptSchema: z.ZodObject<{
|
|
@@ -9,14 +10,14 @@ export declare const refinePromptSchema: z.ZodObject<{
|
|
|
9
10
|
preserveStructure: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
11
|
targetModel: z.ZodDefault<z.ZodOptional<z.ZodEnum<["gpt-4", "claude", "gemini", "general"]>>>;
|
|
11
12
|
}, "strip", z.ZodTypeAny, {
|
|
12
|
-
targetModel: "general" | "
|
|
13
|
+
targetModel: "general" | "gemini" | "gpt-4" | "claude";
|
|
13
14
|
prompt: string;
|
|
14
15
|
feedback: string;
|
|
15
16
|
preserveStructure: boolean;
|
|
16
17
|
}, {
|
|
17
18
|
prompt: string;
|
|
18
19
|
feedback: string;
|
|
19
|
-
targetModel?: "general" | "
|
|
20
|
+
targetModel?: "general" | "gemini" | "gpt-4" | "claude" | undefined;
|
|
20
21
|
preserveStructure?: boolean | undefined;
|
|
21
22
|
}>;
|
|
22
23
|
export type RefinePromptInput = z.infer<typeof refinePromptSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refinePrompt.d.ts","sourceRoot":"","sources":["../../src/tools/refinePrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"refinePrompt.d.ts","sourceRoot":"","sources":["../../src/tools/refinePrompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAQ7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH,CAAC,CAuDD;AA6BD,eAAe,YAAY,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Refine Prompt Tool
|
|
3
3
|
* Iteratively improves existing prompts based on feedback
|
|
4
|
+
* Uses PromptArchitect API with local fallback
|
|
4
5
|
*/
|
|
5
6
|
import { z } from 'zod';
|
|
6
|
-
import {
|
|
7
|
+
import { logger, apiRefinePrompt, isApiClientAvailable, } from '../utils/index.js';
|
|
7
8
|
export const refinePromptSchema = z.object({
|
|
8
9
|
prompt: z.string().min(1).describe('The current prompt to refine'),
|
|
9
10
|
feedback: z.string().min(1).describe('What should be improved or changed'),
|
|
@@ -21,50 +22,32 @@ export async function refinePrompt(input) {
|
|
|
21
22
|
preserveStructure,
|
|
22
23
|
targetModel
|
|
23
24
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## Original Prompt
|
|
27
|
-
${prompt}
|
|
28
|
-
|
|
29
|
-
## Feedback / Improvement Request
|
|
30
|
-
${feedback}
|
|
31
|
-
|
|
32
|
-
## Instructions
|
|
33
|
-
${preserveStructure ? '- Preserve the overall structure and format of the original prompt' : '- Feel free to restructure the prompt if it improves clarity'}
|
|
34
|
-
- Apply the feedback to improve the prompt
|
|
35
|
-
- Maintain clarity and actionability
|
|
36
|
-
- Keep the core intent intact
|
|
37
|
-
${targetModel !== 'general' ? `- Optimize for ${targetModel}` : ''}
|
|
38
|
-
|
|
39
|
-
## Output Format
|
|
40
|
-
First, provide the refined prompt.
|
|
41
|
-
Then, list 2-4 specific changes you made in a "Changes:" section.
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
REFINED PROMPT:`;
|
|
45
|
-
let refinedPrompt;
|
|
25
|
+
let refinedPrompt = '';
|
|
46
26
|
let changes = [];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
27
|
+
// Use PromptArchitect API
|
|
28
|
+
if (isApiClientAvailable()) {
|
|
29
|
+
try {
|
|
30
|
+
const response = await apiRefinePrompt({
|
|
31
|
+
prompt,
|
|
32
|
+
feedback,
|
|
33
|
+
preserveStructure,
|
|
34
|
+
targetModel,
|
|
35
|
+
});
|
|
36
|
+
refinedPrompt = response.refinedPrompt;
|
|
37
|
+
changes = response.changes || ['Prompt refined based on feedback'];
|
|
38
|
+
logger.info('Refined via PromptArchitect API');
|
|
57
39
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
40
|
+
catch (error) {
|
|
41
|
+
logger.warn('API request failed, using fallback', {
|
|
42
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
43
|
+
});
|
|
61
44
|
}
|
|
62
45
|
}
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
// Fallback basic refinement
|
|
47
|
+
if (!refinedPrompt) {
|
|
65
48
|
refinedPrompt = applyBasicRefinements(prompt, feedback);
|
|
66
|
-
changes = ['Applied basic refinements
|
|
67
|
-
logger.warn('Using fallback refinement
|
|
49
|
+
changes = ['Applied basic refinements'];
|
|
50
|
+
logger.warn('Using fallback refinement');
|
|
68
51
|
}
|
|
69
52
|
// Calculate metadata
|
|
70
53
|
const originalWordCount = prompt.split(/\s+/).length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refinePrompt.js","sourceRoot":"","sources":["../../src/tools/refinePrompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"refinePrompt.js","sourceRoot":"","sources":["../../src/tools/refinePrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptArchitect API Client
|
|
3
|
+
*
|
|
4
|
+
* Routes requests through the PromptArchitect backend for:
|
|
5
|
+
* - Proper billing and credit tracking
|
|
6
|
+
* - Usage analytics
|
|
7
|
+
* - Consistent model access across all clients
|
|
8
|
+
*
|
|
9
|
+
* Environment Variables:
|
|
10
|
+
* - PROMPTARCHITECT_API_URL: Backend API URL (default: production)
|
|
11
|
+
* - PROMPTARCHITECT_API_KEY: Optional API key for authenticated requests
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the API client
|
|
15
|
+
*/
|
|
16
|
+
export declare function initializeApiClient(options?: {
|
|
17
|
+
apiUrl?: string;
|
|
18
|
+
apiKey?: string;
|
|
19
|
+
}): void;
|
|
20
|
+
/**
|
|
21
|
+
* Check if API client is configured
|
|
22
|
+
*/
|
|
23
|
+
export declare function isApiClientAvailable(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get the configured API URL
|
|
26
|
+
*/
|
|
27
|
+
export declare function getApiUrl(): string;
|
|
28
|
+
interface GenerateResponse {
|
|
29
|
+
prompt: string;
|
|
30
|
+
template?: string;
|
|
31
|
+
metadata?: {
|
|
32
|
+
wordCount: number;
|
|
33
|
+
targetModel?: string;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
interface RefineResponse {
|
|
37
|
+
refinedPrompt: string;
|
|
38
|
+
changes: string[];
|
|
39
|
+
metadata?: {
|
|
40
|
+
originalWordCount: number;
|
|
41
|
+
refinedWordCount: number;
|
|
42
|
+
structurePreserved: boolean;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
interface AnalyzeResponse {
|
|
46
|
+
overallScore: number;
|
|
47
|
+
scores: {
|
|
48
|
+
clarity: number;
|
|
49
|
+
specificity: number;
|
|
50
|
+
structure: number;
|
|
51
|
+
actionability: number;
|
|
52
|
+
};
|
|
53
|
+
strengths: string[];
|
|
54
|
+
weaknesses: string[];
|
|
55
|
+
suggestions: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Generate a prompt using the backend API
|
|
59
|
+
*/
|
|
60
|
+
export declare function apiGeneratePrompt(params: {
|
|
61
|
+
idea: string;
|
|
62
|
+
template?: string;
|
|
63
|
+
context?: string;
|
|
64
|
+
targetModel?: string;
|
|
65
|
+
}): Promise<GenerateResponse>;
|
|
66
|
+
/**
|
|
67
|
+
* Refine a prompt using the backend API
|
|
68
|
+
*/
|
|
69
|
+
export declare function apiRefinePrompt(params: {
|
|
70
|
+
prompt: string;
|
|
71
|
+
feedback: string;
|
|
72
|
+
preserveStructure?: boolean;
|
|
73
|
+
targetModel?: string;
|
|
74
|
+
}): Promise<RefineResponse>;
|
|
75
|
+
/**
|
|
76
|
+
* Analyze a prompt using the backend API
|
|
77
|
+
*/
|
|
78
|
+
export declare function apiAnalyzePrompt(params: {
|
|
79
|
+
prompt: string;
|
|
80
|
+
evaluationCriteria?: string[];
|
|
81
|
+
}): Promise<AnalyzeResponse>;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=apiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQxF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAED,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAuCD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAc5B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CAc1B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,GAAG,OAAO,CAAC,eAAe,CAAC,CAW3B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptArchitect API Client
|
|
3
|
+
*
|
|
4
|
+
* Routes requests through the PromptArchitect backend for:
|
|
5
|
+
* - Proper billing and credit tracking
|
|
6
|
+
* - Usage analytics
|
|
7
|
+
* - Consistent model access across all clients
|
|
8
|
+
*
|
|
9
|
+
* Environment Variables:
|
|
10
|
+
* - PROMPTARCHITECT_API_URL: Backend API URL (default: production)
|
|
11
|
+
* - PROMPTARCHITECT_API_KEY: Optional API key for authenticated requests
|
|
12
|
+
*/
|
|
13
|
+
import { logger } from './logger.js';
|
|
14
|
+
const DEFAULT_API_URL = 'https://us-central1-prompt-architect-3df7a.cloudfunctions.net/api';
|
|
15
|
+
let apiUrl = DEFAULT_API_URL;
|
|
16
|
+
let apiKey = null;
|
|
17
|
+
/**
|
|
18
|
+
* Initialize the API client
|
|
19
|
+
*/
|
|
20
|
+
export function initializeApiClient(options) {
|
|
21
|
+
apiUrl = options?.apiUrl || process.env.PROMPTARCHITECT_API_URL || DEFAULT_API_URL;
|
|
22
|
+
apiKey = options?.apiKey || process.env.PROMPTARCHITECT_API_KEY || null;
|
|
23
|
+
logger.info('API client initialized', {
|
|
24
|
+
apiUrl: apiUrl.replace(/^(https?:\/\/[^\/]+).*/, '$1/...'),
|
|
25
|
+
hasApiKey: !!apiKey
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if API client is configured
|
|
30
|
+
*/
|
|
31
|
+
export function isApiClientAvailable() {
|
|
32
|
+
return !!apiUrl;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get the configured API URL
|
|
36
|
+
*/
|
|
37
|
+
export function getApiUrl() {
|
|
38
|
+
return apiUrl;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Make authenticated API request
|
|
42
|
+
*/
|
|
43
|
+
async function apiRequest(endpoint, body) {
|
|
44
|
+
const url = `${apiUrl}/vscode${endpoint}`;
|
|
45
|
+
const headers = {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
'X-Client': 'mcp-server',
|
|
48
|
+
'X-Client-Version': '0.1.0',
|
|
49
|
+
};
|
|
50
|
+
if (apiKey) {
|
|
51
|
+
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
52
|
+
}
|
|
53
|
+
logger.debug('API request', { endpoint, bodyKeys: Object.keys(body) });
|
|
54
|
+
const response = await fetch(url, {
|
|
55
|
+
method: 'POST',
|
|
56
|
+
headers,
|
|
57
|
+
body: JSON.stringify(body),
|
|
58
|
+
});
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
const errorText = await response.text();
|
|
61
|
+
logger.error('API request failed', {
|
|
62
|
+
endpoint,
|
|
63
|
+
status: response.status,
|
|
64
|
+
error: errorText.slice(0, 200)
|
|
65
|
+
});
|
|
66
|
+
throw new Error(`API request failed: ${response.status} ${response.statusText}`);
|
|
67
|
+
}
|
|
68
|
+
return response.json();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Generate a prompt using the backend API
|
|
72
|
+
*/
|
|
73
|
+
export async function apiGeneratePrompt(params) {
|
|
74
|
+
logger.info('Generating prompt via API', {
|
|
75
|
+
template: params.template,
|
|
76
|
+
ideaLength: params.idea.length
|
|
77
|
+
});
|
|
78
|
+
const response = await apiRequest('/generate', {
|
|
79
|
+
idea: params.idea,
|
|
80
|
+
template: params.template || 'general',
|
|
81
|
+
context: params.context,
|
|
82
|
+
targetModel: params.targetModel || 'gemini',
|
|
83
|
+
});
|
|
84
|
+
return response;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Refine a prompt using the backend API
|
|
88
|
+
*/
|
|
89
|
+
export async function apiRefinePrompt(params) {
|
|
90
|
+
logger.info('Refining prompt via API', {
|
|
91
|
+
promptLength: params.prompt.length,
|
|
92
|
+
feedbackLength: params.feedback.length
|
|
93
|
+
});
|
|
94
|
+
const response = await apiRequest('/refine', {
|
|
95
|
+
prompt: params.prompt,
|
|
96
|
+
feedback: params.feedback,
|
|
97
|
+
preserveStructure: params.preserveStructure ?? true,
|
|
98
|
+
targetModel: params.targetModel || 'gemini',
|
|
99
|
+
});
|
|
100
|
+
return response;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Analyze a prompt using the backend API
|
|
104
|
+
*/
|
|
105
|
+
export async function apiAnalyzePrompt(params) {
|
|
106
|
+
logger.info('Analyzing prompt via API', {
|
|
107
|
+
promptLength: params.prompt.length
|
|
108
|
+
});
|
|
109
|
+
const response = await apiRequest('/analyze', {
|
|
110
|
+
prompt: params.prompt,
|
|
111
|
+
evaluationCriteria: params.evaluationCriteria,
|
|
112
|
+
});
|
|
113
|
+
return response;
|
|
114
|
+
}
|
|
115
|
+
// Auto-initialize on module load
|
|
116
|
+
initializeApiClient();
|
|
117
|
+
//# sourceMappingURL=apiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/utils/apiClient.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { logger, setLogLevel, type LogLevel } from './logger.js';
|
|
2
2
|
export { initializeGemini, isGeminiAvailable, generateContent, analyzePromptQuality, getStats, } from './gemini.js';
|
|
3
|
+
export { initializeApiClient, isApiClientAvailable, getApiUrl, apiGeneratePrompt, apiRefinePrompt, apiAnalyzePrompt, } from './apiClient.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,QAAQ,GACT,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { logger, setLogLevel } from './logger.js';
|
|
2
2
|
export { initializeGemini, isGeminiAvailable, generateContent, analyzePromptQuality, getStats, } from './gemini.js';
|
|
3
|
+
export { initializeApiClient, isApiClientAvailable, getApiUrl, apiGeneratePrompt, apiRefinePrompt, apiAnalyzePrompt, } from './apiClient.js';
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,QAAQ,GACT,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merabylabs/promptarchitect-mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP (Model Context Protocol) server for PromptArchitect - AI-powered prompt engineering tools",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "MCP (Model Context Protocol) server for PromptArchitect - AI-powered prompt engineering tools for Claude, Cursor, VS Code, Windsurf, Zed & more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"model-context-protocol",
|
|
@@ -9,8 +9,21 @@
|
|
|
9
9
|
"ai",
|
|
10
10
|
"llm",
|
|
11
11
|
"claude",
|
|
12
|
+
"cursor",
|
|
13
|
+
"copilot",
|
|
14
|
+
"vscode",
|
|
15
|
+
"windsurf",
|
|
16
|
+
"codeium",
|
|
17
|
+
"zed",
|
|
18
|
+
"jetbrains",
|
|
19
|
+
"continue",
|
|
20
|
+
"cline",
|
|
12
21
|
"gemini",
|
|
13
|
-
"prompt-generation"
|
|
22
|
+
"prompt-generation",
|
|
23
|
+
"prompt-refinement",
|
|
24
|
+
"ai-assistant",
|
|
25
|
+
"developer-tools",
|
|
26
|
+
"code-assistant"
|
|
14
27
|
],
|
|
15
28
|
"author": "PromptArchitect Team",
|
|
16
29
|
"license": "MIT",
|