github JavaScript analyzed 1052ac1

campfirein/byterover-cli

v3.16.1
github

ByteRover's CLI

maintainer
campfirein
licence
Elastic-2.0
first seen
2026-06-01
last seen
2026-09-16
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

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

tools

  • brv-curate
  • brv-query
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 1052ac1 · analyzer v33 · 2w ago

skills & prompt files 4

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

code files: 1900

filesystem 257

  • fs (weak) campfirein-byterover-cli-1052ac1/scripts/migrate-frontmatter-complete.ts :12 import {readdirSync, readFileSync, statSync, writeFileSync} from 'node:fs'
  • fs (weak) campfirein-byterover-cli-1052ac1/scripts/prepare-ui-submodule-links.mjs :1 import {constants} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/blob/file-blob-storage.ts :2 import * as fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/environment/environment-context-builder.ts :1 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/file-system/file-system-service.ts :3 import fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/file-system/gitignore-filter.ts :2 import fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/file-system/glob-utils.ts :1 import fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/file-system/path-validator.ts :1 import { realpathSync } from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/folder-pack/folder-pack-service.ts :1 import fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/llm/generators/byterover-content-generator.ts :17 // import {appendFileSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/llm/tool-output-processor.ts :13 import { existsSync, promises as fsPromises, mkdirSync } from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/map/abstract-queue.ts :1 import {appendFileSync} from 'node:fs'
show 28 more
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/map/agentic-map-service.ts :2 import {writeFile} from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/map/llm-map-service.ts :1 import {writeFile} from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/map/map-shared.ts :3 import {realpathSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/session/session-metadata-store.ts :12 import * as fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/storage/file-key-storage.ts :2 import * as fs from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/adapters/gbrain-adapter.ts :2 import {existsSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/adapters/local-markdown-adapter.ts :2 import {existsSync, readdirSync, readFileSync, statSync, writeFileSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/adapters/memory-wiki-adapter.ts :2 import {existsSync, mkdirSync, readdirSync, readFileSync, statSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/adapters/obsidian-adapter.ts :2 import {existsSync, readdirSync, readFileSync, statSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/config/swarm-config-loader.ts :2 import {readFileSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/validation/config-validator.ts :2 import {existsSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/wizard/provider-detector.ts :1 import {existsSync, readdirSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/system-prompt/contributors/agent-prompt-contributor.ts :2 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/system-prompt/contributors/companion-contributor.ts :2 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/system-prompt/contributors/context-tree-structure-contributor.ts :1 import type {Dirent} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/system-prompt/contributors/file-contributor.ts :2 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/system-prompt/prompt-cache.ts :1 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/system-prompt/system-prompt-manager.ts :2 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/tools/implementations/expand-knowledge-tool.ts :1 import {readFile} from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/tools/implementations/ingest-resource-tool.ts :1 import {realpath} from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/tools/implementations/search-knowledge-service.ts :2 import {realpath} from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/tools/tool-description-loader.ts :1 import fs from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/tools/write-guard.ts :1 import {realpathSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/agent/infra/validation/workspace-validator.ts :1 import {existsSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/oclif/commands/debug.ts :18 import {existsSync, readdirSync, statSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/oclif/commands/dream/finalize.ts :5 import {readFile, stat} from 'node:fs/promises'
  • fs campfirein-byterover-cli-1052ac1/src/oclif/commands/mcp.ts :3 import {appendFileSync, mkdirSync} from 'node:fs'
  • fs campfirein-byterover-cli-1052ac1/src/oclif/commands/restart.ts :10 import {readdirSync, readFileSync, unlinkSync} from 'node:fs'

217 more not shown — this panel samples each group; the count above is the real total.

shell / exec 21

  • shell campfirein-byterover-cli-1052ac1/src/agent/core/domain/process/types.ts :1 import type { ChildProcess } from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/agent/infra/file-system/file-system-service.ts :2 import {spawn} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/agent/infra/process/process-service.ts :1 import {type ChildProcess, spawn} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/adapters/gbrain-adapter.ts :1 import {execFile, execFileSync} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/swarm-coordinator.ts :1 import {execFile as execFileCb} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/agent/infra/swarm/validation/config-validator.ts :1 import {execFile} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/oclif/commands/restart.ts :9 import {spawnSync} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/oclif/commands/vc/merge.ts :2 import {execSync} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/oclif/hooks/init/block-command-update-npm.ts :3 import {execSync} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/oclif/hooks/init/update-notifier.ts :4 import {execSync, spawn} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/oclif/hooks/postrun/after-update.ts :3 import {spawn} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/server/core/interfaces/agent/i-agent-pool.ts :29 * Each agent is a separate Node.js process (child_process.fork())
show 9 more
  • shell campfirein-byterover-cli-1052ac1/src/server/infra/daemon/agent-pool.ts :4 * Each agent is a separate Node.js process (child_process.fork())
  • shell campfirein-byterover-cli-1052ac1/src/server/infra/daemon/agent-process.ts :4 * Each agent runs in its own Node.js process (child_process.fork())
  • shell campfirein-byterover-cli-1052ac1/src/server/infra/daemon/brv-server.ts :27 import {fork, type StdioOptions} from 'node:child_process'
  • shell campfirein-byterover-cli-1052ac1/src/server/infra/transport/handlers/locations-handler.ts :1 import {spawn} from 'node:child_process'
  • shell (weak) campfirein-byterover-cli-1052ac1/test/hooks/init/update-notifier.test.ts :263 expect(isNpmGlobalInstall(execSyncStub as unknown as typeof import('node:child_process').execSync)).to.be.true
  • shell (weak) campfirein-byterover-cli-1052ac1/test/unit/agent/types/process/types.test.ts :1 import type {ChildProcess} from 'node:child_process'
  • shell (weak) campfirein-byterover-cli-1052ac1/test/unit/core/domain/entities/task-history-entry.test.ts :2 import {execFileSync} from 'node:child_process'
  • shell (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/executor/curate-executor.test.ts :59 // What the LLM would write in code-exec (hyphens → underscores, valid JS identifier)
  • shell (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/executor/query-executor.test.ts :157 // What the LLM would write in code-exec (hyphens → underscores, valid JS identifier)

network 35

  • net campfirein-byterover-cli-1052ac1/src/agent/infra/llm/providers/openai.ts :30 return globalThis.fetch(input, init)
  • net campfirein-byterover-cli-1052ac1/src/agent/infra/llm/retry/retry-with-backoff.ts :338 * (url: string) => fetch(url).then(r => r.json()),
  • net campfirein-byterover-cli-1052ac1/src/server/core/domain/transport/schemas.ts :280 // Single-task detail fetch (M2.09)
  • net campfirein-byterover-cli-1052ac1/src/server/core/interfaces/services/i-git-service.ts :161 fetch(params: FetchGitParams): Promise<void>
  • net campfirein-byterover-cli-1052ac1/src/server/infra/auth/oauth-service.ts :2 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/auth/oidc-discovery-service.ts :1 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/cogit/http-cogit-push-service.ts :2 import axios from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/git/git-http-wrapper.ts :155 const fetchResponse = await fetch(`${baseUrl}/git-upload-pack`, {
  • net campfirein-byterover-cli-1052ac1/src/server/infra/git/isomorphic-git-service.ts :310 async fetch(params: FetchGitParams): Promise<void> {
  • net campfirein-byterover-cli-1052ac1/src/server/infra/http/authenticated-http-client.ts :1 import axios, {type AxiosRequestConfig, isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/http/callback-server.ts :1 import type {Server} from 'node:http'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/http/models-dev-client.ts :9 import axios from 'axios'
show 23 more
  • net campfirein-byterover-cli-1052ac1/src/server/infra/http/openrouter-api-client.ts :11 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/http/provider-model-fetchers.ts :17 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/hub/hub-install-service.ts :1 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/hub/hub-registry-service.ts :2 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/provider-oauth/callback-server.ts :1 import type {IncomingMessage, Server, ServerResponse} from 'node:http'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/provider-oauth/refresh-token-exchange.ts :2 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/provider-oauth/token-exchange.ts :2 import axios, {isAxiosError} from 'axios'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/transport/handlers/vc-handler.ts :931 await this.gitService.fetch({directory, ref: data.ref, remote})
  • net campfirein-byterover-cli-1052ac1/src/server/infra/transport/port-utils.ts :1 import {createServer} from 'node:net'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/transport/socket-io-transport-server.ts :2 import {createServer, Server as HttpServer, type RequestListener} from 'node:http'
  • net campfirein-byterover-cli-1052ac1/src/server/infra/webui/webui-server.ts :3 import {createServer, type Server as HttpServer} from 'node:http'
  • net campfirein-byterover-cli-1052ac1/src/webui/lib/transport.ts :24 const response = await fetch('/api/ui/config')
  • net (weak) campfirein-byterover-cli-1052ac1/test/learning/http/local-server.test.ts :3 import {Server} from 'node:http'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/agent/http/internal-llm-http-service.test.ts :1 import {isAxiosError} from 'axios'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/http/authenticated-http-client.test.ts :1 import {isAxiosError} from 'axios'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/http/callback-handler.test.ts :50 await fetch(`http://localhost:${port}/callback?code=${internalCode}&state=${internalState}`)
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/http/callback-server.test.ts :42 await fetch(`http://localhost:${port}/callback?code=${internalCode}&state=${internalState}`)
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/http/provider-model-fetchers.test.ts :1 import axios from 'axios'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/provider-oauth/callback-server.test.ts :50 await fetch(`http://localhost:${port}/auth/callback?code=auth-code&state=test-state`)
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/transport/port-utils.test.ts :2 import {createServer, Server} from 'node:net'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/user/http-user-service.test.ts :1 import {isAxiosError} from 'axios'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/webui/webui-middleware.test.ts :3 import {createServer, get as httpGet, type Server as HttpServer, type IncomingMessage} from 'node:http'
  • net (weak) campfirein-byterover-cli-1052ac1/test/unit/infra/webui/webui-server.test.ts :3 import {createServer} from 'node:http'

tool registrations 2

  • brv-curate campfirein-byterover-cli-1052ac1/src/server/infra/mcp/tools/brv-curate-tool.ts :176
  • brv-query campfirein-byterover-cli-1052ac1/src/server/infra/mcp/tools/brv-query-tool.ts :53

install hooks 2

  • prepack campfirein-byterover-cli-1052ac1/package.json :219 npm run build && BRV_ENV=production oclif manifest
  • prepare campfirein-byterover-cli-1052ac1/package.json :220 husky

declared dependencies 123

  • @modelcontextprotocol/sdk@1.26.0
  • @ai-sdk/anthropic@^2.0.60
  • @ai-sdk/cerebras@^1.0.11
  • @ai-sdk/cohere@^2.0.0
  • @ai-sdk/deepinfra@^1.0.35
  • @ai-sdk/google@^2.0.52
  • @ai-sdk/groq@^2.0.34
  • @ai-sdk/mistral@^2.0.27
  • @ai-sdk/openai@^2.0.89
  • @ai-sdk/openai-compatible@^1.0.32
  • @ai-sdk/perplexity@^2.0.0
  • @ai-sdk/togetherai@^1.0.12
show 28 more
  • @ai-sdk/vercel@^1.0.33
  • @ai-sdk/xai@^2.0.57
  • @anthropic-ai/sdk@^0.70.1
  • @campfirein/brv-transport-client@github:campfirein/brv-transport-client#1.1.0
  • @campfirein/byterover-packages@github:campfirein/byterover-packages#main
  • @codemirror/lang-html@^6.4.11
  • @codemirror/lang-markdown@^6.5.0
  • @codemirror/theme-one-dark@^6.1.3
  • @codemirror/view@^6.42.1
  • @google/genai@^1.29.0
  • @inkjs/ui@^2.0.0
  • @inquirer/prompts@^7.9.0
  • @oclif/core@^4
  • @oclif/plugin-help@^6
  • @oclif/plugin-update@^4.7.19
  • @openrouter/ai-sdk-provider@^1.5.4
  • @socket.io/admin-ui@^0.5.1
  • @tanstack/react-query@^5.90.20
  • @types/react-syntax-highlighter@^15.5.13
  • @uiw/react-codemirror@^4.25.9
  • ai@^5.0.129
  • axios@1.16.0
  • chalk@^5.6.2
  • date-fns@^4.1.0
  • diff@^9.0.0
  • dotenv@^17.3.1
  • esbuild@^0.27.2
  • express@^5.1.0

83 more not shown — this panel samples each group; the count above is the real total.

obfuscation 1

  • dynamic require()/import() campfirein-byterover-cli-1052ac1/test/unit/config/environment.test.ts :50 const {ENVIRONMENT} = await import(`../../../src/server/config/environment.js?t=${Date.now()}`)

perm:untrusted 1

  • untrusted campfirein-byterover-cli-1052ac1/src/agent/infra/llm/retry/retry-with-backoff.ts :338 * (url: string) => fetch(url).then(r => r.json()),