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

@toki0413/plugin-sdk

v0.3.14

Published

Saturday 引擎插件脚手架:给一份引擎描述符,生成过契约(potentialProviderContract)+ 过 conformance 的引擎插件包(descriptor + codec 装配,作者不写 provider 代码)。

Downloads

944

Readme

@toki0413/plugin-sdk —— 把一个引擎接进 Saturday / Agent

给一份引擎描述符,生成一个过契约的引擎插件包;provider 由 @toki0413/core/descriptor-provider 按描述符装配,你不手写 provider 代码。适合"我有一个 CLI 引擎/脚本,想让 Agent 能调、还自带 provenance/失效传播"的计算组。

快速上手

npx create-saturday-plugin myengine ./plugin-myengine
# 生成 ./plugin-myengine/{package.json, src/descriptor.mjs, src/index.mjs, test/descriptor.test.mjs}

或编程式:enginePluginFiles({ name, descriptor }) → 文件映射;writePluginScaffold(dir, {name, descriptor}) 落盘。

你只需编辑 src/descriptor.mjs

| 字段 | 填什么 | |------|--------| | name | 引擎名(注册用) | | binaryDefault | 可执行文件(作者也可经 config.binary 覆盖) | | manifest.units | 引擎实际单位三元组 {energy,length,time},须在白名单内(eV/Ry/…、Å/Bohr/…、fs/ps/s) | | manifest.fingerprint | {software, method, version?};version 拿不到就留 unknown(诚实降级) | | manifest.capabilities | 每项 type + accuracy/speed/cost∈[0,1] + 可选 maxAtoms | | structure.inputFormat | 结构序列化用的已注册 codec:lammps-data / xyz / poscar(没有就先给 core 加一个 codec) | | run.template / run.args | 输入脚本模板({{dataFile}}/{{potentialFile}} 占位)与命令行参数 | | output.energy.regex | 从引擎 stdout 解析终态能量的正则(第 1 捕获组) | | versionProbe | 运行时版本回读命令 + 解析正则(探测失败自动保持 unknown) | | availability.requireConfig | 挂载前必须的配置项(如 potentialFile);缺则判不可用、不静默降级 |

生成包内 test/descriptor.test.mjs 是开箱即过的静态形状 + conformance 测;把你自己引擎的 伪 stdout 加进一个 potentialProviderContract(...),照 plugins/lammps 的写法补运行时契约测。

边界(诚实)

  • 覆盖"常见 CLI 一进一出 + 已有 codec 支持的输入格式"这一大类;复杂引擎(多步 prep、重启、并行环境) 仍需自己写 provider(seam 不变)。
  • 描述符是 JS 对象/JSON,不是 YAML(js-yaml 属外部依赖,违反零运行时依赖)。
  • 生成的插件与手写引擎(ase/lammps/mace/lj)并列注册,跨引擎组合仍受单位/指纹门禁约束。