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

@versatly/workgraph

v3.2.1

Published

Agent-first workgraph workspace for multi-agent coordination with dynamic primitives, append-only ledger, and markdown-native storage.

Downloads

1,672

Readme

@versatly/workgraph

Agent-first workgraph workspace for multi-agent collaboration.

@versatly/workgraph is the standalone coordination core for multi-agent execution. It focuses only on:

  • Dynamic primitive registry (thread, space, decision, lesson, fact, agent, plus custom types)
  • Append-only event ledger (.workgraph/ledger.jsonl)
  • Ledger claim index (.workgraph/ledger-index.json) for fast ownership queries
  • Tamper-evident ledger hash-chain (.workgraph/ledger-chain.json)
  • Markdown-native primitive store
  • Thread lifecycle coordination (claim/release/block/unblock/done/decompose)
  • Space-scoped thread scheduling (--space)
  • Generated markdown command center (workgraph command-center)
  • Native skill primitive lifecycle (workgraph skill write/load/propose/promote)
  • Primitive-registry manifest + auto-generated .base files
  • Orientation loop commands (workgraph status/brief/checkpoint/intake)
  • Deterministic context lenses (workgraph lens list/show) for real-time situational awareness
  • Multi-filter primitive query (workgraph query ...)
  • Core + QMD-compatible keyword search (workgraph search ...)
  • Obsidian Kanban board generation/sync (workgraph board generate|sync)
  • Wiki-link graph intelligence (workgraph graph index|hygiene|neighborhood|impact|context|edges|export)
  • Policy party registry and sensitive transition gates
  • Programmatic dispatch contract (workgraph dispatch ...) with explicit status transitions, lease heartbeats, and timeout-aware adapter cancellation
  • Programmable trigger engine with composable conditions, idempotent dispatch bridging, and safety-gated high-impact actions
  • MCP write surface for trigger CRUD/fire, dispatch, autonomy, and mission orchestration
  • JSON-friendly CLI for agent orchestration

No memory-category scaffolding, no qmd dependency, no observational-memory pipeline.

Install

npm install @versatly/workgraph

Or global CLI:

npm install -g @versatly/workgraph

Agent-first CLI

# Initialize pure workgraph workspace
workgraph init ./wg-space --json

# Define custom primitive
workgraph primitive define command-center \
  --description "Agent ops cockpit" \
  --fields owner:string \
  --fields panel_refs:list \
  --json

# Create and route thread work
workgraph thread create "Ship command center" \
  --goal "Production-ready multi-agent command center" \
  --priority high \
  --actor agent-lead \
  --json

workgraph thread next --claim --actor agent-worker --json
workgraph status --json
workgraph brief --actor agent-worker --json
workgraph lens list --json
workgraph lens show my-work --actor agent-worker --json
workgraph query --type thread --status open --limit 10 --json
workgraph search "auth" --mode auto --json
workgraph checkpoint "Completed API layer" --next "implement tests" --actor agent-worker --json
workgraph board generate --output "ops/Workgraph Board.md" --json
workgraph graph hygiene --json
workgraph graph neighborhood ship-feature --depth 2 --json
workgraph graph impact ship-feature --json
workgraph graph context ship-feature --budget 2000 --json
workgraph graph edges ship-feature --json
workgraph graph export ship-feature --depth 2 --format md --json
workgraph dispatch create "Review blockers" --actor agent-lead --json
workgraph dispatch mark run_123 --status succeeded --output "Review complete" --actor agent-lead --json
workgraph dispatch create-execute "Close all ready threads in platform space" \
  --actor agent-lead \
  --agents agent-a,agent-b,agent-c \
  --space spaces/platform \
  --json
workgraph trigger fire triggers/escalate-blocked.md --event-key "thread-blocked-001" --actor agent-lead --json
workgraph onboarding update onboarding/onboarding-for-agent-architect.md --status paused --actor agent-lead --json
workgraph mcp serve -w /path/to/workspace --actor agent-ops --read-only
workgraph ledger show --count 20 --json
workgraph command-center --output "ops/Command Center.md" --json
workgraph bases generate --refresh-registry --json

JSON contract

All commands support --json and emit:

  • Success: { "ok": true, "data": ... }
  • Failure: { "ok": false, "error": "..." } (non-zero exit)

This is intended for robust parsing by autonomous agents.

Monorepo layout

The repository is now fully organized as a pnpm workspaces monorepo while preserving the published @versatly/workgraph package compatibility surface.

Legacy root src/ compatibility wrappers have been removed. Package-owned modules under packages/* are the only implementation source of truth.

Key workspace packages:

  • packages/kernel — domain state machine and coordination core
  • packages/cli — command surface over kernel workflows
  • packages/sdk — curated public package surface
  • packages/control-api — REST, SSE, webhook gateway, and HTTP MCP hosting
  • packages/runtime-adapter-core — reusable dispatch contracts and generic transports
  • packages/adapter-claude-code — Claude Code-specific execution adapter
  • packages/adapter-cursor-cloud — Cursor Cloud-style execution adapter
  • packages/mcp-server — stdio + HTTP MCP transport and tool registration
  • packages/testkit — contract fixtures and schema validation helpers
  • packages/search-qmd-adapter — search compatibility seam
  • packages/obsidian-integration — editor-facing projections and exports
  • packages/skills — package-level skill distribution surface

Package ownership and layering are documented in docs/PACKAGE_BOUNDARIES.md.

Migration notes: see docs/MIGRATION.md. Live workspace repair runbook: see docs/INVARIANT_REPAIR_PLAYBOOK.md. Realtime control-api SSE contract: see docs/SSE_EVENTS.md. Current architecture execution roadmap: see docs/ARCHITECTURE_ROADMAP.md.

Reliability and autonomy hardening

Recent hardening focused on making unattended operation safer rather than just adding more commands:

  • dispatch runs now maintain leases while executing and propagate timeout/cancel intent into adapter execution contracts
  • autonomy cycles now repair dispatch state, reconcile expired leases, recover thread claim/reference drift, and run mission orchestration passes as part of the same control loop
  • trigger actions can now express composable boolean conditions (all / any / not) and route risky shell / update-primitive actions through safety rails
  • MCP now exposes trigger create/update/delete/fire tools in addition to the trigger engine cycle surface

Development workflow (contributors)

pnpm install
pnpm run ci

The default pnpm run test script now uses scripts/run-tests.mjs, a hardened Vitest wrapper that enforces deterministic process exit in CI (especially on Windows where lingering esbuild children can keep vitest run alive after all test files report complete).

  • pnpm run test: hardened runner (recommended for CI/local reliability)
  • pnpm run test:vitest: raw Vitest invocation (useful for debugging Vitest itself)

Optional tuning knobs:

  • WORKGRAPH_TEST_EXIT_GRACE_MS: grace period after all file results are observed before forced process-tree cleanup (default 15000)
  • WORKGRAPH_TEST_MAX_RUNTIME_MS: hard timeout for the full run (default 1200000)

Demo vault generator

Generate the large Obsidian demo workspace used for stress-testing:

pnpm run demo:workspace
pnpm run demo:obsidian-setup

Runbook: docs/OBSIDIAN_DEMO.md.

Space-scoped scheduling

workgraph thread create "Implement auth middleware" \
  --goal "Protect private routes" \
  --space spaces/backend.md \
  --actor agent-api \
  --json

workgraph thread list --space spaces/backend --ready --json
workgraph thread next --space spaces/backend --claim --actor agent-api --json

Auto-generate .base files from primitive registry

# Sync .workgraph/primitive-registry.yaml
workgraph bases sync-registry --json

# Generate canonical primitive .base files
workgraph bases generate --json

# Include non-canonical (agent-defined) primitives
workgraph bases generate --all --refresh-registry --json

Graph intelligence workflows

# Build/refresh graph index first (optional but useful)
workgraph graph index --json

# Multi-hop neighborhood around a primitive slug/path
workgraph graph neighborhood ship-feature --depth 2 --json

# Reverse-link blast radius (what references this primitive)
workgraph graph impact ship-feature --json

# Auto-assemble markdown context bundle within token budget (chars/4)
workgraph graph context ship-feature --budget 2000 --json

# Inspect typed relationship edges for one primitive
workgraph graph edges ship-feature --json

# Export a markdown subgraph for handoff/sharing
workgraph graph export ship-feature --depth 2 --format md --json

Ledger query, blame, and tamper detection

workgraph ledger query --actor agent-worker --op claim --json
workgraph ledger blame threads/auth.md --json
workgraph ledger verify --strict --json

Native skill lifecycle (shared vault / Tailscale)

# with shared vault env (e.g. tailscale-mounted path)
export WORKGRAPH_SHARED_VAULT=/mnt/tailscale/company-workgraph

workgraph skill write "workgraph-manual" \
  --body-file ./skills/workgraph-manual.md \
  --owner agent-architect \
  --actor agent-architect \
  --json

workgraph skill propose workgraph-manual --actor agent-reviewer --space spaces/platform --json
workgraph skill promote workgraph-manual --actor agent-lead --json
workgraph skill load workgraph-manual --json
workgraph skill list --updated-since 2026-02-27T00:00:00.000Z --json
workgraph skill history workgraph-manual --limit 10 --json
workgraph skill diff workgraph-manual --json

Optional Clawdapus integration

List supported optional integrations:

workgraph integration list --json

Install by integration ID (extensible pattern for future integrations):

workgraph integration install clawdapus \
  --actor agent-architect \
  --json

Refresh from upstream later (or use the integration clawdapus alias):

workgraph integration install clawdapus --force --actor agent-architect --json

Legacy memory stacks vs Workgraph primitives

@versatly/workgraph is execution coordination only.

  • Use it for: ownership, decomposition, dependency management, typed coordination primitives.
  • Do not use it for: long-term memory categories (decisions/, people/, projects/ memory workflows), qmd semantic retrieval pipelines, observer/reflector memory compression.

This split keeps the workgraph package focused, portable, and shell-agent-native.

Migrating from mixed memory/workgraph vaults

  1. Initialize a clean workgraph workspace:
    workgraph init ./coordination-space --json
  2. Recreate only coordination entities as workgraph primitives (thread, space, custom types).
  3. Move or archive memory-specific folders outside the coordination workspace.
  4. Generate a control plane note for humans/agents:
    workgraph command-center --output "ops/Command Center.md" --json

Programmatic API

import { registry, thread, store, ledger, workspace } from '@versatly/workgraph';

workspace.initWorkspace('/tmp/wg');

registry.defineType('/tmp/wg', 'milestone', 'Release checkpoint', {
  thread_refs: { type: 'list', default: [] },
  target_date: { type: 'date' },
}, 'agent-architect');

const t = thread.createThread('/tmp/wg', 'Build Auth', 'JWT and refresh flow', 'agent-lead');
thread.claim('/tmp/wg', t.path, 'agent-worker');
thread.done('/tmp/wg', t.path, 'agent-worker', 'Shipped');

Publish (package-only)

From this directory:

pnpm run ci
pnpm publish --access public

Skill guide

See SKILL.md for the full operational playbook optimized for autonomous agents (including pi-mono compatibility guidance).