hippo-memory 1.70.0 → 1.72.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 +2 -2
- package/dist/agent-memories/apply.d.ts +0 -11
- package/dist/agent-memories/apply.js +6 -21
- package/dist/agent-memories/claude-code.d.ts +4 -2
- package/dist/agent-memories/claude-code.js +15 -6
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/copilot.d.ts +1 -3
- package/dist/agent-memories/copilot.js +1 -17
- package/dist/agent-memories/files.js +23 -12
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/project-folds.d.ts +10 -0
- package/dist/agent-memories/project-folds.js +34 -0
- package/dist/agent-memories/report.js +2 -1
- package/dist/agent-memories/sync.d.ts +4 -2
- package/dist/agent-memories/sync.js +18 -11
- package/dist/api/assemble.d.ts +7 -44
- package/dist/api/assemble.js +3 -23
- package/dist/api/audit.d.ts +33 -1
- package/dist/api/audit.js +48 -1
- package/dist/api/auth.d.ts +20 -26
- package/dist/api/auth.js +43 -29
- package/dist/api/auto-sleep.d.ts +5 -2
- package/dist/api/auto-sleep.js +9 -5
- package/dist/api/availability.d.ts +2 -15
- package/dist/api/availability.js +4 -18
- package/dist/api/cards.d.ts +42 -0
- package/dist/api/cards.js +52 -0
- package/dist/api/conflicts.d.ts +28 -0
- package/dist/api/conflicts.js +61 -0
- package/dist/api/context-render.js +4 -3
- package/dist/api/context-select.js +12 -15
- package/dist/api/context-types.d.ts +10 -35
- package/dist/api/context.d.ts +5 -22
- package/dist/api/context.js +38 -46
- package/dist/api/continuity.d.ts +47 -0
- package/dist/api/continuity.js +66 -0
- package/dist/{cli → api}/correction-latency.d.ts +2 -14
- package/dist/{cli → api}/correction-latency.js +2 -14
- package/dist/api/dormant.d.ts +5 -21
- package/dist/api/dormant.js +11 -28
- package/dist/api/drill-down.d.ts +7 -46
- package/dist/api/drill-down.js +6 -27
- package/dist/api/embeddings.d.ts +17 -0
- package/dist/api/embeddings.js +28 -0
- package/dist/api/error-reply.d.ts +8 -0
- package/dist/api/error-reply.js +21 -0
- package/dist/api/forget.d.ts +11 -26
- package/dist/api/forget.js +23 -35
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +5 -9
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +6 -2
- package/dist/api/index.js +6 -2
- package/dist/api/instruction-detect.js +21 -6
- package/dist/api/learn.d.ts +4 -0
- package/dist/api/learn.js +53 -27
- package/dist/api/ledger-db.d.ts +2 -5
- package/dist/api/ledger-db.js +5 -35
- package/dist/api/memories.d.ts +23 -0
- package/dist/api/memories.js +46 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.js +5 -3
- package/dist/api/outcome.js +1 -1
- package/dist/api/pilot-arm.d.ts +1 -11
- package/dist/api/pilot-arm.js +5 -45
- package/dist/api/predictions.d.ts +11 -0
- package/dist/api/predictions.js +24 -0
- package/dist/api/projects.d.ts +21 -0
- package/dist/api/projects.js +24 -0
- package/dist/api/promote.d.ts +13 -17
- package/dist/api/promote.js +12 -20
- package/dist/api/prompt-hook.d.ts +19 -6
- package/dist/api/prompt-hook.js +54 -13
- package/dist/api/provenance-coverage.d.ts +14 -0
- package/dist/{cli → api}/provenance-coverage.js +2 -6
- package/dist/api/recall-cli.d.ts +58 -0
- package/dist/api/recall-cli.js +103 -0
- package/dist/api/recall-core.js +17 -9
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +17 -84
- package/dist/api/recall-history.js +15 -88
- package/dist/api/recall-pipeline.d.ts +2 -3
- package/dist/api/recall-pipeline.js +21 -15
- package/dist/api/recall-request.js +1 -1
- package/dist/api/recall-types.d.ts +64 -304
- package/dist/api/recall.d.ts +3 -34
- package/dist/api/recall.js +63 -89
- package/dist/api/refine.d.ts +7 -0
- package/dist/api/refine.js +10 -0
- package/dist/api/remember-local.d.ts +57 -0
- package/dist/api/remember-local.js +90 -0
- package/dist/api/remember.d.ts +20 -2
- package/dist/api/remember.js +16 -3
- package/dist/api/session-end.d.ts +22 -0
- package/dist/api/session-end.js +101 -0
- package/dist/api/sleep-run.d.ts +2 -4
- package/dist/api/sleep-run.js +28 -28
- package/dist/api/sleep.d.ts +9 -28
- package/dist/api/status.d.ts +24 -0
- package/dist/api/status.js +40 -0
- package/dist/api/store-init.d.ts +4 -0
- package/dist/api/store-init.js +9 -0
- package/dist/api/tokens.d.ts +3 -10
- package/dist/api/tokens.js +4 -11
- package/dist/api/types.d.ts +8 -29
- package/dist/api/types.js +10 -23
- package/dist/capture/caller-session.d.ts +0 -3
- package/dist/capture/caller-session.js +1 -12
- package/dist/capture/capture-error.d.ts +2 -2
- package/dist/capture/capture-error.js +23 -18
- package/dist/capture/codex-patch.js +3 -1
- package/dist/capture/command.d.ts +4 -12
- package/dist/capture/command.js +39 -114
- package/dist/capture/compact.d.ts +4 -15
- package/dist/capture/compact.js +26 -30
- package/dist/capture/compaction-items-caller.js +11 -20
- package/dist/capture/compaction-record.d.ts +7 -93
- package/dist/capture/compaction-record.js +34 -399
- package/dist/capture/compaction-spool.d.ts +5 -3
- package/dist/capture/compaction-spool.js +21 -7
- package/dist/capture/copilot-transcript.d.ts +2 -1
- package/dist/capture/copilot-transcript.js +2 -1
- package/dist/capture/extract.d.ts +5 -2
- package/dist/capture/extract.js +4 -3
- package/dist/capture/failure-caller.d.ts +1 -1
- package/dist/capture/failure-caller.js +21 -16
- package/dist/capture/failure-reading.d.ts +2 -1
- package/dist/capture/failure-reading.js +7 -9
- package/dist/capture/pre-compact-caller.js +5 -4
- package/dist/capture/session-digest.d.ts +1 -1
- package/dist/capture/session-digest.js +17 -10
- package/dist/capture/session-end-caller.js +2 -1
- package/dist/capture/session-worker.js +3 -4
- package/dist/capture/transcript.d.ts +4 -11
- package/dist/capture/transcript.js +10 -21
- package/dist/capture/working-state.d.ts +4 -2
- package/dist/capture/working-state.js +4 -2
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +1 -59
- package/dist/cli/audit-prune.js +2 -61
- package/dist/cli/audit.d.ts +1 -1
- package/dist/cli/audit.js +42 -43
- package/dist/cli/auth.d.ts +2 -2
- package/dist/cli/auth.js +61 -44
- package/dist/cli/briefs.d.ts +1 -4
- package/dist/cli/briefs.js +42 -301
- package/dist/cli/card.d.ts +2 -2
- package/dist/cli/card.js +63 -56
- package/dist/cli/client.d.ts +12 -27
- package/dist/cli/client.js +41 -44
- package/dist/cli/compact-resume-payload.js +4 -3
- package/dist/cli/context.d.ts +2 -3
- package/dist/cli/context.js +22 -18
- package/dist/cli/continuity.d.ts +6 -6
- package/dist/cli/continuity.js +81 -86
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +88 -116
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +55 -34
- package/dist/cli/decisions.d.ts +2 -4
- package/dist/cli/decisions.js +18 -309
- package/dist/cli/eval.d.ts +1 -1
- package/dist/cli/eval.js +27 -26
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +2 -3
- package/dist/cli/explain.js +25 -27
- package/dist/cli/flag-values.d.ts +6 -1
- package/dist/cli/flag-values.js +42 -15
- package/dist/cli/flags.d.ts +0 -288
- package/dist/cli/flags.js +3 -138
- package/dist/cli/github.d.ts +14 -0
- package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
- package/dist/cli/goals.d.ts +2 -2
- package/dist/cli/goals.js +46 -50
- package/dist/cli/graph.d.ts +3 -0
- package/dist/cli/graph.js +83 -0
- package/dist/cli/hook-runtime.d.ts +12 -32
- package/dist/cli/hook-runtime.js +21 -64
- package/dist/cli/incidents.d.ts +3 -0
- package/dist/cli/incidents.js +112 -0
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +33 -30
- package/dist/cli/install-steps.d.ts +2 -1
- package/dist/cli/install-steps.js +13 -14
- package/dist/cli/last-sleep.d.ts +2 -1
- package/dist/cli/last-sleep.js +4 -1
- package/dist/cli/lenient-id.d.ts +2 -0
- package/dist/cli/lenient-id.js +13 -0
- package/dist/cli/maintenance.d.ts +5 -5
- package/dist/cli/maintenance.js +37 -43
- package/dist/cli/notes.d.ts +2 -0
- package/dist/cli/notes.js +41 -0
- package/dist/cli/object-verbs.js +4 -3
- package/dist/cli/open-browser.d.ts +14 -0
- package/dist/cli/open-browser.js +26 -0
- package/dist/cli/owner-validation.d.ts +5 -28
- package/dist/cli/owner-validation.js +5 -28
- package/dist/cli/playbooks.d.ts +3 -4
- package/dist/cli/playbooks.js +131 -300
- package/dist/cli/predictions.d.ts +3 -0
- package/dist/cli/predictions.js +175 -0
- package/dist/cli/print.d.ts +2 -5
- package/dist/cli/print.js +3 -5
- package/dist/cli/projects.d.ts +2 -2
- package/dist/cli/projects.js +31 -25
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.d.ts +2 -4
- package/dist/cli/recall.js +67 -137
- package/dist/cli/refine-llm.d.ts +5 -31
- package/dist/cli/refine-llm.js +23 -50
- package/dist/cli/remember.d.ts +3 -3
- package/dist/cli/remember.js +134 -192
- package/dist/cli/scheduler.d.ts +2 -17
- package/dist/cli/scheduler.js +14 -19
- package/dist/cli/serve.js +23 -14
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +143 -214
- package/dist/cli/setup.d.ts +4 -4
- package/dist/cli/setup.js +35 -30
- package/dist/cli/shared.d.ts +7 -25
- package/dist/cli/shared.js +17 -60
- package/dist/cli/slack.d.ts +2 -2
- package/dist/cli/slack.js +19 -23
- package/dist/cli/sleep-render.js +6 -3
- package/dist/cli/sleep.d.ts +3 -2
- package/dist/cli/sleep.js +17 -49
- package/dist/cli/status.d.ts +11 -14
- package/dist/cli/status.js +74 -120
- package/dist/cli/stdin.d.ts +4 -6
- package/dist/cli/stdin.js +2 -3
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +87 -108
- package/dist/cli/usage.d.ts +0 -79
- package/dist/cli/usage.js +1 -689
- package/dist/cli/verb-row.d.ts +32 -0
- package/dist/cli/verb-row.js +6 -0
- package/dist/cli/verbs/health.d.ts +27 -0
- package/dist/cli/verbs/health.js +232 -0
- package/dist/cli/verbs/memory.d.ts +16 -0
- package/dist/cli/verbs/memory.js +244 -0
- package/dist/cli/verbs/objects.d.ts +20 -0
- package/dist/cli/verbs/objects.js +254 -0
- package/dist/cli/verbs/sessions.d.ts +31 -0
- package/dist/cli/verbs/sessions.js +312 -0
- package/dist/cli/verbs.d.ts +81 -0
- package/dist/cli/verbs.js +7 -0
- package/dist/cli/versioned-verbs.d.ts +51 -0
- package/dist/cli/versioned-verbs.js +79 -0
- package/dist/cli.d.ts +1 -654
- package/dist/cli.js +44 -510
- package/dist/connectors/dlq.d.ts +39 -3
- package/dist/connectors/dlq.js +37 -3
- package/dist/connectors/github/backfill.d.ts +5 -25
- package/dist/connectors/github/backfill.js +26 -52
- package/dist/connectors/github/deletion.d.ts +4 -18
- package/dist/connectors/github/deletion.js +2 -15
- package/dist/connectors/github/dlq.d.ts +8 -33
- package/dist/connectors/github/dlq.js +34 -93
- package/dist/connectors/github/ingest.d.ts +4 -12
- package/dist/connectors/github/ingest.js +5 -36
- package/dist/connectors/github/octokit-client.d.ts +4 -16
- package/dist/connectors/github/octokit-client.js +27 -24
- package/dist/connectors/github/ratelimit.d.ts +3 -14
- package/dist/connectors/github/ratelimit.js +3 -14
- package/dist/connectors/github/scope.d.ts +3 -5
- package/dist/connectors/github/scope.js +3 -5
- package/dist/connectors/github/signature.d.ts +4 -26
- package/dist/connectors/github/signature.js +4 -26
- package/dist/connectors/github/tenant-routing.d.ts +2 -24
- package/dist/connectors/github/tenant-routing.js +4 -26
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +3 -15
- package/dist/connectors/github/types.js +2 -9
- package/dist/connectors/github/webhook.d.ts +3 -16
- package/dist/connectors/github/webhook.js +38 -23
- package/dist/connectors/ingest.d.ts +10 -0
- package/dist/connectors/ingest.js +28 -0
- package/dist/connectors/slack/backfill.d.ts +4 -17
- package/dist/connectors/slack/backfill.js +4 -13
- package/dist/connectors/slack/dlq.d.ts +2 -19
- package/dist/connectors/slack/dlq.js +51 -90
- package/dist/connectors/slack/ingest.d.ts +4 -9
- package/dist/connectors/slack/ingest.js +4 -30
- package/dist/connectors/slack/scope.d.ts +2 -8
- package/dist/connectors/slack/scope.js +2 -8
- package/dist/connectors/slack/signature.d.ts +1 -6
- package/dist/connectors/slack/tenant-routing.d.ts +2 -19
- package/dist/connectors/slack/tenant-routing.js +2 -21
- package/dist/connectors/slack/transform.d.ts +2 -18
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +3 -9
- package/dist/connectors/slack/types.js +2 -4
- package/dist/connectors/slack/web-client.js +33 -27
- package/dist/connectors/slack/webhook.d.ts +3 -19
- package/dist/connectors/slack/webhook.js +6 -26
- package/dist/connectors/slack/workspaces.d.ts +4 -24
- package/dist/connectors/slack/workspaces.js +4 -24
- package/dist/consolidate/conflicts.js +7 -15
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/consolidate/dag.d.ts +5 -28
- package/dist/consolidate/dag.js +29 -84
- package/dist/consolidate/decay.js +7 -19
- package/dist/consolidate/dedupe.d.ts +13 -52
- package/dist/consolidate/dedupe.js +18 -74
- package/dist/consolidate/flush-units.d.ts +3 -4
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +3 -26
- package/dist/consolidate/half-life-migration.js +11 -28
- package/dist/consolidate/llm-passes.js +49 -40
- package/dist/consolidate/memory-value-weights.d.ts +2 -13
- package/dist/consolidate/memory-value-weights.js +2 -13
- package/dist/consolidate/memory-value.d.ts +11 -84
- package/dist/consolidate/memory-value.js +18 -105
- package/dist/consolidate/merge.js +12 -33
- package/dist/consolidate/physics-pass.d.ts +6 -1
- package/dist/consolidate/physics-pass.js +27 -9
- package/dist/consolidate/replay.d.ts +6 -38
- package/dist/consolidate/replay.js +25 -56
- package/dist/consolidate/run.js +1 -1
- package/dist/consolidate/sleep.d.ts +1 -8
- package/dist/consolidate/sleep.js +13 -22
- package/dist/consolidate/trace.d.ts +3 -18
- package/dist/consolidate/trace.js +3 -18
- package/dist/consolidate/traces.js +9 -25
- package/dist/core/ablation.d.ts +14 -91
- package/dist/core/ablation.js +16 -91
- package/dist/core/active-scope.d.ts +7 -0
- package/dist/{sharing/scope.js → core/active-scope.js} +5 -12
- package/dist/core/ambient.d.ts +5 -8
- package/dist/core/ambient.js +40 -26
- package/dist/core/api-errors.d.ts +16 -0
- package/dist/core/api-errors.js +20 -0
- package/dist/core/capture-contract.d.ts +4 -2
- package/dist/core/capture-contract.js +4 -2
- package/dist/core/card.d.ts +4 -1
- package/dist/core/card.js +11 -1
- package/dist/core/compaction-timing.d.ts +7 -0
- package/dist/core/compaction-timing.js +9 -0
- package/dist/core/compare.d.ts +11 -67
- package/dist/core/compare.js +9 -63
- package/dist/core/config.d.ts +10 -24
- package/dist/core/config.js +20 -16
- package/dist/core/cosine.d.ts +3 -0
- package/dist/core/cosine.js +19 -0
- package/dist/core/handoff.d.ts +1 -7
- package/dist/core/handoff.js +1 -7
- package/dist/core/markdown.d.ts +6 -0
- package/dist/{store → core}/markdown.js +23 -22
- package/dist/core/memory-audit.d.ts +17 -0
- package/dist/core/memory-audit.js +54 -0
- package/dist/core/memory-quality.js +1 -1
- package/dist/core/memory.d.ts +51 -168
- package/dist/core/memory.js +76 -239
- package/dist/{consolidate → core}/merged-row.d.ts +1 -1
- package/dist/{consolidate → core}/merged-row.js +3 -2
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/core/physics-config.d.ts +1 -4
- package/dist/core/physics-config.js +3 -8
- package/dist/core/physics.d.ts +15 -61
- package/dist/core/physics.js +65 -138
- package/dist/core/prediction.d.ts +3 -0
- package/dist/core/prediction.js +6 -0
- package/dist/core/project-identity.d.ts +20 -58
- package/dist/core/project-identity.js +27 -39
- package/dist/core/project-remote.js +13 -2
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/core/recall-scope.d.ts +69 -0
- package/dist/core/recall-scope.js +138 -0
- package/dist/core/salience.d.ts +1 -7
- package/dist/core/salience.js +1 -7
- package/dist/dashboard/dashboard-actions.js +2 -2
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
- package/dist/dashboard/dashboard-snapshot.js +11 -2
- package/dist/dashboard/dashboard-types.d.ts +2 -1
- package/dist/dashboard/dashboard.d.ts +1 -0
- package/dist/dashboard/dashboard.js +50 -4
- package/dist/db/busy.d.ts +3 -8
- package/dist/db/busy.js +37 -33
- package/dist/db/connect.js +7 -8
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.js +3 -3
- package/dist/db/migrate.js +3 -3
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -5
- package/dist/db/migrations/v14.js +2 -3
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +2 -3
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +2 -7
- package/dist/db/migrations/v22.js +4 -17
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +2 -4
- package/dist/db/migrations/v25.js +3 -8
- package/dist/db/migrations/v26.js +2 -13
- package/dist/db/migrations/v27.js +3 -11
- package/dist/db/migrations/v28.js +2 -14
- package/dist/db/migrations/v29.js +4 -18
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +2 -15
- package/dist/db/migrations/v32.js +4 -22
- package/dist/db/migrations/v33.js +2 -15
- package/dist/db/migrations/v34.js +2 -11
- package/dist/db/migrations/v35.js +2 -11
- package/dist/db/migrations/v36.js +2 -11
- package/dist/db/migrations/v37.js +8 -33
- package/dist/db/migrations/v38.js +5 -38
- package/dist/db/migrations/v39.js +9 -20
- package/dist/db/migrations/v40.js +2 -9
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +1 -1
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v55.d.ts +3 -0
- package/dist/db/migrations/v55.js +17 -0
- package/dist/db/open.d.ts +2 -2
- package/dist/db/open.js +21 -9
- package/dist/db/physics-state.d.ts +6 -22
- package/dist/db/physics-state.js +28 -39
- package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
- package/dist/db/raw-archive-mirror-cleanup.js +2 -17
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -2
- package/dist/db/vector-store.d.ts +2 -0
- package/dist/db/vector-store.js +25 -5
- package/dist/db/wal-checkpointer.js +2 -1
- package/dist/doctor.js +85 -27
- package/dist/embeddings/local.d.ts +62 -0
- package/dist/embeddings/local.js +146 -0
- package/dist/embeddings/provider.d.ts +43 -0
- package/dist/{store/embeddings → embeddings}/provider.js +58 -83
- package/dist/embeddings/transformers.d.ts +26 -0
- package/dist/embeddings/transformers.js +89 -0
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +3 -2
- package/dist/eval/eval-stats.d.ts +15 -53
- package/dist/eval/eval-stats.js +12 -42
- package/dist/eval/eval-suite.d.ts +2 -13
- package/dist/eval/eval-suite.js +91 -45
- package/dist/eval/eval.d.ts +6 -24
- package/dist/eval/eval.js +8 -35
- package/dist/eval/judgment.d.ts +0 -3
- package/dist/eval/judgment.js +30 -15
- package/dist/extensions/openclaw-plugin/index.js +1 -1
- package/dist/graph/extract.d.ts +5 -27
- package/dist/graph/extract.js +10 -36
- package/dist/graph/recall.d.ts +7 -20
- package/dist/graph/recall.js +15 -77
- package/dist/graph/stream.d.ts +7 -39
- package/dist/graph/stream.js +11 -34
- package/dist/graph/view.d.ts +9 -35
- package/dist/graph/view.js +24 -44
- package/dist/graph/write.d.ts +1 -1
- package/dist/graph/write.js +9 -9
- package/dist/hooks/codex-session.js +3 -2
- package/dist/hooks/codex-wrapper.js +4 -3
- package/dist/hooks/copilot.js +2 -1
- package/dist/hooks/hook-blocks.d.ts +6 -2
- package/dist/hooks/hook-blocks.js +37 -124
- package/dist/hooks/json-hooks.d.ts +4 -36
- package/dist/hooks/json-hooks.js +22 -59
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +17 -81
- package/dist/hooks/shared.d.ts +6 -21
- package/dist/hooks/shared.js +31 -33
- package/dist/importers/core.d.ts +12 -37
- package/dist/importers/core.js +10 -28
- package/dist/importers/markdown-parse.d.ts +8 -22
- package/dist/importers/markdown-parse.js +8 -25
- package/dist/importers/markdown.js +3 -12
- package/dist/importers/sources.js +12 -39
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +31 -85
- package/dist/index.d.ts +8 -3
- package/dist/index.js +8 -3
- package/dist/learn/autolearn.d.ts +23 -42
- package/dist/learn/autolearn.js +45 -52
- package/dist/learn/churn-git.js +13 -4
- package/dist/learn/extract.d.ts +3 -2
- package/dist/learn/extract.js +8 -8
- package/dist/learn/forward-claim-detector.d.ts +6 -30
- package/dist/learn/forward-claim-detector.js +18 -68
- package/dist/learn/invalidation.d.ts +6 -18
- package/dist/learn/invalidation.js +18 -31
- package/dist/mcp/admin-tools.d.ts +2 -2
- package/dist/mcp/admin-tools.js +30 -53
- package/dist/mcp/format.js +3 -2
- package/dist/mcp/framing.d.ts +1 -0
- package/dist/mcp/framing.js +1 -1
- package/dist/mcp/memory-tools.js +7 -10
- package/dist/mcp/protocol.d.ts +15 -29
- package/dist/mcp/protocol.js +26 -16
- package/dist/mcp/recall-tools.js +14 -11
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +12 -27
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +5 -16
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +5 -11
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +68 -16
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +47 -22
- package/dist/objects/customer-notes.d.ts +9 -44
- package/dist/objects/customer-notes.js +7 -48
- package/dist/objects/decisions.d.ts +14 -52
- package/dist/objects/decisions.js +15 -53
- package/dist/objects/descriptor.d.ts +1 -1
- package/dist/objects/incidents.d.ts +9 -40
- package/dist/objects/incidents.js +7 -41
- package/dist/objects/lifecycle.d.ts +1 -1
- package/dist/objects/lifecycle.js +2 -1
- package/dist/objects/policies.d.ts +13 -91
- package/dist/objects/policies.js +13 -99
- package/dist/objects/processes.d.ts +9 -54
- package/dist/objects/processes.js +7 -61
- package/dist/objects/project-briefs.d.ts +13 -57
- package/dist/objects/project-briefs.js +16 -78
- package/dist/objects/skills.d.ts +9 -44
- package/dist/objects/skills.js +8 -54
- package/dist/postinstall.js +7 -20
- package/dist/predictions/planning-fallacy.d.ts +11 -34
- package/dist/rerankers/clef.js +6 -37
- package/dist/rerankers/cross-encoder.d.ts +31 -2
- package/dist/rerankers/cross-encoder.js +65 -101
- package/dist/rerankers/index.js +5 -4
- package/dist/rerankers/jev.js +11 -10
- package/dist/rerankers/llm.d.ts +2 -11
- package/dist/rerankers/llm.js +14 -14
- package/dist/rerankers/outage-warning.d.ts +5 -2
- package/dist/rerankers/outage-warning.js +7 -4
- package/dist/rerankers/remote.d.ts +1 -0
- package/dist/rerankers/remote.js +2 -0
- package/dist/rerankers/types.d.ts +2 -14
- package/dist/search/bm25-search.js +1 -1
- package/dist/search/boosts.d.ts +0 -2
- package/dist/search/boosts.js +3 -3
- package/dist/search/embed-memories.d.ts +9 -0
- package/dist/search/embed-memories.js +377 -0
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +93 -0
- package/dist/search/hybrid.d.ts +11 -2
- package/dist/search/hybrid.js +9 -4
- package/dist/search/multihop.js +2 -3
- package/dist/search/path-context.d.ts +5 -18
- package/dist/search/path-context.js +5 -18
- package/dist/search/physics-search.d.ts +6 -3
- package/dist/search/physics-search.js +29 -19
- package/dist/search/rerank.js +1 -1
- package/dist/search/rrf.d.ts +7 -35
- package/dist/search/rrf.js +5 -30
- package/dist/search/vector.d.ts +13 -4
- package/dist/search/vector.js +40 -13
- package/dist/server/auth.d.ts +11 -28
- package/dist/server/auth.js +49 -32
- package/dist/server/boot.d.ts +2 -21
- package/dist/server/boot.js +69 -161
- package/dist/server/client-ip.d.ts +3 -21
- package/dist/server/client-ip.js +8 -30
- package/dist/server/deadline.d.ts +0 -2
- package/dist/server/deadline.js +1 -7
- package/dist/server/defaults.d.ts +4 -0
- package/dist/server/defaults.js +5 -0
- package/dist/server/key-check-bounds.d.ts +2 -1
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +19 -4
- package/dist/server/mcp-http.js +24 -53
- package/dist/server/rate-limit.d.ts +5 -18
- package/dist/server/rate-limit.js +4 -13
- package/dist/server/request.d.ts +4 -8
- package/dist/server/request.js +16 -19
- package/dist/server/route-checks.d.ts +7 -0
- package/dist/server/route-checks.js +42 -0
- package/dist/server/route-table.d.ts +9 -8
- package/dist/server/route-table.js +127 -139
- package/dist/server/routes/admin.d.ts +8 -8
- package/dist/server/routes/admin.js +35 -49
- package/dist/server/routes/customer-notes.d.ts +6 -6
- package/dist/server/routes/customer-notes.js +8 -14
- package/dist/server/routes/decisions.d.ts +6 -6
- package/dist/server/routes/decisions.js +12 -21
- package/dist/server/routes/incidents.d.ts +6 -6
- package/dist/server/routes/incidents.js +14 -25
- package/dist/server/routes/memories.d.ts +9 -9
- package/dist/server/routes/memories.js +20 -63
- package/dist/server/routes/object-routes.d.ts +6 -11
- package/dist/server/routes/object-routes.js +11 -22
- package/dist/server/routes/policies.d.ts +7 -7
- package/dist/server/routes/policies.js +12 -22
- package/dist/server/routes/predictions.d.ts +6 -6
- package/dist/server/routes/predictions.js +22 -38
- package/dist/server/routes/processes.d.ts +6 -6
- package/dist/server/routes/processes.js +17 -28
- package/dist/server/routes/project-briefs.d.ts +7 -7
- package/dist/server/routes/project-briefs.js +11 -20
- package/dist/server/routes/recall.d.ts +5 -5
- package/dist/server/routes/recall.js +16 -45
- package/dist/server/routes/skills.d.ts +7 -7
- package/dist/server/routes/skills.js +10 -22
- package/dist/server/server-detect.d.ts +15 -53
- package/dist/server/server-detect.js +55 -96
- package/dist/server/sleep-child.js +26 -7
- package/dist/server/sleep-offload.d.ts +11 -5
- package/dist/server/sleep-offload.js +21 -12
- package/dist/server/types.d.ts +32 -18
- package/dist/server/validation.d.ts +3 -2
- package/dist/server/validation.js +15 -33
- package/dist/server.d.ts +7 -6
- package/dist/server.js +8 -6
- package/dist/sharing/global-store.d.ts +19 -0
- package/dist/sharing/global-store.js +75 -0
- package/dist/sharing/global-sync.d.ts +6 -0
- package/dist/sharing/global-sync.js +73 -0
- package/dist/sharing/project-merge.d.ts +11 -19
- package/dist/sharing/project-merge.js +63 -125
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +40 -0
- package/dist/sharing/share.js +229 -0
- package/dist/store/ambient.js +9 -15
- package/dist/store/audit-event.d.ts +5 -13
- package/dist/store/audit-event.js +4 -12
- package/dist/store/audit.d.ts +2 -21
- package/dist/store/audit.js +8 -67
- package/dist/store/auth.d.ts +10 -8
- package/dist/store/auth.js +17 -12
- package/dist/store/candidates.d.ts +23 -5
- package/dist/store/candidates.js +119 -71
- package/dist/store/capture-write.d.ts +17 -0
- package/dist/store/capture-write.js +35 -0
- package/dist/store/card-detail.d.ts +2 -1
- package/dist/store/card-detail.js +2 -1
- package/dist/store/cards.d.ts +14 -9
- package/dist/store/cards.js +72 -126
- package/dist/store/compaction-caller.d.ts +18 -0
- package/dist/store/compaction-caller.js +29 -0
- package/dist/store/compactions-record.d.ts +115 -0
- package/dist/store/compactions-record.js +417 -0
- package/dist/store/compactions.js +6 -4
- package/dist/store/conflicts.d.ts +4 -21
- package/dist/store/conflicts.js +76 -152
- package/dist/store/connectors/dlq.d.ts +10 -0
- package/dist/store/connectors/dlq.js +32 -0
- package/dist/store/connectors/github.d.ts +14 -16
- package/dist/store/connectors/github.js +34 -57
- package/dist/store/connectors/slack.d.ts +2 -11
- package/dist/store/connectors/slack.js +18 -47
- package/dist/store/dashboard-reads.js +11 -14
- package/dist/store/delete-and-batch.d.ts +17 -31
- package/dist/store/delete-and-batch.js +84 -67
- package/dist/store/delivery-recorder.d.ts +15 -4
- package/dist/store/delivery-recorder.js +34 -17
- package/dist/store/descendant-page.js +6 -3
- package/dist/store/diagnostics.js +6 -13
- package/dist/store/dormant.d.ts +8 -30
- package/dist/store/dormant.js +18 -57
- package/dist/store/embeddings/index.d.ts +11 -90
- package/dist/store/embeddings/index.js +18 -523
- package/dist/store/entry-reads.d.ts +34 -61
- package/dist/store/entry-reads.js +111 -136
- package/dist/store/entry-row.d.ts +6 -35
- package/dist/store/entry-row.js +9 -37
- package/dist/store/entry-writes.d.ts +12 -18
- package/dist/store/entry-writes.js +46 -44
- package/dist/store/failure-log-at.d.ts +8 -0
- package/dist/store/failure-log-at.js +16 -0
- package/dist/store/failure-log.d.ts +2 -2
- package/dist/store/failure-log.js +5 -3
- package/dist/{trust → store}/gated-write.d.ts +3 -1
- package/dist/{trust → store}/gated-write.js +7 -5
- package/dist/store/goals.d.ts +3 -40
- package/dist/store/goals.js +41 -178
- package/dist/store/graph-queue.d.ts +6 -22
- package/dist/store/graph-queue.js +14 -45
- package/dist/store/graph-reads.d.ts +11 -35
- package/dist/store/graph-reads.js +24 -60
- package/dist/store/graph-rows.d.ts +3 -6
- package/dist/store/graph-rows.js +6 -9
- package/dist/store/graph-view-rows.d.ts +2 -1
- package/dist/store/graph-view-rows.js +2 -1
- package/dist/store/graph-writes.d.ts +10 -35
- package/dist/store/graph-writes.js +59 -106
- package/dist/store/half-life.d.ts +2 -1
- package/dist/store/half-life.js +14 -16
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +22 -40
- package/dist/store/index-and-stats.d.ts +6 -19
- package/dist/store/index-and-stats.js +36 -84
- package/dist/store/key-writes.js +1 -1
- package/dist/store/ledger-turn.d.ts +9 -0
- package/dist/store/ledger-turn.js +38 -0
- package/dist/store/mirrors.d.ts +2 -6
- package/dist/store/mirrors.js +24 -29
- package/dist/store/open.d.ts +0 -4
- package/dist/store/open.js +42 -62
- package/dist/store/pilot-arm.d.ts +12 -0
- package/dist/store/pilot-arm.js +42 -0
- package/dist/store/planning-fallacy-evidence.d.ts +2 -30
- package/dist/store/planning-fallacy-evidence.js +8 -37
- package/dist/store/port.d.ts +91 -82
- package/dist/store/port.js +8 -0
- package/dist/store/predictions.d.ts +12 -53
- package/dist/store/predictions.js +41 -125
- package/dist/store/project-tags.d.ts +62 -0
- package/dist/store/project-tags.js +67 -0
- package/dist/{cli → store}/quality-repair.js +15 -31
- package/dist/store/quarantine.js +2 -1
- package/dist/store/raw-archive.d.ts +4 -16
- package/dist/store/raw-archive.js +14 -29
- package/dist/store/recall-trace.d.ts +12 -77
- package/dist/store/recall-trace.js +37 -97
- package/dist/store/rejected-values.js +9 -20
- package/dist/store/rejection-probe.d.ts +4 -0
- package/dist/store/rejection-probe.js +19 -0
- package/dist/store/rejection.d.ts +10 -73
- package/dist/store/rejection.js +12 -84
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +9 -19
- package/dist/store/rows.js +36 -34
- package/dist/store/rule-sql.d.ts +14 -0
- package/dist/store/rule-sql.js +56 -0
- package/dist/store/search-rows.d.ts +7 -38
- package/dist/store/search-rows.js +23 -54
- package/dist/store/sessions.d.ts +10 -47
- package/dist/store/sessions.js +21 -75
- package/dist/store/set-aside.d.ts +14 -0
- package/dist/store/set-aside.js +23 -0
- package/dist/store/sqlite/busy.d.ts +3 -0
- package/dist/store/sqlite/busy.js +8 -0
- package/dist/store/sqlite/connector-events-group.js +5 -8
- package/dist/store/sqlite/connector-writes-group.js +3 -3
- package/dist/store/sqlite/entry-writes-group.js +4 -4
- package/dist/store/sqlite/error-codec.js +8 -5
- package/dist/store/sqlite/executor.d.ts +2 -1
- package/dist/store/sqlite/executor.js +12 -5
- package/dist/store/sqlite/graph-reads-group.js +1 -1
- package/dist/store/sqlite/held-connection.d.ts +9 -0
- package/dist/store/sqlite/held-connection.js +41 -0
- package/dist/store/sqlite/local.d.ts +3 -3
- package/dist/store/sqlite/local.js +1 -0
- package/dist/store/sqlite/object-rows.d.ts +1 -1
- package/dist/store/sqlite/object-rows.js +6 -3
- package/dist/store/sqlite/objects-group.d.ts +1 -1
- package/dist/store/sqlite/objects-group.js +5 -3
- package/dist/store/sqlite/quarantine-group.js +2 -2
- package/dist/store/sqlite/store.d.ts +1 -4
- package/dist/store/sqlite/store.js +16 -15
- package/dist/store/sqlite/vector-reads-group.js +2 -2
- package/dist/store/sqlite/worker-jobs.js +1 -1
- package/dist/store/sqlite/worker-ops.d.ts +13 -2
- package/dist/store/sqlite/worker-ops.js +13 -2
- package/dist/store/sqlite/worker-store.js +5 -2
- package/dist/store/summaries.d.ts +11 -63
- package/dist/store/summaries.js +37 -148
- package/dist/store/summary-dirty.js +1 -1
- package/dist/store/tenant-lookup.d.ts +6 -1
- package/dist/store/tenant-lookup.js +7 -0
- package/dist/store/tenant.d.ts +2 -16
- package/dist/store/tenant.js +4 -19
- package/dist/store/token-ledger.d.ts +13 -50
- package/dist/store/token-ledger.js +19 -85
- package/dist/store/usage-reports.js +5 -13
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +171 -0
- package/dist/store/working-memory.d.ts +6 -25
- package/dist/store/working-memory.js +18 -52
- package/dist/support-bundle.js +9 -8
- package/dist/trust/reject-flow.js +3 -5
- package/dist/util/agent-homes.d.ts +15 -0
- package/dist/util/agent-homes.js +34 -0
- package/dist/util/anthropic-messages.d.ts +3 -0
- package/dist/util/anthropic-messages.js +35 -6
- package/dist/util/atomic-write.d.ts +2 -1
- package/dist/util/atomic-write.js +35 -4
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/chunked.d.ts +3 -0
- package/dist/util/chunked.js +10 -0
- package/dist/util/crash-handlers.d.ts +8 -1
- package/dist/util/crash-handlers.js +52 -10
- package/dist/util/ellipsize.d.ts +3 -0
- package/dist/util/ellipsize.js +5 -0
- package/dist/util/env.d.ts +14 -6
- package/dist/util/env.js +15 -7
- package/dist/util/format.d.ts +3 -0
- package/dist/util/format.js +6 -0
- package/dist/util/home-path.d.ts +2 -1
- package/dist/util/home-path.js +4 -2
- package/dist/util/hook-payload.d.ts +8 -0
- package/dist/util/hook-payload.js +37 -0
- package/dist/util/http-retry.d.ts +9 -1
- package/dist/util/http-retry.js +67 -8
- package/dist/util/http-util.d.ts +0 -8
- package/dist/util/http-util.js +10 -21
- package/dist/util/limits.d.ts +7 -0
- package/dist/util/limits.js +14 -0
- package/dist/util/log.d.ts +7 -2
- package/dist/util/log.js +34 -9
- package/dist/util/request-scope.d.ts +5 -2
- package/dist/util/request-scope.js +13 -7
- package/dist/util/secret-detect.d.ts +5 -30
- package/dist/util/secret-detect.js +19 -40
- package/dist/util/sqlite-blocked.d.ts +2 -0
- package/dist/util/sqlite-blocked.js +5 -0
- package/dist/util/stored-json.d.ts +1 -1
- package/dist/util/stored-json.js +1 -1
- package/dist/util/stream-tee.d.ts +3 -0
- package/dist/util/stream-tee.js +35 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.js +4 -0
- package/dist/util/token-text.d.ts +1 -4
- package/dist/util/token-text.js +1 -4
- package/dist/util/transcript-tail.d.ts +2 -0
- package/dist/util/transcript-tail.js +24 -23
- package/dist/util/version.d.ts +5 -20
- package/dist/util/version.js +5 -20
- package/dist/{store → util}/yaml.d.ts +1 -5
- package/dist/{store → util}/yaml.js +2 -6
- package/extensions/openclaw-plugin/index.ts +1 -1
- 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/cli/provenance-coverage.d.ts +0 -18
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/sharing/scope.d.ts +0 -14
- package/dist/sharing/shared.d.ts +0 -187
- package/dist/sharing/shared.js +0 -563
- package/dist/store/embeddings/local.d.ts +0 -15
- package/dist/store/embeddings/local.js +0 -192
- package/dist/store/embeddings/provider.d.ts +0 -77
- package/dist/store/markdown.d.ts +0 -10
- package/dist/store/recall-scope.d.ts +0 -138
- package/dist/store/recall-scope.js +0 -216
- package/dist/store/vector-writes.d.ts +0 -13
- package/dist/store/vector-writes.js +0 -89
- /package/dist/{store → core}/object-types.d.ts +0 -0
- /package/dist/{store → core}/object-types.js +0 -0
- /package/dist/{cli → store}/quality-repair.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.js +0 -0
package/dist/api/drill-down.d.ts
CHANGED
|
@@ -3,21 +3,10 @@ import type { Context } from './types.js';
|
|
|
3
3
|
export interface DrillDownOpts {
|
|
4
4
|
/** Cap on number of children returned. Default 50. */
|
|
5
5
|
limit?: number;
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* order (created ASC) until adding the next child would exceed the budget.
|
|
9
|
-
* Token cost = the child's printed line under `cost`, else ceil(content.length / 4).
|
|
10
|
-
*
|
|
11
|
-
* For depth > 1, the budget is GLOBAL cumulative (NOT per-level).
|
|
12
|
-
*/
|
|
6
|
+
/** Token budget: children append in created order until the next would exceed it (cost: printed line under `cost`, else ceil(content.length / 4)).
|
|
7
|
+
* For depth > 1 the budget is global and cumulative, not per level. */
|
|
13
8
|
budget?: number;
|
|
14
|
-
/**
|
|
15
|
-
* v0.30 / E5 — walk N levels down (default 1 = direct children only).
|
|
16
|
-
* Higher values include children of children, etc. Internal hard cap 10
|
|
17
|
-
* to prevent pathological depth walks. BFS uses visited Set for dedup
|
|
18
|
-
* (defensive against shared-child data anomalies; DAG is acyclic by
|
|
19
|
-
* construction).
|
|
20
|
-
*/
|
|
9
|
+
/** Levels to walk down (default 1 = direct children); capped at 10 internally. BFS dedups with a visited Set, defensive against shared-child anomalies. */
|
|
21
10
|
depth?: number;
|
|
22
11
|
cost?: DrillDownCost;
|
|
23
12
|
project?: CallerProject;
|
|
@@ -46,41 +35,13 @@ export interface DrillDownResult {
|
|
|
46
35
|
totalChildren: number;
|
|
47
36
|
truncated: boolean;
|
|
48
37
|
}
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* - `not_found`: covers genuinely-missing, wrong-tenant, AND
|
|
52
|
-
* scope-blocked (codex round 3 P1 — distinguishing scope_blocked
|
|
53
|
-
* from not_found on non-HTTP surfaces leaked private-row existence
|
|
54
|
-
* to no-scope callers, even though the HTTP route already collapsed
|
|
55
|
-
* them. Collapse at the API layer.)
|
|
56
|
-
* - `not_drillable`: id is a leaf row (level 0/1). Caller-actionable.
|
|
57
|
-
*
|
|
58
|
-
* If a future drillDown gains a `scope` opt for explicit-scope callers,
|
|
59
|
-
* a `scope_blocked` failure could be safely re-introduced ONLY for that
|
|
60
|
-
* code path (caller already proved authorization by passing a scope).
|
|
61
|
-
*/
|
|
38
|
+
/** `not_found` covers missing, wrong-tenant AND scope-blocked, because distinguishing scope_blocked leaked private-row existence to no-scope callers.
|
|
39
|
+
* `not_drillable`: the id is a leaf row (level 0/1), which the caller can act on. */
|
|
62
40
|
export interface DrillDownFailure {
|
|
63
41
|
failure: 'not_found' | 'not_drillable';
|
|
64
42
|
}
|
|
65
43
|
export type DrillDownOutcome = DrillDownResult | DrillDownFailure;
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
* children. Companion to `recall(... summarizeOverflow: true)` — when recall
|
|
69
|
-
* surfaces a summary with `substitutedFor: [...]`, the caller drills into the
|
|
70
|
-
* summary id to recover the original detail.
|
|
71
|
-
*
|
|
72
|
-
* Tenant scope: only summaries owned by `ctx.tenantId` are reachable. The same
|
|
73
|
-
* scope filter that recall applies is enforced on the children — a level-2
|
|
74
|
-
* summary in `slack:public:CGEN` cannot leak `slack:private:*` children even
|
|
75
|
-
* if the underlying DAG accidentally linked across scopes.
|
|
76
|
-
*
|
|
77
|
-
* Returns a discriminated `DrillDownOutcome`: `DrillDownResult` on success,
|
|
78
|
-
* or `{failure: '...'}` for `not_found` (covers genuinely-missing, wrong-
|
|
79
|
-
* tenant and scope-blocked, intentionally indistinguishable) or
|
|
80
|
-
* `not_drillable` (id is a leaf row).
|
|
81
|
-
*
|
|
82
|
-
* Pre-v1.6.4 returned null for all three cases. JS callers migrate via
|
|
83
|
-
* `'failure' in result` checks; HTTP route maps `not_drillable` to 422.
|
|
84
|
-
*/
|
|
44
|
+
/** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(... summarizeOverflow: true)` substitutions). Only
|
|
45
|
+
* `ctx.tenantId` summaries are reachable; children get recall's scope filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
|
|
85
46
|
export declare function drillDown(ctx: Context, summaryId: string, opts?: DrillDownOpts): Promise<DrillDownOutcome>;
|
|
86
47
|
//# sourceMappingURL=drill-down.d.ts.map
|
package/dist/api/drill-down.js
CHANGED
|
@@ -1,28 +1,11 @@
|
|
|
1
1
|
// DAG drill-down from a summary to its children.
|
|
2
2
|
import { requireGroup, storeFor } from '../store/index.js';
|
|
3
3
|
import { estimateTokens } from '../util/token-text.js';
|
|
4
|
-
import { passesScopeFilterForRecall, personalScopeOf } from '../
|
|
4
|
+
import { passesScopeFilterForRecall, personalScopeOf } from '../core/recall-scope.js';
|
|
5
5
|
import { classifyOriginProject } from '../core/project-identity.js';
|
|
6
6
|
const DEFAULT_DRILL_DOWN_LIMIT = 50;
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* children. Companion to `recall(... summarizeOverflow: true)` — when recall
|
|
10
|
-
* surfaces a summary with `substitutedFor: [...]`, the caller drills into the
|
|
11
|
-
* summary id to recover the original detail.
|
|
12
|
-
*
|
|
13
|
-
* Tenant scope: only summaries owned by `ctx.tenantId` are reachable. The same
|
|
14
|
-
* scope filter that recall applies is enforced on the children — a level-2
|
|
15
|
-
* summary in `slack:public:CGEN` cannot leak `slack:private:*` children even
|
|
16
|
-
* if the underlying DAG accidentally linked across scopes.
|
|
17
|
-
*
|
|
18
|
-
* Returns a discriminated `DrillDownOutcome`: `DrillDownResult` on success,
|
|
19
|
-
* or `{failure: '...'}` for `not_found` (covers genuinely-missing, wrong-
|
|
20
|
-
* tenant and scope-blocked, intentionally indistinguishable) or
|
|
21
|
-
* `not_drillable` (id is a leaf row).
|
|
22
|
-
*
|
|
23
|
-
* Pre-v1.6.4 returned null for all three cases. JS callers migrate via
|
|
24
|
-
* `'failure' in result` checks; HTTP route maps `not_drillable` to 422.
|
|
25
|
-
*/
|
|
7
|
+
/** One step down the DAG from a level-2+ summary to its direct children (the way back from `recall(... summarizeOverflow: true)` substitutions). Only
|
|
8
|
+
* `ctx.tenantId` summaries are reachable; children get recall's scope filter. Returns `DrillDownResult` or `{failure}`; HTTP maps `not_drillable` to 422. */
|
|
26
9
|
export async function drillDown(ctx, summaryId, opts = {}) {
|
|
27
10
|
const limit = opts.limit ?? DEFAULT_DRILL_DOWN_LIMIT;
|
|
28
11
|
// v0.30 / E5: depth defaults 1 (backward compat); hard cap 10 levels
|
|
@@ -38,10 +21,8 @@ export async function drillDown(ctx, summaryId, opts = {}) {
|
|
|
38
21
|
admit: (row) => readable(row) && (row.id !== summaryId || isDrillable(row)),
|
|
39
22
|
page: limit >= 0 && Number.isSafeInteger(pastLimit) ? { rows: pastLimit, admit: readable } : undefined,
|
|
40
23
|
});
|
|
41
|
-
// No unscoped cross-tenant probe
|
|
42
|
-
//
|
|
43
|
-
// Distinguishing them via an unscoped lookup would leak existence to
|
|
44
|
-
// unauthorised tenants. The two cases collapse into not_found.
|
|
24
|
+
// No unscoped cross-tenant probe: the tenant-scoped miss covers "missing" and "in another tenant" alike,
|
|
25
|
+
// because telling them apart would leak existence to unauthorised tenants.
|
|
45
26
|
if (!walked)
|
|
46
27
|
return { failure: 'not_found' };
|
|
47
28
|
// A distinguishable "scope_blocked" would tell a no-scope caller "this row
|
|
@@ -80,9 +61,7 @@ function drillResult({ summary, levels, sizes: counted }, opts, limit) {
|
|
|
80
61
|
return {
|
|
81
62
|
summary: summaryOut,
|
|
82
63
|
children,
|
|
83
|
-
//
|
|
84
|
-
// depth=1 this equals the eligible direct-children count (backward
|
|
85
|
-
// compat). For depth>1 it is the cumulative count across levels.
|
|
64
|
+
// totalChildren is the BFS-collected count, cumulative across levels (equals the direct-children count at depth=1).
|
|
86
65
|
totalChildren: total,
|
|
87
66
|
truncated,
|
|
88
67
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EmbeddingProvider } from '../embeddings/provider.js';
|
|
2
|
+
import { type Context } from './types.js';
|
|
3
|
+
/** Embed every memory that has no vector yet; resolves to how many it embedded. */
|
|
4
|
+
export declare function embedMissingMemories(ctx: Context, provider?: EmbeddingProvider): Promise<number>;
|
|
5
|
+
/** How many vectors the store holds, live memory or not. */
|
|
6
|
+
export declare function storedVectorCount(ctx: Context): number;
|
|
7
|
+
export interface EmbedCoverage {
|
|
8
|
+
/** Every memory id in the store. */
|
|
9
|
+
memoryIds: string[];
|
|
10
|
+
/** Every id with a stored vector, including orphans whose memory is gone. */
|
|
11
|
+
vectorIds: string[];
|
|
12
|
+
}
|
|
13
|
+
/** Memory ids against vector ids, for the embed status and backfill lines. */
|
|
14
|
+
export declare function embedCoverage(ctx: Context): EmbedCoverage;
|
|
15
|
+
/** Re-seed every memory's physics particle from its vector; returns how many it reset. */
|
|
16
|
+
export declare function resetPhysicsFromVectors(ctx: Context): number;
|
|
17
|
+
//# sourceMappingURL=embeddings.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// The vector side of a store for the embed and import verbs: embed what is missing, count coverage, re-seed physics.
|
|
2
|
+
// Vectors and physics rows carry no tenant, so each op covers the whole store and needs the host admin.
|
|
3
|
+
import { embedAll } from '../search/embed-memories.js';
|
|
4
|
+
import { loadAllEntryIds } from '../store/entry-reads.js';
|
|
5
|
+
import { loadEmbeddingIndex, resetStoredParticles, storedVectorSummary } from '../store/vector-index.js';
|
|
6
|
+
import { requireHostAdmin } from './types.js';
|
|
7
|
+
/** Embed every memory that has no vector yet; resolves to how many it embedded. */
|
|
8
|
+
export async function embedMissingMemories(ctx, provider) {
|
|
9
|
+
requireHostAdmin(ctx, 'Embedding the store');
|
|
10
|
+
return embedAll(ctx.hippoRoot, undefined, provider);
|
|
11
|
+
}
|
|
12
|
+
/** How many vectors the store holds, live memory or not. */
|
|
13
|
+
export function storedVectorCount(ctx) {
|
|
14
|
+
requireHostAdmin(ctx, 'Reading the vector index');
|
|
15
|
+
return storedVectorSummary(ctx.hippoRoot).ids.size;
|
|
16
|
+
}
|
|
17
|
+
/** Memory ids against vector ids, for the embed status and backfill lines. */
|
|
18
|
+
export function embedCoverage(ctx) {
|
|
19
|
+
requireHostAdmin(ctx, 'Reading the vector index');
|
|
20
|
+
return { memoryIds: loadAllEntryIds(ctx.hippoRoot), vectorIds: [...storedVectorSummary(ctx.hippoRoot).ids] };
|
|
21
|
+
}
|
|
22
|
+
/** Re-seed every memory's physics particle from its vector; returns how many it reset. */
|
|
23
|
+
export function resetPhysicsFromVectors(ctx) {
|
|
24
|
+
requireHostAdmin(ctx, 'Resetting physics');
|
|
25
|
+
const vectors = loadEmbeddingIndex(ctx.hippoRoot);
|
|
26
|
+
return resetStoredParticles(ctx.hippoRoot, loadAllEntryIds(ctx.hippoRoot), vectors);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The status and client-facing message for one failed request. */
|
|
2
|
+
export interface ApiErrorReply {
|
|
3
|
+
status: number;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
/** Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server log. */
|
|
7
|
+
export declare function mapApiError<E>(err: E): ApiErrorReply;
|
|
8
|
+
//# sourceMappingURL=error-reply.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// The one error-to-reply map the HTTP server and the MCP transports share, so a status never depends on which front end caught the error.
|
|
2
|
+
import { ApiError } from '../core/api-errors.js';
|
|
3
|
+
import { BodyTimeoutError, BodyTooLargeError, HttpError, INTERNAL_ERROR_MESSAGE, STORE_NOT_PORTED_MESSAGE } from '../util/http-util.js';
|
|
4
|
+
import { SqliteBlockedError } from '../util/sqlite-blocked.js';
|
|
5
|
+
/** Maps by class so rewording a message never moves a status; an untyped error is a 500 whose text stays in the server log. */
|
|
6
|
+
export function mapApiError(err) {
|
|
7
|
+
// An add-on can build an HttpError from any number, and writeHead throws on one outside 100-999.
|
|
8
|
+
if (err instanceof HttpError && !(Number.isInteger(err.status) && err.status >= 100 && err.status <= 999)) {
|
|
9
|
+
return { status: 500, message: INTERNAL_ERROR_MESSAGE };
|
|
10
|
+
}
|
|
11
|
+
if (err instanceof HttpError || err instanceof ApiError)
|
|
12
|
+
return { status: err.status, message: err.message };
|
|
13
|
+
if (err instanceof BodyTooLargeError)
|
|
14
|
+
return { status: 413, message: err.message };
|
|
15
|
+
if (err instanceof BodyTimeoutError)
|
|
16
|
+
return { status: 408, message: err.message };
|
|
17
|
+
if (err instanceof SqliteBlockedError)
|
|
18
|
+
return { status: 501, message: STORE_NOT_PORTED_MESSAGE };
|
|
19
|
+
return { status: 500, message: INTERNAL_ERROR_MESSAGE };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=error-reply.js.map
|
package/dist/api/forget.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
/** Delete a memory by id. Reach is checked inside the delete's write scope, and a
|
|
1
|
+
import { type RejectFlowResult } from '../trust/reject-flow.js';
|
|
2
|
+
import { type Context, type StoreReply } from './types.js';
|
|
3
|
+
/** Delete a memory by id. Reach is checked inside the delete's write scope, and a
|
|
4
|
+
* row out of reach answers as not found, so a caller learns nothing about it. */
|
|
4
5
|
export interface ForgetResult {
|
|
5
6
|
ok: true;
|
|
6
7
|
id: string;
|
|
@@ -18,31 +19,15 @@ export interface RejectResult {
|
|
|
18
19
|
digest: string;
|
|
19
20
|
removedIds: string[];
|
|
20
21
|
}
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* - `value`: pre-emptive form — tombstone content that may not currently
|
|
29
|
-
* be stored (or is already gone). Zero removals.
|
|
30
|
-
*
|
|
31
|
-
* `reason` is required (the tombstone stores no content; reason is its
|
|
32
|
-
* only human-readable identity). Throws if the memory id is not found in
|
|
33
|
-
* `ctx.tenantId`, or if both/neither of `memoryId`/`value` are given.
|
|
34
|
-
*/
|
|
35
|
-
export declare function reject(ctx: Context, opts: RejectOpts): RejectResult;
|
|
36
|
-
/**
|
|
37
|
-
* Delete a tombstone by exact digest or unambiguous prefix, restoring the
|
|
38
|
-
* value's writability — the only v1 escape hatch (no per-write force flag).
|
|
39
|
-
* Throws if `digestOrPrefix` matches no tombstone, is blank, or matches
|
|
40
|
-
* more than one (use a longer prefix).
|
|
41
|
-
*/
|
|
22
|
+
/** Tombstones a value's normalized digest so a matching write is refused everywhere until `unreject`; pass exactly one of `memoryId` or `value`.
|
|
23
|
+
* `memoryId` also removes every live tenant row with that digest (not others' personal rows); `reason` is required. Throws on an unknown id or both/neither. */
|
|
24
|
+
export declare function reject(ctx: Context, opts: RejectOpts): Promise<RejectResult>;
|
|
25
|
+
/** `hippo reject` on the host: every row it removed and the rows that kept their other texts. A personal row by id answers with the
|
|
26
|
+
* personal refusal rather than reject's not-found, as the operator can see that row. */
|
|
27
|
+
export declare function rejectOnHost(ctx: Context, opts: RejectOpts): RejectFlowResult;
|
|
28
|
+
/** Deletes a tombstone by exact digest or unambiguous prefix, restoring writability (the only v1 escape hatch); throws on blank, no match or several. */
|
|
42
29
|
export declare function unreject(ctx: Context, digestOrPrefix: string): {
|
|
43
30
|
ok: boolean;
|
|
44
31
|
digest: string;
|
|
45
32
|
};
|
|
46
|
-
/** List every rejected-value tombstone for `ctx.tenantId`, newest first. */
|
|
47
|
-
export declare function listRejections(ctx: Context): RejectedValueRow[];
|
|
48
33
|
//# sourceMappingURL=forget.d.ts.map
|
package/dist/api/forget.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Forget a memory, and reject or unreject a value so it cannot be stored again.
|
|
2
2
|
import { BadRequestError, NotFoundError } from '../core/api-errors.js';
|
|
3
|
-
import { rejectValue, unrejectValue
|
|
3
|
+
import { rejectValue, unrejectValue } from '../trust/reject-flow.js';
|
|
4
4
|
import { andThen, notPorted, onStore } from './on-store.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { requireHostAdmin } from './types.js';
|
|
6
|
+
import { getMemory } from './memories.js';
|
|
7
|
+
import { canTouchScope, personalScopeOf } from '../core/recall-scope.js';
|
|
7
8
|
export function forget(ctx, id) {
|
|
8
9
|
return onStore(ctx, (port) => {
|
|
9
10
|
const entryWrites = port.entryWrites ?? notPorted(port, 'entryWrites');
|
|
@@ -11,31 +12,28 @@ export function forget(ctx, id) {
|
|
|
11
12
|
return andThen(entryWrites.forget(removal), () => ({ ok: true, id }));
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
* forms — pass exactly one:
|
|
18
|
-
* - `memoryId`: reject the CURRENT content of an existing memory. Removes
|
|
19
|
-
* that row and every other live row in the tenant whose normalized
|
|
20
|
-
* digest matches (not just the id passed), except another person's personal rows.
|
|
21
|
-
* - `value`: pre-emptive form — tombstone content that may not currently
|
|
22
|
-
* be stored (or is already gone). Zero removals.
|
|
23
|
-
*
|
|
24
|
-
* `reason` is required (the tombstone stores no content; reason is its
|
|
25
|
-
* only human-readable identity). Throws if the memory id is not found in
|
|
26
|
-
* `ctx.tenantId`, or if both/neither of `memoryId`/`value` are given.
|
|
27
|
-
*/
|
|
28
|
-
export function reject(ctx, opts) {
|
|
15
|
+
/** Tombstones a value's normalized digest so a matching write is refused everywhere until `unreject`; pass exactly one of `memoryId` or `value`.
|
|
16
|
+
* `memoryId` also removes every live tenant row with that digest (not others' personal rows); `reason` is required. Throws on an unknown id or both/neither. */
|
|
17
|
+
export async function reject(ctx, opts) {
|
|
29
18
|
if (opts.memoryId !== undefined) {
|
|
30
|
-
// Tenant scope
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const entry = readEntry(ctx.hippoRoot, opts.memoryId);
|
|
34
|
-
if (entry?.tenantId !== ctx.tenantId || !canTouchScope(ctx.actor, entry.scope)) {
|
|
19
|
+
// Tenant scope: same not-found-shaped denial as forget/promote; rejectValue tenant-checks too, but pre-checking keeps the error message consistent.
|
|
20
|
+
const entry = await getMemory(ctx, opts.memoryId);
|
|
21
|
+
if (entry === null || !canTouchScope(ctx.actor, entry.scope)) {
|
|
35
22
|
throw new NotFoundError(`memory not found: ${opts.memoryId}`);
|
|
36
23
|
}
|
|
37
24
|
}
|
|
38
|
-
const result =
|
|
25
|
+
const result = applyReject(ctx, opts);
|
|
26
|
+
return { digest: result.digest, removedIds: result.removedIds };
|
|
27
|
+
}
|
|
28
|
+
/** `hippo reject` on the host: every row it removed and the rows that kept their other texts. A personal row by id answers with the
|
|
29
|
+
* personal refusal rather than reject's not-found, as the operator can see that row. */
|
|
30
|
+
export function rejectOnHost(ctx, opts) {
|
|
31
|
+
requireHostAdmin(ctx, 'Rejecting with the removal report');
|
|
32
|
+
return applyReject(ctx, opts);
|
|
33
|
+
}
|
|
34
|
+
function applyReject(ctx, opts) {
|
|
35
|
+
// SHORTCUT: the tombstone write is hippo.db only, as the port has no rejection group; one when a served store needs reject.
|
|
36
|
+
return rejectValue({
|
|
39
37
|
hippoRoot: ctx.hippoRoot,
|
|
40
38
|
tenantId: ctx.tenantId,
|
|
41
39
|
actor: ctx.actor.subject,
|
|
@@ -44,14 +42,8 @@ export function reject(ctx, opts) {
|
|
|
44
42
|
value: opts.value,
|
|
45
43
|
ownScope: personalScopeOf(ctx.actor) ?? undefined,
|
|
46
44
|
});
|
|
47
|
-
return { digest: result.digest, removedIds: result.removedIds };
|
|
48
45
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Delete a tombstone by exact digest or unambiguous prefix, restoring the
|
|
51
|
-
* value's writability — the only v1 escape hatch (no per-write force flag).
|
|
52
|
-
* Throws if `digestOrPrefix` matches no tombstone, is blank, or matches
|
|
53
|
-
* more than one (use a longer prefix).
|
|
54
|
-
*/
|
|
46
|
+
/** Deletes a tombstone by exact digest or unambiguous prefix, restoring writability (the only v1 escape hatch); throws on blank, no match or several. */
|
|
55
47
|
export function unreject(ctx, digestOrPrefix) {
|
|
56
48
|
const outcome = unrejectValue(ctx.hippoRoot, ctx.tenantId, digestOrPrefix, ctx.actor.subject);
|
|
57
49
|
if (outcome.status === 'not_found') {
|
|
@@ -62,8 +54,4 @@ export function unreject(ctx, digestOrPrefix) {
|
|
|
62
54
|
}
|
|
63
55
|
return { ok: true, digest: outcome.digest };
|
|
64
56
|
}
|
|
65
|
-
/** List every rejected-value tombstone for `ctx.tenantId`, newest first. */
|
|
66
|
-
export function listRejections(ctx) {
|
|
67
|
-
return listRejectionsForTenant(ctx.hippoRoot, ctx.tenantId);
|
|
68
|
-
}
|
|
69
57
|
//# sourceMappingURL=forget.js.map
|
package/dist/api/goals.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CompleteGoalOpts, type Goal, type PushGoalOpts } from '../store/goals.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type Context } from './types.js';
|
|
3
3
|
/** What a new goal carries; its tenant is always the caller's. */
|
|
4
4
|
export type GoalPushOpts = Omit<PushGoalOpts, 'tenantId'>;
|
|
5
5
|
/** Push a goal onto `sessionId`'s stack in the caller's tenant. */
|
package/dist/api/goals.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// The per-session goal stack that recall boosts: push, list, complete, suspend and resume.
|
|
2
|
-
import { ForbiddenError } from '../core/api-errors.js';
|
|
3
2
|
import { completeGoal, getActiveGoals, getSessionGoals, pushGoal, resumeGoal, suspendGoal, } from '../store/goals.js';
|
|
3
|
+
import { requireHostAdmin } from './types.js';
|
|
4
4
|
/** Push a goal onto `sessionId`'s stack in the caller's tenant. */
|
|
5
5
|
export function goalPush(ctx, opts) {
|
|
6
6
|
return pushGoal(ctx.hippoRoot, { ...opts, tenantId: ctx.tenantId });
|
|
@@ -12,22 +12,18 @@ export function goalList(ctx, opts) {
|
|
|
12
12
|
}
|
|
13
13
|
/** Complete a goal by id; a no-op for an unknown or already completed goal. Host admin only. */
|
|
14
14
|
export function goalComplete(ctx, goalId, opts) {
|
|
15
|
-
|
|
15
|
+
// Goal ids are not tenant-scoped in the store, so acting on one by id reaches past the caller's tenant.
|
|
16
|
+
requireHostAdmin(ctx, 'Completing a goal by id');
|
|
16
17
|
completeGoal(ctx.hippoRoot, goalId, opts);
|
|
17
18
|
}
|
|
18
19
|
/** Suspend an active goal by id. Host admin only. */
|
|
19
20
|
export function goalSuspend(ctx, goalId) {
|
|
20
|
-
requireHostAdmin(ctx);
|
|
21
|
+
requireHostAdmin(ctx, 'Suspending a goal by id');
|
|
21
22
|
suspendGoal(ctx.hippoRoot, goalId);
|
|
22
23
|
}
|
|
23
24
|
/** Resume a suspended goal by id, suspending the oldest active one past the depth cap. Host admin only. */
|
|
24
25
|
export function goalResume(ctx, goalId) {
|
|
25
|
-
requireHostAdmin(ctx);
|
|
26
|
+
requireHostAdmin(ctx, 'Resuming a goal by id');
|
|
26
27
|
resumeGoal(ctx.hippoRoot, goalId);
|
|
27
28
|
}
|
|
28
|
-
// Goal ids are not tenant-scoped in the store, so acting on one by id is a cross-tenant power.
|
|
29
|
-
function requireHostAdmin(ctx) {
|
|
30
|
-
if (!ctx.actor.hostAdmin)
|
|
31
|
-
throw new ForbiddenError('Only the host admin can change a goal by id');
|
|
32
|
-
}
|
|
33
29
|
//# sourceMappingURL=goals.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GraphRows } from '../store/port.js';
|
|
2
|
+
import type { Context } from './types.js';
|
|
3
|
+
/** The entity/relation rows behind GET /v1/graph, as the caller's role, scopes and owner may see them. */
|
|
4
|
+
export declare function graphRows(ctx: Context, query: {
|
|
5
|
+
entity?: string;
|
|
6
|
+
limit: number;
|
|
7
|
+
}): Promise<GraphRows>;
|
|
8
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { requireGroup, storeFor } from '../store/index.js';
|
|
2
|
+
/** The entity/relation rows behind GET /v1/graph, as the caller's role, scopes and owner may see them. */
|
|
3
|
+
export async function graphRows(ctx, query) {
|
|
4
|
+
const { role, scopes, owner } = ctx.actor;
|
|
5
|
+
return requireGroup(storeFor(ctx), 'graphReads').graphRows(ctx.tenantId, { ...query, reader: { role, scopes, owner } });
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=graph.js.map
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
export { ApiError, BadRequestError, ConflictError, ForbiddenError, NotFoundError } from '../core/api-errors.js';
|
|
2
|
-
export { isPrivateScope, passesScopeFilterForRecall } from '../
|
|
3
|
-
export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../
|
|
2
|
+
export { isPrivateScope, passesScopeFilterForRecall } from '../core/recall-scope.js';
|
|
3
|
+
export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../core/recall-scope.js';
|
|
4
4
|
export type { TokenSummary, TokenSurface, TokenSurfaceSummary } from '../store/token-ledger.js';
|
|
5
5
|
export type { FailureSummary } from '../store/failure-log.js';
|
|
6
6
|
export { classifyOriginProject } from '../core/project-identity.js';
|
|
7
7
|
export * from './types.js';
|
|
8
8
|
export * from './remember.js';
|
|
9
|
+
export * from './remember-local.js';
|
|
9
10
|
export * from './recall-types.js';
|
|
10
11
|
export * from './recall.js';
|
|
11
12
|
export * from './assemble.js';
|
|
12
13
|
export * from './drill-down.js';
|
|
13
14
|
export * from './outcome.js';
|
|
14
15
|
export * from './forget.js';
|
|
16
|
+
export * from './conflicts.js';
|
|
17
|
+
export * from './projects.js';
|
|
15
18
|
export * from './promote.js';
|
|
16
19
|
export * from './auth.js';
|
|
17
20
|
export * from './audit.js';
|
|
@@ -23,4 +26,5 @@ export * from './quarantine.js';
|
|
|
23
26
|
export * from './sleep.js';
|
|
24
27
|
export * from './goals.js';
|
|
25
28
|
export * from './learn.js';
|
|
29
|
+
export * from './refine.js';
|
|
26
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/api/index.js
CHANGED
|
@@ -3,18 +3,21 @@
|
|
|
3
3
|
// keeps every import path that callers already use.
|
|
4
4
|
export { ApiError, BadRequestError, ConflictError, ForbiddenError, NotFoundError } from '../core/api-errors.js';
|
|
5
5
|
// The recall-side scope predicates live in recall-scope.ts (leaf) so shared.ts can use them without an import cycle.
|
|
6
|
-
export { isPrivateScope, passesScopeFilterForRecall } from '../
|
|
7
|
-
export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../
|
|
6
|
+
export { isPrivateScope, passesScopeFilterForRecall } from '../core/recall-scope.js';
|
|
7
|
+
export { passesCliRecallScopeFilter, ScopeForbiddenError } from '../core/recall-scope.js';
|
|
8
8
|
// classifyOriginProject lives in project-identity.ts (leaf) for the same reason.
|
|
9
9
|
export { classifyOriginProject } from '../core/project-identity.js';
|
|
10
10
|
export * from './types.js';
|
|
11
11
|
export * from './remember.js';
|
|
12
|
+
export * from './remember-local.js';
|
|
12
13
|
export * from './recall-types.js';
|
|
13
14
|
export * from './recall.js';
|
|
14
15
|
export * from './assemble.js';
|
|
15
16
|
export * from './drill-down.js';
|
|
16
17
|
export * from './outcome.js';
|
|
17
18
|
export * from './forget.js';
|
|
19
|
+
export * from './conflicts.js';
|
|
20
|
+
export * from './projects.js';
|
|
18
21
|
export * from './promote.js';
|
|
19
22
|
export * from './auth.js';
|
|
20
23
|
export * from './audit.js';
|
|
@@ -26,4 +29,5 @@ export * from './quarantine.js';
|
|
|
26
29
|
export * from './sleep.js';
|
|
27
30
|
export * from './goals.js';
|
|
28
31
|
export * from './learn.js';
|
|
32
|
+
export * from './refine.js';
|
|
29
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -3,12 +3,25 @@ const INSTRUCTION_PATTERNS = [
|
|
|
3
3
|
{ name: 'override-instructions', re: /\b(?:ignore|disregard|forget)\b[^.\n]{0,40}\b(?:previous|prior|above)\b[^.\n]{0,40}\binstructions?\b/i },
|
|
4
4
|
{ name: 'role-reassignment', re: /\b(?:you are now|act as|pretend to be)\b[^.\n]{0,40}\b(?:an?\s+)?(?:ai|assistant|agent|system)\b/i },
|
|
5
5
|
{ name: 'chat-role-markup', re: /<\|im_start\|>|<\|system\|>|\[INST\]|<\/?system>|###\s*system\s*:/i },
|
|
6
|
-
{
|
|
6
|
+
{
|
|
7
|
+
name: 'system-prompt-reference',
|
|
8
|
+
re: new RegExp(String.raw `\b(?:(?:override|ignore|bypass|replace|reveal)\b[^.\n]{0,40}\b(?:system prompt|developer message)|` +
|
|
9
|
+
String.raw `(?:system prompt|developer message)\b[^.\n]{0,40}\b(?:override|ignore|bypass|replace|reveal))\b`, 'i'),
|
|
10
|
+
},
|
|
7
11
|
// "always"/"never" alone (ordinary PR prose) doesn't flag without an agent-facing target nearby too.
|
|
8
|
-
{
|
|
12
|
+
{
|
|
13
|
+
name: 'standing-order',
|
|
14
|
+
re: /\b(?:from now on|whenever you|always|never)\b[^.\n]{0,50}\b(?:you must|(?:the ai|the assistant|the agent|claude|copilot)\s+(?:must|should|will)\b)/i
|
|
15
|
+
},
|
|
9
16
|
{ name: 'concealment', re: /\b(?:do not|never|don't)\b[^.\n]{0,40}\b(?:tell|mention|reveal)\b[^.\n]{0,40}\bthe user\b/i },
|
|
10
|
-
{
|
|
11
|
-
|
|
17
|
+
{
|
|
18
|
+
name: 'remote-script-exec',
|
|
19
|
+
re: /\b(?:curl|wget)\b[^\n|]{0,80}\|\s*(?:sudo\s+)?(?:sh|bash|zsh)\b|\biex\s*\(\s*(?:iwr|invoke-webrequest|new-object\s+net\.webclient)/i
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'exfiltration',
|
|
23
|
+
re: /\b(?:send|post|upload|exfiltrate)\b[^.\n]{0,40}\b(?:secrets?|tokens?|api[- ]?keys?|credentials?|env(?:ironment)? variables?)\b/i
|
|
24
|
+
},
|
|
12
25
|
{ name: 'unicode-tag-chars', re: /[\u{E0000}-\u{E007F}]/u },
|
|
13
26
|
];
|
|
14
27
|
// A stray zero-width char has legitimate uses (ZWJ); only a run of 3+ adjacent ones reads as smuggling.
|
|
@@ -22,8 +35,10 @@ const NAMED_REFERENCES = new Map([['amp', '&'], ['lt', '<'], ['gt', '>'], ['quot
|
|
|
22
35
|
const INVISIBLE_RE = /[\u034F\u00AD\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u2069\uFEFF]/g;
|
|
23
36
|
// Cyrillic, then Greek, letters drawn like a c e i j o p s x y; closed at those, so Russian or Greek prose folds into no phrase a pattern names.
|
|
24
37
|
const LOOKALIKES = new Map([
|
|
25
|
-
['\u0430', 'a'], ['\u0441', 'c'], ['\u0435', 'e'], ['\u0456', 'i'], ['\u0458', 'j'], ['\u043E', 'o'], ['\u0440', 'p'], ['\u0455', 's'],
|
|
26
|
-
['\
|
|
38
|
+
['\u0430', 'a'], ['\u0441', 'c'], ['\u0435', 'e'], ['\u0456', 'i'], ['\u0458', 'j'], ['\u043E', 'o'], ['\u0440', 'p'], ['\u0455', 's'],
|
|
39
|
+
['\u0445', 'x'], ['\u0443', 'y'],
|
|
40
|
+
['\u0410', 'A'], ['\u0421', 'C'], ['\u0415', 'E'], ['\u0406', 'I'], ['\u0408', 'J'], ['\u041E', 'O'], ['\u0420', 'P'], ['\u0405', 'S'],
|
|
41
|
+
['\u0425', 'X'], ['\u0423', 'Y'],
|
|
27
42
|
['\u03B1', 'a'], ['\u03B5', 'e'], ['\u03B9', 'i'], ['\u03F3', 'j'], ['\u03BF', 'o'], ['\u03C1', 'p'], ['\u03C7', 'x'], ['\u03B3', 'y'],
|
|
28
43
|
['\u0391', 'A'], ['\u0395', 'E'], ['\u0399', 'I'], ['\u037F', 'J'], ['\u039F', 'O'], ['\u03A1', 'P'], ['\u03A7', 'X'], ['\u03A5', 'Y'],
|
|
29
44
|
]);
|
package/dist/api/learn.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type InvalidationOptions, type InvalidationResult, type InvalidationTarget } from '../learn/invalidation.js';
|
|
1
2
|
import type { Context } from './types.js';
|
|
2
3
|
/** How a surface writes what it learns. */
|
|
3
4
|
export interface LearnProfile {
|
|
@@ -28,4 +29,7 @@ export interface LearnResult {
|
|
|
28
29
|
}
|
|
29
30
|
/** Learn from `repoPath`'s last `days` of commits into the caller's tenant. Host admin only. */
|
|
30
31
|
export declare function learn(ctx: Context, opts: LearnOpts): LearnResult;
|
|
32
|
+
export type { InvalidationOptions, InvalidationResult, InvalidationTarget };
|
|
33
|
+
/** `hippo invalidate`: weakens the caller's tenant's memories that reference `target.from`, or only the one `options.onlyId` names. */
|
|
34
|
+
export declare function invalidateMemories(ctx: Context, target: InvalidationTarget, options: InvalidationOptions): InvalidationResult;
|
|
31
35
|
//# sourceMappingURL=learn.d.ts.map
|