dsh-mnemon 0.5.39 → 0.5.40
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/lib/bundle.js +1 -1
- package/lib/client.js +29 -2
- package/lib/core.js +1 -1
- package/lib/index.js +10 -4
- package/lib/{runtime-0u6dOiF9.js → runtime-DmL0It3P.js} +43 -11
- package/lib/{starter-resolution-C3yJawlA.js → starter-resolution-C5nNk-cs.js} +3 -3
- package/lib/starter.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/types/src/client/locales.d.ts +5 -0
- package/lib/types/src/core/contracts/view.d.ts +12 -1
- package/lib/types/src/host/protocol.d.ts +5 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -111,7 +111,7 @@ npx @deepseek-ai/dsh web
|
|
|
111
111
|
4. For Memory Spaces, install the Mnemon CLI for Mnemon Native with `npm install --global @mnemon-dev/mnemon`, or enable another Provider on the Memory Spaces page.
|
|
112
112
|
5. Choose the main strategy and enhancements under **Plugins → dsh-mnemon**.
|
|
113
113
|
|
|
114
|
-
dsh-mnemon supports DSH `0.2.
|
|
114
|
+
dsh-mnemon supports published DSH `0.2.2-rc.1` and retains support for the `0.2.1` RC line and `0.2.0-rc.2`. RC1 requires Node.js >=24.9.0; older Hosts follow their own Node.js requirements. The same package serves the desktop app's Plugins page, `dsh plugin --profile web add dsh-mnemon` on the command line, and Headless with `dsh plugin --profile headless add dsh-mnemon`; older hosts keep the release [compatibility and upgrades](https://github.com/omdsh-dev/dsh-mnemon/blob/main/docs/en/reference/compatibility.md) names for them. [Getting started](https://github.com/omdsh-dev/dsh-mnemon/blob/main/docs/en/guides/getting-started.md) continues from here, and [compatibility and upgrades](https://github.com/omdsh-dev/dsh-mnemon/blob/main/docs/en/reference/compatibility.md) covers existing installations.
|
|
115
115
|
|
|
116
116
|
## How it works
|
|
117
117
|
|
package/README.zh-CN.md
CHANGED
|
@@ -112,7 +112,7 @@ npx @deepseek-ai/dsh web
|
|
|
112
112
|
4. 使用记忆空间时,可用 `npm install --global @mnemon-dev/mnemon` 安装 Mnemon Native 所需的 CLI,或在记忆空间页面启用其他 Provider。
|
|
113
113
|
5. 在**插件 → 可组合记忆**中选择主策略与增强。
|
|
114
114
|
|
|
115
|
-
dsh-mnemon
|
|
115
|
+
dsh-mnemon 支持已发布的 DSH `0.2.2-rc.1`,同时保留对 `0.2.1` RC 系列和 `0.2.0-rc.2` 的支持。RC1 要求 Node.js >=24.9.0;旧版宿主遵循其各自的 Node.js 要求。同一个包也用于桌面版的插件页、命令行 `dsh plugin --profile web add dsh-mnemon`,以及 Headless:`dsh plugin --profile headless add dsh-mnemon`;更早的宿主请继续使用[兼容性与升级](https://github.com/omdsh-dev/dsh-mnemon/blob/main/docs/zh-CN/reference/compatibility.md)为其列出的版本。接下来可以看[入门指南](https://github.com/omdsh-dev/dsh-mnemon/blob/main/docs/zh-CN/guides/getting-started.md),已有安装的升级见[兼容性与升级](https://github.com/omdsh-dev/dsh-mnemon/blob/main/docs/zh-CN/reference/compatibility.md)。
|
|
116
116
|
|
|
117
117
|
## 工作原理
|
|
118
118
|
|
package/lib/bundle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as prepareStarterResolution } from "./starter-resolution-
|
|
1
|
+
import { t as prepareStarterResolution } from "./starter-resolution-C5nNk-cs.js";
|
|
2
2
|
//#region src/bundle.ts
|
|
3
3
|
const groupKey = Symbol.for("cordis.group");
|
|
4
4
|
const init = Symbol.for("cordis.init");
|
package/lib/client.js
CHANGED
|
@@ -2481,6 +2481,10 @@ window.__ModuleLoader__.load({
|
|
|
2481
2481
|
"status.title": "系统状态",
|
|
2482
2482
|
"status.description": "dsh-mnemon、记忆 Provider 与各层存储的运行状态。",
|
|
2483
2483
|
"status.nominal": "系统正常",
|
|
2484
|
+
"status.workflowUnavailable": "后台维护未运行",
|
|
2485
|
+
"status.workflowIdleReview": "空闲审查",
|
|
2486
|
+
"status.workflowRuntimeCapacity": "运行时容量维护",
|
|
2487
|
+
"status.workflowUnsupported": "当前策略不驱动:{workflows}。仅开启审查设置不会启动这些维护任务。可在记忆系统中选择支持相应能力的策略(如分层策略)。手动操作仍可使用。",
|
|
2484
2488
|
"status.reviewFailed": "空闲审查失败",
|
|
2485
2489
|
"status.reviewFailedDetail": "本轮记忆检查未完成,不会自动重放。后续审查受冷却时间和会话次数限制。",
|
|
2486
2490
|
"status.reviewPartial": "已有写入提交;请按下列回执核对,未回滚。",
|
|
@@ -2773,7 +2777,8 @@ window.__ModuleLoader__.load({
|
|
|
2773
2777
|
"details.currentMain": "当前主策略",
|
|
2774
2778
|
"details.useMain": "设为主策略",
|
|
2775
2779
|
"details.back": "返回“{component}”",
|
|
2776
|
-
"
|
|
2780
|
+
"config.strategyWorkflowNote": "空闲审查与运行时容量维护仅在当前策略支持相应能力时运行。General 策略不驱动这两项维护;设置会保留,可在记忆系统切换回分层策略后使用。",
|
|
2781
|
+
"threeTier.offNote": "当前插件未启用。后台任务还需主策略支持相应能力。",
|
|
2777
2782
|
"board.otherEnhancements": "适用于其他主策略的增强({count})",
|
|
2778
2783
|
"board.more": "更多组件可在插件列表中添加",
|
|
2779
2784
|
"board.relationNeeds": "需要“{component}”",
|
|
@@ -3296,6 +3301,10 @@ window.__ModuleLoader__.load({
|
|
|
3296
3301
|
"status.title": "System Status",
|
|
3297
3302
|
"status.description": "How dsh-mnemon, memory Providers and each storage layer are running.",
|
|
3298
3303
|
"status.nominal": "System nominal",
|
|
3304
|
+
"status.workflowUnavailable": "Background maintenance unavailable",
|
|
3305
|
+
"status.workflowIdleReview": "Idle review",
|
|
3306
|
+
"status.workflowRuntimeCapacity": "Runtime capacity maintenance",
|
|
3307
|
+
"status.workflowUnsupported": "The current Strategy does not drive: {workflows}. Enabling review settings alone does not start these tasks. Select a Strategy that supports them, such as the Layered Strategy, in Memory System. Manual actions remain available.",
|
|
3299
3308
|
"status.reviewFailed": "Idle review failed",
|
|
3300
3309
|
"status.reviewFailedDetail": "This checkpoint did not complete and will not be replayed automatically. Later reviews respect the cooldown and session limit.",
|
|
3301
3310
|
"status.reviewPartial": "Some writes committed. Reconcile the receipts below; they were not rolled back.",
|
|
@@ -3588,7 +3597,8 @@ window.__ModuleLoader__.load({
|
|
|
3588
3597
|
"details.currentMain": "Current main strategy",
|
|
3589
3598
|
"details.useMain": "Use as main strategy",
|
|
3590
3599
|
"details.back": "Back to “{component}”",
|
|
3591
|
-
"
|
|
3600
|
+
"config.strategyWorkflowNote": "Idle review and runtime capacity maintenance run only when the current Strategy supports them. The General Strategy drives neither. Settings are retained for use after switching back to the Layered Strategy in Memory System.",
|
|
3601
|
+
"threeTier.offNote": "This plugin is disabled. Background tasks also require a supporting main Strategy.",
|
|
3592
3602
|
"board.otherEnhancements": "Enhancements for other main strategies ({count})",
|
|
3593
3603
|
"board.more": "Add more components from the Plugins list",
|
|
3594
3604
|
"board.relationNeeds": "Needs “{component}”",
|
|
@@ -12777,6 +12787,10 @@ window.__ModuleLoader__.load({
|
|
|
12777
12787
|
})
|
|
12778
12788
|
]
|
|
12779
12789
|
}),
|
|
12790
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
12791
|
+
className: MnemonSettingsCard_module_css_default.panelNote,
|
|
12792
|
+
children: t("config.strategyWorkflowNote")
|
|
12793
|
+
}),
|
|
12780
12794
|
!page.component.enabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
12781
12795
|
className: MnemonSettingsCard_module_css_default.panelNote,
|
|
12782
12796
|
children: t("threeTier.offNote")
|
|
@@ -15118,6 +15132,18 @@ window.__ModuleLoader__.load({
|
|
|
15118
15132
|
})]
|
|
15119
15133
|
});
|
|
15120
15134
|
}
|
|
15135
|
+
function BackgroundWorkflowNotice(props) {
|
|
15136
|
+
const t = useT();
|
|
15137
|
+
if (props.workflows === void 0) return null;
|
|
15138
|
+
const missing = [!props.workflows.idleReview ? t("status.workflowIdleReview") : void 0, !props.workflows.runtimeCapacity ? t("status.workflowRuntimeCapacity") : void 0].filter((label) => label !== void 0);
|
|
15139
|
+
if (missing.length === 0) return null;
|
|
15140
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
15141
|
+
className: MnemonView_module_css_default.alert,
|
|
15142
|
+
role: "status",
|
|
15143
|
+
"aria-label": t("status.workflowUnavailable"),
|
|
15144
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: t("status.workflowUnavailable") }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("status.workflowUnsupported", { workflows: missing.join(" / ") }) })]
|
|
15145
|
+
});
|
|
15146
|
+
}
|
|
15121
15147
|
function SourceDisabledPage(props) {
|
|
15122
15148
|
const t = useT();
|
|
15123
15149
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -15756,6 +15782,7 @@ window.__ModuleLoader__.load({
|
|
|
15756
15782
|
remoteReadOnly,
|
|
15757
15783
|
reviewPaused: focused ? void 0 : status?.lifecycle?.current?.idleReviewBlocked
|
|
15758
15784
|
}),
|
|
15785
|
+
!focused && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BackgroundWorkflowNotice, { workflows: status?.memorySystem?.workflows }),
|
|
15759
15786
|
!focused && status?.lifecycle?.current?.idleReviewWatermark !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
15760
15787
|
className: MnemonView_module_css_default.alert,
|
|
15761
15788
|
role: status.lifecycle.current.idleReviewWatermark.state === "error" ? "alert" : "status",
|
package/lib/core.js
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as truncate, f as canonicalWorkspacePath, m as withMemoryStorageLock, n as memoryStrategyConfigurationValues, p as workspaceStorageId, r as readMemoryStrategyConfiguration, s as receipt } from "./strategy-configuration-CKP2kRss.js";
|
|
2
|
-
import { a as validateMemoryPluginGraph, i as captureMemoryContributionSnapshot, n as isMemoryCompositionUnavailable, o as prepareMemoryContributions, r as MemoryCompositionGeneration, t as provideMemoryRuntime } from "./runtime-
|
|
2
|
+
import { a as validateMemoryPluginGraph, i as captureMemoryContributionSnapshot, n as isMemoryCompositionUnavailable, o as prepareMemoryContributions, r as MemoryCompositionGeneration, t as provideMemoryRuntime } from "./runtime-DmL0It3P.js";
|
|
3
3
|
import { DEFAULT_MEMORY_VIEW_BUDGET, MEMORY_CAPABILITIES } from "./contracts.js";
|
|
4
4
|
import { r as defineMemoryPlugin, t as canonicalMemoryJson } from "./definitions-DU7MLBhu.js";
|
|
5
5
|
import { Context } from "@deepseek-ai/cordis";
|
|
@@ -7100,7 +7100,7 @@ var ComposableMemoryTurnManager = class {
|
|
|
7100
7100
|
const stored = this.requireTurn(turnId);
|
|
7101
7101
|
const operation = this.generations.acquire(stored.lease.id);
|
|
7102
7102
|
try {
|
|
7103
|
-
return await operation.generation.executeAction(stored.context.view, offerId, input, authorize, signal);
|
|
7103
|
+
return await operation.generation.executeAction(stored.context.view, offerId, input, authorize, signal, stored.context);
|
|
7104
7104
|
} finally {
|
|
7105
7105
|
operation.release();
|
|
7106
7106
|
}
|
|
@@ -15030,10 +15030,16 @@ async function catalog(runtime, lifecycle) {
|
|
|
15030
15030
|
}
|
|
15031
15031
|
async function compositionStatus(runtime) {
|
|
15032
15032
|
const composition = runtime.graph.memoryComposition.inspect();
|
|
15033
|
-
const
|
|
15033
|
+
const strategy = runtime.graph.memoryComposition.current()?.strategy.definition.manifest;
|
|
15034
15034
|
return {
|
|
15035
15035
|
serving: composition.servingGenerationId !== void 0,
|
|
15036
|
-
...
|
|
15036
|
+
...strategy === void 0 ? {} : {
|
|
15037
|
+
strategyTypeId: strategy.typeId,
|
|
15038
|
+
workflows: {
|
|
15039
|
+
idleReview: strategy.typeId === mainStrategyTypeId(runtime.graph.config) && strategyDrives(strategy, "idle-review"),
|
|
15040
|
+
runtimeCapacity: strategyDrives(strategy, "runtime-capacity")
|
|
15041
|
+
}
|
|
15042
|
+
},
|
|
15037
15043
|
evaluation: composition.evaluation,
|
|
15038
15044
|
sources: (await catalog(runtime)).sources,
|
|
15039
15045
|
configuration: runtime.graph.config.memoryTopology
|
|
@@ -325,11 +325,29 @@ function normalizeViewSpec(value, strategy, facts, budget) {
|
|
|
325
325
|
]) if (input.reminders[key] !== void 0) guidance.reminders[key] = requiredText(input.reminders[key], "Strategy reminder " + key, 16384);
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
|
+
const diagnostics = value.diagnostics === void 0 ? void 0 : normalizeSpecDiagnostics(value.diagnostics);
|
|
328
329
|
return deepFreeze({
|
|
329
330
|
strategyTypeId: value.strategyTypeId,
|
|
330
331
|
sources: normalizedSources,
|
|
331
332
|
explanation: requiredText(value.explanation, "memory ViewSpec explanation", 4e3),
|
|
332
|
-
...guidance === void 0 ? {} : { guidance }
|
|
333
|
+
...guidance === void 0 ? {} : { guidance },
|
|
334
|
+
...diagnostics === void 0 ? {} : { diagnostics }
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
const MAX_SPEC_DIAGNOSTICS = 32;
|
|
338
|
+
function normalizeSpecDiagnostics(value) {
|
|
339
|
+
if (!Array.isArray(value)) throw new Error("memory ViewSpec diagnostics must be an array");
|
|
340
|
+
if (value.length > MAX_SPEC_DIAGNOSTICS) throw new Error(`memory ViewSpec diagnostics must be at most ${MAX_SPEC_DIAGNOSTICS} entries`);
|
|
341
|
+
return value.map((diagnostic) => {
|
|
342
|
+
const input = jsonClone(diagnostic, "memory ViewSpec diagnostic");
|
|
343
|
+
if (input === null || typeof input !== "object" || Array.isArray(input)) throw new Error("memory ViewSpec diagnostic must be an object");
|
|
344
|
+
const entry = input;
|
|
345
|
+
const contributionInstanceKey = entry.contributionInstanceKey === void 0 ? void 0 : requiredText(entry.contributionInstanceKey, "memory ViewSpec diagnostic contributionInstanceKey", 300);
|
|
346
|
+
return deepFreeze({
|
|
347
|
+
code: id(entry.code, "memory ViewSpec diagnostic code"),
|
|
348
|
+
message: requiredText(entry.message, "memory ViewSpec diagnostic message", 1e3),
|
|
349
|
+
...contributionInstanceKey === void 0 ? {} : { contributionInstanceKey }
|
|
350
|
+
});
|
|
333
351
|
});
|
|
334
352
|
}
|
|
335
353
|
function normalizeContribution(source, spec, facts, value) {
|
|
@@ -483,6 +501,7 @@ var MemoryCompositionGeneration = class {
|
|
|
483
501
|
now;
|
|
484
502
|
routeCalls = /* @__PURE__ */ new WeakMap();
|
|
485
503
|
strategyTurns = /* @__PURE__ */ new WeakMap();
|
|
504
|
+
sourceContexts = /* @__PURE__ */ new WeakMap();
|
|
486
505
|
sourceTimeoutMs;
|
|
487
506
|
disposed = false;
|
|
488
507
|
constructor(snapshotValue, options = {}) {
|
|
@@ -702,6 +721,7 @@ var MemoryCompositionGeneration = class {
|
|
|
702
721
|
mode: modes.size === 1 ? [...modes][0] : "mixed",
|
|
703
722
|
sourceRevisions
|
|
704
723
|
};
|
|
724
|
+
const allDiagnostics = [...diagnostics, ...spec.diagnostics ?? []];
|
|
705
725
|
const body = {
|
|
706
726
|
runtimeGeneration: this.id,
|
|
707
727
|
strategyInstanceKey: this.strategy.instanceKey,
|
|
@@ -719,7 +739,7 @@ var MemoryCompositionGeneration = class {
|
|
|
719
739
|
consistency,
|
|
720
740
|
explanation: spec.explanation,
|
|
721
741
|
...spec.guidance === void 0 ? {} : { guidance: spec.guidance },
|
|
722
|
-
...
|
|
742
|
+
...allDiagnostics.length === 0 ? {} : { diagnostics: allDiagnostics.sort((a, b) => (a.contributionInstanceKey ?? "").localeCompare(b.contributionInstanceKey ?? "") || a.code.localeCompare(b.code)) }
|
|
723
743
|
};
|
|
724
744
|
const viewDigest = digest(body);
|
|
725
745
|
return deepFreeze({
|
|
@@ -873,10 +893,7 @@ var MemoryCompositionGeneration = class {
|
|
|
873
893
|
if (calls >= route.maxCalls) throw new Error(`memory View Route call budget is exhausted: ${route.id}`);
|
|
874
894
|
ledger.set(counter, calls + 1);
|
|
875
895
|
return normalizeEvidence(await source.runtime.query({
|
|
876
|
-
view:
|
|
877
|
-
id: view.id,
|
|
878
|
-
scope: view.scope
|
|
879
|
-
}),
|
|
896
|
+
view: this.sourceView(view, route.sourceInstanceKey, execution),
|
|
880
897
|
route: selectedRoute,
|
|
881
898
|
grant,
|
|
882
899
|
input: jsonClone(selectedInput, "memory Route input"),
|
|
@@ -901,7 +918,24 @@ var MemoryCompositionGeneration = class {
|
|
|
901
918
|
active = false;
|
|
902
919
|
}
|
|
903
920
|
}
|
|
904
|
-
|
|
921
|
+
sourceView(view, sourceInstanceKey, execution) {
|
|
922
|
+
let contexts = this.sourceContexts.get(execution);
|
|
923
|
+
if (contexts === void 0) {
|
|
924
|
+
contexts = /* @__PURE__ */ new Map();
|
|
925
|
+
this.sourceContexts.set(execution, contexts);
|
|
926
|
+
}
|
|
927
|
+
const key = `${view.id}\u0000${sourceInstanceKey}`;
|
|
928
|
+
let context = contexts.get(key);
|
|
929
|
+
if (context === void 0) {
|
|
930
|
+
context = deepFreeze({
|
|
931
|
+
id: view.id,
|
|
932
|
+
scope: view.scope
|
|
933
|
+
});
|
|
934
|
+
contexts.set(key, context);
|
|
935
|
+
}
|
|
936
|
+
return context;
|
|
937
|
+
}
|
|
938
|
+
async executeAction(view, offerId, input, authorize, signal, execution = view) {
|
|
905
939
|
this.assertOpen();
|
|
906
940
|
if (view.runtimeGeneration !== this.id) throw new Error("memory View belongs to a different runtime generation");
|
|
907
941
|
const offer = view.actionOffers.find((candidate) => candidate.id === offerId);
|
|
@@ -913,10 +947,7 @@ var MemoryCompositionGeneration = class {
|
|
|
913
947
|
signal?.throwIfAborted();
|
|
914
948
|
const grant = view.readGrants.find((candidate) => candidate.sourceInstanceKey === offer.sourceInstanceKey);
|
|
915
949
|
const receipt = await source.runtime.mutate({
|
|
916
|
-
view:
|
|
917
|
-
id: view.id,
|
|
918
|
-
scope: view.scope
|
|
919
|
-
}),
|
|
950
|
+
view: this.sourceView(view, offer.sourceInstanceKey, execution),
|
|
920
951
|
offer,
|
|
921
952
|
...grant === void 0 ? {} : { grant },
|
|
922
953
|
input: jsonClone(input, "memory Action input"),
|
|
@@ -951,6 +982,7 @@ var MemoryCompositionGeneration = class {
|
|
|
951
982
|
this.disposed = true;
|
|
952
983
|
this.routeCalls = /* @__PURE__ */ new WeakMap();
|
|
953
984
|
this.strategyTurns = /* @__PURE__ */ new WeakMap();
|
|
985
|
+
this.sourceContexts = /* @__PURE__ */ new WeakMap();
|
|
954
986
|
const failures = [];
|
|
955
987
|
for (const source of [...this.sources.values()].reverse()) try {
|
|
956
988
|
await source.runtime.dispose?.();
|
|
@@ -14,12 +14,12 @@ var dependencies = {
|
|
|
14
14
|
"dsh-mnemon-provider-openviking": "0.5.10",
|
|
15
15
|
"dsh-mnemon-provider-retaindb": "0.5.6",
|
|
16
16
|
"dsh-mnemon-provider-supermemory": "0.5.5",
|
|
17
|
-
"dsh-mnemon-source-documents": "0.5.
|
|
17
|
+
"dsh-mnemon-source-documents": "0.5.13",
|
|
18
18
|
"dsh-mnemon-source-memory-spaces": "0.5.25",
|
|
19
19
|
"dsh-mnemon-source-runtime": "0.5.17",
|
|
20
|
-
"dsh-mnemon-source-skills": "0.5.
|
|
20
|
+
"dsh-mnemon-source-skills": "0.5.7",
|
|
21
21
|
"dsh-mnemon-strategy-auto-capture": "0.5.5",
|
|
22
|
-
"dsh-mnemon-strategy-default-three-tier": "0.5.
|
|
22
|
+
"dsh-mnemon-strategy-default-three-tier": "0.5.12",
|
|
23
23
|
"dsh-mnemon-strategy-general": "0.5.1",
|
|
24
24
|
"dsh-mnemon-strategy-light-context": "0.5.6",
|
|
25
25
|
"dsh-mnemon-strategy-scoped": "0.5.5",
|
package/lib/starter.js
CHANGED
package/lib/testing.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as provideMemoryRuntime } from "./runtime-
|
|
1
|
+
import { t as provideMemoryRuntime } from "./runtime-DmL0It3P.js";
|
|
2
2
|
import { DEFAULT_MEMORY_VIEW_BUDGET } from "./contracts.js";
|
|
3
3
|
import { c as jsonClone } from "./definitions-DU7MLBhu.js";
|
|
4
4
|
import { Context } from "@deepseek-ai/cordis";
|
|
@@ -129,6 +129,10 @@ export declare const zh: {
|
|
|
129
129
|
'status.title': string;
|
|
130
130
|
'status.description': string;
|
|
131
131
|
'status.nominal': string;
|
|
132
|
+
'status.workflowUnavailable': string;
|
|
133
|
+
'status.workflowIdleReview': string;
|
|
134
|
+
'status.workflowRuntimeCapacity': string;
|
|
135
|
+
'status.workflowUnsupported': string;
|
|
132
136
|
'status.reviewFailed': string;
|
|
133
137
|
'status.reviewFailedDetail': string;
|
|
134
138
|
'status.reviewPartial': string;
|
|
@@ -421,6 +425,7 @@ export declare const zh: {
|
|
|
421
425
|
'details.currentMain': string;
|
|
422
426
|
'details.useMain': string;
|
|
423
427
|
'details.back': string;
|
|
428
|
+
'config.strategyWorkflowNote': string;
|
|
424
429
|
'threeTier.offNote': string;
|
|
425
430
|
'board.otherEnhancements': string;
|
|
426
431
|
'board.more': string;
|
|
@@ -230,6 +230,12 @@ export interface MemoryViewSpec {
|
|
|
230
230
|
explanation: string;
|
|
231
231
|
/** Trusted Strategy instructions, separate from quoted Source data. */
|
|
232
232
|
guidance?: MemoryViewGuidance;
|
|
233
|
+
/**
|
|
234
|
+
* Why this composition deliberately left an installed Source out (#504).
|
|
235
|
+
* The Host validates each entry and merges it into `view.diagnostics`; a
|
|
236
|
+
* diagnostic explains an absence, never grants a Source projection or routes.
|
|
237
|
+
*/
|
|
238
|
+
diagnostics?: MemoryCompositionDiagnostic[];
|
|
233
239
|
}
|
|
234
240
|
export interface MemoryViewGuidance {
|
|
235
241
|
system?: string;
|
|
@@ -388,7 +394,12 @@ export interface MemorySourceRuntimeContext {
|
|
|
388
394
|
/** Immutable, JSON-only Host/scope defaults; never business objects or clients. */
|
|
389
395
|
configuration?: Readonly<Record<string, MemoryJsonValue>>;
|
|
390
396
|
}
|
|
391
|
-
/**
|
|
397
|
+
/**
|
|
398
|
+
* Operation identity only; never the complete View or another Source's data.
|
|
399
|
+
* The object is stable for this Source within one execution, and can key weak
|
|
400
|
+
* execution-local state. Independent executions never share it, even when they
|
|
401
|
+
* pin the exact same immutable View. Requires dsh-mnemon 0.5.40 or later.
|
|
402
|
+
*/
|
|
392
403
|
export interface MemorySourceViewContext {
|
|
393
404
|
id: string;
|
|
394
405
|
scope: MemoryOperationScope;
|
|
@@ -16,6 +16,11 @@ export interface MemoryCompositionStatus {
|
|
|
16
16
|
serving: boolean;
|
|
17
17
|
/** The main Strategy composing the serving composition, which a fallback can make differ from the selected one. */
|
|
18
18
|
strategyTypeId?: string;
|
|
19
|
+
/** Strategy support only; session policy and review settings can still prevent a run. */
|
|
20
|
+
workflows?: {
|
|
21
|
+
idleReview: boolean;
|
|
22
|
+
runtimeCapacity: boolean;
|
|
23
|
+
};
|
|
19
24
|
evaluation: import('../core/contracts/index.ts').MemoryCompositionEvaluationReport;
|
|
20
25
|
sources: MemorySourceManagementInstance[];
|
|
21
26
|
configuration: ResolvedMemoryTopologyConfig;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-mnemon",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.40",
|
|
4
4
|
"description": "Composable, view-based context for DeepSeek Harness. Pluggable sources and strategies, with layered memory and self-evolving skills out of the box.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
@@ -164,12 +164,12 @@
|
|
|
164
164
|
"dsh-mnemon-provider-openviking": "0.5.10",
|
|
165
165
|
"dsh-mnemon-provider-retaindb": "0.5.6",
|
|
166
166
|
"dsh-mnemon-provider-supermemory": "0.5.5",
|
|
167
|
-
"dsh-mnemon-source-documents": "0.5.
|
|
167
|
+
"dsh-mnemon-source-documents": "0.5.13",
|
|
168
168
|
"dsh-mnemon-source-memory-spaces": "0.5.25",
|
|
169
169
|
"dsh-mnemon-source-runtime": "0.5.17",
|
|
170
|
-
"dsh-mnemon-source-skills": "0.5.
|
|
170
|
+
"dsh-mnemon-source-skills": "0.5.7",
|
|
171
171
|
"dsh-mnemon-strategy-auto-capture": "0.5.5",
|
|
172
|
-
"dsh-mnemon-strategy-default-three-tier": "0.5.
|
|
172
|
+
"dsh-mnemon-strategy-default-three-tier": "0.5.12",
|
|
173
173
|
"dsh-mnemon-strategy-general": "0.5.1",
|
|
174
174
|
"dsh-mnemon-strategy-light-context": "0.5.6",
|
|
175
175
|
"dsh-mnemon-strategy-scoped": "0.5.5",
|