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
package/dist/cli/semantic.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { booleanOption, numberOption, parseSemanticArgs, printJson, semanticQueryOptions, semanticStorageOption, stringListOption, stringOption, targetList, } from "./semantic-args.js";
|
|
1
|
+
import { assembleSemanticEngine } from "../mcp/semantic-engine.js";
|
|
2
|
+
import { booleanOption, numberOption, parseSemanticArgs, printJson, semanticQueryOptions, stringOption, targetList, } from "./semantic-args.js";
|
|
4
3
|
import { startSemanticHttpServer } from "./semantic-http.js";
|
|
5
|
-
import { runCollectionCommand, runContextCommand } from "./semantic-metadata-commands.js";
|
|
6
4
|
import { semanticUsageText } from "./semantic-usage.js";
|
|
7
5
|
const TOP_LEVEL_COMMANDS = new Set([
|
|
8
6
|
"semantic",
|
|
@@ -15,12 +13,7 @@ const TOP_LEVEL_COMMANDS = new Set([
|
|
|
15
13
|
"embed",
|
|
16
14
|
"collection",
|
|
17
15
|
"context",
|
|
18
|
-
"ls",
|
|
19
|
-
"init",
|
|
20
16
|
"cleanup",
|
|
21
|
-
"doctor",
|
|
22
|
-
"pull",
|
|
23
|
-
"bench",
|
|
24
17
|
"serve",
|
|
25
18
|
"http",
|
|
26
19
|
]);
|
|
@@ -28,6 +21,16 @@ export function isSemanticCliCommand(command) {
|
|
|
28
21
|
return command !== undefined && TOP_LEVEL_COMMANDS.has(command);
|
|
29
22
|
}
|
|
30
23
|
export { semanticUsageText } from "./semantic-usage.js";
|
|
24
|
+
/** Assemble the engine adapter (vec-capable when configured, else lex + docs), run, dispose. */
|
|
25
|
+
async function withSemanticAdapter(vault, fn) {
|
|
26
|
+
const engine = assembleSemanticEngine(vault);
|
|
27
|
+
try {
|
|
28
|
+
return await fn(engine.adapter);
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
await engine.dispose();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
31
34
|
export async function runSemanticCli(options) {
|
|
32
35
|
const write = options.write ?? ((message) => console.log(message));
|
|
33
36
|
const writeError = options.writeError ?? ((message) => console.error(message));
|
|
@@ -35,154 +38,90 @@ export async function runSemanticCli(options) {
|
|
|
35
38
|
const command = parsed.positional[0] === "semantic" ? parsed.positional[1] : parsed.positional[0];
|
|
36
39
|
const commandOffset = parsed.positional[0] === "semantic" ? 2 : 1;
|
|
37
40
|
const rest = parsed.positional.slice(commandOffset);
|
|
41
|
+
const vault = options.vault;
|
|
38
42
|
if (!command || command === "help") {
|
|
39
43
|
write(semanticUsageText());
|
|
40
44
|
return 0;
|
|
41
45
|
}
|
|
42
|
-
if (command === "
|
|
43
|
-
const
|
|
44
|
-
vault
|
|
46
|
+
if (command === "serve" || command === "http") {
|
|
47
|
+
const server = await startSemanticHttpServer({
|
|
48
|
+
vault,
|
|
49
|
+
host: stringOption(parsed, "host"),
|
|
50
|
+
port: numberOption(parsed, "port") ?? 8765,
|
|
45
51
|
index: stringOption(parsed, "index"),
|
|
46
|
-
storage: semanticStorageOption(parsed),
|
|
47
52
|
});
|
|
48
|
-
printJson(write,
|
|
49
|
-
|
|
53
|
+
printJson(write, { available: true, url: server.url });
|
|
54
|
+
await new Promise(() => undefined);
|
|
55
|
+
return 0;
|
|
50
56
|
}
|
|
51
57
|
if (command === "sync" || command === "update" || command === "embed") {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
embed: booleanOption(parsed, "embed"),
|
|
66
|
-
chunkStrategy: stringOption(parsed, "chunkStrategy"),
|
|
67
|
-
maxDocsPerBatch: numberOption(parsed, "maxDocsPerBatch"),
|
|
68
|
-
maxBatchMb: numberOption(parsed, "maxBatchMb"),
|
|
58
|
+
return withSemanticAdapter(vault, async (adapter) => {
|
|
59
|
+
const result = await adapter.syncEmbeddings({
|
|
60
|
+
vault,
|
|
61
|
+
collection: stringOption(parsed, "collection"),
|
|
62
|
+
index: stringOption(parsed, "index"),
|
|
63
|
+
embed: booleanOption(parsed, "embed"),
|
|
64
|
+
force: booleanOption(parsed, "force"),
|
|
65
|
+
chunkStrategy: stringOption(parsed, "chunkStrategy"),
|
|
66
|
+
maxDocsPerBatch: numberOption(parsed, "maxDocsPerBatch"),
|
|
67
|
+
maxBatchMb: numberOption(parsed, "maxBatchMb"),
|
|
68
|
+
});
|
|
69
|
+
printJson(write, result);
|
|
70
|
+
return result.available ? 0 : 1;
|
|
69
71
|
});
|
|
70
|
-
printJson(write, result);
|
|
71
|
-
return result.available ? 0 : 1;
|
|
72
72
|
}
|
|
73
73
|
if (command === "status") {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
modelPath: stringOption(parsed, "modelPath"),
|
|
74
|
+
return withSemanticAdapter(vault, (adapter) => {
|
|
75
|
+
const status = adapter.semanticStatus({ vault, index: stringOption(parsed, "index") });
|
|
76
|
+
printJson(write, status);
|
|
77
|
+
return Promise.resolve(status.available ? 0 : 1);
|
|
79
78
|
});
|
|
80
|
-
printJson(write, status);
|
|
81
|
-
return status.available ? 0 : 1;
|
|
82
|
-
}
|
|
83
|
-
if (command === "doctor") {
|
|
84
|
-
const result = await readSemanticDoctor({
|
|
85
|
-
vault: options.vault,
|
|
86
|
-
index: stringOption(parsed, "index"),
|
|
87
|
-
storage: semanticStorageOption(parsed),
|
|
88
|
-
modelPath: stringOption(parsed, "modelPath"),
|
|
89
|
-
});
|
|
90
|
-
printJson(write, result);
|
|
91
|
-
return result.available ? 0 : 1;
|
|
92
79
|
}
|
|
93
80
|
if (command === "cleanup") {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
});
|
|
99
|
-
printJson(write, result);
|
|
100
|
-
return result.available ? 0 : 1;
|
|
101
|
-
}
|
|
102
|
-
if (command === "pull") {
|
|
103
|
-
printJson(write, pullSemanticModels());
|
|
104
|
-
return 0;
|
|
105
|
-
}
|
|
106
|
-
if (command === "bench") {
|
|
107
|
-
return runBenchCommand(rest, parsed, options.vault, write, writeError);
|
|
108
|
-
}
|
|
109
|
-
if (command === "ls") {
|
|
110
|
-
const result = await listSemanticDocuments({
|
|
111
|
-
vault: options.vault,
|
|
112
|
-
index: stringOption(parsed, "index"),
|
|
113
|
-
storage: semanticStorageOption(parsed),
|
|
114
|
-
target: rest[0],
|
|
81
|
+
return withSemanticAdapter(vault, async (adapter) => {
|
|
82
|
+
const result = await adapter.cleanup({ vault, index: stringOption(parsed, "index") });
|
|
83
|
+
printJson(write, result);
|
|
84
|
+
return result.available ? 0 : 1;
|
|
115
85
|
});
|
|
116
|
-
printJson(write, result);
|
|
117
|
-
return result.available ? 0 : 1;
|
|
118
86
|
}
|
|
119
87
|
if (command === "query" || command === "search" || command === "vsearch") {
|
|
120
88
|
const mode = command === "search" ? "search" : command === "vsearch" ? "vsearch" : "query";
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
89
|
+
return withSemanticAdapter(vault, async (adapter) => {
|
|
90
|
+
const result = await adapter.semanticQuery(semanticQueryOptions(mode, vault, parsed, rest.join(" ")));
|
|
91
|
+
printJson(write, result);
|
|
92
|
+
return result.available ? 0 : 1;
|
|
93
|
+
});
|
|
124
94
|
}
|
|
125
95
|
if (command === "get")
|
|
126
|
-
return runGetCommand(rest, parsed,
|
|
96
|
+
return runGetCommand(rest, parsed, vault, write, writeError);
|
|
127
97
|
if (command === "multi-get")
|
|
128
|
-
return runMultiGetCommand(rest, parsed,
|
|
98
|
+
return runMultiGetCommand(rest, parsed, vault, write, writeError);
|
|
129
99
|
if (command === "collection")
|
|
130
|
-
return runCollectionCommand(rest[0], rest[1], parsed,
|
|
100
|
+
return runCollectionCommand(rest[0], rest[1], parsed, vault, write);
|
|
131
101
|
if (command === "context")
|
|
132
|
-
return runContextCommand(rest[0],
|
|
133
|
-
if (command === "serve" || command === "http") {
|
|
134
|
-
const server = await startSemanticHttpServer({
|
|
135
|
-
vault: options.vault,
|
|
136
|
-
host: stringOption(parsed, "host"),
|
|
137
|
-
port: numberOption(parsed, "port") ?? 8765,
|
|
138
|
-
index: stringOption(parsed, "index"),
|
|
139
|
-
storage: semanticStorageOption(parsed),
|
|
140
|
-
modelPath: stringOption(parsed, "modelPath"),
|
|
141
|
-
});
|
|
142
|
-
printJson(write, { available: true, url: server.url });
|
|
143
|
-
await new Promise(() => undefined);
|
|
144
|
-
return 0;
|
|
145
|
-
}
|
|
102
|
+
return runContextCommand(rest[0], parsed, vault, write);
|
|
146
103
|
writeError(semanticUsageText());
|
|
147
104
|
return 1;
|
|
148
105
|
}
|
|
149
|
-
async function runBenchCommand(rest, parsed, vault, write, writeError) {
|
|
150
|
-
const fixture = rest[0];
|
|
151
|
-
if (!fixture) {
|
|
152
|
-
writeError("Usage: oms semantic bench <fixture.json>");
|
|
153
|
-
return 1;
|
|
154
|
-
}
|
|
155
|
-
const result = await runSemanticBenchmark({
|
|
156
|
-
vault,
|
|
157
|
-
index: stringOption(parsed, "index"),
|
|
158
|
-
storage: semanticStorageOption(parsed),
|
|
159
|
-
modelPath: stringOption(parsed, "modelPath"),
|
|
160
|
-
fixture: path.resolve(vault, fixture),
|
|
161
|
-
collection: stringOption(parsed, "collection"),
|
|
162
|
-
});
|
|
163
|
-
printJson(write, result);
|
|
164
|
-
return result.available && result.failed === 0 ? 0 : 1;
|
|
165
|
-
}
|
|
166
106
|
async function runGetCommand(rest, parsed, vault, write, writeError) {
|
|
167
107
|
const target = rest[0];
|
|
168
108
|
if (!target) {
|
|
169
109
|
writeError("Usage: oms semantic get <target>");
|
|
170
110
|
return 1;
|
|
171
111
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
112
|
+
return withSemanticAdapter(vault, async (adapter) => {
|
|
113
|
+
const result = await adapter.getDocument({
|
|
114
|
+
vault,
|
|
115
|
+
target,
|
|
116
|
+
collection: stringOption(parsed, "collection"),
|
|
117
|
+
fromLine: numberOption(parsed, "fromLine"),
|
|
118
|
+
lineCount: numberOption(parsed, "lineCount"),
|
|
119
|
+
lineNumbers: booleanOption(parsed, "lineNumbers"),
|
|
120
|
+
fullPath: booleanOption(parsed, "fullPath"),
|
|
121
|
+
});
|
|
122
|
+
printJson(write, result);
|
|
123
|
+
return result.available ? 0 : 1;
|
|
183
124
|
});
|
|
184
|
-
printJson(write, result);
|
|
185
|
-
return result.available ? 0 : 1;
|
|
186
125
|
}
|
|
187
126
|
async function runMultiGetCommand(rest, parsed, vault, write, writeError) {
|
|
188
127
|
const targets = targetList(rest);
|
|
@@ -190,19 +129,42 @@ async function runMultiGetCommand(rest, parsed, vault, write, writeError) {
|
|
|
190
129
|
writeError("Usage: oms semantic multi-get <target...>");
|
|
191
130
|
return 1;
|
|
192
131
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
132
|
+
return withSemanticAdapter(vault, async (adapter) => {
|
|
133
|
+
const result = await adapter.multiGetDocuments({
|
|
134
|
+
vault,
|
|
135
|
+
targets: [...targets],
|
|
136
|
+
collection: stringOption(parsed, "collection"),
|
|
137
|
+
lineLimit: numberOption(parsed, "lineLimit"),
|
|
138
|
+
maxBytes: numberOption(parsed, "maxBytes"),
|
|
139
|
+
lineNumbers: booleanOption(parsed, "lineNumbers"),
|
|
140
|
+
fullPath: booleanOption(parsed, "fullPath"),
|
|
141
|
+
});
|
|
142
|
+
printJson(write, result);
|
|
143
|
+
return result.available ? 0 : 1;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async function runCollectionCommand(action, collectionName, parsed, vault, write) {
|
|
147
|
+
return withSemanticAdapter(vault, (adapter) => {
|
|
148
|
+
const result = adapter.listCollections({ vault, index: stringOption(parsed, "index") });
|
|
149
|
+
if (!result.available) {
|
|
150
|
+
printJson(write, result);
|
|
151
|
+
return Promise.resolve(1);
|
|
152
|
+
}
|
|
153
|
+
const name = action === "show" ? collectionName : undefined;
|
|
154
|
+
const collections = name ? result.collections.filter((collection) => collection.name === name) : result.collections;
|
|
155
|
+
printJson(write, { collections });
|
|
156
|
+
return Promise.resolve(0);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async function runContextCommand(action, parsed, vault, write) {
|
|
160
|
+
if (action && action !== "list") {
|
|
161
|
+
write(semanticUsageText());
|
|
162
|
+
return 1;
|
|
163
|
+
}
|
|
164
|
+
return withSemanticAdapter(vault, (adapter) => {
|
|
165
|
+
const result = adapter.listContexts({ vault, index: stringOption(parsed, "index") });
|
|
166
|
+
printJson(write, result);
|
|
167
|
+
return Promise.resolve(result.available ? 0 : 1);
|
|
204
168
|
});
|
|
205
|
-
printJson(write, result);
|
|
206
|
-
return result.available ? 0 : 1;
|
|
207
169
|
}
|
|
208
170
|
//# sourceMappingURL=semantic.js.map
|
package/dist/cli/semantic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/cli/semantic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/cli/semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface SetupPrompt {
|
|
2
|
+
question(query: string): Promise<string>;
|
|
3
|
+
close(): void;
|
|
4
|
+
}
|
|
5
|
+
export declare function runSetup(opts: {
|
|
6
|
+
vault: string;
|
|
7
|
+
yes: boolean;
|
|
8
|
+
installClaude?: boolean;
|
|
9
|
+
suggestFields?: boolean;
|
|
10
|
+
prompt?: SetupPrompt;
|
|
11
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { copyFile, mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { createInterface } from "node:readline/promises";
|
|
4
|
+
import { stringify as yamlStringify } from "yaml";
|
|
5
|
+
import { loadOntology } from "../core/ontology/loader.js";
|
|
6
|
+
import { resolveBundledAssetPaths } from "../core/runtime/assets.js";
|
|
7
|
+
import { collectObservedFields, mergeObservedFieldsIntoConcept, parseLensDefinitions, } from "../setup/axis.js";
|
|
8
|
+
import { buildClaudeInstallPlan, printClaudeInstallPlan, } from "./claude-install-plan.js";
|
|
9
|
+
import { buildPromptConcepts, conceptRefToPromptDefault, defaultConceptForFolder, isFieldType, mergeAdditionalFields, mergeAdditionalLenses, readConceptDocuments, readExistingTaxonomy, writeConcept, } from "./setup-documents.js";
|
|
10
|
+
const bundledAssets = resolveBundledAssetPaths();
|
|
11
|
+
function bundledOntologyDir() {
|
|
12
|
+
return bundledAssets.ontologyDir;
|
|
13
|
+
}
|
|
14
|
+
function humanize(name) {
|
|
15
|
+
return name.charAt(0).toUpperCase() + name.slice(1);
|
|
16
|
+
}
|
|
17
|
+
export async function runSetup(opts) {
|
|
18
|
+
const { vault, yes, installClaude = false, suggestFields = false } = opts;
|
|
19
|
+
const nonInteractive = yes || process.env["OMS_NON_INTERACTIVE"] === "1";
|
|
20
|
+
const ontologyDir = bundledOntologyDir();
|
|
21
|
+
const ontology = await loadOntology(ontologyDir);
|
|
22
|
+
const observedSummaries = await collectObservedFields({ vault });
|
|
23
|
+
const observedByFolder = new Map(observedSummaries.map((summary) => [summary.folder, summary]));
|
|
24
|
+
const topEntries = await readdir(vault, { withFileTypes: true });
|
|
25
|
+
const folders = topEntries
|
|
26
|
+
.filter((entry) => entry.isDirectory() && !entry.name.startsWith("."))
|
|
27
|
+
.map((entry) => entry.name);
|
|
28
|
+
const omsDir = path.join(vault, ".oms");
|
|
29
|
+
const existingTaxonomy = await readExistingTaxonomy(omsDir);
|
|
30
|
+
const existingConceptDocuments = await readConceptDocuments(omsDir);
|
|
31
|
+
const promptConcepts = buildPromptConcepts(ontology.concepts, existingConceptDocuments);
|
|
32
|
+
const folderBindings = { ...(existingTaxonomy?.folders ?? {}) };
|
|
33
|
+
const observedFieldsByConcept = new Map();
|
|
34
|
+
const interactiveFieldsByConcept = new Map();
|
|
35
|
+
const interactiveLensesByConcept = new Map();
|
|
36
|
+
if (nonInteractive) {
|
|
37
|
+
for (const folder of folders) {
|
|
38
|
+
const existing = folderBindings[folder];
|
|
39
|
+
const conceptName = conceptRefToPromptDefault(existing?.concept ?? null) ??
|
|
40
|
+
defaultConceptForFolder(promptConcepts, folder);
|
|
41
|
+
folderBindings[folder] = {
|
|
42
|
+
intent: existing?.intent || humanize(folder),
|
|
43
|
+
concept: conceptName,
|
|
44
|
+
};
|
|
45
|
+
if (suggestFields && conceptName !== null) {
|
|
46
|
+
const summary = observedByFolder.get(folder);
|
|
47
|
+
if (summary !== undefined) {
|
|
48
|
+
observedFieldsByConcept.set(conceptName, [
|
|
49
|
+
...(observedFieldsByConcept.get(conceptName) ?? []),
|
|
50
|
+
...summary.fields,
|
|
51
|
+
]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const rl = opts.prompt ??
|
|
58
|
+
createInterface({
|
|
59
|
+
input: process.stdin,
|
|
60
|
+
output: process.stdout,
|
|
61
|
+
});
|
|
62
|
+
const conceptNames = Array.from(promptConcepts.keys());
|
|
63
|
+
try {
|
|
64
|
+
console.log("\nOh My Second Brain Setup — adopting existing vault folders.\n");
|
|
65
|
+
console.log(`Available concepts: ${conceptNames.join(", ") || "(none)"}\n`);
|
|
66
|
+
for (const folder of folders) {
|
|
67
|
+
const existing = folderBindings[folder];
|
|
68
|
+
const defaultIntent = existing?.intent || humanize(folder);
|
|
69
|
+
const rawIntent = await rl.question(`Folder "${folder}" — intent [${defaultIntent}]: `);
|
|
70
|
+
const intent = rawIntent.trim() || defaultIntent;
|
|
71
|
+
const defaultConcept = conceptRefToPromptDefault(existing?.concept ?? null) ??
|
|
72
|
+
defaultConceptForFolder(promptConcepts, folder);
|
|
73
|
+
const conceptPrompt = defaultConcept
|
|
74
|
+
? ` Bind concept [${defaultConcept}] (blank = ${defaultConcept}, "null" = none): `
|
|
75
|
+
: ` Bind concept (${conceptNames.join("/") || "none"}, blank = none): `;
|
|
76
|
+
const rawConcept = await rl.question(conceptPrompt);
|
|
77
|
+
const trimmed = rawConcept.trim();
|
|
78
|
+
let conceptName;
|
|
79
|
+
if (trimmed === "null" || trimmed === "") {
|
|
80
|
+
conceptName = trimmed === "null" ? null : (defaultConcept ?? null);
|
|
81
|
+
}
|
|
82
|
+
else if (promptConcepts.has(trimmed)) {
|
|
83
|
+
conceptName = trimmed;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.warn(` Unknown concept "${trimmed}"; binding as null.`);
|
|
87
|
+
conceptName = null;
|
|
88
|
+
}
|
|
89
|
+
folderBindings[folder] = { intent, concept: conceptName };
|
|
90
|
+
const summary = observedByFolder.get(folder);
|
|
91
|
+
if (summary !== undefined && summary.fields.length > 0 && conceptName !== null) {
|
|
92
|
+
const observedNames = summary.fields.map((field) => `${field.name}:${field.type}`).join(", ");
|
|
93
|
+
console.log(` Observed fields: ${observedNames}`);
|
|
94
|
+
for (const warning of summary.warnings) {
|
|
95
|
+
console.warn(` Frontmatter warning: ${warning}`);
|
|
96
|
+
}
|
|
97
|
+
const rawFields = await rl.question(" Add observed fields (comma-separated names, blank = none): ");
|
|
98
|
+
const requested = new Set(rawFields
|
|
99
|
+
.split(",")
|
|
100
|
+
.map((field) => field.trim())
|
|
101
|
+
.filter((field) => field.length > 0));
|
|
102
|
+
const selected = [];
|
|
103
|
+
for (const observed of summary.fields) {
|
|
104
|
+
if (!requested.has(observed.name))
|
|
105
|
+
continue;
|
|
106
|
+
const rawType = await rl.question(` Field "${observed.name}" type [${observed.type}]: `);
|
|
107
|
+
const trimmedType = rawType.trim();
|
|
108
|
+
const fieldType = isFieldType(trimmedType) ? trimmedType : observed.type;
|
|
109
|
+
const rawRequired = await rl.question(` Field "${observed.name}" required? [n]: `);
|
|
110
|
+
const rawFieldIntent = await rl.question(` Field "${observed.name}" intent [Observed ${observed.name}]: `);
|
|
111
|
+
selected.push({
|
|
112
|
+
name: observed.name,
|
|
113
|
+
type: fieldType,
|
|
114
|
+
required: /^y(?:es)?$/i.test(rawRequired.trim()),
|
|
115
|
+
intent: rawFieldIntent.trim() || `Observed ${observed.name}`,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
if (selected.length > 0) {
|
|
119
|
+
interactiveFieldsByConcept.set(conceptName, [
|
|
120
|
+
...(interactiveFieldsByConcept.get(conceptName) ?? []),
|
|
121
|
+
...selected,
|
|
122
|
+
]);
|
|
123
|
+
}
|
|
124
|
+
const knownFields = new Set([
|
|
125
|
+
...Array.from(promptConcepts.get(conceptName)?.fields ?? []).map((field) => field.name),
|
|
126
|
+
...selected.map((field) => field.name),
|
|
127
|
+
]);
|
|
128
|
+
const rawLenses = await rl.question(" Retrieval lenses (name:field1,field2; blank = none): ");
|
|
129
|
+
const lenses = parseLensDefinitions(rawLenses, knownFields);
|
|
130
|
+
if (lenses.length > 0) {
|
|
131
|
+
interactiveLensesByConcept.set(conceptName, [
|
|
132
|
+
...(interactiveLensesByConcept.get(conceptName) ?? []),
|
|
133
|
+
...lenses,
|
|
134
|
+
]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
rl.close();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const taxonomy = { version: existingTaxonomy?.version ?? 0, folders: folderBindings };
|
|
144
|
+
const conceptsOutDir = path.join(omsDir, "concepts");
|
|
145
|
+
await mkdir(conceptsOutDir, { recursive: true });
|
|
146
|
+
await writeFile(path.join(omsDir, "taxonomy.yaml"), yamlStringify(taxonomy), "utf-8");
|
|
147
|
+
const conceptsSourceDir = path.join(ontologyDir, "concepts");
|
|
148
|
+
let copiedFiles = [];
|
|
149
|
+
try {
|
|
150
|
+
const conceptFiles = await readdir(conceptsSourceDir);
|
|
151
|
+
for (const file of conceptFiles) {
|
|
152
|
+
if (file.endsWith(".yaml") || file.endsWith(".yml")) {
|
|
153
|
+
const target = path.join(conceptsOutDir, file);
|
|
154
|
+
try {
|
|
155
|
+
await readFile(target, "utf-8");
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
if (!(error instanceof Error))
|
|
159
|
+
throw error;
|
|
160
|
+
await copyFile(path.join(conceptsSourceDir, file), target);
|
|
161
|
+
copiedFiles.push(file);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
console.warn("[oms] Could not copy concept files:", err);
|
|
168
|
+
}
|
|
169
|
+
const localOntology = await loadOntology(omsDir);
|
|
170
|
+
const localConceptDocuments = await readConceptDocuments(omsDir);
|
|
171
|
+
const conceptNamesToUpdate = new Set([
|
|
172
|
+
...observedFieldsByConcept.keys(),
|
|
173
|
+
...interactiveFieldsByConcept.keys(),
|
|
174
|
+
...interactiveLensesByConcept.keys(),
|
|
175
|
+
]);
|
|
176
|
+
for (const conceptName of conceptNamesToUpdate) {
|
|
177
|
+
const concept = localOntology.concepts.get(conceptName);
|
|
178
|
+
if (concept === undefined)
|
|
179
|
+
continue;
|
|
180
|
+
const withObserved = mergeObservedFieldsIntoConcept(concept, observedFieldsByConcept.get(conceptName) ?? []);
|
|
181
|
+
const withInteractiveFields = mergeAdditionalFields(withObserved, interactiveFieldsByConcept.get(conceptName) ?? []);
|
|
182
|
+
const withLenses = mergeAdditionalLenses(withInteractiveFields, interactiveLensesByConcept.get(conceptName) ?? []);
|
|
183
|
+
await writeConcept(omsDir, withLenses, localConceptDocuments.get(conceptName));
|
|
184
|
+
}
|
|
185
|
+
console.log(`\nOh My Second Brain setup complete.`);
|
|
186
|
+
console.log(` Vault: ${vault}`);
|
|
187
|
+
console.log(` Written: ${path.join(omsDir, "taxonomy.yaml")}`);
|
|
188
|
+
console.log(` Concepts: ${copiedFiles.join(", ") || "(none)"}`);
|
|
189
|
+
console.log(` Folders: ${Object.keys(folderBindings).join(", ") || "(none)"}`);
|
|
190
|
+
console.log(`\nRun "oh-my-second-brain doctor" to validate existing notes.\n`);
|
|
191
|
+
if (installClaude) {
|
|
192
|
+
printClaudeInstallPlan(buildClaudeInstallPlan({ vault }));
|
|
193
|
+
console.log("");
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=setup-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../src/cli/setup-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;AAOjD,SAAS,kBAAkB;IACzB,OAAO,aAAa,CAAC,WAAW,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAM9B;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC1E,MAAM,cAAc,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG,CAAC;IAEzE,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhG,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,UAAU;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,wBAAwB,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IACxF,MAAM,cAAc,GAAkC,EAAE,GAAG,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IAC/F,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA0B,CAAC;IAErE,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,WAAW,GACf,yBAAyB,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;gBACpD,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAClD,cAAc,CAAC,MAAM,CAAC,GAAG;gBACvB,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;gBAC5C,OAAO,EAAE,WAAW;aACrB,CAAC;YACF,IAAI,aAAa,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE;wBACvC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;wBACnD,GAAG,OAAO,CAAC,MAAM;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GACN,IAAI,CAAC,MAAM;YACX,eAAe,CAAC;gBACd,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QAEL,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC;YAE5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,aAAa,GAAG,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CACjC,WAAW,MAAM,eAAe,aAAa,KAAK,CACnD,CAAC;gBACF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC;gBAEjD,MAAM,cAAc,GAClB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;oBACpD,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBAElD,MAAM,aAAa,GAAG,cAAc;oBAClC,CAAC,CAAC,mBAAmB,cAAc,cAAc,cAAc,oBAAoB;oBACnF,CAAC,CAAC,mBAAmB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,mBAAmB,CAAC;gBAE3E,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,WAA0B,CAAC;gBAC/B,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;oBACzC,WAAW,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;gBACrE,CAAC;qBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvC,WAAW,GAAG,OAAO,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,sBAAsB,OAAO,qBAAqB,CAAC,CAAC;oBACjE,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBAE1D,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9F,OAAO,CAAC,GAAG,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC;oBACnD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACvC,OAAO,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;oBACpD,CAAC;oBACD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CACjC,+DAA+D,CAChE,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,SAAS;yBACN,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;yBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC,CAAC;oBACF,MAAM,QAAQ,GAAoB,EAAE,CAAC;oBACrC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAAE,SAAS;wBAC5C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC/B,cAAc,QAAQ,CAAC,IAAI,WAAW,QAAQ,CAAC,IAAI,KAAK,CACzD,CAAC;wBACF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;wBACnC,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACzE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;wBACtF,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CACtC,cAAc,QAAQ,CAAC,IAAI,sBAAsB,QAAQ,CAAC,IAAI,KAAK,CACpE,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;4BAChD,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,YAAY,QAAQ,CAAC,IAAI,EAAE;yBAC7D,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE;4BAC1C,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;4BACtD,GAAG,QAAQ;yBACZ,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;wBAC1B,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;wBACvF,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;qBACvC,CAAC,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CACjC,yDAAyD,CAC1D,CAAC;oBACF,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE;4BAC1C,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;4BACtD,GAAG,MAAM;yBACV,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAChG,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAEtF,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAC3C,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;oBAC3D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;QACnC,GAAG,uBAAuB,CAAC,IAAI,EAAE;QACjC,GAAG,0BAA0B,CAAC,IAAI,EAAE;QACpC,GAAG,0BAA0B,CAAC,IAAI,EAAE;KACrC,CAAC,CAAC;IACH,KAAK,MAAM,WAAW,IAAI,oBAAoB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QACpC,MAAM,YAAY,GAAG,8BAA8B,CACjD,OAAO,EACP,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAC/C,CAAC;QACF,MAAM,qBAAqB,GAAG,qBAAqB,CACjD,YAAY,EACZ,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAClD,CAAC;QACF,MAAM,UAAU,GAAG,qBAAqB,CACtC,qBAAqB,EACrB,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAClD,CAAC;QACF,MAAM,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAE/E,IAAI,aAAa,EAAE,CAAC;QAClB,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Concept, FieldType, FolderBinding, OntologyField, OntologyLens, Taxonomy } from "../core/ontology/types.js";
|
|
2
|
+
export interface ConceptDocument {
|
|
3
|
+
readonly filePath: string;
|
|
4
|
+
readonly raw: Record<string, unknown>;
|
|
5
|
+
readonly concept: Concept;
|
|
6
|
+
}
|
|
7
|
+
export declare function readConceptDocuments(omsDir: string): Promise<Map<string, ConceptDocument>>;
|
|
8
|
+
export declare function buildPromptConcepts(shippedConcepts: ReadonlyMap<string, Concept>, localDocuments: ReadonlyMap<string, ConceptDocument>): Map<string, Concept>;
|
|
9
|
+
export declare function defaultConceptForFolder(concepts: ReadonlyMap<string, Concept>, folder: string): string | null;
|
|
10
|
+
export declare function conceptRefToPromptDefault(concept: FolderBinding["concept"]): string | null;
|
|
11
|
+
export declare function isFieldType(value: string): value is FieldType;
|
|
12
|
+
export declare function readExistingTaxonomy(omsDir: string): Promise<Taxonomy | null>;
|
|
13
|
+
export declare function mergeAdditionalFields(concept: Concept, fields: readonly OntologyField[]): Concept;
|
|
14
|
+
export declare function mergeAdditionalLenses(concept: Concept, lenses: readonly OntologyLens[]): Concept;
|
|
15
|
+
export declare function writeConcept(omsDir: string, concept: Concept, existingDocument?: ConceptDocument): Promise<void>;
|