projax 3.3.70 → 3.3.71
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/agent-runner.d.ts +60 -0
- package/dist/agent-runner.js +382 -0
- package/dist/api/database.d.ts +38 -1
- package/dist/api/database.d.ts.map +1 -1
- package/dist/api/database.js +327 -0
- package/dist/api/database.js.map +1 -1
- package/dist/api/routes/agents.d.ts +4 -0
- package/dist/api/routes/agents.d.ts.map +1 -0
- package/dist/api/routes/agents.js +375 -0
- package/dist/api/routes/agents.js.map +1 -0
- package/dist/api/routes/index.d.ts.map +1 -1
- package/dist/api/routes/index.js +4 -0
- package/dist/api/routes/index.js.map +1 -1
- package/dist/api/routes/todos.d.ts +4 -0
- package/dist/api/routes/todos.d.ts.map +1 -0
- package/dist/api/routes/todos.js +595 -0
- package/dist/api/routes/todos.js.map +1 -0
- package/dist/api/types.d.ts +67 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/core/database.d.ts +47 -0
- package/dist/core/database.js +48 -0
- package/dist/core-bridge.d.ts +1 -1
- package/dist/electron/core/database.d.ts +47 -0
- package/dist/electron/core/database.js +48 -0
- package/dist/electron/renderer/assets/index-6afBeDFD.js +66 -0
- package/dist/electron/renderer/assets/index-Bd3aFi7B.css +1 -0
- package/dist/electron/renderer/index.html +2 -2
- package/dist/index.js +6 -175
- package/dist/octopus-cli.d.ts +2 -0
- package/dist/octopus-cli.js +45 -0
- package/dist/octopus-show-tui.d.ts +1 -0
- package/dist/octopus-show-tui.js +802 -0
- package/dist/octopus-tui.d.ts +1 -0
- package/dist/octopus-tui.js +115 -0
- package/dist/prxi.js +373 -63
- package/dist/prxi.tsx +472 -65
- package/package.json +7 -2
- package/dist/electron/renderer/assets/index-Cd1mTO3s.js +0 -66
- package/dist/electron/renderer/assets/index-DJDPi0kp.css +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Agent, AgentCliType, RunningAgent } from './core-bridge';
|
|
2
|
+
export declare const CLI_COMMANDS: Record<AgentCliType, string>;
|
|
3
|
+
export declare const CLI_ENV_VARS: Record<AgentCliType, string | null>;
|
|
4
|
+
export declare const CLI_DISPLAY_NAMES: Record<AgentCliType, string>;
|
|
5
|
+
export declare const VALID_CLI_TYPES: AgentCliType[];
|
|
6
|
+
/**
|
|
7
|
+
* Build command and arguments for launching an agent
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildAgentCommand(agent: Agent): {
|
|
10
|
+
command: string;
|
|
11
|
+
args: string[];
|
|
12
|
+
env: NodeJS.ProcessEnv;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Get agents for a project via API
|
|
16
|
+
*/
|
|
17
|
+
export declare function getAgentsByProject(projectId: number): Agent[];
|
|
18
|
+
/**
|
|
19
|
+
* Get running agents via API
|
|
20
|
+
*/
|
|
21
|
+
export declare function getRunningAgents(): RunningAgent[];
|
|
22
|
+
/**
|
|
23
|
+
* Check if an agent is running
|
|
24
|
+
*/
|
|
25
|
+
export declare function isAgentRunning(agentId: number): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Launch an agent via API
|
|
28
|
+
*/
|
|
29
|
+
export declare function launchAgent(agentId: number): RunningAgent | null;
|
|
30
|
+
/**
|
|
31
|
+
* Stop an agent via API
|
|
32
|
+
*/
|
|
33
|
+
export declare function stopAgent(agentId: number): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Launch an agent in a new terminal window (for TUI use)
|
|
36
|
+
* This opens a new terminal with the agent CLI running in the project directory
|
|
37
|
+
*/
|
|
38
|
+
export declare function launchAgentInTerminal(agent: Agent, projectPath: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Create a new agent
|
|
41
|
+
*/
|
|
42
|
+
export declare function createAgent(projectId: number, data: {
|
|
43
|
+
name: string;
|
|
44
|
+
cli_type: AgentCliType;
|
|
45
|
+
cli_command?: string | null;
|
|
46
|
+
model?: string | null;
|
|
47
|
+
api_key?: string | null;
|
|
48
|
+
system_prompt?: string | null;
|
|
49
|
+
temperature?: number | null;
|
|
50
|
+
max_tokens?: number | null;
|
|
51
|
+
additional_args?: string | null;
|
|
52
|
+
}): Agent | null;
|
|
53
|
+
/**
|
|
54
|
+
* Update an agent
|
|
55
|
+
*/
|
|
56
|
+
export declare function updateAgent(agentId: number, updates: Partial<Omit<Agent, 'id' | 'project_id' | 'created_at' | 'updated_at'>>): Agent | null;
|
|
57
|
+
/**
|
|
58
|
+
* Delete an agent
|
|
59
|
+
*/
|
|
60
|
+
export declare function deleteAgent(agentId: number): boolean;
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.VALID_CLI_TYPES = exports.CLI_DISPLAY_NAMES = exports.CLI_ENV_VARS = exports.CLI_COMMANDS = void 0;
|
|
37
|
+
exports.buildAgentCommand = buildAgentCommand;
|
|
38
|
+
exports.getAgentsByProject = getAgentsByProject;
|
|
39
|
+
exports.getRunningAgents = getRunningAgents;
|
|
40
|
+
exports.isAgentRunning = isAgentRunning;
|
|
41
|
+
exports.launchAgent = launchAgent;
|
|
42
|
+
exports.stopAgent = stopAgent;
|
|
43
|
+
exports.launchAgentInTerminal = launchAgentInTerminal;
|
|
44
|
+
exports.createAgent = createAgent;
|
|
45
|
+
exports.updateAgent = updateAgent;
|
|
46
|
+
exports.deleteAgent = deleteAgent;
|
|
47
|
+
const child_process_1 = require("child_process");
|
|
48
|
+
const os = __importStar(require("os"));
|
|
49
|
+
const core_bridge_1 = require("./core-bridge");
|
|
50
|
+
/**
|
|
51
|
+
* Safe console logging that handles EPIPE errors gracefully
|
|
52
|
+
*/
|
|
53
|
+
function safeLog(...args) {
|
|
54
|
+
try {
|
|
55
|
+
console.log(...args);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error?.code !== 'EPIPE') {
|
|
59
|
+
try {
|
|
60
|
+
process.stderr.write(`[log] ${args.join(' ')}\n`);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Give up - output streams are not available
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function safeError(...args) {
|
|
69
|
+
try {
|
|
70
|
+
console.error(...args);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
// Silently ignore EPIPE errors
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// CLI type to default command mapping
|
|
77
|
+
exports.CLI_COMMANDS = {
|
|
78
|
+
claude: 'claude',
|
|
79
|
+
cline: 'cline',
|
|
80
|
+
gemini: 'gemini',
|
|
81
|
+
openai: 'openai',
|
|
82
|
+
xai: 'xai',
|
|
83
|
+
ollama: 'ollama',
|
|
84
|
+
aider: 'aider',
|
|
85
|
+
continue: 'continue',
|
|
86
|
+
custom: '',
|
|
87
|
+
};
|
|
88
|
+
// CLI type to environment variable mapping for API keys
|
|
89
|
+
exports.CLI_ENV_VARS = {
|
|
90
|
+
claude: 'ANTHROPIC_API_KEY',
|
|
91
|
+
cline: 'ANTHROPIC_API_KEY', // Cline uses Anthropic API
|
|
92
|
+
gemini: 'GOOGLE_API_KEY',
|
|
93
|
+
openai: 'OPENAI_API_KEY',
|
|
94
|
+
xai: 'XAI_API_KEY',
|
|
95
|
+
ollama: null, // Local, no API key needed
|
|
96
|
+
aider: null, // Uses OPENAI_API_KEY or ANTHROPIC_API_KEY depending on model
|
|
97
|
+
continue: null, // IDE extension
|
|
98
|
+
custom: null,
|
|
99
|
+
};
|
|
100
|
+
// CLI type display names
|
|
101
|
+
exports.CLI_DISPLAY_NAMES = {
|
|
102
|
+
claude: 'Claude Code',
|
|
103
|
+
cline: 'Cline',
|
|
104
|
+
gemini: 'Gemini CLI',
|
|
105
|
+
openai: 'OpenAI CLI',
|
|
106
|
+
xai: 'xAI / Grok',
|
|
107
|
+
ollama: 'Ollama',
|
|
108
|
+
aider: 'Aider',
|
|
109
|
+
continue: 'Continue.dev',
|
|
110
|
+
custom: 'Custom',
|
|
111
|
+
};
|
|
112
|
+
// All valid CLI types
|
|
113
|
+
exports.VALID_CLI_TYPES = [
|
|
114
|
+
'claude',
|
|
115
|
+
'cline',
|
|
116
|
+
'gemini',
|
|
117
|
+
'openai',
|
|
118
|
+
'xai',
|
|
119
|
+
'ollama',
|
|
120
|
+
'aider',
|
|
121
|
+
'continue',
|
|
122
|
+
'custom',
|
|
123
|
+
];
|
|
124
|
+
/**
|
|
125
|
+
* Build command and arguments for launching an agent
|
|
126
|
+
*/
|
|
127
|
+
function buildAgentCommand(agent) {
|
|
128
|
+
const command = agent.cli_type === 'custom' && agent.cli_command
|
|
129
|
+
? agent.cli_command
|
|
130
|
+
: exports.CLI_COMMANDS[agent.cli_type];
|
|
131
|
+
const args = [];
|
|
132
|
+
const env = { ...process.env };
|
|
133
|
+
// Set API key in environment if available
|
|
134
|
+
if (agent.api_key) {
|
|
135
|
+
const envVar = exports.CLI_ENV_VARS[agent.cli_type];
|
|
136
|
+
if (envVar) {
|
|
137
|
+
env[envVar] = agent.api_key;
|
|
138
|
+
}
|
|
139
|
+
// For aider, set both possible keys
|
|
140
|
+
if (agent.cli_type === 'aider') {
|
|
141
|
+
env['OPENAI_API_KEY'] = agent.api_key;
|
|
142
|
+
env['ANTHROPIC_API_KEY'] = agent.api_key;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Add model flag if specified
|
|
146
|
+
if (agent.model) {
|
|
147
|
+
switch (agent.cli_type) {
|
|
148
|
+
case 'claude':
|
|
149
|
+
args.push('--model', agent.model);
|
|
150
|
+
break;
|
|
151
|
+
case 'cline':
|
|
152
|
+
// Cline uses config file for model selection, but we can pass --model
|
|
153
|
+
args.push('--model', agent.model);
|
|
154
|
+
break;
|
|
155
|
+
case 'openai':
|
|
156
|
+
args.push('--model', agent.model);
|
|
157
|
+
break;
|
|
158
|
+
case 'gemini':
|
|
159
|
+
args.push('--model', agent.model);
|
|
160
|
+
break;
|
|
161
|
+
case 'ollama':
|
|
162
|
+
args.push('run', agent.model);
|
|
163
|
+
break;
|
|
164
|
+
case 'aider':
|
|
165
|
+
args.push('--model', agent.model);
|
|
166
|
+
break;
|
|
167
|
+
default:
|
|
168
|
+
if (agent.model) {
|
|
169
|
+
args.push('--model', agent.model);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Add system prompt if specified
|
|
174
|
+
if (agent.system_prompt) {
|
|
175
|
+
switch (agent.cli_type) {
|
|
176
|
+
case 'claude':
|
|
177
|
+
args.push('--system-prompt', agent.system_prompt);
|
|
178
|
+
break;
|
|
179
|
+
case 'aider':
|
|
180
|
+
args.push('--message', agent.system_prompt);
|
|
181
|
+
break;
|
|
182
|
+
default:
|
|
183
|
+
// Most CLIs don't support system prompt via CLI
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Add additional args if specified
|
|
188
|
+
if (agent.additional_args) {
|
|
189
|
+
const additionalArgs = agent.additional_args.split(/\s+/).filter(Boolean);
|
|
190
|
+
args.push(...additionalArgs);
|
|
191
|
+
}
|
|
192
|
+
return { command, args, env };
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get agents for a project via API
|
|
196
|
+
*/
|
|
197
|
+
function getAgentsByProject(projectId) {
|
|
198
|
+
try {
|
|
199
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
200
|
+
return db.getAgentsByProject(projectId);
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
safeError('Failed to get agents:', error);
|
|
204
|
+
return [];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get running agents via API
|
|
209
|
+
*/
|
|
210
|
+
function getRunningAgents() {
|
|
211
|
+
try {
|
|
212
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
213
|
+
return db.getRunningAgents();
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
safeError('Failed to get running agents:', error);
|
|
217
|
+
return [];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Check if an agent is running
|
|
222
|
+
*/
|
|
223
|
+
function isAgentRunning(agentId) {
|
|
224
|
+
try {
|
|
225
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
226
|
+
const status = db.getAgentStatus(agentId);
|
|
227
|
+
return status.running;
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Launch an agent via API
|
|
235
|
+
*/
|
|
236
|
+
function launchAgent(agentId) {
|
|
237
|
+
try {
|
|
238
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
239
|
+
return db.launchAgent(agentId);
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
safeError('Failed to launch agent:', error);
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Stop an agent via API
|
|
248
|
+
*/
|
|
249
|
+
function stopAgent(agentId) {
|
|
250
|
+
try {
|
|
251
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
252
|
+
db.stopAgent(agentId);
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
safeError('Failed to stop agent:', error);
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Launch an agent in a new terminal window (for TUI use)
|
|
262
|
+
* This opens a new terminal with the agent CLI running in the project directory
|
|
263
|
+
*/
|
|
264
|
+
function launchAgentInTerminal(agent, projectPath) {
|
|
265
|
+
try {
|
|
266
|
+
const { command, args, env } = buildAgentCommand(agent);
|
|
267
|
+
if (!command) {
|
|
268
|
+
safeError('No command configured for this agent');
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
const fullCommand = [command, ...args].join(' ');
|
|
272
|
+
const platform = os.platform();
|
|
273
|
+
let terminalProcess;
|
|
274
|
+
if (platform === 'darwin') {
|
|
275
|
+
// macOS - use Terminal.app or iTerm
|
|
276
|
+
const script = `
|
|
277
|
+
tell application "Terminal"
|
|
278
|
+
do script "cd '${projectPath}' && ${fullCommand}"
|
|
279
|
+
activate
|
|
280
|
+
end tell
|
|
281
|
+
`;
|
|
282
|
+
terminalProcess = (0, child_process_1.spawn)('osascript', ['-e', script], {
|
|
283
|
+
env,
|
|
284
|
+
detached: true,
|
|
285
|
+
stdio: 'ignore',
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
else if (platform === 'win32') {
|
|
289
|
+
// Windows - use cmd
|
|
290
|
+
terminalProcess = (0, child_process_1.spawn)('cmd', ['/c', 'start', 'cmd', '/k', `cd /d "${projectPath}" && ${fullCommand}`], {
|
|
291
|
+
env,
|
|
292
|
+
detached: true,
|
|
293
|
+
stdio: 'ignore',
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
// Linux - try common terminal emulators
|
|
298
|
+
const terminals = ['gnome-terminal', 'konsole', 'xfce4-terminal', 'xterm'];
|
|
299
|
+
let launched = false;
|
|
300
|
+
for (const term of terminals) {
|
|
301
|
+
try {
|
|
302
|
+
if (term === 'gnome-terminal') {
|
|
303
|
+
terminalProcess = (0, child_process_1.spawn)(term, ['--', 'bash', '-c', `cd "${projectPath}" && ${fullCommand}; exec bash`], {
|
|
304
|
+
env,
|
|
305
|
+
detached: true,
|
|
306
|
+
stdio: 'ignore',
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
else if (term === 'konsole') {
|
|
310
|
+
terminalProcess = (0, child_process_1.spawn)(term, ['-e', 'bash', '-c', `cd "${projectPath}" && ${fullCommand}; exec bash`], {
|
|
311
|
+
env,
|
|
312
|
+
detached: true,
|
|
313
|
+
stdio: 'ignore',
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
terminalProcess = (0, child_process_1.spawn)(term, ['-e', `cd "${projectPath}" && ${fullCommand}`], {
|
|
318
|
+
env,
|
|
319
|
+
detached: true,
|
|
320
|
+
stdio: 'ignore',
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
launched = true;
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (!launched) {
|
|
331
|
+
safeError('Could not find a terminal emulator');
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
terminalProcess.unref();
|
|
336
|
+
return true;
|
|
337
|
+
}
|
|
338
|
+
catch (error) {
|
|
339
|
+
safeError('Failed to launch agent in terminal:', error);
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Create a new agent
|
|
345
|
+
*/
|
|
346
|
+
function createAgent(projectId, data) {
|
|
347
|
+
try {
|
|
348
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
349
|
+
return db.addAgent(projectId, data);
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
safeError('Failed to create agent:', error);
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Update an agent
|
|
358
|
+
*/
|
|
359
|
+
function updateAgent(agentId, updates) {
|
|
360
|
+
try {
|
|
361
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
362
|
+
return db.updateAgent(agentId, updates);
|
|
363
|
+
}
|
|
364
|
+
catch (error) {
|
|
365
|
+
safeError('Failed to update agent:', error);
|
|
366
|
+
return null;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Delete an agent
|
|
371
|
+
*/
|
|
372
|
+
function deleteAgent(agentId) {
|
|
373
|
+
try {
|
|
374
|
+
const db = (0, core_bridge_1.getDatabaseManager)();
|
|
375
|
+
db.removeAgent(agentId);
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
safeError('Failed to delete agent:', error);
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
}
|
package/dist/api/database.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Project, Test, JenkinsJob, ProjectPort, TestResult, Workspace, WorkspaceProject, ProjectSettings } from './types';
|
|
1
|
+
import { Project, Test, JenkinsJob, ProjectPort, TestResult, Workspace, WorkspaceProject, ProjectSettings, Agent, AgentCliType, TodoList, TodoTask, AgentTaskRun, TaskPriority } from './types';
|
|
2
2
|
declare class JSONDatabase {
|
|
3
3
|
private data;
|
|
4
4
|
private dbPath;
|
|
@@ -50,6 +50,43 @@ declare class JSONDatabase {
|
|
|
50
50
|
updateWorkspaceProjectOrder(workspaceId: number, projectPath: string, newOrder: number): void;
|
|
51
51
|
getProjectSettings(projectId: number): ProjectSettings | null;
|
|
52
52
|
updateProjectSettings(projectId: number, updates: Partial<Omit<ProjectSettings, 'id' | 'project_id' | 'created_at'>>): ProjectSettings;
|
|
53
|
+
addAgent(projectId: number, data: {
|
|
54
|
+
name: string;
|
|
55
|
+
cli_type: AgentCliType;
|
|
56
|
+
cli_command?: string | null;
|
|
57
|
+
model?: string | null;
|
|
58
|
+
api_key?: string | null;
|
|
59
|
+
system_prompt?: string | null;
|
|
60
|
+
temperature?: number | null;
|
|
61
|
+
max_tokens?: number | null;
|
|
62
|
+
additional_args?: string | null;
|
|
63
|
+
}): Agent;
|
|
64
|
+
getAgent(id: number): Agent | null;
|
|
65
|
+
getAgentsByProject(projectId: number): Agent[];
|
|
66
|
+
getAllAgents(): Agent[];
|
|
67
|
+
updateAgent(id: number, updates: Partial<Omit<Agent, 'id' | 'project_id' | 'created_at' | 'updated_at'>>): Agent;
|
|
68
|
+
removeAgent(id: number): void;
|
|
69
|
+
removeAgentsByProject(projectId: number): void;
|
|
70
|
+
addTodoList(projectId: number, name: string, description?: string | null): TodoList;
|
|
71
|
+
getTodoList(id: number): TodoList | null;
|
|
72
|
+
getTodoListsByProject(projectId: number): TodoList[];
|
|
73
|
+
updateTodoList(id: number, updates: Partial<Omit<TodoList, 'id' | 'project_id' | 'created_at' | 'updated_at'>>): TodoList;
|
|
74
|
+
removeTodoList(id: number): void;
|
|
75
|
+
addTodoTask(listId: number, title: string, description?: string | null, priority?: TaskPriority): TodoTask;
|
|
76
|
+
getTodoTask(id: number): TodoTask | null;
|
|
77
|
+
getTodoTasksByList(listId: number): TodoTask[];
|
|
78
|
+
getTodoTasksByProject(projectId: number): TodoTask[];
|
|
79
|
+
updateTodoTask(id: number, updates: Partial<Omit<TodoTask, 'id' | 'list_id' | 'created_at' | 'updated_at'>>): TodoTask;
|
|
80
|
+
removeTodoTask(id: number): void;
|
|
81
|
+
addAgentTaskRun(agentId: number, taskId: number, worktreePath: string, worktreeBranch: string): AgentTaskRun;
|
|
82
|
+
getAgentTaskRun(id: number): AgentTaskRun | null;
|
|
83
|
+
getAgentTaskRunsByTask(taskId: number): AgentTaskRun[];
|
|
84
|
+
getAgentTaskRunsByAgent(agentId: number): AgentTaskRun[];
|
|
85
|
+
getRunningAgentTaskRuns(): AgentTaskRun[];
|
|
86
|
+
updateAgentTaskRun(id: number, updates: Partial<Omit<AgentTaskRun, 'id' | 'agent_id' | 'task_id' | 'started_at'>>): AgentTaskRun;
|
|
87
|
+
completeAgentTaskRun(id: number, output?: string | null): AgentTaskRun;
|
|
88
|
+
failAgentTaskRun(id: number, errorMessage?: string | null): AgentTaskRun;
|
|
89
|
+
abortAgentTaskRun(id: number): AgentTaskRun;
|
|
53
90
|
}
|
|
54
91
|
export declare function getDatabase(): JSONDatabase;
|
|
55
92
|
export declare function resetDatabase(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|