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

@zhchxiao123/dsh-devflow-fs-guard

v0.2.0

Published

Devflow state protection on the fs intent waterfalls: agent file tools cannot mutate the journal

Readme

@zhchxiao123/dsh-devflow-fs-guard

English | 中文

fs/* intent waterfall 上的 devflow 状态保护:目标路径含受保护目录段的任何文件工具变更(writeeditstr_replace_editor)都在工具执行器里以结构化的 FS_SANDBOX_DENIED 拒绝、不达 ctx.fs Provider,拒绝消息把模型指向 devflow 工具。代码随便写;卡片 journal、投影与租约只能经 ctx.devflow 变更——其 store 在 host 侧写盘,流转执行器(revision CAS、边合法性、打回理由、门禁 waterfall)因此保持卡片历史的唯一写路径。读取原样放行:模型永远可以查看它无法伪造的 journal。

本插件不注册服务、不注入任何东西;它是 devflow 栈的策略之三,正如 dsh-fs-observation-policy 之于观测状态,与门禁配置一起部署在 profile 里。

配置

- id: devflow-fs-guard
  name: '@zhchxiao123/dsh-devflow-fs-guard'
  config:
    directories: ['.devflow']

| 键 | 默认值 | 含义 | |---|---|---| | directories | ['.devflow'] | 文件工具不得变更其子树的目录名,与变更目标路径的每个段匹配。只接受裸目录名;空或格式非法的列表使加载失败(什么都不想守就卸载插件)。 |

Model Experience

Tool results

What the model sees

No schema or prompt changes. A denied mutation returns the file tool's error result carrying the guard's message — the target path, the protected directory list, and the instruction to use devflow_transition/devflow_create instead.

Token effect

None until a denial; a denial costs one short error result.

KV Cache effect

None; the package never assembles or sends provider requests.

Known Limitations and Deferred Work

  • 策略围栏,不是内核边界 — shell 写入只受组合的内核沙箱约束,其 workspace-write profile 仍包含 devflow 根;把受保护目录从共享的 writableRoots 集合中剔除能把围栏延伸到 bash,随沙箱工作推迟。
  • 按名匹配,不按根匹配 — 保护按目标路径中任何位置的目录名生效,不按已解析的 devflow 根,因此恰好叫 .devflow 的代码目录对文件工具同样只读。