superbee 0.3.0 → 0.4.0-pre.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/SKILL.md +1 -1
- package/dist/publication-bridge.mjs +136 -15
- package/dist/publication.mjs +136 -15
- package/dist/superbee.mjs +1620 -344
- package/package.json +2 -2
- package/references/hosted-checkout.md +21 -6
- package/references/recipes/review-workflow/references/view-authoring-v0.md +8 -2
- package/references/views/references/view-authoring-v0.md +8 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "superbee",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-pre.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent-facing Superbee CLI for reading and writing local OKF knowledge bundles: context notes, docs, cross-links, and live bundle Views.",
|
|
6
6
|
"keywords": [
|
|
@@ -86,6 +86,6 @@
|
|
|
86
86
|
"darwin",
|
|
87
87
|
"linux"
|
|
88
88
|
],
|
|
89
|
-
"readme": "# superbee\n\nShared, versioned, conflict-safe knowledge for AI coding agents, stored as plain markdown in\nyour repo.\n\nSuperbee is pre-1.0. Commands and formats may change between releases.\n\n## What is Superbee?\n\nAgents forget everything between sessions, overwrite each other's work, and keep what they know\ninvisible to the humans they work for. Superbee fixes all three with a **knowledge bundle**: a\nfolder of markdown documents, by convention `.superbee/` at your project root, that agents read\nand write through a small command-line tool.\n\n- **Context that persists.** Agents write context notes, decisions, plans, and research into the\n bundle. The next session, or a different agent, picks up where the last one left off. An\n optional `SessionStart` hook for Claude Code, Codex, and OpenCode orients every new session\n automatically.\n- **Safe for many writers.** Each write can carry the actor that made it. A writer can name the\n version it last read; if anyone changed the document since, the write fails with a typed\n conflict error instead of silently overwriting their work.\n- **Visible to humans.** The bundle is plain markdown. Open it in any editor, render it on\n GitHub, diff it in git. `superbee ui` serves it locally as cross-linked pages with backlinks and\n a live activity feed. No bundle content leaves your machine until you run `superbee sync`, which\n shares the bundle with teammates through the board: a copy of the bundle kept on its own git\n branch, separate from your code.\n- **Views on demand.** Ask your agent for a dashboard, a timeline, a filtered task queue, or a\n reading view of one dense document. It builds a self-contained HTML page, stores it in the bundle\n as a View, and `superbee ui` hosts it in a sandboxed frame. A View reads the bundle live and can\n change it only through a write you confirm. Views are bundle content, so they travel with `sync`.\n- **Built for agents.** Output is structured and token-lean, and errors carry a small, stable set\n of exit codes. Agents act on responses without parsing prose or flooding their context window.\n- **Yours, and portable.** Bundles follow the Open Knowledge Format (OKF), a convention of\n markdown with frontmatter, so they outlive the tool: hand the folder to someone else, or read it\n with anything that speaks markdown. New bundles are written as OKF v0.2, and existing v0.1\n bundles keep working as they are. Reading and writing the bundle works offline; only sharing\n needs a network. The document schemas, called kinds, live inside the bundle, so it describes\n its own structure.\n\nBees build comb one cell at a time. The comb holds what the colony gathers, and its shape shows\nthe next bee where to build and what belongs where. Superbee works the same way: people and\nagents record what they learn in a structure that fits their domain, and that structure guides\nwhoever works next. Each session builds on the last instead of starting over.\n\nThe npm package is one self-contained executable with zero runtime dependencies, plus an Agent\nSkill, an instruction file your agent loads, that teaches it how to use the tool.\n\n## Install\n\nRequires Node.js 20 or newer on macOS and Linux. Native Windows is not supported by this package.\n\n```sh\nnpm install -g superbee\n```\n\nStable releases publish on npm's `latest` tag and prereleases on `next
|
|
89
|
+
"readme": "# superbee\n\nShared, versioned, conflict-safe knowledge for AI coding agents, stored as plain markdown in\nyour repo.\n\nSuperbee is pre-1.0. Commands and formats may change between releases.\n\n## What is Superbee?\n\nAgents forget everything between sessions, overwrite each other's work, and keep what they know\ninvisible to the humans they work for. Superbee fixes all three with a **knowledge bundle**: a\nfolder of markdown documents, by convention `.superbee/` at your project root, that agents read\nand write through a small command-line tool.\n\n- **Context that persists.** Agents write context notes, decisions, plans, and research into the\n bundle. The next session, or a different agent, picks up where the last one left off. An\n optional `SessionStart` hook for Claude Code, Codex, and OpenCode orients every new session\n automatically.\n- **Safe for many writers.** Each write can carry the actor that made it. A writer can name the\n version it last read; if anyone changed the document since, the write fails with a typed\n conflict error instead of silently overwriting their work.\n- **Visible to humans.** The bundle is plain markdown. Open it in any editor, render it on\n GitHub, diff it in git. `superbee ui` serves it locally as cross-linked pages with backlinks and\n a live activity feed. No bundle content leaves your machine until you run `superbee sync`, which\n shares the bundle with teammates through the board: a copy of the bundle kept on its own git\n branch, separate from your code.\n- **Views on demand.** Ask your agent for a dashboard, a timeline, a filtered task queue, or a\n reading view of one dense document. It builds a self-contained HTML page, stores it in the bundle\n as a View, and `superbee ui` hosts it in a sandboxed frame. A View reads the bundle live and can\n change it only through a write you confirm. Views are bundle content, so they travel with `sync`.\n- **Built for agents.** Output is structured and token-lean, and errors carry a small, stable set\n of exit codes. Agents act on responses without parsing prose or flooding their context window.\n- **Yours, and portable.** Bundles follow the Open Knowledge Format (OKF), a convention of\n markdown with frontmatter, so they outlive the tool: hand the folder to someone else, or read it\n with anything that speaks markdown. New bundles are written as OKF v0.2, and existing v0.1\n bundles keep working as they are. Reading and writing the bundle works offline; only sharing\n needs a network. The document schemas, called kinds, live inside the bundle, so it describes\n its own structure.\n\nBees build comb one cell at a time. The comb holds what the colony gathers, and its shape shows\nthe next bee where to build and what belongs where. Superbee works the same way: people and\nagents record what they learn in a structure that fits their domain, and that structure guides\nwhoever works next. Each session builds on the last instead of starting over.\n\nThe npm package is one self-contained executable with zero runtime dependencies, plus an Agent\nSkill, an instruction file your agent loads, that teaches it how to use the tool.\n\n## Install\n\nRequires Node.js 20 or newer on macOS and Linux. Native Windows is not supported by this package.\n\n```sh\nnpm install -g superbee\n```\n\nStable releases publish on npm's `latest` tag and prereleases on `next`. To try the prerelease:\n\n```sh\nnpm install -g superbee@next\n```\n\nWindows adapters and the `superbee-windows` executable live in a separate repository and are\nnot included in `superbee`. Most Windows users should run Superbee in WSL2, where npm sees a\nLinux platform and the normal installation applies. An experimental, unsupported native Windows\nbuild is available as open source, with build-from-source instructions: https://github.com/Holaxis-ai/superbee-windows-cli\n\n### Upgrading an existing Windows installation\n\nThe first release containing the Windows extraction removes native Windows support from this\npackage. Its npm `os` metadata permits only `darwin` and `linux`, so a Windows upgrade to an affected\nversion is rejected with `EBADPLATFORM`. This applies to existing prerelease users too. Forcing the\ninstallation does not restore support: the executable refuses commands on unsupported hosts\nbefore running them (the bare `--version` flag can still identify the installed build).\n\nThere is no supported Windows replacement on npm. The alternatives are WSL2 or the experimental\nbuild from source at https://github.com/Holaxis-ai/superbee-windows-cli; neither carries a\nfirst-party support promise for native Windows. An older installed version is not converted or\nremoved by this source change, and existing bundle files are not migrated by it. Review the affected release's notes before changing an existing\nWindows installation. macOS/Linux users can continue using the normal installation and setup flow.\n\nRun `superbee version --check` to compare your install with the current stable release.\n\n## First run: let your agent finish setup\n\n`npm install` gives you the CLI. The integrations (the Agent Skill, the `SessionStart` hook, and\nMCP server registration, where MCP is the Model Context Protocol) are installed by your agent,\nnot by hand. Ask it:\n\n> Run `superbee setup` and follow its instructions.\n\nSetup itself changes nothing. It inspects your configuration and returns one safe next command at\na time, and the agent runs each with your approval. Setup knows Claude Code, Codex, and OpenCode,\nplus Claude Desktop for the MCP registration only.\n\n## Everyday use\n\nYou rarely type Superbee commands yourself. You ask your agent, and the Agent Skill translates the\nrequest into CLI calls:\n\n- \"Set up a Superbee bundle for this project and track our tasks in it.\"\n- \"Write up what we decided about the auth design as a doc, and link it to the task.\"\n- \"What did the last session leave off on? Check the context notes.\"\n- \"Sync the board so my teammate's agent sees this.\"\n- \"Give me a view of the open tasks grouped by owner.\"\n\nBehind those requests the agent uses a small set of commands: `init --dir .superbee` creates the\nbundle, `new` creates a document of a declared kind, `doc write` writes a free-form one,\n`doc update` changes a document, `link add` connects two, `list` and `doc read` query them, and\n`sync` shares the board. `superbee --help` lists the commands, and `superbee <command> --help`\ngives each one's full reference.\n\nThe two commands meant for you are the ones that show you the knowledge:\n\n```sh\nsuperbee ui --open # the whole bundle, rendered in your browser\nsuperbee doc open <id> # one document, by an id from `superbee list`\n```\n\n## Upgrading from aslite\n\nIf you installed the earlier `@holaxis/aslite` package or its marketplace plugin: install\n`superbee` alongside it, have your agent run `superbee setup` to migrate the integrations, then\nrun `npm uninstall -g @holaxis/aslite`. Existing `.agentstate-lite/` bundles and\n`.agentstate.json` bindings keep working with no migration.\n\n## Learn more\n\nThe [repository](https://github.com/Holaxis-ai/superbee) holds the source, the\n[CLI contract](https://github.com/Holaxis-ai/superbee/blob/main/packages/superbee/AXI-CONTRACT.md),\nand the [wire protocol](https://github.com/Holaxis-ai/superbee/blob/main/docs/WIRE-PROTOCOL.md).\n\n## License\n\nApache-2.0 © 2026 Holaxis\n",
|
|
90
90
|
"readmeFilename": "README.md"
|
|
91
91
|
}
|
|
@@ -210,18 +210,33 @@ Superbee app, by the person.
|
|
|
210
210
|
## Refusals that belong to the person
|
|
211
211
|
|
|
212
212
|
Some commands are refused in a hosted checkout with "do this in the Superbee app". Examples:
|
|
213
|
-
artifacts and `doc verify`. Tell the person what to do in the app. Editing Kinds or
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
213
|
+
artifacts and `doc verify`. Tell the person what to do in the app. Editing Kinds (`kind`) or
|
|
214
|
+
applying recipes (`recipe add`, `recipe evolve`) depends on what the host says at checkout and at
|
|
215
|
+
each `sync`:
|
|
216
|
+
|
|
217
|
+
- Where the host allows this person to change the bundle's model, those commands run, and `sync`
|
|
218
|
+
sends the changed files under `conventions/` like any document. The host checks every change
|
|
219
|
+
against the bundle's documents: a Kind change the documents do not fit comes back `refused`
|
|
220
|
+
(`definition_incompatible`) with findings that name the rule, the field and the documents, and
|
|
221
|
+
the file stays. Fix those documents; the sync that sends them sends the Kind change again. A
|
|
222
|
+
recipe that installs anything besides Kind conventions (Views, References) is refused.
|
|
223
|
+
- Where the host says the person may not, the refusal says so: ask whoever manages access to the
|
|
224
|
+
bundle. Do not suggest a workspace admin role; the permission is managed per person.
|
|
225
|
+
- Where the host says nothing, a hosted bundle's Kinds cannot be changed from a checkout, and the
|
|
226
|
+
app cannot do it either: Kinds are designed in a local or Git bundle before it is published.
|
|
227
|
+
|
|
228
|
+
Do not work around a refusal by editing files, using another command, or copying the bundle
|
|
229
|
+
somewhere else. Taking a bundle out of hosted is `superbee export` (below), and only when the
|
|
230
|
+
person asks for it.
|
|
218
231
|
|
|
219
232
|
`checkout` adds the folder to the workspace catalog, where `catalog list` shows it with
|
|
220
233
|
`home: hosted`. The local MCP app (`superbee mcp`) serves it through the folder, by that label or
|
|
221
234
|
with the session opened in it: a document written through a View lands in the folder and reaches
|
|
222
235
|
the host at the next `superbee sync`. A write sync could not send (a View save, a convention, a
|
|
223
236
|
retype, a document over the size limit, a change to `verified`) is refused before the file
|
|
224
|
-
changes; View saves, conventions and verification are for the person to do in the Superbee app.
|
|
237
|
+
changes; View saves, conventions and verification are for the person to do in the Superbee app.
|
|
238
|
+
The local MCP app never writes conventions, even where the person may change the model: that
|
|
239
|
+
goes through the `kind` and `recipe` commands. With a checkout of a bundle on this
|
|
225
240
|
machine, work through the folder, not also through the hosted connector's tools for that bundle.
|
|
226
241
|
|
|
227
242
|
`sync_busy` means another command is working, or is just taking or releasing the lock: wait,
|
|
@@ -43,7 +43,7 @@ client below wraps all of them.
|
|
|
43
43
|
| request | ask | answer |
|
|
44
44
|
| --- | --- | --- |
|
|
45
45
|
| `hello` | who is hosting me | `{ bundle: { root, name }, mode, protocol, grant, host: { kind, capabilities, limits } }` |
|
|
46
|
-
| `query` | `{ type?, prefix?, field?, open?, limit? }` | `{ rows: [{ id, version, frontmatter }], count }` |
|
|
46
|
+
| `query` | `{ type?, prefix?, field?, open?, limit?, order? }` | `{ rows: [{ id, version, frontmatter }], count }` |
|
|
47
47
|
| `read` | `docId` | `{ id, frontmatter, body }` |
|
|
48
48
|
| `read-versioned` | `docId` | `{ doc, version }` |
|
|
49
49
|
| `render-document` | `docId` | `{ document: { id, version }, html, bounded }` |
|
|
@@ -56,7 +56,13 @@ client below wraps all of them.
|
|
|
56
56
|
`hello.result.grant` is `"read"` for `bundle-read` and `"propose"` for `bundle-propose`. Read
|
|
57
57
|
`hello.result.host.capabilities` to learn what this host honors (for example `query.field-or`,
|
|
58
58
|
`query.open`, `edges`, `graph`, `subscribe-deltas`) instead of assuming; every host refuses what it
|
|
59
|
-
does not offer with
|
|
59
|
+
does not offer with an error (`FORBIDDEN` for request types, `USAGE` for query params), never
|
|
60
|
+
silently.
|
|
61
|
+
|
|
62
|
+
Query rows come in canonical id order. On a host that declares `query.newest`, pass
|
|
63
|
+
`order: "newest"` to get CLI `list` order instead (newest `generated.at` or `timestamp` first, rows
|
|
64
|
+
without a usable time last); the cap then keeps the most recently changed rows. A host without
|
|
65
|
+
`query.newest` answers `order` with `USAGE`, so check the capability first and fall back.
|
|
60
66
|
|
|
61
67
|
Use `render-document` for canonical Markdown presentation: the returned `html` is inert markup
|
|
62
68
|
whose internal links carry `data-aslite-doc-id`. Style it inside the View and insert it unmodified;
|
|
@@ -43,7 +43,7 @@ client below wraps all of them.
|
|
|
43
43
|
| request | ask | answer |
|
|
44
44
|
| --- | --- | --- |
|
|
45
45
|
| `hello` | who is hosting me | `{ bundle: { root, name }, mode, protocol, grant, host: { kind, capabilities, limits } }` |
|
|
46
|
-
| `query` | `{ type?, prefix?, field?, open?, limit? }` | `{ rows: [{ id, version, frontmatter }], count }` |
|
|
46
|
+
| `query` | `{ type?, prefix?, field?, open?, limit?, order? }` | `{ rows: [{ id, version, frontmatter }], count }` |
|
|
47
47
|
| `read` | `docId` | `{ id, frontmatter, body }` |
|
|
48
48
|
| `read-versioned` | `docId` | `{ doc, version }` |
|
|
49
49
|
| `render-document` | `docId` | `{ document: { id, version }, html, bounded }` |
|
|
@@ -56,7 +56,13 @@ client below wraps all of them.
|
|
|
56
56
|
`hello.result.grant` is `"read"` for `bundle-read` and `"propose"` for `bundle-propose`. Read
|
|
57
57
|
`hello.result.host.capabilities` to learn what this host honors (for example `query.field-or`,
|
|
58
58
|
`query.open`, `edges`, `graph`, `subscribe-deltas`) instead of assuming; every host refuses what it
|
|
59
|
-
does not offer with
|
|
59
|
+
does not offer with an error (`FORBIDDEN` for request types, `USAGE` for query params), never
|
|
60
|
+
silently.
|
|
61
|
+
|
|
62
|
+
Query rows come in canonical id order. On a host that declares `query.newest`, pass
|
|
63
|
+
`order: "newest"` to get CLI `list` order instead (newest `generated.at` or `timestamp` first, rows
|
|
64
|
+
without a usable time last); the cap then keeps the most recently changed rows. A host without
|
|
65
|
+
`query.newest` answers `order` with `USAGE`, so check the capability first and fall back.
|
|
60
66
|
|
|
61
67
|
Use `render-document` for canonical Markdown presentation: the returned `html` is inert markup
|
|
62
68
|
whose internal links carry `data-aslite-doc-id`. Style it inside the View and insert it unmodified;
|