@merabylabs/promptarchitect-mcp 0.1.0 → 0.1.1
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 +206 -15
- package/dist/tools/analyzePrompt.d.ts +5 -0
- package/dist/tools/analyzePrompt.d.ts.map +1 -1
- package/dist/tools/analyzePrompt.js +43 -4
- package/dist/tools/analyzePrompt.js.map +1 -1
- package/dist/tools/generatePrompt.d.ts +9 -4
- package/dist/tools/generatePrompt.d.ts.map +1 -1
- package/dist/tools/generatePrompt.js +42 -14
- package/dist/tools/generatePrompt.js.map +1 -1
- package/dist/tools/refinePrompt.d.ts +7 -2
- package/dist/tools/refinePrompt.d.ts.map +1 -1
- package/dist/tools/refinePrompt.js +38 -9
- 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 by default, so you don't need your own Gemini API key. Usage is automatically tracked for billing.
|
|
43
|
+
|
|
44
|
+
---
|
|
35
45
|
|
|
36
|
-
|
|
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
|
+
---
|
|
64
|
+
|
|
65
|
+
### VS Code (GitHub Copilot)
|
|
53
66
|
|
|
54
|
-
Add to your VS Code settings:
|
|
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,9 +262,32 @@ console.log(analysis.suggestions); // ["Be more specific about...", ...]
|
|
|
95
262
|
|
|
96
263
|
| Variable | Required | Description |
|
|
97
264
|
|----------|----------|-------------|
|
|
98
|
-
| `
|
|
265
|
+
| `PROMPTARCHITECT_API_URL` | No | PromptArchitect backend API URL. Default: production API. All requests are tracked for billing. |
|
|
266
|
+
| `PROMPTARCHITECT_API_KEY` | No | API key for authenticated requests (future: premium features). |
|
|
267
|
+
| `USE_DIRECT_GEMINI` | No | Set to `true` to bypass PromptArchitect API and call Gemini directly. **Note: Usage won't be tracked for billing.** |
|
|
268
|
+
| `GEMINI_API_KEY` | No | Google Gemini API key. Only used if `USE_DIRECT_GEMINI=true`. |
|
|
99
269
|
| `LOG_LEVEL` | No | Logging level: `debug`, `info`, `warn`, `error`. Default: `info` |
|
|
100
270
|
|
|
271
|
+
### Billing & Usage Tracking
|
|
272
|
+
|
|
273
|
+
By default, all MCP server requests route through the PromptArchitect backend API, which:
|
|
274
|
+
- Tracks usage for billing and analytics
|
|
275
|
+
- Provides consistent model access
|
|
276
|
+
- Enables credit-based pricing
|
|
277
|
+
|
|
278
|
+
**No API key required!** The server uses the PromptArchitect backend (like the VS Code extension) so you don't need your own Gemini API key.
|
|
279
|
+
|
|
280
|
+
If you want to bypass billing and use your own Gemini API key directly:
|
|
281
|
+
|
|
282
|
+
```json
|
|
283
|
+
{
|
|
284
|
+
"env": {
|
|
285
|
+
"USE_DIRECT_GEMINI": "true",
|
|
286
|
+
"GEMINI_API_KEY": "your-api-key-here"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
101
291
|
## Tool Reference
|
|
102
292
|
|
|
103
293
|
### refine_prompt
|
|
@@ -228,3 +418,4 @@ MIT
|
|
|
228
418
|
- [PromptArchitect](https://github.com/promptarchitect) - Full web application
|
|
229
419
|
- [Model Context Protocol](https://modelcontextprotocol.io) - MCP specification
|
|
230
420
|
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - SDK used by this server
|
|
421
|
+
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Analyze Prompt Tool
|
|
3
3
|
* Evaluates prompt quality and provides improvement suggestions
|
|
4
|
+
*
|
|
5
|
+
* Priority order:
|
|
6
|
+
* 1. PromptArchitect API (for billing tracking) - default
|
|
7
|
+
* 2. Direct Gemini API (if GEMINI_API_KEY set and USE_DIRECT_GEMINI=true)
|
|
8
|
+
* 3. Fallback rule-based analysis (no API available)
|
|
4
9
|
*/
|
|
5
10
|
import { z } from 'zod';
|
|
6
11
|
export declare const analyzePromptSchema: z.ZodObject<{
|
|
@@ -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;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,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,CA4EtF;AA6JD,eAAe,aAAa,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Analyze Prompt Tool
|
|
3
3
|
* Evaluates prompt quality and provides improvement suggestions
|
|
4
|
+
*
|
|
5
|
+
* Priority order:
|
|
6
|
+
* 1. PromptArchitect API (for billing tracking) - default
|
|
7
|
+
* 2. Direct Gemini API (if GEMINI_API_KEY set and USE_DIRECT_GEMINI=true)
|
|
8
|
+
* 3. Fallback rule-based analysis (no API available)
|
|
4
9
|
*/
|
|
5
10
|
import { z } from 'zod';
|
|
6
|
-
import { analyzePromptQuality, isGeminiAvailable, logger } from '../utils/index.js';
|
|
11
|
+
import { analyzePromptQuality, isGeminiAvailable, logger, apiAnalyzePrompt, isApiClientAvailable, } from '../utils/index.js';
|
|
12
|
+
// Check if user explicitly wants direct Gemini (bypasses billing)
|
|
13
|
+
const USE_DIRECT_GEMINI = process.env.USE_DIRECT_GEMINI === 'true';
|
|
7
14
|
export const analyzePromptSchema = z.object({
|
|
8
15
|
prompt: z.string().min(1).describe('The prompt to analyze'),
|
|
9
16
|
evaluationCriteria: z.array(z.string()).optional().describe('Specific criteria to evaluate'),
|
|
@@ -20,14 +27,45 @@ export async function analyzePrompt(input) {
|
|
|
20
27
|
promptLength: prompt.length,
|
|
21
28
|
criteria: evaluationCriteria
|
|
22
29
|
});
|
|
23
|
-
// Calculate structural metadata
|
|
30
|
+
// Calculate structural metadata (always needed)
|
|
24
31
|
const metadata = calculateMetadata(prompt);
|
|
32
|
+
// Priority 1: Use PromptArchitect API for billing tracking (default)
|
|
33
|
+
if (isApiClientAvailable() && !USE_DIRECT_GEMINI) {
|
|
34
|
+
try {
|
|
35
|
+
const response = await apiAnalyzePrompt({
|
|
36
|
+
prompt,
|
|
37
|
+
evaluationCriteria,
|
|
38
|
+
});
|
|
39
|
+
logger.info('Analyzed via PromptArchitect API (billing tracked)');
|
|
40
|
+
return {
|
|
41
|
+
scores: {
|
|
42
|
+
overall: response.overallScore,
|
|
43
|
+
clarity: response.scores.clarity,
|
|
44
|
+
specificity: response.scores.specificity,
|
|
45
|
+
structure: response.scores.structure,
|
|
46
|
+
actionability: response.scores.actionability,
|
|
47
|
+
},
|
|
48
|
+
suggestions: response.suggestions || [],
|
|
49
|
+
strengths: response.strengths || identifyStrengths(prompt, metadata),
|
|
50
|
+
weaknesses: response.weaknesses || identifyWeaknesses(prompt, metadata),
|
|
51
|
+
metadata,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
logger.warn('API request failed, trying fallback', {
|
|
56
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
57
|
+
});
|
|
58
|
+
// Fall through to other options
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Priority 2: Direct Gemini API (if explicitly enabled or API failed)
|
|
25
62
|
if (isGeminiAvailable()) {
|
|
26
63
|
try {
|
|
27
64
|
const quality = await analyzePromptQuality(prompt);
|
|
28
65
|
// Calculate overall score from individual scores
|
|
29
66
|
const overallScore = Math.round((quality.scores.clarity + quality.scores.specificity +
|
|
30
67
|
quality.scores.actionability + quality.scores.completeness) / 4 * 10);
|
|
68
|
+
logger.info('Analyzed via direct Gemini API (billing NOT tracked)');
|
|
31
69
|
return {
|
|
32
70
|
scores: {
|
|
33
71
|
overall: overallScore,
|
|
@@ -43,10 +81,11 @@ export async function analyzePrompt(input) {
|
|
|
43
81
|
};
|
|
44
82
|
}
|
|
45
83
|
catch (error) {
|
|
46
|
-
logger.warn('
|
|
84
|
+
logger.warn('Direct Gemini analysis failed, using rule-based fallback', { error });
|
|
47
85
|
}
|
|
48
86
|
}
|
|
49
|
-
//
|
|
87
|
+
// Priority 3: Fallback rule-based analysis
|
|
88
|
+
logger.warn('Using fallback rule-based analysis (no API available)');
|
|
50
89
|
return performRuleBasedAnalysis(prompt, metadata);
|
|
51
90
|
}
|
|
52
91
|
function calculateMetadata(prompt) {
|
|
@@ -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,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate Prompt Tool
|
|
3
3
|
* Transforms user ideas into well-structured prompts
|
|
4
|
+
*
|
|
5
|
+
* Priority order:
|
|
6
|
+
* 1. PromptArchitect API (for billing tracking) - default
|
|
7
|
+
* 2. Direct Gemini API (if GEMINI_API_KEY set and USE_DIRECT_GEMINI=true)
|
|
8
|
+
* 3. Fallback template generation (no API available)
|
|
4
9
|
*/
|
|
5
10
|
import { z } from 'zod';
|
|
6
11
|
export declare const generatePromptSchema: z.ZodObject<{
|
|
@@ -9,15 +14,15 @@ export declare const generatePromptSchema: z.ZodObject<{
|
|
|
9
14
|
context: z.ZodOptional<z.ZodString>;
|
|
10
15
|
targetModel: z.ZodDefault<z.ZodOptional<z.ZodEnum<["gpt-4", "claude", "gemini", "general"]>>>;
|
|
11
16
|
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
template: "general" | "coding" | "writing" | "research" | "analysis" | "factcheck";
|
|
12
18
|
idea: string;
|
|
13
|
-
|
|
14
|
-
targetModel: "general" | "gpt-4" | "claude" | "gemini";
|
|
19
|
+
targetModel: "general" | "gemini" | "gpt-4" | "claude";
|
|
15
20
|
context?: string | undefined;
|
|
16
21
|
}, {
|
|
17
22
|
idea: string;
|
|
18
|
-
template?: "coding" | "writing" | "research" | "analysis" | "factcheck" |
|
|
23
|
+
template?: "general" | "coding" | "writing" | "research" | "analysis" | "factcheck" | undefined;
|
|
19
24
|
context?: string | undefined;
|
|
20
|
-
targetModel?: "general" | "
|
|
25
|
+
targetModel?: "general" | "gemini" | "gpt-4" | "claude" | undefined;
|
|
21
26
|
}>;
|
|
22
27
|
export type GeneratePromptInput = z.infer<typeof generatePromptSchema>;
|
|
23
28
|
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;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAW/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAyDvE,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,CAgED;AA0BD,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate Prompt Tool
|
|
3
3
|
* Transforms user ideas into well-structured prompts
|
|
4
|
+
*
|
|
5
|
+
* Priority order:
|
|
6
|
+
* 1. PromptArchitect API (for billing tracking) - default
|
|
7
|
+
* 2. Direct Gemini API (if GEMINI_API_KEY set and USE_DIRECT_GEMINI=true)
|
|
8
|
+
* 3. Fallback template generation (no API available)
|
|
4
9
|
*/
|
|
5
10
|
import { z } from 'zod';
|
|
6
|
-
import { generateContent, isGeminiAvailable, logger } from '../utils/index.js';
|
|
11
|
+
import { generateContent, isGeminiAvailable, logger, apiGeneratePrompt, isApiClientAvailable, } from '../utils/index.js';
|
|
12
|
+
// Check if user explicitly wants direct Gemini (bypasses billing)
|
|
13
|
+
const USE_DIRECT_GEMINI = process.env.USE_DIRECT_GEMINI === 'true';
|
|
7
14
|
export const generatePromptSchema = z.object({
|
|
8
15
|
idea: z.string().min(1).describe('The user\'s raw prompt idea or concept'),
|
|
9
16
|
template: z.enum(['coding', 'writing', 'research', 'analysis', 'factcheck', 'general'])
|
|
@@ -68,23 +75,44 @@ Request: `,
|
|
|
68
75
|
export async function generatePrompt(input) {
|
|
69
76
|
const { idea, template = 'general', context, targetModel } = input;
|
|
70
77
|
logger.info('Generating prompt', { template, targetModel, ideaLength: idea.length });
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
let generatedPrompt = '';
|
|
79
|
+
// Priority 1: Use PromptArchitect API for billing tracking (default)
|
|
80
|
+
if (isApiClientAvailable() && !USE_DIRECT_GEMINI) {
|
|
81
|
+
try {
|
|
82
|
+
const response = await apiGeneratePrompt({
|
|
83
|
+
idea,
|
|
84
|
+
template,
|
|
85
|
+
context,
|
|
86
|
+
targetModel,
|
|
87
|
+
});
|
|
88
|
+
generatedPrompt = response.prompt;
|
|
89
|
+
logger.info('Generated via PromptArchitect API (billing tracked)');
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
logger.warn('API request failed, trying fallback', {
|
|
93
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
94
|
+
});
|
|
95
|
+
// Fall through to other options
|
|
96
|
+
generatedPrompt = '';
|
|
97
|
+
}
|
|
76
98
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
99
|
+
// Priority 2: Direct Gemini API (if explicitly enabled or API failed)
|
|
100
|
+
if (!generatedPrompt && isGeminiAvailable()) {
|
|
101
|
+
const templatePrefix = TEMPLATE_PREFIXES[template] || TEMPLATE_PREFIXES.general;
|
|
102
|
+
let fullRequest = templatePrefix + idea;
|
|
103
|
+
if (context) {
|
|
104
|
+
fullRequest += `\n\nAdditional context: ${context}`;
|
|
105
|
+
}
|
|
106
|
+
if (targetModel && targetModel !== 'general') {
|
|
107
|
+
fullRequest += `\n\nOptimize this prompt specifically for ${targetModel}.`;
|
|
108
|
+
}
|
|
82
109
|
generatedPrompt = await generateContent(fullRequest);
|
|
110
|
+
logger.info('Generated via direct Gemini API (billing NOT tracked)');
|
|
83
111
|
}
|
|
84
|
-
|
|
85
|
-
|
|
112
|
+
// Priority 3: Fallback template generation
|
|
113
|
+
if (!generatedPrompt) {
|
|
86
114
|
generatedPrompt = createFallbackPrompt(idea, template, context);
|
|
87
|
-
logger.warn('Using fallback prompt generation (
|
|
115
|
+
logger.warn('Using fallback prompt generation (no API available)');
|
|
88
116
|
}
|
|
89
117
|
// Calculate metadata
|
|
90
118
|
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,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Refine Prompt Tool
|
|
3
3
|
* Iteratively improves existing prompts based on feedback
|
|
4
|
+
*
|
|
5
|
+
* Priority order:
|
|
6
|
+
* 1. PromptArchitect API (for billing tracking) - default
|
|
7
|
+
* 2. Direct Gemini API (if GEMINI_API_KEY set and USE_DIRECT_GEMINI=true)
|
|
8
|
+
* 3. Fallback basic refinement (no API available)
|
|
4
9
|
*/
|
|
5
10
|
import { z } from 'zod';
|
|
6
11
|
export declare const refinePromptSchema: z.ZodObject<{
|
|
@@ -9,14 +14,14 @@ export declare const refinePromptSchema: z.ZodObject<{
|
|
|
9
14
|
preserveStructure: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
15
|
targetModel: z.ZodDefault<z.ZodOptional<z.ZodEnum<["gpt-4", "claude", "gemini", "general"]>>>;
|
|
11
16
|
}, "strip", z.ZodTypeAny, {
|
|
12
|
-
targetModel: "general" | "
|
|
17
|
+
targetModel: "general" | "gemini" | "gpt-4" | "claude";
|
|
13
18
|
prompt: string;
|
|
14
19
|
feedback: string;
|
|
15
20
|
preserveStructure: boolean;
|
|
16
21
|
}, {
|
|
17
22
|
prompt: string;
|
|
18
23
|
feedback: string;
|
|
19
|
-
targetModel?: "general" | "
|
|
24
|
+
targetModel?: "general" | "gemini" | "gpt-4" | "claude" | undefined;
|
|
20
25
|
preserveStructure?: boolean | undefined;
|
|
21
26
|
}>;
|
|
22
27
|
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;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,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,CAiGD;AA6BD,eAAe,YAAY,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Refine Prompt Tool
|
|
3
3
|
* Iteratively improves existing prompts based on feedback
|
|
4
|
+
*
|
|
5
|
+
* Priority order:
|
|
6
|
+
* 1. PromptArchitect API (for billing tracking) - default
|
|
7
|
+
* 2. Direct Gemini API (if GEMINI_API_KEY set and USE_DIRECT_GEMINI=true)
|
|
8
|
+
* 3. Fallback basic refinement (no API available)
|
|
4
9
|
*/
|
|
5
10
|
import { z } from 'zod';
|
|
6
|
-
import { generateContent, isGeminiAvailable, logger } from '../utils/index.js';
|
|
11
|
+
import { generateContent, isGeminiAvailable, logger, apiRefinePrompt, isApiClientAvailable, } from '../utils/index.js';
|
|
12
|
+
// Check if user explicitly wants direct Gemini (bypasses billing)
|
|
13
|
+
const USE_DIRECT_GEMINI = process.env.USE_DIRECT_GEMINI === 'true';
|
|
7
14
|
export const refinePromptSchema = z.object({
|
|
8
15
|
prompt: z.string().min(1).describe('The current prompt to refine'),
|
|
9
16
|
feedback: z.string().min(1).describe('What should be improved or changed'),
|
|
@@ -21,7 +28,31 @@ export async function refinePrompt(input) {
|
|
|
21
28
|
preserveStructure,
|
|
22
29
|
targetModel
|
|
23
30
|
});
|
|
24
|
-
|
|
31
|
+
let refinedPrompt = '';
|
|
32
|
+
let changes = [];
|
|
33
|
+
// Priority 1: Use PromptArchitect API for billing tracking (default)
|
|
34
|
+
if (isApiClientAvailable() && !USE_DIRECT_GEMINI) {
|
|
35
|
+
try {
|
|
36
|
+
const response = await apiRefinePrompt({
|
|
37
|
+
prompt,
|
|
38
|
+
feedback,
|
|
39
|
+
preserveStructure,
|
|
40
|
+
targetModel,
|
|
41
|
+
});
|
|
42
|
+
refinedPrompt = response.refinedPrompt;
|
|
43
|
+
changes = response.changes || ['Prompt refined based on feedback'];
|
|
44
|
+
logger.info('Refined via PromptArchitect API (billing tracked)');
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
logger.warn('API request failed, trying fallback', {
|
|
48
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
49
|
+
});
|
|
50
|
+
// Fall through to other options
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Priority 2: Direct Gemini API (if explicitly enabled or API failed)
|
|
54
|
+
if (!refinedPrompt && isGeminiAvailable()) {
|
|
55
|
+
const refinementRequest = `You are a prompt engineering expert. Refine the following prompt based on the given feedback.
|
|
25
56
|
|
|
26
57
|
## Original Prompt
|
|
27
58
|
${prompt}
|
|
@@ -42,9 +73,6 @@ Then, list 2-4 specific changes you made in a "Changes:" section.
|
|
|
42
73
|
|
|
43
74
|
---
|
|
44
75
|
REFINED PROMPT:`;
|
|
45
|
-
let refinedPrompt;
|
|
46
|
-
let changes = [];
|
|
47
|
-
if (isGeminiAvailable()) {
|
|
48
76
|
const response = await generateContent(refinementRequest);
|
|
49
77
|
// Parse response to extract prompt and changes
|
|
50
78
|
const changesMatch = response.match(/Changes?:?\s*([\s\S]*?)$/i);
|
|
@@ -59,12 +87,13 @@ REFINED PROMPT:`;
|
|
|
59
87
|
refinedPrompt = response.trim();
|
|
60
88
|
changes = ['Prompt refined based on feedback'];
|
|
61
89
|
}
|
|
90
|
+
logger.info('Refined via direct Gemini API (billing NOT tracked)');
|
|
62
91
|
}
|
|
63
|
-
|
|
64
|
-
|
|
92
|
+
// Priority 3: Fallback basic refinement
|
|
93
|
+
if (!refinedPrompt) {
|
|
65
94
|
refinedPrompt = applyBasicRefinements(prompt, feedback);
|
|
66
|
-
changes = ['Applied basic refinements (
|
|
67
|
-
logger.warn('Using fallback refinement (
|
|
95
|
+
changes = ['Applied basic refinements (no API available)'];
|
|
96
|
+
logger.warn('Using fallback refinement (no API available)');
|
|
68
97
|
}
|
|
69
98
|
// Calculate metadata
|
|
70
99
|
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.1",
|
|
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",
|