oh-my-second-brain 0.1.8 → 0.2.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/CHANGELOG.md +89 -0
- package/README.ko.md +127 -0
- package/README.md +128 -0
- package/adapters/README.md +8 -8
- package/adapters/claude-code/.claude-plugin/plugin.json +3 -2
- package/adapters/claude-code/.mcp.json +8 -0
- package/adapters/claude-code/CLAUDE.md +5 -6
- package/adapters/claude-code/skills/compile/SKILL.md +10 -35
- package/adapters/claude-code/skills/distill/SKILL.md +6 -26
- package/adapters/claude-code/skills/link/SKILL.md +87 -0
- package/adapters/claude-code/skills/retrieve/SKILL.md +4 -7
- package/adapters/claude-code/skills/setup/SKILL.md +5 -6
- package/adapters/claude-code/skills/uninstall/SKILL.md +1 -1
- package/adapters/claude-code/skills/wiki/SKILL.md +49 -24
- package/adapters/claude-code/skills/write/SKILL.md +16 -0
- package/adapters/codex/.codex-plugin/plugin.json +1 -1
- package/adapters/codex/AGENTS.md +2 -2
- package/adapters/codex/rules/oms.md +1 -1
- package/adapters/codex/skills/oms-compile/SKILL.md +7 -9
- package/adapters/codex/skills/oms-distill/SKILL.md +4 -9
- package/adapters/codex/skills/oms-link/SKILL.md +35 -0
- package/adapters/codex/skills/oms-retrieve/SKILL.md +5 -6
- package/adapters/codex/skills/oms-wiki/SKILL.md +28 -8
- package/adapters/codex/skills/oms-write/SKILL.md +10 -0
- package/adapters/hermes/README.md +3 -1
- package/adapters/hermes/SOUL.md +2 -3
- package/adapters/hermes/manifest.json +1 -1
- package/adapters/hermes/skills/compile/SKILL.md +5 -7
- package/adapters/hermes/skills/distill/SKILL.md +1 -3
- package/adapters/hermes/skills/link/SKILL.md +18 -0
- package/adapters/hermes/skills/retrieve/SKILL.md +5 -6
- package/adapters/hermes/skills/setup/SKILL.md +5 -2
- package/adapters/hermes/skills/wiki/SKILL.md +4 -2
- package/adapters/hermes/skills/write/SKILL.md +10 -0
- package/core/AGENTS.md +4 -2
- package/core/agents/librarian.md +3 -2
- package/core/ontology/concepts/term.yaml +12 -0
- package/core/ontology/taxonomy.yaml +3 -0
- package/core/skills/compile/SKILL.md +19 -18
- package/core/skills/distill/SKILL.md +13 -24
- package/core/skills/link/SKILL.md +130 -0
- package/core/skills/retrieve/SKILL.md +0 -1
- package/core/skills/setup/SKILL.md +12 -14
- package/core/skills/vault-lint/SKILL.md +1 -1
- package/core/skills/wiki/SKILL.md +109 -30
- package/core/skills/write/SKILL.md +15 -0
- package/dist/capture/safe.d.ts +61 -1
- package/dist/capture/safe.js +489 -66
- package/dist/capture/safe.js.map +1 -1
- package/dist/cli/args.d.ts +29 -0
- package/dist/cli/args.js +156 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/audit.d.ts +6 -0
- package/dist/cli/audit.js +93 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/claude-install-plan.d.ts +10 -0
- package/dist/cli/claude-install-plan.js +26 -0
- package/dist/cli/claude-install-plan.js.map +1 -0
- package/dist/cli/doctor-lint.d.ts +11 -0
- package/dist/cli/doctor-lint.js +86 -0
- package/dist/cli/doctor-lint.js.map +1 -0
- package/dist/cli/global-writeback.d.ts +31 -0
- package/dist/cli/global-writeback.js +73 -0
- package/dist/cli/global-writeback.js.map +1 -0
- package/dist/cli/host-commands.d.ts +30 -0
- package/dist/cli/host-commands.js +89 -0
- package/dist/cli/host-commands.js.map +1 -0
- package/dist/cli/link-command.d.ts +9 -0
- package/dist/cli/link-command.js +47 -0
- package/dist/cli/link-command.js.map +1 -0
- package/dist/cli/linkify.d.ts +23 -0
- package/dist/cli/linkify.js +118 -0
- package/dist/cli/linkify.js.map +1 -0
- package/dist/cli/oms.d.ts +8 -32
- package/dist/cli/oms.js +100 -703
- package/dist/cli/oms.js.map +1 -1
- package/dist/cli/semantic-args.d.ts +1 -2
- package/dist/cli/semantic-args.js +4 -7
- package/dist/cli/semantic-args.js.map +1 -1
- package/dist/cli/semantic-http.d.ts +0 -3
- package/dist/cli/semantic-http.js +40 -45
- package/dist/cli/semantic-http.js.map +1 -1
- package/dist/cli/semantic-usage.js +10 -9
- package/dist/cli/semantic-usage.js.map +1 -1
- package/dist/cli/semantic.js +99 -137
- package/dist/cli/semantic.js.map +1 -1
- package/dist/cli/setup-command.d.ts +11 -0
- package/dist/cli/setup-command.js +196 -0
- package/dist/cli/setup-command.js.map +1 -0
- package/dist/cli/setup-documents.d.ts +15 -0
- package/dist/cli/setup-documents.js +149 -0
- package/dist/cli/setup-documents.js.map +1 -0
- package/dist/cli/update-notice.d.ts +10 -0
- package/dist/cli/update-notice.js +42 -0
- package/dist/cli/update-notice.js.map +1 -0
- package/dist/cli/usage.d.ts +4 -0
- package/dist/cli/usage.js +102 -0
- package/dist/cli/usage.js.map +1 -0
- package/dist/conventions/lint.js +12 -33
- package/dist/conventions/lint.js.map +1 -1
- package/dist/conventions/report.d.ts +62 -0
- package/dist/conventions/report.js +217 -0
- package/dist/conventions/report.js.map +1 -0
- package/dist/conventions/validate.d.ts +1 -1
- package/dist/conventions/vault-walk.d.ts +38 -0
- package/dist/conventions/vault-walk.js +80 -0
- package/dist/conventions/vault-walk.js.map +1 -0
- package/dist/conventions/write-contract.d.ts +27 -0
- package/dist/conventions/write-contract.js +91 -0
- package/dist/conventions/write-contract.js.map +1 -0
- package/dist/conventions/write-protocol.d.ts +39 -0
- package/dist/conventions/write-protocol.js +44 -0
- package/dist/conventions/write-protocol.js.map +1 -0
- package/dist/core/ontology/loader.d.ts +2 -0
- package/dist/{ontology → core/ontology}/loader.js +11 -20
- package/dist/core/ontology/loader.js.map +1 -0
- package/dist/core/ontology/resolver.d.ts +2 -0
- package/dist/{ontology → core/ontology}/resolver.js +1 -15
- package/dist/core/ontology/resolver.js.map +1 -0
- package/dist/core/ontology/types.d.ts +47 -0
- package/dist/core/ontology/types.js +2 -0
- package/dist/core/ontology/types.js.map +1 -0
- package/dist/core/runtime/assets.d.ts +20 -0
- package/dist/core/runtime/assets.js +66 -0
- package/dist/core/runtime/assets.js.map +1 -0
- package/dist/engine/assemble.d.ts +28 -72
- package/dist/engine/assemble.js +77 -61
- package/dist/engine/assemble.js.map +1 -1
- package/dist/engine/conventions/vault-lint.d.ts +30 -2
- package/dist/engine/conventions/vault-lint.js +93 -97
- package/dist/engine/conventions/vault-lint.js.map +1 -1
- package/dist/engine/embed/deferred.d.ts +3 -4
- package/dist/engine/embed/deferred.js +10 -7
- package/dist/engine/embed/deferred.js.map +1 -1
- package/dist/engine/embed/identity.d.ts +11 -0
- package/dist/engine/embed/identity.js +15 -0
- package/dist/engine/embed/identity.js.map +1 -0
- package/dist/engine/embed/provider.d.ts +12 -13
- package/dist/engine/embed/provider.js +30 -27
- package/dist/engine/embed/provider.js.map +1 -1
- package/dist/engine/embed/store.d.ts +48 -27
- package/dist/engine/embed/store.js +281 -98
- package/dist/engine/embed/store.js.map +1 -1
- package/dist/engine/embed/sync.d.ts +17 -47
- package/dist/engine/embed/sync.js +233 -69
- package/dist/engine/embed/sync.js.map +1 -1
- package/dist/engine/graph/builder.d.ts +1 -1
- package/dist/engine/graph/builder.js +1 -1
- package/dist/engine/graph/explore.d.ts +2 -2
- package/dist/engine/graph/explore.js +0 -0
- package/dist/engine/graph/resolver.d.ts +17 -0
- package/dist/engine/graph/resolver.js +46 -11
- package/dist/engine/graph/resolver.js.map +1 -1
- package/dist/engine/linkify/apply.d.ts +56 -0
- package/dist/engine/linkify/apply.js +65 -0
- package/dist/engine/linkify/apply.js.map +1 -0
- package/dist/engine/linkify/josa.d.ts +58 -0
- package/dist/engine/linkify/josa.js +133 -0
- package/dist/engine/linkify/josa.js.map +1 -0
- package/dist/engine/linkify/mask.d.ts +29 -0
- package/dist/engine/linkify/mask.js +173 -0
- package/dist/engine/linkify/mask.js.map +1 -0
- package/dist/engine/linkify/suggest.d.ts +52 -0
- package/dist/engine/linkify/suggest.js +181 -0
- package/dist/engine/linkify/suggest.js.map +1 -0
- package/dist/engine/linkify/types.d.ts +68 -0
- package/dist/engine/linkify/types.js +12 -0
- package/dist/engine/linkify/types.js.map +1 -0
- package/dist/engine/mcp/facade.d.ts +12 -18
- package/dist/engine/mcp/facade.js +30 -80
- package/dist/engine/mcp/facade.js.map +1 -1
- package/dist/engine/mcp/op-mappers.d.ts +3 -9
- package/dist/engine/mcp/op-mappers.js +2 -30
- package/dist/engine/mcp/op-mappers.js.map +1 -1
- package/dist/engine/mcp/types.d.ts +5 -29
- package/dist/engine/tracer.js +6 -2
- package/dist/engine/tracer.js.map +1 -1
- package/dist/engine/types.d.ts +8 -3
- package/dist/graph/cache.d.ts +1 -11
- package/dist/graph/cache.js +1 -44
- package/dist/graph/cache.js.map +1 -1
- package/dist/graph/explore.js +88 -137
- package/dist/graph/explore.js.map +1 -1
- package/dist/harness/surface-registry.d.ts +56 -0
- package/dist/harness/surface-registry.js +397 -0
- package/dist/harness/surface-registry.js.map +1 -0
- package/dist/harness/validation.d.ts +9 -0
- package/dist/harness/validation.js +201 -0
- package/dist/harness/validation.js.map +1 -0
- package/dist/hook/post-tool-use.js +2 -2
- package/dist/hook/post-tool-use.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/install/adapter-source.d.ts +14 -0
- package/dist/install/adapter-source.js +45 -0
- package/dist/install/adapter-source.js.map +1 -0
- package/dist/install/claude-hooks.d.ts +13 -0
- package/dist/install/claude-hooks.js +411 -0
- package/dist/install/claude-hooks.js.map +1 -0
- package/dist/install/claude-marketplace.d.ts +44 -0
- package/dist/install/claude-marketplace.js +89 -0
- package/dist/install/claude-marketplace.js.map +1 -0
- package/dist/install/claude.d.ts +4 -0
- package/dist/install/claude.js +216 -0
- package/dist/install/claude.js.map +1 -0
- package/dist/install/codex.d.ts +24 -0
- package/dist/install/codex.js +193 -0
- package/dist/install/codex.js.map +1 -0
- package/dist/install/common.d.ts +34 -0
- package/dist/install/common.js +122 -0
- package/dist/install/common.js.map +1 -0
- package/dist/install/hermes.d.ts +4 -0
- package/dist/install/hermes.js +78 -0
- package/dist/install/hermes.js.map +1 -0
- package/dist/install/hosts.d.ts +6 -56
- package/dist/install/hosts.js +65 -610
- package/dist/install/hosts.js.map +1 -1
- package/dist/install/types.d.ts +34 -0
- package/dist/install/types.js +2 -0
- package/dist/install/types.js.map +1 -0
- package/dist/link/convention-note.d.ts +10 -0
- package/dist/link/convention-note.js +59 -0
- package/dist/link/convention-note.js.map +1 -0
- package/dist/link/global-config.d.ts +22 -0
- package/dist/link/global-config.js +69 -0
- package/dist/link/global-config.js.map +1 -0
- package/dist/link/link.d.ts +101 -0
- package/dist/link/link.js +265 -0
- package/dist/link/link.js.map +1 -0
- package/dist/mcp/engine-morning-backend.d.ts +12 -17
- package/dist/mcp/engine-morning-backend.js +25 -131
- package/dist/mcp/engine-morning-backend.js.map +1 -1
- package/dist/mcp/link-tools.d.ts +81 -0
- package/dist/mcp/link-tools.js +157 -0
- package/dist/mcp/link-tools.js.map +1 -0
- package/dist/mcp/semantic-engine.d.ts +32 -0
- package/dist/mcp/semantic-engine.js +52 -0
- package/dist/mcp/semantic-engine.js.map +1 -0
- package/dist/mcp/semantic-retrieve-args.d.ts +1 -5
- package/dist/mcp/semantic-retrieve-args.js +1 -26
- package/dist/mcp/semantic-retrieve-args.js.map +1 -1
- package/dist/mcp/semantic-retrieve-schema.d.ts +0 -14
- package/dist/mcp/semantic-retrieve-schema.js +0 -5
- package/dist/mcp/semantic-retrieve-schema.js.map +1 -1
- package/dist/mcp/semantic-retrieve.d.ts +12 -18
- package/dist/mcp/semantic-retrieve.js +40 -71
- package/dist/mcp/semantic-retrieve.js.map +1 -1
- package/dist/mcp/semantic-tool-schemas.js +7 -24
- package/dist/mcp/semantic-tool-schemas.js.map +1 -1
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.js +224 -162
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/update-notice.d.ts +51 -0
- package/dist/mcp/update-notice.js +196 -0
- package/dist/mcp/update-notice.js.map +1 -0
- package/dist/ontology/active.d.ts +7 -0
- package/dist/ontology/active.js +41 -0
- package/dist/ontology/active.js.map +1 -0
- package/dist/retrieve/morning.d.ts +10 -18
- package/dist/retrieve/morning.js +2 -26
- package/dist/retrieve/morning.js.map +1 -1
- package/dist/retrieve/semantic-contract.d.ts +10 -0
- package/dist/retrieve/semantic-contract.js +2 -0
- package/dist/retrieve/semantic-contract.js.map +1 -0
- package/dist/setup/axis.d.ts +22 -3
- package/dist/setup/axis.js +82 -35
- package/dist/setup/axis.js.map +1 -1
- package/dist/update/update.d.ts +12 -0
- package/dist/update/update.js +2 -2
- package/dist/update/update.js.map +1 -1
- package/docs/install.md +43 -7
- package/docs/release.md +109 -17
- package/package.json +11 -3
- package/scripts/install.sh +1 -1
- package/adapters/claude-code/skills/capture/SKILL.md +0 -50
- package/adapters/codex/skills/oms-capture/SKILL.md +0 -16
- package/adapters/hermes/skills/capture/SKILL.md +0 -16
- package/core/skills/capture/SKILL.md +0 -50
- package/dist/adapt/HostAdapter.d.ts +0 -21
- package/dist/adapt/HostAdapter.js +0 -10
- package/dist/adapt/HostAdapter.js.map +0 -1
- package/dist/adapt/claudeCode.d.ts +0 -9
- package/dist/adapt/claudeCode.js +0 -15
- package/dist/adapt/claudeCode.js.map +0 -1
- package/dist/adapt/codex.d.ts +0 -9
- package/dist/adapt/codex.js +0 -15
- package/dist/adapt/codex.js.map +0 -1
- package/dist/adapt/hermes.d.ts +0 -9
- package/dist/adapt/hermes.js +0 -15
- package/dist/adapt/hermes.js.map +0 -1
- package/dist/cli/semantic-metadata-commands.d.ts +0 -3
- package/dist/cli/semantic-metadata-commands.js +0 -115
- package/dist/cli/semantic-metadata-commands.js.map +0 -1
- package/dist/engine/compile/cascade.d.ts +0 -35
- package/dist/engine/compile/cascade.js +0 -59
- package/dist/engine/compile/cascade.js.map +0 -1
- package/dist/engine/compile/cot.d.ts +0 -30
- package/dist/engine/compile/cot.js +0 -153
- package/dist/engine/compile/cot.js.map +0 -1
- package/dist/engine/compile/phases.d.ts +0 -47
- package/dist/engine/compile/phases.js +0 -101
- package/dist/engine/compile/phases.js.map +0 -1
- package/dist/engine/compile/provenance.d.ts +0 -45
- package/dist/engine/compile/provenance.js +0 -103
- package/dist/engine/compile/provenance.js.map +0 -1
- package/dist/engine/compile/sha-cache.d.ts +0 -42
- package/dist/engine/compile/sha-cache.js +0 -86
- package/dist/engine/compile/sha-cache.js.map +0 -1
- package/dist/engine/compile/types.d.ts +0 -71
- package/dist/engine/compile/types.js +0 -9
- package/dist/engine/compile/types.js.map +0 -1
- package/dist/engine/compile/worker.d.ts +0 -47
- package/dist/engine/compile/worker.js +0 -75
- package/dist/engine/compile/worker.js.map +0 -1
- package/dist/engine/distill/analyzer.d.ts +0 -51
- package/dist/engine/distill/analyzer.js +0 -279
- package/dist/engine/distill/analyzer.js.map +0 -1
- package/dist/engine/distill/clean-room.d.ts +0 -46
- package/dist/engine/distill/clean-room.js +0 -131
- package/dist/engine/distill/clean-room.js.map +0 -1
- package/dist/engine/distill/report.d.ts +0 -23
- package/dist/engine/distill/report.js +0 -107
- package/dist/engine/distill/report.js.map +0 -1
- package/dist/engine/distill/types.d.ts +0 -89
- package/dist/engine/distill/types.js +0 -9
- package/dist/engine/distill/types.js.map +0 -1
- package/dist/engine/embed/pull.d.ts +0 -51
- package/dist/engine/embed/pull.js +0 -90
- package/dist/engine/embed/pull.js.map +0 -1
- package/dist/engine/graph/community.d.ts +0 -38
- package/dist/engine/graph/community.js +0 -122
- package/dist/engine/graph/community.js.map +0 -1
- package/dist/engine/index.d.ts +0 -5
- package/dist/engine/index.js +0 -2
- package/dist/engine/index.js.map +0 -1
- package/dist/engine/mcp/index.d.ts +0 -15
- package/dist/engine/mcp/index.js +0 -19
- package/dist/engine/mcp/index.js.map +0 -1
- package/dist/engine/mcp/retrieve-mapper.d.ts +0 -38
- package/dist/engine/mcp/retrieve-mapper.js +0 -96
- package/dist/engine/mcp/retrieve-mapper.js.map +0 -1
- package/dist/engine/setup/ambiguity.d.ts +0 -39
- package/dist/engine/setup/ambiguity.js +0 -50
- package/dist/engine/setup/ambiguity.js.map +0 -1
- package/dist/engine/setup/types.d.ts +0 -71
- package/dist/engine/setup/types.js +0 -22
- package/dist/engine/setup/types.js.map +0 -1
- package/dist/engine/setup/writer.d.ts +0 -32
- package/dist/engine/setup/writer.js +0 -77
- package/dist/engine/setup/writer.js.map +0 -1
- package/dist/engine/wiki/collection.d.ts +0 -91
- package/dist/engine/wiki/collection.js +0 -188
- package/dist/engine/wiki/collection.js.map +0 -1
- package/dist/engine/wiki/ledger.d.ts +0 -59
- package/dist/engine/wiki/ledger.js +0 -130
- package/dist/engine/wiki/ledger.js.map +0 -1
- package/dist/engine/wiki/lint.d.ts +0 -38
- package/dist/engine/wiki/lint.js +0 -186
- package/dist/engine/wiki/lint.js.map +0 -1
- package/dist/engine/wiki/navigation.d.ts +0 -40
- package/dist/engine/wiki/navigation.js +0 -83
- package/dist/engine/wiki/navigation.js.map +0 -1
- package/dist/engine/wiki/types.d.ts +0 -54
- package/dist/engine/wiki/types.js +0 -7
- package/dist/engine/wiki/types.js.map +0 -1
- package/dist/ontology/loader.d.ts +0 -13
- package/dist/ontology/loader.js.map +0 -1
- package/dist/ontology/resolver.d.ts +0 -13
- package/dist/ontology/resolver.js.map +0 -1
- package/dist/ontology/types.d.ts +0 -72
- package/dist/ontology/types.js +0 -12
- package/dist/ontology/types.js.map +0 -1
- package/dist/retrieve/embedding-sync.d.ts +0 -3
- package/dist/retrieve/embedding-sync.js +0 -21
- package/dist/retrieve/embedding-sync.js.map +0 -1
- package/dist/runtime/assets.d.ts +0 -7
- package/dist/runtime/assets.js +0 -13
- package/dist/runtime/assets.js.map +0 -1
- package/dist/search/semantic-collections.d.ts +0 -32
- package/dist/search/semantic-collections.js +0 -68
- package/dist/search/semantic-collections.js.map +0 -1
- package/dist/search/semantic-contexts.d.ts +0 -21
- package/dist/search/semantic-contexts.js +0 -28
- package/dist/search/semantic-contexts.js.map +0 -1
- package/dist/search/semantic-diagnostics.d.ts +0 -16
- package/dist/search/semantic-diagnostics.js +0 -110
- package/dist/search/semantic-diagnostics.js.map +0 -1
- package/dist/search/semantic-documents.d.ts +0 -3
- package/dist/search/semantic-documents.js +0 -150
- package/dist/search/semantic-documents.js.map +0 -1
- package/dist/search/semantic-embedding-hash.d.ts +0 -3
- package/dist/search/semantic-embedding-hash.js +0 -30
- package/dist/search/semantic-embedding-hash.js.map +0 -1
- package/dist/search/semantic-embedding-provider.d.ts +0 -9
- package/dist/search/semantic-embedding-provider.js +0 -58
- package/dist/search/semantic-embedding-provider.js.map +0 -1
- package/dist/search/semantic-index-build.d.ts +0 -13
- package/dist/search/semantic-index-build.js +0 -101
- package/dist/search/semantic-index-build.js.map +0 -1
- package/dist/search/semantic-index-core.d.ts +0 -21
- package/dist/search/semantic-index-core.js +0 -106
- package/dist/search/semantic-index-core.js.map +0 -1
- package/dist/search/semantic-index-io.d.ts +0 -19
- package/dist/search/semantic-index-io.js +0 -214
- package/dist/search/semantic-index-io.js.map +0 -1
- package/dist/search/semantic-index-types.d.ts +0 -50
- package/dist/search/semantic-index-types.js +0 -2
- package/dist/search/semantic-index-types.js.map +0 -1
- package/dist/search/semantic-index.d.ts +0 -4
- package/dist/search/semantic-index.js +0 -4
- package/dist/search/semantic-index.js.map +0 -1
- package/dist/search/semantic-listing.d.ts +0 -12
- package/dist/search/semantic-listing.js +0 -64
- package/dist/search/semantic-listing.js.map +0 -1
- package/dist/search/semantic-maintenance-shared.d.ts +0 -15
- package/dist/search/semantic-maintenance-shared.js +0 -43
- package/dist/search/semantic-maintenance-shared.js.map +0 -1
- package/dist/search/semantic-maintenance-types.d.ts +0 -103
- package/dist/search/semantic-maintenance-types.js +0 -2
- package/dist/search/semantic-maintenance-types.js.map +0 -1
- package/dist/search/semantic-maintenance.d.ts +0 -4
- package/dist/search/semantic-maintenance.js +0 -5
- package/dist/search/semantic-maintenance.js.map +0 -1
- package/dist/search/semantic-provider-types.d.ts +0 -34
- package/dist/search/semantic-provider-types.js +0 -2
- package/dist/search/semantic-provider-types.js.map +0 -1
- package/dist/search/semantic-query-types.d.ts +0 -83
- package/dist/search/semantic-query-types.js +0 -2
- package/dist/search/semantic-query-types.js.map +0 -1
- package/dist/search/semantic-query.d.ts +0 -2
- package/dist/search/semantic-query.js +0 -188
- package/dist/search/semantic-query.js.map +0 -1
- package/dist/search/semantic-sqlite-db.d.ts +0 -18
- package/dist/search/semantic-sqlite-db.js +0 -87
- package/dist/search/semantic-sqlite-db.js.map +0 -1
- package/dist/search/semantic-sqlite-query.d.ts +0 -2
- package/dist/search/semantic-sqlite-query.js +0 -128
- package/dist/search/semantic-sqlite-query.js.map +0 -1
- package/dist/search/semantic-sqlite-read.d.ts +0 -5
- package/dist/search/semantic-sqlite-read.js +0 -104
- package/dist/search/semantic-sqlite-read.js.map +0 -1
- package/dist/search/semantic-sqlite-write.d.ts +0 -7
- package/dist/search/semantic-sqlite-write.js +0 -66
- package/dist/search/semantic-sqlite-write.js.map +0 -1
- package/dist/search/semantic-store.d.ts +0 -15
- package/dist/search/semantic-store.js +0 -17
- package/dist/search/semantic-store.js.map +0 -1
- package/dist/search/semantic-sync-types.d.ts +0 -47
- package/dist/search/semantic-sync-types.js +0 -2
- package/dist/search/semantic-sync-types.js.map +0 -1
- package/dist/search/semantic-sync.d.ts +0 -13
- package/dist/search/semantic-sync.js +0 -131
- package/dist/search/semantic-sync.js.map +0 -1
- package/dist/search/semantic-test-fixtures.d.ts +0 -1
- package/dist/search/semantic-test-fixtures.js +0 -38
- package/dist/search/semantic-test-fixtures.js.map +0 -1
- package/dist/search/semantic-token.d.ts +0 -25
- package/dist/search/semantic-token.js +0 -114
- package/dist/search/semantic-token.js.map +0 -1
- package/dist/search/semantic-types.d.ts +0 -5
- package/dist/search/semantic-types.js +0 -2
- package/dist/search/semantic-types.js.map +0 -1
- package/dist/search/semantic.d.ts +0 -6
- package/dist/search/semantic.js +0 -6
- package/dist/search/semantic.js.map +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-lifecycle CLI commands: `install`, `uninstall`, `update`, and the
|
|
3
|
+
* internal `update-reconcile`.
|
|
4
|
+
*
|
|
5
|
+
* These four are the only commands that mutate host adapter state (and, for
|
|
6
|
+
* install, the global vault record), so they live together and away from the
|
|
7
|
+
* router, which owns dispatch alone.
|
|
8
|
+
*/
|
|
9
|
+
import { type RuntimeSelection } from "../install/hosts.js";
|
|
10
|
+
/** Everything the host commands need from the parsed argv, plus the adapter root. */
|
|
11
|
+
export interface HostCommandContext {
|
|
12
|
+
readonly vault: string;
|
|
13
|
+
readonly vaultExplicit: boolean;
|
|
14
|
+
readonly runtime: RuntimeSelection | undefined;
|
|
15
|
+
readonly agentVault: string | undefined;
|
|
16
|
+
readonly dryRun: boolean;
|
|
17
|
+
readonly executeExternal: boolean;
|
|
18
|
+
readonly yes: boolean;
|
|
19
|
+
readonly json: boolean;
|
|
20
|
+
readonly checkUpdate: boolean;
|
|
21
|
+
readonly timeoutMs: number | undefined;
|
|
22
|
+
readonly unknownFlags: readonly string[];
|
|
23
|
+
readonly adapterRoot: string;
|
|
24
|
+
}
|
|
25
|
+
/** `oms install` / `oms uninstall`. Returns the process exit code. */
|
|
26
|
+
export declare function runInstallOrUninstall(action: "install" | "uninstall", context: HostCommandContext): Promise<number>;
|
|
27
|
+
/** `oms update`. Returns the process exit code. */
|
|
28
|
+
export declare function runUpdateCommand(context: HostCommandContext): Promise<number>;
|
|
29
|
+
/** `oms update-reconcile` — internal; re-runs install after a package update. */
|
|
30
|
+
export declare function runUpdateReconcile(context: HostCommandContext): Promise<number>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-lifecycle CLI commands: `install`, `uninstall`, `update`, and the
|
|
3
|
+
* internal `update-reconcile`.
|
|
4
|
+
*
|
|
5
|
+
* These four are the only commands that mutate host adapter state (and, for
|
|
6
|
+
* install, the global vault record), so they live together and away from the
|
|
7
|
+
* router, which owns dispatch alone.
|
|
8
|
+
*/
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import { formatHostOperationResults, formatHostOperationResultsJson, runHostOperation, } from "../install/hosts.js";
|
|
11
|
+
import { formatUpdateResult, runUpdate } from "../update/update.js";
|
|
12
|
+
import { backfillGlobalVaultFromEnv, nonFatalGlobalWriteback, registerGlobalVault, } from "./global-writeback.js";
|
|
13
|
+
import { readCurrentPackageVersion } from "./update-notice.js";
|
|
14
|
+
/** Persist the vault the install just configured into the global record. */
|
|
15
|
+
async function recordInstalledVault(context) {
|
|
16
|
+
if (context.vaultExplicit) {
|
|
17
|
+
await nonFatalGlobalWriteback(() => registerGlobalVault({ vault: path.resolve(context.vault), homeDir: undefined, overwrite: true }));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
await nonFatalGlobalWriteback(() => backfillGlobalVaultFromEnv({ env: process.env, homeDir: undefined }));
|
|
21
|
+
}
|
|
22
|
+
/** `oms install` / `oms uninstall`. Returns the process exit code. */
|
|
23
|
+
export async function runInstallOrUninstall(action, context) {
|
|
24
|
+
if (action === "uninstall" && !context.yes && !context.dryRun && process.env["OMS_NON_INTERACTIVE"] !== "1") {
|
|
25
|
+
console.error("[oms] Refusing uninstall without --yes or --dry-run.");
|
|
26
|
+
return 1;
|
|
27
|
+
}
|
|
28
|
+
const results = await runHostOperation({
|
|
29
|
+
action,
|
|
30
|
+
runtime: context.runtime ?? (action === "install" ? "auto" : "all"),
|
|
31
|
+
vault: context.vault,
|
|
32
|
+
agentVault: context.agentVault,
|
|
33
|
+
dryRun: context.dryRun,
|
|
34
|
+
executeExternal: context.executeExternal,
|
|
35
|
+
yes: context.yes,
|
|
36
|
+
adapterRoot: context.adapterRoot,
|
|
37
|
+
});
|
|
38
|
+
console.log(context.json
|
|
39
|
+
? formatHostOperationResultsJson(results, context.dryRun)
|
|
40
|
+
: formatHostOperationResults(results, context.dryRun));
|
|
41
|
+
if (action === "install" && !context.dryRun)
|
|
42
|
+
await recordInstalledVault(context);
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
/** `oms update`. Returns the process exit code. */
|
|
46
|
+
export async function runUpdateCommand(context) {
|
|
47
|
+
if (context.unknownFlags.length > 0) {
|
|
48
|
+
console.error(`[oms] Unsupported update option: ${context.unknownFlags.join(", ")}`);
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
const result = await runUpdate({
|
|
52
|
+
currentVersion: await readCurrentPackageVersion(),
|
|
53
|
+
latestVersion: process.env["OMS_UPDATE_LATEST_VERSION"],
|
|
54
|
+
runtime: context.runtime ?? "all",
|
|
55
|
+
vault: context.vault,
|
|
56
|
+
check: context.checkUpdate,
|
|
57
|
+
dryRun: context.dryRun,
|
|
58
|
+
yes: context.yes,
|
|
59
|
+
executeExternal: context.executeExternal,
|
|
60
|
+
timeoutMs: context.timeoutMs,
|
|
61
|
+
reconcileCommand: {
|
|
62
|
+
command: process.execPath,
|
|
63
|
+
argsPrefix: process.argv[1] === undefined ? [] : [process.argv[1]],
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
console.log(formatUpdateResult(result));
|
|
67
|
+
return result.success ? 0 : 1;
|
|
68
|
+
}
|
|
69
|
+
/** `oms update-reconcile` — internal; re-runs install after a package update. */
|
|
70
|
+
export async function runUpdateReconcile(context) {
|
|
71
|
+
if (process.env["OMS_UPDATE_RECONCILE"] !== "1" && !context.dryRun) {
|
|
72
|
+
console.error("[oms] update-reconcile is internal; run `oms update --yes` instead.");
|
|
73
|
+
return 1;
|
|
74
|
+
}
|
|
75
|
+
const results = await runHostOperation({
|
|
76
|
+
action: "install",
|
|
77
|
+
runtime: context.runtime ?? "all",
|
|
78
|
+
vault: context.vault,
|
|
79
|
+
dryRun: context.dryRun,
|
|
80
|
+
executeExternal: context.executeExternal,
|
|
81
|
+
yes: true,
|
|
82
|
+
adapterRoot: context.adapterRoot,
|
|
83
|
+
});
|
|
84
|
+
console.log(context.json
|
|
85
|
+
? formatHostOperationResultsJson(results, context.dryRun)
|
|
86
|
+
: formatHostOperationResults(results, context.dryRun));
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=host-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-commands.js","sourceRoot":"","sources":["../../src/cli/host-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type CreateVaultLinkResult } from "../link/link.js";
|
|
2
|
+
export declare function formatLinkResult(result: CreateVaultLinkResult, conventionNotePath?: string): string;
|
|
3
|
+
export declare function runLink(options: {
|
|
4
|
+
readonly cwd: string;
|
|
5
|
+
readonly vault: string;
|
|
6
|
+
readonly vaultExplicit: boolean;
|
|
7
|
+
readonly folders: readonly string[];
|
|
8
|
+
readonly conventionNote?: boolean;
|
|
9
|
+
}): Promise<number>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createVaultLink, LINKED_GITIGNORE_PATTERN, } from "../link/link.js";
|
|
2
|
+
import { writeConventionUsageSection } from "../link/convention-note.js";
|
|
3
|
+
export function formatLinkResult(result, conventionNotePath) {
|
|
4
|
+
const lines = ["Oh My Second Brain vault bridge ready."];
|
|
5
|
+
lines.push(` Vault: ${result.record.vault}`);
|
|
6
|
+
lines.push(` Scope: ${result.record.scope.join(", ") || "(none)"}`);
|
|
7
|
+
if (result.linked.length > 0)
|
|
8
|
+
lines.push(` Linked: ${result.linked.join(", ")}`);
|
|
9
|
+
if (result.unchanged.length > 0)
|
|
10
|
+
lines.push(` Unchanged: ${result.unchanged.join(", ")}`);
|
|
11
|
+
lines.push(` Record: ${result.recordPath}`);
|
|
12
|
+
lines.push(result.gitignoreUpdated
|
|
13
|
+
? ` Gitignore: added ${LINKED_GITIGNORE_PATTERN}`
|
|
14
|
+
: ` Gitignore: ${LINKED_GITIGNORE_PATTERN} already present`);
|
|
15
|
+
if (conventionNotePath !== undefined) {
|
|
16
|
+
lines.push(` Convention: wrote ${conventionNotePath}`);
|
|
17
|
+
}
|
|
18
|
+
return lines.join("\n");
|
|
19
|
+
}
|
|
20
|
+
export async function runLink(options) {
|
|
21
|
+
if (!options.vaultExplicit) {
|
|
22
|
+
console.error("[oms] link requires --vault <path> (the Obsidian vault to bridge to).");
|
|
23
|
+
return 1;
|
|
24
|
+
}
|
|
25
|
+
if (options.folders.length === 0) {
|
|
26
|
+
console.error("[oms] link requires at least one --folder <name>.");
|
|
27
|
+
return 1;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const result = await createVaultLink({
|
|
31
|
+
cwd: options.cwd,
|
|
32
|
+
vault: options.vault,
|
|
33
|
+
folders: [...options.folders],
|
|
34
|
+
});
|
|
35
|
+
let conventionNotePath;
|
|
36
|
+
if (options.conventionNote !== false) {
|
|
37
|
+
conventionNotePath = (await writeConventionUsageSection(options.cwd, result.record.vault)).agentsPath;
|
|
38
|
+
}
|
|
39
|
+
console.log(formatLinkResult(result, conventionNotePath));
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error(`[oms] ${error instanceof Error ? error.message : String(error)}`);
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=link-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-command.js","sourceRoot":"","sources":["../../src/cli/link-command.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,gBAAgB,CAC9B,MAA6B,EAC7B,kBAA2B;IAE3B,MAAM,KAAK,GAAa,CAAC,wCAAwC,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,gBAAgB;QACrB,CAAC,CAAC,sBAAsB,wBAAwB,EAAE;QAClD,CAAC,CAAC,gBAAgB,wBAAwB,kBAAkB,CAC/D,CAAC;IACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,uBAAuB,kBAAkB,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAM7B;IACC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACvF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,kBAAsC,CAAC;QAC3C,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACrC,kBAAkB,GAAG,CAAC,MAAM,2BAA2B,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QACxG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `oms linkify` — batch retrofit of `[[wikilinks]]` over EXISTING vault notes.
|
|
3
|
+
*
|
|
4
|
+
* Report-only by default. Mutation requires BOTH `--apply` and `--yes`, checked
|
|
5
|
+
* before any note is read, so a half-typed command can never reach the disk.
|
|
6
|
+
*
|
|
7
|
+
* The command owns scope and reporting only: span detection stays in
|
|
8
|
+
* engine/linkify (pure), and every write goes through the capture kernel's
|
|
9
|
+
* `writeNote`, which keeps path safety, the concept contract, and the
|
|
10
|
+
* postcondition read-back unduplicated here.
|
|
11
|
+
*/
|
|
12
|
+
export interface LinkifyOptions {
|
|
13
|
+
readonly vault: string;
|
|
14
|
+
/** Restrict both scan and writes to one top-level vault folder. */
|
|
15
|
+
readonly folder?: string;
|
|
16
|
+
readonly apply: boolean;
|
|
17
|
+
readonly yes: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Scan (and optionally link) a vault, restricting link TARGETS to notes bound
|
|
21
|
+
* to the `term` concept.
|
|
22
|
+
*/
|
|
23
|
+
export declare function runLinkify(options: LinkifyOptions): Promise<number>;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `oms linkify` — batch retrofit of `[[wikilinks]]` over EXISTING vault notes.
|
|
3
|
+
*
|
|
4
|
+
* Report-only by default. Mutation requires BOTH `--apply` and `--yes`, checked
|
|
5
|
+
* before any note is read, so a half-typed command can never reach the disk.
|
|
6
|
+
*
|
|
7
|
+
* The command owns scope and reporting only: span detection stays in
|
|
8
|
+
* engine/linkify (pure), and every write goes through the capture kernel's
|
|
9
|
+
* `writeNote`, which keeps path safety, the concept contract, and the
|
|
10
|
+
* postcondition read-back unduplicated here.
|
|
11
|
+
*/
|
|
12
|
+
import { readFile } from "node:fs/promises";
|
|
13
|
+
import path from "node:path";
|
|
14
|
+
import { parseNote } from "../conventions/frontmatter.js";
|
|
15
|
+
import { mapWithConcurrency, walkVaultMarkdown } from "../conventions/vault-walk.js";
|
|
16
|
+
import { writeNote } from "../capture/safe.js";
|
|
17
|
+
import { resolveConcept } from "../core/ontology/resolver.js";
|
|
18
|
+
import { applyLinks, hashBody } from "../engine/linkify/apply.js";
|
|
19
|
+
import { suggestLinks, termBoundNotes } from "../engine/linkify/suggest.js";
|
|
20
|
+
import { validateVaultLintFolder } from "../engine/conventions/vault-lint.js";
|
|
21
|
+
import { resolveActiveOntology } from "../ontology/active.js";
|
|
22
|
+
/** Parallel note reads; the walk itself is cheap, contents are the hot cost. */
|
|
23
|
+
const READ_CONCURRENCY = 16;
|
|
24
|
+
/** Flatten an unknown frontmatter `aliases` value to trimmed non-empty strings. */
|
|
25
|
+
function aliasStrings(value) {
|
|
26
|
+
if (Array.isArray(value))
|
|
27
|
+
return value.flatMap(aliasStrings);
|
|
28
|
+
if (typeof value !== "string")
|
|
29
|
+
return [];
|
|
30
|
+
const trimmed = value.trim();
|
|
31
|
+
return trimmed ? [trimmed] : [];
|
|
32
|
+
}
|
|
33
|
+
/** Read every markdown note in the vault, parsed into body + surface forms. */
|
|
34
|
+
async function scanVault(vault, ontology) {
|
|
35
|
+
const paths = [];
|
|
36
|
+
for await (const notePath of walkVaultMarkdown(vault))
|
|
37
|
+
paths.push(notePath);
|
|
38
|
+
return mapWithConcurrency(paths, READ_CONCURRENCY, async (notePath) => {
|
|
39
|
+
const raw = await readFile(path.join(vault, notePath), "utf-8");
|
|
40
|
+
const parsed = parseNote(raw);
|
|
41
|
+
return {
|
|
42
|
+
path: notePath,
|
|
43
|
+
body: parsed.body,
|
|
44
|
+
concept: resolveConcept(ontology, notePath)?.concept ?? null,
|
|
45
|
+
aliases: aliasStrings(parsed.frontmatter["aliases"]),
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/** True when `notePath` sits inside `folder` (or when no scope was requested). */
|
|
50
|
+
function inScope(notePath, folder) {
|
|
51
|
+
return folder === undefined || notePath.startsWith(`${folder}/`);
|
|
52
|
+
}
|
|
53
|
+
function toTermNote(note) {
|
|
54
|
+
return { path: note.path, concept: note.concept, aliases: note.aliases };
|
|
55
|
+
}
|
|
56
|
+
function describeCandidate(candidate) {
|
|
57
|
+
const ambiguity = candidate.ambiguous ? ` (ambiguous: ${candidate.rivalPaths.join(", ")})` : "";
|
|
58
|
+
return ` ${candidate.matchedText} → ${candidate.renderedReplacement} [${candidate.targetPath}]${ambiguity}`;
|
|
59
|
+
}
|
|
60
|
+
/** Print one note's proposals; returns how many candidates it had. */
|
|
61
|
+
function reportNote(notePath, candidates) {
|
|
62
|
+
console.log(`\n ${notePath}`);
|
|
63
|
+
for (const candidate of candidates)
|
|
64
|
+
console.log(describeCandidate(candidate));
|
|
65
|
+
}
|
|
66
|
+
/** Persist one note's candidates through the capture kernel. */
|
|
67
|
+
async function applyNote(vault, ontology, note, candidates) {
|
|
68
|
+
const result = await applyLinks({
|
|
69
|
+
body: note.body,
|
|
70
|
+
baseContentHash: hashBody(note.body),
|
|
71
|
+
accepted: candidates,
|
|
72
|
+
writeNote,
|
|
73
|
+
target: { target: { vault, source: "explicit" }, ontology, notePath: note.path },
|
|
74
|
+
});
|
|
75
|
+
if (result.applied)
|
|
76
|
+
return true;
|
|
77
|
+
console.error(`[oms] linkify skipped ${note.path}: ${result.reason}`);
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Scan (and optionally link) a vault, restricting link TARGETS to notes bound
|
|
82
|
+
* to the `term` concept.
|
|
83
|
+
*/
|
|
84
|
+
export async function runLinkify(options) {
|
|
85
|
+
if (options.apply && !options.yes) {
|
|
86
|
+
console.error("[oms] linkify --apply rewrites notes in place; re-run with --yes to confirm. Nothing was written.");
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const { ontology } = await resolveActiveOntology(options.vault);
|
|
91
|
+
await validateVaultLintFolder(options.vault, ontology, options.folder);
|
|
92
|
+
const notes = await scanVault(options.vault, ontology);
|
|
93
|
+
const targets = termBoundNotes(notes.map(toTermNote));
|
|
94
|
+
const scoped = notes.filter((note) => inScope(note.path, options.folder));
|
|
95
|
+
console.log(`\nOh My Second Brain linkify: ${String(scoped.length)} note(s) in scope, ${String(targets.length)} term note(s) available as link targets.`);
|
|
96
|
+
let candidateCount = 0;
|
|
97
|
+
let appliedNotes = 0;
|
|
98
|
+
for (const note of scoped) {
|
|
99
|
+
const candidates = suggestLinks(note.body, targets, { notePath: note.path });
|
|
100
|
+
if (candidates.length === 0)
|
|
101
|
+
continue;
|
|
102
|
+
candidateCount += candidates.length;
|
|
103
|
+
reportNote(note.path, candidates);
|
|
104
|
+
if (options.apply && (await applyNote(options.vault, ontology, note, candidates))) {
|
|
105
|
+
appliedNotes++;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
console.log(options.apply
|
|
109
|
+
? `\n${String(candidateCount)} candidate(s); applied to ${String(appliedNotes)} note(s).\n`
|
|
110
|
+
: `\n${String(candidateCount)} candidate(s) proposed across ${String(scoped.length)} note(s). Report only — nothing was written. Re-run with --apply --yes to write.\n`);
|
|
111
|
+
return 0;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error(`[oms] linkify could not complete: ${error instanceof Error ? error.message : String(error)}`);
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=linkify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkify.js","sourceRoot":"","sources":["../../src/cli/linkify.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/oms.d.ts
CHANGED
|
@@ -1,33 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}): Promise<void>;
|
|
11
|
-
export interface SetupPrompt {
|
|
12
|
-
question(query: string): Promise<string>;
|
|
13
|
-
close(): void;
|
|
14
|
-
}
|
|
15
|
-
export interface ClaudeInstallPlan {
|
|
16
|
-
pluginPath: string;
|
|
17
|
-
pluginInstallCommand: string;
|
|
18
|
-
mcpRegistrationCommand: string;
|
|
19
|
-
mcpRuntimeStatus: "read-status-runtime";
|
|
20
|
-
}
|
|
21
|
-
export declare function buildClaudeInstallPlan(opts: {
|
|
22
|
-
vault: string;
|
|
23
|
-
}): ClaudeInstallPlan;
|
|
24
|
-
export declare function runSetup(opts: {
|
|
25
|
-
vault: string;
|
|
26
|
-
yes: boolean;
|
|
27
|
-
installClaude?: boolean;
|
|
28
|
-
suggestFields?: boolean;
|
|
29
|
-
prompt?: SetupPrompt;
|
|
30
|
-
}): Promise<void>;
|
|
31
|
-
export declare function runDoctor(opts: {
|
|
32
|
-
vault: string;
|
|
33
|
-
}): Promise<number>;
|
|
2
|
+
export { buildClaudeInstallPlan } from "./claude-install-plan.js";
|
|
3
|
+
export type { ClaudeInstallPlan } from "./claude-install-plan.js";
|
|
4
|
+
export { runDoctor, runLint } from "./doctor-lint.js";
|
|
5
|
+
export { runAudit } from "./audit.js";
|
|
6
|
+
export { formatLinkResult, runLink, } from "./link-command.js";
|
|
7
|
+
export { runLinkify } from "./linkify.js";
|
|
8
|
+
export { runSetup, type SetupPrompt, } from "./setup-command.js";
|
|
9
|
+
export { maybePrintUpdateNotice } from "./update-notice.js";
|