@openviking/dsh-memory-plugin 0.5.6 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,7 +21,7 @@ Or add the package to a profile directly:
21
21
 
22
22
  ```bash
23
23
  dsh plugin --profile web add @openviking/dsh-memory-plugin
24
- dsh --profile web --dump-config # should list the openviking-memory group
24
+ dsh --profile web --dump-config # should list openviking-memory-runtime
25
25
  ```
26
26
 
27
27
  `dsh plugin` forwards to pnpm inside the profile directory, so the bundle has to
@@ -34,7 +34,7 @@ It also needs `node examples/memory-plugin-shared/sync.mjs` run first: the
34
34
 
35
35
  ## Requirements
36
36
 
37
- - `@deepseek-ai/dsh` `0.1.0-rc.6`, `0.1.5-rc.1`, or `0.1.5-rc.2`; stable `0.1.x` releases are also admitted by the peer range
37
+ - `@deepseek-ai/dsh` `0.1.0-rc.6`, `0.1.5-rc.1`, `0.1.5-rc.2`, or `0.1.7-rc.2`; stable `0.1.x` releases are also admitted by the peer range
38
38
  - Node.js `^22.19.0` or `>=24`
39
39
  - A reachable OpenViking server
40
40
 
@@ -48,9 +48,10 @@ individual DSH core packages to the profile. DSH initializes profiles with
48
48
  available through its module fallback at boot. A missing-peer warning during
49
49
  `dsh plugin add` alone does not prove startup is broken.
50
50
 
51
- The peer range is `>=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1`. The second clause
52
- explicitly admits the `0.1.5` release candidates: semver does not include them
53
- in the first clause merely because they compare above `0.1.0-rc.6`. Other
51
+ The peer range is `>=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1 || ^0.1.7-rc.2`. Each
52
+ pre-release clause admits one series explicitly: semver does not include a
53
+ release candidate in the first clause merely because it compares above
54
+ `0.1.0-rc.6`, so every verified pre-release series is listed on its own. Other
54
55
  pre-release series need separate verification. Local devDependencies and
55
56
  `overrides` stay pinned to rc.6 to exercise the minimum supported contract.
56
57
 
@@ -175,28 +176,44 @@ Common environment variables:
175
176
  | `OPENVIKING_WORKSPACE_PEER` | Derive a peer from each DSH session workspace's git identity by default; `0` sends no peer |
176
177
  | `OPENVIKING_RECALL_PEER_SCOPE` | `all` for cross-workspace recall or `actor` for isolation |
177
178
 
178
- The patch can also carry plugin config:
179
+ The profile's `cordis.patch.yml` can also carry plugin config:
179
180
 
180
181
  ```yaml
181
- - insert:
182
- - id: openviking-memory
183
- name: '@deepseek-ai/cordis-plugin-group'
184
- group: true
185
- isolate:
186
- openvikingMemory: true
187
- config:
188
- - id: openviking-memory-runtime
189
- name: '@openviking/dsh-memory-plugin'
190
- config:
191
- endpoint: http://127.0.0.1:1933
192
- recallTokenBudget: 2000
193
- scoreThreshold: 0.35
194
- captureToolResults: false
195
- skipSubagentSessions: true
196
- commitTokenThreshold: 20000
197
- mcpToolCallTimeoutMs: 60000
182
+ - id: openviking-memory-runtime
183
+ config:
184
+ endpoint: http://127.0.0.1:1933
185
+ recallMaxTokens: 2000
186
+ scoreThreshold: 0.35
187
+ captureToolResults: false
188
+ skipSubagentSessions: true
189
+ commitTokenThreshold: 20000
190
+ mcpToolCallTimeoutMs: 60000
198
191
  ```
199
192
 
193
+ Recall normally uses `POST /api/v1/search/search` with `mode: "context"`.
194
+ `recallMaxTokens` (`OPENVIKING_RECALL_MAX_TOKENS`) sets this request's
195
+ `max_tokens` budget for server-assembled context. When it is unset, the plugin
196
+ omits `max_tokens` and uses the server's default budget.
197
+
198
+ `recallLimit` (`OPENVIKING_RECALL_LIMIT`) scales the category quotas for context
199
+ recall; it is not a strict cap on the final number of entries. When explicitly
200
+ set, it allocates at least one slot to each of the six categories: events,
201
+ entities, preferences, experiences, resources, and skills. For example,
202
+ `recallLimit: 4` sends six one-slot quotas, so the result can contain more than
203
+ four entries. Lowering it does not expand the set of categories searched.
204
+ Actual results still depend on matching content, score filtering, deduplication,
205
+ and the token budget. When unset, the server's coding preset supplies the quotas.
206
+
207
+ The older size settings apply to fallback recall, not the primary context request:
208
+
209
+ - `recallTokenBudget` (`OPENVIKING_RECALL_TOKEN_BUDGET`) controls the estimated
210
+ token budget of the locally rendered block when both server-side context and
211
+ the legacy `/api/v1/search/recall` endpoint are unavailable and recall falls
212
+ back to raw search results.
213
+ - `recallMaxContentChars` (`OPENVIKING_RECALL_MAX_CONTENT_CHARS`) limits each
214
+ item's content in that local fallback. It also sets the legacy `/recall`
215
+ request's `max_chars` to `max(1000, recallMaxContentChars * recallLimit)`.
216
+
200
217
  ## Behavior
201
218
 
202
219
  - `agent/session-start` injects the OpenViking profile, the available-memory index, and the `<available-skills>` catalog through `agent.inject()`.
package/config.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { buildPluginConfig } from "./shared/plugin-config.mjs";
2
2
  import { loadCredentialFiles } from "./shared/credentials.mjs";
3
3
 
4
- export const PLUGIN_VERSION = "0.5.6";
4
+ export const PLUGIN_VERSION = "0.5.8";
5
5
 
6
6
  /**
7
7
  * Namespace for the bridged OpenViking MCP tools. DSH publishes every MCP tool
package/cordis.patch.yml CHANGED
@@ -1,9 +1,3 @@
1
1
  - insert:
2
- - id: openviking-memory
3
- name: '@deepseek-ai/cordis-plugin-group'
4
- group: true
5
- isolate:
6
- openvikingMemory: true
7
- config:
8
- - id: openviking-memory-runtime
9
- name: '@openviking/dsh-memory-plugin'
2
+ - id: openviking-memory-runtime
3
+ name: '@openviking/dsh-memory-plugin'
package/icon.svg ADDED
@@ -0,0 +1,17 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-label="OpenViking" focusable="false">
2
+ <title>OpenViking</title>
3
+ <style>
4
+ /* Monochrome mark. The plugin card renders this file as an image document,
5
+ which cannot read the page palette, so the two inks are declared here and
6
+ the scheme flip comes from the only signal an image document gets:
7
+ prefers-color-scheme. The base fill attribute keeps the black ink in
8
+ renderers that lack that query, and the class is named after the product
9
+ to stay unique if this file is ever inlined. */
10
+ @media (prefers-color-scheme: dark) {
11
+ .openviking-mark { fill: #ffffff; }
12
+ }
13
+ </style>
14
+ <path class="openviking-mark" fill="#000000" d="M21.9136 11.2875C21.8311 15.6708 18.953 19.691 14.5292 21.0217C10.1055 22.3524 5.48691 20.587 3 16.9758L6.35328 15.9668C8.52232 18.6563 12.1802 19.9123 15.6932 18.8558C19.2062 17.7993 21.5646 14.7335 21.8903 11.2938L21.9136 11.2867V11.2875Z"/>
15
+ <path class="openviking-mark" fill="#000000" d="M11.9754 2.26476C14.2745 3.4155 19.0247 7.27598 19.1416 14.5217L9.68011 17.3709C10.3938 16.4998 11.0303 15.5158 11.5546 14.4446L15.4019 13.2751C16.6438 8.11275 14.2504 4.18838 11.9941 2.3115C11.9878 2.29592 11.9816 2.28034 11.9754 2.26398V2.26476ZM11.9941 2.31228C13.7548 6.71269 13.2274 11.0251 11.5546 14.4446L8.98047 15.2268C12.4085 10.0457 12.4865 5.64375 11.9699 2.29125C11.9785 2.29826 11.9863 2.30527 11.9941 2.3115V2.31228Z"/>
16
+ <path class="openviking-mark" fill="#000000" d="M11.9909 2.31144C13.7517 6.71185 13.2243 11.0242 11.5515 14.4437L8.97656 15.2259C12.4046 10.0449 12.4826 5.64291 11.966 2.29041C11.9746 2.29742 11.9824 2.30443 11.9902 2.31066L11.9909 2.31144Z"/>
17
+ </svg>
package/locale/en.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "OpenViking Memory",
4
+ "description": "Long-term semantic memory for DeepSeek Harness: auto-recall before each step, session capture and commit, viking:// URI protection, and the OpenViking MCP tools and skills."
5
+ }
6
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "OpenViking 记忆",
4
+ "description": "为 DeepSeek Harness 提供长期语义记忆:每步自动召回、会话采集与提交、viking:// URI 保护,以及 OpenViking MCP 工具与技能。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "@openviking/dsh-memory-plugin",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "description": "OpenViking memory and context bundle for DeepSeek Harness",
5
+ "icon": "./icon.svg",
5
6
  "type": "module",
6
7
  "main": "index.mjs",
7
8
  "exports": {
8
- ".": "./index.mjs"
9
+ ".": "./index.mjs",
10
+ "./package.json": "./package.json",
11
+ "./locale/*.json": "./locale/*.json"
9
12
  },
10
13
  "files": [
14
+ "icon.svg",
11
15
  "index.mjs",
12
16
  "client.mjs",
13
17
  "config.mjs",
@@ -21,6 +25,7 @@
21
25
  "servers/",
22
26
  "shared/",
23
27
  "skills/",
28
+ "locale/",
24
29
  "cordis.patch.yml",
25
30
  "README.md"
26
31
  ],
@@ -37,9 +42,9 @@
37
42
  "prepublishOnly": "npm run prepack && npm run check && npm test"
38
43
  },
39
44
  "peerDependencies": {
40
- "@deepseek-ai/dsh-llm": ">=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1",
41
- "@deepseek-ai/dsh-mcp-client": ">=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1",
42
- "@deepseek-ai/dsh-skill-filesystem": ">=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1"
45
+ "@deepseek-ai/dsh-llm": ">=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1 || ^0.1.7-rc.2",
46
+ "@deepseek-ai/dsh-mcp-client": ">=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1 || ^0.1.7-rc.2",
47
+ "@deepseek-ai/dsh-skill-filesystem": ">=0.1.0-rc.6 <0.2.0 || ^0.1.5-rc.1 || ^0.1.7-rc.2"
43
48
  },
44
49
  "devDependencies": {
45
50
  "@deepseek-ai/dsh-llm": "0.1.0-rc.6",