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-laya

v0.1.4

Published

Laya typed decisions (noul / choice / score) as a first-class Cordis service and model-visible tools for DeepSeek Harness.

Readme

dsh-laya

Laya typed decisions — noul (yes/no), choice, score — as a first-class Cordis service and model-visible tools for DeepSeek Harness.

English · 简体中文 · Español · Português · हिन्दी

Status: 0.1.4, work in progress. The plugin mounts and activates in the Harness, and the sidecar contract it speaks is verified end-to-end on an RTX 5060 (load 9.8 s, 411 ms for three questions on CUDA). It has not yet been exercised through a live model turn in CI.


Install

Two pieces, because Laya is PyTorch and therefore cannot live inside a Node plugin.

1. The sidecar — this is what actually holds the model:

pip install "laya-mcp[mcp]"
laya-mcp serve                      # loads once, listens on 127.0.0.1:8787

2. This plugin:

dsh plugin --profile <profile> add dsh-laya

Then confirm the row is active, not failed, and read the startup line — it says in as many words whether state stays on this machine.

Why the sidecar is separate

A plugin that shelled out to pip install and then downloaded a 650 MB checkpoint behind your back would be hostile, however convenient. So this plugin installs nothing and downloads nothing. It is a client of a process you start, and when that process is not running it says so rather than failing obscurely at the first tool call.

The split also buys the warm model: Laya's cold build costs seconds to tens of seconds, and its default lazy router rebuilds a checkpoint on every language switch. laya-mcp serve pays that once.

What it contributes

One service, ctx.laya — so Host code and other plugins can ask for a judgment directly, without a model round-trip:

const laya = ctx.get('laya')
const result = await laya.ask({ state, questions })

It exposes ask, plan, health, capabilities, sidecarUrl, and loopback — the last being whether state stays on this machine, as a fact rather than a policy. plan is the preflight: the same arithmetic /ask reports, with no forward pass.

Two tools — laya_ask for a batch of typed questions, and laya_plan to check the token budget before spending a forward pass.

What it is honest about

Laya truncates silently and its confidence number is widely misread, so the tool description and the response both say so:

  • An oversized state is cut from the END, and the answer is then about the surviving prefix. The response reports it under truncated, and laya_plan tells you before you ask. Pass strict: true to refuse instead — verified against the live sidecar, which returns HTTP 400 with state_truncated and a hint naming max_len.
  • confidence is not accuracy. It is a concentration statistic: low whenever probability is spread across options even when the top option is right, and high on a confident wrong answer. A noul also carries a no / uncertain / yes band, because a calibrated probability is not a decision — a real measured example from this stack returned 0.5457 with the band uncertain.
  • A silent CPU demotion is reported. If Laya falls back to CPU after a device error it never returns to the accelerator, and nothing in its own output admits it. The health surface carries degraded, and the tool card appends CPU (degraded).

Configuration

- insert:
    - id: laya
      name: 'dsh-laya'
      config:
        sidecarUrl: 'http://127.0.0.1:8787'
        requestTimeoutMs: 120000
        lifecycle: never      # 'attach' to log a reachability check,
                              # 'spawn' to start the sidecar yourself
        spawnCommand: null    # required by 'spawn', e.g. ['laya-mcp', 'serve']
        spawnTimeoutMs: 120000
        logLevel: info

lifecycle decides what happens when nothing is answering at sidecarUrl:

| | | |---|---| | never | Start nothing; assume something else manages the sidecar. The default. | | attach | Also check /health once at load and log what it found — useful when the harness and the sidecar race at startup. | | spawn | Also run spawnCommand if nothing answers, then wait for it to come up. |

spawn exists because the alternative was worse. The plugin still installs nothing and downloads nothing — a tool that ran pip install and then fetched a 650 MB checkpoint behind your back would be hostile, and that has not changed. But launching a sidecar you already installed is a different act, and without it every session began by starting a Python process in a terminal by hand, and began failing again every time that process went away.

Two rules make it safe to leave on:

  • A sidecar that is already answering is attached to and never touched, so two harness sessions cannot put two models on one port.
  • A sidecar this plugin started is stopped when the plugin unmounts; one it did not start is left exactly as it was found.

There is still no option that installs anything or fetches a model, and spawnCommand has no default: this plugin will not guess at an interpreter.

Pointing sidecarUrl somewhere that is not loopback is allowed and warns once at startup, naming the destination: that is the moment the privacy story changes, and it should not be discoverable only by reading a config file.

Upstream limits worth knowing before you rely on this

Repeated from upstream's own measurements, because an integration that implies otherwise is lying to you. The base checkpoints are near chance zero-shot on typed decisions (0.362 for English against a 0.461 majority-class baseline); score is the weakest primitive (35% vs 70% for Jev in independent measurement); raw calibration error is 0.466 before temperature fitting; and accuracy falls off above roughly 20 options.

Calibration makes a probability honest. It cannot make a model right.

Part of the laya-mcp family

| project | what it is | |---|---| | laya-mcp | The Python core and sidecar: warm model, token-budget preflight, calibration store, and the MCP server. Registered as io.github.PerryLink/laya-mcp in the official MCP Registry. | | dsh-laya | This repository — the DeepSeek Harness integration. | | laya-mcp on npm | The Node launcher for npx -y laya-mcp. | | laya-mcp install | The multi-harness installer for Claude Code, Codex, opencode, OpenClaw and Hermes — a subcommand of the Python package, not a separate distribution. |

PerryLink DSH Plugin Family

This project is one of the 42 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:

| Plugin | One-liner | |---|---| | dsh-auto-review | Second-model auto-review on the approval chain, fail-closed by default | | | dsh-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards and a /tier command | | | dsh-background-agents | Durable background child agents with a Web UI sidebar, messaging and interrupt | | | dsh-budget | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | | | dsh-catalog | DSH Desktop Market standard catalog source for the PerryLink family | | | dsh-cert-mcp | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | | | dsh-checkpoint-rewind | Unified session + workspace + config checkpoints with one-shot /rewind | | | dsh-claude-move | Migrate Claude Code, Codex, OpenCode and Hermes sessions, memories and skills into DSH | | | dsh-click | Cross-platform native desktop control for DeepSeek Harness — Windows first. | | | dsh-composer-history | Terminal-style input history for the web composer: arrows, Ctrl+R search | | | dsh-data-quality | Deterministic dataset profiling, cleaning and citation verification | | | dsh-defend | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | | | dsh-doublecheck | Engineering-discipline guard: requirements grill, test gates, adversary review | | | dsh-draw | Unified static-image generation routing for DeepSeek Harness. | | | dsh-fast | Read-only performance diagnostics: load, spill, compaction and cache hit rate | | | dsh-fund-research | Chinese mutual-fund research with sealed, traceable source snapshots | | | dsh-github | GitHub PR/issue/CI integration with every write approval-gated | | | dsh-industry-research | Industry and company research pack: chain map, policy timeline, company cards | | | dsh-kit | One-command starter pack that installs the core family | | | dsh-library | Local document knowledge base with hybrid search and citation-aware injection | | | dsh-local-ai | Local Ollama model discovery and task-based routing with cloud fallback | | | dsh-lsp-actions | LSP diagnostics, formatting, completion, code actions, symbols and rename | | | dsh-mask | PII masking at the model boundary with a host-side restore table | | | dsh-mcp-panel | MCP management console: /mcp command, Settings tab and trial calls | | | dsh-memento | Approval-gated cross-session memory protocol (ctx.memory + SQLite) | | | dsh-observe | OpenTelemetry and Langfuse telemetry export from the session event stream | | | dsh-output-styles | Runtime-switchable model output styles | | | dsh-permission-rules | Declarative allow/deny/ask rules plus a process-level network policy | | | dsh-plugin-certification | Community certification registry with repro-checkable grades and badges | | | dsh-plugin-doctor | Zero-dependency static + sandbox smoke detector for DSH plugins | | | dsh-plugin-guide | Plugin-dev knowledge base, agent skill and the dsh-plugin-dev CLI toolchain | | | dsh-plugin-kit | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | | | dsh-plugin-portal | Zero-dependency static portal rendering the whole plugin family as one page | | | dsh-plugin-upgrade | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | | | dsh-reach | Multi-channel approval/question bridge: WeChat, Telegram, Feishu + a session console | | | dsh-research-report | Verifiable research reports: evidence ledger, manifest seal, per-claim verdicts | | | dsh-score | Multi-dimensional plugin quality scoring with an evidence-backed leaderboard | | | dsh-session-pin | Pin sessions and workspaces in the Web sidebar with per-pin colors | | | dsh-session-sync | Git-backed cross-device session synchronization with keep-both merges | | | dsh-skill-pack-security | Security-audit skill pack plus the plugin_vet supply-chain gate | | | dsh-talk | Voice-first session loop: speech-to-text input and text-to-speech replies | | | dsh-team-rooms | Cross-session team rooms: shared message bus, task board and timeline | | | dsh-test-drive | Isolated install-and-smoke test drives with a pass/fail matrix | | | dsh-ticktick | TickTick/Dida365 task bridge: session-header panel plus eleven agent tools | | | dsh-translate | Vendor parameter translation and deterministic JSON repair | |

Licence

Apache-2.0. Laya is Apache-2.0 by Convai Innovations. This is an independent integration and is not affiliated with or endorsed by that project.