🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@nodemint/projectmind

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nodemint/projectmind - npm Package Compare versions

Comparing version
0.5.0
to
0.5.1
+13
-0
CHANGELOG.md

@@ -6,2 +6,15 @@ # Changelog

## [0.5.1] - 2026-07-04
### Added
- `projectmind savings` and `mind_stats` now report which rules files
currently carry an embedded digest (`embeddedDigestFiles()` /
`stats().embeddedDigestIn`). v0.5.0's embedded-digest mechanism deliberately
avoids a tool call — which means it was invisible to the read-count ledger,
making the counter look stuck at ~0 even when the fix was working
perfectly. This surfaces it as an honest, factual note instead of a
fabricated token estimate: we can observe *that* a file carries the
embedded map, not *how many times* an agent actually read it, so no number
is invented for it.
## [0.5.0] - 2026-07-04

@@ -8,0 +21,0 @@

+1
-1
{
"name": "@nodemint/projectmind",
"version": "0.5.0",
"version": "0.5.1",
"mcpName": "io.github.Nodemint-dev/projectmind",

@@ -5,0 +5,0 @@ "publishConfig": {

@@ -92,2 +92,8 @@ # projectmind

**One deliberate gap, stated plainly:** the ledger only counts *tool calls*
(`mind_digest`, `mind_query`, `mind_context`). The embedded digest described
below never requires a tool call — that's the whole point — so its savings
don't show up as a number here. `projectmind savings` names which rules files
carry it instead of inventing a token count we can't actually observe.
## Session handoff — pick up exactly where you left off

@@ -94,0 +100,0 @@

@@ -250,2 +250,10 @@ #!/usr/bin/env node

if (!s.totals.reads) out(` No reads recorded yet — savings accrue as your agent uses the MCP tools.`);
const embeddedIn = core.embeddedDigestFiles(r);
if (embeddedIn.length) {
out(``);
out(` Also embedded (auto-synced, not counted above): ${embeddedIn.join(", ")}`);
out(` Every agent session there sees the map for free — no tool call needed, so there's`);
out(` nothing to attribute a token count to. This is likely your biggest saving; it just`);
out(` isn't one the ledger above can observe.`);
}
out(``);

@@ -252,0 +260,0 @@ out(` Methodology: ${s.methodology}.`);

@@ -364,2 +364,17 @@ // projectmind core — the only module that touches map.json.

// Which rules files currently carry an embedded digest — i.e. every agent
// session there sees the map for free, with no tool call and therefore
// nothing recorded in the savings ledger. Informational only: deliberately
// NOT converted into a token/dollar estimate, since there's no way to
// observe how many times an agent actually reads a static context file.
export function embeddedDigestFiles(r = root()) {
const found = [];
for (const relFile of RULES_FILES) {
let content;
try { content = fs.readFileSync(path.join(r, relFile), "utf8"); } catch { continue; }
if (content.includes(DIGEST_BLOCK_BEGIN) && content.includes(DIGEST_BLOCK_END)) found.push(relFile);
}
return found;
}
// ---------------------------------------------------------------------------

@@ -620,2 +635,3 @@ // Init

digestTokensEst: estimateTokens(d),
embeddedDigestIn: embeddedDigestFiles(r),
};

@@ -622,0 +638,0 @@ }

@@ -182,3 +182,3 @@ #!/usr/bin/env node

const server = new Server(
{ name: "projectmind", version: "0.5.0" },
{ name: "projectmind", version: "0.5.1" },
{ capabilities: { tools: {} } }

@@ -185,0 +185,0 @@ );