hippo-memory 1.69.0 → 1.71.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 +5 -2
- 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 +5 -5
- package/dist/agent-memories/claude-code.js +25 -12
- package/dist/agent-memories/copilot.js +3 -2
- package/dist/agent-memories/files.js +26 -14
- 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/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/report.d.ts +1 -1
- package/dist/agent-memories/report.js +3 -2
- package/dist/agent-memories/source.d.ts +1 -1
- package/dist/agent-memories/source.js +6 -5
- package/dist/agent-memories/sync.d.ts +5 -3
- package/dist/agent-memories/sync.js +34 -38
- package/dist/agent-memories/types.d.ts +1 -1
- package/dist/api/assemble.d.ts +9 -46
- package/dist/api/assemble.js +44 -54
- package/dist/api/audit.d.ts +8 -7
- package/dist/api/audit.js +15 -21
- package/dist/api/auth.d.ts +17 -39
- package/dist/api/auth.js +76 -216
- 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} +4 -17
- package/dist/{availability.js → api/availability.js} +14 -44
- 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 +5 -5
- package/dist/api/context-select.js +39 -48
- package/dist/api/context-types.d.ts +15 -40
- package/dist/api/context.d.ts +7 -26
- package/dist/api/context.js +67 -97
- package/dist/api/dormant.d.ts +7 -23
- package/dist/api/dormant.js +40 -128
- package/dist/api/drill-down.d.ts +9 -48
- package/dist/api/drill-down.js +41 -90
- package/dist/api/forget.d.ts +5 -33
- package/dist/api/forget.js +17 -73
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +2 -2
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +28 -0
- package/dist/api/index.js +31 -0
- package/dist/api/instruction-detect.js +85 -0
- package/dist/api/learn.js +63 -55
- package/dist/api/ledger-db.d.ts +21 -0
- package/dist/api/ledger-db.js +81 -0
- package/dist/api/memories.d.ts +5 -0
- package/dist/api/memories.js +7 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.d.ts +16 -0
- package/dist/api/on-store.js +38 -0
- package/dist/api/outcome.d.ts +5 -42
- package/dist/api/outcome.js +15 -80
- 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/predictions.d.ts +9 -0
- package/dist/api/predictions.js +18 -0
- package/dist/api/promote.d.ts +16 -31
- package/dist/api/promote.js +38 -123
- package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
- package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
- package/dist/api/quarantine.d.ts +5 -5
- package/dist/api/quarantine.js +30 -106
- package/dist/api/recall-cli.d.ts +55 -0
- package/dist/api/recall-cli.js +94 -0
- package/dist/api/recall-core.d.ts +4 -0
- package/dist/api/recall-core.js +120 -0
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +64 -0
- package/dist/api/recall-history.js +159 -0
- package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
- package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
- 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 +101 -316
- package/dist/api/recall.d.ts +5 -33
- package/dist/api/recall.js +92 -91
- 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 +27 -12
- package/dist/api/remember.js +42 -46
- 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 -9
- package/dist/api/sleep-run.js +78 -94
- package/dist/api/sleep.d.ts +10 -29
- package/dist/api/tokens.d.ts +5 -12
- package/dist/api/tokens.js +12 -31
- package/dist/api/types.d.ts +8 -31
- package/dist/api/types.js +5 -23
- 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 +5 -13
- package/dist/capture/command.js +57 -60
- 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 +8 -16
- package/dist/capture/compact.js +56 -47
- 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} +143 -157
- package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
- package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
- package/dist/capture/copilot-transcript.js +1 -1
- 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} +2 -6
- package/dist/{session-digest.js → capture/session-digest.js} +29 -29
- 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.js +6 -4
- package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
- package/dist/capture/transcript.d.ts +2 -10
- package/dist/capture/transcript.js +72 -92
- package/dist/capture/working-state.d.ts +0 -3
- package/dist/capture/working-state.js +7 -7
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +28 -0
- package/dist/cli/audit-prune.js +40 -0
- package/dist/cli/audit.d.ts +2 -2
- package/dist/cli/audit.js +92 -88
- package/dist/cli/auth.d.ts +2 -1
- package/dist/cli/auth.js +69 -53
- package/dist/cli/briefs.d.ts +4 -3
- package/dist/cli/briefs.js +76 -202
- package/dist/cli/card.d.ts +2 -1
- package/dist/cli/card.js +55 -54
- package/dist/cli/client.d.ts +28 -0
- package/dist/{client.js → cli/client.js} +25 -44
- package/dist/cli/compact-resume-payload.d.ts +8 -0
- package/dist/cli/compact-resume-payload.js +40 -0
- package/dist/cli/context.d.ts +1 -13
- package/dist/cli/context.js +51 -77
- package/dist/cli/continuity.d.ts +6 -5
- package/dist/cli/continuity.js +153 -145
- package/dist/cli/correction-latency.d.ts +24 -0
- package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +226 -222
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +70 -52
- package/dist/cli/decisions.d.ts +4 -3
- package/dist/cli/decisions.js +129 -253
- package/dist/cli/eval.d.ts +1 -3
- package/dist/cli/eval.js +56 -42
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +1 -2
- package/dist/cli/explain.js +39 -21
- package/dist/cli/flag-values.d.ts +30 -0
- package/dist/cli/flag-values.js +120 -0
- package/dist/cli/flags.d.ts +304 -0
- package/dist/cli/flags.js +169 -0
- package/dist/cli/github.d.ts +14 -0
- package/dist/cli/github.js +184 -0
- package/dist/cli/goals.d.ts +2 -1
- package/dist/cli/goals.js +76 -75
- package/dist/cli/hook-runtime.d.ts +31 -0
- package/dist/cli/hook-runtime.js +139 -0
- package/dist/cli/init.d.ts +2 -1
- package/dist/cli/init.js +153 -126
- package/dist/cli/install-steps.d.ts +7 -0
- package/dist/cli/install-steps.js +101 -0
- package/dist/cli/last-sleep.d.ts +3 -1
- package/dist/cli/last-sleep.js +12 -7
- package/dist/cli/maintenance.d.ts +5 -4
- package/dist/cli/maintenance.js +41 -42
- package/dist/cli/object-verbs.d.ts +40 -0
- package/dist/cli/object-verbs.js +66 -0
- package/dist/cli/owner-validation.d.ts +18 -0
- package/dist/cli/owner-validation.js +33 -0
- package/dist/cli/playbooks.d.ts +4 -3
- package/dist/cli/playbooks.js +98 -306
- package/dist/cli/print.d.ts +15 -0
- package/dist/cli/print.js +82 -0
- package/dist/cli/projects.d.ts +2 -3
- package/dist/cli/projects.js +56 -51
- package/dist/cli/provenance-coverage.d.ts +14 -0
- package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
- package/dist/cli/quality-repair-once.js +4 -4
- package/dist/cli/recall.d.ts +2 -6
- package/dist/cli/recall.js +128 -253
- package/dist/cli/refine-llm.d.ts +35 -0
- package/dist/cli/refine-llm.js +128 -0
- package/dist/cli/remember.d.ts +4 -6
- package/dist/cli/remember.js +193 -230
- package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
- package/dist/{scheduler.js → cli/scheduler.js} +22 -22
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.js +46 -7
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +263 -258
- package/dist/cli/setup.d.ts +4 -3
- package/dist/cli/setup.js +55 -37
- package/dist/cli/shared.d.ts +14 -118
- package/dist/cli/shared.js +26 -400
- package/dist/cli/slack.d.ts +2 -1
- package/dist/cli/slack.js +46 -74
- package/dist/cli/sleep-render.d.ts +4 -0
- package/dist/cli/sleep-render.js +61 -0
- package/dist/cli/sleep.d.ts +3 -8
- package/dist/cli/sleep.js +34 -91
- package/dist/cli/status.d.ts +9 -12
- package/dist/cli/status.js +86 -131
- package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
- package/dist/{stdin.js → cli/stdin.js} +8 -9
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +125 -122
- package/dist/cli/usage.js +13 -5
- package/dist/cli.d.ts +69 -167
- package/dist/cli.js +187 -296
- package/dist/connectors/dlq.d.ts +44 -0
- package/dist/connectors/dlq.js +30 -0
- package/dist/connectors/github/backfill.d.ts +6 -26
- package/dist/connectors/github/backfill.js +42 -114
- package/dist/connectors/github/deletion.d.ts +6 -21
- package/dist/connectors/github/deletion.js +17 -64
- package/dist/connectors/github/dlq.d.ts +12 -91
- package/dist/connectors/github/dlq.js +23 -140
- package/dist/connectors/github/ingest.d.ts +4 -37
- package/dist/connectors/github/ingest.js +24 -93
- package/dist/connectors/github/octokit-client.d.ts +5 -17
- package/dist/connectors/github/octokit-client.js +29 -25
- 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 +4 -26
- package/dist/connectors/github/tenant-routing.js +13 -61
- package/dist/connectors/github/transform.d.ts +1 -1
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +4 -16
- package/dist/connectors/github/types.js +17 -27
- package/dist/connectors/github/webhook.d.ts +5 -18
- package/dist/connectors/github/webhook.js +86 -105
- package/dist/connectors/slack/backfill.d.ts +5 -18
- package/dist/connectors/slack/backfill.js +9 -42
- package/dist/connectors/slack/deletion.d.ts +4 -7
- package/dist/connectors/slack/deletion.js +20 -49
- package/dist/connectors/slack/dlq.d.ts +9 -68
- package/dist/connectors/slack/dlq.js +26 -136
- package/dist/connectors/slack/ingest.d.ts +4 -18
- package/dist/connectors/slack/ingest.js +26 -91
- 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/signature.js +2 -1
- package/dist/connectors/slack/tenant-routing.d.ts +4 -18
- package/dist/connectors/slack/tenant-routing.js +11 -31
- package/dist/connectors/slack/transform.d.ts +3 -19
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +4 -10
- package/dist/connectors/slack/types.js +5 -16
- package/dist/connectors/slack/web-client.js +34 -28
- package/dist/connectors/slack/webhook.d.ts +5 -21
- package/dist/connectors/slack/webhook.js +80 -108
- package/dist/connectors/slack/workspaces.d.ts +8 -41
- package/dist/connectors/slack/workspaces.js +8 -58
- package/dist/consolidate/conflicts.d.ts +1 -1
- package/dist/consolidate/conflicts.js +10 -18
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
- package/dist/{dag.js → consolidate/dag.js} +49 -131
- package/dist/consolidate/decay.d.ts +2 -2
- package/dist/consolidate/decay.js +35 -41
- package/dist/consolidate/dedupe.d.ts +29 -0
- package/dist/consolidate/dedupe.js +103 -0
- package/dist/consolidate/flush-units.d.ts +5 -6
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +34 -0
- package/dist/consolidate/half-life-migration.js +89 -0
- package/dist/consolidate/llm-passes.js +12 -29
- package/dist/consolidate/memory-value-weights.d.ts +8 -0
- package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
- package/dist/consolidate/memory-value.d.ts +45 -0
- package/dist/consolidate/memory-value.js +164 -0
- package/dist/consolidate/merge.js +65 -83
- package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
- package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
- package/dist/consolidate/physics-pass.js +46 -48
- package/dist/consolidate/replay.d.ts +9 -0
- package/dist/consolidate/replay.js +84 -0
- package/dist/consolidate/run.d.ts +7 -13
- package/dist/consolidate/run.js +6 -37
- package/dist/consolidate/sleep.d.ts +2 -9
- package/dist/consolidate/sleep.js +69 -151
- package/dist/consolidate/trace.d.ts +19 -0
- package/dist/{trace.js → consolidate/trace.js} +7 -24
- package/dist/consolidate/traces.js +40 -51
- package/dist/core/ablation.d.ts +15 -0
- package/dist/core/ablation.js +49 -0
- 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.d.ts → core/ambient.d.ts} +1 -8
- package/dist/{ambient.js → core/ambient.js} +13 -18
- package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
- package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
- package/dist/{card.d.ts → core/card.d.ts} +4 -1
- package/dist/{card.js → core/card.js} +8 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.js +70 -0
- package/dist/{config.d.ts → core/config.d.ts} +14 -28
- package/dist/{config.js → core/config.js} +101 -75
- package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
- package/dist/core/handoff.js +81 -0
- package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
- package/dist/core/memory.d.ts +183 -0
- package/dist/core/memory.js +380 -0
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
- package/dist/{physics-config.js → core/physics-config.js} +3 -8
- package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
- package/dist/{physics.js → core/physics.js} +60 -122
- package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
- package/dist/{project-identity.js → core/project-identity.js} +22 -55
- package/dist/{project-remote.js → core/project-remote.js} +17 -6
- package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
- package/dist/{salience.js → core/salience.js} +36 -27
- 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} +7 -7
- 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} +11 -10
- package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
- package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
- package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
- package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
- package/dist/db/backup.js +1 -1
- package/dist/db/busy.d.ts +19 -2
- package/dist/db/busy.js +88 -14
- package/dist/db/connect.d.ts +11 -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 +28 -33
- package/dist/db/migrations/types.d.ts +2 -5
- package/dist/db/migrations/v08.js +1 -1
- package/dist/db/migrations/v14.js +39 -36
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +31 -29
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v18.js +6 -5
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +5 -8
- package/dist/db/migrations/v22.js +28 -38
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +25 -22
- 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 +23 -32
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +23 -31
- 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 +10 -21
- package/dist/db/migrations/v40.js +8 -14
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +7 -6
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v46.js +1 -1
- package/dist/db/migrations/v47.js +2 -3
- 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/v51.js +1 -1
- package/dist/db/migrations/v52.js +1 -1
- package/dist/db/open.d.ts +11 -1
- package/dist/db/open.js +37 -4
- package/dist/db/physics-state.d.ts +23 -0
- package/dist/{physics-state.js → db/physics-state.js} +34 -52
- package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
- package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
- 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} +6 -2
- package/dist/{vector-store.js → db/vector-store.js} +83 -51
- package/dist/db/wal-checkpointer.d.ts +11 -0
- package/dist/db/wal-checkpointer.js +92 -0
- package/dist/doctor.js +176 -152
- 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 +5 -4
- package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
- package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
- package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
- package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
- package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
- package/dist/{eval.js → eval/eval.js} +35 -55
- package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
- package/dist/{judgment.js → eval/judgment.js} +23 -20
- package/dist/extensions/openclaw-plugin/index.js +2 -3
- 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} +10 -32
- package/dist/{graph-extract.js → graph/extract.js} +40 -81
- package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
- package/dist/{graph-recall.js → graph/recall.js} +65 -108
- package/dist/graph/stream.d.ts +38 -0
- package/dist/{graph-stream.js → graph/stream.js} +20 -41
- package/dist/graph/view.d.ts +50 -0
- package/dist/graph/view.js +265 -0
- 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 +16 -17
- package/dist/hooks/copilot.d.ts +1 -8
- package/dist/hooks/copilot.js +16 -16
- package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
- package/dist/{cli → hooks}/hook-blocks.js +38 -125
- package/dist/hooks/json-hooks.d.ts +5 -37
- package/dist/hooks/json-hooks.js +49 -179
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +44 -103
- package/dist/hooks/shared.d.ts +8 -21
- package/dist/hooks/shared.js +30 -25
- package/dist/importers/core.d.ts +13 -42
- package/dist/importers/core.js +48 -64
- package/dist/importers/markdown-parse.d.ts +9 -32
- package/dist/importers/markdown-parse.js +10 -44
- package/dist/importers/markdown.js +5 -13
- package/dist/importers/sources.js +57 -81
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +95 -172
- package/dist/index.d.ts +26 -22
- package/dist/index.js +25 -21
- package/dist/learn/autolearn.d.ts +29 -0
- package/dist/{autolearn.js → learn/autolearn.js} +26 -51
- 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 +123 -0
- package/dist/learn/forward-claim-detector.d.ts +12 -0
- package/dist/learn/forward-claim-detector.js +60 -0
- package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
- package/dist/{invalidation.js → learn/invalidation.js} +92 -125
- package/dist/mcp/admin-tools.d.ts +1 -1
- package/dist/mcp/admin-tools.js +39 -64
- 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.js +10 -35
- package/dist/mcp/protocol.d.ts +14 -36
- package/dist/mcp/protocol.js +10 -19
- package/dist/mcp/recall-tools.d.ts +2 -2
- package/dist/mcp/recall-tools.js +70 -52
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +71 -85
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +6 -17
- package/dist/mcp/session-state.d.ts +2 -3
- package/dist/mcp/session-state.js +7 -13
- package/dist/mcp/shared-gate.js +1 -1
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +112 -38
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +7 -5
- package/dist/objects/customer-notes.d.ts +44 -0
- package/dist/objects/customer-notes.js +71 -0
- package/dist/objects/decisions.d.ts +41 -0
- package/dist/objects/decisions.js +63 -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/objects/incidents.d.ts +45 -0
- package/dist/objects/incidents.js +96 -0
- package/dist/objects/lifecycle.d.ts +27 -0
- package/dist/objects/lifecycle.js +96 -0
- package/dist/objects/policies.d.ts +60 -0
- package/dist/objects/policies.js +102 -0
- package/dist/objects/processes.d.ts +43 -0
- package/dist/objects/processes.js +92 -0
- package/dist/objects/project-briefs.d.ts +63 -0
- package/dist/objects/project-briefs.js +194 -0
- package/dist/objects/skills.d.ts +51 -0
- package/dist/objects/skills.js +110 -0
- package/dist/postinstall.js +10 -21
- package/dist/predictions/planning-fallacy.d.ts +14 -109
- package/dist/predictions/planning-fallacy.js +4 -129
- package/dist/rerankers/clef.d.ts +2 -6
- package/dist/rerankers/clef.js +28 -76
- package/dist/rerankers/cross-encoder.d.ts +0 -7
- package/dist/rerankers/cross-encoder.js +18 -28
- package/dist/rerankers/index.js +8 -7
- package/dist/rerankers/jev.d.ts +1 -4
- package/dist/rerankers/jev.js +36 -52
- package/dist/rerankers/llm.d.ts +2 -13
- package/dist/rerankers/llm.js +42 -59
- package/dist/rerankers/outage-warning.d.ts +8 -0
- package/dist/rerankers/outage-warning.js +32 -0
- package/dist/rerankers/remote.d.ts +4 -0
- package/dist/rerankers/remote.js +25 -0
- package/dist/rerankers/types.d.ts +3 -15
- 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 -3
- package/dist/search/boosts.js +36 -15
- 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/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +90 -0
- package/dist/search/hybrid-score.d.ts +2 -2
- package/dist/search/hybrid-score.js +1 -1
- package/dist/search/hybrid.d.ts +6 -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} +9 -8
- package/dist/search/path-context.d.ts +11 -0
- package/dist/{path-context.js → search/path-context.js} +8 -19
- package/dist/search/physics-search.d.ts +4 -4
- package/dist/search/physics-search.js +25 -22
- package/dist/search/rerank.d.ts +3 -3
- package/dist/search/rerank.js +4 -3
- package/dist/search/rrf.d.ts +15 -0
- package/dist/search/rrf.js +36 -0
- package/dist/search/temporal.d.ts +1 -1
- package/dist/search/temporal.js +5 -2
- package/dist/search/vector.d.ts +10 -3
- package/dist/search/vector.js +51 -15
- package/dist/server/auth.d.ts +10 -29
- package/dist/server/auth.js +57 -42
- package/dist/server/boot.d.ts +5 -0
- package/dist/server/boot.js +432 -0
- package/dist/server/client-ip.d.ts +8 -20
- package/dist/server/client-ip.js +23 -34
- 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/defaults.d.ts +3 -0
- package/dist/server/defaults.js +4 -0
- package/dist/server/key-check-bounds.d.ts +9 -0
- package/dist/server/key-check-bounds.js +46 -0
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +20 -5
- package/dist/server/mcp-http.d.ts +1 -4
- package/dist/server/mcp-http.js +44 -68
- package/dist/server/rate-limit.d.ts +21 -0
- package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
- package/dist/server/ready.d.ts +7 -0
- package/dist/server/ready.js +38 -0
- package/dist/server/request.d.ts +14 -12
- package/dist/server/request.js +71 -28
- package/dist/server/route-table.d.ts +15 -0
- package/dist/server/route-table.js +202 -0
- package/dist/server/routes/admin.js +29 -30
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +35 -105
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +45 -115
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +44 -105
- package/dist/server/routes/memories.js +21 -43
- package/dist/server/routes/object-routes.d.ts +35 -0
- package/dist/server/routes/object-routes.js +72 -0
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +42 -134
- package/dist/server/routes/predictions.js +35 -63
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +44 -134
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +41 -120
- package/dist/server/routes/recall.js +21 -44
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +40 -138
- package/dist/server/server-detect.d.ts +28 -0
- package/dist/server/server-detect.js +156 -0
- 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 +73 -0
- package/dist/server/tls.d.ts +6 -0
- package/dist/server/tls.js +24 -0
- package/dist/server/types.d.ts +35 -14
- package/dist/server/validation.d.ts +6 -5
- package/dist/server/validation.js +16 -34
- package/dist/server.d.ts +39 -61
- package/dist/server.js +26 -569
- 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 +80 -0
- package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
- package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
- package/dist/sharing/scope.d.ts +7 -0
- package/dist/{scope.js → sharing/scope.js} +5 -12
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +38 -0
- package/dist/sharing/share.js +226 -0
- package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
- package/dist/{ambient-store.js → store/ambient.js} +11 -16
- package/dist/store/audit-event.d.ts +15 -17
- package/dist/store/audit-event.js +9 -16
- package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
- package/dist/{audit.js → store/audit.js} +95 -18
- package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
- package/dist/{auth.js → store/auth.js} +108 -99
- package/dist/store/candidates.d.ts +41 -13
- package/dist/store/candidates.js +141 -60
- package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
- package/dist/{card-detail.js → store/card-detail.js} +3 -2
- package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
- package/dist/{store-cards.js → store/cards.js} +133 -248
- package/dist/store/compactions.d.ts +78 -0
- package/dist/store/compactions.js +93 -0
- package/dist/store/conflicts.d.ts +26 -26
- package/dist/store/conflicts.js +194 -222
- 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 +88 -0
- package/dist/store/delete-and-batch.d.ts +27 -51
- package/dist/store/delete-and-batch.js +100 -92
- package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
- package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
- 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 +44 -0
- package/dist/store/doctor-reads.d.ts +16 -0
- package/dist/store/doctor-reads.js +19 -0
- package/dist/store/dormant.d.ts +105 -0
- package/dist/store/dormant.js +241 -0
- package/dist/store/embeddings/index.d.ts +36 -0
- package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
- package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
- package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
- package/dist/store/embeddings/provider.d.ts +40 -0
- package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
- package/dist/store/entry-reads.d.ts +66 -63
- package/dist/store/entry-reads.js +159 -121
- package/dist/store/entry-row.d.ts +14 -37
- package/dist/store/entry-row.js +37 -45
- package/dist/store/entry-writes.d.ts +40 -17
- package/dist/store/entry-writes.js +105 -41
- 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/store/goals.d.ts +96 -0
- package/dist/store/goals.js +260 -0
- package/dist/store/graph-queue.d.ts +13 -0
- package/dist/store/graph-queue.js +70 -0
- package/dist/store/graph-reads.d.ts +41 -0
- package/dist/{graph/read.js → store/graph-reads.js} +72 -162
- package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
- package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
- package/dist/store/graph-view-rows.d.ts +13 -0
- package/dist/store/graph-view-rows.js +68 -0
- package/dist/store/graph-writes.d.ts +33 -0
- package/dist/store/graph-writes.js +232 -0
- package/dist/store/half-life.d.ts +35 -0
- package/dist/store/half-life.js +75 -0
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +54 -63
- package/dist/store/index-and-stats.d.ts +14 -20
- package/dist/store/index-and-stats.js +74 -119
- 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 +3 -7
- package/dist/store/markdown.js +25 -23
- package/dist/store/mirrors.d.ts +7 -13
- package/dist/store/mirrors.js +52 -47
- package/dist/store/object-types.d.ts +189 -0
- package/dist/store/object-types.js +4 -0
- package/dist/store/open.d.ts +6 -4
- package/dist/store/open.js +30 -36
- package/dist/store/planning-fallacy-evidence.d.ts +14 -0
- package/dist/store/planning-fallacy-evidence.js +52 -0
- package/dist/store/port.d.ts +649 -0
- package/dist/store/port.js +17 -0
- package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
- package/dist/{predictions/store.js → store/predictions.js} +88 -184
- package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
- package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
- package/dist/{quarantine.js → store/quarantine.js} +64 -22
- package/dist/store/raw-archive.d.ts +14 -0
- package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
- package/dist/store/recall-scope.d.ts +78 -0
- package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
- package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
- package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
- package/dist/store/rejected-values.d.ts +55 -0
- package/dist/store/rejected-values.js +150 -0
- package/dist/store/rejection.d.ts +54 -0
- package/dist/{rejection.js → store/rejection.js} +16 -67
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +11 -22
- package/dist/store/rows.js +52 -43
- package/dist/store/rule-sql.d.ts +5 -0
- package/dist/store/rule-sql.js +37 -0
- package/dist/store/search-rows.d.ts +22 -42
- package/dist/store/search-rows.js +55 -78
- package/dist/store/sessions.d.ts +23 -49
- package/dist/store/sessions.js +96 -118
- 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/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
- package/dist/store/sqlite/error-codec.d.ts +17 -0
- package/dist/store/sqlite/error-codec.js +61 -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 +29 -0
- package/dist/store/sqlite/executor.js +287 -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 +39 -0
- package/dist/store/sqlite/object-rows.d.ts +102 -0
- package/dist/store/sqlite/object-rows.js +221 -0
- package/dist/store/sqlite/objects-group.d.ts +20 -0
- package/dist/store/sqlite/objects-group.js +316 -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 +23 -0
- package/dist/store/sqlite/store.js +294 -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 +135 -0
- package/dist/store/sqlite/worker-ops.js +93 -0
- package/dist/store/sqlite/worker-store.d.ts +8 -0
- package/dist/store/sqlite/worker-store.js +79 -0
- package/dist/store/summaries.d.ts +11 -72
- package/dist/store/summaries.js +47 -186
- package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
- package/dist/{summary-dirty.js → 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 +11 -0
- package/dist/store/tenant.js +28 -0
- 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} +14 -51
- package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
- 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 +18 -0
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +170 -0
- package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
- package/dist/store/working-memory.js +118 -0
- package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
- package/dist/{yaml.js → store/yaml.js} +2 -6
- package/dist/support-bundle.d.ts +1 -1
- package/dist/support-bundle.js +19 -37
- 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 +65 -0
- package/dist/util/anthropic-messages.d.ts +31 -0
- package/dist/util/anthropic-messages.js +58 -0
- package/dist/util/atomic-write.d.ts +4 -0
- package/dist/util/atomic-write.js +138 -0
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/crash-handlers.d.ts +12 -0
- package/dist/util/crash-handlers.js +72 -0
- package/dist/{env.d.ts → util/env.d.ts} +27 -7
- package/dist/{env.js → util/env.js} +33 -8
- package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
- package/dist/util/home-path.js +69 -0
- package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
- package/dist/util/http-retry.js +103 -0
- 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} +7 -3
- package/dist/{log.js → util/log.js} +36 -11
- package/dist/util/real-path.d.ts +3 -0
- package/dist/util/real-path.js +15 -0
- package/dist/util/request-scope.d.ts +28 -0
- package/dist/util/request-scope.js +48 -0
- package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
- package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
- package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
- 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 +15 -0
- package/dist/util/token-text.js +20 -0
- package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
- package/dist/util/transcript-tail.js +49 -0
- package/dist/util/version.d.ts +11 -0
- package/dist/util/version.js +26 -0
- package/extensions/openclaw-plugin/index.ts +2 -6
- 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/ablation.d.ts +0 -102
- package/dist/ablation.js +0 -136
- package/dist/api.d.ts +0 -26
- package/dist/api.js +0 -29
- package/dist/audit-prune.d.ts +0 -62
- package/dist/audit-prune.js +0 -107
- package/dist/autolearn.d.ts +0 -56
- package/dist/client.d.ts +0 -48
- package/dist/compare.d.ts +0 -86
- package/dist/compare.js +0 -117
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/connectors/github/cli-impl.js +0 -227
- 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/correction-latency.d.ts +0 -36
- package/dist/customer-notes.d.ts +0 -96
- package/dist/customer-notes.js +0 -336
- package/dist/db.d.ts +0 -9
- package/dist/db.js +0 -8
- package/dist/decisions.d.ts +0 -94
- package/dist/decisions.js +0 -326
- package/dist/dedupe.d.ts +0 -75
- package/dist/dedupe.js +0 -169
- package/dist/dormant.d.ts +0 -93
- package/dist/dormant.js +0 -137
- package/dist/embedding-provider.d.ts +0 -77
- package/dist/embeddings.d.ts +0 -101
- package/dist/extract.js +0 -133
- package/dist/forward-claim-detector.d.ts +0 -36
- package/dist/forward-claim-detector.js +0 -112
- package/dist/goals.d.ts +0 -173
- package/dist/goals.js +0 -448
- package/dist/graph/read.d.ts +0 -73
- package/dist/graph/rows.d.ts +0 -45
- package/dist/graph/types.js +0 -11
- package/dist/graph-stream.d.ts +0 -70
- package/dist/graph-view.d.ts +0 -73
- package/dist/graph-view.js +0 -333
- package/dist/half-life-migration.d.ts +0 -63
- package/dist/half-life-migration.js +0 -182
- package/dist/handoff.js +0 -68
- package/dist/home-path.js +0 -24
- package/dist/http-retry.js +0 -51
- package/dist/incidents.d.ts +0 -103
- 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/memory-value-weights.d.ts +0 -19
- package/dist/memory-value.d.ts +0 -113
- package/dist/memory-value.js +0 -250
- package/dist/memory.d.ts +0 -294
- package/dist/memory.js +0 -522
- package/dist/owner-validation.d.ts +0 -42
- package/dist/owner-validation.js +0 -56
- package/dist/path-context.d.ts +0 -24
- package/dist/physics-state.d.ts +0 -39
- package/dist/policies.d.ts +0 -151
- package/dist/policies.js +0 -434
- package/dist/processes.d.ts +0 -108
- package/dist/processes.js +0 -371
- package/dist/project-briefs.d.ts +0 -128
- package/dist/project-briefs.js +0 -523
- package/dist/provenance-coverage.d.ts +0 -18
- package/dist/rate-limit.d.ts +0 -34
- package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
- package/dist/raw-archive.d.ts +0 -24
- package/dist/recall-history.d.ts +0 -131
- package/dist/recall-history.js +0 -227
- package/dist/recall-scope.d.ts +0 -138
- package/dist/refine-llm.d.ts +0 -61
- package/dist/refine-llm.js +0 -167
- package/dist/reject-flow.d.ts +0 -69
- package/dist/reject-flow.js +0 -260
- package/dist/rejection.d.ts +0 -100
- package/dist/replay.d.ts +0 -41
- package/dist/replay.js +0 -122
- package/dist/rrf.d.ts +0 -43
- package/dist/rrf.js +0 -61
- package/dist/scope.d.ts +0 -14
- package/dist/server-detect.d.ts +0 -72
- package/dist/server-detect.js +0 -222
- package/dist/session-owners.d.ts +0 -7
- package/dist/session-owners.js +0 -54
- package/dist/shared.d.ts +0 -186
- package/dist/shared.js +0 -540
- package/dist/skills.d.ts +0 -101
- package/dist/skills.js +0 -367
- package/dist/store/entry-writes-group.d.ts +0 -9
- package/dist/store/vector-writes.d.ts +0 -6
- package/dist/store/vector-writes.js +0 -59
- package/dist/store-port.d.ts +0 -262
- package/dist/store-port.js +0 -178
- package/dist/tenant.d.ts +0 -25
- package/dist/tenant.js +0 -43
- package/dist/trace.d.ts +0 -34
- package/dist/transcript-tail.js +0 -48
- package/dist/version.d.ts +0 -26
- package/dist/version.js +0 -41
- package/dist/working-memory.js +0 -154
- /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/{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/{share-scrub.d.ts → capture/share-scrub.d.ts} +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/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
- /package/dist/{api-errors.js → core/api-errors.js} +0 -0
- /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
- /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
- /package/dist/{prompt-recall.d.ts → core/prompt-recall.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.js → dashboard/dashboard-types.js} +0 -0
- /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
- /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
- /package/dist/{escape.js → util/escape.js} +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/{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/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
- /package/dist/{write-budget.js → util/write-budget.js} +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// The reject, unreject and list flow the CLI verbs and the api functions share: the rules and their wording live here,
|
|
2
|
+
// and src/store/rejected-values.ts runs each one on a single handle.
|
|
3
|
+
import { BadRequestError } from '../core/api-errors.js';
|
|
4
|
+
import { isPersonalScope } from '../store/recall-scope.js';
|
|
5
|
+
import { mergedSuccessor } from '../consolidate/merged-row.js';
|
|
6
|
+
import { normalizeValueForRejection } from '../store/rejection.js';
|
|
7
|
+
import { applyRejection, liftRejection, loadRejectedValues, } from '../store/rejected-values.js';
|
|
8
|
+
function assertRejectOpts(opts) {
|
|
9
|
+
if (!opts.reason.trim()) {
|
|
10
|
+
throw new Error('reject requires a non-empty --reason (the tombstone stores no content; reason is its only identity).');
|
|
11
|
+
}
|
|
12
|
+
if (opts.memoryId === undefined && opts.value === undefined) {
|
|
13
|
+
throw new Error('reject requires either a memory id or --value.');
|
|
14
|
+
}
|
|
15
|
+
if (opts.memoryId !== undefined && opts.value !== undefined) {
|
|
16
|
+
// Enforced here, not only in the CLI parser, so a direct api caller passing both
|
|
17
|
+
// is refused instead of silently getting the memoryId path with `value` ignored.
|
|
18
|
+
throw new Error('reject accepts either a memory id or --value, not both.');
|
|
19
|
+
}
|
|
20
|
+
if (opts.value !== undefined && normalizeValueForRejection(opts.value).length === 0) {
|
|
21
|
+
// Direct api callers can pass strings the CLI flag parser would refuse; an empty-normalized tombstone would refuse nothing and pollute the listing.
|
|
22
|
+
throw new Error('reject --value requires non-empty content.');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function contentToReject(opts, row) {
|
|
26
|
+
if (opts.memoryId === undefined)
|
|
27
|
+
return opts.value;
|
|
28
|
+
if (!row || row.tenant_id !== opts.tenantId) {
|
|
29
|
+
throw new Error(`memory not found: ${opts.memoryId}`);
|
|
30
|
+
}
|
|
31
|
+
// A tombstone is tenant-wide, so one made from personal text would show its reason to everyone.
|
|
32
|
+
if (isPersonalScope(row.scope))
|
|
33
|
+
throw new BadRequestError("Personal memories can't be rejected. Use forget to remove it.");
|
|
34
|
+
return row.content;
|
|
35
|
+
}
|
|
36
|
+
/** Every row but another person's personal one, which is outside the caller's recall and so outside its reject. */
|
|
37
|
+
function inReach(opts, scope) {
|
|
38
|
+
return !isPersonalScope(scope) || scope === opts.ownScope;
|
|
39
|
+
}
|
|
40
|
+
/** `hippo reject` and `api.reject`: refuses a bad request, then tombstones the value and removes every row in reach that holds it. */
|
|
41
|
+
export function rejectValue(opts) {
|
|
42
|
+
assertRejectOpts(opts);
|
|
43
|
+
return applyRejection(opts.hippoRoot, {
|
|
44
|
+
tenantId: opts.tenantId,
|
|
45
|
+
actor: opts.actor,
|
|
46
|
+
reason: opts.reason,
|
|
47
|
+
memoryId: opts.memoryId,
|
|
48
|
+
textOf: (source) => contentToReject(opts, source),
|
|
49
|
+
inReach: (scope) => inReach(opts, scope),
|
|
50
|
+
successorOf: mergedSuccessor,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/** `hippo unreject` and `api.unreject`: lifts the one tombstone a digest or prefix names. The only way to allow a rejected value again. */
|
|
54
|
+
export function unrejectValue(hippoRoot, tenantId, digestOrPrefix, actor) {
|
|
55
|
+
// A blank prefix would match every digest and list the whole tombstone set as ambiguous.
|
|
56
|
+
if (digestOrPrefix.trim().length === 0) {
|
|
57
|
+
return { status: 'not_found' };
|
|
58
|
+
}
|
|
59
|
+
return liftRejection(hippoRoot, tenantId, digestOrPrefix, actor);
|
|
60
|
+
}
|
|
61
|
+
/** `hippo rejections` / `api.listRejections` — list tombstones for a tenant. */
|
|
62
|
+
export function listRejectionsForTenant(hippoRoot, tenantId) {
|
|
63
|
+
return loadRejectedValues(hippoRoot, tenantId);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=reject-flow.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** The one Anthropic Messages client: sends one user prompt and returns the reply text or a typed failure the caller reacts to. */
|
|
2
|
+
export interface AnthropicMessageRequest {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
model?: string;
|
|
5
|
+
maxTokens: number;
|
|
6
|
+
prompt: string;
|
|
7
|
+
/** Injected for tests; defaults to the real fetch. */
|
|
8
|
+
fetcher?: typeof fetch;
|
|
9
|
+
}
|
|
10
|
+
export type AnthropicMessageFailure = {
|
|
11
|
+
kind: 'request';
|
|
12
|
+
message: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'http';
|
|
15
|
+
status: number;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'unreadable';
|
|
18
|
+
message: string;
|
|
19
|
+
};
|
|
20
|
+
export type AnthropicMessageResult = {
|
|
21
|
+
ok: true;
|
|
22
|
+
text: string;
|
|
23
|
+
} | {
|
|
24
|
+
ok: false;
|
|
25
|
+
failure: AnthropicMessageFailure;
|
|
26
|
+
};
|
|
27
|
+
/** The reply's first text block, trimmed (empty when the reply has none); never throws. */
|
|
28
|
+
export declare function sendAnthropicMessage(req: AnthropicMessageRequest): Promise<AnthropicMessageResult>;
|
|
29
|
+
/** The text extraction and DAG summaries hand to their `onError` callback. */
|
|
30
|
+
export declare function describeMessageFailure(failure: AnthropicMessageFailure): string;
|
|
31
|
+
//# sourceMappingURL=anthropic-messages.d.ts.map
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** The one Anthropic Messages client: sends one user prompt and returns the reply text or a typed failure the caller reacts to. */
|
|
2
|
+
import { fetchWithRetry, llmTimeoutMs } from './http-retry.js';
|
|
3
|
+
import { errorMessage } from './log.js';
|
|
4
|
+
import { readCappedJson } from './capped-json.js';
|
|
5
|
+
import { isJsonObject, isJsonString } from './json.js';
|
|
6
|
+
const MESSAGES_URL = 'https://api.anthropic.com/v1/messages';
|
|
7
|
+
const API_VERSION = '2023-06-01';
|
|
8
|
+
const DEFAULT_MODEL = 'claude-sonnet-4-6';
|
|
9
|
+
// Callers ask for at most 1,200 tokens, a reply of a few KB; 1 MiB leaves room for a verbose envelope.
|
|
10
|
+
const MAX_REPLY_BYTES = 1024 * 1024;
|
|
11
|
+
/** The first content block's text, trimmed; empty when the reply has no such block. */
|
|
12
|
+
function firstText(reply) {
|
|
13
|
+
const first = Array.isArray(reply.content) ? reply.content[0] : undefined;
|
|
14
|
+
const text = isJsonObject(first) ? first.text : undefined;
|
|
15
|
+
return isJsonString(text) ? text.trim() : '';
|
|
16
|
+
}
|
|
17
|
+
/** The reply's first text block, trimmed (empty when the reply has none); never throws. */
|
|
18
|
+
export async function sendAnthropicMessage(req) {
|
|
19
|
+
let res;
|
|
20
|
+
try {
|
|
21
|
+
res = await fetchWithRetry(MESSAGES_URL, {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
headers: {
|
|
24
|
+
'content-type': 'application/json',
|
|
25
|
+
'x-api-key': req.apiKey,
|
|
26
|
+
'anthropic-version': API_VERSION,
|
|
27
|
+
},
|
|
28
|
+
body: JSON.stringify({
|
|
29
|
+
model: req.model ?? DEFAULT_MODEL,
|
|
30
|
+
max_tokens: req.maxTokens,
|
|
31
|
+
messages: [{ role: 'user', content: req.prompt }],
|
|
32
|
+
}),
|
|
33
|
+
}, { timeoutMs: llmTimeoutMs(), fetchFn: req.fetcher ?? fetch });
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
return { ok: false, failure: { kind: 'request', message: errorMessage(err) } };
|
|
37
|
+
}
|
|
38
|
+
if (!res.ok)
|
|
39
|
+
return { ok: false, failure: { kind: 'http', status: res.status } };
|
|
40
|
+
try {
|
|
41
|
+
const data = await readCappedJson(res, MAX_REPLY_BYTES);
|
|
42
|
+
if (!isJsonObject(data))
|
|
43
|
+
return { ok: false, failure: { kind: 'unreadable', message: 'the reply is not a JSON object' } };
|
|
44
|
+
return { ok: true, text: firstText(data) };
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
return { ok: false, failure: { kind: 'unreadable', message: errorMessage(err) } };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** The text extraction and DAG summaries hand to their `onError` callback. */
|
|
51
|
+
export function describeMessageFailure(failure) {
|
|
52
|
+
switch (failure.kind) {
|
|
53
|
+
case 'request': return `request failed: ${failure.message}`;
|
|
54
|
+
case 'http': return `HTTP ${failure.status}`;
|
|
55
|
+
case 'unreadable': return `unparseable response: ${failure.message}`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=anthropic-messages.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Replaces `file` through a flushed temp file and a rename, so a reader, or a crash at any point, finds the old content or the new, whole.
|
|
2
|
+
* A file with other hard links, or a rename the platform refuses (logged), is written in place: a crash mid-write can leave it truncated. */
|
|
3
|
+
export declare function writeFileAtomic(file: string, text: string): void;
|
|
4
|
+
//# sourceMappingURL=atomic-write.d.ts.map
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// One way to replace a file a user or another program depends on: write a temp file beside it, then rename over it.
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { errorMessage, log } from './log.js';
|
|
5
|
+
const RENAME_RETRY_MS = 1000;
|
|
6
|
+
const WINDOWS_RENAME_REFUSALS = ['EPERM', 'EACCES', 'EBUSY'];
|
|
7
|
+
// A rename can be refused where an in-place write still works (a bind-mounted file, a read-only folder), so these fall back to one.
|
|
8
|
+
const REPLACE_REFUSALS = ['EBUSY', 'EXDEV', 'EACCES', 'EPERM'];
|
|
9
|
+
// Matches the usual SYMLOOP_MAX, so a link cycle ends in an error instead of a hang.
|
|
10
|
+
const MAX_LINK_HOPS = 40;
|
|
11
|
+
function errnoCode(err) {
|
|
12
|
+
return 'code' in err ? String(err.code) : '';
|
|
13
|
+
}
|
|
14
|
+
/** Windows refuses a rename onto a file another program has open, usually for a moment, so a refusal is retried before it is reported. */
|
|
15
|
+
function renameOnto(tmp, target) {
|
|
16
|
+
const deadline = Date.now() + RENAME_RETRY_MS;
|
|
17
|
+
const idle = new Int32Array(new SharedArrayBuffer(4));
|
|
18
|
+
for (let pause = 10;; pause = Math.min(pause * 2, 200)) {
|
|
19
|
+
try {
|
|
20
|
+
fs.renameSync(tmp, target);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
const transient = process.platform === 'win32' && err instanceof Error && WINDOWS_RENAME_REFUSALS.includes(errnoCode(err));
|
|
25
|
+
const left = deadline - Date.now();
|
|
26
|
+
if (!transient || left <= 0)
|
|
27
|
+
throw err;
|
|
28
|
+
Atomics.wait(idle, 0, 0, Math.min(pause, left));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Where a write to `file` lands: through any symlink, a dangling one included, so a dotfile manager's link survives. */
|
|
33
|
+
function writeTarget(file) {
|
|
34
|
+
let target = file;
|
|
35
|
+
for (let hop = 0; hop < MAX_LINK_HOPS && fs.lstatSync(target, { throwIfNoEntry: false })?.isSymbolicLink(); hop++) {
|
|
36
|
+
target = path.resolve(path.dirname(target), fs.readlinkSync(target));
|
|
37
|
+
}
|
|
38
|
+
return fs.existsSync(target) ? fs.realpathSync(target) : target;
|
|
39
|
+
}
|
|
40
|
+
/** Gives the replacement the old file's exact mode (umask trims the create mode) and, for root, its owner. */
|
|
41
|
+
function keepAccess(tmp, old) {
|
|
42
|
+
fs.chmodSync(tmp, old.mode & 0o777);
|
|
43
|
+
if (process.getuid?.() === 0)
|
|
44
|
+
fs.chownSync(tmp, old.uid, old.gid);
|
|
45
|
+
}
|
|
46
|
+
/** Cleanup must not hide the failure that made it necessary, so a cleanup error is logged and the first error stays the one thrown. */
|
|
47
|
+
function removeTemp(tmp) {
|
|
48
|
+
try {
|
|
49
|
+
fs.rmSync(tmp, { force: true });
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
log.warn(`could not remove the temporary file ${tmp}: ${errorMessage(err)}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Flushed before the rename, or a crash soon after could leave the file's name on bytes that never reached the disk. */
|
|
56
|
+
function writeFlushed(tmp, text, old) {
|
|
57
|
+
const fd = fs.openSync(tmp, 'w', (old?.mode ?? 0o666) & 0o777);
|
|
58
|
+
try {
|
|
59
|
+
fs.writeFileSync(fd, text, 'utf8');
|
|
60
|
+
if (old)
|
|
61
|
+
keepAccess(tmp, old);
|
|
62
|
+
fs.fsyncSync(fd);
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
fs.closeSync(fd);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Stores the rename itself. Windows cannot flush a folder handle, and a failure here costs durability, not content, so it only warns. */
|
|
69
|
+
function flushFolder(dir) {
|
|
70
|
+
if (process.platform === 'win32')
|
|
71
|
+
return;
|
|
72
|
+
try {
|
|
73
|
+
const fd = fs.openSync(dir, 'r');
|
|
74
|
+
try {
|
|
75
|
+
fs.fsyncSync(fd);
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
fs.closeSync(fd);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
log.warn(`could not flush the folder ${dir} to disk after replacing a file in it: ${errorMessage(err)}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function replaceViaTemp(target, text, old) {
|
|
86
|
+
const tmp = `${target}.${process.pid}.tmp`;
|
|
87
|
+
try {
|
|
88
|
+
writeFlushed(tmp, text, old);
|
|
89
|
+
renameOnto(tmp, target);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
removeTemp(tmp);
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
flushFolder(path.dirname(target));
|
|
96
|
+
}
|
|
97
|
+
/** The pre-rename write: it truncates first, so it is only the fallback, but it needs just a writable file and keeps hard links together. */
|
|
98
|
+
function writeInPlace(target, text) {
|
|
99
|
+
try {
|
|
100
|
+
fs.writeFileSync(target, text, 'utf8');
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
if (!(err instanceof Error))
|
|
104
|
+
throw err;
|
|
105
|
+
const reason = errnoCode(err) === 'EBUSY'
|
|
106
|
+
? 'is in use by another program, so hippo could not replace it; close that program and run the command again'
|
|
107
|
+
: `could not be replaced (${errnoCode(err) || err.message})`;
|
|
108
|
+
throw new Error(`${target} ${reason}`, { cause: err });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** Replaces `file` through a flushed temp file and a rename, so a reader, or a crash at any point, finds the old content or the new, whole.
|
|
112
|
+
* A file with other hard links, or a rename the platform refuses (logged), is written in place: a crash mid-write can leave it truncated. */
|
|
113
|
+
export function writeFileAtomic(file, text) {
|
|
114
|
+
const target = writeTarget(file);
|
|
115
|
+
const old = fs.statSync(target, { throwIfNoEntry: false });
|
|
116
|
+
if (old === undefined) {
|
|
117
|
+
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// A rename replaces a read-only file that the in-place write refused, and Windows would retry that refusal for a second.
|
|
121
|
+
fs.accessSync(target, fs.constants.W_OK);
|
|
122
|
+
}
|
|
123
|
+
if (old !== undefined && old.nlink > 1) {
|
|
124
|
+
// A rename gives the file a new inode, which would leave the other hard links on the old content.
|
|
125
|
+
writeInPlace(target, text);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
replaceViaTemp(target, text, old);
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
if (!(err instanceof Error) || !REPLACE_REFUSALS.includes(errnoCode(err)))
|
|
133
|
+
throw err;
|
|
134
|
+
log.warn(`${target} could not be replaced by a rename (${errnoCode(err)}), so it is written in place: not atomic, a crash mid-write can leave it truncated`);
|
|
135
|
+
writeInPlace(target, text);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=atomic-write.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { JsonValue } from './json.js';
|
|
2
|
+
/** Reads a reply body as JSON and stops with an error as soon as it passes `maxBytes`. */
|
|
3
|
+
export declare function readCappedJson(resp: Response, maxBytes: number): Promise<JsonValue>;
|
|
4
|
+
/** Reads at most `maxBytes` of a body as text, then cancels the rest; never throws on size. */
|
|
5
|
+
export declare function readCappedText(resp: Response, maxBytes: number): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=capped-json.d.ts.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// The timeout bounds time, not bytes: a hostile endpoint could stream a huge 2xx body into memory.
|
|
2
|
+
/** Reads a reply body as JSON and stops with an error as soon as it passes `maxBytes`. */
|
|
3
|
+
export async function readCappedJson(resp, maxBytes) {
|
|
4
|
+
if (!resp.body)
|
|
5
|
+
throw new Error('reply has no body');
|
|
6
|
+
const reader = resp.body.getReader();
|
|
7
|
+
const decoder = new TextDecoder();
|
|
8
|
+
let raw = '';
|
|
9
|
+
let received = 0;
|
|
10
|
+
for (;;) {
|
|
11
|
+
const { done, value } = await reader.read();
|
|
12
|
+
if (done)
|
|
13
|
+
break;
|
|
14
|
+
received += value.byteLength;
|
|
15
|
+
if (received > maxBytes) {
|
|
16
|
+
await reader.cancel();
|
|
17
|
+
throw new Error(`reply over ${maxBytes} bytes`);
|
|
18
|
+
}
|
|
19
|
+
raw += decoder.decode(value, { stream: true });
|
|
20
|
+
}
|
|
21
|
+
raw += decoder.decode();
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(raw);
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
throw new Error('reply is not JSON', { cause: err });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Reads at most `maxBytes` of a body as text, then cancels the rest; never throws on size. */
|
|
30
|
+
export async function readCappedText(resp, maxBytes) {
|
|
31
|
+
if (!resp.body)
|
|
32
|
+
return '';
|
|
33
|
+
const reader = resp.body.getReader();
|
|
34
|
+
const chunks = [];
|
|
35
|
+
let received = 0;
|
|
36
|
+
while (received < maxBytes) {
|
|
37
|
+
const { done, value } = await reader.read();
|
|
38
|
+
if (done)
|
|
39
|
+
break;
|
|
40
|
+
chunks.push(value.subarray(0, maxBytes - received));
|
|
41
|
+
received += chunks[chunks.length - 1].byteLength;
|
|
42
|
+
}
|
|
43
|
+
await reader.cancel();
|
|
44
|
+
return new TextDecoder().decode(Buffer.concat(chunks));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=capped-json.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** What an entry point runs before it exits, and how long that may take before the process is ended without it. */
|
|
2
|
+
export interface Shutdown {
|
|
3
|
+
readonly run: () => void | Promise<void>;
|
|
4
|
+
readonly boundMs: number;
|
|
5
|
+
}
|
|
6
|
+
/** Exit once stdout and stderr have drained, so the last reply and the last log line reach their reader; capped at 1 s. */
|
|
7
|
+
export declare function exitAfterFlush(code: number): void;
|
|
8
|
+
/** On SIGTERM or SIGINT: runs `shutdown` once, then exits 0. */
|
|
9
|
+
export declare function installSignalHandlers(name: string, shutdown: Shutdown): void;
|
|
10
|
+
/** After an uncaught throw the process state is unknown: log the cause, run `shutdown` once, then exit 1 for the supervisor or client to restart it. */
|
|
11
|
+
export declare function installCrashHandlers(name: string, shutdown?: Shutdown): void;
|
|
12
|
+
//# sourceMappingURL=crash-handlers.d.ts.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Last-resort process handlers shared by the long-running entry points (`hippo mcp`, `hippo serve`).
|
|
2
|
+
import { errorFields, errorMessage, log } from './log.js';
|
|
3
|
+
function afterFlush(leave) {
|
|
4
|
+
let pending = 2;
|
|
5
|
+
const done = () => { if (--pending === 0)
|
|
6
|
+
leave(); };
|
|
7
|
+
process.stdout.write('', done);
|
|
8
|
+
process.stderr.write('', done);
|
|
9
|
+
setTimeout(leave, 1000).unref();
|
|
10
|
+
}
|
|
11
|
+
/** Exit once stdout and stderr have drained, so the last reply and the last log line reach their reader; capped at 1 s. */
|
|
12
|
+
export function exitAfterFlush(code) {
|
|
13
|
+
process.exitCode = code;
|
|
14
|
+
afterFlush(() => process.exit(code));
|
|
15
|
+
}
|
|
16
|
+
// process.exit joins every worker thread, so one stuck in a synchronous statement would hold the exit open; a kill cannot be held.
|
|
17
|
+
function killSelf() {
|
|
18
|
+
process.kill(process.pid, 'SIGKILL');
|
|
19
|
+
}
|
|
20
|
+
/** Runs `shutdown` for `cause`, then exits with `code`, or 1 when it threw. One still running after its bound is logged and the process ended without it. */
|
|
21
|
+
function exitAfterShutdown(name, cause, shutdown, code) {
|
|
22
|
+
let ended = false;
|
|
23
|
+
// Referenced on purpose: a shutdown that never settles must end at the bound, not when the loop happens to empty.
|
|
24
|
+
const bound = setTimeout(() => {
|
|
25
|
+
ended = true;
|
|
26
|
+
log.error(`${name} shutdown after ${cause} did not finish within ${shutdown.boundMs} ms; ending the process without it`);
|
|
27
|
+
process.exitCode = 1;
|
|
28
|
+
afterFlush(killSelf);
|
|
29
|
+
}, shutdown.boundMs);
|
|
30
|
+
void Promise.resolve()
|
|
31
|
+
.then(shutdown.run)
|
|
32
|
+
.then(() => code, (err) => {
|
|
33
|
+
log.error(`${name} shutdown after ${cause} failed: ${errorMessage(err)}`, errorFields(err));
|
|
34
|
+
return 1;
|
|
35
|
+
})
|
|
36
|
+
.then((exitCode) => {
|
|
37
|
+
clearTimeout(bound);
|
|
38
|
+
if (!ended)
|
|
39
|
+
exitAfterFlush(exitCode);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/** On SIGTERM or SIGINT: runs `shutdown` once, then exits 0. */
|
|
43
|
+
export function installSignalHandlers(name, shutdown) {
|
|
44
|
+
let shuttingDown = false;
|
|
45
|
+
const stopFor = (signal) => {
|
|
46
|
+
if (shuttingDown)
|
|
47
|
+
return;
|
|
48
|
+
shuttingDown = true;
|
|
49
|
+
log.warn(`received ${signal}, shutting down`);
|
|
50
|
+
exitAfterShutdown(name, signal, shutdown, 0);
|
|
51
|
+
};
|
|
52
|
+
process.once('SIGTERM', () => stopFor('SIGTERM'));
|
|
53
|
+
process.once('SIGINT', () => stopFor('SIGINT'));
|
|
54
|
+
}
|
|
55
|
+
/** After an uncaught throw the process state is unknown: log the cause, run `shutdown` once, then exit 1 for the supervisor or client to restart it. */
|
|
56
|
+
export function installCrashHandlers(name, shutdown) {
|
|
57
|
+
let crashing = false;
|
|
58
|
+
const crash = (kind, err) => {
|
|
59
|
+
log.error(`${name} ${kind}: ${errorMessage(err)}`, errorFields(err));
|
|
60
|
+
// A throw while shutdown runs is logged above and must not start it again.
|
|
61
|
+
if (crashing)
|
|
62
|
+
return;
|
|
63
|
+
crashing = true;
|
|
64
|
+
if (shutdown)
|
|
65
|
+
exitAfterShutdown(name, kind, shutdown, 1);
|
|
66
|
+
else
|
|
67
|
+
exitAfterFlush(1);
|
|
68
|
+
};
|
|
69
|
+
process.on('uncaughtException', (err) => crash('uncaught exception', err));
|
|
70
|
+
process.on('unhandledRejection', (err) => crash('unhandled rejection', err));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=crash-handlers.js.map
|
|
@@ -12,8 +12,6 @@ export declare function envAblateRecency(): boolean;
|
|
|
12
12
|
export declare function envEvalRecencyDays(): number | null;
|
|
13
13
|
/** HIPPO_FAKE_NOW as epoch millis, or null unless it is byte-identical to Date.toISOString output. */
|
|
14
14
|
export declare function envFakeNowMs(): number | null;
|
|
15
|
-
export declare function envTestDeliveryFault(): string;
|
|
16
|
-
export declare function envForceLikePath(): boolean;
|
|
17
15
|
export declare function envLossAversionRatio(): string | undefined;
|
|
18
16
|
export declare function envSummaryDeboost(): string | undefined;
|
|
19
17
|
export declare function envAutodebiasOff(): boolean;
|
|
@@ -30,7 +28,9 @@ export declare function envClaudeCodeSessionId(): string | undefined;
|
|
|
30
28
|
export declare function envScope(): string | undefined;
|
|
31
29
|
export declare function envGstackSkill(): string | undefined;
|
|
32
30
|
export declare function envOpenclawSkill(): string | undefined;
|
|
33
|
-
/**
|
|
31
|
+
/** The tenant of a store that names none. */
|
|
32
|
+
export declare const DEFAULT_TENANT_ID = "default";
|
|
33
|
+
/** HIPPO_TENANT trimmed; empty or whitespace-only falls through to the default tenant. */
|
|
34
34
|
export declare function envTenant(): string;
|
|
35
35
|
export declare function envSkipAutoIntegrations(): boolean;
|
|
36
36
|
export declare function envSkipPostinstall(): boolean;
|
|
@@ -40,14 +40,32 @@ export declare function envRequireServer(): boolean;
|
|
|
40
40
|
export declare function envRequireSessionScopedFreshTail(): boolean;
|
|
41
41
|
export declare function envStdinWaitMs(): number | undefined;
|
|
42
42
|
export declare function envLogLevel(): string;
|
|
43
|
+
/** `HIPPO_LOG_FORMAT=json` writes each log line as one JSON object; anything else keeps the text line. */
|
|
44
|
+
export declare function envLogJson(): boolean;
|
|
43
45
|
export declare function envPort(): string | undefined;
|
|
44
46
|
/** How long a client waits for a running server's /health before writing to the store directly; server-detect.ts holds the default. */
|
|
45
47
|
export declare function envHealthProbeMs(): number | undefined;
|
|
46
48
|
export declare function envRequireAuth(): boolean;
|
|
49
|
+
/** `1` lets a request made on this machine in with no key, as host admin; HIPPO_REQUIRE_AUTH=1 wins over it. */
|
|
50
|
+
export declare function envAllowKeylessLocal(): boolean;
|
|
47
51
|
export declare function envV1Rps(): string | undefined;
|
|
52
|
+
/** How long a request body may take to arrive; http-util.ts holds the default. */
|
|
53
|
+
export declare function envBodyTimeoutMs(): number | undefined;
|
|
54
|
+
/** How long POST /v1/sleep lets its consolidation run; server/sleep-offload.ts holds the default. */
|
|
55
|
+
export declare function envSleepTimeoutMs(): number | undefined;
|
|
56
|
+
/** How long a /v1 or /mcp request may run before the server answers 504, and a stdio MCP
|
|
57
|
+
* request before its timeout error; 0 for no deadline; server/deadline.ts holds the default. */
|
|
58
|
+
export declare function envRequestDeadlineMs(): number | undefined;
|
|
59
|
+
/** How many store calls may wait for one worker thread before the next is refused; store/sqlite/executor.ts holds the default. */
|
|
60
|
+
export declare function envStoreQueueMax(): number | undefined;
|
|
61
|
+
/** How long the daily runner lets one child `hippo` step run; cli/setup.ts holds the default. */
|
|
62
|
+
export declare function envDailyStepTimeoutMs(): number | undefined;
|
|
48
63
|
export declare function envApiKey(): string | undefined;
|
|
49
64
|
export declare function envClientIpHeader(): string | undefined;
|
|
50
65
|
export declare function envTrustedProxies(): string | undefined;
|
|
66
|
+
/** Paths to the PEM certificate and key `hippo serve` answers HTTPS with; the --tls-cert and --tls-key flags win. */
|
|
67
|
+
export declare function envTlsCert(): string | undefined;
|
|
68
|
+
export declare function envTlsKey(): string | undefined;
|
|
51
69
|
export declare function envMcpSseMaxStreams(): number | undefined;
|
|
52
70
|
export declare function envMcpSseHeartbeatMs(): number | undefined;
|
|
53
71
|
export declare function envMcpSseMaxAgeSec(): number | undefined;
|
|
@@ -56,6 +74,8 @@ export declare function envLlmTimeoutMs(): number | undefined;
|
|
|
56
74
|
export declare function envTypesafeApiKey(): string | undefined;
|
|
57
75
|
export declare function envJevTimeoutMs(): number | undefined;
|
|
58
76
|
export declare function envJevModel(): string | undefined;
|
|
77
|
+
/** How long a recall waits for an API provider to embed its query before ranking on BM25 alone; search/vector.ts holds the default. */
|
|
78
|
+
export declare function envQueryEmbedTimeoutMs(): number | undefined;
|
|
59
79
|
export declare function envLlmRerankerUrl(): string | undefined;
|
|
60
80
|
export declare function envLlmRerankerKey(): string | undefined;
|
|
61
81
|
export declare function envLlmRerankerModel(): string | undefined;
|
|
@@ -70,8 +90,8 @@ export declare function envSlackTeamId(): string | undefined;
|
|
|
70
90
|
export declare function envSlackSigningSecret(): string | undefined;
|
|
71
91
|
export declare function envSlackSigningSecretPrevious(): string | undefined;
|
|
72
92
|
export declare function envSlackAllowUnknownTeamFallback(): boolean;
|
|
73
|
-
export declare function
|
|
74
|
-
export declare function
|
|
75
|
-
export declare function
|
|
76
|
-
export declare function
|
|
93
|
+
export declare function envGitHubToken(): string | undefined;
|
|
94
|
+
export declare function envGitHubWebhookSecret(): string | undefined;
|
|
95
|
+
export declare function envGitHubWebhookSecretPrevious(): string | undefined;
|
|
96
|
+
export declare function envGitHubAllowUnknownInstallationFallback(): boolean;
|
|
77
97
|
//# sourceMappingURL=env.d.ts.map
|
|
@@ -15,6 +15,11 @@ function positiveInt(name) {
|
|
|
15
15
|
const parsed = Number.parseInt(raw(name) ?? '', 10);
|
|
16
16
|
return parsed > 0 ? parsed : undefined;
|
|
17
17
|
}
|
|
18
|
+
/** parseInt, kept from zero up, for a setting whose 0 means off. */
|
|
19
|
+
function nonNegativeInt(name) {
|
|
20
|
+
const parsed = Number.parseInt(raw(name) ?? '', 10);
|
|
21
|
+
return parsed >= 0 ? parsed : undefined;
|
|
22
|
+
}
|
|
18
23
|
/** Trimmed, with an empty or whitespace-only value read as unset. */
|
|
19
24
|
function trimmed(name) {
|
|
20
25
|
return raw(name)?.trim() || undefined;
|
|
@@ -48,8 +53,6 @@ export function envFakeNowMs() {
|
|
|
48
53
|
const parsed = Date.parse(value);
|
|
49
54
|
return Number.isFinite(parsed) && new Date(parsed).toISOString() === value ? parsed : null;
|
|
50
55
|
}
|
|
51
|
-
export function envTestDeliveryFault() { return raw('HIPPO_TEST_DELIVERY_FAULT') ?? ''; }
|
|
52
|
-
export function envForceLikePath() { return isOne('HIPPO_FORCE_LIKE_PATH'); }
|
|
53
56
|
export function envLossAversionRatio() { return raw('HIPPO_LOSS_AVERSION_RATIO'); }
|
|
54
57
|
export function envSummaryDeboost() { return raw('HIPPO_SUMMARY_DEBOOST'); }
|
|
55
58
|
export function envAutodebiasOff() { return raw('HIPPO_AUTODEBIAS') === 'off'; }
|
|
@@ -68,9 +71,11 @@ export function envClaudeCodeSessionId() { return trimmed('CLAUDE_CODE_SESSION_I
|
|
|
68
71
|
export function envScope() { return raw('HIPPO_SCOPE'); }
|
|
69
72
|
export function envGstackSkill() { return raw('GSTACK_SKILL'); }
|
|
70
73
|
export function envOpenclawSkill() { return raw('OPENCLAW_SKILL'); }
|
|
71
|
-
/**
|
|
74
|
+
/** The tenant of a store that names none. */
|
|
75
|
+
export const DEFAULT_TENANT_ID = 'default';
|
|
76
|
+
/** HIPPO_TENANT trimmed; empty or whitespace-only falls through to the default tenant. */
|
|
72
77
|
export function envTenant() {
|
|
73
|
-
return raw('HIPPO_TENANT')?.trim() ||
|
|
78
|
+
return raw('HIPPO_TENANT')?.trim() || DEFAULT_TENANT_ID;
|
|
74
79
|
}
|
|
75
80
|
// Install and CLI switches.
|
|
76
81
|
export function envSkipAutoIntegrations() { return isOne('HIPPO_SKIP_AUTO_INTEGRATIONS'); }
|
|
@@ -81,15 +86,33 @@ export function envRequireServer() { return isOneOrTrue('HIPPO_REQUIRE_SERVER');
|
|
|
81
86
|
export function envRequireSessionScopedFreshTail() { return isOne('HIPPO_REQUIRE_SESSION_SCOPED_FRESH_TAIL'); }
|
|
82
87
|
export function envStdinWaitMs() { return positiveInt('HIPPO_STDIN_WAIT_MS'); }
|
|
83
88
|
export function envLogLevel() { return raw('HIPPO_LOG')?.trim().toLowerCase() ?? ''; }
|
|
89
|
+
/** `HIPPO_LOG_FORMAT=json` writes each log line as one JSON object; anything else keeps the text line. */
|
|
90
|
+
export function envLogJson() { return raw('HIPPO_LOG_FORMAT')?.trim().toLowerCase() === 'json'; }
|
|
84
91
|
// Server.
|
|
85
92
|
export function envPort() { return raw('HIPPO_PORT'); }
|
|
86
93
|
/** How long a client waits for a running server's /health before writing to the store directly; server-detect.ts holds the default. */
|
|
87
94
|
export function envHealthProbeMs() { return positiveInt('HIPPO_HEALTH_PROBE_MS'); }
|
|
88
95
|
export function envRequireAuth() { return isOne('HIPPO_REQUIRE_AUTH'); }
|
|
96
|
+
/** `1` lets a request made on this machine in with no key, as host admin; HIPPO_REQUIRE_AUTH=1 wins over it. */
|
|
97
|
+
export function envAllowKeylessLocal() { return isOne('HIPPO_ALLOW_KEYLESS_LOCAL'); }
|
|
89
98
|
export function envV1Rps() { return raw('HIPPO_V1_RPS'); }
|
|
99
|
+
/** How long a request body may take to arrive; http-util.ts holds the default. */
|
|
100
|
+
export function envBodyTimeoutMs() { return positiveInt('HIPPO_BODY_TIMEOUT_MS'); }
|
|
101
|
+
/** How long POST /v1/sleep lets its consolidation run; server/sleep-offload.ts holds the default. */
|
|
102
|
+
export function envSleepTimeoutMs() { return positiveInt('HIPPO_SLEEP_TIMEOUT_MS'); }
|
|
103
|
+
/** How long a /v1 or /mcp request may run before the server answers 504, and a stdio MCP
|
|
104
|
+
* request before its timeout error; 0 for no deadline; server/deadline.ts holds the default. */
|
|
105
|
+
export function envRequestDeadlineMs() { return nonNegativeInt('HIPPO_REQUEST_DEADLINE_MS'); }
|
|
106
|
+
/** How many store calls may wait for one worker thread before the next is refused; store/sqlite/executor.ts holds the default. */
|
|
107
|
+
export function envStoreQueueMax() { return positiveInt('HIPPO_STORE_QUEUE_MAX'); }
|
|
108
|
+
/** How long the daily runner lets one child `hippo` step run; cli/setup.ts holds the default. */
|
|
109
|
+
export function envDailyStepTimeoutMs() { return positiveInt('HIPPO_DAILY_STEP_TIMEOUT_MS'); }
|
|
90
110
|
export function envApiKey() { return raw('HIPPO_API_KEY'); }
|
|
91
111
|
export function envClientIpHeader() { return raw('HIPPO_CLIENT_IP_HEADER')?.trim().toLowerCase(); }
|
|
92
112
|
export function envTrustedProxies() { return raw('HIPPO_TRUSTED_PROXIES'); }
|
|
113
|
+
/** Paths to the PEM certificate and key `hippo serve` answers HTTPS with; the --tls-cert and --tls-key flags win. */
|
|
114
|
+
export function envTlsCert() { return trimmed('HIPPO_TLS_CERT'); }
|
|
115
|
+
export function envTlsKey() { return trimmed('HIPPO_TLS_KEY'); }
|
|
93
116
|
export function envMcpSseMaxStreams() { return positiveInt('MCP_SSE_MAX_STREAMS'); }
|
|
94
117
|
export function envMcpSseHeartbeatMs() { return positiveInt('MCP_SSE_HEARTBEAT_MS'); }
|
|
95
118
|
export function envMcpSseMaxAgeSec() { return positiveInt('MCP_SSE_MAX_AGE_SEC'); }
|
|
@@ -99,6 +122,8 @@ export function envLlmTimeoutMs() { return positiveInt('HIPPO_LLM_TIMEOUT_MS');
|
|
|
99
122
|
export function envTypesafeApiKey() { return trimmed('TYPESAFE_API_KEY'); }
|
|
100
123
|
export function envJevTimeoutMs() { return positiveInt('HIPPO_JEV_TIMEOUT_MS'); }
|
|
101
124
|
export function envJevModel() { return raw('HIPPO_JEV_MODEL'); }
|
|
125
|
+
/** How long a recall waits for an API provider to embed its query before ranking on BM25 alone; search/vector.ts holds the default. */
|
|
126
|
+
export function envQueryEmbedTimeoutMs() { return positiveInt('HIPPO_QUERY_EMBED_TIMEOUT_MS'); }
|
|
102
127
|
export function envLlmRerankerUrl() { return raw('HIPPO_LLM_RERANKER_URL'); }
|
|
103
128
|
export function envLlmRerankerKey() { return raw('HIPPO_LLM_RERANKER_KEY'); }
|
|
104
129
|
export function envLlmRerankerModel() { return raw('HIPPO_LLM_RERANKER_MODEL'); }
|
|
@@ -114,8 +139,8 @@ export function envSlackTeamId() { return raw('SLACK_TEAM_ID'); }
|
|
|
114
139
|
export function envSlackSigningSecret() { return raw('SLACK_SIGNING_SECRET'); }
|
|
115
140
|
export function envSlackSigningSecretPrevious() { return raw('SLACK_SIGNING_SECRET_PREVIOUS'); }
|
|
116
141
|
export function envSlackAllowUnknownTeamFallback() { return isOne('SLACK_ALLOW_UNKNOWN_TEAM_FALLBACK'); }
|
|
117
|
-
export function
|
|
118
|
-
export function
|
|
119
|
-
export function
|
|
120
|
-
export function
|
|
142
|
+
export function envGitHubToken() { return raw('GITHUB_TOKEN'); }
|
|
143
|
+
export function envGitHubWebhookSecret() { return raw('GITHUB_WEBHOOK_SECRET'); }
|
|
144
|
+
export function envGitHubWebhookSecretPrevious() { return raw('GITHUB_WEBHOOK_SECRET_PREVIOUS'); }
|
|
145
|
+
export function envGitHubAllowUnknownInstallationFallback() { return isOne('GITHUB_ALLOW_UNKNOWN_INSTALLATION_FALLBACK'); }
|
|
121
146
|
//# sourceMappingURL=env.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** One pattern per path shape that carries a user name: Windows, Git Bash and WSL
|
|
1
|
+
/** One pattern per path shape that carries a user name: Windows, Git Bash and WSL
|
|
2
|
+
* mounts, extended-length, UNC home shares, Linux, macOS and 8.3 short names. */
|
|
2
3
|
export declare const USER_SEGMENT: readonly RegExp[];
|
|
3
4
|
/** `text` with each home-directory segment replaced by `[home]`. */
|
|
4
5
|
export declare function maskHomePaths(text: string): string;
|