openai-precise-coder 1.0.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/LICENSE +21 -0
- package/README.md +131 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +168 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +25 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +158 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +19 -0
- package/dist/types.js.map +1 -0
- package/package.json +52 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Erosolar AI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# GPT-5.2 Precision Coder
|
|
2
|
+
|
|
3
|
+
Advanced AI-powered coding assistant using OpenAI's latest models.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Code Generation**: Generate production-ready code from natural language descriptions
|
|
8
|
+
- **Code Explanation**: Get detailed explanations of any code
|
|
9
|
+
- **Refactoring**: Improve code structure with AI-guided refactoring
|
|
10
|
+
- **Debugging**: Find and fix bugs with intelligent error analysis
|
|
11
|
+
- **Code Review**: Get comprehensive code reviews and suggestions
|
|
12
|
+
- **Streaming**: Real-time streaming responses for immediate feedback
|
|
13
|
+
- **Conversation Context**: Maintains context across multiple interactions
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g openai-precise-coder
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
### CLI Usage
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
export OPENAI_API_KEY=your-api-key
|
|
27
|
+
precise-coder
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Programmatic Usage
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { createCoder } from 'openai-precise-coder';
|
|
34
|
+
|
|
35
|
+
const coder = createCoder({
|
|
36
|
+
apiKey: process.env.OPENAI_API_KEY!,
|
|
37
|
+
model: 'gpt-4o', // or 'gpt-5.2' when available
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Generate code
|
|
41
|
+
const result = await coder.generateCode({
|
|
42
|
+
prompt: 'Create a function that validates email addresses',
|
|
43
|
+
language: 'typescript',
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
console.log(result.code);
|
|
47
|
+
|
|
48
|
+
// Stream responses
|
|
49
|
+
await coder.streamCode(
|
|
50
|
+
{ prompt: 'Build a REST API endpoint for user authentication' },
|
|
51
|
+
{
|
|
52
|
+
onToken: (token) => process.stdout.write(token),
|
|
53
|
+
onComplete: (response) => console.log('\nDone!'),
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// Explain code
|
|
58
|
+
const explanation = await coder.explain(someCode, 'python');
|
|
59
|
+
|
|
60
|
+
// Review code
|
|
61
|
+
const review = await coder.review(someCode, 'javascript');
|
|
62
|
+
|
|
63
|
+
// Debug code
|
|
64
|
+
const fixed = await coder.debug(buggyCode, 'TypeError: undefined is not a function');
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## API Reference
|
|
68
|
+
|
|
69
|
+
### `createCoder(config)`
|
|
70
|
+
|
|
71
|
+
Creates a new GPT Coder instance.
|
|
72
|
+
|
|
73
|
+
**Config options:**
|
|
74
|
+
- `apiKey` (required): Your OpenAI API key
|
|
75
|
+
- `model`: Model to use (default: 'gpt-4o')
|
|
76
|
+
- `temperature`: Response randomness 0-2 (default: 0.7)
|
|
77
|
+
- `maxTokens`: Maximum response tokens (default: 4096)
|
|
78
|
+
- `systemPrompt`: Custom system prompt
|
|
79
|
+
|
|
80
|
+
### Methods
|
|
81
|
+
|
|
82
|
+
#### `generateCode(request)`
|
|
83
|
+
Generate code from a prompt. Returns `CodeResponse` with code, explanation, and metadata.
|
|
84
|
+
|
|
85
|
+
#### `streamCode(request, callbacks)`
|
|
86
|
+
Stream code generation with real-time token callbacks.
|
|
87
|
+
|
|
88
|
+
#### `chat(message)`
|
|
89
|
+
General chat/conversation with the model.
|
|
90
|
+
|
|
91
|
+
#### `explain(code, language?)`
|
|
92
|
+
Get a detailed explanation of code.
|
|
93
|
+
|
|
94
|
+
#### `refactor(code, instructions, language?)`
|
|
95
|
+
Refactor code based on instructions.
|
|
96
|
+
|
|
97
|
+
#### `debug(code, error, language?)`
|
|
98
|
+
Debug and fix code based on an error message.
|
|
99
|
+
|
|
100
|
+
#### `complete(partialCode, language?)`
|
|
101
|
+
Complete partial/unfinished code.
|
|
102
|
+
|
|
103
|
+
#### `review(code, language?)`
|
|
104
|
+
Get a comprehensive code review.
|
|
105
|
+
|
|
106
|
+
#### `clearContext()`
|
|
107
|
+
Clear conversation history.
|
|
108
|
+
|
|
109
|
+
#### `getTokensUsed()`
|
|
110
|
+
Get total tokens used in session.
|
|
111
|
+
|
|
112
|
+
## CLI Commands
|
|
113
|
+
|
|
114
|
+
| Command | Description |
|
|
115
|
+
|---------|-------------|
|
|
116
|
+
| `code <description>` | Generate code |
|
|
117
|
+
| `explain <code>` | Explain code |
|
|
118
|
+
| `review <code>` | Review code |
|
|
119
|
+
| `clear` | Clear context |
|
|
120
|
+
| `tokens` | Show token usage |
|
|
121
|
+
| `help` | Show commands |
|
|
122
|
+
| `exit` | Exit CLI |
|
|
123
|
+
|
|
124
|
+
## Environment Variables
|
|
125
|
+
|
|
126
|
+
- `OPENAI_API_KEY`: Your OpenAI API key (required)
|
|
127
|
+
- `GPT_MODEL`: Model to use (optional, default: gpt-4o)
|
|
128
|
+
|
|
129
|
+
## License
|
|
130
|
+
|
|
131
|
+
MIT
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* GPT-5.2 Precision Coder - CLI Interface
|
|
4
|
+
*/
|
|
5
|
+
import { createInterface } from 'readline';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
import { GPTCoder } from './client.js';
|
|
9
|
+
import { DEFAULT_MODEL } from './types.js';
|
|
10
|
+
const LOGO = `
|
|
11
|
+
${chalk.cyan('╔═══════════════════════════════════════════════════╗')}
|
|
12
|
+
${chalk.cyan('║')} ${chalk.bold.white('GPT-5.2 Precision Coder')} ${chalk.cyan('║')}
|
|
13
|
+
${chalk.cyan('║')} ${chalk.gray('Advanced AI-Powered Coding Assistant')} ${chalk.cyan('║')}
|
|
14
|
+
${chalk.cyan('╚═══════════════════════════════════════════════════╝')}
|
|
15
|
+
`;
|
|
16
|
+
const COMMANDS = {
|
|
17
|
+
help: 'Show available commands',
|
|
18
|
+
code: 'Generate code from description',
|
|
19
|
+
explain: 'Explain code',
|
|
20
|
+
refactor: 'Refactor code with instructions',
|
|
21
|
+
debug: 'Debug code with error message',
|
|
22
|
+
review: 'Review code for improvements',
|
|
23
|
+
clear: 'Clear conversation context',
|
|
24
|
+
tokens: 'Show tokens used',
|
|
25
|
+
exit: 'Exit the CLI',
|
|
26
|
+
};
|
|
27
|
+
async function main() {
|
|
28
|
+
console.log(LOGO);
|
|
29
|
+
const apiKey = process.env.OPENAI_API_KEY;
|
|
30
|
+
if (!apiKey) {
|
|
31
|
+
console.error(chalk.red('Error: OPENAI_API_KEY environment variable is required'));
|
|
32
|
+
console.log(chalk.gray('Set it with: export OPENAI_API_KEY=your-api-key'));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const model = process.env.GPT_MODEL || DEFAULT_MODEL;
|
|
36
|
+
console.log(chalk.gray(`Using model: ${model}`));
|
|
37
|
+
console.log(chalk.gray('Type "help" for available commands\n'));
|
|
38
|
+
const coder = new GPTCoder({ apiKey, model });
|
|
39
|
+
const rl = createInterface({
|
|
40
|
+
input: process.stdin,
|
|
41
|
+
output: process.stdout,
|
|
42
|
+
});
|
|
43
|
+
const prompt = () => {
|
|
44
|
+
rl.question(chalk.green('> '), async (input) => {
|
|
45
|
+
const trimmed = input.trim();
|
|
46
|
+
if (!trimmed) {
|
|
47
|
+
prompt();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const [command, ...args] = trimmed.split(' ');
|
|
51
|
+
const argument = args.join(' ');
|
|
52
|
+
try {
|
|
53
|
+
await handleCommand(coder, command.toLowerCase(), argument);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(chalk.red(`Error: ${error.message}`));
|
|
57
|
+
}
|
|
58
|
+
prompt();
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
rl.on('close', () => {
|
|
62
|
+
console.log(chalk.gray('\nGoodbye!'));
|
|
63
|
+
process.exit(0);
|
|
64
|
+
});
|
|
65
|
+
prompt();
|
|
66
|
+
}
|
|
67
|
+
async function handleCommand(coder, command, argument) {
|
|
68
|
+
switch (command) {
|
|
69
|
+
case 'help':
|
|
70
|
+
showHelp();
|
|
71
|
+
break;
|
|
72
|
+
case 'code':
|
|
73
|
+
if (!argument) {
|
|
74
|
+
console.log(chalk.yellow('Usage: code <description>'));
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
await streamResponse(coder, argument);
|
|
78
|
+
break;
|
|
79
|
+
case 'explain':
|
|
80
|
+
if (!argument) {
|
|
81
|
+
console.log(chalk.yellow('Usage: explain <code>'));
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
await streamExplain(coder, argument);
|
|
85
|
+
break;
|
|
86
|
+
case 'refactor':
|
|
87
|
+
console.log(chalk.yellow('Enter code to refactor, then instructions'));
|
|
88
|
+
// Simplified for CLI - in practice would use multi-line input
|
|
89
|
+
break;
|
|
90
|
+
case 'debug':
|
|
91
|
+
console.log(chalk.yellow('Enter code and error message'));
|
|
92
|
+
break;
|
|
93
|
+
case 'review':
|
|
94
|
+
if (!argument) {
|
|
95
|
+
console.log(chalk.yellow('Usage: review <code>'));
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
await streamReview(coder, argument);
|
|
99
|
+
break;
|
|
100
|
+
case 'clear':
|
|
101
|
+
coder.clearContext();
|
|
102
|
+
console.log(chalk.green('Context cleared'));
|
|
103
|
+
break;
|
|
104
|
+
case 'tokens':
|
|
105
|
+
console.log(chalk.cyan(`Tokens used: ${coder.getTokensUsed()}`));
|
|
106
|
+
break;
|
|
107
|
+
case 'exit':
|
|
108
|
+
case 'quit':
|
|
109
|
+
process.exit(0);
|
|
110
|
+
default:
|
|
111
|
+
// Treat as general chat/code request
|
|
112
|
+
await streamResponse(coder, `${command} ${argument}`.trim());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async function streamResponse(coder, prompt) {
|
|
116
|
+
const spinner = ora('Generating...').start();
|
|
117
|
+
let started = false;
|
|
118
|
+
await coder.streamCode({ prompt }, {
|
|
119
|
+
onToken: (token) => {
|
|
120
|
+
if (!started) {
|
|
121
|
+
spinner.stop();
|
|
122
|
+
started = true;
|
|
123
|
+
}
|
|
124
|
+
process.stdout.write(chalk.white(token));
|
|
125
|
+
},
|
|
126
|
+
onComplete: (response) => {
|
|
127
|
+
console.log('\n');
|
|
128
|
+
console.log(chalk.gray(`[${response.language} | ${response.tokensUsed} tokens]`));
|
|
129
|
+
},
|
|
130
|
+
onError: (error) => {
|
|
131
|
+
spinner.fail('Error');
|
|
132
|
+
console.error(chalk.red(error.message));
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async function streamExplain(coder, code) {
|
|
137
|
+
const spinner = ora('Analyzing...').start();
|
|
138
|
+
try {
|
|
139
|
+
const explanation = await coder.explain(code);
|
|
140
|
+
spinner.stop();
|
|
141
|
+
console.log(chalk.white(explanation));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
spinner.fail('Error');
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async function streamReview(coder, code) {
|
|
149
|
+
const spinner = ora('Reviewing...').start();
|
|
150
|
+
try {
|
|
151
|
+
const review = await coder.review(code);
|
|
152
|
+
spinner.stop();
|
|
153
|
+
console.log(chalk.white(review));
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
spinner.fail('Error');
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function showHelp() {
|
|
161
|
+
console.log(chalk.cyan('\nAvailable Commands:\n'));
|
|
162
|
+
for (const [cmd, desc] of Object.entries(COMMANDS)) {
|
|
163
|
+
console.log(` ${chalk.yellow(cmd.padEnd(12))} ${chalk.gray(desc)}`);
|
|
164
|
+
}
|
|
165
|
+
console.log();
|
|
166
|
+
}
|
|
167
|
+
main().catch(console.error);
|
|
168
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.2 Precision Coder - OpenAI Client
|
|
3
|
+
*/
|
|
4
|
+
import { GPTCoderConfig, CodeRequest, CodeResponse, StreamCallbacks, ConversationContext } from './types.js';
|
|
5
|
+
export declare class GPTCoder {
|
|
6
|
+
private client;
|
|
7
|
+
private config;
|
|
8
|
+
private context;
|
|
9
|
+
constructor(config: GPTCoderConfig);
|
|
10
|
+
generateCode(request: CodeRequest): Promise<CodeResponse>;
|
|
11
|
+
streamCode(request: CodeRequest, callbacks: StreamCallbacks): Promise<void>;
|
|
12
|
+
chat(message: string): Promise<string>;
|
|
13
|
+
explain(code: string, language?: string): Promise<string>;
|
|
14
|
+
refactor(code: string, instructions: string, language?: string): Promise<CodeResponse>;
|
|
15
|
+
debug(code: string, error: string, language?: string): Promise<CodeResponse>;
|
|
16
|
+
complete(partialCode: string, language?: string): Promise<CodeResponse>;
|
|
17
|
+
review(code: string, language?: string): Promise<string>;
|
|
18
|
+
clearContext(): void;
|
|
19
|
+
getContext(): ConversationContext;
|
|
20
|
+
getTokensUsed(): number;
|
|
21
|
+
private buildPrompt;
|
|
22
|
+
private parseResponse;
|
|
23
|
+
}
|
|
24
|
+
export declare function createCoder(config: GPTCoderConfig): GPTCoder;
|
|
25
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EAEZ,eAAe,EACf,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAsB;gBAEzB,MAAM,EAAE,cAAc;IAe5B,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBzD,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3E,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBtC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOtF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAO5E,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOvE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9D,YAAY,IAAI,IAAI;IAOpB,UAAU,IAAI,mBAAmB;IAIjC,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;CA4BtB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAE5D"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.2 Precision Coder - OpenAI Client
|
|
3
|
+
*/
|
|
4
|
+
import OpenAI from 'openai';
|
|
5
|
+
import { DEFAULT_MODEL, DEFAULT_SYSTEM_PROMPT, } from './types.js';
|
|
6
|
+
export class GPTCoder {
|
|
7
|
+
client;
|
|
8
|
+
config;
|
|
9
|
+
context;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.client = new OpenAI({ apiKey: config.apiKey });
|
|
12
|
+
this.config = {
|
|
13
|
+
apiKey: config.apiKey,
|
|
14
|
+
model: config.model || DEFAULT_MODEL,
|
|
15
|
+
temperature: config.temperature ?? 0.7,
|
|
16
|
+
maxTokens: config.maxTokens || 4096,
|
|
17
|
+
systemPrompt: config.systemPrompt || DEFAULT_SYSTEM_PROMPT,
|
|
18
|
+
};
|
|
19
|
+
this.context = {
|
|
20
|
+
messages: [{ role: 'system', content: this.config.systemPrompt }],
|
|
21
|
+
totalTokens: 0,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async generateCode(request) {
|
|
25
|
+
const userMessage = this.buildPrompt(request);
|
|
26
|
+
this.context.messages.push({ role: 'user', content: userMessage });
|
|
27
|
+
const response = await this.client.chat.completions.create({
|
|
28
|
+
model: this.config.model,
|
|
29
|
+
messages: this.context.messages,
|
|
30
|
+
temperature: this.config.temperature,
|
|
31
|
+
max_tokens: request.maxTokens || this.config.maxTokens,
|
|
32
|
+
});
|
|
33
|
+
const assistantMessage = response.choices[0]?.message?.content || '';
|
|
34
|
+
this.context.messages.push({ role: 'assistant', content: assistantMessage });
|
|
35
|
+
this.context.totalTokens += response.usage?.total_tokens || 0;
|
|
36
|
+
return this.parseResponse(assistantMessage, request.language, response);
|
|
37
|
+
}
|
|
38
|
+
async streamCode(request, callbacks) {
|
|
39
|
+
const userMessage = this.buildPrompt(request);
|
|
40
|
+
this.context.messages.push({ role: 'user', content: userMessage });
|
|
41
|
+
try {
|
|
42
|
+
const stream = await this.client.chat.completions.create({
|
|
43
|
+
model: this.config.model,
|
|
44
|
+
messages: this.context.messages,
|
|
45
|
+
temperature: this.config.temperature,
|
|
46
|
+
max_tokens: request.maxTokens || this.config.maxTokens,
|
|
47
|
+
stream: true,
|
|
48
|
+
});
|
|
49
|
+
let fullResponse = '';
|
|
50
|
+
for await (const chunk of stream) {
|
|
51
|
+
const token = chunk.choices[0]?.delta?.content || '';
|
|
52
|
+
if (token) {
|
|
53
|
+
fullResponse += token;
|
|
54
|
+
callbacks.onToken?.(token);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
this.context.messages.push({ role: 'assistant', content: fullResponse });
|
|
58
|
+
const codeResponse = this.parseResponse(fullResponse, request.language);
|
|
59
|
+
callbacks.onComplete?.(codeResponse);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
callbacks.onError?.(error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async chat(message) {
|
|
66
|
+
this.context.messages.push({ role: 'user', content: message });
|
|
67
|
+
const response = await this.client.chat.completions.create({
|
|
68
|
+
model: this.config.model,
|
|
69
|
+
messages: this.context.messages,
|
|
70
|
+
temperature: this.config.temperature,
|
|
71
|
+
max_tokens: this.config.maxTokens,
|
|
72
|
+
});
|
|
73
|
+
const assistantMessage = response.choices[0]?.message?.content || '';
|
|
74
|
+
this.context.messages.push({ role: 'assistant', content: assistantMessage });
|
|
75
|
+
this.context.totalTokens += response.usage?.total_tokens || 0;
|
|
76
|
+
return assistantMessage;
|
|
77
|
+
}
|
|
78
|
+
async explain(code, language) {
|
|
79
|
+
const prompt = `Explain the following ${language || ''} code in detail:\n\n\`\`\`${language || ''}\n${code}\n\`\`\``;
|
|
80
|
+
return this.chat(prompt);
|
|
81
|
+
}
|
|
82
|
+
async refactor(code, instructions, language) {
|
|
83
|
+
return this.generateCode({
|
|
84
|
+
prompt: `Refactor the following code according to these instructions: ${instructions}\n\n\`\`\`${language || ''}\n${code}\n\`\`\``,
|
|
85
|
+
language,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async debug(code, error, language) {
|
|
89
|
+
return this.generateCode({
|
|
90
|
+
prompt: `Debug and fix the following code that produces this error: ${error}\n\n\`\`\`${language || ''}\n${code}\n\`\`\``,
|
|
91
|
+
language,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
async complete(partialCode, language) {
|
|
95
|
+
return this.generateCode({
|
|
96
|
+
prompt: `Complete the following partial code:\n\n\`\`\`${language || ''}\n${partialCode}\n\`\`\``,
|
|
97
|
+
language,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
async review(code, language) {
|
|
101
|
+
const prompt = `Review the following ${language || ''} code. Provide feedback on:
|
|
102
|
+
- Code quality and best practices
|
|
103
|
+
- Potential bugs or issues
|
|
104
|
+
- Performance considerations
|
|
105
|
+
- Suggestions for improvement
|
|
106
|
+
|
|
107
|
+
\`\`\`${language || ''}\n${code}\n\`\`\``;
|
|
108
|
+
return this.chat(prompt);
|
|
109
|
+
}
|
|
110
|
+
clearContext() {
|
|
111
|
+
this.context = {
|
|
112
|
+
messages: [{ role: 'system', content: this.config.systemPrompt }],
|
|
113
|
+
totalTokens: 0,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
getContext() {
|
|
117
|
+
return { ...this.context };
|
|
118
|
+
}
|
|
119
|
+
getTokensUsed() {
|
|
120
|
+
return this.context.totalTokens;
|
|
121
|
+
}
|
|
122
|
+
buildPrompt(request) {
|
|
123
|
+
let prompt = request.prompt;
|
|
124
|
+
if (request.language) {
|
|
125
|
+
prompt = `Write ${request.language} code: ${prompt}`;
|
|
126
|
+
}
|
|
127
|
+
if (request.context) {
|
|
128
|
+
prompt = `Context: ${request.context}\n\n${prompt}`;
|
|
129
|
+
}
|
|
130
|
+
return prompt;
|
|
131
|
+
}
|
|
132
|
+
parseResponse(content, language, response) {
|
|
133
|
+
const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g;
|
|
134
|
+
const matches = [...content.matchAll(codeBlockRegex)];
|
|
135
|
+
let code = '';
|
|
136
|
+
let detectedLanguage = language || 'text';
|
|
137
|
+
let explanation = content;
|
|
138
|
+
if (matches.length > 0) {
|
|
139
|
+
code = matches.map((m) => m[2].trim()).join('\n\n');
|
|
140
|
+
detectedLanguage = matches[0][1] || language || 'text';
|
|
141
|
+
explanation = content.replace(codeBlockRegex, '').trim();
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
code = content;
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
code,
|
|
148
|
+
explanation: explanation || undefined,
|
|
149
|
+
language: detectedLanguage,
|
|
150
|
+
tokensUsed: response?.usage?.total_tokens || 0,
|
|
151
|
+
model: this.config.model,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
export function createCoder(config) {
|
|
156
|
+
return new GPTCoder(config);
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.2 Precision Coder
|
|
3
|
+
* Advanced AI-Powered Coding Assistant using OpenAI's API
|
|
4
|
+
*/
|
|
5
|
+
export { GPTCoder, createCoder } from './client.js';
|
|
6
|
+
export { GPTCoderConfig, CodeRequest, CodeResponse, ChatMessage, StreamCallbacks, ConversationContext, DEFAULT_MODEL, GPT5_MODEL, DEFAULT_SYSTEM_PROMPT, } from './types.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.2 Precision Coder
|
|
3
|
+
* Advanced AI-Powered Coding Assistant using OpenAI's API
|
|
4
|
+
*/
|
|
5
|
+
export { GPTCoder, createCoder } from './client.js';
|
|
6
|
+
export { DEFAULT_MODEL, GPT5_MODEL, DEFAULT_SYSTEM_PROMPT, } from './types.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAOL,aAAa,EACb,UAAU,EACV,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.2 Precision Coder - Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
export interface GPTCoderConfig {
|
|
5
|
+
apiKey: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
temperature?: number;
|
|
8
|
+
maxTokens?: number;
|
|
9
|
+
systemPrompt?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CodeRequest {
|
|
12
|
+
prompt: string;
|
|
13
|
+
language?: string;
|
|
14
|
+
context?: string;
|
|
15
|
+
maxTokens?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface CodeResponse {
|
|
18
|
+
code: string;
|
|
19
|
+
explanation?: string;
|
|
20
|
+
language: string;
|
|
21
|
+
tokensUsed: number;
|
|
22
|
+
model: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ChatMessage {
|
|
25
|
+
role: 'system' | 'user' | 'assistant';
|
|
26
|
+
content: string;
|
|
27
|
+
}
|
|
28
|
+
export interface StreamCallbacks {
|
|
29
|
+
onToken?: (token: string) => void;
|
|
30
|
+
onComplete?: (response: CodeResponse) => void;
|
|
31
|
+
onError?: (error: Error) => void;
|
|
32
|
+
}
|
|
33
|
+
export interface ConversationContext {
|
|
34
|
+
messages: ChatMessage[];
|
|
35
|
+
totalTokens: number;
|
|
36
|
+
}
|
|
37
|
+
export declare const DEFAULT_MODEL = "gpt-4o";
|
|
38
|
+
export declare const GPT5_MODEL = "gpt-5.2";
|
|
39
|
+
export declare const DEFAULT_SYSTEM_PROMPT = "You are GPT-5.2 Precision Coder, an expert AI programming assistant.\nYour role is to:\n- Write clean, efficient, production-ready code\n- Explain your code clearly and concisely\n- Follow best practices and design patterns\n- Handle edge cases and errors appropriately\n- Provide complete, working solutions\n\nWhen writing code:\n- Use proper formatting and indentation\n- Include helpful comments where needed\n- Consider performance and maintainability\n- Follow language-specific conventions";
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,eAAO,MAAM,UAAU,YAAY,CAAC;AAEpC,eAAO,MAAM,qBAAqB,qfAYK,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPT-5.2 Precision Coder - Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_MODEL = 'gpt-4o';
|
|
5
|
+
export const GPT5_MODEL = 'gpt-5.2';
|
|
6
|
+
export const DEFAULT_SYSTEM_PROMPT = `You are GPT-5.2 Precision Coder, an expert AI programming assistant.
|
|
7
|
+
Your role is to:
|
|
8
|
+
- Write clean, efficient, production-ready code
|
|
9
|
+
- Explain your code clearly and concisely
|
|
10
|
+
- Follow best practices and design patterns
|
|
11
|
+
- Handle edge cases and errors appropriately
|
|
12
|
+
- Provide complete, working solutions
|
|
13
|
+
|
|
14
|
+
When writing code:
|
|
15
|
+
- Use proper formatting and indentation
|
|
16
|
+
- Include helpful comments where needed
|
|
17
|
+
- Consider performance and maintainability
|
|
18
|
+
- Follow language-specific conventions`;
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyCH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AAEpC,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;uCAYE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "openai-precise-coder",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "GPT-5.2 Precision Coder - Advanced AI-powered coding assistant using OpenAI's latest models",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./dist/index.js",
|
|
9
|
+
"./client": "./dist/client.js"
|
|
10
|
+
},
|
|
11
|
+
"bin": {
|
|
12
|
+
"precise-coder": "dist/cli.js"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"build:watch": "tsc --watch",
|
|
21
|
+
"clean": "rm -rf dist",
|
|
22
|
+
"start": "node dist/cli.js",
|
|
23
|
+
"dev": "npx tsx src/cli.ts",
|
|
24
|
+
"test": "jest",
|
|
25
|
+
"lint": "eslint src/**/*.ts",
|
|
26
|
+
"prepublishOnly": "npm run build"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"openai",
|
|
30
|
+
"gpt-5",
|
|
31
|
+
"gpt-5.2",
|
|
32
|
+
"ai",
|
|
33
|
+
"coding-assistant",
|
|
34
|
+
"code-generation",
|
|
35
|
+
"api",
|
|
36
|
+
"developer-tools"
|
|
37
|
+
],
|
|
38
|
+
"author": "",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=20.0.0"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"openai": "^4.77.0",
|
|
45
|
+
"chalk": "^5.6.2",
|
|
46
|
+
"ora": "^8.1.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^22.10.2",
|
|
50
|
+
"typescript": "^5.7.2"
|
|
51
|
+
}
|
|
52
|
+
}
|