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
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// detectCommunities
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
/**
|
|
5
|
-
* Detect communities in the document graph via weighted label propagation.
|
|
6
|
-
*
|
|
7
|
-
* **Algorithm (current M1 implementation):**
|
|
8
|
-
* Synchronous greedy label propagation. Each node starts with a unique label.
|
|
9
|
-
* On each iteration, every node (in a deterministic shuffled order) adopts the
|
|
10
|
-
* label with the highest total incident-edge weight among its neighbours; ties
|
|
11
|
-
* are broken by choosing the lexicographically smallest label. Iteration
|
|
12
|
-
* stops when no label changes or `maxIterations` is reached.
|
|
13
|
-
*
|
|
14
|
-
* **Stability contract (for future Leiden/Louvain replacement):**
|
|
15
|
-
* This function's signature and the `Community` / `CommunityOptions` types are
|
|
16
|
-
* the stable public interface. A full Leiden algorithm (Traag et al., 2019)
|
|
17
|
-
* is deferred to a later milestone; the function body can be replaced without
|
|
18
|
-
* changing any caller.
|
|
19
|
-
*
|
|
20
|
-
* Absorbed interface pattern: graphify (MIT) — label-propagation structure.
|
|
21
|
-
* No verbatim code copied.
|
|
22
|
-
*
|
|
23
|
-
* NOTE: Full Leiden algorithm is deferred — current implementation is greedy
|
|
24
|
-
* label propagation sufficient for M1.
|
|
25
|
-
*/
|
|
26
|
-
export function detectCommunities(edges, opts = {}) {
|
|
27
|
-
const maxIterations = opts.maxIterations ?? 50;
|
|
28
|
-
const minSize = opts.minSize ?? 1;
|
|
29
|
-
// Collect all nodes (both endpoints of every edge).
|
|
30
|
-
const nodes = new Set();
|
|
31
|
-
for (const e of edges) {
|
|
32
|
-
nodes.add(e.from);
|
|
33
|
-
nodes.add(e.to);
|
|
34
|
-
}
|
|
35
|
-
if (nodes.size === 0)
|
|
36
|
-
return [];
|
|
37
|
-
// Build weighted symmetric adjacency: adjMap[u][v] = total weight.
|
|
38
|
-
const adjMap = new Map();
|
|
39
|
-
for (const node of nodes)
|
|
40
|
-
adjMap.set(node, new Map());
|
|
41
|
-
for (const e of edges) {
|
|
42
|
-
if (e.weight <= 0)
|
|
43
|
-
continue;
|
|
44
|
-
const fromAdj = adjMap.get(e.from);
|
|
45
|
-
if (fromAdj !== undefined)
|
|
46
|
-
fromAdj.set(e.to, (fromAdj.get(e.to) ?? 0) + e.weight);
|
|
47
|
-
const toAdj = adjMap.get(e.to);
|
|
48
|
-
if (toAdj !== undefined)
|
|
49
|
-
toAdj.set(e.from, (toAdj.get(e.from) ?? 0) + e.weight);
|
|
50
|
-
}
|
|
51
|
-
// Initialise: each node holds its own path as its community label.
|
|
52
|
-
const labels = new Map();
|
|
53
|
-
for (const node of nodes)
|
|
54
|
-
labels.set(node, node);
|
|
55
|
-
const nodeArr = Array.from(nodes);
|
|
56
|
-
// ── Label propagation iterations ─────────────────────────────────────────
|
|
57
|
-
for (let iter = 0; iter < maxIterations; iter++) {
|
|
58
|
-
// Deterministic per-iteration shuffle avoids ordering bias.
|
|
59
|
-
shuffleArray(nodeArr, iter);
|
|
60
|
-
let changed = false;
|
|
61
|
-
for (const node of nodeArr) {
|
|
62
|
-
const neighbours = adjMap.get(node);
|
|
63
|
-
if (!neighbours || neighbours.size === 0)
|
|
64
|
-
continue;
|
|
65
|
-
// Tally total weight per label across neighbours.
|
|
66
|
-
const tally = new Map();
|
|
67
|
-
for (const [neighbour, weight] of neighbours) {
|
|
68
|
-
const label = labels.get(neighbour);
|
|
69
|
-
if (label === undefined)
|
|
70
|
-
continue;
|
|
71
|
-
tally.set(label, (tally.get(label) ?? 0) + weight);
|
|
72
|
-
}
|
|
73
|
-
// Select best label: highest total weight; ties broken lexicographically.
|
|
74
|
-
const currentLabel = labels.get(node) ?? node;
|
|
75
|
-
let bestLabel = currentLabel;
|
|
76
|
-
let bestWeight = tally.get(currentLabel) ?? 0;
|
|
77
|
-
for (const [label, weight] of tally) {
|
|
78
|
-
if (weight > bestWeight || (weight === bestWeight && label < bestLabel)) {
|
|
79
|
-
bestLabel = label;
|
|
80
|
-
bestWeight = weight;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (bestLabel !== currentLabel) {
|
|
84
|
-
labels.set(node, bestLabel);
|
|
85
|
-
changed = true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (!changed)
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
// ── Group by final label and emit Community[] ─────────────────────────────
|
|
92
|
-
const groups = new Map();
|
|
93
|
-
for (const node of nodes) {
|
|
94
|
-
const label = labels.get(node) ?? node;
|
|
95
|
-
const group = groups.get(label) ?? [];
|
|
96
|
-
group.push(node);
|
|
97
|
-
groups.set(label, group);
|
|
98
|
-
}
|
|
99
|
-
return Array.from(groups.values())
|
|
100
|
-
.filter((members) => members.length >= minSize)
|
|
101
|
-
.sort((a, b) => b.length - a.length || (a[0] ?? "").localeCompare(b[0] ?? ""))
|
|
102
|
-
.map((members, idx) => ({ id: idx, members: members.slice().sort() }));
|
|
103
|
-
}
|
|
104
|
-
// ---------------------------------------------------------------------------
|
|
105
|
-
// Internal: deterministic per-iteration shuffle (Linear Congruential Generator)
|
|
106
|
-
// ---------------------------------------------------------------------------
|
|
107
|
-
/**
|
|
108
|
-
* In-place Fisher-Yates shuffle with a deterministic LCG seed so that each
|
|
109
|
-
* iteration uses a different but reproducible traversal order.
|
|
110
|
-
*/
|
|
111
|
-
function shuffleArray(arr, seed) {
|
|
112
|
-
// LCG parameters (Numerical Recipes)
|
|
113
|
-
let s = (seed + 1) | 0;
|
|
114
|
-
for (let i = arr.length - 1; i > 0; i--) {
|
|
115
|
-
s = Math.imul(s, 1664525) + 1013904223;
|
|
116
|
-
const j = Math.abs(s) % (i + 1);
|
|
117
|
-
const tmp = arr[i];
|
|
118
|
-
arr[i] = arr[j];
|
|
119
|
-
arr[j] = tmp;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=community.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"community.js","sourceRoot":"","sources":["../../../src/engine/graph/community.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Engine barrel — re-exports shared contracts now; component implementations
|
|
3
|
-
* will be added incrementally (embed in M2, graph in M3, retrieval in M4).
|
|
4
|
-
*/
|
|
5
|
-
export type { EngineConfig, ChunkerOptions, Chunk, EmbeddingProvider, ScoredHit, VectorStore, GraphEdge, GphQuery, Provenance, TypedSubQuery, RetrievalResult, } from "./types.js";
|
package/dist/engine/index.js
DELETED
package/dist/engine/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Engine MCP adapter layer barrel.
|
|
3
|
-
*
|
|
4
|
-
* Public surface for the integrate-phase assemble step:
|
|
5
|
-
* - McpEngineAdapter — the adapter facade (takes DispatcherDeps, never builds them)
|
|
6
|
-
* - queryOptionsToSubQueries / retrievalResultsToQueryResult — centerpiece mappers
|
|
7
|
-
* - Per-op mapper functions (sync, status, collections, contexts, cleanup, graph)
|
|
8
|
-
* - Axis-retrieve mapper functions
|
|
9
|
-
* - All mirrored MCP types (Mcp*) and engine-seam types (Engine*)
|
|
10
|
-
*/
|
|
11
|
-
export type { McpSemanticStorage, McpSemanticSearchMode, McpSemanticSearchFormat, McpSemanticTypedSearchType, McpSemanticTypedSearch, McpStatusOptions, McpSemanticQueryOptions, McpSemanticHitEvidence, McpSemanticSearchHit, McpSemanticQueryResult, McpSemanticEmbeddingSyncOptions, McpSemanticSyncStep, McpSemanticEmbeddingSyncResult, McpSemanticModels, McpSemanticIndexDocuments, McpSemanticIndexStatus, McpSemanticProviderStatus, McpSemanticCollectionSummary, McpSemanticCollectionResult, McpSemanticStoredContext, McpSemanticContextResult, McpSemanticCleanupResult, McpGraphBuildOptions, McpGraphBuildResult, McpGraphStatusResult, McpAxisFilters, McpRetrieveContextOptions, EngineSyncArgs, EngineSyncResult, EngineStatusArgs, EngineStatusResult, EngineGraphBuildArgs, EngineGraphBuildResult, } from "./types.js";
|
|
12
|
-
export { queryOptionsToSubQueries, retrievalResultsToQueryResult, queryResultUnavailable, } from "./query-mapper.js";
|
|
13
|
-
export { syncOptionsToEngineArgs, engineSyncResultToMcp, syncResultUnavailable, statusOptionsToEngineArgs, capsToEngineStatusResult, engineStatusResultToMcp, statusResultUnavailable, engineStatusToCollectionResult, engineStatusToContextResult, engineSyncResultToCleanupResult, cleanupResultUnavailable, graphBuildOptionsToEngineArgs, engineGraphBuildResultToMcp, engineGraphBuildToStatusResult, } from "./op-mappers.js";
|
|
14
|
-
export { axisFiltersToSubQueries, retrieveContextToSubQueries, retrievalResultsToAxisResult, } from "./retrieve-mapper.js";
|
|
15
|
-
export { McpEngineAdapter } from "./facade.js";
|
package/dist/engine/mcp/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Engine MCP adapter layer barrel.
|
|
3
|
-
*
|
|
4
|
-
* Public surface for the integrate-phase assemble step:
|
|
5
|
-
* - McpEngineAdapter — the adapter facade (takes DispatcherDeps, never builds them)
|
|
6
|
-
* - queryOptionsToSubQueries / retrievalResultsToQueryResult — centerpiece mappers
|
|
7
|
-
* - Per-op mapper functions (sync, status, collections, contexts, cleanup, graph)
|
|
8
|
-
* - Axis-retrieve mapper functions
|
|
9
|
-
* - All mirrored MCP types (Mcp*) and engine-seam types (Engine*)
|
|
10
|
-
*/
|
|
11
|
-
// Centerpiece: oms_semantic_query mappers
|
|
12
|
-
export { queryOptionsToSubQueries, retrievalResultsToQueryResult, queryResultUnavailable, } from "./query-mapper.js";
|
|
13
|
-
// Per-op mappers (sync, status, collections, contexts, cleanup, graph)
|
|
14
|
-
export { syncOptionsToEngineArgs, engineSyncResultToMcp, syncResultUnavailable, statusOptionsToEngineArgs, capsToEngineStatusResult, engineStatusResultToMcp, statusResultUnavailable, engineStatusToCollectionResult, engineStatusToContextResult, engineSyncResultToCleanupResult, cleanupResultUnavailable, graphBuildOptionsToEngineArgs, engineGraphBuildResultToMcp, engineGraphBuildToStatusResult, } from "./op-mappers.js";
|
|
15
|
-
// Axis-retrieve mappers
|
|
16
|
-
export { axisFiltersToSubQueries, retrieveContextToSubQueries, retrievalResultsToAxisResult, } from "./retrieve-mapper.js";
|
|
17
|
-
// Adapter facade
|
|
18
|
-
export { McpEngineAdapter } from "./facade.js";
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAuCH,0CAA0C;AAC1C,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,uEAAuE;AACvE,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,wBAAwB;AACxB,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request/response mappers for axis-based retrieval ops:
|
|
3
|
-
* oms_retrieve_by_axis — axis-first narrowing with optional lex query.
|
|
4
|
-
* oms_retrieve_context — axis narrowing + semantic fan-out.
|
|
5
|
-
*
|
|
6
|
-
* Both ops reduce to TypedSubQuery[] fan-outs:
|
|
7
|
-
* - Axis fields (concept/folder/wikilink/property+value) → "lex" sub-query.
|
|
8
|
-
* - Optional free-text `query` → "vec" sub-query.
|
|
9
|
-
* - Optional `semanticSearches` (oms_retrieve_context only) → typed sub-queries.
|
|
10
|
-
*
|
|
11
|
-
* The facade calls dispatch() on the combined list and maps results back through
|
|
12
|
-
* retrievalResultsToAxisResult.
|
|
13
|
-
*
|
|
14
|
-
* R18: NO import from src/search.
|
|
15
|
-
*/
|
|
16
|
-
import type { TypedSubQuery, RetrievalResult } from "../types.js";
|
|
17
|
-
import type { McpAxisFilters, McpRetrieveContextOptions, McpSemanticQueryResult } from "./types.js";
|
|
18
|
-
/**
|
|
19
|
-
* Map McpAxisFilters (oms_retrieve_by_axis) → TypedSubQuery[].
|
|
20
|
-
*
|
|
21
|
-
* Axis filters are composed into a single "lex" query string; the optional
|
|
22
|
-
* free-text `query` adds a "vec" sub-query for semantic ranking.
|
|
23
|
-
*/
|
|
24
|
-
export declare function axisFiltersToSubQueries(filters: McpAxisFilters): TypedSubQuery[];
|
|
25
|
-
/**
|
|
26
|
-
* Map McpRetrieveContextOptions (oms_retrieve_context) → TypedSubQuery[].
|
|
27
|
-
*
|
|
28
|
-
* Extends axisFiltersToSubQueries with optional semanticSearches fan-out.
|
|
29
|
-
* Deduplicates by keeping the order: axis-lex → axis-vec → semantic.
|
|
30
|
-
*/
|
|
31
|
-
export declare function retrieveContextToSubQueries(opts: McpRetrieveContextOptions): TypedSubQuery[];
|
|
32
|
-
/**
|
|
33
|
-
* Map engine RetrievalResult[] → McpSemanticQueryResult for axis retrieve ops.
|
|
34
|
-
*
|
|
35
|
-
* Shares the same shape as the query-mapper response, but limit is applied
|
|
36
|
-
* directly (no minScore on axis ops — axis narrowing already constrains set).
|
|
37
|
-
*/
|
|
38
|
-
export declare function retrievalResultsToAxisResult(results: readonly RetrievalResult[], limit?: number): McpSemanticQueryResult;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request/response mappers for axis-based retrieval ops:
|
|
3
|
-
* oms_retrieve_by_axis — axis-first narrowing with optional lex query.
|
|
4
|
-
* oms_retrieve_context — axis narrowing + semantic fan-out.
|
|
5
|
-
*
|
|
6
|
-
* Both ops reduce to TypedSubQuery[] fan-outs:
|
|
7
|
-
* - Axis fields (concept/folder/wikilink/property+value) → "lex" sub-query.
|
|
8
|
-
* - Optional free-text `query` → "vec" sub-query.
|
|
9
|
-
* - Optional `semanticSearches` (oms_retrieve_context only) → typed sub-queries.
|
|
10
|
-
*
|
|
11
|
-
* The facade calls dispatch() on the combined list and maps results back through
|
|
12
|
-
* retrievalResultsToAxisResult.
|
|
13
|
-
*
|
|
14
|
-
* R18: NO import from src/search.
|
|
15
|
-
*/
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
// Request mappers
|
|
18
|
-
// ---------------------------------------------------------------------------
|
|
19
|
-
/**
|
|
20
|
-
* Map McpAxisFilters (oms_retrieve_by_axis) → TypedSubQuery[].
|
|
21
|
-
*
|
|
22
|
-
* Axis filters are composed into a single "lex" query string; the optional
|
|
23
|
-
* free-text `query` adds a "vec" sub-query for semantic ranking.
|
|
24
|
-
*/
|
|
25
|
-
export function axisFiltersToSubQueries(filters) {
|
|
26
|
-
const parts = [];
|
|
27
|
-
if (filters.concept !== undefined && filters.concept.length > 0) {
|
|
28
|
-
parts.push(`concept:${filters.concept}`);
|
|
29
|
-
}
|
|
30
|
-
if (filters.folder !== undefined && filters.folder.length > 0) {
|
|
31
|
-
parts.push(`folder:${filters.folder}`);
|
|
32
|
-
}
|
|
33
|
-
if (filters.wikilink !== undefined && filters.wikilink.length > 0) {
|
|
34
|
-
parts.push(`wikilink:${filters.wikilink}`);
|
|
35
|
-
}
|
|
36
|
-
if (filters.property !== undefined &&
|
|
37
|
-
filters.property.length > 0 &&
|
|
38
|
-
filters.value !== undefined &&
|
|
39
|
-
filters.value.length > 0) {
|
|
40
|
-
parts.push(`${filters.property}:${filters.value}`);
|
|
41
|
-
}
|
|
42
|
-
const subQueries = [];
|
|
43
|
-
if (parts.length > 0) {
|
|
44
|
-
subQueries.push({ type: "lex", query: parts.join(" ") });
|
|
45
|
-
}
|
|
46
|
-
if (filters.query !== undefined && filters.query.length > 0) {
|
|
47
|
-
subQueries.push({ type: "vec", query: filters.query });
|
|
48
|
-
}
|
|
49
|
-
// Fallback: if no axis parts but a free-text query exists, lex-search on it.
|
|
50
|
-
if (subQueries.length === 0 && filters.query !== undefined && filters.query.length > 0) {
|
|
51
|
-
subQueries.push({ type: "lex", query: filters.query });
|
|
52
|
-
}
|
|
53
|
-
return subQueries;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Map McpRetrieveContextOptions (oms_retrieve_context) → TypedSubQuery[].
|
|
57
|
-
*
|
|
58
|
-
* Extends axisFiltersToSubQueries with optional semanticSearches fan-out.
|
|
59
|
-
* Deduplicates by keeping the order: axis-lex → axis-vec → semantic.
|
|
60
|
-
*/
|
|
61
|
-
export function retrieveContextToSubQueries(opts) {
|
|
62
|
-
const base = axisFiltersToSubQueries(opts);
|
|
63
|
-
if (opts.semanticSearches === undefined || opts.semanticSearches.length === 0) {
|
|
64
|
-
return base;
|
|
65
|
-
}
|
|
66
|
-
const semantic = opts.semanticSearches.map((s) => ({
|
|
67
|
-
type: s.type,
|
|
68
|
-
query: s.query,
|
|
69
|
-
}));
|
|
70
|
-
return [...base, ...semantic];
|
|
71
|
-
}
|
|
72
|
-
// ---------------------------------------------------------------------------
|
|
73
|
-
// Response mapper
|
|
74
|
-
// ---------------------------------------------------------------------------
|
|
75
|
-
/**
|
|
76
|
-
* Map engine RetrievalResult[] → McpSemanticQueryResult for axis retrieve ops.
|
|
77
|
-
*
|
|
78
|
-
* Shares the same shape as the query-mapper response, but limit is applied
|
|
79
|
-
* directly (no minScore on axis ops — axis narrowing already constrains set).
|
|
80
|
-
*/
|
|
81
|
-
export function retrievalResultsToAxisResult(results, limit) {
|
|
82
|
-
const hits = limit !== undefined ? results.slice(0, limit) : results;
|
|
83
|
-
const searchHits = hits.map((r) => ({
|
|
84
|
-
docid: r.docPath,
|
|
85
|
-
score: r.score,
|
|
86
|
-
uri: `vault://${r.docPath}`,
|
|
87
|
-
path: r.docPath,
|
|
88
|
-
snippet: "",
|
|
89
|
-
evidence: {
|
|
90
|
-
lexical: (r.perTypeScores?.["lex"] ?? 0) > 0,
|
|
91
|
-
vector: (r.perTypeScores?.["vec"] ?? 0) > 0 || (r.perTypeScores?.["hyde"] ?? 0) > 0,
|
|
92
|
-
},
|
|
93
|
-
}));
|
|
94
|
-
return { available: true, hits: searchHits };
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=retrieve-mapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retrieve-mapper.js","sourceRoot":"","sources":["../../../src/engine/mcp/retrieve-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ambiguity scoring for the Socratic setup interview.
|
|
3
|
-
*
|
|
4
|
-
* Self-reimplementation of the omc deep-interview methodology — method only, no code copied.
|
|
5
|
-
* Formula: ambiguity = 1 − mean(goal, constraint, criteria, context)
|
|
6
|
-
*/
|
|
7
|
-
import type { DimensionScore, InterviewConfig } from "./types.js";
|
|
8
|
-
/**
|
|
9
|
-
* Compute ambiguity from a set of scoring sub-dimensions.
|
|
10
|
-
*
|
|
11
|
-
* ambiguity = 1 − mean(goal, constraint, criteria, context)
|
|
12
|
-
*
|
|
13
|
-
* Returns a value in [0, 1]:
|
|
14
|
-
* 0 — fully resolved (no ambiguity)
|
|
15
|
-
* 1 — completely ambiguous (no sub-dimension scored)
|
|
16
|
-
*
|
|
17
|
-
* Returns 1 if scores is empty (worst-case: treat unknown as maximally ambiguous).
|
|
18
|
-
*/
|
|
19
|
-
export declare function computeAmbiguity(scores: DimensionScore): number;
|
|
20
|
-
/**
|
|
21
|
-
* Returns true when a dimension's ambiguity is at or below the configured threshold —
|
|
22
|
-
* i.e. the dimension is resolved enough to proceed to the challenge phase.
|
|
23
|
-
*/
|
|
24
|
-
export declare function meetsThreshold(scores: DimensionScore, config: Pick<InterviewConfig, "ambiguityThreshold">): boolean;
|
|
25
|
-
/** Validation error for a single sub-dimension. */
|
|
26
|
-
export interface ScoreValidationError {
|
|
27
|
-
subDimension: string;
|
|
28
|
-
message: string;
|
|
29
|
-
}
|
|
30
|
-
/** Result of validating a DimensionScore. */
|
|
31
|
-
export interface ScoreValidationResult {
|
|
32
|
-
valid: boolean;
|
|
33
|
-
errors: ScoreValidationError[];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Validate that all four scoring sub-dimensions are present and in [0, 1].
|
|
37
|
-
* Returns a typed validation result (never throws).
|
|
38
|
-
*/
|
|
39
|
-
export declare function validateScores(scores: DimensionScore): ScoreValidationResult;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ambiguity scoring for the Socratic setup interview.
|
|
3
|
-
*
|
|
4
|
-
* Self-reimplementation of the omc deep-interview methodology — method only, no code copied.
|
|
5
|
-
* Formula: ambiguity = 1 − mean(goal, constraint, criteria, context)
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Compute ambiguity from a set of scoring sub-dimensions.
|
|
9
|
-
*
|
|
10
|
-
* ambiguity = 1 − mean(goal, constraint, criteria, context)
|
|
11
|
-
*
|
|
12
|
-
* Returns a value in [0, 1]:
|
|
13
|
-
* 0 — fully resolved (no ambiguity)
|
|
14
|
-
* 1 — completely ambiguous (no sub-dimension scored)
|
|
15
|
-
*
|
|
16
|
-
* Returns 1 if scores is empty (worst-case: treat unknown as maximally ambiguous).
|
|
17
|
-
*/
|
|
18
|
-
export function computeAmbiguity(scores) {
|
|
19
|
-
const values = Object.values(scores);
|
|
20
|
-
if (values.length === 0)
|
|
21
|
-
return 1;
|
|
22
|
-
const mean = values.reduce((sum, v) => sum + v, 0) / values.length;
|
|
23
|
-
return 1 - mean;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Returns true when a dimension's ambiguity is at or below the configured threshold —
|
|
27
|
-
* i.e. the dimension is resolved enough to proceed to the challenge phase.
|
|
28
|
-
*/
|
|
29
|
-
export function meetsThreshold(scores, config) {
|
|
30
|
-
return computeAmbiguity(scores) <= config.ambiguityThreshold;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Validate that all four scoring sub-dimensions are present and in [0, 1].
|
|
34
|
-
* Returns a typed validation result (never throws).
|
|
35
|
-
*/
|
|
36
|
-
export function validateScores(scores) {
|
|
37
|
-
const required = ["goal", "constraint", "criteria", "context"];
|
|
38
|
-
const errors = [];
|
|
39
|
-
for (const key of required) {
|
|
40
|
-
const val = scores[key];
|
|
41
|
-
if (typeof val !== "number" || Number.isNaN(val) || val < 0 || val > 1) {
|
|
42
|
-
errors.push({
|
|
43
|
-
subDimension: key,
|
|
44
|
-
message: `must be a finite number in [0, 1], got ${val}`,
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return { valid: errors.length === 0, errors };
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=ambiguity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ambiguity.js","sourceRoot":"","sources":["../../../src/engine/setup/ambiguity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAa,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACnE,OAAO,CAAC,GAAG,IAAI,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAsB,EACtB,MAAmD;IAEnD,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,kBAAkB,CAAC;AAC/D,CAAC;AAcD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,QAAQ,GAAgC,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5F,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,GAAG;gBACjB,OAAO,EAAE,0CAA0C,GAAG,EAAE;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Local setup types for M5 Socratic setup interview.
|
|
3
|
-
*
|
|
4
|
-
* PARALLEL-SAFETY: These types are LOCAL to src/engine/setup/.
|
|
5
|
-
* Do NOT import from src/engine/types.ts (read-only per plan).
|
|
6
|
-
* Do NOT import from src/engine/{embed,graph,retrieval,index,compile,distill,wiki}/ (read-only per R18).
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* The four Socratic scoring sub-dimensions.
|
|
10
|
-
* Self-reimplemented from the omc deep-interview methodology — method only, no code copied.
|
|
11
|
-
*/
|
|
12
|
-
export type ScoringSubDimension = "goal" | "constraint" | "criteria" | "context";
|
|
13
|
-
/**
|
|
14
|
-
* Score map across all four scoring sub-dimensions.
|
|
15
|
-
* Each value is in [0, 1] — 1 means fully resolved, 0 means completely ambiguous.
|
|
16
|
-
*/
|
|
17
|
-
export type DimensionScore = Record<ScoringSubDimension, number>;
|
|
18
|
-
/** The exactly 6 binding dimensions resolved by the setup interview. */
|
|
19
|
-
export type BindingDimension = "tier_folder_mapping" | "provenance_grade_mapping" | "lint_schema_ssot" | "embedder_selection" | "ignore_for_external_apis" | "agent_writable_zone";
|
|
20
|
-
/** All 6 binding dimensions in canonical order (D1–D6). */
|
|
21
|
-
export declare const BINDING_DIMENSIONS: readonly BindingDimension[];
|
|
22
|
-
/** Configuration for the Socratic interview loop. */
|
|
23
|
-
export interface InterviewConfig {
|
|
24
|
-
/**
|
|
25
|
-
* Ambiguity threshold below which a dimension is considered resolved.
|
|
26
|
-
* Default: 0.20 (5% below this = confidently resolved).
|
|
27
|
-
*/
|
|
28
|
-
ambiguityThreshold: number;
|
|
29
|
-
/** Maximum Socratic exchange rounds per binding dimension. Default: 5. */
|
|
30
|
-
maxRoundsPerDimension: number;
|
|
31
|
-
}
|
|
32
|
-
/** Default interview configuration. Threshold and max rounds are configurable. */
|
|
33
|
-
export declare const DEFAULT_INTERVIEW_CONFIG: InterviewConfig;
|
|
34
|
-
/** Canonical tier for a vault folder (D1). */
|
|
35
|
-
export type Tier = "raw" | "processed" | "wiki";
|
|
36
|
-
/** Provenance grade for a vault folder (D2). */
|
|
37
|
-
export type ProvenanceGrade = "authored" | "curated" | "external-raw";
|
|
38
|
-
/** Resolved folder entry combining D1 (tier) and D2 (provenance). */
|
|
39
|
-
export interface FolderMapping {
|
|
40
|
-
intent: string;
|
|
41
|
-
tier: Tier;
|
|
42
|
-
provenance: ProvenanceGrade;
|
|
43
|
-
concept: string | null;
|
|
44
|
-
}
|
|
45
|
-
/** Lint schema SSOT location (D3). */
|
|
46
|
-
export type LintSchemaSSOT = "engine_default" | "vault_override";
|
|
47
|
-
/** Embedder provider options (D4). */
|
|
48
|
-
export type EmbedderProvider = "local" | "openai" | "stub";
|
|
49
|
-
/** Write routing law for agent-writable zone (D6). */
|
|
50
|
-
export type WriteRoutingLaw = "append_only" | "overwrite_allowed" | "create_only";
|
|
51
|
-
/**
|
|
52
|
-
* The fully-resolved taxonomy output of the setup interview.
|
|
53
|
-
*
|
|
54
|
-
* Non-Sticky Guard (HARD): this value is written ONLY to vault/.oms/taxonomy.yaml.
|
|
55
|
-
* NEVER written to core/ontology/taxonomy.yaml or any engine path.
|
|
56
|
-
* See src/engine/setup/writer.ts for enforcement.
|
|
57
|
-
*/
|
|
58
|
-
export interface TaxonomyOutput {
|
|
59
|
-
version: 1;
|
|
60
|
-
folders: Record<string, FolderMapping>;
|
|
61
|
-
lint: {
|
|
62
|
-
schema_ssot: LintSchemaSSOT;
|
|
63
|
-
};
|
|
64
|
-
embedder: {
|
|
65
|
-
provider: EmbedderProvider;
|
|
66
|
-
model: string;
|
|
67
|
-
};
|
|
68
|
-
ignore_for_external_apis: string[];
|
|
69
|
-
agent_writable_zone: string[];
|
|
70
|
-
write_routing_law: WriteRoutingLaw;
|
|
71
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Local setup types for M5 Socratic setup interview.
|
|
3
|
-
*
|
|
4
|
-
* PARALLEL-SAFETY: These types are LOCAL to src/engine/setup/.
|
|
5
|
-
* Do NOT import from src/engine/types.ts (read-only per plan).
|
|
6
|
-
* Do NOT import from src/engine/{embed,graph,retrieval,index,compile,distill,wiki}/ (read-only per R18).
|
|
7
|
-
*/
|
|
8
|
-
/** All 6 binding dimensions in canonical order (D1–D6). */
|
|
9
|
-
export const BINDING_DIMENSIONS = [
|
|
10
|
-
"tier_folder_mapping",
|
|
11
|
-
"provenance_grade_mapping",
|
|
12
|
-
"lint_schema_ssot",
|
|
13
|
-
"embedder_selection",
|
|
14
|
-
"ignore_for_external_apis",
|
|
15
|
-
"agent_writable_zone",
|
|
16
|
-
];
|
|
17
|
-
/** Default interview configuration. Threshold and max rounds are configurable. */
|
|
18
|
-
export const DEFAULT_INTERVIEW_CONFIG = {
|
|
19
|
-
ambiguityThreshold: 0.2,
|
|
20
|
-
maxRoundsPerDimension: 5,
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engine/setup/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC7D,qBAAqB;IACrB,0BAA0B;IAC1B,kBAAkB;IAClB,oBAAoB;IACpB,0BAA0B;IAC1B,qBAAqB;CACb,CAAC;AAaX,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,kBAAkB,EAAE,GAAG;IACvB,qBAAqB,EAAE,CAAC;CAChB,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Non-Sticky Guard: taxonomy output writer.
|
|
3
|
-
*
|
|
4
|
-
* HARD CONSTRAINT: writes ONLY to vault/.oms/taxonomy.yaml.
|
|
5
|
-
* Writing to core/ontology/taxonomy.yaml or any engine path is FORBIDDEN.
|
|
6
|
-
* This constraint is enforced by construction — the path is always derived
|
|
7
|
-
* from vaultRoot and validated before any disk I/O.
|
|
8
|
-
*
|
|
9
|
-
* Self-reimplementation of the omc deep-interview methodology — no code copied.
|
|
10
|
-
*/
|
|
11
|
-
import type { TaxonomyOutput } from "./types.js";
|
|
12
|
-
/**
|
|
13
|
-
* Resolve the canonical vault override path: `{vaultRoot}/.oms/taxonomy.yaml`.
|
|
14
|
-
*
|
|
15
|
-
* Enforces path confinement: the resolved path must start with the `.oms` dir
|
|
16
|
-
* inside vaultRoot. Throws if path traversal is detected.
|
|
17
|
-
*/
|
|
18
|
-
export declare function resolveVaultOverridePath(vaultRoot: string): string;
|
|
19
|
-
/**
|
|
20
|
-
* Write the resolved taxonomy output to `{vaultRoot}/.oms/taxonomy.yaml`.
|
|
21
|
-
*
|
|
22
|
-
* Non-Sticky Guard is enforced by construction:
|
|
23
|
-
* 1. resolveVaultOverridePath() confines the target to {vaultRoot}/.oms/.
|
|
24
|
-
* 2. guardAgainstEngineDefault() rejects any path matching the engine default.
|
|
25
|
-
* 3. Only after both checks pass does disk I/O proceed.
|
|
26
|
-
*
|
|
27
|
-
* Merges with any existing file — keys not present in `data` are preserved.
|
|
28
|
-
* Always sets `version: 1`.
|
|
29
|
-
*
|
|
30
|
-
* Returns the absolute path that was written.
|
|
31
|
-
*/
|
|
32
|
-
export declare function writeTaxonomyToVaultOverride(vaultRoot: string, data: TaxonomyOutput): Promise<string>;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Non-Sticky Guard: taxonomy output writer.
|
|
3
|
-
*
|
|
4
|
-
* HARD CONSTRAINT: writes ONLY to vault/.oms/taxonomy.yaml.
|
|
5
|
-
* Writing to core/ontology/taxonomy.yaml or any engine path is FORBIDDEN.
|
|
6
|
-
* This constraint is enforced by construction — the path is always derived
|
|
7
|
-
* from vaultRoot and validated before any disk I/O.
|
|
8
|
-
*
|
|
9
|
-
* Self-reimplementation of the omc deep-interview methodology — no code copied.
|
|
10
|
-
*/
|
|
11
|
-
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
12
|
-
import path from "node:path";
|
|
13
|
-
import { stringify as yamlStringify, parse as yamlParse } from "yaml";
|
|
14
|
-
/** Relative path from vault root to the override file (always this, never engine default). */
|
|
15
|
-
const VAULT_OVERRIDE_RELATIVE = path.join(".oms", "taxonomy.yaml");
|
|
16
|
-
/**
|
|
17
|
-
* Resolve the canonical vault override path: `{vaultRoot}/.oms/taxonomy.yaml`.
|
|
18
|
-
*
|
|
19
|
-
* Enforces path confinement: the resolved path must start with the `.oms` dir
|
|
20
|
-
* inside vaultRoot. Throws if path traversal is detected.
|
|
21
|
-
*/
|
|
22
|
-
export function resolveVaultOverridePath(vaultRoot) {
|
|
23
|
-
const omsDir = path.resolve(vaultRoot, ".oms");
|
|
24
|
-
const target = path.resolve(vaultRoot, VAULT_OVERRIDE_RELATIVE);
|
|
25
|
-
// Confinement check: target must be inside {vaultRoot}/.oms/
|
|
26
|
-
if (!target.startsWith(omsDir + path.sep) && target !== omsDir) {
|
|
27
|
-
throw new Error(`[Non-Sticky Guard] Resolved path "${target}" escapes the vault override zone "${omsDir}". Write refused.`);
|
|
28
|
-
}
|
|
29
|
-
return target;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Guard: throw if targetPath matches the engine default fragment.
|
|
33
|
-
* Called before any disk write.
|
|
34
|
-
*/
|
|
35
|
-
function guardAgainstEngineDefault(targetPath) {
|
|
36
|
-
// Normalise to forward slashes for cross-platform fragment matching.
|
|
37
|
-
const normalised = targetPath.replace(/\\/g, "/");
|
|
38
|
-
if (normalised.includes("core/ontology/taxonomy.yaml")) {
|
|
39
|
-
throw new Error(`[Non-Sticky Guard] Writing to engine default "core/ontology/taxonomy.yaml" is FORBIDDEN. ` +
|
|
40
|
-
`Use vault/.oms/taxonomy.yaml instead.`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Write the resolved taxonomy output to `{vaultRoot}/.oms/taxonomy.yaml`.
|
|
45
|
-
*
|
|
46
|
-
* Non-Sticky Guard is enforced by construction:
|
|
47
|
-
* 1. resolveVaultOverridePath() confines the target to {vaultRoot}/.oms/.
|
|
48
|
-
* 2. guardAgainstEngineDefault() rejects any path matching the engine default.
|
|
49
|
-
* 3. Only after both checks pass does disk I/O proceed.
|
|
50
|
-
*
|
|
51
|
-
* Merges with any existing file — keys not present in `data` are preserved.
|
|
52
|
-
* Always sets `version: 1`.
|
|
53
|
-
*
|
|
54
|
-
* Returns the absolute path that was written.
|
|
55
|
-
*/
|
|
56
|
-
export async function writeTaxonomyToVaultOverride(vaultRoot, data) {
|
|
57
|
-
const targetPath = resolveVaultOverridePath(vaultRoot);
|
|
58
|
-
guardAgainstEngineDefault(targetPath);
|
|
59
|
-
// Read existing file if present, then shallow-merge (data wins on conflict).
|
|
60
|
-
let merged = {};
|
|
61
|
-
try {
|
|
62
|
-
const existing = await readFile(targetPath, "utf8");
|
|
63
|
-
const parsed = yamlParse(existing);
|
|
64
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
65
|
-
merged = parsed;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
// File does not exist yet — start from empty.
|
|
70
|
-
}
|
|
71
|
-
// Spread data over existing, always forcing version: 1.
|
|
72
|
-
const output = { ...merged, ...data, version: 1 };
|
|
73
|
-
await mkdir(path.dirname(targetPath), { recursive: true });
|
|
74
|
-
await writeFile(targetPath, yamlStringify(output, { lineWidth: 120 }), "utf8");
|
|
75
|
-
return targetPath;
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=writer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/engine/setup/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtE,8FAA8F;AAC9F,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAEhE,6DAA6D;IAC7D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,sCAAsC,MAAM,mBAAmB,CAC3G,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,UAAkB;IACnD,qEAAqE;IACrE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,2FAA2F;YACzF,uCAAuC,CAC1C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,SAAiB,EACjB,IAAoB;IAEpB,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACvD,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAEtC,6EAA6E;IAC7E,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,MAAiC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;IAED,wDAAwD;IACxD,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAE3E,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAE/E,OAAO,UAAU,CAAC;AACpB,CAAC"}
|