hippo-memory 1.32.0 → 1.33.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 +24 -17
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +78 -142
- package/dist/api.js.map +1 -1
- package/dist/audit-prune.d.ts.map +1 -1
- package/dist/audit-prune.js +7 -1
- package/dist/audit-prune.js.map +1 -1
- package/dist/audit.d.ts +3 -2
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +13 -6
- package/dist/audit.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +6 -0
- package/dist/auth.js.map +1 -1
- package/dist/autolearn.js +4 -4
- package/dist/autolearn.js.map +1 -1
- package/dist/benchmarks/e1.3/incident-recall-eval.js +4 -0
- package/dist/benchmarks/e1.3/incident-recall-eval.js.map +1 -1
- package/dist/benchmarks/e1.3/slack-1000-event-smoke.js +2 -2
- package/dist/benchmarks/e1.3/slack-1000-event-smoke.js.map +1 -1
- package/dist/capture.d.ts.map +1 -1
- package/dist/capture.js +93 -66
- package/dist/capture.js.map +1 -1
- package/dist/client.d.ts +0 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +32 -14
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -4
- package/dist/config.js.map +1 -1
- package/dist/connectors/github/backfill.d.ts.map +1 -1
- package/dist/connectors/github/backfill.js +25 -16
- package/dist/connectors/github/backfill.js.map +1 -1
- package/dist/connectors/github/cli-impl.d.ts +2 -1
- package/dist/connectors/github/cli-impl.d.ts.map +1 -1
- package/dist/connectors/github/cli-impl.js +20 -4
- package/dist/connectors/github/cli-impl.js.map +1 -1
- package/dist/connectors/github/deletion.d.ts.map +1 -1
- package/dist/connectors/github/deletion.js +2 -0
- package/dist/connectors/github/deletion.js.map +1 -1
- package/dist/connectors/github/dlq.d.ts.map +1 -1
- package/dist/connectors/github/dlq.js +9 -1
- package/dist/connectors/github/dlq.js.map +1 -1
- package/dist/connectors/github/idempotency.d.ts.map +1 -1
- package/dist/connectors/github/idempotency.js +2 -0
- package/dist/connectors/github/idempotency.js.map +1 -1
- package/dist/connectors/github/octokit-client.d.ts +2 -1
- package/dist/connectors/github/octokit-client.d.ts.map +1 -1
- package/dist/connectors/github/octokit-client.js +8 -3
- package/dist/connectors/github/octokit-client.js.map +1 -1
- package/dist/connectors/github/tenant-routing.d.ts.map +1 -1
- package/dist/connectors/github/tenant-routing.js +8 -0
- package/dist/connectors/github/tenant-routing.js.map +1 -1
- package/dist/connectors/github/types.d.ts +14 -5
- package/dist/connectors/github/types.d.ts.map +1 -1
- package/dist/connectors/github/types.js +35 -29
- package/dist/connectors/github/types.js.map +1 -1
- package/dist/connectors/slack/backfill.d.ts.map +1 -1
- package/dist/connectors/slack/backfill.js +2 -0
- package/dist/connectors/slack/backfill.js.map +1 -1
- package/dist/connectors/slack/deletion.d.ts.map +1 -1
- package/dist/connectors/slack/deletion.js +2 -0
- package/dist/connectors/slack/deletion.js.map +1 -1
- package/dist/connectors/slack/dlq.d.ts.map +1 -1
- package/dist/connectors/slack/dlq.js +3 -1
- package/dist/connectors/slack/dlq.js.map +1 -1
- package/dist/connectors/slack/idempotency.d.ts.map +1 -1
- package/dist/connectors/slack/idempotency.js +2 -0
- package/dist/connectors/slack/idempotency.js.map +1 -1
- package/dist/connectors/slack/tenant-routing.d.ts.map +1 -1
- package/dist/connectors/slack/tenant-routing.js +4 -0
- package/dist/connectors/slack/tenant-routing.js.map +1 -1
- package/dist/connectors/slack/types.d.ts +8 -3
- package/dist/connectors/slack/types.d.ts.map +1 -1
- package/dist/connectors/slack/types.js +22 -10
- package/dist/connectors/slack/types.js.map +1 -1
- package/dist/connectors/slack/web-client.d.ts +0 -9
- package/dist/connectors/slack/web-client.d.ts.map +1 -1
- package/dist/connectors/slack/web-client.js +11 -11
- package/dist/connectors/slack/web-client.js.map +1 -1
- package/dist/connectors/slack/workspaces.d.ts.map +1 -1
- package/dist/connectors/slack/workspaces.js +2 -0
- package/dist/connectors/slack/workspaces.js.map +1 -1
- package/dist/consolidate.d.ts.map +1 -1
- package/dist/consolidate.js +8 -3
- package/dist/consolidate.js.map +1 -1
- package/dist/customer-notes.d.ts.map +1 -1
- package/dist/customer-notes.js +17 -0
- package/dist/customer-notes.js.map +1 -1
- package/dist/dag.js +1 -1
- package/dist/dag.js.map +1 -1
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +5 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/db.d.ts +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +24 -0
- package/dist/db.js.map +1 -1
- package/dist/decisions.d.ts.map +1 -1
- package/dist/decisions.js +10 -0
- package/dist/decisions.js.map +1 -1
- package/dist/dedupe.d.ts +14 -6
- package/dist/dedupe.d.ts.map +1 -1
- package/dist/dedupe.js +61 -39
- package/dist/dedupe.js.map +1 -1
- package/dist/embedding-provider.d.ts.map +1 -1
- package/dist/embedding-provider.js +24 -15
- package/dist/embedding-provider.js.map +1 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +17 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/eval-suite.d.ts.map +1 -1
- package/dist/eval-suite.js +5 -0
- package/dist/eval-suite.js.map +1 -1
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +10 -3
- package/dist/extract.js.map +1 -1
- package/dist/goals.d.ts.map +1 -1
- package/dist/goals.js +26 -12
- package/dist/goals.js.map +1 -1
- package/dist/graph-extract.d.ts.map +1 -1
- package/dist/graph-extract.js +9 -1
- package/dist/graph-extract.js.map +1 -1
- package/dist/graph-view.d.ts.map +1 -1
- package/dist/graph-view.js.map +1 -1
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +38 -13
- package/dist/graph.js.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +42 -21
- package/dist/hooks.js.map +1 -1
- package/dist/importers.d.ts.map +1 -1
- package/dist/importers.js +23 -42
- package/dist/importers.js.map +1 -1
- package/dist/incidents.d.ts.map +1 -1
- package/dist/incidents.js +14 -0
- package/dist/incidents.js.map +1 -1
- package/dist/mcp/server.d.ts +4 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +58 -28
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory-value.d.ts +0 -10
- package/dist/memory-value.d.ts.map +1 -1
- package/dist/memory-value.js +8 -2
- package/dist/memory-value.js.map +1 -1
- package/dist/memory.js.map +1 -1
- package/dist/physics-state.d.ts.map +1 -1
- package/dist/physics-state.js +5 -0
- package/dist/physics-state.js.map +1 -1
- package/dist/physics.js.map +1 -1
- package/dist/policies.d.ts.map +1 -1
- package/dist/policies.js +22 -0
- package/dist/policies.js.map +1 -1
- package/dist/predictions.d.ts.map +1 -1
- package/dist/predictions.js +14 -0
- package/dist/predictions.js.map +1 -1
- package/dist/processes.d.ts +7 -1
- package/dist/processes.d.ts.map +1 -1
- package/dist/processes.js +21 -2
- package/dist/processes.js.map +1 -1
- package/dist/project-briefs.d.ts.map +1 -1
- package/dist/project-briefs.js +28 -2
- package/dist/project-briefs.js.map +1 -1
- package/dist/raw-archive-mirror-cleanup.d.ts.map +1 -1
- package/dist/raw-archive-mirror-cleanup.js +2 -0
- package/dist/raw-archive-mirror-cleanup.js.map +1 -1
- package/dist/raw-archive.d.ts +0 -9
- package/dist/raw-archive.d.ts.map +1 -1
- package/dist/raw-archive.js +3 -9
- package/dist/raw-archive.js.map +1 -1
- package/dist/recall-scope.d.ts.map +1 -1
- package/dist/recall-scope.js +11 -6
- package/dist/recall-scope.js.map +1 -1
- package/dist/recall-trace.d.ts.map +1 -1
- package/dist/recall-trace.js +7 -3
- package/dist/recall-trace.js.map +1 -1
- package/dist/refine-llm.d.ts.map +1 -1
- package/dist/refine-llm.js +3 -0
- package/dist/refine-llm.js.map +1 -1
- package/dist/reject-flow.d.ts.map +1 -1
- package/dist/reject-flow.js +2 -0
- package/dist/reject-flow.js.map +1 -1
- package/dist/rejection.d.ts.map +1 -1
- package/dist/rejection.js +3 -0
- package/dist/rejection.js.map +1 -1
- package/dist/replay.js.map +1 -1
- package/dist/rerankers/cross-encoder.d.ts.map +1 -1
- package/dist/rerankers/cross-encoder.js +11 -4
- package/dist/rerankers/cross-encoder.js.map +1 -1
- package/dist/rerankers/index.d.ts.map +1 -1
- package/dist/rerankers/index.js +5 -3
- package/dist/rerankers/index.js.map +1 -1
- package/dist/rerankers/llm.d.ts.map +1 -1
- package/dist/rerankers/llm.js +8 -5
- package/dist/rerankers/llm.js.map +1 -1
- package/dist/rerankers/types.d.ts +6 -1
- package/dist/rerankers/types.d.ts.map +1 -1
- package/dist/scheduler.d.ts +16 -0
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +15 -5
- package/dist/scheduler.js.map +1 -1
- package/dist/search.d.ts +4 -6
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js.map +1 -1
- package/dist/server-detect.d.ts.map +1 -1
- package/dist/server-detect.js +2 -0
- package/dist/server-detect.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +194 -135
- package/dist/server.js.map +1 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +10 -3
- package/dist/skills.js.map +1 -1
- package/dist/src/api.js +78 -142
- package/dist/src/api.js.map +1 -1
- package/dist/src/audit-prune.js +7 -1
- package/dist/src/audit-prune.js.map +1 -1
- package/dist/src/audit.js +13 -6
- package/dist/src/audit.js.map +1 -1
- package/dist/src/auth.js +6 -0
- package/dist/src/auth.js.map +1 -1
- package/dist/src/autolearn.js +4 -4
- package/dist/src/autolearn.js.map +1 -1
- package/dist/src/capture.js +93 -66
- package/dist/src/capture.js.map +1 -1
- package/dist/src/client.js +32 -14
- package/dist/src/client.js.map +1 -1
- package/dist/src/config.js +7 -4
- package/dist/src/config.js.map +1 -1
- package/dist/src/connectors/github/backfill.js +25 -16
- package/dist/src/connectors/github/backfill.js.map +1 -1
- package/dist/src/connectors/github/cli-impl.js +20 -4
- package/dist/src/connectors/github/cli-impl.js.map +1 -1
- package/dist/src/connectors/github/deletion.js +2 -0
- package/dist/src/connectors/github/deletion.js.map +1 -1
- package/dist/src/connectors/github/dlq.js +9 -1
- package/dist/src/connectors/github/dlq.js.map +1 -1
- package/dist/src/connectors/github/idempotency.js +2 -0
- package/dist/src/connectors/github/idempotency.js.map +1 -1
- package/dist/src/connectors/github/octokit-client.js +8 -3
- package/dist/src/connectors/github/octokit-client.js.map +1 -1
- package/dist/src/connectors/github/tenant-routing.js +8 -0
- package/dist/src/connectors/github/tenant-routing.js.map +1 -1
- package/dist/src/connectors/github/types.js +35 -29
- package/dist/src/connectors/github/types.js.map +1 -1
- package/dist/src/connectors/slack/backfill.js +2 -0
- package/dist/src/connectors/slack/backfill.js.map +1 -1
- package/dist/src/connectors/slack/deletion.js +2 -0
- package/dist/src/connectors/slack/deletion.js.map +1 -1
- package/dist/src/connectors/slack/dlq.js +3 -1
- package/dist/src/connectors/slack/dlq.js.map +1 -1
- package/dist/src/connectors/slack/idempotency.js +2 -0
- package/dist/src/connectors/slack/idempotency.js.map +1 -1
- package/dist/src/connectors/slack/tenant-routing.js +4 -0
- package/dist/src/connectors/slack/tenant-routing.js.map +1 -1
- package/dist/src/connectors/slack/types.js +22 -10
- package/dist/src/connectors/slack/types.js.map +1 -1
- package/dist/src/connectors/slack/web-client.js +11 -11
- package/dist/src/connectors/slack/web-client.js.map +1 -1
- package/dist/src/connectors/slack/workspaces.js +2 -0
- package/dist/src/connectors/slack/workspaces.js.map +1 -1
- package/dist/src/consolidate.js +8 -3
- package/dist/src/consolidate.js.map +1 -1
- package/dist/src/customer-notes.js +17 -0
- package/dist/src/customer-notes.js.map +1 -1
- package/dist/src/dag.js +1 -1
- package/dist/src/dag.js.map +1 -1
- package/dist/src/dashboard.js +5 -2
- package/dist/src/dashboard.js.map +1 -1
- package/dist/src/db.js +24 -0
- package/dist/src/db.js.map +1 -1
- package/dist/src/decisions.js +10 -0
- package/dist/src/decisions.js.map +1 -1
- package/dist/src/dedupe.js +61 -39
- package/dist/src/dedupe.js.map +1 -1
- package/dist/src/embedding-provider.js +24 -15
- package/dist/src/embedding-provider.js.map +1 -1
- package/dist/src/embeddings.js +17 -1
- package/dist/src/embeddings.js.map +1 -1
- package/dist/src/eval-suite.js +5 -0
- package/dist/src/eval-suite.js.map +1 -1
- package/dist/src/extract.js +10 -3
- package/dist/src/extract.js.map +1 -1
- package/dist/src/goals.js +26 -12
- package/dist/src/goals.js.map +1 -1
- package/dist/src/graph-extract.js +9 -1
- package/dist/src/graph-extract.js.map +1 -1
- package/dist/src/graph-view.js.map +1 -1
- package/dist/src/graph.js +38 -13
- package/dist/src/graph.js.map +1 -1
- package/dist/src/hooks.js +42 -21
- package/dist/src/hooks.js.map +1 -1
- package/dist/src/importers.js +23 -42
- package/dist/src/importers.js.map +1 -1
- package/dist/src/incidents.js +14 -0
- package/dist/src/incidents.js.map +1 -1
- package/dist/src/mcp/server.js +58 -28
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/memory-value.js +8 -2
- package/dist/src/memory-value.js.map +1 -1
- package/dist/src/memory.js.map +1 -1
- package/dist/src/physics-state.js +5 -0
- package/dist/src/physics-state.js.map +1 -1
- package/dist/src/physics.js.map +1 -1
- package/dist/src/policies.js +22 -0
- package/dist/src/policies.js.map +1 -1
- package/dist/src/predictions.js +14 -0
- package/dist/src/predictions.js.map +1 -1
- package/dist/src/processes.js +21 -2
- package/dist/src/processes.js.map +1 -1
- package/dist/src/project-briefs.js +28 -2
- package/dist/src/project-briefs.js.map +1 -1
- package/dist/src/raw-archive-mirror-cleanup.js +2 -0
- package/dist/src/raw-archive-mirror-cleanup.js.map +1 -1
- package/dist/src/raw-archive.js +3 -9
- package/dist/src/raw-archive.js.map +1 -1
- package/dist/src/recall-scope.js +11 -6
- package/dist/src/recall-scope.js.map +1 -1
- package/dist/src/recall-trace.js +7 -3
- package/dist/src/recall-trace.js.map +1 -1
- package/dist/src/refine-llm.js +3 -0
- package/dist/src/refine-llm.js.map +1 -1
- package/dist/src/reject-flow.js +2 -0
- package/dist/src/reject-flow.js.map +1 -1
- package/dist/src/rejection.js +3 -0
- package/dist/src/rejection.js.map +1 -1
- package/dist/src/replay.js.map +1 -1
- package/dist/src/rerankers/cross-encoder.js +11 -4
- package/dist/src/rerankers/cross-encoder.js.map +1 -1
- package/dist/src/rerankers/index.js +5 -3
- package/dist/src/rerankers/index.js.map +1 -1
- package/dist/src/rerankers/llm.js +8 -5
- package/dist/src/rerankers/llm.js.map +1 -1
- package/dist/src/scheduler.js +15 -5
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/search.js.map +1 -1
- package/dist/src/server-detect.js +2 -0
- package/dist/src/server-detect.js.map +1 -1
- package/dist/src/server.js +194 -135
- package/dist/src/server.js.map +1 -1
- package/dist/src/skills.js +10 -3
- package/dist/src/skills.js.map +1 -1
- package/dist/src/store.js +140 -14
- package/dist/src/store.js.map +1 -1
- package/dist/src/trace.js +15 -7
- package/dist/src/trace.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/working-memory.js +8 -0
- package/dist/src/working-memory.js.map +1 -1
- package/dist/src/yaml.js +12 -3
- package/dist/src/yaml.js.map +1 -1
- package/dist/store.d.ts +16 -3
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +140 -14
- package/dist/store.js.map +1 -1
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js +15 -7
- package/dist/trace.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/working-memory.d.ts +6 -2
- package/dist/working-memory.d.ts.map +1 -1
- package/dist/working-memory.js +8 -0
- package/dist/working-memory.js.map +1 -1
- package/dist/yaml.d.ts.map +1 -1
- package/dist/yaml.js +12 -3
- package/dist/yaml.js.map +1 -1
- package/dist-ui/assets/{index-Cxa4RcAh.js → index-DOqenbV2.js} +11 -11
- package/dist-ui/index.html +1 -1
- package/extensions/openclaw-plugin/index.ts +50 -10
- 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 +4 -1
package/dist-ui/index.html
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
height: 100vh;
|
|
25
25
|
}
|
|
26
26
|
</style>
|
|
27
|
-
<script type="module" crossorigin src="/assets/index-
|
|
27
|
+
<script type="module" crossorigin src="/assets/index-DOqenbV2.js"></script>
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assets/react-CEUiQZj-.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/three-BDgTxR1l.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/assets/d3-BiWEKnn4.js">
|
|
@@ -28,6 +28,38 @@ type HippoRuntimeContext = {
|
|
|
28
28
|
sessionKey?: string;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Dependency-injection seam for tests. Production code always uses the real
|
|
33
|
+
* child_process/fs functions imported above; tests override this via
|
|
34
|
+
* __setHippoPluginDeps to substitute fakes instead of `vi.mock`ing the
|
|
35
|
+
* built-in modules. Never called outside tests -- register(api)'s public
|
|
36
|
+
* behavior is unaffected when it's never invoked.
|
|
37
|
+
*
|
|
38
|
+
* The function shapes below are narrower than Node's full overloaded
|
|
39
|
+
* child_process/fs types -- they capture only the call shape this plugin
|
|
40
|
+
* actually uses, so test doubles don't need to satisfy every overload.
|
|
41
|
+
*/
|
|
42
|
+
export interface HippoPluginDeps {
|
|
43
|
+
execFileSync: (
|
|
44
|
+
file: string,
|
|
45
|
+
args: readonly string[],
|
|
46
|
+
options: { cwd: string; encoding: 'utf8'; timeout: number; stdio: string[] },
|
|
47
|
+
) => string;
|
|
48
|
+
spawn: (
|
|
49
|
+
command: string,
|
|
50
|
+
args: string[],
|
|
51
|
+
options: { cwd: string; detached: boolean; stdio: string; windowsHide: boolean },
|
|
52
|
+
) => { unref: () => void };
|
|
53
|
+
existsSync: (path: string) => boolean;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
let deps: HippoPluginDeps = { execFileSync, spawn, existsSync };
|
|
57
|
+
|
|
58
|
+
/** Test-only override. Not part of the plugin's public API surface. */
|
|
59
|
+
export function __setHippoPluginDeps(overrides: Partial<HippoPluginDeps>): void {
|
|
60
|
+
deps = { ...deps, ...overrides };
|
|
61
|
+
}
|
|
62
|
+
|
|
31
63
|
const AUTO_SLEEP_SESSION_THRESHOLD = 10;
|
|
32
64
|
const MAX_ERRORS_PER_SESSION = 5;
|
|
33
65
|
const sessionMemoryCounts = new Map<string, number>();
|
|
@@ -59,6 +91,12 @@ function isNoiseError(error: string): boolean {
|
|
|
59
91
|
return NOISE_ERROR_PATTERNS.some((p) => p.test(error));
|
|
60
92
|
}
|
|
61
93
|
|
|
94
|
+
/** True for a non-empty string, without assuming the input's shape — used
|
|
95
|
+
* on values read off the untyped OpenClaw plugin `api` surface. */
|
|
96
|
+
function isNonEmptyString<T>(value: T): value is T & string {
|
|
97
|
+
return typeof value === 'string' && value.length > 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
62
100
|
function hashError(toolName: string, error: string): string {
|
|
63
101
|
// Normalize the error to a stable key: tool + first 80 chars of error
|
|
64
102
|
const normalized = error.replace(/\s+/g, ' ').trim().slice(0, 80).toLowerCase();
|
|
@@ -75,7 +113,7 @@ function getConfig(api: any): HippoConfig {
|
|
|
75
113
|
}
|
|
76
114
|
|
|
77
115
|
function findHippoRoot(workspace?: string, configRoot?: string): string | null {
|
|
78
|
-
if (configRoot && existsSync(configRoot)) return configRoot;
|
|
116
|
+
if (configRoot && deps.existsSync(configRoot)) return configRoot;
|
|
79
117
|
|
|
80
118
|
const home = process.env.USERPROFILE || process.env.HOME || '';
|
|
81
119
|
const candidates = [
|
|
@@ -84,10 +122,10 @@ function findHippoRoot(workspace?: string, configRoot?: string): string | null {
|
|
|
84
122
|
process.env.HIPPO_ROOT,
|
|
85
123
|
process.env.XDG_DATA_HOME ? join(process.env.XDG_DATA_HOME, 'hippo') : null,
|
|
86
124
|
home ? join(home, '.hippo') : null,
|
|
87
|
-
].filter(
|
|
125
|
+
].filter((candidate): candidate is string => Boolean(candidate));
|
|
88
126
|
|
|
89
127
|
for (const candidate of candidates) {
|
|
90
|
-
if (existsSync(candidate)) return candidate;
|
|
128
|
+
if (deps.existsSync(candidate)) return candidate;
|
|
91
129
|
}
|
|
92
130
|
return null;
|
|
93
131
|
}
|
|
@@ -99,16 +137,16 @@ function getAgentWorkspace(api: any, agentId?: string): string | undefined {
|
|
|
99
137
|
|
|
100
138
|
if (agentId) {
|
|
101
139
|
const match = list.find((agent: any) => agent?.id === agentId);
|
|
102
|
-
if (
|
|
140
|
+
if (isNonEmptyString(match?.workspace)) return match.workspace;
|
|
103
141
|
}
|
|
104
142
|
|
|
105
143
|
const defaultAgent = list.find((agent: any) => agent?.default);
|
|
106
|
-
if (
|
|
144
|
+
if (isNonEmptyString(defaultAgent?.workspace)) {
|
|
107
145
|
return defaultAgent.workspace;
|
|
108
146
|
}
|
|
109
147
|
|
|
110
148
|
const fallback = agents?.defaults?.workspace;
|
|
111
|
-
return
|
|
149
|
+
return isNonEmptyString(fallback) ? fallback : undefined;
|
|
112
150
|
} catch {
|
|
113
151
|
return undefined;
|
|
114
152
|
}
|
|
@@ -173,7 +211,7 @@ function cleanupBackupPlugins(logger?: { info?: (...args: unknown[]) => void }):
|
|
|
173
211
|
process.env.USERPROFILE || process.env.HOME || '',
|
|
174
212
|
'.openclaw', 'extensions'
|
|
175
213
|
);
|
|
176
|
-
if (!existsSync(extensionsDir)) return;
|
|
214
|
+
if (!deps.existsSync(extensionsDir)) return;
|
|
177
215
|
|
|
178
216
|
for (const entry of readdirSync(extensionsDir)) {
|
|
179
217
|
if (entry.startsWith('hippo-memory.bak')) {
|
|
@@ -193,13 +231,15 @@ function hippoRememberSucceeded(result: string): boolean {
|
|
|
193
231
|
|
|
194
232
|
function runHippo(args: readonly string[], cwd?: string): string {
|
|
195
233
|
try {
|
|
196
|
-
const result = execFileSync('hippo', args, {
|
|
234
|
+
const result = deps.execFileSync('hippo', args, {
|
|
197
235
|
cwd: cwd || process.cwd(),
|
|
198
236
|
encoding: 'utf8',
|
|
199
237
|
timeout: 30_000,
|
|
200
238
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
201
239
|
});
|
|
202
|
-
|
|
240
|
+
// `encoding: 'utf8'` above selects the ExecFileSyncOptionsWithStringEncoding
|
|
241
|
+
// overload, so `result` is always a `string` here — no runtime check needed.
|
|
242
|
+
return result.trim();
|
|
203
243
|
} catch (err: any) {
|
|
204
244
|
return err.stdout?.trim() || err.message || 'hippo command failed';
|
|
205
245
|
}
|
|
@@ -207,7 +247,7 @@ function runHippo(args: readonly string[], cwd?: string): string {
|
|
|
207
247
|
|
|
208
248
|
function spawnHippoDetached(args: readonly string[], cwd?: string): boolean {
|
|
209
249
|
try {
|
|
210
|
-
const child = spawn('hippo', [...args], {
|
|
250
|
+
const child = deps.spawn('hippo', [...args], {
|
|
211
251
|
cwd: cwd || process.cwd(),
|
|
212
252
|
detached: true,
|
|
213
253
|
stdio: 'ignore',
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "hippo-memory",
|
|
3
3
|
"name": "Hippo Memory",
|
|
4
4
|
"description": "Biologically-inspired memory for AI agents. Decay by default, retrieval strengthening, sleep consolidation.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.33.0",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hippo-memory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.33.0",
|
|
4
4
|
"description": "Biologically-inspired memory system for AI agents. Decay by default, strength through use.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"pretest": "npm run build",
|
|
31
31
|
"test": "vitest run",
|
|
32
32
|
"test:watch": "vitest",
|
|
33
|
+
"lint": "oxlint",
|
|
33
34
|
"audit:security": "npm audit --audit-level=high && npm --prefix ui audit --audit-level=high",
|
|
34
35
|
"postinstall": "node scripts/postinstall.cjs",
|
|
35
36
|
"smoke:pack": "node scripts/smoke-pack.mjs",
|
|
@@ -62,7 +63,9 @@
|
|
|
62
63
|
"node": ">=22.5.0"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
66
|
+
"@oxlint/plugins": "^1.78.0",
|
|
65
67
|
"@types/node": "^20.11.0",
|
|
68
|
+
"oxlint": "^1.78.0",
|
|
66
69
|
"typescript": "^5.4.0",
|
|
67
70
|
"vitest": "^3.2.6"
|
|
68
71
|
},
|