@leverageaiapps/locus-dev 1.1.4 → 2.0.1-dev

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.
@@ -0,0 +1,67 @@
1
+ /**
2
+ * AI Agent for Locus
3
+ *
4
+ * Handles Claude API calls and tool use loop for autonomous task execution.
5
+ * This allows Locus to execute multi-step AI tasks independently of the iOS app.
6
+ */
7
+ export interface AIAgentConfig {
8
+ apiKey: string;
9
+ model?: string;
10
+ maxTokens?: number;
11
+ maxIterations?: number;
12
+ }
13
+ export interface AIAgentPayload {
14
+ message: string;
15
+ conversationHistory?: ConversationMessage[];
16
+ systemPrompt?: string;
17
+ customApiKey?: string;
18
+ context?: any;
19
+ }
20
+ export interface ConversationMessage {
21
+ role: 'user' | 'assistant';
22
+ content: string | ContentBlock[];
23
+ }
24
+ export interface ContentBlock {
25
+ type: 'text' | 'tool_use' | 'tool_result';
26
+ text?: string;
27
+ id?: string;
28
+ name?: string;
29
+ input?: any;
30
+ tool_use_id?: string;
31
+ content?: string;
32
+ is_error?: boolean;
33
+ }
34
+ export interface AIAgentCallbacks {
35
+ onTextDelta: (text: string) => void;
36
+ onToolCall: (name: string, input: any) => void;
37
+ onToolResult: (name: string, result: string, isError: boolean) => void;
38
+ onComplete: (finalResponse: string) => void;
39
+ onError: (error: string) => void;
40
+ executeCommand: (command: string) => Promise<{
41
+ output: string;
42
+ exitCode: number;
43
+ }>;
44
+ readFile?: (path: string) => Promise<string>;
45
+ writeFile?: (path: string, content: string) => Promise<void>;
46
+ }
47
+ export declare class AIAgent {
48
+ private client;
49
+ private model;
50
+ private maxTokens;
51
+ private maxIterations;
52
+ private cancelled;
53
+ constructor(config: AIAgentConfig);
54
+ /**
55
+ * Cancel the current execution
56
+ */
57
+ cancel(): void;
58
+ /**
59
+ * Execute an AI chat task with tool use loop
60
+ */
61
+ execute(payload: AIAgentPayload, callbacks: AIAgentCallbacks): Promise<string>;
62
+ }
63
+ /**
64
+ * Get API key from various sources (priority order)
65
+ */
66
+ export declare function getApiKey(payloadKey?: string): string | null;
67
+ //# sourceMappingURL=ai-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-agent.d.ts","sourceRoot":"","sources":["../src/ai-agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAqFD,qBAAa,OAAO;IAChB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,aAAa;IASjC;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACG,OAAO,CACT,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,GAC5B,OAAO,CAAC,MAAM,CAAC;CAqNrB;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB5D"}
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ /**
3
+ * AI Agent for Locus
4
+ *
5
+ * Handles Claude API calls and tool use loop for autonomous task execution.
6
+ * This allows Locus to execute multi-step AI tasks independently of the iOS app.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AIAgent = void 0;
13
+ exports.getApiKey = getApiKey;
14
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
15
+ // ============================================================================
16
+ // Tool Definitions
17
+ // ============================================================================
18
+ const TOOLS = [
19
+ {
20
+ name: 'bash',
21
+ description: 'Execute a bash command on the user\'s computer. Use this to run shell commands, scripts, or interact with the file system. The command will be executed in the user\'s terminal.',
22
+ input_schema: {
23
+ type: 'object',
24
+ properties: {
25
+ command: {
26
+ type: 'string',
27
+ description: 'The bash command to execute'
28
+ }
29
+ },
30
+ required: ['command']
31
+ }
32
+ },
33
+ {
34
+ name: 'read_file',
35
+ description: 'Read the contents of a file at the specified path.',
36
+ input_schema: {
37
+ type: 'object',
38
+ properties: {
39
+ path: {
40
+ type: 'string',
41
+ description: 'The absolute path to the file to read'
42
+ }
43
+ },
44
+ required: ['path']
45
+ }
46
+ },
47
+ {
48
+ name: 'write_file',
49
+ description: 'Write content to a file at the specified path. Creates the file if it doesn\'t exist, overwrites if it does.',
50
+ input_schema: {
51
+ type: 'object',
52
+ properties: {
53
+ path: {
54
+ type: 'string',
55
+ description: 'The absolute path to the file to write'
56
+ },
57
+ content: {
58
+ type: 'string',
59
+ description: 'The content to write to the file'
60
+ }
61
+ },
62
+ required: ['path', 'content']
63
+ }
64
+ }
65
+ ];
66
+ // ============================================================================
67
+ // System Prompt
68
+ // ============================================================================
69
+ const DEFAULT_SYSTEM_PROMPT = `You are an AI assistant with access to the user's computer through a terminal connection. You can execute bash commands and interact with the file system to help the user accomplish tasks.
70
+
71
+ ## Capabilities
72
+ - Execute bash commands using the 'bash' tool
73
+ - Read files using the 'read_file' tool
74
+ - Write files using the 'write_file' tool
75
+
76
+ ## Guidelines
77
+ 1. Always explain what you're about to do before executing commands
78
+ 2. For complex tasks, break them down into steps
79
+ 3. Handle errors gracefully and explain what went wrong
80
+ 4. Be careful with destructive operations (rm, overwriting files, etc.)
81
+ 5. When working with files, prefer using absolute paths
82
+ 6. For long-running commands, consider running them in the background
83
+
84
+ ## Output Format
85
+ - Provide clear, concise responses
86
+ - Show relevant command output to the user
87
+ - Summarize results after completing tasks
88
+
89
+ Remember: You're running directly on the user's computer, so be careful and responsible with system operations.`;
90
+ // ============================================================================
91
+ // AI Agent Class
92
+ // ============================================================================
93
+ class AIAgent {
94
+ constructor(config) {
95
+ this.cancelled = false;
96
+ this.client = new sdk_1.default({
97
+ apiKey: config.apiKey
98
+ });
99
+ this.model = config.model || 'claude-sonnet-4-20250514';
100
+ this.maxTokens = config.maxTokens || 8192;
101
+ this.maxIterations = config.maxIterations || 50;
102
+ }
103
+ /**
104
+ * Cancel the current execution
105
+ */
106
+ cancel() {
107
+ this.cancelled = true;
108
+ }
109
+ /**
110
+ * Execute an AI chat task with tool use loop
111
+ */
112
+ async execute(payload, callbacks) {
113
+ this.cancelled = false;
114
+ const systemPrompt = payload.systemPrompt || DEFAULT_SYSTEM_PROMPT;
115
+ // Build initial messages
116
+ const messages = [];
117
+ // Add conversation history if provided
118
+ if (payload.conversationHistory) {
119
+ for (const msg of payload.conversationHistory) {
120
+ messages.push({
121
+ role: msg.role,
122
+ content: msg.content
123
+ });
124
+ }
125
+ }
126
+ // Add the new user message
127
+ messages.push({
128
+ role: 'user',
129
+ content: payload.message
130
+ });
131
+ let fullResponse = '';
132
+ let iterations = 0;
133
+ // Tool use loop
134
+ while (iterations < this.maxIterations && !this.cancelled) {
135
+ iterations++;
136
+ console.log(` [AIAgent] Iteration ${iterations}/${this.maxIterations}`);
137
+ try {
138
+ // Call Claude API with streaming
139
+ const response = await this.client.messages.create({
140
+ model: this.model,
141
+ max_tokens: this.maxTokens,
142
+ system: systemPrompt,
143
+ tools: TOOLS,
144
+ messages: messages,
145
+ stream: true
146
+ });
147
+ let currentTextContent = '';
148
+ let toolUseBlocks = [];
149
+ let currentToolUse = null;
150
+ let stopReason = null;
151
+ // Process streaming response
152
+ for await (const event of response) {
153
+ if (this.cancelled) {
154
+ console.log(' [AIAgent] Cancelled');
155
+ return fullResponse;
156
+ }
157
+ switch (event.type) {
158
+ case 'content_block_start':
159
+ if (event.content_block.type === 'tool_use') {
160
+ currentToolUse = {
161
+ id: event.content_block.id,
162
+ name: event.content_block.name,
163
+ inputJson: ''
164
+ };
165
+ }
166
+ break;
167
+ case 'content_block_delta':
168
+ if (event.delta.type === 'text_delta') {
169
+ currentTextContent += event.delta.text;
170
+ fullResponse += event.delta.text;
171
+ callbacks.onTextDelta(event.delta.text);
172
+ }
173
+ else if (event.delta.type === 'input_json_delta' && currentToolUse) {
174
+ currentToolUse.inputJson += event.delta.partial_json;
175
+ }
176
+ break;
177
+ case 'content_block_stop':
178
+ if (currentToolUse) {
179
+ try {
180
+ const input = JSON.parse(currentToolUse.inputJson);
181
+ toolUseBlocks.push({
182
+ id: currentToolUse.id,
183
+ name: currentToolUse.name,
184
+ input
185
+ });
186
+ }
187
+ catch (e) {
188
+ console.error(' [AIAgent] Failed to parse tool input:', e);
189
+ }
190
+ currentToolUse = null;
191
+ }
192
+ break;
193
+ case 'message_delta':
194
+ stopReason = event.delta.stop_reason;
195
+ break;
196
+ }
197
+ }
198
+ // Build assistant message content for history
199
+ const assistantContent = [];
200
+ if (currentTextContent) {
201
+ assistantContent.push({ type: 'text', text: currentTextContent });
202
+ }
203
+ for (const tool of toolUseBlocks) {
204
+ assistantContent.push({
205
+ type: 'tool_use',
206
+ id: tool.id,
207
+ name: tool.name,
208
+ input: tool.input
209
+ });
210
+ }
211
+ // Add assistant message to history
212
+ messages.push({
213
+ role: 'assistant',
214
+ content: assistantContent
215
+ });
216
+ // Check if we need to execute tools
217
+ if (stopReason === 'tool_use' && toolUseBlocks.length > 0) {
218
+ const toolResults = [];
219
+ for (const tool of toolUseBlocks) {
220
+ callbacks.onToolCall(tool.name, tool.input);
221
+ let result;
222
+ let isError = false;
223
+ try {
224
+ switch (tool.name) {
225
+ case 'bash':
226
+ const cmdResult = await callbacks.executeCommand(tool.input.command);
227
+ result = cmdResult.output;
228
+ isError = cmdResult.exitCode !== 0;
229
+ break;
230
+ case 'read_file':
231
+ if (callbacks.readFile) {
232
+ result = await callbacks.readFile(tool.input.path);
233
+ }
234
+ else {
235
+ // Fallback to bash cat
236
+ const readResult = await callbacks.executeCommand(`cat "${tool.input.path}"`);
237
+ result = readResult.output;
238
+ isError = readResult.exitCode !== 0;
239
+ }
240
+ break;
241
+ case 'write_file':
242
+ if (callbacks.writeFile) {
243
+ await callbacks.writeFile(tool.input.path, tool.input.content);
244
+ result = `File written successfully: ${tool.input.path}`;
245
+ }
246
+ else {
247
+ // Fallback to bash
248
+ const escapedContent = tool.input.content.replace(/'/g, "'\\''");
249
+ const writeResult = await callbacks.executeCommand(`cat > "${tool.input.path}" << 'LOCUS_EOF'\n${tool.input.content}\nLOCUS_EOF`);
250
+ result = writeResult.exitCode === 0
251
+ ? `File written successfully: ${tool.input.path}`
252
+ : writeResult.output;
253
+ isError = writeResult.exitCode !== 0;
254
+ }
255
+ break;
256
+ default:
257
+ result = `Unknown tool: ${tool.name}`;
258
+ isError = true;
259
+ }
260
+ }
261
+ catch (error) {
262
+ result = `Error executing ${tool.name}: ${error.message}`;
263
+ isError = true;
264
+ }
265
+ callbacks.onToolResult(tool.name, result, isError);
266
+ toolResults.push({
267
+ type: 'tool_result',
268
+ tool_use_id: tool.id,
269
+ content: result,
270
+ is_error: isError
271
+ });
272
+ }
273
+ // Add tool results to messages
274
+ messages.push({
275
+ role: 'user',
276
+ content: toolResults
277
+ });
278
+ // Continue the loop to get Claude's response to tool results
279
+ continue;
280
+ }
281
+ // No more tool calls, we're done
282
+ callbacks.onComplete(fullResponse);
283
+ return fullResponse;
284
+ }
285
+ catch (error) {
286
+ console.error(' [AIAgent] Error:', error.message);
287
+ callbacks.onError(error.message);
288
+ throw error;
289
+ }
290
+ }
291
+ if (this.cancelled) {
292
+ return fullResponse;
293
+ }
294
+ // Max iterations reached
295
+ const maxIterError = `Max iterations (${this.maxIterations}) reached`;
296
+ callbacks.onError(maxIterError);
297
+ throw new Error(maxIterError);
298
+ }
299
+ }
300
+ exports.AIAgent = AIAgent;
301
+ // ============================================================================
302
+ // Helper: Get API Key
303
+ // ============================================================================
304
+ /**
305
+ * Get API key from various sources (priority order)
306
+ */
307
+ function getApiKey(payloadKey) {
308
+ // 1. Environment variable
309
+ if (process.env.ANTHROPIC_API_KEY) {
310
+ return process.env.ANTHROPIC_API_KEY;
311
+ }
312
+ // 2. Payload (from iOS app)
313
+ if (payloadKey) {
314
+ return payloadKey;
315
+ }
316
+ // 3. Local config file (TODO: implement)
317
+ // const localKey = loadLocalConfig()?.apiKey;
318
+ // if (localKey) return localKey;
319
+ return null;
320
+ }
321
+ //# sourceMappingURL=ai-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-agent.js","sourceRoot":"","sources":["../src/ai-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vortex-tunnel.d.ts","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"AAgCA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ElF;AA4fD,wBAAgB,UAAU,IAAI,IAAI,CAcjC;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
1
+ {"version":3,"file":"vortex-tunnel.d.ts","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"AAgEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ElF;AAu3BD,wBAAgB,UAAU,IAAI,IAAI,CAcjC;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
@@ -58,6 +58,10 @@ const MAX_RECONNECT_DELAY_MS = 60 * 1000; // Max 60 seconds between reconnect at
58
58
  const MAX_PAYLOAD_SIZE = 64 * 1024 * 1024; // 64MB max message size for large file transfer
59
59
  // Map to store pending HTTP requests
60
60
  const pendingRequests = new Map();
61
+ // Current running task
62
+ let currentTask = null;
63
+ // Pending task exec responses (for command execution within tasks)
64
+ const pendingTaskExecs = new Map();
61
65
  // Single shared WebSocket connection to local server
62
66
  let sharedLocalWs = null;
63
67
  let sharedLocalWsReady = false;
@@ -150,10 +154,61 @@ function createSharedLocalConnection() {
150
154
  sharedLocalWsReady = true;
151
155
  });
152
156
  sharedLocalWs.on('message', (data) => {
153
- // Forward data from local server to all browsers through gateway
157
+ const dataStr = Buffer.isBuffer(data) ? data.toString() : data.toString();
158
+ // Check if this is task-related output (contains markers)
159
+ if (pendingTaskExecs.size > 0 && dataStr.includes('<<TASK_EXEC_')) {
160
+ processTaskOutput(dataStr);
161
+ // Don't forward task execution output to browsers
162
+ return;
163
+ }
164
+ // Check if this is raw terminal output that might be part of task execution
165
+ try {
166
+ const msg = JSON.parse(dataStr);
167
+ if (msg.type === 'output' && pendingTaskExecs.size > 0) {
168
+ // Could be task output - check for markers
169
+ if (msg.data && (msg.data.includes('<<TASK_EXEC_') || currentTask)) {
170
+ processTaskOutput(msg.data);
171
+ return;
172
+ }
173
+ }
174
+ // Handle AI chat task responses from local server
175
+ if (msg.type === 'ai_chat_response' && currentTask && currentTask.type === 'ai_chat') {
176
+ sendToGateway({
177
+ type: 'task_output',
178
+ task_id: currentTask.id,
179
+ chunk: msg.content || ''
180
+ });
181
+ return;
182
+ }
183
+ if (msg.type === 'ai_chat_complete' && currentTask && currentTask.type === 'ai_chat') {
184
+ sendToGateway({
185
+ type: 'task_complete',
186
+ task_id: currentTask.id,
187
+ success: true,
188
+ output: msg.full_response || currentTask.accumulatedOutput
189
+ });
190
+ currentTask = null;
191
+ return;
192
+ }
193
+ if (msg.type === 'ai_chat_error' && currentTask && currentTask.type === 'ai_chat') {
194
+ sendToGateway({
195
+ type: 'task_error',
196
+ task_id: currentTask.id,
197
+ error: msg.error || 'AI chat failed'
198
+ });
199
+ currentTask = null;
200
+ return;
201
+ }
202
+ }
203
+ catch {
204
+ // Not JSON, might be raw output
205
+ if (pendingTaskExecs.size > 0 && dataStr.includes('<<TASK_EXEC_')) {
206
+ processTaskOutput(dataStr);
207
+ return;
208
+ }
209
+ }
210
+ // Forward data from local server to all browsers through gateway (legacy mode)
154
211
  if (tunnelWs && tunnelWs.readyState === ws_1.default.OPEN) {
155
- // Local server sends JSON text, forward it directly
156
- const dataStr = Buffer.isBuffer(data) ? data.toString() : data.toString();
157
212
  tunnelWs.send(dataStr);
158
213
  }
159
214
  });
@@ -240,6 +295,15 @@ function handleGatewayMessage(msg) {
240
295
  case 'pong':
241
296
  // Heartbeat response received, connection is alive
242
297
  break;
298
+ // ============== Task Queue Protocol (v3) ==============
299
+ case 'task_execute':
300
+ // Gateway asking us to execute a task
301
+ handleTaskExecute(msg);
302
+ break;
303
+ case 'task_cancel':
304
+ // Gateway asking us to cancel a task
305
+ handleTaskCancel(msg.task_id);
306
+ break;
243
307
  default:
244
308
  // Forward any other message to local server (v2 protocol - direct relay)
245
309
  // This handles input, resize, ping, etc. from browser
@@ -249,6 +313,277 @@ function handleGatewayMessage(msg) {
249
313
  break;
250
314
  }
251
315
  }
316
+ // ============================================================================
317
+ // Task Execution (v3 Protocol)
318
+ // ============================================================================
319
+ /**
320
+ * Handle task execution request from Gateway
321
+ */
322
+ async function handleTaskExecute(msg) {
323
+ const { task_id, task_type, payload } = msg;
324
+ if (currentTask && !currentTask.cancelled) {
325
+ // Already executing a task, shouldn't happen if gateway queues properly
326
+ console.error(` [Task] Error: Already executing task ${currentTask.id}`);
327
+ sendToGateway({
328
+ type: 'task_error',
329
+ task_id,
330
+ error: 'Already executing another task'
331
+ });
332
+ return;
333
+ }
334
+ console.log(` [Task] Executing task ${task_id} (${task_type})`);
335
+ currentTask = {
336
+ id: task_id,
337
+ type: task_type,
338
+ payload,
339
+ startTime: Date.now(),
340
+ accumulatedOutput: '',
341
+ cancelled: false
342
+ };
343
+ try {
344
+ switch (task_type) {
345
+ case 'exec':
346
+ await executeExecTask(task_id, payload);
347
+ break;
348
+ case 'ai_chat':
349
+ await executeAiChatTask(task_id, payload);
350
+ break;
351
+ case 'file_read':
352
+ await executeFileReadTask(task_id, payload);
353
+ break;
354
+ case 'file_write':
355
+ await executeFileWriteTask(task_id, payload);
356
+ break;
357
+ default:
358
+ throw new Error(`Unknown task type: ${task_type}`);
359
+ }
360
+ }
361
+ catch (error) {
362
+ console.error(` [Task] Error executing task ${task_id}:`, error.message);
363
+ if (!currentTask?.cancelled) {
364
+ sendToGateway({
365
+ type: 'task_error',
366
+ task_id,
367
+ error: error.message
368
+ });
369
+ }
370
+ }
371
+ finally {
372
+ currentTask = null;
373
+ }
374
+ }
375
+ /**
376
+ * Handle task cancellation request
377
+ */
378
+ function handleTaskCancel(taskId) {
379
+ if (currentTask && currentTask.id === taskId) {
380
+ console.log(` [Task] Cancelling task ${taskId}`);
381
+ currentTask.cancelled = true;
382
+ // Cancel any pending exec for this task
383
+ for (const [execId, pending] of pendingTaskExecs.entries()) {
384
+ if (pending.taskId === taskId) {
385
+ pending.reject(new Error('Task cancelled'));
386
+ pendingTaskExecs.delete(execId);
387
+ }
388
+ }
389
+ // Send Ctrl+C to interrupt any running command
390
+ if (sharedLocalWs && sharedLocalWs.readyState === ws_1.default.OPEN) {
391
+ sharedLocalWs.send(JSON.stringify({ type: 'input', data: '\x03' }));
392
+ }
393
+ }
394
+ }
395
+ /**
396
+ * Execute a shell command task
397
+ */
398
+ async function executeExecTask(taskId, payload) {
399
+ const { command } = payload;
400
+ if (!command) {
401
+ throw new Error('No command specified');
402
+ }
403
+ if (!sharedLocalWs || sharedLocalWs.readyState !== ws_1.default.OPEN) {
404
+ throw new Error('Local WebSocket not connected');
405
+ }
406
+ console.log(` [Task] Executing command: ${command.substring(0, 50)}...`);
407
+ const result = await executeCommandWithOutput(taskId, command);
408
+ if (currentTask?.cancelled) {
409
+ return;
410
+ }
411
+ sendToGateway({
412
+ type: 'task_complete',
413
+ task_id: taskId,
414
+ success: result.exitCode === 0,
415
+ output: result.output,
416
+ exit_code: result.exitCode
417
+ });
418
+ }
419
+ /**
420
+ * Execute command and collect output with streaming
421
+ */
422
+ function executeCommandWithOutput(taskId, command) {
423
+ return new Promise((resolve, reject) => {
424
+ const execId = `exec_${taskId}_${Date.now()}`;
425
+ const startMarker = `<<TASK_EXEC_START_${execId}>>`;
426
+ const endMarkerPrefix = `<<TASK_EXEC_END_${execId}>>_`;
427
+ pendingTaskExecs.set(execId, {
428
+ taskId,
429
+ resolve,
430
+ reject,
431
+ output: ''
432
+ });
433
+ // Set timeout
434
+ const timeout = setTimeout(() => {
435
+ const pending = pendingTaskExecs.get(execId);
436
+ if (pending) {
437
+ pendingTaskExecs.delete(execId);
438
+ reject(new Error('Command timed out'));
439
+ }
440
+ }, 300000); // 5 minute timeout
441
+ // Store timeout for cleanup
442
+ pendingTaskExecs.get(execId).timeout = timeout;
443
+ // Send wrapped command
444
+ const wrappedCommand = `echo '${startMarker}'; ${command}; echo '${endMarkerPrefix}'$?\n`;
445
+ if (sharedLocalWs && sharedLocalWs.readyState === ws_1.default.OPEN) {
446
+ sharedLocalWs.send(JSON.stringify({ type: 'input', data: wrappedCommand }));
447
+ }
448
+ else {
449
+ pendingTaskExecs.delete(execId);
450
+ clearTimeout(timeout);
451
+ reject(new Error('WebSocket not connected'));
452
+ }
453
+ });
454
+ }
455
+ /**
456
+ * Execute AI chat task (forward to local server for AI processing)
457
+ */
458
+ async function executeAiChatTask(taskId, payload) {
459
+ // AI chat tasks are forwarded to the local web server which handles Claude API
460
+ // The local server will send streaming responses back
461
+ if (!sharedLocalWs || sharedLocalWs.readyState !== ws_1.default.OPEN) {
462
+ throw new Error('Local WebSocket not connected');
463
+ }
464
+ // Send AI chat request to local server
465
+ sharedLocalWs.send(JSON.stringify({
466
+ type: 'ai_chat_task',
467
+ task_id: taskId,
468
+ message: payload.message,
469
+ context: payload.context
470
+ }));
471
+ // The response will come through the normal WebSocket message handler
472
+ // which will detect ai_chat_response and forward appropriately
473
+ }
474
+ /**
475
+ * Execute file read task
476
+ */
477
+ async function executeFileReadTask(taskId, payload) {
478
+ const { file_path } = payload;
479
+ if (!file_path) {
480
+ throw new Error('No file path specified');
481
+ }
482
+ const fs = require('fs').promises;
483
+ try {
484
+ const content = await fs.readFile(file_path, 'utf-8');
485
+ sendToGateway({
486
+ type: 'task_complete',
487
+ task_id: taskId,
488
+ success: true,
489
+ file_content: content
490
+ });
491
+ }
492
+ catch (error) {
493
+ throw new Error(`Failed to read file: ${error.message}`);
494
+ }
495
+ }
496
+ /**
497
+ * Execute file write task
498
+ */
499
+ async function executeFileWriteTask(taskId, payload) {
500
+ const { file_path, file_content } = payload;
501
+ if (!file_path || file_content === undefined) {
502
+ throw new Error('File path and content required');
503
+ }
504
+ const fs = require('fs').promises;
505
+ try {
506
+ await fs.writeFile(file_path, file_content, 'utf-8');
507
+ sendToGateway({
508
+ type: 'task_complete',
509
+ task_id: taskId,
510
+ success: true,
511
+ output: `File written: ${file_path}`
512
+ });
513
+ }
514
+ catch (error) {
515
+ throw new Error(`Failed to write file: ${error.message}`);
516
+ }
517
+ }
518
+ /**
519
+ * Process output from local WebSocket for task execution
520
+ * Called when we receive output that might contain task markers
521
+ */
522
+ function processTaskOutput(data) {
523
+ // Check for task exec markers
524
+ for (const [execId, pending] of pendingTaskExecs.entries()) {
525
+ const startMarker = `<<TASK_EXEC_START_${execId}>>`;
526
+ const endMarkerPrefix = `<<TASK_EXEC_END_${execId}>>_`;
527
+ // Track if we've seen start marker
528
+ const hasSeenStart = pending.hasSeenStart || false;
529
+ // Check if this data contains start marker
530
+ if (!hasSeenStart && data.includes(startMarker)) {
531
+ // Extract content after start marker
532
+ const startIdx = data.indexOf(startMarker);
533
+ data = data.substring(startIdx + startMarker.length);
534
+ // Skip leading newlines
535
+ while (data.startsWith('\n') || data.startsWith('\r')) {
536
+ data = data.substring(1);
537
+ }
538
+ pending.hasSeenStart = true;
539
+ }
540
+ else if (!hasSeenStart) {
541
+ // Haven't seen start marker yet, ignore this chunk (it's command echo)
542
+ continue;
543
+ }
544
+ // Check for end marker first (might be in same chunk as start)
545
+ const endIdx = data.indexOf(endMarkerPrefix);
546
+ if (endIdx !== -1) {
547
+ // Only take content before end marker
548
+ const cleanOutput = data.substring(0, endIdx);
549
+ pending.output += cleanOutput;
550
+ const afterEnd = data.substring(endIdx + endMarkerPrefix.length);
551
+ const exitCodeMatch = afterEnd.match(/^(\d+)/);
552
+ const exitCode = exitCodeMatch ? parseInt(exitCodeMatch[1], 10) : 0;
553
+ // Clear timeout
554
+ if (pending.timeout) {
555
+ clearTimeout(pending.timeout);
556
+ }
557
+ // Send final clean output to gateway
558
+ const finalOutput = pending.output.trim();
559
+ if (currentTask && !currentTask.cancelled) {
560
+ sendToGateway({
561
+ type: 'task_output',
562
+ task_id: pending.taskId,
563
+ chunk: finalOutput,
564
+ is_final: true
565
+ });
566
+ }
567
+ // Resolve promise
568
+ pending.resolve({
569
+ output: finalOutput,
570
+ exitCode
571
+ });
572
+ pendingTaskExecs.delete(execId);
573
+ return;
574
+ }
575
+ // No end marker yet, append clean data (for streaming)
576
+ if (currentTask && !currentTask.cancelled && data.length > 0) {
577
+ pending.output += data;
578
+ // Send streaming chunk to gateway (only clean output)
579
+ sendToGateway({
580
+ type: 'task_output',
581
+ task_id: pending.taskId,
582
+ chunk: data
583
+ });
584
+ }
585
+ }
586
+ }
252
587
  /**
253
588
  * Handle HTTP request forwarded from gateway
254
589
  * Forward it to the local server and send response back
@@ -1 +1 @@
1
- {"version":3,"file":"vortex-tunnel.js","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vortex-tunnel.js","sourceRoot":"","sources":["../src/vortex-tunnel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leverageaiapps/locus-dev",
3
- "version": "1.1.4",
3
+ "version": "2.0.1-dev",
4
4
  "description": "Locus - Forward your terminal to your mobile device. Code anywhere from your pocket.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {