ai-sdk-provider-gemini-cli-agentic 0.1.3 → 0.1.5

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/index.cjs CHANGED
@@ -2,10 +2,15 @@
2
2
 
3
3
  var provider = require('@ai-sdk/provider');
4
4
  var child_process = require('child_process');
5
+ var treeKill = require('tree-kill');
5
6
  var crypto = require('crypto');
6
7
  var providerUtils = require('@ai-sdk/provider-utils');
7
8
  var zod = require('zod');
8
9
 
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var treeKill__default = /*#__PURE__*/_interopDefault(treeKill);
13
+
9
14
  // src/gemini-cli-provider.ts
10
15
 
11
16
  // src/stream-parser.ts
@@ -363,30 +368,18 @@ var GeminiCliLanguageModel = class {
363
368
  stdio: ["pipe", "pipe", "pipe"],
364
369
  detached: !isWin
365
370
  });
366
- const killProcessTree = (signal = "SIGTERM") => {
367
- if (child.pid) {
368
- if (isWin) {
369
- child_process.spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], { stdio: "ignore" });
370
- } else {
371
- try {
372
- process.kill(-child.pid, signal);
373
- } catch {
374
- child.kill(signal);
375
- }
376
- }
377
- } else {
378
- child.kill(signal);
379
- }
371
+ const killProcessTree = (pid, signal = "SIGTERM") => {
372
+ treeKill__default.default(pid, signal);
380
373
  };
381
374
  child.stdin.write(promptText);
382
375
  child.stdin.end();
383
376
  let onAbort;
384
377
  if (options.abortSignal) {
385
378
  if (options.abortSignal.aborted) {
386
- killProcessTree();
379
+ child.pid && killProcessTree(child.pid);
387
380
  throw options.abortSignal.reason ?? new Error("Request aborted");
388
381
  }
389
- onAbort = () => killProcessTree();
382
+ onAbort = () => child.pid && killProcessTree(child.pid);
390
383
  options.abortSignal.addEventListener("abort", onAbort, { once: true });
391
384
  }
392
385
  const startTime = Date.now();
@@ -519,20 +512,8 @@ var GeminiCliLanguageModel = class {
519
512
  stdio: ["pipe", "pipe", "pipe"],
520
513
  detached: !isWin
521
514
  });
522
- const killProcessTree = (signal = "SIGTERM") => {
523
- if (child.pid) {
524
- if (isWin) {
525
- child_process.spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], { stdio: "ignore" });
526
- } else {
527
- try {
528
- process.kill(-child.pid, signal);
529
- } catch {
530
- child.kill(signal);
531
- }
532
- }
533
- } else {
534
- child.kill(signal);
535
- }
515
+ const killProcessTree = (pid, signal = "SIGTERM") => {
516
+ treeKill__default.default(pid, signal);
536
517
  };
537
518
  child.stdin.write(promptText);
538
519
  child.stdin.end();
@@ -542,10 +523,10 @@ var GeminiCliLanguageModel = class {
542
523
  let textId;
543
524
  let lastStatus;
544
525
  const toolResults = /* @__PURE__ */ new Map();
545
- const onAbort = () => killProcessTree();
526
+ const onAbort = () => child.pid && killProcessTree(child.pid);
546
527
  if (abortSignal) {
547
528
  if (abortSignal.aborted) {
548
- killProcessTree();
529
+ child.pid && killProcessTree(child.pid);
549
530
  controller.error(abortSignal.reason ?? new Error("Request aborted"));
550
531
  return;
551
532
  }
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { NoSuchModelError, LoadAPIKeyError, APICallError } from '@ai-sdk/provider';
2
2
  import { spawn } from 'child_process';
3
+ import treeKill from 'tree-kill';
3
4
  import { randomUUID } from 'crypto';
4
5
  import { parseProviderOptions, generateId } from '@ai-sdk/provider-utils';
5
6
  import { z } from 'zod';
@@ -361,30 +362,18 @@ var GeminiCliLanguageModel = class {
361
362
  stdio: ["pipe", "pipe", "pipe"],
362
363
  detached: !isWin
363
364
  });
364
- const killProcessTree = (signal = "SIGTERM") => {
365
- if (child.pid) {
366
- if (isWin) {
367
- spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], { stdio: "ignore" });
368
- } else {
369
- try {
370
- process.kill(-child.pid, signal);
371
- } catch {
372
- child.kill(signal);
373
- }
374
- }
375
- } else {
376
- child.kill(signal);
377
- }
365
+ const killProcessTree = (pid, signal = "SIGTERM") => {
366
+ treeKill(pid, signal);
378
367
  };
379
368
  child.stdin.write(promptText);
380
369
  child.stdin.end();
381
370
  let onAbort;
382
371
  if (options.abortSignal) {
383
372
  if (options.abortSignal.aborted) {
384
- killProcessTree();
373
+ child.pid && killProcessTree(child.pid);
385
374
  throw options.abortSignal.reason ?? new Error("Request aborted");
386
375
  }
387
- onAbort = () => killProcessTree();
376
+ onAbort = () => child.pid && killProcessTree(child.pid);
388
377
  options.abortSignal.addEventListener("abort", onAbort, { once: true });
389
378
  }
390
379
  const startTime = Date.now();
@@ -517,20 +506,8 @@ var GeminiCliLanguageModel = class {
517
506
  stdio: ["pipe", "pipe", "pipe"],
518
507
  detached: !isWin
519
508
  });
520
- const killProcessTree = (signal = "SIGTERM") => {
521
- if (child.pid) {
522
- if (isWin) {
523
- spawn("taskkill", ["/pid", String(child.pid), "/T", "/F"], { stdio: "ignore" });
524
- } else {
525
- try {
526
- process.kill(-child.pid, signal);
527
- } catch {
528
- child.kill(signal);
529
- }
530
- }
531
- } else {
532
- child.kill(signal);
533
- }
509
+ const killProcessTree = (pid, signal = "SIGTERM") => {
510
+ treeKill(pid, signal);
534
511
  };
535
512
  child.stdin.write(promptText);
536
513
  child.stdin.end();
@@ -540,10 +517,10 @@ var GeminiCliLanguageModel = class {
540
517
  let textId;
541
518
  let lastStatus;
542
519
  const toolResults = /* @__PURE__ */ new Map();
543
- const onAbort = () => killProcessTree();
520
+ const onAbort = () => child.pid && killProcessTree(child.pid);
544
521
  if (abortSignal) {
545
522
  if (abortSignal.aborted) {
546
- killProcessTree();
523
+ child.pid && killProcessTree(child.pid);
547
524
  controller.error(abortSignal.reason ?? new Error("Request aborted"));
548
525
  return;
549
526
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-sdk-provider-gemini-cli-agentic",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "AI SDK v6 provider for Google Gemini CLI agentic mode",
5
5
  "keywords": [
6
6
  "ai-sdk",
@@ -49,7 +49,8 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@ai-sdk/provider": "^3.0.0",
52
- "@ai-sdk/provider-utils": "^4.0.1"
52
+ "@ai-sdk/provider-utils": "^4.0.1",
53
+ "tree-kill": "^1.2.2"
53
54
  },
54
55
  "devDependencies": {
55
56
  "@eslint/js": "^9.28.0",