oh-my-second-brain 0.1.6 → 0.1.7

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 (39) hide show
  1. package/adapters/README.md +3 -3
  2. package/adapters/claude-code/.claude-plugin/plugin.json +2 -2
  3. package/adapters/claude-code/skills/retrieve/SKILL.md +13 -8
  4. package/adapters/claude-code/skills/setup/SKILL.md +4 -3
  5. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  6. package/adapters/codex/rules/oms.md +1 -1
  7. package/adapters/codex/skills/oms-retrieve/SKILL.md +9 -1
  8. package/adapters/hermes/manifest.json +2 -2
  9. package/adapters/hermes/skills/retrieve/SKILL.md +9 -1
  10. package/core/agents/librarian.md +1 -1
  11. package/core/skills/capture/SKILL.md +7 -5
  12. package/core/skills/retrieve/SKILL.md +17 -5
  13. package/dist/cli/oms.js +14 -29
  14. package/dist/cli/oms.js.map +1 -1
  15. package/dist/conventions/frontmatter.d.ts +11 -0
  16. package/dist/conventions/frontmatter.js +56 -6
  17. package/dist/conventions/frontmatter.js.map +1 -1
  18. package/dist/graph/explore.d.ts +34 -0
  19. package/dist/graph/explore.js +181 -0
  20. package/dist/graph/explore.js.map +1 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.js +3 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/mcp/server.js +69 -8
  25. package/dist/mcp/server.js.map +1 -1
  26. package/dist/retrieve/morning.d.ts +36 -0
  27. package/dist/retrieve/morning.js +73 -0
  28. package/dist/retrieve/morning.js.map +1 -0
  29. package/dist/runtime/assets.d.ts +7 -0
  30. package/dist/runtime/assets.js +13 -0
  31. package/dist/runtime/assets.js.map +1 -0
  32. package/dist/search/qmd.d.ts +59 -0
  33. package/dist/search/qmd.js +141 -0
  34. package/dist/search/qmd.js.map +1 -0
  35. package/docs/install.md +17 -17
  36. package/docs/release.md +5 -1
  37. package/package.json +5 -4
  38. package/scripts/install.sh +8 -5
  39. package/scripts/uninstall.sh +6 -3
@@ -80,10 +80,10 @@ contract validation, retrieve, graph/status, and gated capture tools.
80
80
  All three hosts natively support MCP (`.mcp.json` for claude-code and codex; "any MCP server" for Hermes).
81
81
  In the current repository, `src/mcp/server.ts` starts a real stdio MCP server via `oms mcp`.
82
82
 
83
- The MCP server currently exposes status/read/cache/capture tools:
83
+ The MCP server currently exposes status/read/cache/retrieve/capture tools:
84
84
  `oms_graph_status`, `oms_graph_build`, `oms_list_concepts`,
85
- `oms_retrieve_by_axis`, `oms_lazy_load_note`, `oms_validate_contract`,
86
- `oms_capture_prepare`, and `oms_capture_commit`.
85
+ `oms_retrieve_context`, `oms_retrieve_by_axis`, `oms_lazy_load_note`,
86
+ `oms_validate_contract`, `oms_capture_prepare`, and `oms_capture_commit`.
87
87
  Capture commit is gated by path-safety, vault-confinement, and contract validation. The CLI (`oms setup`, `oms install`, `oms uninstall`, `oms doctor`) remains the real surface for lifecycle commands.
88
88
 
89
89
  ---
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oms",
3
- "version": "0.1.6",
4
- "description": "Oh My Second Brain convention layer for Obsidian vaults capture, retrieve, and validate knowledge under a declared semantic convention.",
3
+ "version": "0.1.7",
4
+ "description": "Oh My Second Brain convention layer for Obsidian vaults \u2014 capture, retrieve, and validate knowledge under a declared semantic convention.",
5
5
  "author": {
6
6
  "name": "gobeumsu"
7
7
  },
@@ -21,18 +21,22 @@ Conceptually shells out to:
21
21
  oms retrieve
22
22
  ```
23
23
 
24
- **Runtime note:** Retrieval is available through MCP tools (`oms_retrieve_by_axis`
25
- and `oms_lazy_load_note`). This skill still guides the agent on intent and
26
- output shaping.
24
+ **Runtime note:** Retrieval is available through MCP tools. Prefer
25
+ `oms_retrieve_context` for live graph + qmd context retrieval, then
26
+ `oms_lazy_load_note` after selecting candidate notes. `oms_retrieve_by_axis`
27
+ remains available for legacy cache-backed axis retrieval.
27
28
 
28
29
  ## Agent-guided steps (v0)
29
30
 
30
31
  1. Clarify the user's **retrieval purpose** (synthesize, audit, plan, review, etc.).
31
32
  2. Narrow by declared **folder/concept/property/wikilink axes** where possible.
32
33
  3. Match the purpose to a declared **retrieval view** (`lenses` in YAML) in `vault/.oms/concepts/*.yaml`.
33
- 4. Scan notes in the candidate concept/folder set.
34
- 5. For each note, return the retrieval-view fields and lazy-load body only when needed.
35
- 6. Return results grouped by concept/folder with retrieval-view frontmatter.
34
+ 4. Call MCP `oms_retrieve_context` with the best available axes and query.
35
+ 5. Use default `qmdScope: "global"` for broad semantic search; use
36
+ `qmdScope: "graph"` only when qmd must stay inside the selected graph
37
+ candidates.
38
+ 6. For each note, return the retrieval-view fields and lazy-load body only when needed.
39
+ 7. Return results grouped by concept/folder with retrieval-view frontmatter.
36
40
 
37
41
  ## Example
38
42
 
@@ -51,5 +55,6 @@ Purpose: "Synthesize my transformer papers"
51
55
 
52
56
  ## Runtime
53
57
 
54
- Use MCP `oms_retrieve_by_axis` for axis-first narrowing and optional lexical
55
- ranking. Use MCP `oms_lazy_load_note` only after selecting candidate notes.
58
+ Use MCP `oms_retrieve_context` for live graph/qmd retrieval. Use MCP
59
+ `oms_retrieve_by_axis` only for legacy axis-first cache retrieval. Use MCP
60
+ `oms_lazy_load_note` only after selecting candidate notes.
@@ -65,7 +65,8 @@ Run `/oms-doctor` to validate your existing notes against the convention.
65
65
  ## Roadmap
66
66
 
67
67
  Setup plus `oms install`/`oms uninstall` host lifecycle commands are real and release-gated by unpacked npm tarball smoke tests. The MCP command starts
68
- the status/read/cache/capture runtime (`oms_graph_status`, `oms_graph_build`,
69
- `oms_list_concepts`, `oms_retrieve_by_axis`, `oms_lazy_load_note`,
70
- `oms_validate_contract`, `oms_capture_prepare`, `oms_capture_commit`).
68
+ the status/read/cache/retrieve/capture runtime (`oms_graph_status`, `oms_graph_build`,
69
+ `oms_list_concepts`, `oms_retrieve_context`, `oms_retrieve_by_axis`,
70
+ `oms_lazy_load_note`, `oms_validate_contract`, `oms_capture_prepare`,
71
+ `oms_capture_commit`).
71
72
  Capture commit is gated by path-safety and contract validation.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oms",
3
- "version": "0.1.6",
4
- "description": "Oh My Second Brain convention layer for Obsidian vaults Codex native rules, skills, and MCP adapter.",
3
+ "version": "0.1.7",
4
+ "description": "Oh My Second Brain convention layer for Obsidian vaults \u2014 Codex native rules, skills, and MCP adapter.",
5
5
  "_note": "oms install writes Codex MCP config, installs ~/.codex/rules/oms.md, and installs ~/.codex/skills/oms-*.",
6
6
  "skills": "./skills/",
7
7
  "mcpServers": "./.mcp.json"
@@ -15,7 +15,7 @@ Oh My Second Brain is a convention harness, not a content generator. The user ow
15
15
  | uninstall host integration | `$oms-uninstall` or `oms uninstall --runtime codex --yes` |
16
16
  | validate notes | `$oms-doctor` or `oms doctor --vault <path>` |
17
17
  | capture knowledge | use MCP `oms_capture_prepare` then `oms_capture_commit` |
18
- | retrieve knowledge | use MCP `oms_retrieve_by_axis`, then `oms_lazy_load_note` only when needed |
18
+ | retrieve knowledge | use MCP `oms_retrieve_context`, then `oms_lazy_load_note` only when needed |
19
19
 
20
20
  ## Safety
21
21
 
@@ -5,6 +5,14 @@ description: Retrieve vault knowledge axis-first using folders, frontmatter, wik
5
5
 
6
6
  # oms-retrieve
7
7
 
8
- Use `oms_retrieve_by_axis` first. Narrow by concept/folder/property/value/wikilink before lexical query. Use `oms_lazy_load_note` only after selecting candidate notes.
8
+ Use `oms_retrieve_context` first for natural-language retrieval. It combines live
9
+ frontmatter/folder/wikilink graph context with optional qmd lexical/vector
10
+ candidates and does not require a warm graph cache. Pass declared
11
+ concept/folder/property/value/wikilink axes when the user's intent gives them.
12
+
13
+ Use `qmdScope: "global"` when the user asks broad semantic search across the
14
+ vault, and `qmdScope: "graph"` when qmd candidates must stay inside the selected
15
+ OMS graph candidates. Use `oms_retrieve_by_axis` only for legacy axis-first
16
+ cache retrieval. Use `oms_lazy_load_note` only after selecting candidate notes.
9
17
 
10
18
  Return lens-shaped fields where possible; do not dump full note bodies unless the user asks or the retrieval task needs body evidence.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oms",
3
- "version": "0.1.6",
4
- "description": "Oh My Second Brain convention layer for Obsidian vaults Hermes skill bundle and MCP adapter.",
3
+ "version": "0.1.7",
4
+ "description": "Oh My Second Brain convention layer for Obsidian vaults \u2014 Hermes skill bundle and MCP adapter.",
5
5
  "_note": "oms install writes ~/.hermes/config.yaml mcp_servers.oms and installs skills under ~/.hermes/skills/knowledge-management/oms/.",
6
6
  "skills": "./skills/"
7
7
  }
@@ -5,6 +5,14 @@ description: Retrieve vault knowledge axis-first using folders, frontmatter, wik
5
5
 
6
6
  # oms-retrieve
7
7
 
8
- Use `oms_retrieve_by_axis` first. Narrow by concept/folder/property/value/wikilink before lexical query. Use `oms_lazy_load_note` only after selecting candidate notes.
8
+ Use `oms_retrieve_context` first for natural-language retrieval. It combines live
9
+ frontmatter/folder/wikilink graph context with optional qmd lexical/vector
10
+ candidates and does not require a warm graph cache. Pass declared
11
+ concept/folder/property/value/wikilink axes when the user's intent gives them.
12
+
13
+ Use `qmdScope: "global"` when the user asks broad semantic search across the
14
+ vault, and `qmdScope: "graph"` when qmd candidates must stay inside the selected
15
+ OMS graph candidates. Use `oms_retrieve_by_axis` only for legacy axis-first
16
+ cache retrieval. Use `oms_lazy_load_note` only after selecting candidate notes.
9
17
 
10
18
  Return lens-shaped fields where possible; do not dump full note bodies unless the user asks or the retrieval task needs body evidence.
@@ -21,7 +21,7 @@ It reads the convention first, then acts.
21
21
  2. **Folder resolution** — look up the correct target folder from `vault/.oms/taxonomy.yaml` based on the matched concept.
22
22
  3. **Frontmatter construction** — fill every `required: true` field; fill known optional fields; leave undeclared fields untouched.
23
23
  4. **Note creation** — write the file at the resolved path; use the concept's naming convention (default: `YYYY-MM-DD-<slug>.md`).
24
- 5. **Post-capture validation** — run `npx oms doctor` (non-blocking) to confirm the new note is clean.
24
+ 5. **Post-capture validation** — run `npx oh-my-second-brain doctor` (non-blocking) to confirm the new note is clean.
25
25
 
26
26
  ## Decision rules
27
27
 
@@ -20,12 +20,14 @@ The librarian persona governs this action.
20
20
  5. Write the note body after the frontmatter block.
21
21
  6. Run `oms doctor` (non-blocking, exits 0) to confirm the new note passes field validation.
22
22
 
23
- ## Conceptual shell-out (roadmap — NOT wired in v0)
23
+ ## Engine
24
24
 
25
- The runtime automation described above is **agent-guidance only in v0**.
26
- No capture engine exists yet; the agent follows these steps manually.
27
- When the MCP server is wired (`src/mcp/server.ts` real), `capture` will call
28
- the `capture` MCP tool directly.
25
+ The capture engine is implemented in `src/capture/safe.ts` and exposed via two MCP tools:
26
+
27
+ - **`oms_capture_prepare`** — resolves the target path and constructs the proposed frontmatter/body without writing anything. Call this first to let the agent review the proposed note before committing.
28
+ - **`oms_capture_commit`** — writes the file to disk. Gated by vault confinement: rejects writes that are outside the vault, to non-`.md` files, or into the `.oms/` config directory. Frontmatter violations are warn-only and do not block the commit.
29
+
30
+ The recommended agent flow is to call `oms_capture_prepare`, review the result, then call `oms_capture_commit` to finalize.
29
31
 
30
32
  ## Example agent steps
31
33
 
@@ -32,12 +32,24 @@ lenses:
32
32
 
33
33
  The retrieval skill reads these declarations from `vault/.oms/concepts/*.yaml`.
34
34
 
35
- ## Conceptual shell-out (roadmap — NOT wired in v0)
35
+ ## Engine
36
36
 
37
- The runtime automation described above is **agent-guidance only in v0**.
38
- No retrieval engine exists yet; the agent follows these steps manually.
39
- When the MCP server is wired (`src/mcp/server.ts` real), `retrieve` will call
40
- the `retrieve` MCP tool directly.
37
+ Use MCP `oms_retrieve_context` first for natural-language retrieval. It combines:
38
+
39
+ - live folder/frontmatter/wikilink graph exploration without requiring a warm cache
40
+ - taxonomy-axis seeds from concept, folder, property, value, or wikilink inputs
41
+ - graph neighbors through shared frontmatter values, wikilinks, and backlinks
42
+ - optional qmd lexical/vector candidates when the local `qmd` CLI is available
43
+
44
+ Use `qmdScope: "global"` for broad semantic search across the vault. Use
45
+ `qmdScope: "graph"` when qmd candidates must stay inside the selected OMS graph
46
+ candidates. The qmd provider is fail-soft: retrieval must still return OMS graph
47
+ hits when qmd is unavailable or disabled.
48
+
49
+ Use the older MCP tools only for narrower follow-up steps:
50
+
51
+ - **`oms_retrieve_by_axis`** — legacy cache-backed axis retrieval by concept, folder, property, value, or wikilink.
52
+ - **`oms_lazy_load_note`** — fetches the full body of a single selected note on demand, avoiding loading all note bodies upfront.
41
53
 
42
54
  ## Example agent steps
43
55
 
package/dist/cli/oms.js CHANGED
@@ -10,37 +10,20 @@ import { resolveConcept } from "../ontology/resolver.js";
10
10
  import { parseNote } from "../conventions/frontmatter.js";
11
11
  import { validateFrontmatter } from "../conventions/validate.js";
12
12
  import { runMcpServer } from "../mcp/server.js";
13
+ import { resolveBundledAssetPaths } from "../runtime/assets.js";
13
14
  import { formatHostOperationResults, runHostOperation, } from "../install/hosts.js";
14
15
  // ---------------------------------------------------------------------------
15
16
  // Path helpers
16
17
  // ---------------------------------------------------------------------------
17
- /**
18
- * Resolve the bundled `core/ontology` directory.
19
- * Both the built path (`dist/cli/`) and the source path (`src/cli/`) are two
20
- * levels beneath the repo root, so `../../core/ontology` works in both cases.
21
- */
18
+ const bundledAssets = resolveBundledAssetPaths();
22
19
  function bundledOntologyDir() {
23
- const __filename = fileURLToPath(import.meta.url);
24
- const __dirname = path.dirname(__filename);
25
- return path.resolve(__dirname, "../../core/ontology");
20
+ return bundledAssets.ontologyDir;
26
21
  }
27
- /**
28
- * Resolve the bundled Claude Code adapter directory.
29
- * Kept parallel to bundledOntologyDir so source and built paths both work.
30
- */
31
22
  function bundledClaudeAdapterDir() {
32
- const __filename = fileURLToPath(import.meta.url);
33
- const __dirname = path.dirname(__filename);
34
- return path.resolve(__dirname, "../../adapters/claude-code");
23
+ return bundledAssets.claudeAdapterDir;
35
24
  }
36
- /**
37
- * Resolve the bundled `adapters` root so host installers can copy the
38
- * runtime-specific adapter assets from either source or dist execution.
39
- */
40
25
  function bundledAdapterRoot() {
41
- const __filename = fileURLToPath(import.meta.url);
42
- const __dirname = path.dirname(__filename);
43
- return path.resolve(__dirname, "../../adapters");
26
+ return bundledAssets.adapterRoot;
44
27
  }
45
28
  // ---------------------------------------------------------------------------
46
29
  // Helpers
@@ -201,7 +184,7 @@ export async function runSetup(opts) {
201
184
  console.log(` Written: ${path.join(omsDir, "taxonomy.yaml")}`);
202
185
  console.log(` Concepts: ${copiedFiles.join(", ") || "(none)"}`);
203
186
  console.log(` Folders: ${Object.keys(folderBindings).join(", ") || "(none)"}`);
204
- console.log(`\nRun "oms doctor" to validate existing notes.\n`);
187
+ console.log(`\nRun "oh-my-second-brain doctor" to validate existing notes.\n`);
205
188
  if (installClaude) {
206
189
  printClaudeInstallPlan(buildClaudeInstallPlan({ vault }));
207
190
  console.log("");
@@ -272,14 +255,16 @@ export async function runDoctor(opts) {
272
255
  // ---------------------------------------------------------------------------
273
256
  function printUsage() {
274
257
  console.log(`
275
- oms — Oh My Second Brain convention layer for Obsidian vaults
258
+ oh-my-second-brain — Oh My Second Brain convention layer for Obsidian vaults
276
259
 
277
260
  Usage:
278
- oms setup [--vault <path>] [--yes] [--install-claude]
279
- oms install [--vault <path>] [--runtime <auto|all|claude|codex|hermes>] [--dry-run] [--execute] [--yes]
280
- oms uninstall [--runtime <all|claude|codex|hermes>] [--dry-run] [--execute] [--yes]
281
- oms doctor [--vault <path>]
282
- oms mcp [--vault <path>]
261
+ oh-my-second-brain setup [--vault <path>] [--yes] [--install-claude]
262
+ oh-my-second-brain install [--vault <path>] [--runtime <auto|all|claude|codex|hermes>] [--dry-run] [--execute] [--yes]
263
+ oh-my-second-brain uninstall [--runtime <all|claude|codex|hermes>] [--dry-run] [--execute] [--yes]
264
+ oh-my-second-brain doctor [--vault <path>]
265
+ oh-my-second-brain mcp [--vault <path>]
266
+
267
+ Compatibility alias: oms <command>
283
268
 
284
269
  Commands:
285
270
  setup Adopt an existing vault into the Oh My Second Brain convention.
@@ -1 +1 @@
1
- {"version":3,"file":"oms.js","sourceRoot":"","sources":["../../src/cli/oms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oms.js","sourceRoot":"","sources":["../../src/cli/oms.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,16 @@ export interface ParsedNote {
11
11
  body: string;
12
12
  /** Whether a frontmatter block was present. */
13
13
  hasFrontmatter: boolean;
14
+ diagnostics: FrontmatterDiagnostic[];
15
+ frontmatterRaw: string;
16
+ frontmatterRange: FrontmatterRange | null;
17
+ }
18
+ export interface FrontmatterDiagnostic {
19
+ code: "frontmatter-yaml-parse-error" | "frontmatter-unclosed-fence" | "frontmatter-not-map";
20
+ message: string;
21
+ }
22
+ export interface FrontmatterRange {
23
+ start: number;
24
+ end: number;
14
25
  }
15
26
  export declare function parseNote(raw: string): ParsedNote;
@@ -1,23 +1,73 @@
1
- import { parse as parseYaml } from "yaml";
1
+ import { parseDocument } from "yaml";
2
+ const OPEN_FENCE = /^---\r?\n/;
2
3
  const FENCE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
4
+ function emptyParsedNote(raw) {
5
+ return {
6
+ frontmatter: {},
7
+ body: raw,
8
+ hasFrontmatter: false,
9
+ diagnostics: [],
10
+ frontmatterRaw: "",
11
+ frontmatterRange: null,
12
+ };
13
+ }
3
14
  export function parseNote(raw) {
4
15
  // Only treat as frontmatter if the document opens with the fence.
5
- if (!raw.startsWith("---")) {
6
- return { frontmatter: {}, body: raw, hasFrontmatter: false };
16
+ const open = OPEN_FENCE.exec(raw);
17
+ if (!open) {
18
+ return emptyParsedNote(raw);
7
19
  }
8
20
  const match = FENCE.exec(raw);
9
21
  if (!match) {
10
- return { frontmatter: {}, body: raw, hasFrontmatter: false };
22
+ const frontmatterStart = open[0].length;
23
+ return {
24
+ frontmatter: {},
25
+ body: "",
26
+ hasFrontmatter: true,
27
+ diagnostics: [
28
+ {
29
+ code: "frontmatter-unclosed-fence",
30
+ message: "Frontmatter starts with an opening fence but has no closing fence.",
31
+ },
32
+ ],
33
+ frontmatterRaw: raw.slice(frontmatterStart),
34
+ frontmatterRange: { start: frontmatterStart, end: raw.length },
35
+ };
11
36
  }
12
37
  const yamlText = match[1] ?? "";
13
- const parsed = parseYaml(yamlText);
38
+ const document = parseDocument(yamlText, { prettyErrors: false, uniqueKeys: true });
39
+ if (document.errors.length > 0) {
40
+ return {
41
+ frontmatter: {},
42
+ body: raw.slice(match[0].length),
43
+ hasFrontmatter: true,
44
+ diagnostics: document.errors.map((error) => ({
45
+ code: "frontmatter-yaml-parse-error",
46
+ message: error.message,
47
+ })),
48
+ frontmatterRaw: yamlText,
49
+ frontmatterRange: { start: 4, end: 4 + yamlText.length },
50
+ };
51
+ }
52
+ const parsed = document.toJS();
14
53
  const frontmatter = parsed && typeof parsed === "object" && !Array.isArray(parsed)
15
- ? parsed
54
+ ? Object.fromEntries(Object.entries(parsed))
16
55
  : {};
56
+ const diagnostics = parsed && typeof parsed === "object" && !Array.isArray(parsed)
57
+ ? []
58
+ : [
59
+ {
60
+ code: "frontmatter-not-map",
61
+ message: "Frontmatter must be a YAML mapping.",
62
+ },
63
+ ];
17
64
  return {
18
65
  frontmatter,
19
66
  body: raw.slice(match[0].length),
20
67
  hasFrontmatter: true,
68
+ diagnostics,
69
+ frontmatterRaw: yamlText,
70
+ frontmatterRange: { start: 4, end: 4 + yamlText.length },
21
71
  };
22
72
  }
23
73
  //# sourceMappingURL=frontmatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/conventions/frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAiB1C,MAAM,KAAK,GAAG,mCAAmC,CAAC;AAElD,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,kEAAkE;IAClE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,WAAW,GACf,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAE,MAAkC;QACrC,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,WAAW;QACX,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,cAAc,EAAE,IAAI;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/conventions/frontmatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type RetrieveByAxisOptions } from "./cache.js";
2
+ export type LocalGraphProvider = "cache" | "headless-scan";
3
+ export type GraphConnectionKind = "property-value" | "wikilink" | "backlink";
4
+ export interface GraphExploreOptions extends RetrieveByAxisOptions {
5
+ maxNeighbors?: number;
6
+ useCache?: boolean;
7
+ }
8
+ export interface GraphConnectionReason {
9
+ kind: GraphConnectionKind;
10
+ from: string;
11
+ to: string;
12
+ axis?: string;
13
+ value?: string;
14
+ target?: string;
15
+ }
16
+ export interface GraphExploreNode {
17
+ path: string;
18
+ concept: string | null;
19
+ folder: string;
20
+ axes: Record<string, string[]>;
21
+ wikilinks: string[];
22
+ score: number;
23
+ bodyPreview: string;
24
+ reasons: GraphConnectionReason[];
25
+ }
26
+ export interface GraphExploreResult {
27
+ provider: LocalGraphProvider;
28
+ mode: "axis-seed-local-neighborhood";
29
+ bodyPolicy: "lazy-load";
30
+ seeds: GraphExploreNode[];
31
+ neighbors: GraphExploreNode[];
32
+ connections: GraphConnectionReason[];
33
+ }
34
+ export declare function exploreLocalGraph(opts: GraphExploreOptions): Promise<GraphExploreResult>;