@hraness/wordcell 0.22.5 → 0.23.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 (76) hide show
  1. package/README.md +56 -18
  2. package/dist/authoring.js +2 -2
  3. package/dist/{authority-3ga47syb.js → authority-35cbvp1x.js} +2 -2
  4. package/dist/benchmark.js +3 -3
  5. package/dist/capture.js +6 -6
  6. package/dist/cli.js +26 -24
  7. package/dist/clip/acquire.js +3 -3
  8. package/dist/clip/args.js +1 -1
  9. package/dist/clip/cli.js +6 -6
  10. package/dist/clip/doctor.js +4 -4
  11. package/dist/evaluation-builder.js +10 -10
  12. package/dist/evaluation-kb.js +10 -10
  13. package/dist/graph-authority.js +4 -4
  14. package/dist/graph-percolation.js +6 -6
  15. package/dist/graph.js +3 -1
  16. package/dist/{index-bcknqxrq.js → index-0eacgvpv.js} +9 -1
  17. package/dist/{index-f75zmmdr.js → index-1er88ckw.js} +4 -4
  18. package/dist/{index-8v6k9h4r.js → index-1s8mc4hz.js} +1 -1
  19. package/dist/{index-de2w8crk.js → index-2fmnttca.js} +82 -15
  20. package/dist/{index-aer0jdrq.js → index-ahyhryb8.js} +1 -1
  21. package/dist/{index-f7fnww7a.js → index-b0khj0h5.js} +164 -9
  22. package/dist/{index-qdb8f8va.js → index-bdwcjvr4.js} +1 -1
  23. package/dist/{index-dfag79p7.js → index-byz4kzww.js} +3 -0
  24. package/dist/{index-hgve9rh2.js → index-cd75vky9.js} +96 -1
  25. package/dist/{index-n57tewfr.js → index-fp732bgg.js} +2 -2
  26. package/dist/{index-zy7an84p.js → index-jvb7w0gg.js} +5 -2
  27. package/dist/{index-f984hw45.js → index-k86wepd8.js} +1 -1
  28. package/dist/{index-1r5rnkfr.js → index-mnq2wy34.js} +2 -2
  29. package/dist/{index-p96kb6t2.js → index-nn67kzwa.js} +1 -1
  30. package/dist/{index-fc4dr114.js → index-nwrehke7.js} +1 -1
  31. package/dist/{index-n9kwenpt.js → index-p70t8j13.js} +1 -1
  32. package/dist/{index-pz2b2x0y.js → index-pgtm2nhf.js} +1 -1
  33. package/dist/{index-054mb7d3.js → index-qfqjfxaa.js} +10 -9
  34. package/dist/{index-xzvcw9ga.js → index-r0m5taz2.js} +2 -2
  35. package/dist/{index-h2qn3y3f.js → index-r4qs6vq4.js} +4 -4
  36. package/dist/{index-gtwqye5a.js → index-tcaq1c7f.js} +4 -4
  37. package/dist/{index-42tb8qqp.js → index-tvd2sqrx.js} +7 -7
  38. package/dist/{index-8bgnhjgq.js → index-vtwbapjr.js} +3810 -159
  39. package/dist/{index-g5vsqmdy.js → index-xwxy71ew.js} +190 -4
  40. package/dist/index.js +15 -13
  41. package/dist/pdf.js +3 -3
  42. package/dist/percolate.js +2 -2
  43. package/dist/portfolio.js +10 -10
  44. package/dist/publish.js +3 -3
  45. package/dist/sdk.js +9 -9
  46. package/dist/search.js +2 -2
  47. package/dist/semantic.js +4 -4
  48. package/dist/{support-jf9v10j7.js → support-c8hy7qfa.js} +25 -23
  49. package/dist/url-intelligence.js +1 -1
  50. package/dist/workflows/decision-context.js +10 -10
  51. package/dist/workflows/index.js +10 -10
  52. package/package.json +11 -4
  53. package/skills/wordcell/AGENTS.md +1 -0
  54. package/skills/wordcell/SKILL.md +5 -3
  55. package/skills/wordcell/references/query.md +35 -1
  56. package/skills/wordcell/references/session-memory.md +207 -0
  57. package/src/authoring-import.ts +32 -0
  58. package/src/authoring-model.ts +185 -2
  59. package/src/authoring-program.ts +19 -7
  60. package/src/cli-help.ts +893 -0
  61. package/src/cli-intro.ts +1 -1
  62. package/src/cli-program.ts +571 -80
  63. package/src/cli-style.ts +132 -0
  64. package/src/clip/acquire.ts +20 -0
  65. package/src/clip/args.ts +3 -0
  66. package/src/clip/cli.ts +82 -5
  67. package/src/clip/cookie-permission.ts +241 -0
  68. package/src/clip/url-metadata-cli.ts +6 -5
  69. package/src/clip/url-metadata.ts +14 -0
  70. package/src/graph.ts +9 -4
  71. package/src/import-supermemory.ts +1629 -0
  72. package/src/mcp-server.ts +415 -0
  73. package/src/mcp-tools.ts +1122 -0
  74. package/src/pdf/cli.ts +5 -4
  75. package/src/support-profile.ts +1 -1
  76. package/src/support.ts +3 -0
package/README.md CHANGED
@@ -3,17 +3,22 @@
3
3
 
4
4
  [![Agent Skill](https://raw.githubusercontent.com/hraness/wordcell/main/assets/agent-skill.svg)](https://github.com/hraness/wordcell/tree/main/skills/wordcell)
5
5
 
6
- A local Markdown knowledge base with superpowers. Save decisions, sources, and
7
- plans as files you own, then find them by exact words or, with an optional
8
- local model, by meaning. Links and Git history show how each note connects and
9
- where it came from. Coding agents can look up the notes tied to the code they
10
- change, and the same vault holds everything else you want to remember.
11
-
12
- Read the files in Obsidian or any editor, review changes in Git, and rebuild
13
- every index from the Markdown. Exact search and graph queries run on your
14
- machine with no account or model. Web capture, hosted agents, and optional
15
- remote reranking reach other services;
16
- [Privacy and boundaries](#privacy-and-boundaries) says what each one sends.
6
+ Wordcell keeps decisions, plans, and sources as Markdown files beside your
7
+ code. Coding agents find them by exact words, by meaning with an optional
8
+ local model, or from the file they are about to change.
9
+
10
+ A new coding-agent session can read your code, but not the decisions that
11
+ stayed in the last session's chat. Wordcell keeps those decisions as Markdown
12
+ files beside the repository, with the plans that depend on them and the web
13
+ pages and PDFs that informed them. Tie a note to the paths it explains, and an
14
+ agent about to change that code runs one command to get the notes and plans
15
+ for that path. Exact search, backlinks, and Git history run on your machine
16
+ with no account or model, and every index rebuilds from files you can read in
17
+ any editor. Wordcell is free and open source.
18
+
19
+ Web capture, optional hosted reranking, and your agent's provider reach other
20
+ services; [Privacy and boundaries](#privacy-and-boundaries) says what each one
21
+ sends.
17
22
 
18
23
  [Documentation](https://wordcell.io/docs) · [Comparisons](https://github.com/hraness/wordcell/blob/main/docs/comparisons.md) · [Measured evidence](https://github.com/hraness/wordcell/blob/main/docs/evidence.md) · [Changelog](https://github.com/hraness/wordcell/blob/main/CHANGELOG.md)
19
24
 
@@ -39,20 +44,22 @@ local document retrieval and also supplies Wordcell's optional semantic search.
39
44
  Wordcell adds a connected workflow for repository context, authored relationships,
40
45
  Git evidence, and selective publishing. [Compare the tradeoffs](https://github.com/hraness/wordcell/blob/main/docs/comparisons.md).
41
46
 
47
+ Wordcell keeps the record in Markdown files you own, rebuilds every index from those files, and lets the next session start from the notes for the file it is changing: the design every Hraness project shares. [The thread through hraness](https://hraness.com/writing/the-thread-through-hraness) follows that design across the projects, and the [ALGAL vision](https://algal.computer/docs/vision/) states the bet behind it.
48
+
42
49
  ## Install
43
50
 
44
51
  [Bun 1.3.14 or newer](https://bun.sh/docs/installation) and Git are required.
45
52
  The CLI and TypeScript SDK run with Bun. Install the versioned GitHub archive:
46
53
 
47
54
  ```sh
48
- bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.22.5/hraness-wordcell-0.22.5.tgz
55
+ bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.23.0/hraness-wordcell-0.23.0.tgz
49
56
  wordcell --help
50
57
  ```
51
58
 
52
59
  Prefer npm? The same release is [mirrored there](https://www.npmjs.com/package/@hraness/wordcell):
53
60
 
54
61
  ```sh
55
- npm install --global --ignore-scripts @hraness/wordcell@0.22.5
62
+ npm install --global --ignore-scripts @hraness/wordcell@0.23.0
56
63
  wordcell --help
57
64
  ```
58
65
 
@@ -94,7 +101,7 @@ After trying the CLI, install the public Agent Skill into a compatible agent,
94
101
  such as Claude Code, Codex, Cursor, or GitHub Copilot:
95
102
 
96
103
  ```sh
97
- bunx skills add hraness/wordcell#v0.22.5 --skill wordcell
104
+ bunx skills add hraness/wordcell#v0.23.0 --skill wordcell
98
105
  ```
99
106
 
100
107
  Then ask:
@@ -176,6 +183,8 @@ provider failure retains the baseline order with a diagnostic. See the
176
183
  | Check the vault | `wordcell check --root kb` | Reports structural and attachment problems without editing files. |
177
184
  | Publish selected notes | `wordcell publish --root kb --out site/ --include notes/parser-contract --dry-run --json` | Previews a static site selection locally; remove `--dry-run` to build it. |
178
185
  | Preview a site | `wordcell serve --root site --port 8080` | Serves a published site on a loopback static file server with the emitted `404.html` fallback. |
186
+ | Connect an MCP client | `wordcell mcp --root kb` | Serves this vault to a local MCP client over standard input and output; `--read-only` removes the write tools. |
187
+ | Import from Supermemory | `wordcell import supermemory documents.json --root kb` | Turns saved Supermemory API responses into Markdown notes and reports local edits as conflicts on later imports. |
179
188
 
180
189
  Use `--json` for structured output and `wordcell --help` for the complete command
181
190
  surface. [Full command reference](https://github.com/hraness/wordcell/blob/main/docs/reference.md#command-surface).
@@ -215,6 +224,27 @@ selection digest. They keep note bodies out of the agent's context. Use
215
224
  prose and attachments still need review before sharing: selection is not secret
216
225
  redaction. [Selection recipes and hosting guide](https://github.com/hraness/wordcell/blob/main/docs/publish.md).
217
226
 
227
+ ## Use a vault as agent memory
228
+
229
+ `wordcell mcp --root kb` serves a vault to a local MCP client, such as Claude
230
+ Code, Claude Desktop, Cursor, or Codex, over standard input and output. The
231
+ client can search, list, and read notes, follow links, create notes, update a
232
+ note body at a known revision, and add typed relations. `--read-only` removes
233
+ the write tools. [Connect a client](https://github.com/hraness/wordcell/blob/main/docs/reference.md#connect-a-client)
234
+ shows the setup for each host.
235
+
236
+ With the Agent Skill, ask your agent to save the session. It writes a dated
237
+ session note, links it to the notes it changed, and keeps a profile note for
238
+ you or your project. Wordcell extracts no facts and writes no note on its own.
239
+ [Session memory and profiles](https://github.com/hraness/wordcell/blob/main/docs/agent-memory.md#session-memory-and-profiles).
240
+
241
+ To move from Supermemory, `wordcell import supermemory` turns saved Supermemory
242
+ API responses into Markdown notes. The [migration guide](https://github.com/hraness/wordcell/blob/main/docs/migration-from-supermemory.md)
243
+ covers export, import, and what does not transfer, and the
244
+ [Supermemory comparison](https://wordcell.io/compare/supermemory) lists when to
245
+ choose Supermemory instead. [Sync with Git](https://github.com/hraness/wordcell/blob/main/docs/sync.md)
246
+ keeps one vault current on several machines.
247
+
218
248
  ## Evidence and comparisons
219
249
 
220
250
  In a four-query example over a seven-note public vault, packed search snippets
@@ -235,9 +265,14 @@ does not claim to beat QMD's retrieval quality or every Markdown workflow.
235
265
  [Measured evidence](https://github.com/hraness/wordcell/blob/main/docs/evidence.md)
236
266
  shows a reproducible public-vault example, with the inputs, output sizes, and
237
267
  limits beside each result. [The comparison guide](https://github.com/hraness/wordcell/blob/main/docs/comparisons.md)
238
- covers Markdown alone, QMD, Basic Memory, Obsidian, and static publishing tools
239
- using their own documentation. Choose the smallest workflow that meets your
240
- needs.
268
+ covers Markdown alone, QMD, Basic Memory, Obsidian, static publishing tools,
269
+ Supermemory, Mem0, and Zep using their own documentation. Choose the smallest
270
+ workflow that meets your needs.
271
+
272
+ The [benchmarks page](https://wordcell.io/benchmarks) shows the payload and
273
+ SciFact results beside the published results of Oh, the embedded memory
274
+ framework, each with its source data and limits. Oh's scores measure its own
275
+ memory-retrieval path, not a Wordcell vault.
241
276
 
242
277
  ## How the files fit together
243
278
 
@@ -286,7 +321,7 @@ exist. [Graph queries and proof limits](https://github.com/hraness/wordcell/blob
286
321
  Add the same immutable release to a Bun project:
287
322
 
288
323
  ```sh
289
- bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.22.5/hraness-wordcell-0.22.5.tgz
324
+ bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.23.0/hraness-wordcell-0.23.0.tgz
290
325
  ```
291
326
 
292
327
  The SDK provides read-only vault sessions, metadata queries, search, graph
@@ -318,11 +353,14 @@ the design. Browse it on the [documentation index](https://wordcell.io/docs).
318
353
  | --- | --- |
319
354
  | [Get started](https://github.com/hraness/wordcell/blob/main/docs/getting-started.md) | Learn the full loop on a first vault: save, find, connect, and publish one note. |
320
355
  | [Agent workflow](https://github.com/hraness/wordcell/blob/main/docs/agent-workflow.md) | Set up, query, maintain, and revise repository memory. |
356
+ | [Local MCP server](https://github.com/hraness/wordcell/blob/main/docs/reference.md#local-mcp-server) | Connect Claude Code, Claude Desktop, Cursor, or Codex to a vault and review the write tools. |
321
357
  | [Installation and command reference](https://github.com/hraness/wordcell/blob/main/docs/reference.md) | Exact interfaces, SDK imports, optional adapters, and troubleshooting prerequisites. |
322
358
  | [Web capture](https://github.com/hraness/wordcell/blob/main/docs/capture.md) and [PDF capture](https://github.com/hraness/wordcell/blob/main/docs/pdf.md) | Save sources with provenance, assets, and explicit completeness limits. |
323
359
  | [Publish selected notes](https://github.com/hraness/wordcell/blob/main/docs/publish.md) | Preview a slice, build a static site, and choose how to host it. |
324
360
  | [Graph guide](https://github.com/hraness/wordcell/blob/main/docs/graph-authority.md) | Named queries, proofs, revisions, resource limits, and cache recovery. |
325
361
  | [Portfolio federation](https://github.com/hraness/wordcell/blob/main/docs/portfolio.md) | Search only selected, authorized vaults. |
362
+ | [Sync with Git](https://github.com/hraness/wordcell/blob/main/docs/sync.md) | Keep one vault current on several machines with a private repository. |
363
+ | [Migrate from Supermemory](https://github.com/hraness/wordcell/blob/main/docs/migration-from-supermemory.md) | Export documents and memory entries, import them as notes, and replace connectors. |
326
364
  | [Design](https://github.com/hraness/wordcell/blob/main/docs/design.md) and [memory rationale](https://github.com/hraness/wordcell/blob/main/docs/agent-memory.md) | File contracts, design choices, and evaluation context. |
327
365
  | [Release verification](https://github.com/hraness/wordcell/blob/main/docs/publishing.md#verify-a-published-release) | Verify archive identity, signatures, and provenance. |
328
366
 
package/dist/authoring.js CHANGED
@@ -14,9 +14,9 @@ import {
14
14
  noteRevision,
15
15
  removeNoteRelation,
16
16
  updateNoteBody
17
- } from "./index-f7fnww7a.js";
17
+ } from "./index-b0khj0h5.js";
18
18
  import"./index-3rm7cz6h.js";
19
- import"./index-zy7an84p.js";
19
+ import"./index-jvb7w0gg.js";
20
20
  import"./index-z1w83f81.js";
21
21
  export {
22
22
  updateNoteBody,
@@ -3,7 +3,7 @@ import {
3
3
  GRAPH_LIMITS,
4
4
  GraphAuthorityError,
5
5
  validateGraphQueryRequest
6
- } from "./index-pz2b2x0y.js";
6
+ } from "./index-pgtm2nhf.js";
7
7
  import {
8
8
  validateRepositoryScopeSelection
9
9
  } from "./index-06c9ctr6.js";
@@ -11,7 +11,7 @@ import"./index-5vwpzb5a.js";
11
11
  import {
12
12
  isCanonicalNoteId,
13
13
  isCanonicalRelationPredicate
14
- } from "./index-zy7an84p.js";
14
+ } from "./index-jvb7w0gg.js";
15
15
  import"./index-z1w83f81.js";
16
16
 
17
17
  // src/oh/authority.ts
package/dist/benchmark.js CHANGED
@@ -4,13 +4,13 @@ import {
4
4
  createSyntheticRankFusionFixture,
5
5
  evaluateRanking,
6
6
  evaluateRetrievalBenchmark
7
- } from "./index-p96kb6t2.js";
8
- import"./index-aer0jdrq.js";
7
+ } from "./index-nn67kzwa.js";
8
+ import"./index-ahyhryb8.js";
9
9
  import"./index-d13v9ckt.js";
10
10
  import"./index-48pz4jpc.js";
11
11
  import"./index-06c9ctr6.js";
12
12
  import"./index-5vwpzb5a.js";
13
- import"./index-zy7an84p.js";
13
+ import"./index-jvb7w0gg.js";
14
14
  import"./index-z1w83f81.js";
15
15
  export {
16
16
  evaluateRetrievalBenchmark,
package/dist/capture.js CHANGED
@@ -5,23 +5,23 @@ import {
5
5
  captureSummary,
6
6
  main,
7
7
  runCapture
8
- } from "./index-de2w8crk.js";
8
+ } from "./index-2fmnttca.js";
9
9
  import"./index-6jcz0m1c.js";
10
- import"./index-f984hw45.js";
10
+ import"./index-k86wepd8.js";
11
11
  import {
12
12
  adapterCapabilities,
13
13
  inspectClipEnvironment,
14
14
  renderDoctorReport
15
- } from "./index-fc4dr114.js";
15
+ } from "./index-nwrehke7.js";
16
16
  import"./index-5n05se68.js";
17
- import"./index-g5vsqmdy.js";
18
- import"./index-hgve9rh2.js";
17
+ import"./index-xwxy71ew.js";
18
+ import"./index-cd75vky9.js";
19
19
  import"./index-2gv8y733.js";
20
20
  import"./index-w2zc0vwa.js";
21
21
  import"./index-e5fbsywq.js";
22
22
  import {
23
23
  parseArguments
24
- } from "./index-dfag79p7.js";
24
+ } from "./index-byz4kzww.js";
25
25
  import"./index-gh719d91.js";
26
26
  import"./index-mxxxytys.js";
27
27
  import"./index-1xxnjn0d.js";
package/dist/cli.js CHANGED
@@ -1,48 +1,49 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
3
  import {
4
+ describeUsageError,
4
5
  main,
5
6
  parseArguments,
6
7
  runExecutable,
7
8
  usage
8
- } from "./index-8bgnhjgq.js";
9
- import"./index-bcknqxrq.js";
10
- import"./index-054mb7d3.js";
11
- import"./index-h2qn3y3f.js";
9
+ } from "./index-vtwbapjr.js";
10
+ import"./index-0eacgvpv.js";
11
+ import"./index-qfqjfxaa.js";
12
+ import"./index-r4qs6vq4.js";
12
13
  import"./index-j4zgmzjr.js";
13
- import"./index-de2w8crk.js";
14
+ import"./index-2fmnttca.js";
14
15
  import"./index-6jcz0m1c.js";
15
- import"./index-f984hw45.js";
16
- import"./index-fc4dr114.js";
16
+ import"./index-k86wepd8.js";
17
+ import"./index-nwrehke7.js";
17
18
  import"./index-5n05se68.js";
18
- import"./index-g5vsqmdy.js";
19
- import"./index-hgve9rh2.js";
19
+ import"./index-xwxy71ew.js";
20
+ import"./index-cd75vky9.js";
20
21
  import"./index-2gv8y733.js";
21
22
  import"./index-w2zc0vwa.js";
22
23
  import"./index-e5fbsywq.js";
23
- import"./index-dfag79p7.js";
24
+ import"./index-byz4kzww.js";
24
25
  import"./index-gh719d91.js";
25
26
  import"./index-npg9z1a4.js";
26
27
  import"./index-mxxxytys.js";
27
28
  import"./index-23z4zxgg.js";
28
29
  import"./index-pj501bh1.js";
29
30
  import"./index-9rf81m0p.js";
30
- import"./index-1r5rnkfr.js";
31
- import"./index-42tb8qqp.js";
31
+ import"./index-mnq2wy34.js";
32
+ import"./index-tvd2sqrx.js";
32
33
  import"./index-adx6khj5.js";
33
- import"./index-n57tewfr.js";
34
+ import"./index-fp732bgg.js";
34
35
  import"./index-4j3tt0c3.js";
35
36
  import"./index-j70m75wd.js";
36
37
  import"./index-b88v3vtm.js";
37
- import"./index-gtwqye5a.js";
38
- import"./index-qdb8f8va.js";
39
- import"./index-f75zmmdr.js";
40
- import"./index-pz2b2x0y.js";
38
+ import"./index-tcaq1c7f.js";
39
+ import"./index-bdwcjvr4.js";
40
+ import"./index-1er88ckw.js";
41
+ import"./index-pgtm2nhf.js";
41
42
  import"./index-1gwbassd.js";
42
- import"./index-aer0jdrq.js";
43
+ import"./index-ahyhryb8.js";
43
44
  import"./index-1xxnjn0d.js";
44
- import"./index-xzvcw9ga.js";
45
- import"./index-8v6k9h4r.js";
45
+ import"./index-r0m5taz2.js";
46
+ import"./index-1s8mc4hz.js";
46
47
  import"./index-d13v9ckt.js";
47
48
  import"./index-48pz4jpc.js";
48
49
  import"./index-06c9ctr6.js";
@@ -52,16 +53,16 @@ import"./index-23m6bbjt.js";
52
53
  import"./index-hya40gb2.js";
53
54
  import"./index-5vwpzb5a.js";
54
55
  import"./index-x3fthpsc.js";
55
- import"./index-f7fnww7a.js";
56
+ import"./index-b0khj0h5.js";
56
57
  import"./index-3rm7cz6h.js";
57
- import"./index-zy7an84p.js";
58
+ import"./index-jvb7w0gg.js";
58
59
  import {
59
60
  __require
60
61
  } from "./index-z1w83f81.js";
61
62
 
62
63
  // src/cli.ts
63
64
  if (import.meta.main) {
64
- const { standaloneSupportEnvironment, isUsefulSupportResult, runProductSupportCommand, showProductSupportInvitation } = await import("./support-jf9v10j7.js");
65
+ const { standaloneSupportEnvironment, isUsefulSupportResult, runProductSupportCommand, showProductSupportInvitation } = await import("./support-c8hy7qfa.js");
65
66
  const env = standaloneSupportEnvironment();
66
67
  const args = process.argv.slice(2);
67
68
  if (args[0] === "support") {
@@ -77,5 +78,6 @@ export {
77
78
  usage,
78
79
  runExecutable,
79
80
  parseArguments,
80
- main
81
+ main,
82
+ describeUsageError
81
83
  };
@@ -22,12 +22,12 @@ import {
22
22
  mergeRenderedTextSnapshots,
23
23
  readBrowserExpansionTelemetry,
24
24
  seedOwnedBrowserCookies
25
- } from "../index-g5vsqmdy.js";
26
- import"../index-hgve9rh2.js";
25
+ } from "../index-xwxy71ew.js";
26
+ import"../index-cd75vky9.js";
27
27
  import"../index-2gv8y733.js";
28
28
  import"../index-w2zc0vwa.js";
29
29
  import"../index-e5fbsywq.js";
30
- import"../index-dfag79p7.js";
30
+ import"../index-byz4kzww.js";
31
31
  import"../index-gh719d91.js";
32
32
  import"../index-mxxxytys.js";
33
33
  import"../index-1xxnjn0d.js";
package/dist/clip/args.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  mediaModes,
9
9
  parseArguments,
10
10
  usage
11
- } from "../index-dfag79p7.js";
11
+ } from "../index-byz4kzww.js";
12
12
  import"../index-z1w83f81.js";
13
13
  export {
14
14
  usage,
package/dist/clip/cli.js CHANGED
@@ -5,17 +5,17 @@ import {
5
5
  captureSucceeded,
6
6
  captureSummary,
7
7
  main
8
- } from "../index-de2w8crk.js";
8
+ } from "../index-2fmnttca.js";
9
9
  import"../index-6jcz0m1c.js";
10
- import"../index-f984hw45.js";
11
- import"../index-fc4dr114.js";
10
+ import"../index-k86wepd8.js";
11
+ import"../index-nwrehke7.js";
12
12
  import"../index-5n05se68.js";
13
- import"../index-g5vsqmdy.js";
14
- import"../index-hgve9rh2.js";
13
+ import"../index-xwxy71ew.js";
14
+ import"../index-cd75vky9.js";
15
15
  import"../index-2gv8y733.js";
16
16
  import"../index-w2zc0vwa.js";
17
17
  import"../index-e5fbsywq.js";
18
- import"../index-dfag79p7.js";
18
+ import"../index-byz4kzww.js";
19
19
  import"../index-gh719d91.js";
20
20
  import"../index-mxxxytys.js";
21
21
  import"../index-1xxnjn0d.js";
@@ -9,13 +9,13 @@ import {
9
9
  renderAdapterCapabilities,
10
10
  renderDoctorReport,
11
11
  runDiagnosticCommand
12
- } from "../index-fc4dr114.js";
13
- import"../index-g5vsqmdy.js";
14
- import"../index-hgve9rh2.js";
12
+ } from "../index-nwrehke7.js";
13
+ import"../index-xwxy71ew.js";
14
+ import"../index-cd75vky9.js";
15
15
  import"../index-2gv8y733.js";
16
16
  import"../index-w2zc0vwa.js";
17
17
  import"../index-e5fbsywq.js";
18
- import"../index-dfag79p7.js";
18
+ import"../index-byz4kzww.js";
19
19
  import"../index-gh719d91.js";
20
20
  import"../index-mxxxytys.js";
21
21
  import"../index-1xxnjn0d.js";
@@ -4,14 +4,14 @@ import {
4
4
  knowledgeBaseEvaluationRetrieverIds,
5
5
  openKnowledgeBaseEvaluation,
6
6
  verifyFrozenEvaluationSnapshot
7
- } from "./index-1r5rnkfr.js";
8
- import"./index-42tb8qqp.js";
7
+ } from "./index-mnq2wy34.js";
8
+ import"./index-tvd2sqrx.js";
9
9
  import"./index-adx6khj5.js";
10
10
  import {
11
11
  indexSemanticVault,
12
12
  recommendedEmbeddingModel,
13
13
  recommendedEmbeddingModelSha256
14
- } from "./index-n57tewfr.js";
14
+ } from "./index-fp732bgg.js";
15
15
  import"./index-4j3tt0c3.js";
16
16
  import"./index-j70m75wd.js";
17
17
  import {
@@ -19,24 +19,24 @@ import {
19
19
  MAX_EVALUATION_EVIDENCE_BYTES,
20
20
  MAX_EVALUATION_RESULTS_PER_QUERY
21
21
  } from "./index-b88v3vtm.js";
22
- import"./index-gtwqye5a.js";
23
- import"./index-qdb8f8va.js";
24
- import"./index-f75zmmdr.js";
25
- import"./index-pz2b2x0y.js";
22
+ import"./index-tcaq1c7f.js";
23
+ import"./index-bdwcjvr4.js";
24
+ import"./index-1er88ckw.js";
25
+ import"./index-pgtm2nhf.js";
26
26
  import {
27
27
  runGitCommand
28
28
  } from "./index-1gwbassd.js";
29
- import"./index-aer0jdrq.js";
29
+ import"./index-ahyhryb8.js";
30
30
  import"./index-1xxnjn0d.js";
31
31
  import {
32
32
  scanVault
33
- } from "./index-8v6k9h4r.js";
33
+ } from "./index-1s8mc4hz.js";
34
34
  import"./index-d13v9ckt.js";
35
35
  import"./index-48pz4jpc.js";
36
36
  import"./index-06c9ctr6.js";
37
37
  import"./index-5vwpzb5a.js";
38
38
  import"./index-3rm7cz6h.js";
39
- import"./index-zy7an84p.js";
39
+ import"./index-jvb7w0gg.js";
40
40
  import"./index-z1w83f81.js";
41
41
 
42
42
  // src/evaluation-builder.ts
@@ -4,27 +4,27 @@ import {
4
4
  knowledgeBaseEvaluationRetrieverIds,
5
5
  openKnowledgeBaseEvaluation,
6
6
  verifyFrozenEvaluationSnapshot
7
- } from "./index-1r5rnkfr.js";
8
- import"./index-42tb8qqp.js";
7
+ } from "./index-mnq2wy34.js";
8
+ import"./index-tvd2sqrx.js";
9
9
  import"./index-adx6khj5.js";
10
- import"./index-n57tewfr.js";
10
+ import"./index-fp732bgg.js";
11
11
  import"./index-4j3tt0c3.js";
12
12
  import"./index-j70m75wd.js";
13
13
  import"./index-b88v3vtm.js";
14
- import"./index-gtwqye5a.js";
15
- import"./index-qdb8f8va.js";
16
- import"./index-f75zmmdr.js";
17
- import"./index-pz2b2x0y.js";
14
+ import"./index-tcaq1c7f.js";
15
+ import"./index-bdwcjvr4.js";
16
+ import"./index-1er88ckw.js";
17
+ import"./index-pgtm2nhf.js";
18
18
  import"./index-1gwbassd.js";
19
- import"./index-aer0jdrq.js";
19
+ import"./index-ahyhryb8.js";
20
20
  import"./index-1xxnjn0d.js";
21
- import"./index-8v6k9h4r.js";
21
+ import"./index-1s8mc4hz.js";
22
22
  import"./index-d13v9ckt.js";
23
23
  import"./index-48pz4jpc.js";
24
24
  import"./index-06c9ctr6.js";
25
25
  import"./index-5vwpzb5a.js";
26
26
  import"./index-3rm7cz6h.js";
27
- import"./index-zy7an84p.js";
27
+ import"./index-jvb7w0gg.js";
28
28
  import"./index-z1w83f81.js";
29
29
  export {
30
30
  verifyFrozenEvaluationSnapshot,
@@ -5,17 +5,17 @@ import {
5
5
  queryGraph,
6
6
  rebuildGraph,
7
7
  verifyGraph
8
- } from "./index-f75zmmdr.js";
8
+ } from "./index-1er88ckw.js";
9
9
  import {
10
10
  GRAPH_LIMITS,
11
11
  GraphAuthorityError,
12
12
  validateGraphQueryRequest
13
- } from "./index-pz2b2x0y.js";
14
- import"./index-8v6k9h4r.js";
13
+ } from "./index-pgtm2nhf.js";
14
+ import"./index-1s8mc4hz.js";
15
15
  import"./index-06c9ctr6.js";
16
16
  import"./index-5vwpzb5a.js";
17
17
  import"./index-3rm7cz6h.js";
18
- import"./index-zy7an84p.js";
18
+ import"./index-jvb7w0gg.js";
19
19
  import"./index-z1w83f81.js";
20
20
  export {
21
21
  verifyGraph,
@@ -1,15 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  percolateWithGraph
4
- } from "./index-gtwqye5a.js";
5
- import"./index-qdb8f8va.js";
6
- import"./index-f75zmmdr.js";
7
- import"./index-pz2b2x0y.js";
8
- import"./index-8v6k9h4r.js";
4
+ } from "./index-tcaq1c7f.js";
5
+ import"./index-bdwcjvr4.js";
6
+ import"./index-1er88ckw.js";
7
+ import"./index-pgtm2nhf.js";
8
+ import"./index-1s8mc4hz.js";
9
9
  import"./index-06c9ctr6.js";
10
10
  import"./index-5vwpzb5a.js";
11
11
  import"./index-3rm7cz6h.js";
12
- import"./index-zy7an84p.js";
12
+ import"./index-jvb7w0gg.js";
13
13
  import"./index-z1w83f81.js";
14
14
  export {
15
15
  percolateWithGraph
package/dist/graph.js CHANGED
@@ -11,6 +11,7 @@ import {
11
11
  catalogStart,
12
12
  isCanonicalNoteId,
13
13
  isCanonicalRelationPredicate,
14
+ isMetadataNumber,
14
15
  lookupNote,
15
16
  metadataValueFromUnknown,
16
17
  normalizeVaultPath,
@@ -19,7 +20,7 @@ import {
19
20
  replaceCatalog,
20
21
  searchableMarkdown,
21
22
  wikiLinks
22
- } from "./index-zy7an84p.js";
23
+ } from "./index-jvb7w0gg.js";
23
24
  import"./index-z1w83f81.js";
24
25
  export {
25
26
  wikiLinks,
@@ -30,6 +31,7 @@ export {
30
31
  normalizeVaultPath,
31
32
  metadataValueFromUnknown,
32
33
  lookupNote,
34
+ isMetadataNumber,
33
35
  isCanonicalRelationPredicate,
34
36
  isCanonicalNoteId,
35
37
  catalogStart,
@@ -1070,6 +1070,14 @@ function absoluteSource(value, label, allowLocalPdf) {
1070
1070
  }
1071
1071
  return normalizedPublicUrl(value, label);
1072
1072
  }
1073
+ function savedSourceProblem(value) {
1074
+ try {
1075
+ absoluteSource(value, "source", false);
1076
+ return;
1077
+ } catch (error) {
1078
+ return error instanceof Error ? error.message : String(error);
1079
+ }
1080
+ }
1073
1081
  function confined(root, path, label) {
1074
1082
  const pathFromRoot = relative(root, path);
1075
1083
  if (pathFromRoot === "" || pathFromRoot === ".." || pathFromRoot.startsWith(`..${sep}`) || pathFromRoot.includes(`\x00`)) {
@@ -1940,4 +1948,4 @@ async function backfillSavedUrlMetadata(options, dependencies) {
1940
1948
  return report(generatedAt, records.length, items, interrupted);
1941
1949
  }
1942
1950
 
1943
- export { isolatedMetadataSearchEnvironment, createExactUrlSearchQuery, createRustMetadataSearchProvider, parseUrlMetadataDocument, createUrlMetadataDocument, renderUrlMetadataDocument, discoverSavedUrlRecords, readUrlMetadataDocument, writeUrlMetadataDocument, backfillSavedUrlMetadata };
1951
+ export { isolatedMetadataSearchEnvironment, createExactUrlSearchQuery, createRustMetadataSearchProvider, parseUrlMetadataDocument, createUrlMetadataDocument, renderUrlMetadataDocument, savedSourceProblem, discoverSavedUrlRecords, readUrlMetadataDocument, writeUrlMetadataDocument, backfillSavedUrlMetadata };
@@ -3,10 +3,10 @@ import {
3
3
  GRAPH_LIMITS,
4
4
  GraphAuthorityError,
5
5
  validateGraphQueryRequest
6
- } from "./index-pz2b2x0y.js";
6
+ } from "./index-pgtm2nhf.js";
7
7
  import {
8
8
  scanVault
9
- } from "./index-8v6k9h4r.js";
9
+ } from "./index-1s8mc4hz.js";
10
10
  import {
11
11
  analyzeAuthoredRepositoryScopes
12
12
  } from "./index-06c9ctr6.js";
@@ -19,7 +19,7 @@ import {
19
19
  documentIdState,
20
20
  isCanonicalNoteId,
21
21
  parseNote
22
- } from "./index-zy7an84p.js";
22
+ } from "./index-jvb7w0gg.js";
23
23
  import {
24
24
  __require
25
25
  } from "./index-z1w83f81.js";
@@ -231,7 +231,7 @@ import { lstat, open } from "fs/promises";
231
231
  var graphCacheFileSystem = { lstat, open };
232
232
 
233
233
  // src/graph-authority.ts
234
- var openOhGraphAdapter = async (...args) => await (await import("./authority-3ga47syb.js")).openOhGraphAdapter(...args);
234
+ var openOhGraphAdapter = async (...args) => await (await import("./authority-35cbvp1x.js")).openOhGraphAdapter(...args);
235
235
  var MAX_CACHE_BYTES = 67108864;
236
236
  var ignoredCache = `# Disposable Wordcell graph state. Rebuild from Markdown.
237
237
  *
@@ -9,7 +9,7 @@ import {
9
9
  parseNote,
10
10
  renderCatalog,
11
11
  replaceCatalog
12
- } from "./index-zy7an84p.js";
12
+ } from "./index-jvb7w0gg.js";
13
13
 
14
14
  // src/vault.ts
15
15
  import { randomUUID } from "crypto";