seekstone 0.22.0 → 0.22.2
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/README.md +3 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -117,6 +117,7 @@ Other MCP clients (Windsurf, Cline, …) take the Option 3 JSON block in their o
|
|
|
117
117
|
| `read_notes` | Read up to 20 notes (or sections, blocks, line ranges) in one call under a total byte budget (default 16 KB). Over budget, each note is cut to a fair share and marked `truncated`; one bad path returns its own error without failing the batch. |
|
|
118
118
|
| `list_notes` | List notes, optionally filtered by folder prefix or tag. |
|
|
119
119
|
| `list_tags` | List all tags in the vault sorted by usage count (or alphabetically). |
|
|
120
|
+
| `list_tasks` | List Markdown checkbox tasks as compact structured rows (path, line, state, text, nearest heading) — vault-wide or filtered by note, folder, tag, state, or modified time. Custom markers (`- [/]`, `- [-]`, …) are first-class single-char states. |
|
|
120
121
|
| `outline_note` | Return a note's heading and block structure without its full content. |
|
|
121
122
|
| `get_backlinks` | Find all notes that link to a given note. |
|
|
122
123
|
| `get_links` | List all outgoing wikilinks and markdown links from a note. |
|
|
@@ -137,9 +138,10 @@ Other MCP clients (Windsurf, Cline, …) take the Option 3 JSON block in their o
|
|
|
137
138
|
| `patch_note` | Append, prepend, or replace text at a heading or block reference (`createIfMissing` to add the section) — frontmatter untouched. |
|
|
138
139
|
| `replace_in_note` | Find and replace text in the note body — literal or regex, whole-word, case sensitivity, optional `limit` (replaces **all** occurrences by default), dry-run preview. |
|
|
139
140
|
| `append_periodic_note` | Append to today's periodic note, creating it from a template if it doesn't yet exist. |
|
|
141
|
+
| `update_task` | Set one checkbox's state by path + line (from `list_tasks`) — rewrites exactly one character, leaving every other byte untouched. An `expectText` guard refuses if the task text changed since it was listed. |
|
|
140
142
|
| `undo_write` | Revert a journaled write: every file it touched goes back to its byte-identical pre-write state (a multi-file move or heading rename is restored whole; a delete is restored even if it was `permanent`). Defaults to the most recent write; refuses with `undo_conflict` if a file changed since, unless `force: true`. The undo is itself journaled — `undo_write({ seq })` on the undo entry redoes it. |
|
|
141
143
|
|
|
142
|
-
Every write tool (`append_note`, `patch_note`, `patch_frontmatter`, `replace_in_note`, `rename_heading`, `move_note`, `delete_note`, `append_periodic_note`, and `create_note` with `overwrite: true`) supports optional **compare-and-swap**: pass the `contentHash` you got from `read_note` as `prevHash` and the call fails cleanly if the note changed underneath you — no silently discarded concurrent edit, no moving or deleting content you haven't seen. Every mutating result returns the new `contentHash`, so chained edits need no re-reads.
|
|
144
|
+
Every write tool (`append_note`, `patch_note`, `patch_frontmatter`, `replace_in_note`, `rename_heading`, `move_note`, `delete_note`, `append_periodic_note`, `update_task`, and `create_note` with `overwrite: true`) supports optional **compare-and-swap**: pass the `contentHash` you got from `read_note` as `prevHash` and the call fails cleanly if the note changed underneath you — no silently discarded concurrent edit, no moving or deleting content you haven't seen. Every mutating result returns the new `contentHash`, so chained edits need no re-reads.
|
|
143
145
|
|
|
144
146
|
---
|
|
145
147
|
|
package/dist/index.js
CHANGED
|
@@ -6157,7 +6157,7 @@ function startWatcher(ctx2, log2, opts) {
|
|
|
6157
6157
|
}
|
|
6158
6158
|
|
|
6159
6159
|
// src/index.ts
|
|
6160
|
-
var VERSION = true ? "0.22.
|
|
6160
|
+
var VERSION = true ? "0.22.2" : "0.0.0-dev";
|
|
6161
6161
|
var intent = parseCliIntent(process.argv.slice(2));
|
|
6162
6162
|
if (intent === "version") {
|
|
6163
6163
|
process.stdout.write(`${VERSION}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seekstone",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.2",
|
|
4
4
|
"mcpName": "io.github.shaqmughal/seekstone",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "The Obsidian MCP server that needs no plugin, no running Obsidian app — and doesn't blow your context window. Filesystem-direct: single-digit-ms keyword search, ~26 ms local semantic search, ~2 KB payloads, 25 tools.",
|
|
@@ -61,13 +61,13 @@
|
|
|
61
61
|
"test:watch": "vitest"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@modelcontextprotocol/sdk": "^1.32.
|
|
64
|
+
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
65
65
|
"chokidar": "^5.0.0",
|
|
66
66
|
"fast-glob": "^3.3.2",
|
|
67
67
|
"minisearch": "^7.1.1",
|
|
68
68
|
"picomatch": "^4.0.7",
|
|
69
69
|
"yaml": "^2.9.1",
|
|
70
|
-
"zod": "^4.6.
|
|
70
|
+
"zod": "^4.6.7"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@seekstone/core": "*",
|