@novis10813/secondbrain-cli 0.1.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 (67) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +133 -0
  3. package/dist/commands/backlinks.d.ts +3 -0
  4. package/dist/commands/backlinks.d.ts.map +1 -0
  5. package/dist/commands/backlinks.js +65 -0
  6. package/dist/commands/backlinks.js.map +1 -0
  7. package/dist/commands/capture.d.ts +3 -0
  8. package/dist/commands/capture.d.ts.map +1 -0
  9. package/dist/commands/capture.js +90 -0
  10. package/dist/commands/capture.js.map +1 -0
  11. package/dist/commands/config.d.ts +3 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +84 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/get.d.ts +3 -0
  16. package/dist/commands/get.d.ts.map +1 -0
  17. package/dist/commands/get.js +44 -0
  18. package/dist/commands/get.js.map +1 -0
  19. package/dist/commands/init.d.ts +3 -0
  20. package/dist/commands/init.d.ts.map +1 -0
  21. package/dist/commands/init.js +35 -0
  22. package/dist/commands/init.js.map +1 -0
  23. package/dist/commands/orphans.d.ts +3 -0
  24. package/dist/commands/orphans.d.ts.map +1 -0
  25. package/dist/commands/orphans.js +57 -0
  26. package/dist/commands/orphans.js.map +1 -0
  27. package/dist/commands/search.d.ts +3 -0
  28. package/dist/commands/search.d.ts.map +1 -0
  29. package/dist/commands/search.js +64 -0
  30. package/dist/commands/search.js.map +1 -0
  31. package/dist/commands/stats.d.ts +3 -0
  32. package/dist/commands/stats.d.ts.map +1 -0
  33. package/dist/commands/stats.js +44 -0
  34. package/dist/commands/stats.js.map +1 -0
  35. package/dist/commands/sync.d.ts +3 -0
  36. package/dist/commands/sync.d.ts.map +1 -0
  37. package/dist/commands/sync.js +41 -0
  38. package/dist/commands/sync.js.map +1 -0
  39. package/dist/index.d.ts +3 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +35 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/types/index.d.ts +69 -0
  44. package/dist/types/index.d.ts.map +1 -0
  45. package/dist/types/index.js +3 -0
  46. package/dist/types/index.js.map +1 -0
  47. package/dist/utils/config.d.ts +15 -0
  48. package/dist/utils/config.d.ts.map +1 -0
  49. package/dist/utils/config.js +77 -0
  50. package/dist/utils/config.js.map +1 -0
  51. package/dist/utils/database.d.ts +28 -0
  52. package/dist/utils/database.d.ts.map +1 -0
  53. package/dist/utils/database.js +261 -0
  54. package/dist/utils/database.js.map +1 -0
  55. package/dist/utils/parser.d.ts +19 -0
  56. package/dist/utils/parser.d.ts.map +1 -0
  57. package/dist/utils/parser.js +159 -0
  58. package/dist/utils/parser.js.map +1 -0
  59. package/dist/utils/template.d.ts +17 -0
  60. package/dist/utils/template.d.ts.map +1 -0
  61. package/dist/utils/template.js +100 -0
  62. package/dist/utils/template.js.map +1 -0
  63. package/dist/utils/vault.d.ts +32 -0
  64. package/dist/utils/vault.d.ts.map +1 -0
  65. package/dist/utils/vault.js +194 -0
  66. package/dist/utils/vault.js.map +1 -0
  67. package/package.json +53 -0
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VaultManager = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const database_js_1 = require("./database.js");
7
+ const parser_js_1 = require("./parser.js");
8
+ class VaultManager {
9
+ config;
10
+ db;
11
+ constructor(config) {
12
+ this.config = config;
13
+ this.db = new database_js_1.DatabaseManager(config);
14
+ }
15
+ close() {
16
+ this.db.close();
17
+ }
18
+ // Sync entire vault
19
+ async sync() {
20
+ let added = 0;
21
+ let updated = 0;
22
+ let removed = 0;
23
+ const currentPaths = new Set();
24
+ const markdownFiles = this.findMarkdownFiles();
25
+ // Pass 1: Collect all files and upsert basic metadata with empty links
26
+ for (const filePath of markdownFiles) {
27
+ const relativePath = (0, path_1.relative)(this.config.vaultPath, filePath);
28
+ currentPaths.add(relativePath);
29
+ const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
30
+ const hash = parser_js_1.NoteParser.computeHash(content);
31
+ // Check if note exists and if hash changed
32
+ const existingNote = this.db.getNoteByPath(relativePath);
33
+ if (!existingNote) {
34
+ // New note - create with empty links
35
+ const note = await this.createNoteFromFile(relativePath, content, hash, []);
36
+ this.db.upsertNote(note);
37
+ added++;
38
+ }
39
+ else if (existingNote.hash !== hash) {
40
+ // Updated note - preserve ID, use empty links initially
41
+ const note = await this.createNoteFromFile(relativePath, content, hash, []);
42
+ note.id = existingNote.id; // Keep same ID
43
+ this.db.upsertNote(note);
44
+ updated++;
45
+ }
46
+ }
47
+ // Pass 2: Resolve links against populated database
48
+ for (const filePath of markdownFiles) {
49
+ const relativePath = (0, path_1.relative)(this.config.vaultPath, filePath);
50
+ const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
51
+ const parsed = parser_js_1.NoteParser.parse(content);
52
+ // Get the note ID
53
+ const note = this.db.getNoteByPath(relativePath);
54
+ if (note) {
55
+ // Resolve link titles to note IDs
56
+ const linkIds = [];
57
+ for (const linkTitle of parsed.links) {
58
+ const linkedNote = this.findNoteByTitleOrPath(linkTitle);
59
+ if (linkedNote) {
60
+ linkIds.push(linkedNote.id);
61
+ }
62
+ }
63
+ // Update note with resolved links
64
+ note.links = linkIds;
65
+ this.db.upsertNote(note);
66
+ }
67
+ }
68
+ // Remove notes that no longer exist in filesystem
69
+ const allNotes = this.db.getAllNotes();
70
+ for (const note of allNotes) {
71
+ if (!currentPaths.has(note.path)) {
72
+ this.db.deleteNoteByPath(note.path);
73
+ removed++;
74
+ }
75
+ }
76
+ return { added, updated, removed };
77
+ }
78
+ findMarkdownFiles() {
79
+ const files = [];
80
+ const excludeDirs = ['.git', '.secondbrain', 'node_modules'];
81
+ const walk = (dir) => {
82
+ const entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true });
83
+ for (const entry of entries) {
84
+ const fullPath = (0, path_1.join)(dir, entry.name);
85
+ if (entry.isDirectory() && !excludeDirs.includes(entry.name)) {
86
+ walk(fullPath);
87
+ }
88
+ else if (entry.isFile() && (0, path_1.extname)(entry.name) === '.md') {
89
+ files.push(fullPath);
90
+ }
91
+ }
92
+ };
93
+ walk(this.config.vaultPath);
94
+ return files;
95
+ }
96
+ async createNoteFromFile(path, content, hash, links = []) {
97
+ const parsed = parser_js_1.NoteParser.parse(content);
98
+ const fullPath = (0, path_1.join)(this.config.vaultPath, path);
99
+ const stats = (0, fs_1.statSync)(fullPath);
100
+ return {
101
+ id: hash,
102
+ path,
103
+ title: parsed.title,
104
+ content: parsed.content,
105
+ frontmatter: parsed.frontmatter,
106
+ tags: parsed.tags,
107
+ links: links,
108
+ backlinks: [], // Will be computed by database
109
+ hash,
110
+ createdAt: stats.birthtime.toISOString(),
111
+ modifiedAt: stats.mtime.toISOString()
112
+ };
113
+ }
114
+ findNoteByTitleOrPath(titleOrPath) {
115
+ // Try exact path match first
116
+ const note = this.db.getNoteByPath(titleOrPath + '.md');
117
+ if (note)
118
+ return note;
119
+ // Try with different extensions or paths
120
+ const variations = [
121
+ titleOrPath + '.md',
122
+ titleOrPath,
123
+ titleOrPath.replace(/ /g, '-') + '.md',
124
+ titleOrPath.replace(/ /g, '_') + '.md'
125
+ ];
126
+ for (const variation of variations) {
127
+ const note = this.db.getNoteByPath(variation);
128
+ if (note)
129
+ return note;
130
+ }
131
+ // Search by title using SQL (case-insensitive)
132
+ const byTitle = this.db.getNoteByTitle(titleOrPath);
133
+ if (byTitle)
134
+ return byTitle;
135
+ return null;
136
+ }
137
+ // Write note to file
138
+ writeNote(path, content) {
139
+ const fullPath = (0, path_1.join)(this.config.vaultPath, path);
140
+ // Ensure directory exists
141
+ const dir = (0, path_1.dirname)(fullPath);
142
+ if (!(0, fs_1.existsSync)(dir)) {
143
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
144
+ }
145
+ (0, fs_1.writeFileSync)(fullPath, content, 'utf-8');
146
+ }
147
+ readNote(path) {
148
+ const fullPath = (0, path_1.join)(this.config.vaultPath, path);
149
+ if (!(0, fs_1.existsSync)(fullPath)) {
150
+ return null;
151
+ }
152
+ return (0, fs_1.readFileSync)(fullPath, 'utf-8');
153
+ }
154
+ // Get daily note path
155
+ getDailyNotePath(date = new Date()) {
156
+ const year = date.getFullYear();
157
+ const month = String(date.getMonth() + 1).padStart(2, '0');
158
+ const day = String(date.getDate()).padStart(2, '0');
159
+ const dateStr = `${year}-${month}-${day}`;
160
+ return (0, path_1.join)(this.config.dailyNotesFolder, `${dateStr}.md`);
161
+ }
162
+ // Get template path
163
+ getTemplatePath(templateName) {
164
+ return (0, path_1.join)(this.config.templatesFolder, `${templateName}.md`);
165
+ }
166
+ // Database proxy methods
167
+ getNoteById(id) {
168
+ return this.db.getNoteById(id);
169
+ }
170
+ getNoteByPath(path) {
171
+ return this.db.getNoteByPath(path);
172
+ }
173
+ searchNotes(query, tags, limit = 20) {
174
+ return this.db.searchNotes(query, tags, limit);
175
+ }
176
+ getBacklinks(noteId) {
177
+ return this.db.getBacklinks(noteId);
178
+ }
179
+ getOrphans() {
180
+ return this.db.getOrphans();
181
+ }
182
+ getStats() {
183
+ return this.db.getStats();
184
+ }
185
+ getGraphData() {
186
+ return this.db.getGraphData();
187
+ }
188
+ // Database proxy methods
189
+ upsertNote(note) {
190
+ return this.db.upsertNote(note);
191
+ }
192
+ }
193
+ exports.VaultManager = VaultManager;
194
+ //# sourceMappingURL=vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/utils/vault.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@novis10813/secondbrain-cli",
3
+ "version": "0.1.0",
4
+ "description": "A CLI tool for LLM agents to interact with Obsidian vaults",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "sb": "dist/index.js",
9
+ "secondbrain": "dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "dev": "bun run src/index.ts",
19
+ "test": "bun test",
20
+ "lint": "tsc --noEmit",
21
+ "prepare": "npm run build"
22
+ },
23
+ "keywords": [
24
+ "obsidian",
25
+ "cli",
26
+ "secondbrain",
27
+ "llm",
28
+ "agent",
29
+ "markdown",
30
+ "knowledge-management"
31
+ ],
32
+ "author": "novis10813",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/novis10813/secondbrain-cli.git"
36
+ },
37
+ "bugs": {
38
+ "url": "https://github.com/novis10813/secondbrain-cli/issues"
39
+ },
40
+ "homepage": "https://github.com/novis10813/secondbrain-cli#readme",
41
+ "license": "MIT",
42
+ "dependencies": {
43
+ "commander": "^12.0.0",
44
+ "yaml": "^2.3.4"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^20.11.0",
48
+ "typescript": "^5.3.3"
49
+ },
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ }
53
+ }