@co-engram/core 0.1.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/LICENSE +21 -0
- package/README.md +167 -0
- package/dist/config/defaults.d.ts +45 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +70 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +84 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +230 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +145 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +14 -0
- package/dist/config/types.js.map +1 -0
- package/dist/contradiction/arbiter.d.ts +51 -0
- package/dist/contradiction/arbiter.d.ts.map +1 -0
- package/dist/contradiction/arbiter.js +112 -0
- package/dist/contradiction/arbiter.js.map +1 -0
- package/dist/contradiction/auto-degrade.d.ts +53 -0
- package/dist/contradiction/auto-degrade.d.ts.map +1 -0
- package/dist/contradiction/auto-degrade.js +79 -0
- package/dist/contradiction/auto-degrade.js.map +1 -0
- package/dist/contradiction/detector.d.ts +33 -0
- package/dist/contradiction/detector.d.ts.map +1 -0
- package/dist/contradiction/detector.js +76 -0
- package/dist/contradiction/detector.js.map +1 -0
- package/dist/contradiction/index.d.ts +11 -0
- package/dist/contradiction/index.d.ts.map +1 -0
- package/dist/contradiction/index.js +11 -0
- package/dist/contradiction/index.js.map +1 -0
- package/dist/contradiction/resolver.d.ts +45 -0
- package/dist/contradiction/resolver.d.ts.map +1 -0
- package/dist/contradiction/resolver.js +196 -0
- package/dist/contradiction/resolver.js.map +1 -0
- package/dist/contradiction/types.d.ts +73 -0
- package/dist/contradiction/types.d.ts.map +1 -0
- package/dist/contradiction/types.js +7 -0
- package/dist/contradiction/types.js.map +1 -0
- package/dist/dedup/dedupe.d.ts +49 -0
- package/dist/dedup/dedupe.d.ts.map +1 -0
- package/dist/dedup/dedupe.js +111 -0
- package/dist/dedup/dedupe.js.map +1 -0
- package/dist/dedup/hash.d.ts +27 -0
- package/dist/dedup/hash.d.ts.map +1 -0
- package/dist/dedup/hash.js +43 -0
- package/dist/dedup/hash.js.map +1 -0
- package/dist/dedup/index.d.ts +12 -0
- package/dist/dedup/index.d.ts.map +1 -0
- package/dist/dedup/index.js +12 -0
- package/dist/dedup/index.js.map +1 -0
- package/dist/dedup/llm-triage.d.ts +48 -0
- package/dist/dedup/llm-triage.d.ts.map +1 -0
- package/dist/dedup/llm-triage.js +100 -0
- package/dist/dedup/llm-triage.js.map +1 -0
- package/dist/dedup/merge.d.ts +41 -0
- package/dist/dedup/merge.d.ts.map +1 -0
- package/dist/dedup/merge.js +55 -0
- package/dist/dedup/merge.js.map +1 -0
- package/dist/dedup/similar.d.ts +45 -0
- package/dist/dedup/similar.d.ts.map +1 -0
- package/dist/dedup/similar.js +103 -0
- package/dist/dedup/similar.js.map +1 -0
- package/dist/dedup/types.d.ts +72 -0
- package/dist/dedup/types.d.ts.map +1 -0
- package/dist/dedup/types.js +18 -0
- package/dist/dedup/types.js.map +1 -0
- package/dist/disclosure/adaptive.d.ts +86 -0
- package/dist/disclosure/adaptive.d.ts.map +1 -0
- package/dist/disclosure/adaptive.js +196 -0
- package/dist/disclosure/adaptive.js.map +1 -0
- package/dist/disclosure/budget.d.ts +51 -0
- package/dist/disclosure/budget.d.ts.map +1 -0
- package/dist/disclosure/budget.js +91 -0
- package/dist/disclosure/budget.js.map +1 -0
- package/dist/disclosure/index.d.ts +11 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +11 -0
- package/dist/disclosure/index.js.map +1 -0
- package/dist/disclosure/tier-loader.d.ts +58 -0
- package/dist/disclosure/tier-loader.d.ts.map +1 -0
- package/dist/disclosure/tier-loader.js +205 -0
- package/dist/disclosure/tier-loader.js.map +1 -0
- package/dist/dreaming/decay.d.ts +46 -0
- package/dist/dreaming/decay.d.ts.map +1 -0
- package/dist/dreaming/decay.js +69 -0
- package/dist/dreaming/decay.js.map +1 -0
- package/dist/dreaming/deep.d.ts +48 -0
- package/dist/dreaming/deep.d.ts.map +1 -0
- package/dist/dreaming/deep.js +41 -0
- package/dist/dreaming/deep.js.map +1 -0
- package/dist/dreaming/index.d.ts +12 -0
- package/dist/dreaming/index.d.ts.map +1 -0
- package/dist/dreaming/index.js +12 -0
- package/dist/dreaming/index.js.map +1 -0
- package/dist/dreaming/light.d.ts +54 -0
- package/dist/dreaming/light.d.ts.map +1 -0
- package/dist/dreaming/light.js +114 -0
- package/dist/dreaming/light.js.map +1 -0
- package/dist/dreaming/rem.d.ts +128 -0
- package/dist/dreaming/rem.d.ts.map +1 -0
- package/dist/dreaming/rem.js +228 -0
- package/dist/dreaming/rem.js.map +1 -0
- package/dist/dreaming/scheduler.d.ts +75 -0
- package/dist/dreaming/scheduler.d.ts.map +1 -0
- package/dist/dreaming/scheduler.js +138 -0
- package/dist/dreaming/scheduler.js.map +1 -0
- package/dist/dreaming/trash.d.ts +174 -0
- package/dist/dreaming/trash.d.ts.map +1 -0
- package/dist/dreaming/trash.js +466 -0
- package/dist/dreaming/trash.js.map +1 -0
- package/dist/evolution/category.d.ts +127 -0
- package/dist/evolution/category.d.ts.map +1 -0
- package/dist/evolution/category.js +271 -0
- package/dist/evolution/category.js.map +1 -0
- package/dist/evolution/index.d.ts +8 -0
- package/dist/evolution/index.d.ts.map +1 -0
- package/dist/evolution/index.js +8 -0
- package/dist/evolution/index.js.map +1 -0
- package/dist/evolution/triggered.d.ts +107 -0
- package/dist/evolution/triggered.d.ts.map +1 -0
- package/dist/evolution/triggered.js +278 -0
- package/dist/evolution/triggered.js.map +1 -0
- package/dist/generative/cross-pollinate.d.ts +144 -0
- package/dist/generative/cross-pollinate.d.ts.map +1 -0
- package/dist/generative/cross-pollinate.js +390 -0
- package/dist/generative/cross-pollinate.js.map +1 -0
- package/dist/generative/gap-detector.d.ts +80 -0
- package/dist/generative/gap-detector.d.ts.map +1 -0
- package/dist/generative/gap-detector.js +250 -0
- package/dist/generative/gap-detector.js.map +1 -0
- package/dist/generative/hypothesis.d.ts +161 -0
- package/dist/generative/hypothesis.d.ts.map +1 -0
- package/dist/generative/hypothesis.js +356 -0
- package/dist/generative/hypothesis.js.map +1 -0
- package/dist/generative/index.d.ts +9 -0
- package/dist/generative/index.d.ts.map +1 -0
- package/dist/generative/index.js +9 -0
- package/dist/generative/index.js.map +1 -0
- package/dist/graph/clustering.d.ts +117 -0
- package/dist/graph/clustering.d.ts.map +1 -0
- package/dist/graph/clustering.js +196 -0
- package/dist/graph/clustering.js.map +1 -0
- package/dist/graph/index.d.ts +13 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +13 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/layout.d.ts +46 -0
- package/dist/graph/layout.d.ts.map +1 -0
- package/dist/graph/layout.js +269 -0
- package/dist/graph/layout.js.map +1 -0
- package/dist/graph/presets.d.ts +134 -0
- package/dist/graph/presets.d.ts.map +1 -0
- package/dist/graph/presets.js +190 -0
- package/dist/graph/presets.js.map +1 -0
- package/dist/graph/registry.d.ts +42 -0
- package/dist/graph/registry.d.ts.map +1 -0
- package/dist/graph/registry.js +158 -0
- package/dist/graph/registry.js.map +1 -0
- package/dist/graph/snapshot.d.ts +113 -0
- package/dist/graph/snapshot.d.ts.map +1 -0
- package/dist/graph/snapshot.js +194 -0
- package/dist/graph/snapshot.js.map +1 -0
- package/dist/graph/traverse.d.ts +84 -0
- package/dist/graph/traverse.d.ts.map +1 -0
- package/dist/graph/traverse.js +190 -0
- package/dist/graph/traverse.js.map +1 -0
- package/dist/graph/view-config.d.ts +99 -0
- package/dist/graph/view-config.d.ts.map +1 -0
- package/dist/graph/view-config.js +208 -0
- package/dist/graph/view-config.js.map +1 -0
- package/dist/host/detect-git-author.d.ts +26 -0
- package/dist/host/detect-git-author.d.ts.map +1 -0
- package/dist/host/detect-git-author.js +53 -0
- package/dist/host/detect-git-author.js.map +1 -0
- package/dist/host/index.d.ts +7 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +7 -0
- package/dist/host/index.js.map +1 -0
- package/dist/i18n/en.d.ts +8 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +211 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/field-names.d.ts +95 -0
- package/dist/i18n/field-names.d.ts.map +1 -0
- package/dist/i18n/field-names.js +329 -0
- package/dist/i18n/field-names.js.map +1 -0
- package/dist/i18n/index.d.ts +92 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +135 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/types.d.ts +92 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +7 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/i18n/zh.d.ts +197 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +216 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/importance/index.d.ts +7 -0
- package/dist/importance/index.d.ts.map +1 -0
- package/dist/importance/index.js +7 -0
- package/dist/importance/index.js.map +1 -0
- package/dist/importance/vector.d.ts +113 -0
- package/dist/importance/vector.d.ts.map +1 -0
- package/dist/importance/vector.js +202 -0
- package/dist/importance/vector.js.map +1 -0
- package/dist/index/digest-builder.d.ts +59 -0
- package/dist/index/digest-builder.d.ts.map +1 -0
- package/dist/index/digest-builder.js +195 -0
- package/dist/index/digest-builder.js.map +1 -0
- package/dist/index/graph-builder.d.ts +32 -0
- package/dist/index/graph-builder.d.ts.map +1 -0
- package/dist/index/graph-builder.js +104 -0
- package/dist/index/graph-builder.js.map +1 -0
- package/dist/index/incremental.d.ts +31 -0
- package/dist/index/incremental.d.ts.map +1 -0
- package/dist/index/incremental.js +47 -0
- package/dist/index/incremental.js.map +1 -0
- package/dist/index/index.d.ts +11 -0
- package/dist/index/index.d.ts.map +1 -0
- package/dist/index/index.js +11 -0
- package/dist/index/index.js.map +1 -0
- package/dist/index/orchestrator.d.ts +60 -0
- package/dist/index/orchestrator.d.ts.map +1 -0
- package/dist/index/orchestrator.js +99 -0
- package/dist/index/orchestrator.js.map +1 -0
- package/dist/index/types.d.ts +116 -0
- package/dist/index/types.d.ts.map +1 -0
- package/dist/index/types.js +10 -0
- package/dist/index/types.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/learning/index.d.ts +7 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +7 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/loop.d.ts +79 -0
- package/dist/learning/loop.d.ts.map +1 -0
- package/dist/learning/loop.js +116 -0
- package/dist/learning/loop.js.map +1 -0
- package/dist/lifecycle/freshness.d.ts +35 -0
- package/dist/lifecycle/freshness.d.ts.map +1 -0
- package/dist/lifecycle/freshness.js +60 -0
- package/dist/lifecycle/freshness.js.map +1 -0
- package/dist/lifecycle/index.d.ts +7 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +7 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lineage/index.d.ts +10 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +10 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/trace.d.ts +142 -0
- package/dist/lineage/trace.d.ts.map +1 -0
- package/dist/lineage/trace.js +316 -0
- package/dist/lineage/trace.js.map +1 -0
- package/dist/maintenance/engine.d.ts +78 -0
- package/dist/maintenance/engine.d.ts.map +1 -0
- package/dist/maintenance/engine.js +291 -0
- package/dist/maintenance/engine.js.map +1 -0
- package/dist/maintenance/index.d.ts +8 -0
- package/dist/maintenance/index.d.ts.map +1 -0
- package/dist/maintenance/index.js +8 -0
- package/dist/maintenance/index.js.map +1 -0
- package/dist/maintenance/types.d.ts +111 -0
- package/dist/maintenance/types.d.ts.map +1 -0
- package/dist/maintenance/types.js +24 -0
- package/dist/maintenance/types.js.map +1 -0
- package/dist/observability/audit-log.d.ts +77 -0
- package/dist/observability/audit-log.d.ts.map +1 -0
- package/dist/observability/audit-log.js +101 -0
- package/dist/observability/audit-log.js.map +1 -0
- package/dist/observability/effectiveness-tracker.d.ts +162 -0
- package/dist/observability/effectiveness-tracker.d.ts.map +1 -0
- package/dist/observability/effectiveness-tracker.js +251 -0
- package/dist/observability/effectiveness-tracker.js.map +1 -0
- package/dist/observability/index.d.ts +16 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +16 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/necessity-evaluator.d.ts +116 -0
- package/dist/observability/necessity-evaluator.d.ts.map +1 -0
- package/dist/observability/necessity-evaluator.js +487 -0
- package/dist/observability/necessity-evaluator.js.map +1 -0
- package/dist/observability/proposal-engine.d.ts +224 -0
- package/dist/observability/proposal-engine.d.ts.map +1 -0
- package/dist/observability/proposal-engine.js +651 -0
- package/dist/observability/proposal-engine.js.map +1 -0
- package/dist/perspectives/index.d.ts +7 -0
- package/dist/perspectives/index.d.ts.map +1 -0
- package/dist/perspectives/index.js +7 -0
- package/dist/perspectives/index.js.map +1 -0
- package/dist/perspectives/multi-view.d.ts +81 -0
- package/dist/perspectives/multi-view.d.ts.map +1 -0
- package/dist/perspectives/multi-view.js +221 -0
- package/dist/perspectives/multi-view.js.map +1 -0
- package/dist/prompt-builder/builder.d.ts +47 -0
- package/dist/prompt-builder/builder.d.ts.map +1 -0
- package/dist/prompt-builder/builder.js +136 -0
- package/dist/prompt-builder/builder.js.map +1 -0
- package/dist/prompt-builder/index.d.ts +8 -0
- package/dist/prompt-builder/index.d.ts.map +1 -0
- package/dist/prompt-builder/index.js +8 -0
- package/dist/prompt-builder/index.js.map +1 -0
- package/dist/prompt-builder/types.d.ts +42 -0
- package/dist/prompt-builder/types.d.ts.map +1 -0
- package/dist/prompt-builder/types.js +10 -0
- package/dist/prompt-builder/types.js.map +1 -0
- package/dist/prompt-signals/cache.d.ts +36 -0
- package/dist/prompt-signals/cache.d.ts.map +1 -0
- package/dist/prompt-signals/cache.js +70 -0
- package/dist/prompt-signals/cache.js.map +1 -0
- package/dist/prompt-signals/index.d.ts +12 -0
- package/dist/prompt-signals/index.d.ts.map +1 -0
- package/dist/prompt-signals/index.js +11 -0
- package/dist/prompt-signals/index.js.map +1 -0
- package/dist/prompt-signals/stats.d.ts +45 -0
- package/dist/prompt-signals/stats.d.ts.map +1 -0
- package/dist/prompt-signals/stats.js +119 -0
- package/dist/prompt-signals/stats.js.map +1 -0
- package/dist/prompt-signals/types.d.ts +53 -0
- package/dist/prompt-signals/types.d.ts.map +1 -0
- package/dist/prompt-signals/types.js +34 -0
- package/dist/prompt-signals/types.js.map +1 -0
- package/dist/provenance/index.d.ts +7 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +7 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/reliability.d.ts +133 -0
- package/dist/provenance/reliability.d.ts.map +1 -0
- package/dist/provenance/reliability.js +213 -0
- package/dist/provenance/reliability.js.map +1 -0
- package/dist/reinforcement/config.d.ts +34 -0
- package/dist/reinforcement/config.d.ts.map +1 -0
- package/dist/reinforcement/config.js +43 -0
- package/dist/reinforcement/config.js.map +1 -0
- package/dist/reinforcement/index.d.ts +12 -0
- package/dist/reinforcement/index.d.ts.map +1 -0
- package/dist/reinforcement/index.js +12 -0
- package/dist/reinforcement/index.js.map +1 -0
- package/dist/reinforcement/ltd.d.ts +59 -0
- package/dist/reinforcement/ltd.d.ts.map +1 -0
- package/dist/reinforcement/ltd.js +90 -0
- package/dist/reinforcement/ltd.js.map +1 -0
- package/dist/reinforcement/ltp.d.ts +63 -0
- package/dist/reinforcement/ltp.d.ts.map +1 -0
- package/dist/reinforcement/ltp.js +99 -0
- package/dist/reinforcement/ltp.js.map +1 -0
- package/dist/reinforcement/related.d.ts +39 -0
- package/dist/reinforcement/related.d.ts.map +1 -0
- package/dist/reinforcement/related.js +92 -0
- package/dist/reinforcement/related.js.map +1 -0
- package/dist/retrieval/filter.d.ts +18 -0
- package/dist/retrieval/filter.d.ts.map +1 -0
- package/dist/retrieval/filter.js +68 -0
- package/dist/retrieval/filter.js.map +1 -0
- package/dist/retrieval/fts.d.ts +44 -0
- package/dist/retrieval/fts.d.ts.map +1 -0
- package/dist/retrieval/fts.js +120 -0
- package/dist/retrieval/fts.js.map +1 -0
- package/dist/retrieval/index.d.ts +10 -0
- package/dist/retrieval/index.d.ts.map +1 -0
- package/dist/retrieval/index.js +10 -0
- package/dist/retrieval/index.js.map +1 -0
- package/dist/retrieval/orchestrator.d.ts +78 -0
- package/dist/retrieval/orchestrator.d.ts.map +1 -0
- package/dist/retrieval/orchestrator.js +156 -0
- package/dist/retrieval/orchestrator.js.map +1 -0
- package/dist/retrieval/scoring.d.ts +105 -0
- package/dist/retrieval/scoring.d.ts.map +1 -0
- package/dist/retrieval/scoring.js +165 -0
- package/dist/retrieval/scoring.js.map +1 -0
- package/dist/signals/extract.d.ts +98 -0
- package/dist/signals/extract.d.ts.map +1 -0
- package/dist/signals/extract.js +388 -0
- package/dist/signals/extract.js.map +1 -0
- package/dist/signals/file-sink.d.ts +81 -0
- package/dist/signals/file-sink.d.ts.map +1 -0
- package/dist/signals/file-sink.js +227 -0
- package/dist/signals/file-sink.js.map +1 -0
- package/dist/signals/index.d.ts +12 -0
- package/dist/signals/index.d.ts.map +1 -0
- package/dist/signals/index.js +12 -0
- package/dist/signals/index.js.map +1 -0
- package/dist/signals/rpe.d.ts +60 -0
- package/dist/signals/rpe.d.ts.map +1 -0
- package/dist/signals/rpe.js +68 -0
- package/dist/signals/rpe.js.map +1 -0
- package/dist/signals/types.d.ts +80 -0
- package/dist/signals/types.d.ts.map +1 -0
- package/dist/signals/types.js +14 -0
- package/dist/signals/types.js.map +1 -0
- package/dist/storage/engram-index.d.ts +73 -0
- package/dist/storage/engram-index.d.ts.map +1 -0
- package/dist/storage/engram-index.js +215 -0
- package/dist/storage/engram-index.js.map +1 -0
- package/dist/storage/engram-store.d.ts +147 -0
- package/dist/storage/engram-store.d.ts.map +1 -0
- package/dist/storage/engram-store.js +221 -0
- package/dist/storage/engram-store.js.map +1 -0
- package/dist/storage/git-stage.d.ts +56 -0
- package/dist/storage/git-stage.d.ts.map +1 -0
- package/dist/storage/git-stage.js +147 -0
- package/dist/storage/git-stage.js.map +1 -0
- package/dist/storage/git.d.ts +57 -0
- package/dist/storage/git.d.ts.map +1 -0
- package/dist/storage/git.js +156 -0
- package/dist/storage/git.js.map +1 -0
- package/dist/storage/hash.d.ts +23 -0
- package/dist/storage/hash.d.ts.map +1 -0
- package/dist/storage/hash.js +31 -0
- package/dist/storage/hash.js.map +1 -0
- package/dist/storage/index.d.ts +14 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +14 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/path.d.ts +51 -0
- package/dist/storage/path.d.ts.map +1 -0
- package/dist/storage/path.js +72 -0
- package/dist/storage/path.js.map +1 -0
- package/dist/storage/repository.d.ts +342 -0
- package/dist/storage/repository.d.ts.map +1 -0
- package/dist/storage/repository.js +1221 -0
- package/dist/storage/repository.js.map +1 -0
- package/dist/storage/synapse-store.d.ts +113 -0
- package/dist/storage/synapse-store.d.ts.map +1 -0
- package/dist/storage/synapse-store.js +279 -0
- package/dist/storage/synapse-store.js.map +1 -0
- package/dist/tools/doctor-tools.d.ts +53 -0
- package/dist/tools/doctor-tools.d.ts.map +1 -0
- package/dist/tools/doctor-tools.js +97 -0
- package/dist/tools/doctor-tools.js.map +1 -0
- package/dist/tools/engram-tools.d.ts +166 -0
- package/dist/tools/engram-tools.d.ts.map +1 -0
- package/dist/tools/engram-tools.js +834 -0
- package/dist/tools/engram-tools.js.map +1 -0
- package/dist/tools/index.d.ts +16 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/llm-descriptions.d.ts +61 -0
- package/dist/tools/llm-descriptions.d.ts.map +1 -0
- package/dist/tools/llm-descriptions.js +556 -0
- package/dist/tools/llm-descriptions.js.map +1 -0
- package/dist/tools/proposal-tools.d.ts +40 -0
- package/dist/tools/proposal-tools.d.ts.map +1 -0
- package/dist/tools/proposal-tools.js +99 -0
- package/dist/tools/proposal-tools.js.map +1 -0
- package/dist/tools/registry.d.ts +30 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +43 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/schemas.d.ts +715 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +383 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/skill-tools.d.ts +26 -0
- package/dist/tools/skill-tools.d.ts.map +1 -0
- package/dist/tools/skill-tools.js +84 -0
- package/dist/tools/skill-tools.js.map +1 -0
- package/dist/tools/synapse-tools.d.ts +28 -0
- package/dist/tools/synapse-tools.d.ts.map +1 -0
- package/dist/tools/synapse-tools.js +177 -0
- package/dist/tools/synapse-tools.js.map +1 -0
- package/dist/tools/tool.d.ts +84 -0
- package/dist/tools/tool.d.ts.map +1 -0
- package/dist/tools/tool.js +22 -0
- package/dist/tools/tool.js.map +1 -0
- package/dist/tools/wrapped.d.ts +28 -0
- package/dist/tools/wrapped.d.ts.map +1 -0
- package/dist/tools/wrapped.js +172 -0
- package/dist/tools/wrapped.js.map +1 -0
- package/dist/types/disclosure.d.ts +70 -0
- package/dist/types/disclosure.d.ts.map +1 -0
- package/dist/types/disclosure.js +9 -0
- package/dist/types/disclosure.js.map +1 -0
- package/dist/types/engram.d.ts +203 -0
- package/dist/types/engram.d.ts.map +1 -0
- package/dist/types/engram.js +7 -0
- package/dist/types/engram.js.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/intention.d.ts +91 -0
- package/dist/types/intention.d.ts.map +1 -0
- package/dist/types/intention.js +9 -0
- package/dist/types/intention.js.map +1 -0
- package/dist/types/repository-types.d.ts +113 -0
- package/dist/types/repository-types.d.ts.map +1 -0
- package/dist/types/repository-types.js +18 -0
- package/dist/types/repository-types.js.map +1 -0
- package/dist/types/scene.d.ts +52 -0
- package/dist/types/scene.d.ts.map +1 -0
- package/dist/types/scene.js +12 -0
- package/dist/types/scene.js.map +1 -0
- package/dist/types/skill.d.ts +107 -0
- package/dist/types/skill.d.ts.map +1 -0
- package/dist/types/skill.js +10 -0
- package/dist/types/skill.js.map +1 -0
- package/dist/types/slugify.d.ts +34 -0
- package/dist/types/slugify.d.ts.map +1 -0
- package/dist/types/slugify.js +55 -0
- package/dist/types/slugify.js.map +1 -0
- package/dist/types/synapse-id.d.ts +22 -0
- package/dist/types/synapse-id.d.ts.map +1 -0
- package/dist/types/synapse-id.js +34 -0
- package/dist/types/synapse-id.js.map +1 -0
- package/dist/types/synapse.d.ts +99 -0
- package/dist/types/synapse.d.ts.map +1 -0
- package/dist/types/synapse.js +9 -0
- package/dist/types/synapse.js.map +1 -0
- package/dist/verification/index.d.ts +11 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +11 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/metacognition.d.ts +102 -0
- package/dist/verification/metacognition.d.ts.map +1 -0
- package/dist/verification/metacognition.js +284 -0
- package/dist/verification/metacognition.js.map +1 -0
- package/dist/verification/state-machine.d.ts +77 -0
- package/dist/verification/state-machine.d.ts.map +1 -0
- package/dist/verification/state-machine.js +126 -0
- package/dist/verification/state-machine.js.map +1 -0
- package/dist/verification/upgrade.d.ts +133 -0
- package/dist/verification/upgrade.d.ts.map +1 -0
- package/dist/verification/upgrade.js +364 -0
- package/dist/verification/upgrade.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 配置类型定义
|
|
3
|
+
*
|
|
4
|
+
* dataRoot 内 `.co-engram/config.json` 的 schema。
|
|
5
|
+
* 单一权威来源:env 仅保留 bootstrap 入口(DATA_ROOT)和敏感项(VIEWER_TOKEN),
|
|
6
|
+
* 其他全部配置项以本文件中的 schema 为准。
|
|
7
|
+
*
|
|
8
|
+
* 子系统配置类型复用各模块已有的接口(maintenance/MaintenanceConfig 等),
|
|
9
|
+
* 本文件仅补充 config.json 专用的"开关 + 调参"包装。
|
|
10
|
+
*
|
|
11
|
+
* @module @co-engram/core/config
|
|
12
|
+
*/
|
|
13
|
+
import type { Language } from "../i18n/types.js";
|
|
14
|
+
import type { MaintenanceConfig as EngineMaintenanceConfig } from "../maintenance/types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Maintenance 子系统在 config.json 中的配置
|
|
17
|
+
*
|
|
18
|
+
* 在引擎用的 {@link EngineMaintenanceConfig} 基础上,加一个 `enabled` 开关字段。
|
|
19
|
+
* `enabled=false` 时三阶段都不跑。
|
|
20
|
+
*/
|
|
21
|
+
export interface MaintenanceSectionConfig extends EngineMaintenanceConfig {
|
|
22
|
+
/** 总开关(false 时三阶段都不跑;默认 true,遵循 low-friction-defaults) */
|
|
23
|
+
readonly enabled?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Proposal Engine 配置(与 observability/proposal-engine 的 ProposalEngineConfig 对齐)
|
|
27
|
+
*/
|
|
28
|
+
export interface ProposalsSectionConfig {
|
|
29
|
+
/** 启用候选记忆捕获(默认 true) */
|
|
30
|
+
readonly enabled?: boolean;
|
|
31
|
+
/** 归簇触发阈值 */
|
|
32
|
+
readonly threshold?: number;
|
|
33
|
+
/** 相似度阈值 (0,1] */
|
|
34
|
+
readonly similarityThreshold?: number;
|
|
35
|
+
/** 单个 cluster 保留的最大样本数 */
|
|
36
|
+
readonly maxSamples?: number;
|
|
37
|
+
/** 触发 observe 的最小消息长度(过滤短消息) */
|
|
38
|
+
readonly minMessageLength?: number;
|
|
39
|
+
/** dismiss 后多少天内不再提示 */
|
|
40
|
+
readonly defaultDismissDays?: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Audit 子系统在 config.json 中的配置
|
|
44
|
+
*/
|
|
45
|
+
export interface AuditSectionConfig {
|
|
46
|
+
/** 启用审计日志(默认 true) */
|
|
47
|
+
readonly enabled?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Effectiveness 子系统在 config.json 中的配置
|
|
51
|
+
*/
|
|
52
|
+
export interface EffectivenessSectionConfig {
|
|
53
|
+
/** 启用有效性追踪(默认 true) */
|
|
54
|
+
readonly enabled?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Viewer 子系统在 config.json 中的配置(不含 token)
|
|
58
|
+
*/
|
|
59
|
+
export interface ViewerSectionConfig {
|
|
60
|
+
/** 启用 web viewer(默认跟随 proposal engine) */
|
|
61
|
+
readonly enabled?: boolean;
|
|
62
|
+
/** viewer 监听端口(默认 18799) */
|
|
63
|
+
readonly port?: number;
|
|
64
|
+
/** viewer 对外可达 URL */
|
|
65
|
+
readonly url?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* MCP server 协议身份
|
|
69
|
+
*/
|
|
70
|
+
export interface ServerSectionConfig {
|
|
71
|
+
/** MCP server name(默认 'co-engram') */
|
|
72
|
+
readonly name?: string;
|
|
73
|
+
/** MCP server version(默认 '0.0.0') */
|
|
74
|
+
readonly version?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* team-memory 持久化配置形状
|
|
78
|
+
*
|
|
79
|
+
* 由 `co-engram init` 或自愈机制写入,启动时以本文件为单一权威。
|
|
80
|
+
*
|
|
81
|
+
* 顶级字段(非子系统调参)保持平铺:
|
|
82
|
+
* - `language` / `defaultCreatedBy` / `toolsProfile` / `migratedToLanguage`
|
|
83
|
+
*
|
|
84
|
+
* `desiredDataRoot` 是 viewer 写入的"下次启动 dataRoot redirect hint",
|
|
85
|
+
* bootstrap 阶段读到时,把 dataRoot 切到该值;其他字段以 redirect 后的 dataRoot
|
|
86
|
+
* 内 config.json 为准。
|
|
87
|
+
*/
|
|
88
|
+
export interface TeamMemoryConfig {
|
|
89
|
+
/** schema 版本 */
|
|
90
|
+
readonly version: 1;
|
|
91
|
+
/** 工具描述、查看器 UI、提示词所用语言 */
|
|
92
|
+
readonly language?: Language;
|
|
93
|
+
/** 默认作者标识(git > config > env > 'unknown') */
|
|
94
|
+
readonly defaultCreatedBy?: string;
|
|
95
|
+
/** 创建时间 ISO */
|
|
96
|
+
readonly createdAt?: string;
|
|
97
|
+
/** 初始化工具版本 */
|
|
98
|
+
readonly initializedBy?: string;
|
|
99
|
+
/** 已迁移到的磁盘字段语言格式(避免重复 migrate) */
|
|
100
|
+
readonly migratedToLanguage?: Language;
|
|
101
|
+
/** Claude Code MCP 工具暴露 profile('minimal' | 'standard' | 'full') */
|
|
102
|
+
readonly toolsProfile?: string;
|
|
103
|
+
/**
|
|
104
|
+
* 必要性评估 LLM 配置(可选)
|
|
105
|
+
*
|
|
106
|
+
* 配置后,proposal engine 在 cluster 晋升前会用 LLM 判断"是否值得固化为团队记忆",
|
|
107
|
+
* 失败 fallback 到 RuleBasedNecessityEvaluator(规则版)。
|
|
108
|
+
* 不配置时,根据 host 环境探测:
|
|
109
|
+
* - claude-code-mcp:从 env ANTHROPIC_API_KEY 自动构造
|
|
110
|
+
* - openclaw-plugin:从 ~/.openclaw/openclaw.json 自动构造
|
|
111
|
+
* 探测失败时只走规则版,零 LLM 成本。
|
|
112
|
+
*/
|
|
113
|
+
readonly necessityLlm?: {
|
|
114
|
+
/** API key(env 优先) */
|
|
115
|
+
readonly apiKey?: string;
|
|
116
|
+
/** 模型名 */
|
|
117
|
+
readonly model?: string;
|
|
118
|
+
/** 可选自定义 endpoint */
|
|
119
|
+
readonly endpoint?: string;
|
|
120
|
+
/** 可选额外 headers */
|
|
121
|
+
readonly headers?: Record<string, string>;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* 下次启动期望的数据根目录(viewer 写入)
|
|
125
|
+
*
|
|
126
|
+
* bootstrap 阶段若读到此字段,会把 dataRoot 切到该值。
|
|
127
|
+
* **redirect 语义**:仅作为下次启动的 dataRoot hint,
|
|
128
|
+
* 其他配置字段仍以 redirect 后的 dataRoot 内 config.json 为准。
|
|
129
|
+
*/
|
|
130
|
+
readonly desiredDataRoot?: string;
|
|
131
|
+
/** Maintenance 子系统配置 */
|
|
132
|
+
readonly maintenance?: MaintenanceSectionConfig;
|
|
133
|
+
/** Proposals 子系统配置 */
|
|
134
|
+
readonly proposals?: ProposalsSectionConfig;
|
|
135
|
+
/** Audit 子系统配置 */
|
|
136
|
+
readonly audit?: AuditSectionConfig;
|
|
137
|
+
/** Effectiveness 子系统配置 */
|
|
138
|
+
readonly effectiveness?: EffectivenessSectionConfig;
|
|
139
|
+
/** Viewer 子系统配置(不含 token) */
|
|
140
|
+
readonly viewer?: ViewerSectionConfig;
|
|
141
|
+
/** MCP server 协议身份 */
|
|
142
|
+
readonly server?: ServerSectionConfig;
|
|
143
|
+
}
|
|
144
|
+
export type { MaintenanceStage, TrashMaintenanceConfig, } from "../maintenance/types.js";
|
|
145
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 配置类型定义
|
|
3
|
+
*
|
|
4
|
+
* dataRoot 内 `.co-engram/config.json` 的 schema。
|
|
5
|
+
* 单一权威来源:env 仅保留 bootstrap 入口(DATA_ROOT)和敏感项(VIEWER_TOKEN),
|
|
6
|
+
* 其他全部配置项以本文件中的 schema 为准。
|
|
7
|
+
*
|
|
8
|
+
* 子系统配置类型复用各模块已有的接口(maintenance/MaintenanceConfig 等),
|
|
9
|
+
* 本文件仅补充 config.json 专用的"开关 + 调参"包装。
|
|
10
|
+
*
|
|
11
|
+
* @module @co-engram/core/config
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction Arbiter(spec §3.9 阶段 1)
|
|
3
|
+
*
|
|
4
|
+
* LLM 自动裁决:必须给依据(rationale)+ confidence。
|
|
5
|
+
*
|
|
6
|
+
* 抽象层(不绑定具体 LLM):
|
|
7
|
+
* - ContradictionArbiter Provider 接口
|
|
8
|
+
* - LocalHeuristicContradictionArbiter 本地规则实现(默认)
|
|
9
|
+
*
|
|
10
|
+
* 本地规则:
|
|
11
|
+
* - 优先保留高 confidence 一方
|
|
12
|
+
* - 高 evidenceCount 优势
|
|
13
|
+
* - firsthand > secondhand > inferred
|
|
14
|
+
* - 内容长度差异(短而精 vs 长而冗余)
|
|
15
|
+
* - 同等条件 → merge + 低 confidence(升级人工)
|
|
16
|
+
*
|
|
17
|
+
* @module @co-engram/core/contradiction
|
|
18
|
+
*/
|
|
19
|
+
import type { ArbitrateInput, ArbitrateOutput } from "./types.js";
|
|
20
|
+
/** Arbiter Provider 接口(host 可注入 LLM 实现) */
|
|
21
|
+
export interface ContradictionArbiter {
|
|
22
|
+
arbitrate(input: ArbitrateInput): Promise<ArbitrateOutput> | ArbitrateOutput;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 本地启发式裁决器
|
|
26
|
+
*
|
|
27
|
+
* 规则按优先级:
|
|
28
|
+
* 1. confidence 差异 > 0.2 → 保留高方(confidence 0.8)
|
|
29
|
+
* 2. evidenceCount 差异 ≥ 3 → 保留多证据方(confidence 0.75)
|
|
30
|
+
* 3. sourceType 差异大 → 保留 firsthand 方(confidence 0.7)
|
|
31
|
+
* 4. 其他 → merge(confidence 0.5,需人工确认)
|
|
32
|
+
*/
|
|
33
|
+
export declare class LocalHeuristicContradictionArbiter implements ContradictionArbiter {
|
|
34
|
+
arbitrate(input: ArbitrateInput): ArbitrateOutput;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 判断 verdict 是否会自动执行(confidence ≥ threshold)
|
|
38
|
+
*
|
|
39
|
+
* 默认 threshold = 0.8(spec §3.9 阶段 1)
|
|
40
|
+
*/
|
|
41
|
+
export declare function shouldAutoExecute(output: ArbitrateOutput, threshold?: number): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* 验证 Arbiter 输出合法
|
|
44
|
+
*
|
|
45
|
+
* 强制要求:
|
|
46
|
+
* - verdict 是合法枚举
|
|
47
|
+
* - rationale 非空(spec:必须给依据)
|
|
48
|
+
* - confidence ∈ [0, 1]
|
|
49
|
+
*/
|
|
50
|
+
export declare function validateArbiterOutput(output: ArbitrateOutput): void;
|
|
51
|
+
//# sourceMappingURL=arbiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbiter.d.ts","sourceRoot":"","sources":["../../src/contradiction/arbiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlE,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;CAC9E;AASD;;;;;;;;GAQG;AACH,qBAAa,kCAAmC,YAAW,oBAAoB;IAC7E,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe;CA8ClD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,SAAS,SAAM,GACd,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAoBnE"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction Arbiter(spec §3.9 阶段 1)
|
|
3
|
+
*
|
|
4
|
+
* LLM 自动裁决:必须给依据(rationale)+ confidence。
|
|
5
|
+
*
|
|
6
|
+
* 抽象层(不绑定具体 LLM):
|
|
7
|
+
* - ContradictionArbiter Provider 接口
|
|
8
|
+
* - LocalHeuristicContradictionArbiter 本地规则实现(默认)
|
|
9
|
+
*
|
|
10
|
+
* 本地规则:
|
|
11
|
+
* - 优先保留高 confidence 一方
|
|
12
|
+
* - 高 evidenceCount 优势
|
|
13
|
+
* - firsthand > secondhand > inferred
|
|
14
|
+
* - 内容长度差异(短而精 vs 长而冗余)
|
|
15
|
+
* - 同等条件 → merge + 低 confidence(升级人工)
|
|
16
|
+
*
|
|
17
|
+
* @module @co-engram/core/contradiction
|
|
18
|
+
*/
|
|
19
|
+
/** 来源类型权重(firsthand > secondhand > inferred) */
|
|
20
|
+
const SOURCE_TYPE_WEIGHT = {
|
|
21
|
+
firsthand: 1.0,
|
|
22
|
+
secondhand: 0.7,
|
|
23
|
+
inferred: 0.5,
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* 本地启发式裁决器
|
|
27
|
+
*
|
|
28
|
+
* 规则按优先级:
|
|
29
|
+
* 1. confidence 差异 > 0.2 → 保留高方(confidence 0.8)
|
|
30
|
+
* 2. evidenceCount 差异 ≥ 3 → 保留多证据方(confidence 0.75)
|
|
31
|
+
* 3. sourceType 差异大 → 保留 firsthand 方(confidence 0.7)
|
|
32
|
+
* 4. 其他 → merge(confidence 0.5,需人工确认)
|
|
33
|
+
*/
|
|
34
|
+
export class LocalHeuristicContradictionArbiter {
|
|
35
|
+
arbitrate(input) {
|
|
36
|
+
const { newEngram: neu, oldEngram: old } = input;
|
|
37
|
+
const confDelta = neu.confidence - old.confidence;
|
|
38
|
+
const evidenceDelta = neu.evidenceCount - old.evidenceCount;
|
|
39
|
+
const neuSourceW = SOURCE_TYPE_WEIGHT[neu.sourceType] ?? 0.5;
|
|
40
|
+
const oldSourceW = SOURCE_TYPE_WEIGHT[old.sourceType] ?? 0.5;
|
|
41
|
+
// 规则 1:confidence 差异 > 0.2
|
|
42
|
+
if (Math.abs(confDelta) > 0.2) {
|
|
43
|
+
const winner = confDelta > 0 ? "new" : "old";
|
|
44
|
+
return {
|
|
45
|
+
verdict: winner === "new" ? "keep_new" : "keep_old",
|
|
46
|
+
rationale: `confidence差距 ${confDelta.toFixed(2)},保留 ${winner} 方 (conf=${(winner === "new" ? neu.confidence : old.confidence).toFixed(2)})`,
|
|
47
|
+
confidence: 0.85,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// 规则 2:evidence 差异 ≥ 3
|
|
51
|
+
if (Math.abs(evidenceDelta) >= 3) {
|
|
52
|
+
const winner = evidenceDelta > 0 ? "new" : "old";
|
|
53
|
+
return {
|
|
54
|
+
verdict: winner === "new" ? "keep_new" : "keep_old",
|
|
55
|
+
rationale: `evidence差距 ${evidenceDelta},保留 ${winner} 方 (evidence=${winner === "new" ? neu.evidenceCount : old.evidenceCount})`,
|
|
56
|
+
confidence: 0.8,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// 规则 3:sourceType 差异(firsthand vs inferred/secondhand)
|
|
60
|
+
const sourceDelta = neuSourceW - oldSourceW;
|
|
61
|
+
if (Math.abs(sourceDelta) >= 0.3) {
|
|
62
|
+
const winner = sourceDelta > 0 ? "new" : "old";
|
|
63
|
+
return {
|
|
64
|
+
verdict: winner === "new" ? "keep_new" : "keep_old",
|
|
65
|
+
rationale: `sourceType差异 (${neu.sourceType} vs ${old.sourceType}),保留 ${winner} 方`,
|
|
66
|
+
confidence: 0.75,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// 规则 4:fallback → merge,低 confidence(升级人工)
|
|
70
|
+
return {
|
|
71
|
+
verdict: "merge",
|
|
72
|
+
rationale: `证据不足自动裁决 (confΔ=${confDelta.toFixed(2)}, evidenceΔ=${evidenceDelta}, sourceΔ=${sourceDelta.toFixed(2)}),建议人工合并`,
|
|
73
|
+
confidence: 0.5,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 判断 verdict 是否会自动执行(confidence ≥ threshold)
|
|
79
|
+
*
|
|
80
|
+
* 默认 threshold = 0.8(spec §3.9 阶段 1)
|
|
81
|
+
*/
|
|
82
|
+
export function shouldAutoExecute(output, threshold = 0.8) {
|
|
83
|
+
return output.confidence >= threshold && output.verdict !== "archive";
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 验证 Arbiter 输出合法
|
|
87
|
+
*
|
|
88
|
+
* 强制要求:
|
|
89
|
+
* - verdict 是合法枚举
|
|
90
|
+
* - rationale 非空(spec:必须给依据)
|
|
91
|
+
* - confidence ∈ [0, 1]
|
|
92
|
+
*/
|
|
93
|
+
export function validateArbiterOutput(output) {
|
|
94
|
+
const validVerdicts = [
|
|
95
|
+
"keep_new",
|
|
96
|
+
"keep_old",
|
|
97
|
+
"merge",
|
|
98
|
+
"archive",
|
|
99
|
+
];
|
|
100
|
+
if (!validVerdicts.includes(output.verdict)) {
|
|
101
|
+
throw new Error(`Invalid verdict: ${output.verdict}`);
|
|
102
|
+
}
|
|
103
|
+
if (!output.rationale || output.rationale.trim().length === 0) {
|
|
104
|
+
throw new Error("Arbiter must provide rationale (spec §3.9)");
|
|
105
|
+
}
|
|
106
|
+
if (typeof output.confidence !== "number" ||
|
|
107
|
+
output.confidence < 0 ||
|
|
108
|
+
output.confidence > 1) {
|
|
109
|
+
throw new Error(`confidence must be in [0,1], got ${output.confidence}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=arbiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbiter.js","sourceRoot":"","sources":["../../src/contradiction/arbiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction Auto-Degrade(spec §3.9 阶段 3)
|
|
3
|
+
*
|
|
4
|
+
* 扫描所有 escalated 状态的 contradicts synapse,超过 expiresAt 的降级为 contested。
|
|
5
|
+
* 检索时附带警告(由检索路径读取 resolutionState 实现)。
|
|
6
|
+
*
|
|
7
|
+
* @module @co-engram/core/contradiction
|
|
8
|
+
*/
|
|
9
|
+
import type { EngramRepository } from "../storage/repository.js";
|
|
10
|
+
import type { SynapseResolutionState } from "../types/synapse.js";
|
|
11
|
+
export interface AutoDegradeResult {
|
|
12
|
+
readonly scanned: number;
|
|
13
|
+
readonly degraded: ReadonlyArray<{
|
|
14
|
+
readonly fromId: string;
|
|
15
|
+
readonly synapseId: string;
|
|
16
|
+
readonly toId: string;
|
|
17
|
+
readonly expiredAt: string;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 处理所有超时的 escalated 矛盾
|
|
22
|
+
*
|
|
23
|
+
* 流程:
|
|
24
|
+
* 1. 扫描 escalated 状态的 contradicts
|
|
25
|
+
* 2. 检查 expiresAt 是否已过
|
|
26
|
+
* 3. 标记为 contested(phase=3)
|
|
27
|
+
*
|
|
28
|
+
* 稳定扫描:按 (fromId, synapseId) 字典序
|
|
29
|
+
*/
|
|
30
|
+
export declare function processExpiredContradictions(repo: EngramRepository, options?: {
|
|
31
|
+
now?: Date;
|
|
32
|
+
persist?: boolean;
|
|
33
|
+
}): AutoDegradeResult;
|
|
34
|
+
/**
|
|
35
|
+
* 人工解决矛盾(阶段 2 → resolved)
|
|
36
|
+
*
|
|
37
|
+
* 用于人工 finally 决定一个 escalated 矛盾。
|
|
38
|
+
*/
|
|
39
|
+
export interface ManualResolveInput {
|
|
40
|
+
readonly fromId: string;
|
|
41
|
+
readonly synapseId: string;
|
|
42
|
+
readonly verdict: "keep_new" | "keep_old" | "merge" | "archive";
|
|
43
|
+
readonly rationale: string;
|
|
44
|
+
readonly resolvedBy: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function manualResolveContradiction(repo: EngramRepository, input: ManualResolveInput, options?: {
|
|
47
|
+
now?: Date;
|
|
48
|
+
persist?: boolean;
|
|
49
|
+
}): {
|
|
50
|
+
resolved: boolean;
|
|
51
|
+
finalStatus: SynapseResolutionState["status"];
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=auto-degrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-degrade.d.ts","sourceRoot":"","sources":["../../src/contradiction/auto-degrade.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9C,iBAAiB,CA0CnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9C;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;CAAE,CA8BtE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction Auto-Degrade(spec §3.9 阶段 3)
|
|
3
|
+
*
|
|
4
|
+
* 扫描所有 escalated 状态的 contradicts synapse,超过 expiresAt 的降级为 contested。
|
|
5
|
+
* 检索时附带警告(由检索路径读取 resolutionState 实现)。
|
|
6
|
+
*
|
|
7
|
+
* @module @co-engram/core/contradiction
|
|
8
|
+
*/
|
|
9
|
+
import { detectContradictions } from "./detector.js";
|
|
10
|
+
/**
|
|
11
|
+
* 处理所有超时的 escalated 矛盾
|
|
12
|
+
*
|
|
13
|
+
* 流程:
|
|
14
|
+
* 1. 扫描 escalated 状态的 contradicts
|
|
15
|
+
* 2. 检查 expiresAt 是否已过
|
|
16
|
+
* 3. 标记为 contested(phase=3)
|
|
17
|
+
*
|
|
18
|
+
* 稳定扫描:按 (fromId, synapseId) 字典序
|
|
19
|
+
*/
|
|
20
|
+
export function processExpiredContradictions(repo, options = {}) {
|
|
21
|
+
const now = options.now ?? new Date();
|
|
22
|
+
const nowMs = now.getTime();
|
|
23
|
+
const persist = options.persist ?? true;
|
|
24
|
+
const escalated = detectContradictions(repo, { filterStatus: "escalated" });
|
|
25
|
+
const degraded = [];
|
|
26
|
+
for (const c of escalated) {
|
|
27
|
+
const file = repo.readSynapses(c.fromId);
|
|
28
|
+
const synapse = file.outgoing.find((s) => s.id === c.synapseId);
|
|
29
|
+
if (!synapse?.resolutionState)
|
|
30
|
+
continue;
|
|
31
|
+
const expiresAt = synapse.resolutionState.expiresAt;
|
|
32
|
+
if (!expiresAt)
|
|
33
|
+
continue;
|
|
34
|
+
const expMs = new Date(expiresAt).getTime();
|
|
35
|
+
if (Number.isNaN(expMs) || expMs > nowMs)
|
|
36
|
+
continue;
|
|
37
|
+
const nextState = {
|
|
38
|
+
...synapse.resolutionState,
|
|
39
|
+
status: "contested",
|
|
40
|
+
phase: 3,
|
|
41
|
+
};
|
|
42
|
+
if (persist) {
|
|
43
|
+
repo.updateSynapseResolution(c.fromId, c.synapseId, nextState);
|
|
44
|
+
}
|
|
45
|
+
degraded.push({
|
|
46
|
+
fromId: c.fromId,
|
|
47
|
+
synapseId: c.synapseId,
|
|
48
|
+
toId: c.toId,
|
|
49
|
+
expiredAt: expiresAt,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return { scanned: escalated.length, degraded };
|
|
53
|
+
}
|
|
54
|
+
export function manualResolveContradiction(repo, input, options = {}) {
|
|
55
|
+
const now = options.now ?? new Date();
|
|
56
|
+
const persist = options.persist ?? true;
|
|
57
|
+
const nowIso = now.toISOString();
|
|
58
|
+
const file = repo.readSynapses(input.fromId);
|
|
59
|
+
const synapse = file.outgoing.find((s) => s.id === input.synapseId);
|
|
60
|
+
if (!synapse) {
|
|
61
|
+
throw new Error(`Synapse not found: ${input.synapseId} (from ${input.fromId})`);
|
|
62
|
+
}
|
|
63
|
+
if (synapse.kind !== "contradicts") {
|
|
64
|
+
throw new Error(`Not a contradicts synapse: ${input.synapseId}`);
|
|
65
|
+
}
|
|
66
|
+
const nextState = {
|
|
67
|
+
status: "resolved",
|
|
68
|
+
phase: synapse.resolutionState?.phase ?? 2,
|
|
69
|
+
verdict: input.verdict,
|
|
70
|
+
rationale: input.rationale,
|
|
71
|
+
resolvedAt: nowIso,
|
|
72
|
+
resolvedBy: input.resolvedBy,
|
|
73
|
+
};
|
|
74
|
+
if (persist) {
|
|
75
|
+
repo.updateSynapseResolution(input.fromId, input.synapseId, nextState);
|
|
76
|
+
}
|
|
77
|
+
return { resolved: true, finalStatus: "resolved" };
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=auto-degrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-degrade.js","sourceRoot":"","sources":["../../src/contradiction/auto-degrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction Detector(spec §3.9)
|
|
3
|
+
*
|
|
4
|
+
* 扫描所有 contradicts synapse,列出需要裁决的矛盾对。
|
|
5
|
+
*
|
|
6
|
+
* @module @co-engram/core/contradiction
|
|
7
|
+
*/
|
|
8
|
+
import type { EngramRepository } from "../storage/repository.js";
|
|
9
|
+
import type { ContradictionPair } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* 扫描所有 contradicts synapse
|
|
12
|
+
*
|
|
13
|
+
* 稳定排序:按 (fromId, toId, synapseId) 字典序
|
|
14
|
+
*
|
|
15
|
+
* @param options.filterStatus - 仅返回指定状态的(默认全部)
|
|
16
|
+
*/
|
|
17
|
+
export declare function detectContradictions(repo: EngramRepository, options?: {
|
|
18
|
+
readonly filterStatus?: ContradictionPair["status"];
|
|
19
|
+
}): readonly ContradictionPair[];
|
|
20
|
+
/**
|
|
21
|
+
* 统计当前 contradiction 概况
|
|
22
|
+
*/
|
|
23
|
+
export interface ContradictionStats {
|
|
24
|
+
readonly total: number;
|
|
25
|
+
readonly pending: number;
|
|
26
|
+
readonly autoResolved: number;
|
|
27
|
+
readonly escalated: number;
|
|
28
|
+
readonly contested: number;
|
|
29
|
+
readonly resolved: number;
|
|
30
|
+
readonly none: number;
|
|
31
|
+
}
|
|
32
|
+
export declare function statsContradictions(repo: EngramRepository): ContradictionStats;
|
|
33
|
+
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/contradiction/detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IACP,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CAChD,GACL,SAAS,iBAAiB,EAAE,CAwB9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,GACrB,kBAAkB,CA0CpB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction Detector(spec §3.9)
|
|
3
|
+
*
|
|
4
|
+
* 扫描所有 contradicts synapse,列出需要裁决的矛盾对。
|
|
5
|
+
*
|
|
6
|
+
* @module @co-engram/core/contradiction
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 扫描所有 contradicts synapse
|
|
10
|
+
*
|
|
11
|
+
* 稳定排序:按 (fromId, toId, synapseId) 字典序
|
|
12
|
+
*
|
|
13
|
+
* @param options.filterStatus - 仅返回指定状态的(默认全部)
|
|
14
|
+
*/
|
|
15
|
+
export function detectContradictions(repo, options = {}) {
|
|
16
|
+
const all = repo.collectAllSynapses();
|
|
17
|
+
const result = [];
|
|
18
|
+
for (const { fromId, synapse } of all) {
|
|
19
|
+
if (synapse.kind !== "contradicts")
|
|
20
|
+
continue;
|
|
21
|
+
const status = synapse.resolutionState?.status ?? "none";
|
|
22
|
+
if (options.filterStatus !== undefined && status !== options.filterStatus) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
result.push({
|
|
26
|
+
synapseId: synapse.id,
|
|
27
|
+
fromId,
|
|
28
|
+
toId: synapse.to,
|
|
29
|
+
weight: synapse.weight,
|
|
30
|
+
status,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return result.sort((a, b) => {
|
|
34
|
+
if (a.fromId !== b.fromId)
|
|
35
|
+
return a.fromId < b.fromId ? -1 : 1;
|
|
36
|
+
if (a.toId !== b.toId)
|
|
37
|
+
return a.toId < b.toId ? -1 : 1;
|
|
38
|
+
return a.synapseId < b.synapseId ? -1 : 1;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function statsContradictions(repo) {
|
|
42
|
+
const all = detectContradictions(repo);
|
|
43
|
+
const stats = {
|
|
44
|
+
total: all.length,
|
|
45
|
+
pending: 0,
|
|
46
|
+
autoResolved: 0,
|
|
47
|
+
escalated: 0,
|
|
48
|
+
contested: 0,
|
|
49
|
+
resolved: 0,
|
|
50
|
+
none: 0,
|
|
51
|
+
};
|
|
52
|
+
for (const c of all) {
|
|
53
|
+
switch (c.status) {
|
|
54
|
+
case "pending":
|
|
55
|
+
stats.pending++;
|
|
56
|
+
break;
|
|
57
|
+
case "auto_resolved":
|
|
58
|
+
stats.autoResolved++;
|
|
59
|
+
break;
|
|
60
|
+
case "escalated":
|
|
61
|
+
stats.escalated++;
|
|
62
|
+
break;
|
|
63
|
+
case "contested":
|
|
64
|
+
stats.contested++;
|
|
65
|
+
break;
|
|
66
|
+
case "resolved":
|
|
67
|
+
stats.resolved++;
|
|
68
|
+
break;
|
|
69
|
+
case "none":
|
|
70
|
+
stats.none++;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return stats;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/contradiction/detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAsB,EACtB,UAEI,EAAE;IAEN,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;YAAE,SAAS;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,MAAM,IAAI,MAAM,CAAC;QACzD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1E,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,EAAE;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,MAAM,UAAU,mBAAmB,CACjC,IAAsB;IAEtB,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAQP;QACF,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;KACR,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM;YACR,KAAK,eAAe;gBAClB,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClB,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClB,MAAM;YACR,KAAK,UAAU;gBACb,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM;YACR,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction 模块 barrel
|
|
3
|
+
*
|
|
4
|
+
* @module @co-engram/core/contradiction
|
|
5
|
+
*/
|
|
6
|
+
export * from "./types.js";
|
|
7
|
+
export * from "./detector.js";
|
|
8
|
+
export * from "./arbiter.js";
|
|
9
|
+
export * from "./resolver.js";
|
|
10
|
+
export * from "./auto-degrade.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contradiction/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction 模块 barrel
|
|
3
|
+
*
|
|
4
|
+
* @module @co-engram/core/contradiction
|
|
5
|
+
*/
|
|
6
|
+
export * from "./types.js";
|
|
7
|
+
export * from "./detector.js";
|
|
8
|
+
export * from "./arbiter.js";
|
|
9
|
+
export * from "./resolver.js";
|
|
10
|
+
export * from "./auto-degrade.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contradiction/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|