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

dsh-factory-client-ui

v0.1.9

Published

Factory Work, all-run Triage, task card, and workspace settings UI

Readme

dsh-factory-client-ui

A root Factory application integrated through application.surface and sidebar.navigation, plus a blank-Session intake control in conversation.input.left.

The browser mounts generated Typert descriptors and keeps only transient tab, card, filter, intent, editor, and request state. Durable projects, tasks, flows, tracker notes, attachments, assignments, schedules, runs, and Triage review state round-trip through ctx.remote.factory; pending and posted user prompts remain authoritative in the active or latest DSH Session.

New Session remains the only human creation workflow. The compact Task/Flow selector sits after Full access and wraps the composer through ctx.conversation.submissions. Task defaults to Run immediately: the ordinary Host sink starts the Session, and automatic Agent observation captures it in the workspace's Emerging work. Task's nested Run later option and every Flow destination consume submission without starting or binding the blank Session. Flow can start a generated flow or add a parallel, sequential, or always-run finalizer node to a nonterminal flow in the same workspace. Each consumed submission mints a distinct intake identity, so repeated work from one blank Session appends tasks instead of replacing the earlier task. Factory acceptance resets Task to Run immediately, clears the shared text draft through the input machine before navigation, lets successful input settlement release its images, and opens the resulting draft card; rejection preserves the draft, images, and selection.

Work always renders Emerging work before named flows, topologically orders each graph, and retains counted priority/status menus, label pills, project/lane metadata, task-and-flow search, searchable dependencies, and reachability rails. Tasks with linked Sessions project the Harness sessionDisposition service instead of storing a second lifecycle: settled Sessions move their tasks into a collapsed history shelf with an Un-settle action, while snoozed or archived Sessions hide their tasks, including named-flow nodes. The task page exposes Settle and Archive actions for its linked Session. A cancelled task without a linked Session instead exposes a permanent Delete task action behind an explicit risk acknowledgement; runnable dependents, retained checkouts, and checkout-reuse relationships remain protected by the domain. Dependency search omits terminal tasks and tasks whose linked Session is settled, snoozed, or archived. Pending rail nodes use closed Lucide geometry: a circle for ordinary nodes, triangle for parallel branches, diamond for joins, and square for finalizers. Main, branch, and horizontal segments share one neutral color; nodes become a blue spinner while running, a green check after success, and a red cross after abrupt failure. Factory contains no task or flow creation modal.

One-time and recurring hourly, daily, weekday, weekly, monthly, or custom-cron timing remains editable on task cards. Scheduled tasks use a distinct lifecycle status and Run now/pause/resume controls. Task prompts expose only schedule and a concrete effective model name. Searchable label chips, including creation from an unmatched query, live in the right properties sidebar. Task cards also expose fixed-height prompts, output, attachments, activity, dependency relationships, and a first-class prompt discussion. Task detail polls the active/latest run checkout and Triage binds the exact selected historical run, rendering .artifacts images and videos in the shared 64px horizontally paged thumbnail rail; one click opens a fullscreen keyboard carousel where the selected media floats over a blurred backdrop with compact controls. A listed Session id is an accessible link that selects that Session and returns to its conversation; an id absent from the current Session list remains visible but inert. During an active run, comments submit through the Session Queue or Steer path; a run whose Session binding has not arrived keeps the composer disabled instead of saving a prompt as a tracker note. A pending ask_user_question request replaces ordinary prompt entry with a human-response gate that renders question Markdown in a bounded scroll region and keeps the action for opening the same Session's canonical DSH answer surface reachable. Posted user messages and saved notes render chronologically in one feed, followed by pending steering and queued rows with stable-identity adjacent movement, editing, removal, and strict steering until claim. Pasted images, initial task screenshots, and images in queued, steered, posted, and durable Factory-note rows use the shared 64px rail and blurred-backdrop carousel; each row navigates all of its attached images without enlarging a lone thumbnail. Terminal cards retain Session history read-only and save new text or images as ordinary Factory notes.

The root tabs are Work, Triage, and Settings. Triage lists immutable regular, observed-Session, and recurring-run results with unread/failed filters, inline key/value details, artifacts, and receipt-backed changed files. At mobile widths, Triage discloses one result detail at a time with an animated return path, task properties stack after the document, editor controls become full-width, and the Factory title aligns with the host drawer control's row. Settings keeps Models and Worktrees section glyphs without app/header icon tiles, equalizes field heights, and places title/description instructions and Reset prompts on a spaced advanced-settings track. Both light and dark themes use Harness semantic tokens.