@joshuaswarren/openclaw-engram 9.3.4 → 9.3.6
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 +232 -4
- package/package.json +3 -3
package/openclaw.plugin.json
CHANGED
|
@@ -318,6 +318,63 @@
|
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
},
|
|
321
|
+
"procedural": {
|
|
322
|
+
"type": "object",
|
|
323
|
+
"additionalProperties": false,
|
|
324
|
+
"default": {},
|
|
325
|
+
"properties": {
|
|
326
|
+
"enabled": {
|
|
327
|
+
"type": "boolean",
|
|
328
|
+
"default": false,
|
|
329
|
+
"description": "Master gate for procedural memory: extraction, recall boost, and mining (issue #519)."
|
|
330
|
+
},
|
|
331
|
+
"minOccurrences": {
|
|
332
|
+
"type": "integer",
|
|
333
|
+
"minimum": 0,
|
|
334
|
+
"maximum": 1000,
|
|
335
|
+
"default": 3,
|
|
336
|
+
"description": "Minimum clustered trajectory occurrences before emitting a candidate procedure (0 disables mining)."
|
|
337
|
+
},
|
|
338
|
+
"successFloor": {
|
|
339
|
+
"type": "number",
|
|
340
|
+
"minimum": 0,
|
|
341
|
+
"maximum": 1,
|
|
342
|
+
"default": 0.7,
|
|
343
|
+
"description": "Minimum success-rate floor (from trajectory outcomes) for miner promotion."
|
|
344
|
+
},
|
|
345
|
+
"autoPromoteOccurrences": {
|
|
346
|
+
"type": "integer",
|
|
347
|
+
"minimum": 0,
|
|
348
|
+
"maximum": 10000,
|
|
349
|
+
"default": 8,
|
|
350
|
+
"description": "When auto-promotion is enabled, minimum occurrence count to move pending_review procedures to active (0 disables auto-promotion by count)."
|
|
351
|
+
},
|
|
352
|
+
"autoPromoteEnabled": {
|
|
353
|
+
"type": "boolean",
|
|
354
|
+
"default": false,
|
|
355
|
+
"description": "When true, miner may auto-promote trusted procedures to active after autoPromoteOccurrences."
|
|
356
|
+
},
|
|
357
|
+
"lookbackDays": {
|
|
358
|
+
"type": "integer",
|
|
359
|
+
"minimum": 1,
|
|
360
|
+
"maximum": 3650,
|
|
361
|
+
"default": 30,
|
|
362
|
+
"description": "Trajectory lookback window for procedural mining."
|
|
363
|
+
},
|
|
364
|
+
"recallMaxProcedures": {
|
|
365
|
+
"type": "integer",
|
|
366
|
+
"minimum": 1,
|
|
367
|
+
"maximum": 10,
|
|
368
|
+
"default": 3,
|
|
369
|
+
"description": "Maximum procedure memories to inject on task-initiation recall."
|
|
370
|
+
},
|
|
371
|
+
"proceduralMiningCronAutoRegister": {
|
|
372
|
+
"type": "boolean",
|
|
373
|
+
"default": false,
|
|
374
|
+
"description": "When true, installer may register the nightly procedural mining cron job."
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
},
|
|
321
378
|
"slotBehavior": {
|
|
322
379
|
"type": "object",
|
|
323
380
|
"additionalProperties": false,
|
|
@@ -1299,7 +1356,8 @@
|
|
|
1299
1356
|
"principle",
|
|
1300
1357
|
"commitment",
|
|
1301
1358
|
"moment",
|
|
1302
|
-
"skill"
|
|
1359
|
+
"skill",
|
|
1360
|
+
"procedure"
|
|
1303
1361
|
]
|
|
1304
1362
|
},
|
|
1305
1363
|
"default": [
|
|
@@ -1864,6 +1922,48 @@
|
|
|
1864
1922
|
"default": true,
|
|
1865
1923
|
"description": "Automatically supersede contradicted memories"
|
|
1866
1924
|
},
|
|
1925
|
+
"contradictionScan": {
|
|
1926
|
+
"type": "object",
|
|
1927
|
+
"description": "Configuration for the nightly contradiction-scan cron (issue #520)",
|
|
1928
|
+
"properties": {
|
|
1929
|
+
"enabled": {
|
|
1930
|
+
"type": "boolean",
|
|
1931
|
+
"default": false,
|
|
1932
|
+
"description": "Enable the nightly contradiction scan cron (disabled by default per rule 48)"
|
|
1933
|
+
},
|
|
1934
|
+
"similarityFloor": {
|
|
1935
|
+
"type": "number",
|
|
1936
|
+
"default": 0.82,
|
|
1937
|
+
"minimum": 0,
|
|
1938
|
+
"maximum": 1,
|
|
1939
|
+
"description": "Embedding cosine similarity floor for candidate pair generation"
|
|
1940
|
+
},
|
|
1941
|
+
"topicOverlapFloor": {
|
|
1942
|
+
"type": "number",
|
|
1943
|
+
"default": 0.4,
|
|
1944
|
+
"minimum": 0,
|
|
1945
|
+
"maximum": 1,
|
|
1946
|
+
"description": "Minimum topic-token Jaccard overlap for unstructured pairs"
|
|
1947
|
+
},
|
|
1948
|
+
"maxPairsPerRun": {
|
|
1949
|
+
"type": "integer",
|
|
1950
|
+
"default": 500,
|
|
1951
|
+
"minimum": 1,
|
|
1952
|
+
"description": "Cap on candidate pairs evaluated per cron run"
|
|
1953
|
+
},
|
|
1954
|
+
"cooldownDays": {
|
|
1955
|
+
"type": "integer",
|
|
1956
|
+
"default": 14,
|
|
1957
|
+
"minimum": 0,
|
|
1958
|
+
"description": "Cooldown in days. 0 = always re-evaluate."
|
|
1959
|
+
},
|
|
1960
|
+
"autoMergeDuplicates": {
|
|
1961
|
+
"type": "boolean",
|
|
1962
|
+
"default": false,
|
|
1963
|
+
"description": "Auto-flag pairs judged duplicates for dedup (still requires user approval)"
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
},
|
|
1867
1967
|
"temporalSupersessionEnabled": {
|
|
1868
1968
|
"type": "boolean",
|
|
1869
1969
|
"default": true,
|
|
@@ -1874,6 +1974,46 @@
|
|
|
1874
1974
|
"default": false,
|
|
1875
1975
|
"description": "If true, include temporally-superseded facts in recall results (for audit/history). Default: exclude."
|
|
1876
1976
|
},
|
|
1977
|
+
"recallDirectAnswerEnabled": {
|
|
1978
|
+
"type": "boolean",
|
|
1979
|
+
"default": true,
|
|
1980
|
+
"description": "When true, recall runs the direct-answer tier in observation mode: annotates LastRecallSnapshot.tierExplain with which tier would have served the query (issue #518). Does not short-circuit the QMD path in the current release."
|
|
1981
|
+
},
|
|
1982
|
+
"recallDirectAnswerTokenOverlapFloor": {
|
|
1983
|
+
"type": "number",
|
|
1984
|
+
"minimum": 0,
|
|
1985
|
+
"maximum": 1,
|
|
1986
|
+
"default": 0.55,
|
|
1987
|
+
"description": "Minimum query↔memory token-overlap ratio for direct-answer eligibility. Set to 0 to disable the gate."
|
|
1988
|
+
},
|
|
1989
|
+
"recallDirectAnswerImportanceFloor": {
|
|
1990
|
+
"type": "number",
|
|
1991
|
+
"minimum": 0,
|
|
1992
|
+
"maximum": 1,
|
|
1993
|
+
"default": 0.7,
|
|
1994
|
+
"description": "Minimum calibrated importance score for direct-answer eligibility. Set to 0 to disable the gate."
|
|
1995
|
+
},
|
|
1996
|
+
"recallDirectAnswerAmbiguityMargin": {
|
|
1997
|
+
"type": "number",
|
|
1998
|
+
"minimum": 0,
|
|
1999
|
+
"maximum": 1,
|
|
2000
|
+
"default": 0.15,
|
|
2001
|
+
"description": "If the second-best candidate scores within this ratio of the top, direct-answer defers to hybrid."
|
|
2002
|
+
},
|
|
2003
|
+
"recallDirectAnswerEligibleTaxonomyBuckets": {
|
|
2004
|
+
"type": "array",
|
|
2005
|
+
"items": {
|
|
2006
|
+
"type": "string"
|
|
2007
|
+
},
|
|
2008
|
+
"default": [
|
|
2009
|
+
"decisions",
|
|
2010
|
+
"principles",
|
|
2011
|
+
"conventions",
|
|
2012
|
+
"runbooks",
|
|
2013
|
+
"entities"
|
|
2014
|
+
],
|
|
2015
|
+
"description": "Taxonomy category IDs eligible for direct-answer routing."
|
|
2016
|
+
},
|
|
1877
2017
|
"memoryLinkingEnabled": {
|
|
1878
2018
|
"type": "boolean",
|
|
1879
2019
|
"default": false,
|
|
@@ -2289,6 +2429,11 @@
|
|
|
2289
2429
|
"default": 15000,
|
|
2290
2430
|
"description": "Timeout for fast-tier local LLM requests (ms). Lower than primary since fast ops should complete quickly."
|
|
2291
2431
|
},
|
|
2432
|
+
"localLlmDisableThinking": {
|
|
2433
|
+
"type": "boolean",
|
|
2434
|
+
"default": true,
|
|
2435
|
+
"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 injected 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."
|
|
2436
|
+
},
|
|
2292
2437
|
"hourlySummaryCronAutoRegister": {
|
|
2293
2438
|
"type": "boolean",
|
|
2294
2439
|
"default": false,
|
|
@@ -2560,7 +2705,8 @@
|
|
|
2560
2705
|
},
|
|
2561
2706
|
"default": [
|
|
2562
2707
|
"correction",
|
|
2563
|
-
"commitment"
|
|
2708
|
+
"commitment",
|
|
2709
|
+
"procedure"
|
|
2564
2710
|
],
|
|
2565
2711
|
"description": "Memory categories excluded from semantic consolidation."
|
|
2566
2712
|
},
|
|
@@ -2973,7 +3119,8 @@
|
|
|
2973
3119
|
"commitment",
|
|
2974
3120
|
"preference",
|
|
2975
3121
|
"decision",
|
|
2976
|
-
"principle"
|
|
3122
|
+
"principle",
|
|
3123
|
+
"procedure"
|
|
2977
3124
|
],
|
|
2978
3125
|
"description": "Categories that protect a fact from archival regardless of other criteria."
|
|
2979
3126
|
},
|
|
@@ -3011,7 +3158,8 @@
|
|
|
3011
3158
|
"decision",
|
|
3012
3159
|
"principle",
|
|
3013
3160
|
"commitment",
|
|
3014
|
-
"preference"
|
|
3161
|
+
"preference",
|
|
3162
|
+
"procedure"
|
|
3015
3163
|
],
|
|
3016
3164
|
"description": "Categories that lifecycle policy will not auto-archive."
|
|
3017
3165
|
},
|
|
@@ -3589,6 +3737,7 @@
|
|
|
3589
3737
|
},
|
|
3590
3738
|
"briefing": {
|
|
3591
3739
|
"type": "object",
|
|
3740
|
+
"additionalProperties": false,
|
|
3592
3741
|
"default": {
|
|
3593
3742
|
"enabled": true,
|
|
3594
3743
|
"defaultWindow": "yesterday",
|
|
@@ -3599,6 +3748,52 @@
|
|
|
3599
3748
|
"saveDir": null,
|
|
3600
3749
|
"llmFollowups": true
|
|
3601
3750
|
},
|
|
3751
|
+
"properties": {
|
|
3752
|
+
"enabled": {
|
|
3753
|
+
"type": "boolean",
|
|
3754
|
+
"default": true
|
|
3755
|
+
},
|
|
3756
|
+
"defaultWindow": {
|
|
3757
|
+
"type": "string",
|
|
3758
|
+
"default": "yesterday"
|
|
3759
|
+
},
|
|
3760
|
+
"defaultFormat": {
|
|
3761
|
+
"type": "string",
|
|
3762
|
+
"enum": [
|
|
3763
|
+
"markdown",
|
|
3764
|
+
"json"
|
|
3765
|
+
],
|
|
3766
|
+
"default": "markdown"
|
|
3767
|
+
},
|
|
3768
|
+
"maxFollowups": {
|
|
3769
|
+
"type": "integer",
|
|
3770
|
+
"minimum": 0,
|
|
3771
|
+
"maximum": 10,
|
|
3772
|
+
"default": 5
|
|
3773
|
+
},
|
|
3774
|
+
"calendarSource": {
|
|
3775
|
+
"type": [
|
|
3776
|
+
"string",
|
|
3777
|
+
"null"
|
|
3778
|
+
],
|
|
3779
|
+
"default": null
|
|
3780
|
+
},
|
|
3781
|
+
"saveByDefault": {
|
|
3782
|
+
"type": "boolean",
|
|
3783
|
+
"default": false
|
|
3784
|
+
},
|
|
3785
|
+
"saveDir": {
|
|
3786
|
+
"type": [
|
|
3787
|
+
"string",
|
|
3788
|
+
"null"
|
|
3789
|
+
],
|
|
3790
|
+
"default": null
|
|
3791
|
+
},
|
|
3792
|
+
"llmFollowups": {
|
|
3793
|
+
"type": "boolean",
|
|
3794
|
+
"default": true
|
|
3795
|
+
}
|
|
3796
|
+
},
|
|
3602
3797
|
"description": "Daily Context Briefing (#370). Knobs: enabled, defaultWindow ('yesterday', '3d', '1w', '24h', ...), defaultFormat (markdown|json), maxFollowups (0-10), calendarSource (path to ICS/JSON file, null = off), saveByDefault, saveDir (null = $REMNIC_HOME/briefings/), llmFollowups (disable to skip Responses API calls)."
|
|
3603
3798
|
},
|
|
3604
3799
|
"enrichmentEnabled": {
|
|
@@ -3901,6 +4096,10 @@
|
|
|
3901
4096
|
"label": "Auto-Resolve Contradictions",
|
|
3902
4097
|
"help": "Automatically supersede old memories when contradiction is confirmed"
|
|
3903
4098
|
},
|
|
4099
|
+
"contradictionScan": {
|
|
4100
|
+
"label": "Contradiction Scan",
|
|
4101
|
+
"help": "Nightly cron that pairs similar memories and flags contradictions for review (issue #520)"
|
|
4102
|
+
},
|
|
3904
4103
|
"temporalSupersessionEnabled": {
|
|
3905
4104
|
"label": "Temporal Supersession",
|
|
3906
4105
|
"help": "Mark older facts superseded when a newer fact writes a conflicting value for the same entityRef + structured attribute (issue #375)"
|
|
@@ -3910,6 +4109,30 @@
|
|
|
3910
4109
|
"advanced": true,
|
|
3911
4110
|
"help": "If enabled, superseded facts still surface in recall (audit/history mode)."
|
|
3912
4111
|
},
|
|
4112
|
+
"recallDirectAnswerEnabled": {
|
|
4113
|
+
"label": "Direct-Answer Retrieval Tier",
|
|
4114
|
+
"help": "Route validated high-trust queries to a fast direct-answer path before QMD (issue #518)."
|
|
4115
|
+
},
|
|
4116
|
+
"recallDirectAnswerTokenOverlapFloor": {
|
|
4117
|
+
"label": "Direct-Answer Token Overlap Floor",
|
|
4118
|
+
"advanced": true,
|
|
4119
|
+
"placeholder": "0.55"
|
|
4120
|
+
},
|
|
4121
|
+
"recallDirectAnswerImportanceFloor": {
|
|
4122
|
+
"label": "Direct-Answer Importance Floor",
|
|
4123
|
+
"advanced": true,
|
|
4124
|
+
"placeholder": "0.7"
|
|
4125
|
+
},
|
|
4126
|
+
"recallDirectAnswerAmbiguityMargin": {
|
|
4127
|
+
"label": "Direct-Answer Ambiguity Margin",
|
|
4128
|
+
"advanced": true,
|
|
4129
|
+
"placeholder": "0.15"
|
|
4130
|
+
},
|
|
4131
|
+
"recallDirectAnswerEligibleTaxonomyBuckets": {
|
|
4132
|
+
"label": "Direct-Answer Eligible Taxonomy Buckets",
|
|
4133
|
+
"advanced": true,
|
|
4134
|
+
"help": "Taxonomy category IDs eligible for direct-answer routing."
|
|
4135
|
+
},
|
|
3913
4136
|
"memoryLinkingEnabled": {
|
|
3914
4137
|
"label": "Memory Linking",
|
|
3915
4138
|
"help": "Build knowledge graph by linking related memories"
|
|
@@ -4111,6 +4334,11 @@
|
|
|
4111
4334
|
"advanced": true,
|
|
4112
4335
|
"help": "Timeout for fast-tier requests. Lower than primary since fast ops should complete quickly."
|
|
4113
4336
|
},
|
|
4337
|
+
"localLlmDisableThinking": {
|
|
4338
|
+
"label": "Disable Local LLM Thinking Mode",
|
|
4339
|
+
"advanced": true,
|
|
4340
|
+
"help": "Suppress chain-of-thought reasoning on the main local LLM. Default on — extraction / consolidation are structured-output tasks where thinking is pure latency tax and a common cause of 60s timeouts on Qwen 3.5 / Gemma 4 / DeepSeek. The suppression field (chat_template_kwargs) is only sent when the backend is known to support it (LM Studio, vLLM); strict OpenAI-compat backends fail open. Turn off if you want thinking on narrative tasks. Fast-tier client always disables thinking regardless."
|
|
4341
|
+
},
|
|
4114
4342
|
"evalHarnessEnabled": {
|
|
4115
4343
|
"label": "Evaluation Harness",
|
|
4116
4344
|
"help": "Enable Engram's benchmark/evaluation harness foundation and benchmark-status diagnostics."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joshuaswarren/openclaw-engram",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.6",
|
|
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.0
|
|
35
|
-
"@remnic/plugin-openclaw": "^1.0.
|
|
34
|
+
"@remnic/core": "^1.1.0",
|
|
35
|
+
"@remnic/plugin-openclaw": "^1.0.7"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"openclaw": ">=2026.4.8"
|