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/engine/wiki/lint.js
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Astro-Han 2-tier lint (MIT — idea absorption only).
|
|
3
|
-
*
|
|
4
|
-
* Auto-fix tier (runs automatically, mutates wiki/ files):
|
|
5
|
-
* - index consistency: concept present in wiki/ but absent from index.md
|
|
6
|
-
* - internal-link correctness: broken [[wikilinks]] flagged
|
|
7
|
-
* - See-Also sections: added if missing
|
|
8
|
-
*
|
|
9
|
-
* Report-only tier (reports to return value; NO autofix without forceHumanGate):
|
|
10
|
-
* - factual contradictions typed as:
|
|
11
|
-
* "> **Conflict:** A claims X; B claims Y. Unresolved."
|
|
12
|
-
* - orphan pages (in ledger as ORPHAN state)
|
|
13
|
-
* - outdated refs (DIRTY pages in the ledger)
|
|
14
|
-
*
|
|
15
|
-
* Mutation policy: report-only findings are NEVER auto-fixed unless the caller
|
|
16
|
-
* explicitly sets forceHumanGate: true. This is the human-gate flag.
|
|
17
|
-
*/
|
|
18
|
-
import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
19
|
-
import path from "node:path";
|
|
20
|
-
import { extractWikilinks } from "./collection.js";
|
|
21
|
-
import { indexPath } from "./navigation.js";
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// Auto-fix tier
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
/**
|
|
26
|
-
* Fix index.md to include all wiki pages present in wikiDir.
|
|
27
|
-
* Appends missing entries — does not reorder existing content.
|
|
28
|
-
*/
|
|
29
|
-
async function fixIndexConsistency(wikiDir) {
|
|
30
|
-
const findings = [];
|
|
31
|
-
let files = [];
|
|
32
|
-
try {
|
|
33
|
-
files = await readdir(wikiDir);
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
return findings;
|
|
37
|
-
}
|
|
38
|
-
const pages = files.filter((f) => f.endsWith(".md") && f !== "index.md" && f !== "log.md");
|
|
39
|
-
let indexContent = "";
|
|
40
|
-
try {
|
|
41
|
-
indexContent = await readFile(indexPath(wikiDir), "utf8");
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
// index.md missing — regeneration (not lint) handles creation; skip
|
|
45
|
-
return findings;
|
|
46
|
-
}
|
|
47
|
-
const missing = [];
|
|
48
|
-
for (const page of pages) {
|
|
49
|
-
const name = path.basename(page, ".md");
|
|
50
|
-
if (!indexContent.includes(`[[${name}]]`)) {
|
|
51
|
-
missing.push(name);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (missing.length > 0) {
|
|
55
|
-
const additions = missing.map((name) => `- [[${name}]]`).join("\n");
|
|
56
|
-
await writeFile(indexPath(wikiDir), indexContent.trimEnd() + "\n" + additions + "\n", "utf8");
|
|
57
|
-
for (const name of missing) {
|
|
58
|
-
findings.push({
|
|
59
|
-
tier: "auto-fix",
|
|
60
|
-
kind: "index-inconsistency",
|
|
61
|
-
pageId: `wiki/${name}.md`,
|
|
62
|
-
message: `Added missing [[${name}]] to index.md`,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return findings;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Flag broken [[wikilinks]] in each wiki page; add missing See-Also sections.
|
|
70
|
-
*/
|
|
71
|
-
async function fixLinksAndSeeAlso(wikiDir) {
|
|
72
|
-
const findings = [];
|
|
73
|
-
let files = [];
|
|
74
|
-
try {
|
|
75
|
-
files = await readdir(wikiDir);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
return findings;
|
|
79
|
-
}
|
|
80
|
-
const pages = files.filter((f) => f.endsWith(".md") && f !== "index.md" && f !== "log.md");
|
|
81
|
-
const pageNames = new Set(pages.map((f) => path.basename(f, ".md")));
|
|
82
|
-
for (const file of pages) {
|
|
83
|
-
const filePath = path.join(wikiDir, file);
|
|
84
|
-
let content;
|
|
85
|
-
try {
|
|
86
|
-
content = await readFile(filePath, "utf8");
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
// Broken links — report (auto-fix tier flags them; actual fix is a recompile)
|
|
92
|
-
for (const link of extractWikilinks(content)) {
|
|
93
|
-
const name = link.replace(/\.md$/, "");
|
|
94
|
-
if (!pageNames.has(name)) {
|
|
95
|
-
findings.push({
|
|
96
|
-
tier: "auto-fix",
|
|
97
|
-
kind: "broken-link",
|
|
98
|
-
pageId: `wiki/${file}`,
|
|
99
|
-
message: `Broken link [[${link}]] — target page not found in wiki/`,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Missing See-Also section — auto-add
|
|
104
|
-
if (!content.includes("## See Also") &&
|
|
105
|
-
!content.includes("## See-Also")) {
|
|
106
|
-
const updated = content.trimEnd() + "\n\n## See Also\n\n";
|
|
107
|
-
await writeFile(filePath, updated, "utf8");
|
|
108
|
-
findings.push({
|
|
109
|
-
tier: "auto-fix",
|
|
110
|
-
kind: "missing-see-also",
|
|
111
|
-
pageId: `wiki/${file}`,
|
|
112
|
-
message: `Added missing See-Also section to ${file}`,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return findings;
|
|
117
|
-
}
|
|
118
|
-
// ---------------------------------------------------------------------------
|
|
119
|
-
// Report-only tier
|
|
120
|
-
// ---------------------------------------------------------------------------
|
|
121
|
-
function reportConflicts(ledger) {
|
|
122
|
-
const findings = [];
|
|
123
|
-
for (const [conceptId, entry] of Object.entries(ledger)) {
|
|
124
|
-
if (entry.state === "CONFLICT") {
|
|
125
|
-
const note = entry.conflictNote ?? "conflicting sources detected";
|
|
126
|
-
findings.push({
|
|
127
|
-
tier: "report-only",
|
|
128
|
-
kind: "factual-contradiction",
|
|
129
|
-
pageId: conceptId,
|
|
130
|
-
message: `> **Conflict:** ${note}. Unresolved.`,
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return findings;
|
|
135
|
-
}
|
|
136
|
-
function reportOrphans(ledger) {
|
|
137
|
-
const findings = [];
|
|
138
|
-
for (const [conceptId, entry] of Object.entries(ledger)) {
|
|
139
|
-
if (entry.state === "ORPHAN") {
|
|
140
|
-
findings.push({
|
|
141
|
-
tier: "report-only",
|
|
142
|
-
kind: "orphan-page",
|
|
143
|
-
pageId: conceptId,
|
|
144
|
-
message: `Orphan page ${conceptId} has no incoming wikilinks`,
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return findings;
|
|
149
|
-
}
|
|
150
|
-
function reportOutdatedRefs(ledger) {
|
|
151
|
-
const findings = [];
|
|
152
|
-
for (const [conceptId, entry] of Object.entries(ledger)) {
|
|
153
|
-
if (entry.state === "DIRTY") {
|
|
154
|
-
findings.push({
|
|
155
|
-
tier: "report-only",
|
|
156
|
-
kind: "outdated-ref",
|
|
157
|
-
pageId: conceptId,
|
|
158
|
-
message: `Page ${conceptId} is DIRTY — sources changed since last compile`,
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return findings;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Run all lint checks.
|
|
166
|
-
*
|
|
167
|
-
* Auto-fix tier mutates wiki/ files automatically.
|
|
168
|
-
* Report-only tier returns findings but does NOT mutate anything unless
|
|
169
|
-
* forceHumanGate is true (currently reserved — no report-only autofix implemented).
|
|
170
|
-
*/
|
|
171
|
-
export async function runLint(opts) {
|
|
172
|
-
const { wikiDir, ledger } = opts;
|
|
173
|
-
// Auto-fix passes
|
|
174
|
-
const autoFixed = [
|
|
175
|
-
...(await fixIndexConsistency(wikiDir)),
|
|
176
|
-
...(await fixLinksAndSeeAlso(wikiDir)),
|
|
177
|
-
];
|
|
178
|
-
// Report-only passes
|
|
179
|
-
const reported = [
|
|
180
|
-
...reportConflicts(ledger),
|
|
181
|
-
...reportOrphans(ledger),
|
|
182
|
-
...reportOutdatedRefs(ledger),
|
|
183
|
-
];
|
|
184
|
-
return { autoFixed, reported };
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=lint.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/engine/wiki/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Karpathy navigation surfaces.
|
|
3
|
-
*
|
|
4
|
-
* wiki/index.md — global catalog, regenerated from scratch after every compile run.
|
|
5
|
-
* wiki/log.md — append-only compile log: "## [YYYY-MM-DD] compile | ConceptName"
|
|
6
|
-
*
|
|
7
|
-
* Both files are ALWAYS written before the collection owner returns.
|
|
8
|
-
*
|
|
9
|
-
* Date is an injected/parameter value — pass a NowFn so tests are deterministic.
|
|
10
|
-
* Never call Date.now() or new Date() inline inside these functions.
|
|
11
|
-
*
|
|
12
|
-
* Idea absorption: Karpathy wiki gist (no license declared) — navigation conventions only.
|
|
13
|
-
*/
|
|
14
|
-
import type { NowFn } from "./types.js";
|
|
15
|
-
export declare function indexPath(wikiDir: string): string;
|
|
16
|
-
export declare function logPath(wikiDir: string): string;
|
|
17
|
-
/**
|
|
18
|
-
* Regenerate wiki/index.md as a global concept catalog.
|
|
19
|
-
*
|
|
20
|
-
* Replaces the file completely each call — callers pass the full sorted
|
|
21
|
-
* concept list so the index always reflects current wiki state.
|
|
22
|
-
*
|
|
23
|
-
* @param wikiDir - Absolute path to the wiki/ directory.
|
|
24
|
-
* @param conceptIds - Sorted list of concept IDs to include.
|
|
25
|
-
* @param now - Injected clock returning ISO-8601 string.
|
|
26
|
-
*/
|
|
27
|
-
export declare function regenerateIndex(wikiDir: string, conceptIds: readonly string[], now: NowFn): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Append an entry to wiki/log.md.
|
|
30
|
-
*
|
|
31
|
-
* Format per line: "## [YYYY-MM-DD] compile | ConceptName"
|
|
32
|
-
*
|
|
33
|
-
* Log is append-only — never overwrites or truncates existing content.
|
|
34
|
-
* Creates the file on first call.
|
|
35
|
-
*
|
|
36
|
-
* @param wikiDir - Absolute path to the wiki/ directory.
|
|
37
|
-
* @param conceptName - Human-readable concept name.
|
|
38
|
-
* @param now - Injected clock returning ISO-8601 string.
|
|
39
|
-
*/
|
|
40
|
-
export declare function appendLog(wikiDir: string, conceptName: string, now: NowFn): Promise<void>;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Karpathy navigation surfaces.
|
|
3
|
-
*
|
|
4
|
-
* wiki/index.md — global catalog, regenerated from scratch after every compile run.
|
|
5
|
-
* wiki/log.md — append-only compile log: "## [YYYY-MM-DD] compile | ConceptName"
|
|
6
|
-
*
|
|
7
|
-
* Both files are ALWAYS written before the collection owner returns.
|
|
8
|
-
*
|
|
9
|
-
* Date is an injected/parameter value — pass a NowFn so tests are deterministic.
|
|
10
|
-
* Never call Date.now() or new Date() inline inside these functions.
|
|
11
|
-
*
|
|
12
|
-
* Idea absorption: Karpathy wiki gist (no license declared) — navigation conventions only.
|
|
13
|
-
*/
|
|
14
|
-
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
15
|
-
import path from "node:path";
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
// File paths (exported for use by lint.ts)
|
|
18
|
-
// ---------------------------------------------------------------------------
|
|
19
|
-
export function indexPath(wikiDir) {
|
|
20
|
-
return path.join(wikiDir, "index.md");
|
|
21
|
-
}
|
|
22
|
-
export function logPath(wikiDir) {
|
|
23
|
-
return path.join(wikiDir, "log.md");
|
|
24
|
-
}
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
// Index — regenerated after every compile run
|
|
27
|
-
// ---------------------------------------------------------------------------
|
|
28
|
-
/**
|
|
29
|
-
* Regenerate wiki/index.md as a global concept catalog.
|
|
30
|
-
*
|
|
31
|
-
* Replaces the file completely each call — callers pass the full sorted
|
|
32
|
-
* concept list so the index always reflects current wiki state.
|
|
33
|
-
*
|
|
34
|
-
* @param wikiDir - Absolute path to the wiki/ directory.
|
|
35
|
-
* @param conceptIds - Sorted list of concept IDs to include.
|
|
36
|
-
* @param now - Injected clock returning ISO-8601 string.
|
|
37
|
-
*/
|
|
38
|
-
export async function regenerateIndex(wikiDir, conceptIds, now) {
|
|
39
|
-
await mkdir(wikiDir, { recursive: true });
|
|
40
|
-
const date = now().slice(0, 10); // YYYY-MM-DD
|
|
41
|
-
const lines = [
|
|
42
|
-
`# Wiki Index`,
|
|
43
|
-
``,
|
|
44
|
-
`> Generated: ${date}`,
|
|
45
|
-
``,
|
|
46
|
-
`## Concepts`,
|
|
47
|
-
``,
|
|
48
|
-
];
|
|
49
|
-
for (const id of conceptIds) {
|
|
50
|
-
const name = path.basename(id, ".md");
|
|
51
|
-
lines.push(`- [[${name}]]`);
|
|
52
|
-
}
|
|
53
|
-
await writeFile(indexPath(wikiDir), lines.join("\n") + "\n", "utf8");
|
|
54
|
-
}
|
|
55
|
-
// ---------------------------------------------------------------------------
|
|
56
|
-
// Log — append-only
|
|
57
|
-
// ---------------------------------------------------------------------------
|
|
58
|
-
/**
|
|
59
|
-
* Append an entry to wiki/log.md.
|
|
60
|
-
*
|
|
61
|
-
* Format per line: "## [YYYY-MM-DD] compile | ConceptName"
|
|
62
|
-
*
|
|
63
|
-
* Log is append-only — never overwrites or truncates existing content.
|
|
64
|
-
* Creates the file on first call.
|
|
65
|
-
*
|
|
66
|
-
* @param wikiDir - Absolute path to the wiki/ directory.
|
|
67
|
-
* @param conceptName - Human-readable concept name.
|
|
68
|
-
* @param now - Injected clock returning ISO-8601 string.
|
|
69
|
-
*/
|
|
70
|
-
export async function appendLog(wikiDir, conceptName, now) {
|
|
71
|
-
await mkdir(wikiDir, { recursive: true });
|
|
72
|
-
const date = now().slice(0, 10); // YYYY-MM-DD
|
|
73
|
-
const entry = `## [${date}] compile | ${conceptName}\n`;
|
|
74
|
-
let existing = "";
|
|
75
|
-
try {
|
|
76
|
-
existing = await readFile(logPath(wikiDir), "utf8");
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// File doesn't exist yet — start fresh
|
|
80
|
-
}
|
|
81
|
-
await writeFile(logPath(wikiDir), existing + entry, "utf8");
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/engine/wiki/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,UAA6B,EAC7B,GAAU;IAEV,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;IAC9C,MAAM,KAAK,GAAa;QACtB,cAAc;QACd,EAAE;QACF,gBAAgB,IAAI,EAAE;QACtB,EAAE;QACF,aAAa;QACb,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,WAAmB,EACnB,GAAU;IAEV,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;IAC9C,MAAM,KAAK,GAAG,OAAO,IAAI,eAAe,WAAW,IAAI,CAAC;IAExD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wiki-local types for M3.
|
|
3
|
-
*
|
|
4
|
-
* LOCAL to src/engine/wiki/. Do NOT add to any shared types file.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* 5-state staleness FSM for wiki pages.
|
|
8
|
-
*
|
|
9
|
-
* Transitions:
|
|
10
|
-
* source SHA change → DIRTY
|
|
11
|
-
* compile produces page → CLEAN
|
|
12
|
-
* referenced page has no compile output → STUB
|
|
13
|
-
* page with no incoming links → ORPHAN
|
|
14
|
-
* two compile sources produce conflicting content → CONFLICT
|
|
15
|
-
*
|
|
16
|
-
* Full-rebuild escape hatch: delete .llmwiki/staleness.json → every page resets to DIRTY.
|
|
17
|
-
*/
|
|
18
|
-
export type StalenessState = "CLEAN" | "DIRTY" | "STUB" | "ORPHAN" | "CONFLICT";
|
|
19
|
-
/** Per-concept ledger entry. */
|
|
20
|
-
export interface LedgerEntry {
|
|
21
|
-
state: StalenessState;
|
|
22
|
-
/** ISO-8601 timestamp of the last state transition. */
|
|
23
|
-
updatedAt: string;
|
|
24
|
-
/** Conflict description — set only for CONFLICT state. */
|
|
25
|
-
conflictNote?: string;
|
|
26
|
-
}
|
|
27
|
-
/** The full staleness ledger, persisted as JSON. */
|
|
28
|
-
export type StalenessLedger = Record<string, LedgerEntry>;
|
|
29
|
-
/** Result of processing a cascade's affected backlinks. */
|
|
30
|
-
export interface CascadeFlipResult {
|
|
31
|
-
/** Concept IDs that were flipped from CLEAN to DIRTY. */
|
|
32
|
-
flipped: string[];
|
|
33
|
-
}
|
|
34
|
-
/** Result of a link-graph closure check. */
|
|
35
|
-
export interface LinkClosureResult {
|
|
36
|
-
/** Wikilinks that point to pages without compile output in wiki/. */
|
|
37
|
-
dangling: string[];
|
|
38
|
-
/** True if all wikilinks resolve to existing pages. */
|
|
39
|
-
closed: boolean;
|
|
40
|
-
}
|
|
41
|
-
export type LintTier = "auto-fix" | "report-only";
|
|
42
|
-
export type LintKind = "index-inconsistency" | "broken-link" | "missing-see-also" | "factual-contradiction" | "outdated-ref" | "orphan-page";
|
|
43
|
-
export interface LintFinding {
|
|
44
|
-
tier: LintTier;
|
|
45
|
-
kind: LintKind;
|
|
46
|
-
pageId: string;
|
|
47
|
-
message: string;
|
|
48
|
-
}
|
|
49
|
-
export interface LintResult {
|
|
50
|
-
autoFixed: LintFinding[];
|
|
51
|
-
reported: LintFinding[];
|
|
52
|
-
}
|
|
53
|
-
/** Injected clock function — returns ISO-8601 string. Never call Date.now() directly. */
|
|
54
|
-
export type NowFn = () => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engine/wiki/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Ontology } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Load an Oh My Second Brain ontology from a directory that contains:
|
|
4
|
-
* <ontologyDir>/taxonomy.yaml
|
|
5
|
-
* <ontologyDir>/concepts/*.yaml
|
|
6
|
-
*
|
|
7
|
-
* Lenient:
|
|
8
|
-
* - Missing `taxonomy.version` defaults to 0.
|
|
9
|
-
* - A taxonomy folder that references an unknown concept name is warned and skipped.
|
|
10
|
-
* - Missing optional concept keys default sensibly.
|
|
11
|
-
* - Never throws (barring genuine I/O errors).
|
|
12
|
-
*/
|
|
13
|
-
export declare function loadOntology(ontologyDir: string): Promise<Ontology>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/ontology/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAG1C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,6EAA6E;IAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAA4B,CAAC;IAEzE,MAAM,QAAQ,GAAa;QACzB,OAAO,EACL,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,QAAQ;YAC3C,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,CAAC;QACP,OAAO,EACL,cAAc,CAAC,SAAS,CAAC,IAAI,IAAI;YACjC,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,QAAQ;YAC7C,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC,CAAE,cAAc,CAAC,SAAS,CAAyB;YACpD,CAAC,CAAC,EAAE;KACT,CAAC;IAEF,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAA4B,CAAC;QAEzD,MAAM,OAAO,GAAY;YACvB,OAAO,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5G,MAAM,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,MAAM,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAuB,CAAC,CAAC,CAAC,EAAE;YACtF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAuB,CAAC,CAAC,CAAC,EAAE;SACvF,CAAC;QAEF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,sEAAsE;IACtE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC9B,CAAC,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CACV,0BAA0B,MAAM,iCAAiC,IAAI,eAAe,CACrF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Concept, Ontology } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Resolve the Concept for a note given its path relative to the vault root.
|
|
4
|
-
*
|
|
5
|
-
* Pure function. Takes the FIRST path segment as the folder key, looks it up
|
|
6
|
-
* in the taxonomy, then resolves the concept by name from the ontology map.
|
|
7
|
-
*
|
|
8
|
-
* Returns `undefined` when:
|
|
9
|
-
* - the folder is not declared in the taxonomy, or
|
|
10
|
-
* - the binding's concept is null, or
|
|
11
|
-
* - no matching concept exists in the ontology.
|
|
12
|
-
*/
|
|
13
|
-
export declare function resolveConcept(ontology: Ontology, notePath: string): Concept | undefined;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/ontology/resolver.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAkB,EAClB,QAAgB;IAEhB,4CAA4C;IAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhD,kDAAkD;IAClD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEtE,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEtE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,4CAA4C;QAC5C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC9B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/ontology/types.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Oh My Second Brain convention format — the semantic ontology, adapted from ouroboros.
|
|
3
|
-
*
|
|
4
|
-
* A vault's convention is declarative data the user owns (lives in `vault/.oms/`).
|
|
5
|
-
* Oh My Second Brain ships defaults in `core/ontology/` and enforces whatever the user declares.
|
|
6
|
-
*
|
|
7
|
-
* The format is deliberately semantic, not structural: every concept and folder
|
|
8
|
-
* carries a declared `intent` so a host agent reads *why* knowledge lives somewhere,
|
|
9
|
-
* not just *where*. "The folder itself is information."
|
|
10
|
-
*/
|
|
11
|
-
/** Supported scalar/collection kinds for a frontmatter field. */
|
|
12
|
-
export type FieldType = "string" | "url" | "date" | "list" | "number" | "boolean";
|
|
13
|
-
/** Optional normalization applied to a field value before/at validation. */
|
|
14
|
-
export type Normalize = "kebab" | "lower" | "trim";
|
|
15
|
-
/**
|
|
16
|
-
* One frontmatter key, modeled on ouroboros's `OntologyField`.
|
|
17
|
-
* Each field is itself a unit of convention — users grow a convention field-by-field.
|
|
18
|
-
*/
|
|
19
|
-
export interface OntologyField {
|
|
20
|
-
/** The frontmatter key name. */
|
|
21
|
-
name: string;
|
|
22
|
-
/** Value kind. */
|
|
23
|
-
type: FieldType;
|
|
24
|
-
/** Whether the key must be present and non-empty. Defaults to false. */
|
|
25
|
-
required?: boolean;
|
|
26
|
-
/** Semantic intent: what this field is FOR (ouroboros `description`). */
|
|
27
|
-
intent: string;
|
|
28
|
-
/** Optional value normalization for list/string fields. */
|
|
29
|
-
normalize?: Normalize;
|
|
30
|
-
/** If true, the field must not change once written (advisory in v0). */
|
|
31
|
-
immutable?: boolean;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* A pre-declared, named retrieval view — NOT a query filter.
|
|
35
|
-
* Mirrors ouroboros's `OntologyLens`: a concept declares which fields matter
|
|
36
|
-
* for which retrieval purpose (e.g. `synthesis`, `audit`).
|
|
37
|
-
*/
|
|
38
|
-
export interface OntologyLens {
|
|
39
|
-
name: string;
|
|
40
|
-
/** When this lens should be activated during retrieval. */
|
|
41
|
-
intent: string;
|
|
42
|
-
/** Subset of the concept's field names surfaced by this lens. */
|
|
43
|
-
fields: string[];
|
|
44
|
-
}
|
|
45
|
-
/** A note-type carrying explicit intent, its fields, lenses, and folder binding. */
|
|
46
|
-
export interface Concept {
|
|
47
|
-
/** Concept identifier (e.g. `literature`). */
|
|
48
|
-
concept: string;
|
|
49
|
-
/** What this knowledge is FOR. */
|
|
50
|
-
intent: string;
|
|
51
|
-
/** Folder this concept is bound to (relative to vault root). */
|
|
52
|
-
folder: string;
|
|
53
|
-
fields: OntologyField[];
|
|
54
|
-
lenses?: OntologyLens[];
|
|
55
|
-
}
|
|
56
|
-
/** Per-folder declaration: a folder is information, so it declares its intent. */
|
|
57
|
-
export interface FolderBinding {
|
|
58
|
-
/** Why this folder exists / what kind of knowledge it holds. */
|
|
59
|
-
intent: string;
|
|
60
|
-
/** Concept name(s) bound here, or null when not yet assigned (e.g. `inbox`). */
|
|
61
|
-
concept: string | string[] | null;
|
|
62
|
-
}
|
|
63
|
-
/** Folder ↔ concept map with per-folder intent. */
|
|
64
|
-
export interface Taxonomy {
|
|
65
|
-
version: number;
|
|
66
|
-
folders: Record<string, FolderBinding>;
|
|
67
|
-
}
|
|
68
|
-
/** A fully loaded convention: the taxonomy plus every concept, keyed by name. */
|
|
69
|
-
export interface Ontology {
|
|
70
|
-
taxonomy: Taxonomy;
|
|
71
|
-
concepts: Map<string, Concept>;
|
|
72
|
-
}
|
package/dist/ontology/types.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Oh My Second Brain convention format — the semantic ontology, adapted from ouroboros.
|
|
3
|
-
*
|
|
4
|
-
* A vault's convention is declarative data the user owns (lives in `vault/.oms/`).
|
|
5
|
-
* Oh My Second Brain ships defaults in `core/ontology/` and enforces whatever the user declares.
|
|
6
|
-
*
|
|
7
|
-
* The format is deliberately semantic, not structural: every concept and folder
|
|
8
|
-
* carries a declared `intent` so a host agent reads *why* knowledge lives somewhere,
|
|
9
|
-
* not just *where*. "The folder itself is information."
|
|
10
|
-
*/
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ontology/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { syncSemanticEmbeddingStore } from "../search/semantic.js";
|
|
2
|
-
export async function syncRetrieveEmbeddings(opts) {
|
|
3
|
-
if (opts.semantic?.syncBeforeSearch !== true)
|
|
4
|
-
return undefined;
|
|
5
|
-
return syncSemanticEmbeddingStore({
|
|
6
|
-
vault: opts.vault,
|
|
7
|
-
collection: opts.semantic.collection,
|
|
8
|
-
ensureCollection: opts.semantic.syncEnsureCollection,
|
|
9
|
-
update: opts.semantic.syncUpdate,
|
|
10
|
-
embed: opts.semantic.syncEmbed,
|
|
11
|
-
force: opts.semantic.syncForce,
|
|
12
|
-
pull: opts.semantic.syncPull,
|
|
13
|
-
index: opts.semantic.index,
|
|
14
|
-
storage: opts.semantic.syncStorage ?? opts.semantic.storage,
|
|
15
|
-
modelPath: opts.semantic.syncModelPath ?? opts.semantic.modelPath,
|
|
16
|
-
chunkStrategy: opts.semantic.chunkStrategy,
|
|
17
|
-
maxDocsPerBatch: opts.semantic.syncMaxDocsPerBatch,
|
|
18
|
-
maxBatchMb: opts.semantic.syncMaxBatchMb,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=embedding-sync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-sync.js","sourceRoot":"","sources":["../../src/retrieve/embedding-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAoC,MAAM,uBAAuB,CAAC;AAGrG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA4B;IAE5B,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC/D,OAAO,0BAA0B,CAAC;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;QACpC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB;QACpD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;QAChC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;QAC9B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;QAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAC5B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;QAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;QAC3D,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS;QACjE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;QAC1C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;QAClD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc;KACzC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/runtime/assets.d.ts
DELETED
package/dist/runtime/assets.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { fileURLToPath } from "node:url";
|
|
3
|
-
export function resolveBundledAssetPaths(moduleUrl = import.meta.url) {
|
|
4
|
-
const modulePath = fileURLToPath(moduleUrl);
|
|
5
|
-
const packageRoot = path.resolve(path.dirname(modulePath), "../..");
|
|
6
|
-
return {
|
|
7
|
-
packageRoot,
|
|
8
|
-
ontologyDir: path.join(packageRoot, "core", "ontology"),
|
|
9
|
-
adapterRoot: path.join(packageRoot, "adapters"),
|
|
10
|
-
claudeAdapterDir: path.join(packageRoot, "adapters", "claude-code"),
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/runtime/assets.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AASzC,MAAM,UAAU,wBAAwB,CAAC,YAAoB,MAAM,CAAC,IAAI,CAAC,GAAG;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAEpE,OAAO;QACL,WAAW;QACX,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC;QACvD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QAC/C,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC;KACpE,CAAC;AACJ,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { SemanticCollectionMutationResult, SemanticCollectionResult, SemanticInitResult, SemanticStorage } from "./semantic-types.js";
|
|
2
|
-
export declare function initSemanticStore(opts: {
|
|
3
|
-
readonly vault: string;
|
|
4
|
-
readonly index?: string;
|
|
5
|
-
readonly storage?: SemanticStorage;
|
|
6
|
-
}): Promise<SemanticInitResult>;
|
|
7
|
-
export declare function listSemanticCollections(opts: {
|
|
8
|
-
readonly vault: string;
|
|
9
|
-
readonly index?: string;
|
|
10
|
-
readonly storage?: SemanticStorage;
|
|
11
|
-
}): Promise<SemanticCollectionResult>;
|
|
12
|
-
export declare function removeSemanticCollection(opts: {
|
|
13
|
-
readonly vault: string;
|
|
14
|
-
readonly index?: string;
|
|
15
|
-
readonly storage?: SemanticStorage;
|
|
16
|
-
readonly collection: string;
|
|
17
|
-
}): Promise<SemanticCollectionMutationResult>;
|
|
18
|
-
export declare function renameSemanticCollection(opts: {
|
|
19
|
-
readonly vault: string;
|
|
20
|
-
readonly index?: string;
|
|
21
|
-
readonly storage?: SemanticStorage;
|
|
22
|
-
readonly from: string;
|
|
23
|
-
readonly to: string;
|
|
24
|
-
}): Promise<SemanticCollectionMutationResult>;
|
|
25
|
-
export declare function updateSemanticCollection(opts: {
|
|
26
|
-
readonly vault: string;
|
|
27
|
-
readonly index?: string;
|
|
28
|
-
readonly storage?: SemanticStorage;
|
|
29
|
-
readonly collection: string;
|
|
30
|
-
readonly updateCommand?: string;
|
|
31
|
-
readonly includeByDefault?: boolean;
|
|
32
|
-
}): Promise<SemanticCollectionMutationResult>;
|