@carljia/omd-dsh 0.1.7 → 0.1.9
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 +36 -15
- package/cordis.patch.yml +13 -6
- package/lib/boot.d.ts +4 -4
- package/lib/boot.js +6 -11
- package/lib/cli.js +9 -21
- package/lib/client.d.ts +11 -0
- package/lib/client.js +427 -0
- package/lib/host.d.ts +42 -0
- package/lib/host.js +103 -0
- package/lib/index.js +4 -5
- package/lib/mode.js +1 -4
- package/lib/omd-matrix-controller.d.ts +108 -0
- package/lib/omd-matrix-controller.js +180 -0
- package/lib/plan.js +1 -4
- package/lib/startwork.js +1 -4
- package/lib/sync.d.ts +38 -20
- package/lib/sync.js +68 -215
- package/lib/task.js +1 -4
- package/lib/vendor/omd-mode-switch.mjs +967 -127
- package/lib/vendor/omd-mode.mjs +889 -174
- package/lib/vendor/omd-plan.mjs +95 -177
- package/lib/vendor/omd-start-work.mjs +96 -132
- package/lib/vendor/omd-task.mjs +20735 -265
- package/lib/vendor/omd-ulw.mjs +44 -49
- package/package.json +23 -7
package/README.md
CHANGED
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
# @carljia/omd-dsh
|
|
2
2
|
|
|
3
|
-
OMD 理念的 DSH
|
|
3
|
+
OMD 理念的 DSH 插件:host 行 + 客户端设置页 + 7 个模式 preset + 同步 CLI。以 `dsh.bundle` 形式分发——`dsh plugin add @carljia/omd-dsh` 安装后重启即自动同步预设,并在设置面板出现「omd模型分配」页;也可全局安装后用 `omd-dsh sync`。总览、模式矩阵与安装见仓库根 [README.md](../../README.md)。
|
|
4
4
|
|
|
5
|
-
## 分发:bundle +
|
|
5
|
+
## 分发:bundle + host 行 + 客户端插件
|
|
6
6
|
|
|
7
|
-
包声明 `dsh.bundle.patch` → `cordis.patch.yml`,后者注入宿主行 `@carljia/omd-dsh/
|
|
7
|
+
包声明 `dsh.bundle.patch` → `cordis.patch.yml`,后者注入宿主行 `@carljia/omd-dsh`(包根,`lib/host.js`)。该行在 profile 启动时执行与 `omd-dsh sync` 相同的内核(`lib/sync.js`)并额外注册 settings 命名空间(见下节「设置页与数据流」)。**注入名必须是包根而不是 `/boot` 子路径**:`dsh-client-modules` 按 loader entry 的 `options.name` == 包名来发现客户端插件(读取 `dsh.client` 与 `exports["./client"]`),浏览器 half(`lib/client.js`,见下)由此被发现。`lib/boot.js` 保留为无 settings 场景的手动回退行,仍可通过 `@carljia/omd-dsh/boot` 挂载。
|
|
8
|
+
|
|
9
|
+
`.omd-vendor/` 里的行模块是**自包含 bundle**(`scripts/postbuild.mjs` 用 esbuild 把 schemastery / dsh-tools / dsh-llm / dsh-subagent 全部打进模块,唯一的例外是 `shared.js`——omd-mode 与 omd-task 共享的按 agent 键控状态,作为相对兄弟模块保持单一实例)。行模块不含任何 `@deepseek-ai/*` 导入,因此 sync **不需要知道 harness 装在哪里**,也不会出现"导入指向的树与运行进程不一致"导致的挂载失败——无论 DSH 从 npx 缓存、全局 npm 还是 profile bundles 加载 agent 机制都能工作。preset 组合里其余裸包名行(如 `@deepseek-ai/dsh-persona`)由 harness 的 loader 在运行时按宿主 base 解析。
|
|
10
|
+
|
|
11
|
+
## 设置页「omd模型分配」与数据流
|
|
12
|
+
|
|
13
|
+
设置 → 左侧导航 →「omd模型分配」(en: OMD model allocation)可视化编辑 7 个模式的模型矩阵(顶层 provider/model + 可选 reasoningEffort;有 tier 的模式逐档展示 provider/model,tier 的 `hint` 只读展示便于理解档位用途)。保存后**新会话**按新矩阵路由模型,运行中的会话保持创建时的组合。
|
|
14
|
+
|
|
15
|
+
数据流(详见 docs/ARCHITECTURE.md「settings 命名空间数据流」):
|
|
16
|
+
|
|
17
|
+
- `settings.yaml` 的命名空间 `omd-model-allocation` 是**在线编辑的权威存储**(宿主行注册,`base` = 随包默认矩阵 `omd-matrix.default.json`,`applies: "live"`)。
|
|
18
|
+
- 启动时宿主行**调和一次**:若 `<DSH_HOME>/omd-matrix.json` 存在且与命名空间解析值不同,把文件内容 `replace` 进命名空间——旧版/CLI 的自定义不丢,CLI 手改在下次重启被采纳。
|
|
19
|
+
- 用命名空间解析出的完整矩阵渲染 presets,并写回 `omd-matrix.json`(**导出镜像 + CLI 兼容面**)。
|
|
20
|
+
- 监听命名空间:UI 每次保存 → 重新渲染 presets + 更新镜像文件。保存走 `settings.replace`,携带 `expectedRevision`,冲突(`settings-rejected`)时拒绝并重载最新值。
|
|
21
|
+
- `omd-dsh setup` / `omd-dsh sync` CLI 保持不变(读写 `omd-matrix.json`);宿主运行中直接改文件不会实时生效,与「运行中会话不变、新会话重新 sync」的既有语义一致。
|
|
22
|
+
- 边界:settings.yaml 中该段损坏 → 宿主回退纯文件 sync(老 boot 行为),不阻断启动;`omd-matrix.json` 缺失/损坏 → 用命名空间(默认矩阵)渲染并重建镜像;远程浏览器(非 loopback)→ 设置页只读/不可用;settings 只读 → 客户端禁用保存、宿主仍按解析值渲染。
|
|
8
23
|
|
|
9
24
|
## 行:omd-mode
|
|
10
25
|
|
|
11
|
-
按模式(agent preset
|
|
26
|
+
按模式(agent preset)固定模型路由。行模块是自包含 bundle,不再做 scope 守卫(bundle 内自带的 dsh-scope 副本读不到 harness 实例写入的 kScope Symbol,守卫会误报——见 docs/ARCHITECTURE.md);请按 preset 组合挂载,误挂到全局组合会导致进程级钉模型。
|
|
12
27
|
|
|
13
28
|
| 配置字段 | 含义 |
|
|
14
29
|
|---|---|
|
|
@@ -24,7 +39,7 @@ OMD 理念的 DSH 插件:两个 cordis 行 + 7 个模式 preset + 同步 CLI
|
|
|
24
39
|
1. 入口选择 == 矩阵模型 → 钉住矩阵模型(无操作);
|
|
25
40
|
2. 会话尚无任何请求(blank)且入口选择 == 挂载时的部署默认模型 → 视为未选择,钉住矩阵模型;
|
|
26
41
|
3. 会话已跑过请求且刚发生 preset 切换(/mode 或 UI 选择,日志中 agent-preset/selected 在最后一次 request/header 之后)且入口选择 == 切换前的路由 → 新模式认领矩阵模型;
|
|
27
|
-
4. 其余情况 → 入口选择与矩阵模型不同 = 用户显式切换:请求与 persona
|
|
42
|
+
4. 其余情况 → 入口选择与矩阵模型不同 = 用户显式切换:请求与 persona 变量均保持用户选择,本行在共享状态 `shared.js`(按顶层 agent 对象为键的 WeakMap)上记录用户选择,omd-task 行据此把 deep tier 路由到用户选择的模型。
|
|
28
43
|
|
|
29
44
|
模型体验:persona 文本每次请求固定携带实际路由模型的声明;模式模型路由在 agent 生命周期内稳定(KV 前缀稳定)。
|
|
30
45
|
|
|
@@ -43,40 +58,46 @@ tier 差异化子代理委派(等价 OMD 的 task(category=…))。仅限 pr
|
|
|
43
58
|
|
|
44
59
|
模型可见参数:description(展示名)、prompt、tier(枚举见工具描述)、run_in_background(仅 continuable 模式)。工具描述枚举各 tier 的 hint 与模型,模型据此选型。
|
|
45
60
|
|
|
46
|
-
**deep tier 与用户模型覆盖**:用户在 UI 显式切换模型后(omd-mode
|
|
61
|
+
**deep tier 与用户模型覆盖**:用户在 UI 显式切换模型后(omd-mode 让路并在 `shared.js` 里记录用户选择),名为 `deep` 的 tier 改用用户选择的模型(provider/model 整体替换),其余 tier 保持矩阵配置。
|
|
47
62
|
|
|
48
63
|
## CLI:omd-dsh
|
|
49
64
|
|
|
50
65
|
```
|
|
51
|
-
omd-dsh <command> [--
|
|
66
|
+
omd-dsh <command> [--dry-run]
|
|
52
67
|
```
|
|
53
68
|
|
|
54
|
-
- `omd-dsh sync` — 把 presets/ 与 vendored 行模块同步到 `<DSH_HOME>/.agent-presets/`(hash 保护、orphan 报告、非管理目录零操作)。每个 preset 的 omd-mode / omd-task 行由用户矩阵 `<DSH_HOME>/omd-matrix.json`
|
|
69
|
+
- `omd-dsh sync` — 把 presets/ 与 vendored 行模块同步到 `<DSH_HOME>/.agent-presets/`(hash 保护、orphan 报告、非管理目录零操作)。每个 preset 的 omd-mode / omd-task 行由用户矩阵 `<DSH_HOME>/omd-matrix.json` 渲染。不需要任何 harness 路径配置。
|
|
55
70
|
- `omd-dsh setup` — 交互式向导:先读取 DSH 已有模型,再引导逐模式/逐 tier 选择模型,写回 `<DSH_HOME>/omd-matrix.json` 并可选立即同步。
|
|
56
71
|
- `omd-dsh models` — 打印发现的 DSH 模型目录(非交互)。
|
|
57
72
|
|
|
58
|
-
细节见 docs/ARCHITECTURE.md 的「vendored
|
|
73
|
+
细节见 docs/ARCHITECTURE.md 的「vendored 分发与自包含 bundle」。
|
|
74
|
+
|
|
75
|
+
## 集中配置:<DSH_HOME>/omd-matrix.json 与 settings.yaml 命名空间
|
|
76
|
+
|
|
77
|
+
所有模式的模型路由(provider/model/reasoningEffort)与 omd_task 各 tier 的模型集中在用户矩阵里。两种入口,同一份数据:
|
|
59
78
|
|
|
60
|
-
|
|
79
|
+
- **在线编辑(推荐)**:设置 →「omd模型分配」。保存写入 `settings.yaml` 的 `omd-model-allocation` 命名空间,宿主立即重渲染 presets 并把矩阵镜像回 `<DSH_HOME>/omd-matrix.json`。
|
|
80
|
+
- **CLI**:`omd-dsh setup`(交互向导)/ 手改 `omd-matrix.json` 后 `omd-dsh sync`。宿主运行中直接改文件不会实时生效;下次重启时宿主把文件导入命名空间(与「新会话重新 sync」语义一致)。
|
|
61
81
|
|
|
62
|
-
|
|
82
|
+
`omd-dsh sync` 首次运行把随包的 deepseek 默认矩阵 `omd-matrix.default.json` 复制为默认配置(或从旧版本包内位置迁移一次)。仓库与 npm 包只携带默认矩阵文件,**不含任何个人模型配置**——个人模型配置只留在本机(`~/.dsh/settings.yaml` 或 `~/.dsh/omd-matrix.json`)。preset 里 `# [omd-dsh:mode:start] / [omd-dsh:mode:end]` 与 `# [omd-dsh:task:start] / [omd-dsh:task:end]` 之间的区域是自动生成的——改模型请走设置页或矩阵后跑 sync,不要手改 fence 之间的内容。
|
|
63
83
|
|
|
64
84
|
## 开发
|
|
65
85
|
|
|
66
86
|
```bash
|
|
67
|
-
npm install # 触发 build(tsc +
|
|
68
|
-
npm test # vitest
|
|
87
|
+
npm install # 触发 build(tsc + esbuild 打包自包含 bundle + 客户端 bundle)
|
|
88
|
+
npm test # vitest 全量测试
|
|
69
89
|
npm pack # prepack 自动重建,产出 tgz
|
|
70
90
|
```
|
|
71
91
|
|
|
72
|
-
|
|
92
|
+
构建产出:`lib/host.js`(宿主行)、`lib/client.js`(客户端 bundle,`window.__ModuleLoader__.load` 信封 + esbuild CJS,仅外部依赖 react)、`lib/vendor/*.mjs`(自包含行 bundle)。测试桩在 test/stubs/(dsh-tools/dsh-subagent 的轻量替身),不依赖真实 harness;`test/sync.test.ts` / `test/host.test.ts` / `test/client-store.test.ts` 覆盖矩阵注入渲染、启动调和判定与客户端保存状态机。
|
|
73
93
|
|
|
74
94
|
|
|
75
95
|
### 子代理透传语义
|
|
76
96
|
|
|
77
97
|
omd-mode 对 subagentDepth > 0 的子代理一律透传(不覆盖 provider/model/变量):
|
|
78
98
|
omd-task 的 tier 模型通过显式 agentOptions 生效;顶层 agent 才被钉到模式模型
|
|
79
|
-
(除非用户显式切换模型——此时顶层跟随用户选择,deep tier 通过 `
|
|
99
|
+
(除非用户显式切换模型——此时顶层跟随用户选择,deep tier 通过 `shared.js` 里
|
|
100
|
+
按 agent 记录的覆盖值同步)。
|
|
80
101
|
这保证「强模型顶层 + tier 差异化子代理」的优先级正确。
|
|
81
102
|
|
|
82
103
|
### toolFilter 注意
|
package/cordis.patch.yml
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
# omd-dsh bundle patch: inject the
|
|
2
|
-
# the 7 OMD agent presets into the user preset root (<DSH_HOME>/.agent-presets).
|
|
1
|
+
# omd-dsh bundle patch: inject the host row under the PACKAGE ROOT name.
|
|
3
2
|
#
|
|
4
|
-
# The
|
|
5
|
-
#
|
|
6
|
-
#
|
|
3
|
+
# The row (lib/host.js) registers the `omd-model-allocation` settings
|
|
4
|
+
# namespace (settings.yaml = online-edit source), imports CLI/legacy edits
|
|
5
|
+
# from <DSH_HOME>/omd-matrix.json once at startup, renders the 7 OMD presets
|
|
6
|
+
# from the resolved matrix, mirrors the matrix back to omd-matrix.json, and
|
|
7
|
+
# re-renders + re-mirrors on every UI save.
|
|
8
|
+
#
|
|
9
|
+
# The entry name MUST be the bare package name `@carljia/omd-dsh`, not a
|
|
10
|
+
# subpath: dsh-client-modules discovers client plugins by matching loader
|
|
11
|
+
# entry names against package names (reading dsh.client + exports["./client"]),
|
|
12
|
+
# and the browser half (lib/client.js) provides the "omd模型分配" settings
|
|
13
|
+
# section. Install with:
|
|
7
14
|
# dsh plugin --profile web add @carljia/omd-dsh # then restart dsh.
|
|
8
15
|
- insert:
|
|
9
16
|
- id: omd-dsh
|
|
10
|
-
name: '@carljia/omd-dsh
|
|
17
|
+
name: '@carljia/omd-dsh'
|
package/lib/boot.d.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* omd-dsh bundle boot row: materialize the 7 OMD agent presets into the user
|
|
5
5
|
* preset root (<DSH_HOME>/.agent-presets) when the profile boots, so
|
|
6
6
|
* "dsh plugin add @carljia/omd-dsh" + a restart is the whole install — no
|
|
7
|
-
* manual "omd-dsh sync" needed.
|
|
7
|
+
* manual "omd-dsh sync" and no harness configuration needed.
|
|
8
8
|
*
|
|
9
9
|
* The sync is idempotent (hash-aware, conflict-protected) and reuses the same
|
|
10
|
-
* core as the "omd-dsh sync" CLI. The
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* core as the "omd-dsh sync" CLI. The vendored rows are self-contained
|
|
11
|
+
* bundles (see scripts/postbuild.mjs), so the sync needs no harness tree
|
|
12
|
+
* knowledge and cannot break on harness/profile layout differences.
|
|
13
13
|
*
|
|
14
14
|
* A sync failure is logged, not thrown: a broken omd-dsh should never brick
|
|
15
15
|
* the host's boot.
|
package/lib/boot.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { runSync
|
|
1
|
+
import { runSync } from "./sync.js";
|
|
2
2
|
/**
|
|
3
3
|
* @module @carljia/omd-dsh/boot
|
|
4
4
|
*
|
|
5
5
|
* omd-dsh bundle boot row: materialize the 7 OMD agent presets into the user
|
|
6
6
|
* preset root (<DSH_HOME>/.agent-presets) when the profile boots, so
|
|
7
7
|
* "dsh plugin add @carljia/omd-dsh" + a restart is the whole install — no
|
|
8
|
-
* manual "omd-dsh sync" needed.
|
|
8
|
+
* manual "omd-dsh sync" and no harness configuration needed.
|
|
9
9
|
*
|
|
10
10
|
* The sync is idempotent (hash-aware, conflict-protected) and reuses the same
|
|
11
|
-
* core as the "omd-dsh sync" CLI. The
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* core as the "omd-dsh sync" CLI. The vendored rows are self-contained
|
|
12
|
+
* bundles (see scripts/postbuild.mjs), so the sync needs no harness tree
|
|
13
|
+
* knowledge and cannot break on harness/profile layout differences.
|
|
14
14
|
*
|
|
15
15
|
* A sync failure is logged, not thrown: a broken omd-dsh should never brick
|
|
16
16
|
* the host's boot.
|
|
@@ -32,12 +32,7 @@ function log(ctx, level, message) {
|
|
|
32
32
|
}
|
|
33
33
|
export async function apply(ctx) {
|
|
34
34
|
try {
|
|
35
|
-
|
|
36
|
-
if (harness === undefined) {
|
|
37
|
-
log(ctx, "error", "omd-dsh: cannot locate the DSH harness node_modules — presets were not synced. Run `omd-dsh sync --harness <path>` once to point it at the harness, then restart.");
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
await runSync({ harness: undefined, dryRun: false, verbose: false }, harness, (message) => log(ctx, "info", message));
|
|
35
|
+
await runSync({ dryRun: false, verbose: false }, (message) => log(ctx, "info", message));
|
|
41
36
|
}
|
|
42
37
|
catch (error) {
|
|
43
38
|
log(ctx, "error", "omd-dsh: preset sync failed: " + (error instanceof Error ? error.message : String(error)));
|
package/lib/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { createInterface } from "node:readline/promises";
|
|
5
|
-
import { runSync,
|
|
5
|
+
import { runSync, loadMatrix, saveMatrix, dshHome, MATRIX_PATH, } from "./sync.js";
|
|
6
6
|
/**
|
|
7
7
|
* omd-dsh CLI
|
|
8
8
|
*
|
|
@@ -15,7 +15,9 @@ import { runSync, resolveHarness, loadMatrix, saveMatrix, dshHome, MATRIX_PATH,
|
|
|
15
15
|
*
|
|
16
16
|
* The sync core lives in ./sync.js and is also invoked automatically by the
|
|
17
17
|
* bundle boot row (lib/boot.js), so `dsh plugin add @carljia/omd-dsh` + restart
|
|
18
|
-
* installs the presets without this CLI.
|
|
18
|
+
* installs the presets without this CLI. The vendored rows are self-contained
|
|
19
|
+
* bundles: no `--harness` flag exists because the sync needs no harness tree
|
|
20
|
+
* knowledge.
|
|
19
21
|
*/
|
|
20
22
|
function usage() {
|
|
21
23
|
return [
|
|
@@ -25,7 +27,6 @@ function usage() {
|
|
|
25
27
|
" setup interactive: discover DSH models, then guide per-mode/tier model selection",
|
|
26
28
|
" models print the discovered DSH model catalog",
|
|
27
29
|
" options:",
|
|
28
|
-
" --harness <path> node_modules dir of the DSH harness install (saved locally after first use; otherwise auto-detected)",
|
|
29
30
|
" --dry-run (sync) print planned writes without touching the filesystem",
|
|
30
31
|
" --verbose (sync) print per-file detail",
|
|
31
32
|
].join("\n");
|
|
@@ -73,7 +74,7 @@ function splitModel(answer) {
|
|
|
73
74
|
}
|
|
74
75
|
return { provider: "deepseek-official", model: a };
|
|
75
76
|
}
|
|
76
|
-
async function runSetup(flags
|
|
77
|
+
async function runSetup(flags) {
|
|
77
78
|
const matrix = loadMatrix(flags);
|
|
78
79
|
const { models, currentDefault } = discoverModels();
|
|
79
80
|
console.log("omd-dsh setup: 发现 DSH 已有模型:");
|
|
@@ -112,12 +113,7 @@ async function runSetup(flags, harnessNodeModules) {
|
|
|
112
113
|
const syncNow = await ask("是否立即同步到 " + join(dshHome(), ".agent-presets") + "? [Y/n] ");
|
|
113
114
|
rl.close();
|
|
114
115
|
if (syncNow === "" || /^y/i.test(syncNow)) {
|
|
115
|
-
|
|
116
|
-
console.error("omd-dsh setup: 无法定位 DSH harness node_modules,跳过同步。首次请运行 `omd-dsh sync --harness <路径>`(之后会自动缓存,无需重复指定)。");
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
await runSync(flags, harnessNodeModules);
|
|
120
|
-
}
|
|
116
|
+
await runSync(flags);
|
|
121
117
|
}
|
|
122
118
|
else {
|
|
123
119
|
console.log("omd-dsh setup: 已跳过同步;稍后运行 `omd-dsh sync` 生效。");
|
|
@@ -130,9 +126,7 @@ async function main() {
|
|
|
130
126
|
let command = "";
|
|
131
127
|
for (let i = 0; i < argv.length; i++) {
|
|
132
128
|
const arg = argv[i];
|
|
133
|
-
if (arg === "--
|
|
134
|
-
flags.harness = argv[++i];
|
|
135
|
-
else if (arg === "--dry-run")
|
|
129
|
+
if (arg === "--dry-run")
|
|
136
130
|
flags.dryRun = true;
|
|
137
131
|
else if (arg === "--verbose")
|
|
138
132
|
flags.verbose = true;
|
|
@@ -163,16 +157,10 @@ async function main() {
|
|
|
163
157
|
return;
|
|
164
158
|
}
|
|
165
159
|
if (command === "setup") {
|
|
166
|
-
await runSetup(flags
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
const harnessNodeModules = resolveHarness(flags);
|
|
170
|
-
if (harnessNodeModules === undefined || !existsSync(join(harnessNodeModules, "@deepseek-ai", "dsh-scope", "package.json"))) {
|
|
171
|
-
console.error("omd-dsh sync: cannot locate the DSH harness node_modules.\n - ensure the dsh executable is on PATH, or\n - pass --harness <path to the harness node_modules directory> (saved for later runs).\n\n" + usage());
|
|
172
|
-
process.exitCode = 2;
|
|
160
|
+
await runSetup(flags);
|
|
173
161
|
return;
|
|
174
162
|
}
|
|
175
|
-
await runSync(flags
|
|
163
|
+
await runSync(flags);
|
|
176
164
|
}
|
|
177
165
|
main().catch((error) => {
|
|
178
166
|
console.error("omd-dsh failed: " + (error instanceof Error ? error.message : String(error)));
|
package/lib/client.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { OmdMatrixController } from "./omd-matrix-controller.js";
|
|
3
|
+
import type { OmdScope } from "./omd-matrix-controller.js";
|
|
4
|
+
/** Cordis services this browser plugin requires (fiber service waiting). */
|
|
5
|
+
export declare const inject: string[];
|
|
6
|
+
export declare function apply(ctx: any): void;
|
|
7
|
+
export declare function OmdModelAllocationSection(props: {
|
|
8
|
+
scope: OmdScope;
|
|
9
|
+
controller: OmdMatrixController;
|
|
10
|
+
t: (key: string) => string;
|
|
11
|
+
}): React.ReactElement;
|