hippo-memory 1.43.3 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -12
- package/bin/hippo.js +3 -1
- package/dist/api.d.ts +21 -21
- package/dist/api.js +69 -42
- package/dist/audit-prune.js +4 -1
- package/dist/audit.d.ts +1 -1
- package/dist/audit.js +9 -0
- package/dist/autolearn.d.ts +1 -1
- package/dist/autolearn.js +2 -1
- package/dist/capture.d.ts +11 -10
- package/dist/capture.js +22 -30
- package/dist/cli.d.ts +4 -0
- package/dist/cli.js +309 -171
- package/dist/client.d.ts +4 -21
- package/dist/client.js +3 -112
- package/dist/config.js +2 -1
- package/dist/consolidate.d.ts +3 -0
- package/dist/consolidate.js +44 -42
- package/dist/dag.d.ts +1 -0
- package/dist/dag.js +10 -5
- package/dist/dashboard.js +7 -3
- package/dist/db.js +16 -24
- package/dist/dedupe.d.ts +1 -0
- package/dist/dedupe.js +4 -7
- package/dist/embedding-provider.d.ts +1 -1
- package/dist/embedding-provider.js +3 -2
- package/dist/embeddings.js +81 -8
- package/dist/extract.d.ts +2 -0
- package/dist/extract.js +9 -4
- package/dist/goals.js +12 -3
- package/dist/mcp/server.js +21 -36
- package/dist/memory.d.ts +3 -0
- package/dist/memory.js +7 -1
- package/dist/physics-state.js +4 -1
- package/dist/raw-archive.js +5 -2
- package/dist/recall-trace.js +4 -1
- package/dist/refine-llm.js +3 -2
- package/dist/rerankers/jev.js +3 -2
- package/dist/rerankers/llm.js +3 -2
- package/dist/search.js +3 -3
- package/dist/server.d.ts +5 -0
- package/dist/server.js +39 -29
- package/dist/shared.js +1 -1
- package/dist/stdin.d.ts +12 -0
- package/dist/stdin.js +41 -0
- package/dist/store.d.ts +18 -11
- package/dist/store.js +152 -65
- package/dist/version.d.ts +4 -6
- package/dist/version.js +4 -7
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +8 -5
- package/dist/ablation.d.ts.map +0 -1
- package/dist/ablation.js.map +0 -1
- package/dist/ambient.d.ts.map +0 -1
- package/dist/ambient.js.map +0 -1
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js.map +0 -1
- package/dist/audit-prune.d.ts.map +0 -1
- package/dist/audit-prune.js.map +0 -1
- package/dist/audit.d.ts.map +0 -1
- package/dist/audit.js.map +0 -1
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/autolearn.d.ts.map +0 -1
- package/dist/autolearn.js.map +0 -1
- package/dist/availability.d.ts.map +0 -1
- package/dist/availability.js.map +0 -1
- package/dist/benchmarks/e1.3/incident-recall-eval.js +0 -78
- package/dist/benchmarks/e1.3/incident-recall-eval.js.map +0 -1
- package/dist/benchmarks/e1.3/slack-1000-event-smoke.js +0 -103
- package/dist/benchmarks/e1.3/slack-1000-event-smoke.js.map +0 -1
- package/dist/capture.d.ts.map +0 -1
- package/dist/capture.js.map +0 -1
- package/dist/card-detail.d.ts.map +0 -1
- package/dist/card-detail.js.map +0 -1
- package/dist/card.d.ts.map +0 -1
- package/dist/card.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/compare.d.ts.map +0 -1
- package/dist/compare.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/connectors/github/backfill.d.ts.map +0 -1
- package/dist/connectors/github/backfill.js.map +0 -1
- package/dist/connectors/github/cli-impl.d.ts.map +0 -1
- package/dist/connectors/github/cli-impl.js.map +0 -1
- package/dist/connectors/github/deletion.d.ts.map +0 -1
- package/dist/connectors/github/deletion.js.map +0 -1
- package/dist/connectors/github/dlq.d.ts.map +0 -1
- package/dist/connectors/github/dlq.js.map +0 -1
- package/dist/connectors/github/idempotency.d.ts.map +0 -1
- package/dist/connectors/github/idempotency.js.map +0 -1
- package/dist/connectors/github/ingest.d.ts.map +0 -1
- package/dist/connectors/github/ingest.js.map +0 -1
- package/dist/connectors/github/octokit-client.d.ts.map +0 -1
- package/dist/connectors/github/octokit-client.js.map +0 -1
- package/dist/connectors/github/ratelimit.d.ts.map +0 -1
- package/dist/connectors/github/ratelimit.js.map +0 -1
- package/dist/connectors/github/scope.d.ts.map +0 -1
- package/dist/connectors/github/scope.js.map +0 -1
- package/dist/connectors/github/signature.d.ts.map +0 -1
- package/dist/connectors/github/signature.js.map +0 -1
- package/dist/connectors/github/tenant-routing.d.ts.map +0 -1
- package/dist/connectors/github/tenant-routing.js.map +0 -1
- package/dist/connectors/github/transform.d.ts.map +0 -1
- package/dist/connectors/github/transform.js.map +0 -1
- package/dist/connectors/github/types.d.ts.map +0 -1
- package/dist/connectors/github/types.js.map +0 -1
- package/dist/connectors/slack/backfill.d.ts.map +0 -1
- package/dist/connectors/slack/backfill.js.map +0 -1
- package/dist/connectors/slack/deletion.d.ts.map +0 -1
- package/dist/connectors/slack/deletion.js.map +0 -1
- package/dist/connectors/slack/dlq.d.ts.map +0 -1
- package/dist/connectors/slack/dlq.js.map +0 -1
- package/dist/connectors/slack/idempotency.d.ts.map +0 -1
- package/dist/connectors/slack/idempotency.js.map +0 -1
- package/dist/connectors/slack/ingest.d.ts.map +0 -1
- package/dist/connectors/slack/ingest.js.map +0 -1
- package/dist/connectors/slack/ratelimit.d.ts.map +0 -1
- package/dist/connectors/slack/ratelimit.js.map +0 -1
- package/dist/connectors/slack/scope.d.ts.map +0 -1
- package/dist/connectors/slack/scope.js.map +0 -1
- package/dist/connectors/slack/signature.d.ts.map +0 -1
- package/dist/connectors/slack/signature.js.map +0 -1
- package/dist/connectors/slack/tenant-routing.d.ts.map +0 -1
- package/dist/connectors/slack/tenant-routing.js.map +0 -1
- package/dist/connectors/slack/transform.d.ts.map +0 -1
- package/dist/connectors/slack/transform.js.map +0 -1
- package/dist/connectors/slack/types.d.ts.map +0 -1
- package/dist/connectors/slack/types.js.map +0 -1
- package/dist/connectors/slack/web-client.d.ts.map +0 -1
- package/dist/connectors/slack/web-client.js.map +0 -1
- package/dist/connectors/slack/workspaces.d.ts.map +0 -1
- package/dist/connectors/slack/workspaces.js.map +0 -1
- package/dist/consolidate.d.ts.map +0 -1
- package/dist/consolidate.js.map +0 -1
- package/dist/correction-latency.d.ts.map +0 -1
- package/dist/correction-latency.js.map +0 -1
- package/dist/customer-notes.d.ts.map +0 -1
- package/dist/customer-notes.js.map +0 -1
- package/dist/dag.d.ts.map +0 -1
- package/dist/dag.js.map +0 -1
- package/dist/dashboard.d.ts.map +0 -1
- package/dist/dashboard.js.map +0 -1
- package/dist/db.d.ts.map +0 -1
- package/dist/db.js.map +0 -1
- package/dist/decisions.d.ts.map +0 -1
- package/dist/decisions.js.map +0 -1
- package/dist/dedupe.d.ts.map +0 -1
- package/dist/dedupe.js.map +0 -1
- package/dist/embedding-provider.d.ts.map +0 -1
- package/dist/embedding-provider.js.map +0 -1
- package/dist/embeddings.d.ts.map +0 -1
- package/dist/embeddings.js.map +0 -1
- package/dist/eval-suite.d.ts.map +0 -1
- package/dist/eval-suite.js.map +0 -1
- package/dist/eval.d.ts.map +0 -1
- package/dist/eval.js.map +0 -1
- package/dist/extensions/openclaw-plugin/index.js.map +0 -1
- package/dist/extract.d.ts.map +0 -1
- package/dist/extract.js.map +0 -1
- package/dist/forward-claim-detector.d.ts.map +0 -1
- package/dist/forward-claim-detector.js.map +0 -1
- package/dist/goals.d.ts.map +0 -1
- package/dist/goals.js.map +0 -1
- package/dist/graph-extract.d.ts.map +0 -1
- package/dist/graph-extract.js.map +0 -1
- package/dist/graph-recall.d.ts.map +0 -1
- package/dist/graph-recall.js.map +0 -1
- package/dist/graph-stream.d.ts.map +0 -1
- package/dist/graph-stream.js.map +0 -1
- package/dist/graph-view.d.ts.map +0 -1
- package/dist/graph-view.js.map +0 -1
- package/dist/graph.d.ts.map +0 -1
- package/dist/graph.js.map +0 -1
- package/dist/handoff.d.ts.map +0 -1
- package/dist/handoff.js.map +0 -1
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js.map +0 -1
- package/dist/importers.d.ts.map +0 -1
- package/dist/importers.js.map +0 -1
- package/dist/incidents.d.ts.map +0 -1
- package/dist/incidents.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/invalidation.d.ts.map +0 -1
- package/dist/invalidation.js.map +0 -1
- package/dist/mcp/framing.d.ts.map +0 -1
- package/dist/mcp/framing.js.map +0 -1
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js.map +0 -1
- package/dist/memory-value-weights.d.ts.map +0 -1
- package/dist/memory-value-weights.js.map +0 -1
- package/dist/memory-value.d.ts.map +0 -1
- package/dist/memory-value.js.map +0 -1
- package/dist/memory.d.ts.map +0 -1
- package/dist/memory.js.map +0 -1
- package/dist/multihop.d.ts.map +0 -1
- package/dist/multihop.js.map +0 -1
- package/dist/owner-validation.d.ts.map +0 -1
- package/dist/owner-validation.js.map +0 -1
- package/dist/path-context.d.ts.map +0 -1
- package/dist/path-context.js.map +0 -1
- package/dist/physics-config.d.ts.map +0 -1
- package/dist/physics-config.js.map +0 -1
- package/dist/physics-state.d.ts.map +0 -1
- package/dist/physics-state.js.map +0 -1
- package/dist/physics.d.ts.map +0 -1
- package/dist/physics.js.map +0 -1
- package/dist/policies.d.ts.map +0 -1
- package/dist/policies.js.map +0 -1
- package/dist/postinstall.d.ts.map +0 -1
- package/dist/postinstall.js.map +0 -1
- package/dist/predictions.d.ts.map +0 -1
- package/dist/predictions.js.map +0 -1
- package/dist/processes.d.ts.map +0 -1
- package/dist/processes.js.map +0 -1
- package/dist/project-briefs.d.ts.map +0 -1
- package/dist/project-briefs.js.map +0 -1
- package/dist/project-identity.d.ts.map +0 -1
- package/dist/project-identity.js.map +0 -1
- package/dist/provenance-coverage.d.ts.map +0 -1
- package/dist/provenance-coverage.js.map +0 -1
- package/dist/rate-limit.d.ts.map +0 -1
- package/dist/rate-limit.js.map +0 -1
- package/dist/raw-archive-mirror-cleanup.d.ts.map +0 -1
- package/dist/raw-archive-mirror-cleanup.js.map +0 -1
- package/dist/raw-archive.d.ts.map +0 -1
- package/dist/raw-archive.js.map +0 -1
- package/dist/recall-history.d.ts.map +0 -1
- package/dist/recall-history.js.map +0 -1
- package/dist/recall-scope.d.ts.map +0 -1
- package/dist/recall-scope.js.map +0 -1
- package/dist/recall-trace.d.ts.map +0 -1
- package/dist/recall-trace.js.map +0 -1
- package/dist/refine-llm.d.ts.map +0 -1
- package/dist/refine-llm.js.map +0 -1
- package/dist/reject-flow.d.ts.map +0 -1
- package/dist/reject-flow.js.map +0 -1
- package/dist/rejection.d.ts.map +0 -1
- package/dist/rejection.js.map +0 -1
- package/dist/replay.d.ts.map +0 -1
- package/dist/replay.js.map +0 -1
- package/dist/rerankers/cross-encoder.d.ts.map +0 -1
- package/dist/rerankers/cross-encoder.js.map +0 -1
- package/dist/rerankers/index.d.ts.map +0 -1
- package/dist/rerankers/index.js.map +0 -1
- package/dist/rerankers/jev.d.ts.map +0 -1
- package/dist/rerankers/jev.js.map +0 -1
- package/dist/rerankers/llm.d.ts.map +0 -1
- package/dist/rerankers/llm.js.map +0 -1
- package/dist/rerankers/types.d.ts.map +0 -1
- package/dist/rerankers/types.js.map +0 -1
- package/dist/rrf.d.ts.map +0 -1
- package/dist/rrf.js.map +0 -1
- package/dist/salience.d.ts.map +0 -1
- package/dist/salience.js.map +0 -1
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js.map +0 -1
- package/dist/scope.d.ts.map +0 -1
- package/dist/scope.js.map +0 -1
- package/dist/search.d.ts.map +0 -1
- package/dist/search.js.map +0 -1
- package/dist/secret-detect.d.ts.map +0 -1
- package/dist/secret-detect.js.map +0 -1
- package/dist/server-detect.d.ts.map +0 -1
- package/dist/server-detect.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/shared.d.ts.map +0 -1
- package/dist/shared.js.map +0 -1
- package/dist/skills.d.ts.map +0 -1
- package/dist/skills.js.map +0 -1
- package/dist/sleep-redact.d.ts +0 -58
- package/dist/sleep-redact.d.ts.map +0 -1
- package/dist/sleep-redact.js +0 -80
- package/dist/sleep-redact.js.map +0 -1
- package/dist/src/ablation.js +0 -138
- package/dist/src/ablation.js.map +0 -1
- package/dist/src/ambient.js +0 -148
- package/dist/src/ambient.js.map +0 -1
- package/dist/src/api.js +0 -2109
- package/dist/src/api.js.map +0 -1
- package/dist/src/audit-prune.js +0 -106
- package/dist/src/audit-prune.js.map +0 -1
- package/dist/src/audit.js +0 -213
- package/dist/src/audit.js.map +0 -1
- package/dist/src/auth.js +0 -97
- package/dist/src/auth.js.map +0 -1
- package/dist/src/autolearn.js +0 -174
- package/dist/src/autolearn.js.map +0 -1
- package/dist/src/availability.js +0 -94
- package/dist/src/availability.js.map +0 -1
- package/dist/src/capture.js +0 -1354
- package/dist/src/capture.js.map +0 -1
- package/dist/src/card-detail.js +0 -15
- package/dist/src/card-detail.js.map +0 -1
- package/dist/src/card.js +0 -19
- package/dist/src/card.js.map +0 -1
- package/dist/src/cli.js +0 -9328
- package/dist/src/cli.js.map +0 -1
- package/dist/src/client.js +0 -237
- package/dist/src/client.js.map +0 -1
- package/dist/src/compare.js +0 -122
- package/dist/src/compare.js.map +0 -1
- package/dist/src/config.js +0 -135
- package/dist/src/config.js.map +0 -1
- package/dist/src/connectors/github/backfill.js +0 -281
- package/dist/src/connectors/github/backfill.js.map +0 -1
- package/dist/src/connectors/github/cli-impl.js +0 -234
- package/dist/src/connectors/github/cli-impl.js.map +0 -1
- package/dist/src/connectors/github/deletion.js +0 -85
- package/dist/src/connectors/github/deletion.js.map +0 -1
- package/dist/src/connectors/github/dlq.js +0 -190
- package/dist/src/connectors/github/dlq.js.map +0 -1
- package/dist/src/connectors/github/idempotency.js +0 -27
- package/dist/src/connectors/github/idempotency.js.map +0 -1
- package/dist/src/connectors/github/ingest.js +0 -156
- package/dist/src/connectors/github/ingest.js.map +0 -1
- package/dist/src/connectors/github/octokit-client.js +0 -70
- package/dist/src/connectors/github/octokit-client.js.map +0 -1
- package/dist/src/connectors/github/ratelimit.js +0 -31
- package/dist/src/connectors/github/ratelimit.js.map +0 -1
- package/dist/src/connectors/github/scope.js +0 -13
- package/dist/src/connectors/github/scope.js.map +0 -1
- package/dist/src/connectors/github/signature.js +0 -81
- package/dist/src/connectors/github/signature.js.map +0 -1
- package/dist/src/connectors/github/tenant-routing.js +0 -69
- package/dist/src/connectors/github/tenant-routing.js.map +0 -1
- package/dist/src/connectors/github/transform.js +0 -103
- package/dist/src/connectors/github/transform.js.map +0 -1
- package/dist/src/connectors/github/types.js +0 -100
- package/dist/src/connectors/github/types.js.map +0 -1
- package/dist/src/connectors/slack/backfill.js +0 -78
- package/dist/src/connectors/slack/backfill.js.map +0 -1
- package/dist/src/connectors/slack/deletion.js +0 -59
- package/dist/src/connectors/slack/deletion.js.map +0 -1
- package/dist/src/connectors/slack/dlq.js +0 -224
- package/dist/src/connectors/slack/dlq.js.map +0 -1
- package/dist/src/connectors/slack/idempotency.js +0 -31
- package/dist/src/connectors/slack/idempotency.js.map +0 -1
- package/dist/src/connectors/slack/ingest.js +0 -109
- package/dist/src/connectors/slack/ingest.js.map +0 -1
- package/dist/src/connectors/slack/ratelimit.js +0 -18
- package/dist/src/connectors/slack/ratelimit.js.map +0 -1
- package/dist/src/connectors/slack/scope.js +0 -13
- package/dist/src/connectors/slack/scope.js.map +0 -1
- package/dist/src/connectors/slack/signature.js +0 -27
- package/dist/src/connectors/slack/signature.js.map +0 -1
- package/dist/src/connectors/slack/tenant-routing.js +0 -41
- package/dist/src/connectors/slack/tenant-routing.js.map +0 -1
- package/dist/src/connectors/slack/transform.js +0 -47
- package/dist/src/connectors/slack/transform.js.map +0 -1
- package/dist/src/connectors/slack/types.js +0 -35
- package/dist/src/connectors/slack/types.js.map +0 -1
- package/dist/src/connectors/slack/web-client.js +0 -43
- package/dist/src/connectors/slack/web-client.js.map +0 -1
- package/dist/src/connectors/slack/workspaces.js +0 -62
- package/dist/src/connectors/slack/workspaces.js.map +0 -1
- package/dist/src/consolidate.js +0 -978
- package/dist/src/consolidate.js.map +0 -1
- package/dist/src/correction-latency.js +0 -74
- package/dist/src/correction-latency.js.map +0 -1
- package/dist/src/customer-notes.js +0 -325
- package/dist/src/customer-notes.js.map +0 -1
- package/dist/src/dag.js +0 -352
- package/dist/src/dag.js.map +0 -1
- package/dist/src/dashboard.js +0 -258
- package/dist/src/dashboard.js.map +0 -1
- package/dist/src/db.js +0 -2728
- package/dist/src/db.js.map +0 -1
- package/dist/src/decisions.js +0 -304
- package/dist/src/decisions.js.map +0 -1
- package/dist/src/dedupe.js +0 -141
- package/dist/src/dedupe.js.map +0 -1
- package/dist/src/embedding-provider.js +0 -314
- package/dist/src/embedding-provider.js.map +0 -1
- package/dist/src/embeddings.js +0 -543
- package/dist/src/embeddings.js.map +0 -1
- package/dist/src/eval-suite.js +0 -294
- package/dist/src/eval-suite.js.map +0 -1
- package/dist/src/eval.js +0 -187
- package/dist/src/eval.js.map +0 -1
- package/dist/src/extract.js +0 -117
- package/dist/src/extract.js.map +0 -1
- package/dist/src/forward-claim-detector.js +0 -117
- package/dist/src/forward-claim-detector.js.map +0 -1
- package/dist/src/goals.js +0 -390
- package/dist/src/goals.js.map +0 -1
- package/dist/src/graph-extract.js +0 -314
- package/dist/src/graph-extract.js.map +0 -1
- package/dist/src/graph-recall.js +0 -277
- package/dist/src/graph-recall.js.map +0 -1
- package/dist/src/graph-stream.js +0 -176
- package/dist/src/graph-stream.js.map +0 -1
- package/dist/src/graph-view.js +0 -310
- package/dist/src/graph-view.js.map +0 -1
- package/dist/src/graph.js +0 -762
- package/dist/src/graph.js.map +0 -1
- package/dist/src/handoff.js +0 -65
- package/dist/src/handoff.js.map +0 -1
- package/dist/src/hooks.js +0 -926
- package/dist/src/hooks.js.map +0 -1
- package/dist/src/importers.js +0 -881
- package/dist/src/importers.js.map +0 -1
- package/dist/src/incidents.js +0 -336
- package/dist/src/incidents.js.map +0 -1
- package/dist/src/index.js +0 -32
- package/dist/src/index.js.map +0 -1
- package/dist/src/invalidation.js +0 -129
- package/dist/src/invalidation.js.map +0 -1
- package/dist/src/mcp/framing.js +0 -45
- package/dist/src/mcp/framing.js.map +0 -1
- package/dist/src/mcp/server.js +0 -1298
- package/dist/src/mcp/server.js.map +0 -1
- package/dist/src/memory-value-weights.js +0 -31
- package/dist/src/memory-value-weights.js.map +0 -1
- package/dist/src/memory-value.js +0 -261
- package/dist/src/memory-value.js.map +0 -1
- package/dist/src/memory.js +0 -425
- package/dist/src/memory.js.map +0 -1
- package/dist/src/multihop.js +0 -35
- package/dist/src/multihop.js.map +0 -1
- package/dist/src/owner-validation.js +0 -56
- package/dist/src/owner-validation.js.map +0 -1
- package/dist/src/path-context.js +0 -48
- package/dist/src/path-context.js.map +0 -1
- package/dist/src/physics-config.js +0 -26
- package/dist/src/physics-config.js.map +0 -1
- package/dist/src/physics-state.js +0 -169
- package/dist/src/physics-state.js.map +0 -1
- package/dist/src/physics.js +0 -378
- package/dist/src/physics.js.map +0 -1
- package/dist/src/policies.js +0 -414
- package/dist/src/policies.js.map +0 -1
- package/dist/src/postinstall.js +0 -101
- package/dist/src/postinstall.js.map +0 -1
- package/dist/src/predictions.js +0 -629
- package/dist/src/predictions.js.map +0 -1
- package/dist/src/processes.js +0 -349
- package/dist/src/processes.js.map +0 -1
- package/dist/src/project-briefs.js +0 -492
- package/dist/src/project-briefs.js.map +0 -1
- package/dist/src/project-identity.js +0 -200
- package/dist/src/project-identity.js.map +0 -1
- package/dist/src/provenance-coverage.js +0 -23
- package/dist/src/provenance-coverage.js.map +0 -1
- package/dist/src/rate-limit.js +0 -60
- package/dist/src/rate-limit.js.map +0 -1
- package/dist/src/raw-archive-mirror-cleanup.js +0 -55
- package/dist/src/raw-archive-mirror-cleanup.js.map +0 -1
- package/dist/src/raw-archive.js +0 -88
- package/dist/src/raw-archive.js.map +0 -1
- package/dist/src/recall-history.js +0 -235
- package/dist/src/recall-history.js.map +0 -1
- package/dist/src/recall-scope.js +0 -89
- package/dist/src/recall-scope.js.map +0 -1
- package/dist/src/recall-trace.js +0 -183
- package/dist/src/recall-trace.js.map +0 -1
- package/dist/src/refine-llm.js +0 -156
- package/dist/src/refine-llm.js.map +0 -1
- package/dist/src/reject-flow.js +0 -209
- package/dist/src/reject-flow.js.map +0 -1
- package/dist/src/rejection.js +0 -160
- package/dist/src/rejection.js.map +0 -1
- package/dist/src/replay.js +0 -122
- package/dist/src/replay.js.map +0 -1
- package/dist/src/rerankers/cross-encoder.js +0 -137
- package/dist/src/rerankers/cross-encoder.js.map +0 -1
- package/dist/src/rerankers/index.js +0 -20
- package/dist/src/rerankers/index.js.map +0 -1
- package/dist/src/rerankers/jev.js +0 -119
- package/dist/src/rerankers/jev.js.map +0 -1
- package/dist/src/rerankers/llm.js +0 -80
- package/dist/src/rerankers/llm.js.map +0 -1
- package/dist/src/rerankers/types.js +0 -2
- package/dist/src/rerankers/types.js.map +0 -1
- package/dist/src/rrf.js +0 -61
- package/dist/src/rrf.js.map +0 -1
- package/dist/src/salience.js +0 -74
- package/dist/src/salience.js.map +0 -1
- package/dist/src/scheduler.js +0 -77
- package/dist/src/scheduler.js.map +0 -1
- package/dist/src/scope.js +0 -35
- package/dist/src/scope.js.map +0 -1
- package/dist/src/search.js +0 -1003
- package/dist/src/search.js.map +0 -1
- package/dist/src/secret-detect.js +0 -95
- package/dist/src/secret-detect.js.map +0 -1
- package/dist/src/server-detect.js +0 -231
- package/dist/src/server-detect.js.map +0 -1
- package/dist/src/server.js +0 -3255
- package/dist/src/server.js.map +0 -1
- package/dist/src/shared.js +0 -502
- package/dist/src/shared.js.map +0 -1
- package/dist/src/skills.js +0 -346
- package/dist/src/skills.js.map +0 -1
- package/dist/src/sleep-redact.js +0 -80
- package/dist/src/sleep-redact.js.map +0 -1
- package/dist/src/sso.js +0 -22
- package/dist/src/sso.js.map +0 -1
- package/dist/src/store.js +0 -3743
- package/dist/src/store.js.map +0 -1
- package/dist/src/tenant.js +0 -17
- package/dist/src/tenant.js.map +0 -1
- package/dist/src/trace.js +0 -72
- package/dist/src/trace.js.map +0 -1
- package/dist/src/version.js +0 -40
- package/dist/src/version.js.map +0 -1
- package/dist/src/working-memory.js +0 -157
- package/dist/src/working-memory.js.map +0 -1
- package/dist/src/yaml.js +0 -107
- package/dist/src/yaml.js.map +0 -1
- package/dist/sso.d.ts +0 -13
- package/dist/sso.d.ts.map +0 -1
- package/dist/sso.js +0 -22
- package/dist/sso.js.map +0 -1
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js.map +0 -1
- package/dist/tenant.d.ts.map +0 -1
- package/dist/tenant.js.map +0 -1
- package/dist/trace.d.ts.map +0 -1
- package/dist/trace.js.map +0 -1
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js.map +0 -1
- package/dist/working-memory.d.ts.map +0 -1
- package/dist/working-memory.js.map +0 -1
- package/dist/yaml.d.ts.map +0 -1
- package/dist/yaml.js.map +0 -1
package/dist/src/client.js
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTTP client wrapper for `hippo serve`.
|
|
3
|
-
*
|
|
4
|
-
* Mirrors the function signatures in src/api.ts so the CLI can route through
|
|
5
|
-
* either path uniformly. Each function takes (serverUrl, apiKey?, ...) and
|
|
6
|
-
* returns the same shape that api.ts would.
|
|
7
|
-
*
|
|
8
|
-
* Errors from the server (4xx/5xx) are mapped back into thrown Errors with
|
|
9
|
-
* the server's `error` message preserved verbatim so existing CLI handlers
|
|
10
|
-
* that match on substrings (e.g. "not found", "already superseded") still
|
|
11
|
-
* work unchanged.
|
|
12
|
-
*
|
|
13
|
-
* Network errors (ECONNREFUSED on a stale pidfile, etc.) propagate as the
|
|
14
|
-
* native fetch failure so the caller can detect them and self-heal.
|
|
15
|
-
*/
|
|
16
|
-
function buildHeaders(apiKey, withBody) {
|
|
17
|
-
const headers = {};
|
|
18
|
-
if (withBody)
|
|
19
|
-
headers['content-type'] = 'application/json';
|
|
20
|
-
if (apiKey)
|
|
21
|
-
headers['authorization'] = `Bearer ${apiKey}`;
|
|
22
|
-
return headers;
|
|
23
|
-
}
|
|
24
|
-
function isNonEmptyString(value) {
|
|
25
|
-
return typeof value === 'string' && value.length > 0;
|
|
26
|
-
}
|
|
27
|
-
/** An error the server answered with, not one the transport raised. The
|
|
28
|
-
* refused-connection classifier sniffs message text, and a server message
|
|
29
|
-
* quotes the caller's own id or content back verbatim. */
|
|
30
|
-
export class HttpResponseError extends Error {
|
|
31
|
-
status;
|
|
32
|
-
constructor(message, status) {
|
|
33
|
-
super(message);
|
|
34
|
-
this.status = status;
|
|
35
|
-
this.name = 'HttpResponseError';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Throw an Error matching the server's error message. Keeps message strings
|
|
40
|
-
* intact so cli.ts handlers can match on the same substrings ("not found",
|
|
41
|
-
* "already superseded", "Unknown key_id") whether the call went through
|
|
42
|
-
* api.ts or client.ts.
|
|
43
|
-
*/
|
|
44
|
-
async function throwForStatus(res) {
|
|
45
|
-
let message = `${res.status} ${res.statusText}`;
|
|
46
|
-
try {
|
|
47
|
-
const body = await res.json();
|
|
48
|
-
if (body && isNonEmptyString(body.error)) {
|
|
49
|
-
message = body.error;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
// body wasn't JSON; fall back to status line.
|
|
54
|
-
}
|
|
55
|
-
throw new HttpResponseError(message, res.status);
|
|
56
|
-
}
|
|
57
|
-
export async function remember(serverUrl, apiKey, opts) {
|
|
58
|
-
const res = await fetch(`${serverUrl}/v1/memories`, {
|
|
59
|
-
method: 'POST',
|
|
60
|
-
headers: buildHeaders(apiKey, true),
|
|
61
|
-
body: JSON.stringify(opts),
|
|
62
|
-
});
|
|
63
|
-
if (!res.ok)
|
|
64
|
-
await throwForStatus(res);
|
|
65
|
-
const result = await res.json();
|
|
66
|
-
return result;
|
|
67
|
-
}
|
|
68
|
-
export async function recall(serverUrl, apiKey, opts) {
|
|
69
|
-
const params = new URLSearchParams();
|
|
70
|
-
params.set('q', opts.query);
|
|
71
|
-
if (opts.limit !== undefined)
|
|
72
|
-
params.set('limit', String(opts.limit));
|
|
73
|
-
if (opts.mode !== undefined)
|
|
74
|
-
params.set('mode', opts.mode);
|
|
75
|
-
if (opts.scope !== undefined && opts.scope !== '')
|
|
76
|
-
params.set('scope', opts.scope);
|
|
77
|
-
if (opts.includeContinuity)
|
|
78
|
-
params.set('include_continuity', '1');
|
|
79
|
-
// v1.7.2 T4 — RecallOpts parity sweep. Pre-v1.7.2 the thin-client only
|
|
80
|
-
// serialized the five fields above; the HTTP server already accepted
|
|
81
|
-
// fresh_tail_count, fresh_tail_session_id, summarize_overflow. Adding
|
|
82
|
-
// scorer_window alone would have perpetuated the drift. Serializing all
|
|
83
|
-
// four together. Validation lives in api.recall(); transport just
|
|
84
|
-
// forwards.
|
|
85
|
-
if (opts.freshTailCount !== undefined)
|
|
86
|
-
params.set('fresh_tail_count', String(opts.freshTailCount));
|
|
87
|
-
if (opts.freshTailSessionId !== undefined && opts.freshTailSessionId !== '')
|
|
88
|
-
params.set('fresh_tail_session_id', opts.freshTailSessionId);
|
|
89
|
-
if (opts.summarizeOverflow !== undefined)
|
|
90
|
-
params.set('summarize_overflow', opts.summarizeOverflow ? '1' : '0');
|
|
91
|
-
if (opts.scorerWindow !== undefined)
|
|
92
|
-
params.set('scorer_window', String(opts.scorerWindow));
|
|
93
|
-
// v1.7.4 sessionId for dlPFC goal-stack boost + v0.33 / J1 sessionId
|
|
94
|
-
// for per-session anchoring ring. Pre-v0.33 the thin-client silently
|
|
95
|
-
// dropped opts.sessionId, so HTTP-routed SDK callers got no goal
|
|
96
|
-
// boost and (post-J1) the HTTP ring logged recall_anchor_skipped_no_session.
|
|
97
|
-
// Codex round-3 P2 catch: align serialization with the RecallOpts type.
|
|
98
|
-
// Note: opts.recallHistory is intentionally NOT serialized — it is an
|
|
99
|
-
// in-process snapshot only; the HTTP server maintains its own ring per
|
|
100
|
-
// sessionId, so passing recallHistory over the wire would be a no-op
|
|
101
|
-
// at best and a tenant-leak risk at worst.
|
|
102
|
-
if (opts.sessionId !== undefined && opts.sessionId !== '') {
|
|
103
|
-
params.set('session_id', opts.sessionId);
|
|
104
|
-
}
|
|
105
|
-
const res = await fetch(`${serverUrl}/v1/memories?${params.toString()}`, {
|
|
106
|
-
method: 'GET',
|
|
107
|
-
headers: buildHeaders(apiKey, false),
|
|
108
|
-
});
|
|
109
|
-
if (!res.ok)
|
|
110
|
-
await throwForStatus(res);
|
|
111
|
-
const result = await res.json();
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
export async function forget(serverUrl, apiKey, id) {
|
|
115
|
-
const res = await fetch(`${serverUrl}/v1/memories/${encodeURIComponent(id)}`, {
|
|
116
|
-
method: 'DELETE',
|
|
117
|
-
headers: buildHeaders(apiKey, false),
|
|
118
|
-
});
|
|
119
|
-
if (!res.ok)
|
|
120
|
-
await throwForStatus(res);
|
|
121
|
-
const result = await res.json();
|
|
122
|
-
return result;
|
|
123
|
-
}
|
|
124
|
-
export async function promote(serverUrl, apiKey, id) {
|
|
125
|
-
const res = await fetch(`${serverUrl}/v1/memories/${encodeURIComponent(id)}/promote`, {
|
|
126
|
-
method: 'POST',
|
|
127
|
-
headers: buildHeaders(apiKey, false),
|
|
128
|
-
});
|
|
129
|
-
if (!res.ok)
|
|
130
|
-
await throwForStatus(res);
|
|
131
|
-
const result = await res.json();
|
|
132
|
-
return result;
|
|
133
|
-
}
|
|
134
|
-
export async function supersede(serverUrl, apiKey, oldId, newContent) {
|
|
135
|
-
const res = await fetch(`${serverUrl}/v1/memories/${encodeURIComponent(oldId)}/supersede`, {
|
|
136
|
-
method: 'POST',
|
|
137
|
-
headers: buildHeaders(apiKey, true),
|
|
138
|
-
body: JSON.stringify({ content: newContent }),
|
|
139
|
-
});
|
|
140
|
-
if (!res.ok)
|
|
141
|
-
await throwForStatus(res);
|
|
142
|
-
const result = await res.json();
|
|
143
|
-
return result;
|
|
144
|
-
}
|
|
145
|
-
export async function archiveRaw(serverUrl, apiKey, id, reason) {
|
|
146
|
-
const res = await fetch(`${serverUrl}/v1/memories/${encodeURIComponent(id)}/archive`, {
|
|
147
|
-
method: 'POST',
|
|
148
|
-
headers: buildHeaders(apiKey, true),
|
|
149
|
-
body: JSON.stringify({ reason }),
|
|
150
|
-
});
|
|
151
|
-
if (!res.ok)
|
|
152
|
-
await throwForStatus(res);
|
|
153
|
-
const result = await res.json();
|
|
154
|
-
return result;
|
|
155
|
-
}
|
|
156
|
-
export async function authCreate(serverUrl, apiKey, opts) {
|
|
157
|
-
const res = await fetch(`${serverUrl}/v1/auth/keys`, {
|
|
158
|
-
method: 'POST',
|
|
159
|
-
headers: buildHeaders(apiKey, true),
|
|
160
|
-
body: JSON.stringify(opts),
|
|
161
|
-
});
|
|
162
|
-
if (!res.ok)
|
|
163
|
-
await throwForStatus(res);
|
|
164
|
-
const result = await res.json();
|
|
165
|
-
return result;
|
|
166
|
-
}
|
|
167
|
-
export async function authList(serverUrl, apiKey, opts) {
|
|
168
|
-
const params = new URLSearchParams();
|
|
169
|
-
params.set('active', opts.active ? 'true' : 'false');
|
|
170
|
-
const res = await fetch(`${serverUrl}/v1/auth/keys?${params.toString()}`, {
|
|
171
|
-
method: 'GET',
|
|
172
|
-
headers: buildHeaders(apiKey, false),
|
|
173
|
-
});
|
|
174
|
-
if (!res.ok)
|
|
175
|
-
await throwForStatus(res);
|
|
176
|
-
const result = await res.json();
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
|
-
export async function authRevoke(serverUrl, apiKey, keyId) {
|
|
180
|
-
const res = await fetch(`${serverUrl}/v1/auth/keys/${encodeURIComponent(keyId)}`, {
|
|
181
|
-
method: 'DELETE',
|
|
182
|
-
headers: buildHeaders(apiKey, false),
|
|
183
|
-
});
|
|
184
|
-
if (!res.ok)
|
|
185
|
-
await throwForStatus(res);
|
|
186
|
-
const result = await res.json();
|
|
187
|
-
return result;
|
|
188
|
-
}
|
|
189
|
-
export async function auditList(serverUrl, apiKey, opts) {
|
|
190
|
-
const params = new URLSearchParams();
|
|
191
|
-
if (opts.op !== undefined)
|
|
192
|
-
params.set('op', opts.op);
|
|
193
|
-
if (opts.since !== undefined)
|
|
194
|
-
params.set('since', opts.since);
|
|
195
|
-
if (opts.limit !== undefined)
|
|
196
|
-
params.set('limit', String(opts.limit));
|
|
197
|
-
const qs = params.toString();
|
|
198
|
-
const url = qs.length > 0 ? `${serverUrl}/v1/audit?${qs}` : `${serverUrl}/v1/audit`;
|
|
199
|
-
const res = await fetch(url, {
|
|
200
|
-
method: 'GET',
|
|
201
|
-
headers: buildHeaders(apiKey, false),
|
|
202
|
-
});
|
|
203
|
-
if (!res.ok)
|
|
204
|
-
await throwForStatus(res);
|
|
205
|
-
const result = await res.json();
|
|
206
|
-
return result;
|
|
207
|
-
}
|
|
208
|
-
function hasObjectCause(e) {
|
|
209
|
-
// Node's fs/net system errors (ECONNREFUSED, ECONNRESET) attach the syscall
|
|
210
|
-
// code on a non-null object `cause`; the strict-equality checks below
|
|
211
|
-
// validate the code value before it is used for anything.
|
|
212
|
-
return typeof e.cause === 'object' && e.cause !== null;
|
|
213
|
-
}
|
|
214
|
-
export function classifyTransportFailure(err) {
|
|
215
|
-
if (!(err instanceof Error))
|
|
216
|
-
return 'none';
|
|
217
|
-
// The server answered, so the transport worked, whatever the message says.
|
|
218
|
-
if (err instanceof HttpResponseError)
|
|
219
|
-
return 'none';
|
|
220
|
-
const message = err.message.toLowerCase();
|
|
221
|
-
const code = hasObjectCause(err) ? err.cause.code : undefined;
|
|
222
|
-
// Connect-phase failures: no request bytes ever left the client, so a stale
|
|
223
|
-
// pidfile can be healed and the call replayed on the direct path.
|
|
224
|
-
if (code === 'ECONNREFUSED' || code === 'ENOTFOUND' || code === 'EAI_AGAIN')
|
|
225
|
-
return 'never-sent';
|
|
226
|
-
if (message.includes('econnrefused'))
|
|
227
|
-
return 'never-sent';
|
|
228
|
-
// The socket died mid-exchange. Node fetch surfaces this as a bare
|
|
229
|
-
// 'fetch failed' with the syscall code on the cause, so check both shapes.
|
|
230
|
-
if (code === 'ECONNRESET' || code === 'ECONNABORTED' || code === 'EPIPE' || code === 'UND_ERR_SOCKET') {
|
|
231
|
-
return 'delivery-unknown';
|
|
232
|
-
}
|
|
233
|
-
if (message.includes('socket hang up') || message.includes('fetch failed'))
|
|
234
|
-
return 'delivery-unknown';
|
|
235
|
-
return 'none';
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=client.js.map
|
package/dist/src/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/compare.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deterministic tie-break comparators for recall ranking.
|
|
3
|
-
*
|
|
4
|
-
* A true LEAF module: imports NOTHING from any sort-site module (search.ts,
|
|
5
|
-
* physics.ts, api.ts, cli.ts, shared.ts, goals.ts, graph-recall.ts,
|
|
6
|
-
* multihop.ts, rerankers/*). Every comparator here takes a structural param
|
|
7
|
-
* type instead of an imported one, on purpose — a type-only import back to
|
|
8
|
-
* search.ts would still create the search.ts <-> physics.ts ESM import
|
|
9
|
-
* cycle this module exists to avoid (r2 critic HIGH,
|
|
10
|
-
* docs/plans/2026-07-09-recall-determinism.md T2).
|
|
11
|
-
*
|
|
12
|
-
* Mirrors the deliberate-determinism comment style already established in
|
|
13
|
-
* graph-stream.ts:88, :165-168, :233-236 — a sort with a documented,
|
|
14
|
-
* reproducible tiebreak instead of leaving ties to array/scan order.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* content asc -> layer rank asc -> distinct tag count desc -> sorted tags asc
|
|
18
|
-
* -> source asc -> id asc (all string compares are UTF-16 code-unit order).
|
|
19
|
-
*
|
|
20
|
-
* `content` is the cross-ingest-stable key: identical text ingested into two
|
|
21
|
-
* independently-created stores (different directory name, different insert
|
|
22
|
-
* order of everything else on disk) sorts identically. The metadata keys make
|
|
23
|
-
* byte-identical twins order by what they carry instead of by `id`
|
|
24
|
-
* (`crypto.randomUUID()`), which is per-instance random: before v1.38.1 the
|
|
25
|
-
* dedupe survivor of two twins that differed only in tags or source was
|
|
26
|
-
* whichever id sorted first, and a semantic/episodic pair always kept the
|
|
27
|
-
* episodic copy because `mem_` sorts before `sem_`. `id` stays the terminal
|
|
28
|
-
* key so the order is total within one store.
|
|
29
|
-
*
|
|
30
|
-
* Layer rank puts semantic first: semantic rows are consolidation output, so
|
|
31
|
-
* keeping that copy preserves the promotion instead of demoting the memory.
|
|
32
|
-
* Unknown or missing layers rank last and then compare as raw strings.
|
|
33
|
-
* Tags prefer the copy with more distinct labels (fewer labels are lost on
|
|
34
|
-
* dedupe); source is an arbitrary but stable key.
|
|
35
|
-
*
|
|
36
|
-
* Plain `<`/`>`, NOT `localeCompare`: `localeCompare` is locale- and
|
|
37
|
-
* ICU-version-dependent (a determinism leak in its own right) and needlessly
|
|
38
|
-
* slow for a tiebreak that only needs a total order. The metadata keys are
|
|
39
|
-
* only computed on a content tie, which is rare post-T1 (path-tag embedding
|
|
40
|
-
* fix), so the per-compare Set/sort cost never lands on the hot path.
|
|
41
|
-
*/
|
|
42
|
-
export function compareEntryIdentity(a, b) {
|
|
43
|
-
return (compareStrings(a.content, b.content) ||
|
|
44
|
-
layerRank(a.layer) - layerRank(b.layer) ||
|
|
45
|
-
compareStrings(a.layer ?? '', b.layer ?? '') ||
|
|
46
|
-
compareTags(a.tags, b.tags) ||
|
|
47
|
-
compareStrings(a.source ?? '', b.source ?? '') ||
|
|
48
|
-
compareStrings(a.id, b.id));
|
|
49
|
-
}
|
|
50
|
-
const LAYER_RANK = new Map([
|
|
51
|
-
['semantic', 0],
|
|
52
|
-
['episodic', 1],
|
|
53
|
-
['trace', 2],
|
|
54
|
-
['buffer', 3],
|
|
55
|
-
]);
|
|
56
|
-
function layerRank(layer) {
|
|
57
|
-
return LAYER_RANK.get(layer ?? '') ?? LAYER_RANK.size;
|
|
58
|
-
}
|
|
59
|
-
function compareStrings(a, b) {
|
|
60
|
-
return a < b ? -1 : a > b ? 1 : 0;
|
|
61
|
-
}
|
|
62
|
-
function compareTags(a, b) {
|
|
63
|
-
const ua = [...new Set(a ?? [])].sort();
|
|
64
|
-
const ub = [...new Set(b ?? [])].sort();
|
|
65
|
-
if (ua.length !== ub.length)
|
|
66
|
-
return ub.length - ua.length;
|
|
67
|
-
// element-wise, not a joined string: a separator inside a tag would collide
|
|
68
|
-
for (let i = 0; i < ua.length; i++) {
|
|
69
|
-
const c = compareStrings(ua[i], ub[i]);
|
|
70
|
-
if (c !== 0)
|
|
71
|
-
return c;
|
|
72
|
-
}
|
|
73
|
-
return 0;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* score descending -> `compareEntryIdentity`. The shared ordering rule for
|
|
77
|
-
* every score-primary recall sort site (search.ts, shared.ts, goals.ts,
|
|
78
|
-
* api.ts, cli.ts, graph-recall.ts, multihop.ts, rerankers/cross-encoder.ts).
|
|
79
|
-
* Sites delegate wholesale to this (via a thin arrow where the element
|
|
80
|
-
* shape's score field is named something other than `score`, e.g.
|
|
81
|
-
* `rerankScore`) rather than reimplementing `b.score - a.score` locally, so
|
|
82
|
-
* the tiebreak can't silently drift between call sites.
|
|
83
|
-
*/
|
|
84
|
-
export function compareScoredResults(a, b) {
|
|
85
|
-
const d = b.score - a.score;
|
|
86
|
-
return d !== 0 ? d : compareEntryIdentity(a.entry, b.entry);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Build a score-desc -> tie-key comparator for the physics layer.
|
|
90
|
-
*
|
|
91
|
-
* `ScoredPhysicsResult` (physics.ts) carries `{ memoryId, baseScore,
|
|
92
|
-
* clusterAmplification, finalScore }` -- NO `entry`/`content` in scope at
|
|
93
|
-
* that layer, so `compareEntryIdentity` cannot apply directly (plan T2
|
|
94
|
-
* shape (c)). With only the default memoryId key this is PER-INSTANCE-ONLY
|
|
95
|
-
* determinism; callers that need CROSS-INGEST stability supply `tieKeyOf`
|
|
96
|
-
* mapping the result to its memory CONTENT (codex review finding: the
|
|
97
|
-
* baseScore tie order selects the cluster_top_k amplification set, which
|
|
98
|
-
* MUTATES scores before the downstream content-aware merge sort runs -- so
|
|
99
|
-
* the tie key must be content-stable at THIS layer, not just downstream).
|
|
100
|
-
*
|
|
101
|
-
* A factory (not a fixed-field comparator) because physics.ts re-sorts the
|
|
102
|
-
* same result array by two different score fields in sequence (`baseScore`
|
|
103
|
-
* for top-K selection, then `finalScore` after cluster amplification) — one
|
|
104
|
-
* shared tiebreak rule, parameterised by which field is primary this pass.
|
|
105
|
-
*/
|
|
106
|
-
export function comparePhysicsResultsBy(scoreOf, tieKeyOf) {
|
|
107
|
-
return (a, b) => {
|
|
108
|
-
const d = scoreOf(b) - scoreOf(a);
|
|
109
|
-
if (d !== 0)
|
|
110
|
-
return d;
|
|
111
|
-
const ai = tieKeyOf ? tieKeyOf(a) : a.memoryId;
|
|
112
|
-
const bi = tieKeyOf ? tieKeyOf(b) : b.memoryId;
|
|
113
|
-
if (ai < bi)
|
|
114
|
-
return -1;
|
|
115
|
-
if (ai > bi)
|
|
116
|
-
return 1;
|
|
117
|
-
// Tie-key collision (e.g. duplicate content): fall through to memoryId
|
|
118
|
-
// so the comparator still yields a total order within one store.
|
|
119
|
-
return a.memoryId < b.memoryId ? -1 : a.memoryId > b.memoryId ? 1 : 0;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=compare.js.map
|
package/dist/src/compare.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/compare.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Config support for Hippo: reads .hippo/config.json with sane defaults.
|
|
3
|
-
*/
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import * as path from 'path';
|
|
6
|
-
import { DEFAULT_PHYSICS_CONFIG, mergePhysicsConfig } from './physics-config.js';
|
|
7
|
-
const DEFAULT_CONFIG = {
|
|
8
|
-
defaultHalfLifeDays: 7,
|
|
9
|
-
defaultBudget: 4000,
|
|
10
|
-
defaultContextBudget: 3000,
|
|
11
|
-
decayBasis: 'adaptive',
|
|
12
|
-
autoLearnOnSleep: true,
|
|
13
|
-
autoShareOnSleep: true,
|
|
14
|
-
autoSleep: {
|
|
15
|
-
enabled: true,
|
|
16
|
-
threshold: 50,
|
|
17
|
-
},
|
|
18
|
-
embeddings: {
|
|
19
|
-
enabled: 'auto',
|
|
20
|
-
model: 'Xenova/all-MiniLM-L6-v2',
|
|
21
|
-
hybridWeight: 0.6,
|
|
22
|
-
provider: 'local',
|
|
23
|
-
},
|
|
24
|
-
global: {
|
|
25
|
-
enabled: true,
|
|
26
|
-
},
|
|
27
|
-
gitLearnPatterns: [
|
|
28
|
-
'fix', 'revert', 'bug', 'error', 'hotfix', 'bugfix',
|
|
29
|
-
'refactor', 'perf', 'chore', 'breaking', 'deprecate',
|
|
30
|
-
],
|
|
31
|
-
physics: { ...DEFAULT_PHYSICS_CONFIG },
|
|
32
|
-
mmr: {
|
|
33
|
-
enabled: true,
|
|
34
|
-
lambda: 0.7,
|
|
35
|
-
},
|
|
36
|
-
search: {
|
|
37
|
-
localBump: 1.2,
|
|
38
|
-
},
|
|
39
|
-
replay: {
|
|
40
|
-
count: 5,
|
|
41
|
-
},
|
|
42
|
-
autoTraceCapture: true,
|
|
43
|
-
autoTraceWindowDays: 7,
|
|
44
|
-
pinnedInject: {
|
|
45
|
-
enabled: true,
|
|
46
|
-
budget: 1500,
|
|
47
|
-
},
|
|
48
|
-
contextProjectIsolation: true,
|
|
49
|
-
extraction: {
|
|
50
|
-
enabled: 'auto',
|
|
51
|
-
model: 'claude-sonnet-4-6',
|
|
52
|
-
},
|
|
53
|
-
multihop: {
|
|
54
|
-
enabled: false,
|
|
55
|
-
},
|
|
56
|
-
salience: {
|
|
57
|
-
enabled: false,
|
|
58
|
-
recentWindow: 20,
|
|
59
|
-
overlapThreshold: 0.6,
|
|
60
|
-
minContentLength: 5,
|
|
61
|
-
maxRepeatErrors: 4,
|
|
62
|
-
},
|
|
63
|
-
ambient: {
|
|
64
|
-
enabled: true,
|
|
65
|
-
},
|
|
66
|
-
memoryValue: {
|
|
67
|
-
enabled: false,
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
function isMemoryValueConfig(value) {
|
|
71
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
72
|
-
}
|
|
73
|
-
export function loadConfig(hippoRoot) {
|
|
74
|
-
const configPath = path.join(hippoRoot, 'config.json');
|
|
75
|
-
if (!fs.existsSync(configPath))
|
|
76
|
-
return { ...DEFAULT_CONFIG };
|
|
77
|
-
try {
|
|
78
|
-
const raw = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
79
|
-
const basis = raw.decayBasis;
|
|
80
|
-
const validBasis = basis === 'clock' || basis === 'session' || basis === 'adaptive';
|
|
81
|
-
// Review-round F6: {...DEFAULT_CONFIG.memoryValue, ...raw.memoryValue}
|
|
82
|
-
// silently no-ops when raw.memoryValue is a non-object (e.g. the user
|
|
83
|
-
// wrote {"memoryValue": true}) — spreading a boolean/primitive/array
|
|
84
|
-
// contributes no enumerable own properties, so `enabled` stays at the
|
|
85
|
-
// default `false` with zero indication anything was wrong. This
|
|
86
|
-
// feature's whole point is "never silently off": warn loudly and fall
|
|
87
|
-
// back to defaults instead of merging garbage.
|
|
88
|
-
const memoryValueRaw = raw.memoryValue;
|
|
89
|
-
const validMemoryValueConfig = memoryValueRaw === undefined || isMemoryValueConfig(memoryValueRaw);
|
|
90
|
-
if (!validMemoryValueConfig) {
|
|
91
|
-
console.error(`Warning: config.json's "memoryValue" must be an object like {"enabled": true} ` +
|
|
92
|
-
`(got ${JSON.stringify(memoryValueRaw)}) - using defaults.`);
|
|
93
|
-
}
|
|
94
|
-
const memoryValueOverride = memoryValueRaw !== undefined && isMemoryValueConfig(memoryValueRaw) ? memoryValueRaw : {};
|
|
95
|
-
return {
|
|
96
|
-
defaultHalfLifeDays: raw.defaultHalfLifeDays ?? DEFAULT_CONFIG.defaultHalfLifeDays,
|
|
97
|
-
defaultBudget: raw.defaultBudget ?? DEFAULT_CONFIG.defaultBudget,
|
|
98
|
-
defaultContextBudget: raw.defaultContextBudget ?? DEFAULT_CONFIG.defaultContextBudget,
|
|
99
|
-
decayBasis: validBasis ? basis : DEFAULT_CONFIG.decayBasis,
|
|
100
|
-
autoLearnOnSleep: raw.autoLearnOnSleep ?? DEFAULT_CONFIG.autoLearnOnSleep,
|
|
101
|
-
autoShareOnSleep: raw.autoShareOnSleep ?? DEFAULT_CONFIG.autoShareOnSleep,
|
|
102
|
-
autoSleep: { ...DEFAULT_CONFIG.autoSleep, ...(raw.autoSleep ?? {}) },
|
|
103
|
-
embeddings: { ...DEFAULT_CONFIG.embeddings, ...(raw.embeddings ?? {}) },
|
|
104
|
-
global: { ...DEFAULT_CONFIG.global, ...(raw.global ?? {}) },
|
|
105
|
-
gitLearnPatterns: raw.gitLearnPatterns ?? DEFAULT_CONFIG.gitLearnPatterns,
|
|
106
|
-
physics: mergePhysicsConfig(raw.physics),
|
|
107
|
-
mmr: { ...DEFAULT_CONFIG.mmr, ...(raw.mmr ?? {}) },
|
|
108
|
-
search: { ...DEFAULT_CONFIG.search, ...(raw.search ?? {}) },
|
|
109
|
-
replay: { ...DEFAULT_CONFIG.replay, ...(raw.replay ?? {}) },
|
|
110
|
-
autoTraceCapture: raw.autoTraceCapture ?? DEFAULT_CONFIG.autoTraceCapture,
|
|
111
|
-
autoTraceWindowDays: raw.autoTraceWindowDays ?? DEFAULT_CONFIG.autoTraceWindowDays,
|
|
112
|
-
pinnedInject: { ...DEFAULT_CONFIG.pinnedInject, ...(raw.pinnedInject ?? {}) },
|
|
113
|
-
contextProjectIsolation: raw.contextProjectIsolation ?? DEFAULT_CONFIG.contextProjectIsolation,
|
|
114
|
-
extraction: { ...DEFAULT_CONFIG.extraction, ...(raw.extraction ?? {}) },
|
|
115
|
-
multihop: { ...DEFAULT_CONFIG.multihop, ...(raw.multihop ?? {}) },
|
|
116
|
-
salience: { ...DEFAULT_CONFIG.salience, ...(raw.salience ?? {}) },
|
|
117
|
-
ambient: { ...DEFAULT_CONFIG.ambient, ...(raw.ambient ?? {}) },
|
|
118
|
-
memoryValue: {
|
|
119
|
-
...DEFAULT_CONFIG.memoryValue,
|
|
120
|
-
...memoryValueOverride,
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
catch (err) {
|
|
125
|
-
if (fs.existsSync(configPath)) {
|
|
126
|
-
console.error(`Warning: failed to parse ${configPath}: ${err instanceof Error ? err.message : err}`);
|
|
127
|
-
}
|
|
128
|
-
return { ...DEFAULT_CONFIG };
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
export function saveConfig(hippoRoot, config) {
|
|
132
|
-
const configPath = path.join(hippoRoot, 'config.json');
|
|
133
|
-
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf8');
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=config.js.map
|
package/dist/src/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|