diff --git a/plugins/cef/.claude-plugin/plugin.json b/plugins/cef/.claude-plugin/plugin.json index 8b2068b..0b1f801 100644 --- a/plugins/cef/.claude-plugin/plugin.json +++ b/plugins/cef/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "cef", "description": "Author, test, build, push, and deploy CEF agents", - "version": "0.1.5", + "version": "0.2.0", "author": { "name": "Cere / CEF-AI" }, "homepage": "https://github.com/CEF-AI/cef-plugins" } diff --git a/plugins/cef/skills/develop/SKILL.md b/plugins/cef/skills/develop/SKILL.md index 581537b..177e687 100644 --- a/plugins/cef/skills/develop/SKILL.md +++ b/plugins/cef/skills/develop/SKILL.md @@ -84,6 +84,17 @@ export default class Echo { - **No Node built-ins, no sync DB/network libs.** `fetch` for HTTP, `ctx.cubby` for state, `globalThis.crypto` (WebCrypto) instead of `node:crypto`. `cef build` bans `fs`/`net`/`http`/`child_process`/`pg`/`ws`/`axios`/… . +- **`ctx.cubby` is scratch; `ctx.memory` is the shared bank.** Ask: *who reads + this later, and does each row need its own visibility?* Only this agent → + cubby. People or other agents, per-row sensitivity → `ctx.memory.upsert(… + {scope, privacy})` / `.relation(…)`; read back with `.search` / `.get` / + `.neighbours` / `.countByType`. `privacy` is REQUIRED on every write, one of + `public|internal|private|restricted` — the record's classification, never + defaulted. `neighbours` rows are typed + (`{id, type, title, scope, privacy, edgeType}`). The alias `"memory"` is + reserved for the bank — `cef build` warns on a cubby wearing it. Requires + `@cef-ai/agent-sdk` ≥ 4.1.0 and an orchestrator that stages + `endpoints.vault.memory`. - **Literals, statically read into the manifest.** `@OnEvent("...")`, `ctx.publish("...", …)`, and `ctx.cubby("...")` first args must be inline string literals; the cubby alias (and any `ctx.models.X`) must be **declared** in