npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@dongkseo/sandbox-remote

v0.2.1

Published

**Stability: experimental** · `pnpm add @dongkseo/sandbox-remote`

Readme

@dongkseo/sandbox-remote

Stability: experimental · pnpm add @dongkseo/sandbox-remote

원격/클라우드 sandbox에 붙는 SandboxClient. 로컬 sandbox 클라이언트를 이걸로 교체만 하면 에이전트·도구 코드를 바꾸지 않고 워크스페이스 경계를 provider-관리 호스트로 옮긴다(포터빌리티 축).

무엇인가 / 무엇이 아닌가

  • ✅ 담는 것: RemoteSandboxClient — Nexora sandbox wire 프로토콜(@dongkseo/sandbox-server)로 원격 세션을 프로비저닝하고, 원격 exec·워크스페이스 persist/hydrate·살아있는 세션 reattach를 수행. SandboxClient + WorkspaceProvider 양쪽을 구현하며 resume(SandboxSessionState)를 제공 → ContinuousWorkspaceProvider에 그대로 주입 가능.
  • ❌ 안 담는 것: OS 격리 그 자체(서버가 자기 backend로 강제한다). 상용 provider 어댑터(Cloudflare/Modal 등 — 후속).

원격 세션은 서버가 격리하므로 wrapCommand를 의도적으로 구현하지 않는다(로컬에서 감쌀 jail이 없음). detached/background 실행이 필요하면 호스트에서 비격리 spawn으로 폴백하지 말고 서버측 task로 라우팅해야 한다.

핵심 개념

  • createPOST /sessions(manifest seed) → 원격 세션.
  • runPOST /sessions/:id/exec → 버퍼링된 SandboxCommandResult(기존 seam과 동일).
  • snapshot / sessionStatePOST /persist로 tar를 받아 로컬에 스풀 → SandboxSessionState{ backend:'remote', ref:<원격 세션 id>, snapshot }.
  • resumeref가 살아있으면 POST /reattach재접속(HOT), 아니면 새 세션 + POST /hydrate재수화(COLD).
  • 자격증명(토큰)은 옵션/헤더에만 존재하며 SandboxSessionState·로그·에러에 절대 실리지 않는다.

참고(후속): 내장 파일 도구(read/grep/edit/write)는 워크스페이스 root에 로컬 fs로 접근하므로, 진짜 원격 root에 대한 파일 I/O는 WorkspaceSession에 read/write 메서드를 추가하고 그 도구들을 리팩터해야 완성된다. wire 프로토콜의 /fs가 그 토대를 이미 제공한다. 현재 이 클라이언트는 exec + persist/hydrate + reattach를 완결한다.

사용 레시피

import { RemoteSandboxClient } from '@dongkseo/sandbox-remote';
import { ContinuousWorkspaceProvider } from '@dongkseo/core';
import { AgentRunner } from '@dongkseo/core';

const remote = new RemoteSandboxClient({ endpoint: 'https://sbx.example.com', token: process.env.SBX_TOKEN });

// 대화 연속성까지: 원격 세션 재접속/재수화를 conversationId 기준으로.
const provider = new ContinuousWorkspaceProvider(remote, workspaceStateStore, conversationId);

const runner = new AgentRunner({ /* … */, workspaceProvider: provider });

로컬↔원격 교체는 workspaceProvider 한 줄뿐 — 나머지는 동일.

API 표면 (소스 안 열고 타입만)

ctx_read(path="packages/sandbox-remote/src/index.ts",  mode="map")
ctx_read(path="packages/sandbox-remote/src/client.ts", mode="signatures")

유지보수 (drift 방지)

  • API 정본은 소스 TSDoc. wire DTO 정본은 @dongkseo/contractssandbox-protocol.ts.
  • 프로토콜을 바꾸면 @dongkseo/sandbox-server와 동시에 갱신하고 통합 테스트로 고정.

Tests

cd packages/sandbox-remote && pnpm test   # 서버를 띄워 end-to-end 포터빌리티 검증

Part of the Nexora multi-tenant agent framework. · Package map