@anastops/adapters 1.0.0 → 1.1.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/base/base-adapter.d.ts +4 -0
- package/dist/base/base-adapter.d.ts.map +1 -1
- package/dist/base/base-adapter.js +14 -2
- package/dist/base/base-adapter.js.map +1 -1
- package/dist/base/detached-exec.d.ts +4 -0
- package/dist/base/detached-exec.d.ts.map +1 -1
- package/dist/base/detached-exec.js +15 -0
- package/dist/base/detached-exec.js.map +1 -1
- package/dist/claude/claude-adapter.d.ts +21 -6
- package/dist/claude/claude-adapter.d.ts.map +1 -1
- package/dist/claude/claude-adapter.js +94 -8
- package/dist/claude/claude-adapter.js.map +1 -1
- package/dist/codex/codex-adapter.d.ts +4 -6
- package/dist/codex/codex-adapter.d.ts.map +1 -1
- package/dist/codex/codex-adapter.js +109 -6
- package/dist/codex/codex-adapter.js.map +1 -1
- package/dist/copilot/copilot-adapter.d.ts +10 -3
- package/dist/copilot/copilot-adapter.d.ts.map +1 -1
- package/dist/copilot/copilot-adapter.js +70 -2
- package/dist/copilot/copilot-adapter.js.map +1 -1
- package/dist/cursor/cursor-adapter.d.ts +2 -6
- package/dist/cursor/cursor-adapter.d.ts.map +1 -1
- package/dist/cursor/cursor-adapter.js +17 -3
- package/dist/cursor/cursor-adapter.js.map +1 -1
- package/dist/gemini/gemini-adapter.d.ts +14 -6
- package/dist/gemini/gemini-adapter.d.ts.map +1 -1
- package/dist/gemini/gemini-adapter.js +80 -15
- package/dist/gemini/gemini-adapter.js.map +1 -1
- package/dist/grok/grok-adapter.d.ts +2 -6
- package/dist/grok/grok-adapter.d.ts.map +1 -1
- package/dist/grok/grok-adapter.js +17 -3
- package/dist/grok/grok-adapter.js.map +1 -1
- package/package.json +3 -3
|
@@ -32,6 +32,10 @@ export interface ExecuteOptions {
|
|
|
32
32
|
stream?: boolean;
|
|
33
33
|
/** Signal for cancellation */
|
|
34
34
|
signal?: AbortSignal;
|
|
35
|
+
/** Callback for streaming progress (called with partial output) */
|
|
36
|
+
onProgress?: (output: string) => void;
|
|
37
|
+
/** Interval for progress callbacks in ms (default: 1000) */
|
|
38
|
+
progressInterval?: number;
|
|
35
39
|
}
|
|
36
40
|
export interface AIProviderAdapter {
|
|
37
41
|
/** Provider type identifier */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/base/base-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACb,MAAM,gBAAgB,CAAC;AAKxB,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uBAAuB;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/base/base-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,13 +31,20 @@ export class BaseAdapter {
|
|
|
31
31
|
let failed;
|
|
32
32
|
if (this.config.useDetachedExec === true) {
|
|
33
33
|
// Use detached process execution to avoid SIGTERM from Cursor
|
|
34
|
-
const
|
|
34
|
+
const detachedOptions = {
|
|
35
35
|
cwd,
|
|
36
36
|
timeout,
|
|
37
37
|
env: { ...process.env, ...this.config.env },
|
|
38
38
|
input: request.prompt,
|
|
39
39
|
signal: options?.signal,
|
|
40
|
-
}
|
|
40
|
+
};
|
|
41
|
+
if (options?.onProgress !== undefined) {
|
|
42
|
+
detachedOptions.onProgress = options.onProgress;
|
|
43
|
+
}
|
|
44
|
+
if (options?.progressInterval !== undefined) {
|
|
45
|
+
detachedOptions.progressInterval = options.progressInterval;
|
|
46
|
+
}
|
|
47
|
+
const result = await detachedExec(this.config.command, args, detachedOptions);
|
|
41
48
|
stdout = result.stdout;
|
|
42
49
|
stderr = result.stderr;
|
|
43
50
|
exitCode = result.exitCode;
|
|
@@ -159,10 +166,15 @@ export class BaseAdapter {
|
|
|
159
166
|
*/
|
|
160
167
|
async isInstalled() {
|
|
161
168
|
try {
|
|
169
|
+
const { appendFileSync } = await import('fs');
|
|
170
|
+
appendFileSync('/tmp/install-check-debug.log', `[${this.type}] Checking isInstalled for: ${this.config.command}\n`);
|
|
162
171
|
const result = await execa('which', [this.config.command], { reject: false });
|
|
172
|
+
appendFileSync('/tmp/install-check-debug.log', `[${this.type}] which exitCode: ${result.exitCode}\n`);
|
|
163
173
|
return result.exitCode === 0;
|
|
164
174
|
}
|
|
165
175
|
catch (error) {
|
|
176
|
+
const { appendFileSync } = await import('fs');
|
|
177
|
+
appendFileSync('/tmp/install-check-debug.log', `[${this.type}] isInstalled error: ${String(error)}\n`);
|
|
166
178
|
console.error(`Failed to check if ${this.config.command} is installed:`, error);
|
|
167
179
|
return false;
|
|
168
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../src/base/base-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../src/base/base-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,10 @@ export interface DetachedExecOptions {
|
|
|
19
19
|
signal?: AbortSignal | undefined;
|
|
20
20
|
/** Long arguments that should be read from files (map: argName -> value) */
|
|
21
21
|
longArgs?: Map<string, string>;
|
|
22
|
+
/** Callback for streaming progress (called with partial stdout) */
|
|
23
|
+
onProgress?: (stdout: string) => void;
|
|
24
|
+
/** Interval for progress callbacks in ms (default: 1000) */
|
|
25
|
+
progressInterval?: number;
|
|
22
26
|
}
|
|
23
27
|
export interface DetachedExecResult {
|
|
24
28
|
/** Exit code */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detached-exec.d.ts","sourceRoot":"","sources":["../../src/base/detached-exec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2BH,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"detached-exec.d.ts","sourceRoot":"","sources":["../../src/base/detached-exec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2BH,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAiL7B"}
|
|
@@ -115,7 +115,9 @@ echo $? > ${escapedExitCodeFile}
|
|
|
115
115
|
child.unref();
|
|
116
116
|
// Poll for completion
|
|
117
117
|
const pollInterval = 250;
|
|
118
|
+
const progressInterval = options.progressInterval ?? 1000;
|
|
118
119
|
let elapsed = 0;
|
|
120
|
+
let lastProgressTime = 0;
|
|
119
121
|
// timeout === 0 means no timeout (run forever until completion)
|
|
120
122
|
while (timeout === 0 || elapsed < timeout) {
|
|
121
123
|
await new Promise((r) => setTimeout(r, pollInterval));
|
|
@@ -124,6 +126,19 @@ echo $? > ${escapedExitCodeFile}
|
|
|
124
126
|
if (existsSync(exitCodeFile)) {
|
|
125
127
|
break;
|
|
126
128
|
}
|
|
129
|
+
// Call progress callback periodically with current stdout
|
|
130
|
+
if (options.onProgress && elapsed - lastProgressTime >= progressInterval) {
|
|
131
|
+
lastProgressTime = elapsed;
|
|
132
|
+
try {
|
|
133
|
+
const partialStdout = existsSync(stdoutFile) ? readFileSync(stdoutFile, 'utf8') : '';
|
|
134
|
+
if (partialStdout) {
|
|
135
|
+
options.onProgress(partialStdout);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Ignore read errors during progress
|
|
140
|
+
}
|
|
141
|
+
}
|
|
127
142
|
// Check abort signal
|
|
128
143
|
if (options.signal?.aborted === true) {
|
|
129
144
|
// Try to kill the detached process group
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detached-exec.js","sourceRoot":"","sources":["../../src/base/detached-exec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEzE;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,oDAAoD;IACpD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,kEAAkE;IAClE,gGAAgG;IAChG,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"detached-exec.js","sourceRoot":"","sources":["../../src/base/detached-exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
* Supports detached process execution to avoid SIGTERM from Cursor.
|
|
6
6
|
* Auto-discovers skills and agents from workspace .claude/ directory.
|
|
7
7
|
* Supports: claude-opus, claude-sonnet, claude-haiku
|
|
8
|
+
*
|
|
9
|
+
* STREAMING: Uses --output-format stream-json for real-time NDJSON output.
|
|
10
|
+
* Each line is a JSON event with types: system, user, assistant, tool_use, tool_result, result.
|
|
8
11
|
*/
|
|
9
12
|
import type { AIRequest, AIResponse, ProviderType } from '@anastops/core';
|
|
10
|
-
import { BaseAdapter, type AdapterConfig } from '../base/base-adapter.js';
|
|
13
|
+
import { BaseAdapter, type AdapterConfig, type ExecuteOptions } from '../base/base-adapter.js';
|
|
11
14
|
export declare class ClaudeAdapter extends BaseAdapter {
|
|
12
15
|
readonly type: ProviderType;
|
|
13
16
|
readonly name = "Claude Code CLI";
|
|
@@ -33,14 +36,26 @@ export declare class ClaudeAdapter extends BaseAdapter {
|
|
|
33
36
|
* Discover available agents from workspace .claude/agents/ directory
|
|
34
37
|
*/
|
|
35
38
|
private discoverAgents;
|
|
39
|
+
/**
|
|
40
|
+
* Parse NDJSON stream output from Claude CLI (--output-format stream-json)
|
|
41
|
+
* Returns accumulated assistant text and final usage stats
|
|
42
|
+
*
|
|
43
|
+
* NDJSON event structure:
|
|
44
|
+
* - system: init info
|
|
45
|
+
* - assistant: { message: { content: [{ type: 'text', text: '...' }] } }
|
|
46
|
+
* - user: tool results
|
|
47
|
+
* - result: { result: '...', usage: {...} }
|
|
48
|
+
*/
|
|
49
|
+
private parseStreamJson;
|
|
50
|
+
/**
|
|
51
|
+
* Calculate cost for Claude models
|
|
52
|
+
*/
|
|
53
|
+
private calculateCost;
|
|
36
54
|
/**
|
|
37
55
|
* Execute using Claude CLI with --print flag for headless operation
|
|
56
|
+
* Uses --output-format stream-json for real-time streaming
|
|
38
57
|
*/
|
|
39
|
-
execute(request: AIRequest, options?:
|
|
40
|
-
workingDir?: string;
|
|
41
|
-
timeout?: number;
|
|
42
|
-
signal?: AbortSignal;
|
|
43
|
-
}): Promise<AIResponse>;
|
|
58
|
+
execute(request: AIRequest, options?: ExecuteOptions): Promise<AIResponse>;
|
|
44
59
|
/**
|
|
45
60
|
* Map short model aliases (from agent configs) to standard names
|
|
46
61
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-adapter.d.ts","sourceRoot":"","sources":["../../src/claude/claude-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-adapter.d.ts","sourceRoot":"","sources":["../../src/claude/claude-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA4E/F,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,IAAI,qBAAqB;gBAEtB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAUrC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;OAEG;IACH,OAAO,CAAC,cAAc;IAwCtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA2CtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAoCtB;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAsEvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAmJhF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE;IAIlD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9C,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAUxC,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAmBvC,SAAS,CAAC,mBAAmB,IAAI,OAAO;IAIxC,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC"}
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
* Supports detached process execution to avoid SIGTERM from Cursor.
|
|
6
6
|
* Auto-discovers skills and agents from workspace .claude/ directory.
|
|
7
7
|
* Supports: claude-opus, claude-sonnet, claude-haiku
|
|
8
|
+
*
|
|
9
|
+
* STREAMING: Uses --output-format stream-json for real-time NDJSON output.
|
|
10
|
+
* Each line is a JSON event with types: system, user, assistant, tool_use, tool_result, result.
|
|
8
11
|
*/
|
|
9
12
|
import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
10
13
|
import { join } from 'path';
|
|
@@ -235,8 +238,72 @@ ${agentDescriptions.join('\n')}`;
|
|
|
235
238
|
return '';
|
|
236
239
|
}
|
|
237
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Parse NDJSON stream output from Claude CLI (--output-format stream-json)
|
|
243
|
+
* Returns accumulated assistant text and final usage stats
|
|
244
|
+
*
|
|
245
|
+
* NDJSON event structure:
|
|
246
|
+
* - system: init info
|
|
247
|
+
* - assistant: { message: { content: [{ type: 'text', text: '...' }] } }
|
|
248
|
+
* - user: tool results
|
|
249
|
+
* - result: { result: '...', usage: {...} }
|
|
250
|
+
*/
|
|
251
|
+
parseStreamJson(output) {
|
|
252
|
+
const lines = output.split('\n').filter((l) => l.trim());
|
|
253
|
+
const textParts = [];
|
|
254
|
+
let usage = null;
|
|
255
|
+
for (const line of lines) {
|
|
256
|
+
try {
|
|
257
|
+
const event = JSON.parse(line);
|
|
258
|
+
// Extract text from assistant messages (nested in message.content)
|
|
259
|
+
if (event.type === 'assistant' && event.message?.content) {
|
|
260
|
+
for (const block of event.message.content) {
|
|
261
|
+
if (block.type === 'text' && typeof block.text === 'string' && block.text.length > 0) {
|
|
262
|
+
textParts.push(block.text);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// Extract final result summary
|
|
267
|
+
if (event.type === 'result') {
|
|
268
|
+
// Extract usage from result event
|
|
269
|
+
if (event.usage) {
|
|
270
|
+
const inputTokens = (event.usage.input_tokens ?? 0) +
|
|
271
|
+
(event.usage.cache_creation_input_tokens ?? 0) +
|
|
272
|
+
(event.usage.cache_read_input_tokens ?? 0);
|
|
273
|
+
const outputTokens = event.usage.output_tokens ?? 0;
|
|
274
|
+
usage = {
|
|
275
|
+
prompt_tokens: inputTokens,
|
|
276
|
+
completion_tokens: outputTokens,
|
|
277
|
+
total_tokens: inputTokens + outputTokens,
|
|
278
|
+
cost: this.calculateCost(inputTokens, outputTokens),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
// Use result as fallback content if no assistant text captured
|
|
282
|
+
if (textParts.length === 0 &&
|
|
283
|
+
typeof event.result === 'string' &&
|
|
284
|
+
event.result.length > 0) {
|
|
285
|
+
textParts.push(event.result);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
// Skip lines that aren't valid JSON (shouldn't happen with stream-json)
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return { content: textParts.join('\n'), usage };
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Calculate cost for Claude models
|
|
297
|
+
*/
|
|
298
|
+
calculateCost(inputTokens, outputTokens) {
|
|
299
|
+
// Claude Sonnet pricing (default)
|
|
300
|
+
const inputCost = (inputTokens / 1000) * 0.003;
|
|
301
|
+
const outputCost = (outputTokens / 1000) * 0.015;
|
|
302
|
+
return inputCost + outputCost;
|
|
303
|
+
}
|
|
238
304
|
/**
|
|
239
305
|
* Execute using Claude CLI with --print flag for headless operation
|
|
306
|
+
* Uses --output-format stream-json for real-time streaming
|
|
240
307
|
*/
|
|
241
308
|
async execute(request, options) {
|
|
242
309
|
const startTime = Date.now();
|
|
@@ -270,11 +337,12 @@ ${agentDescriptions.join('\n')}`;
|
|
|
270
337
|
// Discover available skills and agents in workspace (for non-agent tasks)
|
|
271
338
|
const skillsPrompt = agent ? '' : this.discoverSkills(cwd);
|
|
272
339
|
const agentsPrompt = agent ? '' : this.discoverAgents(cwd);
|
|
273
|
-
// Build CLI arguments
|
|
340
|
+
// Build CLI arguments - use stream-json for real-time streaming
|
|
274
341
|
const args = [
|
|
275
342
|
'--print', // Non-interactive headless mode
|
|
276
343
|
'--output-format',
|
|
277
|
-
'
|
|
344
|
+
'stream-json', // NDJSON streaming output for real-time updates
|
|
345
|
+
'--verbose', // Include detailed events
|
|
278
346
|
'--dangerously-skip-permissions', // YOLO mode - skip all permission prompts
|
|
279
347
|
'--model',
|
|
280
348
|
resolvedModel,
|
|
@@ -314,15 +382,32 @@ ${agentDescriptions.join('\n')}`;
|
|
|
314
382
|
const allowedTools = agent?.tools ??
|
|
315
383
|
request.allowed_tools ?? ['Read', 'Write', 'Edit', 'MultiEdit', 'Bash', 'Glob', 'Grep', 'LS'];
|
|
316
384
|
args.push('--allowedTools', ...allowedTools);
|
|
317
|
-
//
|
|
318
|
-
|
|
385
|
+
// Track last parsed content for progress updates
|
|
386
|
+
let lastContent = '';
|
|
387
|
+
// Build detached exec options
|
|
388
|
+
const execOptions = {
|
|
319
389
|
cwd,
|
|
320
390
|
timeout,
|
|
321
391
|
env: process.env,
|
|
322
392
|
input: request.prompt,
|
|
323
393
|
signal: options?.signal,
|
|
324
394
|
longArgs,
|
|
325
|
-
}
|
|
395
|
+
};
|
|
396
|
+
// Add progress callback if provided
|
|
397
|
+
if (options?.onProgress) {
|
|
398
|
+
execOptions.onProgress = (rawOutput) => {
|
|
399
|
+
// Parse NDJSON and extract content so far
|
|
400
|
+
const { content } = this.parseStreamJson(rawOutput);
|
|
401
|
+
// Only call onProgress if content has changed
|
|
402
|
+
if (content.length > 0 && content !== lastContent) {
|
|
403
|
+
lastContent = content;
|
|
404
|
+
options.onProgress?.(content);
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
execOptions.progressInterval = options.progressInterval ?? 1000;
|
|
408
|
+
}
|
|
409
|
+
// Execute with detached process to avoid SIGTERM from Cursor
|
|
410
|
+
const result = await detachedExec(this.config.command, args, execOptions);
|
|
326
411
|
if (result.failed) {
|
|
327
412
|
const errorDetails = [
|
|
328
413
|
`Exit code: ${result.exitCode}`,
|
|
@@ -333,12 +418,13 @@ ${agentDescriptions.join('\n')}`;
|
|
|
333
418
|
throw new Error(`Claude CLI failed: ${errorDetails}`);
|
|
334
419
|
}
|
|
335
420
|
const latencyMs = Date.now() - startTime;
|
|
336
|
-
|
|
337
|
-
const usage = this.
|
|
421
|
+
// Parse final NDJSON output
|
|
422
|
+
const { content, usage } = this.parseStreamJson(result.stdout);
|
|
423
|
+
const finalUsage = usage ?? this.estimateUsage(request.prompt, content);
|
|
338
424
|
return {
|
|
339
425
|
content: content || 'Task completed',
|
|
340
426
|
model: resolvedModel,
|
|
341
|
-
usage,
|
|
427
|
+
usage: finalUsage,
|
|
342
428
|
finish_reason: 'stop',
|
|
343
429
|
metadata: {
|
|
344
430
|
latency_ms: latencyMs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-adapter.js","sourceRoot":"","sources":["../../src/claude/claude-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-adapter.js","sourceRoot":"","sources":["../../src/claude/claude-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Integrates with OpenAI's Codex CLI for code generation.
|
|
5
5
|
* Uses `codex exec` for non-interactive execution.
|
|
6
|
+
*
|
|
7
|
+
* STREAMING: Uses detached execution with progress callbacks for real-time output.
|
|
6
8
|
*/
|
|
7
9
|
import type { AIRequest, AIResponse, ProviderType } from '@anastops/core';
|
|
8
|
-
import { BaseAdapter, type AdapterConfig } from '../base/base-adapter.js';
|
|
10
|
+
import { BaseAdapter, type AdapterConfig, type ExecuteOptions } from '../base/base-adapter.js';
|
|
9
11
|
export declare class CodexAdapter extends BaseAdapter {
|
|
10
12
|
readonly type: ProviderType;
|
|
11
13
|
readonly name = "OpenAI Codex";
|
|
@@ -14,11 +16,7 @@ export declare class CodexAdapter extends BaseAdapter {
|
|
|
14
16
|
/**
|
|
15
17
|
* Execute using Codex CLI with `exec` subcommand for non-interactive operation
|
|
16
18
|
*/
|
|
17
|
-
execute(request: AIRequest, options?:
|
|
18
|
-
workingDir?: string;
|
|
19
|
-
timeout?: number;
|
|
20
|
-
signal?: AbortSignal;
|
|
21
|
-
}): Promise<AIResponse>;
|
|
19
|
+
execute(request: AIRequest, options?: ExecuteOptions): Promise<AIResponse>;
|
|
22
20
|
protected buildArgs(_request: AIRequest): string[];
|
|
23
21
|
protected parseOutput(output: string): string;
|
|
24
22
|
protected getDefaultModel(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../src/codex/codex-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../src/codex/codex-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmE/F,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAW;IACtC,QAAQ,CAAC,IAAI,kBAAkB;gBAEnB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAU3C,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAgCnC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA0EhF,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE;IAKlD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9C,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAaxC,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC"}
|
|
@@ -3,15 +3,80 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Integrates with OpenAI's Codex CLI for code generation.
|
|
5
5
|
* Uses `codex exec` for non-interactive execution.
|
|
6
|
+
*
|
|
7
|
+
* STREAMING: Uses detached execution with progress callbacks for real-time output.
|
|
6
8
|
*/
|
|
9
|
+
import { existsSync, readdirSync, constants, accessSync } from 'fs';
|
|
10
|
+
import { join } from 'path';
|
|
11
|
+
import { execaSync } from 'execa';
|
|
7
12
|
import { BaseAdapter } from '../base/base-adapter.js';
|
|
8
13
|
import { detachedExec } from '../base/detached-exec.js';
|
|
14
|
+
/**
|
|
15
|
+
* Discover the Codex CLI path dynamically
|
|
16
|
+
*/
|
|
17
|
+
function discoverCodexPath() {
|
|
18
|
+
const home = process.env['HOME'] ?? '';
|
|
19
|
+
// Check common paths first
|
|
20
|
+
const commonPaths = [
|
|
21
|
+
'/usr/local/bin/codex',
|
|
22
|
+
'/opt/homebrew/bin/codex',
|
|
23
|
+
`${home}/.local/bin/codex`,
|
|
24
|
+
];
|
|
25
|
+
for (const p of commonPaths) {
|
|
26
|
+
if (existsSync(p))
|
|
27
|
+
return p;
|
|
28
|
+
}
|
|
29
|
+
// Check nvm paths - prefer newest version (sort descending)
|
|
30
|
+
const nvmDir = `${home}/.nvm/versions/node`;
|
|
31
|
+
if (existsSync(nvmDir)) {
|
|
32
|
+
try {
|
|
33
|
+
const versions = readdirSync(nvmDir)
|
|
34
|
+
.filter((v) => v.startsWith('v'))
|
|
35
|
+
.sort((a, b) => {
|
|
36
|
+
// Parse version numbers for proper sorting (v20.19.4 > v18.17.0)
|
|
37
|
+
const parseVer = (v) => v
|
|
38
|
+
.replace('v', '')
|
|
39
|
+
.split('.')
|
|
40
|
+
.map((n) => parseInt(n, 10));
|
|
41
|
+
const av = parseVer(a);
|
|
42
|
+
const bv = parseVer(b);
|
|
43
|
+
for (let i = 0; i < 3; i++) {
|
|
44
|
+
const diff = (bv[i] ?? 0) - (av[i] ?? 0);
|
|
45
|
+
if (diff !== 0)
|
|
46
|
+
return diff;
|
|
47
|
+
}
|
|
48
|
+
return 0;
|
|
49
|
+
});
|
|
50
|
+
for (const v of versions) {
|
|
51
|
+
const codexPath = `${nvmDir}/${v}/bin/codex`;
|
|
52
|
+
if (existsSync(codexPath)) {
|
|
53
|
+
return codexPath;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Ignore errors reading nvm directory
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Try `which codex` to find it in PATH
|
|
62
|
+
try {
|
|
63
|
+
const result = execaSync('which', ['codex'], { reject: false });
|
|
64
|
+
if (result.exitCode === 0 && result.stdout.trim()) {
|
|
65
|
+
return result.stdout.trim();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Ignore errors
|
|
70
|
+
}
|
|
71
|
+
// Fallback to just 'codex' and hope it's in PATH
|
|
72
|
+
return 'codex';
|
|
73
|
+
}
|
|
9
74
|
export class CodexAdapter extends BaseAdapter {
|
|
10
75
|
type = 'codex';
|
|
11
76
|
name = 'OpenAI Codex';
|
|
12
77
|
constructor(config) {
|
|
13
78
|
super({
|
|
14
|
-
command:
|
|
79
|
+
command: config?.command ?? discoverCodexPath(),
|
|
15
80
|
defaultArgs: [],
|
|
16
81
|
defaultTimeout: 600000, // 10 minutes
|
|
17
82
|
useDetachedExec: true,
|
|
@@ -19,8 +84,32 @@ export class CodexAdapter extends BaseAdapter {
|
|
|
19
84
|
});
|
|
20
85
|
}
|
|
21
86
|
isAuthenticated() {
|
|
22
|
-
// Check for OPENAI_API_KEY
|
|
23
|
-
|
|
87
|
+
// 1. Check for OPENAI_API_KEY environment variable
|
|
88
|
+
if (process.env['OPENAI_API_KEY'] !== undefined) {
|
|
89
|
+
return Promise.resolve(true);
|
|
90
|
+
}
|
|
91
|
+
// 2. Check for OpenAI config file (~/.openai/auth.json or ~/.config/openai/auth.json)
|
|
92
|
+
const home = process.env['HOME'] ?? '';
|
|
93
|
+
const configPaths = [
|
|
94
|
+
join(home, '.openai', 'auth.json'),
|
|
95
|
+
join(home, '.config', 'openai', 'auth.json'),
|
|
96
|
+
];
|
|
97
|
+
for (const configPath of configPaths) {
|
|
98
|
+
if (existsSync(configPath)) {
|
|
99
|
+
return Promise.resolve(true);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// 3. Fallback: Check if CLI is installed and executable
|
|
103
|
+
// If the CLI exists, assume it may have browser-based or other auth
|
|
104
|
+
try {
|
|
105
|
+
accessSync(this.config.command, constants.X_OK);
|
|
106
|
+
return Promise.resolve(true);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// CLI not found or not executable
|
|
110
|
+
}
|
|
111
|
+
// No explicit authentication found
|
|
112
|
+
return Promise.resolve(false);
|
|
24
113
|
}
|
|
25
114
|
/**
|
|
26
115
|
* Execute using Codex CLI with `exec` subcommand for non-interactive operation
|
|
@@ -42,13 +131,27 @@ export class CodexAdapter extends BaseAdapter {
|
|
|
42
131
|
args.push('--model', model);
|
|
43
132
|
// Add the prompt
|
|
44
133
|
args.push(request.prompt);
|
|
45
|
-
//
|
|
46
|
-
|
|
134
|
+
// Track last content for progress
|
|
135
|
+
let lastContent = '';
|
|
136
|
+
// Build detached exec options
|
|
137
|
+
const execOptions = {
|
|
47
138
|
cwd,
|
|
48
139
|
timeout,
|
|
49
140
|
env: process.env,
|
|
50
141
|
signal: options?.signal,
|
|
51
|
-
}
|
|
142
|
+
};
|
|
143
|
+
// Add progress callback if provided
|
|
144
|
+
if (options?.onProgress) {
|
|
145
|
+
execOptions.onProgress = (rawOutput) => {
|
|
146
|
+
if (rawOutput.length > 0 && rawOutput !== lastContent) {
|
|
147
|
+
lastContent = rawOutput;
|
|
148
|
+
options.onProgress?.(rawOutput);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
execOptions.progressInterval = options.progressInterval ?? 1000;
|
|
152
|
+
}
|
|
153
|
+
// Execute with detached process
|
|
154
|
+
const result = await detachedExec(this.config.command, args, execOptions);
|
|
52
155
|
if (result.failed) {
|
|
53
156
|
const errorDetails = [
|
|
54
157
|
`Exit code: ${result.exitCode}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/codex/codex-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/codex/codex-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CopilotAdapter - GitHub Copilot CLI adapter
|
|
3
3
|
*
|
|
4
|
-
* Integrates with GitHub Copilot CLI.
|
|
4
|
+
* Integrates with GitHub Copilot CLI for command suggestions.
|
|
5
|
+
* Uses `gh copilot suggest` for suggestions and `gh copilot explain` for explanations.
|
|
6
|
+
*
|
|
7
|
+
* STREAMING: Uses detached execution with progress callbacks for real-time output.
|
|
5
8
|
*/
|
|
6
|
-
import type { AIRequest, ProviderType } from '@anastops/core';
|
|
7
|
-
import { BaseAdapter, type AdapterConfig } from '../base/base-adapter.js';
|
|
9
|
+
import type { AIRequest, AIResponse, ProviderType } from '@anastops/core';
|
|
10
|
+
import { BaseAdapter, type AdapterConfig, type ExecuteOptions } from '../base/base-adapter.js';
|
|
8
11
|
export declare class CopilotAdapter extends BaseAdapter {
|
|
9
12
|
readonly type: ProviderType;
|
|
10
13
|
readonly name = "GitHub Copilot";
|
|
11
14
|
constructor(config?: Partial<AdapterConfig>);
|
|
12
15
|
isAuthenticated(): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Execute using GitHub Copilot CLI with suggest or explain commands
|
|
18
|
+
*/
|
|
19
|
+
execute(request: AIRequest, options?: ExecuteOptions): Promise<AIResponse>;
|
|
13
20
|
protected buildArgs(request: AIRequest): string[];
|
|
14
21
|
protected parseOutput(output: string): string;
|
|
15
22
|
protected getDefaultModel(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-adapter.d.ts","sourceRoot":"","sources":["../../src/copilot/copilot-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"copilot-adapter.d.ts","sourceRoot":"","sources":["../../src/copilot/copilot-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG/F,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAa;IACxC,QAAQ,CAAC,IAAI,oBAAoB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAUrC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA0EhF,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE;IAYjD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK7C,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKxC,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAcrC,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIxC,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CopilotAdapter - GitHub Copilot CLI adapter
|
|
3
3
|
*
|
|
4
|
-
* Integrates with GitHub Copilot CLI.
|
|
4
|
+
* Integrates with GitHub Copilot CLI for command suggestions.
|
|
5
|
+
* Uses `gh copilot suggest` for suggestions and `gh copilot explain` for explanations.
|
|
6
|
+
*
|
|
7
|
+
* STREAMING: Uses detached execution with progress callbacks for real-time output.
|
|
5
8
|
*/
|
|
6
9
|
import { execa } from 'execa';
|
|
7
10
|
import { BaseAdapter } from '../base/base-adapter.js';
|
|
11
|
+
import { detachedExec } from '../base/detached-exec.js';
|
|
8
12
|
export class CopilotAdapter extends BaseAdapter {
|
|
9
13
|
type = 'copilot';
|
|
10
14
|
name = 'GitHub Copilot';
|
|
@@ -13,6 +17,7 @@ export class CopilotAdapter extends BaseAdapter {
|
|
|
13
17
|
command: 'gh',
|
|
14
18
|
defaultArgs: ['copilot', 'suggest'],
|
|
15
19
|
defaultTimeout: 600000, // 10 minutes
|
|
20
|
+
useDetachedExec: true, // Required for streaming support
|
|
16
21
|
...config,
|
|
17
22
|
});
|
|
18
23
|
}
|
|
@@ -25,6 +30,69 @@ export class CopilotAdapter extends BaseAdapter {
|
|
|
25
30
|
return false;
|
|
26
31
|
}
|
|
27
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Execute using GitHub Copilot CLI with suggest or explain commands
|
|
35
|
+
*/
|
|
36
|
+
async execute(request, options) {
|
|
37
|
+
const startTime = Date.now();
|
|
38
|
+
const cwd = options?.workingDir ?? request.working_dir ?? this.config.workingDir ?? process.cwd();
|
|
39
|
+
const timeout = options?.timeout ?? request.timeout ?? this.config.defaultTimeout ?? 600000;
|
|
40
|
+
// Determine mode - default to suggest, use explain if prompt starts with "explain"
|
|
41
|
+
const isExplain = request.prompt.toLowerCase().startsWith('explain ');
|
|
42
|
+
const subcommand = isExplain ? 'explain' : 'suggest';
|
|
43
|
+
// Build CLI arguments
|
|
44
|
+
const args = ['copilot', subcommand];
|
|
45
|
+
// For suggest, add target type
|
|
46
|
+
if (!isExplain) {
|
|
47
|
+
args.push('-t', 'shell'); // Default to shell suggestions
|
|
48
|
+
}
|
|
49
|
+
// Add prompt
|
|
50
|
+
args.push(request.prompt);
|
|
51
|
+
// Track last content for progress
|
|
52
|
+
let lastContent = '';
|
|
53
|
+
// Build detached exec options
|
|
54
|
+
const execOptions = {
|
|
55
|
+
cwd,
|
|
56
|
+
timeout,
|
|
57
|
+
env: process.env,
|
|
58
|
+
signal: options?.signal,
|
|
59
|
+
};
|
|
60
|
+
// Add progress callback if provided
|
|
61
|
+
if (options?.onProgress) {
|
|
62
|
+
execOptions.onProgress = (rawOutput) => {
|
|
63
|
+
if (rawOutput.length > 0 && rawOutput !== lastContent) {
|
|
64
|
+
lastContent = rawOutput;
|
|
65
|
+
options.onProgress?.(rawOutput);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
execOptions.progressInterval = options.progressInterval ?? 1000;
|
|
69
|
+
}
|
|
70
|
+
// Execute with detached process
|
|
71
|
+
const result = await detachedExec(this.config.command, args, execOptions);
|
|
72
|
+
if (result.failed) {
|
|
73
|
+
const errorDetails = [
|
|
74
|
+
`Exit code: ${result.exitCode}`,
|
|
75
|
+
`Stdout: ${result.stdout.slice(0, 500) || '(empty)'}`,
|
|
76
|
+
`Stderr: ${result.stderr.slice(0, 500) || '(empty)'}`,
|
|
77
|
+
].join(' | ');
|
|
78
|
+
throw new Error(`GitHub Copilot CLI failed: ${errorDetails}`);
|
|
79
|
+
}
|
|
80
|
+
const latencyMs = Date.now() - startTime;
|
|
81
|
+
const content = result.stdout.trim();
|
|
82
|
+
const usage = this.estimateUsage(request.prompt, content);
|
|
83
|
+
return {
|
|
84
|
+
content: content || 'Task completed',
|
|
85
|
+
model: 'copilot',
|
|
86
|
+
usage,
|
|
87
|
+
finish_reason: 'stop',
|
|
88
|
+
metadata: {
|
|
89
|
+
latency_ms: latencyMs,
|
|
90
|
+
provider: this.type,
|
|
91
|
+
exit_code: result.exitCode,
|
|
92
|
+
subcommand,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
28
96
|
buildArgs(request) {
|
|
29
97
|
const args = [...(this.config.defaultArgs ?? [])];
|
|
30
98
|
// Copilot suggest types
|
|
@@ -77,7 +145,7 @@ export class CopilotAdapter extends BaseAdapter {
|
|
|
77
145
|
return ['suggest', 'explain'];
|
|
78
146
|
}
|
|
79
147
|
supportsStreaming() {
|
|
80
|
-
return
|
|
148
|
+
return true;
|
|
81
149
|
}
|
|
82
150
|
getContextWindow() {
|
|
83
151
|
return 8000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-adapter.js","sourceRoot":"","sources":["../../src/copilot/copilot-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"copilot-adapter.js","sourceRoot":"","sources":["../../src/copilot/copilot-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses `--print` for headless/non-interactive mode.
|
|
6
6
|
*/
|
|
7
7
|
import type { AIRequest, AIResponse, ProviderType } from '@anastops/core';
|
|
8
|
-
import { BaseAdapter, type AdapterConfig } from '../base/base-adapter.js';
|
|
8
|
+
import { BaseAdapter, type AdapterConfig, type ExecuteOptions } from '../base/base-adapter.js';
|
|
9
9
|
export declare class CursorAdapter extends BaseAdapter {
|
|
10
10
|
readonly type: ProviderType;
|
|
11
11
|
readonly name = "Cursor Agent";
|
|
@@ -14,11 +14,7 @@ export declare class CursorAdapter extends BaseAdapter {
|
|
|
14
14
|
/**
|
|
15
15
|
* Execute using cursor-agent CLI with --print for headless mode
|
|
16
16
|
*/
|
|
17
|
-
execute(request: AIRequest, options?:
|
|
18
|
-
workingDir?: string;
|
|
19
|
-
timeout?: number;
|
|
20
|
-
signal?: AbortSignal;
|
|
21
|
-
}): Promise<AIResponse>;
|
|
17
|
+
execute(request: AIRequest, options?: ExecuteOptions): Promise<AIResponse>;
|
|
22
18
|
protected buildArgs(_request: AIRequest): string[];
|
|
23
19
|
protected parseOutput(output: string): string;
|
|
24
20
|
protected getDefaultModel(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-adapter.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor-adapter.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG/F,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,IAAI,kBAAkB;gBAEnB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAUrC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAazC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA8EhF,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE;IAKlD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9C,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAaxC,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC"}
|
|
@@ -56,13 +56,27 @@ export class CursorAdapter extends BaseAdapter {
|
|
|
56
56
|
args.push('--model', model);
|
|
57
57
|
// Add the prompt
|
|
58
58
|
args.push(request.prompt);
|
|
59
|
-
//
|
|
60
|
-
|
|
59
|
+
// Track last content for progress
|
|
60
|
+
let lastContent = '';
|
|
61
|
+
// Build detached exec options
|
|
62
|
+
const execOptions = {
|
|
61
63
|
cwd,
|
|
62
64
|
timeout,
|
|
63
65
|
env: process.env,
|
|
64
66
|
signal: options?.signal,
|
|
65
|
-
}
|
|
67
|
+
};
|
|
68
|
+
// Add progress callback if provided
|
|
69
|
+
if (options?.onProgress) {
|
|
70
|
+
execOptions.onProgress = (rawOutput) => {
|
|
71
|
+
if (rawOutput.length > 0 && rawOutput !== lastContent) {
|
|
72
|
+
lastContent = rawOutput;
|
|
73
|
+
options.onProgress?.(rawOutput);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
execOptions.progressInterval = options.progressInterval ?? 1000;
|
|
77
|
+
}
|
|
78
|
+
// Execute with detached process
|
|
79
|
+
const result = await detachedExec(this.config.command, args, execOptions);
|
|
66
80
|
if (result.failed) {
|
|
67
81
|
const errorDetails = [
|
|
68
82
|
`Exit code: ${result.exitCode}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-adapter.js","sourceRoot":"","sources":["../../src/cursor/cursor-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"cursor-adapter.js","sourceRoot":"","sources":["../../src/cursor/cursor-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,22 +3,30 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Integrates with Google's Gemini CLI for AI assistance.
|
|
5
5
|
* Uses positional prompt with --yolo for non-interactive execution.
|
|
6
|
+
*
|
|
7
|
+
* STREAMING: Uses --output-format json for structured output with streaming support.
|
|
6
8
|
*/
|
|
7
9
|
import type { AIRequest, AIResponse, ProviderType } from '@anastops/core';
|
|
8
|
-
import { BaseAdapter, type AdapterConfig } from '../base/base-adapter.js';
|
|
10
|
+
import { BaseAdapter, type AdapterConfig, type ExecuteOptions } from '../base/base-adapter.js';
|
|
9
11
|
export declare class GeminiAdapter extends BaseAdapter {
|
|
10
12
|
readonly type: ProviderType;
|
|
11
13
|
readonly name = "Google Gemini";
|
|
12
14
|
constructor(config?: Partial<AdapterConfig>);
|
|
13
15
|
isAuthenticated(): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Parse JSON output from Gemini CLI
|
|
18
|
+
* Gemini outputs structured JSON with response and usage fields
|
|
19
|
+
*/
|
|
20
|
+
private parseGeminiJson;
|
|
21
|
+
/**
|
|
22
|
+
* Calculate cost for Gemini models
|
|
23
|
+
*/
|
|
24
|
+
private calculateCost;
|
|
14
25
|
/**
|
|
15
26
|
* Execute using Gemini CLI with --yolo for auto-approve
|
|
27
|
+
* Uses --output-format json for structured streaming output
|
|
16
28
|
*/
|
|
17
|
-
execute(request: AIRequest, options?:
|
|
18
|
-
workingDir?: string;
|
|
19
|
-
timeout?: number;
|
|
20
|
-
signal?: AbortSignal;
|
|
21
|
-
}): Promise<AIResponse>;
|
|
29
|
+
execute(request: AIRequest, options?: ExecuteOptions): Promise<AIResponse>;
|
|
22
30
|
protected buildArgs(_request: AIRequest): string[];
|
|
23
31
|
protected parseOutput(output: string): string;
|
|
24
32
|
protected getDefaultModel(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-adapter.d.ts","sourceRoot":"","sources":["../../src/gemini/gemini-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gemini-adapter.d.ts","sourceRoot":"","sources":["../../src/gemini/gemini-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG/F,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,IAAI,mBAAmB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAU3C,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IA4BnC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAsEhF,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE;IAKlD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9C,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIxC,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC"}
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Integrates with Google's Gemini CLI for AI assistance.
|
|
5
5
|
* Uses positional prompt with --yolo for non-interactive execution.
|
|
6
|
+
*
|
|
7
|
+
* STREAMING: Uses --output-format json for structured output with streaming support.
|
|
6
8
|
*/
|
|
7
|
-
import {
|
|
9
|
+
import { existsSync, constants, accessSync } from 'fs';
|
|
10
|
+
import { join } from 'path';
|
|
8
11
|
import { BaseAdapter } from '../base/base-adapter.js';
|
|
9
12
|
import { detachedExec } from '../base/detached-exec.js';
|
|
10
13
|
export class GeminiAdapter extends BaseAdapter {
|
|
@@ -19,40 +22,101 @@ export class GeminiAdapter extends BaseAdapter {
|
|
|
19
22
|
...config,
|
|
20
23
|
});
|
|
21
24
|
}
|
|
22
|
-
|
|
23
|
-
// Check for GOOGLE_API_KEY
|
|
25
|
+
isAuthenticated() {
|
|
26
|
+
// 1. Check for GOOGLE_API_KEY environment variable
|
|
24
27
|
if (process.env['GOOGLE_API_KEY'] !== undefined) {
|
|
25
|
-
return true;
|
|
28
|
+
return Promise.resolve(true);
|
|
29
|
+
}
|
|
30
|
+
// 2. Check for Gemini CLI OAuth credentials file (~/.gemini/oauth_creds.json)
|
|
31
|
+
const home = process.env['HOME'] ?? '';
|
|
32
|
+
const oauthCredsPath = join(home, '.gemini', 'oauth_creds.json');
|
|
33
|
+
if (existsSync(oauthCredsPath)) {
|
|
34
|
+
return Promise.resolve(true);
|
|
26
35
|
}
|
|
36
|
+
// 3. Fallback: Check if CLI is installed and executable
|
|
37
|
+
// If the CLI exists, assume it may have browser-based or other auth
|
|
38
|
+
// NOTE: Do NOT use `gemini models list` as it hangs in non-interactive mode
|
|
39
|
+
try {
|
|
40
|
+
accessSync(this.config.command, constants.X_OK);
|
|
41
|
+
return Promise.resolve(true);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// CLI not found or not executable
|
|
45
|
+
}
|
|
46
|
+
// No explicit authentication found
|
|
47
|
+
return Promise.resolve(false);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parse JSON output from Gemini CLI
|
|
51
|
+
* Gemini outputs structured JSON with response and usage fields
|
|
52
|
+
*/
|
|
53
|
+
parseGeminiJson(output) {
|
|
54
|
+
// Try to parse as JSON first
|
|
27
55
|
try {
|
|
28
|
-
const
|
|
29
|
-
|
|
56
|
+
const parsed = JSON.parse(output);
|
|
57
|
+
const content = parsed.response ?? '';
|
|
58
|
+
let usage = null;
|
|
59
|
+
if (parsed.usage) {
|
|
60
|
+
usage = {
|
|
61
|
+
prompt_tokens: parsed.usage.prompt_tokens ?? 0,
|
|
62
|
+
completion_tokens: parsed.usage.completion_tokens ?? 0,
|
|
63
|
+
total_tokens: parsed.usage.total_tokens ?? 0,
|
|
64
|
+
cost: this.calculateCost(parsed.usage.prompt_tokens ?? 0, parsed.usage.completion_tokens ?? 0),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return { content, usage };
|
|
30
68
|
}
|
|
31
69
|
catch {
|
|
32
|
-
return
|
|
70
|
+
// If not JSON, return raw output
|
|
71
|
+
return { content: output.trim(), usage: null };
|
|
33
72
|
}
|
|
34
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Calculate cost for Gemini models
|
|
76
|
+
*/
|
|
77
|
+
calculateCost(inputTokens, outputTokens) {
|
|
78
|
+
const inputCost = (inputTokens / 1000) * 0.000075;
|
|
79
|
+
const outputCost = (outputTokens / 1000) * 0.0003;
|
|
80
|
+
return inputCost + outputCost;
|
|
81
|
+
}
|
|
35
82
|
/**
|
|
36
83
|
* Execute using Gemini CLI with --yolo for auto-approve
|
|
84
|
+
* Uses --output-format json for structured streaming output
|
|
37
85
|
*/
|
|
38
86
|
async execute(request, options) {
|
|
39
87
|
const startTime = Date.now();
|
|
40
88
|
const cwd = options?.workingDir ?? request.working_dir ?? this.config.workingDir ?? process.cwd();
|
|
41
89
|
const timeout = options?.timeout ?? request.timeout ?? this.config.defaultTimeout ?? 600000;
|
|
42
|
-
// Build CLI arguments
|
|
90
|
+
// Build CLI arguments - use JSON format for better parsing
|
|
43
91
|
const args = [
|
|
44
92
|
'--yolo', // Auto-approve all actions
|
|
45
93
|
'--output-format',
|
|
46
|
-
'
|
|
94
|
+
'json', // JSON output for structured data
|
|
47
95
|
request.prompt, // Positional prompt
|
|
48
96
|
];
|
|
49
|
-
//
|
|
50
|
-
|
|
97
|
+
// Track last content for progress
|
|
98
|
+
let lastContent = '';
|
|
99
|
+
// Build detached exec options
|
|
100
|
+
const execOptions = {
|
|
51
101
|
cwd,
|
|
52
102
|
timeout,
|
|
53
103
|
env: process.env,
|
|
54
104
|
signal: options?.signal,
|
|
55
|
-
}
|
|
105
|
+
};
|
|
106
|
+
// Add progress callback if provided
|
|
107
|
+
if (options?.onProgress) {
|
|
108
|
+
execOptions.onProgress = (rawOutput) => {
|
|
109
|
+
// For Gemini, just pass through the raw output as progress
|
|
110
|
+
// since it may not be JSON until complete
|
|
111
|
+
if (rawOutput.length > 0 && rawOutput !== lastContent) {
|
|
112
|
+
lastContent = rawOutput;
|
|
113
|
+
options.onProgress?.(rawOutput);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
execOptions.progressInterval = options.progressInterval ?? 1000;
|
|
117
|
+
}
|
|
118
|
+
// Execute with detached process
|
|
119
|
+
const result = await detachedExec(this.config.command, args, execOptions);
|
|
56
120
|
if (result.failed) {
|
|
57
121
|
const errorDetails = [
|
|
58
122
|
`Exit code: ${result.exitCode}`,
|
|
@@ -62,12 +126,13 @@ export class GeminiAdapter extends BaseAdapter {
|
|
|
62
126
|
throw new Error(`Gemini CLI failed: ${errorDetails}`);
|
|
63
127
|
}
|
|
64
128
|
const latencyMs = Date.now() - startTime;
|
|
65
|
-
|
|
66
|
-
const usage = this.
|
|
129
|
+
// Parse output (may be JSON or plain text)
|
|
130
|
+
const { content, usage } = this.parseGeminiJson(result.stdout);
|
|
131
|
+
const finalUsage = usage ?? this.estimateUsage(request.prompt, content);
|
|
67
132
|
return {
|
|
68
133
|
content: content || 'Task completed',
|
|
69
134
|
model: 'gemini-default',
|
|
70
|
-
usage,
|
|
135
|
+
usage: finalUsage,
|
|
71
136
|
finish_reason: 'stop',
|
|
72
137
|
metadata: {
|
|
73
138
|
latency_ms: latencyMs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-adapter.js","sourceRoot":"","sources":["../../src/gemini/gemini-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gemini-adapter.js","sourceRoot":"","sources":["../../src/gemini/gemini-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses `-p, --prompt` for headless mode execution.
|
|
6
6
|
*/
|
|
7
7
|
import type { AIRequest, AIResponse, ProviderType } from '@anastops/core';
|
|
8
|
-
import { BaseAdapter, type AdapterConfig } from '../base/base-adapter.js';
|
|
8
|
+
import { BaseAdapter, type AdapterConfig, type ExecuteOptions } from '../base/base-adapter.js';
|
|
9
9
|
export declare class GrokAdapter extends BaseAdapter {
|
|
10
10
|
readonly type: ProviderType;
|
|
11
11
|
readonly name = "xAI Grok";
|
|
@@ -14,11 +14,7 @@ export declare class GrokAdapter extends BaseAdapter {
|
|
|
14
14
|
/**
|
|
15
15
|
* Execute using Grok CLI with --prompt for headless mode
|
|
16
16
|
*/
|
|
17
|
-
execute(request: AIRequest, options?:
|
|
18
|
-
workingDir?: string;
|
|
19
|
-
timeout?: number;
|
|
20
|
-
signal?: AbortSignal;
|
|
21
|
-
}): Promise<AIResponse>;
|
|
17
|
+
execute(request: AIRequest, options?: ExecuteOptions): Promise<AIResponse>;
|
|
22
18
|
protected buildArgs(_request: AIRequest): string[];
|
|
23
19
|
protected parseOutput(output: string): string;
|
|
24
20
|
protected getDefaultModel(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok-adapter.d.ts","sourceRoot":"","sources":["../../src/grok/grok-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"grok-adapter.d.ts","sourceRoot":"","sources":["../../src/grok/grok-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG/F,qBAAa,WAAY,SAAQ,WAAW;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAU;IACrC,QAAQ,CAAC,IAAI,cAAc;gBAEf,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAU3C,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAwEhF,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE;IAKlD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9C,SAAS,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIxC,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,SAAS,CAAC,kBAAkB,IAAI,MAAM;CAGvC"}
|
|
@@ -40,13 +40,27 @@ export class GrokAdapter extends BaseAdapter {
|
|
|
40
40
|
if (model !== 'grok-default') {
|
|
41
41
|
args.push('--model', model);
|
|
42
42
|
}
|
|
43
|
-
//
|
|
44
|
-
|
|
43
|
+
// Track last content for progress
|
|
44
|
+
let lastContent = '';
|
|
45
|
+
// Build detached exec options
|
|
46
|
+
const execOptions = {
|
|
45
47
|
cwd,
|
|
46
48
|
timeout,
|
|
47
49
|
env: process.env,
|
|
48
50
|
signal: options?.signal,
|
|
49
|
-
}
|
|
51
|
+
};
|
|
52
|
+
// Add progress callback if provided
|
|
53
|
+
if (options?.onProgress) {
|
|
54
|
+
execOptions.onProgress = (rawOutput) => {
|
|
55
|
+
if (rawOutput.length > 0 && rawOutput !== lastContent) {
|
|
56
|
+
lastContent = rawOutput;
|
|
57
|
+
options.onProgress?.(rawOutput);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
execOptions.progressInterval = options.progressInterval ?? 1000;
|
|
61
|
+
}
|
|
62
|
+
// Execute with detached process
|
|
63
|
+
const result = await detachedExec(this.config.command, args, execOptions);
|
|
50
64
|
if (result.failed) {
|
|
51
65
|
const errorDetails = [
|
|
52
66
|
`Exit code: ${result.exitCode}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok-adapter.js","sourceRoot":"","sources":["../../src/grok/grok-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"grok-adapter.js","sourceRoot":"","sources":["../../src/grok/grok-adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anastops/adapters",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "AI provider adapters for Anastops (Claude, Cursor, Codex, Gemini, Grok, Copilot, Aider)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"clean": "rm -rf dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@anastops/core": "1.
|
|
25
|
+
"@anastops/core": "1.1.0",
|
|
26
26
|
"@anthropic-ai/claude-agent-sdk": "^0.2.12",
|
|
27
27
|
"execa": "^9.6.1",
|
|
28
28
|
"zod": "^4.3.5"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^
|
|
31
|
+
"@types/node": "^25.0.9",
|
|
32
32
|
"typescript": "^5.9.3",
|
|
33
33
|
"vitest": "^4.0.17"
|
|
34
34
|
},
|