@hraness/wordcell 0.25.1 → 0.26.1

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 (48) hide show
  1. package/README.md +57 -43
  2. package/dist/capture.js +6 -6
  3. package/dist/cli-bin.js +14 -0
  4. package/dist/cli-release-cf48w61z.js +802 -0
  5. package/dist/cli.js +26 -23
  6. package/dist/clip/acquire.js +3 -3
  7. package/dist/clip/cli.js +6 -6
  8. package/dist/clip/doctor.js +4 -4
  9. package/dist/evaluation-builder-bin.js +14 -0
  10. package/dist/evaluation-builder.js +12 -17
  11. package/dist/evaluation-kb.js +6 -6
  12. package/dist/graph-percolation.js +2 -2
  13. package/dist/index-3t0v457d.js +18 -0
  14. package/dist/{index-47893rgw.js → index-5h5awwh4.js} +4 -4
  15. package/dist/index-6jz050v0.js +64 -0
  16. package/dist/index-8pabwzqg.js +909 -0
  17. package/dist/{index-1wccy765.js → index-8w1zsgcm.js} +63 -930
  18. package/dist/{index-7drercgk.js → index-9fywek7g.js} +1 -1
  19. package/dist/{index-hz2wyggk.js → index-9paxge84.js} +1 -1
  20. package/dist/{index-mcpppwbq.js → index-9zkba8hr.js} +6 -6
  21. package/dist/{index-59bcxqee.js → index-j2jt49gr.js} +1 -1
  22. package/dist/{index-nwrehke7.js → index-nd8v7r0z.js} +1 -1
  23. package/dist/{index-t3abkwk4.js → index-zbv70qmk.js} +15 -15
  24. package/dist/index.js +40 -40
  25. package/dist/pdf.js +2 -2
  26. package/dist/portfolio.js +5 -5
  27. package/dist/sdk.js +4 -4
  28. package/dist/{support-adj7bbge.js → support-ym4mpf7w.js} +19 -18
  29. package/dist/url-intelligence.js +3 -3
  30. package/dist/workflows/decision-context.js +5 -5
  31. package/dist/workflows/index.js +5 -5
  32. package/package.json +13 -6
  33. package/skills/wordcell/SKILL.md +10 -1
  34. package/src/cli-bin.ts +5 -0
  35. package/src/cli-help.ts +12 -0
  36. package/src/cli-program.ts +3 -57
  37. package/src/cli-release.ts +737 -0
  38. package/src/cli-startup.ts +76 -0
  39. package/src/cli-update.ts +53 -0
  40. package/src/cli.ts +5 -4
  41. package/src/evaluation-builder-bin.ts +5 -0
  42. package/src/evaluation-builder-cli-args.ts +30 -0
  43. package/src/evaluation-builder.ts +3 -27
  44. package/src/import-supermemory.ts +3 -1
  45. package/dist/{index-hxyjer3x.js → index-hacpnaew.js} +3 -3
  46. package/dist/{index-qfqjfxaa.js → index-m9p2a4mj.js} +4 -4
  47. package/dist/{index-xwxy71ew.js → index-ncwzmsge.js} +5 -5
  48. package/dist/{index-e26mdwxz.js → index-wqx1x32f.js} +3 -3
package/README.md CHANGED
@@ -9,14 +9,26 @@ sources as Markdown files beside your code, and agents find them by exact
9
9
  words, by meaning with an optional local model, or from the file they are
10
10
  about to change.
11
11
 
12
- A new coding-agent session can read your code, but not the decisions that
13
- stayed in the last session's chat. Wordcell keeps those decisions as Markdown
14
- files beside the repository, with the plans that depend on them and the web
15
- pages and PDFs that informed them. Tie a note to the paths it explains, and an
16
- agent about to change that code runs one command to get the notes and plans
17
- for that path. Exact search, backlinks, and Git history run on your machine
18
- with no account or model, and every index rebuilds from files you can read in
19
- any editor. Wordcell is free and open source.
12
+ A new coding-agent session needs the reasons behind the code it is changing.
13
+ Wordcell keeps the decision, its supporting sources, and the plan that puts it
14
+ into practice in a connected set of Markdown files. Tie a note to a repository
15
+ path, and the next agent can recover that context before it edits the file.
16
+ When an assumption changes, update the decision and keep its earlier reasoning
17
+ in Git.
18
+
19
+ Captured sources preserve what you read, maintained notes explain what you
20
+ currently understand, and plans record the work and its results. Named
21
+ relationships such as `evidenced-by` and `supersedes` make those connections
22
+ available to the embedded Oh graph engine, whose results point back to the
23
+ supporting files. Optional local semantic search helps when the words in a
24
+ question differ from the note; Git history connects the explanation to its
25
+ commits and accompanying code changes.
26
+
27
+ Use the CLI, local MCP server, or TypeScript SDK from your existing agent and
28
+ editor. The public Agent Skill teaches agents to recover context, maintain
29
+ plans, and leave reusable decisions for later sessions. Exact search, backlinks,
30
+ and Git history need no account or model. Every index rebuilds from files you
31
+ can read in Obsidian or any text editor. Wordcell is free and open source.
20
32
 
21
33
  Web capture, optional hosted reranking, and your agent's provider reach other
22
34
  services; [Privacy and boundaries](#privacy-and-boundaries) says what each one
@@ -54,14 +66,14 @@ Wordcell keeps the record in Markdown files you own, rebuilds every index from t
54
66
  The CLI and TypeScript SDK run with Bun. Install the versioned GitHub archive:
55
67
 
56
68
  ```sh
57
- bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.25.1/hraness-wordcell-0.25.1.tgz
69
+ bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.26.1/hraness-wordcell-0.26.1.tgz
58
70
  wordcell --help
59
71
  ```
60
72
 
61
73
  Prefer npm? The same release is [mirrored there](https://www.npmjs.com/package/@hraness/wordcell):
62
74
 
63
75
  ```sh
64
- npm install --global --ignore-scripts @hraness/wordcell@0.25.1
76
+ npm install --global --ignore-scripts @hraness/wordcell@0.26.1
65
77
  wordcell --help
66
78
  ```
67
79
 
@@ -70,10 +82,32 @@ add your package manager's global executable directory to `PATH` and reopen the
70
82
  terminal. Optional semantic search, browser capture, and PDF tools have
71
83
  [additional prerequisites](https://github.com/hraness/wordcell/blob/main/docs/reference.md#review-lifecycle-scripts-before-enabling-optional-adapters).
72
84
 
85
+ Global Bun and npm installations on macOS and Linux check for updates daily
86
+ before a command starts. Updates require the GitHub CLI (`gh`) to verify the
87
+ release and preserve `--ignore-scripts`. An active command, MCP server, or
88
+ preview server prevents replacement until it exits. Both installed commands
89
+ share the same settings:
90
+
91
+ ```sh
92
+ wordcell update status
93
+ wordcell update check
94
+ wordcell update
95
+ wordcell update disable
96
+ wordcell update enable
97
+ ```
98
+
99
+ Use `HRANESS_NO_UPDATE=1 wordcell …` for an invocation without automatic update
100
+ requests, including offline work. Help, version output, and SDK imports never
101
+ check for updates. Source, project, copied, and Windows installations use manual
102
+ upgrades. Exact Bun registry versions stay pinned until `update enable`; npm
103
+ does not reliably retain the original global version constraint, so use
104
+ `update disable` when you need a fixed global version. A versioned GitHub archive
105
+ tracks verified releases by default. See the [update reference](docs/reference.md#cli-updates).
106
+
73
107
  ## Keep one decision available to the next session
74
108
 
75
109
  Run this from a directory where you want a new `kb/` folder. It creates one
76
- Markdown note and finds it without downloading a model or contacting a service:
110
+ Markdown note and finds it without a search model or hosted search service:
77
111
 
78
112
  ```sh
79
113
  wordcell init kb
@@ -103,7 +137,7 @@ After trying the CLI, install the public Agent Skill into a compatible agent,
103
137
  such as Claude Code, Codex, Cursor, or GitHub Copilot:
104
138
 
105
139
  ```sh
106
- bunx skills add hraness/wordcell#v0.25.1 --skill wordcell
140
+ bunx skills add hraness/wordcell#v0.26.1 --skill wordcell
107
141
  ```
108
142
 
109
143
  Then ask:
@@ -175,7 +209,7 @@ provider failure retains the baseline order with a diagnostic. See the
175
209
 
176
210
  | Task | Command | Evidence and effects |
177
211
  | --- | --- | --- |
178
- | Find a saved decision | `wordcell search "parser retries" --root kb --mode exact` | Reads current Markdown; no model or network request. |
212
+ | Find a saved decision | `wordcell search "parser retries" --root kb --mode exact` | Reads current Markdown; no model or hosted search request. |
179
213
  | Recover context for code | `wordcell context packages/parser/src/index.ts --root kb --repo .` | Returns scoped notes, plans, and inherited `AGENTS.md` rules. |
180
214
  | Inspect explicit connections | `wordcell backlinks notes/parser-contract --root kb` | Returns notes that link to the decision. |
181
215
  | Search by meaning | `wordcell search "retry policy" --root kb --mode hybrid` | Adds optional local QMD keyword and vector retrieval; model setup is required. |
@@ -249,39 +283,19 @@ keeps one vault current on several machines.
249
283
 
250
284
  ## Evidence and comparisons
251
285
 
252
- On eight questions sealed before the passage selector was finished,
253
- `wordcell search --selected-passage` returned an excerpt holding the labeled
254
- answer for **6 of 8**, versus **1 of 8** for the older search snippets, at the
255
- same 512-byte limit and from the same retrieved notes. It runs locally with no
256
- model. The corpus is small and consists of Wordcell's own notes; containing the
257
- answer is not the same as an agent answering correctly.
258
- [Method, raw results, and reproduction](https://github.com/hraness/wordcell/blob/main/docs/evidence.md#measure-whether-excerpts-contain-the-answer).
259
-
260
- In a four-query example over a seven-note public vault, packed search snippets
261
- used **80% fewer UTF-8 bytes** than passing the same matching notes in full:
262
- 12,126 versus 60,584 bytes. This measures context payload size, not tokenizer
263
- counts, answer quality, latency, or a win over another search tool.
264
-
265
- In a separate public SciFact study, optional hosted Jev reranking placed a
266
- judged relevant result first for **161 of 300 queries**, versus **101** with
267
- Wordcell exact search alone. It sends bounded context to a paid provider;
268
- this is evidence on scientific abstracts, not a comparison with QMD or a
269
- guarantee for repository notes. [Results and limits](https://github.com/hraness/wordcell/blob/main/docs/reranking.md#evidence-and-limits).
270
-
271
- Wordcell's benefit is selecting relevant context and keeping its sources
272
- inspectable. Local ownership is also available in other tools, and Wordcell
273
- does not claim to beat QMD's retrieval quality or every Markdown workflow.
274
-
275
- [Measured evidence](https://wordcell.io/docs/evidence)
276
- shows a reproducible public-vault example, with the inputs, output sizes, and
277
- limits beside each result. [The comparison guide](https://wordcell.io/docs/comparisons)
286
+ On the public SciFact dataset of scientific abstracts, optional hosted Jev
287
+ reranking placed a relevant result first for **161 of 300 queries**, versus
288
+ **101** with Wordcell exact search alone. Hosted reranking is optional and uses
289
+ a paid provider. [Results and method](https://github.com/hraness/wordcell/blob/main/docs/reranking.md#evidence-and-limits).
290
+
291
+ [The comparison guide](https://wordcell.io/docs/comparisons)
278
292
  covers Markdown alone, QMD, Basic Memory, Obsidian, static publishing tools,
279
293
  Supermemory, Mem0, and Zep using their own documentation. Choose the smallest
280
294
  workflow that meets your needs.
281
295
 
282
- The [benchmarks page](https://wordcell.io/benchmarks) shows the excerpt, payload,
283
- and SciFact results beside the published results of Oh, the embedded memory
284
- framework, each with its source data and limits. On all 500 LongMemEval-S
296
+ The [benchmarks page](https://wordcell.io/benchmarks) shows the SciFact results
297
+ and the published results of Oh, the embedded memory framework, each with its
298
+ source data and method. On all 500 LongMemEval-S
285
299
  questions, Oh semantic retrieval scored 88.87% and BM25 86.13% with the same
286
300
  reader and budget; on the measure Oh named before the run, its interval does
287
301
  not rule out a tie. Oh's scores measure its own memory-retrieval path, not a
@@ -334,7 +348,7 @@ exist. [Graph queries and proof limits](https://github.com/hraness/wordcell/blob
334
348
  Add the same immutable release to a Bun project:
335
349
 
336
350
  ```sh
337
- bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.25.1/hraness-wordcell-0.25.1.tgz
351
+ bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.26.1/hraness-wordcell-0.26.1.tgz
338
352
  ```
339
353
 
340
354
  The SDK provides read-only vault sessions, metadata queries, search, graph
package/dist/capture.js CHANGED
@@ -5,25 +5,25 @@ import {
5
5
  captureSummary,
6
6
  main,
7
7
  runCapture
8
- } from "./index-t3abkwk4.js";
9
- import"./index-hxyjer3x.js";
8
+ } from "./index-zbv70qmk.js";
9
+ import"./index-hacpnaew.js";
10
10
  import"./index-k86wepd8.js";
11
11
  import {
12
12
  adapterCapabilities,
13
13
  inspectClipEnvironment,
14
14
  renderDoctorReport
15
- } from "./index-nwrehke7.js";
15
+ } from "./index-nd8v7r0z.js";
16
16
  import"./index-5n05se68.js";
17
- import"./index-xwxy71ew.js";
17
+ import"./index-ncwzmsge.js";
18
18
  import"./index-cd75vky9.js";
19
19
  import"./index-2gv8y733.js";
20
+ import"./index-mxxxytys.js";
20
21
  import"./index-w2zc0vwa.js";
21
22
  import"./index-e5fbsywq.js";
23
+ import"./index-gh719d91.js";
22
24
  import {
23
25
  parseArguments
24
26
  } from "./index-byz4kzww.js";
25
- import"./index-gh719d91.js";
26
- import"./index-mxxxytys.js";
27
27
  import"./index-1xxnjn0d.js";
28
28
  import"./index-4knsp9qj.js";
29
29
  import"./index-z1w83f81.js";
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bun
2
+ // @bun
3
+ import {
4
+ runWordcellBin
5
+ } from "./index-6jz050v0.js";
6
+ import"./index-3t0v457d.js";
7
+ import"./index-8pabwzqg.js";
8
+ import"./index-4knsp9qj.js";
9
+ import"./index-z1w83f81.js";
10
+
11
+ // src/cli-bin.ts
12
+ import { fileURLToPath } from "url";
13
+ if (import.meta.main)
14
+ process.exitCode = await runWordcellBin("wordcell", fileURLToPath(import.meta.url), process.argv.slice(2));