daftari 1.23.0 → 1.25.0

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +50 -0
  3. package/dist/backfill/apply.d.ts.map +1 -1
  4. package/dist/backfill/apply.js +3 -1
  5. package/dist/backfill/apply.js.map +1 -1
  6. package/dist/backfill/derive.d.ts +1 -0
  7. package/dist/backfill/derive.d.ts.map +1 -1
  8. package/dist/backfill/derive.js +36 -4
  9. package/dist/backfill/derive.js.map +1 -1
  10. package/dist/backfill/index.d.ts +3 -1
  11. package/dist/backfill/index.d.ts.map +1 -1
  12. package/dist/backfill/index.js +2 -1
  13. package/dist/backfill/index.js.map +1 -1
  14. package/dist/backfill/obsidian.d.ts +4 -0
  15. package/dist/backfill/obsidian.d.ts.map +1 -0
  16. package/dist/backfill/obsidian.js +64 -0
  17. package/dist/backfill/obsidian.js.map +1 -0
  18. package/dist/backfill/plan.d.ts +1 -0
  19. package/dist/backfill/plan.d.ts.map +1 -1
  20. package/dist/backfill/plan.js +1 -0
  21. package/dist/backfill/plan.js.map +1 -1
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +7 -21
  24. package/dist/cli.js.map +1 -1
  25. package/dist/curation/coverage.d.ts +49 -0
  26. package/dist/curation/coverage.d.ts.map +1 -0
  27. package/dist/curation/coverage.js +147 -0
  28. package/dist/curation/coverage.js.map +1 -0
  29. package/dist/curation/lint.d.ts +2 -0
  30. package/dist/curation/lint.d.ts.map +1 -1
  31. package/dist/curation/lint.js +23 -2
  32. package/dist/curation/lint.js.map +1 -1
  33. package/dist/import/index.d.ts +2 -0
  34. package/dist/import/index.d.ts.map +1 -0
  35. package/dist/import/index.js +131 -0
  36. package/dist/import/index.js.map +1 -0
  37. package/dist/index.js +1 -1
  38. package/dist/storage/local.d.ts.map +1 -1
  39. package/dist/storage/local.js +6 -1
  40. package/dist/storage/local.js.map +1 -1
  41. package/dist/tools/curation.d.ts +2 -0
  42. package/dist/tools/curation.d.ts.map +1 -1
  43. package/dist/tools/curation.js +2 -0
  44. package/dist/tools/curation.js.map +1 -1
  45. package/dist/tools/write.d.ts.map +1 -1
  46. package/dist/tools/write.js +17 -3
  47. package/dist/tools/write.js.map +1 -1
  48. package/dist/utils/config.d.ts +1 -0
  49. package/dist/utils/config.d.ts.map +1 -1
  50. package/dist/utils/config.js +40 -1
  51. package/dist/utils/config.js.map +1 -1
  52. package/dist/utils/git.d.ts +4 -2
  53. package/dist/utils/git.d.ts.map +1 -1
  54. package/dist/utils/git.js +27 -5
  55. package/dist/utils/git.js.map +1 -1
  56. package/dist/utils/vault-gitignore.d.ts +3 -0
  57. package/dist/utils/vault-gitignore.d.ts.map +1 -0
  58. package/dist/utils/vault-gitignore.js +59 -0
  59. package/dist/utils/vault-gitignore.js.map +1 -0
  60. package/package.json +1 -1
package/dist/utils/git.js CHANGED
@@ -6,6 +6,8 @@
6
6
  // shell) rather than taking a dependency. The vault directory is the git work
7
7
  // tree; `git -C <vaultRoot>` scopes every command to it.
8
8
  import { execFile } from "node:child_process";
9
+ import { mkdir, rm, stat } from "node:fs/promises";
10
+ import { dirname, join } from "node:path";
9
11
  import { promisify } from "node:util";
10
12
  import { err, ok } from "../frontmatter/types.js";
11
13
  const run = promisify(execFile);
@@ -36,11 +38,31 @@ export async function isGitRepo(vaultRoot) {
36
38
  const result = await git(vaultRoot, ["rev-parse", "--is-inside-work-tree"]);
37
39
  return result.ok && result.value.trim() === "true";
38
40
  }
39
- // Initializes a git repo at the vault root if one does not already exist.
40
- // Idempotent safe to call on every write.
41
- export async function ensureGitRepo(vaultRoot) {
41
+ // Initializes a git repo for the vault if one does not already exist. When
42
+ // `gitDir` is given, the repo data lives there (git init --separate-git-dir),
43
+ // leaving only a static `.git` FILE in the vault — so a cloud-synced vault never
44
+ // holds churning git internals. Idempotent.
45
+ export async function ensureGitRepo(vaultRoot, gitDir) {
42
46
  if (await isGitRepo(vaultRoot))
43
47
  return ok(undefined);
48
+ if (gitDir) {
49
+ // A leftover `.git` FILE (e.g. synced from another device, pointing at a
50
+ // path that doesn't exist here) makes `git init` refuse. isGitRepo already
51
+ // returned false, so it isn't a live repo — drop the stale pointer first.
52
+ try {
53
+ const s = await stat(join(vaultRoot, ".git"));
54
+ if (s.isFile())
55
+ await rm(join(vaultRoot, ".git"));
56
+ }
57
+ catch {
58
+ // no .git present — fine
59
+ }
60
+ await mkdir(dirname(gitDir), { recursive: true });
61
+ const init = await git(vaultRoot, ["init", "--quiet", `--separate-git-dir=${gitDir}`]);
62
+ if (!init.ok)
63
+ return init;
64
+ return ok(undefined);
65
+ }
44
66
  const init = await git(vaultRoot, ["init", "--quiet"]);
45
67
  if (!init.ok)
46
68
  return init;
@@ -50,8 +72,8 @@ export async function ensureGitRepo(vaultRoot) {
50
72
  // `identity`. The commit's committer is also set to `identity` (via `-c`
51
73
  // overrides) so commits land even in a repo with no configured user. Returns
52
74
  // the new commit's short hash.
53
- export async function commit(vaultRoot, paths, message, identity) {
54
- const ready = await ensureGitRepo(vaultRoot);
75
+ export async function commit(vaultRoot, paths, message, identity, opts = {}) {
76
+ const ready = await ensureGitRepo(vaultRoot, opts.gitDir);
55
77
  if (!ready.ok)
56
78
  return ready;
57
79
  if (paths.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const VAULT_GITIGNORE = "# Daftari rebuilds these from the markdown files \u2014 never commit them.\n.daftari/index.db\n.daftari/index.db-journal\n.daftari/index.db-wal\n.daftari/index.db-shm\n.daftari/locks.db\n.daftari/locks.db-journal\n.daftari/locks.db-wal\n.daftari/locks.db-shm\n# Local audit state \u2014 advisory, not vault content. Matters most when a vault\n# runs with auto_commit: false inside a larger repo: keeps the host repo's\n# git status clean of Daftari's per-write log churn.\n.daftari/curation-log.jsonl\n.daftari/staged-actions.jsonl\n.daftari/edges.jsonl\n.daftari/shadow-actions.jsonl\n.daftari/consolidate-state.json\n# Transient backfill staging surface (daftari backfill --plan). The apply\n# commit is the durable audit trail \u2014 the plan itself is never committed.\n.daftari/backfill-plan.jsonl\n";
2
+ export declare function ensureVaultGitignore(vaultRoot: string): Promise<"created" | "appended" | "present">;
3
+ //# sourceMappingURL=vault-gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/vault-gitignore.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,yyBAoB3B,CAAC;AAUF,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CAqB7C"}
@@ -0,0 +1,59 @@
1
+ // Shared .gitignore scaffolding for Daftari vaults.
2
+ //
3
+ // Both `daftari --init` (scaffolding a fresh vault) and `daftari import`
4
+ // (adopting a foreign vault in place) need the same set of ignore rules so the
5
+ // ephemeral .daftari/ index/lock/log files never leak into the user's repo. The
6
+ // constant and the idempotent ensure-helper live here so the two entry points
7
+ // stay DRY.
8
+ import { appendFile, readFile, writeFile } from "node:fs/promises";
9
+ import { join } from "node:path";
10
+ export const VAULT_GITIGNORE = `# Daftari rebuilds these from the markdown files — never commit them.
11
+ .daftari/index.db
12
+ .daftari/index.db-journal
13
+ .daftari/index.db-wal
14
+ .daftari/index.db-shm
15
+ .daftari/locks.db
16
+ .daftari/locks.db-journal
17
+ .daftari/locks.db-wal
18
+ .daftari/locks.db-shm
19
+ # Local audit state — advisory, not vault content. Matters most when a vault
20
+ # runs with auto_commit: false inside a larger repo: keeps the host repo's
21
+ # git status clean of Daftari's per-write log churn.
22
+ .daftari/curation-log.jsonl
23
+ .daftari/staged-actions.jsonl
24
+ .daftari/edges.jsonl
25
+ .daftari/shadow-actions.jsonl
26
+ .daftari/consolidate-state.json
27
+ # Transient backfill staging surface (daftari backfill --plan). The apply
28
+ # commit is the durable audit trail — the plan itself is never committed.
29
+ .daftari/backfill-plan.jsonl
30
+ `;
31
+ // A stable line guaranteed to appear in VAULT_GITIGNORE; used as the marker to
32
+ // detect whether an existing .gitignore already carries the Daftari block.
33
+ const MARKER = ".daftari/index.db";
34
+ // Ensures the vault's .gitignore carries the Daftari ignore block. Idempotent:
35
+ // "created" — no .gitignore existed; wrote VAULT_GITIGNORE.
36
+ // "appended" — a .gitignore existed without the block; appended it.
37
+ // "present" — the block was already there; left the file untouched.
38
+ export async function ensureVaultGitignore(vaultRoot) {
39
+ const path = join(vaultRoot, ".gitignore");
40
+ let existing = null;
41
+ try {
42
+ existing = await readFile(path, "utf-8");
43
+ }
44
+ catch (e) {
45
+ if (e.code === "ENOENT") {
46
+ await writeFile(path, VAULT_GITIGNORE);
47
+ return "created";
48
+ }
49
+ throw e;
50
+ }
51
+ if (existing.includes(MARKER))
52
+ return "present";
53
+ // Separate the user's content from our block so it doesn't glue onto their
54
+ // last line. A leading "\n" guarantees a clean break whether or not the file
55
+ // ends in a newline.
56
+ await appendFile(path, "\n" + VAULT_GITIGNORE);
57
+ return "appended";
58
+ }
59
+ //# sourceMappingURL=vault-gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-gitignore.js","sourceRoot":"","sources":["../../src/utils/vault-gitignore.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,YAAY;AAEZ,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAEF,+EAA+E;AAC/E,2EAA2E;AAC3E,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,+EAA+E;AAC/E,+DAA+D;AAC/D,sEAAsE;AACtE,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAiB;IAEjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE3C,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhD,2EAA2E;IAC3E,6EAA6E;IAC7E,qBAAqB;IACrB,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "daftari",
3
- "version": "1.23.0",
3
+ "version": "1.25.0",
4
4
  "description": "An open-source, multi-user knowledge vault exposed to AI agents via an MCP server.",
5
5
  "license": "MIT",
6
6
  "author": "Mihir Wagle / mavaali",