agentworkshop 0.9.0 → 0.9.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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/247a0d5c-de27-46a4-8f76-3e64affe9473.json +1 -0
- package/.output/server/chunks/_/nitro.mjs +1186 -926
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs +81 -16
- package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +3 -3
- package/README.md +3 -3
- package/config.yml +1 -1
- package/docs/cli.en.md +2 -2
- package/docs/cli.md +2 -2
- package/docs/plugins.en.md +1 -1
- package/docs/plugins.md +1 -1
- package/docs/sdk.en.md +1 -1
- package/docs/sdk.md +1 -1
- package/package.json +1 -1
- package/scripts/acceptance-scientific-loop.ts +16 -0
- package/server/services/workshop/agents/industrial/optimization-tools.ts +16 -0
- package/server/services/workshop/aml/intervention-ledger.ts +12 -4
- package/server/services/workshop/aml/twin/cross-check-service.ts +114 -0
- package/server/services/workshop/process-model/experiment-runner.ts +48 -4
- package/server/services/workshop/process-model/experiment.ts +6 -0
- package/server/services/workshop/process-model/plan-safety.ts +69 -0
- package/.output/public/_nuxt/builds/meta/f507c33b-4ecc-4e32-af88-2e3736b443e9.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiments.mjs","sources":["../../../../../../../server/services/workshop/process-model/experiment-runner.ts","../../../../../../../server/services/workshop/process-model/experiment.ts","../../../../../../../server/api/workshop/process-model/experiments.ts"],"names":["_a","row","id","lineId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"experiments.mjs","sources":["../../../../../../../server/services/workshop/process-model/plan-safety.ts","../../../../../../../server/services/workshop/process-model/experiment-runner.ts","../../../../../../../server/services/workshop/process-model/experiment.ts","../../../../../../../server/api/workshop/process-model/experiments.ts"],"names":["_a","row","id","lineId"],"mappings":"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"}
|
package/README-zh.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
[](https://kingdol666.github.io/AgentWorkShop)
|
|
27
27
|
**[English](./README.md)** · **[在线文档](https://kingdol666.github.io/AgentWorkShop)** · **[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)** · **[更新日志](./changelog.md)** · **[插件 API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)**
|
|
28
28
|
|
|
29
|
-
<sub><b>v0.9.
|
|
29
|
+
<sub><b>v0.9.1</b> · 14 个执行引擎 · 6 种现场协议(5 内置 + 串口插件)+ MES REST 集成(镜像与直连双路径)· 数据分析台账(产线级权限隔离)· 工艺参数优化器(过程模型 → AML → OSQP 求解 → 治理下发)· **本体服务 + AI 先行模型闭环**(本体 · 孪生 · 求解器 · AML 采纳)· 107 个宿主工具 · 140 个运行时设置项 · 双语文档(简体中文 / English)</sub>
|
|
30
30
|
|
|
31
31
|
<br />
|
|
32
32
|
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
</p>
|
|
60
60
|
|
|
61
61
|
> [!NOTE]
|
|
62
|
-
> 本 README 中的每一张图都是**运行中实例**的截图(v0.9.
|
|
62
|
+
> 本 README 中的每一张图都是**运行中实例**的截图(v0.9.1 生产构建),没有一张是效果图。
|
|
63
63
|
|
|
64
64
|
<p align="center">
|
|
65
65
|
<a href="https://kingdol666.github.io/AgentWorkShop/demo/player.html">
|
|
@@ -250,6 +250,6 @@ aw start # → http://localhost:3001,一切初始化
|
|
|
250
250
|
|
|
251
251
|
**如果这个项目对你有用,点一个 ⭐ 能让更多人找到它。**
|
|
252
252
|
|
|
253
|
-
当前版本:**v0.9.
|
|
253
|
+
当前版本:**v0.9.1** —— [版本发布](https://github.com/kingdol666/AgentWorkShop/releases) · [更新日志](./changelog.md) · [在线文档](https://kingdol666.github.io/AgentWorkShop)
|
|
254
254
|
|
|
255
255
|
</div>
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
[](https://kingdol666.github.io/AgentWorkShop)
|
|
27
27
|
**[简体中文](./README-zh.md)** · **[Documentation](https://kingdol666.github.io/AgentWorkShop)** · **[Releases](https://github.com/kingdol666/AgentWorkShop/releases)** · **[Changelog](./changelog.md)** · **[Plugin API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)**
|
|
28
28
|
|
|
29
|
-
<sub><b>v0.9.
|
|
29
|
+
<sub><b>v0.9.1</b> · 14 engines · 6 field protocols (5 built-in + serial plugin) + MES REST integration (mirror & live) · data-analysis ledger with line-scoped permissions · process optimizer (process model → AML → OSQP solver → governed dispatch) · **ontology service + AI-first model loop** (ontology · twin · solver · AML adoption) · 107 host tools · 140 runtime settings · bilingual docs (简体中文 / English)</sub>
|
|
30
30
|
|
|
31
31
|
<br />
|
|
32
32
|
|
|
@@ -58,7 +58,7 @@ A configuration-driven platform where **AI agent teams** and an **industrial pro
|
|
|
58
58
|
</p>
|
|
59
59
|
|
|
60
60
|
> [!NOTE]
|
|
61
|
-
> Every image in this README is a screenshot of a **running instance** (v0.9.
|
|
61
|
+
> Every image in this README is a screenshot of a **running instance** (v0.9.1 production build) — none are mock-ups.
|
|
62
62
|
|
|
63
63
|
<p align="center">
|
|
64
64
|
<a href="https://kingdol666.github.io/AgentWorkShop/demo/player.html">
|
|
@@ -249,6 +249,6 @@ Please **do not** open public issues for vulnerabilities — report privately vi
|
|
|
249
249
|
|
|
250
250
|
**If this project is useful to you, a ⭐ helps others find it.**
|
|
251
251
|
|
|
252
|
-
Current version: **v0.9.
|
|
252
|
+
Current version: **v0.9.1** — [Releases](https://github.com/kingdol666/AgentWorkShop/releases) · [Changelog](./changelog.md) · [Documentation](https://kingdol666.github.io/AgentWorkShop)
|
|
253
253
|
|
|
254
254
|
</div>
|
package/config.yml
CHANGED
package/docs/cli.en.md
CHANGED
|
@@ -62,7 +62,7 @@ pnpm tui # the terminal workbench
|
|
|
62
62
|
### 3. Quick use via npx (no global install)
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
npx agentworkshop start # fetch and start (pin a version with: npx agentworkshop@0.9.
|
|
65
|
+
npx agentworkshop start # fetch and start (pin a version with: npx agentworkshop@0.9.1 start)
|
|
66
66
|
npx agentworkshop doctor # subcommands work as usual
|
|
67
67
|
npx -p agentworkshop aw doctor # use -p when you want the name aw
|
|
68
68
|
```
|
|
@@ -79,7 +79,7 @@ npx -p agentworkshop aw doctor # use -p when you want the name aw
|
|
|
79
79
|
| Package manager | `pnpm@11.9.0` (`packageManager`, needed only for source development) |
|
|
80
80
|
| Module format | ESM (`type: module`) |
|
|
81
81
|
| License | `Apache-2.0` |
|
|
82
|
-
| Current version | `0.9.
|
|
82
|
+
| Current version | `0.9.1` (`package.json`) |
|
|
83
83
|
|
|
84
84
|
## 2. First start (the Claude Code experience)
|
|
85
85
|
|
package/docs/cli.md
CHANGED
|
@@ -60,7 +60,7 @@ pnpm tui # 终端工作台
|
|
|
60
60
|
### 3. npx 快速使用(免全局安装)
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
npx agentworkshop start # 拉取并启动(可锁定版本: npx agentworkshop@0.9.
|
|
63
|
+
npx agentworkshop start # 拉取并启动(可锁定版本: npx agentworkshop@0.9.1 start)
|
|
64
64
|
npx agentworkshop doctor # 子命令照常可用
|
|
65
65
|
npx -p agentworkshop aw doctor # 需要 aw 这个名字时用 -p 指定包
|
|
66
66
|
```
|
|
@@ -76,7 +76,7 @@ npx -p agentworkshop aw doctor # 需要 aw 这个名字时用 -p 指定包
|
|
|
76
76
|
| 包管理器 | `pnpm@11.9.0`(`packageManager`,仅源码开发需要) |
|
|
77
77
|
| 模块形态 | ESM(`type: module`) |
|
|
78
78
|
| 许可证 | `Apache-2.0` |
|
|
79
|
-
| 当前版本 | `0.9.
|
|
79
|
+
| 当前版本 | `0.9.1`(`package.json`) |
|
|
80
80
|
|
|
81
81
|
## 二、首次启动(Claude Code 式)
|
|
82
82
|
|
package/docs/plugins.en.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
>
|
|
10
10
|
> Applies to: plugin system v2 has been available since **v0.7.29** (frontend component
|
|
11
11
|
> injection / plugin settings / plugin i18n / runtime services surface); this document
|
|
12
|
-
> describes **v0.9.
|
|
12
|
+
> describes **v0.9.1**. `ctx.sdkVersion` is currently `0.3.0`.
|
|
13
13
|
|
|
14
14
|
## 1. Folder layout & quick start
|
|
15
15
|
|
package/docs/plugins.md
CHANGED
package/docs/sdk.en.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
**SDK version constants**: server-side `SDK_VERSION = '0.3.0'`, browser-side `CLIENT_SDK_VERSION = '0.3.0'`.
|
|
9
9
|
These two constants are the **interface version of the SDK itself** and evolve **independently**
|
|
10
|
-
from the npm package version (the `version` field in `package.json`, currently 0.9.
|
|
10
|
+
from the npm package version (the `version` field in `package.json`, currently 0.9.1) —
|
|
11
11
|
them being out of sync is expected. Never use `SDK_VERSION` to infer the package version, or the reverse.
|
|
12
12
|
**Module format**: ESM only (only `import` / `export`; there is no CJS entry).
|
|
13
13
|
**Types**: `sdk/index.d.mts` and `sdk/client.d.mts` ship with the package, so TypeScript projects
|
package/docs/sdk.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
> 零第三方运行时依赖,Node ≥ 23.4 与现代浏览器双端可用。
|
|
6
6
|
|
|
7
7
|
**SDK 版本常量**:服务端 `SDK_VERSION = '0.3.0'`,浏览器端 `CLIENT_SDK_VERSION = '0.3.0'`。
|
|
8
|
-
这两个常量是 **SDK 自身接口的版本号**,与 npm 包版本(`package.json` 的 `version`,当前 0.9.
|
|
8
|
+
这两个常量是 **SDK 自身接口的版本号**,与 npm 包版本(`package.json` 的 `version`,当前 0.9.1)
|
|
9
9
|
**各自独立演进** —— 常数不同步是预期行为,不要拿 `SDK_VERSION` 去推断包版本,反之亦然。
|
|
10
10
|
**模块形态**:ESM only(只有 `import` / `export`,没有 CJS 入口)。
|
|
11
11
|
**类型**:`sdk/index.d.mts`、`sdk/client.d.mts` 随包发布,TS 项目零配置获得提示(覆盖范围见 §7)。
|
package/package.json
CHANGED
|
@@ -85,6 +85,10 @@ function series(beats: number): number[] {
|
|
|
85
85
|
return out
|
|
86
86
|
}
|
|
87
87
|
const targetId = 'daq-sci-thickness'
|
|
88
|
+
// 计划安全校验要求观测目标是同线 DAQ 节点:登记一个 mock 数采节点(判读走注入序列)
|
|
89
|
+
const { DaqNode } = await import('../server/services/workshop/daq/daq-node')
|
|
90
|
+
const { getDaqNodeRepo } = await import('../server/services/workshop/daq/daq-node.repo')
|
|
91
|
+
getDaqNodeRepo().insert(new DaqNode({ id: targetId, templateRef: 'temp-tc', driver: 'mock', intervalMs: 1000, lineId: line.id } as ConstructorParameters<typeof DaqNode>[0]))
|
|
88
92
|
/** 按请求窗长生成拍数(生产语义:读多长窗就得多少拍) */
|
|
89
93
|
const beatsOf = (from: number, to: number): number => Math.max(60, Math.ceil((to - from) / 1000))
|
|
90
94
|
/** Leg A(事故形态):按窗长生成 282 拍周期振荡 —— 长历史能估出周期,短窗只能判欠功效 */
|
|
@@ -117,6 +121,18 @@ catch (err) {
|
|
|
117
121
|
}
|
|
118
122
|
check('E2E-1d', '未批准执行被拒(HITL 是硬门)', rejected)
|
|
119
123
|
|
|
124
|
+
// 跨线注入负例:计划属 A 线却点名 B 线节点 → 创建即拒(批准后执行器平台身份直写,必须前移)
|
|
125
|
+
const otherLine = getDcwLineRepo().create({ name: '科学闭环他线', simulated: false })
|
|
126
|
+
const otherSp = getDcwController().create({ name: '他线压力SP', templateRef: 'pressure-sp', driver: 'mock', driverConfig: { key: 'sci-other' }, min: 0.6, max: 1.2, lineId: otherLine.id, maxStep: 0.2 } as Parameters<ReturnType<typeof getDcwController>['create']>[0])
|
|
127
|
+
let crossLineRejected = false
|
|
128
|
+
try {
|
|
129
|
+
createExperimentPlan({ lineId: line.id, levels: { [otherSp.id]: [1.2, 1.1] }, repeats: 1 })
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
crossLineRejected = /禁止跨线试验/.test(err instanceof Error ? err.message : String(err))
|
|
133
|
+
}
|
|
134
|
+
check('E2E-1h', '跨线计划创建即拒(禁止写别的产线)', crossLineRejected)
|
|
135
|
+
|
|
120
136
|
const approved = approveExperimentPlan(plan.id, 'rest:u-accept:1', 'u-accept')
|
|
121
137
|
check('E2E-1e', '人工批准后转 planned 并留痕', approved.status === 'planned' && parsePlan(approved).approvalId === 'rest:u-accept:1')
|
|
122
138
|
|
|
@@ -20,6 +20,7 @@ import { resolveRefFaces } from './tool-verify'
|
|
|
20
20
|
// P1/P2(科学探索计划):可辨识性前置门 + 引擎判读 + 台账回填
|
|
21
21
|
import { assessIdentifiability } from '../../aml/identifiability'
|
|
22
22
|
import { attachExplorationVerdict, explorationIdentifiabilityPreflight, identGateEnabled, identifiabilityLearningText, periodHintFromSeries, readTargetWindow } from './identifiability-tools'
|
|
23
|
+
import { preDispatchCrossCheck } from '../../aml/twin/cross-check-service'
|
|
23
24
|
|
|
24
25
|
const sleep = (ms: number) => new Promise(r => setTimeout(r, ms))
|
|
25
26
|
|
|
@@ -87,6 +88,20 @@ export async function toolOptimizationExplore(agentId: string, args: {
|
|
|
87
88
|
const gate = await explorationIdentifiabilityPreflight(controlNodeId)
|
|
88
89
|
if (gate.blocked) return { text: gate.text, isError: true }
|
|
89
90
|
|
|
91
|
+
// P5 双通道互审(强制):模型通道(ARX 增益)vs 本体通道(耦合边)。
|
|
92
|
+
// 只有确证冲突才拒;未绑模型/无已发布本体 = unknown 不拦(缺证据不是反证)。
|
|
93
|
+
// manual 模式下冲突交审批卡(卡上带科学载荷),auto 模式下直接拒。
|
|
94
|
+
const channelAuto = (profile.executionMode ?? 'auto') !== 'manual' && profile.controlPolicy !== 'hitl_governed'
|
|
95
|
+
const crossCheck = preDispatchCrossCheck({
|
|
96
|
+
lineId: node.lineId ?? '',
|
|
97
|
+
controlNodeId,
|
|
98
|
+
targetNodeId,
|
|
99
|
+
proposedDelta: target - controlBefore,
|
|
100
|
+
channelId,
|
|
101
|
+
auto: channelAuto,
|
|
102
|
+
})
|
|
103
|
+
if (crossCheck.blocked) return { text: crossCheck.text, isError: true }
|
|
104
|
+
|
|
90
105
|
// 真实写入:复用 dcw_control 全治理链(手动绑定会挂 HITL,auto+bounded 走限界直写)
|
|
91
106
|
const settleSec = Math.min(300, Math.max(10, Number(args.settle_seconds ?? 45)))
|
|
92
107
|
const writeAtMs = Date.now()
|
|
@@ -165,6 +180,7 @@ export async function toolOptimizationExplore(agentId: string, args: {
|
|
|
165
180
|
`探索记录已归档,可在 AML 界面与训练数据回流中使用。`,
|
|
166
181
|
]
|
|
167
182
|
if (gate.hint) lines.push(` 提示: ${gate.hint}`)
|
|
183
|
+
for (const w of crossCheck.warnings) lines.push(` ⚠ ${w}`)
|
|
168
184
|
return { text: lines.join('\n') }
|
|
169
185
|
}
|
|
170
186
|
catch (err) {
|
|
@@ -24,6 +24,14 @@ export interface InterventionCriterion {
|
|
|
24
24
|
mde?: number
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/** 台账判定态(DB 里是 TEXT;读取时收敛到该联合类型) */
|
|
28
|
+
export type InterventionVerdict = 'pending'
|
|
29
|
+
| 'unassessed'
|
|
30
|
+
| 'identifiable_effect'
|
|
31
|
+
| 'no_resolvable_effect'
|
|
32
|
+
| 'underpowered'
|
|
33
|
+
| 'confounded'
|
|
34
|
+
|
|
27
35
|
export interface InterventionRecordInput {
|
|
28
36
|
nodeId: string
|
|
29
37
|
nodeName?: string
|
|
@@ -69,7 +77,7 @@ export interface InterventionEventRow {
|
|
|
69
77
|
targetNodeId: string | null
|
|
70
78
|
criterion: InterventionCriterion | null
|
|
71
79
|
settleMs: number | null
|
|
72
|
-
verdict:
|
|
80
|
+
verdict: InterventionVerdict
|
|
73
81
|
effect: number | null
|
|
74
82
|
ciLow: number | null
|
|
75
83
|
ciHigh: number | null
|
|
@@ -111,7 +119,7 @@ function mapRow(r: Record<string, unknown>): InterventionEventRow {
|
|
|
111
119
|
targetNodeId: (r.target_node_id as string | null) ?? null,
|
|
112
120
|
criterion: (parse(r.criterion_json) as InterventionCriterion | null) ?? null,
|
|
113
121
|
settleMs: num(r.settle_ms),
|
|
114
|
-
verdict: String(r.verdict ?? 'pending'),
|
|
122
|
+
verdict: String(r.verdict ?? 'pending') as InterventionVerdict,
|
|
115
123
|
effect: num(r.effect),
|
|
116
124
|
ciLow: num(r.ci_low),
|
|
117
125
|
ciHigh: num(r.ci_high),
|
|
@@ -148,7 +156,7 @@ export function recordIntervention(input: InterventionRecordInput): string | nul
|
|
|
148
156
|
export function attachAssessment(
|
|
149
157
|
id: string,
|
|
150
158
|
assessment: {
|
|
151
|
-
verdict:
|
|
159
|
+
verdict: Exclude<InterventionVerdict, 'pending'>
|
|
152
160
|
effect?: number | null
|
|
153
161
|
ciLow?: number | null
|
|
154
162
|
ciHigh?: number | null
|
|
@@ -175,7 +183,7 @@ export function attachAssessment(
|
|
|
175
183
|
}
|
|
176
184
|
|
|
177
185
|
/** 引擎 verdict → 台账 verdict 映射(INSUFFICIENT_DATA 归 unassessed,如实"未判") */
|
|
178
|
-
export function verdictCodeOf(engine: IdentifiabilityVerdict):
|
|
186
|
+
export function verdictCodeOf(engine: IdentifiabilityVerdict): Exclude<InterventionVerdict, 'pending'> {
|
|
179
187
|
switch (engine.verdict) {
|
|
180
188
|
case 'IDENTIFIABLE':
|
|
181
189
|
return engine.significant ? 'identifiable_effect' : 'no_resolvable_effect'
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 下发前双通道互审的**服务态**(P5 补全,2026-11-02 上线前加固):
|
|
3
|
+
* 纯判定在 cross-check.ts;本模块负责取证据并接到探索下发路径上:
|
|
4
|
+
* - 模型通道:渠道绑定模型(aml_channel_profiles.bound_model_id)的 ARX 工件
|
|
5
|
+
* (model.json 的 A/B/C/D + io_spec 的 mvOrder/cvOrder/norm),阶跃仿真求稳态增益;
|
|
6
|
+
* 非 ARX 工件/OOD 无工件一律 unknown(**不拦**:缺证据不是反证);
|
|
7
|
+
* - 本体通道:已发布本体的 actuator→target 耦合边(含干预回灌的 support/refute 计数);
|
|
8
|
+
* - 逃生门 AW_CROSSCHECK_GATE=0 关闭强制(仅保留告警)。
|
|
9
|
+
* 只有"确证冲突"才拒(模型有效应 & 本体明确无路径,或反之);manual 模式交给 HITL 卡。
|
|
10
|
+
*/
|
|
11
|
+
import { readFileSync } from 'node:fs'
|
|
12
|
+
import { join } from 'node:path'
|
|
13
|
+
import { getAmlRuntime } from '../runtime'
|
|
14
|
+
import { parseIoSpec } from '../model-registry'
|
|
15
|
+
import { getChannelTwinProfile } from './channel-profile'
|
|
16
|
+
import { resolveCouplingFromOntology } from '../ontology-learning'
|
|
17
|
+
import { evaluateCrossCheck, scientificPayloadLines, type CrossCheckResult } from './cross-check'
|
|
18
|
+
import type { ArxArtifactLike } from '../action-coverage'
|
|
19
|
+
|
|
20
|
+
export function crossCheckGateEnabled(): boolean {
|
|
21
|
+
return process.env.AW_CROSSCHECK_GATE !== '0'
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ModelChannelResolution {
|
|
25
|
+
artifact: ArxArtifactLike | null
|
|
26
|
+
modelId?: string
|
|
27
|
+
reason: string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** 渠道绑定模型 → ARX 工件(含 norm 供物理单位换算);不可用时如实给 reason */
|
|
31
|
+
export function resolveModelChannel(channelId: string | undefined): ModelChannelResolution {
|
|
32
|
+
if (!channelId) return { artifact: null, reason: '无频道上下文,模型通道 unknown' }
|
|
33
|
+
let boundModelId: string | undefined
|
|
34
|
+
try {
|
|
35
|
+
boundModelId = getChannelTwinProfile(channelId).boundModelId
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return { artifact: null, reason: '频道 profile 不可读,模型通道 unknown' }
|
|
39
|
+
}
|
|
40
|
+
if (!boundModelId) return { artifact: null, reason: '频道未绑定 AML 模型,模型通道 unknown' }
|
|
41
|
+
try {
|
|
42
|
+
const row = getAmlRuntime().repo.model.get(boundModelId)
|
|
43
|
+
if (!row) return { artifact: null, modelId: boundModelId, reason: '绑定模型已不存在,模型通道 unknown' }
|
|
44
|
+
const artifact = JSON.parse(readFileSync(join(row.path, 'model.json'), 'utf8')) as Record<string, unknown>
|
|
45
|
+
if (artifact.kind !== 'linear_state_space@1') {
|
|
46
|
+
return { artifact: null, modelId: boundModelId, reason: `工件类型 ${String(artifact.kind)} 暂不支持动作敏感度(仅 ARX),模型通道 unknown` }
|
|
47
|
+
}
|
|
48
|
+
const io = parseIoSpec(row) as unknown as {
|
|
49
|
+
mvOrder?: string[]
|
|
50
|
+
cvOrder?: string[]
|
|
51
|
+
norm?: { u: { mean: number[], std: number[] }, y: { mean: number[], std: number[] } }
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
artifact: {
|
|
55
|
+
A: artifact.A as number[][],
|
|
56
|
+
B: artifact.B as number[][],
|
|
57
|
+
C: artifact.C as number[][],
|
|
58
|
+
D: artifact.D as number[][],
|
|
59
|
+
mvOrder: (artifact.mvOrder as string[]) ?? io.mvOrder ?? [],
|
|
60
|
+
cvOrder: (artifact.cvOrder as string[]) ?? io.cvOrder ?? [],
|
|
61
|
+
...(io.norm ? { norm: io.norm } : {}),
|
|
62
|
+
},
|
|
63
|
+
modelId: boundModelId,
|
|
64
|
+
reason: '模型通道就绪(ARX 阶跃仿真)',
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return { artifact: null, modelId: boundModelId, reason: `工件读取失败(${err instanceof Error ? err.message : String(err)}),模型通道 unknown` }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface DispatchCrossCheckInput {
|
|
73
|
+
lineId: string
|
|
74
|
+
controlNodeId: string
|
|
75
|
+
targetNodeId: string
|
|
76
|
+
/** 拟下发步长(物理单位,有正负) */
|
|
77
|
+
proposedDelta: number
|
|
78
|
+
channelId?: string
|
|
79
|
+
/** true=自动执行路径(冲突直接拒);false=需人工批准路径(冲突进审批卡) */
|
|
80
|
+
auto: boolean
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface DispatchCrossCheckOutcome {
|
|
84
|
+
blocked: boolean
|
|
85
|
+
text: string
|
|
86
|
+
warnings: string[]
|
|
87
|
+
result: CrossCheckResult
|
|
88
|
+
modelReason: string
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function preDispatchCrossCheck(input: DispatchCrossCheckInput): DispatchCrossCheckOutcome {
|
|
92
|
+
const model = resolveModelChannel(input.channelId)
|
|
93
|
+
const ontology = resolveCouplingFromOntology(input.lineId, input.controlNodeId, input.targetNodeId)
|
|
94
|
+
const result = evaluateCrossCheck({
|
|
95
|
+
controlNodeId: input.controlNodeId,
|
|
96
|
+
targetNodeId: input.targetNodeId,
|
|
97
|
+
proposedDelta: input.proposedDelta,
|
|
98
|
+
auto: input.auto,
|
|
99
|
+
model: { artifact: model.artifact, targetNodeId: input.targetNodeId },
|
|
100
|
+
ontology: { hasCouplingPath: ontology.hasCouplingPath, evidence: ontology.evidence },
|
|
101
|
+
})
|
|
102
|
+
const enabled = crossCheckGateEnabled()
|
|
103
|
+
const blocked = enabled && result.decision === 'reject'
|
|
104
|
+
const lines = scientificPayloadLines(result.payload)
|
|
105
|
+
const text = [
|
|
106
|
+
blocked ? '互审拒绝(双通道确证冲突),本次下发未执行:' : '互审通过(未发现确证冲突)',
|
|
107
|
+
...result.conflicts.map(c => ` ✗ ${c}`),
|
|
108
|
+
...result.warnings.map(w => ` ⚠ ${w}`),
|
|
109
|
+
` [模型通道] ${model.reason}`,
|
|
110
|
+
...lines.map(l => ` ${l}`),
|
|
111
|
+
blocked ? ' 处置:改用人工审批(manual)并由审批人写明理由;或先补数据集/重训模型/更新本体断言。' : '',
|
|
112
|
+
].filter(Boolean)
|
|
113
|
+
return { blocked, text: text.join('\n'), warnings: result.warnings, result, modelReason: model.reason }
|
|
114
|
+
}
|
|
@@ -25,6 +25,7 @@ import { getExperimentPlan, updateExperimentStatus, type ExperimentPlanRow } fro
|
|
|
25
25
|
import { assessIdentifiability, dominantPeriod } from '../aml/identifiability'
|
|
26
26
|
import { attachAssessment, listInterventions, verdictCodeOf, verdictDetailOf } from '../aml/intervention-ledger'
|
|
27
27
|
import { backfillInterventionEvidence } from '../aml/ontology-learning'
|
|
28
|
+
import { assertPlanNodesSafe } from './plan-safety'
|
|
28
29
|
|
|
29
30
|
export interface ExperimentPlanBody {
|
|
30
31
|
version: 1
|
|
@@ -47,6 +48,9 @@ export interface ExperimentPlanBody {
|
|
|
47
48
|
approvalId?: string
|
|
48
49
|
approvedBy?: string
|
|
49
50
|
approvedAt?: string
|
|
51
|
+
/** 人工取消凭据(运行中每步前被感知) */
|
|
52
|
+
cancelledBy?: string
|
|
53
|
+
cancelledAt?: string
|
|
50
54
|
note?: string
|
|
51
55
|
}
|
|
52
56
|
|
|
@@ -146,6 +150,23 @@ export function parsePlan(row: ExperimentPlanRow): ExperimentPlanBody {
|
|
|
146
150
|
return JSON.parse(row.planJson) as ExperimentPlanBody
|
|
147
151
|
}
|
|
148
152
|
|
|
153
|
+
/**
|
|
154
|
+
* 人工取消计划(运行中/待批准/已计划均可)。
|
|
155
|
+
* 执行器每步前读状态,感知到 cancelled 即停;已执行步的台账/证据保留。
|
|
156
|
+
*/
|
|
157
|
+
export function cancelExperimentPlan(id: string, actor: string): ExperimentPlanRow {
|
|
158
|
+
const row = getExperimentPlan(id)
|
|
159
|
+
if (!row) throw new AppError(404, 'EXPERIMENT_PLAN_NOT_FOUND', `试验计划 ${id} 不存在`)
|
|
160
|
+
if (row.status === 'done' || row.status === 'failed' || row.status === 'cancelled') {
|
|
161
|
+
throw new AppError(409, 'EXPERIMENT_STATUS_INVALID', `计划 ${id} 已是终态 ${row.status},无需取消`)
|
|
162
|
+
}
|
|
163
|
+
const plan = parsePlan(row)
|
|
164
|
+
const next: ExperimentPlanBody = { ...plan, cancelledBy: actor, cancelledAt: new Date().toISOString() }
|
|
165
|
+
getAmlRuntime().db.prepare('UPDATE process_model_experiments SET plan_json = ?, status = \'cancelled\', updated_at = ? WHERE id = ?')
|
|
166
|
+
.run(JSON.stringify(next), new Date().toISOString(), id)
|
|
167
|
+
return getExperimentPlan(id)!
|
|
168
|
+
}
|
|
169
|
+
|
|
149
170
|
/** 真实线批准:awaiting_approval → planned(记录批准凭据;幂等) */
|
|
150
171
|
export function approveExperimentPlan(id: string, approvalId: string, approvedBy: string): ExperimentPlanRow {
|
|
151
172
|
const row = getExperimentPlan(id)
|
|
@@ -230,7 +251,18 @@ export async function runExperimentPlan(id: string, deps: ExperimentRunnerDeps =
|
|
|
230
251
|
if (!row) throw new AppError(404, 'EXPERIMENT_PLAN_NOT_FOUND', `试验计划 ${id} 不存在`)
|
|
231
252
|
const plan = parsePlan(row)
|
|
232
253
|
const tier = plan.tier ?? (resolveExperimentTier(plan.lineId).tier)
|
|
233
|
-
if (row.status === 'running')
|
|
254
|
+
if (row.status === 'running') {
|
|
255
|
+
// 僵死 running 恢复:进程崩溃/重启会把状态永久停在 running(不可重跑也不可取消)。
|
|
256
|
+
// 超过预算上限 + 5min 无更新即判僵死 → 置 failed 并提示可重新创建计划。
|
|
257
|
+
const budgetRaw = JSON.parse(row.budgetJson || '{}') as { maxDurationMs?: number }
|
|
258
|
+
const staleMs = (budgetRaw.maxDurationMs ?? 4 * 3600_000) + 5 * 60_000
|
|
259
|
+
const age = Date.now() - Date.parse(row.updatedAt)
|
|
260
|
+
if (Number.isFinite(age) && age > staleMs) {
|
|
261
|
+
updateExperimentStatus(id, 'failed')
|
|
262
|
+
throw new AppError(409, 'EXPERIMENT_RUN_STALE', `计划 ${id} 上一次执行僵死(超过 ${Math.round(staleMs / 60000)} min 无更新),已置 failed;请重新创建计划(旧计划的台账行仍可查)`)
|
|
263
|
+
}
|
|
264
|
+
throw new AppError(409, 'EXPERIMENT_ALREADY_RUNNING', `计划 ${id} 正在执行`)
|
|
265
|
+
}
|
|
234
266
|
if (row.status !== 'planned') {
|
|
235
267
|
throw new AppError(409, 'EXPERIMENT_STATUS_INVALID', `计划 ${id} 当前状态 ${row.status},只有 planned 可执行${tier === 'real_hitl' ? '(真实线须先 HITL 批准)' : ''}`)
|
|
236
268
|
}
|
|
@@ -238,6 +270,9 @@ export async function runExperimentPlan(id: string, deps: ExperimentRunnerDeps =
|
|
|
238
270
|
if (tier === 'real_hitl' && !plan.approvalId) {
|
|
239
271
|
throw new AppError(409, 'EXPERIMENT_APPROVAL_REQUIRED', `计划 ${id} 为真实产线计划,缺少 HITL 批准凭据,拒绝执行`)
|
|
240
272
|
}
|
|
273
|
+
// 执行前复核(防御深度):批准到执行之间产线/节点可能变更(换线、停用、量程调整)。
|
|
274
|
+
// 只对真实线强校验;仿真线计划允许过程模型 MV 逻辑名(不落设备,写入时由 write() 兜底)。
|
|
275
|
+
if (tier === 'real_hitl') assertPlanNodesSafe(plan)
|
|
241
276
|
const budget = JSON.parse(row.budgetJson) as { maxRuns?: number, maxDurationMs?: number }
|
|
242
277
|
const steps = buildExperimentSteps(plan, id)
|
|
243
278
|
if (budget.maxRuns && steps.length > budget.maxRuns) {
|
|
@@ -305,7 +340,15 @@ export async function runExperimentPlan(id: string, deps: ExperimentRunnerDeps =
|
|
|
305
340
|
let executed = 0
|
|
306
341
|
let failedReason: string | undefined
|
|
307
342
|
|
|
343
|
+
// 真实线每步驻留不得低于写联锁的 60s 节点间隔(否则第 2 步必被 429 打回,白跑)
|
|
344
|
+
const holdMs = tier === 'real_hitl' ? Math.max(plan.settleMs, REAL_MIN_STEP_MS) : plan.settleMs
|
|
308
345
|
for (const step of steps) {
|
|
346
|
+
// 取消:每步前读一次计划状态(REST cancel 是异步人工操作,必须能被及时感知)
|
|
347
|
+
const live = getExperimentPlan(id)
|
|
348
|
+
if (live?.status === 'cancelled') {
|
|
349
|
+
failedReason = `计划被人工取消(已执行 ${executed}/${steps.length} 步)`
|
|
350
|
+
break
|
|
351
|
+
}
|
|
309
352
|
// 预算:总时长超限即停(不静默续跑)
|
|
310
353
|
if (budget.maxDurationMs && now() - started > budget.maxDurationMs) {
|
|
311
354
|
failedReason = `超出预算 maxDurationMs=${budget.maxDurationMs}ms(已执行 ${executed}/${steps.length} 步)`
|
|
@@ -323,12 +366,12 @@ export async function runExperimentPlan(id: string, deps: ExperimentRunnerDeps =
|
|
|
323
366
|
}
|
|
324
367
|
executed++
|
|
325
368
|
const writeAt = now()
|
|
326
|
-
await sleep(
|
|
369
|
+
await sleep(holdMs)
|
|
327
370
|
// 观测窗 + 引擎判读:有目标映射时,写前窗/写后窗各取一次序列交给可辨识性引擎,
|
|
328
371
|
// 判定回填本步干预台账(与 optimization_explore 同口径);无目标则只驻留。
|
|
329
372
|
const target = plan.targets?.[step.controlId]
|
|
330
373
|
if (target) {
|
|
331
|
-
const pre = await readSeries(target, writeAt -
|
|
374
|
+
const pre = await readSeries(target, writeAt - holdMs, writeAt)
|
|
332
375
|
await sleep(plan.observeMs)
|
|
333
376
|
const post = await readSeries(target, writeAt, now())
|
|
334
377
|
await readTarget(target, writeAt, now())
|
|
@@ -378,7 +421,8 @@ export async function runExperimentPlan(id: string, deps: ExperimentRunnerDeps =
|
|
|
378
421
|
}
|
|
379
422
|
catch { /* 台账不可读不影响执行结果 */ }
|
|
380
423
|
|
|
381
|
-
const
|
|
424
|
+
const cancelled = failedReason?.includes('人工取消') ?? false
|
|
425
|
+
const status: ExperimentRunResult['status'] = cancelled ? 'cancelled' : (failedReason ? 'failed' : 'done')
|
|
382
426
|
updateExperimentStatus(id, status)
|
|
383
427
|
return {
|
|
384
428
|
planId: id,
|
|
@@ -11,6 +11,7 @@ import { AppError } from '../../../utils/errors'
|
|
|
11
11
|
import { getAmlRuntime } from '../aml/runtime'
|
|
12
12
|
import { getDcwLineRepo } from '../dcw/dcw-line.repo'
|
|
13
13
|
import { estimateExperimentCost, resolveExperimentTier, type ExperimentPlanBody, type ExperimentCost } from './experiment-runner'
|
|
14
|
+
import { assertPlanNodesSafe } from './plan-safety'
|
|
14
15
|
|
|
15
16
|
export interface ExperimentPlanInput {
|
|
16
17
|
lineId: string
|
|
@@ -61,6 +62,11 @@ export function createExperimentPlan(input: ExperimentPlanInput): ExperimentPlan
|
|
|
61
62
|
const repeats = Math.max(1, Math.min(input.repeats ?? 1, 20))
|
|
62
63
|
const settleMs = Math.max(1000, input.settleMs ?? 60_000)
|
|
63
64
|
const observeMs = Math.max(1000, input.observeMs ?? 120_000)
|
|
65
|
+
// 上线前加固:真实线计划在**创建时**即校验节点归属(须属本线/启用/量程内,targets 须同线 DAQ)。
|
|
66
|
+
// 仿真线计划允许用过程模型 MV 逻辑名(不落设备),创建不校验;执行时一律强校验(见 runner)。
|
|
67
|
+
if (tierInfo.tier === 'real_hitl') {
|
|
68
|
+
assertPlanNodesSafe({ lineId: input.lineId, levels: input.levels, targets: input.targets })
|
|
69
|
+
}
|
|
64
70
|
const db = getAmlRuntime().db
|
|
65
71
|
const id = `pexp-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`
|
|
66
72
|
const now = new Date().toISOString()
|