@hraness/wordcell 0.22.4 → 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 (80) hide show
  1. package/README.md +63 -22
  2. package/dist/authoring.js +2 -2
  3. package/dist/{authority-06eqhqam.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 +5 -1
  16. package/dist/{index-bcknqxrq.js → index-0eacgvpv.js} +9 -1
  17. package/dist/{index-xv80vzfp.js → index-1er88ckw.js} +4 -4
  18. package/dist/{index-233z9wmn.js → index-1s8mc4hz.js} +13 -5
  19. package/dist/{index-de2w8crk.js → index-2fmnttca.js} +82 -15
  20. package/dist/{index-vnybgywh.js → index-ahyhryb8.js} +1 -1
  21. package/dist/{index-ecqpgr5y.js → index-b0khj0h5.js} +164 -9
  22. package/dist/{index-jk1sgx36.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-rr9kzq4n.js → index-fp732bgg.js} +2 -2
  26. package/dist/{index-qbssx940.js → index-jvb7w0gg.js} +227 -9
  27. package/dist/{index-f984hw45.js → index-k86wepd8.js} +1 -1
  28. package/dist/{index-1k595z6v.js → index-mnq2wy34.js} +2 -2
  29. package/dist/{index-n386evxj.js → index-nn67kzwa.js} +1 -1
  30. package/dist/{index-fc4dr114.js → index-nwrehke7.js} +1 -1
  31. package/dist/{index-76dbn6pe.js → index-p70t8j13.js} +1 -1
  32. package/dist/{index-tf4wzjew.js → index-pgtm2nhf.js} +1 -1
  33. package/dist/{index-054mb7d3.js → index-qfqjfxaa.js} +10 -9
  34. package/dist/{index-pnt9wr59.js → index-r0m5taz2.js} +2 -2
  35. package/dist/{index-bqtqeak3.js → index-r4qs6vq4.js} +4 -4
  36. package/dist/{index-djrcc1yf.js → index-tcaq1c7f.js} +4 -4
  37. package/dist/{index-q7tbg07z.js → index-tvd2sqrx.js} +7 -7
  38. package/dist/{index-9h7zh0wt.js → index-vtwbapjr.js} +3814 -162
  39. package/dist/{index-g5vsqmdy.js → index-xwxy71ew.js} +190 -4
  40. package/dist/index.js +22 -14
  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-m3t917ev.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 +12 -4
  53. package/skills/wordcell/AGENTS.md +1 -0
  54. package/skills/wordcell/SKILL.md +5 -3
  55. package/skills/wordcell/references/plan-structure.md +1 -1
  56. package/skills/wordcell/references/query.md +35 -1
  57. package/skills/wordcell/references/session-memory.md +207 -0
  58. package/skills/wordcell/references/url-platforms.md +1 -1
  59. package/src/authoring-import.ts +32 -0
  60. package/src/authoring-model.ts +185 -2
  61. package/src/authoring-program.ts +19 -7
  62. package/src/cli-help.ts +893 -0
  63. package/src/cli-intro.ts +1 -1
  64. package/src/cli-program.ts +575 -82
  65. package/src/cli-style.ts +132 -0
  66. package/src/clip/acquire.ts +20 -0
  67. package/src/clip/args.ts +3 -0
  68. package/src/clip/cli.ts +82 -5
  69. package/src/clip/cookie-permission.ts +241 -0
  70. package/src/clip/url-metadata-cli.ts +6 -5
  71. package/src/clip/url-metadata.ts +14 -0
  72. package/src/graph.ts +88 -13
  73. package/src/import-supermemory.ts +1629 -0
  74. package/src/mcp-server.ts +415 -0
  75. package/src/mcp-tools.ts +1122 -0
  76. package/src/mention-index.ts +194 -0
  77. package/src/pdf/cli.ts +5 -4
  78. package/src/support-profile.ts +1 -1
  79. package/src/support.ts +3 -0
  80. package/src/vault.ts +26 -2
package/README.md CHANGED
@@ -3,16 +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 recover them through exact and semantic search,
8
- typed relationships, backlinks, and Git history. Coding agents get the context
9
- behind your code, and the same record holds everything else you need to
10
- remember.
11
-
12
- Your files stay yours: read them in Obsidian or any editor, review changes in
13
- Git, and rebuild every index from the Markdown. Exact search and graph queries
14
- run on your machine with no account or model. Web capture, hosted agents, and
15
- optional remote reranking have [separate privacy boundaries](#privacy-and-boundaries).
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.
16
22
 
17
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)
18
24
 
@@ -25,31 +31,35 @@ optional remote reranking have [separate privacy boundaries](#privacy-and-bounda
25
31
  Optional local semantic search joins each match to current metadata, links,
26
32
  and history instead of returning isolated text.
27
33
  - **Author the connections.** Wikilinks and typed relationships turn notes into
28
- a queryable ontology. Backlinks, bounded graph proofs, and percolation
29
- suggestions recover them without injecting edges you did not write.
30
- - **Ground coding agents in context.** Scope notes to repository paths, recover
31
- the commits behind a note, and give the next session only what it needs.
32
- Only context you save becomes part of the record.
34
+ a graph you can query. Backlinks and graph queries use only what you wrote,
35
+ and `wordcell percolate` suggests missing links for you to review without
36
+ writing them into your notes.
37
+ - **Give coding agents the reasons behind the code.** Tie notes to repository
38
+ paths, list the commits behind a note, and let the next session start from
39
+ the notes for the file it is changing. Only context you save becomes part of
40
+ the record.
33
41
 
34
42
  Plain Markdown may be enough for a small set of notes. QMD is a good fit for
35
43
  local document retrieval and also supplies Wordcell's optional semantic search.
36
44
  Wordcell adds a connected workflow for repository context, authored relationships,
37
45
  Git evidence, and selective publishing. [Compare the tradeoffs](https://github.com/hraness/wordcell/blob/main/docs/comparisons.md).
38
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
+
39
49
  ## Install
40
50
 
41
51
  [Bun 1.3.14 or newer](https://bun.sh/docs/installation) and Git are required.
42
52
  The CLI and TypeScript SDK run with Bun. Install the versioned GitHub archive:
43
53
 
44
54
  ```sh
45
- bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.22.4/hraness-wordcell-0.22.4.tgz
55
+ bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.23.0/hraness-wordcell-0.23.0.tgz
46
56
  wordcell --help
47
57
  ```
48
58
 
49
59
  Prefer npm? The same release is [mirrored there](https://www.npmjs.com/package/@hraness/wordcell):
50
60
 
51
61
  ```sh
52
- npm install --global --ignore-scripts @hraness/wordcell@0.22.4
62
+ npm install --global --ignore-scripts @hraness/wordcell@0.23.0
53
63
  wordcell --help
54
64
  ```
55
65
 
@@ -91,7 +101,7 @@ After trying the CLI, install the public Agent Skill into a compatible agent,
91
101
  such as Claude Code, Codex, Cursor, or GitHub Copilot:
92
102
 
93
103
  ```sh
94
- bunx skills add hraness/wordcell#v0.22.4 --skill wordcell
104
+ bunx skills add hraness/wordcell#v0.23.0 --skill wordcell
95
105
  ```
96
106
 
97
107
  Then ask:
@@ -173,6 +183,8 @@ provider failure retains the baseline order with a diagnostic. See the
173
183
  | Check the vault | `wordcell check --root kb` | Reports structural and attachment problems without editing files. |
174
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. |
175
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. |
176
188
 
177
189
  Use `--json` for structured output and `wordcell --help` for the complete command
178
190
  surface. [Full command reference](https://github.com/hraness/wordcell/blob/main/docs/reference.md#command-surface).
@@ -212,6 +224,27 @@ selection digest. They keep note bodies out of the agent's context. Use
212
224
  prose and attachments still need review before sharing: selection is not secret
213
225
  redaction. [Selection recipes and hosting guide](https://github.com/hraness/wordcell/blob/main/docs/publish.md).
214
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
+
215
248
  ## Evidence and comparisons
216
249
 
217
250
  In a four-query example over a seven-note public vault, packed search snippets
@@ -232,9 +265,14 @@ does not claim to beat QMD's retrieval quality or every Markdown workflow.
232
265
  [Measured evidence](https://github.com/hraness/wordcell/blob/main/docs/evidence.md)
233
266
  shows a reproducible public-vault example, with the inputs, output sizes, and
234
267
  limits beside each result. [The comparison guide](https://github.com/hraness/wordcell/blob/main/docs/comparisons.md)
235
- covers Markdown alone, QMD, Basic Memory, Obsidian, and static publishing tools
236
- using their own documentation. Choose the smallest workflow that meets your
237
- 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.
238
276
 
239
277
  ## How the files fit together
240
278
 
@@ -283,7 +321,7 @@ exist. [Graph queries and proof limits](https://github.com/hraness/wordcell/blob
283
321
  Add the same immutable release to a Bun project:
284
322
 
285
323
  ```sh
286
- bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.22.4/hraness-wordcell-0.22.4.tgz
324
+ bun add --exact --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.23.0/hraness-wordcell-0.23.0.tgz
287
325
  ```
288
326
 
289
327
  The SDK provides read-only vault sessions, metadata queries, search, graph
@@ -315,11 +353,14 @@ the design. Browse it on the [documentation index](https://wordcell.io/docs).
315
353
  | --- | --- |
316
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. |
317
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. |
318
357
  | [Installation and command reference](https://github.com/hraness/wordcell/blob/main/docs/reference.md) | Exact interfaces, SDK imports, optional adapters, and troubleshooting prerequisites. |
319
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. |
320
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. |
321
360
  | [Graph guide](https://github.com/hraness/wordcell/blob/main/docs/graph-authority.md) | Named queries, proofs, revisions, resource limits, and cache recovery. |
322
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. |
323
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. |
324
365
  | [Release verification](https://github.com/hraness/wordcell/blob/main/docs/publishing.md#verify-a-published-release) | Verify archive identity, signatures, and provenance. |
325
366
 
package/dist/authoring.js CHANGED
@@ -14,9 +14,9 @@ import {
14
14
  noteRevision,
15
15
  removeNoteRelation,
16
16
  updateNoteBody
17
- } from "./index-ecqpgr5y.js";
17
+ } from "./index-b0khj0h5.js";
18
18
  import"./index-3rm7cz6h.js";
19
- import"./index-qbssx940.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-tf4wzjew.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-qbssx940.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-n386evxj.js";
8
- import"./index-vnybgywh.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-qbssx940.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-9h7zh0wt.js";
9
- import"./index-bcknqxrq.js";
10
- import"./index-054mb7d3.js";
11
- import"./index-bqtqeak3.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-1k595z6v.js";
31
- import"./index-q7tbg07z.js";
31
+ import"./index-mnq2wy34.js";
32
+ import"./index-tvd2sqrx.js";
32
33
  import"./index-adx6khj5.js";
33
- import"./index-rr9kzq4n.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-djrcc1yf.js";
38
- import"./index-jk1sgx36.js";
39
- import"./index-xv80vzfp.js";
40
- import"./index-tf4wzjew.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-vnybgywh.js";
43
+ import"./index-ahyhryb8.js";
43
44
  import"./index-1xxnjn0d.js";
44
- import"./index-pnt9wr59.js";
45
- import"./index-233z9wmn.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-ecqpgr5y.js";
56
+ import"./index-b0khj0h5.js";
56
57
  import"./index-3rm7cz6h.js";
57
- import"./index-qbssx940.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-m3t917ev.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-1k595z6v.js";
8
- import"./index-q7tbg07z.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-rr9kzq4n.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-djrcc1yf.js";
23
- import"./index-jk1sgx36.js";
24
- import"./index-xv80vzfp.js";
25
- import"./index-tf4wzjew.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-vnybgywh.js";
29
+ import"./index-ahyhryb8.js";
30
30
  import"./index-1xxnjn0d.js";
31
31
  import {
32
32
  scanVault
33
- } from "./index-233z9wmn.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-qbssx940.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-1k595z6v.js";
8
- import"./index-q7tbg07z.js";
7
+ } from "./index-mnq2wy34.js";
8
+ import"./index-tvd2sqrx.js";
9
9
  import"./index-adx6khj5.js";
10
- import"./index-rr9kzq4n.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-djrcc1yf.js";
15
- import"./index-jk1sgx36.js";
16
- import"./index-xv80vzfp.js";
17
- import"./index-tf4wzjew.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-vnybgywh.js";
19
+ import"./index-ahyhryb8.js";
20
20
  import"./index-1xxnjn0d.js";
21
- import"./index-233z9wmn.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-qbssx940.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-xv80vzfp.js";
8
+ } from "./index-1er88ckw.js";
9
9
  import {
10
10
  GRAPH_LIMITS,
11
11
  GraphAuthorityError,
12
12
  validateGraphQueryRequest
13
- } from "./index-tf4wzjew.js";
14
- import"./index-233z9wmn.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-qbssx940.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-djrcc1yf.js";
5
- import"./index-jk1sgx36.js";
6
- import"./index-xv80vzfp.js";
7
- import"./index-tf4wzjew.js";
8
- import"./index-233z9wmn.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-qbssx940.js";
12
+ import"./index-jvb7w0gg.js";
13
13
  import"./index-z1w83f81.js";
14
14
  export {
15
15
  percolateWithGraph
package/dist/graph.js CHANGED
@@ -6,10 +6,12 @@ import {
6
6
  MAX_MENTION_PAIRS,
7
7
  VaultAnalysisBudgetError,
8
8
  analyzeVault,
9
+ analyzeVaultComplete,
9
10
  catalogEnd,
10
11
  catalogStart,
11
12
  isCanonicalNoteId,
12
13
  isCanonicalRelationPredicate,
14
+ isMetadataNumber,
13
15
  lookupNote,
14
16
  metadataValueFromUnknown,
15
17
  normalizeVaultPath,
@@ -18,7 +20,7 @@ import {
18
20
  replaceCatalog,
19
21
  searchableMarkdown,
20
22
  wikiLinks
21
- } from "./index-qbssx940.js";
23
+ } from "./index-jvb7w0gg.js";
22
24
  import"./index-z1w83f81.js";
23
25
  export {
24
26
  wikiLinks,
@@ -29,10 +31,12 @@ export {
29
31
  normalizeVaultPath,
30
32
  metadataValueFromUnknown,
31
33
  lookupNote,
34
+ isMetadataNumber,
32
35
  isCanonicalRelationPredicate,
33
36
  isCanonicalNoteId,
34
37
  catalogStart,
35
38
  catalogEnd,
39
+ analyzeVaultComplete,
36
40
  analyzeVault,
37
41
  VaultAnalysisBudgetError,
38
42
  MAX_MENTION_PAIRS,
@@ -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-tf4wzjew.js";
6
+ } from "./index-pgtm2nhf.js";
7
7
  import {
8
8
  scanVault
9
- } from "./index-233z9wmn.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-qbssx940.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-06eqhqam.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
  *