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

@cef-ai/eslint-plugin

v1.0.0

Published

Editor-time lint rules for CEF agents. Each **agent** rule mirrors a check that `cef build` performs, so warnings in your editor agree with build failures in CI.

Downloads

278

Readme

@cef-ai/eslint-plugin

Editor-time lint rules for CEF agents. Each agent rule mirrors a check that cef build performs, so warnings in your editor agree with build failures in CI.

The plugin also exports one architectural-boundary rule, no-web3-imports, which the SDK monorepo applies to its own source to keep chain/web3 imports confined to @cef-ai/account. It is not part of the agent build and is deliberately excluded from recommended — see Architectural rules below.

Install

pnpm add -D @cef-ai/eslint-plugin

Configure

The plugin ships a recommended config that turns every agent rule on (no-web3-imports is excluded — it is an SDK-internal rule, see below). The three "declared alias / type" rules accept options carrying the declared sets so the rule can flag undeclared usage without a type-checker.

// .eslintrc.cjs
module.exports = {
  plugins: ["@cef-ai"],
  extends: ["plugin:@cef-ai/recommended"],
  rules: {
    "@cef-ai/cubby-declared-alias": ["error", { aliases: ["history"] }],
    "@cef-ai/model-declared-alias": ["error", { aliases: ["llm"] }],
    "@cef-ai/publish-declared-type": [
      "error",
      { knownEventTypes: ["assistant_message"] },
    ],
  },
};

cef typegen is expected to emit a snippet wiring these option arrays from cef.config.ts (cubbies[].alias, models keys) and from the project's KnownEventTypes declarations / declared publishes. Until typegen drives this end-to-end, hand-write the arrays to match your config.

Agent rules (in recommended)

These are the rules cef build enforces. The recommended config turns all of them on.

| Rule | What it flags | | --- | --- | | @cef-ai/on-event-literal | @OnEvent(...) must take a string literal, never a variable or expression. | | @cef-ai/engagement-id-literal | An engagement id argument must be a string literal, never a variable or expression. | | @cef-ai/publish-declared-type | ctx.publish(t, ...) first argument must be a string literal AND a known event type. | | @cef-ai/cubby-declared-alias | ctx.cubby("alias") must use a string literal AND a declared cubby alias. | | @cef-ai/model-declared-alias | ctx.models.X must reference a declared model alias. | | @cef-ai/no-banned-imports | Imports must not target Node built-ins (fs, net, http, child_process, ...) or unsafe sync DB / network npm packages. |

cef build enforces the same rules and aborts the build on the first violation; this plugin gives you the same feedback at edit time without waiting for a build cycle.

Architectural rules (not in recommended)

| Rule | What it flags | | --- | --- | | @cef-ai/no-web3-imports | Chain/web3 imports (@polkadot/*, @cere-ddc-sdk/*, cere-ddc-sdk-js) outside @cef-ai/account. |

no-web3-imports enforces an SDK-monorepo boundary, not an agent-build check, so it is not in recommended and cef build does not run it. The monorepo applies it repo-wide in its own root .eslintrc.json and turns it off for @cef-ai/account (the one package where chain types belong); the optional allow list is an escape hatch for intentional exceptions. If you are fencing your own packages off from web3, enable it explicitly:

// .eslintrc.cjs (repo-internal, not for agents)
rules: {
  "@cef-ai/no-web3-imports": ["error", { allow: ["@polkadot/", "cere-ddc-sdk-js"] }],
}

Companion packages

  • @cef-ai/agent-sdk — the decorators and Context shape these rules check against.
  • @cef-ai/clicef build, where the same checks run as part of the bundle pipeline; full banned-import list lives in the agent-sdk spec.

References

  • Agent SDK spec: ../../../company-memory-bank/specs/platform/03-components/agent-sdk.md §7 (lints + banned imports).

The ../company-memory-bank/... path points at an internal sibling repo and is not browsable from a fresh clone.