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 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,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * GPT-5.2 Precision Coder - CLI Interface
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=cli.d.ts.map
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -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"}
@@ -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
+ }