oh-my-second-brain 0.12.2 → 0.13.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG-assets.md +4 -0
- package/CHANGELOG-cli.md +5 -0
- package/CHANGELOG-kernel.md +11 -0
- package/CHANGELOG-mcp.md +11 -0
- package/CHANGELOG-vendors.md +12 -0
- package/CHANGELOG.md +6 -0
- package/README.ko.md +3 -1
- package/README.md +3 -1
- package/assets/hermes-manifest.json +1 -1
- package/assets/skills/doctor/SKILL.md +1 -1
- package/assets/skills/link/SKILL.md +1 -1
- package/assets/skills/search/SKILL.md +3 -3
- package/assets/skills/status/SKILL.md +1 -1
- package/assets/skills/template/SKILL.md +6 -5
- package/assets/skills/write/SKILL.md +3 -3
- package/dist/cli/doctor-lint.js +45 -27
- package/dist/cli/doctor-lint.js.map +1 -1
- package/dist/cli/host-commands.d.ts +4 -0
- package/dist/cli/host-commands.js +4 -3
- package/dist/cli/host-commands.js.map +1 -1
- package/dist/cli/host-probe.d.ts +5 -0
- package/dist/cli/host-probe.js +129 -0
- package/dist/cli/host-probe.js.map +1 -0
- package/dist/kernel/capture/safe.js +6 -7
- package/dist/kernel/capture/safe.js.map +1 -1
- package/dist/kernel/conventions/write-contract.d.ts +3 -3
- package/dist/kernel/conventions/write-contract.js +8 -1
- package/dist/kernel/conventions/write-contract.js.map +1 -1
- package/dist/kernel/conventions/write-protocol.js.map +1 -1
- package/dist/kernel/engine/embed/model.js +0 -4
- package/dist/kernel/engine/embed/model.js.map +1 -1
- package/dist/kernel/engine/graph/builder.js +1 -1
- package/dist/kernel/engine/graph/builder.js.map +1 -1
- package/dist/kernel/engine/graph/explore.d.ts +1 -1
- package/dist/kernel/engine/graph/explore.js +7 -4
- package/dist/kernel/engine/graph/explore.js.map +1 -1
- package/dist/kernel/engine/graph/node.js +13 -5
- package/dist/kernel/engine/graph/node.js.map +1 -1
- package/dist/kernel/engine/mcp/facade.js +28 -22
- package/dist/kernel/engine/mcp/facade.js.map +1 -1
- package/dist/kernel/harness/surface-registry.js +13 -5
- package/dist/kernel/harness/surface-registry.js.map +1 -1
- package/dist/kernel/harness/validation.js +4 -1
- package/dist/kernel/harness/validation.js.map +1 -1
- package/dist/kernel/install/asset-health.d.ts +47 -0
- package/dist/kernel/install/asset-health.js +90 -0
- package/dist/kernel/install/asset-health.js.map +1 -0
- package/dist/kernel/templates/canonical.d.ts +8 -1
- package/dist/kernel/templates/canonical.js +20 -0
- package/dist/kernel/templates/canonical.js.map +1 -1
- package/dist/kernel/templates/doctor.js +14 -8
- package/dist/kernel/templates/doctor.js.map +1 -1
- package/dist/kernel/templates/index.d.ts +3 -1
- package/dist/kernel/templates/index.js +1 -0
- package/dist/kernel/templates/index.js.map +1 -1
- package/dist/kernel/templates/policy.d.ts +38 -1
- package/dist/kernel/templates/policy.js +22 -5
- package/dist/kernel/templates/policy.js.map +1 -1
- package/dist/kernel/templates/register.d.ts +9 -0
- package/dist/kernel/templates/register.js +120 -0
- package/dist/kernel/templates/register.js.map +1 -0
- package/dist/kernel/templates/resolver.js +6 -4
- package/dist/kernel/templates/resolver.js.map +1 -1
- package/dist/kernel/templates/transaction.d.ts +16 -1
- package/dist/kernel/templates/transaction.js +26 -0
- package/dist/kernel/templates/transaction.js.map +1 -1
- package/dist/kernel/templates/types.d.ts +9 -1
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.js +47 -57
- package/dist/mcp/server.js.map +1 -1
- package/dist/vendors/claude/claude.d.ts +2 -0
- package/dist/vendors/claude/claude.js +2 -1
- package/dist/vendors/claude/claude.js.map +1 -1
- package/dist/vendors/claude/hook/post-tool-use.js +1 -1
- package/dist/vendors/claude/hook/post-tool-use.js.map +1 -1
- package/dist/vendors/codex/codex.d.ts +2 -0
- package/dist/vendors/codex/codex.js +22 -4
- package/dist/vendors/codex/codex.js.map +1 -1
- package/dist/vendors/hermes/hermes.d.ts +2 -0
- package/dist/vendors/hermes/hermes.js +30 -12
- package/dist/vendors/hermes/hermes.js.map +1 -1
- package/docs/adapters.md +3 -0
- package/docs/architecture.md +11 -1
- package/docs/conventions.md +4 -0
- package/package.json +6 -3
- package/skills/distill/SKILL.md +20 -0
- package/skills/doctor/SKILL.md +24 -0
- package/skills/link/SKILL.md +24 -0
- package/skills/search/SKILL.md +31 -0
- package/skills/status/SKILL.md +16 -0
- package/skills/template/SKILL.md +30 -0
- package/skills/write/SKILL.md +36 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "oms",
|
|
12
12
|
"description": "Oh My Second Brain convention layer for Obsidian vaults — capture, retrieve, and validate knowledge under a declared semantic convention.",
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.13.0",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "gobeumsu",
|
|
16
16
|
"email": "gobeumsu@gmail.com"
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
]
|
|
38
38
|
}
|
|
39
39
|
],
|
|
40
|
-
"version": "0.
|
|
40
|
+
"version": "0.13.0"
|
|
41
41
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Oh My Second Brain convention layer for Obsidian vaults — 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": "./assets/skills/",
|
package/CHANGELOG-assets.md
CHANGED
|
@@ -4,6 +4,10 @@ Skills, agents, templates, and host guidance changes belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.13.0] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
- **The npm package now ships a generated root `skills/` mirror of the single authored `assets/skills/` source for Gajae-Code, whose convention scan previously found zero OMS skills silently.**
|
|
10
|
+
|
|
7
11
|
## [0.12.2] - 2026-09-01
|
|
8
12
|
|
|
9
13
|
## [0.12.1] - 2026-09-01
|
package/CHANGELOG-cli.md
CHANGED
|
@@ -4,6 +4,11 @@ Changes to the `oms` command surface belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.13.0] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
- **`oms doctor` now verifies Claude hook events plus the managed Codex and Hermes MCP registrations, preserving unreadable or syntactically malformed registration evidence as explicit inspection errors.**
|
|
10
|
+
- **`oms doctor` now reports structured and text install-asset health, naming dangling Claude hook symlinks with the reinstall command instead of allowing a silent command-not-found failure at tool time.**
|
|
11
|
+
|
|
7
12
|
## [0.12.2] - 2026-09-01
|
|
8
13
|
|
|
9
14
|
## [0.12.1] - 2026-09-01
|
package/CHANGELOG-kernel.md
CHANGED
|
@@ -4,6 +4,17 @@ Domain logic changes belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.13.0] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
- **Replaying an identical completed template registration now returns a verified `already-complete` receipt instead of failing, while conflicting template IDs remain rejected.** Replay recomputes the canonical input and every current physical output, including every registered source, before accepting the completed marker; any drift requires a new dry-run. Template input authority construction is shared by registration, resolution, and repair to prevent digest drift.
|
|
10
|
+
- **Axis-query reranking now applies `minScore` once after reranking, so hit counts and facets are calculated from the same final ranked set.** Graph-neighbour priority is now expressed as reason-count then lexical-score ordering, rather than a unit-dependent weighted scalar.
|
|
11
|
+
- **Install asset health now classifies vendor-neutral host evidence injected by the CLI, including explicit inspection errors rather than mistaking unreadable or corrupt registration evidence for an absent installation.**
|
|
12
|
+
- **Axis-narrowed search now ranks with a continuous coverage score, using title, declared-axis, and term-specificity signals to resolve equal coverage instead of integer token-count ties and alphabetical paths.** Zero-score padding is refused, and `minScore` filters hits and facets identically. Scores are now fractional: a previously meaningful `minScore: 1` ("at least one token") effectively requires perfect coverage, so callers must re-tune thresholds.
|
|
13
|
+
- **Install asset health inspection now classifies missing, non-executable, and dangling hook symlinks explicitly, and validates generic skill-tree digests and recorded source versions against injected provenance evidence.**
|
|
14
|
+
- **Template policies can declare a user-owned writer registry in `.oms/template-policy.json`.** Agent writes with an unregistered writer identifier are refused at admission; vaults without a `writers` block are unaffected. Active registries require policy `version: 2`: migrate a v1 policy by setting `version` to `2` and retaining or adding its `writers` block.**
|
|
15
|
+
- **The exported template-policy JSON Schema now treats `writers` as a preserved extension for v1 policies and validates the managed writer registry only for v2 policies.**
|
|
16
|
+
- **An existing vault template can be registered in place and have its OMS contract derived from the file itself.** The kernel reads the Markdown template as the shape authority — frontmatter key order, literal and token defaults, body scaffold and body signature, supported template expressions — and composes it with `.obsidian/types.json`, the base contract, `.oms/template-policy.json`, and `.oms/taxonomy.json` into the generated `.oms/types.json`. Semantics stay where they belong: intent, requiredness, allowed values, formats, naming, and stable identity remain user-authored policy input and are never guessed from Markdown literals, so registering against a contract you have not authored fails with `TEMPLATE_CONTRACT_UNKNOWN` instead of inventing one. Registration runs through the existing guarded transaction, so a source that changes between dry-run and apply is rejected by CAS and the user's template is verified in place rather than published.
|
|
17
|
+
|
|
7
18
|
## [0.12.2] - 2026-09-01
|
|
8
19
|
|
|
9
20
|
- **Setup preserves generated taxonomy template bindings and incrementally registers newly discovered templates.** (#104)
|
package/CHANGELOG-mcp.md
CHANGED
|
@@ -4,6 +4,17 @@ MCP server tools and resources belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.13.0] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`write { op: "template", mode: "register-existing" }` registers a template that already lives in your vault.** Point it at a vault-relative Markdown path with an explicit stable `templateId`, the contract you authored, and a naming rule; the server reads the file as the shape authority and derives every control and source signature itself, so you no longer hand-assemble four expected digests and re-send the template's own bytes to register a file that is already on disk. The dry-run → `approvalDigest` → apply contract and its CAS checks are unchanged, and the source template is verified in place — never copied, rewritten, moved, or renamed. Re-registering an identical binding is refused as `TEMPLATE_ALREADY_REGISTERED` rather than a bare identity collision.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **`status.writeTools` response values were renamed from `oms_write-*` to `write-*` with the capability-only tool surface.** Raw MCP clients that consume this diagnostic field must migrate those response strings alongside the five public tool names.
|
|
16
|
+
- **MCP local tool names are now capability-only.** The `oms` server advertises `write`, `search`, `link`, `status`, and `doctor`, so qualifying hosts display `oms_write`, `oms_search`, `oms_link`, `oms_status`, and `oms_doctor` rather than `oms_oms_*`. Raw MCP callers must migrate `oms_write` → `write`, `oms_search` → `search`, `oms_link` → `link`, `oms_status` → `status`, and `oms_doctor` → `doctor`.
|
|
17
|
+
|
|
7
18
|
## [0.12.2] - 2026-09-01
|
|
8
19
|
|
|
9
20
|
## [0.12.1] - 2026-09-01
|
package/CHANGELOG-vendors.md
CHANGED
|
@@ -4,6 +4,18 @@ Per-host adapter and installer changes belong here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.13.0] - 2026-09-05
|
|
8
|
+
|
|
9
|
+
- **The shipped GJC skills mirror is now checked file-for-file against authored skills, with drift failures directing contributors to `npm run sync:skills`.**
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- **Supported host guidance now names the single-qualified OMS tools.** Hermes, Claude, and Codex users see `oms_write`, `oms_search`, `oms_link`, `oms_status`, and `oms_doctor`, never `oms_oms_*`; raw MCP integrations must replace local calls `oms_write`/`oms_search`/`oms_link`/`oms_status`/`oms_doctor` with `write`/`search`/`link`/`status`/`doctor`.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Gajae-Code now has a marketplace-plugin skill channel at the package-root `skills/` convention path; previously it installed OMS successfully while silently discovering zero skills.**
|
|
18
|
+
|
|
7
19
|
## [0.12.2] - 2026-09-01
|
|
8
20
|
|
|
9
21
|
## [0.12.1] - 2026-09-01
|
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@ This aggregate changelog contains changes that span multiple layers.
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [0.13.0] - 2026-09-05
|
|
14
|
+
|
|
15
|
+
- **Breaking: the OMS namespace now renders exactly once. Tools appear as `oms_write`, not `oms_oms_write`.** The server was registered under the id `oms` while its tools were *also* named `oms_write`, `oms_search`, `oms_link`, `oms_status`, and `oms_doctor`, so every host that qualifies a tool as `<server>_<tool>` displayed the product namespace twice — Hermes showed `oms_oms_write`, internally `mcp__oms__oms_write`. The MCP-local names are now capability-only: `write`, `search`, `link`, `status`, `doctor`. Qualifying hosts render `oms_write` and its peers; Claude and Codex render `mcp__oms__write`. This spans layers deliberately — the tool surface, the bundled skills' `mcp_tool` values, the host manifests, and every piece of host guidance moved together, so there is one coherent five-capability surface and no aliases. **Raw MCP clients must migrate**: `oms_write` → `write`, `oms_search` → `search`, `oms_link` → `link`, `oms_status` → `status`, `oms_doctor` → `doctor`, and the `status.writeTools` response strings from `oms_write-*` → `write-*`. Hosts that qualify tool names need no change. The demoted operations behind `op` are untouched, and a parity gate now fails the build if any advertised tool name carries the `oms_` prefix or if a supported host would render a doubled namespace. (#107)
|
|
16
|
+
|
|
17
|
+
- **The shipped dependency tree no longer carries known advisories.** `npm run audit` had begun failing on every pull request for a reason none of them introduced: `fast-uri` picked up four host-confusion and SSRF advisories across its whole `3.x` range, and `qs` two more through Express. Both are pinned forward through the existing `overrides` block — `fast-uri` to `^4.1.4` and a new `qs` pin to `^6.16.0` — so the audit gate reports zero vulnerabilities and CI can tell a real regression from inherited noise again.
|
|
18
|
+
|
|
13
19
|
## [0.12.2] - 2026-09-01
|
|
14
20
|
|
|
15
21
|
### Fixed
|
package/README.ko.md
CHANGED
|
@@ -73,7 +73,7 @@ Setup에서는 로컬 검증 acquisition 정책 하나를 선택한다:
|
|
|
73
73
|
|
|
74
74
|
`oms mcp`는 정확히 다섯 개의 공개 도구를 노출한다:
|
|
75
75
|
|
|
76
|
-
`
|
|
76
|
+
`write` · `search` · `link` · `status` · `doctor`
|
|
77
77
|
|
|
78
78
|
일곱 스킬(`write`, `search`, `link`, `distill`, `status`, `doctor`, `template`)은 워크플로 안내이며 MCP 도구와 같은 집합이 아니다. 세부 기능은 다섯 도구의 `op` 값으로 제공한다.
|
|
79
79
|
|
|
@@ -90,6 +90,8 @@ npm install -g oh-my-second-brain
|
|
|
90
90
|
oms install --runtime all --vault /path/to/vault --yes
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
Gajae-Code에서는 npm 패키지를 marketplace plugin으로 설치한다: `gjc plugin install oms@oms`. GJC는 패키지 루트의 `skills/` convention path에서 일곱 OMS skill을 발견한다.
|
|
94
|
+
|
|
93
95
|
호스트 설치는 canonical 볼트를 `${XDG_CONFIG_HOME:-~/.config}/oms/vault.json`에 기록하고 각 관리형 등록에 `oms mcp --vault /path/to/vault`를 넣는다. `install`, `update`, `reconcile`, `uninstall`만 이 서명된 포인터를 호스트 stamp 관리에 사용한다. 런타임 쓰기·검색 target 해석은 포인터를 읽지 않으며 명시적 target, 로컬 볼트 control, bridge, `OMS_VAULT`, 읽기 전용 cwd fallback 순서를 유지한다.
|
|
94
96
|
|
|
95
97
|
`OMS_VAULT`는 명시적·로컬·bridge target이 없을 때 사용하는 지원 환경변수 fallback이다.
|
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ During setup, choose one local verified acquisition policy:
|
|
|
71
71
|
|
|
72
72
|
`oms mcp` exposes exactly five public tools:
|
|
73
73
|
|
|
74
|
-
`
|
|
74
|
+
`write` · `search` · `link` · `status` · `doctor`
|
|
75
75
|
|
|
76
76
|
The seven skills (`write`, `search`, `link`, `distill`, `status`, `doctor`, `template`) are workflow guidance, not a tool-equality list. Detail capabilities remain `op` values under the five tools.
|
|
77
77
|
|
|
@@ -88,6 +88,8 @@ npm install -g oh-my-second-brain
|
|
|
88
88
|
oms install --runtime all --vault /path/to/vault --yes
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
+
For Gajae-Code, install the npm package as a marketplace plugin: `gjc plugin install oms@oms`. GJC discovers the seven OMS skills at the package-root `skills/` convention path.
|
|
92
|
+
|
|
91
93
|
Host installation records the canonical vault in `${XDG_CONFIG_HOME:-~/.config}/oms/vault.json` and stamps `oms mcp --vault /path/to/vault` into each managed host entry. `install`, `update`, `reconcile`, and `uninstall` use that signed pointer only to maintain host stamps. Runtime write/search target resolution never reads it and keeps this precedence: explicit target, local vault controls, bridge, `OMS_VAULT`, then read-only cwd fallback.
|
|
92
94
|
|
|
93
95
|
`OMS_VAULT` is the supported environment fallback when no explicit, local, or bridge target exists.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Oh My Second Brain convention layer for Obsidian vaults — 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
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: search
|
|
3
3
|
description: Retrieve vault knowledge through resolved template axes.
|
|
4
4
|
aliases: [retrieve]
|
|
5
|
-
mcp_tool:
|
|
5
|
+
mcp_tool: search
|
|
6
6
|
mcp_args:
|
|
7
7
|
op: "query"
|
|
8
8
|
query: "$1"
|
|
@@ -19,9 +19,9 @@ Retrieve vault knowledge without changing the vault.
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Plain `query` is projection-independent lexical retrieval and remains available when no embedding provider is configured. Template-managed source files are never returned as notes.
|
|
22
|
-
Expansion is explicit only for `
|
|
22
|
+
Expansion is explicit only for `search` `op: "query"` through the closed strategy object and never changes a plain lexical query.
|
|
23
23
|
|
|
24
|
-
Use `
|
|
24
|
+
Use `search { op: "templates" }` to discover stable template IDs and declared axes. Typed queries use the same derived projection as writes:
|
|
25
25
|
|
|
26
26
|
- `axes.template` selects one stable template identity.
|
|
27
27
|
- `axes.field.<key>` filters a field declared by that template; values may be scalars, scalar lists, or supported predicate objects.
|
|
@@ -19,11 +19,12 @@ Use an existing stable `templateId` when updating or moving a template. A path o
|
|
|
19
19
|
|
|
20
20
|
## Workflow
|
|
21
21
|
|
|
22
|
-
1. Read `
|
|
22
|
+
1. Read `search { op: "templates" }` and the user's requested shape. Do not guess existing IDs or fields.
|
|
23
23
|
2. Draft the exact Markdown and policy/taxonomy intent. Preserve unknown frontmatter, policy extensions, body bytes, and Obsidian property types.
|
|
24
|
-
3. Call `
|
|
25
|
-
4.
|
|
26
|
-
5.
|
|
27
|
-
6.
|
|
24
|
+
3. Call `write { op: "template", ..., dryRun: true }` for create, update, reclassify, or relocate-folder.
|
|
25
|
+
4. To adopt a template that already exists in the vault, call `write { op: "template", mode: "register-existing", templateId, sourcePath, contract, naming, dryRun: true }` instead. The server reads the file as the shape authority and derives every signature itself; you supply no `expected*` digests and no template bytes.
|
|
26
|
+
5. Show the proposal, paths, diagnostics, and `approvalDigest` to the user.
|
|
27
|
+
6. Apply only after the caller explicitly approves that exact digest. Submit the same request with `dryRun: false` and `approvedDigest`.
|
|
28
|
+
7. Report the server-verified receipt and postconditions.
|
|
28
29
|
|
|
29
30
|
Reject unsupported expressions, unsafe paths, unresolved legacy mappings, stale signatures, and identity changes. Never self-approve, silently fall back to a legacy Concept reader, or directly mutate managed template/control files.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: write
|
|
3
3
|
description: Write vault notes and manage Obsidian templates through the guarded template contract.
|
|
4
|
-
mcp_tool:
|
|
4
|
+
mcp_tool: write
|
|
5
5
|
mcp_args:
|
|
6
6
|
op: "note"
|
|
7
7
|
mode: "create"
|
|
@@ -11,11 +11,11 @@ mcp_args:
|
|
|
11
11
|
|
|
12
12
|
# write
|
|
13
13
|
|
|
14
|
-
Use MCP `
|
|
14
|
+
Use MCP `write` for every vault-note or managed-template mutation. Do not use host Write/Edit for vault Markdown.
|
|
15
15
|
|
|
16
16
|
## Notes
|
|
17
17
|
|
|
18
|
-
Translate the user's natural-language note kind into a stable ID returned by `
|
|
18
|
+
Translate the user's natural-language note kind into a stable ID returned by `search { op: "templates" }`; never guess an ID.
|
|
19
19
|
|
|
20
20
|
```text
|
|
21
21
|
/write <template-id> [body]
|
package/dist/cli/doctor-lint.js
CHANGED
|
@@ -2,33 +2,37 @@ import { existsSync } from "node:fs";
|
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { detectLinkIssues } from "../kernel/conventions/lint.js";
|
|
4
4
|
import { formatLintReport } from "../kernel/conventions/report.js";
|
|
5
|
-
import {
|
|
6
|
-
import { computeTreeDigest, parseProvenance } from "../kernel/install/provenance.js";
|
|
5
|
+
import { inspectInstalledAssets } from "../kernel/install/asset-health.js";
|
|
7
6
|
import { diagnoseTemplates } from "../kernel/templates/index.js";
|
|
8
7
|
import path from "node:path";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
8
|
+
import { discoverHostInstallAssets } from "./host-probe.js";
|
|
9
|
+
async function packageVersion() {
|
|
10
|
+
const metadata = JSON.parse(await readFile(new URL("../../package.json", import.meta.url), "utf8"));
|
|
11
|
+
return typeof metadata.version === "string" ? metadata.version : null;
|
|
12
|
+
}
|
|
13
|
+
async function hermesProvenanceStatus(status) {
|
|
14
|
+
const installed = status.hosts.find(host => host.host === "hermes")?.state !== "not-installed";
|
|
15
|
+
const asset = status.assets.find(candidate => candidate.id === "hermes:0");
|
|
16
|
+
const version = asset?.packageVersion ?? await packageVersion();
|
|
17
|
+
if (!installed)
|
|
18
|
+
return { state: "not-installed", packageVersion: version, recordedVersion: null, digestMatch: null };
|
|
19
|
+
const recordedVersion = asset?.recordedVersion ?? null;
|
|
20
|
+
const digestMatch = asset?.digestMatch ?? false;
|
|
21
|
+
return {
|
|
22
|
+
state: version !== null && recordedVersion === version && digestMatch ? "match" : "drift",
|
|
23
|
+
packageVersion: version,
|
|
24
|
+
recordedVersion,
|
|
25
|
+
digestMatch,
|
|
26
|
+
};
|
|
29
27
|
}
|
|
30
28
|
function formatHermesProvenanceStatus(status) {
|
|
31
|
-
return `Hermes provenance: ${status.state} (
|
|
29
|
+
return `Hermes provenance: ${status.state} (packageVersion=${status.packageVersion ?? "unknown"}, recordedVersion=${status.recordedVersion ?? "none"}, digestMatch=${status.digestMatch ?? "unknown"}).`;
|
|
30
|
+
}
|
|
31
|
+
function formatInstallAssets(status) {
|
|
32
|
+
const unusable = status.assets.filter(asset => asset.state !== "ok").length;
|
|
33
|
+
return unusable === 0
|
|
34
|
+
? `Install assets: ok (${status.assets.length} checked).`
|
|
35
|
+
: `Install assets: degraded (${unusable} of ${status.assets.length} unusable).`;
|
|
32
36
|
}
|
|
33
37
|
export async function runDoctor(opts) {
|
|
34
38
|
try {
|
|
@@ -45,20 +49,34 @@ export async function runDoctor(opts) {
|
|
|
45
49
|
return 1;
|
|
46
50
|
}
|
|
47
51
|
const diagnosis = await diagnoseTemplates({ vault: opts.vault, source: "explicit", maxPerTemplate: opts.maxPerTemplate });
|
|
48
|
-
const
|
|
52
|
+
const hostEvidence = await discoverHostInstallAssets();
|
|
53
|
+
const installAssets = await inspectInstalledAssets({ vault: opts.vault, ...hostEvidence });
|
|
54
|
+
const hermesProvenance = await hermesProvenanceStatus(installAssets);
|
|
49
55
|
if (opts.json) {
|
|
50
|
-
console.log(JSON.stringify({ vault: opts.vault, ...diagnosis, hermesProvenance }, null, 2));
|
|
56
|
+
console.log(JSON.stringify({ vault: opts.vault, ...diagnosis, hermesProvenance, installAssets }, null, 2));
|
|
51
57
|
return 0;
|
|
52
58
|
}
|
|
53
59
|
console.log(`\nOh My Second Brain doctor: ${diagnosis.status}.`);
|
|
54
60
|
console.log(`Migration marker: ${diagnosis.migrationMarker}.`);
|
|
55
61
|
console.log(`Managed template sources excluded: ${diagnosis.managedSourceExclusions.length}.`);
|
|
56
62
|
console.log(formatHermesProvenanceStatus(hermesProvenance));
|
|
63
|
+
console.log(formatInstallAssets(installAssets));
|
|
57
64
|
if (diagnosis.unresolvedLegacyNotes.length > 0) {
|
|
58
65
|
console.log(`Unresolved legacy notes: ${diagnosis.unresolvedLegacyNotes.length}.`);
|
|
59
66
|
}
|
|
60
|
-
for (const item of diagnosis.diagnostics) {
|
|
61
|
-
|
|
67
|
+
for (const item of [...diagnosis.diagnostics, ...installAssets.assets.filter(asset => asset.state !== "ok").map(asset => ({
|
|
68
|
+
code: asset.state.toUpperCase().replace(/-/g, "_"),
|
|
69
|
+
path: asset.realPath !== null && asset.realPath !== asset.declaredPath ? `${asset.declaredPath} -> ${asset.realPath}` : asset.declaredPath,
|
|
70
|
+
remediation: asset.remediation,
|
|
71
|
+
cause: asset.cause,
|
|
72
|
+
packageVersion: asset.packageVersion,
|
|
73
|
+
recordedVersion: asset.recordedVersion,
|
|
74
|
+
digestMatch: asset.digestMatch,
|
|
75
|
+
}))]) {
|
|
76
|
+
const provenance = "packageVersion" in item && "recordedVersion" in item && "digestMatch" in item
|
|
77
|
+
? ` packageVersion=${item.packageVersion ?? "unknown"} recordedVersion=${item.recordedVersion ?? "unknown"} digestMatch=${item.digestMatch ?? "unknown"}`
|
|
78
|
+
: "";
|
|
79
|
+
console.log(` [${item.code}]${item.path === undefined ? "" : ` ${item.path}`}${"cause" in item && item.cause !== null ? ` (${item.cause})` : ""}${provenance} — ${item.remediation}`);
|
|
62
80
|
}
|
|
63
81
|
console.log("");
|
|
64
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-lint.js","sourceRoot":"","sources":["../../src/cli/doctor-lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"doctor-lint.js","sourceRoot":"","sources":["../../src/cli/doctor-lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
* which owns dispatch alone.
|
|
8
8
|
*/
|
|
9
9
|
import { type RuntimeSelection } from "../kernel/install/hosts.js";
|
|
10
|
+
import { isOmsHookEntry } from "../vendors/claude/claude.js";
|
|
11
|
+
import { isCodexOmsRegistration } from "../vendors/codex/codex.js";
|
|
12
|
+
import { isHermesOmsRegistration } from "../vendors/hermes/hermes.js";
|
|
13
|
+
export { isCodexOmsRegistration, isHermesOmsRegistration, isOmsHookEntry };
|
|
10
14
|
/** Everything the host commands need from the parsed argv, plus the adapter root. */
|
|
11
15
|
export interface HostCommandContext {
|
|
12
16
|
readonly vault: string;
|
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
import { formatHostOperationResults, formatHostOperationResultsJson, runHostOperation, hostSurfaceForRuntime, } from "../kernel/install/hosts.js";
|
|
10
10
|
import { HostVaultPointerError, canonicalHostVault, deleteHostVaultPointer, readHostVaultPointer, readHostVaultPointerForRepair, writeHostVaultPointer, } from "../kernel/install/pointer.js";
|
|
11
11
|
import { formatUpdateResult, runUpdate } from "../kernel/update/update.js";
|
|
12
|
-
import { installClaude, uninstallClaude } from "../vendors/claude/claude.js";
|
|
13
|
-
import { installCodex, uninstallCodex } from "../vendors/codex/codex.js";
|
|
14
|
-
import { installHermes, uninstallHermes } from "../vendors/hermes/hermes.js";
|
|
12
|
+
import { installClaude, isOmsHookEntry, uninstallClaude } from "../vendors/claude/claude.js";
|
|
13
|
+
import { installCodex, isCodexOmsRegistration, uninstallCodex } from "../vendors/codex/codex.js";
|
|
14
|
+
import { installHermes, isHermesOmsRegistration, uninstallHermes } from "../vendors/hermes/hermes.js";
|
|
15
15
|
import { readCurrentPackageVersion } from "./update-notice.js";
|
|
16
|
+
export { isCodexOmsRegistration, isHermesOmsRegistration, isOmsHookEntry };
|
|
16
17
|
async function runVendorHostOperation(options, runtime) {
|
|
17
18
|
const host = hostSurfaceForRuntime(runtime);
|
|
18
19
|
if (options.action === "install") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-commands.js","sourceRoot":"","sources":["../../src/cli/host-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,GAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"host-commands.js","sourceRoot":"","sources":["../../src/cli/host-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { InstalledAssetDeclaration, InstalledHostDeclaration } from "../kernel/install/asset-health.js";
|
|
2
|
+
export declare function discoverHostInstallAssets(): Promise<{
|
|
3
|
+
readonly hosts: readonly InstalledHostDeclaration[];
|
|
4
|
+
readonly assets: readonly InstalledAssetDeclaration[];
|
|
5
|
+
}>;
|