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.
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop-prod",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/README-zh.md CHANGED
@@ -26,7 +26,7 @@
26
26
  [![Docs](https://img.shields.io/badge/%E6%96%87%E6%A1%A3-VitePress%20%C2%B7%20%E4%B8%AD%2FEN-ffd75e?logo=vitepress&logoColor=black)](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.0</b> · 14 个执行引擎 · 6 种现场协议(5 内置 + 串口插件)+ MES REST 集成(镜像与直连双路径)· 数据分析台账(产线级权限隔离)· 工艺参数优化器(过程模型 → AML → OSQP 求解 → 治理下发)· **本体服务 + AI 先行模型闭环**(本体 · 孪生 · 求解器 · AML 采纳)· 107 个宿主工具 · 140 个运行时设置项 · 双语文档(简体中文 / English)</sub>
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.0 生产构建),没有一张是效果图。
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.0** —— [版本发布](https://github.com/kingdol666/AgentWorkShop/releases) · [更新日志](./changelog.md) · [在线文档](https://kingdol666.github.io/AgentWorkShop)
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
  [![Docs](https://img.shields.io/badge/docs-VitePress%20%C2%B7%20%E4%B8%AD%2FEN-ffd75e?logo=vitepress&logoColor=black)](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.0</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>
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.0 production build) — none are mock-ups.
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.0** — [Releases](https://github.com/kingdol666/AgentWorkShop/releases) · [Changelog](./changelog.md) · [Documentation](https://kingdol666.github.io/AgentWorkShop)
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
@@ -12,7 +12,7 @@
12
12
  app:
13
13
  name: AgentWorkShop
14
14
  title: AgentWorkShop
15
- version: 0.9.0
15
+ version: 0.9.1
16
16
  description: 基于 Nuxt 4 的配置驱动运行范式
17
17
 
18
18
  # 运行模式(dev/prod 实际由启动命令决定,此处仅作运行时展示)
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.0 start)
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.0` (`package.json`) |
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.0 start)
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.0`(`package.json`) |
79
+ | 当前版本 | `0.9.1`(`package.json`) |
80
80
 
81
81
  ## 二、首次启动(Claude Code 式)
82
82
 
@@ -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.0**. `ctx.sdkVersion` is currently `0.3.0`.
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
@@ -6,7 +6,7 @@
6
6
  > 本文是唯一权威参考;`docs/site/plugins/` 的分页文档与本文同源。
7
7
  >
8
8
  > 适用版本:插件系统 v2 自 **v0.7.29** 起可用(前端组件注入 / 插件设置 / 插件 i18n /
9
- > 运行时服务面);本文档对应当前版本 **v0.9.0**。`ctx.sdkVersion` 当前为 `0.3.0`。
9
+ > 运行时服务面);本文档对应当前版本 **v0.9.1**。`ctx.sdkVersion` 当前为 `0.3.0`。
10
10
 
11
11
  ## 一、目录结构与快速开始
12
12
 
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.0) —
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.0)
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "type": "module",
5
5
  "description": "AgentWorkShop 软件开发系统 - 基于 Nuxt 4 的配置驱动运行范式",
6
6
  "license": "Apache-2.0",
@@ -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: string
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: 'identifiable_effect' | 'no_resolvable_effect' | 'underpowered' | 'confounded' | 'unassessed'
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): InterventionEventRow['verdict'] {
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') throw new AppError(409, 'EXPERIMENT_ALREADY_RUNNING', `计划 ${id} 正在执行`)
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(plan.settleMs)
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 - plan.settleMs, 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 status: ExperimentRunResult['status'] = failedReason ? 'failed' : 'done'
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()