@gracefultools/astrid-sdk 0.6.1 → 0.7.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/dist/bin/cli.js +170 -47
- package/dist/bin/cli.js.map +1 -1
- package/dist/executors/terminal-base.d.ts +105 -0
- package/dist/executors/terminal-base.d.ts.map +1 -0
- package/dist/executors/terminal-base.js +113 -0
- package/dist/executors/terminal-base.js.map +1 -0
- package/dist/executors/terminal-claude.d.ts +16 -28
- package/dist/executors/terminal-claude.d.ts.map +1 -1
- package/dist/executors/terminal-claude.js +122 -75
- package/dist/executors/terminal-claude.js.map +1 -1
- package/dist/executors/terminal-executors.test.d.ts +8 -0
- package/dist/executors/terminal-executors.test.d.ts.map +1 -0
- package/dist/executors/terminal-executors.test.js +279 -0
- package/dist/executors/terminal-executors.test.js.map +1 -0
- package/dist/executors/terminal-gemini.d.ts +48 -0
- package/dist/executors/terminal-gemini.d.ts.map +1 -0
- package/dist/executors/terminal-gemini.js +509 -0
- package/dist/executors/terminal-gemini.js.map +1 -0
- package/dist/executors/terminal-openai.d.ts +48 -0
- package/dist/executors/terminal-openai.d.ts.map +1 -0
- package/dist/executors/terminal-openai.js +531 -0
- package/dist/executors/terminal-openai.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Terminal OpenAI Executor
|
|
4
|
+
*
|
|
5
|
+
* Executes tasks using OpenAI API with local tool execution.
|
|
6
|
+
* This enables running tasks assigned to openai@astrid.cc in terminal mode.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.terminalOpenAIExecutor = exports.TerminalOpenAIExecutor = void 0;
|
|
43
|
+
const fs = __importStar(require("fs/promises"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const child_process_1 = require("child_process");
|
|
46
|
+
const glob_1 = require("glob");
|
|
47
|
+
const terminal_base_js_1 = require("./terminal-base.js");
|
|
48
|
+
const agent_config_js_1 = require("../utils/agent-config.js");
|
|
49
|
+
// ============================================================================
|
|
50
|
+
// TOOL DEFINITIONS (same as openai.ts)
|
|
51
|
+
// ============================================================================
|
|
52
|
+
const TOOLS = [
|
|
53
|
+
{
|
|
54
|
+
type: 'function',
|
|
55
|
+
function: {
|
|
56
|
+
name: 'read_file',
|
|
57
|
+
description: 'Read the contents of a file',
|
|
58
|
+
parameters: {
|
|
59
|
+
type: 'object',
|
|
60
|
+
properties: {
|
|
61
|
+
file_path: { type: 'string', description: 'Path to the file' }
|
|
62
|
+
},
|
|
63
|
+
required: ['file_path']
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'function',
|
|
69
|
+
function: {
|
|
70
|
+
name: 'write_file',
|
|
71
|
+
description: 'Write content to a file',
|
|
72
|
+
parameters: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
properties: {
|
|
75
|
+
file_path: { type: 'string', description: 'Path to the file' },
|
|
76
|
+
content: { type: 'string', description: 'Content to write' }
|
|
77
|
+
},
|
|
78
|
+
required: ['file_path', 'content']
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
type: 'function',
|
|
84
|
+
function: {
|
|
85
|
+
name: 'edit_file',
|
|
86
|
+
description: 'Edit a file by replacing old_string with new_string',
|
|
87
|
+
parameters: {
|
|
88
|
+
type: 'object',
|
|
89
|
+
properties: {
|
|
90
|
+
file_path: { type: 'string', description: 'Path to the file' },
|
|
91
|
+
old_string: { type: 'string', description: 'String to find' },
|
|
92
|
+
new_string: { type: 'string', description: 'Replacement string' }
|
|
93
|
+
},
|
|
94
|
+
required: ['file_path', 'old_string', 'new_string']
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'function',
|
|
100
|
+
function: {
|
|
101
|
+
name: 'run_bash',
|
|
102
|
+
description: 'Run a bash command',
|
|
103
|
+
parameters: {
|
|
104
|
+
type: 'object',
|
|
105
|
+
properties: {
|
|
106
|
+
command: { type: 'string', description: 'The bash command' }
|
|
107
|
+
},
|
|
108
|
+
required: ['command']
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'function',
|
|
114
|
+
function: {
|
|
115
|
+
name: 'glob_files',
|
|
116
|
+
description: 'Find files matching a glob pattern',
|
|
117
|
+
parameters: {
|
|
118
|
+
type: 'object',
|
|
119
|
+
properties: {
|
|
120
|
+
pattern: { type: 'string', description: 'Glob pattern' }
|
|
121
|
+
},
|
|
122
|
+
required: ['pattern']
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'function',
|
|
128
|
+
function: {
|
|
129
|
+
name: 'grep_search',
|
|
130
|
+
description: 'Search for a pattern in files',
|
|
131
|
+
parameters: {
|
|
132
|
+
type: 'object',
|
|
133
|
+
properties: {
|
|
134
|
+
pattern: { type: 'string', description: 'Search pattern' },
|
|
135
|
+
file_pattern: { type: 'string', description: 'Optional glob pattern' }
|
|
136
|
+
},
|
|
137
|
+
required: ['pattern']
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'function',
|
|
143
|
+
function: {
|
|
144
|
+
name: 'task_complete',
|
|
145
|
+
description: 'Signal that the task is complete',
|
|
146
|
+
parameters: {
|
|
147
|
+
type: 'object',
|
|
148
|
+
properties: {
|
|
149
|
+
summary: { type: 'string', description: 'Summary of what was done' },
|
|
150
|
+
commit_message: { type: 'string', description: 'Git commit message' },
|
|
151
|
+
pr_title: { type: 'string', description: 'PR title' },
|
|
152
|
+
pr_description: { type: 'string', description: 'PR description' }
|
|
153
|
+
},
|
|
154
|
+
required: ['summary']
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
];
|
|
159
|
+
// Dangerous commands that should be blocked
|
|
160
|
+
const DANGEROUS_COMMANDS = ['rm -rf /', 'sudo', '> /dev/', 'mkfs', 'dd if='];
|
|
161
|
+
async function executeTool(name, args, repoPath) {
|
|
162
|
+
try {
|
|
163
|
+
switch (name) {
|
|
164
|
+
case 'read_file': {
|
|
165
|
+
const filePath = path.join(repoPath, args.file_path);
|
|
166
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
167
|
+
return { success: true, result: content };
|
|
168
|
+
}
|
|
169
|
+
case 'write_file': {
|
|
170
|
+
const filePath = path.join(repoPath, args.file_path);
|
|
171
|
+
const content = args.content;
|
|
172
|
+
let action = 'create';
|
|
173
|
+
try {
|
|
174
|
+
await fs.access(filePath);
|
|
175
|
+
action = 'modify';
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
179
|
+
}
|
|
180
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
181
|
+
return {
|
|
182
|
+
success: true,
|
|
183
|
+
result: `File ${action === 'create' ? 'created' : 'updated'}: ${args.file_path}`,
|
|
184
|
+
fileChange: { path: args.file_path, content, action }
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
case 'edit_file': {
|
|
188
|
+
const filePath = path.join(repoPath, args.file_path);
|
|
189
|
+
const oldContent = await fs.readFile(filePath, 'utf-8');
|
|
190
|
+
const oldString = args.old_string;
|
|
191
|
+
const newString = args.new_string;
|
|
192
|
+
if (!oldContent.includes(oldString)) {
|
|
193
|
+
return { success: false, result: `Error: Could not find string in file` };
|
|
194
|
+
}
|
|
195
|
+
const newContent = oldContent.replace(oldString, newString);
|
|
196
|
+
await fs.writeFile(filePath, newContent, 'utf-8');
|
|
197
|
+
return {
|
|
198
|
+
success: true,
|
|
199
|
+
result: `File edited: ${args.file_path}`,
|
|
200
|
+
fileChange: { path: args.file_path, content: newContent, action: 'modify' }
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
case 'run_bash': {
|
|
204
|
+
const command = args.command;
|
|
205
|
+
if (DANGEROUS_COMMANDS.some(d => command.includes(d))) {
|
|
206
|
+
return { success: false, result: 'Error: Command blocked by safety policy' };
|
|
207
|
+
}
|
|
208
|
+
try {
|
|
209
|
+
const output = (0, child_process_1.execSync)(command, {
|
|
210
|
+
cwd: repoPath,
|
|
211
|
+
encoding: 'utf-8',
|
|
212
|
+
timeout: 120000, // 2 minute timeout
|
|
213
|
+
maxBuffer: 1024 * 1024
|
|
214
|
+
});
|
|
215
|
+
return { success: true, result: output || '(no output)' };
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
const err = error;
|
|
219
|
+
return { success: false, result: `Error: ${err.stderr || err.message}` };
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
case 'glob_files': {
|
|
223
|
+
const pattern = args.pattern;
|
|
224
|
+
const files = await (0, glob_1.glob)(pattern, { cwd: repoPath, nodir: true });
|
|
225
|
+
return { success: true, result: files.slice(0, 100).join('\n') || '(no matches)' };
|
|
226
|
+
}
|
|
227
|
+
case 'grep_search': {
|
|
228
|
+
const pattern = args.pattern;
|
|
229
|
+
const filePattern = args.file_pattern || '.';
|
|
230
|
+
try {
|
|
231
|
+
const output = (0, child_process_1.execSync)(`grep -rn "${pattern.replace(/"/g, '\\"')}" ${filePattern} | head -50`, { cwd: repoPath, encoding: 'utf-8', timeout: 30000 });
|
|
232
|
+
return { success: true, result: output || '(no matches)' };
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return { success: true, result: '(no matches)' };
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
case 'task_complete':
|
|
239
|
+
return { success: true, result: 'Task marked complete' };
|
|
240
|
+
default:
|
|
241
|
+
return { success: false, result: `Unknown tool: ${name}` };
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
return { success: false, result: `Error: ${error instanceof Error ? error.message : String(error)}` };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
async function callOpenAI(messages, apiKey, model) {
|
|
249
|
+
const controller = new AbortController();
|
|
250
|
+
const timeoutId = setTimeout(() => controller.abort(), 120000); // 2 minute timeout
|
|
251
|
+
try {
|
|
252
|
+
const response = await fetch('https://api.openai.com/v1/chat/completions', {
|
|
253
|
+
method: 'POST',
|
|
254
|
+
headers: {
|
|
255
|
+
'Content-Type': 'application/json',
|
|
256
|
+
'Authorization': `Bearer ${apiKey}`
|
|
257
|
+
},
|
|
258
|
+
signal: controller.signal,
|
|
259
|
+
body: JSON.stringify({
|
|
260
|
+
model,
|
|
261
|
+
messages,
|
|
262
|
+
tools: TOOLS,
|
|
263
|
+
tool_choice: 'auto',
|
|
264
|
+
max_tokens: 8192,
|
|
265
|
+
temperature: 0.2
|
|
266
|
+
})
|
|
267
|
+
});
|
|
268
|
+
clearTimeout(timeoutId);
|
|
269
|
+
if (!response.ok) {
|
|
270
|
+
const errorText = await response.text();
|
|
271
|
+
throw new Error(`OpenAI API error (${response.status}): ${errorText.substring(0, 200)}`);
|
|
272
|
+
}
|
|
273
|
+
return response.json();
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
clearTimeout(timeoutId);
|
|
277
|
+
throw error;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
// ============================================================================
|
|
281
|
+
// TERMINAL OPENAI EXECUTOR
|
|
282
|
+
// ============================================================================
|
|
283
|
+
class TerminalOpenAIExecutor {
|
|
284
|
+
apiKey;
|
|
285
|
+
model;
|
|
286
|
+
maxTurns;
|
|
287
|
+
timeout;
|
|
288
|
+
constructor(options = {}) {
|
|
289
|
+
this.apiKey = options.apiKey || process.env.OPENAI_API_KEY || '';
|
|
290
|
+
this.model = options.model || process.env.OPENAI_MODEL || agent_config_js_1.DEFAULT_MODELS.openai;
|
|
291
|
+
this.maxTurns = options.maxTurns || parseInt(process.env.OPENAI_MAX_TURNS || '50', 10);
|
|
292
|
+
this.timeout = options.timeout || parseInt(process.env.OPENAI_TIMEOUT || '900000', 10); // 15 min default
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Check if OpenAI API key is configured
|
|
296
|
+
*/
|
|
297
|
+
async checkAvailable() {
|
|
298
|
+
return !!this.apiKey;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Read project context files
|
|
302
|
+
*/
|
|
303
|
+
async readProjectContext(projectPath) {
|
|
304
|
+
const MAX_CONTEXT_CHARS = 8000;
|
|
305
|
+
const contextFiles = ['ASTRID.md', 'CODEX.md', 'README.md'];
|
|
306
|
+
let context = '';
|
|
307
|
+
for (const file of contextFiles) {
|
|
308
|
+
try {
|
|
309
|
+
const filePath = path.join(projectPath, file);
|
|
310
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
311
|
+
if (content.length > MAX_CONTEXT_CHARS) {
|
|
312
|
+
content = content.slice(0, MAX_CONTEXT_CHARS) + '\n\n[... truncated ...]';
|
|
313
|
+
}
|
|
314
|
+
context += `\n\n## Project Instructions (from ${file})\n\n${content}`;
|
|
315
|
+
break; // Only use the first found file
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// File doesn't exist, try next
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return context;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Build system prompt for the task
|
|
325
|
+
*/
|
|
326
|
+
async buildSystemPrompt(session) {
|
|
327
|
+
const projectContext = await this.readProjectContext(session.projectPath || process.cwd());
|
|
328
|
+
return `You are an expert software engineer working on a coding task.
|
|
329
|
+
You have access to tools for reading, writing, and editing files, running bash commands, and searching the codebase.
|
|
330
|
+
|
|
331
|
+
${projectContext}
|
|
332
|
+
|
|
333
|
+
## Your Task
|
|
334
|
+
${session.title}
|
|
335
|
+
${session.description ? `\nDetails: ${session.description}` : ''}
|
|
336
|
+
|
|
337
|
+
## Workflow
|
|
338
|
+
|
|
339
|
+
1. **Understand** the task by reading relevant files
|
|
340
|
+
2. **Plan** your approach - identify which files need changes
|
|
341
|
+
3. **Implement** the changes using the available tools
|
|
342
|
+
4. **Test** your changes by running build/tests: \`npm run predeploy\` or similar
|
|
343
|
+
5. **Create PR** using \`gh pr create\` command
|
|
344
|
+
6. **Complete** the task by calling task_complete with a summary
|
|
345
|
+
|
|
346
|
+
## Rules
|
|
347
|
+
|
|
348
|
+
- Make ONLY the requested changes - don't over-engineer
|
|
349
|
+
- Follow existing code patterns and style
|
|
350
|
+
- Test your changes before completing
|
|
351
|
+
- Write clear commit messages
|
|
352
|
+
- Always create a PR unless explicitly told not to
|
|
353
|
+
|
|
354
|
+
Begin by reading the relevant files to understand the current state.`;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Start a new session to process a task
|
|
358
|
+
*/
|
|
359
|
+
async startSession(session, prompt, context, onProgress) {
|
|
360
|
+
const projectPath = session.projectPath || process.cwd();
|
|
361
|
+
const systemPrompt = await this.buildSystemPrompt(session);
|
|
362
|
+
const userPrompt = prompt || (0, terminal_base_js_1.buildDefaultPrompt)(session, context);
|
|
363
|
+
const commentHistory = (0, terminal_base_js_1.formatCommentHistory)(context?.comments);
|
|
364
|
+
console.log(`🚀 Starting OpenAI terminal session for task: ${session.title}`);
|
|
365
|
+
console.log(`📁 Working directory: ${projectPath}`);
|
|
366
|
+
console.log(`🤖 Model: ${this.model}`);
|
|
367
|
+
const messages = [
|
|
368
|
+
{ role: 'system', content: systemPrompt },
|
|
369
|
+
{ role: 'user', content: commentHistory ? `${commentHistory}\n\n---\n\n${userPrompt}` : userPrompt }
|
|
370
|
+
];
|
|
371
|
+
const modifiedFiles = [];
|
|
372
|
+
let stdout = '';
|
|
373
|
+
let prUrl;
|
|
374
|
+
let completeSummary;
|
|
375
|
+
const startTime = Date.now();
|
|
376
|
+
try {
|
|
377
|
+
for (let turn = 0; turn < this.maxTurns; turn++) {
|
|
378
|
+
// Check timeout
|
|
379
|
+
if (Date.now() - startTime > this.timeout) {
|
|
380
|
+
stdout += '\n\n[Execution timed out]';
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
onProgress?.(`Turn ${turn + 1}/${this.maxTurns}...`);
|
|
384
|
+
const response = await callOpenAI(messages, this.apiKey, this.model);
|
|
385
|
+
const choice = response.choices[0];
|
|
386
|
+
const assistantMessage = choice.message;
|
|
387
|
+
// Add assistant message to history
|
|
388
|
+
messages.push({
|
|
389
|
+
role: 'assistant',
|
|
390
|
+
content: assistantMessage.content,
|
|
391
|
+
tool_calls: assistantMessage.tool_calls
|
|
392
|
+
});
|
|
393
|
+
// Log assistant response
|
|
394
|
+
if (assistantMessage.content) {
|
|
395
|
+
stdout += `\n\n${assistantMessage.content}`;
|
|
396
|
+
console.log(`📝 Assistant: ${assistantMessage.content.slice(0, 200)}...`);
|
|
397
|
+
}
|
|
398
|
+
// Handle tool calls
|
|
399
|
+
if (assistantMessage.tool_calls && assistantMessage.tool_calls.length > 0) {
|
|
400
|
+
for (const toolCall of assistantMessage.tool_calls) {
|
|
401
|
+
const toolName = toolCall.function.name;
|
|
402
|
+
const args = JSON.parse(toolCall.function.arguments);
|
|
403
|
+
onProgress?.(`Using tool: ${toolName}`);
|
|
404
|
+
console.log(`🔧 Tool: ${toolName}`);
|
|
405
|
+
// Check for task_complete
|
|
406
|
+
if (toolName === 'task_complete') {
|
|
407
|
+
completeSummary = args.summary;
|
|
408
|
+
stdout += `\n\n[Task Complete]\nSummary: ${completeSummary}`;
|
|
409
|
+
// Capture git changes
|
|
410
|
+
const changes = await (0, terminal_base_js_1.captureGitChanges)(projectPath);
|
|
411
|
+
prUrl = (0, terminal_base_js_1.extractPrUrl)(stdout);
|
|
412
|
+
return {
|
|
413
|
+
exitCode: 0,
|
|
414
|
+
stdout,
|
|
415
|
+
stderr: '',
|
|
416
|
+
modifiedFiles: changes.files.length > 0 ? changes.files : modifiedFiles,
|
|
417
|
+
gitDiff: changes.diff,
|
|
418
|
+
prUrl,
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
// Execute tool
|
|
422
|
+
const result = await executeTool(toolName, args, projectPath);
|
|
423
|
+
stdout += `\n\n[${toolName}]: ${result.result.slice(0, 500)}${result.result.length > 500 ? '...' : ''}`;
|
|
424
|
+
// Track modified files
|
|
425
|
+
if (result.fileChange) {
|
|
426
|
+
if (!modifiedFiles.includes(result.fileChange.path)) {
|
|
427
|
+
modifiedFiles.push(result.fileChange.path);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
// Add tool result to messages
|
|
431
|
+
messages.push({
|
|
432
|
+
role: 'tool',
|
|
433
|
+
content: result.result.slice(0, 10000), // Truncate large outputs
|
|
434
|
+
tool_call_id: toolCall.id
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
// Check for stop condition
|
|
440
|
+
if (choice.finish_reason === 'stop') {
|
|
441
|
+
// Check if we should prompt for completion
|
|
442
|
+
if (!completeSummary) {
|
|
443
|
+
messages.push({
|
|
444
|
+
role: 'user',
|
|
445
|
+
content: 'Please call task_complete to finalize your work, or continue if there is more to do.'
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
break;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
// Capture final git changes
|
|
454
|
+
const changes = await (0, terminal_base_js_1.captureGitChanges)(projectPath);
|
|
455
|
+
prUrl = (0, terminal_base_js_1.extractPrUrl)(stdout);
|
|
456
|
+
return {
|
|
457
|
+
exitCode: 0,
|
|
458
|
+
stdout,
|
|
459
|
+
stderr: '',
|
|
460
|
+
modifiedFiles: changes.files.length > 0 ? changes.files : modifiedFiles,
|
|
461
|
+
gitDiff: changes.diff,
|
|
462
|
+
prUrl,
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
catch (error) {
|
|
466
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
467
|
+
console.error(`❌ OpenAI terminal execution error:`, errorMsg);
|
|
468
|
+
return {
|
|
469
|
+
exitCode: 1,
|
|
470
|
+
stdout,
|
|
471
|
+
stderr: errorMsg,
|
|
472
|
+
modifiedFiles,
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Resume a session with new input
|
|
478
|
+
* Note: OpenAI doesn't have native session management, so we rebuild context
|
|
479
|
+
*/
|
|
480
|
+
async resumeSession(session, input, context, onProgress) {
|
|
481
|
+
console.log(`🔄 Resuming OpenAI session (rebuilding context)`);
|
|
482
|
+
// For OpenAI, resuming means starting a new conversation with the follow-up
|
|
483
|
+
const fullPrompt = (0, terminal_base_js_1.formatCommentHistory)(context?.comments) +
|
|
484
|
+
`\n\n---\n\n## Follow-up Request\n\n${input}`;
|
|
485
|
+
return this.startSession(session, fullPrompt, context, onProgress);
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Parse output to extract key information
|
|
489
|
+
*/
|
|
490
|
+
parseOutput(output) {
|
|
491
|
+
const result = {};
|
|
492
|
+
const lines = output.split('\n');
|
|
493
|
+
const files = [];
|
|
494
|
+
for (const line of lines) {
|
|
495
|
+
// Extract modified/created files
|
|
496
|
+
const fileMatch = line.match(/(?:modified|created|edited|wrote):\s*[`'"]*([^`'"]+)[`'"]*/i);
|
|
497
|
+
if (fileMatch) {
|
|
498
|
+
files.push(fileMatch[1].trim());
|
|
499
|
+
}
|
|
500
|
+
// Extract PR URL
|
|
501
|
+
const prMatch = line.match(/(https:\/\/github\.com\/[\w-]+\/[\w-]+\/pull\/\d+)/i);
|
|
502
|
+
if (prMatch) {
|
|
503
|
+
result.prUrl = prMatch[1];
|
|
504
|
+
}
|
|
505
|
+
// Extract error messages
|
|
506
|
+
if (line.toLowerCase().includes('error:') || line.toLowerCase().includes('failed:')) {
|
|
507
|
+
result.error = line.trim();
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
if (files.length > 0) {
|
|
511
|
+
result.files = [...new Set(files)];
|
|
512
|
+
}
|
|
513
|
+
// Try to extract summary (look for task_complete summary)
|
|
514
|
+
const summaryMatch = output.match(/\[Task Complete\]\s*Summary:\s*([^\n]+)/i);
|
|
515
|
+
if (summaryMatch) {
|
|
516
|
+
result.summary = summaryMatch[1].trim();
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
// Fallback: last substantial paragraph
|
|
520
|
+
const paragraphs = output.split(/\n\n+/).filter(p => p.trim().length > 50);
|
|
521
|
+
if (paragraphs.length > 0) {
|
|
522
|
+
result.summary = paragraphs[paragraphs.length - 1].trim().slice(0, 500);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
return result;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
exports.TerminalOpenAIExecutor = TerminalOpenAIExecutor;
|
|
529
|
+
// Export singleton for convenience
|
|
530
|
+
exports.terminalOpenAIExecutor = new TerminalOpenAIExecutor();
|
|
531
|
+
//# sourceMappingURL=terminal-openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-openai.js","sourceRoot":"","sources":["../../src/executors/terminal-openai.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,4 +10,9 @@ export { planWithClaude, executeWithClaude, prepareRepository, getGitHubUser, ty
|
|
|
10
10
|
export { planWithOpenAI, executeWithOpenAI, type OpenAIExecutorConfig, } from './executors/openai.js';
|
|
11
11
|
export { planWithGemini, executeWithGemini, type GeminiExecutorConfig, } from './executors/gemini.js';
|
|
12
12
|
export { AstridOAuthClient, type AstridOAuthConfig, type APIResponse, type Comment, type CreateTaskData, type UpdateTaskData, } from './adapters/astrid-oauth.js';
|
|
13
|
+
export type { TerminalExecutor, TerminalExecutionResult, TerminalTaskContext, TerminalProgressCallback, ParsedOutput, } from './executors/terminal-base.js';
|
|
14
|
+
export { extractPrUrl, formatCommentHistory, captureGitChanges, buildDefaultPrompt, } from './executors/terminal-base.js';
|
|
15
|
+
export { TerminalClaudeExecutor, terminalSessionStore, type TerminalClaudeOptions, } from './executors/terminal-claude.js';
|
|
16
|
+
export { TerminalOpenAIExecutor, terminalOpenAIExecutor, type TerminalOpenAIOptions, } from './executors/terminal-openai.js';
|
|
17
|
+
export { TerminalGeminiExecutor, terminalGeminiExecutor, type TerminalGeminiOptions, } from './executors/terminal-gemini.js';
|
|
13
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,4BAA4B,CAAA;AAGnC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,GACb,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* AI agent SDK for automated coding tasks with Claude, OpenAI, and Gemini
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.AstridOAuthClient = exports.executeWithGemini = exports.planWithGemini = exports.executeWithOpenAI = exports.planWithOpenAI = exports.getGitHubUser = exports.prepareRepository = exports.executeWithClaude = exports.planWithClaude = exports.getAllAgentConfigs = exports.getRegisteredAgentEmails = exports.isRegisteredAgent = exports.getAgentContextFile = exports.getAgentModel = exports.getAgentService = exports.getAgentConfig = exports.DEFAULT_MODELS = exports.SUGGESTED_MODELS = exports.AI_AGENT_CONFIG = exports.CONFIG_DEFAULTS = exports.isProtectedPath = exports.isBlockedCommand = exports.getInitialGlobPattern = exports.generatePlatformHints = exports.generateStructurePrompt = exports.detectPlatform = exports.clearConfigCache = exports.loadAstridConfig = void 0;
|
|
8
|
+
exports.terminalGeminiExecutor = exports.TerminalGeminiExecutor = exports.terminalOpenAIExecutor = exports.TerminalOpenAIExecutor = exports.terminalSessionStore = exports.TerminalClaudeExecutor = exports.buildDefaultPrompt = exports.captureGitChanges = exports.formatCommentHistory = exports.extractPrUrl = exports.AstridOAuthClient = exports.executeWithGemini = exports.planWithGemini = exports.executeWithOpenAI = exports.planWithOpenAI = exports.getGitHubUser = exports.prepareRepository = exports.executeWithClaude = exports.planWithClaude = exports.getAllAgentConfigs = exports.getRegisteredAgentEmails = exports.isRegisteredAgent = exports.getAgentContextFile = exports.getAgentModel = exports.getAgentService = exports.getAgentConfig = exports.DEFAULT_MODELS = exports.SUGGESTED_MODELS = exports.AI_AGENT_CONFIG = exports.CONFIG_DEFAULTS = exports.isProtectedPath = exports.isBlockedCommand = exports.getInitialGlobPattern = exports.generatePlatformHints = exports.generateStructurePrompt = exports.detectPlatform = exports.clearConfigCache = exports.loadAstridConfig = void 0;
|
|
9
9
|
// Configuration
|
|
10
10
|
var index_js_1 = require("./config/index.js");
|
|
11
11
|
Object.defineProperty(exports, "loadAstridConfig", { enumerable: true, get: function () { return index_js_1.loadAstridConfig; } });
|
|
@@ -46,4 +46,18 @@ Object.defineProperty(exports, "executeWithGemini", { enumerable: true, get: fun
|
|
|
46
46
|
// Astrid OAuth Client
|
|
47
47
|
var astrid_oauth_js_1 = require("./adapters/astrid-oauth.js");
|
|
48
48
|
Object.defineProperty(exports, "AstridOAuthClient", { enumerable: true, get: function () { return astrid_oauth_js_1.AstridOAuthClient; } });
|
|
49
|
+
var terminal_base_js_1 = require("./executors/terminal-base.js");
|
|
50
|
+
Object.defineProperty(exports, "extractPrUrl", { enumerable: true, get: function () { return terminal_base_js_1.extractPrUrl; } });
|
|
51
|
+
Object.defineProperty(exports, "formatCommentHistory", { enumerable: true, get: function () { return terminal_base_js_1.formatCommentHistory; } });
|
|
52
|
+
Object.defineProperty(exports, "captureGitChanges", { enumerable: true, get: function () { return terminal_base_js_1.captureGitChanges; } });
|
|
53
|
+
Object.defineProperty(exports, "buildDefaultPrompt", { enumerable: true, get: function () { return terminal_base_js_1.buildDefaultPrompt; } });
|
|
54
|
+
var terminal_claude_js_1 = require("./executors/terminal-claude.js");
|
|
55
|
+
Object.defineProperty(exports, "TerminalClaudeExecutor", { enumerable: true, get: function () { return terminal_claude_js_1.TerminalClaudeExecutor; } });
|
|
56
|
+
Object.defineProperty(exports, "terminalSessionStore", { enumerable: true, get: function () { return terminal_claude_js_1.terminalSessionStore; } });
|
|
57
|
+
var terminal_openai_js_1 = require("./executors/terminal-openai.js");
|
|
58
|
+
Object.defineProperty(exports, "TerminalOpenAIExecutor", { enumerable: true, get: function () { return terminal_openai_js_1.TerminalOpenAIExecutor; } });
|
|
59
|
+
Object.defineProperty(exports, "terminalOpenAIExecutor", { enumerable: true, get: function () { return terminal_openai_js_1.terminalOpenAIExecutor; } });
|
|
60
|
+
var terminal_gemini_js_1 = require("./executors/terminal-gemini.js");
|
|
61
|
+
Object.defineProperty(exports, "TerminalGeminiExecutor", { enumerable: true, get: function () { return terminal_gemini_js_1.TerminalGeminiExecutor; } });
|
|
62
|
+
Object.defineProperty(exports, "terminalGeminiExecutor", { enumerable: true, get: function () { return terminal_gemini_js_1.terminalGeminiExecutor; } });
|
|
49
63
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAoBH,gBAAgB;AAChB,8CAkB0B;AAjBxB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AAWjB,sBAAsB;AACtB,2DAWgC;AAV9B,kHAAA,eAAe,OAAA;AACf,mHAAA,gBAAgB,OAAA;AAChB,iHAAA,cAAc,OAAA;AACd,iHAAA,cAAc,OAAA;AACd,kHAAA,eAAe,OAAA;AACf,gHAAA,aAAa,OAAA;AACb,sHAAA,mBAAmB,OAAA;AACnB,oHAAA,iBAAiB,OAAA;AACjB,2HAAA,wBAAwB,OAAA;AACxB,qHAAA,kBAAkB,OAAA;AAGpB,kBAAkB;AAClB,mDAM8B;AAL5B,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AACjB,8GAAA,iBAAiB,OAAA;AACjB,0GAAA,aAAa,OAAA;AAIf,kBAAkB;AAClB,mDAI8B;AAH5B,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AAInB,kBAAkB;AAClB,mDAI8B;AAH5B,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AAInB,sBAAsB;AACtB,8DAOmC;AANjC,oHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAoBH,gBAAgB;AAChB,8CAkB0B;AAjBxB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AAWjB,sBAAsB;AACtB,2DAWgC;AAV9B,kHAAA,eAAe,OAAA;AACf,mHAAA,gBAAgB,OAAA;AAChB,iHAAA,cAAc,OAAA;AACd,iHAAA,cAAc,OAAA;AACd,kHAAA,eAAe,OAAA;AACf,gHAAA,aAAa,OAAA;AACb,sHAAA,mBAAmB,OAAA;AACnB,oHAAA,iBAAiB,OAAA;AACjB,2HAAA,wBAAwB,OAAA;AACxB,qHAAA,kBAAkB,OAAA;AAGpB,kBAAkB;AAClB,mDAM8B;AAL5B,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AACjB,8GAAA,iBAAiB,OAAA;AACjB,0GAAA,aAAa,OAAA;AAIf,kBAAkB;AAClB,mDAI8B;AAH5B,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AAInB,kBAAkB;AAClB,mDAI8B;AAH5B,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AAInB,sBAAsB;AACtB,8DAOmC;AANjC,oHAAA,iBAAiB,OAAA;AAiBnB,iEAKqC;AAJnC,gHAAA,YAAY,OAAA;AACZ,wHAAA,oBAAoB,OAAA;AACpB,qHAAA,iBAAiB,OAAA;AACjB,sHAAA,kBAAkB,OAAA;AAGpB,qEAIuC;AAHrC,4HAAA,sBAAsB,OAAA;AACtB,0HAAA,oBAAoB,OAAA;AAItB,qEAIuC;AAHrC,4HAAA,sBAAsB,OAAA;AACtB,4HAAA,sBAAsB,OAAA;AAIxB,qEAIuC;AAHrC,4HAAA,sBAAsB,OAAA;AACtB,4HAAA,sBAAsB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gracefultools/astrid-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "AI agent SDK for automated coding tasks with Claude, OpenAI, and Gemini",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"dev": "tsc --watch",
|
|
25
25
|
"clean": "rm -rf dist",
|
|
26
26
|
"prepublishOnly": "npm run clean && npm run build",
|
|
27
|
-
"test": "
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest"
|
|
28
29
|
},
|
|
29
30
|
"keywords": [
|
|
30
31
|
"ai",
|
|
@@ -53,8 +54,8 @@
|
|
|
53
54
|
"glob": "^10.3.10"
|
|
54
55
|
},
|
|
55
56
|
"peerDependencies": {
|
|
56
|
-
"
|
|
57
|
-
"
|
|
57
|
+
"express": "^4.18.0 || ^5.0.0",
|
|
58
|
+
"typescript": ">=5.0.0"
|
|
58
59
|
},
|
|
59
60
|
"peerDependenciesMeta": {
|
|
60
61
|
"typescript": {
|
|
@@ -70,6 +71,7 @@
|
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@types/express": "^4.17.21",
|
|
72
73
|
"@types/node": "^20.0.0",
|
|
73
|
-
"typescript": "^5.0.0"
|
|
74
|
+
"typescript": "^5.0.0",
|
|
75
|
+
"vitest": "^3.2.4"
|
|
74
76
|
}
|
|
75
77
|
}
|