cognitive-core 0.2.4 → 0.3.1
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 +88 -143
- package/dist/agents/mock-provider.d.ts.map +1 -1
- package/dist/agents/mock-provider.js.map +1 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/types.js +5 -4
- package/dist/agents/types.js.map +1 -1
- package/dist/atlas.d.ts +309 -97
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +743 -277
- package/dist/atlas.js.map +1 -1
- package/dist/bin/cli-utils.d.ts +25 -2
- package/dist/bin/cli-utils.d.ts.map +1 -1
- package/dist/bin/cli-utils.js +79 -9
- package/dist/bin/cli-utils.js.map +1 -1
- package/dist/bin/cognitive-core.js +32 -0
- package/dist/bin/cognitive-core.js.map +1 -1
- package/dist/bin/commands/dream.d.ts +17 -0
- package/dist/bin/commands/dream.d.ts.map +1 -0
- package/dist/bin/commands/dream.js +168 -0
- package/dist/bin/commands/dream.js.map +1 -0
- package/dist/bin/commands/eval.d.ts +181 -0
- package/dist/bin/commands/eval.d.ts.map +1 -0
- package/dist/bin/commands/eval.js +1582 -0
- package/dist/bin/commands/eval.js.map +1 -0
- package/dist/bin/commands/kb.js +0 -8
- package/dist/bin/commands/kb.js.map +1 -1
- package/dist/bin/commands/learn.js +12 -4
- package/dist/bin/commands/learn.js.map +1 -1
- package/dist/bin/commands/legacy.d.ts.map +1 -1
- package/dist/bin/commands/legacy.js +1 -1
- package/dist/bin/commands/legacy.js.map +1 -1
- package/dist/bin/commands/run.d.ts.map +1 -1
- package/dist/bin/commands/run.js +10 -9
- package/dist/bin/commands/run.js.map +1 -1
- package/dist/bin/commands/sessions.d.ts.map +1 -1
- package/dist/bin/commands/sessions.js.map +1 -1
- package/dist/bin/commands/skills.d.ts.map +1 -1
- package/dist/bin/commands/skills.js +283 -1
- package/dist/bin/commands/skills.js.map +1 -1
- package/dist/embeddings/bm25.d.ts.map +1 -1
- package/dist/embeddings/bm25.js +1 -2
- package/dist/embeddings/bm25.js.map +1 -1
- package/dist/embeddings/index.d.ts +3 -3
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +3 -3
- package/dist/embeddings/index.js.map +1 -1
- package/dist/embeddings/inverted-index.js +62 -7
- package/dist/embeddings/inverted-index.js.map +1 -1
- package/dist/embeddings/manager.d.ts.map +1 -1
- package/dist/embeddings/manager.js +6 -5
- package/dist/embeddings/manager.js.map +1 -1
- package/dist/embeddings/provider.d.ts +96 -5
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js +171 -48
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/embeddings/vector-store.d.ts.map +1 -1
- package/dist/embeddings/vector-store.js +3 -1
- package/dist/embeddings/vector-store.js.map +1 -1
- package/dist/eval/ablation-validate.d.ts +12 -0
- package/dist/eval/ablation-validate.d.ts.map +1 -0
- package/dist/eval/ablation-validate.js +78 -0
- package/dist/eval/ablation-validate.js.map +1 -0
- package/dist/eval/ablation.d.ts +94 -0
- package/dist/eval/ablation.d.ts.map +1 -0
- package/dist/eval/ablation.js +161 -0
- package/dist/eval/ablation.js.map +1 -0
- package/dist/eval/ci-smoke.d.ts +11 -0
- package/dist/eval/ci-smoke.d.ts.map +1 -0
- package/dist/eval/ci-smoke.js +49 -0
- package/dist/eval/ci-smoke.js.map +1 -0
- package/dist/eval/diagnostics.d.ts +214 -0
- package/dist/eval/diagnostics.d.ts.map +1 -0
- package/dist/eval/diagnostics.js +107 -0
- package/dist/eval/diagnostics.js.map +1 -0
- package/dist/eval/index.d.ts +27 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +27 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/live/alfworld.d.ts +248 -0
- package/dist/eval/live/alfworld.d.ts.map +1 -0
- package/dist/eval/live/alfworld.js +637 -0
- package/dist/eval/live/alfworld.js.map +1 -0
- package/dist/eval/live/alfworld_h1.d.ts +16 -0
- package/dist/eval/live/alfworld_h1.d.ts.map +1 -0
- package/dist/eval/live/alfworld_h1.js +75 -0
- package/dist/eval/live/alfworld_h1.js.map +1 -0
- package/dist/eval/live/alfworld_memory.d.ts +38 -0
- package/dist/eval/live/alfworld_memory.d.ts.map +1 -0
- package/dist/eval/live/alfworld_memory.js +184 -0
- package/dist/eval/live/alfworld_memory.js.map +1 -0
- package/dist/eval/live/alfworld_strategy.d.ts +65 -0
- package/dist/eval/live/alfworld_strategy.d.ts.map +1 -0
- package/dist/eval/live/alfworld_strategy.js +89 -0
- package/dist/eval/live/alfworld_strategy.js.map +1 -0
- package/dist/eval/live/azure-openai-llm-provider.d.ts +41 -0
- package/dist/eval/live/azure-openai-llm-provider.d.ts.map +1 -0
- package/dist/eval/live/azure-openai-llm-provider.js +92 -0
- package/dist/eval/live/azure-openai-llm-provider.js.map +1 -0
- package/dist/eval/live/bridges/skillflow_e2b_bridge.d.ts +3 -0
- package/dist/eval/live/bridges/skillflow_e2b_bridge.d.ts.map +1 -0
- package/dist/eval/live/bridges/skillflow_e2b_bridge.js +12 -0
- package/dist/eval/live/bridges/skillflow_e2b_bridge.js.map +1 -0
- package/dist/eval/live/claude-cli-llm-provider.d.ts +53 -0
- package/dist/eval/live/claude-cli-llm-provider.d.ts.map +1 -0
- package/dist/eval/live/claude-cli-llm-provider.js +71 -0
- package/dist/eval/live/claude-cli-llm-provider.js.map +1 -0
- package/dist/eval/live/claude-cli.d.ts +96 -0
- package/dist/eval/live/claude-cli.d.ts.map +1 -0
- package/dist/eval/live/claude-cli.js +314 -0
- package/dist/eval/live/claude-cli.js.map +1 -0
- package/dist/eval/live/claude-delegate.d.ts +41 -0
- package/dist/eval/live/claude-delegate.d.ts.map +1 -0
- package/dist/eval/live/claude-delegate.js +59 -0
- package/dist/eval/live/claude-delegate.js.map +1 -0
- package/dist/eval/live/claude-workspace-backend.d.ts +24 -0
- package/dist/eval/live/claude-workspace-backend.d.ts.map +1 -0
- package/dist/eval/live/claude-workspace-backend.js +76 -0
- package/dist/eval/live/claude-workspace-backend.js.map +1 -0
- package/dist/eval/live/clbench.d.ts +64 -0
- package/dist/eval/live/clbench.d.ts.map +1 -0
- package/dist/eval/live/clbench.js +291 -0
- package/dist/eval/live/clbench.js.map +1 -0
- package/dist/eval/live/cold-reuse.d.ts +21 -0
- package/dist/eval/live/cold-reuse.d.ts.map +1 -0
- package/dist/eval/live/cold-reuse.js +102 -0
- package/dist/eval/live/cold-reuse.js.map +1 -0
- package/dist/eval/live/difficulty-registry.d.ts +68 -0
- package/dist/eval/live/difficulty-registry.d.ts.map +1 -0
- package/dist/eval/live/difficulty-registry.js +169 -0
- package/dist/eval/live/difficulty-registry.js.map +1 -0
- package/dist/eval/live/docker.d.ts +52 -0
- package/dist/eval/live/docker.d.ts.map +1 -0
- package/dist/eval/live/docker.js +164 -0
- package/dist/eval/live/docker.js.map +1 -0
- package/dist/eval/live/env-bridge.d.ts +68 -0
- package/dist/eval/live/env-bridge.d.ts.map +1 -0
- package/dist/eval/live/env-bridge.js +188 -0
- package/dist/eval/live/env-bridge.js.map +1 -0
- package/dist/eval/live/gsm8k.d.ts +44 -0
- package/dist/eval/live/gsm8k.d.ts.map +1 -0
- package/dist/eval/live/gsm8k.js +142 -0
- package/dist/eval/live/gsm8k.js.map +1 -0
- package/dist/eval/live/index.d.ts +38 -0
- package/dist/eval/live/index.d.ts.map +1 -0
- package/dist/eval/live/index.js +38 -0
- package/dist/eval/live/index.js.map +1 -0
- package/dist/eval/live/lifelongagent.d.ts +64 -0
- package/dist/eval/live/lifelongagent.d.ts.map +1 -0
- package/dist/eval/live/lifelongagent.js +216 -0
- package/dist/eval/live/lifelongagent.js.map +1 -0
- package/dist/eval/live/lift-registry.d.ts +128 -0
- package/dist/eval/live/lift-registry.d.ts.map +1 -0
- package/dist/eval/live/lift-registry.js +147 -0
- package/dist/eval/live/lift-registry.js.map +1 -0
- package/dist/eval/live/live-benchmark.d.ts +84 -0
- package/dist/eval/live/live-benchmark.d.ts.map +1 -0
- package/dist/eval/live/live-benchmark.js +2 -0
- package/dist/eval/live/live-benchmark.js.map +1 -0
- package/dist/eval/live/live-runner.d.ts +609 -0
- package/dist/eval/live/live-runner.d.ts.map +1 -0
- package/dist/eval/live/live-runner.js +1409 -0
- package/dist/eval/live/live-runner.js.map +1 -0
- package/dist/eval/live/refine.d.ts +88 -0
- package/dist/eval/live/refine.d.ts.map +1 -0
- package/dist/eval/live/refine.js +135 -0
- package/dist/eval/live/refine.js.map +1 -0
- package/dist/eval/live/registry-store.d.ts +109 -0
- package/dist/eval/live/registry-store.d.ts.map +1 -0
- package/dist/eval/live/registry-store.js +272 -0
- package/dist/eval/live/registry-store.js.map +1 -0
- package/dist/eval/live/run-checkpoint.d.ts +55 -0
- package/dist/eval/live/run-checkpoint.d.ts.map +1 -0
- package/dist/eval/live/run-checkpoint.js +86 -0
- package/dist/eval/live/run-checkpoint.js.map +1 -0
- package/dist/eval/live/run-resume.d.ts +22 -0
- package/dist/eval/live/run-resume.d.ts.map +1 -0
- package/dist/eval/live/run-resume.js +70 -0
- package/dist/eval/live/run-resume.js.map +1 -0
- package/dist/eval/live/skill-injector.d.ts +36 -0
- package/dist/eval/live/skill-injector.d.ts.map +1 -0
- package/dist/eval/live/skill-injector.js +81 -0
- package/dist/eval/live/skill-injector.js.map +1 -0
- package/dist/eval/live/skillflow-embedded-workbook-bundle.d.ts +3 -0
- package/dist/eval/live/skillflow-embedded-workbook-bundle.d.ts.map +1 -0
- package/dist/eval/live/skillflow-embedded-workbook-bundle.js +391 -0
- package/dist/eval/live/skillflow-embedded-workbook-bundle.js.map +1 -0
- package/dist/eval/live/skillflow.d.ts +154 -0
- package/dist/eval/live/skillflow.d.ts.map +1 -0
- package/dist/eval/live/skillflow.js +612 -0
- package/dist/eval/live/skillflow.js.map +1 -0
- package/dist/eval/live/skilllearnbench.d.ts +43 -0
- package/dist/eval/live/skilllearnbench.d.ts.map +1 -0
- package/dist/eval/live/skilllearnbench.js +154 -0
- package/dist/eval/live/skilllearnbench.js.map +1 -0
- package/dist/eval/live/skillopt_v1.d.ts +96 -0
- package/dist/eval/live/skillopt_v1.d.ts.map +1 -0
- package/dist/eval/live/skillopt_v1.js +0 -0
- package/dist/eval/live/skillopt_v1.js.map +1 -0
- package/dist/eval/live/skillopt_v1_causal.d.ts +26 -0
- package/dist/eval/live/skillopt_v1_causal.d.ts.map +1 -0
- package/dist/eval/live/skillopt_v1_causal.js +106 -0
- package/dist/eval/live/skillopt_v1_causal.js.map +1 -0
- package/dist/eval/live/skillopt_v1_memory.d.ts +53 -0
- package/dist/eval/live/skillopt_v1_memory.d.ts.map +1 -0
- package/dist/eval/live/skillopt_v1_memory.js +147 -0
- package/dist/eval/live/skillopt_v1_memory.js.map +1 -0
- package/dist/eval/live/skillopt_v1_rules.d.ts +39 -0
- package/dist/eval/live/skillopt_v1_rules.d.ts.map +1 -0
- package/dist/eval/live/skillopt_v1_rules.js +91 -0
- package/dist/eval/live/skillopt_v1_rules.js.map +1 -0
- package/dist/eval/live/skillsbench.d.ts +138 -0
- package/dist/eval/live/skillsbench.d.ts.map +1 -0
- package/dist/eval/live/skillsbench.js +626 -0
- package/dist/eval/live/skillsbench.js.map +1 -0
- package/dist/eval/live/stopping.d.ts +69 -0
- package/dist/eval/live/stopping.d.ts.map +1 -0
- package/dist/eval/live/stopping.js +213 -0
- package/dist/eval/live/stopping.js.map +1 -0
- package/dist/eval/live/trace.d.ts +20 -0
- package/dist/eval/live/trace.d.ts.map +1 -0
- package/dist/eval/live/trace.js +41 -0
- package/dist/eval/live/trace.js.map +1 -0
- package/dist/eval/mechanism-trace-adapter.d.ts +8 -0
- package/dist/eval/mechanism-trace-adapter.d.ts.map +1 -0
- package/dist/eval/mechanism-trace-adapter.js +118 -0
- package/dist/eval/mechanism-trace-adapter.js.map +1 -0
- package/dist/eval/memory-ab.d.ts +61 -0
- package/dist/eval/memory-ab.d.ts.map +1 -0
- package/dist/eval/memory-ab.js +161 -0
- package/dist/eval/memory-ab.js.map +1 -0
- package/dist/eval/memory-mock.d.ts +54 -0
- package/dist/eval/memory-mock.d.ts.map +1 -0
- package/dist/eval/memory-mock.js +129 -0
- package/dist/eval/memory-mock.js.map +1 -0
- package/dist/eval/memory-qa/index.d.ts +13 -0
- package/dist/eval/memory-qa/index.d.ts.map +1 -0
- package/dist/eval/memory-qa/index.js +13 -0
- package/dist/eval/memory-qa/index.js.map +1 -0
- package/dist/eval/memory-qa/iterative.d.ts +80 -0
- package/dist/eval/memory-qa/iterative.d.ts.map +1 -0
- package/dist/eval/memory-qa/iterative.js +107 -0
- package/dist/eval/memory-qa/iterative.js.map +1 -0
- package/dist/eval/memory-qa/loaders.d.ts +11 -0
- package/dist/eval/memory-qa/loaders.d.ts.map +1 -0
- package/dist/eval/memory-qa/loaders.js +21 -0
- package/dist/eval/memory-qa/loaders.js.map +1 -0
- package/dist/eval/memory-qa/metrics.d.ts +3 -0
- package/dist/eval/memory-qa/metrics.d.ts.map +1 -0
- package/dist/eval/memory-qa/metrics.js +2 -0
- package/dist/eval/memory-qa/metrics.js.map +1 -0
- package/dist/eval/memory-qa/qa.d.ts +186 -0
- package/dist/eval/memory-qa/qa.d.ts.map +1 -0
- package/dist/eval/memory-qa/qa.js +424 -0
- package/dist/eval/memory-qa/qa.js.map +1 -0
- package/dist/eval/memory-qa/retrieval.d.ts +33 -0
- package/dist/eval/memory-qa/retrieval.d.ts.map +1 -0
- package/dist/eval/memory-qa/retrieval.js +44 -0
- package/dist/eval/memory-qa/retrieval.js.map +1 -0
- package/dist/eval/memory-qa/serving.d.ts +60 -0
- package/dist/eval/memory-qa/serving.d.ts.map +1 -0
- package/dist/eval/memory-qa/serving.js +267 -0
- package/dist/eval/memory-qa/serving.js.map +1 -0
- package/dist/eval/memory-qa/types.d.ts +2 -0
- package/dist/eval/memory-qa/types.d.ts.map +1 -0
- package/dist/eval/memory-qa/types.js +2 -0
- package/dist/eval/memory-qa/types.js.map +1 -0
- package/dist/eval/metrics.d.ts +120 -0
- package/dist/eval/metrics.d.ts.map +1 -0
- package/dist/eval/metrics.js +361 -0
- package/dist/eval/metrics.js.map +1 -0
- package/dist/eval/oracle-smoke.d.ts +75 -0
- package/dist/eval/oracle-smoke.d.ts.map +1 -0
- package/dist/eval/oracle-smoke.js +143 -0
- package/dist/eval/oracle-smoke.js.map +1 -0
- package/dist/eval/playbook-calibration-report.d.ts +40 -0
- package/dist/eval/playbook-calibration-report.d.ts.map +1 -0
- package/dist/eval/playbook-calibration-report.js +246 -0
- package/dist/eval/playbook-calibration-report.js.map +1 -0
- package/dist/eval/playbook-candidate-decisions-report.d.ts +36 -0
- package/dist/eval/playbook-candidate-decisions-report.d.ts.map +1 -0
- package/dist/eval/playbook-candidate-decisions-report.js +201 -0
- package/dist/eval/playbook-candidate-decisions-report.js.map +1 -0
- package/dist/eval/playbook-usage-report.d.ts +7 -0
- package/dist/eval/playbook-usage-report.d.ts.map +1 -0
- package/dist/eval/playbook-usage-report.js +222 -0
- package/dist/eval/playbook-usage-report.js.map +1 -0
- package/dist/eval/report.d.ts +28 -0
- package/dist/eval/report.d.ts.map +1 -0
- package/dist/eval/report.js +567 -0
- package/dist/eval/report.js.map +1 -0
- package/dist/eval/retrieval/corpus.d.ts +41 -0
- package/dist/eval/retrieval/corpus.d.ts.map +1 -0
- package/dist/eval/retrieval/corpus.js +158 -0
- package/dist/eval/retrieval/corpus.js.map +1 -0
- package/dist/eval/retrieval/index.d.ts +12 -0
- package/dist/eval/retrieval/index.d.ts.map +1 -0
- package/dist/eval/retrieval/index.js +14 -0
- package/dist/eval/retrieval/index.js.map +1 -0
- package/dist/eval/retrieval/knowledge-corpus.d.ts +91 -0
- package/dist/eval/retrieval/knowledge-corpus.d.ts.map +1 -0
- package/dist/eval/retrieval/knowledge-corpus.js +268 -0
- package/dist/eval/retrieval/knowledge-corpus.js.map +1 -0
- package/dist/eval/retrieval/knowledge-quality.d.ts +91 -0
- package/dist/eval/retrieval/knowledge-quality.d.ts.map +1 -0
- package/dist/eval/retrieval/knowledge-quality.js +247 -0
- package/dist/eval/retrieval/knowledge-quality.js.map +1 -0
- package/dist/eval/retrieval/ladder.d.ts +69 -0
- package/dist/eval/retrieval/ladder.d.ts.map +1 -0
- package/dist/eval/retrieval/ladder.js +80 -0
- package/dist/eval/retrieval/ladder.js.map +1 -0
- package/dist/eval/retrieval/quality.d.ts +39 -0
- package/dist/eval/retrieval/quality.d.ts.map +1 -0
- package/dist/eval/retrieval/quality.js +75 -0
- package/dist/eval/retrieval/quality.js.map +1 -0
- package/dist/eval/rng.d.ts +25 -0
- package/dist/eval/rng.d.ts.map +1 -0
- package/dist/eval/rng.js +43 -0
- package/dist/eval/rng.js.map +1 -0
- package/dist/eval/runner.d.ts +65 -0
- package/dist/eval/runner.d.ts.map +1 -0
- package/dist/eval/runner.js +216 -0
- package/dist/eval/runner.js.map +1 -0
- package/dist/eval/skill-bundle.d.ts +18 -0
- package/dist/eval/skill-bundle.d.ts.map +1 -0
- package/dist/eval/skill-bundle.js +38 -0
- package/dist/eval/skill-bundle.js.map +1 -0
- package/dist/eval/swarmkit-report.d.ts +21 -0
- package/dist/eval/swarmkit-report.d.ts.map +1 -0
- package/dist/eval/swarmkit-report.js +93 -0
- package/dist/eval/swarmkit-report.js.map +1 -0
- package/dist/eval/task-stream.d.ts +22 -0
- package/dist/eval/task-stream.d.ts.map +1 -0
- package/dist/eval/task-stream.js +99 -0
- package/dist/eval/task-stream.js.map +1 -0
- package/dist/eval/types.d.ts +173 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +11 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/experimental/causal-store.d.ts +97 -0
- package/dist/experimental/causal-store.d.ts.map +1 -0
- package/dist/experimental/causal-store.js +213 -0
- package/dist/experimental/causal-store.js.map +1 -0
- package/dist/experimental/graph-layers/base.d.ts +29 -0
- package/dist/experimental/graph-layers/base.d.ts.map +1 -0
- package/dist/experimental/graph-layers/base.js +143 -0
- package/dist/experimental/graph-layers/base.js.map +1 -0
- package/dist/experimental/graph-layers/causal.d.ts +14 -0
- package/dist/experimental/graph-layers/causal.d.ts.map +1 -0
- package/dist/experimental/graph-layers/causal.js +14 -0
- package/dist/experimental/graph-layers/causal.js.map +1 -0
- package/dist/experimental/graph-layers/entity.d.ts +14 -0
- package/dist/experimental/graph-layers/entity.d.ts.map +1 -0
- package/dist/experimental/graph-layers/entity.js +14 -0
- package/dist/experimental/graph-layers/entity.js.map +1 -0
- package/dist/experimental/graph-layers/index.d.ts +6 -0
- package/dist/experimental/graph-layers/index.d.ts.map +1 -0
- package/dist/experimental/graph-layers/index.js +6 -0
- package/dist/experimental/graph-layers/index.js.map +1 -0
- package/dist/experimental/graph-layers/semantic.d.ts +14 -0
- package/dist/experimental/graph-layers/semantic.d.ts.map +1 -0
- package/dist/experimental/graph-layers/semantic.js +14 -0
- package/dist/experimental/graph-layers/semantic.js.map +1 -0
- package/dist/experimental/graph-layers/temporal.d.ts +14 -0
- package/dist/experimental/graph-layers/temporal.d.ts.map +1 -0
- package/dist/experimental/graph-layers/temporal.js +14 -0
- package/dist/experimental/graph-layers/temporal.js.map +1 -0
- package/dist/experimental/healing-orchestrator.d.ts +182 -0
- package/dist/experimental/healing-orchestrator.d.ts.map +1 -0
- package/dist/experimental/healing-orchestrator.js +250 -0
- package/dist/experimental/healing-orchestrator.js.map +1 -0
- package/dist/experimental/knowledge-graph-types.d.ts +148 -0
- package/dist/experimental/knowledge-graph-types.d.ts.map +1 -0
- package/dist/experimental/knowledge-graph-types.js +40 -0
- package/dist/experimental/knowledge-graph-types.js.map +1 -0
- package/dist/experimental/knowledge-graph.d.ts +41 -0
- package/dist/experimental/knowledge-graph.d.ts.map +1 -0
- package/dist/experimental/knowledge-graph.js +270 -0
- package/dist/experimental/knowledge-graph.js.map +1 -0
- package/dist/experimental/meta-reflection.d.ts +47 -0
- package/dist/experimental/meta-reflection.d.ts.map +1 -0
- package/dist/experimental/meta-reflection.js +143 -0
- package/dist/experimental/meta-reflection.js.map +1 -0
- package/dist/experimental/moe-gate.d.ts +134 -0
- package/dist/experimental/moe-gate.d.ts.map +1 -0
- package/dist/experimental/moe-gate.js +240 -0
- package/dist/experimental/moe-gate.js.map +1 -0
- package/dist/experimental/reasoning-bank.d.ts +130 -0
- package/dist/experimental/reasoning-bank.d.ts.map +1 -0
- package/dist/experimental/reasoning-bank.js +427 -0
- package/dist/experimental/reasoning-bank.js.map +1 -0
- package/dist/experimental/team/team-config.d.ts +127 -0
- package/dist/experimental/team/team-config.d.ts.map +1 -0
- package/dist/experimental/team/team-config.js +48 -0
- package/dist/experimental/team/team-config.js.map +1 -0
- package/dist/experimental/team/team-experience.d.ts +300 -0
- package/dist/experimental/team/team-experience.d.ts.map +1 -0
- package/dist/experimental/team/team-experience.js +355 -0
- package/dist/experimental/team/team-experience.js.map +1 -0
- package/dist/experimental/team/team-ingester.d.ts +152 -0
- package/dist/experimental/team/team-ingester.d.ts.map +1 -0
- package/dist/experimental/team/team-ingester.js +330 -0
- package/dist/experimental/team/team-ingester.js.map +1 -0
- package/dist/experimental/team/team-meta-learner.d.ts +51 -0
- package/dist/experimental/team/team-meta-learner.d.ts.map +1 -0
- package/dist/experimental/team/team-meta-learner.js +404 -0
- package/dist/experimental/team/team-meta-learner.js.map +1 -0
- package/dist/experimental/team/team-meta.d.ts +160 -0
- package/dist/experimental/team/team-meta.d.ts.map +1 -0
- package/dist/experimental/team/team-meta.js +42 -0
- package/dist/experimental/team/team-meta.js.map +1 -0
- package/dist/experimental/team/team-pipeline.d.ts +77 -0
- package/dist/experimental/team/team-pipeline.d.ts.map +1 -0
- package/dist/experimental/team/team-pipeline.js +262 -0
- package/dist/experimental/team/team-pipeline.js.map +1 -0
- package/dist/experimental/team/team-playbook-extraction.d.ts +45 -0
- package/dist/experimental/team/team-playbook-extraction.d.ts.map +1 -0
- package/dist/experimental/team/team-playbook-extraction.js +526 -0
- package/dist/experimental/team/team-playbook-extraction.js.map +1 -0
- package/dist/experimental/team/team-playbook.d.ts +276 -0
- package/dist/experimental/team/team-playbook.d.ts.map +1 -0
- package/dist/experimental/team/team-playbook.js +85 -0
- package/dist/experimental/team/team-playbook.js.map +1 -0
- package/dist/experimental/team/team-router.d.ts +98 -0
- package/dist/experimental/team/team-router.d.ts.map +1 -0
- package/dist/experimental/team/team-router.js +312 -0
- package/dist/experimental/team/team-router.js.map +1 -0
- package/dist/experimental/team/team-skill-library.d.ts +180 -0
- package/dist/experimental/team/team-skill-library.d.ts.map +1 -0
- package/dist/experimental/team/team-skill-library.js +385 -0
- package/dist/experimental/team/team-skill-library.js.map +1 -0
- package/dist/experimental/team/team-trajectory-analysis.d.ts +19 -0
- package/dist/experimental/team/team-trajectory-analysis.d.ts.map +1 -0
- package/dist/experimental/team/team-trajectory-analysis.js +442 -0
- package/dist/experimental/team/team-trajectory-analysis.js.map +1 -0
- package/dist/experimental/team/team-trajectory.d.ts +305 -0
- package/dist/experimental/team/team-trajectory.d.ts.map +1 -0
- package/dist/experimental/team/team-trajectory.js +315 -0
- package/dist/experimental/team/team-trajectory.js.map +1 -0
- package/dist/factory.d.ts +2 -3
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +12 -11
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +9 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -32
- package/dist/index.js.map +1 -1
- package/dist/learning/analyzer.d.ts +26 -36
- package/dist/learning/analyzer.d.ts.map +1 -1
- package/dist/learning/analyzer.js +50 -11
- package/dist/learning/analyzer.js.map +1 -1
- package/dist/learning/compound-bootstrap/external-acquisition.d.ts +63 -0
- package/dist/learning/compound-bootstrap/external-acquisition.d.ts.map +1 -0
- package/dist/learning/compound-bootstrap/external-acquisition.js +255 -0
- package/dist/learning/compound-bootstrap/external-acquisition.js.map +1 -0
- package/dist/learning/compound-bootstrap/index.d.ts +3 -0
- package/dist/learning/compound-bootstrap/index.d.ts.map +1 -0
- package/dist/learning/compound-bootstrap/index.js +3 -0
- package/dist/learning/compound-bootstrap/index.js.map +1 -0
- package/dist/learning/compound-bootstrap/workspace-analyzer.d.ts +33 -0
- package/dist/learning/compound-bootstrap/workspace-analyzer.d.ts.map +1 -0
- package/dist/learning/compound-bootstrap/workspace-analyzer.js +379 -0
- package/dist/learning/compound-bootstrap/workspace-analyzer.js.map +1 -0
- package/dist/learning/consolidation-coordinator.d.ts +49 -0
- package/dist/learning/consolidation-coordinator.d.ts.map +1 -0
- package/dist/learning/consolidation-coordinator.js +75 -0
- package/dist/learning/consolidation-coordinator.js.map +1 -0
- package/dist/learning/convention-distiller.d.ts +84 -0
- package/dist/learning/convention-distiller.d.ts.map +1 -0
- package/dist/learning/convention-distiller.js +268 -0
- package/dist/learning/convention-distiller.js.map +1 -0
- package/dist/learning/distiller.d.ts +82 -0
- package/dist/learning/distiller.d.ts.map +1 -0
- package/dist/learning/distiller.js +353 -0
- package/dist/learning/distiller.js.map +1 -0
- package/dist/learning/effectiveness.d.ts +12 -2
- package/dist/learning/effectiveness.d.ts.map +1 -1
- package/dist/learning/effectiveness.js +18 -14
- package/dist/learning/effectiveness.js.map +1 -1
- package/dist/learning/escalation.d.ts +89 -0
- package/dist/learning/escalation.d.ts.map +1 -0
- package/dist/learning/escalation.js +168 -0
- package/dist/learning/escalation.js.map +1 -0
- package/dist/learning/external-exposure.d.ts +57 -0
- package/dist/learning/external-exposure.d.ts.map +1 -0
- package/dist/learning/external-exposure.js +95 -0
- package/dist/learning/external-exposure.js.map +1 -0
- package/dist/learning/gepa-proposer.d.ts +116 -0
- package/dist/learning/gepa-proposer.d.ts.map +1 -0
- package/dist/learning/gepa-proposer.js +258 -0
- package/dist/learning/gepa-proposer.js.map +1 -0
- package/dist/learning/index.d.ts +21 -8
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +28 -10
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/instant-loop.d.ts +46 -16
- package/dist/learning/instant-loop.d.ts.map +1 -1
- package/dist/learning/instant-loop.js +114 -111
- package/dist/learning/instant-loop.js.map +1 -1
- package/dist/learning/knowledge-extractor.d.ts.map +1 -1
- package/dist/learning/knowledge-extractor.js +1 -2
- package/dist/learning/knowledge-extractor.js.map +1 -1
- package/dist/learning/llm-extractor.d.ts +88 -0
- package/dist/learning/llm-extractor.d.ts.map +1 -0
- package/dist/learning/llm-extractor.js +372 -0
- package/dist/learning/llm-extractor.js.map +1 -0
- package/dist/learning/loop-coordinator.d.ts +61 -0
- package/dist/learning/loop-coordinator.d.ts.map +1 -0
- package/dist/learning/loop-coordinator.js +96 -0
- package/dist/learning/loop-coordinator.js.map +1 -0
- package/dist/learning/maintenance-scheduler.d.ts +15 -4
- package/dist/learning/maintenance-scheduler.d.ts.map +1 -1
- package/dist/learning/maintenance-scheduler.js +19 -16
- package/dist/learning/maintenance-scheduler.js.map +1 -1
- package/dist/learning/mechanism-trace.d.ts +196 -0
- package/dist/learning/mechanism-trace.d.ts.map +1 -0
- package/dist/learning/mechanism-trace.js +81 -0
- package/dist/learning/mechanism-trace.js.map +1 -0
- package/dist/learning/merge-proposer.d.ts +102 -0
- package/dist/learning/merge-proposer.d.ts.map +1 -0
- package/dist/learning/merge-proposer.js +253 -0
- package/dist/learning/merge-proposer.js.map +1 -0
- package/dist/learning/meta-learner.d.ts +9 -7
- package/dist/learning/meta-learner.d.ts.map +1 -1
- package/dist/learning/meta-learner.js +16 -45
- package/dist/learning/meta-learner.js.map +1 -1
- package/dist/learning/mutation-gate.d.ts +218 -0
- package/dist/learning/mutation-gate.d.ts.map +1 -0
- package/dist/learning/mutation-gate.js +390 -0
- package/dist/learning/mutation-gate.js.map +1 -0
- package/dist/learning/oracle-signal.d.ts +67 -0
- package/dist/learning/oracle-signal.d.ts.map +1 -0
- package/dist/learning/oracle-signal.js +94 -0
- package/dist/learning/oracle-signal.js.map +1 -0
- package/dist/learning/pipeline.d.ts +31 -4
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +64 -12
- package/dist/learning/pipeline.js.map +1 -1
- package/dist/learning/playbook-extractor.d.ts +8 -0
- package/dist/learning/playbook-extractor.d.ts.map +1 -1
- package/dist/learning/playbook-extractor.js +119 -34
- package/dist/learning/playbook-extractor.js.map +1 -1
- package/dist/learning/playbook-optimizer.d.ts +37 -0
- package/dist/learning/playbook-optimizer.d.ts.map +1 -0
- package/dist/learning/playbook-optimizer.js +125 -0
- package/dist/learning/playbook-optimizer.js.map +1 -0
- package/dist/learning/reflective-proposer.d.ts +173 -0
- package/dist/learning/reflective-proposer.d.ts.map +1 -0
- package/dist/learning/reflective-proposer.js +354 -0
- package/dist/learning/reflective-proposer.js.map +1 -0
- package/dist/learning/reflexion-generator.d.ts.map +1 -1
- package/dist/learning/reflexion-generator.js +4 -3
- package/dist/learning/reflexion-generator.js.map +1 -1
- package/dist/learning/replay-executor.d.ts +64 -0
- package/dist/learning/replay-executor.d.ts.map +1 -0
- package/dist/learning/replay-executor.js +92 -0
- package/dist/learning/replay-executor.js.map +1 -0
- package/dist/learning/replay-types.d.ts +150 -0
- package/dist/learning/replay-types.d.ts.map +1 -0
- package/dist/learning/replay-types.js +207 -0
- package/dist/learning/replay-types.js.map +1 -0
- package/dist/learning/replay.d.ts +166 -0
- package/dist/learning/replay.d.ts.map +1 -0
- package/dist/learning/replay.js +228 -0
- package/dist/learning/replay.js.map +1 -0
- package/dist/learning/seed-report.d.ts +88 -0
- package/dist/learning/seed-report.d.ts.map +1 -0
- package/dist/learning/seed-report.js +120 -0
- package/dist/learning/seed-report.js.map +1 -0
- package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/dataclaw.js +6 -18
- package/dist/learning/trajectory-sources/dataclaw.js.map +1 -1
- package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/entire.js +30 -9
- package/dist/learning/trajectory-sources/entire.js.map +1 -1
- package/dist/learning/trajectory-sources/file.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/file.js.map +1 -1
- package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/huggingface.js +7 -7
- package/dist/learning/trajectory-sources/huggingface.js.map +1 -1
- package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/in-memory.js.map +1 -1
- package/dist/learning/trajectory-sources/index.d.ts +3 -4
- package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/index.js +3 -4
- package/dist/learning/trajectory-sources/index.js.map +1 -1
- package/dist/learning/trajectory-sources/pipeline.d.ts +4 -3
- package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/pipeline.js +4 -3
- package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
- package/dist/learning/unified-pipeline.d.ts +486 -61
- package/dist/learning/unified-pipeline.d.ts.map +1 -1
- package/dist/learning/unified-pipeline.js +1501 -232
- package/dist/learning/unified-pipeline.js.map +1 -1
- package/dist/learning/usage-inference.d.ts.map +1 -1
- package/dist/learning/usage-inference.js +4 -9
- package/dist/learning/usage-inference.js.map +1 -1
- package/dist/learning/workspace-snapshot.d.ts +146 -0
- package/dist/learning/workspace-snapshot.d.ts.map +1 -0
- package/dist/learning/workspace-snapshot.js +269 -0
- package/dist/learning/workspace-snapshot.js.map +1 -0
- package/dist/mcp/playbook-server.d.ts +61 -2
- package/dist/mcp/playbook-server.d.ts.map +1 -1
- package/dist/mcp/playbook-server.js +179 -9
- package/dist/mcp/playbook-server.js.map +1 -1
- package/dist/memory/coherence.d.ts.map +1 -1
- package/dist/memory/coherence.js +5 -7
- package/dist/memory/coherence.js.map +1 -1
- package/dist/memory/curated-loader.d.ts +24 -0
- package/dist/memory/curated-loader.d.ts.map +1 -1
- package/dist/memory/curated-loader.js +22 -5
- package/dist/memory/curated-loader.js.map +1 -1
- package/dist/memory/evolution/llm-evolver.d.ts +36 -0
- package/dist/memory/evolution/llm-evolver.d.ts.map +1 -0
- package/dist/memory/evolution/llm-evolver.js +106 -0
- package/dist/memory/evolution/llm-evolver.js.map +1 -0
- package/dist/memory/experience.d.ts +34 -13
- package/dist/memory/experience.d.ts.map +1 -1
- package/dist/memory/experience.js +59 -48
- package/dist/memory/experience.js.map +1 -1
- package/dist/memory/extraction/conversation-extractor.d.ts +62 -0
- package/dist/memory/extraction/conversation-extractor.d.ts.map +1 -0
- package/dist/memory/extraction/conversation-extractor.js +169 -0
- package/dist/memory/extraction/conversation-extractor.js.map +1 -0
- package/dist/memory/filesystem-cascade.d.ts +116 -0
- package/dist/memory/filesystem-cascade.d.ts.map +1 -0
- package/dist/memory/filesystem-cascade.js +221 -0
- package/dist/memory/filesystem-cascade.js.map +1 -0
- package/dist/memory/index.d.ts +14 -10
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +15 -12
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/knowledge-bank.d.ts +145 -29
- package/dist/memory/knowledge-bank.d.ts.map +1 -1
- package/dist/memory/knowledge-bank.js +511 -200
- package/dist/memory/knowledge-bank.js.map +1 -1
- package/dist/memory/knowledge-defrag.d.ts +32 -9
- package/dist/memory/knowledge-defrag.d.ts.map +1 -1
- package/dist/memory/knowledge-defrag.js +57 -49
- package/dist/memory/knowledge-defrag.js.map +1 -1
- package/dist/memory/meta-playbook-bank.d.ts +24 -0
- package/dist/memory/meta-playbook-bank.d.ts.map +1 -0
- package/dist/memory/meta-playbook-bank.js +135 -0
- package/dist/memory/meta-playbook-bank.js.map +1 -0
- package/dist/memory/meta.d.ts.map +1 -1
- package/dist/memory/meta.js +33 -14
- package/dist/memory/meta.js.map +1 -1
- package/dist/memory/playbook-applicability.d.ts +43 -0
- package/dist/memory/playbook-applicability.d.ts.map +1 -0
- package/dist/memory/playbook-applicability.js +155 -0
- package/dist/memory/playbook-applicability.js.map +1 -0
- package/dist/memory/playbook-incorporation.d.ts +24 -0
- package/dist/memory/playbook-incorporation.d.ts.map +1 -0
- package/dist/memory/playbook-incorporation.js +41 -0
- package/dist/memory/playbook-incorporation.js.map +1 -0
- package/dist/memory/playbook.d.ts +444 -7
- package/dist/memory/playbook.d.ts.map +1 -1
- package/dist/memory/playbook.js +1231 -50
- package/dist/memory/playbook.js.map +1 -1
- package/dist/memory/procedural-skill.d.ts +142 -0
- package/dist/memory/procedural-skill.d.ts.map +1 -0
- package/dist/memory/procedural-skill.js +846 -0
- package/dist/memory/procedural-skill.js.map +1 -0
- package/dist/memory/search-provider.d.ts +8 -3
- package/dist/memory/search-provider.d.ts.map +1 -1
- package/dist/memory/search-providers/embedding.d.ts +64 -0
- package/dist/memory/search-providers/embedding.d.ts.map +1 -0
- package/dist/memory/search-providers/embedding.js +96 -0
- package/dist/memory/search-providers/embedding.js.map +1 -0
- package/dist/memory/search-providers/hybrid.d.ts +74 -0
- package/dist/memory/search-providers/hybrid.d.ts.map +1 -0
- package/dist/memory/search-providers/hybrid.js +94 -0
- package/dist/memory/search-providers/hybrid.js.map +1 -0
- package/dist/memory/search-providers/index.d.ts +3 -0
- package/dist/memory/search-providers/index.d.ts.map +1 -1
- package/dist/memory/search-providers/index.js +3 -0
- package/dist/memory/search-providers/index.js.map +1 -1
- package/dist/memory/search-providers/keyword-expanding.d.ts +22 -0
- package/dist/memory/search-providers/keyword-expanding.d.ts.map +1 -0
- package/dist/memory/search-providers/keyword-expanding.js +35 -0
- package/dist/memory/search-providers/keyword-expanding.js.map +1 -0
- package/dist/memory/search-providers/minimem.d.ts +16 -4
- package/dist/memory/search-providers/minimem.d.ts.map +1 -1
- package/dist/memory/search-providers/minimem.js +14 -3
- package/dist/memory/search-providers/minimem.js.map +1 -1
- package/dist/memory/search-providers/text-similarity.d.ts +2 -4
- package/dist/memory/search-providers/text-similarity.d.ts.map +1 -1
- package/dist/memory/search-providers/text-similarity.js.map +1 -1
- package/dist/memory/seeds/meta-playbook-seeds.d.ts +27 -0
- package/dist/memory/seeds/meta-playbook-seeds.d.ts.map +1 -0
- package/dist/memory/seeds/meta-playbook-seeds.js +560 -0
- package/dist/memory/seeds/meta-playbook-seeds.js.map +1 -0
- package/dist/memory/seeds/meta-strategy-seeds.d.ts +23 -0
- package/dist/memory/seeds/meta-strategy-seeds.d.ts.map +1 -0
- package/dist/memory/seeds/meta-strategy-seeds.js +82 -0
- package/dist/memory/seeds/meta-strategy-seeds.js.map +1 -0
- package/dist/memory/seeds/seed-loader.d.ts +34 -0
- package/dist/memory/seeds/seed-loader.d.ts.map +1 -0
- package/dist/memory/seeds/seed-loader.js +60 -0
- package/dist/memory/seeds/seed-loader.js.map +1 -0
- package/dist/memory/skill-exporter.d.ts.map +1 -1
- package/dist/memory/skill-exporter.js +1 -2
- package/dist/memory/skill-exporter.js.map +1 -1
- package/dist/memory/source-resolver.d.ts.map +1 -1
- package/dist/memory/source-resolver.js +7 -8
- package/dist/memory/source-resolver.js.map +1 -1
- package/dist/memory/system.d.ts +119 -14
- package/dist/memory/system.d.ts.map +1 -1
- package/dist/memory/system.js +416 -60
- package/dist/memory/system.js.map +1 -1
- package/dist/memory/temporal-compressor.d.ts +1 -1
- package/dist/memory/temporal-compressor.d.ts.map +1 -1
- package/dist/memory/temporal-compressor.js +26 -16
- package/dist/memory/temporal-compressor.js.map +1 -1
- package/dist/persistence/index.d.ts +2 -2
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +1 -1
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/migrator.d.ts +34 -1
- package/dist/persistence/migrator.d.ts.map +1 -1
- package/dist/persistence/migrator.js +163 -33
- package/dist/persistence/migrator.js.map +1 -1
- package/dist/persistence/sqlite-persistence.d.ts +412 -1
- package/dist/persistence/sqlite-persistence.d.ts.map +1 -1
- package/dist/persistence/sqlite-persistence.js +1038 -47
- package/dist/persistence/sqlite-persistence.js.map +1 -1
- package/dist/runtime/backends/acp-protocol.d.ts.map +1 -1
- package/dist/runtime/backends/acp-protocol.js +2 -1
- package/dist/runtime/backends/acp-protocol.js.map +1 -1
- package/dist/runtime/backends/acp.d.ts.map +1 -1
- package/dist/runtime/backends/acp.js +5 -4
- package/dist/runtime/backends/acp.js.map +1 -1
- package/dist/runtime/backends/index.d.ts +2 -2
- package/dist/runtime/backends/index.d.ts.map +1 -1
- package/dist/runtime/backends/index.js +2 -2
- package/dist/runtime/backends/index.js.map +1 -1
- package/dist/runtime/backends/macro-agent.d.ts +17 -1
- package/dist/runtime/backends/macro-agent.d.ts.map +1 -1
- package/dist/runtime/backends/macro-agent.js +1 -1
- package/dist/runtime/backends/macro-agent.js.map +1 -1
- package/dist/runtime/backends/mock.d.ts.map +1 -1
- package/dist/runtime/backends/mock.js.map +1 -1
- package/dist/runtime/backends/subprocess.d.ts.map +1 -1
- package/dist/runtime/backends/subprocess.js +5 -4
- package/dist/runtime/backends/subprocess.js.map +1 -1
- package/dist/runtime/compute-provider.d.ts +2 -18
- package/dist/runtime/compute-provider.d.ts.map +1 -1
- package/dist/runtime/compute-provider.js +8 -8
- package/dist/runtime/compute-provider.js.map +1 -1
- package/dist/runtime/flows/learning.d.ts +2 -1
- package/dist/runtime/flows/learning.d.ts.map +1 -1
- package/dist/runtime/flows/learning.js +4 -5
- package/dist/runtime/flows/learning.js.map +1 -1
- package/dist/runtime/flows/validation.d.ts.map +1 -1
- package/dist/runtime/flows/validation.js +2 -5
- package/dist/runtime/flows/validation.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/manager.d.ts +128 -0
- package/dist/runtime/manager.d.ts.map +1 -1
- package/dist/runtime/manager.js +375 -64
- package/dist/runtime/manager.js.map +1 -1
- package/dist/runtime/types.d.ts +92 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/search/evaluator.d.ts +71 -0
- package/dist/search/evaluator.d.ts.map +1 -1
- package/dist/search/evaluator.js +40 -5
- package/dist/search/evaluator.js.map +1 -1
- package/dist/search/index.d.ts +3 -5
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +4 -7
- package/dist/search/index.js.map +1 -1
- package/dist/search/moe-gate.d.ts +48 -2
- package/dist/search/moe-gate.d.ts.map +1 -1
- package/dist/search/moe-gate.js +117 -4
- package/dist/search/moe-gate.js.map +1 -1
- package/dist/search/refinement-loop.d.ts +63 -3
- package/dist/search/refinement-loop.d.ts.map +1 -1
- package/dist/search/refinement-loop.js +278 -23
- package/dist/search/refinement-loop.js.map +1 -1
- package/dist/search/refinement-types.d.ts +4 -2
- package/dist/search/refinement-types.d.ts.map +1 -1
- package/dist/search/refinement-types.js +2 -11
- package/dist/search/refinement-types.js.map +1 -1
- package/dist/search/router.d.ts +41 -34
- package/dist/search/router.d.ts.map +1 -1
- package/dist/search/router.js +156 -90
- package/dist/search/router.js.map +1 -1
- package/dist/search/solver.js +1 -1
- package/dist/search/solver.js.map +1 -1
- package/dist/search/task-difficulty.d.ts +54 -0
- package/dist/search/task-difficulty.d.ts.map +1 -0
- package/dist/search/task-difficulty.js +116 -0
- package/dist/search/task-difficulty.js.map +1 -0
- package/dist/search/tau-bench-verifier.d.ts +74 -0
- package/dist/search/tau-bench-verifier.d.ts.map +1 -0
- package/dist/search/tau-bench-verifier.js +96 -0
- package/dist/search/tau-bench-verifier.js.map +1 -0
- package/dist/search/verification-runner.d.ts.map +1 -1
- package/dist/search/verification-runner.js +6 -5
- package/dist/search/verification-runner.js.map +1 -1
- package/dist/session-bank/git-reader.d.ts.map +1 -1
- package/dist/session-bank/git-reader.js +5 -19
- package/dist/session-bank/git-reader.js.map +1 -1
- package/dist/session-bank/parser.d.ts.map +1 -1
- package/dist/session-bank/parser.js +26 -0
- package/dist/session-bank/parser.js.map +1 -1
- package/dist/session-bank/session-bank.d.ts.map +1 -1
- package/dist/session-bank/session-bank.js +2 -5
- package/dist/session-bank/session-bank.js.map +1 -1
- package/dist/session-bank/types.d.ts +24 -0
- package/dist/session-bank/types.d.ts.map +1 -1
- package/dist/surfacing/index.d.ts +3 -3
- package/dist/surfacing/index.d.ts.map +1 -1
- package/dist/surfacing/index.js +2 -2
- package/dist/surfacing/index.js.map +1 -1
- package/dist/surfacing/shared-bank.d.ts +43 -0
- package/dist/surfacing/shared-bank.d.ts.map +1 -0
- package/dist/surfacing/shared-bank.js +104 -0
- package/dist/surfacing/shared-bank.js.map +1 -0
- package/dist/surfacing/skill-library.d.ts +98 -2
- package/dist/surfacing/skill-library.d.ts.map +1 -1
- package/dist/surfacing/skill-library.js +192 -17
- package/dist/surfacing/skill-library.js.map +1 -1
- package/dist/surfacing/skill-publisher.d.ts +3 -1
- package/dist/surfacing/skill-publisher.d.ts.map +1 -1
- package/dist/surfacing/skill-publisher.js +28 -28
- package/dist/surfacing/skill-publisher.js.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.d.ts +2 -2
- package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.js +27 -18
- package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
- package/dist/types/analysis.d.ts +43 -0
- package/dist/types/analysis.d.ts.map +1 -0
- package/dist/types/analysis.js +10 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/types/config.d.ts +2178 -425
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +600 -88
- package/dist/types/config.js.map +1 -1
- package/dist/types/dataclaw.d.ts +3 -3
- package/dist/types/index.d.ts +4 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -10
- package/dist/types/index.js.map +1 -1
- package/dist/types/knowledge-graph.d.ts +1 -1
- package/dist/types/knowledge-graph.d.ts.map +1 -1
- package/dist/types/knowledge.d.ts +219 -11
- package/dist/types/knowledge.d.ts.map +1 -1
- package/dist/types/knowledge.js +90 -30
- package/dist/types/knowledge.js.map +1 -1
- package/dist/types/memory.d.ts +8 -0
- package/dist/types/memory.d.ts.map +1 -1
- package/dist/types/memory.js +12 -4
- package/dist/types/memory.js.map +1 -1
- package/dist/types/outcome.d.ts +11 -0
- package/dist/types/outcome.d.ts.map +1 -1
- package/dist/types/outcome.js +9 -0
- package/dist/types/outcome.js.map +1 -1
- package/dist/types/playbook.d.ts +63 -0
- package/dist/types/playbook.d.ts.map +1 -1
- package/dist/types/playbook.js +51 -0
- package/dist/types/playbook.js.map +1 -1
- package/dist/types/trajectory-source.d.ts +1 -1
- package/dist/types/trajectory-source.d.ts.map +1 -1
- package/dist/types/trajectory.d.ts +61 -0
- package/dist/types/trajectory.d.ts.map +1 -1
- package/dist/types/trajectory.js +25 -0
- package/dist/types/trajectory.js.map +1 -1
- package/dist/utils/clock.d.ts +36 -0
- package/dist/utils/clock.d.ts.map +1 -0
- package/dist/utils/clock.js +48 -0
- package/dist/utils/clock.js.map +1 -0
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +10 -2
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/index.d.ts +4 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +31 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/objectives.d.ts +45 -0
- package/dist/utils/objectives.d.ts.map +1 -0
- package/dist/utils/objectives.js +74 -0
- package/dist/utils/objectives.js.map +1 -0
- package/dist/utils/partitioned-store.d.ts.map +1 -1
- package/dist/utils/partitioned-store.js.map +1 -1
- package/dist/utils/playbook-hash.d.ts +19 -0
- package/dist/utils/playbook-hash.d.ts.map +1 -0
- package/dist/utils/playbook-hash.js +51 -0
- package/dist/utils/playbook-hash.js.map +1 -0
- package/dist/utils/similarity.d.ts.map +1 -1
- package/dist/utils/similarity.js.map +1 -1
- package/dist/utils/solver-canonicalizer.d.ts +22 -0
- package/dist/utils/solver-canonicalizer.d.ts.map +1 -0
- package/dist/utils/solver-canonicalizer.js +41 -0
- package/dist/utils/solver-canonicalizer.js.map +1 -0
- package/dist/utils/storage.d.ts.map +1 -1
- package/dist/utils/storage.js +1 -3
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/task-signature.d.ts +34 -0
- package/dist/utils/task-signature.d.ts.map +1 -0
- package/dist/utils/task-signature.js +112 -0
- package/dist/utils/task-signature.js.map +1 -0
- package/dist/utils/trajectory-helpers.d.ts.map +1 -1
- package/dist/utils/trajectory-helpers.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js.map +1 -1
- package/dist/workspace/efficacy-toolkit.d.ts.map +1 -1
- package/dist/workspace/efficacy-toolkit.js +18 -26
- package/dist/workspace/efficacy-toolkit.js.map +1 -1
- package/dist/workspace/index.d.ts +4 -3
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +5 -3
- package/dist/workspace/index.js.map +1 -1
- package/dist/workspace/runner.d.ts.map +1 -1
- package/dist/workspace/runner.js +95 -21
- package/dist/workspace/runner.js.map +1 -1
- package/dist/workspace/skill-converter.d.ts +66 -1
- package/dist/workspace/skill-converter.d.ts.map +1 -1
- package/dist/workspace/skill-converter.js +238 -19
- package/dist/workspace/skill-converter.js.map +1 -1
- package/dist/workspace/skill-import.d.ts +43 -0
- package/dist/workspace/skill-import.d.ts.map +1 -0
- package/dist/workspace/skill-import.js +40 -0
- package/dist/workspace/skill-import.js.map +1 -0
- package/dist/workspace/templates/index.d.ts +6 -8
- package/dist/workspace/templates/index.d.ts.map +1 -1
- package/dist/workspace/templates/index.js +7 -11
- package/dist/workspace/templates/index.js.map +1 -1
- package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -1
- package/dist/workspace/templates/knowledge-defrag.js +0 -2
- package/dist/workspace/templates/knowledge-defrag.js.map +1 -1
- package/dist/workspace/templates/knowledge-extraction.d.ts +11 -0
- package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -1
- package/dist/workspace/templates/knowledge-extraction.js +11 -6
- package/dist/workspace/templates/knowledge-extraction.js.map +1 -1
- package/dist/workspace/templates/playbook-conditioning.d.ts +38 -0
- package/dist/workspace/templates/playbook-conditioning.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-conditioning.js +147 -0
- package/dist/workspace/templates/playbook-conditioning.js.map +1 -0
- package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -1
- package/dist/workspace/templates/playbook-decay-detection.js +24 -18
- package/dist/workspace/templates/playbook-decay-detection.js.map +1 -1
- package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -1
- package/dist/workspace/templates/playbook-efficacy-audit.js +26 -11
- package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -1
- package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -1
- package/dist/workspace/templates/playbook-extraction.js +75 -15
- package/dist/workspace/templates/playbook-extraction.js.map +1 -1
- package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -1
- package/dist/workspace/templates/playbook-lifecycle-review.js +12 -8
- package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -1
- package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -1
- package/dist/workspace/templates/refinement-analysis.js +11 -5
- package/dist/workspace/templates/refinement-analysis.js.map +1 -1
- package/dist/workspace/templates/skill-enrichment.d.ts.map +1 -1
- package/dist/workspace/templates/skill-enrichment.js +7 -11
- package/dist/workspace/templates/skill-enrichment.js.map +1 -1
- package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -1
- package/dist/workspace/templates/solution-evaluation.js +15 -8
- package/dist/workspace/templates/solution-evaluation.js.map +1 -1
- package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -1
- package/dist/workspace/templates/trajectory-analysis.js +1 -3
- package/dist/workspace/templates/trajectory-analysis.js.map +1 -1
- package/dist/workspace/templates/usage-inference.d.ts.map +1 -1
- package/dist/workspace/templates/usage-inference.js +9 -7
- package/dist/workspace/templates/usage-inference.js.map +1 -1
- package/dist/workspace/types.d.ts +32 -2
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/types.js +29 -0
- package/dist/workspace/types.js.map +1 -1
- package/package.json +43 -19
- package/playbooks/agent-ops/long-task-checkpointing.json +54 -0
- package/playbooks/agent-ops/progressive-context-gathering.json +56 -0
- package/playbooks/agent-ops/safe-destructive-operations.json +59 -0
- package/playbooks/agent-ops/scope-discipline.json +56 -0
- package/playbooks/agent-ops/stall-detection-strategy-switch.json +55 -0
- package/playbooks/agent-ops/verification-before-completion.json +54 -0
- package/playbooks/alfworld/clean-and-place.json +35 -0
- package/playbooks/alfworld/cool-and-place.json +35 -0
- package/playbooks/alfworld/examine-in-light.json +32 -0
- package/playbooks/alfworld/heat-and-place.json +35 -0
- package/playbooks/alfworld/pick-and-place.json +37 -0
- package/playbooks/alfworld/pick-two-and-place.json +35 -0
- package/.claude/settings.json +0 -197
- package/.entire/settings.json +0 -4
- package/.sessionlog/settings.json +0 -4
- package/CLAUDE.md +0 -233
- package/SKILL.md +0 -193
- package/docs/DESIGN-agentic-workspace.md +0 -2057
- package/docs/DESIGN-semantic-memory-knowledge-bank.md +0 -1789
- package/docs/DESIGN-session-bank.md +0 -1134
- package/docs/DESIGN-team-extraction-pipeline.md +0 -1369
- package/docs/PROPOSAL-team-aware-learning.md +0 -1080
- package/docs/RESEARCH-semantic-memory-knowledge-structures.md +0 -517
- package/docs/RESEARCH-team-trajectory-learning.md +0 -553
- package/gaps.md +0 -204
- package/scripts/migrate-to-playbooks.ts +0 -307
- package/src/agents/index.ts +0 -14
- package/src/agents/mock-provider.ts +0 -93
- package/src/agents/types.ts +0 -137
- package/src/atlas.ts +0 -1198
- package/src/bin/cli-utils.ts +0 -220
- package/src/bin/cognitive-core.ts +0 -162
- package/src/bin/commands/kb.ts +0 -266
- package/src/bin/commands/learn.ts +0 -100
- package/src/bin/commands/legacy.ts +0 -182
- package/src/bin/commands/run.ts +0 -113
- package/src/bin/commands/sessions.ts +0 -221
- package/src/bin/commands/skills.ts +0 -146
- package/src/embeddings/bm25.ts +0 -337
- package/src/embeddings/index.ts +0 -42
- package/src/embeddings/inverted-index.ts +0 -134
- package/src/embeddings/manager.ts +0 -293
- package/src/embeddings/provider.ts +0 -318
- package/src/embeddings/vector-store.ts +0 -365
- package/src/factory.ts +0 -280
- package/src/index.ts +0 -495
- package/src/learning/analyzer.ts +0 -319
- package/src/learning/effectiveness.ts +0 -428
- package/src/learning/energy-evaluator.ts +0 -282
- package/src/learning/healing-orchestrator.ts +0 -383
- package/src/learning/index.ts +0 -150
- package/src/learning/instant-loop.ts +0 -357
- package/src/learning/knowledge-extractor.ts +0 -470
- package/src/learning/maintenance-scheduler.ts +0 -271
- package/src/learning/meta-learner.ts +0 -552
- package/src/learning/playbook-extractor.ts +0 -702
- package/src/learning/reflexion-generator.ts +0 -273
- package/src/learning/team-ingester.ts +0 -499
- package/src/learning/team-meta-learner.ts +0 -558
- package/src/learning/team-pipeline.ts +0 -364
- package/src/learning/trajectory-sources/dataclaw.ts +0 -403
- package/src/learning/trajectory-sources/entire.ts +0 -251
- package/src/learning/trajectory-sources/file.ts +0 -136
- package/src/learning/trajectory-sources/huggingface.ts +0 -248
- package/src/learning/trajectory-sources/in-memory.ts +0 -61
- package/src/learning/trajectory-sources/index.ts +0 -15
- package/src/learning/trajectory-sources/pipeline.ts +0 -69
- package/src/learning/unified-pipeline.ts +0 -1191
- package/src/learning/usage-inference.ts +0 -372
- package/src/mcp/index.ts +0 -12
- package/src/mcp/playbook-server.ts +0 -565
- package/src/memory/candidate-retrieval.ts +0 -72
- package/src/memory/causal-store.ts +0 -273
- package/src/memory/coherence.ts +0 -252
- package/src/memory/curated-loader.ts +0 -213
- package/src/memory/experience.ts +0 -682
- package/src/memory/graph-layers/base.ts +0 -184
- package/src/memory/graph-layers/causal.ts +0 -16
- package/src/memory/graph-layers/entity.ts +0 -16
- package/src/memory/graph-layers/index.ts +0 -5
- package/src/memory/graph-layers/semantic.ts +0 -16
- package/src/memory/graph-layers/temporal.ts +0 -16
- package/src/memory/index.ts +0 -131
- package/src/memory/knowledge-bank.ts +0 -1317
- package/src/memory/knowledge-defrag.ts +0 -329
- package/src/memory/knowledge-graph.ts +0 -361
- package/src/memory/meta.ts +0 -488
- package/src/memory/playbook.ts +0 -676
- package/src/memory/reasoning-bank.ts +0 -458
- package/src/memory/reflexion.ts +0 -122
- package/src/memory/search-provider.ts +0 -35
- package/src/memory/search-providers/index.ts +0 -3
- package/src/memory/search-providers/minimem.ts +0 -84
- package/src/memory/search-providers/text-similarity.ts +0 -35
- package/src/memory/skill-exporter.ts +0 -357
- package/src/memory/source-resolver.ts +0 -422
- package/src/memory/system.ts +0 -620
- package/src/memory/team-experience.ts +0 -604
- package/src/memory/temporal-compressor.ts +0 -409
- package/src/persistence/index.ts +0 -37
- package/src/persistence/migrator.ts +0 -298
- package/src/persistence/serializers.ts +0 -79
- package/src/persistence/sqlite-persistence.ts +0 -925
- package/src/runtime/backends/acp-protocol.ts +0 -231
- package/src/runtime/backends/acp.ts +0 -239
- package/src/runtime/backends/index.ts +0 -38
- package/src/runtime/backends/macro-agent.ts +0 -177
- package/src/runtime/backends/mock.ts +0 -218
- package/src/runtime/backends/subprocess.ts +0 -356
- package/src/runtime/compute-provider.ts +0 -206
- package/src/runtime/flows/learning.ts +0 -166
- package/src/runtime/flows/validation.ts +0 -381
- package/src/runtime/index.ts +0 -75
- package/src/runtime/manager.ts +0 -685
- package/src/runtime/types.ts +0 -198
- package/src/search/evaluator.ts +0 -499
- package/src/search/index.ts +0 -78
- package/src/search/moe-gate.ts +0 -304
- package/src/search/refinement-loop.ts +0 -457
- package/src/search/refinement-types.ts +0 -159
- package/src/search/router.ts +0 -368
- package/src/search/solver.ts +0 -303
- package/src/search/team-router.ts +0 -459
- package/src/search/verification-runner.ts +0 -570
- package/src/session-bank/git-reader.ts +0 -200
- package/src/session-bank/index.ts +0 -26
- package/src/session-bank/parser.ts +0 -548
- package/src/session-bank/session-bank.ts +0 -485
- package/src/session-bank/types.ts +0 -176
- package/src/surfacing/index.ts +0 -29
- package/src/surfacing/publisher.ts +0 -23
- package/src/surfacing/skill-library.ts +0 -625
- package/src/surfacing/skill-publisher.ts +0 -257
- package/src/surfacing/sqlite-storage-adapter.ts +0 -285
- package/src/surfacing/team-skill-library.ts +0 -610
- package/src/types/config.ts +0 -661
- package/src/types/dataclaw.ts +0 -99
- package/src/types/huggingface-transformers.d.ts +0 -12
- package/src/types/index.ts +0 -293
- package/src/types/knowledge-graph.ts +0 -246
- package/src/types/knowledge.ts +0 -388
- package/src/types/memory.ts +0 -300
- package/src/types/meta.ts +0 -218
- package/src/types/outcome.ts +0 -66
- package/src/types/playbook.ts +0 -215
- package/src/types/step.ts +0 -40
- package/src/types/task.ts +0 -52
- package/src/types/team-meta.ts +0 -212
- package/src/types/team-playbook.ts +0 -384
- package/src/types/team-trajectory.ts +0 -673
- package/src/types/trajectory-source.ts +0 -47
- package/src/types/trajectory.ts +0 -80
- package/src/utils/error-classifier.ts +0 -113
- package/src/utils/frontmatter.ts +0 -118
- package/src/utils/index.ts +0 -63
- package/src/utils/partitioned-store.ts +0 -299
- package/src/utils/similarity.ts +0 -139
- package/src/utils/storage.ts +0 -249
- package/src/utils/trajectory-helpers.ts +0 -79
- package/src/utils/validation.ts +0 -286
- package/src/workspace/efficacy-toolkit.ts +0 -496
- package/src/workspace/index.ts +0 -77
- package/src/workspace/runner.ts +0 -281
- package/src/workspace/skill-converter.ts +0 -288
- package/src/workspace/templates/index.ts +0 -95
- package/src/workspace/templates/knowledge-defrag.ts +0 -223
- package/src/workspace/templates/knowledge-extraction.ts +0 -337
- package/src/workspace/templates/meta-reflection.ts +0 -208
- package/src/workspace/templates/playbook-decay-detection.ts +0 -272
- package/src/workspace/templates/playbook-efficacy-audit.ts +0 -246
- package/src/workspace/templates/playbook-extraction.ts +0 -240
- package/src/workspace/templates/playbook-lifecycle-review.ts +0 -274
- package/src/workspace/templates/refinement-analysis.ts +0 -162
- package/src/workspace/templates/skill-enrichment.ts +0 -275
- package/src/workspace/templates/solution-evaluation.ts +0 -199
- package/src/workspace/templates/team-playbook-extraction.ts +0 -631
- package/src/workspace/templates/team-trajectory-analysis.ts +0 -564
- package/src/workspace/templates/trajectory-analysis.ts +0 -234
- package/src/workspace/templates/usage-inference.ts +0 -163
- package/src/workspace/types.ts +0 -185
- package/tests/atlas-knowledge.test.ts +0 -165
- package/tests/embeddings/bm25.test.ts +0 -130
- package/tests/embeddings/inverted-index.test.ts +0 -138
- package/tests/embeddings/manager.test.ts +0 -205
- package/tests/feature-toggles.test.ts +0 -275
- package/tests/fixtures/behavioral-trajectories.ts +0 -210
- package/tests/gap-fixes.test.ts +0 -1116
- package/tests/integration/atlas.test.ts +0 -266
- package/tests/integration/cli-e2e.test.ts +0 -621
- package/tests/integration/curated-sources-e2e.test.ts +0 -502
- package/tests/integration/dataclaw-e2e.test.ts +0 -559
- package/tests/integration/e2e.test.ts +0 -1337
- package/tests/integration/entire-e2e.test.ts +0 -376
- package/tests/integration/huggingface-e2e.test.ts +0 -627
- package/tests/integration/persistence-e2e.test.ts +0 -741
- package/tests/integration/phase-e2e.test.ts +0 -1143
- package/tests/integration/pipeline-data-correctness.test.ts +0 -794
- package/tests/integration/session-bank.test.ts +0 -231
- package/tests/integration/sessionlog-e2e.test.ts +0 -329
- package/tests/integration/skill-tree-wiring.test.ts +0 -152
- package/tests/integration/unified-pipeline-e2e.test.ts +0 -634
- package/tests/learning/analyzer.test.ts +0 -426
- package/tests/learning/dataclaw-trajectory-source.test.ts +0 -642
- package/tests/learning/effectiveness.test.ts +0 -542
- package/tests/learning/energy-evaluator.test.ts +0 -180
- package/tests/learning/entire-trajectory-source.test.ts +0 -380
- package/tests/learning/healing-orchestrator.test.ts +0 -269
- package/tests/learning/huggingface-trajectory-source.test.ts +0 -817
- package/tests/learning/instant-loop.test.ts +0 -243
- package/tests/learning/knowledge-extractor.test.ts +0 -491
- package/tests/learning/maintenance-scheduler.test.ts +0 -191
- package/tests/learning/meta-learner.test.ts +0 -418
- package/tests/learning/pipeline-memory-updates.test.ts +0 -721
- package/tests/learning/playbook-extractor-provenance.test.ts +0 -114
- package/tests/learning/reflexion-generator.test.ts +0 -411
- package/tests/learning/team-ingester.test.ts +0 -349
- package/tests/learning/team-meta-learner.test.ts +0 -618
- package/tests/learning/team-pipeline.test.ts +0 -334
- package/tests/learning/trajectory-sources.test.ts +0 -320
- package/tests/learning/unified-pipeline-efficacy.test.ts +0 -232
- package/tests/learning/unified-pipeline.test.ts +0 -322
- package/tests/learning/usage-inference.test.ts +0 -254
- package/tests/mcp/playbook-server.test.ts +0 -257
- package/tests/memory/candidate-retrieval.test.ts +0 -167
- package/tests/memory/causal-store.test.ts +0 -276
- package/tests/memory/coherence.test.ts +0 -232
- package/tests/memory/compound-engineering-seed.test.ts +0 -338
- package/tests/memory/curated-loader-extended.test.ts +0 -225
- package/tests/memory/experience.test.ts +0 -203
- package/tests/memory/graph-layers/semantic.test.ts +0 -219
- package/tests/memory/knowledge-bank-extraction.test.ts +0 -558
- package/tests/memory/knowledge-bank.test.ts +0 -705
- package/tests/memory/knowledge-defrag.test.ts +0 -366
- package/tests/memory/knowledge-evolution.test.ts +0 -563
- package/tests/memory/knowledge-graph.test.ts +0 -492
- package/tests/memory/knowledge-inbox.test.ts +0 -258
- package/tests/memory/knowledge-minimem.test.ts +0 -251
- package/tests/memory/meta.test.ts +0 -399
- package/tests/memory/playbook-quality-validation.test.ts +0 -430
- package/tests/memory/playbook.test.ts +0 -644
- package/tests/memory/provenance.test.ts +0 -648
- package/tests/memory/reasoning-bank.test.ts +0 -239
- package/tests/memory/reflexion.test.ts +0 -166
- package/tests/memory/skill-exporter.test.ts +0 -475
- package/tests/memory/source-resolver.test.ts +0 -700
- package/tests/memory/system.test.ts +0 -330
- package/tests/memory/team-experience.test.ts +0 -411
- package/tests/memory/temporal-compressor.test.ts +0 -318
- package/tests/persistence/migrator.test.ts +0 -1009
- package/tests/persistence/sqlite-persistence.test.ts +0 -635
- package/tests/runtime/agent-manager.test.ts +0 -517
- package/tests/runtime/compute-provider.test.ts +0 -288
- package/tests/runtime/delegate.test.ts +0 -354
- package/tests/runtime/macro-agent-backend.test.ts +0 -266
- package/tests/runtime/mock-backend.test.ts +0 -248
- package/tests/search/evaluator.test.ts +0 -257
- package/tests/search/moe-gate.test.ts +0 -250
- package/tests/search/refinement-loop.test.ts +0 -477
- package/tests/search/refinement.test.ts +0 -267
- package/tests/search/router.test.ts +0 -506
- package/tests/search/team-router.test.ts +0 -376
- package/tests/search/verification-runner.test.ts +0 -357
- package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +0 -12
- package/tests/session-bank/fixtures/multi-tool-session/metadata.json +0 -28
- package/tests/session-bank/fixtures/root-metadata.json +0 -18
- package/tests/session-bank/fixtures/sessionlog-root-metadata.json +0 -16
- package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +0 -6
- package/tests/session-bank/fixtures/sessionlog-session/metadata.json +0 -55
- package/tests/session-bank/fixtures/simple-session/full.jsonl +0 -6
- package/tests/session-bank/fixtures/simple-session/metadata.json +0 -38
- package/tests/session-bank/git-reader.test.ts +0 -232
- package/tests/session-bank/parser.test.ts +0 -453
- package/tests/session-bank/session-bank.test.ts +0 -546
- package/tests/surfacing/skill-library.test.ts +0 -297
- package/tests/surfacing/skill-publisher.test.ts +0 -437
- package/tests/surfacing/sqlite-storage-adapter.test.ts +0 -206
- package/tests/surfacing/team-skill-library.test.ts +0 -444
- package/tests/types/outcome.test.ts +0 -147
- package/tests/types/step.test.ts +0 -133
- package/tests/types/task.test.ts +0 -158
- package/tests/types/team-meta.test.ts +0 -147
- package/tests/types/team-playbook.test.ts +0 -246
- package/tests/types/team-trajectory.test.ts +0 -557
- package/tests/types/trajectory.test.ts +0 -253
- package/tests/utils/error-classifier.test.ts +0 -149
- package/tests/utils/frontmatter.test.ts +0 -208
- package/tests/utils/partitioned-store.test.ts +0 -230
- package/tests/utils/similarity.test.ts +0 -188
- package/tests/utils/trajectory-helpers.test.ts +0 -163
- package/tests/utils/validation.test.ts +0 -252
- package/tests/workspace/efficacy-toolkit.test.ts +0 -404
- package/tests/workspace/full-flow.test.ts +0 -845
- package/tests/workspace/manager.test.ts +0 -215
- package/tests/workspace/runner.test.ts +0 -336
- package/tests/workspace/skill-converter.test.ts +0 -205
- package/tests/workspace/templates/knowledge-extraction.test.ts +0 -235
- package/tests/workspace/templates/playbook-efficacy.test.ts +0 -377
- package/tests/workspace/templates/team-playbook-extraction.test.ts +0 -341
- package/tests/workspace/templates/team-trajectory-analysis.test.ts +0 -417
- package/tsconfig.json +0 -25
- package/vitest.config.ts +0 -22
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../../src/eval/memory-qa/loaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAE1E;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/C,iBAAiB,CAAC;QAChB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;QACxB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QACrB,UAAU,EAAE,GAAG;QACf,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/eval/memory-qa/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACvF,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/eval/memory-qa/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { SearchProvider } from '../../memory/search-provider.js';
|
|
2
|
+
import type { MemQAInstance, MemQuestion } from './types.js';
|
|
3
|
+
import { type IterativeConfig, type CompleteFn } from './iterative.js';
|
|
4
|
+
import { type MemoryQAServingGate, type MemoryQAServingQuestionDecision } from './serving.js';
|
|
5
|
+
/**
|
|
6
|
+
* Phase B — end-to-end QA over retrieved memory (LLM read + judge).
|
|
7
|
+
*
|
|
8
|
+
* For each answerable question: retrieve top-k notes with a {@link SearchProvider},
|
|
9
|
+
* have the model READ them and answer, then JUDGE the answer against gold. Run
|
|
10
|
+
* with two retrievers (e.g. lexical vs hybrid) to test whether the Phase-A
|
|
11
|
+
* recall gain *converts* to answer-accuracy — the rung-3 of the proxy→outcome
|
|
12
|
+
* ladder. Costs agent budget (≈1 read + ≤1 judge call per question per arm), so
|
|
13
|
+
* it's gated. See docs/DESIGN-memory-qa-benchmarks.md §4 (Phase B).
|
|
14
|
+
*
|
|
15
|
+
* Budget savers: abstention is detected by a `NO_ANSWER` sentinel (no judge
|
|
16
|
+
* call); a correct answer that literally contains the gold short-circuits the
|
|
17
|
+
* judge (high-precision positive). Only ambiguous cases hit the LLM judge.
|
|
18
|
+
*/
|
|
19
|
+
/** Minimal LLM hook: prompt in, completion text out. */
|
|
20
|
+
export type { CompleteFn } from './iterative.js';
|
|
21
|
+
export interface QARecord {
|
|
22
|
+
id: string;
|
|
23
|
+
category: string;
|
|
24
|
+
/** Question text — kept so a report can be re-judged post-hoc (J metric). */
|
|
25
|
+
question: string;
|
|
26
|
+
answer: string;
|
|
27
|
+
/** Gold reference answer (for post-hoc word-overlap scoring). */
|
|
28
|
+
gold: string;
|
|
29
|
+
correct: boolean;
|
|
30
|
+
judgedBy: 'contains' | 'llm' | 'abstain-sentinel' | 'overlap' | 'mem0-judge' | 'error';
|
|
31
|
+
/** Retrieval rounds run (iterative mode only) — for cost accounting. */
|
|
32
|
+
iterations?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface QAReport {
|
|
35
|
+
provider: string;
|
|
36
|
+
k: number;
|
|
37
|
+
overall: {
|
|
38
|
+
accuracy: number;
|
|
39
|
+
n: number;
|
|
40
|
+
};
|
|
41
|
+
byCategory: Record<string, {
|
|
42
|
+
accuracy: number;
|
|
43
|
+
n: number;
|
|
44
|
+
}>;
|
|
45
|
+
records: QARecord[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* True when an answer is a refusal / "no information" response. For LoCoMo
|
|
49
|
+
* category 5 (adversarial) the `adversarial_answer` is a planted misattribution
|
|
50
|
+
* distractor (e.g. asks what *Caroline* realized when the transcript shows
|
|
51
|
+
* *Melanie* said it), so the CORRECT behavior is to refuse — and refusing scores
|
|
52
|
+
* 0 under both token-F1 and the J judge (both match the distractor as "gold").
|
|
53
|
+
* Refusal accuracy is therefore the meaningful cat-5 metric: high = robust to the
|
|
54
|
+
* bait. See docs/DESIGN-memory-qa-benchmarks.md §4h.
|
|
55
|
+
*/
|
|
56
|
+
export declare function isRefusal(answer: string): boolean;
|
|
57
|
+
/** Fraction of a category's answers that are refusals (= correct on adversarial). */
|
|
58
|
+
export declare function refusalAccuracy(report: QAReport, category: string): {
|
|
59
|
+
accuracy: number;
|
|
60
|
+
n: number;
|
|
61
|
+
};
|
|
62
|
+
/** Run the mem0 J-judge for one (question, gold, answer); true = CORRECT. */
|
|
63
|
+
export declare function judgeCorrect(complete: CompleteFn, question: string, gold: string, answer: string): Promise<boolean>;
|
|
64
|
+
/** A question paired with the instance whose haystack it queries. */
|
|
65
|
+
export interface SampledQuestion {
|
|
66
|
+
instance: MemQAInstance;
|
|
67
|
+
question: MemQuestion;
|
|
68
|
+
}
|
|
69
|
+
/** Deterministic strided down-sample so both A/B arms score the identical set. */
|
|
70
|
+
export declare function sampleQuestions(instances: MemQAInstance[], maxQuestions?: number): SampledQuestion[];
|
|
71
|
+
/**
|
|
72
|
+
* Category-stratified sample: up to `perCategory` answerable questions per
|
|
73
|
+
* `question.category`, strided within each category for spread. Gives
|
|
74
|
+
* representative coverage across question types (the first-N-instances sampler
|
|
75
|
+
* over type-grouped data collapses to one category).
|
|
76
|
+
*/
|
|
77
|
+
export declare function sampleStratified(instances: MemQAInstance[], perCategory: number, opts?: {
|
|
78
|
+
includeAbstain?: boolean;
|
|
79
|
+
categoryOffset?: number;
|
|
80
|
+
}): SampledQuestion[];
|
|
81
|
+
/** Run end-to-end QA for one retriever over a (sampled) question set. */
|
|
82
|
+
export declare function runMemoryQA(instances: MemQAInstance[], retriever: SearchProvider, complete: CompleteFn, opts?: {
|
|
83
|
+
k?: number;
|
|
84
|
+
maxQuestions?: number;
|
|
85
|
+
/** Explicit pre-sampled question set — pass the SAME list to both arms for a paired A/B. */
|
|
86
|
+
questions?: SampledQuestion[];
|
|
87
|
+
/**
|
|
88
|
+
* 'judge' (default): LLM-judge correctness (conversion A/B).
|
|
89
|
+
* 'overlap': natural answer + record gold, NO judge call — for word-overlap
|
|
90
|
+
* (F1/BLEU-1) scoring vs A-MEM. Halves the call count (read only).
|
|
91
|
+
*/
|
|
92
|
+
scoreMode?: 'judge' | 'overlap';
|
|
93
|
+
/**
|
|
94
|
+
* Custom answer-generation prompt (e.g. to match A-MEM's category-specific
|
|
95
|
+
* F1-optimized prompts). When set, overrides the default read prompt — the
|
|
96
|
+
* fair way to compare memory/retrieval without answer-format confounds.
|
|
97
|
+
*/
|
|
98
|
+
buildPrompt?: (question: MemQuestion, excerpts: string[]) => string;
|
|
99
|
+
/**
|
|
100
|
+
* A-MEM's `retrieve_memory_llm` re-rank: after retrieval, an LLM distills the
|
|
101
|
+
* top-k excerpts to "the relevant parts" before the answer read (+1 call/q).
|
|
102
|
+
*/
|
|
103
|
+
rerank?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* In `overlap` mode, also score each answer with the mem0 LLM-judge ("J")
|
|
106
|
+
* via this LLM (so a report carries BOTH word-overlap F1/BLEU and J accuracy).
|
|
107
|
+
* Pass a stronger model than the reader to reduce self-judging bias.
|
|
108
|
+
*/
|
|
109
|
+
judge?: CompleteFn;
|
|
110
|
+
/**
|
|
111
|
+
* Iterative reflective-retrieval (MemR3-style closed loop) instead of
|
|
112
|
+
* single-shot top-k. Same retriever + answer prompt, so an A/B vs the
|
|
113
|
+
* default isolates the loop. Takes precedence over `rerank`. See §4i.
|
|
114
|
+
*/
|
|
115
|
+
iterative?: IterativeConfig;
|
|
116
|
+
/**
|
|
117
|
+
* Process up to N questions concurrently (default 1 = sequential). Safe for
|
|
118
|
+
* HTTP backends (Azure OpenAI) that handle parallel requests; keep at 1 for
|
|
119
|
+
* the local `claude` CLI. Per-question work (and the iterative loop within a
|
|
120
|
+
* question) stays sequential — only DIFFERENT questions run in parallel.
|
|
121
|
+
*/
|
|
122
|
+
concurrency?: number;
|
|
123
|
+
/**
|
|
124
|
+
* Optional eval-only post-retrieval serving gate. The default path is
|
|
125
|
+
* unchanged: top-k hits are all served to the reader. When set, the gate
|
|
126
|
+
* decides which retrieved candidates are actually shown.
|
|
127
|
+
*/
|
|
128
|
+
servingGate?: MemoryQAServingGate;
|
|
129
|
+
/** Capture per-question served/withheld diagnostics for gate experiments. */
|
|
130
|
+
onServingDecision?: (decision: MemoryQAServingQuestionDecision) => void;
|
|
131
|
+
onProgress?: (done: number, total: number) => void;
|
|
132
|
+
}): Promise<QAReport>;
|
|
133
|
+
/**
|
|
134
|
+
* Re-derive a report over a subset of question ids. Used to drop questions that
|
|
135
|
+
* ERRORED (transient LLM failure, `judgedBy: 'error'`) from BOTH arms of a paired
|
|
136
|
+
* A/B, so the comparison stays on a common, fully-scored question set.
|
|
137
|
+
*/
|
|
138
|
+
export declare function filterReport(report: QAReport, keep: Set<string>): QAReport;
|
|
139
|
+
export interface QACompare {
|
|
140
|
+
baseline: string;
|
|
141
|
+
treatment: string;
|
|
142
|
+
baselineAccuracy: number;
|
|
143
|
+
treatmentAccuracy: number;
|
|
144
|
+
delta: number;
|
|
145
|
+
n: number;
|
|
146
|
+
}
|
|
147
|
+
/** Accuracy A/B between two QA reports (same question set). */
|
|
148
|
+
export declare function compareQA(baseline: QAReport, treatment: QAReport): QACompare;
|
|
149
|
+
export interface PairedAccuracy {
|
|
150
|
+
/** Treatment fixed a baseline miss (baseline wrong → treatment right). */
|
|
151
|
+
b: number;
|
|
152
|
+
/** Treatment broke a baseline hit (baseline right → treatment wrong). */
|
|
153
|
+
c: number;
|
|
154
|
+
delta: number;
|
|
155
|
+
/** McNemar χ² (Yates continuity-corrected), 1 df. */
|
|
156
|
+
chi2: number;
|
|
157
|
+
/** χ² > 3.841 ⇒ paired difference significant at p<0.05. */
|
|
158
|
+
significant: boolean;
|
|
159
|
+
n: number;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* McNemar's paired test on per-question correctness (records matched by id).
|
|
163
|
+
* The correct test for paired binary outcomes — only the *discordant* pairs
|
|
164
|
+
* (one arm right, the other wrong) carry signal.
|
|
165
|
+
*/
|
|
166
|
+
export declare function pairedAccuracy(baseline: QAReport, treatment: QAReport): PairedAccuracy;
|
|
167
|
+
export declare function formatQA(r: QAReport): string;
|
|
168
|
+
export declare function formatQACompare(c: QACompare): string;
|
|
169
|
+
export interface OverlapCategoryScore {
|
|
170
|
+
f1: number;
|
|
171
|
+
bleu1: number;
|
|
172
|
+
rougeL: number;
|
|
173
|
+
n: number;
|
|
174
|
+
}
|
|
175
|
+
export interface OverlapReport {
|
|
176
|
+
byCategory: Record<string, OverlapCategoryScore>;
|
|
177
|
+
overall: OverlapCategoryScore;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Post-hoc word-overlap scores from a QA report's (answer, gold) pairs, grouped
|
|
181
|
+
* by category — the A-MEM metric family. Deterministic, no extra LLM calls.
|
|
182
|
+
*/
|
|
183
|
+
export declare function overlapByCategory(report: QAReport): OverlapReport;
|
|
184
|
+
/** F1×100 table by category (A-MEM reports F1/BLEU-1 on a 0–100 scale). */
|
|
185
|
+
export declare function formatOverlap(r: OverlapReport, categoryNames?: Record<string, string>): string;
|
|
186
|
+
//# sourceMappingURL=qa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qa.d.ts","sourceRoot":"","sources":["../../../src/eval/memory-qa/qa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAyB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACrC,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;GAaG;AAEH,wDAAwD;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,UAAU,GAAG,KAAK,GAAG,kBAAkB,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;IACvF,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AA6ED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,GACf;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAIjC;AAED,6EAA6E;AAC7E,wBAAsB,YAAY,CAChC,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAiBD,kFAAkF;AAClF,wBAAgB,eAAe,CAC7B,SAAS,EAAE,aAAa,EAAE,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,eAAe,EAAE,CAOnB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,EAAE,EAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,eAAe,EAAE,CAyBnB;AAED,yEAAyE;AACzE,wBAAsB,WAAW,CAC/B,SAAS,EAAE,aAAa,EAAE,EAC1B,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,UAAU,EACpB,IAAI,GAAE;IACJ,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IACpE;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,+BAA+B,KAAK,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,GACL,OAAO,CAAC,QAAQ,CAAC,CA0InB;AAuBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAM1E;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;CACX;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,CAS5E;AAED,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,CAAC,EAAE,MAAM,CAAC;IACV,yEAAyE;IACzE,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;IACrB,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,cAAc,CAsBtF;AAID,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAU5C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAMpD;AAMD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CA0BjE;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAkB9F"}
|
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
import { instanceToNotes } from './loaders.js';
|
|
2
|
+
import { overlapScores } from './metrics.js';
|
|
3
|
+
import { runIterativeRetrieval } from './iterative.js';
|
|
4
|
+
import { searchHitsToGateCandidates, serveAllMemoryQAGate, toServingDecision, } from './serving.js';
|
|
5
|
+
const NO_ANSWER = 'NO_ANSWER';
|
|
6
|
+
function normalize(s) {
|
|
7
|
+
return String(s ?? '')
|
|
8
|
+
.toLowerCase()
|
|
9
|
+
.replace(/[^a-z0-9 ]+/g, ' ')
|
|
10
|
+
.replace(/\s+/g, ' ')
|
|
11
|
+
.trim();
|
|
12
|
+
}
|
|
13
|
+
function buildReadPrompt(question, excerpts, natural = false) {
|
|
14
|
+
const numbered = excerpts.map((e, i) => `${i + 1}. ${e}`).join('\n');
|
|
15
|
+
// `natural` (parity mode): no NO_ANSWER sentinel — answer as naturally as the
|
|
16
|
+
// A-MEM QA setup, so word-overlap (F1/BLEU-1) is scored on a real answer.
|
|
17
|
+
const instruction = natural
|
|
18
|
+
? 'Answer the question in one short phrase, based on the conversation memory above.'
|
|
19
|
+
: `Answer in one short phrase. If the excerpts do not contain the answer, reply exactly: ${NO_ANSWER}`;
|
|
20
|
+
return [
|
|
21
|
+
'You are answering a question using ONLY the memory excerpts below (from a past conversation).',
|
|
22
|
+
'',
|
|
23
|
+
'Memory excerpts:',
|
|
24
|
+
numbered,
|
|
25
|
+
'',
|
|
26
|
+
`Question: ${question}`,
|
|
27
|
+
'',
|
|
28
|
+
instruction,
|
|
29
|
+
].join('\n');
|
|
30
|
+
}
|
|
31
|
+
/** A-MEM's retrieve_memory_llm re-rank: distill retrieved memories to the relevant parts. */
|
|
32
|
+
function buildRerankPrompt(question, excerpts) {
|
|
33
|
+
const numbered = excerpts.map((e, i) => `${i + 1}. ${e}`).join('\n');
|
|
34
|
+
return [
|
|
35
|
+
'Given the following conversation memories and a question, select the most relevant',
|
|
36
|
+
'parts of the conversation that would help answer the question. Include the date/time',
|
|
37
|
+
'if available.',
|
|
38
|
+
'',
|
|
39
|
+
`Memories:\n${numbered}`,
|
|
40
|
+
'',
|
|
41
|
+
`Question: ${question}`,
|
|
42
|
+
'',
|
|
43
|
+
'Return only the relevant parts of the conversation that would help answer this question.',
|
|
44
|
+
].join('\n');
|
|
45
|
+
}
|
|
46
|
+
function buildJudgePrompt(question, gold, candidate) {
|
|
47
|
+
return [
|
|
48
|
+
'Judge whether the candidate answer is correct given the reference answer.',
|
|
49
|
+
'Minor wording or formatting differences are fine — judge semantic correctness.',
|
|
50
|
+
'',
|
|
51
|
+
`Question: ${question}`,
|
|
52
|
+
`Reference answer: ${gold}`,
|
|
53
|
+
`Candidate answer: ${candidate}`,
|
|
54
|
+
'',
|
|
55
|
+
'Reply with exactly one word: YES or NO.',
|
|
56
|
+
].join('\n');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* mem0's LLM-judge ("J") prompt verbatim — the LoCoMo-leaderboard metric used by
|
|
60
|
+
* Mem0 / MemR3. Deliberately GENEROUS (topic match counts; format/length/relative
|
|
61
|
+
* dates forgiven), so J ≫ token-F1. Lets our numbers line up with both the F1
|
|
62
|
+
* papers (A-MEM, MGRetrieval) and the J-leaderboard. See docs §4h.
|
|
63
|
+
*/
|
|
64
|
+
function buildMem0JudgePrompt(question, gold, candidate) {
|
|
65
|
+
return `Your task is to label an answer to a question as 'CORRECT' or 'WRONG'. You will be given:
|
|
66
|
+
(1) a question, (2) a 'gold' (ground truth) answer, (3) a generated answer to score as CORRECT/WRONG.
|
|
67
|
+
|
|
68
|
+
The gold answer is usually concise. The generated answer may be much longer — be GENEROUS: as long as it touches on the same topic / refers to the same thing as the gold answer, count it CORRECT. For time questions, differing formats or relative references that denote the same date/period are CORRECT (e.g. "May 7th" vs "7 May").
|
|
69
|
+
|
|
70
|
+
Question: ${question}
|
|
71
|
+
Gold answer: ${gold}
|
|
72
|
+
Generated answer: ${candidate}
|
|
73
|
+
|
|
74
|
+
Reply with exactly one word: CORRECT or WRONG.`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* True when an answer is a refusal / "no information" response. For LoCoMo
|
|
78
|
+
* category 5 (adversarial) the `adversarial_answer` is a planted misattribution
|
|
79
|
+
* distractor (e.g. asks what *Caroline* realized when the transcript shows
|
|
80
|
+
* *Melanie* said it), so the CORRECT behavior is to refuse — and refusing scores
|
|
81
|
+
* 0 under both token-F1 and the J judge (both match the distractor as "gold").
|
|
82
|
+
* Refusal accuracy is therefore the meaningful cat-5 metric: high = robust to the
|
|
83
|
+
* bait. See docs/DESIGN-memory-qa-benchmarks.md §4h.
|
|
84
|
+
*/
|
|
85
|
+
export function isRefusal(answer) {
|
|
86
|
+
return /not mentioned|no information|not in the conversation|cannot|can'?t|do(es)?n'?t (know|have|mention|appear|say|specify)|isn'?t (mentioned|available|specified)|unable to|not (specified|stated|provided|discussed|available|mentioned)/i.test(answer ?? '');
|
|
87
|
+
}
|
|
88
|
+
/** Fraction of a category's answers that are refusals (= correct on adversarial). */
|
|
89
|
+
export function refusalAccuracy(report, category) {
|
|
90
|
+
const rs = report.records.filter((r) => r.category === category);
|
|
91
|
+
const refused = rs.filter((r) => isRefusal(r.answer)).length;
|
|
92
|
+
return { accuracy: rs.length ? refused / rs.length : 0, n: rs.length };
|
|
93
|
+
}
|
|
94
|
+
/** Run the mem0 J-judge for one (question, gold, answer); true = CORRECT. */
|
|
95
|
+
export async function judgeCorrect(complete, question, gold, answer) {
|
|
96
|
+
try {
|
|
97
|
+
const out = (await complete(buildMem0JudgePrompt(question, gold, answer))).trim().toLowerCase();
|
|
98
|
+
// "wrong" checked first (a CORRECT/WRONG reply won't contain both per the prompt).
|
|
99
|
+
if (/\bwrong\b/.test(out))
|
|
100
|
+
return false;
|
|
101
|
+
return /\bcorrect\b/.test(out);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** Answerable questions only (those with evidence) — abstention is a separate axis. */
|
|
108
|
+
function answerable(q) {
|
|
109
|
+
return !q.abstain && (q.evidenceTurnIds.length > 0 || q.evidenceSessionIds.length > 0);
|
|
110
|
+
}
|
|
111
|
+
function allAnswerable(instances) {
|
|
112
|
+
const all = [];
|
|
113
|
+
for (const instance of instances) {
|
|
114
|
+
for (const question of instance.questions) {
|
|
115
|
+
if (answerable(question))
|
|
116
|
+
all.push({ instance, question });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return all;
|
|
120
|
+
}
|
|
121
|
+
/** Deterministic strided down-sample so both A/B arms score the identical set. */
|
|
122
|
+
export function sampleQuestions(instances, maxQuestions) {
|
|
123
|
+
const all = allAnswerable(instances);
|
|
124
|
+
if (!maxQuestions || all.length <= maxQuestions)
|
|
125
|
+
return all;
|
|
126
|
+
const stride = all.length / maxQuestions;
|
|
127
|
+
const out = [];
|
|
128
|
+
for (let i = 0; i < maxQuestions; i++)
|
|
129
|
+
out.push(all[Math.floor(i * stride)]);
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Category-stratified sample: up to `perCategory` answerable questions per
|
|
134
|
+
* `question.category`, strided within each category for spread. Gives
|
|
135
|
+
* representative coverage across question types (the first-N-instances sampler
|
|
136
|
+
* over type-grouped data collapses to one category).
|
|
137
|
+
*/
|
|
138
|
+
export function sampleStratified(instances, perCategory, opts = {}) {
|
|
139
|
+
const source = opts.includeAbstain
|
|
140
|
+
? instances.flatMap((instance) => instance.questions.map((question) => ({ instance, question })))
|
|
141
|
+
: allAnswerable(instances);
|
|
142
|
+
const byCat = new Map();
|
|
143
|
+
for (const sq of source) {
|
|
144
|
+
const arr = byCat.get(sq.question.category) ?? [];
|
|
145
|
+
arr.push(sq);
|
|
146
|
+
byCat.set(sq.question.category, arr);
|
|
147
|
+
}
|
|
148
|
+
const out = [];
|
|
149
|
+
for (const arr of byCat.values()) {
|
|
150
|
+
const take = Math.min(perCategory, arr.length);
|
|
151
|
+
if (take <= 0)
|
|
152
|
+
continue;
|
|
153
|
+
if (opts.categoryOffset !== undefined) {
|
|
154
|
+
const offset = Math.max(0, Math.floor(opts.categoryOffset));
|
|
155
|
+
out.push(...arr.slice(offset, offset + take));
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
const stride = arr.length / take;
|
|
159
|
+
for (let i = 0; i < take; i++)
|
|
160
|
+
out.push(arr[Math.floor(i * stride)]);
|
|
161
|
+
}
|
|
162
|
+
return out;
|
|
163
|
+
}
|
|
164
|
+
/** Run end-to-end QA for one retriever over a (sampled) question set. */
|
|
165
|
+
export async function runMemoryQA(instances, retriever, complete, opts = {}) {
|
|
166
|
+
const k = opts.k ?? 5;
|
|
167
|
+
const overlapMode = opts.scoreMode === 'overlap';
|
|
168
|
+
const sample = opts.questions ?? sampleQuestions(instances, opts.maxQuestions);
|
|
169
|
+
const concurrency = Math.max(1, Math.floor(opts.concurrency ?? 1));
|
|
170
|
+
if (opts.iterative && (opts.servingGate || opts.onServingDecision)) {
|
|
171
|
+
throw new Error('memory-QA serving gates are only supported for single-shot retrieval; disable iterative mode for gate experiments.');
|
|
172
|
+
}
|
|
173
|
+
// Pre-build notes (+ id index) per instance once — avoids redundant builds and
|
|
174
|
+
// races when questions run concurrently. instanceToNotes is pure, cheap.
|
|
175
|
+
const notesByInstance = new Map();
|
|
176
|
+
const noteByIdByInstance = new Map();
|
|
177
|
+
for (const { instance } of sample) {
|
|
178
|
+
if (notesByInstance.has(instance.id))
|
|
179
|
+
continue;
|
|
180
|
+
const notes = instanceToNotes(instance);
|
|
181
|
+
notesByInstance.set(instance.id, notes);
|
|
182
|
+
noteByIdByInstance.set(instance.id, new Map(notes.map((n) => [n.frontmatter.id, n])));
|
|
183
|
+
}
|
|
184
|
+
const buildAnswerPrompt = (q, ex) => opts.buildPrompt ? opts.buildPrompt(q, ex) : buildReadPrompt(q.question, ex, overlapMode);
|
|
185
|
+
// One question, end-to-end (retrieve → [iterative loop] → answer → score).
|
|
186
|
+
// Always resolves to a QARecord (errors → 'error' sentinel) so one failure
|
|
187
|
+
// never aborts the run; paired callers drop error ids via filterReport.
|
|
188
|
+
async function processOne(sq) {
|
|
189
|
+
const { instance, question } = sq;
|
|
190
|
+
const notes = notesByInstance.get(instance.id);
|
|
191
|
+
const noteById = noteByIdByInstance.get(instance.id);
|
|
192
|
+
try {
|
|
193
|
+
let answer;
|
|
194
|
+
let iterations;
|
|
195
|
+
if (opts.iterative) {
|
|
196
|
+
const res = await runIterativeRetrieval(question, notes, noteById, retriever, complete, buildAnswerPrompt, opts.iterative);
|
|
197
|
+
answer = res.answer;
|
|
198
|
+
iterations = res.iterations;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const hits = await retriever.search(question.question, notes, { maxResults: k });
|
|
202
|
+
let servedHits = hits;
|
|
203
|
+
if (opts.servingGate || opts.onServingDecision) {
|
|
204
|
+
const candidates = searchHitsToGateCandidates(hits, noteById);
|
|
205
|
+
const context = { instance, question, provider: retriever.name, candidates, k };
|
|
206
|
+
const gateDecision = opts.servingGate
|
|
207
|
+
? await opts.servingGate(context)
|
|
208
|
+
: serveAllMemoryQAGate(context);
|
|
209
|
+
opts.onServingDecision?.(toServingDecision(context, gateDecision));
|
|
210
|
+
const servedIds = new Set(gateDecision.servedNoteIds);
|
|
211
|
+
servedHits = hits.filter((hit) => servedIds.has(hit.noteId));
|
|
212
|
+
}
|
|
213
|
+
let excerpts = servedHits.map((h) => noteById.get(h.noteId)?.body ?? '').filter(Boolean);
|
|
214
|
+
if (opts.rerank && excerpts.length > 0) {
|
|
215
|
+
try {
|
|
216
|
+
const distilled = (await complete(buildRerankPrompt(question.question, excerpts))).trim();
|
|
217
|
+
if (distilled)
|
|
218
|
+
excerpts = [distilled];
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
// Keep the raw excerpts on rerank failure.
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
answer = (await complete(buildAnswerPrompt(question, excerpts))).trim();
|
|
225
|
+
}
|
|
226
|
+
let correct = false;
|
|
227
|
+
let judgedBy;
|
|
228
|
+
if (overlapMode) {
|
|
229
|
+
if (opts.judge) {
|
|
230
|
+
correct = await judgeCorrect(opts.judge, question.question, question.answer, answer);
|
|
231
|
+
judgedBy = 'mem0-judge';
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
judgedBy = 'overlap';
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else if (answer.toUpperCase().includes(NO_ANSWER)) {
|
|
238
|
+
judgedBy = 'abstain-sentinel';
|
|
239
|
+
}
|
|
240
|
+
else if (question.answer && normalize(answer).includes(normalize(question.answer))) {
|
|
241
|
+
correct = true; // high-precision positive — skip the judge call
|
|
242
|
+
judgedBy = 'contains';
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
const verdict = await complete(buildJudgePrompt(question.question, question.answer, answer));
|
|
246
|
+
correct = /^\s*yes/i.test(verdict.trim());
|
|
247
|
+
judgedBy = 'llm';
|
|
248
|
+
}
|
|
249
|
+
return {
|
|
250
|
+
id: question.id,
|
|
251
|
+
category: question.category,
|
|
252
|
+
question: question.question,
|
|
253
|
+
answer,
|
|
254
|
+
gold: question.answer,
|
|
255
|
+
correct,
|
|
256
|
+
judgedBy,
|
|
257
|
+
iterations,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
return {
|
|
262
|
+
id: question.id,
|
|
263
|
+
category: question.category,
|
|
264
|
+
question: question.question,
|
|
265
|
+
answer: '',
|
|
266
|
+
gold: question.answer,
|
|
267
|
+
correct: false,
|
|
268
|
+
judgedBy: 'error',
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Bounded worker pool: at most `concurrency` questions in flight. Records are
|
|
273
|
+
// index-assigned to preserve sample order (deterministic artifact); done-count
|
|
274
|
+
// drives progress regardless of completion order.
|
|
275
|
+
const records = new Array(sample.length);
|
|
276
|
+
let nextIdx = 0;
|
|
277
|
+
let done = 0;
|
|
278
|
+
const runners = Array.from({ length: Math.min(concurrency, sample.length) }, async () => {
|
|
279
|
+
for (;;) {
|
|
280
|
+
const i = nextIdx++;
|
|
281
|
+
if (i >= sample.length)
|
|
282
|
+
return;
|
|
283
|
+
records[i] = await processOne(sample[i]);
|
|
284
|
+
opts.onProgress?.(++done, sample.length);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
await Promise.all(runners);
|
|
288
|
+
return buildReport(retriever.name, k, records);
|
|
289
|
+
}
|
|
290
|
+
/** Aggregate per-question records into a QAReport (overall + per-category accuracy). */
|
|
291
|
+
function buildReport(provider, k, records) {
|
|
292
|
+
const byCatAcc = {};
|
|
293
|
+
const catAgg = new Map();
|
|
294
|
+
for (const r of records) {
|
|
295
|
+
const a = catAgg.get(r.category) ?? { hits: 0, n: 0 };
|
|
296
|
+
a.n++;
|
|
297
|
+
if (r.correct)
|
|
298
|
+
a.hits++;
|
|
299
|
+
catAgg.set(r.category, a);
|
|
300
|
+
}
|
|
301
|
+
for (const [cat, a] of catAgg)
|
|
302
|
+
byCatAcc[cat] = { accuracy: a.n ? a.hits / a.n : 0, n: a.n };
|
|
303
|
+
const hits = records.filter((r) => r.correct).length;
|
|
304
|
+
return {
|
|
305
|
+
provider,
|
|
306
|
+
k,
|
|
307
|
+
overall: { accuracy: records.length ? hits / records.length : 0, n: records.length },
|
|
308
|
+
byCategory: byCatAcc,
|
|
309
|
+
records,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Re-derive a report over a subset of question ids. Used to drop questions that
|
|
314
|
+
* ERRORED (transient LLM failure, `judgedBy: 'error'`) from BOTH arms of a paired
|
|
315
|
+
* A/B, so the comparison stays on a common, fully-scored question set.
|
|
316
|
+
*/
|
|
317
|
+
export function filterReport(report, keep) {
|
|
318
|
+
return buildReport(report.provider, report.k, report.records.filter((r) => keep.has(r.id)));
|
|
319
|
+
}
|
|
320
|
+
/** Accuracy A/B between two QA reports (same question set). */
|
|
321
|
+
export function compareQA(baseline, treatment) {
|
|
322
|
+
return {
|
|
323
|
+
baseline: baseline.provider,
|
|
324
|
+
treatment: treatment.provider,
|
|
325
|
+
baselineAccuracy: baseline.overall.accuracy,
|
|
326
|
+
treatmentAccuracy: treatment.overall.accuracy,
|
|
327
|
+
delta: treatment.overall.accuracy - baseline.overall.accuracy,
|
|
328
|
+
n: treatment.overall.n,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* McNemar's paired test on per-question correctness (records matched by id).
|
|
333
|
+
* The correct test for paired binary outcomes — only the *discordant* pairs
|
|
334
|
+
* (one arm right, the other wrong) carry signal.
|
|
335
|
+
*/
|
|
336
|
+
export function pairedAccuracy(baseline, treatment) {
|
|
337
|
+
const base = new Map(baseline.records.map((r) => [r.id, r.correct]));
|
|
338
|
+
let b = 0;
|
|
339
|
+
let c = 0;
|
|
340
|
+
let n = 0;
|
|
341
|
+
for (const r of treatment.records) {
|
|
342
|
+
if (!base.has(r.id))
|
|
343
|
+
continue;
|
|
344
|
+
n++;
|
|
345
|
+
const lex = base.get(r.id);
|
|
346
|
+
if (!lex && r.correct)
|
|
347
|
+
b++;
|
|
348
|
+
else if (lex && !r.correct)
|
|
349
|
+
c++;
|
|
350
|
+
}
|
|
351
|
+
const disc = b + c;
|
|
352
|
+
const chi2 = disc > 0 ? (Math.abs(b - c) - 1) ** 2 / disc : 0;
|
|
353
|
+
return {
|
|
354
|
+
b,
|
|
355
|
+
c,
|
|
356
|
+
delta: treatment.overall.accuracy - baseline.overall.accuracy,
|
|
357
|
+
chi2,
|
|
358
|
+
significant: chi2 > 3.841,
|
|
359
|
+
n,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
const pct = (x) => `${(x * 100).toFixed(0)}%`;
|
|
363
|
+
export function formatQA(r) {
|
|
364
|
+
const cats = Object.keys(r.byCategory).sort();
|
|
365
|
+
const lines = [
|
|
366
|
+
`QA accuracy (${r.provider}, k=${r.k}, n=${r.overall.n}): ${pct(r.overall.accuracy)}`,
|
|
367
|
+
];
|
|
368
|
+
for (const c of cats)
|
|
369
|
+
lines.push(` ${c.padEnd(26)} ${pct(r.byCategory[c].accuracy).padStart(5)} (n=${r.byCategory[c].n})`);
|
|
370
|
+
return lines.join('\n');
|
|
371
|
+
}
|
|
372
|
+
export function formatQACompare(c) {
|
|
373
|
+
return (`QA A/B: ${c.treatment} vs ${c.baseline} | ` +
|
|
374
|
+
`${pct(c.treatmentAccuracy)} vs ${pct(c.baselineAccuracy)} | ` +
|
|
375
|
+
`Δ ${c.delta >= 0 ? '+' : ''}${pct(c.delta)} (n=${c.n})`);
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Post-hoc word-overlap scores from a QA report's (answer, gold) pairs, grouped
|
|
379
|
+
* by category — the A-MEM metric family. Deterministic, no extra LLM calls.
|
|
380
|
+
*/
|
|
381
|
+
export function overlapByCategory(report) {
|
|
382
|
+
const agg = new Map();
|
|
383
|
+
const overall = { f1: 0, bleu1: 0, rougeL: 0, n: 0 };
|
|
384
|
+
for (const r of report.records) {
|
|
385
|
+
const s = overlapScores(r.answer, r.gold);
|
|
386
|
+
const a = agg.get(r.category) ?? { f1: 0, bleu1: 0, rougeL: 0, n: 0 };
|
|
387
|
+
a.f1 += s.f1;
|
|
388
|
+
a.bleu1 += s.bleu1;
|
|
389
|
+
a.rougeL += s.rougeL;
|
|
390
|
+
a.n++;
|
|
391
|
+
agg.set(r.category, a);
|
|
392
|
+
overall.f1 += s.f1;
|
|
393
|
+
overall.bleu1 += s.bleu1;
|
|
394
|
+
overall.rougeL += s.rougeL;
|
|
395
|
+
overall.n++;
|
|
396
|
+
}
|
|
397
|
+
const mean = (a) => ({
|
|
398
|
+
f1: a.n ? a.f1 / a.n : 0,
|
|
399
|
+
bleu1: a.n ? a.bleu1 / a.n : 0,
|
|
400
|
+
rougeL: a.n ? a.rougeL / a.n : 0,
|
|
401
|
+
n: a.n,
|
|
402
|
+
});
|
|
403
|
+
const byCategory = {};
|
|
404
|
+
for (const [c, a] of agg)
|
|
405
|
+
byCategory[c] = mean(a);
|
|
406
|
+
return { byCategory, overall: mean(overall) };
|
|
407
|
+
}
|
|
408
|
+
/** F1×100 table by category (A-MEM reports F1/BLEU-1 on a 0–100 scale). */
|
|
409
|
+
export function formatOverlap(r, categoryNames) {
|
|
410
|
+
const x100 = (x) => (x * 100).toFixed(1);
|
|
411
|
+
const cats = Object.keys(r.byCategory).sort();
|
|
412
|
+
const lines = [
|
|
413
|
+
`word-overlap (×100) by category:`,
|
|
414
|
+
` ${'category'.padEnd(16)} ${'F1'.padStart(6)} ${'BLEU1'.padStart(6)} ${'ROUGE-L'.padStart(7)} n`,
|
|
415
|
+
];
|
|
416
|
+
for (const c of cats) {
|
|
417
|
+
const s = r.byCategory[c];
|
|
418
|
+
const name = categoryNames?.[c] ?? c;
|
|
419
|
+
lines.push(` ${name.padEnd(16)} ${x100(s.f1).padStart(6)} ${x100(s.bleu1).padStart(6)} ${x100(s.rougeL).padStart(7)} ${s.n}`);
|
|
420
|
+
}
|
|
421
|
+
lines.push(` ${'OVERALL'.padEnd(16)} ${x100(r.overall.f1).padStart(6)} ${x100(r.overall.bleu1).padStart(6)} ${x100(r.overall.rougeL).padStart(7)} ${r.overall.n}`);
|
|
422
|
+
return lines.join('\n');
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=qa.js.map
|