hippo-memory 1.68.0 → 1.70.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 +6 -3
- package/dist/agent-memories/apply.d.ts +3 -3
- package/dist/agent-memories/apply.js +16 -31
- package/dist/agent-memories/claude-code.d.ts +1 -3
- package/dist/agent-memories/claude-code.js +11 -7
- package/dist/agent-memories/copilot.d.ts +3 -1
- package/dist/agent-memories/copilot.js +5 -4
- package/dist/agent-memories/files.js +3 -2
- package/dist/agent-memories/gemini.js +6 -5
- package/dist/agent-memories/keys.js +3 -2
- package/dist/agent-memories/legacy.d.ts +2 -2
- package/dist/agent-memories/legacy.js +2 -2
- package/dist/agent-memories/report.d.ts +1 -1
- package/dist/agent-memories/report.js +1 -1
- package/dist/agent-memories/source.d.ts +1 -1
- package/dist/agent-memories/source.js +6 -5
- package/dist/agent-memories/sync.d.ts +1 -1
- package/dist/agent-memories/sync.js +24 -33
- package/dist/agent-memories/types.d.ts +1 -1
- package/dist/api/assemble.d.ts +2 -2
- package/dist/api/assemble.js +42 -32
- package/dist/api/audit.d.ts +4 -7
- package/dist/api/audit.js +6 -20
- package/dist/api/auth.d.ts +5 -18
- package/dist/api/auth.js +44 -194
- package/dist/api/auto-sleep.d.ts +13 -0
- package/dist/api/auto-sleep.js +32 -0
- package/dist/{availability.d.ts → api/availability.d.ts} +2 -2
- package/dist/{availability.js → api/availability.js} +12 -29
- package/dist/{context-auto.js → api/context-auto.js} +2 -1
- package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
- package/dist/{context-render.js → api/context-render.js} +7 -6
- package/dist/api/context-select.d.ts +14 -4
- package/dist/api/context-select.js +50 -60
- package/dist/api/context-types.d.ts +5 -5
- package/dist/api/context.d.ts +2 -4
- package/dist/api/context.js +113 -85
- package/dist/api/dormant.d.ts +3 -3
- package/dist/api/dormant.js +38 -107
- package/dist/api/drill-down.d.ts +2 -2
- package/dist/api/drill-down.js +37 -65
- package/dist/api/forget.d.ts +4 -13
- package/dist/api/forget.js +13 -35
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +2 -2
- package/dist/api/index.d.ts +26 -0
- package/dist/api/index.js +29 -0
- package/dist/api/instruction-detect.js +74 -0
- package/dist/api/learn.js +63 -55
- package/dist/api/ledger-db.d.ts +20 -0
- package/dist/api/ledger-db.js +79 -0
- package/dist/api/on-store.d.ts +16 -0
- package/dist/api/on-store.js +36 -0
- package/dist/api/outcome.d.ts +9 -46
- package/dist/api/outcome.js +15 -57
- package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
- package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
- package/dist/api/promote.d.ts +7 -18
- package/dist/api/promote.js +30 -152
- package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +7 -7
- package/dist/{prompt-hook.js → api/prompt-hook.js} +34 -53
- package/dist/api/quarantine.d.ts +5 -5
- package/dist/api/quarantine.js +30 -106
- package/dist/api/recall-core.d.ts +4 -0
- package/dist/api/recall-core.js +112 -0
- package/dist/{recall-history.js → api/recall-history.js} +30 -25
- package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +5 -5
- package/dist/{recall-pipeline.js → api/recall-pipeline.js} +47 -42
- package/dist/api/recall-record.d.ts +10 -13
- package/dist/api/recall-record.js +10 -30
- package/dist/api/recall-request.d.ts +2 -2
- package/dist/api/recall-request.js +3 -3
- package/dist/api/recall-types.d.ts +41 -16
- package/dist/api/recall.d.ts +1 -1
- package/dist/api/recall.js +39 -37
- package/dist/api/remember.d.ts +12 -13
- package/dist/api/remember.js +38 -27
- package/dist/api/session-owners.d.ts +4 -0
- package/dist/api/session-owners.js +17 -0
- package/dist/api/sleep-run.d.ts +7 -7
- package/dist/api/sleep-run.js +63 -75
- package/dist/api/sleep.d.ts +1 -1
- package/dist/api/tokens.d.ts +2 -2
- package/dist/api/tokens.js +9 -21
- package/dist/api/types.d.ts +2 -2
- package/dist/api/types.js +1 -1
- package/dist/capture/caller-session.d.ts +2 -2
- package/dist/capture/caller-session.js +8 -8
- package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
- package/dist/{capture-error.js → capture/capture-error.js} +7 -7
- package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
- package/dist/capture/command.d.ts +1 -1
- package/dist/capture/command.js +54 -41
- package/dist/capture/compact-resume-caller.d.ts +1 -1
- package/dist/capture/compact-resume-caller.js +7 -7
- package/dist/capture/compact.d.ts +4 -1
- package/dist/capture/compact.js +59 -22
- package/dist/capture/compaction-items-caller.d.ts +1 -1
- package/dist/capture/compaction-items-caller.js +7 -5
- package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
- package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
- package/dist/{compaction-record.js → capture/compaction-record.js} +48 -94
- package/dist/{compaction-spool.js → capture/compaction-spool.js} +17 -13
- package/dist/capture/copilot-transcript.d.ts +3 -0
- package/dist/capture/copilot-transcript.js +9 -2
- package/dist/capture/extract.js +2 -2
- package/dist/capture/failure-caller.d.ts +2 -2
- package/dist/capture/failure-caller.js +6 -6
- package/dist/capture/failure-reading.d.ts +2 -5
- package/dist/capture/failure-reading.js +11 -12
- package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
- package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
- package/dist/capture/pre-compact-caller.d.ts +1 -1
- package/dist/capture/pre-compact-caller.js +2 -2
- package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +1 -5
- package/dist/{session-digest.js → capture/session-digest.js} +17 -23
- package/dist/capture/session-end-caller.d.ts +2 -2
- package/dist/capture/session-end-caller.js +1 -1
- package/dist/capture/session-texts.d.ts +1 -1
- package/dist/capture/session-texts.js +5 -5
- package/dist/capture/session-worker.d.ts +13 -0
- package/dist/capture/session-worker.js +196 -0
- package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
- package/dist/capture/transcript.js +68 -74
- package/dist/capture/working-state.d.ts +0 -3
- package/dist/capture/working-state.js +7 -7
- package/dist/{audit-prune.d.ts → cli/audit-prune.d.ts} +1 -2
- package/dist/{audit-prune.js → cli/audit-prune.js} +5 -39
- package/dist/cli/audit.d.ts +2 -2
- package/dist/cli/audit.js +77 -72
- package/dist/cli/auth.d.ts +2 -1
- package/dist/cli/auth.js +18 -20
- package/dist/cli/briefs.d.ts +4 -3
- package/dist/cli/briefs.js +59 -181
- package/dist/cli/card.d.ts +2 -1
- package/dist/cli/card.js +25 -23
- package/dist/{client.d.ts → cli/client.d.ts} +1 -1
- package/dist/{client.js → cli/client.js} +1 -1
- package/dist/cli/compact-resume-payload.d.ts +8 -0
- package/dist/cli/compact-resume-payload.js +39 -0
- package/dist/cli/context.d.ts +2 -13
- package/dist/cli/context.js +41 -71
- package/dist/cli/continuity.d.ts +6 -5
- package/dist/cli/continuity.js +109 -99
- package/dist/{correction-latency.d.ts → cli/correction-latency.d.ts} +1 -1
- package/dist/cli/curate.d.ts +9 -9
- package/dist/cli/curate.js +177 -149
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +46 -34
- package/dist/cli/decisions.d.ts +4 -3
- package/dist/cli/decisions.js +108 -218
- package/dist/cli/eval.d.ts +1 -3
- package/dist/cli/eval.js +43 -31
- package/dist/cli/explain.d.ts +1 -1
- package/dist/cli/explain.js +35 -19
- package/dist/cli/flag-values.d.ts +25 -0
- package/dist/cli/flag-values.js +103 -0
- package/dist/cli/flags.d.ts +303 -0
- package/dist/cli/flags.js +169 -0
- package/dist/cli/goals.d.ts +2 -1
- package/dist/cli/goals.js +39 -34
- package/dist/cli/hook-runtime.d.ts +49 -0
- package/dist/cli/hook-runtime.js +155 -0
- package/dist/cli/init.d.ts +2 -1
- package/dist/cli/init.js +151 -118
- package/dist/cli/install-steps.d.ts +7 -0
- package/dist/cli/install-steps.js +110 -0
- package/dist/cli/last-sleep.d.ts +2 -1
- package/dist/cli/last-sleep.js +9 -7
- package/dist/cli/maintenance.d.ts +5 -4
- package/dist/cli/maintenance.js +31 -27
- package/dist/cli/object-verbs.d.ts +40 -0
- package/dist/cli/object-verbs.js +65 -0
- package/dist/{owner-validation.d.ts → cli/owner-validation.d.ts} +0 -1
- package/dist/{owner-validation.js → cli/owner-validation.js} +2 -2
- package/dist/cli/playbooks.d.ts +4 -3
- package/dist/cli/playbooks.js +77 -280
- package/dist/cli/print.d.ts +18 -0
- package/dist/cli/print.js +85 -0
- package/dist/cli/projects.d.ts +2 -3
- package/dist/cli/projects.js +56 -49
- package/dist/{provenance-coverage.d.ts → cli/provenance-coverage.d.ts} +1 -1
- package/dist/cli/quality-repair-once.js +4 -4
- package/dist/{quality-repair.js → cli/quality-repair.js} +23 -37
- package/dist/cli/recall.d.ts +2 -4
- package/dist/cli/recall.js +101 -150
- package/dist/{refine-llm.d.ts → cli/refine-llm.d.ts} +1 -1
- package/dist/{refine-llm.js → cli/refine-llm.js} +70 -82
- package/dist/cli/remember.d.ts +1 -3
- package/dist/cli/remember.js +124 -103
- package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +3 -1
- package/dist/{scheduler.js → cli/scheduler.js} +13 -7
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.js +34 -4
- package/dist/cli/session-hooks.d.ts +4 -4
- package/dist/cli/session-hooks.js +265 -191
- package/dist/cli/setup.d.ts +2 -1
- package/dist/cli/setup.js +111 -45
- package/dist/cli/shared.d.ts +5 -95
- package/dist/cli/shared.js +18 -369
- package/dist/cli/slack.d.ts +2 -1
- package/dist/cli/slack.js +31 -55
- package/dist/cli/sleep-render.d.ts +4 -0
- package/dist/cli/sleep-render.js +61 -0
- package/dist/cli/sleep.d.ts +2 -8
- package/dist/cli/sleep.js +20 -76
- package/dist/cli/status.d.ts +3 -3
- package/dist/cli/status.js +39 -41
- package/dist/{stdin.js → cli/stdin.js} +6 -6
- package/dist/cli/transfer.d.ts +4 -4
- package/dist/cli/transfer.js +68 -42
- package/dist/cli/usage.js +8 -3
- package/dist/cli.d.ts +289 -5
- package/dist/cli.js +184 -117
- package/dist/connectors/dlq.d.ts +44 -0
- package/dist/connectors/dlq.js +30 -0
- package/dist/connectors/github/backfill.d.ts +1 -1
- package/dist/connectors/github/backfill.js +29 -66
- package/dist/connectors/github/cli-impl.js +59 -74
- package/dist/connectors/github/deletion.d.ts +5 -6
- package/dist/connectors/github/deletion.js +18 -52
- package/dist/connectors/github/dlq.d.ts +7 -61
- package/dist/connectors/github/dlq.js +19 -119
- package/dist/connectors/github/ingest.d.ts +2 -31
- package/dist/connectors/github/ingest.js +20 -82
- package/dist/connectors/github/octokit-client.d.ts +1 -1
- package/dist/connectors/github/octokit-client.js +2 -1
- package/dist/connectors/github/tenant-routing.d.ts +2 -2
- package/dist/connectors/github/tenant-routing.js +10 -36
- package/dist/connectors/github/transform.d.ts +1 -1
- package/dist/connectors/github/types.d.ts +1 -1
- package/dist/connectors/github/types.js +15 -18
- package/dist/connectors/github/webhook.d.ts +3 -2
- package/dist/connectors/github/webhook.js +84 -87
- package/dist/connectors/slack/backfill.d.ts +1 -1
- package/dist/connectors/slack/backfill.js +5 -29
- package/dist/connectors/slack/deletion.d.ts +4 -7
- package/dist/connectors/slack/deletion.js +20 -48
- package/dist/connectors/slack/dlq.d.ts +7 -49
- package/dist/connectors/slack/dlq.js +25 -118
- package/dist/connectors/slack/ingest.d.ts +5 -18
- package/dist/connectors/slack/ingest.js +27 -90
- package/dist/connectors/slack/signature.js +2 -1
- package/dist/connectors/slack/tenant-routing.d.ts +4 -1
- package/dist/connectors/slack/tenant-routing.js +13 -14
- package/dist/connectors/slack/transform.d.ts +1 -1
- package/dist/connectors/slack/types.d.ts +1 -1
- package/dist/connectors/slack/types.js +3 -12
- package/dist/connectors/slack/web-client.js +2 -2
- package/dist/connectors/slack/webhook.d.ts +3 -2
- package/dist/connectors/slack/webhook.js +75 -82
- package/dist/connectors/slack/workspaces.d.ts +4 -17
- package/dist/connectors/slack/workspaces.js +4 -34
- package/dist/consolidate/conflicts.d.ts +1 -1
- package/dist/consolidate/conflicts.js +4 -4
- package/dist/{dag.d.ts → consolidate/dag.d.ts} +1 -1
- package/dist/{dag.js → consolidate/dag.js} +60 -81
- package/dist/consolidate/decay.d.ts +2 -2
- package/dist/consolidate/decay.js +28 -22
- package/dist/{dedupe.js → consolidate/dedupe.js} +11 -19
- package/dist/consolidate/flush-units.d.ts +2 -2
- package/dist/{half-life-migration.d.ts → consolidate/half-life-migration.d.ts} +3 -9
- package/dist/consolidate/half-life-migration.js +106 -0
- package/dist/consolidate/llm-passes.js +8 -8
- package/dist/{memory-value.d.ts → consolidate/memory-value.d.ts} +7 -2
- package/dist/{memory-value.js → consolidate/memory-value.js} +9 -7
- package/dist/consolidate/merge.js +57 -54
- package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
- package/dist/{merged-row.js → consolidate/merged-row.js} +2 -2
- package/dist/consolidate/physics-pass.js +46 -46
- package/dist/{replay.d.ts → consolidate/replay.d.ts} +1 -1
- package/dist/{replay.js → consolidate/replay.js} +2 -2
- package/dist/consolidate/run.d.ts +7 -13
- package/dist/consolidate/run.js +6 -37
- package/dist/consolidate/sleep.d.ts +1 -1
- package/dist/consolidate/sleep.js +64 -134
- package/dist/{trace.js → consolidate/trace.js} +4 -6
- package/dist/consolidate/traces.js +34 -29
- package/dist/{ablation.js → core/ablation.js} +1 -1
- package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
- package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
- package/dist/{ambient.js → core/ambient.js} +12 -10
- package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
- package/dist/core/capture-contract.js +149 -0
- package/dist/{compare.d.ts → core/compare.d.ts} +2 -0
- package/dist/{compare.js → core/compare.js} +10 -3
- package/dist/{config.d.ts → core/config.d.ts} +6 -6
- package/dist/{config.js → core/config.js} +99 -72
- package/dist/core/handoff.js +87 -0
- package/dist/{memory-quality.js → core/memory-quality.js} +1 -1
- package/dist/{memory.d.ts → core/memory.d.ts} +19 -5
- package/dist/{memory.js → core/memory.js} +117 -82
- package/dist/{physics.d.ts → core/physics.d.ts} +1 -1
- package/dist/{physics.js → core/physics.js} +2 -1
- package/dist/{project-identity.d.ts → core/project-identity.d.ts} +0 -5
- package/dist/{project-identity.js → core/project-identity.js} +5 -17
- package/dist/{project-remote.js → core/project-remote.js} +4 -4
- package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +5 -0
- package/dist/{prompt-recall.js → core/prompt-recall.js} +14 -1
- package/dist/{salience.js → core/salience.js} +35 -20
- package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
- package/dist/{search/types.js → core/search-types.js} +1 -1
- package/dist/core/session-digest-row.d.ts +5 -0
- package/dist/core/session-digest-row.js +6 -0
- package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
- package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +5 -5
- package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
- package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
- package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +9 -9
- package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +101 -104
- package/dist/{dashboard.js → dashboard/dashboard.js} +124 -53
- package/dist/db/backup.js +1 -1
- package/dist/db/busy.d.ts +18 -1
- package/dist/db/busy.js +74 -9
- package/dist/db/connect.d.ts +10 -2
- package/dist/db/connect.js +43 -10
- package/dist/db/index.d.ts +9 -0
- package/dist/db/index.js +8 -0
- package/dist/db/meta.d.ts +4 -0
- package/dist/db/meta.js +11 -1
- package/dist/db/migrate.d.ts +8 -1
- package/dist/db/migrate.js +25 -30
- package/dist/db/migrations/v08.js +1 -1
- package/dist/db/migrations/v14.js +39 -35
- package/dist/db/migrations/v16.js +29 -26
- package/dist/db/migrations/v18.js +6 -5
- package/dist/db/migrations/v20.js +4 -2
- package/dist/db/migrations/v22.js +39 -36
- package/dist/db/migrations/v24.js +27 -22
- package/dist/db/migrations/v29.js +37 -32
- package/dist/db/migrations/v31.js +36 -31
- package/dist/db/migrations/v35.js +1 -1
- package/dist/db/migrations/v39.js +1 -1
- package/dist/db/migrations/v40.js +15 -14
- package/dist/db/migrations/v43.js +7 -6
- package/dist/db/migrations/v44.js +1 -1
- package/dist/db/migrations/v45.js +1 -1
- package/dist/db/migrations/v46.js +1 -1
- package/dist/db/migrations/v47.js +1 -1
- package/dist/db/migrations/v48.js +1 -1
- package/dist/db/migrations/v49.js +1 -1
- package/dist/db/migrations/v50.js +8 -7
- package/dist/db/migrations/v52.js +1 -1
- package/dist/db/open.d.ts +9 -1
- package/dist/db/open.js +21 -4
- package/dist/{physics-state.d.ts → db/physics-state.d.ts} +3 -3
- package/dist/{physics-state.js → db/physics-state.js} +9 -16
- package/dist/{raw-archive-mirror-cleanup.d.ts → db/raw-archive-mirror-cleanup.d.ts} +5 -5
- package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +11 -6
- package/dist/db/request-stores.d.ts +15 -2
- package/dist/db/request-stores.js +37 -15
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -0
- package/dist/{vector-store.d.ts → db/vector-store.d.ts} +4 -2
- package/dist/{vector-store.js → db/vector-store.js} +76 -51
- package/dist/db/wal-checkpointer.d.ts +11 -0
- package/dist/db/wal-checkpointer.js +92 -0
- package/dist/doctor.js +105 -136
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.d.ts +1 -1
- package/dist/entry/project-identity.js +1 -1
- package/dist/entry/session-text.d.ts +3 -3
- package/dist/entry/session-text.js +3 -3
- package/dist/{eval-stats.js → eval/eval-stats.js} +12 -9
- package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +1 -1
- package/dist/{eval-suite.js → eval/eval-suite.js} +25 -23
- package/dist/{eval.d.ts → eval/eval.d.ts} +1 -1
- package/dist/{eval.js → eval/eval.js} +29 -22
- package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -3
- package/dist/{judgment.js → eval/judgment.js} +4 -9
- package/dist/extensions/openclaw-plugin/index.js +1 -2
- package/dist/graph/delta.d.ts +3 -2
- package/dist/graph/delta.js +9 -23
- package/dist/{graph-extract.d.ts → graph/extract.d.ts} +6 -6
- package/dist/{graph-extract.js → graph/extract.js} +37 -52
- package/dist/{graph-recall.d.ts → graph/recall.d.ts} +2 -2
- package/dist/{graph-recall.js → graph/recall.js} +55 -36
- package/dist/{graph-stream.d.ts → graph/stream.d.ts} +2 -2
- package/dist/{graph-stream.js → graph/stream.js} +9 -7
- package/dist/{graph-view.d.ts → graph/view.d.ts} +6 -3
- package/dist/{graph-view.js → graph/view.js} +127 -167
- package/dist/graph/write.d.ts +4 -76
- package/dist/graph/write.js +13 -397
- package/dist/hooks/codex-session.js +1 -1
- package/dist/hooks/codex-wrapper.js +14 -15
- package/dist/hooks/copilot.d.ts +48 -13
- package/dist/hooks/copilot.js +124 -39
- package/dist/{cli → hooks}/hook-blocks.js +1 -1
- package/dist/hooks/json-hooks.d.ts +3 -1
- package/dist/hooks/json-hooks.js +40 -122
- package/dist/hooks/opencode.js +35 -27
- package/dist/hooks/shared.d.ts +7 -5
- package/dist/hooks/shared.js +19 -8
- package/dist/importers/core.d.ts +2 -6
- package/dist/importers/core.js +41 -39
- package/dist/importers/markdown-parse.d.ts +1 -10
- package/dist/importers/markdown-parse.js +2 -19
- package/dist/importers/markdown.js +2 -1
- package/dist/importers/sources.js +50 -46
- package/dist/importers/vault.js +71 -92
- package/dist/index.d.ts +22 -22
- package/dist/index.js +21 -21
- package/dist/{autolearn.d.ts → learn/autolearn.d.ts} +2 -2
- package/dist/{autolearn.js → learn/autolearn.js} +13 -11
- package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
- package/dist/{churn-git.js → learn/churn-git.js} +6 -4
- package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
- package/dist/learn/extract.js +125 -0
- package/dist/{forward-claim-detector.d.ts → learn/forward-claim-detector.d.ts} +1 -1
- package/dist/{forward-claim-detector.js → learn/forward-claim-detector.js} +1 -1
- package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +4 -0
- package/dist/{invalidation.js → learn/invalidation.js} +83 -99
- package/dist/mcp/admin-tools.d.ts +1 -1
- package/dist/mcp/admin-tools.js +37 -60
- package/dist/mcp/format.d.ts +5 -5
- package/dist/mcp/format.js +7 -6
- package/dist/mcp/framing.d.ts +6 -0
- package/dist/mcp/framing.js +11 -3
- package/dist/mcp/memory-tools.d.ts +2 -2
- package/dist/mcp/memory-tools.js +12 -31
- package/dist/mcp/protocol.d.ts +6 -10
- package/dist/mcp/protocol.js +8 -14
- package/dist/mcp/recall-tools.d.ts +2 -2
- package/dist/mcp/recall-tools.js +68 -50
- package/dist/mcp/request.js +65 -63
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/session-state.d.ts +1 -2
- package/dist/mcp/session-state.js +2 -2
- package/dist/mcp/shared-gate.js +1 -1
- package/dist/mcp/stdio.js +69 -31
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +2 -2
- package/dist/{customer-notes.d.ts → objects/customer-notes.d.ts} +7 -24
- package/dist/objects/customer-notes.js +112 -0
- package/dist/{decisions.d.ts → objects/decisions.d.ts} +13 -28
- package/dist/objects/decisions.js +101 -0
- package/dist/objects/descriptor.d.ts +52 -0
- package/dist/objects/descriptor.js +4 -0
- package/dist/objects/fields.d.ts +15 -0
- package/dist/objects/fields.js +21 -0
- package/dist/{incidents.d.ts → objects/incidents.d.ts} +17 -44
- package/dist/objects/incidents.js +130 -0
- package/dist/objects/lifecycle.d.ts +27 -0
- package/dist/objects/lifecycle.js +96 -0
- package/dist/{policies.d.ts → objects/policies.d.ts} +14 -27
- package/dist/objects/policies.js +189 -0
- package/dist/{processes.d.ts → objects/processes.d.ts} +14 -34
- package/dist/objects/processes.js +146 -0
- package/dist/{project-briefs.d.ts → objects/project-briefs.d.ts} +19 -40
- package/dist/objects/project-briefs.js +255 -0
- package/dist/{skills.d.ts → objects/skills.d.ts} +11 -26
- package/dist/objects/skills.js +156 -0
- package/dist/postinstall.js +4 -2
- package/dist/predictions/planning-fallacy.d.ts +4 -76
- package/dist/predictions/planning-fallacy.js +4 -129
- package/dist/rerankers/clef.d.ts +2 -6
- package/dist/rerankers/clef.js +27 -47
- package/dist/rerankers/cross-encoder.d.ts +0 -7
- package/dist/rerankers/cross-encoder.js +15 -23
- package/dist/rerankers/index.js +8 -7
- package/dist/rerankers/jev.d.ts +1 -4
- package/dist/rerankers/jev.js +30 -49
- package/dist/rerankers/llm.d.ts +2 -4
- package/dist/rerankers/llm.js +33 -50
- package/dist/rerankers/outage-warning.d.ts +7 -0
- package/dist/rerankers/outage-warning.js +31 -0
- package/dist/rerankers/remote.d.ts +3 -0
- package/dist/rerankers/remote.js +23 -0
- package/dist/rerankers/types.d.ts +1 -1
- package/dist/search/as-of.d.ts +1 -1
- package/dist/search/bm25-search.d.ts +2 -2
- package/dist/search/bm25-search.js +7 -7
- package/dist/search/bm25.d.ts +1 -1
- package/dist/search/bm25.js +1 -1
- package/dist/search/boosts.d.ts +5 -1
- package/dist/search/boosts.js +34 -13
- package/dist/search/breakdown.d.ts +2 -2
- package/dist/search/breakdown.js +2 -1
- package/dist/search/explain.d.ts +1 -1
- package/dist/search/explain.js +3 -2
- package/dist/search/finalize.d.ts +2 -2
- package/dist/search/finalize.js +4 -3
- package/dist/search/fusion.d.ts +1 -1
- package/dist/search/fusion.js +3 -3
- package/dist/search/hybrid-score.d.ts +2 -2
- package/dist/search/hybrid-score.js +1 -1
- package/dist/search/hybrid.d.ts +4 -4
- package/dist/search/hybrid.js +11 -8
- package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
- package/dist/{multihop.js → search/multihop.js} +7 -5
- package/dist/{path-context.js → search/path-context.js} +3 -1
- package/dist/search/physics-search.d.ts +4 -4
- package/dist/search/physics-search.js +15 -15
- package/dist/search/rerank.d.ts +3 -3
- package/dist/search/rerank.js +4 -3
- package/dist/search/temporal.d.ts +1 -1
- package/dist/search/temporal.js +5 -2
- package/dist/search/vector.d.ts +3 -3
- package/dist/search/vector.js +17 -11
- package/dist/server/auth.d.ts +1 -1
- package/dist/server/auth.js +26 -18
- package/dist/server/boot.d.ts +24 -0
- package/dist/server/boot.js +465 -0
- package/dist/server/client-ip.d.ts +5 -1
- package/dist/server/client-ip.js +18 -6
- package/dist/server/cursor.d.ts +1 -1
- package/dist/server/cursor.js +2 -3
- package/dist/server/deadline.d.ts +13 -0
- package/dist/server/deadline.js +45 -0
- package/dist/server/key-check-bounds.d.ts +8 -0
- package/dist/server/key-check-bounds.js +46 -0
- package/dist/server/lifecycle.js +1 -1
- package/dist/server/mcp-http.d.ts +1 -4
- package/dist/server/mcp-http.js +34 -24
- package/dist/server/ready.d.ts +7 -0
- package/dist/server/ready.js +38 -0
- package/dist/server/request.d.ts +10 -4
- package/dist/server/request.js +63 -12
- package/dist/server/route-table.d.ts +15 -0
- package/dist/server/route-table.js +209 -0
- package/dist/server/routes/admin.js +13 -8
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +32 -97
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +42 -105
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +42 -95
- package/dist/server/routes/memories.js +21 -20
- package/dist/server/routes/object-routes.d.ts +40 -0
- package/dist/server/routes/object-routes.js +80 -0
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +40 -124
- package/dist/server/routes/predictions.js +29 -45
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +38 -118
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +38 -110
- package/dist/server/routes/recall.js +14 -12
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +37 -125
- package/dist/{server-detect.js → server/server-detect.js} +3 -2
- package/dist/server/sleep-child.d.ts +2 -0
- package/dist/server/sleep-child.js +19 -0
- package/dist/server/sleep-offload.d.ts +20 -0
- package/dist/server/sleep-offload.js +70 -0
- package/dist/server/tls.d.ts +6 -0
- package/dist/server/tls.js +24 -0
- package/dist/server/types.d.ts +27 -8
- package/dist/server/validation.d.ts +3 -4
- package/dist/server/validation.js +6 -11
- package/dist/server.d.ts +41 -50
- package/dist/server.js +26 -560
- package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +1 -1
- package/dist/{project-merge.js → sharing/project-merge.js} +26 -45
- package/dist/{scope.js → sharing/scope.js} +1 -1
- package/dist/{shared.d.ts → sharing/shared.d.ts} +10 -9
- package/dist/{shared.js → sharing/shared.js} +100 -77
- package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
- package/dist/{ambient-store.js → store/ambient.js} +10 -10
- package/dist/store/audit-event.d.ts +12 -6
- package/dist/store/audit-event.js +6 -5
- package/dist/{audit.d.ts → store/audit.d.ts} +27 -3
- package/dist/{audit.js → store/audit.js} +91 -6
- package/dist/{auth.d.ts → store/auth.d.ts} +15 -32
- package/dist/{auth.js → store/auth.js} +100 -92
- package/dist/store/candidates.d.ts +23 -12
- package/dist/store/candidates.js +87 -35
- package/dist/{card-detail.d.ts → store/card-detail.d.ts} +3 -3
- package/dist/{card-detail.js → store/card-detail.js} +1 -1
- package/dist/{store-cards.d.ts → store/cards.d.ts} +14 -9
- package/dist/{store-cards.js → store/cards.js} +85 -146
- package/dist/store/compactions.d.ts +78 -0
- package/dist/store/compactions.js +93 -0
- package/dist/store/conflicts.d.ts +22 -5
- package/dist/store/conflicts.js +160 -109
- package/dist/store/connectors/github.d.ts +84 -0
- package/dist/store/connectors/github.js +180 -0
- package/dist/store/connectors/slack.d.ts +69 -0
- package/dist/store/connectors/slack.js +177 -0
- package/dist/store/dashboard-reads.d.ts +27 -0
- package/dist/store/dashboard-reads.js +92 -0
- package/dist/store/delete-and-batch.d.ts +20 -24
- package/dist/store/delete-and-batch.js +64 -40
- package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +12 -5
- package/dist/{delivery-recorder.js → store/delivery-recorder.js} +42 -30
- package/dist/store/descendant-page.d.ts +12 -0
- package/dist/store/descendant-page.js +99 -0
- package/dist/store/diagnostics.d.ts +47 -0
- package/dist/store/diagnostics.js +51 -0
- package/dist/store/doctor-reads.d.ts +16 -0
- package/dist/store/doctor-reads.js +19 -0
- package/dist/{dormant.d.ts → store/dormant.d.ts} +46 -12
- package/dist/{dormant.js → store/dormant.js} +151 -6
- package/dist/{embeddings.d.ts → store/embeddings/index.d.ts} +10 -6
- package/dist/{embeddings.js → store/embeddings/index.js} +60 -44
- package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
- package/dist/{local-embedding.js → store/embeddings/local.js} +68 -57
- package/dist/{embedding-provider.d.ts → store/embeddings/provider.d.ts} +2 -2
- package/dist/{embedding-provider.js → store/embeddings/provider.js} +47 -32
- package/dist/store/entry-reads.d.ts +46 -7
- package/dist/store/entry-reads.js +120 -21
- package/dist/store/entry-row.d.ts +8 -2
- package/dist/store/entry-row.js +28 -8
- package/dist/store/entry-writes.d.ts +33 -4
- package/dist/store/entry-writes.js +108 -26
- package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
- package/dist/{failure-log.js → store/failure-log.js} +9 -2
- package/dist/{goals.d.ts → store/goals.d.ts} +6 -46
- package/dist/{goals.js → store/goals.js} +45 -94
- package/dist/store/graph-queue.d.ts +29 -0
- package/dist/store/graph-queue.js +101 -0
- package/dist/{graph/read.d.ts → store/graph-reads.d.ts} +26 -34
- package/dist/{graph/read.js → store/graph-reads.js} +63 -115
- package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +68 -8
- package/dist/{graph/rows.js → store/graph-rows.js} +14 -3
- package/dist/store/graph-view-rows.d.ts +12 -0
- package/dist/store/graph-view-rows.js +67 -0
- package/dist/store/graph-writes.d.ts +58 -0
- package/dist/store/graph-writes.js +256 -0
- package/dist/store/half-life.d.ts +34 -0
- package/dist/store/half-life.js +77 -0
- package/dist/store/handoffs.d.ts +6 -3
- package/dist/store/handoffs.js +70 -31
- package/dist/store/index-and-stats.d.ts +8 -1
- package/dist/store/index-and-stats.js +51 -48
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.js +3 -0
- package/dist/store/key-audit.d.ts +2 -2
- package/dist/store/key-audit.js +4 -4
- package/dist/store/key-writes.d.ts +12 -5
- package/dist/store/key-writes.js +30 -4
- package/dist/store/ledger-turn.d.ts +17 -0
- package/dist/store/ledger-turn.js +27 -0
- package/dist/store/markdown.d.ts +1 -1
- package/dist/store/markdown.js +4 -3
- package/dist/store/mirrors.d.ts +5 -7
- package/dist/store/mirrors.js +39 -25
- package/dist/store/object-types.d.ts +189 -0
- package/dist/store/object-types.js +4 -0
- package/dist/store/open.d.ts +8 -4
- package/dist/store/open.js +34 -23
- package/dist/store/planning-fallacy-evidence.d.ts +42 -0
- package/dist/store/planning-fallacy-evidence.js +81 -0
- package/dist/store/port.d.ts +646 -0
- package/dist/store/port.js +17 -0
- package/dist/{predictions/store.d.ts → store/predictions.d.ts} +15 -2
- package/dist/{predictions/store.js → store/predictions.js} +52 -67
- package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
- package/dist/{quarantine.js → store/quarantine.js} +64 -22
- package/dist/{raw-archive.d.ts → store/raw-archive.d.ts} +5 -3
- package/dist/{raw-archive.js → store/raw-archive.js} +11 -5
- package/dist/{recall-scope.d.ts → store/recall-scope.d.ts} +4 -7
- package/dist/{recall-scope.js → store/recall-scope.js} +8 -9
- package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -14
- package/dist/{recall-trace.js → store/recall-trace.js} +38 -43
- package/dist/store/rejected-values.d.ts +55 -0
- package/dist/store/rejected-values.js +162 -0
- package/dist/{rejection.d.ts → store/rejection.d.ts} +2 -2
- package/dist/{rejection.js → store/rejection.js} +3 -2
- package/dist/store/rows.d.ts +2 -3
- package/dist/store/rows.js +18 -11
- package/dist/store/search-rows.d.ts +15 -4
- package/dist/store/search-rows.js +43 -36
- package/dist/store/sessions.d.ts +18 -2
- package/dist/store/sessions.js +83 -46
- package/dist/store/sqlite/commit-watch.d.ts +4 -0
- package/dist/store/sqlite/commit-watch.js +29 -0
- package/dist/store/sqlite/connector-events-group.d.ts +5 -0
- package/dist/store/sqlite/connector-events-group.js +50 -0
- package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
- package/dist/store/sqlite/connector-writes-group.js +65 -0
- package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
- package/dist/store/sqlite/dag-reads-group.js +45 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
- package/dist/store/sqlite/entry-writes-group.js +170 -0
- package/dist/store/sqlite/error-codec.d.ts +17 -0
- package/dist/store/sqlite/error-codec.js +59 -0
- package/dist/store/sqlite/executor-counts.d.ts +10 -0
- package/dist/store/sqlite/executor-counts.js +11 -0
- package/dist/store/sqlite/executor.d.ts +28 -0
- package/dist/store/sqlite/executor.js +286 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
- package/dist/store/sqlite/graph-reads-group.js +18 -0
- package/dist/store/sqlite/local.d.ts +21 -0
- package/dist/store/sqlite/local.js +38 -0
- package/dist/store/sqlite/object-rows.d.ts +102 -0
- package/dist/store/sqlite/object-rows.js +218 -0
- package/dist/store/sqlite/objects-group.d.ts +20 -0
- package/dist/store/sqlite/objects-group.js +314 -0
- package/dist/store/sqlite/predictions-group.d.ts +5 -0
- package/dist/store/sqlite/predictions-group.js +28 -0
- package/dist/store/sqlite/quarantine-group.d.ts +5 -0
- package/dist/store/sqlite/quarantine-group.js +38 -0
- package/dist/store/sqlite/store.d.ts +26 -0
- package/dist/store/sqlite/store.js +295 -0
- package/dist/store/sqlite/vector-pack.d.ts +18 -0
- package/dist/store/sqlite/vector-pack.js +46 -0
- package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
- package/dist/store/sqlite/vector-reads-group.js +23 -0
- package/dist/store/sqlite/worker-entry.d.ts +2 -0
- package/dist/store/sqlite/worker-entry.js +8 -0
- package/dist/store/sqlite/worker-jobs.d.ts +5 -0
- package/dist/store/sqlite/worker-jobs.js +116 -0
- package/dist/store/sqlite/worker-ops.d.ts +124 -0
- package/dist/store/sqlite/worker-ops.js +82 -0
- package/dist/store/sqlite/worker-store.d.ts +8 -0
- package/dist/store/sqlite/worker-store.js +76 -0
- package/dist/store/summaries.d.ts +2 -11
- package/dist/store/summaries.js +17 -44
- package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
- package/dist/store/tenant-lookup.d.ts +1 -1
- package/dist/{tenant.d.ts → store/tenant.d.ts} +2 -2
- package/dist/{tenant.js → store/tenant.js} +1 -1
- package/dist/store/token-ledger-rows.d.ts +61 -0
- package/dist/store/token-ledger-rows.js +68 -0
- package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +2 -9
- package/dist/{token-ledger.js → store/token-ledger.js} +31 -78
- package/dist/store/tombstone-checks.d.ts +12 -0
- package/dist/store/tombstone-checks.js +31 -0
- package/dist/store/usage-reports.d.ts +7 -0
- package/dist/store/usage-reports.js +26 -0
- package/dist/store/vector-writes.d.ts +10 -3
- package/dist/store/vector-writes.js +35 -5
- package/dist/{working-memory.d.ts → store/working-memory.d.ts} +5 -1
- package/dist/{working-memory.js → store/working-memory.js} +39 -41
- package/dist/support-bundle.d.ts +1 -1
- package/dist/support-bundle.js +13 -33
- package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
- package/dist/{gated-write.js → trust/gated-write.js} +6 -6
- package/dist/trust/quarantine.d.ts +4 -0
- package/dist/trust/quarantine.js +8 -0
- package/dist/trust/reject-flow.d.ts +23 -0
- package/dist/trust/reject-flow.js +67 -0
- package/dist/util/anthropic-messages.d.ts +31 -0
- package/dist/util/anthropic-messages.js +46 -0
- package/dist/util/atomic-write.d.ts +3 -0
- package/dist/util/atomic-write.js +107 -0
- package/dist/util/crash-handlers.d.ts +5 -0
- package/dist/util/crash-handlers.js +30 -0
- package/dist/{env.d.ts → util/env.d.ts} +17 -2
- package/dist/{env.js → util/env.js} +22 -2
- package/dist/util/home-path.js +67 -0
- package/dist/{http-retry.d.ts → util/http-retry.d.ts} +6 -2
- package/dist/{http-retry.js → util/http-retry.js} +38 -7
- package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
- package/dist/{http-util.js → util/http-util.js} +31 -11
- package/dist/util/json.d.ts +17 -0
- package/dist/util/json.js +25 -0
- package/dist/{log.d.ts → util/log.d.ts} +5 -2
- package/dist/{log.js → util/log.js} +12 -3
- package/dist/util/real-path.d.ts +3 -0
- package/dist/util/real-path.js +15 -0
- package/dist/util/request-scope.d.ts +27 -0
- package/dist/util/request-scope.js +47 -0
- package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
- package/dist/{secret-detect.js → util/secret-detect.js} +5 -4
- package/dist/util/stored-json.d.ts +9 -0
- package/dist/util/stored-json.js +8 -0
- package/dist/util/time.d.ts +2 -0
- package/dist/util/time.js +3 -0
- package/dist/util/token-text.d.ts +18 -0
- package/dist/util/token-text.js +23 -0
- package/dist/{version.d.ts → util/version.d.ts} +1 -1
- package/dist/{version.js → util/version.js} +1 -1
- package/extensions/openclaw-plugin/index.ts +1 -5
- 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 +2 -2
- package/dist/api.d.ts +0 -26
- package/dist/api.js +0 -29
- package/dist/capture-contract.js +0 -49
- package/dist/connectors/github/idempotency.d.ts +0 -19
- package/dist/connectors/github/idempotency.js +0 -27
- package/dist/connectors/slack/idempotency.d.ts +0 -17
- package/dist/connectors/slack/idempotency.js +0 -31
- package/dist/customer-notes.js +0 -336
- package/dist/db.d.ts +0 -9
- package/dist/db.js +0 -8
- package/dist/decisions.js +0 -326
- package/dist/extract.js +0 -133
- package/dist/graph/rows.d.ts +0 -45
- package/dist/graph/types.js +0 -11
- package/dist/half-life-migration.js +0 -182
- package/dist/handoff.js +0 -68
- package/dist/home-path.js +0 -24
- package/dist/incidents.js +0 -349
- package/dist/instruction-detect.js +0 -27
- package/dist/json.d.ts +0 -7
- package/dist/json.js +0 -11
- package/dist/ledger-db.d.ts +0 -10
- package/dist/ledger-db.js +0 -42
- package/dist/policies.js +0 -434
- package/dist/processes.js +0 -371
- package/dist/project-briefs.js +0 -523
- package/dist/reject-flow.d.ts +0 -69
- package/dist/reject-flow.js +0 -260
- package/dist/session-owners.d.ts +0 -7
- package/dist/session-owners.js +0 -54
- package/dist/skills.js +0 -367
- package/dist/store-port.d.ts +0 -191
- package/dist/store-port.js +0 -166
- /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
- /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
- /package/dist/{recall-history.d.ts → api/recall-history.d.ts} +0 -0
- /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
- /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
- /package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +0 -0
- /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
- /package/dist/{correction-latency.js → cli/correction-latency.js} +0 -0
- /package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +0 -0
- /package/dist/{quality-repair.d.ts → cli/quality-repair.d.ts} +0 -0
- /package/dist/{stdin.d.ts → cli/stdin.d.ts} +0 -0
- /package/dist/{dedupe.d.ts → consolidate/dedupe.d.ts} +0 -0
- /package/dist/{memory-value-weights.d.ts → consolidate/memory-value-weights.d.ts} +0 -0
- /package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +0 -0
- /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
- /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
- /package/dist/{trace.d.ts → consolidate/trace.d.ts} +0 -0
- /package/dist/{ablation.d.ts → core/ablation.d.ts} +0 -0
- /package/dist/{ambient.d.ts → core/ambient.d.ts} +0 -0
- /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
- /package/dist/{api-errors.js → core/api-errors.js} +0 -0
- /package/dist/{card.d.ts → core/card.d.ts} +0 -0
- /package/dist/{card.js → core/card.js} +0 -0
- /package/dist/{handoff.d.ts → core/handoff.d.ts} +0 -0
- /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
- /package/dist/{physics-config.d.ts → core/physics-config.d.ts} +0 -0
- /package/dist/{physics-config.js → core/physics-config.js} +0 -0
- /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
- /package/dist/{salience.d.ts → core/salience.d.ts} +0 -0
- /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
- /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
- /package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +0 -0
- /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
- /package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +0 -0
- /package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +0 -0
- /package/dist/{cli → hooks}/hook-blocks.d.ts +0 -0
- /package/dist/{path-context.d.ts → search/path-context.d.ts} +0 -0
- /package/dist/{rrf.d.ts → search/rrf.d.ts} +0 -0
- /package/dist/{rrf.js → search/rrf.js} +0 -0
- /package/dist/{rate-limit.d.ts → server/rate-limit.d.ts} +0 -0
- /package/dist/{rate-limit.js → server/rate-limit.js} +0 -0
- /package/dist/{server-detect.d.ts → server/server-detect.d.ts} +0 -0
- /package/dist/{scope.d.ts → sharing/scope.d.ts} +0 -0
- /package/dist/{summary-dirty.js → store/summary-dirty.js} +0 -0
- /package/dist/{yaml.d.ts → store/yaml.d.ts} +0 -0
- /package/dist/{yaml.js → store/yaml.js} +0 -0
- /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
- /package/dist/{escape.js → util/escape.js} +0 -0
- /package/dist/{home-path.d.ts → util/home-path.d.ts} +0 -0
- /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
- /package/dist/{keyset.js → util/keyset.js} +0 -0
- /package/dist/{same-text.js → util/same-text.js} +0 -0
- /package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +0 -0
- /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
- /package/dist/{db → util}/sqlite-blocked.js +0 -0
- /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
- /package/dist/{tokenize.js → util/tokenize.js} +0 -0
- /package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +0 -0
- /package/dist/{transcript-tail.js → util/transcript-tail.js} +0 -0
- /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
- /package/dist/{write-budget.js → util/write-budget.js} +0 -0
package/dist/api/remember.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// Write path: remember stores one memory after secret vetting and, for untrusted content, the instruction check.
|
|
2
|
-
import {
|
|
3
|
-
import { detectInstruction } from '
|
|
4
|
-
import { quarantineScopeFor
|
|
5
|
-
import { createMemory } from '../memory.js';
|
|
6
|
-
import { loadConfig } from '../config.js';
|
|
7
|
-
import { vetSecrets } from '../secret-detect.js';
|
|
8
|
-
import { assertCallerProject } from '../project-identity.js';
|
|
9
|
-
import { BadRequestError } from '../api-errors.js';
|
|
10
|
-
import { assertClientScope, personalScopeOf } from '../recall-scope.js';
|
|
2
|
+
import { stampOriginProject } from '../store/entry-row.js';
|
|
3
|
+
import { detectInstruction } from './instruction-detect.js';
|
|
4
|
+
import { quarantineScopeFor } from '../trust/quarantine.js';
|
|
5
|
+
import { createMemory } from '../core/memory.js';
|
|
6
|
+
import { loadConfig } from '../core/config.js';
|
|
7
|
+
import { vetSecrets } from '../util/secret-detect.js';
|
|
8
|
+
import { assertCallerProject } from '../core/project-identity.js';
|
|
9
|
+
import { BadRequestError } from '../core/api-errors.js';
|
|
10
|
+
import { assertClientScope, personalScopeOf } from '../store/recall-scope.js';
|
|
11
|
+
import { andThen, notPorted, onStore } from './on-store.js';
|
|
11
12
|
/** The scope a write lands in: the caller's own personal scope when asked for, else the client's, which may not be a personal one. */
|
|
12
13
|
function rememberScope(ctx, opts) {
|
|
13
14
|
if (!opts.personal) {
|
|
@@ -24,7 +25,7 @@ function rememberScope(ctx, opts) {
|
|
|
24
25
|
}
|
|
25
26
|
return own;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
function prepareRemember(ctx, opts) {
|
|
28
29
|
if (opts.project)
|
|
29
30
|
assertCallerProject(opts.project);
|
|
30
31
|
const requestedScope = rememberScope(ctx, opts);
|
|
@@ -39,29 +40,39 @@ export function remember(ctx, opts) {
|
|
|
39
40
|
tenantId: ctx.tenantId,
|
|
40
41
|
baseHalfLifeDays: loadConfig(ctx.hippoRoot).defaultHalfLifeDays,
|
|
41
42
|
});
|
|
42
|
-
// writeEntry threads ctx.actor.subject into its internal audit hook, so exactly
|
|
43
|
-
// one 'remember' event lands in the log with the supplied actor.
|
|
44
|
-
const afterWrite = detection.flagged
|
|
45
|
-
? (db, memoryId) => {
|
|
46
|
-
recordQuarantine(db, {
|
|
47
|
-
tenantId: ctx.tenantId,
|
|
48
|
-
memoryId,
|
|
49
|
-
originalScope: requestedScope,
|
|
50
|
-
reason: detection.reason ?? 'unknown',
|
|
51
|
-
actor: ctx.actor.subject,
|
|
52
|
-
});
|
|
53
|
-
opts.afterWrite?.(db, memoryId);
|
|
54
|
-
}
|
|
55
|
-
: opts.afterWrite;
|
|
56
43
|
// Aliases only widen what a reader matches; a row has one origin. A personal row's '' follows its owner into every project.
|
|
57
44
|
const origin = opts.personal ? '' : opts.project?.name;
|
|
58
45
|
const stamped = origin !== undefined ? { ...entry, origin_project: origin } : entry;
|
|
59
|
-
|
|
46
|
+
return { entry: stamped, requestedScope, detection, warnings: vetted.warnings };
|
|
47
|
+
}
|
|
48
|
+
function rememberResult(ctx, prepared, written) {
|
|
49
|
+
const { entry, detection, warnings } = prepared;
|
|
60
50
|
const result = { id: entry.id, kind: entry.kind, tenantId: ctx.tenantId };
|
|
61
51
|
if (detection.flagged)
|
|
62
52
|
result.quarantined = { reason: detection.reason ?? 'unknown' };
|
|
63
|
-
if (
|
|
64
|
-
result.warnings =
|
|
53
|
+
if (warnings.length > 0)
|
|
54
|
+
result.warnings = [...warnings];
|
|
55
|
+
if (written?.outcome === 'duplicate')
|
|
56
|
+
result.duplicate = { memoryId: written.memoryId };
|
|
65
57
|
return result;
|
|
66
58
|
}
|
|
59
|
+
/** A flagged row's review record, which the store writes in the row's own transaction. */
|
|
60
|
+
function quarantineOf({ requestedScope, detection }) {
|
|
61
|
+
return detection.flagged ? { originalScope: requestedScope, reason: detection.reason ?? 'unknown' } : undefined;
|
|
62
|
+
}
|
|
63
|
+
/** Store one memory: the store's entryWrites group writes the row and its one remember audit row, under the caller's subject.
|
|
64
|
+
* A write that carries a connector event or untrusted content goes through connectorWrites, which commits its companion rows with it. */
|
|
65
|
+
export function remember(ctx, opts) {
|
|
66
|
+
return onStore(ctx, (port) => {
|
|
67
|
+
const entryWrites = port.entryWrites ?? notPorted(port, 'entryWrites');
|
|
68
|
+
const prepared = prepareRemember(ctx, opts);
|
|
69
|
+
// A store writes origin_project as given, so the served folder's fallback is stamped here.
|
|
70
|
+
const write = { entry: stampOriginProject(ctx.hippoRoot, prepared.entry), actor: ctx.actor.subject };
|
|
71
|
+
if (opts.untrusted !== true && opts.event === undefined)
|
|
72
|
+
return andThen(entryWrites.writeEntry(write), () => rememberResult(ctx, prepared));
|
|
73
|
+
const connectorWrites = port.connectorWrites ?? notPorted(port, 'connectorWrites');
|
|
74
|
+
const written = connectorWrites.writeConnectorEntry({ ...write, event: opts.event, quarantine: quarantineOf(prepared) });
|
|
75
|
+
return andThen(written, (outcome) => rememberResult(ctx, prepared, outcome));
|
|
76
|
+
});
|
|
77
|
+
}
|
|
67
78
|
//# sourceMappingURL=remember.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Context } from './types.js';
|
|
2
|
+
/** Binds `sessionId` to the caller's owner on first use; a session another owner holds is a 409, so the client can set it aside. */
|
|
3
|
+
export declare function bindSessionOwner(ctx: Context, sessionId: string): void;
|
|
4
|
+
//# sourceMappingURL=session-owners.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// A session id belongs to the first owner that binds it, so one developer's client cannot write into another's session.
|
|
2
|
+
import { ConflictError } from '../core/api-errors.js';
|
|
3
|
+
import { ownerOrSubject } from './types.js';
|
|
4
|
+
import { sessionOwnerOrBind } from '../store/sessions.js';
|
|
5
|
+
import { assertTenantId } from '../store/tenant.js';
|
|
6
|
+
import { DAY_MS } from '../util/time.js';
|
|
7
|
+
/** Bindings older than this are pruned when a new session binds. */
|
|
8
|
+
const BINDING_RETENTION_DAYS = 90;
|
|
9
|
+
/** Binds `sessionId` to the caller's owner on first use; a session another owner holds is a 409, so the client can set it aside. */
|
|
10
|
+
export function bindSessionOwner(ctx, sessionId) {
|
|
11
|
+
assertTenantId('bindSessionOwner', ctx.tenantId);
|
|
12
|
+
const owner = ownerOrSubject(ctx.actor);
|
|
13
|
+
const bound = sessionOwnerOrBind(ctx.hippoRoot, { tenantId: ctx.tenantId, sessionId, owner, retentionMs: BINDING_RETENTION_DAYS * DAY_MS });
|
|
14
|
+
if (bound !== owner)
|
|
15
|
+
throw new ConflictError('session id belongs to another caller');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=session-owners.js.map
|
package/dist/api/sleep-run.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { loadAllEntries } from '../store/entry-reads.js';
|
|
2
2
|
import { deleteEntry } from '../store/delete-and-batch.js';
|
|
3
|
-
import { auditMemories } from '../audit.js';
|
|
4
|
-
import { autoShare } from '../shared.js';
|
|
3
|
+
import { auditMemories } from '../store/audit.js';
|
|
4
|
+
import { autoShare } from '../sharing/shared.js';
|
|
5
5
|
import { consolidate } from '../consolidate/sleep.js';
|
|
6
|
-
import { loadConfig } from '../config.js';
|
|
7
|
-
import { deduplicateStore } from '../dedupe.js';
|
|
8
|
-
import { computeAmbientState } from '../ambient.js';
|
|
9
|
-
import { loadPendingExtractionTenants } from '../graph
|
|
10
|
-
import { type ExtractResult } from '../graph
|
|
6
|
+
import { loadConfig } from '../core/config.js';
|
|
7
|
+
import { deduplicateStore } from '../consolidate/dedupe.js';
|
|
8
|
+
import { computeAmbientState } from '../core/ambient.js';
|
|
9
|
+
import { loadPendingExtractionTenants } from '../store/graph-queue.js';
|
|
10
|
+
import { type ExtractResult } from '../graph/extract.js';
|
|
11
11
|
import type { Context } from './types.js';
|
|
12
12
|
import type { SleepOpts, SleepResult } from './sleep.js';
|
|
13
13
|
/** Test-only seam: `runSleep` overrides force a phase to throw into emitSleepAudit's `partial: true` row; production never sets them. */
|
package/dist/api/sleep-run.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// The sleep pipeline behind `sleep`, with its phase dependencies injectable; kept out of the package root.
|
|
2
|
-
import { openHippoDb, closeHippoDb } from '../db.js';
|
|
3
2
|
import { loadAllEntries } from '../store/entry-reads.js';
|
|
4
3
|
import { deleteEntry, memoriesBackingObjects } from '../store/delete-and-batch.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { reportAuditWriteFailure, auditMemories } from '../store/audit.js';
|
|
5
|
+
import { sqliteSyncStore } from '../store/sqlite/store.js';
|
|
6
|
+
import { autoShare } from '../sharing/shared.js';
|
|
7
7
|
import { consolidate } from '../consolidate/sleep.js';
|
|
8
8
|
import { failedUnitOf } from '../store/delete-and-batch.js';
|
|
9
|
-
import { loadConfig } from '../config.js';
|
|
10
|
-
import { deduplicateStore } from '../dedupe.js';
|
|
11
|
-
import { computeAmbientState } from '../ambient.js';
|
|
12
|
-
import { loadPendingExtractionTenants } from '../graph
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
9
|
+
import { loadConfig } from '../core/config.js';
|
|
10
|
+
import { deduplicateStore } from '../consolidate/dedupe.js';
|
|
11
|
+
import { computeAmbientState } from '../core/ambient.js';
|
|
12
|
+
import { loadPendingExtractionTenants, markPendingProcessedUpTo } from '../store/graph-queue.js';
|
|
13
|
+
import { extractGraphChunked } from '../graph/extract.js';
|
|
14
|
+
import { errorMessage } from '../util/log.js';
|
|
15
15
|
const DEFAULT_SLEEP_PHASES = {
|
|
16
16
|
consolidate,
|
|
17
17
|
deduplicateStore,
|
|
@@ -60,7 +60,7 @@ async function runSleepPhases(ctx, opts, phases, counts) {
|
|
|
60
60
|
if (dedupResult.removed > 0)
|
|
61
61
|
result.deduped = dedupSummary(dedupResult);
|
|
62
62
|
// Phase 3: Quality audit (remove junk, report warnings; a dry run skips rows earlier phases would remove).
|
|
63
|
-
counts.auditDeleted = runQualityAudit(ctx, phases, dryRun, consolidateResult, dedupResult, result);
|
|
63
|
+
counts.auditDeleted = runQualityAudit(ctx, phases, { dryRun, consolidateResult, dedupResult, result });
|
|
64
64
|
if (dryRun)
|
|
65
65
|
return result;
|
|
66
66
|
// Phase 4: Auto-share high-transfer-score memories to global.
|
|
@@ -80,10 +80,7 @@ function snapshotDirtyTenants(ctx, phases, dryRun) {
|
|
|
80
80
|
snapshot.dirtyTenants = phases.loadPendingExtractionTenants(ctx.hippoRoot);
|
|
81
81
|
}
|
|
82
82
|
catch (snapErr) {
|
|
83
|
-
|
|
84
|
-
// any JS value is safe (undefined if absent), preserving the existing
|
|
85
|
-
// lenient formatting even when something non-Error was thrown.
|
|
86
|
-
snapshot.error = snapErr.message;
|
|
83
|
+
snapshot.error = errorMessage(snapErr);
|
|
87
84
|
}
|
|
88
85
|
}
|
|
89
86
|
return snapshot;
|
|
@@ -118,8 +115,8 @@ function dedupSummary(dedupResult) {
|
|
|
118
115
|
crossDups,
|
|
119
116
|
};
|
|
120
117
|
}
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
function runQualityAudit(ctx, phases, options) {
|
|
119
|
+
const { dryRun, consolidateResult, dedupResult, result } = options;
|
|
123
120
|
const planned = new Set(dryRun ? [...(consolidateResult.removedIds ?? []), ...dedupResult.pairs.map((p) => p.removed)] : []);
|
|
124
121
|
const allEntries = phases.loadAllEntries(ctx.hippoRoot).filter((e) => !planned.has(e.id));
|
|
125
122
|
const auditOut = phases.auditMemories(allEntries, memoriesBackingObjects(ctx.hippoRoot));
|
|
@@ -180,49 +177,45 @@ async function drainGraphQueue(ctx, phases, snapshot, result) {
|
|
|
180
177
|
`graph: dirty-tenant snapshot failed (skipped graph refresh): ${snapshot.error}`,
|
|
181
178
|
];
|
|
182
179
|
}
|
|
183
|
-
|
|
184
|
-
let gEntities = 0;
|
|
185
|
-
let gRelations = 0;
|
|
180
|
+
const rebuilt = { tenants: 0, entities: 0, relations: 0 };
|
|
186
181
|
// dirtyTenants was snapshotted before the memory-deleting phases above.
|
|
187
182
|
for (const { tenantId, maxPendingId } of snapshot.dirtyTenants) {
|
|
188
|
-
|
|
189
|
-
const ext = await phases.extractGraph(ctx.hippoRoot, tenantId);
|
|
190
|
-
// Count the rebuild as soon as it succeeds — it happened regardless of
|
|
191
|
-
// the drain-mark below.
|
|
192
|
-
gTenants += 1;
|
|
193
|
-
gEntities += ext.entities;
|
|
194
|
-
gRelations += ext.relations;
|
|
195
|
-
if (ext.skipped) {
|
|
196
|
-
result.details = [
|
|
197
|
-
...(result.details ?? []),
|
|
198
|
-
`graph: ${ext.skipped} stale op(s) skipped for a tenant; the next sleep redoes them`,
|
|
199
|
-
];
|
|
200
|
-
}
|
|
201
|
-
// Watermark drain: only items enqueued before this rebuild started are marked; later arrivals stay pending.
|
|
202
|
-
// Marked only after the last chunk, so a run stopped between chunks leaves the tenant for the next one.
|
|
203
|
-
markPendingProcessedUpTo(ctx.hippoRoot, tenantId, maxPendingId);
|
|
204
|
-
}
|
|
205
|
-
catch (tenantErr) {
|
|
206
|
-
// SAFETY: this is a best-effort log message only; property access
|
|
207
|
-
// on any JS value is safe (undefined if absent), preserving the
|
|
208
|
-
// existing lenient formatting even when something non-Error was thrown.
|
|
209
|
-
result.details = [
|
|
210
|
-
...(result.details ?? []),
|
|
211
|
-
`graph: extract failed for a dirty tenant (left pending): ${tenantErr.message}`,
|
|
212
|
-
];
|
|
213
|
-
}
|
|
183
|
+
await rebuildDirtyTenant(ctx, phases, { tenantId, maxPendingId }, rebuilt, result);
|
|
214
184
|
}
|
|
215
|
-
if (
|
|
216
|
-
result.graph =
|
|
185
|
+
if (rebuilt.tenants > 0) {
|
|
186
|
+
result.graph = rebuilt;
|
|
217
187
|
}
|
|
218
188
|
}
|
|
219
189
|
catch (graphErr) {
|
|
220
|
-
// SAFETY: this is a best-effort log message only; property access on
|
|
221
|
-
// any JS value is safe (undefined if absent), preserving the existing
|
|
222
|
-
// lenient formatting even when something non-Error was thrown.
|
|
223
190
|
result.details = [
|
|
224
191
|
...(result.details ?? []),
|
|
225
|
-
`graph: drain phase failed (skipped): ${graphErr
|
|
192
|
+
`graph: drain phase failed (skipped): ${errorMessage(graphErr)}`,
|
|
193
|
+
];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/** Rebuilds one dirty tenant's graph into `rebuilt` and drains its queue; a failure is a detail line and the tenant stays pending. */
|
|
197
|
+
async function rebuildDirtyTenant(ctx, phases, dirty, rebuilt, result) {
|
|
198
|
+
try {
|
|
199
|
+
const ext = await phases.extractGraph(ctx.hippoRoot, dirty.tenantId);
|
|
200
|
+
// Count the rebuild as soon as it succeeds — it happened regardless of
|
|
201
|
+
// the drain-mark below.
|
|
202
|
+
rebuilt.tenants += 1;
|
|
203
|
+
rebuilt.entities += ext.entities;
|
|
204
|
+
rebuilt.relations += ext.relations;
|
|
205
|
+
if (ext.skipped) {
|
|
206
|
+
result.details = [
|
|
207
|
+
...(result.details ?? []),
|
|
208
|
+
`graph: ${ext.skipped} stale op(s) skipped for a tenant; the next sleep redoes them`,
|
|
209
|
+
];
|
|
210
|
+
}
|
|
211
|
+
// Watermark drain: only items enqueued before this rebuild started are marked; later arrivals stay pending.
|
|
212
|
+
// Marked only after the last chunk, so a run stopped between chunks leaves the tenant for the next one.
|
|
213
|
+
markPendingProcessedUpTo(ctx.hippoRoot, dirty.tenantId, dirty.maxPendingId);
|
|
214
|
+
}
|
|
215
|
+
catch (tenantErr) {
|
|
216
|
+
result.details = [
|
|
217
|
+
...(result.details ?? []),
|
|
218
|
+
`graph: extract failed for a dirty tenant (left pending): ${errorMessage(tenantErr)}`,
|
|
226
219
|
];
|
|
227
220
|
}
|
|
228
221
|
}
|
|
@@ -230,34 +223,29 @@ async function drainGraphQueue(ctx, phases, snapshot, result) {
|
|
|
230
223
|
// Its own handle; an audit failure is logged and never replaces the original phase error.
|
|
231
224
|
function emitSleepAudit(ctx, opts, dryRun, counts, phaseError) {
|
|
232
225
|
try {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
appendAuditEvent(db, {
|
|
226
|
+
// Tagged '__host__' because sleep is host-wide; the actor still names the operator who ran it.
|
|
227
|
+
const sleepAuditMetadata = {
|
|
228
|
+
consolidationCount: counts.consolidation,
|
|
229
|
+
dedupCount: counts.dedup,
|
|
230
|
+
auditDeletedCount: counts.auditDeleted,
|
|
231
|
+
ambientTotal: counts.ambient,
|
|
232
|
+
dryRun,
|
|
233
|
+
noShare: opts.noShare ?? false,
|
|
234
|
+
partial: phaseError !== null,
|
|
235
|
+
triggeredByTenant: ctx.tenantId, // preserve for audit forensics
|
|
236
|
+
};
|
|
237
|
+
if (phaseError)
|
|
238
|
+
sleepAuditMetadata.errorMessage = phaseError.message;
|
|
239
|
+
// A flush stopped between chunks names the unit it would have committed next, so a unit that fails every night can be found.
|
|
240
|
+
const nextUnitIds = failedUnitOf(phaseError);
|
|
241
|
+
if (nextUnitIds)
|
|
242
|
+
sleepAuditMetadata.nextUnitIds = nextUnitIds;
|
|
243
|
+
sqliteSyncStore(ctx.hippoRoot).appendAuditEvents([{
|
|
252
244
|
tenantId: '__host__',
|
|
253
245
|
actor: ctx.actor.subject,
|
|
254
246
|
op: 'consolidate',
|
|
255
247
|
metadata: { ...sleepAuditMetadata },
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
finally {
|
|
259
|
-
closeHippoDb(db);
|
|
260
|
-
}
|
|
248
|
+
}]);
|
|
261
249
|
}
|
|
262
250
|
catch (auditErr) {
|
|
263
251
|
// Logged, never thrown: a second failure must not mask the original phaseError.
|
package/dist/api/sleep.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AmbientState } from '../ambient.js';
|
|
1
|
+
import type { AmbientState } from '../core/ambient.js';
|
|
2
2
|
import type { Context } from './types.js';
|
|
3
3
|
/** Options for `sleep`, one consolidation cycle on a SQLite store that returns counts; unlike `hippo sleep` it skips the auto-learn step. */
|
|
4
4
|
export interface SleepOpts {
|
package/dist/api/tokens.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { TokenSummary, TokenSurface } from '../store/token-ledger.js';
|
|
2
|
+
import type { FailureSummary } from '../store/failure-log.js';
|
|
3
3
|
import type { Context } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Record memory text handed to an agent in the token ledger.
|
package/dist/api/tokens.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Token-use and failure reports.
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { rethrowIfSqliteBlocked } from '../db/index.js';
|
|
3
|
+
import { storeFor } from '../store/index.js';
|
|
4
|
+
import { failureLogSummary, tokenUseSummary } from '../store/usage-reports.js';
|
|
5
|
+
import { errorMessage, log } from '../util/log.js';
|
|
6
|
+
import { DAY_MS } from '../util/time.js';
|
|
7
7
|
/**
|
|
8
8
|
* Record memory text handed to an agent in the token ledger.
|
|
9
9
|
* Best-effort: never throws, because a ledger failure must not fail the
|
|
@@ -22,7 +22,7 @@ export async function recordTokens(ctx, surface, use) {
|
|
|
22
22
|
}
|
|
23
23
|
catch (err) {
|
|
24
24
|
rethrowIfSqliteBlocked(err);
|
|
25
|
-
log.warnThenDebug('api-token-ledger', `token ledger write failed; the reply is unaffected: ${
|
|
25
|
+
log.warnThenDebug('api-token-ledger', `token ledger write failed; the reply is unaffected: ${errorMessage(err)}`);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
@@ -31,26 +31,14 @@ export async function recordTokens(ctx, surface, use) {
|
|
|
31
31
|
* surface, with session counts and mean tokens per session.
|
|
32
32
|
*/
|
|
33
33
|
export function tokenSummary(ctx, opts = {}) {
|
|
34
|
-
|
|
35
|
-
try {
|
|
36
|
-
return summarizeTokenUse(db, ctx.tenantId, reportWindowStart(opts.days));
|
|
37
|
-
}
|
|
38
|
-
finally {
|
|
39
|
-
closeHippoDb(db);
|
|
40
|
-
}
|
|
34
|
+
return tokenUseSummary(ctx.hippoRoot, ctx.tenantId, reportWindowStart(opts.days));
|
|
41
35
|
}
|
|
42
36
|
/** Failed tool calls by outcome, and repeats across sessions, over the last `days` days (default 30). */
|
|
43
37
|
export function failureSummary(ctx, opts = {}) {
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
return summarizeFailures(db, ctx.tenantId, reportWindowStart(opts.days));
|
|
47
|
-
}
|
|
48
|
-
finally {
|
|
49
|
-
closeHippoDb(db);
|
|
50
|
-
}
|
|
38
|
+
return failureLogSummary(ctx.hippoRoot, ctx.tenantId, reportWindowStart(opts.days));
|
|
51
39
|
}
|
|
52
40
|
function reportWindowStart(days) {
|
|
53
41
|
const span = days !== undefined && Number.isFinite(days) && days > 0 ? days : 30;
|
|
54
|
-
return new Date(Date.now() - span *
|
|
42
|
+
return new Date(Date.now() - span * DAY_MS).toISOString();
|
|
55
43
|
}
|
|
56
44
|
//# sourceMappingURL=tokens.js.map
|
package/dist/api/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BadRequestError } from '../api-errors.js';
|
|
2
|
-
import type { HippoStore } from '../store
|
|
1
|
+
import { BadRequestError } from '../core/api-errors.js';
|
|
2
|
+
import type { HippoStore } from '../store/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Actor identity + authorization role for a Context.
|
|
5
5
|
*
|
package/dist/api/types.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Request context (caller identity and tenant) shared by every API module, plus the recall contract error.
|
|
2
|
-
import { BadRequestError } from '../api-errors.js';
|
|
2
|
+
import { BadRequestError } from '../core/api-errors.js';
|
|
3
3
|
/**
|
|
4
4
|
* Helper for building process-local Actor values (admin and host admin),
|
|
5
5
|
* used by CLI and CLI-run connector Context constructors so the role
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Context } from '../api/types.js';
|
|
2
|
-
import { type DatabaseSyncLike } from '../db.js';
|
|
3
|
-
import { type CallerProject } from '../prompt-hook.js';
|
|
2
|
+
import { type DatabaseSyncLike } from '../db/index.js';
|
|
3
|
+
import { type CallerProject } from '../api/prompt-hook.js';
|
|
4
4
|
import type { ContinuityKey } from '../store/sessions.js';
|
|
5
5
|
import { type WorkingState } from './working-state.js';
|
|
6
6
|
/** Checks the ids, then binds the session to the caller's owner (a ConflictError when another owner holds it). Returns the key the call's rows go under. */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// The checks every caller call shares: ids, project, the session's owner and the pilot arm, all from the request, never the server's env or folder.
|
|
2
|
-
import { BadRequestError } from '../api-errors.js';
|
|
2
|
+
import { BadRequestError } from '../core/api-errors.js';
|
|
3
3
|
import { ownerOrSubject } from '../api/types.js';
|
|
4
|
-
import { closeHippoDb, openHippoDb } from '../db.js';
|
|
5
|
-
import { MAX_ID_LEN } from '../http-util.js';
|
|
6
|
-
import { sessionPilotArm } from '../pilot-arm.js';
|
|
7
|
-
import { assertCallerIds } from '../prompt-hook.js';
|
|
8
|
-
import { assertCallerProject, projectNames } from '../project-identity.js';
|
|
9
|
-
import { maskEmails, redactSecretsStrict } from '../secret-detect.js';
|
|
10
|
-
import { bindSessionOwner } from '../session-owners.js';
|
|
4
|
+
import { closeHippoDb, openHippoDb } from '../db/index.js';
|
|
5
|
+
import { MAX_ID_LEN } from '../util/http-util.js';
|
|
6
|
+
import { sessionPilotArm } from '../api/pilot-arm.js';
|
|
7
|
+
import { assertCallerIds } from '../api/prompt-hook.js';
|
|
8
|
+
import { assertCallerProject, projectNames } from '../core/project-identity.js';
|
|
9
|
+
import { maskEmails, redactSecretsStrict } from '../util/secret-detect.js';
|
|
10
|
+
import { bindSessionOwner } from '../api/session-owners.js';
|
|
11
11
|
import { fitWorkingState, WORKING_STATE_CAPS } from './working-state.js';
|
|
12
12
|
/** Checks the ids, then binds the session to the caller's owner (a ConflictError when another owner holds it). Returns the key the call's rows go under. */
|
|
13
13
|
export function bindCaller(ctx, sessionId, project) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type CaptureErrorOutcome } from '
|
|
2
|
-
import type { JsonValue } from '
|
|
1
|
+
import { type CaptureErrorOutcome } from '../store/failure-log.js';
|
|
2
|
+
import type { JsonValue } from '../util/json.js';
|
|
3
3
|
/** Store a failure as an error memory unless it is routine or a repeat, and log it either way, even when storing throws. */
|
|
4
4
|
export declare function captureToolFailure(hippoRoot: string, tenantId: string, payload: JsonValue): CaptureErrorOutcome;
|
|
5
5
|
/** Who sent a failure from another machine: the audit actor and the project its lesson and repeat check belong to. */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// `hippo capture-error`, run by the Claude Code PostToolUseFailure hook: routine failures and repeats are not
|
|
2
2
|
// stored, because error memories decay slowly and would crowd out real lessons; what is stored stays `observed`
|
|
3
3
|
// until outcome feedback confirms it. Every failure, stored or not, goes to the failure log.
|
|
4
|
-
import { createMemory } from '
|
|
5
|
-
import { writeEntry } from '
|
|
6
|
-
import { loadContentsWithTag } from '
|
|
7
|
-
import { loadConfig } from '
|
|
8
|
-
import { closeHippoDb, openHippoDb } from '
|
|
9
|
-
import { recordFailure } from '
|
|
10
|
-
import { failureHash, failureSignature, lessonFromFailure, payloadString, } from './
|
|
4
|
+
import { createMemory } from '../core/memory.js';
|
|
5
|
+
import { writeEntry } from '../store/entry-writes.js';
|
|
6
|
+
import { loadContentsWithTag } from '../store/entry-reads.js';
|
|
7
|
+
import { loadConfig } from '../core/config.js';
|
|
8
|
+
import { closeHippoDb, openHippoDb } from '../db/index.js';
|
|
9
|
+
import { recordFailure } from '../store/failure-log.js';
|
|
10
|
+
import { failureHash, failureSignature, lessonFromFailure, payloadString, } from './failure-reading.js';
|
|
11
11
|
/** Store a failure as an error memory unless it is routine or a repeat, and log it either way, even when storing throws. */
|
|
12
12
|
export function captureToolFailure(hippoRoot, tenantId, payload) {
|
|
13
13
|
const lesson = lessonFromFailure(payload);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Files named by a Codex apply_patch call, read the way openai/codex codex-rs/apply-patch reads them
|
|
2
2
|
// (parser.rs for the body, invocation.rs for the shell forms it runs as apply_patch).
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import { isStringValue } from '
|
|
4
|
+
import { isStringValue } from '../core/capture-contract.js';
|
|
5
5
|
/** Codex prints this line only when a patch applied (apply-patch lib.rs). */
|
|
6
6
|
export const PATCH_SUCCESS_LINE = 'Success. Updated the following files:';
|
|
7
7
|
const BEGIN_PATCH = '*** Begin Patch';
|