From 8d71920736927bdab88fd8bd2f4b96b1112be4e3 Mon Sep 17 00:00:00 2001 From: homen Date: Sun, 19 Jul 2026 19:27:36 -0700 Subject: [PATCH] chore: register NodeMem with NodeKit --- README.md | 5 ++++ docs/NODEKIT_ADOPTION.md | 49 ++++++++++++++++++++++++++++++++++++++++ nodekit.yaml | 38 +++++++++++++++++++++++++++++++ package.json | 5 +++- 4 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 docs/NODEKIT_ADOPTION.md create mode 100644 nodekit.yaml diff --git a/README.md b/README.md index eb6560a..2c5ca42 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,11 @@ # NodeMem +NodeKit repository ownership and brownfield mapping are documented in +[`docs/NODEKIT_ADOPTION.md`](docs/NODEKIT_ADOPTION.md). NodeMem is a portable +memory implementation for host runtimes, not a second agent event or receipt +protocol. + ### Notice passively. Act explicitly. A provider-agnostic passive memory component for agent systems. diff --git a/docs/NODEKIT_ADOPTION.md b/docs/NODEKIT_ADOPTION.md new file mode 100644 index 0000000..3d431ae --- /dev/null +++ b/docs/NODEKIT_ADOPTION.md @@ -0,0 +1,49 @@ +# NodeKit adoption + +NodeMem is registered as a NodeKit `standalone-package` and maps its existing +provider-neutral memory core, in-memory adapter, and Convex schema adapter without +reorganizing working source code. + +## Current conformance level + +- **L1 registered:** `nodekit.yaml` declares repository identity, ownership, + lifecycle commands, no-key behavior, environment status, and the current proof + boundary. +- **L2 mapped:** the manifest identifies NodeMem as the current owner of + `nodemem.memory` and as a consumer of the canonical NodeAgent event concept and + ProofLoop certification. + +NodeMem does **not** run a product agent, so it intentionally has no +`nodeagent.yaml`. Its `ScanInput` and `MemoryStore` are domain contracts used by a +host runtime. A future NodeAgent adapter may translate `nodeagent.event/v1` into +`ScanInput`, but this repository does not define a competing runtime event +envelope. + +## Contract boundaries + +| Concern | Current truth | +| --- | --- | +| Passive memory classification, policy, deduplication, and storage port | Owned by NodeMem | +| Runtime event envelope | Consumed from `nodeagent.event/v1`; a canonical adapter is not implemented here yet | +| Convex support | Schema definitions and schema-only smoke test; not a deployed backend proof | +| Certification receipt | ProofLoop owns `proofloop.receipt/v1` | +| NodeMem smoke JSON | Local evidence only; it is not yet a `proofloop.receipt/v1` implementation | + +For that reason, `nodekit.yaml` declares `proof.receiptSchema: null`. The +`npm run proof` gate emits and verifies the existing local smoke evidence without +claiming canonical receipt compatibility. + +## Commands + +```bash +npm run demo +npm run doctor +npm run check +npm run proof +``` + +From a sibling NodeKit checkout, validate the repository contract with: + +```bash +node ../node-platform/src/cli.mjs repo check --repo-root . +``` diff --git a/nodekit.yaml b/nodekit.yaml new file mode 100644 index 0000000..cb42b20 --- /dev/null +++ b/nodekit.yaml @@ -0,0 +1,38 @@ +schemaVersion: nodekit.repo/v1 +repository: HomenShum/NodeMem +lifecycle: preview +support: active +role: standalone-package +commandProfile: application + +canonicalFor: + - nodemem.memory + +consumes: + - nodeplatform.repo-contract + - nodeagent.event-protocol + - proofloop.certification + +commands: + dev: { script: dev, mode: service } + demo: { script: demo, mode: finite } + doctor: { script: doctor, mode: finite } + check: { script: check, mode: finite } + proof: { script: proof, mode: finite } + +noKey: + status: certified + command: npm run demo + externalAccountsRequired: 0 + disclosure: The core and in-memory demonstration are deterministic and provider-agnostic; the included Convex lane validates schema shape only and does not prove a live deployment. + +environment: + contractVersion: nodeplatform.env/v1 + status: not-applicable + +proof: + command: npm run proof + receiptSchema: null + +contractDeclarations: [] +architectureExceptions: [] diff --git a/package.json b/package.json index 741e491..26a9cad 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,10 @@ "node": ">=20" }, "scripts": { - "dev": "vite", + "dev": "tsx watch demo/runNodeMemDemo.ts", + "doctor": "node --version", + "check": "npm run secret-scan && npm run typecheck && npm run test", + "proof": "npm run nodemem:smoke && npm run nodemem:in-memory:smoke && npm run nodemem:convex:smoke", "build": "tsc --noEmit", "demo": "tsx demo/runNodeMemDemo.ts", "demo:node": "node demo/runNodeMemDemo.mjs",