@joshuaswarren/openclaw-engram 9.3.17 → 9.3.18
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/openclaw.plugin.json +146 -82
- package/package.json +3 -3
package/openclaw.plugin.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "openclaw-engram",
|
|
3
3
|
"name": "Remnic OpenClaw Plugin",
|
|
4
|
-
"version": "9.3.
|
|
4
|
+
"version": "9.3.18",
|
|
5
5
|
"kind": "memory",
|
|
6
|
-
"description": "Local semantic memory for OpenClaw. Requires plugins.slots.memory set to this plugin id for hooks to fire.",
|
|
6
|
+
"description": "Local semantic memory for OpenClaw with bundled Remnic core runtime. Requires plugins.slots.memory set to this plugin id for hooks to fire.",
|
|
7
7
|
"setup": {
|
|
8
8
|
"providers": [
|
|
9
9
|
{
|
|
@@ -28,19 +28,39 @@
|
|
|
28
28
|
"provider": "openai",
|
|
29
29
|
"method": "api-key",
|
|
30
30
|
"choiceId": "remnic-openai-api-key",
|
|
31
|
-
"choiceLabel": "OpenAI API key for Remnic
|
|
32
|
-
"choiceHint": "
|
|
31
|
+
"choiceLabel": "Optional OpenAI API key for Remnic plugin-mode extraction",
|
|
32
|
+
"choiceHint": "Not needed when Remnic uses the OpenClaw gateway model source. Set only if you intentionally use plugin mode with OpenAI or an OpenAI-compatible endpoint.",
|
|
33
33
|
"groupId": "remnic-memory",
|
|
34
34
|
"groupLabel": "Remnic memory",
|
|
35
35
|
"optionKey": "openaiApiKey",
|
|
36
36
|
"cliFlag": "--openai-api-key",
|
|
37
37
|
"cliOption": "--openai-api-key <key>",
|
|
38
|
-
"cliDescription": "OpenAI API key used by Remnic
|
|
38
|
+
"cliDescription": "Optional OpenAI API key used by Remnic plugin-mode extraction, consolidation, and embedding flows.",
|
|
39
39
|
"onboardingScopes": [
|
|
40
40
|
"text-inference"
|
|
41
41
|
]
|
|
42
42
|
}
|
|
43
43
|
],
|
|
44
|
+
"securityDisclosure": {
|
|
45
|
+
"conversationAccess": "As a memory-slot plugin, Remnic hooks can observe conversation turns, tool-use metadata, LLM output metadata, and local memory files so they can be indexed, summarized, recalled, and exposed through memory tools.",
|
|
46
|
+
"modelProviderCredentials": {
|
|
47
|
+
"recommendedMode": "Use modelSource=gateway to route LLM-backed memory work through OpenClaw gateway agents instead of a Remnic-owned API key.",
|
|
48
|
+
"dynamicCredentialSources": [
|
|
49
|
+
"OpenClaw runtime auth resolver for configured model providers",
|
|
50
|
+
"~/.openclaw/agents/main/agent/models.json provider entries",
|
|
51
|
+
"provider-specific environment variables such as <PROVIDER>_API_KEY and <PROVIDER>_TOKEN"
|
|
52
|
+
],
|
|
53
|
+
"providerModeData": [
|
|
54
|
+
"conversation excerpts",
|
|
55
|
+
"memory excerpts",
|
|
56
|
+
"summaries",
|
|
57
|
+
"embedding inputs",
|
|
58
|
+
"active-recall query inputs",
|
|
59
|
+
"benchmark and evaluation inputs"
|
|
60
|
+
],
|
|
61
|
+
"externalProviderGuidance": "Do not set openaiApiKey or provider environment variables for Remnic if all LLM-backed memory operations should stay on the OpenClaw gateway path. When plugin/provider mode is configured, selected conversation and memory excerpts may be sent to the configured provider for extraction, consolidation, summarization, embeddings, active recall, or benchmark judging."
|
|
62
|
+
}
|
|
63
|
+
},
|
|
44
64
|
"supports": {
|
|
45
65
|
"memorySlot": true,
|
|
46
66
|
"dreamingSlot": true,
|
|
@@ -50,6 +70,34 @@
|
|
|
50
70
|
"beforeReset": true
|
|
51
71
|
},
|
|
52
72
|
"contracts": {
|
|
73
|
+
"commands": [
|
|
74
|
+
"remnic"
|
|
75
|
+
],
|
|
76
|
+
"hooks": [
|
|
77
|
+
"before_prompt_build",
|
|
78
|
+
"before_agent_start",
|
|
79
|
+
"agent_end",
|
|
80
|
+
"before_compaction",
|
|
81
|
+
"after_compaction",
|
|
82
|
+
"before_reset",
|
|
83
|
+
"session_start",
|
|
84
|
+
"session_end",
|
|
85
|
+
"before_tool_call",
|
|
86
|
+
"after_tool_call",
|
|
87
|
+
"llm_output",
|
|
88
|
+
"subagent_spawning",
|
|
89
|
+
"subagent_ended",
|
|
90
|
+
"commands.list"
|
|
91
|
+
],
|
|
92
|
+
"memoryCapabilities": [
|
|
93
|
+
"openclaw-remnic"
|
|
94
|
+
],
|
|
95
|
+
"memoryPromptSections": [
|
|
96
|
+
"engram-memory"
|
|
97
|
+
],
|
|
98
|
+
"services": [
|
|
99
|
+
"openclaw-remnic"
|
|
100
|
+
],
|
|
53
101
|
"tools": [
|
|
54
102
|
"compounding_promote_candidate",
|
|
55
103
|
"compounding_weekly_synthesize",
|
|
@@ -107,11 +155,11 @@
|
|
|
107
155
|
"properties": {
|
|
108
156
|
"openaiApiKey": {
|
|
109
157
|
"type": "string",
|
|
110
|
-
"description": "OpenAI API key (or set OPENAI_API_KEY env var). Remnic may send conversation and memory content to OpenAI or the configured OpenAI-compatible endpoint for extraction, consolidation, summarization, and embeddings."
|
|
158
|
+
"description": "Optional OpenAI API key for plugin mode (or set OPENAI_API_KEY env var). Ignored by default gateway-mode installs; in plugin mode, Remnic may send conversation and memory content to OpenAI or the configured OpenAI-compatible endpoint for extraction, consolidation, summarization, and embeddings."
|
|
111
159
|
},
|
|
112
160
|
"openaiBaseUrl": {
|
|
113
161
|
"type": "string",
|
|
114
|
-
"description": "
|
|
162
|
+
"description": "Set the OpenAI API base URL for OpenAI-compatible providers (Scryr, Together, OpenRouter, etc.)"
|
|
115
163
|
},
|
|
116
164
|
"model": {
|
|
117
165
|
"type": "string",
|
|
@@ -194,7 +242,7 @@
|
|
|
194
242
|
"maxMemoryTokens": {
|
|
195
243
|
"type": "number",
|
|
196
244
|
"default": 2000,
|
|
197
|
-
"description": "Max tokens
|
|
245
|
+
"description": "Max memory-context tokens per turn"
|
|
198
246
|
},
|
|
199
247
|
"memoryOsPreset": {
|
|
200
248
|
"type": "string",
|
|
@@ -205,7 +253,7 @@
|
|
|
205
253
|
"research-max",
|
|
206
254
|
"local-llm-heavy"
|
|
207
255
|
],
|
|
208
|
-
"description": "Optional named preset that seeds Engram's advanced config surface before explicit per-setting
|
|
256
|
+
"description": "Optional named preset that seeds Engram's advanced config surface before explicit per-setting settings are applied. `research` is accepted as a backward-compatible alias for `research-max`."
|
|
209
257
|
},
|
|
210
258
|
"qmdEnabled": {
|
|
211
259
|
"type": "boolean",
|
|
@@ -297,7 +345,7 @@
|
|
|
297
345
|
},
|
|
298
346
|
"entitySchemas": {
|
|
299
347
|
"type": "object",
|
|
300
|
-
"description": "Optional per-entity-type structured section schema
|
|
348
|
+
"description": "Optional per-entity-type structured section schema customizations.",
|
|
301
349
|
"additionalProperties": {
|
|
302
350
|
"type": "object",
|
|
303
351
|
"additionalProperties": false,
|
|
@@ -638,7 +686,7 @@
|
|
|
638
686
|
"minimum": 1,
|
|
639
687
|
"maximum": 10,
|
|
640
688
|
"default": 2,
|
|
641
|
-
"description": "Maximum procedure memories to
|
|
689
|
+
"description": "Maximum procedure memories to add on task-initiation recall."
|
|
642
690
|
},
|
|
643
691
|
"proceduralMiningCronAutoRegister": {
|
|
644
692
|
"type": "boolean",
|
|
@@ -726,7 +774,7 @@
|
|
|
726
774
|
"recallTranscriptsEnabled": {
|
|
727
775
|
"type": "boolean",
|
|
728
776
|
"default": false,
|
|
729
|
-
"description": "Write JSONL recall audit transcripts for runtime-
|
|
777
|
+
"description": "Write JSONL recall audit transcripts for runtime recall-context assembly."
|
|
730
778
|
},
|
|
731
779
|
"recallTranscriptRetentionDays": {
|
|
732
780
|
"type": "integer",
|
|
@@ -743,7 +791,7 @@
|
|
|
743
791
|
"activeRecallEnabled": {
|
|
744
792
|
"type": "boolean",
|
|
745
793
|
"default": false,
|
|
746
|
-
"description": "Enable the OpenClaw active-recall
|
|
794
|
+
"description": "Enable the OpenClaw active-recall context surface."
|
|
747
795
|
},
|
|
748
796
|
"activeRecallAgents": {
|
|
749
797
|
"type": "array",
|
|
@@ -790,15 +838,15 @@
|
|
|
790
838
|
"preference-only"
|
|
791
839
|
],
|
|
792
840
|
"default": "balanced",
|
|
793
|
-
"description": "
|
|
841
|
+
"description": "Context assembly style for the active-recall surface."
|
|
794
842
|
},
|
|
795
|
-
"
|
|
843
|
+
"activeRecallCustomInstruction": {
|
|
796
844
|
"type": "string",
|
|
797
|
-
"description": "Optional
|
|
845
|
+
"description": "Optional custom guidance for the active-recall builder."
|
|
798
846
|
},
|
|
799
847
|
"activeRecallPromptAppend": {
|
|
800
848
|
"type": "string",
|
|
801
|
-
"description": "Optional
|
|
849
|
+
"description": "Optional additional guidance for the active-recall builder."
|
|
802
850
|
},
|
|
803
851
|
"activeRecallMaxSummaryChars": {
|
|
804
852
|
"type": "integer",
|
|
@@ -864,7 +912,7 @@
|
|
|
864
912
|
},
|
|
865
913
|
"activeRecallModel": {
|
|
866
914
|
"type": "string",
|
|
867
|
-
"description": "Optional model
|
|
915
|
+
"description": "Optional model selection for active recall."
|
|
868
916
|
},
|
|
869
917
|
"activeRecallModelFallbackPolicy": {
|
|
870
918
|
"type": "string",
|
|
@@ -1180,7 +1228,7 @@
|
|
|
1180
1228
|
"memoryExtensionsEnabled": {
|
|
1181
1229
|
"type": "boolean",
|
|
1182
1230
|
"default": true,
|
|
1183
|
-
"description": "Whether third-party memory extensions are discovered and
|
|
1231
|
+
"description": "Whether third-party memory extensions are discovered and included in consolidation instructions."
|
|
1184
1232
|
},
|
|
1185
1233
|
"memoryExtensionsRoot": {
|
|
1186
1234
|
"type": "string",
|
|
@@ -1264,12 +1312,12 @@
|
|
|
1264
1312
|
"full"
|
|
1265
1313
|
],
|
|
1266
1314
|
"default": "recovery_only",
|
|
1267
|
-
"description": "Controls when identity continuity context is
|
|
1315
|
+
"description": "Controls when identity continuity context is added to recall assembly"
|
|
1268
1316
|
},
|
|
1269
1317
|
"identityMaxInjectChars": {
|
|
1270
1318
|
"type": "number",
|
|
1271
1319
|
"default": 1200,
|
|
1272
|
-
"description": "Maximum characters allowed for identity continuity context
|
|
1320
|
+
"description": "Maximum characters allowed for identity continuity context"
|
|
1273
1321
|
},
|
|
1274
1322
|
"continuityIncidentLoggingEnabled": {
|
|
1275
1323
|
"type": "boolean",
|
|
@@ -1334,7 +1382,7 @@
|
|
|
1334
1382
|
"injectQuestions": {
|
|
1335
1383
|
"type": "boolean",
|
|
1336
1384
|
"default": false,
|
|
1337
|
-
"description": "
|
|
1385
|
+
"description": "Include the most relevant open question in generated memory context"
|
|
1338
1386
|
},
|
|
1339
1387
|
"commitmentDecayDays": {
|
|
1340
1388
|
"type": "number",
|
|
@@ -1470,12 +1518,12 @@
|
|
|
1470
1518
|
"maxResults": {
|
|
1471
1519
|
"type": "number",
|
|
1472
1520
|
"default": 4,
|
|
1473
|
-
"description": "Maximum native knowledge chunks to
|
|
1521
|
+
"description": "Maximum native knowledge chunks to add to recall."
|
|
1474
1522
|
},
|
|
1475
1523
|
"maxChars": {
|
|
1476
1524
|
"type": "number",
|
|
1477
1525
|
"default": 2400,
|
|
1478
|
-
"description": "Maximum total characters to
|
|
1526
|
+
"description": "Maximum total characters to add from native knowledge recall."
|
|
1479
1527
|
},
|
|
1480
1528
|
"stateDir": {
|
|
1481
1529
|
"type": "string",
|
|
@@ -1749,7 +1797,7 @@
|
|
|
1749
1797
|
"recordEmptyRecallImpressions": {
|
|
1750
1798
|
"type": "boolean",
|
|
1751
1799
|
"default": false,
|
|
1752
|
-
"description": "Record recall impressions with empty memoryIds when no memory context is
|
|
1800
|
+
"description": "Record recall impressions with empty memoryIds when no memory context is added."
|
|
1753
1801
|
},
|
|
1754
1802
|
"recallPlannerEnabled": {
|
|
1755
1803
|
"type": "boolean",
|
|
@@ -1824,7 +1872,7 @@
|
|
|
1824
1872
|
"verbatimArtifactsMaxRecall": {
|
|
1825
1873
|
"type": "number",
|
|
1826
1874
|
"default": 5,
|
|
1827
|
-
"description": "Maximum artifact anchors
|
|
1875
|
+
"description": "Maximum artifact anchors added per recall."
|
|
1828
1876
|
},
|
|
1829
1877
|
"verbatimArtifactCategories": {
|
|
1830
1878
|
"type": "array",
|
|
@@ -1890,7 +1938,7 @@
|
|
|
1890
1938
|
"boxRecallDays": {
|
|
1891
1939
|
"type": "number",
|
|
1892
1940
|
"default": 3,
|
|
1893
|
-
"description": "Number of recent days of boxes to
|
|
1941
|
+
"description": "Number of recent days of boxes to add during recall."
|
|
1894
1942
|
},
|
|
1895
1943
|
"episodeNoteModeEnabled": {
|
|
1896
1944
|
"type": "boolean",
|
|
@@ -1955,7 +2003,7 @@
|
|
|
1955
2003
|
"tagRecallMaxMatches": {
|
|
1956
2004
|
"type": "number",
|
|
1957
2005
|
"default": 10,
|
|
1958
|
-
"description": "Maximum number of tag-matched memories
|
|
2006
|
+
"description": "Maximum number of tag-matched memories added per recall."
|
|
1959
2007
|
},
|
|
1960
2008
|
"multiGraphMemoryEnabled": {
|
|
1961
2009
|
"type": "boolean",
|
|
@@ -1985,7 +2033,7 @@
|
|
|
1985
2033
|
"graphRecallShadowEnabled": {
|
|
1986
2034
|
"type": "boolean",
|
|
1987
2035
|
"default": false,
|
|
1988
|
-
"description": "Run graph recall in shadow mode
|
|
2036
|
+
"description": "Run graph recall in shadow mode - evaluate but do not add results."
|
|
1989
2037
|
},
|
|
1990
2038
|
"graphRecallSnapshotEnabled": {
|
|
1991
2039
|
"type": "boolean",
|
|
@@ -2099,12 +2147,12 @@
|
|
|
2099
2147
|
"graphRecallEntityHintMax": {
|
|
2100
2148
|
"type": "number",
|
|
2101
2149
|
"default": 3,
|
|
2102
|
-
"description": "Maximum number of entity hints
|
|
2150
|
+
"description": "Maximum number of entity hints added per graph recall result."
|
|
2103
2151
|
},
|
|
2104
2152
|
"graphRecallEntityHintMaxChars": {
|
|
2105
2153
|
"type": "number",
|
|
2106
2154
|
"default": 200,
|
|
2107
|
-
"description": "Maximum characters per entity hint
|
|
2155
|
+
"description": "Maximum characters per entity hint added during graph recall."
|
|
2108
2156
|
},
|
|
2109
2157
|
"graphRecallSnapshotDir": {
|
|
2110
2158
|
"type": "string",
|
|
@@ -2133,7 +2181,7 @@
|
|
|
2133
2181
|
"graphAssistShadowEvalEnabled": {
|
|
2134
2182
|
"type": "boolean",
|
|
2135
2183
|
"default": false,
|
|
2136
|
-
"description": "In full mode, compute graph assist for comparison telemetry and snapshots but keep
|
|
2184
|
+
"description": "In full mode, compute graph assist for comparison telemetry and snapshots but keep recall output baseline-identical."
|
|
2137
2185
|
},
|
|
2138
2186
|
"graphAssistMinSeedResults": {
|
|
2139
2187
|
"type": "number",
|
|
@@ -2211,12 +2259,12 @@
|
|
|
2211
2259
|
"recallConfidenceGateEnabled": {
|
|
2212
2260
|
"type": "boolean",
|
|
2213
2261
|
"default": false,
|
|
2214
|
-
"description": "Synapse-inspired confidence gate: skip memory
|
|
2262
|
+
"description": "Synapse-inspired confidence gate: skip memory context when top recall score is below threshold"
|
|
2215
2263
|
},
|
|
2216
2264
|
"recallConfidenceGateThreshold": {
|
|
2217
2265
|
"type": "number",
|
|
2218
2266
|
"default": 0.12,
|
|
2219
|
-
"description": "Minimum top recall score to
|
|
2267
|
+
"description": "Minimum top recall score to include memories (0-1). Below this, memories are rejected as too uncertain"
|
|
2220
2268
|
},
|
|
2221
2269
|
"causalRuleExtractionEnabled": {
|
|
2222
2270
|
"type": "boolean",
|
|
@@ -2822,12 +2870,12 @@
|
|
|
2822
2870
|
"maxTranscriptTurns": {
|
|
2823
2871
|
"type": "number",
|
|
2824
2872
|
"default": 50,
|
|
2825
|
-
"description": "Maximum transcript turns to
|
|
2873
|
+
"description": "Maximum transcript turns to include"
|
|
2826
2874
|
},
|
|
2827
2875
|
"maxTranscriptTokens": {
|
|
2828
2876
|
"type": "number",
|
|
2829
2877
|
"default": 1000,
|
|
2830
|
-
"description": "Maximum tokens for transcript
|
|
2878
|
+
"description": "Maximum tokens for transcript context"
|
|
2831
2879
|
},
|
|
2832
2880
|
"checkpointEnabled": {
|
|
2833
2881
|
"type": "boolean",
|
|
@@ -2842,7 +2890,7 @@
|
|
|
2842
2890
|
"compactionResetEnabled": {
|
|
2843
2891
|
"type": "boolean",
|
|
2844
2892
|
"default": false,
|
|
2845
|
-
"description": "Trigger session reset after compaction with BOOT.md
|
|
2893
|
+
"description": "Trigger session reset after compaction with BOOT.md recovery context (requires OC fork with api.resetSession)"
|
|
2846
2894
|
},
|
|
2847
2895
|
"hourlySummariesEnabled": {
|
|
2848
2896
|
"type": "boolean",
|
|
@@ -2862,7 +2910,7 @@
|
|
|
2862
2910
|
"maxSummaryCount": {
|
|
2863
2911
|
"type": "number",
|
|
2864
2912
|
"default": 6,
|
|
2865
|
-
"description": "Maximum number of summaries to
|
|
2913
|
+
"description": "Maximum number of summaries to include"
|
|
2866
2914
|
},
|
|
2867
2915
|
"summaryModel": {
|
|
2868
2916
|
"type": "string",
|
|
@@ -2874,8 +2922,8 @@
|
|
|
2874
2922
|
"plugin",
|
|
2875
2923
|
"gateway"
|
|
2876
2924
|
],
|
|
2877
|
-
"default": "
|
|
2878
|
-
"description": "LLM source: '
|
|
2925
|
+
"default": "gateway",
|
|
2926
|
+
"description": "LLM source: 'gateway' delegates to a gateway agent's model chain (agents.list[]); 'plugin' uses Engram's own openai/localLlm config."
|
|
2879
2927
|
},
|
|
2880
2928
|
"gatewayAgentId": {
|
|
2881
2929
|
"type": "string",
|
|
@@ -2953,7 +3001,7 @@
|
|
|
2953
3001
|
"traceRecallContent": {
|
|
2954
3002
|
"type": "boolean",
|
|
2955
3003
|
"default": false,
|
|
2956
|
-
"description": "If true, include the full recalled memory text in RecallTraceEvent.recalledContent emitted to __openclawEngramTrace subscribers (e.g. Langfuse). Disabled by default
|
|
3004
|
+
"description": "If true, include the full recalled memory text in RecallTraceEvent.recalledContent emitted to __openclawEngramTrace subscribers (e.g. Langfuse). Disabled by default - only enable when you want external trace collectors to capture memory context."
|
|
2957
3005
|
},
|
|
2958
3006
|
"profilingEnabled": {
|
|
2959
3007
|
"type": "boolean",
|
|
@@ -3170,7 +3218,7 @@
|
|
|
3170
3218
|
"localLlmDisableThinking": {
|
|
3171
3219
|
"type": "boolean",
|
|
3172
3220
|
"default": true,
|
|
3173
|
-
"description": "When true (default), request chain-of-thought / thinking-mode suppression on the main local LLM (issue #548). The `chat_template_kwargs: { enable_thinking: false }` field is only
|
|
3221
|
+
"description": "When true (default), request chain-of-thought / thinking-mode suppression on the main local LLM (issue #548). The `chat_template_kwargs: { enable_thinking: false }` field is sent only when the detected backend is known to support it (LM Studio, vLLM); strict OpenAI-compat backends fail open to avoid the 400-cooldown path. Structured-output tasks like extraction and consolidation gain nothing from reasoning tokens and thinking-capable models (Qwen 3.5, Gemma 4, DeepSeek) often blow the 60s timeout before emitting content. Set to false to restore thinking for narrative tasks. The fast-tier client always disables thinking and is not affected by this flag."
|
|
3174
3222
|
},
|
|
3175
3223
|
"hourlySummaryCronAutoRegister": {
|
|
3176
3224
|
"type": "boolean",
|
|
@@ -3284,12 +3332,12 @@
|
|
|
3284
3332
|
"conversationRecallTopK": {
|
|
3285
3333
|
"type": "number",
|
|
3286
3334
|
"default": 3,
|
|
3287
|
-
"description": "Top-K conversation chunks to
|
|
3335
|
+
"description": "Top-K conversation chunks to include."
|
|
3288
3336
|
},
|
|
3289
3337
|
"conversationRecallMaxChars": {
|
|
3290
3338
|
"type": "number",
|
|
3291
3339
|
"default": 2500,
|
|
3292
|
-
"description": "Max characters of semantic conversation recall to
|
|
3340
|
+
"description": "Max characters of semantic conversation recall to include."
|
|
3293
3341
|
},
|
|
3294
3342
|
"conversationRecallTimeoutMs": {
|
|
3295
3343
|
"type": "number",
|
|
@@ -3338,7 +3386,7 @@
|
|
|
3338
3386
|
"objectiveStateRecallEnabled": {
|
|
3339
3387
|
"type": "boolean",
|
|
3340
3388
|
"default": false,
|
|
3341
|
-
"description": "
|
|
3389
|
+
"description": "Add recall-relevant objective-state snapshots to recall context."
|
|
3342
3390
|
},
|
|
3343
3391
|
"objectiveStateStoreDir": {
|
|
3344
3392
|
"type": "string",
|
|
@@ -3356,7 +3404,7 @@
|
|
|
3356
3404
|
"causalTrajectoryRecallEnabled": {
|
|
3357
3405
|
"type": "boolean",
|
|
3358
3406
|
"default": false,
|
|
3359
|
-
"description": "
|
|
3407
|
+
"description": "Add recall-relevant causal trajectories to recall context."
|
|
3360
3408
|
},
|
|
3361
3409
|
"trustZonesEnabled": {
|
|
3362
3410
|
"type": "boolean",
|
|
@@ -3375,7 +3423,7 @@
|
|
|
3375
3423
|
"trustZoneRecallEnabled": {
|
|
3376
3424
|
"type": "boolean",
|
|
3377
3425
|
"default": false,
|
|
3378
|
-
"description": "
|
|
3426
|
+
"description": "Add recall-relevant working and trusted trust-zone records to recall context."
|
|
3379
3427
|
},
|
|
3380
3428
|
"memoryPoisoningDefenseEnabled": {
|
|
3381
3429
|
"type": "boolean",
|
|
@@ -3390,7 +3438,7 @@
|
|
|
3390
3438
|
"harmonicRetrievalEnabled": {
|
|
3391
3439
|
"type": "boolean",
|
|
3392
3440
|
"default": false,
|
|
3393
|
-
"description": "Enable harmonic retrieval blending over abstraction nodes and cue anchors, including recall-section
|
|
3441
|
+
"description": "Enable harmonic retrieval blending over abstraction nodes and cue anchors, including recall-section assembly and harmonic-search diagnostics."
|
|
3394
3442
|
},
|
|
3395
3443
|
"abstractionAnchorsEnabled": {
|
|
3396
3444
|
"type": "boolean",
|
|
@@ -3404,7 +3452,7 @@
|
|
|
3404
3452
|
"verifiedRecallEnabled": {
|
|
3405
3453
|
"type": "boolean",
|
|
3406
3454
|
"default": false,
|
|
3407
|
-
"description": "
|
|
3455
|
+
"description": "Add recall-relevant memory boxes only when their cited source memories verify as non-archived episodes."
|
|
3408
3456
|
},
|
|
3409
3457
|
"semanticRulePromotionEnabled": {
|
|
3410
3458
|
"type": "boolean",
|
|
@@ -3461,7 +3509,7 @@
|
|
|
3461
3509
|
"operatorAwareConsolidationEnabled": {
|
|
3462
3510
|
"type": "boolean",
|
|
3463
3511
|
"default": false,
|
|
3464
|
-
"description": "Opt in to operator-aware consolidation
|
|
3512
|
+
"description": "Opt in to operator-aware consolidation instructions so the LLM returns structured {operator, output} JSON and SPLIT/MERGE/UPDATE is recorded on derived_via. When disabled (default), derived_via still populates via the cluster-shape heuristic."
|
|
3465
3513
|
},
|
|
3466
3514
|
"peerProfileReasonerEnabled": {
|
|
3467
3515
|
"type": "boolean",
|
|
@@ -3488,13 +3536,13 @@
|
|
|
3488
3536
|
"peerProfileRecallEnabled": {
|
|
3489
3537
|
"type": "boolean",
|
|
3490
3538
|
"default": false,
|
|
3491
|
-
"description": "When true,
|
|
3539
|
+
"description": "When true, add the active peer's profile fields to the recall context as a '## Peer Profile' section (issue #679 PR 3/5). Requires the session's peer ID to be registered before recall. Default off (opt-in)."
|
|
3492
3540
|
},
|
|
3493
3541
|
"peerProfileRecallMaxFields": {
|
|
3494
3542
|
"type": "number",
|
|
3495
3543
|
"default": 5,
|
|
3496
3544
|
"minimum": 0,
|
|
3497
|
-
"description": "Maximum number of peer profile fields to
|
|
3545
|
+
"description": "Maximum number of peer profile fields to add per recall call. Only the most-recently-updated N fields are included. Set to 0 to disable field inclusion even when peerProfileRecallEnabled is true."
|
|
3498
3546
|
},
|
|
3499
3547
|
"creationMemoryEnabled": {
|
|
3500
3548
|
"type": "boolean",
|
|
@@ -3542,7 +3590,7 @@
|
|
|
3542
3590
|
"workProductRecallEnabled": {
|
|
3543
3591
|
"type": "boolean",
|
|
3544
3592
|
"default": false,
|
|
3545
|
-
"description": "
|
|
3593
|
+
"description": "Add recall-relevant work-product ledger entries to recall context and expose artifact-recovery search tooling."
|
|
3546
3594
|
},
|
|
3547
3595
|
"workProductLedgerDir": {
|
|
3548
3596
|
"type": "string",
|
|
@@ -3782,7 +3830,7 @@
|
|
|
3782
3830
|
"sharedContextEnabled": {
|
|
3783
3831
|
"type": "boolean",
|
|
3784
3832
|
"default": false,
|
|
3785
|
-
"description": "Enable shared-context
|
|
3833
|
+
"description": "Enable shared-context assembly and tools (v4.0). Default off."
|
|
3786
3834
|
},
|
|
3787
3835
|
"sharedContextDir": {
|
|
3788
3836
|
"type": "string",
|
|
@@ -3791,7 +3839,7 @@
|
|
|
3791
3839
|
"sharedContextMaxInjectChars": {
|
|
3792
3840
|
"type": "number",
|
|
3793
3841
|
"default": 4000,
|
|
3794
|
-
"description": "Max characters of shared-context to
|
|
3842
|
+
"description": "Max characters of shared-context to include in each recall context."
|
|
3795
3843
|
},
|
|
3796
3844
|
"crossSignalsSemanticEnabled": {
|
|
3797
3845
|
"type": "boolean",
|
|
@@ -4064,17 +4112,17 @@
|
|
|
4064
4112
|
"calibrationEnabled": {
|
|
4065
4113
|
"type": "boolean",
|
|
4066
4114
|
"default": false,
|
|
4067
|
-
"description": "Enable recall calibration rules
|
|
4115
|
+
"description": "Enable recall calibration rules (v9.0, default off)."
|
|
4068
4116
|
},
|
|
4069
4117
|
"calibrationMaxRulesPerRecall": {
|
|
4070
4118
|
"type": "number",
|
|
4071
4119
|
"default": 10,
|
|
4072
|
-
"description": "Maximum number of calibration rules to
|
|
4120
|
+
"description": "Maximum number of calibration rules to include per recall pass."
|
|
4073
4121
|
},
|
|
4074
4122
|
"calibrationMaxChars": {
|
|
4075
4123
|
"type": "number",
|
|
4076
4124
|
"default": 1200,
|
|
4077
|
-
"description": "Maximum characters of calibration content to
|
|
4125
|
+
"description": "Maximum characters of calibration content to include per recall pass."
|
|
4078
4126
|
},
|
|
4079
4127
|
"lancedbEnabled": {
|
|
4080
4128
|
"type": "boolean",
|
|
@@ -4239,7 +4287,7 @@
|
|
|
4239
4287
|
},
|
|
4240
4288
|
"recallBudgetChars": {
|
|
4241
4289
|
"type": "number",
|
|
4242
|
-
"description": "Hard character cap for total recall
|
|
4290
|
+
"description": "Hard character cap for total recall context. Defaults to maxMemoryTokens * 4."
|
|
4243
4291
|
},
|
|
4244
4292
|
"recallOuterTimeoutMs": {
|
|
4245
4293
|
"type": "number",
|
|
@@ -4259,7 +4307,7 @@
|
|
|
4259
4307
|
"recallMmrEnabled": {
|
|
4260
4308
|
"type": "boolean",
|
|
4261
4309
|
"default": true,
|
|
4262
|
-
"description": "Apply Maximal Marginal Relevance to the final recall selection per-section so one redundant cluster cannot dominate the
|
|
4310
|
+
"description": "Apply Maximal Marginal Relevance to the final recall selection per-section so one redundant cluster cannot dominate the included context."
|
|
4263
4311
|
},
|
|
4264
4312
|
"recallMmrLambda": {
|
|
4265
4313
|
"type": "number",
|
|
@@ -4400,7 +4448,7 @@
|
|
|
4400
4448
|
"messagePartsRecallMaxResults": {
|
|
4401
4449
|
"type": "number",
|
|
4402
4450
|
"default": 6,
|
|
4403
|
-
"description": "Maximum structured message-part matches to
|
|
4451
|
+
"description": "Maximum structured message-part matches to include in recall when messagePartsEnabled is true."
|
|
4404
4452
|
},
|
|
4405
4453
|
"ircEnabled": {
|
|
4406
4454
|
"type": "boolean",
|
|
@@ -4410,7 +4458,7 @@
|
|
|
4410
4458
|
"ircMaxPreferences": {
|
|
4411
4459
|
"type": "number",
|
|
4412
4460
|
"default": 20,
|
|
4413
|
-
"description": "Maximum number of preferences to include in IRC
|
|
4461
|
+
"description": "Maximum number of preferences to include in IRC rules."
|
|
4414
4462
|
},
|
|
4415
4463
|
"ircIncludeCorrections": {
|
|
4416
4464
|
"type": "boolean",
|
|
@@ -4465,7 +4513,7 @@
|
|
|
4465
4513
|
"cmcRetrievalEnabled": {
|
|
4466
4514
|
"type": "boolean",
|
|
4467
4515
|
"default": false,
|
|
4468
|
-
"description": "Enable CMC retrieval
|
|
4516
|
+
"description": "Enable CMC retrieval at recall time (default off)."
|
|
4469
4517
|
},
|
|
4470
4518
|
"cmcRetrievalMaxDepth": {
|
|
4471
4519
|
"type": "number",
|
|
@@ -4475,7 +4523,7 @@
|
|
|
4475
4523
|
"cmcRetrievalMaxChars": {
|
|
4476
4524
|
"type": "number",
|
|
4477
4525
|
"default": 800,
|
|
4478
|
-
"description": "Maximum characters of CMC content
|
|
4526
|
+
"description": "Maximum characters of CMC content included per recall pass."
|
|
4479
4527
|
},
|
|
4480
4528
|
"cmcRetrievalCounterfactualBoost": {
|
|
4481
4529
|
"type": "number",
|
|
@@ -4610,7 +4658,7 @@
|
|
|
4610
4658
|
"label": "OpenAI API Key",
|
|
4611
4659
|
"sensitive": true,
|
|
4612
4660
|
"placeholder": "sk-...",
|
|
4613
|
-
"help": "API key for
|
|
4661
|
+
"help": "Optional API key for plugin mode only. Not needed when Model Source is gateway."
|
|
4614
4662
|
},
|
|
4615
4663
|
"openaiBaseUrl": {
|
|
4616
4664
|
"label": "OpenAI Base URL",
|
|
@@ -4751,13 +4799,13 @@
|
|
|
4751
4799
|
"help": "Enable identity continuity workflows (anchor, incidents, audits)"
|
|
4752
4800
|
},
|
|
4753
4801
|
"identityInjectionMode": {
|
|
4754
|
-
"label": "Identity
|
|
4802
|
+
"label": "Identity Context Mode",
|
|
4755
4803
|
"advanced": true,
|
|
4756
4804
|
"placeholder": "recovery_only",
|
|
4757
|
-
"help": "When to
|
|
4805
|
+
"help": "When to add identity continuity context: recovery_only, minimal, or full"
|
|
4758
4806
|
},
|
|
4759
4807
|
"identityMaxInjectChars": {
|
|
4760
|
-
"label": "Identity Max
|
|
4808
|
+
"label": "Identity Max Context Chars",
|
|
4761
4809
|
"advanced": true,
|
|
4762
4810
|
"placeholder": "1200"
|
|
4763
4811
|
},
|
|
@@ -4788,7 +4836,7 @@
|
|
|
4788
4836
|
},
|
|
4789
4837
|
"injectQuestions": {
|
|
4790
4838
|
"label": "Inject Questions",
|
|
4791
|
-
"help": "Include the most relevant open question in
|
|
4839
|
+
"help": "Include the most relevant open question in generated memory context"
|
|
4792
4840
|
},
|
|
4793
4841
|
"commitmentDecayDays": {
|
|
4794
4842
|
"label": "Commitment Decay (days)",
|
|
@@ -5034,7 +5082,7 @@
|
|
|
5034
5082
|
},
|
|
5035
5083
|
"compactionResetEnabled": {
|
|
5036
5084
|
"label": "Compaction Reset",
|
|
5037
|
-
"help": "Reset session after compaction and
|
|
5085
|
+
"help": "Reset session after compaction and add BOOT.md recovery context",
|
|
5038
5086
|
"advanced": true
|
|
5039
5087
|
},
|
|
5040
5088
|
"hourlySummariesEnabled": {
|
|
@@ -5058,7 +5106,7 @@
|
|
|
5058
5106
|
},
|
|
5059
5107
|
"modelSource": {
|
|
5060
5108
|
"label": "Model Source",
|
|
5061
|
-
"help": "Route LLM calls through the gateway's agent model chain instead of Engram's own config. When set to 'gateway', localLlm and openai settings are ignored."
|
|
5109
|
+
"help": "Route LLM calls through the gateway's agent model chain instead of Engram's own config. Default for OpenClaw installs. When set to 'gateway', localLlm and openai settings are ignored."
|
|
5062
5110
|
},
|
|
5063
5111
|
"gatewayAgentId": {
|
|
5064
5112
|
"label": "Gateway Agent ID",
|
|
@@ -5196,7 +5244,7 @@
|
|
|
5196
5244
|
"objectiveStateRecallEnabled": {
|
|
5197
5245
|
"label": "Objective-State Recall",
|
|
5198
5246
|
"advanced": true,
|
|
5199
|
-
"help": "
|
|
5247
|
+
"help": "Add recall-relevant objective-state snapshots to recall context."
|
|
5200
5248
|
},
|
|
5201
5249
|
"objectiveStateStoreDir": {
|
|
5202
5250
|
"label": "Objective-State Store Directory",
|
|
@@ -5217,7 +5265,7 @@
|
|
|
5217
5265
|
"causalTrajectoryRecallEnabled": {
|
|
5218
5266
|
"label": "Causal Trajectory Recall",
|
|
5219
5267
|
"advanced": true,
|
|
5220
|
-
"help": "
|
|
5268
|
+
"help": "Add recall-relevant causal trajectories to recall context."
|
|
5221
5269
|
},
|
|
5222
5270
|
"trustZonesEnabled": {
|
|
5223
5271
|
"label": "Trust Zones",
|
|
@@ -5237,7 +5285,7 @@
|
|
|
5237
5285
|
"trustZoneRecallEnabled": {
|
|
5238
5286
|
"label": "Trust-Zone Recall",
|
|
5239
5287
|
"advanced": true,
|
|
5240
|
-
"help": "
|
|
5288
|
+
"help": "Add recall-relevant working and trusted trust-zone records to recall context."
|
|
5241
5289
|
},
|
|
5242
5290
|
"memoryPoisoningDefenseEnabled": {
|
|
5243
5291
|
"label": "Memory Poisoning Defense",
|
|
@@ -5251,7 +5299,7 @@
|
|
|
5251
5299
|
},
|
|
5252
5300
|
"harmonicRetrievalEnabled": {
|
|
5253
5301
|
"label": "Harmonic Retrieval",
|
|
5254
|
-
"help": "Enable harmonic retrieval blending over abstraction nodes and cue anchors, including recall-section
|
|
5302
|
+
"help": "Enable harmonic retrieval blending over abstraction nodes and cue anchors, including recall-section assembly and harmonic-search diagnostics."
|
|
5255
5303
|
},
|
|
5256
5304
|
"abstractionAnchorsEnabled": {
|
|
5257
5305
|
"label": "Abstraction Anchors",
|
|
@@ -5266,7 +5314,7 @@
|
|
|
5266
5314
|
},
|
|
5267
5315
|
"verifiedRecallEnabled": {
|
|
5268
5316
|
"label": "Verified Recall",
|
|
5269
|
-
"help": "
|
|
5317
|
+
"help": "Add recall-relevant memory boxes only when their cited source memories verify as non-archived episodes."
|
|
5270
5318
|
},
|
|
5271
5319
|
"semanticRulePromotionEnabled": {
|
|
5272
5320
|
"label": "Semantic Rule Promotion",
|
|
@@ -5314,9 +5362,9 @@
|
|
|
5314
5362
|
"help": "Max memories to consolidate per run to limit LLM cost."
|
|
5315
5363
|
},
|
|
5316
5364
|
"operatorAwareConsolidationEnabled": {
|
|
5317
|
-
"label": "Operator-Aware Consolidation
|
|
5365
|
+
"label": "Operator-Aware Consolidation",
|
|
5318
5366
|
"advanced": true,
|
|
5319
|
-
"help": "Opt in to operator-aware consolidation
|
|
5367
|
+
"help": "Opt in to operator-aware consolidation instructions (default off). When enabled, the LLM returns structured {operator, output} JSON and we record SPLIT/MERGE/UPDATE on derived_via. When disabled (default), derived_via still populates via the cluster-shape heuristic."
|
|
5320
5368
|
},
|
|
5321
5369
|
"peerProfileReasonerEnabled": {
|
|
5322
5370
|
"label": "Peer Profile Reasoner",
|
|
@@ -5339,14 +5387,14 @@
|
|
|
5339
5387
|
"help": "Hard cap on the total number of profile fields the reasoner will apply across all peers in a single run. Set to 0 to disable applying any fields."
|
|
5340
5388
|
},
|
|
5341
5389
|
"peerProfileRecallEnabled": {
|
|
5342
|
-
"label": "Peer Profile Recall
|
|
5390
|
+
"label": "Peer Profile Recall",
|
|
5343
5391
|
"advanced": true,
|
|
5344
|
-
"help": "When enabled,
|
|
5392
|
+
"help": "When enabled, adds the active peer's profile fields to recall context as a '## Peer Profile' section. Requires the session peer ID to be registered. Default off."
|
|
5345
5393
|
},
|
|
5346
5394
|
"peerProfileRecallMaxFields": {
|
|
5347
5395
|
"label": "Peer Profile Recall Max Fields",
|
|
5348
5396
|
"advanced": true,
|
|
5349
|
-
"help": "Maximum number of peer profile fields to
|
|
5397
|
+
"help": "Maximum number of peer profile fields to add per recall. Only the most-recently-updated N fields are included. Set to 0 to disable this feature."
|
|
5350
5398
|
},
|
|
5351
5399
|
"creationMemoryEnabled": {
|
|
5352
5400
|
"label": "Creation Memory",
|
|
@@ -5398,7 +5446,7 @@
|
|
|
5398
5446
|
"workProductRecallEnabled": {
|
|
5399
5447
|
"label": "Work-Product Recall",
|
|
5400
5448
|
"advanced": true,
|
|
5401
|
-
"help": "
|
|
5449
|
+
"help": "Add recall-relevant work-product ledger entries to recall context and expose artifact-recovery search tooling."
|
|
5402
5450
|
},
|
|
5403
5451
|
"workProductLedgerDir": {
|
|
5404
5452
|
"label": "Work-Product Ledger Directory",
|
|
@@ -5664,5 +5712,21 @@
|
|
|
5664
5712
|
"advanced": true,
|
|
5665
5713
|
"help": "Promote stored reasoning_trace memories to the top of recall results when the incoming query reads like a problem-solving ask. Default off; enable after benchmarking (issue #564)."
|
|
5666
5714
|
}
|
|
5715
|
+
},
|
|
5716
|
+
"commandAliases": [
|
|
5717
|
+
{
|
|
5718
|
+
"name": "remnic",
|
|
5719
|
+
"kind": "runtime-slash",
|
|
5720
|
+
"cliCommand": "remnic"
|
|
5721
|
+
}
|
|
5722
|
+
],
|
|
5723
|
+
"activation": {
|
|
5724
|
+
"onCommands": [
|
|
5725
|
+
"remnic"
|
|
5726
|
+
],
|
|
5727
|
+
"onCapabilities": [
|
|
5728
|
+
"tool",
|
|
5729
|
+
"hook"
|
|
5730
|
+
]
|
|
5667
5731
|
}
|
|
5668
5732
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joshuaswarren/openclaw-engram",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.18",
|
|
4
4
|
"description": "Deprecated compatibility shim for Engram installs. Re-exports @remnic/plugin-openclaw and forwards engram-access to @remnic/core.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
]
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@remnic/core": "^1.1.
|
|
35
|
-
"@remnic/plugin-openclaw": "^1.0.
|
|
34
|
+
"@remnic/core": "^1.1.9",
|
|
35
|
+
"@remnic/plugin-openclaw": "^1.0.32"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"openclaw": ">=2026.4.8"
|