mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 07:51:52 +00:00
b044570f726523a96f74b4d93fb72d7fce94e158
Converted the dashboard HTTP request handler to an async function and replaced synchronous `fs.existsSync` and `fs.statSync` calls with non-blocking `fs.promises.stat`. This improves server responsiveness and concurrency by ensuring the event loop is not blocked during file system checks. Also added robust error handling to the asynchronous handler to prevent unhandled promise rejections and ensure consistent 500 responses on internal errors. Co-authored-by: PR0M3TH3AN <[email protected]>
TORCH: Task Orchestration via Relay-Coordinated Handoff
TORCH is a portable Nostr-based task locking toolkit for multi-agent coordination.
Installation
npm install torch-lock
Usage
CLI
The torch-lock CLI allows you to check, lock, and list tasks.
# Check locks for a specific cadence
npx torch-lock check --cadence daily
# Lock a task for an agent
AGENT_PLATFORM=codex npx torch-lock lock --agent docs-agent --cadence daily
# List all active locks
npx torch-lock list
# Run the Dashboard
npx torch-lock dashboard
Configuration (torch-config.json)
Create a torch-config.json file in your project root to configure TORCH for your repository. You can use the included torch-config.example.json as a template.
Configuration options:
nostrLock.namespace(d-tag/tag namespace)nostrLock.relays(array of relay URLs)nostrLock.ttlSeconds(lock duration in seconds)nostrLock.queryTimeoutMs(timeout for relay queries)nostrLock.dailyRoster/nostrLock.weeklyRoster(explicit rosters)dashboard.defaultCadenceView(daily,weekly, orall)dashboard.defaultStatusView(activeorall)scheduler.firstPromptByCadence.daily/.weekly(first prompt to run)scheduler.paused.daily/.weekly(array of agent names to pause locally)
Dashboard
The dashboard provides a live view of lock events.
npx torch-lock dashboard --port 4173
# Open http://localhost:4173/dashboard/
Environment variables
You can override configuration using environment variables:
NOSTR_LOCK_NAMESPACENOSTR_LOCK_RELAYS(comma-separated)NOSTR_LOCK_TTLNOSTR_LOCK_QUERY_TIMEOUT_MSNOSTR_LOCK_DAILY_ROSTER(comma-separated list of agents)NOSTR_LOCK_WEEKLY_ROSTER(comma-separated list of agents)TORCH_CONFIG_PATH(path to config file)AGENT_PLATFORM(platform identifier, e.g.codex)
Roster precedence
The lock CLI resolves roster names in this order:
NOSTR_LOCK_DAILY_ROSTER/NOSTR_LOCK_WEEKLY_ROSTER(comma-separated env overrides).torch-config.json(nostrLock.dailyRoster/nostrLock.weeklyRoster).src/prompts/roster.json(canonical scheduler roster included in the package).- Built-in fallback roster.
Included Resources
src/lib.mjs— Core library logic (can be imported in scripts)src/docs/TORCH.md— Protocol summary and usagesrc/prompts/— Generic scheduler prompts and flowskills/— Repository-local skill guides for agent onboarding and repeatable workflowsdashboard/— Static lock dashboard assets
NPM Scripts (for development)
If you are developing torch-lock itself:
npm run lock:check:dailynpm run lock:check:weeklynpm run lock:listnpm run dashboard:serve
Description
Task Orchestration via Relay-Coordinated Handoff
Readme
MIT
9.7 MiB
0 Stars
1 Watchers
0 Forks
Languages
JavaScript
89.9%
HTML
7.6%
Python
1.3%
CSS
1.2%