@avantf/dsh-mem 0.3.0 → 0.4.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/README.md +89 -28
- package/cordis.patch.yml +17 -0
- package/lib/client.js +155 -14
- package/lib/dsh-build.json +5 -5
- package/lib/engine/mem/config/config_files.d.ts +26 -0
- package/lib/engine/mem/config/domains.d.ts +20 -0
- package/lib/engine/mem/config/loader.d.ts +35 -0
- package/lib/engine/mem/config/paths.d.ts +53 -0
- package/lib/engine/mem/db/chunk.d.ts +26 -0
- package/lib/engine/mem/db/conn.d.ts +13 -0
- package/lib/engine/mem/db/dao/chunks.d.ts +150 -0
- package/lib/engine/mem/db/dao/contradictions.d.ts +98 -0
- package/lib/engine/mem/db/dao/documents.d.ts +51 -0
- package/lib/engine/mem/db/dao/entities.d.ts +67 -0
- package/lib/engine/mem/db/dao/facts.d.ts +472 -0
- package/lib/engine/mem/db/dao/stats.d.ts +14 -0
- package/lib/engine/mem/db/dao/triples.d.ts +80 -0
- package/lib/engine/mem/db/hash.d.ts +2 -0
- package/lib/engine/mem/db/knowledge.d.ts +17 -0
- package/lib/engine/mem/db/migrations.d.ts +71 -0
- package/lib/engine/mem/db/port.d.ts +57 -0
- package/lib/engine/mem/db/schema.d.ts +26 -0
- package/lib/engine/mem/db/sqlite.d.ts +89 -0
- package/lib/engine/mem/db/store.d.ts +35 -0
- package/lib/engine/mem/db/tokenizer.d.ts +61 -0
- package/lib/engine/mem/db/vectors.d.ts +50 -0
- package/lib/engine/mem/dispatch.d.ts +51 -0
- package/lib/engine/mem/entities/extract.d.ts +84 -0
- package/lib/engine/mem/eval/loader.d.ts +19 -0
- package/lib/engine/mem/eval/metrics.d.ts +25 -0
- package/lib/engine/mem/eval/runner.d.ts +10 -0
- package/lib/engine/mem/eval/write_metrics.d.ts +88 -0
- package/lib/engine/mem/git.d.ts +73 -0
- package/lib/engine/mem/hrr/algebra.d.ts +30 -0
- package/lib/engine/mem/hrr/atoms.d.ts +22 -0
- package/lib/engine/mem/hrr/encode.d.ts +32 -0
- package/lib/engine/mem/hrr/index.d.ts +3 -0
- package/lib/engine/mem/index.d.ts +27 -0
- package/lib/engine/mem/lifecycle/contradiction.d.ts +156 -0
- package/lib/engine/mem/lifecycle/index.d.ts +5 -0
- package/lib/engine/mem/lifecycle/maintenance.d.ts +48 -0
- package/lib/engine/mem/lifecycle/presence.d.ts +29 -0
- package/lib/engine/mem/lifecycle/tick.d.ts +43 -0
- package/lib/engine/mem/lifecycle/trust.d.ts +90 -0
- package/lib/engine/mem/modelBootstrap.d.ts +207 -0
- package/lib/engine/mem/router.d.ts +51 -0
- package/lib/engine/mem/runtime.d.ts +232 -0
- package/lib/engine/mem/store/common.d.ts +82 -0
- package/lib/engine/mem/store/doc_files.d.ts +125 -0
- package/lib/engine/mem/store/document_text.d.ts +47 -0
- package/lib/engine/mem/store/floors.d.ts +191 -0
- package/lib/engine/mem/store/hybrid.d.ts +232 -0
- package/lib/engine/mem/store/ingest_guard.d.ts +25 -0
- package/lib/engine/mem/store/knowledge.d.ts +483 -0
- package/lib/engine/mem/store/lexical.d.ts +67 -0
- package/lib/engine/mem/store/memory.d.ts +543 -0
- package/lib/engine/mem/store/source_picker.d.ts +43 -0
- package/lib/engine/mem-contract/config.d.ts +129 -0
- package/lib/engine/mem-contract/env.d.ts +31 -0
- package/lib/engine/mem-contract/family.d.ts +25 -0
- package/lib/engine/mem-contract/index.d.ts +8 -0
- package/lib/engine/mem-contract/log.d.ts +29 -0
- package/lib/engine/mem-contract/remote.d.ts +80 -0
- package/lib/engine/mem-contract/text.d.ts +92 -0
- package/lib/engine/mem-contract/tools.d.ts +284 -0
- package/lib/engine/mem-contract/types.d.ts +615 -0
- package/lib/engine/mem-retrieval/adapters/auto_vstore.d.ts +47 -0
- package/lib/engine/mem-retrieval/adapters/hnswlib.d.ts +174 -0
- package/lib/engine/mem-retrieval/adapters/local_bge.d.ts +121 -0
- package/lib/engine/mem-retrieval/adapters/local_numpy.d.ts +28 -0
- package/lib/engine/mem-retrieval/adapters/local_reranker.d.ts +52 -0
- package/lib/engine/mem-retrieval/adapters/none_reranker.d.ts +10 -0
- package/lib/engine/mem-retrieval/adapters/warm_gate.d.ts +46 -0
- package/lib/engine/mem-retrieval/budget.d.ts +30 -0
- package/lib/engine/mem-retrieval/fusion.d.ts +53 -0
- package/lib/engine/mem-retrieval/index.d.ts +14 -0
- package/lib/engine/mem-retrieval/interfaces.d.ts +82 -0
- package/lib/engine/mem-retrieval/log.d.ts +11 -0
- package/lib/engine/mem-retrieval/registry.d.ts +23 -0
- package/lib/engine/mem-retrieval/rerank.d.ts +13 -0
- package/lib/engine/mem-retrieval/stats.d.ts +64 -0
- package/lib/engine/mem-retrieval/text_budget.d.ts +52 -0
- package/lib/index.js +1773 -473
- package/lib/interface-version.json +2 -2
- package/lib/types/client/domains.d.ts +5 -4
- package/lib/types/client/domains.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/ingest.d.ts +1 -1
- package/lib/types/client/wire.d.ts +36 -0
- package/lib/types/client/wire.d.ts.map +1 -0
- package/lib/types/envinit-bootstrap.d.ts +3 -2
- package/lib/types/envinit.d.ts +2 -19
- package/lib/types/envinit.d.ts.map +1 -1
- package/lib/types/hints.d.ts +1 -1
- package/lib/types/index.d.ts +8 -3
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/open.d.ts +61 -11
- package/lib/types/open.d.ts.map +1 -1
- package/lib/types/prompt.d.ts +19 -1
- package/lib/types/prompt.d.ts.map +1 -1
- package/lib/types/provision.d.ts +1 -1
- package/lib/types/provision.d.ts.map +1 -1
- package/lib/types/reconcile.d.ts +64 -0
- package/lib/types/reconcile.d.ts.map +1 -0
- package/lib/types/remote.d.ts +53 -0
- package/lib/types/remote.d.ts.map +1 -1
- package/lib/types/render.d.ts +35 -0
- package/lib/types/render.d.ts.map +1 -0
- package/lib/types/tool_schema.d.ts +3 -13
- package/lib/types/tool_schema.d.ts.map +1 -1
- package/package.json +27 -18
- package/lib/client.js.map +0 -1
- package/lib/types/client/domains.js +0 -25
- package/lib/types/client/domains.js.map +0 -1
- package/lib/types/client/index.js +0 -1371
- package/lib/types/client/index.js.map +0 -1
- package/lib/types/client/ingest.js +0 -30
- package/lib/types/client/ingest.js.map +0 -1
- package/lib/types/client/paging.js +0 -36
- package/lib/types/client/paging.js.map +0 -1
- package/lib/types/client/summarize.js +0 -79
- package/lib/types/client/summarize.js.map +0 -1
- package/lib/types/data_home.js +0 -26
- package/lib/types/data_home.js.map +0 -1
- package/lib/types/envinit-bootstrap.js +0 -333
- package/lib/types/envinit.js +0 -402
- package/lib/types/envinit.js.map +0 -1
- package/lib/types/hints.js +0 -53
- package/lib/types/hints.js.map +0 -1
- package/lib/types/index.js +0 -755
- package/lib/types/index.js.map +0 -1
- package/lib/types/inject.js +0 -14
- package/lib/types/inject.js.map +0 -1
- package/lib/types/interface_gate.js +0 -84
- package/lib/types/interface_gate.js.map +0 -1
- package/lib/types/open.js +0 -133
- package/lib/types/open.js.map +0 -1
- package/lib/types/prompt.js +0 -148
- package/lib/types/prompt.js.map +0 -1
- package/lib/types/provision.js +0 -177
- package/lib/types/provision.js.map +0 -1
- package/lib/types/remote.js +0 -247
- package/lib/types/remote.js.map +0 -1
- package/lib/types/tool_schema.js +0 -149
- package/lib/types/tool_schema.js.map +0 -1
package/lib/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types/inject.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The services this plugin injects.
|
|
3
|
-
*
|
|
4
|
-
* Kept out of `index.ts` so the compatibility spec's coverage of this list is unit-testable without
|
|
5
|
-
* dragging the whole plugin entry (and its host peers) into the test process — see
|
|
6
|
-
* `test/provision.spec.ts`, which asserts that every service cordis WAITS for has a contract in
|
|
7
|
-
* `SERVICE_CONTRACTS`.
|
|
8
|
-
*
|
|
9
|
-
* `systemPrompt` is here because the plugin contributes three usage sections and two conditional
|
|
10
|
-
* hints (see `prompt.ts`). Each service gates `apply`: without `tools`/`typert` there is nothing to
|
|
11
|
-
* register, and without the prompt registry the guidance has nowhere to land.
|
|
12
|
-
*/
|
|
13
|
-
export const inject = ['tools', 'typert', 'systemPrompt'];
|
|
14
|
-
//# sourceMappingURL=inject.js.map
|
package/lib/types/inject.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/inject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/** Read one member without letting a hostile module's getter escape. */
|
|
2
|
-
function member(module, name) {
|
|
3
|
-
try {
|
|
4
|
-
return module?.[name];
|
|
5
|
-
}
|
|
6
|
-
catch {
|
|
7
|
-
return undefined;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
function cannotTell(reason) {
|
|
11
|
-
return { status: 'cannot-tell', reason };
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Whether the base's shared capabilities may be used under `verdict`.
|
|
15
|
-
*
|
|
16
|
-
* The ONE mapping from the gate's verdict to the loader's decision, exported so it is asserted
|
|
17
|
-
* directly and the loader and its test cannot drift: only `incompatible` withholds the base;
|
|
18
|
-
* `cannot-tell` does not, because it is not a negative answer. A `false` here is still a DEGRADATION
|
|
19
|
-
* (own prompt defaults, gate skipped, legacy provisioning), never a refused mount.
|
|
20
|
-
*/
|
|
21
|
-
export function baseIsUsable(verdict) {
|
|
22
|
-
return verdict.status !== 'incompatible';
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Where the build's bake record sits when no explicit URL is given: beside the built ENTRY
|
|
26
|
-
* (`lib/index.js`), which is where `scripts/link-envinit.mjs` writes it. A per-file `tsc` emit of
|
|
27
|
-
* this module lives one directory below that entry and looks one level up; the first readable record
|
|
28
|
-
* wins. Under `vitest` (running from `src/`) neither exists, which is the correct "not baked".
|
|
29
|
-
*/
|
|
30
|
-
const BAKED_CANDIDATES = ['./interface-version.json', '../interface-version.json'];
|
|
31
|
-
/**
|
|
32
|
-
* Read this artifact's baked requirement through the loaded base's own reader.
|
|
33
|
-
* @param read - the base's `readInterfaceRequirement`, taken off the loaded module.
|
|
34
|
-
* @param bakedUrl - test seam: read EXACTLY this record instead of walking {@link BAKED_CANDIDATES}.
|
|
35
|
-
*/
|
|
36
|
-
function requirementOf(read, bakedUrl) {
|
|
37
|
-
const candidates = bakedUrl === undefined ? BAKED_CANDIDATES.map((relative) => new URL(relative, import.meta.url)) : [bakedUrl];
|
|
38
|
-
for (const url of candidates) {
|
|
39
|
-
let requirement;
|
|
40
|
-
try {
|
|
41
|
-
requirement = read(url);
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
const version = requirement?.interfaceVersion;
|
|
47
|
-
if (typeof version === 'number' && Number.isInteger(version) && version > 0)
|
|
48
|
-
return { interfaceVersion: version };
|
|
49
|
-
}
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Ask the loaded base whether it implements the interface generation this artifact was built for.
|
|
54
|
-
*
|
|
55
|
-
* @param module - the loaded base module (only `checkInterface` / `readInterfaceRequirement` are
|
|
56
|
-
* touched, each through a guarded read).
|
|
57
|
-
* @param bakedUrl - test seam: the bake record to read; production leaves it undefined.
|
|
58
|
-
* @returns a verdict that is never `incompatible` unless BOTH sides were readable and differ, and
|
|
59
|
-
* never a throw.
|
|
60
|
-
*/
|
|
61
|
-
export function interfaceVerdict(module, bakedUrl) {
|
|
62
|
-
const check = member(module, 'checkInterface');
|
|
63
|
-
const read = member(module, 'readInterfaceRequirement');
|
|
64
|
-
if (typeof check !== 'function' || typeof read !== 'function') {
|
|
65
|
-
return cannotTell('the loaded base has no interface gate (checkInterface / readInterfaceRequirement missing) — it predates the runtime interface contract, so which generation it implements cannot be told');
|
|
66
|
-
}
|
|
67
|
-
const requirement = requirementOf(read, bakedUrl);
|
|
68
|
-
if (requirement === undefined) {
|
|
69
|
-
return cannotTell('this build has no baked interface requirement (lib/interface-version.json is missing or malformed), so the runtime interface gate cannot run');
|
|
70
|
-
}
|
|
71
|
-
let verdict;
|
|
72
|
-
try {
|
|
73
|
-
verdict = check(requirement.interfaceVersion, module);
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
return cannotTell('the loaded base threw while judging the interface generation');
|
|
77
|
-
}
|
|
78
|
-
const status = verdict?.status;
|
|
79
|
-
if (status !== 'ok' && status !== 'incompatible' && status !== 'cannot-tell') {
|
|
80
|
-
return cannotTell('the loaded base returned no usable interface verdict');
|
|
81
|
-
}
|
|
82
|
-
return verdict;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=interface_gate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interface_gate.js","sourceRoot":"","sources":["../../src/interface_gate.ts"],"names":[],"mappings":"AAoCA,wEAAwE;AACxE,SAAS,MAAM,CAAC,MAAe,EAAE,IAA+B;IAC9D,IAAI,CAAC;QACH,OAAQ,MAAyC,EAAE,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,OAAyB;IACpD,OAAO,OAAO,CAAC,MAAM,KAAK,cAAc,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAsB,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,CAAA;AAErG;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAU,EAAE,QAAuB;IACxD,MAAM,UAAU,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC/H,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,WAAoB,CAAA;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAI,WAA0E,EAAE,gBAAgB,CAAA;QAC7G,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAA;IACnH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,QAAuB;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAA;IACvD,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9D,OAAO,UAAU,CACf,0LAA0L,CAC3L,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAY,EAAE,QAAQ,CAAC,CAAA;IACzD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,8IAA8I,CAAC,CAAA;IACnK,CAAC;IACD,IAAI,OAAgB,CAAA;IACpB,IAAI,CAAC;QACH,OAAO,GAAI,KAAe,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAA6B,CAAC,CAAA;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC,8DAA8D,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,MAAM,GAAI,OAA4D,EAAE,MAAM,CAAA;IACpF,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,cAAc,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7E,OAAO,UAAU,CAAC,sDAAsD,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,OAA2B,CAAA;AACpC,CAAC"}
|
package/lib/types/open.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Opening a managed document file (or its directory) with the user's own tools.
|
|
3
|
-
*
|
|
4
|
-
* The harness already ships `@deepseek-ai/dsh-host-open-in-app`, whose `/open-in-app/open` route
|
|
5
|
-
* launches a detected application — but that route accepts a DIRECTORY only (a file path is
|
|
6
|
-
* rejected with 404), and 「编辑」 has to open the file itself. So this module owns the launch,
|
|
7
|
-
* with a deliberately small surface:
|
|
8
|
-
*
|
|
9
|
-
* 1. `knowledge.open.editor` (or `$AVANTF_EDITOR`) wins when set.
|
|
10
|
-
* 2. then `$VISUAL` / `$EDITOR` — the answers an interactive shell already carries;
|
|
11
|
-
* 3. then `code` / `cursor` — an editor that can open a file AND a folder;
|
|
12
|
-
* 4. then the platform opener (`xdg-open`, `open`, and on WSL `explorer.exe` via `wslpath`).
|
|
13
|
-
*
|
|
14
|
-
* Everything is fire-and-forget: the child is detached with its stdio on /dev/null, so an editor
|
|
15
|
-
* that outlives the host (or a browser window that closes immediately) is normal. The returned
|
|
16
|
-
* `opener` is what the UI shows, so a wrong editor is diagnosable without reading the host log.
|
|
17
|
-
*
|
|
18
|
-
* @module open
|
|
19
|
-
*/
|
|
20
|
-
import { accessSync, constants } from 'node:fs';
|
|
21
|
-
import { spawn, spawnSync } from 'node:child_process';
|
|
22
|
-
import { delimiter, join, dirname } from 'node:path';
|
|
23
|
-
/**
|
|
24
|
-
* The file names one command can have on PATH.
|
|
25
|
-
*
|
|
26
|
-
* On Windows a shim is `code.cmd` (or `.exe`/`.bat`), never the bare `code`, so probing only the
|
|
27
|
-
* bare name silently loses the editor and falls back to the OS default application. `PATHEXT` is
|
|
28
|
-
* what the shell itself uses; the default list is the fallback when it is not exported.
|
|
29
|
-
*/
|
|
30
|
-
export function commandFileNames(command, platform = process.platform) {
|
|
31
|
-
if (platform !== 'win32')
|
|
32
|
-
return [command];
|
|
33
|
-
const exts = (process.env['PATHEXT'] ?? '.COM;.EXE;.BAT;.CMD').split(';').filter(ext => ext !== '');
|
|
34
|
-
return [command, ...exts.map(ext => `${command}${ext.toLowerCase()}`), ...exts.map(ext => `${command}${ext}`)];
|
|
35
|
-
}
|
|
36
|
-
/** True when `command` is an executable on PATH (any of its platform file names). */
|
|
37
|
-
function onPath(command) {
|
|
38
|
-
const path = process.env['PATH'];
|
|
39
|
-
if (path === undefined || path === '')
|
|
40
|
-
return false;
|
|
41
|
-
for (const dir of path.split(delimiter)) {
|
|
42
|
-
if (dir === '')
|
|
43
|
-
continue;
|
|
44
|
-
for (const name of commandFileNames(command)) {
|
|
45
|
-
try {
|
|
46
|
-
accessSync(join(dir, name), constants.X_OK);
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// Not here; keep looking.
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
/** Is this a WSL process (where a Windows-side opener is often the only one that works)? */
|
|
57
|
-
function isWsl() {
|
|
58
|
-
return process.platform === 'linux' && (process.env['WSL_DISTRO_NAME'] !== undefined || process.env['WSL_INTEROP'] !== undefined);
|
|
59
|
-
}
|
|
60
|
-
/** The Windows form of a WSL path, or `undefined` when `wslpath` cannot answer. */
|
|
61
|
-
function windowsPath(path) {
|
|
62
|
-
try {
|
|
63
|
-
const out = spawnSync('wslpath', ['-w', path], { encoding: 'utf8' });
|
|
64
|
-
const converted = out.status === 0 ? out.stdout.trim() : '';
|
|
65
|
-
return converted === '' ? undefined : converted;
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/** Candidates in the order above, resolved against this machine. */
|
|
72
|
-
function candidates(configured) {
|
|
73
|
-
const list = [];
|
|
74
|
-
const explicit = configured !== '' ? configured : (process.env['AVANTF_EDITOR'] ?? '');
|
|
75
|
-
if (explicit !== '')
|
|
76
|
-
list.push({ command: explicit, arg: path => path });
|
|
77
|
-
const shellEditor = process.env['VISUAL'] ?? process.env['EDITOR'] ?? '';
|
|
78
|
-
if (shellEditor !== '')
|
|
79
|
-
list.push({ command: shellEditor, arg: path => path });
|
|
80
|
-
for (const editor of ['code', 'cursor']) {
|
|
81
|
-
if (onPath(editor))
|
|
82
|
-
list.push({ command: editor, arg: path => path });
|
|
83
|
-
}
|
|
84
|
-
if (process.platform === 'darwin')
|
|
85
|
-
list.push({ command: 'open', arg: path => path });
|
|
86
|
-
if (process.platform === 'linux') {
|
|
87
|
-
if (onPath('xdg-open'))
|
|
88
|
-
list.push({ command: 'xdg-open', arg: path => path });
|
|
89
|
-
// Last resort on WSL: Explorer opens a folder natively and hands a file to its default
|
|
90
|
-
// application. It needs a Windows path, which `wslpath` is the only reliable source of.
|
|
91
|
-
if (isWsl())
|
|
92
|
-
list.push({ command: 'explorer.exe', arg: path => windowsPath(path) });
|
|
93
|
-
}
|
|
94
|
-
if (process.platform === 'win32')
|
|
95
|
-
list.push({ command: 'cmd', arg: path => path });
|
|
96
|
-
return list;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Launch the configured/detected tool on one document path.
|
|
100
|
-
*
|
|
101
|
-
* @param documentPath - the managed `.md` path.
|
|
102
|
-
* @param target - `file` opens the document, `dir` opens the directory that holds it.
|
|
103
|
-
* @param configured - `knowledge.open.editor` from config (empty ⇒ auto-detect).
|
|
104
|
-
* @throws when no candidate is available or every one of them fails to start.
|
|
105
|
-
*/
|
|
106
|
-
export function openDocumentPath(documentPath, target, configured) {
|
|
107
|
-
const wanted = target === 'dir' ? dirname(documentPath) : documentPath;
|
|
108
|
-
const tried = [];
|
|
109
|
-
for (const candidate of candidates(configured)) {
|
|
110
|
-
const arg = candidate.arg(wanted);
|
|
111
|
-
if (arg === undefined)
|
|
112
|
-
continue;
|
|
113
|
-
tried.push(candidate.command);
|
|
114
|
-
try {
|
|
115
|
-
const child = candidate.command === 'cmd'
|
|
116
|
-
// `start` needs its own title argument before the path, or a quoted path becomes the title.
|
|
117
|
-
? spawn('cmd', ['/c', 'start', '', `"${arg}"`], { detached: true, stdio: 'ignore' }) // quoted: an
|
|
118
|
-
// unquoted path with `&`/`^` would be parsed as a second command by cmd
|
|
119
|
-
: spawn(candidate.command, [arg], { detached: true, stdio: 'ignore' });
|
|
120
|
-
child.unref();
|
|
121
|
-
// Spawn reports a missing binary asynchronously; a synchronous throw covers a bad
|
|
122
|
-
// configuration (e.g. a path that is not executable), which is the case worth reporting.
|
|
123
|
-
return { path: wanted, target, opener: candidate.command };
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
// Try the next candidate.
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
throw new Error(tried.length === 0
|
|
130
|
-
? '没有可用的编辑器:设置 knowledge.open.editor(或 $EDITOR / $AVANTF_EDITOR),或安装 code / xdg-open'
|
|
131
|
-
: `无法启动编辑器(试过:${tried.join('、')})`);
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=open.js.map
|
package/lib/types/open.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/open.ts"],"names":[],"mappings":"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"}
|
package/lib/types/prompt.js
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { RETENTION_VOCABULARY } from '@avantf/mem-contract';
|
|
2
|
-
/**
|
|
3
|
-
* The three system-prompt sections this plugin contributes (DESIGN §10).
|
|
4
|
-
*
|
|
5
|
-
* The TEXTS are user-editable: each section's body lives in its own `.md` under the shared family
|
|
6
|
-
* prompt directory `<data_home>/prompts` (`PROMPT_FILES` maps file → section), and the constants
|
|
7
|
-
* below are both the built-in default and what a missing/blank file is filled with. The identity —
|
|
8
|
-
* section name and order — stays in code, so editing a file cannot silently move a section in the
|
|
9
|
-
* prompt. The loader itself is generic and lives in the family base (`PromptFiles`, exported by
|
|
10
|
-
* `@avantf/dsh-plugin-base`), because "ensure the file exists, otherwise use the default" is the same
|
|
11
|
-
* flow for every section — and taking it from the base at RUNTIME means fixing it takes one base
|
|
12
|
-
* release, not a plugin rebuild. When the base is unavailable the built-in defaults below are used
|
|
13
|
-
* and nothing is written to disk.
|
|
14
|
-
*
|
|
15
|
-
* They exist for something a tool description cannot carry: a description says what a call DOES,
|
|
16
|
-
* never when to reach for it unprompted, and the default behaviour is to wait until asked. So each
|
|
17
|
-
* says only WHEN its store is worth writing or reading. Neither says anything about how memory is
|
|
18
|
-
* retained — that stays out of every model-facing string, held to the contract's
|
|
19
|
-
* `RETENTION_VOCABULARY`, the same list the tool descriptions are held to.
|
|
20
|
-
*
|
|
21
|
-
* The knowledge one is the section whose ABSENCE was measured: a user had just ingested
|
|
22
|
-
* 《Cgroup v2 技术综述》(which answers "cgroup v2 的内存保护" at score 1.0) and asked about it in a
|
|
23
|
-
* session whose prompt named only the memory tools, so the model never looked. A tool description
|
|
24
|
-
* cannot fix that by itself — `kb_query`'s says what the call does and even leads with 记忆 facts,
|
|
25
|
-
* which reads as a memory tool — and the model cannot know the library is relevant to a question
|
|
26
|
-
* without being told to check it. Hence the "先检索一次再作答" nudge, plus the explicit
|
|
27
|
-
* "你看不到库里有什么" clause: the thing that made the miss invisible is that nothing in the
|
|
28
|
-
* prompt acknowledged the store existed at all.
|
|
29
|
-
*
|
|
30
|
-
* `order` 3000/3010 are third-party slots: after the harness's per-tool guidance block (1000–2900)
|
|
31
|
-
* and before its toolset-level guidance (5000). They are not repository-owned placements, so they
|
|
32
|
-
* do not resolve through `getSectionOrder`.
|
|
33
|
-
*
|
|
34
|
-
* The sections say WHAT TO DO and never WHY. The reasoning behind each rule is measured and
|
|
35
|
-
* lives here, in DESIGN §10 and in the CHANGELOG — not in the prompt, where it costs tokens on
|
|
36
|
-
* every step and does not change the action.
|
|
37
|
-
*
|
|
38
|
-
* Kept in its own module — not in `index.ts` — so the text can be read and checked without the
|
|
39
|
-
* plugin entry's `@deepseek-ai/*` runtime imports, which resolve only in a harness workspace.
|
|
40
|
-
*/
|
|
41
|
-
export const MEMORY_PROMPT_SECTION = {
|
|
42
|
-
name: 'avantf:memory-usage',
|
|
43
|
-
order: 3000,
|
|
44
|
-
text: '记忆(`mem_remember`):把**重要且跨会话仍成立**的事实主动记下来——用户偏好、'
|
|
45
|
-
+ '项目决策、环境约束、接口约定、踩过的坑。同一事实的修正用 `update`,一句自包含的陈述。'
|
|
46
|
-
+ '不要记录临时聊天内容、一次性任务的中间状态、能直接从代码或文档读到的内容。',
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* WHEN to consult the document knowledge base. See the module comment for why this is a separate
|
|
50
|
-
* section rather than a clause inside the memory one: the two stores answer different questions,
|
|
51
|
-
* and a session that needs the knowledge base may have no memory question at all.
|
|
52
|
-
*/
|
|
53
|
-
export const KNOWLEDGE_PROMPT_SECTION = {
|
|
54
|
-
name: 'avantf:knowledge-usage',
|
|
55
|
-
order: 3010,
|
|
56
|
-
text: '知识库(`kb_query` / `kb_add`)存放**用户提供的成篇资料**:文档、长说明、规范、综述等要按原文查阅的内容。'
|
|
57
|
-
+ '回答涉及已入库资料的问题之前,先用 `kb_query` 检索;命中就按 `source_ref` 引用原文。'
|
|
58
|
-
+ '用户给了值得长期留存的成篇内容就主动 `kb_add` 入库;一句话的事实属于记忆(`mem_remember`),不要入知识库。',
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* HOW to change a document that is already in the library.
|
|
62
|
-
*
|
|
63
|
-
* A separate section because it is a different job from the one above, and because the first
|
|
64
|
-
* section is already at 382 of its 400-character budget. It exists to prevent a measured failure:
|
|
65
|
-
* asked to "update the knowledge base", a model called the old all-in-one tool with a NEW title and
|
|
66
|
-
* silently created a sibling document (《… · 补遗》) while the original stayed behind — two
|
|
67
|
-
* overlapping documents, and the reader left to reconcile them. Changing a document is a FILE EDIT,
|
|
68
|
-
* so the section has to name the file tools and warn about the one that destroys the frontmatter.
|
|
69
|
-
*/
|
|
70
|
-
export const KB_EDIT_PROMPT_SECTION = {
|
|
71
|
-
name: 'avantf:kb-edit',
|
|
72
|
-
order: 3020,
|
|
73
|
-
text: '更新知识库时,要在原文上修改或追加,不要新建一个补充文档。用 `kb_list` 拿到受管 `.md` 的绝对路径,'
|
|
74
|
-
+ '用文件工具修改。在用户明确要求时使用 `kb_remove` 删除。',
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Where each section's text comes from: one `.md` per section, inside the SHARED family prompt
|
|
78
|
-
* directory (`<data_home>/prompts`, see {@link PromptFiles}).
|
|
79
|
-
*
|
|
80
|
-
* Every avantf plugin writes its prompts into that one directory and owns a prefix — `mem-*` here,
|
|
81
|
-
* `work-*` in the work engine — so a deployment can find and diff all of its model-facing text in
|
|
82
|
-
* one place without any plugin having to guess which files belong to it. This manifest is that
|
|
83
|
-
* ownership: a `.md` it does not list is ignored (never read, never written, never deleted).
|
|
84
|
-
*
|
|
85
|
-
* The FILE owns the text; the CODE keeps the identity. Mapping a file name to a section HERE is what
|
|
86
|
-
* makes that true: no edit to the directory can move a section to a different point in the prompt
|
|
87
|
-
* (order) or change the name the harness dedupes on — and no file another plugin owns can be
|
|
88
|
-
* mistaken for one of these.
|
|
89
|
-
*
|
|
90
|
-
* `fallback` is taken from the constant above rather than retyped, so "the text that used to be
|
|
91
|
-
* hardcoded" and "the text a missing file is filled with" cannot drift apart.
|
|
92
|
-
*/
|
|
93
|
-
export const PROMPT_FILES = [
|
|
94
|
-
{ file: 'mem-memory-usage.md', section: MEMORY_PROMPT_SECTION },
|
|
95
|
-
{ file: 'mem-knowledge-usage.md', section: KNOWLEDGE_PROMPT_SECTION },
|
|
96
|
-
{ file: 'mem-kb-edit.md', section: KB_EDIT_PROMPT_SECTION },
|
|
97
|
-
];
|
|
98
|
-
/** The generic loader's input: which file, and the body to write/use when it is missing or blank. */
|
|
99
|
-
export function promptFileSpecs() {
|
|
100
|
-
return PROMPT_FILES.map(({ file, section }) => ({ file, fallback: section.text }));
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Zip the loaded texts back onto their sections, in manifest order.
|
|
104
|
-
*
|
|
105
|
-
* A section whose text is missing from `loaded` (the caller loaded a partial manifest) keeps its
|
|
106
|
-
* built-in default rather than losing its prompt entirely.
|
|
107
|
-
*/
|
|
108
|
-
export function buildPromptSections(loaded) {
|
|
109
|
-
const textByFile = new Map(loaded.map((entry) => [entry.file, entry.text]));
|
|
110
|
-
return PROMPT_FILES.map(({ file, section }) => ({
|
|
111
|
-
name: section.name,
|
|
112
|
-
order: section.order,
|
|
113
|
-
text: textByFile.get(file) ?? section.text,
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
/** The budget the built-in defaults are held to (`prompt_section.spec.ts` asserts it). */
|
|
117
|
-
export const PROMPT_TEXT_BUDGET = 400;
|
|
118
|
-
/** Explanatory phrasings the defaults are forbidden to contain; the spec guards the same shapes. */
|
|
119
|
-
const WHY_WORDS = ['因为', '否则', '原因是', '之所以'];
|
|
120
|
-
/**
|
|
121
|
-
* What is worth saying about text the USER wrote — as warnings, never as edits.
|
|
122
|
-
*
|
|
123
|
-
* The defaults are held to hard rules by `prompt_section.spec.ts`: under the budget (they are
|
|
124
|
-
* rendered into every model step), no retention vocabulary, no explanatory "why". An edited file
|
|
125
|
-
* cannot be held to them — it is the user's prompt — but all three are MEASURED regressions rather
|
|
126
|
-
* than style, so a line in the log is cheap and a silently worse prompt is not. Nothing is
|
|
127
|
-
* truncated and nothing is refused: the file is injected exactly as written.
|
|
128
|
-
*/
|
|
129
|
-
export function promptTextWarnings(sections) {
|
|
130
|
-
const out = [];
|
|
131
|
-
for (const section of sections) {
|
|
132
|
-
const text = typeof section.text === 'string' ? section.text : '';
|
|
133
|
-
if (text.length >= PROMPT_TEXT_BUDGET) {
|
|
134
|
-
out.push(`${section.name} is ${String(text.length)} chars (every model step carries it; the built-in default is under ${String(PROMPT_TEXT_BUDGET)})`);
|
|
135
|
-
}
|
|
136
|
-
for (const word of RETENTION_VOCABULARY) {
|
|
137
|
-
if (text.includes(word)) {
|
|
138
|
-
out.push(`${section.name} describes retention ("${word}"), which invites rewriting a fact to refresh it`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
for (const word of WHY_WORDS) {
|
|
142
|
-
if (text.includes(word))
|
|
143
|
-
out.push(`${section.name} explains why ("${word}"); the defaults state actions only`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return out;
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=prompt.js.map
|
package/lib/types/prompt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompt.ts"],"names":[],"mappings":"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"}
|
package/lib/types/provision.js
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
2
|
-
import { hostContribution } from './remote.js';
|
|
3
|
-
/** The base package id, named here so the gate's messages need no import of it. */
|
|
4
|
-
export const COMPAT_PACKAGE = '@avantf/dsh-plugin-base';
|
|
5
|
-
/**
|
|
6
|
-
* The services this plugin calls, with the methods it calls on them.
|
|
7
|
-
*
|
|
8
|
-
* `required` is this plugin's REFUSAL policy, not cordis's `inject`: `typert` is injected (the real
|
|
9
|
-
* wire face is registered at mount) yet a composition without the registry must still mount the
|
|
10
|
-
* memory tools, so its absence is a note rather than a refusal. Optional services are read with
|
|
11
|
-
* `ctx.get()`.
|
|
12
|
-
*
|
|
13
|
-
* `tools` lists only `register` because that is the one method this plugin calls; the post-load
|
|
14
|
-
* check reads `get`, but guards it and degrades to "not verified", so demanding it here would refuse
|
|
15
|
-
* a host this plugin can still drive.
|
|
16
|
-
*/
|
|
17
|
-
export const SERVICE_CONTRACTS = [
|
|
18
|
-
{ name: 'tools', required: true, methods: ['register'] },
|
|
19
|
-
{ name: 'systemPrompt', required: true, methods: ['section', 'context'] },
|
|
20
|
-
{ name: 'typert', required: false, methods: ['register', 'get', 'list', 'listPackages', 'toJSONSchema'] },
|
|
21
|
-
// Read with `ctx.get()` only by the refusal megaphone; a host without it must not become a refusal.
|
|
22
|
-
{ name: 'commands', required: false, methods: ['register'] },
|
|
23
|
-
];
|
|
24
|
-
/**
|
|
25
|
-
* The events this plugin listens to — reported, never verified.
|
|
26
|
-
*
|
|
27
|
-
* A listener for a name the host no longer emits registers happily and then never runs: the house
|
|
28
|
-
* hints would simply stop appearing. Nothing inside a plugin can prove the host still emits a name,
|
|
29
|
-
* so the list is a known limit the gate records and the running dsh version is the operator's signal.
|
|
30
|
-
*/
|
|
31
|
-
export const REQUIRED_EVENTS = ['agent/inbox/inserted', 'tools/result'];
|
|
32
|
-
/** Packages released in lockstep with dsh; their version says which dsh is running. */
|
|
33
|
-
export const VERSION_PACKAGES = ['@deepseek-ai/dsh-tools', '@deepseek-ai/dsh-typert-protocol'];
|
|
34
|
-
/** This plugin's npm package id, which names the probe and verification keys. */
|
|
35
|
-
const PACKAGE_ID = String(hostContribution.package ?? '@avantf/dsh-mem');
|
|
36
|
-
/** Best-effort one-line reason for a caught value. */
|
|
37
|
-
export function reasonOf(error) {
|
|
38
|
-
return error instanceof Error ? error.message : String(error);
|
|
39
|
-
}
|
|
40
|
-
/** Emit a warning without ever letting the logger turn it into a crash. */
|
|
41
|
-
export function warn(log, message) {
|
|
42
|
-
try {
|
|
43
|
-
log?.warn(message);
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
// A logger that throws is not evidence of anything.
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Build the plugin-specific half of the gate from a loaded base.
|
|
51
|
-
*
|
|
52
|
-
* Called ONCE per process (the loaded runtime is cached by `src/envinit.ts`), which is what makes the
|
|
53
|
-
* lazy construction equivalent to the module-level constants it replaces — `readBuildVersions` still
|
|
54
|
-
* reads the baked `lib/dsh-build.json` beside the built entry, falling back per package to the peer
|
|
55
|
-
* range floor when it is absent (a dev tree, a test run).
|
|
56
|
-
*/
|
|
57
|
-
export function runtimeFromCompat(module) {
|
|
58
|
-
const peerFloors = module.readDeclaredVersions(new URL('../package.json', import.meta.url), VERSION_PACKAGES);
|
|
59
|
-
const buildVersionsUrl = new URL(`./${module.BUILD_VERSIONS_FILE}`, import.meta.url);
|
|
60
|
-
const schemaNames = module.schemaNamesFrom(hostContribution);
|
|
61
|
-
const spec = {
|
|
62
|
-
packageId: PACKAGE_ID,
|
|
63
|
-
services: SERVICE_CONTRACTS,
|
|
64
|
-
// The version THIS BUILD was compiled against: the exact one baked at build time, falling back
|
|
65
|
-
// per package to the peer range floor. A range floor alone cannot say what the build linked.
|
|
66
|
-
declared: module.readBuildVersions(buildVersionsUrl, VERSION_PACKAGES, peerFloors),
|
|
67
|
-
// Resolved from THIS package's links: the packages that identify the host are its peers. Note
|
|
68
|
-
// this is NOT the host's identity — see the base package's README «已知边界».
|
|
69
|
-
runtime: module.readRuntimeVersions(VERSION_PACKAGES, import.meta.url),
|
|
70
|
-
// The base package knows no dsh type, so the probe's declaration comes from here — the probe must
|
|
71
|
-
// mirror the declaration path the REAL tools use.
|
|
72
|
-
probeTool: module.toolProbeDeclaration(defineTool),
|
|
73
|
-
// The wire probe IS the real host face, codecs and all. A probe that merely RESEMBLED it once
|
|
74
|
-
// reported `ok` on a 0.1.6 host whose codec contract had moved, and the real registration then
|
|
75
|
-
// threw halfway through `apply` — the half-mounted outcome this gate exists to prevent. Same
|
|
76
|
-
// object, same host, so "the probe passed" now means "this registration passes".
|
|
77
|
-
probeTypert: () => hostContribution,
|
|
78
|
-
schemaNames,
|
|
79
|
-
events: REQUIRED_EVENTS,
|
|
80
|
-
};
|
|
81
|
-
return { module, prefix: module.COMPAT_PREFIX, spec, schemaNames };
|
|
82
|
-
}
|
|
83
|
-
/** The "the check itself failed" outcome: keep loading, say why. */
|
|
84
|
-
function cannotDetermine(error, log, prefix) {
|
|
85
|
-
const message = `${prefix} WARNING — the compatibility check itself failed (${reasonOf(error)}); loading anyway`;
|
|
86
|
-
warn(log, message);
|
|
87
|
-
return {
|
|
88
|
-
verdict: {
|
|
89
|
-
load: true,
|
|
90
|
-
skipped: true,
|
|
91
|
-
status: 'probe-skipped',
|
|
92
|
-
problems: [],
|
|
93
|
-
warnings: [message],
|
|
94
|
-
notes: ['the check itself failed'],
|
|
95
|
-
lines: [{ level: 'warn', message }],
|
|
96
|
-
reason: '',
|
|
97
|
-
},
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Run the gate. Call this FIRST in `apply()`: on a refusal nothing has been registered yet, so
|
|
102
|
-
* "do not load" costs nothing to unwind. Never throws — not even with a throwing logger, because
|
|
103
|
-
* "cannot tell" is not "incompatible".
|
|
104
|
-
* @param ctx - the plugin's context.
|
|
105
|
-
* @param log - the plugin's logger.
|
|
106
|
-
* @param compat - the loaded gate runtime (see `src/envinit.ts`).
|
|
107
|
-
* @param spec - what to judge (defaults to the runtime's spec; injectable so the version path is
|
|
108
|
-
* testable without a second host).
|
|
109
|
-
* @returns the verdict `apply` branches on.
|
|
110
|
-
*/
|
|
111
|
-
export function provision(ctx, log, compat, spec = compat.spec) {
|
|
112
|
-
let evidence;
|
|
113
|
-
try {
|
|
114
|
-
evidence = compat.module.gatherEvidence(ctx, spec);
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
return cannotDetermine(error, log, compat.prefix);
|
|
118
|
-
}
|
|
119
|
-
let verdict;
|
|
120
|
-
try {
|
|
121
|
-
verdict = compat.module.verdictOf(evidence);
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
return cannotDetermine(error, log, compat.prefix);
|
|
125
|
-
}
|
|
126
|
-
for (const line of verdict.lines) {
|
|
127
|
-
try {
|
|
128
|
-
log[line.level](line.message);
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
// A logger that throws must not turn a verdict into a crash.
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return { verdict };
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Keep one `/mem` command that reports a refusal.
|
|
138
|
-
*
|
|
139
|
-
* The plugin provides nothing else when it refuses, and the alternative is a user watching a tab
|
|
140
|
-
* that never loads with no way to ask why.
|
|
141
|
-
* @param ctx - the plugin's context.
|
|
142
|
-
* @param verdict - the refusal to report.
|
|
143
|
-
* @param log - the plugin's logger.
|
|
144
|
-
* @param compat - the loaded gate runtime.
|
|
145
|
-
*/
|
|
146
|
-
export function registerCompatMegaphone(ctx, verdict, log, compat) {
|
|
147
|
-
compat.module.registerMegaphone({
|
|
148
|
-
ctx,
|
|
149
|
-
log,
|
|
150
|
-
command: { name: 'mem', description: '报告记忆插件为何未加载(兼容性检查未通过)' },
|
|
151
|
-
text: compat.module.compatReport(verdict, {
|
|
152
|
-
heading: '记忆插件未加载:与当前 dsh 的兼容性检查未通过,插件已拒绝加载(不注册服务、工具、prompt 段与真实 typert face)。',
|
|
153
|
-
warningsLabel: '风险提示:',
|
|
154
|
-
warnings: verdict.warnings,
|
|
155
|
-
fix: '修复:在本仓库重建(`pnpm build:dsh`),或把 `@deepseek-ai/dsh` 换回本构建声明的版本。',
|
|
156
|
-
logPointer: (prefix) => `完整诊断见宿主日志里 ${prefix} 开头的行。`,
|
|
157
|
-
}),
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* The second phase: every real registration must be visible afterwards.
|
|
162
|
-
*
|
|
163
|
-
* Warn-only by design — the plugin is mounted by now, so there is no clean "do not load" left to
|
|
164
|
-
* take, and a silently dropped schema or tool is exactly what nothing else would report.
|
|
165
|
-
* @param input - the live context, the real tool names, the logger, and the loaded gate runtime.
|
|
166
|
-
* @returns the registrations that did not show up (empty on success).
|
|
167
|
-
*/
|
|
168
|
-
export function verifyRegisteredFaces(input) {
|
|
169
|
-
return input.compat.module.verifyRegisteredFaces({
|
|
170
|
-
ctx: input.ctx,
|
|
171
|
-
log: input.log,
|
|
172
|
-
packageId: input.compat.spec.packageId,
|
|
173
|
-
schemaNames: input.compat.schemaNames,
|
|
174
|
-
toolNames: input.toolNames,
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=provision.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/provision.ts"],"names":[],"mappings":"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"}
|