github TypeScript analyzed 5d1f491

sb1733831438-maker/DSH-closerAI

github

CloserAI - a local-first, model-agnostic, permission-transparent desktop AI workbench built on DeepSeek Harness.

maintainer
sb1733831438-maker
licence
MIT
first seen
2026-08-14
last seen
2026-08-27
releases · 30d
8
short id

Drift inferred · capture-to-capture

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

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

No tools enumerated yet for this server.

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

analyzed commit 5d1f491 · analyzer v33 · 1w ago

skills & prompt files 1

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

code files: 81

filesystem 35

  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/scripts/copy-preload.mjs :1 import { copyFileSync, mkdirSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/scripts/copy-runtime-node-modules.js :8 import { cp } from 'node:fs/promises'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/backend.ts :1 import { mkdirSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/capabilities.ts :1 import { readFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/dsh-home.ts :1 import { existsSync, readFileSync, rmSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/dsh-mcp.ts :1 import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/dsh-settings.ts :1 import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/fs-atomic.ts :1 import { mkdirSync, renameSync, rmSync, writeFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/ipc.ts :2 import { writeFile } from 'node:fs/promises'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/mcp-store.ts :1 import { readFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/mode-store.ts :1 import { readFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/presets.ts :1 import { cp, mkdir, readFile, writeFile } from 'node:fs/promises'
show 23 more
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/project-store.ts :1 import { readFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/provider-store.ts :1 import { readFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/secrets.ts :1 import { readFileSync } from 'node:fs'
  • fs sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/session-store.ts :1 import { copyFile, mkdir, readdir, rm, stat } from 'node:fs/promises'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/capabilities.test.ts :1 import { mkdtempSync, readFileSync, rmSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/dsh-home.test.ts :1 import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/dsh-mcp.e2e.test.ts :1 import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/dsh-mcp.test.ts :1 import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/dsh-settings.test.ts :1 import { mkdtempSync, readFileSync, rmSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/fs-atomic.test.ts :1 import { mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/mcp-store.test.ts :1 import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/mode-store.test.ts :1 import { mkdtempSync, rmSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/persistence.test.ts :1 import { mkdtempSync, readdirSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/preload-contract.test.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/presets.test.ts :1 import { mkdtempSync, readFileSync, rmSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/project-store.test.ts :1 import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/provider-store.test.ts :1 import { mkdtempSync, rmSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/secrets.test.ts :1 import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/security.test.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/session-store.test.ts :1 import { mkdirSync, mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/scripts/audit-licenses.mjs :4 import { readdirSync, existsSync, readFileSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/scripts/generate-sbom.mjs :4 import { readdirSync, existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs'
  • fs (weak) sb1733831438-maker-DSH-closerAI-5d1f491/scripts/whale-icon.mjs :1 import { readFileSync, writeFileSync, mkdirSync } from 'node:fs'

shell / exec 3

  • shell (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/dsh-mcp.e2e.test.ts :5 import { spawn, type SpawnOptions } from 'node:child_process'
  • shell (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/persistence.test.ts :4 import { spawn, type SpawnOptions } from 'node:child_process'
  • shell sb1733831438-maker-DSH-closerAI-5d1f491/packages/supervisor/src/supervisor.ts :2 import { spawn, type ChildProcess } from 'node:child_process'

network 5

  • net sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/src/main/providers.ts :99 const response = await fetch(`${options.baseUrl}/chat/completions`, {
  • net sb1733831438-maker-DSH-closerAI-5d1f491/packages/mock-provider/src/server.ts :1 import { createServer, type IncomingMessage, type ServerResponse } from 'node:http'
  • net (weak) sb1733831438-maker-DSH-closerAI-5d1f491/packages/mock-provider/test/server.test.ts :18 const res = await fetch(`${server.url}/health`)
  • net sb1733831438-maker-DSH-closerAI-5d1f491/packages/supervisor/src/health.ts :1 import { connect } from 'node:net'
  • net (weak) sb1733831438-maker-DSH-closerAI-5d1f491/packages/supervisor/test/fixtures/fake-dsh.mjs :8 import { createServer } from 'node:http'

secrets 1

  • secrets (weak) sb1733831438-maker-DSH-closerAI-5d1f491/apps/desktop/test/dsh-mcp.test.ts :66 expect(patch).toContain('!!js process.env.CLOSERAI_MCP_GITHUB_GITHUB_TOKEN')

declared dependencies 8

  • @commitlint/cli@^19.8.1
  • @commitlint/config-conventional@^19.8.1
  • @eslint/js@10.0.1
  • eslint@10.8.1
  • eslint-config-prettier@10.1.8
  • globals@17.11.0
  • prettier@3.9.6
  • typescript-eslint@8.67.0

obfuscation 2

  • dynamic require()/import() sb1733831438-maker-DSH-closerAI-5d1f491/scripts/audit-licenses.mjs :14 require(root + '/apps/desktop/package.json').dependencies
  • dynamic require()/import() sb1733831438-maker-DSH-closerAI-5d1f491/scripts/generate-sbom.mjs :11 const desktopPkg = require(root + '/apps/desktop/package.json')