dsh-data-domain-knowledge 0.1.0-alpha.1
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/LICENSE +21 -0
- package/README.md +360 -0
- package/cordis.patch.yml +410 -0
- package/eval/README.md +76 -0
- package/eval/evaluate-retrieval.mjs +121 -0
- package/eval/queries.example.jsonl +2 -0
- package/lib/client.js +111415 -0
- package/lib/types/config-schema.d.ts +35 -0
- package/lib/types/config-schema.d.ts.map +1 -0
- package/lib/types/config-schema.js +34 -0
- package/lib/types/config-schema.js.map +1 -0
- package/lib/types/convert/core-loader.d.ts +32 -0
- package/lib/types/convert/core-loader.d.ts.map +1 -0
- package/lib/types/convert/core-loader.js +60 -0
- package/lib/types/convert/core-loader.js.map +1 -0
- package/lib/types/convert/host.d.ts +88 -0
- package/lib/types/convert/host.d.ts.map +1 -0
- package/lib/types/convert/host.js +479 -0
- package/lib/types/convert/host.js.map +1 -0
- package/lib/types/convert/ingest.d.ts +125 -0
- package/lib/types/convert/ingest.d.ts.map +1 -0
- package/lib/types/convert/ingest.js +228 -0
- package/lib/types/convert/ingest.js.map +1 -0
- package/lib/types/convert/settings-schema.d.ts +18 -0
- package/lib/types/convert/settings-schema.d.ts.map +1 -0
- package/lib/types/convert/settings-schema.js +26 -0
- package/lib/types/convert/settings-schema.js.map +1 -0
- package/lib/types/convert/types.d.ts +46 -0
- package/lib/types/convert/types.d.ts.map +1 -0
- package/lib/types/convert/types.js +41 -0
- package/lib/types/convert/types.js.map +1 -0
- package/lib/types/diagnosis/cards.d.ts +71 -0
- package/lib/types/diagnosis/cards.d.ts.map +1 -0
- package/lib/types/diagnosis/cards.js +482 -0
- package/lib/types/diagnosis/cards.js.map +1 -0
- package/lib/types/diagnosis/problem-classes.d.ts +51 -0
- package/lib/types/diagnosis/problem-classes.d.ts.map +1 -0
- package/lib/types/diagnosis/problem-classes.js +66 -0
- package/lib/types/diagnosis/problem-classes.js.map +1 -0
- package/lib/types/diagnosis/schema.d.ts +65 -0
- package/lib/types/diagnosis/schema.d.ts.map +1 -0
- package/lib/types/diagnosis/schema.js +208 -0
- package/lib/types/diagnosis/schema.js.map +1 -0
- package/lib/types/diagnosis/seed-source.d.ts +20 -0
- package/lib/types/diagnosis/seed-source.d.ts.map +1 -0
- package/lib/types/diagnosis/seed-source.js +96 -0
- package/lib/types/diagnosis/seed-source.js.map +1 -0
- package/lib/types/diagnosis/seed.d.ts +50 -0
- package/lib/types/diagnosis/seed.d.ts.map +1 -0
- package/lib/types/diagnosis/seed.js +242 -0
- package/lib/types/diagnosis/seed.js.map +1 -0
- package/lib/types/diagnosis/store.d.ts +81 -0
- package/lib/types/diagnosis/store.d.ts.map +1 -0
- package/lib/types/diagnosis/store.js +409 -0
- package/lib/types/diagnosis/store.js.map +1 -0
- package/lib/types/diagnosis/types.d.ts +124 -0
- package/lib/types/diagnosis/types.d.ts.map +1 -0
- package/lib/types/diagnosis/types.js +13 -0
- package/lib/types/diagnosis/types.js.map +1 -0
- package/lib/types/directory-picker.d.ts +94 -0
- package/lib/types/directory-picker.d.ts.map +1 -0
- package/lib/types/directory-picker.js +110 -0
- package/lib/types/directory-picker.js.map +1 -0
- package/lib/types/extract-model.d.ts +76 -0
- package/lib/types/extract-model.d.ts.map +1 -0
- package/lib/types/extract-model.js +193 -0
- package/lib/types/extract-model.js.map +1 -0
- package/lib/types/extract.d.ts +121 -0
- package/lib/types/extract.d.ts.map +1 -0
- package/lib/types/extract.js +549 -0
- package/lib/types/extract.js.map +1 -0
- package/lib/types/fts.d.ts +96 -0
- package/lib/types/fts.d.ts.map +1 -0
- package/lib/types/fts.js +184 -0
- package/lib/types/fts.js.map +1 -0
- package/lib/types/index.d.ts +39 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +1112 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/intent/engine.d.ts +108 -0
- package/lib/types/intent/engine.d.ts.map +1 -0
- package/lib/types/intent/engine.js +501 -0
- package/lib/types/intent/engine.js.map +1 -0
- package/lib/types/intent/host.d.ts +88 -0
- package/lib/types/intent/host.d.ts.map +1 -0
- package/lib/types/intent/host.js +389 -0
- package/lib/types/intent/host.js.map +1 -0
- package/lib/types/intent/preset-tools.d.ts +37 -0
- package/lib/types/intent/preset-tools.d.ts.map +1 -0
- package/lib/types/intent/preset-tools.js +45 -0
- package/lib/types/intent/preset-tools.js.map +1 -0
- package/lib/types/intent/settings-schema.d.ts +59 -0
- package/lib/types/intent/settings-schema.d.ts.map +1 -0
- package/lib/types/intent/settings-schema.js +57 -0
- package/lib/types/intent/settings-schema.js.map +1 -0
- package/lib/types/intent/store.d.ts +75 -0
- package/lib/types/intent/store.d.ts.map +1 -0
- package/lib/types/intent/store.js +139 -0
- package/lib/types/intent/store.js.map +1 -0
- package/lib/types/intent/tools.d.ts +63 -0
- package/lib/types/intent/tools.d.ts.map +1 -0
- package/lib/types/intent/tools.js +108 -0
- package/lib/types/intent/tools.js.map +1 -0
- package/lib/types/intent/types.d.ts +189 -0
- package/lib/types/intent/types.d.ts.map +1 -0
- package/lib/types/intent/types.js +62 -0
- package/lib/types/intent/types.js.map +1 -0
- package/lib/types/knowledge-bases.d.ts +266 -0
- package/lib/types/knowledge-bases.d.ts.map +1 -0
- package/lib/types/knowledge-bases.js +1107 -0
- package/lib/types/knowledge-bases.js.map +1 -0
- package/lib/types/layout.d.ts +262 -0
- package/lib/types/layout.d.ts.map +1 -0
- package/lib/types/layout.js +312 -0
- package/lib/types/layout.js.map +1 -0
- package/lib/types/migrate.d.ts +110 -0
- package/lib/types/migrate.d.ts.map +1 -0
- package/lib/types/migrate.js +280 -0
- package/lib/types/migrate.js.map +1 -0
- package/lib/types/recall-rank.d.ts +158 -0
- package/lib/types/recall-rank.d.ts.map +1 -0
- package/lib/types/recall-rank.js +261 -0
- package/lib/types/recall-rank.js.map +1 -0
- package/lib/types/runtime.d.ts +568 -0
- package/lib/types/runtime.d.ts.map +1 -0
- package/lib/types/runtime.js +3045 -0
- package/lib/types/runtime.js.map +1 -0
- package/lib/types/settings-schema.d.ts +117 -0
- package/lib/types/settings-schema.d.ts.map +1 -0
- package/lib/types/settings-schema.js +92 -0
- package/lib/types/settings-schema.js.map +1 -0
- package/lib/types/settings-volatile.d.ts +102 -0
- package/lib/types/settings-volatile.d.ts.map +1 -0
- package/lib/types/settings-volatile.js +114 -0
- package/lib/types/settings-volatile.js.map +1 -0
- package/lib/types/types.d.ts +799 -0
- package/lib/types/types.d.ts.map +1 -0
- package/lib/types/types.js +387 -0
- package/lib/types/types.js.map +1 -0
- package/lib/types/wiki-types.d.ts +68 -0
- package/lib/types/wiki-types.d.ts.map +1 -0
- package/lib/types/wiki-types.js +322 -0
- package/lib/types/wiki-types.js.map +1 -0
- package/package.json +101 -0
- package/preset/tita-data-agent/agent.cordis.yml +376 -0
- package/preset/tita-data-agent/preset.yml +3 -0
- package/python/requirements.txt +8 -0
- package/scripts/doctor.mjs +70 -0
- package/scripts/e2e-pipeline.mjs +355 -0
- package/scripts/install-agent-preset.mjs +92 -0
- package/scripts/setup-embedding.sh +34 -0
- package/scripts/sync-agent-preset.mjs +188 -0
- package/src/client/AgentPresetCard.tsx +247 -0
- package/src/client/DirectoryPicker.tsx +357 -0
- package/src/client/InfoHint.tsx +65 -0
- package/src/client/IntentLogicTab.tsx +185 -0
- package/src/client/IntentTab.tsx +715 -0
- package/src/client/KnowledgeBaseTab.tsx +1454 -0
- package/src/client/KnowledgeGraphView.tsx +306 -0
- package/src/client/KnowledgePanel.tsx +381 -0
- package/src/client/KnowledgeStepRail.tsx +60 -0
- package/src/client/NodeSettings.tsx +392 -0
- package/src/client/PreviewSections.tsx +116 -0
- package/src/client/RecallPanel.tsx +399 -0
- package/src/client/TypeDefinitionDrawer.tsx +215 -0
- package/src/client/WikiFlowCard.tsx +226 -0
- package/src/client/WikiTypeEditor.tsx +332 -0
- package/src/client/agent-preset.ts +121 -0
- package/src/client/arch/AgentArchitectureGraph.tsx +219 -0
- package/src/client/arch/NodeLogicPanel.tsx +133 -0
- package/src/client/arch/ProblemDetailPanel.tsx +88 -0
- package/src/client/arch/model.ts +691 -0
- package/src/client/architecture.css +191 -0
- package/src/client/architecture.tsx +530 -0
- package/src/client/attribution/AttributionGraph.tsx +104 -0
- package/src/client/attribution/AttributionTab.tsx +332 -0
- package/src/client/attribution/CaseView.tsx +102 -0
- package/src/client/attribution/GraphStage.tsx +87 -0
- package/src/client/attribution/RunView.tsx +184 -0
- package/src/client/attribution/StageChrome.tsx +403 -0
- package/src/client/attribution/ViewSwitch.tsx +107 -0
- package/src/client/attribution/graph-options.ts +381 -0
- package/src/client/attribution/model.ts +462 -0
- package/src/client/config-scope.ts +119 -0
- package/src/client/convert/ConvertPanel.tsx +594 -0
- package/src/client/convert/styles.css +138 -0
- package/src/client/convert/styles.ts +49 -0
- package/src/client/format.ts +39 -0
- package/src/client/graph/layout.ts +181 -0
- package/src/client/graph.css +113 -0
- package/src/client/index.ts +98 -0
- package/src/client/problem-domains.ts +114 -0
- package/src/client/styles.css +940 -0
- package/src/client/styles.ts +11 -0
- package/src/client/useFitScale.ts +68 -0
- package/src/config-schema.ts +45 -0
- package/src/convert/core-loader.ts +68 -0
- package/src/convert/host.ts +579 -0
- package/src/convert/ingest.ts +367 -0
- package/src/convert/settings-schema.ts +27 -0
- package/src/convert/types.ts +65 -0
- package/src/diagnosis/cards.ts +498 -0
- package/src/diagnosis/problem-classes.ts +117 -0
- package/src/diagnosis/schema.ts +260 -0
- package/src/diagnosis/seed-source.ts +107 -0
- package/src/diagnosis/seed.ts +291 -0
- package/src/diagnosis/store.ts +432 -0
- package/src/diagnosis/types.ts +152 -0
- package/src/directory-picker.ts +164 -0
- package/src/extract-model.ts +227 -0
- package/src/extract.ts +632 -0
- package/src/fts.ts +203 -0
- package/src/index.ts +1091 -0
- package/src/intent/README.md +63 -0
- package/src/intent/engine.ts +527 -0
- package/src/intent/host.ts +462 -0
- package/src/intent/preset-tools.ts +48 -0
- package/src/intent/settings-schema.ts +63 -0
- package/src/intent/store.ts +143 -0
- package/src/intent/tools.ts +139 -0
- package/src/intent/types.ts +245 -0
- package/src/knowledge-bases.ts +1160 -0
- package/src/layout.ts +350 -0
- package/src/migrate.ts +262 -0
- package/src/python/embedding_worker.py +471 -0
- package/src/recall-rank.ts +299 -0
- package/src/runtime.ts +3069 -0
- package/src/settings-schema.ts +94 -0
- package/src/settings-volatile.ts +122 -0
- package/src/types.ts +1140 -0
- package/src/wiki-types.ts +357 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 插件 entry 的配置 schema(0.1.7)。
|
|
3
|
+
*
|
|
4
|
+
* ## 为什么单独一个模块
|
|
5
|
+
*
|
|
6
|
+
* 0.1.7 删掉了「设置命名空间 + `settings.installSection`」这一整套 API,改成
|
|
7
|
+
* **设置就是插件自己 entry 的 config**:schema 在这里声明,初值由 profile patch 的
|
|
8
|
+
* `config:` 提供,设置页里的改动由 `configEditor` 写回同一处,客户端按**路径**寻址
|
|
9
|
+
* (`{op:'set', path:['intent','categories']}`)。
|
|
10
|
+
*
|
|
11
|
+
* 三组沿用原来的三个命名空间边界,因为它们在语义上确实是三块(知识库 / 意图引擎 /
|
|
12
|
+
* 转换内核),缓存键与默认值各不相同 —— 变的只是「它们住在同一个 entry 下」。
|
|
13
|
+
*
|
|
14
|
+
* 「单独一个模块」的理由和 `settings-schema.ts`、`intent/settings-schema.ts` 一样,
|
|
15
|
+
* 是**可测**:`tests/settings-schema.test.mjs` 要能 import 这个 schema 并把它解析
|
|
16
|
+
* 一遍,而 `index.ts` 会拉进工具层(`dsh-tools` 的 `dsh-sandbox` peer 没有安装,
|
|
17
|
+
* `node --test` 里拉不起来)。所以组合必须发生在没有工具依赖的地方。
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import type { KnowledgeConfig } from './types.js';
|
|
22
|
+
import type { IntentSettings } from './intent/types.js';
|
|
23
|
+
import type { ConvertPluginConfig } from './convert/types.js';
|
|
24
|
+
/**
|
|
25
|
+
* 标注 `Schemastery` 是 TS2742 的要求(见 `intent/settings-schema.ts`):导出物必须
|
|
26
|
+
* 有一个能被命名的类型,否则 `.d.ts` 里会写进 cosmokit 的 `.pnpm` 路径。
|
|
27
|
+
*/
|
|
28
|
+
export declare const Config: Schemastery;
|
|
29
|
+
/** `Config` 的取值形态。三组都可选:缺的字段由 schema 默认值补齐。 */
|
|
30
|
+
export interface KnowledgePluginConfig {
|
|
31
|
+
knowledge?: Partial<KnowledgeConfig>;
|
|
32
|
+
intent?: Partial<IntentSettings>;
|
|
33
|
+
convert?: Partial<ConvertPluginConfig>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=config-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,WAInB,CAAA;AAEF,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACvC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 插件 entry 的配置 schema(0.1.7)。
|
|
3
|
+
*
|
|
4
|
+
* ## 为什么单独一个模块
|
|
5
|
+
*
|
|
6
|
+
* 0.1.7 删掉了「设置命名空间 + `settings.installSection`」这一整套 API,改成
|
|
7
|
+
* **设置就是插件自己 entry 的 config**:schema 在这里声明,初值由 profile patch 的
|
|
8
|
+
* `config:` 提供,设置页里的改动由 `configEditor` 写回同一处,客户端按**路径**寻址
|
|
9
|
+
* (`{op:'set', path:['intent','categories']}`)。
|
|
10
|
+
*
|
|
11
|
+
* 三组沿用原来的三个命名空间边界,因为它们在语义上确实是三块(知识库 / 意图引擎 /
|
|
12
|
+
* 转换内核),缓存键与默认值各不相同 —— 变的只是「它们住在同一个 entry 下」。
|
|
13
|
+
*
|
|
14
|
+
* 「单独一个模块」的理由和 `settings-schema.ts`、`intent/settings-schema.ts` 一样,
|
|
15
|
+
* 是**可测**:`tests/settings-schema.test.mjs` 要能 import 这个 schema 并把它解析
|
|
16
|
+
* 一遍,而 `index.ts` 会拉进工具层(`dsh-tools` 的 `dsh-sandbox` peer 没有安装,
|
|
17
|
+
* `node --test` 里拉不起来)。所以组合必须发生在没有工具依赖的地方。
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import z from '@deepseek-ai/schemastery';
|
|
22
|
+
import { KNOWLEDGE_SETTINGS_SCHEMA } from './settings-schema.js';
|
|
23
|
+
import { INTENT_SETTINGS_SCHEMA } from './intent/settings-schema.js';
|
|
24
|
+
import { CONVERT_SETTINGS_SCHEMA } from './convert/settings-schema.js';
|
|
25
|
+
/**
|
|
26
|
+
* 标注 `Schemastery` 是 TS2742 的要求(见 `intent/settings-schema.ts`):导出物必须
|
|
27
|
+
* 有一个能被命名的类型,否则 `.d.ts` 里会写进 cosmokit 的 `.pnpm` 路径。
|
|
28
|
+
*/
|
|
29
|
+
export const Config = z.object({
|
|
30
|
+
knowledge: KNOWLEDGE_SETTINGS_SCHEMA,
|
|
31
|
+
intent: INTENT_SETTINGS_SCHEMA,
|
|
32
|
+
convert: CONVERT_SETTINGS_SCHEMA,
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=config-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAKtE;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAgB,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,yBAAyB;IACpC,MAAM,EAAE,sBAAsB;IAC9B,OAAO,EAAE,uBAAuB;CACjC,CAAC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy, optional access to the conversion kernel.
|
|
3
|
+
*
|
|
4
|
+
* `dsh-convert-core` is declared as an **optionalDependency**: it
|
|
5
|
+
* pulls in `@firecrawl/anydoc`, which ships a platform-specific prebuilt native
|
|
6
|
+
* binding. A user who only wants to ingest Markdown must still be able to
|
|
7
|
+
* install and run the knowledge plugin, so the kernel is imported on first use
|
|
8
|
+
* and a missing kernel degrades to one actionable error instead of taking the
|
|
9
|
+
* whole plugin (SourceRaw, compile, recall) down with it.
|
|
10
|
+
*
|
|
11
|
+
* Guardrail this file exists to enforce: nothing else in the plugin may import
|
|
12
|
+
* the kernel eagerly.
|
|
13
|
+
*/
|
|
14
|
+
export type ConvertCoreModule = typeof import('dsh-convert-core');
|
|
15
|
+
export type ConvertCoreLoader = () => Promise<ConvertCoreModule>;
|
|
16
|
+
/** Raised when the optional kernel cannot be loaded. */
|
|
17
|
+
export declare class ConvertCoreMissingError extends Error {
|
|
18
|
+
readonly code = "DEPENDENCY_MISSING";
|
|
19
|
+
readonly retryable = true;
|
|
20
|
+
readonly suggestion = "\u8F6C\u6362\u5185\u6838\u662F\u53EF\u9009\u4F9D\u8D56\uFF1A\u88C5\u4E0A dsh-convert-core \u540E\u91CD\u8BD5\uFF08pnpm --filter dsh-data-domain-knowledge install\uFF09\u3002knowledge \u7684\u5F55\u5165\u3001\u7F16\u8BD1\u4E0E\u53EC\u56DE\u4E0D\u4F9D\u8D56\u5B83\u3002";
|
|
21
|
+
constructor(cause?: unknown);
|
|
22
|
+
}
|
|
23
|
+
/** Load (and memoise) the kernel, or throw `ConvertCoreMissingError`. */
|
|
24
|
+
export declare function loadConvertCore(): Promise<ConvertCoreModule>;
|
|
25
|
+
/** Whether the kernel is already loaded; used by capabilities reporting. */
|
|
26
|
+
export declare function convertCoreLoaded(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Test seam. Pass a loader to simulate a missing/broken kernel, or `undefined`
|
|
29
|
+
* to restore the real dynamic import. Never used by production code.
|
|
30
|
+
*/
|
|
31
|
+
export declare function setConvertCoreLoader(next?: ConvertCoreLoader): void;
|
|
32
|
+
//# sourceMappingURL=core-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-loader.d.ts","sourceRoot":"","sources":["../../../src/convert/core-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,iBAAiB,GAAG,cAAc,kBAAkB,CAAC,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAIhE,wDAAwD;AACxD,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,wBAAuB;IACpC,QAAQ,CAAC,SAAS,QAAO;IACzB,QAAQ,CAAC,UAAU,iRAAe;gBACtB,KAAK,CAAC,EAAE,OAAO;CAK5B;AAUD,yEAAyE;AACzE,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAWlE;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAInE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy, optional access to the conversion kernel.
|
|
3
|
+
*
|
|
4
|
+
* `dsh-convert-core` is declared as an **optionalDependency**: it
|
|
5
|
+
* pulls in `@firecrawl/anydoc`, which ships a platform-specific prebuilt native
|
|
6
|
+
* binding. A user who only wants to ingest Markdown must still be able to
|
|
7
|
+
* install and run the knowledge plugin, so the kernel is imported on first use
|
|
8
|
+
* and a missing kernel degrades to one actionable error instead of taking the
|
|
9
|
+
* whole plugin (SourceRaw, compile, recall) down with it.
|
|
10
|
+
*
|
|
11
|
+
* Guardrail this file exists to enforce: nothing else in the plugin may import
|
|
12
|
+
* the kernel eagerly.
|
|
13
|
+
*/
|
|
14
|
+
const INSTALL_HINT = '转换内核是可选依赖:装上 dsh-convert-core 后重试(pnpm --filter dsh-data-domain-knowledge install)。knowledge 的录入、编译与召回不依赖它。';
|
|
15
|
+
/** Raised when the optional kernel cannot be loaded. */
|
|
16
|
+
export class ConvertCoreMissingError extends Error {
|
|
17
|
+
code = 'DEPENDENCY_MISSING';
|
|
18
|
+
retryable = true;
|
|
19
|
+
suggestion = INSTALL_HINT;
|
|
20
|
+
constructor(cause) {
|
|
21
|
+
const detail = cause instanceof Error ? cause.message : cause === undefined ? '' : String(cause);
|
|
22
|
+
super(`转换内核 dsh-convert-core 不可用${detail ? `:${detail}` : ''}`);
|
|
23
|
+
this.name = 'ConvertCoreMissingError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async function importKernel() {
|
|
27
|
+
return await import('dsh-convert-core');
|
|
28
|
+
}
|
|
29
|
+
let loader = importKernel;
|
|
30
|
+
let cached;
|
|
31
|
+
let inflight;
|
|
32
|
+
/** Load (and memoise) the kernel, or throw `ConvertCoreMissingError`. */
|
|
33
|
+
export async function loadConvertCore() {
|
|
34
|
+
if (cached)
|
|
35
|
+
return cached;
|
|
36
|
+
inflight ??= loader();
|
|
37
|
+
try {
|
|
38
|
+
const module = await inflight;
|
|
39
|
+
cached = module;
|
|
40
|
+
return module;
|
|
41
|
+
}
|
|
42
|
+
catch (cause) {
|
|
43
|
+
inflight = undefined;
|
|
44
|
+
throw cause instanceof ConvertCoreMissingError ? cause : new ConvertCoreMissingError(cause);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Whether the kernel is already loaded; used by capabilities reporting. */
|
|
48
|
+
export function convertCoreLoaded() {
|
|
49
|
+
return cached !== undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Test seam. Pass a loader to simulate a missing/broken kernel, or `undefined`
|
|
53
|
+
* to restore the real dynamic import. Never used by production code.
|
|
54
|
+
*/
|
|
55
|
+
export function setConvertCoreLoader(next) {
|
|
56
|
+
loader = next ?? importKernel;
|
|
57
|
+
cached = undefined;
|
|
58
|
+
inflight = undefined;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=core-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-loader.js","sourceRoot":"","sources":["../../../src/convert/core-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,YAAY,GAAG,6GAA6G,CAAA;AAElI,wDAAwD;AACxD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,oBAAoB,CAAA;IAC3B,SAAS,GAAG,IAAI,CAAA;IAChB,UAAU,GAAG,YAAY,CAAA;IAClC,YAAY,KAAe;QACzB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChG,KAAK,CAAC,4BAA4B,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF;AAED,KAAK,UAAU,YAAY;IACzB,OAAO,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACzC,CAAC;AAED,IAAI,MAAM,GAAsB,YAAY,CAAA;AAC5C,IAAI,MAAqC,CAAA;AACzC,IAAI,QAAgD,CAAA;AAEpD,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,QAAQ,KAAK,MAAM,EAAE,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAA;QAC7B,MAAM,GAAG,MAAM,CAAA;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,GAAG,SAAS,CAAA;QACpB,MAAM,KAAK,YAAY,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAC7F,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,KAAK,SAAS,CAAA;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,GAAG,IAAI,IAAI,YAAY,CAAA;IAC7B,MAAM,GAAG,SAAS,CAAA;IAClB,QAAQ,GAAG,SAAS,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The convert host — the DSH-facing half of multi-format conversion.
|
|
3
|
+
*
|
|
4
|
+
* Since 0018 this lives inside `plugins/dsh-data-domain-knowledge` (issue 0018):
|
|
5
|
+
* conversion is a sub-capability of knowledge, mounted as one plugin, with one
|
|
6
|
+
* sidebar entry and one settings surface for the user. The kernel
|
|
7
|
+
* (`dsh-convert-core`) stays an independent, optional package that
|
|
8
|
+
* `core-loader.ts` imports lazily.
|
|
9
|
+
*
|
|
10
|
+
* Layering this file must keep:
|
|
11
|
+
*
|
|
12
|
+
* kernel (convert-core) input → knowledge-ready Markdown + assets + console
|
|
13
|
+
* this host settings, agent tools, /convert route, ingestion
|
|
14
|
+
*
|
|
15
|
+
* Nothing about parsing lives here; nothing about DSH lives in the kernel. That
|
|
16
|
+
* is why the same console still works standalone at `tita-convert`.
|
|
17
|
+
*/
|
|
18
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
19
|
+
import { type IngestTarget } from './ingest.js';
|
|
20
|
+
import { type ConvertPluginConfig } from './types.js';
|
|
21
|
+
export { CONVERT_SETTINGS_NAMESPACE, DEFAULT_CONVERT_CONFIG, defaultConvertRoot } from './types.js';
|
|
22
|
+
/** Route prefix the console and API are mounted on. Frozen contract. */
|
|
23
|
+
export declare const MOUNT_PATH = "/convert";
|
|
24
|
+
/**
|
|
25
|
+
* 转换的设置 schema。
|
|
26
|
+
*
|
|
27
|
+
* 0029 起它**没有路径字段**:交付物与工作区都从知识插件的 `agentRoot` 推出来
|
|
28
|
+
* (`<agentRoot>/output/<日期>/`、`<agentRoot>/tmp/`)。一个 Agent 只有一个根路径,
|
|
29
|
+
* 所以这里再放一个 `rootDir` 就等于把「东西存在哪」这个答案劈成两半。
|
|
30
|
+
*
|
|
31
|
+
* 定义本身搬到了 `./settings-schema.js`(纯数据、可被 `Config` 组合并在
|
|
32
|
+
* `node --test` 里独立解析);这里 re-export,保持既有出口不变。
|
|
33
|
+
*/
|
|
34
|
+
export { CONVERT_SETTINGS_SCHEMA } from './settings-schema.js';
|
|
35
|
+
/** What the convert host needs from the knowledge plugin it now lives in. */
|
|
36
|
+
export interface ConvertHostDeps {
|
|
37
|
+
/** The live knowledge runtime; the seam may only call `addSource` on it. */
|
|
38
|
+
runtime(): IngestTarget;
|
|
39
|
+
/** Absolute knowledge root the runtime currently writes to. */
|
|
40
|
+
knowledgeRoot(): string;
|
|
41
|
+
/**
|
|
42
|
+
* 当前工作项目(交付物的落点)。省略时退回进程的工作目录。
|
|
43
|
+
*
|
|
44
|
+
* 转换内核是**宿主级单例**,而「工作项目」是**每个会话各自**的 —— 内核这一层拿不到
|
|
45
|
+
* 会话,所以这里只能给一个宿主级的答案。单项目部署(一个 DSH 进程服务同一个项目)下
|
|
46
|
+
* 两者一致;多项目共用同一个宿主时,交付物会集中落到宿主启动目录下,而不是各自项目里。
|
|
47
|
+
* 要做到完全按会话分,需要内核支持**按请求**解析输出目录,那是内核侧的一处改造。
|
|
48
|
+
*/
|
|
49
|
+
workspace?(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Resolve an ingest target for one knowledge base (issue 0019). Optional so the
|
|
52
|
+
* host still works when the registry is unavailable; when it is absent every
|
|
53
|
+
* conversion lands in the default knowledge base.
|
|
54
|
+
*/
|
|
55
|
+
resolveTarget?(kbId?: string): {
|
|
56
|
+
runtime: IngestTarget;
|
|
57
|
+
knowledgeRoot: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Tita Agent 根路径(0029)。转换的交付物与工作区都从它推出来,所以转换
|
|
61
|
+
* **没有自己的路径设置** —— 一个 Agent 只有一个根路径。
|
|
62
|
+
*/
|
|
63
|
+
agentRoot(): string;
|
|
64
|
+
/**
|
|
65
|
+
* 已解析的 `convert` 设置组(来自插件 entry 的 config)。
|
|
66
|
+
*
|
|
67
|
+
* 0.1.7 起设置不再是命名空间,而是随 `apply(ctx, config)` 进来的 entry config,
|
|
68
|
+
* 所以这里由调用方把那一组传下来。省略时用 `DEFAULT_CONVERT_CONFIG`。
|
|
69
|
+
*
|
|
70
|
+
* 允许给**函数**的理由与意图那组相同(见 `intent/host.ts` 的 `IntentHostDeps.config`):
|
|
71
|
+
* 字段是 volatile,解包是一次快照,而 volatile 改动不会重载插件。
|
|
72
|
+
*/
|
|
73
|
+
config?: Partial<ConvertPluginConfig> | (() => Partial<ConvertPluginConfig>);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* `applyConvert` 交给组合根的那一个把手,与 `intent/host.ts` 的 `IntentHost` 同形。
|
|
77
|
+
*
|
|
78
|
+
* 转换这一组也有 volatile 字段(`maxConcurrent` / `maxInputBytes` / `retentionDays` /
|
|
79
|
+
* `toolWaitMs` / `ingestEnabled`),其中一个解包漏了就是沉默的错误:`maxInputBytes`
|
|
80
|
+
* 是引用时 `info.size > config.maxInputBytes` 恒为 false,体积上限静默消失;
|
|
81
|
+
* `ingestEnabled` 是引用时它恒为真,开关关不掉。所以这一组也要能就地重灌。
|
|
82
|
+
*/
|
|
83
|
+
export interface ConvertHost {
|
|
84
|
+
/** 按**当前**的 entry config 重灌一次设置,并按新值重置转换内核。 */
|
|
85
|
+
reprocess(): void;
|
|
86
|
+
}
|
|
87
|
+
export declare function applyConvert(ctx: Context, deps: ConvertHostDeps): ConvertHost;
|
|
88
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/convert/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAML,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEnG,wEAAwE;AACxE,eAAO,MAAM,UAAU,aAAa,CAAA;AAIpC;;;;;;;;;GASG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,IAAI,YAAY,CAAA;IACvB,+DAA+D;IAC/D,aAAa,IAAI,MAAM,CAAA;IACvB;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,MAAM,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/E;;;OAGG;IACH,SAAS,IAAI,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAA;CAC7E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,SAAS,IAAI,IAAI,CAAA;CAClB;AAwFD,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA+X7E"}
|