hippo-memory 1.60.0 → 1.61.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 +1 -1
- package/dist/ablation.js +9 -27
- package/dist/agent-memories/apply.js +4 -1
- package/dist/agent-memories/claude-code.js +1 -1
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/gemini.js +1 -1
- package/dist/agent-memories/legacy.js +1 -1
- package/dist/agent-memories/source.js +1 -1
- package/dist/agent-memories/sync.js +8 -3
- package/dist/ambient-store.d.ts +14 -0
- package/dist/ambient-store.js +90 -0
- package/dist/ambient.d.ts +23 -0
- package/dist/ambient.js +72 -50
- package/dist/api/assemble.d.ts +93 -0
- package/dist/api/assemble.js +152 -0
- package/dist/api/audit.d.ts +17 -0
- package/dist/api/audit.js +23 -0
- package/dist/api/auth.d.ts +79 -0
- package/dist/api/auth.js +178 -0
- package/dist/api/context-types.d.ts +105 -0
- package/dist/api/context-types.js +3 -0
- package/dist/api/context.d.ts +31 -0
- package/dist/api/context.js +705 -0
- package/dist/api/dormant.d.ts +30 -0
- package/dist/api/dormant.js +140 -0
- package/dist/api/drill-down.d.ts +84 -0
- package/dist/api/drill-down.js +123 -0
- package/dist/api/forget.d.ts +57 -0
- package/dist/api/forget.js +87 -0
- package/dist/api/goals.d.ts +18 -0
- package/dist/api/goals.js +33 -0
- package/dist/api/learn.d.ts +31 -0
- package/dist/api/learn.js +88 -0
- package/dist/api/outcome.d.ts +61 -0
- package/dist/api/outcome.js +66 -0
- package/dist/api/promote.d.ts +54 -0
- package/dist/api/promote.js +203 -0
- package/dist/api/quarantine.d.ts +24 -0
- package/dist/api/quarantine.js +121 -0
- package/dist/api/recall-types.d.ts +390 -0
- package/dist/api/recall-types.js +3 -0
- package/dist/api/recall.d.ts +36 -0
- package/dist/api/recall.js +634 -0
- package/dist/api/remember.d.ts +35 -0
- package/dist/api/remember.js +43 -0
- package/dist/api/sleep.d.ts +136 -0
- package/dist/api/sleep.js +271 -0
- package/dist/api/tokens.d.ts +26 -0
- package/dist/api/tokens.js +60 -0
- package/dist/api/types.d.ts +56 -0
- package/dist/api/types.js +38 -0
- package/dist/api.d.ts +20 -1262
- package/dist/api.js +25 -2727
- package/dist/audit.d.ts +3 -0
- package/dist/audit.js +6 -3
- package/dist/auth.d.ts +45 -4
- package/dist/auth.js +125 -48
- package/dist/autolearn.js +2 -2
- package/dist/capture/command.d.ts +33 -0
- package/dist/capture/command.js +264 -0
- package/dist/capture/compact.d.ts +44 -0
- package/dist/capture/compact.js +354 -0
- package/dist/capture/extract.d.ts +21 -0
- package/dist/capture/extract.js +464 -0
- package/dist/capture/transcript.d.ts +40 -0
- package/dist/capture/transcript.js +193 -0
- package/dist/capture-error.js +2 -1
- package/dist/churn-git.js +4 -2
- package/dist/cli/audit.d.ts +3 -0
- package/dist/cli/audit.js +159 -0
- package/dist/cli/auth.d.ts +2 -0
- package/dist/cli/auth.js +171 -0
- package/dist/cli/briefs.d.ts +4 -0
- package/dist/cli/briefs.js +435 -0
- package/dist/cli/card.d.ts +3 -0
- package/dist/cli/card.js +333 -0
- package/dist/cli/context.d.ts +15 -0
- package/dist/cli/context.js +366 -0
- package/dist/cli/continuity.d.ts +6 -0
- package/dist/cli/continuity.js +445 -0
- package/dist/cli/curate.d.ts +19 -0
- package/dist/cli/curate.js +555 -0
- package/dist/cli/dag.d.ts +5 -0
- package/dist/cli/dag.js +177 -0
- package/dist/cli/decisions.d.ts +4 -0
- package/dist/cli/decisions.js +528 -0
- package/dist/cli/eval.d.ts +5 -0
- package/dist/cli/eval.js +213 -0
- package/dist/cli/explain.d.ts +4 -0
- package/dist/cli/explain.js +150 -0
- package/dist/cli/goals.d.ts +2 -0
- package/dist/cli/goals.js +196 -0
- package/dist/cli/hook-blocks.d.ts +18 -0
- package/dist/cli/hook-blocks.js +233 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.js +305 -0
- package/dist/cli/maintenance.d.ts +4 -0
- package/dist/cli/maintenance.js +179 -0
- package/dist/cli/playbooks.d.ts +4 -0
- package/dist/cli/playbooks.js +556 -0
- package/dist/cli/projects.js +1 -1
- package/dist/cli/recall.d.ts +7 -0
- package/dist/cli/recall.js +597 -0
- package/dist/cli/remember.d.ts +5 -0
- package/dist/cli/remember.js +442 -0
- package/dist/cli/serve.d.ts +5 -0
- package/dist/cli/serve.js +40 -0
- package/dist/cli/session-hooks.d.ts +29 -0
- package/dist/cli/session-hooks.js +637 -0
- package/dist/cli/setup.d.ts +4 -0
- package/dist/cli/setup.js +376 -0
- package/dist/cli/shared.d.ts +15 -19
- package/dist/cli/shared.js +50 -341
- package/dist/cli/slack.d.ts +2 -0
- package/dist/cli/slack.js +171 -0
- package/dist/cli/status.d.ts +18 -0
- package/dist/cli/status.js +400 -0
- package/dist/cli/transfer.d.ts +10 -0
- package/dist/cli/transfer.js +438 -0
- package/dist/cli/usage.d.ts +85 -0
- package/dist/cli/usage.js +741 -0
- package/dist/cli.d.ts +71 -120
- package/dist/cli.js +170 -8469
- package/dist/client.js +15 -8
- package/dist/compaction-record.js +6 -4
- package/dist/connectors/github/backfill.js +94 -87
- package/dist/connectors/github/cli-impl.js +4 -3
- package/dist/connectors/github/dlq.js +67 -54
- package/dist/connectors/github/ingest.js +34 -35
- package/dist/connectors/github/tenant-routing.js +3 -2
- package/dist/connectors/github/webhook.js +135 -216
- package/dist/connectors/slack/dlq.js +49 -61
- package/dist/connectors/slack/ingest.js +55 -48
- package/dist/connectors/slack/tenant-routing.js +4 -3
- package/dist/connectors/slack/webhook.js +72 -74
- package/dist/consolidate/conflicts.d.ts +10 -0
- package/dist/consolidate/conflicts.js +178 -0
- package/dist/consolidate/decay.d.ts +12 -0
- package/dist/consolidate/decay.js +145 -0
- package/dist/consolidate/llm-passes.d.ts +3 -0
- package/dist/consolidate/llm-passes.js +141 -0
- package/dist/consolidate/merge.d.ts +7 -0
- package/dist/consolidate/merge.js +251 -0
- package/dist/consolidate/physics-pass.d.ts +3 -0
- package/dist/consolidate/physics-pass.js +60 -0
- package/dist/consolidate/run.d.ts +69 -0
- package/dist/consolidate/run.js +76 -0
- package/dist/consolidate/sleep.d.ts +18 -0
- package/dist/consolidate/sleep.js +209 -0
- package/dist/consolidate/traces.d.ts +4 -0
- package/dist/consolidate/traces.js +178 -0
- package/dist/context-auto.js +7 -11
- package/dist/context-render.d.ts +1 -1
- package/dist/context-render.js +1 -1
- package/dist/customer-notes.d.ts +3 -0
- package/dist/customer-notes.js +6 -4
- package/dist/dag.js +6 -5
- package/dist/dashboard-actions.d.ts +20 -0
- package/dist/dashboard-actions.js +88 -0
- package/dist/dashboard-params.d.ts +45 -0
- package/dist/dashboard-params.js +127 -0
- package/dist/dashboard-queries.d.ts +15 -0
- package/dist/dashboard-queries.js +355 -0
- package/dist/dashboard-snapshot.d.ts +138 -0
- package/dist/dashboard-snapshot.js +308 -0
- package/dist/dashboard-types.d.ts +163 -0
- package/dist/dashboard-types.js +3 -0
- package/dist/dashboard.d.ts +6 -7
- package/dist/dashboard.js +228 -202
- package/dist/db/busy.d.ts +5 -0
- package/dist/db/busy.js +24 -0
- package/dist/db/continuity.d.ts +5 -0
- package/dist/db/continuity.js +145 -0
- package/dist/db/meta.d.ts +8 -0
- package/dist/db/meta.js +35 -0
- package/dist/db/migrate.d.ts +9 -0
- package/dist/db/migrate.js +138 -0
- package/dist/db/migrations/index.d.ts +5 -0
- package/dist/db/migrations/index.js +109 -0
- package/dist/db/migrations/types.d.ts +14 -0
- package/dist/db/migrations/types.js +2 -0
- package/dist/db/migrations/v01.d.ts +3 -0
- package/dist/db/migrations/v01.js +38 -0
- package/dist/db/migrations/v02.d.ts +3 -0
- package/dist/db/migrations/v02.js +21 -0
- package/dist/db/migrations/v03.d.ts +3 -0
- package/dist/db/migrations/v03.js +22 -0
- package/dist/db/migrations/v04.d.ts +3 -0
- package/dist/db/migrations/v04.js +28 -0
- package/dist/db/migrations/v05.d.ts +3 -0
- package/dist/db/migrations/v05.js +21 -0
- package/dist/db/migrations/v06.d.ts +3 -0
- package/dist/db/migrations/v06.js +25 -0
- package/dist/db/migrations/v07.d.ts +3 -0
- package/dist/db/migrations/v07.js +13 -0
- package/dist/db/migrations/v08.d.ts +3 -0
- package/dist/db/migrations/v08.js +8 -0
- package/dist/db/migrations/v09.d.ts +3 -0
- package/dist/db/migrations/v09.js +13 -0
- package/dist/db/migrations/v10.d.ts +3 -0
- package/dist/db/migrations/v10.js +17 -0
- package/dist/db/migrations/v11.d.ts +3 -0
- package/dist/db/migrations/v11.js +15 -0
- package/dist/db/migrations/v12.d.ts +3 -0
- package/dist/db/migrations/v12.js +11 -0
- package/dist/db/migrations/v13.d.ts +3 -0
- package/dist/db/migrations/v13.js +15 -0
- package/dist/db/migrations/v14.d.ts +3 -0
- package/dist/db/migrations/v14.js +66 -0
- package/dist/db/migrations/v15.d.ts +3 -0
- package/dist/db/migrations/v15.js +42 -0
- package/dist/db/migrations/v16.d.ts +3 -0
- package/dist/db/migrations/v16.js +61 -0
- package/dist/db/migrations/v17.d.ts +3 -0
- package/dist/db/migrations/v17.js +46 -0
- package/dist/db/migrations/v18.d.ts +3 -0
- package/dist/db/migrations/v18.js +60 -0
- package/dist/db/migrations/v19.d.ts +3 -0
- package/dist/db/migrations/v19.js +28 -0
- package/dist/db/migrations/v20.d.ts +3 -0
- package/dist/db/migrations/v20.js +42 -0
- package/dist/db/migrations/v21.d.ts +3 -0
- package/dist/db/migrations/v21.js +16 -0
- package/dist/db/migrations/v22.d.ts +3 -0
- package/dist/db/migrations/v22.js +82 -0
- package/dist/db/migrations/v23.d.ts +3 -0
- package/dist/db/migrations/v23.js +48 -0
- package/dist/db/migrations/v24.d.ts +3 -0
- package/dist/db/migrations/v24.js +72 -0
- package/dist/db/migrations/v25.d.ts +3 -0
- package/dist/db/migrations/v25.js +46 -0
- package/dist/db/migrations/v26.d.ts +3 -0
- package/dist/db/migrations/v26.js +23 -0
- package/dist/db/migrations/v27.d.ts +3 -0
- package/dist/db/migrations/v27.js +57 -0
- package/dist/db/migrations/v28.d.ts +3 -0
- package/dist/db/migrations/v28.js +38 -0
- package/dist/db/migrations/v29.d.ts +3 -0
- package/dist/db/migrations/v29.js +78 -0
- package/dist/db/migrations/v30.d.ts +3 -0
- package/dist/db/migrations/v30.js +92 -0
- package/dist/db/migrations/v31.d.ts +3 -0
- package/dist/db/migrations/v31.js +74 -0
- package/dist/db/migrations/v32.d.ts +3 -0
- package/dist/db/migrations/v32.js +102 -0
- package/dist/db/migrations/v33.d.ts +3 -0
- package/dist/db/migrations/v33.js +104 -0
- package/dist/db/migrations/v34.d.ts +3 -0
- package/dist/db/migrations/v34.js +93 -0
- package/dist/db/migrations/v35.d.ts +3 -0
- package/dist/db/migrations/v35.js +98 -0
- package/dist/db/migrations/v36.d.ts +3 -0
- package/dist/db/migrations/v36.js +98 -0
- package/dist/db/migrations/v37.d.ts +3 -0
- package/dist/db/migrations/v37.js +219 -0
- package/dist/db/migrations/v38.d.ts +3 -0
- package/dist/db/migrations/v38.js +277 -0
- package/dist/db/migrations/v39.d.ts +3 -0
- package/dist/db/migrations/v39.js +59 -0
- package/dist/db/migrations/v40.d.ts +3 -0
- package/dist/db/migrations/v40.js +74 -0
- package/dist/db/migrations/v41.d.ts +3 -0
- package/dist/db/migrations/v41.js +43 -0
- package/dist/db/migrations/v42.d.ts +3 -0
- package/dist/db/migrations/v42.js +41 -0
- package/dist/db/migrations/v43.d.ts +3 -0
- package/dist/db/migrations/v43.js +67 -0
- package/dist/db/migrations/v44.d.ts +3 -0
- package/dist/db/migrations/v44.js +28 -0
- package/dist/db/migrations/v45.d.ts +3 -0
- package/dist/db/migrations/v45.js +30 -0
- package/dist/db/migrations/v46.d.ts +3 -0
- package/dist/db/migrations/v46.js +25 -0
- package/dist/db/migrations/v47.d.ts +3 -0
- package/dist/db/migrations/v47.js +17 -0
- package/dist/db/migrations/v48.d.ts +3 -0
- package/dist/db/migrations/v48.js +10 -0
- package/dist/db/migrations/v49.d.ts +3 -0
- package/dist/db/migrations/v49.js +31 -0
- package/dist/db/migrations/v50.d.ts +3 -0
- package/dist/db/migrations/v50.js +67 -0
- package/dist/db/migrations/v51.d.ts +3 -0
- package/dist/db/migrations/v51.js +14 -0
- package/dist/db/migrations/v52.d.ts +3 -0
- package/dist/db/migrations/v52.js +7 -0
- package/dist/db/open.d.ts +23 -0
- package/dist/db/open.js +146 -0
- package/dist/db/sqlite.d.ts +21 -0
- package/dist/db/sqlite.js +8 -0
- package/dist/db/tables.d.ts +7 -0
- package/dist/db/tables.js +38 -0
- package/dist/db.d.ts +6 -46
- package/dist/db.js +5 -3049
- package/dist/decisions.d.ts +4 -1
- package/dist/decisions.js +9 -7
- package/dist/dedupe.js +3 -2
- package/dist/delivery-recorder.js +4 -1
- package/dist/doctor.js +3 -3
- package/dist/embedding-provider.d.ts +1 -1
- package/dist/embedding-provider.js +4 -3
- package/dist/embeddings.d.ts +9 -52
- package/dist/embeddings.js +43 -297
- package/dist/env.d.ts +75 -0
- package/dist/env.js +119 -0
- package/dist/eval-suite.js +1 -1
- package/dist/eval.js +2 -2
- package/dist/extract.js +1 -1
- package/dist/gated-write.js +3 -1
- package/dist/goals.d.ts +3 -1
- package/dist/goals.js +18 -0
- package/dist/graph/read.d.ts +73 -0
- package/dist/graph/read.js +325 -0
- package/dist/graph/rows.d.ts +45 -0
- package/dist/graph/rows.js +51 -0
- package/dist/graph/types.d.ts +83 -0
- package/dist/graph/types.js +11 -0
- package/dist/graph/write.d.ts +93 -0
- package/dist/{graph.js → graph/write.js} +6 -384
- package/dist/graph-extract.js +2 -1
- package/dist/graph-recall.d.ts +1 -1
- package/dist/graph-recall.js +2 -2
- package/dist/graph-stream.js +1 -1
- package/dist/graph-view.d.ts +1 -1
- package/dist/graph-view.js +1 -1
- package/dist/half-life-migration.d.ts +1 -1
- package/dist/half-life-migration.js +2 -1
- package/dist/hooks/codex-session.d.ts +8 -0
- package/dist/hooks/codex-session.js +76 -0
- package/dist/hooks/codex-wrapper.d.ts +55 -0
- package/dist/hooks/codex-wrapper.js +288 -0
- package/dist/hooks/json-hooks.d.ts +63 -0
- package/dist/hooks/json-hooks.js +356 -0
- package/dist/hooks/opencode.d.ts +50 -0
- package/dist/hooks/opencode.js +202 -0
- package/dist/hooks/shared.d.ts +54 -0
- package/dist/hooks/shared.js +77 -0
- package/dist/http-retry.d.ts +2 -0
- package/dist/http-retry.js +4 -3
- package/dist/http-util.d.ts +3 -0
- package/dist/http-util.js +10 -0
- package/dist/{importers.d.ts → importers/core.d.ts} +13 -17
- package/dist/importers/core.js +141 -0
- package/dist/importers/markdown-parse.d.ts +41 -0
- package/dist/importers/markdown-parse.js +132 -0
- package/dist/importers/markdown.d.ts +3 -0
- package/dist/importers/markdown.js +92 -0
- package/dist/importers/sources.d.ts +7 -0
- package/dist/importers/sources.js +229 -0
- package/dist/importers/vault.d.ts +11 -0
- package/dist/importers/vault.js +352 -0
- package/dist/incidents.d.ts +3 -0
- package/dist/incidents.js +7 -5
- package/dist/index.d.ts +25 -6
- package/dist/index.js +23 -6
- package/dist/invalidation.js +2 -1
- package/dist/judgment.js +2 -1
- package/dist/keyset.d.ts +13 -0
- package/dist/keyset.js +8 -0
- package/dist/local-embedding.d.ts +13 -0
- package/dist/local-embedding.js +165 -0
- package/dist/log.d.ts +7 -0
- package/dist/log.js +19 -1
- package/dist/mcp/admin-tools.d.ts +8 -0
- package/dist/mcp/admin-tools.js +116 -0
- package/dist/mcp/format.d.ts +27 -0
- package/dist/mcp/format.js +135 -0
- package/dist/mcp/memory-tools.d.ts +5 -0
- package/dist/mcp/memory-tools.js +83 -0
- package/dist/mcp/protocol.d.ts +83 -0
- package/dist/mcp/protocol.js +55 -0
- package/dist/mcp/recall-tools.d.ts +6 -0
- package/dist/mcp/recall-tools.js +320 -0
- package/dist/mcp/request.d.ts +10 -0
- package/dist/mcp/request.js +163 -0
- package/dist/mcp/server.d.ts +4 -75
- package/dist/mcp/server.js +7 -1190
- package/dist/mcp/session-state.d.ts +11 -0
- package/dist/mcp/session-state.js +28 -0
- package/dist/mcp/stdio.d.ts +8 -0
- package/dist/mcp/stdio.js +79 -0
- package/dist/mcp/tools.d.ts +11 -0
- package/dist/mcp/tools.js +247 -0
- package/dist/memory.d.ts +3 -0
- package/dist/memory.js +27 -1
- package/dist/multihop.d.ts +1 -1
- package/dist/multihop.js +2 -1
- package/dist/owner-validation.js +2 -1
- package/dist/physics-state.js +10 -7
- package/dist/policies.d.ts +3 -0
- package/dist/policies.js +8 -6
- package/dist/postinstall.js +3 -2
- package/dist/predictions/planning-fallacy.d.ts +100 -0
- package/dist/predictions/planning-fallacy.js +190 -0
- package/dist/{predictions.d.ts → predictions/store.d.ts} +7 -102
- package/dist/predictions/store.js +434 -0
- package/dist/processes.d.ts +3 -0
- package/dist/processes.js +7 -5
- package/dist/project-briefs.d.ts +3 -0
- package/dist/project-briefs.js +7 -5
- package/dist/project-identity.js +3 -2
- package/dist/project-merge.js +3 -1
- package/dist/quarantine.d.ts +2 -1
- package/dist/quarantine.js +8 -5
- package/dist/raw-archive.js +1 -1
- package/dist/recall-history.js +3 -2
- package/dist/recall-pipeline.d.ts +2 -2
- package/dist/recall-pipeline.js +16 -8
- package/dist/recall-scope.js +1 -1
- package/dist/recall-trace.d.ts +1 -1
- package/dist/refine-llm.js +2 -1
- package/dist/reject-flow.js +6 -1
- package/dist/rerankers/clef.js +6 -5
- package/dist/rerankers/jev.d.ts +1 -1
- package/dist/rerankers/jev.js +4 -4
- package/dist/rerankers/llm.d.ts +4 -2
- package/dist/rerankers/llm.js +58 -38
- package/dist/rerankers/types.d.ts +1 -1
- package/dist/salience.js +1 -1
- package/dist/scheduler.d.ts +1 -0
- package/dist/scheduler.js +26 -4
- package/dist/scope.js +4 -3
- package/dist/search/as-of.d.ts +10 -0
- package/dist/search/as-of.js +22 -0
- package/dist/search/bm25-search.d.ts +14 -0
- package/dist/search/bm25-search.js +43 -0
- package/dist/search/bm25.d.ts +15 -0
- package/dist/search/bm25.js +54 -0
- package/dist/search/boosts.d.ts +54 -0
- package/dist/search/boosts.js +94 -0
- package/dist/search/breakdown.d.ts +7 -0
- package/dist/search/breakdown.js +20 -0
- package/dist/search/explain.d.ts +25 -0
- package/dist/search/explain.js +31 -0
- package/dist/search/finalize.d.ts +8 -0
- package/dist/search/finalize.js +52 -0
- package/dist/search/fusion.d.ts +27 -0
- package/dist/search/fusion.js +42 -0
- package/dist/search/hybrid-score.d.ts +20 -0
- package/dist/search/hybrid-score.js +73 -0
- package/dist/search/hybrid.d.ts +46 -0
- package/dist/search/hybrid.js +64 -0
- package/dist/search/physics-search.d.ts +29 -0
- package/dist/search/physics-search.js +162 -0
- package/dist/search/rerank.d.ts +10 -0
- package/dist/search/rerank.js +72 -0
- package/dist/search/temporal.d.ts +15 -0
- package/dist/search/temporal.js +45 -0
- package/dist/search/types.d.ts +91 -0
- package/dist/search/types.js +2 -0
- package/dist/search/vector.d.ts +30 -0
- package/dist/search/vector.js +71 -0
- package/dist/secret-detect.d.ts +2 -0
- package/dist/secret-detect.js +2 -1
- package/dist/server/auth.d.ts +52 -0
- package/dist/server/auth.js +221 -0
- package/dist/server/client-ip.d.ts +25 -0
- package/dist/server/client-ip.js +92 -0
- package/dist/server/cursor.d.ts +23 -0
- package/dist/server/cursor.js +58 -0
- package/dist/server/lifecycle.d.ts +7 -0
- package/dist/server/lifecycle.js +29 -0
- package/dist/server/mcp-http.d.ts +5 -0
- package/dist/server/mcp-http.js +199 -0
- package/dist/server/request.d.ts +33 -0
- package/dist/server/request.js +103 -0
- package/dist/server/routes/admin.d.ts +9 -0
- package/dist/server/routes/admin.js +158 -0
- package/dist/server/routes/customer-notes.d.ts +7 -0
- package/dist/server/routes/customer-notes.js +112 -0
- package/dist/server/routes/decisions.d.ts +7 -0
- package/dist/server/routes/decisions.js +133 -0
- package/dist/server/routes/incidents.d.ts +7 -0
- package/dist/server/routes/incidents.js +126 -0
- package/dist/server/routes/memories.d.ts +10 -0
- package/dist/server/routes/memories.js +179 -0
- package/dist/server/routes/policies.d.ts +8 -0
- package/dist/server/routes/policies.js +151 -0
- package/dist/server/routes/predictions.d.ts +7 -0
- package/dist/server/routes/predictions.js +164 -0
- package/dist/server/routes/processes.d.ts +7 -0
- package/dist/server/routes/processes.js +161 -0
- package/dist/server/routes/project-briefs.d.ts +8 -0
- package/dist/server/routes/project-briefs.js +136 -0
- package/dist/server/routes/recall.d.ts +8 -0
- package/dist/server/routes/recall.js +340 -0
- package/dist/server/routes/skills.d.ts +8 -0
- package/dist/server/routes/skills.js +150 -0
- package/dist/server/types.d.ts +56 -0
- package/dist/server/types.js +2 -0
- package/dist/server/validation.d.ts +14 -0
- package/dist/server/validation.js +91 -0
- package/dist/server.d.ts +7 -61
- package/dist/server.js +69 -2362
- package/dist/session-digest.d.ts +1 -1
- package/dist/session-digest.js +9 -2
- package/dist/shared.d.ts +3 -1
- package/dist/shared.js +26 -22
- package/dist/skills.d.ts +3 -0
- package/dist/skills.js +7 -5
- package/dist/stdin.js +2 -2
- package/dist/store/audit-event.d.ts +19 -0
- package/dist/store/audit-event.js +33 -0
- package/dist/store/candidates.d.ts +42 -0
- package/dist/store/candidates.js +152 -0
- package/dist/store/conflicts.d.ts +44 -0
- package/dist/store/conflicts.js +444 -0
- package/dist/store/delete-and-batch.d.ts +63 -0
- package/dist/store/delete-and-batch.js +310 -0
- package/dist/store/entry-reads.d.ts +92 -0
- package/dist/store/entry-reads.js +255 -0
- package/dist/store/entry-row.d.ts +67 -0
- package/dist/store/entry-row.js +208 -0
- package/dist/store/entry-writes.d.ts +46 -0
- package/dist/store/entry-writes.js +148 -0
- package/dist/store/handoffs.d.ts +26 -0
- package/dist/store/handoffs.js +184 -0
- package/dist/store/index-and-stats.d.ts +52 -0
- package/dist/store/index-and-stats.js +214 -0
- package/dist/store/markdown.d.ts +10 -0
- package/dist/store/markdown.js +108 -0
- package/dist/store/mirrors.d.ts +49 -0
- package/dist/store/mirrors.js +312 -0
- package/dist/store/open.d.ts +15 -0
- package/dist/store/open.js +223 -0
- package/dist/store/rows.d.ts +178 -0
- package/dist/store/rows.js +158 -0
- package/dist/store/search-rows.d.ts +86 -0
- package/dist/store/search-rows.js +254 -0
- package/dist/store/sessions.d.ts +83 -0
- package/dist/store/sessions.js +272 -0
- package/dist/store/summaries.d.ts +94 -0
- package/dist/store/summaries.js +377 -0
- package/dist/store/tenant-lookup.d.ts +12 -0
- package/dist/store/tenant-lookup.js +16 -0
- package/dist/store-cards.js +2 -1
- package/dist/summary-dirty.d.ts +4 -0
- package/dist/summary-dirty.js +32 -0
- package/dist/support-bundle.js +4 -3
- package/dist/tenant.js +2 -2
- package/dist/tokenize.d.ts +2 -0
- package/dist/tokenize.js +16 -0
- package/dist/transcript-tail.d.ts +7 -0
- package/dist/transcript-tail.js +48 -0
- package/dist/vector-store.d.ts +27 -0
- package/dist/vector-store.js +210 -0
- package/dist/version.d.ts +2 -2
- package/dist/version.js +2 -2
- package/dist/working-memory.js +1 -1
- package/dist/yaml.js +36 -11
- package/dist-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
- package/dist-ui/assets/index-DPN7cP19.js +33 -0
- package/dist-ui/assets/index-dFloKRVr.css +1 -0
- package/dist-ui/index.html +3 -25
- 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 +1 -1
- package/dist/capture.d.ts +0 -155
- package/dist/capture.js +0 -1295
- package/dist/consolidate.d.ts +0 -58
- package/dist/consolidate.js +0 -1124
- package/dist/graph.d.ts +0 -245
- package/dist/hooks.d.ts +0 -208
- package/dist/hooks.js +0 -1076
- package/dist/importers.js +0 -900
- package/dist/predictions.js +0 -620
- package/dist/search.d.ts +0 -320
- package/dist/search.js +0 -970
- package/dist/store.d.ts +0 -776
- package/dist/store.js +0 -3473
- package/dist-ui/assets/d3-BiWEKnn4.js +0 -1
- package/dist-ui/assets/index-BhT8RvO6.js +0 -61
- package/dist-ui/assets/index-RoXXJ5dq.css +0 -1
- package/dist-ui/assets/three-BDgTxR1l.js +0 -4112
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{--bg: #f3f5f8;--surface: #fff;--line: #e1e5eb;--line-2: #cbd2db;--text: #111827;--text-2: #3f4856;--text-3: #5b6574;--accent: #2f6fed;--accent-ink: #1f55c9;--accent-weak: #eaf1fe;--risk: #b5451b;--risk-weak: #fff1e8;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%;margin:0}body{font:14px/1.45 var(--sans);color:var(--text);background:var(--bg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow:hidden}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono)}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}.ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{display:flex;flex-direction:column;height:100%}.top{position:relative;flex:none;height:64px;display:flex;align-items:center;gap:12px;padding:0 16px;background:#fff;border-bottom:1px solid var(--line);z-index:40}.top-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}.top-break{display:none}.updated{font:12px var(--mono);color:var(--text-3);white-space:nowrap}.brand{display:flex;align-items:center;gap:8px;flex:none;font-weight:600;font-size:16px;letter-spacing:-.01em}.brand small{font-weight:500;font-size:12px;color:var(--text-3);border-left:1px solid var(--line);padding-left:8px}.ctl{height:44px;border:1px solid var(--line-2);background:#fff;border-radius:6px;padding:0 12px}select.ctl{appearance:none;-webkit-appearance:none;padding-right:30px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%233f4856' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center;cursor:pointer}.crumbs{flex:1 1 auto;min-width:0}.crumbs ol{display:flex;align-items:center;list-style:none;margin:0;padding:0;min-width:0}.crumbs li{display:flex;align-items:center;min-width:0;flex:0 1 auto}.crumbs li:first-child{flex:none}.crumbs li+li:before{content:"/";color:var(--text-3);padding:0 6px;flex:none}.crumbs button{border:0;background:none;height:44px;min-width:44px;padding:0 4px;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#a9c0f0;max-width:240px}.crumbs .cur{font-weight:500;padding:0 4px;max-width:260px}.search{position:relative;flex:0 1 280px;min-width:150px}.search input{width:100%;padding-left:34px;padding-right:34px}.search input::placeholder{color:var(--text-3)}.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);pointer-events:none}.search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:12px var(--mono);color:var(--text-3);border:1px solid var(--line-2);border-radius:4px;padding:0 5px;background:#f7f8fa}.qlist{position:absolute;top:50px;left:0;width:max(100%,340px);background:#fff;border:1px solid var(--line-2);border-radius:8px;box-shadow:0 12px 32px #1118271f;padding:4px;z-index:60}.qlist .opt{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border-radius:6px;cursor:pointer}.qlist .opt[aria-selected=true]{background:var(--accent-weak)}.qlist .opt .k{font-size:12px;color:var(--text-3);width:56px;flex:none}.qlist .opt .n{margin-left:auto;font:12px var(--mono);color:var(--text-2);flex:none}.qlist .none{padding:12px 10px;color:var(--text-2)}.qlist .sum{padding:6px 10px 4px;font-size:12px;color:var(--text-3);border-bottom:1px solid var(--line);margin-bottom:4px}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:6px;overflow:hidden;background:#fff}.seg button{border:0;background:#fff;height:44px;padding:0 12px;min-width:52px;font:13px var(--mono);color:var(--text-2)}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true],.seg button[aria-checked=true]{background:var(--accent-weak);color:var(--accent-ink);font-weight:500}.seg.txt button{font-family:var(--sans)}.zoomctl button{min-width:44px;padding:0 10px;font:500 16px var(--mono)}.zoomctl button.fit{font:500 13px var(--sans)}main{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}main>:last-child{flex:1 1 auto;min-height:0}.view{position:relative;flex:1 1 auto;display:flex;flex-direction:column;gap:16px;padding:16px 16px 28px;min-height:0;min-width:0}.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;min-width:0;min-height:0}.card.grow{flex:1 1 auto}.card-h{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;border-bottom:1px solid var(--line);min-height:61px;min-width:0}.card-h h2{font-size:14px;font-weight:600;margin:0;flex:none}.card-h .sub{font-size:12px;color:var(--text-3);min-width:0}.spacer{flex:1 1 auto}.notice{flex:none;display:flex;align-items:center;gap:8px;margin:12px 16px 0;padding:0 4px 0 12px;background:#fff;border:1px solid var(--line-2);border-radius:6px;min-height:44px}.view .notice{margin:0}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:8px;flex:none}.kpi{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:8px;padding:12px 16px;border-left:1px solid var(--line);min-width:0}.kpi:first-child{border-left:0}.kpi .l{grid-column:1 / -1;font-size:12px;color:var(--text-2)}.kpi .v{font:500 22px/1.2 var(--mono);letter-spacing:-.02em}.kpi .d{grid-column:1 / -1;font:12px var(--mono);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.kpi svg{grid-row:2;grid-column:2;align-self:end;width:84px;height:28px}.skel{background:var(--line);border-radius:4px}.kpi .skel{grid-column:1 / -1}.skel-l{height:12px;width:60%}.skel-v{height:22px;width:40%;margin-top:6px}.skel-d{height:12px;width:80%;margin-top:6px}.skel-map{width:70%;max-width:560px;height:50%}.skel-row{height:44px}.ov-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:16px}.map-region,.map-wrap{position:relative;flex:1 1 auto;min-height:0}.map-region .map-wrap{position:absolute;inset:0}.map-wrap canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:pointer;touch-action:pan-y}.map-wrap canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--text-2);padding:24px;background:#fff;border-radius:8px}.state h3{margin:0;font-size:16px;color:var(--text)}.state p{margin:0;max-width:360px}.banner{position:absolute;left:12px;top:12px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:6px;padding:0 4px 0 12px;box-shadow:0 2px 8px #11182714;z-index:5}.rail{overflow:auto}.rail section{padding:12px 16px;border-bottom:1px solid var(--line)}.rail section:last-child{border-bottom:0}.rail h3{font-size:12px;font-weight:600;margin:0 0 8px;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.ramp{height:10px;border-radius:2px;background:linear-gradient(90deg,#e8edf4,#fbe3cf 16.7%,#f9bf8f 33.3%,#f29256,#dc652f 66.7%,#b5451b 83.3%,#83300f);border:1px solid var(--line)}.ramp-t{display:flex;justify-content:space-between;font:12px var(--mono);color:var(--text-3);margin-top:4px}.lg{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2);margin-top:8px}.lg.tight{margin-top:2px}.sw{width:12px;height:12px;border-radius:2px;flex:none;display:inline-block}.sw.hatch{background:repeating-linear-gradient(135deg,#111827 0 1.5px,#fff 1.5px 4px);border:1px solid #111827}.swatch{border:1px solid var(--line-2);vertical-align:-1px;margin-right:6px}.swatch-sm{width:10px;height:10px;vertical-align:-1px;margin-right:6px}.lg-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.ra{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;border:0;background:none;padding:4px 4px 4px 0;text-align:left;border-top:1px solid var(--line)}.ra:first-of-type{border-top:0}.ra .nm{flex:1;min-width:0;font-weight:500;color:var(--accent-ink)}.ra .mt{font:12px var(--mono);color:var(--text-2);flex:none;text-align:right}.ra .chev{color:var(--text-3);flex:none}.ra:hover{background:#f7f9fc}.muted{color:var(--text-3);font-size:12px}.vt-wrap{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0}.vt{position:relative;flex:1 1 auto;min-height:0;min-width:0;overflow:auto}.vt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.vt-head,.vt-tr{display:grid;grid-template-columns:var(--cols);align-items:center;min-width:0}.vt-head{border-bottom:1px solid var(--line);background:#fafbfc;position:sticky;top:0;z-index:2}.vt-th{min-width:0}.vt-th button,.vt-th span.h{display:flex;align-items:center;gap:4px;width:100%;height:44px;border:0;background:none;padding:0 12px;font-size:12px;font-weight:600;color:var(--text-2);text-align:left;white-space:nowrap}.vt-th.r button,.vt-th.r span.h{justify-content:flex-end}.vt-th .ar{font-size:12px;color:var(--accent-ink);width:10px}.vt-sp{position:relative;width:100%}.vt-tr{position:absolute;left:0;right:0;height:44px;border-bottom:1px solid #eef0f3;cursor:pointer}.vt-tr:hover{background:#f7f9fc}.vt-tr.act{background:var(--accent-weak);box-shadow:inset 3px 0 0 var(--accent)}.vt-tr.sel{background:#dfe9fd}.c{padding:0 12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.c.r{text-align:right}.c.n{font:12.5px var(--mono)}.c.lnk{color:var(--accent-ink);font-weight:500}.c .tag{font:12px var(--mono);color:var(--text-3);margin-left:6px}.vt-empty{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;color:var(--text-2);padding:16px;text-align:center}.vt-empty :is(button,a){pointer-events:auto}.bar{display:inline-block;vertical-align:middle;width:44px;height:6px;background:#e9edf2;border-radius:3px;margin-right:8px;position:relative;overflow:hidden}.bar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:3px}.bar.risk i{background:#e8590c}.shape{display:inline-block;vertical-align:-1px;margin-right:6px}.flag{display:inline-block;font:12px var(--mono);padding:1px 5px;border-radius:3px;margin-right:6px;vertical-align:1px;border:1px solid}.flag.pin{color:#1e3a8a;border-color:#b9c8f3;background:#eef3fe}.flag.cf{color:#7c2d12;border-color:#f3c3a3;background:var(--risk-weak)}.flag.wr{color:#5b6574;border-color:#d4d9e0;background:#f4f5f7;text-decoration:line-through}.stale{color:var(--risk)}.btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:6px;border:1px solid var(--line-2);background:#fff;font-weight:500;white-space:nowrap;flex:none}.btn:hover{background:#f7f9fc}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#2462dc}.btn.quiet{border-color:transparent;background:none;color:var(--accent-ink);padding:0 10px}.btn.danger{color:#9f1d1d}.btn.sm{height:44px;padding:0 12px;font-size:13px}.icon-btn{width:44px;height:44px;border:0;background:none;border-radius:6px;font-size:20px;color:var(--text-2)}.icon-btn:hover{background:#f3f5f8}.pv-h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.pv-head{display:flex;align-items:center;gap:16px;flex:none;min-width:0}.pv-title{flex:1 1 auto;min-width:0}.pv-title h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.pv-meta{font:12px var(--mono);color:var(--text-2);margin-top:2px}.pv-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);grid-template-rows:clamp(210px,31vh,290px) minmax(0,1fr);gap:16px}.tbl-card{grid-column:1 / -1}.sc-wrap{position:relative;flex:1 1 auto;min-height:0}.sc-wrap canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}.sc-wrap canvas.ov{cursor:crosshair}.tog{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 10px;border:1px solid var(--line-2);border-radius:6px;background:#fff;font-size:12.5px;color:var(--text-2);white-space:nowrap;min-width:44px;justify-content:center}.tog[aria-pressed=true]{color:var(--text);border-color:#9fb6ea;background:#f5f8ff}.tog.layer[aria-pressed=false]{text-decoration:line-through}.tog .n{font:12px var(--mono);color:var(--text-3)}.chips{display:flex;gap:4px;min-width:0;flex-wrap:nowrap}.chip{height:44px;padding:0 12px;border:1px solid var(--line-2);border-radius:22px;background:#fff;font-size:13px;color:var(--text-2);white-space:nowrap}.chip .n{font:12px var(--mono);color:var(--text-3);margin-left:4px}.chip[aria-pressed=true]{background:var(--text);border-color:var(--text);color:#fff}.chip[aria-pressed=true] .n{color:#cfd6e0}.decay{padding:12px 16px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.dgrid{display:grid;grid-template-columns:62px minmax(40px,1fr) 58px 58px 58px;align-items:center;gap:0 8px}.dgrid .hd{font-size:12px;color:var(--text-3);text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-bottom:4px}.dgrid .rl{font-size:12.5px;color:var(--text-2);height:34px;display:flex;align-items:center}.dgrid .nv{font:12px var(--mono);text-align:right}.dbar{display:flex;height:14px;border-radius:2px;overflow:hidden;background:#eef0f3}.dbar i{display:block;height:100%}.dnote{font-size:12px;color:var(--text-2);margin-top:6px;border-top:1px solid var(--line);padding-top:8px}.dnote b{font:500 12px var(--mono);color:var(--text)}.drawer{position:fixed;top:64px;right:0;bottom:0;width:min(440px,100vw);background:#fff;border-left:1px solid var(--line-2);box-shadow:-12px 0 32px #1118271a;z-index:35;display:flex;flex-direction:column;transform:translate(100%);visibility:hidden;transition:transform .18s ease,visibility 0s linear .18s}.drawer.open{transform:none;visibility:visible;transition:transform .18s ease}.dr-h{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 20px;border-bottom:1px solid var(--line);min-height:61px}.dr-h h2{margin:0;font-size:14px;font-weight:600;flex:1;min-width:0}.dr-h h2:focus{outline:none}.dr-h h2 .mono{font-weight:400;color:var(--text-3);font-size:12px;margin-left:6px}.dr-b{overflow:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.dr-content{font-size:16px;line-height:1.5;margin:0}.dr-flags{display:flex;flex-wrap:wrap;gap:6px}.dr-flags span{font:12px var(--mono);padding:2px 8px;border-radius:4px;background:#f3f5f8;color:var(--text-2);border:1px solid var(--line)}.dr-act{display:flex;flex-wrap:wrap;gap:8px}.dr-f{display:grid;grid-template-columns:140px minmax(0,1fr);margin:0;border-top:1px solid var(--line)}.dr-f dt,.dr-f dd{padding:7px 0;border-bottom:1px solid #eef0f3;margin:0;font-size:13px}.dr-f dt{color:var(--text-2)}.dr-f dd{font-family:var(--mono);font-size:12.5px;overflow-wrap:anywhere}.cfbox{border:1px solid #f3c3a3;background:#fffaf6;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.cfbox h3{margin:0;font-size:13px}.cfbox .oth{font-size:13.5px;border-left:3px solid #e8590c;padding-left:10px}.cfbox .why{font-size:12px;color:var(--text-2)}.cfbox .row{display:flex;gap:8px;flex-wrap:wrap}.tip{position:fixed;z-index:70;pointer-events:none;background:#111827;color:#fff;border-radius:6px;padding:8px 10px;font-size:12px;max-width:320px;box-shadow:0 8px 24px #0000002e;line-height:1.4}.tip b{font-weight:600}.tip .m{font-family:var(--mono);color:#cbd5e1;font-size:12px}.tip.closable{pointer-events:auto;padding-right:44px}.tip-close{position:absolute;top:0;right:0;width:44px;height:44px;border:0;background:none;color:#fff;font-size:20px}.toast{position:fixed;left:50%;bottom:36px;transform:translate(-50%);background:#111827;color:#fff;border-radius:8px;padding:0 4px 0 16px;display:flex;align-items:center;gap:8px;min-height:48px;z-index:80;box-shadow:0 8px 24px #0003;font-size:13px}.toast button{height:44px;border:0;background:none;color:#a9c4ff;font-weight:600;padding:0 12px}.sheet-handle{display:flex;align-items:center;justify-content:center;height:28px;flex:none;touch-action:none}.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--line-2)}@media(max-width:1240px){.brand small{display:none}.ov-body{grid-template-columns:minmax(0,1fr) 232px}.search{flex-basis:220px}}@media(max-width:760px){.top{height:auto;flex-wrap:wrap;gap:4px 8px;padding:4px 8px}.top-right{display:contents}.brand{order:1}.brand span,.brand small,.search kbd{display:none}.top>.spacer{order:2}.view-switch{order:3}.top .btn{order:4;padding:0 12px}.top .btn.icon{width:44px;padding:0;justify-content:center}.top .btn[aria-busy=true]{opacity:.6}.top-break{display:block;order:5;flex:0 0 100%;height:0}.search{order:6;flex:1 1 100%;min-width:0}.search input{padding-right:8px}.view{overflow:auto;padding:12px 12px 32px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis-range{grid-column:1 / -1;padding:8px 12px}.kpis-range .range{width:100%}.kpi{border-top:1px solid var(--line)}.kpi:nth-child(2n){border-left:0}.kpi:last-child:nth-child(2n){grid-column:1 / -1}.kpi .v{font-size:18px}.card-h{flex-wrap:wrap}.card-h .sub{display:none}.ov-body,.pv-grid{flex:none;grid-template-columns:minmax(0,1fr);grid-template-rows:none}#mapcard{height:50vh;min-height:320px}.pv-grid>.card:first-child{height:320px}.tbl-card{height:70vh;min-height:400px}.pv-head{flex-wrap:wrap;gap:8px}.pv-title{flex-basis:100%;order:-1}.chips{flex-wrap:wrap}.vt-head,.vt-tr{grid-template-columns:minmax(0,1fr) 108px}.vt-head>:nth-child(n+3),.vt-tr>:nth-child(n+3){display:none}.drawer{top:auto;left:0;right:0;width:100%;max-height:85vh;border-left:0;border-top:1px solid var(--line-2);border-radius:12px 12px 0 0;transform:translateY(100%)}.drawer.open{transform:none}}.sc-wrap canvas.ov.brushing{touch-action:none}.sc-foot{flex:none;padding:4px 16px 8px;display:flex;flex-direction:column;gap:4px}.dens-ramp{display:inline-block;width:64px;height:10px;border-radius:2px;border:1px solid var(--line-2)}.sc-filter summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:13px;color:var(--accent-ink)}.brush-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.brush-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2)}.brush-fields input{width:100%;font:13px var(--mono)}.decay h2{margin:0 0 4px;font-size:14px;font-weight:600}.skel-cell{display:block;height:12px;width:70%}.row-err{grid-column:1 / -1;display:flex;align-items:center;gap:8px;color:#9f1d1d}.flag.ok{color:#14532d;border-color:#b7dcc2;background:#eefaf1}.flag.wk{color:#5b6574;border-color:#d4d9e0;background:#f4f5f7}.vt-tr.forgetting,.mc-row.forgetting{opacity:.55;text-decoration:line-through}.dr-pair{display:contents}.mc{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.mc-bar{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:13px;color:var(--text-2)}.mc-row{position:absolute;left:0;right:0;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 12px;border-bottom:1px solid #eef0f3;cursor:pointer}.mc-row.act{background:var(--accent-weak);box-shadow:inset 3px 0 0 var(--accent)}.mc-row.sel{background:#dfe9fd}.mc-text{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2);min-width:0;overflow:hidden;white-space:nowrap}.mc-meta .shape,.mc-meta .flag{margin-right:0}@media(max-width:760px){.pv-top{display:flex;align-items:center;gap:8px;flex:none;min-width:0}.pv-grid>.card:first-child{height:auto}.sc-wrap{flex:none;height:220px}.brush-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.toast{top:8px;bottom:auto;max-width:calc(100vw - 16px)}}
|
package/dist-ui/index.html
CHANGED
|
@@ -3,32 +3,10 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>
|
|
7
|
-
<
|
|
8
|
-
* {
|
|
9
|
-
margin: 0;
|
|
10
|
-
padding: 0;
|
|
11
|
-
box-sizing: border-box;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
body {
|
|
15
|
-
background: var(--bg);
|
|
16
|
-
background-image: var(--texture-cross-hatch);
|
|
17
|
-
color: var(--text);
|
|
18
|
-
font-family: var(--font-body);
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
#root {
|
|
23
|
-
width: 100vw;
|
|
24
|
-
height: 100vh;
|
|
25
|
-
}
|
|
26
|
-
</style>
|
|
27
|
-
<script type="module" crossorigin src="/assets/index-BhT8RvO6.js"></script>
|
|
6
|
+
<title>Memory health</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DPN7cP19.js"></script>
|
|
28
8
|
<link rel="modulepreload" crossorigin href="/assets/react-CEUiQZj-.js">
|
|
29
|
-
<link rel="
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/d3-BiWEKnn4.js">
|
|
31
|
-
<link rel="stylesheet" crossorigin href="/assets/index-RoXXJ5dq.css">
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-dFloKRVr.css">
|
|
32
10
|
</head>
|
|
33
11
|
<body>
|
|
34
12
|
<div id="root"></div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "hippo-memory",
|
|
3
3
|
"name": "Hippo Memory",
|
|
4
4
|
"description": "Memory for AI agents that learns what is wrong and ranks it down. Injects context at session start and captures errors.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.61.0",
|
|
6
6
|
|
|
7
7
|
"configSchema": {
|
|
8
8
|
"type": "object",
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "hippo-memory",
|
|
3
3
|
"name": "Hippo Memory",
|
|
4
4
|
"description": "Memory for AI agents that learns what is wrong and ranks it down. Injects context at session start and captures errors.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.61.0",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hippo-memory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.61.0",
|
|
4
4
|
"description": "Memory for AI agents that learns what is wrong and ranks it down. MCP server, hooks for Claude Code, OpenCode and Codex, AGENTS.md instructions for Codex, Cursor, OpenClaw and Pi. SQLite, zero runtime deps.",
|
|
5
5
|
"mcpName": "io.github.kitfunso/hippo-memory",
|
|
6
6
|
"type": "module",
|
package/dist/capture.d.ts
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capture actionable items from conversation text.
|
|
3
|
-
*
|
|
4
|
-
* Uses heuristic pattern matching (no LLM) to extract:
|
|
5
|
-
* - Decisions ("we decided", "let's do", "going with")
|
|
6
|
-
* - Specs / requirements (bullet lists after spec/feature/plan headings)
|
|
7
|
-
* - Rules / constraints ("never", "always", "the rule is", "must")
|
|
8
|
-
* - Errors / gotchas ("error:", "bug:", "gotcha:", "watch out")
|
|
9
|
-
* - Preferences ("prefer", "use X instead of Y", "don't use")
|
|
10
|
-
*/
|
|
11
|
-
import { type TaskSnapshot } from './store.js';
|
|
12
|
-
export interface ExtractedItem {
|
|
13
|
-
content: string;
|
|
14
|
-
category: string;
|
|
15
|
-
tags: string[];
|
|
16
|
-
}
|
|
17
|
-
export declare function splitSentences(text: string): string[];
|
|
18
|
-
/**
|
|
19
|
-
* Main extraction function. Scans text for actionable items using heuristics.
|
|
20
|
-
*/
|
|
21
|
-
export declare function extractFromText(text: string): ExtractedItem[];
|
|
22
|
-
export interface CaptureOptions {
|
|
23
|
-
source: 'stdin' | 'file' | 'last-session';
|
|
24
|
-
filePath?: string;
|
|
25
|
-
/** Explicit transcript path for `--last-session`. Without one, `stdinText`
|
|
26
|
-
* is used, then auto-discovery under `~/.claude/projects/` on a manual run. */
|
|
27
|
-
transcriptPath?: string;
|
|
28
|
-
/** Read from stdin by the caller (cli.ts), which owns the bounded wait.
|
|
29
|
-
* `stdinTimedOut` marks an empty read "unknown", not "no payload". */
|
|
30
|
-
stdinText?: string;
|
|
31
|
-
stdinTimedOut?: boolean;
|
|
32
|
-
sessionTurns?: readonly SessionTurn[];
|
|
33
|
-
/**
|
|
34
|
-
* Tee stdout/stderr to this log file while capture runs. Mirrors the
|
|
35
|
-
* pattern used by `hippo sleep --log-file` so the SessionEnd hook output
|
|
36
|
-
* (invisible during TUI teardown) can be surfaced via `hippo last-sleep`
|
|
37
|
-
* on the next session start. Appends rather than truncates — `hippo sleep`
|
|
38
|
-
* writes the same file first in the SessionEnd sequence.
|
|
39
|
-
*/
|
|
40
|
-
logFile?: string;
|
|
41
|
-
dryRun: boolean;
|
|
42
|
-
global: boolean;
|
|
43
|
-
/**
|
|
44
|
-
* L9: tenant scope for the dedup read in `cmdCaptureCore`. When provided
|
|
45
|
-
* AND `global` is false, the dedup check only considers this tenant's
|
|
46
|
-
* existing memories. Undefined preserves pre-1.12.1 host-wide dedup
|
|
47
|
-
* behaviour. Ignored when `global: true` (global captures are host-wide).
|
|
48
|
-
*/
|
|
49
|
-
tenantId?: string;
|
|
50
|
-
originProject?: string;
|
|
51
|
-
}
|
|
52
|
-
/** Message for a caught value of unknown shape. `cause` names the sanctioned unknown-input case (error-cause enrichment). */
|
|
53
|
-
export declare function errorMessage(cause: unknown): string;
|
|
54
|
-
/** Transcript-line flags isNonHumanUserLine reads (any may be absent); `promptSource: 'system'` marks Claude Code's own notices. */
|
|
55
|
-
interface TranscriptLineFlags {
|
|
56
|
-
type?: unknown;
|
|
57
|
-
isMeta?: unknown;
|
|
58
|
-
isSidechain?: unknown;
|
|
59
|
-
isCompactSummary?: unknown;
|
|
60
|
-
promptSource?: unknown;
|
|
61
|
-
}
|
|
62
|
-
export interface SessionTurn {
|
|
63
|
-
role: 'user' | 'assistant';
|
|
64
|
-
text: string;
|
|
65
|
-
}
|
|
66
|
-
export interface TranscriptRecord extends TranscriptLineFlags {
|
|
67
|
-
message?: unknown;
|
|
68
|
-
payload?: unknown;
|
|
69
|
-
cwd?: unknown;
|
|
70
|
-
}
|
|
71
|
-
export declare function collectSessionTurns(jsonl: string, visit?: (record: TranscriptRecord) => void): SessionTurn[];
|
|
72
|
-
export declare function summariseTranscript(jsonl: string): string;
|
|
73
|
-
/**
|
|
74
|
-
* Resolve a transcript path for `--last-session`.
|
|
75
|
-
*
|
|
76
|
-
* Priority, where the first source present is the only one tried:
|
|
77
|
-
* 1. Explicit `transcriptPath` option (from `--transcript <path>`)
|
|
78
|
-
* 2. Stdin JSON payload (Claude Code / OpenCode SessionEnd hook shape)
|
|
79
|
-
* 3. Most recent `.jsonl` under `~/.claude/projects/<any>/`, only when the caller passes `mayScan` (only the caller knows it is not a hook) and there is no path and no stdin text, because this scan spans every project on the box
|
|
80
|
-
*
|
|
81
|
-
* Returns null when nothing resolves, a named transcript or payload whose file is missing included. Never throws.
|
|
82
|
-
*/
|
|
83
|
-
export declare function resolveLastSessionTranscript(explicit: string | undefined, stdinText: string | undefined, opts: {
|
|
84
|
-
mayScan: boolean;
|
|
85
|
-
}): string | null;
|
|
86
|
-
export declare function cmdCapture(hippoRoot: string, options: CaptureOptions): void;
|
|
87
|
-
/** Never read the whole transcript — PreCompact fires exactly when it's largest. */
|
|
88
|
-
export declare const PRE_COMPACT_TAIL_BYTES: number;
|
|
89
|
-
export declare const PRE_COMPACT_TASK_CAP = 200;
|
|
90
|
-
export declare const PRE_COMPACT_SUMMARY_CAP = 2000;
|
|
91
|
-
export declare const PRE_COMPACT_NEXT_STEP_CAP = 500;
|
|
92
|
-
/**
|
|
93
|
-
* Truncate `text` to at most `maxChars` UTF-16 code units without splitting
|
|
94
|
-
* a surrogate pair at the boundary. A plain `slice(0, n)` can land between a
|
|
95
|
-
* high and low surrogate, leaving an unpaired surrogate in a stored/
|
|
96
|
-
* re-injected snapshot field. If the code unit at the cut point is a high
|
|
97
|
-
* surrogate (0xD800-0xDBFF), back off one unit so the pair stays whole.
|
|
98
|
-
*/
|
|
99
|
-
export declare function truncateCodePointSafe(text: string, maxChars: number): string;
|
|
100
|
-
/**
|
|
101
|
-
* Cap from the RECENT end: summariseTranscript emits user turns oldest-to-
|
|
102
|
-
* newest with assistant responses after them, so a head-first cap keeps
|
|
103
|
-
* stale context and drops exactly the newest working state this feature
|
|
104
|
-
* exists to preserve. Keep the LAST maxChars instead, aligned forward to a
|
|
105
|
-
* nearby line start, with a trim marker (codex round 3).
|
|
106
|
-
*/
|
|
107
|
-
export declare function truncateKeepNewest(text: string, maxChars: number): string;
|
|
108
|
-
/**
|
|
109
|
-
* Positional read of the last `capBytes` of `transcriptPath`, aligned
|
|
110
|
-
* forward to the first complete JSONL line. Uses fs.openSync/readSync at a
|
|
111
|
-
* byte offset rather than reading the whole file and slicing — PreCompact
|
|
112
|
-
* fires exactly when transcripts are largest, so a whole-file read is the
|
|
113
|
-
* one thing this path cannot do.
|
|
114
|
-
*
|
|
115
|
-
* Boundary handling (X14): a seek that lands mid-line must drop that
|
|
116
|
-
* partial first line so every remaining line parses as complete JSON. A
|
|
117
|
-
* seek that lands exactly after a '\n' already starts on a complete line
|
|
118
|
-
* and must NOT drop it — doing so would silently discard one whole line on
|
|
119
|
-
* every tail read whose start offset happens to align with a line break.
|
|
120
|
-
* Distinguished by peeking at the single byte immediately before `start`.
|
|
121
|
-
*/
|
|
122
|
-
export declare function readTranscriptTail(transcriptPath: string, capBytes?: number): string;
|
|
123
|
-
/**
|
|
124
|
-
* Log-forgery guard: messages here interpolate payload-controlled values
|
|
125
|
-
* (transcript paths, session ids). Strip C0 control chars — newlines above
|
|
126
|
-
* all — so a crafted value can't inject fake `[hippo] ...` log lines.
|
|
127
|
-
* Exported for every `[hippo]`-prefixed log writer that interpolates
|
|
128
|
-
* payload-controlled values (cli.ts appendSessionEndCloseLog) — one shared
|
|
129
|
-
* guard, not per-file copies.
|
|
130
|
-
*/
|
|
131
|
-
export declare function sanitizeLogMessage(message: string): string;
|
|
132
|
-
/** A session's task, summary and next step from its transcript tail, secrets scrubbed and capped, '' where none; null with a logged reason when nothing is derivable. */
|
|
133
|
-
export declare function transcriptWorkingState(transcriptPath: string, log: (message: string) => void): Pick<TaskSnapshot, 'task' | 'summary' | 'next_step'> | null;
|
|
134
|
-
export interface PreCompactOptions {
|
|
135
|
-
stdinText?: string;
|
|
136
|
-
stdinTimedOut?: boolean;
|
|
137
|
-
logFile?: string;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* PreCompact hook entry point. Exit code 2 on PreCompact BLOCKS compaction,
|
|
141
|
-
* so this verb must exit 0 on every path — malformed stdin, missing
|
|
142
|
-
* transcript, and store errors all degrade to a logged no-op rather than a
|
|
143
|
-
* thrown error. Callers (src/cli.ts) must not wrap this in anything that
|
|
144
|
-
* could turn a caught-and-logged failure back into a non-zero exit.
|
|
145
|
-
*/
|
|
146
|
-
export declare function cmdPreCompact(hippoRoot: string, options: PreCompactOptions): Promise<void>;
|
|
147
|
-
export interface PostCompactOptions {
|
|
148
|
-
stdinText?: string;
|
|
149
|
-
logFile?: string;
|
|
150
|
-
afterSave?: (transcriptPath: string, originProject: string, log: (message: string) => void) => void;
|
|
151
|
-
}
|
|
152
|
-
/** PostCompact entry point: saves the summary and its items, replays earlier leftovers, returns the one line to show. Never throws, so the hook exits 0. */
|
|
153
|
-
export declare function cmdPostCompact(hippoRoot: string, options: PostCompactOptions): string | null;
|
|
154
|
-
export {};
|
|
155
|
-
//# sourceMappingURL=capture.d.ts.map
|