github TypeScript analyzed 32c963a

hootandy321/dsh-Agentlink

github

Caller-side bridge from Codex and other agent frameworks to DeepSeek Harness, with observable sessions, follow-up, cancellation, and human-gated approvals.

maintainer
hootandy321
license
MIT
first seen
2026-08-14
last seen
2026-08-14
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 13 tools
transport stdio counts 13 tools · 0 res · 0 prompts permission surface via README inference

tools

  • dsh_answer_question

    typed answer for a pending question rpcId

  • dsh_cancel

    scope="turn"

  • dsh_continue

    compatibility alias for dsh_followup

  • dsh_delegate

    create a root session and queue the initial prompt; detached by default (waitSeconds=0)

  • dsh_followup

    continue the same root session with explicit mode="queue"

  • dsh_host_status

    connect-only Host state and capabilities

  • dsh_list

    task mappings enriched with current derived status

  • dsh_observe

    compatibility alias around dsh_wait; bridge cursors replace raw session seq cursors

  • dsh_release_workspace

    explicitly release a persistent bridge workspace claim without closing the DSH session

  • dsh_resolve_approval

    typed allow_once

  • dsh_status

    availability, execution, lineage, queue, pending interactions, final message, and cursors

  • dsh_tail

    bounded event digests using a bridge task cursor

  • dsh_wait

    wait up to 30 seconds for a new event/state/pending/terminal change

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

analyzed commit 32c963a · analyzer v32 · 2h ago

skills & prompt files 1

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

code files: 27

filesystem 15

  • fs hootandy321-dsh-Agentlink-32c963a/src/bridge-service.ts :1 import { realpath, stat } from "node:fs/promises";
  • fs hootandy321-dsh-Agentlink-32c963a/src/event-ledger.ts :1 import { appendFile, chmod, mkdir, readFile } from "node:fs/promises";
  • fs hootandy321-dsh-Agentlink-32c963a/src/file-lock.ts :2 import { mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
  • fs hootandy321-dsh-Agentlink-32c963a/src/setup-codex.ts :4 import { constants as fsConstants } from "node:fs";
  • fs hootandy321-dsh-Agentlink-32c963a/src/task-store.ts :2 import { chmod, link, mkdir, readFile, readdir, unlink, writeFile } from "node:fs/promises";
  • fs hootandy321-dsh-Agentlink-32c963a/src/workspace-claim.ts :1 import { chmod, mkdir, readFile, readdir, unlink, writeFile } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/bridge-service.test.ts :2 import { mkdtemp, readFile, realpath, rm } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/connection-manager.test.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/docs-security.test.ts :2 import { readFile } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/event-ledger.test.ts :3 import { mkdtemp, readFile, rm } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/mcp-server.test.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/process-reconnect.test.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/setup-codex.test.ts :2 import { chmod, mkdtemp, readFile, rm, stat, symlink, writeFile } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/task-store.test.ts :2 import { mkdtemp, readFile, rm, stat, writeFile, mkdir } from "node:fs/promises";
  • fs (weak) hootandy321-dsh-Agentlink-32c963a/test/workspace-claim.test.ts :2 import { mkdir, mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises";

shell / exec 2

  • shell hootandy321-dsh-Agentlink-32c963a/src/doctor.ts :3 import { execFile } from "node:child_process";
  • shell (weak) hootandy321-dsh-Agentlink-32c963a/test/event-ledger.test.ts :2 import { spawn } from "node:child_process";

network 1

  • net (weak) hootandy321-dsh-Agentlink-32c963a/test/support/mock-dsh-host.ts :1 import { createServer, type IncomingMessage, type Server, type ServerResponse } from "node:http";

install hooks 1

  • prepack hootandy321-dsh-Agentlink-32c963a/package.json :50 npm run check

declared dependencies 7

  • @modelcontextprotocol/sdk@^1.17.5
  • zod@^3.25.76
  • @types/node@^24.0.0
  • @types/ws@^8.18.1
  • tsx@^4.20.3
  • typescript@^5.8.3
  • ws@^8.18.3