github TypeScript re-analysis due

tanvoid0/llmwire

github

One wire to every LLM. Zero-dependency TypeScript client for OpenAI, Anthropic, Gemini, Ollama and any OpenAI-compatible API: streaming, tools, structured output, agents, MCP.

maintainer
tanvoid0
licence
MIT
first seen
2026-09-14
last seen
2026-09-14
releases · 30d
5
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio · http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

code evidence vv2.2.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 65

filesystem 6

  • fs tanvoid0-llmwire-d5a42f5/bench/size.mjs :5 import { writeFileSync, unlinkSync } from 'node:fs';
  • fs (weak) tanvoid0-llmwire-d5a42f5/scripts/build-shim.mjs :3 import { mkdirSync, rmSync, writeFileSync, readFileSync } from 'node:fs';
  • fs (weak) tanvoid0-llmwire-d5a42f5/scripts/finalize-cjs.cjs :5 const fs = require('fs');
  • fs (weak) tanvoid0-llmwire-d5a42f5/scripts/publish.js :4 import fs from 'fs';
  • fs tanvoid0-llmwire-d5a42f5/site/typedoc-plugin.mjs :3 import { copyFileSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
  • fs tanvoid0-llmwire-d5a42f5/src/cli.ts :8 import { readFileSync, writeFileSync, existsSync } from 'fs';

shell / exec 4

  • shell tanvoid0-llmwire-d5a42f5/bench/import.mjs :3 import { spawnSync } from 'node:child_process';
  • shell (weak) tanvoid0-llmwire-d5a42f5/scripts/publish.js :3 import { execSync } from 'child_process';
  • shell tanvoid0-llmwire-d5a42f5/src/agent/mcp-stdio.ts :7 import { spawn, type ChildProcess } from 'child_process';
  • shell tanvoid0-llmwire-d5a42f5/src/ollama-cli.ts :2 import { spawn } from 'child_process';

network 5

  • net tanvoid0-llmwire-d5a42f5/bench/mock-server.mjs :2 import { createServer } from 'node:http';
  • net tanvoid0-llmwire-d5a42f5/bench/overhead.mjs :28 const res = await fetch(`${url}/v1/chat/completions`, {
  • net tanvoid0-llmwire-d5a42f5/bench/stream.mjs :11 const res = await fetch(`${url}/v1/chat/completions`, {
  • net (weak) tanvoid0-llmwire-d5a42f5/tests/agent.test.ts :6 import { createServer, type Server } from 'node:http';
  • net (weak) tanvoid0-llmwire-d5a42f5/tests/integration-local.ts :14 await fetch('http://localhost:11434/api/tags', { signal: AbortSignal.timeout(CHECK_TIMEOUT) });

secrets 3

  • secrets (weak) tanvoid0-llmwire-d5a42f5/test-gemini-install.js :36 process.env.BOT_CLIENT_GEMINI_KEY = apiKey.trim();
  • secrets (weak) tanvoid0-llmwire-d5a42f5/test-gemini-models.js :30 let apiKey = process.env.BOT_CLIENT_GEMINI_KEY;
  • secrets (weak) tanvoid0-llmwire-d5a42f5/tests/setup.ts :5 process.env.OPENAI_API_KEY = 'test-openai-key';

install hooks 1

  • prepublishOnly tanvoid0-llmwire-d5a42f5/package.json :201 npm run clean && npm run build && npm run test:unit

declared dependencies 12

  • @types/jest@^29.5.0
  • @types/node@^20.0.0
  • @typescript-eslint/eslint-plugin@^6.21.0
  • @typescript-eslint/parser@^6.21.0
  • esbuild@^0.28.2
  • eslint@^8.0.0
  • express@^5.1.0
  • jest@^29.5.0
  • react@^19.1.1
  • ts-jest@^29.1.0
  • typedoc@^0.28.20
  • typescript@^5.0.0

obfuscation 1

  • dynamic require()/import() tanvoid0-llmwire-d5a42f5/bench/import.mjs :13 await import(${JSON.stringify('file:///' + entry.replace(/\\/g, '/'))});