hippo-memory 1.13.5 → 1.14.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/dist/api.d.ts +20 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +43 -4
- package/dist/api.js.map +1 -1
- package/dist/audit.d.ts +1 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +1 -1
- package/dist/audit.js.map +1 -1
- package/dist/availability.d.ts +65 -0
- package/dist/availability.d.ts.map +1 -0
- package/dist/availability.js +94 -0
- package/dist/availability.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +523 -484
- package/dist/cli.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +41 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/src/api.js +43 -4
- package/dist/src/api.js.map +1 -1
- package/dist/src/audit.js +1 -1
- package/dist/src/audit.js.map +1 -1
- package/dist/src/availability.js +94 -0
- package/dist/src/availability.js.map +1 -0
- package/dist/src/cli.js +523 -484
- package/dist/src/cli.js.map +1 -1
- package/dist/src/mcp/server.js +41 -0
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/server.js +1 -0
- package/dist/src/server.js.map +1 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +5 -3
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -60,6 +60,7 @@ import * as predictionsModule from './predictions.js';
|
|
|
60
60
|
import { computePlanningFallacyOutput } from './predictions.js';
|
|
61
61
|
import { createHash } from 'node:crypto';
|
|
62
62
|
import { detectAnchoring, hashQueryText, buildSessionKey, getOrCreateRing, appendRecall, snapshotRing, } from './recall-history.js';
|
|
63
|
+
import { detectAvailabilityBias } from './availability.js';
|
|
63
64
|
// v0.33 / J1 — Module-level per-(tenant, session) recall-history ring map.
|
|
64
65
|
// Each CLI process maintains its OWN Map; no IPC / no cross-process sharing
|
|
65
66
|
// (plan v3 decision: per-pipeline rings, see docs/plans/2026-05-26-j1-anchoring-detector.md).
|
|
@@ -1106,6 +1107,27 @@ async function cmdRecall(hippoRoot, query, flags) {
|
|
|
1106
1107
|
memory_id: cmdAnchoringHint.memoryId,
|
|
1107
1108
|
});
|
|
1108
1109
|
}
|
|
1110
|
+
// v1.13.x / J2 — CLI per-pipeline availability/recency-bias detector. Each
|
|
1111
|
+
// pipeline computes its own hint (this one against the CLI's returned top-K
|
|
1112
|
+
// and the full local+global candidate pool). Soft warning only. Gated by
|
|
1113
|
+
// HIPPO_AVAILABILITY=off, which short-circuits BEFORE the detect call so
|
|
1114
|
+
// disabled tenants pay zero work. Audit emission is pipeline-local, lockstep
|
|
1115
|
+
// with the anchoring emitCliAudit calls above. cmdAvailabilityHint is null on
|
|
1116
|
+
// the zero-result branch (topK < minReturned), so the splat is a no-op there.
|
|
1117
|
+
let cmdAvailabilityHint = null;
|
|
1118
|
+
if (process.env.HIPPO_AVAILABILITY !== 'off') {
|
|
1119
|
+
cmdAvailabilityHint = detectAvailabilityBias({
|
|
1120
|
+
topK: results.map((r) => ({ id: r.entry.id, created: r.entry.created })),
|
|
1121
|
+
pool: [...localEntries, ...globalEntries].map((e) => ({ id: e.id, created: e.created })),
|
|
1122
|
+
});
|
|
1123
|
+
if (cmdAvailabilityHint) {
|
|
1124
|
+
emitCliAudit(hippoRoot, 'recall_availability_detected', undefined, {
|
|
1125
|
+
recent_fraction: cmdAvailabilityHint.recentFraction,
|
|
1126
|
+
older_passed_over: cmdAvailabilityHint.olderCandidatesPassedOver,
|
|
1127
|
+
returned_count: cmdAvailabilityHint.returnedCount,
|
|
1128
|
+
});
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1109
1131
|
// v0.32 / J3.2 — auto-injection of reference-class baserate when the
|
|
1110
1132
|
// CLI query carries a forward-prediction phrase AND a class matches.
|
|
1111
1133
|
// cmdRecall runs its own pipeline (doesn't go through api.recall for
|
|
@@ -1213,6 +1235,7 @@ async function cmdRecall(hippoRoot, query, flags) {
|
|
|
1213
1235
|
...(cmdPlanningFallacyHint ? { planningFallacyHint: cmdPlanningFallacyHint } : {}),
|
|
1214
1236
|
...(cmdPlanningFallacyWatching ? { planningFallacyWatching: cmdPlanningFallacyWatching } : {}),
|
|
1215
1237
|
...(cmdAnchoringHint ? { anchoringHint: cmdAnchoringHint } : {}),
|
|
1238
|
+
...(cmdAvailabilityHint ? { availabilityHint: cmdAvailabilityHint } : {}),
|
|
1216
1239
|
};
|
|
1217
1240
|
if (includeContinuity) {
|
|
1218
1241
|
out.continuity = {
|
|
@@ -1230,6 +1253,13 @@ async function cmdRecall(hippoRoot, query, flags) {
|
|
|
1230
1253
|
if (cmdAnchoringHint) {
|
|
1231
1254
|
console.log(`[anchored_on: ${cmdAnchoringHint.memoryId}] ${cmdAnchoringHint.summary}`);
|
|
1232
1255
|
}
|
|
1256
|
+
// v1.13.x / J2 — render availability/recency-bias hint below anchoring and
|
|
1257
|
+
// above the planning-fallacy hint. Soft warning; absent (env disabled or no
|
|
1258
|
+
// bias detected) is silent. Null on this zero-result branch anyway since
|
|
1259
|
+
// topK < minReturned, so this is effectively a no-op here; wired for parity.
|
|
1260
|
+
if (cmdAvailabilityHint) {
|
|
1261
|
+
console.log(`Availability bias (${cmdAvailabilityHint.recentCount}/${cmdAvailabilityHint.returnedCount} recent): ${cmdAvailabilityHint.summary}`);
|
|
1262
|
+
}
|
|
1233
1263
|
// v0.32 / J3.2 — render hint BEFORE the no-memories message so the
|
|
1234
1264
|
// calling agent sees its track record even when the query missed
|
|
1235
1265
|
// every memory. Same single-line shape + JSON.stringify-safe phrase
|
|
@@ -1314,6 +1344,7 @@ async function cmdRecall(hippoRoot, query, flags) {
|
|
|
1314
1344
|
...(cmdPlanningFallacyHint ? { planningFallacyHint: cmdPlanningFallacyHint } : {}),
|
|
1315
1345
|
...(cmdPlanningFallacyWatching ? { planningFallacyWatching: cmdPlanningFallacyWatching } : {}),
|
|
1316
1346
|
...(cmdAnchoringHint ? { anchoringHint: cmdAnchoringHint } : {}),
|
|
1347
|
+
...(cmdAvailabilityHint ? { availabilityHint: cmdAvailabilityHint } : {}),
|
|
1317
1348
|
};
|
|
1318
1349
|
if (includeContinuity) {
|
|
1319
1350
|
jsonOut.continuity = {
|
|
@@ -1343,6 +1374,13 @@ async function cmdRecall(hippoRoot, query, flags) {
|
|
|
1343
1374
|
console.log(`[anchored_on: ${cmdAnchoringHint.memoryId}] ${cmdAnchoringHint.summary}`);
|
|
1344
1375
|
console.log();
|
|
1345
1376
|
}
|
|
1377
|
+
// v1.13.x / J2 — render availability/recency-bias hint below anchoring and
|
|
1378
|
+
// above the planning-fallacy hint. Soft warning; absent (env disabled or no
|
|
1379
|
+
// bias detected) is silent.
|
|
1380
|
+
if (cmdAvailabilityHint) {
|
|
1381
|
+
console.log(`Availability bias (${cmdAvailabilityHint.recentCount}/${cmdAvailabilityHint.returnedCount} recent): ${cmdAvailabilityHint.summary}`);
|
|
1382
|
+
console.log();
|
|
1383
|
+
}
|
|
1346
1384
|
// v0.32 / J3.2 — render planning-fallacy hint ABOVE the result list so
|
|
1347
1385
|
// the agent sees its track record before scrolling. Hint absent (env
|
|
1348
1386
|
// disabled or no forward-claim match) is silent. detectedPhrase is
|
|
@@ -3830,166 +3868,166 @@ const HOOKS = {
|
|
|
3830
3868
|
'claude-code': {
|
|
3831
3869
|
file: 'CLAUDE.md',
|
|
3832
3870
|
description: 'Claude Code',
|
|
3833
|
-
content: `
|
|
3834
|
-
## Project Memory (Hippo)
|
|
3835
|
-
|
|
3836
|
-
Before starting work, load relevant context:
|
|
3837
|
-
\`\`\`bash
|
|
3838
|
-
hippo context --auto --budget 1500
|
|
3839
|
-
\`\`\`
|
|
3840
|
-
|
|
3841
|
-
When you learn something important:
|
|
3842
|
-
\`\`\`bash
|
|
3843
|
-
hippo remember "<lesson>"
|
|
3844
|
-
\`\`\`
|
|
3845
|
-
|
|
3846
|
-
When you hit an error or discover a gotcha:
|
|
3847
|
-
\`\`\`bash
|
|
3848
|
-
hippo remember "<what went wrong and why>" --error
|
|
3849
|
-
\`\`\`
|
|
3850
|
-
|
|
3851
|
-
After completing work successfully:
|
|
3852
|
-
\`\`\`bash
|
|
3853
|
-
hippo outcome --good
|
|
3854
|
-
\`\`\`
|
|
3855
|
-
|
|
3856
|
-
When the user ends the session, capture a brief summary:
|
|
3857
|
-
\`\`\`bash
|
|
3858
|
-
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3859
|
-
\`\`\`
|
|
3871
|
+
content: `
|
|
3872
|
+
## Project Memory (Hippo)
|
|
3873
|
+
|
|
3874
|
+
Before starting work, load relevant context:
|
|
3875
|
+
\`\`\`bash
|
|
3876
|
+
hippo context --auto --budget 1500
|
|
3877
|
+
\`\`\`
|
|
3878
|
+
|
|
3879
|
+
When you learn something important:
|
|
3880
|
+
\`\`\`bash
|
|
3881
|
+
hippo remember "<lesson>"
|
|
3882
|
+
\`\`\`
|
|
3883
|
+
|
|
3884
|
+
When you hit an error or discover a gotcha:
|
|
3885
|
+
\`\`\`bash
|
|
3886
|
+
hippo remember "<what went wrong and why>" --error
|
|
3887
|
+
\`\`\`
|
|
3888
|
+
|
|
3889
|
+
After completing work successfully:
|
|
3890
|
+
\`\`\`bash
|
|
3891
|
+
hippo outcome --good
|
|
3892
|
+
\`\`\`
|
|
3893
|
+
|
|
3894
|
+
When the user ends the session, capture a brief summary:
|
|
3895
|
+
\`\`\`bash
|
|
3896
|
+
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3897
|
+
\`\`\`
|
|
3860
3898
|
`.trim(),
|
|
3861
3899
|
},
|
|
3862
3900
|
'codex': {
|
|
3863
3901
|
file: 'AGENTS.md',
|
|
3864
3902
|
description: 'OpenAI Codex',
|
|
3865
|
-
content: `
|
|
3866
|
-
## Project Memory (Hippo)
|
|
3867
|
-
|
|
3868
|
-
At the start of every task, run:
|
|
3869
|
-
\`\`\`bash
|
|
3870
|
-
hippo context --auto --budget 1500
|
|
3871
|
-
\`\`\`
|
|
3872
|
-
Read the output before writing any code.
|
|
3873
|
-
|
|
3874
|
-
On errors or unexpected behaviour:
|
|
3875
|
-
\`\`\`bash
|
|
3876
|
-
hippo remember "<description of what went wrong>" --error
|
|
3877
|
-
\`\`\`
|
|
3878
|
-
|
|
3879
|
-
On task completion:
|
|
3880
|
-
\`\`\`bash
|
|
3881
|
-
hippo outcome --good
|
|
3882
|
-
\`\`\`
|
|
3883
|
-
|
|
3884
|
-
When Hippo's Codex wrapper is installed, session-end capture runs automatically.
|
|
3885
|
-
If the wrapper is not installed, capture a brief summary manually:
|
|
3886
|
-
\`\`\`bash
|
|
3887
|
-
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3888
|
-
\`\`\`
|
|
3903
|
+
content: `
|
|
3904
|
+
## Project Memory (Hippo)
|
|
3905
|
+
|
|
3906
|
+
At the start of every task, run:
|
|
3907
|
+
\`\`\`bash
|
|
3908
|
+
hippo context --auto --budget 1500
|
|
3909
|
+
\`\`\`
|
|
3910
|
+
Read the output before writing any code.
|
|
3911
|
+
|
|
3912
|
+
On errors or unexpected behaviour:
|
|
3913
|
+
\`\`\`bash
|
|
3914
|
+
hippo remember "<description of what went wrong>" --error
|
|
3915
|
+
\`\`\`
|
|
3916
|
+
|
|
3917
|
+
On task completion:
|
|
3918
|
+
\`\`\`bash
|
|
3919
|
+
hippo outcome --good
|
|
3920
|
+
\`\`\`
|
|
3921
|
+
|
|
3922
|
+
When Hippo's Codex wrapper is installed, session-end capture runs automatically.
|
|
3923
|
+
If the wrapper is not installed, capture a brief summary manually:
|
|
3924
|
+
\`\`\`bash
|
|
3925
|
+
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3926
|
+
\`\`\`
|
|
3889
3927
|
`.trim(),
|
|
3890
3928
|
},
|
|
3891
3929
|
'cursor': {
|
|
3892
3930
|
file: '.cursorrules',
|
|
3893
3931
|
description: 'Cursor',
|
|
3894
|
-
content: `
|
|
3895
|
-
# Project Memory (Hippo)
|
|
3896
|
-
# Before each task, load context:
|
|
3897
|
-
# hippo context --auto --budget 1500
|
|
3898
|
-
# After errors:
|
|
3899
|
-
# hippo remember "<error description>" --error
|
|
3900
|
-
# After completing:
|
|
3901
|
-
# hippo outcome --good
|
|
3932
|
+
content: `
|
|
3933
|
+
# Project Memory (Hippo)
|
|
3934
|
+
# Before each task, load context:
|
|
3935
|
+
# hippo context --auto --budget 1500
|
|
3936
|
+
# After errors:
|
|
3937
|
+
# hippo remember "<error description>" --error
|
|
3938
|
+
# After completing:
|
|
3939
|
+
# hippo outcome --good
|
|
3902
3940
|
`.trim(),
|
|
3903
3941
|
},
|
|
3904
3942
|
'openclaw': {
|
|
3905
3943
|
file: 'AGENTS.md',
|
|
3906
3944
|
description: 'OpenClaw',
|
|
3907
|
-
content: `
|
|
3908
|
-
## Project Memory (Hippo)
|
|
3909
|
-
|
|
3910
|
-
At the start of every session, run:
|
|
3911
|
-
\`\`\`bash
|
|
3912
|
-
hippo context --auto --budget 1500
|
|
3913
|
-
\`\`\`
|
|
3914
|
-
Read the output before writing any code.
|
|
3915
|
-
|
|
3916
|
-
On errors or unexpected behaviour:
|
|
3917
|
-
\`\`\`bash
|
|
3918
|
-
hippo remember "<description of what went wrong>" --error
|
|
3919
|
-
\`\`\`
|
|
3920
|
-
|
|
3921
|
-
On task completion:
|
|
3922
|
-
\`\`\`bash
|
|
3923
|
-
hippo outcome --good
|
|
3924
|
-
\`\`\`
|
|
3925
|
-
|
|
3926
|
-
When ending a session, capture a brief summary:
|
|
3927
|
-
\`\`\`bash
|
|
3928
|
-
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3929
|
-
\`\`\`
|
|
3945
|
+
content: `
|
|
3946
|
+
## Project Memory (Hippo)
|
|
3947
|
+
|
|
3948
|
+
At the start of every session, run:
|
|
3949
|
+
\`\`\`bash
|
|
3950
|
+
hippo context --auto --budget 1500
|
|
3951
|
+
\`\`\`
|
|
3952
|
+
Read the output before writing any code.
|
|
3953
|
+
|
|
3954
|
+
On errors or unexpected behaviour:
|
|
3955
|
+
\`\`\`bash
|
|
3956
|
+
hippo remember "<description of what went wrong>" --error
|
|
3957
|
+
\`\`\`
|
|
3958
|
+
|
|
3959
|
+
On task completion:
|
|
3960
|
+
\`\`\`bash
|
|
3961
|
+
hippo outcome --good
|
|
3962
|
+
\`\`\`
|
|
3963
|
+
|
|
3964
|
+
When ending a session, capture a brief summary:
|
|
3965
|
+
\`\`\`bash
|
|
3966
|
+
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3967
|
+
\`\`\`
|
|
3930
3968
|
`.trim(),
|
|
3931
3969
|
},
|
|
3932
3970
|
'opencode': {
|
|
3933
3971
|
file: 'AGENTS.md',
|
|
3934
3972
|
description: 'OpenCode',
|
|
3935
|
-
content: `
|
|
3936
|
-
## Project Memory (Hippo)
|
|
3937
|
-
|
|
3938
|
-
At the start of every task, run:
|
|
3939
|
-
\`\`\`bash
|
|
3940
|
-
hippo context --auto --budget 1500
|
|
3941
|
-
\`\`\`
|
|
3942
|
-
Read the output before writing any code.
|
|
3943
|
-
|
|
3944
|
-
When you learn something important or hit an error:
|
|
3945
|
-
\`\`\`bash
|
|
3946
|
-
hippo remember "<lesson>" --error
|
|
3947
|
-
\`\`\`
|
|
3948
|
-
|
|
3949
|
-
When stuck or repeating yourself, check if this happened before:
|
|
3950
|
-
\`\`\`bash
|
|
3951
|
-
hippo recall "<what's going wrong>" --budget 2000
|
|
3952
|
-
\`\`\`
|
|
3953
|
-
|
|
3954
|
-
On task completion:
|
|
3955
|
-
\`\`\`bash
|
|
3956
|
-
hippo outcome --good
|
|
3957
|
-
\`\`\`
|
|
3958
|
-
|
|
3959
|
-
When ending a session, capture a brief summary:
|
|
3960
|
-
\`\`\`bash
|
|
3961
|
-
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3962
|
-
\`\`\`
|
|
3973
|
+
content: `
|
|
3974
|
+
## Project Memory (Hippo)
|
|
3975
|
+
|
|
3976
|
+
At the start of every task, run:
|
|
3977
|
+
\`\`\`bash
|
|
3978
|
+
hippo context --auto --budget 1500
|
|
3979
|
+
\`\`\`
|
|
3980
|
+
Read the output before writing any code.
|
|
3981
|
+
|
|
3982
|
+
When you learn something important or hit an error:
|
|
3983
|
+
\`\`\`bash
|
|
3984
|
+
hippo remember "<lesson>" --error
|
|
3985
|
+
\`\`\`
|
|
3986
|
+
|
|
3987
|
+
When stuck or repeating yourself, check if this happened before:
|
|
3988
|
+
\`\`\`bash
|
|
3989
|
+
hippo recall "<what's going wrong>" --budget 2000
|
|
3990
|
+
\`\`\`
|
|
3991
|
+
|
|
3992
|
+
On task completion:
|
|
3993
|
+
\`\`\`bash
|
|
3994
|
+
hippo outcome --good
|
|
3995
|
+
\`\`\`
|
|
3996
|
+
|
|
3997
|
+
When ending a session, capture a brief summary:
|
|
3998
|
+
\`\`\`bash
|
|
3999
|
+
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
4000
|
+
\`\`\`
|
|
3963
4001
|
`.trim(),
|
|
3964
4002
|
},
|
|
3965
4003
|
'pi': {
|
|
3966
4004
|
file: 'AGENTS.md',
|
|
3967
4005
|
description: 'Pi',
|
|
3968
|
-
content: `
|
|
3969
|
-
## Project Memory (Hippo)
|
|
3970
|
-
|
|
3971
|
-
At the start of every session, run:
|
|
3972
|
-
\`\`\`bash
|
|
3973
|
-
hippo context --auto --budget 1500
|
|
3974
|
-
\`\`\`
|
|
3975
|
-
Read the output before writing any code.
|
|
3976
|
-
|
|
3977
|
-
On errors or unexpected behaviour:
|
|
3978
|
-
\`\`\`bash
|
|
3979
|
-
hippo remember "<description of what went wrong>" --error
|
|
3980
|
-
\`\`\`
|
|
3981
|
-
|
|
3982
|
-
On task completion:
|
|
3983
|
-
\`\`\`bash
|
|
3984
|
-
hippo outcome --good
|
|
3985
|
-
\`\`\`
|
|
3986
|
-
|
|
3987
|
-
When ending a session, capture a brief summary:
|
|
3988
|
-
\`\`\`bash
|
|
3989
|
-
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
3990
|
-
\`\`\`
|
|
3991
|
-
|
|
3992
|
-
For full integration, copy the hippo-memory Pi extension to \`~/.pi/agent/extensions/hippo-memory/\`.
|
|
4006
|
+
content: `
|
|
4007
|
+
## Project Memory (Hippo)
|
|
4008
|
+
|
|
4009
|
+
At the start of every session, run:
|
|
4010
|
+
\`\`\`bash
|
|
4011
|
+
hippo context --auto --budget 1500
|
|
4012
|
+
\`\`\`
|
|
4013
|
+
Read the output before writing any code.
|
|
4014
|
+
|
|
4015
|
+
On errors or unexpected behaviour:
|
|
4016
|
+
\`\`\`bash
|
|
4017
|
+
hippo remember "<description of what went wrong>" --error
|
|
4018
|
+
\`\`\`
|
|
4019
|
+
|
|
4020
|
+
On task completion:
|
|
4021
|
+
\`\`\`bash
|
|
4022
|
+
hippo outcome --good
|
|
4023
|
+
\`\`\`
|
|
4024
|
+
|
|
4025
|
+
When ending a session, capture a brief summary:
|
|
4026
|
+
\`\`\`bash
|
|
4027
|
+
hippo capture --stdin <<< '<decisions, errors, lessons — 2-5 bullets>'
|
|
4028
|
+
\`\`\`
|
|
4029
|
+
|
|
4030
|
+
For full integration, copy the hippo-memory Pi extension to \`~/.pi/agent/extensions/hippo-memory/\`.
|
|
3993
4031
|
`.trim(),
|
|
3994
4032
|
},
|
|
3995
4033
|
};
|
|
@@ -4677,6 +4715,7 @@ const VALID_AUDIT_OPS = new Set([
|
|
|
4677
4715
|
'recall_anchor_detected_query_repeat', // v0.33 / J1 — emitted by detector on R1 fire
|
|
4678
4716
|
'recall_anchor_detected_memory_dominance', // v0.33 / J1 — emitted by detector on R2 fire
|
|
4679
4717
|
'recall_anchor_skipped_no_session', // v0.33 / J1 — telemetry: no sessionId, ring skipped
|
|
4718
|
+
'recall_availability_detected', // v1.13.x / J2 - emitted when availability/recency-bias hint fires
|
|
4680
4719
|
]);
|
|
4681
4720
|
function formatAuditRow(ev) {
|
|
4682
4721
|
const target = ev.targetId ?? '-';
|
|
@@ -4882,12 +4921,12 @@ function cmdGoalPush(hippoRoot, args, flags) {
|
|
|
4882
4921
|
function listAllGoals(hippoRoot, sessionId, tenantId) {
|
|
4883
4922
|
const db = openHippoDb(hippoRoot);
|
|
4884
4923
|
try {
|
|
4885
|
-
const rows = db.prepare(`
|
|
4886
|
-
SELECT id, session_id, tenant_id, goal_name, level, parent_goal_id, status,
|
|
4887
|
-
success_condition, retrieval_policy_id, created_at, completed_at, outcome_score
|
|
4888
|
-
FROM goal_stack
|
|
4889
|
-
WHERE tenant_id = ? AND session_id = ?
|
|
4890
|
-
ORDER BY created_at ASC
|
|
4924
|
+
const rows = db.prepare(`
|
|
4925
|
+
SELECT id, session_id, tenant_id, goal_name, level, parent_goal_id, status,
|
|
4926
|
+
success_condition, retrieval_policy_id, created_at, completed_at, outcome_score
|
|
4927
|
+
FROM goal_stack
|
|
4928
|
+
WHERE tenant_id = ? AND session_id = ?
|
|
4929
|
+
ORDER BY created_at ASC
|
|
4891
4930
|
`).all(tenantId, sessionId);
|
|
4892
4931
|
return rows.map(rowToGoal);
|
|
4893
4932
|
}
|
|
@@ -5210,349 +5249,349 @@ function cmdSlack(hippoRoot, args, flags) {
|
|
|
5210
5249
|
process.exit(1);
|
|
5211
5250
|
}
|
|
5212
5251
|
function printUsage() {
|
|
5213
|
-
console.log(`
|
|
5214
|
-
Hippo - biologically-inspired memory system for AI agents
|
|
5215
|
-
|
|
5216
|
-
Usage: hippo <command> [options]
|
|
5217
|
-
|
|
5218
|
-
Commands:
|
|
5219
|
-
init Create .hippo/ structure in current directory
|
|
5220
|
-
--scan [dir] Find all git repos under dir (default: ~) and init each
|
|
5221
|
-
--days <n> Days of git history to seed (default: 365 for --scan, 30 for single)
|
|
5222
|
-
--global Init the global store ($HIPPO_HOME or ~/.hippo/)
|
|
5223
|
-
--no-hooks Skip auto-detecting and installing agent hooks
|
|
5224
|
-
--no-schedule Skip auto-creating the machine-level daily runner
|
|
5225
|
-
--no-learn Skip seeding memories from git history
|
|
5226
|
-
remember <text> Store a memory
|
|
5227
|
-
--tag <tag> Add a tag (repeatable)
|
|
5228
|
-
--error Tag as error (boosts retention)
|
|
5229
|
-
--pin Pin memory (never decays)
|
|
5230
|
-
--verified Set confidence: verified (default)
|
|
5231
|
-
--observed Set confidence: observed
|
|
5232
|
-
--inferred Set confidence: inferred
|
|
5233
|
-
--global Store in global store ($HIPPO_HOME or ~/.hippo/)
|
|
5234
|
-
recall <query> Search and retrieve memories (local + global)
|
|
5235
|
-
--budget <n> Token budget (default: 4000)
|
|
5236
|
-
--min-results <n> Minimum results regardless of budget (default: 1)
|
|
5237
|
-
--json Output as JSON
|
|
5238
|
-
--why Show match reasons and source annotations
|
|
5239
|
-
--no-mmr Disable MMR diversity re-ranking
|
|
5240
|
-
--mmr-lambda <f> MMR balance 0..1 (default: 0.7, 1.0 = pure relevance)
|
|
5241
|
-
--evc-adaptive ACC-style: when top-K shows high inter-item overlap
|
|
5242
|
-
(= conflict cluster), expand pool and re-rank by
|
|
5243
|
-
recency. Default off. RESEARCH.md §PFC.ACC.
|
|
5244
|
-
--filter-conflicts vlPFC interference filter: drop superseded entries
|
|
5245
|
-
and 0.3x-downweight entries flagged in an open
|
|
5246
|
-
conflict with a peer in the same result set.
|
|
5247
|
-
Uses recorded supersession + conflicts only — never
|
|
5248
|
-
lexical inference. Default off. RESEARCH.md §PFC.vlPFC.
|
|
5249
|
-
--value-aware vmPFC value attribution: boost memories with positive
|
|
5250
|
-
cumulative outcomes and demote those with negative
|
|
5251
|
-
outcomes during ranking. Multiplier
|
|
5252
|
-
clip(1 + 0.3*tanh(pos - neg), 0.7, 1.3). Reuses
|
|
5253
|
-
outcome_positive / outcome_negative; no schema
|
|
5254
|
-
change. Default off. RESEARCH.md §PFC.vmPFC.
|
|
5255
|
-
--rerank-utility OFC option-value re-ranker: combine relevance,
|
|
5256
|
-
strength, and integration cost into a single utility
|
|
5257
|
-
= score * (0.5 + 0.5 * strength) * (1 - cost_factor)
|
|
5258
|
-
where cost_factor = min(0.3, tokens / 10000). Re-sorts
|
|
5259
|
-
results by utility. Default off. RESEARCH.md §PFC.OFC.
|
|
5260
|
-
--reranker <name> Apply a reranker pass after retrieval
|
|
5261
|
-
(cross-encoder|llm). Looks up the named
|
|
5262
|
-
reranker from src/rerankers/index.ts and re-orders
|
|
5263
|
-
the top-K candidates. Default unset (no reranker).
|
|
5264
|
-
See docs/plans/2026-05-10-f6-reranker-hardening.md.
|
|
5265
|
-
--reranker-top-k <n> Cap candidates passed to the reranker (default 50).
|
|
5266
|
-
--goal <tag> dlPFC goal-conditioned recall: memories tagged with
|
|
5267
|
-
the goal tag get a 1.5x score boost and results are
|
|
5268
|
-
re-sorted. Default off. RESEARCH.md §PFC.dlPFC.
|
|
5269
|
-
--session-id <id> Session identifier for dlPFC goal-stack boost.
|
|
5270
|
-
Defaults to \$HIPPO_SESSION_ID. When set and the
|
|
5271
|
-
(tenant, session) has active goals (see
|
|
5272
|
-
'hippo goal push'), recall auto-boosts memories
|
|
5273
|
-
whose tags match an active goal name. Boost stacks
|
|
5274
|
-
on top of base BM25 score, capped at 3.0x.
|
|
5275
|
-
--salience-threshold <n>
|
|
5276
|
-
Pineal salience: down-weight memories whose
|
|
5277
|
-
retrieval_count is below n. score *= max(0.5,
|
|
5278
|
-
retrieval_count / n) for entries with count < n;
|
|
5279
|
-
entries at or above n are unchanged. Salience emerges
|
|
5280
|
-
from USE, not from lexical overlap. Default off.
|
|
5281
|
-
RESEARCH.md §"AI Pineal Gland". (v1's creation-time
|
|
5282
|
-
lexical gate destroyed LoCoMo 0.28 -> 0.02; this v2
|
|
5283
|
-
is retrieval-side, opt-in only — see MEMORY.md
|
|
5284
|
-
"Hippo salience gate destroys benchmark recall".)
|
|
5285
|
-
--continuity Include continuity block (active task snapshot,
|
|
5286
|
-
latest matching session handoff, last 5 session
|
|
5287
|
-
events) above the memory list. Useful at agent
|
|
5288
|
-
boot when you want both relevant memories AND
|
|
5289
|
-
where you left off in one call. Anchored on the
|
|
5290
|
-
active snapshot's session_id; no anchor = no
|
|
5291
|
-
handoff/events (use 'hippo session resume' for
|
|
5292
|
-
the explicit handoff-without-snapshot path).
|
|
5293
|
-
explain <query> Show full score breakdown for each retrieved memory
|
|
5294
|
-
--budget <n> Token budget (default: 4000)
|
|
5295
|
-
--limit <n> Cap the number of results displayed
|
|
5296
|
-
--json Output as JSON
|
|
5297
|
-
--physics | --classic Force search mode (default: from config)
|
|
5298
|
-
--no-mmr Disable MMR diversity re-ranking
|
|
5299
|
-
--mmr-lambda <f> MMR balance 0..1 (default: 0.7, 1.0 = pure relevance)
|
|
5300
|
-
trace <id> Memory dossier: content, decay trajectory, retrievals,
|
|
5301
|
-
outcomes, consolidation parents, open conflicts
|
|
5302
|
-
--json Output as JSON
|
|
5303
|
-
refine Rewrite consolidated semantic memories with Claude
|
|
5304
|
-
--limit <n> Cap the number of memories processed this run
|
|
5305
|
-
--all Ignore \`llm-refined\` tag and re-refine everything
|
|
5306
|
-
--dry-run Call the API but don't write results back
|
|
5307
|
-
--model <id> Override the default model (claude-sonnet-4-6)
|
|
5308
|
-
--json Output summary as JSON
|
|
5309
|
-
(requires ANTHROPIC_API_KEY in env)
|
|
5310
|
-
eval [<corpus.json>] Measure recall quality against a test corpus
|
|
5311
|
-
--bootstrap Generate a synthetic corpus from current memories
|
|
5312
|
-
--out <path> With --bootstrap, write to file instead of stdout
|
|
5313
|
-
--max-cases <n> With --bootstrap, cap case count (default: 50)
|
|
5314
|
-
--show-cases Print per-case details (query, R@10, missed, top 3)
|
|
5315
|
-
--compare <path> JSON from a prior \`eval --json\` run; print deltas
|
|
5316
|
-
--no-mmr Disable MMR for this eval run
|
|
5317
|
-
--mmr-lambda <f> Override MMR lambda for this run
|
|
5318
|
-
--embedding-weight <f> Override cosine weight (default: 0.6)
|
|
5319
|
-
--local-bump <f> Local-over-global priority multiplier (default: 1.2)
|
|
5320
|
-
--equal-sources Shortcut for --local-bump 1.0
|
|
5321
|
-
--min-mrr <f> Exit non-zero if mean MRR falls below this
|
|
5322
|
-
--json Output full summary as JSON
|
|
5323
|
-
context Smart context injection for AI agents
|
|
5324
|
-
--auto Auto-detect task from git state
|
|
5325
|
-
--budget <n> Token budget (default: 1500)
|
|
5326
|
-
--pinned-only Only inject pinned memories (used by UserPromptSubmit hook)
|
|
5327
|
-
--include-recent <n> With --pinned-only, also inject the last N writes regardless of pinning
|
|
5328
|
-
--format <fmt> Output format: markdown (default), json, or additional-context (Claude Code hook JSON)
|
|
5329
|
-
--framing <mode> Framing: observe (default), suggest, assert
|
|
5330
|
-
sleep Run consolidation pass (auto-learns + dedup + auto-shares)
|
|
5331
|
-
--dry-run Preview without writing
|
|
5332
|
-
--no-learn Skip auto git-learn before consolidation
|
|
5333
|
-
--no-share Skip auto-sharing to global store
|
|
5334
|
-
daily-runner Sweep registered workspaces and run daily learn+sleep
|
|
5335
|
-
dedup Remove duplicate memories (keeps stronger copy)
|
|
5336
|
-
--dry-run Preview without removing
|
|
5337
|
-
--threshold <n> Overlap threshold 0-1 (default: 0.7)
|
|
5338
|
-
status Show memory health stats
|
|
5339
|
-
audit [--fix] Check memory quality (--fix removes junk)
|
|
5340
|
-
github GitHub connector subcommands (backfill, dlq)
|
|
5341
|
-
backfill --repo <owner/name> [--since ISO] [--max <N>]
|
|
5342
|
-
Paginated backfill of issues + comments
|
|
5343
|
-
dlq list List DLQ entries for the active tenant
|
|
5344
|
-
dlq replay <id> [--force]
|
|
5345
|
-
Re-ingest a DLQ entry (--force skips sig check)
|
|
5346
|
-
provenance Provenance coverage gate for kind='raw' rows
|
|
5347
|
-
--json Output as JSON
|
|
5348
|
-
--strict Exit non-zero when coverage < 100%
|
|
5349
|
-
drill <summary-id> Walk down a DAG level-2 summary to its children
|
|
5350
|
-
--limit N Cap children list (default 50)
|
|
5351
|
-
--budget N Cap total child token cost (≈ chars/4)
|
|
5352
|
-
--json Output as JSON
|
|
5353
|
-
assemble --session <id> Build a session's chronological context window
|
|
5354
|
-
--budget N Token budget (default 4000)
|
|
5355
|
-
--fresh-tail N Recent rows always kept verbatim (default 10)
|
|
5356
|
-
--no-summarize-older Disable older-row summary substitution
|
|
5357
|
-
--scope <s> Restrict to exact scope (default: deny *:private:*)
|
|
5358
|
-
--json Output as JSON
|
|
5359
|
-
correction-latency Wall-clock lag from receipt to supersession (p50/p95/max)
|
|
5360
|
-
--json Output as JSON
|
|
5361
|
-
outcome Apply feedback to last recall
|
|
5362
|
-
--good Memories were helpful
|
|
5363
|
-
--bad Memories were irrelevant
|
|
5364
|
-
--id <id> Target a specific memory
|
|
5365
|
-
conflicts List detected open memory conflicts
|
|
5366
|
-
--status <status> Filter by status (default: open)
|
|
5367
|
-
--json Output as JSON
|
|
5368
|
-
resolve <conflict_id> Resolve a memory conflict
|
|
5369
|
-
--keep <memory_id> Memory to keep (required)
|
|
5370
|
-
--forget Delete the losing memory (default: halve half-life)
|
|
5371
|
-
snapshot <sub> Persist or inspect the current active task
|
|
5372
|
-
snapshot save Save active task state
|
|
5373
|
-
--task <task>
|
|
5374
|
-
--summary <summary>
|
|
5375
|
-
--next-step <step>
|
|
5376
|
-
--source <source> Optional source label
|
|
5377
|
-
--session <id> Link snapshot to a session trail
|
|
5378
|
-
snapshot show Show the active task snapshot
|
|
5379
|
-
--json Output as JSON
|
|
5380
|
-
snapshot clear Clear the active task snapshot
|
|
5381
|
-
--status <status> Mark final status (default: cleared)
|
|
5382
|
-
session <sub> Append or inspect short-term session history
|
|
5383
|
-
session log Append a structured session event
|
|
5384
|
-
--id <session-id>
|
|
5385
|
-
--content <text>
|
|
5386
|
-
--type <type> Event type (default: note)
|
|
5387
|
-
--task <task> Optional task label
|
|
5388
|
-
--source <source> Optional source label
|
|
5389
|
-
session show Show recent events for a session or task
|
|
5390
|
-
--id <session-id>
|
|
5391
|
-
--task <task>
|
|
5392
|
-
--limit <n> Event limit (default: 8)
|
|
5393
|
-
--json Output as JSON
|
|
5394
|
-
session latest Show latest task snapshot + events
|
|
5395
|
-
--id <session-id> Filter by session
|
|
5396
|
-
--json Output as JSON
|
|
5397
|
-
session resume Re-inject latest handoff as context output
|
|
5398
|
-
--id <session-id> Filter by session
|
|
5399
|
-
handoff <sub> Manage session handoffs for continuity
|
|
5400
|
-
handoff create Create a new session handoff
|
|
5401
|
-
--summary <text> Handoff summary (required)
|
|
5402
|
-
--next <text> Next action for successor
|
|
5403
|
-
--session <id> Session ID (auto-generated if omitted)
|
|
5404
|
-
--task <id> Associated task ID
|
|
5405
|
-
--artifact <path> Related file path (repeatable)
|
|
5406
|
-
handoff latest Show the most recent handoff
|
|
5407
|
-
--session <id> Filter by session
|
|
5408
|
-
--json Output as JSON
|
|
5409
|
-
handoff show <id> Show a specific handoff by ID
|
|
5410
|
-
current <sub> Show compact current state for agent injection
|
|
5411
|
-
current show Active task + recent session events (default)
|
|
5412
|
-
--json Output as JSON
|
|
5413
|
-
forget <id> Force remove a memory
|
|
5414
|
-
--archive Archive a raw (append-only) memory instead of deleting
|
|
5415
|
-
--reason "<why>" Reason recorded on the archive (required with --archive)
|
|
5416
|
-
inspect <id> Show full memory detail
|
|
5417
|
-
embed Embed all memories for semantic search
|
|
5418
|
-
--status Show embedding coverage
|
|
5419
|
-
watch "<command>" Run command, auto-learn from failures
|
|
5420
|
-
learn Learn lessons from repository history
|
|
5421
|
-
--git Scan recent git commits for lessons
|
|
5422
|
-
--days <n> Scan this many days back (default: 7)
|
|
5423
|
-
--repos <paths> Comma-separated repo paths to scan
|
|
5424
|
-
promote <id> Copy a local memory to the global store
|
|
5425
|
-
share <id> Share a memory with attribution + transfer scoring
|
|
5426
|
-
--force Share even if transfer score is low
|
|
5427
|
-
--auto Auto-share all high-transfer-score memories
|
|
5428
|
-
--dry-run Preview what would be shared
|
|
5429
|
-
--min-score <n> Minimum transfer score (default: 0.6)
|
|
5430
|
-
peers List projects contributing to global store
|
|
5431
|
-
sync Pull global memories into local project
|
|
5432
|
-
import Import memories from other AI tools
|
|
5433
|
-
--chatgpt <path> Import from ChatGPT memory export (JSON or txt)
|
|
5434
|
-
--claude <path> Import from CLAUDE.md or Claude memory.json
|
|
5435
|
-
--cursor <path> Import from .cursorrules or .cursor/rules
|
|
5436
|
-
--file <path> Import from any markdown or text file
|
|
5437
|
-
--markdown <path> Import from structured MEMORY.md / AGENTS.md
|
|
5438
|
-
--dry-run Preview without writing
|
|
5439
|
-
--global Write to global store ($HIPPO_HOME or ~/.hippo/)
|
|
5440
|
-
--tag <tag> Add extra tag (repeatable)
|
|
5441
|
-
export [file] Export all memories (default: stdout)
|
|
5442
|
-
--format <fmt> Output format: json (default) or markdown
|
|
5443
|
-
capture Extract memories from conversation text
|
|
5444
|
-
--stdin Read from piped input
|
|
5445
|
-
--file <path> Read from a file
|
|
5446
|
-
--last-session Read from the most recent agent session transcript
|
|
5447
|
-
--transcript <path> Explicit transcript path (implies --last-session)
|
|
5448
|
-
--log-file <path> Tee output to a log file (paired with 'hippo last-sleep')
|
|
5449
|
-
--dry-run Preview without writing
|
|
5450
|
-
--global Write to global store ($HIPPO_HOME or ~/.hippo/)
|
|
5451
|
-
setup One-shot: detect installed AI tools and install all
|
|
5452
|
-
available SessionEnd+SessionStart hooks
|
|
5453
|
-
--all Install for every JSON-hook tool, even if not detected
|
|
5454
|
-
--dry-run Show what would be installed without writing
|
|
5455
|
-
--no-schedule Skip installing or repairing the daily runner
|
|
5456
|
-
last-sleep Print the last 'hippo sleep --log-file' output and clear it
|
|
5457
|
-
--path <p> Log path (default: ~/.hippo/logs/last-sleep.log)
|
|
5458
|
-
--keep Print without clearing
|
|
5459
|
-
codex-run [-- ...args] Launch real Codex behind Hippo's session-end wrapper
|
|
5460
|
-
hook <sub> [target] Manage framework integrations
|
|
5461
|
-
hook list Show available hooks
|
|
5462
|
-
hook install <target> Install hook (claude-code|codex|cursor|openclaw|opencode|pi)
|
|
5463
|
-
claude-code/opencode install SessionEnd+SessionStart;
|
|
5464
|
-
codex wraps the detected launcher in place
|
|
5465
|
-
hook uninstall <target> Remove hook
|
|
5466
|
-
decide "<decision>" Record an architectural decision (90-day half-life)
|
|
5467
|
-
--context "<why>" Why this decision was made
|
|
5468
|
-
--supersedes <id> Supersede a previous decision (weakens it)
|
|
5469
|
-
invalidate "<pattern>" Actively weaken memories matching an old pattern
|
|
5470
|
-
--reason "<why>" Optional: what replaced it
|
|
5471
|
-
wm <sub> Working memory — bounded buffer for current state
|
|
5472
|
-
wm push Push a working memory entry
|
|
5473
|
-
--scope <scope> Scope name (default: default)
|
|
5474
|
-
--content <text> Content to store (required)
|
|
5475
|
-
--importance <n> Priority 0-1 (default: 0.5)
|
|
5476
|
-
--session <id> Session ID
|
|
5477
|
-
--task <id> Task ID
|
|
5478
|
-
wm read Read working memory entries
|
|
5479
|
-
--scope <scope> Filter by scope
|
|
5480
|
-
--session <id> Filter by session
|
|
5481
|
-
--limit <n> Max entries (default: 20)
|
|
5482
|
-
--json Output as JSON
|
|
5483
|
-
wm clear Clear working memory entries
|
|
5484
|
-
--scope <scope> Filter by scope
|
|
5485
|
-
--session <id> Filter by session
|
|
5486
|
-
wm flush Flush working memory (session end)
|
|
5487
|
-
--scope <scope> Filter by scope
|
|
5488
|
-
--session <id> Filter by session
|
|
5489
|
-
dashboard Open web dashboard for memory health
|
|
5490
|
-
--port <n> Port to serve on (default: 3333)
|
|
5491
|
-
mcp Start MCP server (stdio transport)
|
|
5492
|
-
goal <sub> dlPFC goal stack (B3) — scoped per session
|
|
5493
|
-
goal push <name> Push a new active goal; prints the new goal id
|
|
5494
|
-
--policy <type> schema-fit-biased | error-prioritized |
|
|
5495
|
-
recency-first | hybrid
|
|
5496
|
-
--success "<cond>" Optional success condition text
|
|
5497
|
-
--level <n> Goal level (default: 0)
|
|
5498
|
-
--parent <goalId> Parent goal id (for sub-goals)
|
|
5499
|
-
--session-id <s> Override session (defaults to HIPPO_SESSION_ID)
|
|
5500
|
-
--tenant-id <t> Override tenant (defaults to HIPPO_TENANT)
|
|
5501
|
-
goal list Show active goals as a table
|
|
5502
|
-
--all Include suspended/completed goals
|
|
5503
|
-
goal complete <id> Mark a goal completed
|
|
5504
|
-
--outcome <0..1> Outcome score; >=0.7 boosts, <0.3 decays recalled mems
|
|
5505
|
-
--no-propagate Close the goal without applying strength side-effects
|
|
5506
|
-
goal suspend <id> Move an active goal to suspended
|
|
5507
|
-
goal resume <id> Move a suspended goal back to active (depth-capped)
|
|
5508
|
-
auth <sub> Manage API keys (A5 stub auth)
|
|
5509
|
-
auth create Mint a new API key (plaintext shown ONCE)
|
|
5510
|
-
--label <s> Optional human label
|
|
5511
|
-
--role <r> admin | member (default: admin; member blocked from /v1/sleep)
|
|
5512
|
-
--tenant <id> Override tenant (defaults to HIPPO_TENANT)
|
|
5513
|
-
--json Output as JSON
|
|
5514
|
-
--global Operate on the global store
|
|
5515
|
-
auth list List API keys (active by default)
|
|
5516
|
-
--all Include revoked keys
|
|
5517
|
-
--json Output as JSON
|
|
5518
|
-
--global Operate on the global store
|
|
5519
|
-
auth revoke <key_id> Revoke an API key (subsequent validate fails)
|
|
5520
|
-
--json Output as JSON
|
|
5521
|
-
--global Operate on the global store
|
|
5522
|
-
audit <sub> Query the append-only audit log (A5 stub auth)
|
|
5523
|
-
audit list List audit events for the active tenant
|
|
5524
|
-
--op <op> Filter by op (remember | recall | promote |
|
|
5525
|
-
supersede | forget | archive_raw | auth_revoke)
|
|
5526
|
-
--since <iso> Lower bound on ts (ISO timestamp)
|
|
5527
|
-
--limit <n> Max events (default: 100, max: 10000)
|
|
5528
|
-
--json Output as JSON
|
|
5529
|
-
--global Operate on the global store
|
|
5530
|
-
|
|
5531
|
-
Examples:
|
|
5532
|
-
hippo init
|
|
5533
|
-
hippo remember "FRED cache can silently drop series" --tag error
|
|
5534
|
-
hippo recall "data pipeline issues" --budget 2000
|
|
5535
|
-
hippo context --auto --budget 1500
|
|
5536
|
-
hippo conflicts
|
|
5537
|
-
hippo session log --id sess_123 --task "Ship feature" --type progress --content "Build is green, next step is docs"
|
|
5538
|
-
hippo session latest --json
|
|
5539
|
-
hippo session resume
|
|
5540
|
-
hippo snapshot save --task "Ship feature" --summary "Tests are green" --next-step "Open the PR" --session sess_123
|
|
5541
|
-
hippo handoff create --summary "PR is open, tests green" --next "Merge after review" --session sess_123 --artifact src/foo.ts
|
|
5542
|
-
hippo embed --status
|
|
5543
|
-
hippo watch "npm run build"
|
|
5544
|
-
hippo learn --git --days 30
|
|
5545
|
-
hippo promote mem_abc123
|
|
5546
|
-
hippo sync
|
|
5547
|
-
hippo setup
|
|
5548
|
-
hippo hook install claude-code
|
|
5549
|
-
hippo decide "Use PostgreSQL for new services" --context "JSONB support"
|
|
5550
|
-
hippo invalidate "REST API" --reason "migrated to GraphQL"
|
|
5551
|
-
hippo export memories.json
|
|
5552
|
-
hippo export --format markdown memories.md
|
|
5553
|
-
hippo sleep --dry-run
|
|
5554
|
-
hippo outcome --good
|
|
5555
|
-
hippo status
|
|
5252
|
+
console.log(`
|
|
5253
|
+
Hippo - biologically-inspired memory system for AI agents
|
|
5254
|
+
|
|
5255
|
+
Usage: hippo <command> [options]
|
|
5256
|
+
|
|
5257
|
+
Commands:
|
|
5258
|
+
init Create .hippo/ structure in current directory
|
|
5259
|
+
--scan [dir] Find all git repos under dir (default: ~) and init each
|
|
5260
|
+
--days <n> Days of git history to seed (default: 365 for --scan, 30 for single)
|
|
5261
|
+
--global Init the global store ($HIPPO_HOME or ~/.hippo/)
|
|
5262
|
+
--no-hooks Skip auto-detecting and installing agent hooks
|
|
5263
|
+
--no-schedule Skip auto-creating the machine-level daily runner
|
|
5264
|
+
--no-learn Skip seeding memories from git history
|
|
5265
|
+
remember <text> Store a memory
|
|
5266
|
+
--tag <tag> Add a tag (repeatable)
|
|
5267
|
+
--error Tag as error (boosts retention)
|
|
5268
|
+
--pin Pin memory (never decays)
|
|
5269
|
+
--verified Set confidence: verified (default)
|
|
5270
|
+
--observed Set confidence: observed
|
|
5271
|
+
--inferred Set confidence: inferred
|
|
5272
|
+
--global Store in global store ($HIPPO_HOME or ~/.hippo/)
|
|
5273
|
+
recall <query> Search and retrieve memories (local + global)
|
|
5274
|
+
--budget <n> Token budget (default: 4000)
|
|
5275
|
+
--min-results <n> Minimum results regardless of budget (default: 1)
|
|
5276
|
+
--json Output as JSON
|
|
5277
|
+
--why Show match reasons and source annotations
|
|
5278
|
+
--no-mmr Disable MMR diversity re-ranking
|
|
5279
|
+
--mmr-lambda <f> MMR balance 0..1 (default: 0.7, 1.0 = pure relevance)
|
|
5280
|
+
--evc-adaptive ACC-style: when top-K shows high inter-item overlap
|
|
5281
|
+
(= conflict cluster), expand pool and re-rank by
|
|
5282
|
+
recency. Default off. RESEARCH.md §PFC.ACC.
|
|
5283
|
+
--filter-conflicts vlPFC interference filter: drop superseded entries
|
|
5284
|
+
and 0.3x-downweight entries flagged in an open
|
|
5285
|
+
conflict with a peer in the same result set.
|
|
5286
|
+
Uses recorded supersession + conflicts only — never
|
|
5287
|
+
lexical inference. Default off. RESEARCH.md §PFC.vlPFC.
|
|
5288
|
+
--value-aware vmPFC value attribution: boost memories with positive
|
|
5289
|
+
cumulative outcomes and demote those with negative
|
|
5290
|
+
outcomes during ranking. Multiplier
|
|
5291
|
+
clip(1 + 0.3*tanh(pos - neg), 0.7, 1.3). Reuses
|
|
5292
|
+
outcome_positive / outcome_negative; no schema
|
|
5293
|
+
change. Default off. RESEARCH.md §PFC.vmPFC.
|
|
5294
|
+
--rerank-utility OFC option-value re-ranker: combine relevance,
|
|
5295
|
+
strength, and integration cost into a single utility
|
|
5296
|
+
= score * (0.5 + 0.5 * strength) * (1 - cost_factor)
|
|
5297
|
+
where cost_factor = min(0.3, tokens / 10000). Re-sorts
|
|
5298
|
+
results by utility. Default off. RESEARCH.md §PFC.OFC.
|
|
5299
|
+
--reranker <name> Apply a reranker pass after retrieval
|
|
5300
|
+
(cross-encoder|llm). Looks up the named
|
|
5301
|
+
reranker from src/rerankers/index.ts and re-orders
|
|
5302
|
+
the top-K candidates. Default unset (no reranker).
|
|
5303
|
+
See docs/plans/2026-05-10-f6-reranker-hardening.md.
|
|
5304
|
+
--reranker-top-k <n> Cap candidates passed to the reranker (default 50).
|
|
5305
|
+
--goal <tag> dlPFC goal-conditioned recall: memories tagged with
|
|
5306
|
+
the goal tag get a 1.5x score boost and results are
|
|
5307
|
+
re-sorted. Default off. RESEARCH.md §PFC.dlPFC.
|
|
5308
|
+
--session-id <id> Session identifier for dlPFC goal-stack boost.
|
|
5309
|
+
Defaults to \$HIPPO_SESSION_ID. When set and the
|
|
5310
|
+
(tenant, session) has active goals (see
|
|
5311
|
+
'hippo goal push'), recall auto-boosts memories
|
|
5312
|
+
whose tags match an active goal name. Boost stacks
|
|
5313
|
+
on top of base BM25 score, capped at 3.0x.
|
|
5314
|
+
--salience-threshold <n>
|
|
5315
|
+
Pineal salience: down-weight memories whose
|
|
5316
|
+
retrieval_count is below n. score *= max(0.5,
|
|
5317
|
+
retrieval_count / n) for entries with count < n;
|
|
5318
|
+
entries at or above n are unchanged. Salience emerges
|
|
5319
|
+
from USE, not from lexical overlap. Default off.
|
|
5320
|
+
RESEARCH.md §"AI Pineal Gland". (v1's creation-time
|
|
5321
|
+
lexical gate destroyed LoCoMo 0.28 -> 0.02; this v2
|
|
5322
|
+
is retrieval-side, opt-in only — see MEMORY.md
|
|
5323
|
+
"Hippo salience gate destroys benchmark recall".)
|
|
5324
|
+
--continuity Include continuity block (active task snapshot,
|
|
5325
|
+
latest matching session handoff, last 5 session
|
|
5326
|
+
events) above the memory list. Useful at agent
|
|
5327
|
+
boot when you want both relevant memories AND
|
|
5328
|
+
where you left off in one call. Anchored on the
|
|
5329
|
+
active snapshot's session_id; no anchor = no
|
|
5330
|
+
handoff/events (use 'hippo session resume' for
|
|
5331
|
+
the explicit handoff-without-snapshot path).
|
|
5332
|
+
explain <query> Show full score breakdown for each retrieved memory
|
|
5333
|
+
--budget <n> Token budget (default: 4000)
|
|
5334
|
+
--limit <n> Cap the number of results displayed
|
|
5335
|
+
--json Output as JSON
|
|
5336
|
+
--physics | --classic Force search mode (default: from config)
|
|
5337
|
+
--no-mmr Disable MMR diversity re-ranking
|
|
5338
|
+
--mmr-lambda <f> MMR balance 0..1 (default: 0.7, 1.0 = pure relevance)
|
|
5339
|
+
trace <id> Memory dossier: content, decay trajectory, retrievals,
|
|
5340
|
+
outcomes, consolidation parents, open conflicts
|
|
5341
|
+
--json Output as JSON
|
|
5342
|
+
refine Rewrite consolidated semantic memories with Claude
|
|
5343
|
+
--limit <n> Cap the number of memories processed this run
|
|
5344
|
+
--all Ignore \`llm-refined\` tag and re-refine everything
|
|
5345
|
+
--dry-run Call the API but don't write results back
|
|
5346
|
+
--model <id> Override the default model (claude-sonnet-4-6)
|
|
5347
|
+
--json Output summary as JSON
|
|
5348
|
+
(requires ANTHROPIC_API_KEY in env)
|
|
5349
|
+
eval [<corpus.json>] Measure recall quality against a test corpus
|
|
5350
|
+
--bootstrap Generate a synthetic corpus from current memories
|
|
5351
|
+
--out <path> With --bootstrap, write to file instead of stdout
|
|
5352
|
+
--max-cases <n> With --bootstrap, cap case count (default: 50)
|
|
5353
|
+
--show-cases Print per-case details (query, R@10, missed, top 3)
|
|
5354
|
+
--compare <path> JSON from a prior \`eval --json\` run; print deltas
|
|
5355
|
+
--no-mmr Disable MMR for this eval run
|
|
5356
|
+
--mmr-lambda <f> Override MMR lambda for this run
|
|
5357
|
+
--embedding-weight <f> Override cosine weight (default: 0.6)
|
|
5358
|
+
--local-bump <f> Local-over-global priority multiplier (default: 1.2)
|
|
5359
|
+
--equal-sources Shortcut for --local-bump 1.0
|
|
5360
|
+
--min-mrr <f> Exit non-zero if mean MRR falls below this
|
|
5361
|
+
--json Output full summary as JSON
|
|
5362
|
+
context Smart context injection for AI agents
|
|
5363
|
+
--auto Auto-detect task from git state
|
|
5364
|
+
--budget <n> Token budget (default: 1500)
|
|
5365
|
+
--pinned-only Only inject pinned memories (used by UserPromptSubmit hook)
|
|
5366
|
+
--include-recent <n> With --pinned-only, also inject the last N writes regardless of pinning
|
|
5367
|
+
--format <fmt> Output format: markdown (default), json, or additional-context (Claude Code hook JSON)
|
|
5368
|
+
--framing <mode> Framing: observe (default), suggest, assert
|
|
5369
|
+
sleep Run consolidation pass (auto-learns + dedup + auto-shares)
|
|
5370
|
+
--dry-run Preview without writing
|
|
5371
|
+
--no-learn Skip auto git-learn before consolidation
|
|
5372
|
+
--no-share Skip auto-sharing to global store
|
|
5373
|
+
daily-runner Sweep registered workspaces and run daily learn+sleep
|
|
5374
|
+
dedup Remove duplicate memories (keeps stronger copy)
|
|
5375
|
+
--dry-run Preview without removing
|
|
5376
|
+
--threshold <n> Overlap threshold 0-1 (default: 0.7)
|
|
5377
|
+
status Show memory health stats
|
|
5378
|
+
audit [--fix] Check memory quality (--fix removes junk)
|
|
5379
|
+
github GitHub connector subcommands (backfill, dlq)
|
|
5380
|
+
backfill --repo <owner/name> [--since ISO] [--max <N>]
|
|
5381
|
+
Paginated backfill of issues + comments
|
|
5382
|
+
dlq list List DLQ entries for the active tenant
|
|
5383
|
+
dlq replay <id> [--force]
|
|
5384
|
+
Re-ingest a DLQ entry (--force skips sig check)
|
|
5385
|
+
provenance Provenance coverage gate for kind='raw' rows
|
|
5386
|
+
--json Output as JSON
|
|
5387
|
+
--strict Exit non-zero when coverage < 100%
|
|
5388
|
+
drill <summary-id> Walk down a DAG level-2 summary to its children
|
|
5389
|
+
--limit N Cap children list (default 50)
|
|
5390
|
+
--budget N Cap total child token cost (≈ chars/4)
|
|
5391
|
+
--json Output as JSON
|
|
5392
|
+
assemble --session <id> Build a session's chronological context window
|
|
5393
|
+
--budget N Token budget (default 4000)
|
|
5394
|
+
--fresh-tail N Recent rows always kept verbatim (default 10)
|
|
5395
|
+
--no-summarize-older Disable older-row summary substitution
|
|
5396
|
+
--scope <s> Restrict to exact scope (default: deny *:private:*)
|
|
5397
|
+
--json Output as JSON
|
|
5398
|
+
correction-latency Wall-clock lag from receipt to supersession (p50/p95/max)
|
|
5399
|
+
--json Output as JSON
|
|
5400
|
+
outcome Apply feedback to last recall
|
|
5401
|
+
--good Memories were helpful
|
|
5402
|
+
--bad Memories were irrelevant
|
|
5403
|
+
--id <id> Target a specific memory
|
|
5404
|
+
conflicts List detected open memory conflicts
|
|
5405
|
+
--status <status> Filter by status (default: open)
|
|
5406
|
+
--json Output as JSON
|
|
5407
|
+
resolve <conflict_id> Resolve a memory conflict
|
|
5408
|
+
--keep <memory_id> Memory to keep (required)
|
|
5409
|
+
--forget Delete the losing memory (default: halve half-life)
|
|
5410
|
+
snapshot <sub> Persist or inspect the current active task
|
|
5411
|
+
snapshot save Save active task state
|
|
5412
|
+
--task <task>
|
|
5413
|
+
--summary <summary>
|
|
5414
|
+
--next-step <step>
|
|
5415
|
+
--source <source> Optional source label
|
|
5416
|
+
--session <id> Link snapshot to a session trail
|
|
5417
|
+
snapshot show Show the active task snapshot
|
|
5418
|
+
--json Output as JSON
|
|
5419
|
+
snapshot clear Clear the active task snapshot
|
|
5420
|
+
--status <status> Mark final status (default: cleared)
|
|
5421
|
+
session <sub> Append or inspect short-term session history
|
|
5422
|
+
session log Append a structured session event
|
|
5423
|
+
--id <session-id>
|
|
5424
|
+
--content <text>
|
|
5425
|
+
--type <type> Event type (default: note)
|
|
5426
|
+
--task <task> Optional task label
|
|
5427
|
+
--source <source> Optional source label
|
|
5428
|
+
session show Show recent events for a session or task
|
|
5429
|
+
--id <session-id>
|
|
5430
|
+
--task <task>
|
|
5431
|
+
--limit <n> Event limit (default: 8)
|
|
5432
|
+
--json Output as JSON
|
|
5433
|
+
session latest Show latest task snapshot + events
|
|
5434
|
+
--id <session-id> Filter by session
|
|
5435
|
+
--json Output as JSON
|
|
5436
|
+
session resume Re-inject latest handoff as context output
|
|
5437
|
+
--id <session-id> Filter by session
|
|
5438
|
+
handoff <sub> Manage session handoffs for continuity
|
|
5439
|
+
handoff create Create a new session handoff
|
|
5440
|
+
--summary <text> Handoff summary (required)
|
|
5441
|
+
--next <text> Next action for successor
|
|
5442
|
+
--session <id> Session ID (auto-generated if omitted)
|
|
5443
|
+
--task <id> Associated task ID
|
|
5444
|
+
--artifact <path> Related file path (repeatable)
|
|
5445
|
+
handoff latest Show the most recent handoff
|
|
5446
|
+
--session <id> Filter by session
|
|
5447
|
+
--json Output as JSON
|
|
5448
|
+
handoff show <id> Show a specific handoff by ID
|
|
5449
|
+
current <sub> Show compact current state for agent injection
|
|
5450
|
+
current show Active task + recent session events (default)
|
|
5451
|
+
--json Output as JSON
|
|
5452
|
+
forget <id> Force remove a memory
|
|
5453
|
+
--archive Archive a raw (append-only) memory instead of deleting
|
|
5454
|
+
--reason "<why>" Reason recorded on the archive (required with --archive)
|
|
5455
|
+
inspect <id> Show full memory detail
|
|
5456
|
+
embed Embed all memories for semantic search
|
|
5457
|
+
--status Show embedding coverage
|
|
5458
|
+
watch "<command>" Run command, auto-learn from failures
|
|
5459
|
+
learn Learn lessons from repository history
|
|
5460
|
+
--git Scan recent git commits for lessons
|
|
5461
|
+
--days <n> Scan this many days back (default: 7)
|
|
5462
|
+
--repos <paths> Comma-separated repo paths to scan
|
|
5463
|
+
promote <id> Copy a local memory to the global store
|
|
5464
|
+
share <id> Share a memory with attribution + transfer scoring
|
|
5465
|
+
--force Share even if transfer score is low
|
|
5466
|
+
--auto Auto-share all high-transfer-score memories
|
|
5467
|
+
--dry-run Preview what would be shared
|
|
5468
|
+
--min-score <n> Minimum transfer score (default: 0.6)
|
|
5469
|
+
peers List projects contributing to global store
|
|
5470
|
+
sync Pull global memories into local project
|
|
5471
|
+
import Import memories from other AI tools
|
|
5472
|
+
--chatgpt <path> Import from ChatGPT memory export (JSON or txt)
|
|
5473
|
+
--claude <path> Import from CLAUDE.md or Claude memory.json
|
|
5474
|
+
--cursor <path> Import from .cursorrules or .cursor/rules
|
|
5475
|
+
--file <path> Import from any markdown or text file
|
|
5476
|
+
--markdown <path> Import from structured MEMORY.md / AGENTS.md
|
|
5477
|
+
--dry-run Preview without writing
|
|
5478
|
+
--global Write to global store ($HIPPO_HOME or ~/.hippo/)
|
|
5479
|
+
--tag <tag> Add extra tag (repeatable)
|
|
5480
|
+
export [file] Export all memories (default: stdout)
|
|
5481
|
+
--format <fmt> Output format: json (default) or markdown
|
|
5482
|
+
capture Extract memories from conversation text
|
|
5483
|
+
--stdin Read from piped input
|
|
5484
|
+
--file <path> Read from a file
|
|
5485
|
+
--last-session Read from the most recent agent session transcript
|
|
5486
|
+
--transcript <path> Explicit transcript path (implies --last-session)
|
|
5487
|
+
--log-file <path> Tee output to a log file (paired with 'hippo last-sleep')
|
|
5488
|
+
--dry-run Preview without writing
|
|
5489
|
+
--global Write to global store ($HIPPO_HOME or ~/.hippo/)
|
|
5490
|
+
setup One-shot: detect installed AI tools and install all
|
|
5491
|
+
available SessionEnd+SessionStart hooks
|
|
5492
|
+
--all Install for every JSON-hook tool, even if not detected
|
|
5493
|
+
--dry-run Show what would be installed without writing
|
|
5494
|
+
--no-schedule Skip installing or repairing the daily runner
|
|
5495
|
+
last-sleep Print the last 'hippo sleep --log-file' output and clear it
|
|
5496
|
+
--path <p> Log path (default: ~/.hippo/logs/last-sleep.log)
|
|
5497
|
+
--keep Print without clearing
|
|
5498
|
+
codex-run [-- ...args] Launch real Codex behind Hippo's session-end wrapper
|
|
5499
|
+
hook <sub> [target] Manage framework integrations
|
|
5500
|
+
hook list Show available hooks
|
|
5501
|
+
hook install <target> Install hook (claude-code|codex|cursor|openclaw|opencode|pi)
|
|
5502
|
+
claude-code/opencode install SessionEnd+SessionStart;
|
|
5503
|
+
codex wraps the detected launcher in place
|
|
5504
|
+
hook uninstall <target> Remove hook
|
|
5505
|
+
decide "<decision>" Record an architectural decision (90-day half-life)
|
|
5506
|
+
--context "<why>" Why this decision was made
|
|
5507
|
+
--supersedes <id> Supersede a previous decision (weakens it)
|
|
5508
|
+
invalidate "<pattern>" Actively weaken memories matching an old pattern
|
|
5509
|
+
--reason "<why>" Optional: what replaced it
|
|
5510
|
+
wm <sub> Working memory — bounded buffer for current state
|
|
5511
|
+
wm push Push a working memory entry
|
|
5512
|
+
--scope <scope> Scope name (default: default)
|
|
5513
|
+
--content <text> Content to store (required)
|
|
5514
|
+
--importance <n> Priority 0-1 (default: 0.5)
|
|
5515
|
+
--session <id> Session ID
|
|
5516
|
+
--task <id> Task ID
|
|
5517
|
+
wm read Read working memory entries
|
|
5518
|
+
--scope <scope> Filter by scope
|
|
5519
|
+
--session <id> Filter by session
|
|
5520
|
+
--limit <n> Max entries (default: 20)
|
|
5521
|
+
--json Output as JSON
|
|
5522
|
+
wm clear Clear working memory entries
|
|
5523
|
+
--scope <scope> Filter by scope
|
|
5524
|
+
--session <id> Filter by session
|
|
5525
|
+
wm flush Flush working memory (session end)
|
|
5526
|
+
--scope <scope> Filter by scope
|
|
5527
|
+
--session <id> Filter by session
|
|
5528
|
+
dashboard Open web dashboard for memory health
|
|
5529
|
+
--port <n> Port to serve on (default: 3333)
|
|
5530
|
+
mcp Start MCP server (stdio transport)
|
|
5531
|
+
goal <sub> dlPFC goal stack (B3) — scoped per session
|
|
5532
|
+
goal push <name> Push a new active goal; prints the new goal id
|
|
5533
|
+
--policy <type> schema-fit-biased | error-prioritized |
|
|
5534
|
+
recency-first | hybrid
|
|
5535
|
+
--success "<cond>" Optional success condition text
|
|
5536
|
+
--level <n> Goal level (default: 0)
|
|
5537
|
+
--parent <goalId> Parent goal id (for sub-goals)
|
|
5538
|
+
--session-id <s> Override session (defaults to HIPPO_SESSION_ID)
|
|
5539
|
+
--tenant-id <t> Override tenant (defaults to HIPPO_TENANT)
|
|
5540
|
+
goal list Show active goals as a table
|
|
5541
|
+
--all Include suspended/completed goals
|
|
5542
|
+
goal complete <id> Mark a goal completed
|
|
5543
|
+
--outcome <0..1> Outcome score; >=0.7 boosts, <0.3 decays recalled mems
|
|
5544
|
+
--no-propagate Close the goal without applying strength side-effects
|
|
5545
|
+
goal suspend <id> Move an active goal to suspended
|
|
5546
|
+
goal resume <id> Move a suspended goal back to active (depth-capped)
|
|
5547
|
+
auth <sub> Manage API keys (A5 stub auth)
|
|
5548
|
+
auth create Mint a new API key (plaintext shown ONCE)
|
|
5549
|
+
--label <s> Optional human label
|
|
5550
|
+
--role <r> admin | member (default: admin; member blocked from /v1/sleep)
|
|
5551
|
+
--tenant <id> Override tenant (defaults to HIPPO_TENANT)
|
|
5552
|
+
--json Output as JSON
|
|
5553
|
+
--global Operate on the global store
|
|
5554
|
+
auth list List API keys (active by default)
|
|
5555
|
+
--all Include revoked keys
|
|
5556
|
+
--json Output as JSON
|
|
5557
|
+
--global Operate on the global store
|
|
5558
|
+
auth revoke <key_id> Revoke an API key (subsequent validate fails)
|
|
5559
|
+
--json Output as JSON
|
|
5560
|
+
--global Operate on the global store
|
|
5561
|
+
audit <sub> Query the append-only audit log (A5 stub auth)
|
|
5562
|
+
audit list List audit events for the active tenant
|
|
5563
|
+
--op <op> Filter by op (remember | recall | promote |
|
|
5564
|
+
supersede | forget | archive_raw | auth_revoke)
|
|
5565
|
+
--since <iso> Lower bound on ts (ISO timestamp)
|
|
5566
|
+
--limit <n> Max events (default: 100, max: 10000)
|
|
5567
|
+
--json Output as JSON
|
|
5568
|
+
--global Operate on the global store
|
|
5569
|
+
|
|
5570
|
+
Examples:
|
|
5571
|
+
hippo init
|
|
5572
|
+
hippo remember "FRED cache can silently drop series" --tag error
|
|
5573
|
+
hippo recall "data pipeline issues" --budget 2000
|
|
5574
|
+
hippo context --auto --budget 1500
|
|
5575
|
+
hippo conflicts
|
|
5576
|
+
hippo session log --id sess_123 --task "Ship feature" --type progress --content "Build is green, next step is docs"
|
|
5577
|
+
hippo session latest --json
|
|
5578
|
+
hippo session resume
|
|
5579
|
+
hippo snapshot save --task "Ship feature" --summary "Tests are green" --next-step "Open the PR" --session sess_123
|
|
5580
|
+
hippo handoff create --summary "PR is open, tests green" --next "Merge after review" --session sess_123 --artifact src/foo.ts
|
|
5581
|
+
hippo embed --status
|
|
5582
|
+
hippo watch "npm run build"
|
|
5583
|
+
hippo learn --git --days 30
|
|
5584
|
+
hippo promote mem_abc123
|
|
5585
|
+
hippo sync
|
|
5586
|
+
hippo setup
|
|
5587
|
+
hippo hook install claude-code
|
|
5588
|
+
hippo decide "Use PostgreSQL for new services" --context "JSONB support"
|
|
5589
|
+
hippo invalidate "REST API" --reason "migrated to GraphQL"
|
|
5590
|
+
hippo export memories.json
|
|
5591
|
+
hippo export --format markdown memories.md
|
|
5592
|
+
hippo sleep --dry-run
|
|
5593
|
+
hippo outcome --good
|
|
5594
|
+
hippo status
|
|
5556
5595
|
`);
|
|
5557
5596
|
}
|
|
5558
5597
|
// ---------------------------------------------------------------------------
|