imprnt 0.1.3-edge.48 → 0.1.3-edge.53
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/dist/cli.js +20 -7
- package/dist/imp.js +20 -7
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -302,7 +302,7 @@ function purgePlugin(projectRoot, name) {
|
|
|
302
302
|
var OFFICIAL;
|
|
303
303
|
var init_install = __esm(() => {
|
|
304
304
|
init_plugins();
|
|
305
|
-
OFFICIAL = ["anti-slop", "character", "whenful", "timemachine", "statusline", "telegram"];
|
|
305
|
+
OFFICIAL = ["anti-slop", "character", "whenful", "timemachine", "statusline", "telegram", "kopeika"];
|
|
306
306
|
});
|
|
307
307
|
|
|
308
308
|
// scripts/lib/global.ts
|
|
@@ -2014,6 +2014,7 @@ var exports_check = {};
|
|
|
2014
2014
|
import { readdirSync as readdirSync8, readFileSync as readFileSync13, statSync as statSync8, existsSync as existsSync12, writeFileSync as writeFileSync9 } from "node:fs";
|
|
2015
2015
|
import { spawnSync as spawnSync3 } from "node:child_process";
|
|
2016
2016
|
import { join as join14, relative as relative6, dirname as dirname3 } from "node:path";
|
|
2017
|
+
import { homedir as homedir3 } from "node:os";
|
|
2017
2018
|
function resolves(target) {
|
|
2018
2019
|
const t = target.trim().replace(/^\.\//, "").replace(/\.md$/, "");
|
|
2019
2020
|
if (!t)
|
|
@@ -2075,7 +2076,7 @@ ${REVIEW_END}
|
|
|
2075
2076
|
writeFileSync9(p, next);
|
|
2076
2077
|
return lines2.length ? "written" : "cleared";
|
|
2077
2078
|
}
|
|
2078
|
-
var args4, vault4, all = false, ENTITY_FOLDERS, DOMAIN_FOLDERS2, LINK, notes, allSlugs, folderOf, byBasename, orphans, disconnected, domainIssues, untagged, review, referencedRaw, tagVocab, hasRealTag = (tags) => tags.some((t) => /[\p{L}\p{N}]/u.test(normalize(tagVocab, t))), hasTagsFile, addedTags, dupPairs, manifest3, rawEntries, norm = (p) => p.replace(/^\.\//, "").replace(/^.*\/raw\//, "raw/").replace(/\.md$/, ""), refNorm, uncovered, REVIEW_BEGIN = "<!-- imprnt-check:begin (regenerated by `imprnt check` - do not edit between the markers) -->", REVIEW_END = "<!-- imprnt-check:end -->", cap = (xs, n = 25) => xs.slice(0, n).concat(xs.length > n ? [` … +${xs.length - n} more`] : []), count, folders, synced, issues;
|
|
2079
|
+
var args4, vault4, all = false, ENTITY_FOLDERS, DOMAIN_FOLDERS2, LINK, notes, allSlugs, folderOf, byBasename, orphans, disconnected, domainIssues, untagged, review, referencedRaw, tagVocab, hasRealTag = (tags) => tags.some((t) => /[\p{L}\p{N}]/u.test(normalize(tagVocab, t))), hasTagsFile, addedTags, dupPairs, manifest3, rawEntries, norm = (p) => p.replace(/^\.\//, "").replace(/^.*\/raw\//, "raw/").replace(/\.md$/, ""), refNorm, uncovered, hostMemoryDir, strayMemory, REVIEW_BEGIN = "<!-- imprnt-check:begin (regenerated by `imprnt check` - do not edit between the markers) -->", REVIEW_END = "<!-- imprnt-check:end -->", cap = (xs, n = 25) => xs.slice(0, n).concat(xs.length > n ? [` … +${xs.length - n} more`] : []), count, folders, synced, issues;
|
|
2079
2080
|
var init_check = __esm(() => {
|
|
2080
2081
|
init_roots();
|
|
2081
2082
|
init_moc();
|
|
@@ -2213,6 +2214,10 @@ var init_check = __esm(() => {
|
|
|
2213
2214
|
uncovered = [...new Set(rawEntries.map(norm))].filter((r) => !refNorm.has(r)).sort();
|
|
2214
2215
|
for (const r of uncovered)
|
|
2215
2216
|
review.push(`- [ ] unclassified snapshot \`${r}\` — no vault note points back`);
|
|
2217
|
+
hostMemoryDir = process.env.IMPRNT_HOST_MEMORY_DIR ?? join14(homedir3(), ".claude", "projects", projectRoot().replace(/[/.]/g, "-"), "memory");
|
|
2218
|
+
strayMemory = existsSync12(hostMemoryDir) ? readdirSync8(hostMemoryDir).filter((f) => f.endsWith(".md") && f !== "MEMORY.md").sort() : [];
|
|
2219
|
+
if (strayMemory.length)
|
|
2220
|
+
review.push(`- [ ] host auto-memory not empty — ${strayMemory.length} note(s) in ${hostMemoryDir}; migrate knowledge → vault notes, behavior → a CLAUDE.local.md fragment, then empty it`);
|
|
2216
2221
|
console.log(`imprnt check — ${notes.length} notes in ${vault4}
|
|
2217
2222
|
`);
|
|
2218
2223
|
if (orphans.length) {
|
|
@@ -2264,6 +2269,14 @@ var init_check = __esm(() => {
|
|
|
2264
2269
|
} else
|
|
2265
2270
|
console.log("✓ every raw snapshot has a derived note");
|
|
2266
2271
|
}
|
|
2272
|
+
if (strayMemory.length) {
|
|
2273
|
+
console.log(`⚠ host auto-memory not empty (${strayMemory.length}) — a second store recall can't see, at ${hostMemoryDir}:`);
|
|
2274
|
+
console.log(cap(strayMemory.map((f) => " " + f)).join(`
|
|
2275
|
+
`));
|
|
2276
|
+
console.log(` migrate knowledge → vault notes, behavior → a CLAUDE.local.md fragment, then empty it.
|
|
2277
|
+
`);
|
|
2278
|
+
} else
|
|
2279
|
+
console.log(`✓ host auto-memory empty (vault is the only store) — checked ${hostMemoryDir}`);
|
|
2267
2280
|
({ count, folders } = generateIndex(vault4));
|
|
2268
2281
|
console.log(`↻ regenerated index.md — ${count} notes across ${folders} folders`);
|
|
2269
2282
|
synced = syncNeedsReview(review);
|
|
@@ -2271,7 +2284,7 @@ var init_check = __esm(() => {
|
|
|
2271
2284
|
console.log(`↻ ${review.length} finding(s) → _needs-review.md (run \`imprnt hot\` to see them)`);
|
|
2272
2285
|
else if (synced === "cleared")
|
|
2273
2286
|
console.log("↻ cleared resolved findings from _needs-review.md");
|
|
2274
|
-
issues = orphans.length + disconnected.length + domainIssues.length + untagged.length + uncovered.length + dupPairs.length;
|
|
2287
|
+
issues = orphans.length + disconnected.length + domainIssues.length + untagged.length + uncovered.length + dupPairs.length + strayMemory.length;
|
|
2275
2288
|
console.log(issues ? `
|
|
2276
2289
|
${issues} thing(s) to look at above.` : `
|
|
2277
2290
|
clean.`);
|
|
@@ -2324,7 +2337,7 @@ var exports_cli = {};
|
|
|
2324
2337
|
import { cpSync as cpSync3, mkdirSync as mkdirSync5, existsSync as existsSync13, readFileSync as readFileSync14, lstatSync as lstatSync4, statSync as statSync9, realpathSync as realpathSync2 } from "node:fs";
|
|
2325
2338
|
import { spawnSync as spawnSync4 } from "node:child_process";
|
|
2326
2339
|
import { join as join15, dirname as dirname4, resolve as resolve6, basename as basename5 } from "node:path";
|
|
2327
|
-
import { homedir as
|
|
2340
|
+
import { homedir as homedir4 } from "node:os";
|
|
2328
2341
|
import { fileURLToPath } from "node:url";
|
|
2329
2342
|
import { createInterface } from "node:readline/promises";
|
|
2330
2343
|
function pluginRoot() {
|
|
@@ -2355,7 +2368,7 @@ function requireVaultHome() {
|
|
|
2355
2368
|
}
|
|
2356
2369
|
return home;
|
|
2357
2370
|
}
|
|
2358
|
-
function resolvePath(input, base = process.cwd(), home =
|
|
2371
|
+
function resolvePath(input, base = process.cwd(), home = homedir4()) {
|
|
2359
2372
|
let p = input;
|
|
2360
2373
|
if (p === "~")
|
|
2361
2374
|
p = home;
|
|
@@ -2587,7 +2600,7 @@ enable: imprnt plugin add <name> disable: imprnt plugin rm <name> [--purge]`);
|
|
|
2587
2600
|
process.exit(1);
|
|
2588
2601
|
}
|
|
2589
2602
|
case "global": {
|
|
2590
|
-
const globalDir = process.env.CLAUDE_CONFIG_DIR || join15(
|
|
2603
|
+
const globalDir = process.env.CLAUDE_CONFIG_DIR || join15(homedir4(), ".claude");
|
|
2591
2604
|
const [sub, ...gargs] = rest;
|
|
2592
2605
|
if (sub === "list") {
|
|
2593
2606
|
const enabled = listGlobalModules(globalDir);
|
|
@@ -2667,7 +2680,7 @@ enable: imprnt plugin add <name> disable: imprnt plugin rm <name> [--purge]`);
|
|
|
2667
2680
|
} else if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
2668
2681
|
const inPlace = isVaultProject(process.cwd());
|
|
2669
2682
|
const display = inPlace ? process.cwd() : "~/imprnt";
|
|
2670
|
-
const fallback = inPlace ? process.cwd() : join15(
|
|
2683
|
+
const fallback = inPlace ? process.cwd() : join15(homedir4(), "imprnt");
|
|
2671
2684
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
2672
2685
|
const answer = (await rl.question(`vault location [${display}]: `)).trim();
|
|
2673
2686
|
rl.close();
|
package/dist/imp.js
CHANGED
|
@@ -302,7 +302,7 @@ function purgePlugin(projectRoot, name) {
|
|
|
302
302
|
var OFFICIAL;
|
|
303
303
|
var init_install = __esm(() => {
|
|
304
304
|
init_plugins();
|
|
305
|
-
OFFICIAL = ["anti-slop", "character", "whenful", "timemachine", "statusline", "telegram"];
|
|
305
|
+
OFFICIAL = ["anti-slop", "character", "whenful", "timemachine", "statusline", "telegram", "kopeika"];
|
|
306
306
|
});
|
|
307
307
|
|
|
308
308
|
// scripts/lib/global.ts
|
|
@@ -2014,6 +2014,7 @@ var exports_check = {};
|
|
|
2014
2014
|
import { readdirSync as readdirSync8, readFileSync as readFileSync13, statSync as statSync8, existsSync as existsSync12, writeFileSync as writeFileSync9 } from "node:fs";
|
|
2015
2015
|
import { spawnSync as spawnSync3 } from "node:child_process";
|
|
2016
2016
|
import { join as join14, relative as relative6, dirname as dirname3 } from "node:path";
|
|
2017
|
+
import { homedir as homedir3 } from "node:os";
|
|
2017
2018
|
function resolves(target) {
|
|
2018
2019
|
const t = target.trim().replace(/^\.\//, "").replace(/\.md$/, "");
|
|
2019
2020
|
if (!t)
|
|
@@ -2075,7 +2076,7 @@ ${REVIEW_END}
|
|
|
2075
2076
|
writeFileSync9(p, next);
|
|
2076
2077
|
return lines2.length ? "written" : "cleared";
|
|
2077
2078
|
}
|
|
2078
|
-
var args4, vault4, all = false, ENTITY_FOLDERS, DOMAIN_FOLDERS2, LINK, notes, allSlugs, folderOf, byBasename, orphans, disconnected, domainIssues, untagged, review, referencedRaw, tagVocab, hasRealTag = (tags) => tags.some((t) => /[\p{L}\p{N}]/u.test(normalize(tagVocab, t))), hasTagsFile, addedTags, dupPairs, manifest3, rawEntries, norm = (p) => p.replace(/^\.\//, "").replace(/^.*\/raw\//, "raw/").replace(/\.md$/, ""), refNorm, uncovered, REVIEW_BEGIN = "<!-- imprnt-check:begin (regenerated by `imprnt check` - do not edit between the markers) -->", REVIEW_END = "<!-- imprnt-check:end -->", cap = (xs, n = 25) => xs.slice(0, n).concat(xs.length > n ? [` … +${xs.length - n} more`] : []), count, folders, synced, issues;
|
|
2079
|
+
var args4, vault4, all = false, ENTITY_FOLDERS, DOMAIN_FOLDERS2, LINK, notes, allSlugs, folderOf, byBasename, orphans, disconnected, domainIssues, untagged, review, referencedRaw, tagVocab, hasRealTag = (tags) => tags.some((t) => /[\p{L}\p{N}]/u.test(normalize(tagVocab, t))), hasTagsFile, addedTags, dupPairs, manifest3, rawEntries, norm = (p) => p.replace(/^\.\//, "").replace(/^.*\/raw\//, "raw/").replace(/\.md$/, ""), refNorm, uncovered, hostMemoryDir, strayMemory, REVIEW_BEGIN = "<!-- imprnt-check:begin (regenerated by `imprnt check` - do not edit between the markers) -->", REVIEW_END = "<!-- imprnt-check:end -->", cap = (xs, n = 25) => xs.slice(0, n).concat(xs.length > n ? [` … +${xs.length - n} more`] : []), count, folders, synced, issues;
|
|
2079
2080
|
var init_check = __esm(() => {
|
|
2080
2081
|
init_roots();
|
|
2081
2082
|
init_moc();
|
|
@@ -2213,6 +2214,10 @@ var init_check = __esm(() => {
|
|
|
2213
2214
|
uncovered = [...new Set(rawEntries.map(norm))].filter((r) => !refNorm.has(r)).sort();
|
|
2214
2215
|
for (const r of uncovered)
|
|
2215
2216
|
review.push(`- [ ] unclassified snapshot \`${r}\` — no vault note points back`);
|
|
2217
|
+
hostMemoryDir = process.env.IMPRNT_HOST_MEMORY_DIR ?? join14(homedir3(), ".claude", "projects", projectRoot().replace(/[/.]/g, "-"), "memory");
|
|
2218
|
+
strayMemory = existsSync12(hostMemoryDir) ? readdirSync8(hostMemoryDir).filter((f) => f.endsWith(".md") && f !== "MEMORY.md").sort() : [];
|
|
2219
|
+
if (strayMemory.length)
|
|
2220
|
+
review.push(`- [ ] host auto-memory not empty — ${strayMemory.length} note(s) in ${hostMemoryDir}; migrate knowledge → vault notes, behavior → a CLAUDE.local.md fragment, then empty it`);
|
|
2216
2221
|
console.log(`imprnt check — ${notes.length} notes in ${vault4}
|
|
2217
2222
|
`);
|
|
2218
2223
|
if (orphans.length) {
|
|
@@ -2264,6 +2269,14 @@ var init_check = __esm(() => {
|
|
|
2264
2269
|
} else
|
|
2265
2270
|
console.log("✓ every raw snapshot has a derived note");
|
|
2266
2271
|
}
|
|
2272
|
+
if (strayMemory.length) {
|
|
2273
|
+
console.log(`⚠ host auto-memory not empty (${strayMemory.length}) — a second store recall can't see, at ${hostMemoryDir}:`);
|
|
2274
|
+
console.log(cap(strayMemory.map((f) => " " + f)).join(`
|
|
2275
|
+
`));
|
|
2276
|
+
console.log(` migrate knowledge → vault notes, behavior → a CLAUDE.local.md fragment, then empty it.
|
|
2277
|
+
`);
|
|
2278
|
+
} else
|
|
2279
|
+
console.log(`✓ host auto-memory empty (vault is the only store) — checked ${hostMemoryDir}`);
|
|
2267
2280
|
({ count, folders } = generateIndex(vault4));
|
|
2268
2281
|
console.log(`↻ regenerated index.md — ${count} notes across ${folders} folders`);
|
|
2269
2282
|
synced = syncNeedsReview(review);
|
|
@@ -2271,7 +2284,7 @@ var init_check = __esm(() => {
|
|
|
2271
2284
|
console.log(`↻ ${review.length} finding(s) → _needs-review.md (run \`imprnt hot\` to see them)`);
|
|
2272
2285
|
else if (synced === "cleared")
|
|
2273
2286
|
console.log("↻ cleared resolved findings from _needs-review.md");
|
|
2274
|
-
issues = orphans.length + disconnected.length + domainIssues.length + untagged.length + uncovered.length + dupPairs.length;
|
|
2287
|
+
issues = orphans.length + disconnected.length + domainIssues.length + untagged.length + uncovered.length + dupPairs.length + strayMemory.length;
|
|
2275
2288
|
console.log(issues ? `
|
|
2276
2289
|
${issues} thing(s) to look at above.` : `
|
|
2277
2290
|
clean.`);
|
|
@@ -2324,7 +2337,7 @@ var exports_cli = {};
|
|
|
2324
2337
|
import { cpSync as cpSync3, mkdirSync as mkdirSync5, existsSync as existsSync13, readFileSync as readFileSync14, lstatSync as lstatSync4, statSync as statSync9, realpathSync as realpathSync2 } from "node:fs";
|
|
2325
2338
|
import { spawnSync as spawnSync4 } from "node:child_process";
|
|
2326
2339
|
import { join as join15, dirname as dirname4, resolve as resolve6, basename as basename5 } from "node:path";
|
|
2327
|
-
import { homedir as
|
|
2340
|
+
import { homedir as homedir4 } from "node:os";
|
|
2328
2341
|
import { fileURLToPath } from "node:url";
|
|
2329
2342
|
import { createInterface } from "node:readline/promises";
|
|
2330
2343
|
function pluginRoot() {
|
|
@@ -2355,7 +2368,7 @@ function requireVaultHome() {
|
|
|
2355
2368
|
}
|
|
2356
2369
|
return home;
|
|
2357
2370
|
}
|
|
2358
|
-
function resolvePath(input, base = process.cwd(), home =
|
|
2371
|
+
function resolvePath(input, base = process.cwd(), home = homedir4()) {
|
|
2359
2372
|
let p = input;
|
|
2360
2373
|
if (p === "~")
|
|
2361
2374
|
p = home;
|
|
@@ -2587,7 +2600,7 @@ enable: imprnt plugin add <name> disable: imprnt plugin rm <name> [--purge]`);
|
|
|
2587
2600
|
process.exit(1);
|
|
2588
2601
|
}
|
|
2589
2602
|
case "global": {
|
|
2590
|
-
const globalDir = process.env.CLAUDE_CONFIG_DIR || join15(
|
|
2603
|
+
const globalDir = process.env.CLAUDE_CONFIG_DIR || join15(homedir4(), ".claude");
|
|
2591
2604
|
const [sub, ...gargs] = rest;
|
|
2592
2605
|
if (sub === "list") {
|
|
2593
2606
|
const enabled = listGlobalModules(globalDir);
|
|
@@ -2667,7 +2680,7 @@ enable: imprnt plugin add <name> disable: imprnt plugin rm <name> [--purge]`);
|
|
|
2667
2680
|
} else if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
2668
2681
|
const inPlace = isVaultProject(process.cwd());
|
|
2669
2682
|
const display = inPlace ? process.cwd() : "~/imprnt";
|
|
2670
|
-
const fallback = inPlace ? process.cwd() : join15(
|
|
2683
|
+
const fallback = inPlace ? process.cwd() : join15(homedir4(), "imprnt");
|
|
2671
2684
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
2672
2685
|
const answer = (await rl.question(`vault location [${display}]: `)).trim();
|
|
2673
2686
|
rl.close();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imprnt",
|
|
3
|
-
"version": "0.1.3-edge.
|
|
3
|
+
"version": "0.1.3-edge.53",
|
|
4
4
|
"description": "Deterministic-first, plain-markdown knowledge vault. Code does the bulk transform. The LLM only touches the irreducibly-semantic 20%. Native grep plus BM25 retrieval, zero MCP on the vault.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|