Files
TORCH/dist/src/docs/architecture/distribution-plan.md
T

2.5 KiB

TORCH Distribution Strategy: Hybrid "Drop-in"

Goal

To make TORCH the universal "operating system for AI agents" across all languages and environments, we must remove the dependency on Node.js/NPM for end users while maintaining a robust development experience for contributors.

The Problem

Currently, TORCH is distributed as a tarball that requires npm install. This assumes:

  1. The user has Node.js installed.
  2. The user is comfortable with package.json and node_modules.
  3. The project is a JavaScript/TypeScript project.

For Python, Go, or Rust developers, this is friction. A "drop-in" tool should work without language-specific prerequisites.

The Solution: Hybrid Distribution

We will support three primary distribution methods to cover all use cases:

1. The Official NPM Package (Current)

Target Audience: Node.js / TypeScript developers. Experience: npm install torch-lock (or similar). Pros: seamless integration with existing JS toolchains, easy updates via dependabot/renovate.

2. Standalone Binary CLI (New)

Target Audience: Python, Rust, Go, and non-Node developers. Experience: Download a single binary (torch) from GitHub Releases and add it to $PATH. Implementation:

  • Use Node.js Single Executable Applications (SEA) or pkg to compile the JS source into binaries for Linux, macOS, and Windows.
  • Zero Dependencies: No npm, no node_modules.
  • Fast: Instant startup, no install process.

3. Hosted Dashboard (New)

Target Audience: All users (especially those using the binary). Experience: A static web app hosted at a public URL (e.g., dashboard.torch.sh or GitHub Pages). Workflow:

  1. User runs torch lock ... locally.
  2. CLI prints: View active locks: https://dashboard.torch.sh/?hashtag=my-project-hash
  3. User clicks the link to see the dashboard. Features:
  • Stateless: The dashboard is a static HTML/JS file.
  • Client-side Logic: It connects directly to Nostr relays from the browser.
  • URL Configuration: Configuration (hashtag, namespace, relays) is passed via URL query parameters, making links shareable.
  • Local Persistence: Settings are saved to localStorage for returning visitors.

Benefits

  • Universal Access: Removes the Node.js barrier to entry.
  • True "Drop-in": The binary + hosted dashboard requires zero local setup beyond downloading one file.
  • Maintainability: The core logic remains in JavaScript/Node.js, shared across all three distribution methods.