@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.
Files changed (33) hide show
  1. package/dist/base/base-adapter.d.ts +4 -0
  2. package/dist/base/base-adapter.d.ts.map +1 -1
  3. package/dist/base/base-adapter.js +14 -2
  4. package/dist/base/base-adapter.js.map +1 -1
  5. package/dist/base/detached-exec.d.ts +4 -0
  6. package/dist/base/detached-exec.d.ts.map +1 -1
  7. package/dist/base/detached-exec.js +15 -0
  8. package/dist/base/detached-exec.js.map +1 -1
  9. package/dist/claude/claude-adapter.d.ts +21 -6
  10. package/dist/claude/claude-adapter.d.ts.map +1 -1
  11. package/dist/claude/claude-adapter.js +94 -8
  12. package/dist/claude/claude-adapter.js.map +1 -1
  13. package/dist/codex/codex-adapter.d.ts +4 -6
  14. package/dist/codex/codex-adapter.d.ts.map +1 -1
  15. package/dist/codex/codex-adapter.js +109 -6
  16. package/dist/codex/codex-adapter.js.map +1 -1
  17. package/dist/copilot/copilot-adapter.d.ts +10 -3
  18. package/dist/copilot/copilot-adapter.d.ts.map +1 -1
  19. package/dist/copilot/copilot-adapter.js +70 -2
  20. package/dist/copilot/copilot-adapter.js.map +1 -1
  21. package/dist/cursor/cursor-adapter.d.ts +2 -6
  22. package/dist/cursor/cursor-adapter.d.ts.map +1 -1
  23. package/dist/cursor/cursor-adapter.js +17 -3
  24. package/dist/cursor/cursor-adapter.js.map +1 -1
  25. package/dist/gemini/gemini-adapter.d.ts +14 -6
  26. package/dist/gemini/gemini-adapter.d.ts.map +1 -1
  27. package/dist/gemini/gemini-adapter.js +80 -15
  28. package/dist/gemini/gemini-adapter.js.map +1 -1
  29. package/dist/grok/grok-adapter.d.ts +2 -6
  30. package/dist/grok/grok-adapter.d.ts.map +1 -1
  31. package/dist/grok/grok-adapter.js +17 -3
  32. package/dist/grok/grok-adapter.js.map +1 -1
  33. 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":"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"}
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 result = await detachedExec(this.config.command, args, {
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":"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"}
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;CAChC;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,CAkK7B"}
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":"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"}
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;AAgCD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,IAAc,EACd,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,iBAAiB,MAAM,aAAa,CAAC;IACxD,MAAM,UAAU,GAAG,iBAAiB,MAAM,aAAa,CAAC;IACxD,MAAM,YAAY,GAAG,iBAAiB,MAAM,WAAW,CAAC;IACxD,MAAM,SAAS,GAAG,iBAAiB,MAAM,YAAY,CAAC;IACtD,MAAM,aAAa,GAAG,iBAAiB,MAAM,aAAa,CAAC;IAE3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,qBAAqB;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAkB,CAAC;IAC/D,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,+DAA+D;IAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAC9D,CAAC;IAEF,IAAI,CAAC;QACH,kCAAkC;QAClC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,iBAAiB,MAAM,OAAO,YAAY,MAAM,CAAC;YACjE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,YAAY,EAAE,CAAC;QACjB,CAAC;QAED,gDAAgD;QAChD,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,WAAW,GAAG,IAAI;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,mEAAmE;gBACnE,0FAA0F;gBAC1F,OAAO,UAAU,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,CAAC;YACD,8DAA8D;YAC9D,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,oDAAoD;QACpD,4EAA4E;QAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,mBAAmB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,aAAqB,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,aAAa,GAAG;;KAEjB,UAAU;MACT,gBAAgB,MAAM,cAAc,IAAI,WAAW,MAAM,iBAAiB,OAAO,iBAAiB;YAC5F,mBAAmB;QACvB,gBAAgB;CACvB,CAAC;QACE,CAAC;aAAM,CAAC;YACN,aAAa,GAAG;KACjB,UAAU;EACb,cAAc,IAAI,WAAW,MAAM,iBAAiB,OAAO,iBAAiB;YAClE,mBAAmB;CAC9B,CAAC;QACE,CAAC;QACD,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7D,4BAA4B;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE;YAChD,GAAG;YACH,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,WAAqC;SAC3C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QAC3B,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,sBAAsB;QACtB,MAAM,YAAY,GAAG,GAAG,CAAC;QACzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,gEAAgE;QAChE,OAAO,OAAO,KAAK,CAAC,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;YACtD,OAAO,IAAI,YAAY,CAAC;YAExB,qDAAqD;YACrD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM;YACR,CAAC;YAED,0DAA0D;YAC1D,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,GAAG,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;gBACzE,gBAAgB,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrF,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrC,yCAAyC;gBACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACrC,CAAC;oBAAC,MAAM,CAAC;wBACP,8BAA8B;oBAChC,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnE,gCAAgC;YAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACrC,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC;YACvC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACzD,CAAC,CAAC,CAAC,CAAC,CAAC;QAEP,OAAO;YACL,QAAQ;YACR,MAAM;YACN,MAAM;YACN,MAAM,EAAE,QAAQ,KAAK,CAAC;SACvB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,qBAAqB;QACrB,MAAM,YAAY,GAAG;YACnB,UAAU;YACV,UAAU;YACV,YAAY;YACZ,SAAS;YACT,aAAa;YACb,GAAG,YAAY;SAChB,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,CAAC,CAAC;oBAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -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;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA4E1E,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;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACxE,OAAO,CAAC,UAAU,CAAC;IA4HtB;;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"}
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
- 'text', // Plain text output
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
- // Execute with detached process to avoid SIGTERM from Cursor
318
- const result = await detachedExec(this.config.command, args, {
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
- const content = result.stdout.trim();
337
- const usage = this.estimateUsage(request.prompt, content);
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;;;;;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;AAG1E,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;IAKnC;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACxE,OAAO,CAAC,UAAU,CAAC;IAyDtB,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"}
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: '/usr/local/bin/codex',
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
- return Promise.resolve(process.env['OPENAI_API_KEY'] !== undefined);
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
- // Execute with detached process
46
- const result = await detachedExec(this.config.command, args, {
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":"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"}
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;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE1E,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAa;IACxC,QAAQ,CAAC,IAAI,oBAAoB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IASrC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC,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
+ {"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 false;
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":"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"}
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;AAG1E,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,CACX,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACxE,OAAO,CAAC,UAAU,CAAC;IA6DtB,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"}
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
- // Execute with detached process
60
- const result = await detachedExec(this.config.command, args, {
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":"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"}
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;;;;;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;AAG1E,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,IAAI,mBAAmB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAUrC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAczC;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACxE,OAAO,CAAC,UAAU,CAAC;IAiDtB,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"}
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 { execa } from 'execa';
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
- async isAuthenticated() {
23
- // Check for GOOGLE_API_KEY or gcloud auth
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 result = await execa('gcloud', ['auth', 'print-access-token'], { reject: false });
29
- return result.exitCode === 0;
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 false;
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
- 'text', // Plain text output
94
+ 'json', // JSON output for structured data
47
95
  request.prompt, // Positional prompt
48
96
  ];
49
- // Execute with detached process
50
- const result = await detachedExec(this.config.command, args, {
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
- const content = result.stdout.trim();
66
- const usage = this.estimateUsage(request.prompt, content);
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":"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"}
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;AAG1E,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,CACX,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACxE,OAAO,CAAC,UAAU,CAAC;IAuDtB,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"}
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
- // Execute with detached process
44
- const result = await detachedExec(this.config.command, args, {
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":"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"}
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.0.0",
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.0.0",
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": "^20.11.0",
31
+ "@types/node": "^25.0.9",
32
32
  "typescript": "^5.9.3",
33
33
  "vitest": "^4.0.17"
34
34
  },