agentworkshop 0.7.2 → 0.7.4

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.
Files changed (130) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B9Yie5HN.js +2 -0
  3. package/.output/public/_nuxt/CN7Zh8GQ.js +1 -0
  4. package/.output/public/_nuxt/CdSgfcYR.js +1 -0
  5. package/.output/public/_nuxt/CdfAP_IH2.js +1 -0
  6. package/.output/public/_nuxt/ChnfyQHz.js +1 -0
  7. package/.output/public/_nuxt/{BkKYf8xY.js → CyygA0q4.js} +4 -4
  8. package/.output/public/_nuxt/{Bz40vyZS.js → DFnGFEav.js} +7 -7
  9. package/.output/public/_nuxt/Xaf_HIR3.js +1 -0
  10. package/.output/public/_nuxt/ZugRk0CM2.js +4 -0
  11. package/.output/public/_nuxt/builds/latest.json +1 -1
  12. package/.output/public/_nuxt/builds/meta/55c10854-ee0e-4be4-924b-a1b0e100fe11.json +1 -0
  13. package/.output/public/_nuxt/{default.iGJy9dP-.css → default.D17kXlD6.css} +1 -1
  14. package/.output/public/_nuxt/monitor.CmwpEUCI.css +1 -0
  15. package/.output/public/_nuxt/yIKY_V1P.js +1 -0
  16. package/.output/server/chunks/_/nitro.mjs +1144 -933
  17. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  18. package/.output/server/chunks/build/{TownView-BkHxMiwZ.mjs → TownView-Bl8Gkcxi.mjs} +3 -3
  19. package/.output/server/chunks/build/{TownView-BkHxMiwZ.mjs.map → TownView-Bl8Gkcxi.mjs.map} +1 -1
  20. package/.output/server/chunks/build/{_id_-Bna1_JuB.mjs → _id_-CWLFGZjV.mjs} +2 -2
  21. package/.output/server/chunks/build/{_id_-Bna1_JuB.mjs.map → _id_-CWLFGZjV.mjs.map} +1 -1
  22. package/.output/server/chunks/build/_id_-GnRJPykX.mjs +1 -1
  23. package/.output/server/chunks/build/{_wsId_-CzLDGT_V.mjs → _wsId_-BhQMjyHG.mjs} +3 -4
  24. package/.output/server/chunks/build/{_wsId_-CzLDGT_V.mjs.map → _wsId_-BhQMjyHG.mjs.map} +1 -1
  25. package/.output/server/chunks/build/{daq-CmeM4u5u.mjs → daq-BOgpn9sl.mjs} +4 -5
  26. package/.output/server/chunks/build/daq-BOgpn9sl.mjs.map +1 -0
  27. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs +1 -1
  28. package/.output/server/chunks/build/{default-Dt6xLdpd.mjs → default-CKJWhkot.mjs} +60 -17
  29. package/.output/server/chunks/build/{default-Dt6xLdpd.mjs.map → default-CKJWhkot.mjs.map} +1 -1
  30. package/.output/server/chunks/build/{logs-CUQt1z7D.mjs → logs-Dyk0I2I9.mjs} +3 -4
  31. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs.map +1 -0
  32. package/.output/server/chunks/build/{monitor-yNoV98rf.mjs → monitor-KW8WLOJd.mjs} +34 -33
  33. package/.output/server/chunks/build/{monitor-yNoV98rf.mjs.map → monitor-KW8WLOJd.mjs.map} +1 -1
  34. package/.output/server/chunks/build/{town-BN4vQPb8.mjs → town-_4tEEEVW.mjs} +3 -4
  35. package/.output/server/chunks/build/town-_4tEEEVW.mjs.map +1 -0
  36. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs +1 -1
  37. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs +1 -1
  38. package/.output/server/chunks/build/{useWorkshopWs-xcdeiSmJ.mjs → useWorkshopWs-B3j5wIAK.mjs} +177 -3
  39. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs.map +1 -0
  40. package/.output/server/chunks/build/{workshop-CLhwe5eo.mjs → workshop-k0XZTFKg.mjs} +2 -3
  41. package/.output/server/chunks/build/workshop-k0XZTFKg.mjs.map +1 -0
  42. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +8 -2
  43. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  44. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  45. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
  46. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +32 -0
  47. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -0
  48. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +56 -0
  49. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -0
  50. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  51. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  52. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  53. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  54. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  55. package/.output/server/chunks/routes/renderer.mjs +2 -2
  56. package/.output/server/chunks/virtual/entry.mjs +17 -11
  57. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  58. package/.output/server/package.json +1 -1
  59. package/README.md +435 -434
  60. package/app/components/AppHeader.vue +138 -0
  61. package/app/composables/workshop/useWorkshopWs.ts +4 -0
  62. package/app/pages/monitor.vue +17 -1
  63. package/app/stores/workshop/hitl.ts +80 -0
  64. package/bin/aw.mjs +0 -0
  65. package/cli/commands/tui.mjs +19 -0
  66. package/config.yml +134 -134
  67. package/docs/tui.md +43 -0
  68. package/i18n/locales/en.ts +3 -0
  69. package/i18n/locales/zh-CN.ts +3 -0
  70. package/package.json +140 -144
  71. package/scripts/_spike-pitui.mjs +116 -0
  72. package/scripts/e2e-hitl-live.mjs +323 -0
  73. package/scripts/e2e-line-live.mjs +144 -0
  74. package/scripts/test-hitl-registry.ts +112 -0
  75. package/scripts/test-tui-commands.mjs +131 -0
  76. package/scripts/test-tui-reducers.mjs +72 -0
  77. package/scripts/tsconfig.json +14 -0
  78. package/scripts/tui-smoke.mjs +91 -0
  79. package/server/api/plugins/[name]/[...path].ts +10 -1
  80. package/server/api/workshop/hitl/pending.get.ts +28 -0
  81. package/server/api/workshop/hitl/respond.post.ts +67 -0
  82. package/server/api/workshop/ws.ts +30 -1
  83. package/server/data/daqs.json +69 -17
  84. package/server/data/dcw-lines.json +21 -0
  85. package/server/data/dcw-products.json +42 -0
  86. package/server/data/dcw-recipes.json +168 -0
  87. package/server/data/dcw-rollback.json +133 -1
  88. package/server/data/dcw-runs.json +162 -108
  89. package/server/data/dcw-writes.json +180 -0
  90. package/server/data/dcws.json +427 -275
  91. package/server/data/line-runs.json +21 -1
  92. package/server/plugins/workshop.ts +7 -0
  93. package/server/services/workshop/agents/harness-terminal.ts +92 -25
  94. package/server/services/workshop/agents/hitl-registry.ts +181 -0
  95. package/server/services/workshop/agents/tool-approvals.ts +15 -0
  96. package/server/services/workshop/scene-events.ts +19 -9
  97. package/shared/workshop-protocol.ts +37 -0
  98. package/tui/README.md +65 -0
  99. package/tui/aw-tui.mjs +356 -0
  100. package/tui/commands/index.mjs +250 -0
  101. package/tui/components/chat-log.mjs +42 -0
  102. package/tui/components/hitl-card.mjs +36 -0
  103. package/tui/components/monitor-pane.mjs +39 -0
  104. package/tui/components/root.mjs +53 -0
  105. package/tui/components/status-bar.mjs +29 -0
  106. package/tui/lib/api.mjs +82 -0
  107. package/tui/lib/config.mjs +58 -0
  108. package/tui/lib/reducers.mjs +218 -0
  109. package/tui/lib/state.mjs +80 -0
  110. package/tui/lib/virtual-terminal.mjs +48 -0
  111. package/tui/lib/ws.mjs +124 -0
  112. package/tui/theme.mjs +38 -0
  113. package/.output/public/_nuxt/B7V9IfTL.js +0 -1
  114. package/.output/public/_nuxt/BE5QyG5J2.js +0 -1
  115. package/.output/public/_nuxt/BuKI8z-5.js +0 -1
  116. package/.output/public/_nuxt/D0C5Q0di.js +0 -1
  117. package/.output/public/_nuxt/DC-QMEk1.js +0 -2
  118. package/.output/public/_nuxt/DEkQ0qQ02.js +0 -1
  119. package/.output/public/_nuxt/builds/meta/4d990d25-ebbb-4fe4-a23b-3d28c7f42fee.json +0 -1
  120. package/.output/public/_nuxt/dt2tKE95.js +0 -4
  121. package/.output/public/_nuxt/i_MKObHo.js +0 -1
  122. package/.output/public/_nuxt/monitor.41fCD6TB.css +0 -1
  123. package/.output/public/_nuxt/tpDMVY5w.js +0 -1
  124. package/.output/server/chunks/build/connection-Dc0fn6yd.mjs +0 -120
  125. package/.output/server/chunks/build/connection-Dc0fn6yd.mjs.map +0 -1
  126. package/.output/server/chunks/build/daq-CmeM4u5u.mjs.map +0 -1
  127. package/.output/server/chunks/build/logs-CUQt1z7D.mjs.map +0 -1
  128. package/.output/server/chunks/build/town-BN4vQPb8.mjs.map +0 -1
  129. package/.output/server/chunks/build/useWorkshopWs-xcdeiSmJ.mjs.map +0 -1
  130. package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +0 -1
@@ -1076,5 +1076,26 @@
1076
1076
  "color": "#41c8f4",
1077
1077
  "description": "",
1078
1078
  "createdAt": "2026-09-03T16:44:33.191Z"
1079
+ },
1080
+ {
1081
+ "id": "ln-758658dc",
1082
+ "name": "PLC 闭环验证线",
1083
+ "color": "#b58cff",
1084
+ "description": "",
1085
+ "createdAt": "2026-09-03T17:12:52.197Z"
1086
+ },
1087
+ {
1088
+ "id": "ln-b44bea4f",
1089
+ "name": "探针线",
1090
+ "color": "#ff8a5c",
1091
+ "description": "",
1092
+ "createdAt": "2026-09-04T05:05:33.805Z"
1093
+ },
1094
+ {
1095
+ "id": "ln-1b318320",
1096
+ "name": "探针线1788498490044",
1097
+ "color": "#3aa0ff",
1098
+ "description": "",
1099
+ "createdAt": "2026-09-04T05:08:10.054Z"
1079
1100
  }
1080
1101
  ]
@@ -978,5 +978,47 @@
978
978
  "name": "闭环验证产品",
979
979
  "description": "",
980
980
  "createdAt": "2026-09-03T16:44:33.192Z"
981
+ },
982
+ {
983
+ "id": "pd-835aed90",
984
+ "lineId": "ln-758658dc",
985
+ "name": "闭环验证产品",
986
+ "description": "",
987
+ "createdAt": "2026-09-03T17:12:52.198Z"
988
+ },
989
+ {
990
+ "id": "pd-b06ac7d7",
991
+ "lineId": "",
992
+ "name": "产品-mtmhgrsn",
993
+ "description": "",
994
+ "createdAt": "2026-09-04T04:58:09.885Z"
995
+ },
996
+ {
997
+ "id": "pd-a7ccbe70",
998
+ "lineId": "",
999
+ "name": "产品-mtmhnz2f",
1000
+ "description": "",
1001
+ "createdAt": "2026-09-04T05:03:45.867Z"
1002
+ },
1003
+ {
1004
+ "id": "pd-db432902",
1005
+ "lineId": "ln-1b318320",
1006
+ "name": "探针产品",
1007
+ "description": "",
1008
+ "createdAt": "2026-09-04T05:08:10.085Z"
1009
+ },
1010
+ {
1011
+ "id": "pd-f6296ca1",
1012
+ "lineId": "",
1013
+ "name": "探针产品",
1014
+ "description": "",
1015
+ "createdAt": "2026-09-04T05:08:56.225Z"
1016
+ },
1017
+ {
1018
+ "id": "pd-cfe2e059",
1019
+ "lineId": "",
1020
+ "name": "产品-mtmhyn1r",
1021
+ "description": "",
1022
+ "createdAt": "2026-09-04T05:12:03.606Z"
981
1023
  }
982
1024
  ]
@@ -1998,5 +1998,173 @@
1998
1998
  "lastGoodRunId": null,
1999
1999
  "createdAt": "2026-09-03T16:44:33.196Z",
2000
2000
  "updatedAt": "2026-09-03T16:44:33.196Z"
2001
+ },
2002
+ {
2003
+ "id": "rc-6acb6e12",
2004
+ "productId": "pd-835aed90",
2005
+ "lineId": "ln-758658dc",
2006
+ "name": "A-闭环工艺",
2007
+ "description": "",
2008
+ "params": [
2009
+ {
2010
+ "nodeId": "dw-8fb89e02",
2011
+ "templateRef": "dcw-temp-sp",
2012
+ "value": 160,
2013
+ "min": 100,
2014
+ "max": 200
2015
+ }
2016
+ ],
2017
+ "daqWindows": [
2018
+ {
2019
+ "nodeId": "dn-dee06516",
2020
+ "min": 0,
2021
+ "max": 400
2022
+ }
2023
+ ],
2024
+ "version": 1,
2025
+ "paramsHistory": [],
2026
+ "lastGoodRunId": null,
2027
+ "createdAt": "2026-09-03T17:12:52.203Z",
2028
+ "updatedAt": "2026-09-03T17:12:52.203Z"
2029
+ },
2030
+ {
2031
+ "id": "rc-59b8eca0",
2032
+ "productId": "pd-b06ac7d7",
2033
+ "lineId": "",
2034
+ "name": "配方-mtmhgrsn",
2035
+ "description": "",
2036
+ "params": [
2037
+ {
2038
+ "nodeId": "dw-3a3f7a4c",
2039
+ "templateRef": "dcw-temp-sp",
2040
+ "value": 180,
2041
+ "min": 176,
2042
+ "max": 188
2043
+ }
2044
+ ],
2045
+ "daqWindows": [
2046
+ {
2047
+ "nodeId": "dn-a3871dc4",
2048
+ "min": 100,
2049
+ "max": 260
2050
+ }
2051
+ ],
2052
+ "version": 1,
2053
+ "paramsHistory": [],
2054
+ "lastGoodRunId": null,
2055
+ "createdAt": "2026-09-04T04:58:09.894Z",
2056
+ "updatedAt": "2026-09-04T04:58:09.894Z"
2057
+ },
2058
+ {
2059
+ "id": "rc-5667c3cb",
2060
+ "productId": "pd-a7ccbe70",
2061
+ "lineId": "",
2062
+ "name": "配方-mtmhnz2f",
2063
+ "description": "",
2064
+ "params": [
2065
+ {
2066
+ "nodeId": "dw-42fcd798",
2067
+ "templateRef": "dcw-temp-sp",
2068
+ "value": 180,
2069
+ "min": 176,
2070
+ "max": 188
2071
+ }
2072
+ ],
2073
+ "daqWindows": [
2074
+ {
2075
+ "nodeId": "dn-80753dd7",
2076
+ "min": 100,
2077
+ "max": 260
2078
+ }
2079
+ ],
2080
+ "version": 1,
2081
+ "paramsHistory": [],
2082
+ "lastGoodRunId": null,
2083
+ "createdAt": "2026-09-04T05:03:45.878Z",
2084
+ "updatedAt": "2026-09-04T05:03:45.878Z"
2085
+ },
2086
+ {
2087
+ "id": "rc-ccee1b1b",
2088
+ "productId": "pd-db432902",
2089
+ "lineId": "ln-1b318320",
2090
+ "name": "探针配方",
2091
+ "description": "",
2092
+ "params": [
2093
+ {
2094
+ "nodeId": "dw-756e3e07",
2095
+ "templateRef": "dcw-temp-sp",
2096
+ "value": 180,
2097
+ "min": 176,
2098
+ "max": 188
2099
+ }
2100
+ ],
2101
+ "daqWindows": [
2102
+ {
2103
+ "nodeId": "dn-2c41fbba",
2104
+ "min": 100,
2105
+ "max": 260
2106
+ }
2107
+ ],
2108
+ "version": 1,
2109
+ "paramsHistory": [],
2110
+ "lastGoodRunId": null,
2111
+ "createdAt": "2026-09-04T05:08:10.099Z",
2112
+ "updatedAt": "2026-09-04T05:08:10.099Z"
2113
+ },
2114
+ {
2115
+ "id": "rc-c73f8aed",
2116
+ "productId": "pd-f6296ca1",
2117
+ "lineId": "",
2118
+ "name": "探针配方",
2119
+ "description": "",
2120
+ "params": [
2121
+ {
2122
+ "nodeId": "dw-1ccbe1a8",
2123
+ "templateRef": "dcw-temp-sp",
2124
+ "value": 180,
2125
+ "min": 176,
2126
+ "max": 188
2127
+ }
2128
+ ],
2129
+ "daqWindows": [
2130
+ {
2131
+ "nodeId": "dn-60156b48",
2132
+ "min": 100,
2133
+ "max": 260
2134
+ }
2135
+ ],
2136
+ "version": 1,
2137
+ "paramsHistory": [],
2138
+ "lastGoodRunId": null,
2139
+ "createdAt": "2026-09-04T05:08:56.240Z",
2140
+ "updatedAt": "2026-09-04T05:08:56.240Z"
2141
+ },
2142
+ {
2143
+ "id": "rc-839041c6",
2144
+ "productId": "pd-cfe2e059",
2145
+ "lineId": "",
2146
+ "name": "配方-mtmhyn1r",
2147
+ "description": "",
2148
+ "params": [
2149
+ {
2150
+ "nodeId": "dw-3b6fd688",
2151
+ "templateRef": "dcw-temp-sp",
2152
+ "value": 180,
2153
+ "min": 176,
2154
+ "max": 188
2155
+ }
2156
+ ],
2157
+ "daqWindows": [
2158
+ {
2159
+ "nodeId": "dn-9f81bd8d",
2160
+ "min": 100,
2161
+ "max": 260
2162
+ }
2163
+ ],
2164
+ "version": 1,
2165
+ "paramsHistory": [],
2166
+ "lastGoodRunId": null,
2167
+ "createdAt": "2026-09-04T05:12:03.621Z",
2168
+ "updatedAt": "2026-09-04T05:12:03.621Z"
2001
2169
  }
2002
2170
  ]
@@ -3425,6 +3425,138 @@
3425
3425
  "recipeRunId": null,
3426
3426
  "id": "anc-d64116cc",
3427
3427
  "at": "2026-09-03T16:38:55.561Z"
3428
+ },
3429
+ {
3430
+ "lineId": "ln-af002514",
3431
+ "nodeId": "dw-2a906dea",
3432
+ "prevValue": null,
3433
+ "newValue": 170,
3434
+ "source": "manual",
3435
+ "actor": "f1235a1f-57ca-43b7-afbe-7fc0874341d0",
3436
+ "recipeRunId": null,
3437
+ "id": "anc-1b81095f",
3438
+ "at": "2026-09-03T17:11:31.133Z"
3439
+ },
3440
+ {
3441
+ "lineId": "",
3442
+ "nodeId": "dw-8277e370",
3443
+ "prevValue": null,
3444
+ "newValue": 160,
3445
+ "source": "manual",
3446
+ "actor": "f1235a1f-57ca-43b7-afbe-7fc0874341d0",
3447
+ "recipeRunId": null,
3448
+ "id": "anc-38e1341a",
3449
+ "at": "2026-09-03T17:12:25.776Z"
3450
+ },
3451
+ {
3452
+ "lineId": "ln-40681e03",
3453
+ "nodeId": "dw-3a3f7a4c",
3454
+ "prevValue": null,
3455
+ "newValue": 180,
3456
+ "source": "recipe",
3457
+ "actor": "recipe",
3458
+ "recipeRunId": "rr-875be24a",
3459
+ "id": "anc-2e647964",
3460
+ "at": "2026-09-04T04:58:10.209Z"
3461
+ },
3462
+ {
3463
+ "lineId": "ln-40681e03",
3464
+ "nodeId": "dw-3a3f7a4c",
3465
+ "prevValue": 180,
3466
+ "newValue": 182,
3467
+ "source": "manual",
3468
+ "actor": "5781d73b-dcfe-4865-a437-9de859ad7e49",
3469
+ "recipeRunId": null,
3470
+ "id": "anc-3a56e78f",
3471
+ "at": "2026-09-04T04:58:20.372Z"
3472
+ },
3473
+ {
3474
+ "lineId": "ln-a284d605",
3475
+ "nodeId": "dw-42fcd798",
3476
+ "prevValue": null,
3477
+ "newValue": 180,
3478
+ "source": "recipe",
3479
+ "actor": "recipe",
3480
+ "recipeRunId": "rr-de10d51e",
3481
+ "id": "anc-1388b44c",
3482
+ "at": "2026-09-04T05:03:46.015Z"
3483
+ },
3484
+ {
3485
+ "lineId": "ln-a284d605",
3486
+ "nodeId": "dw-42fcd798",
3487
+ "prevValue": 180,
3488
+ "newValue": 182,
3489
+ "source": "manual",
3490
+ "actor": "abaa4647-4ff5-4841-9eb6-1cc63e78548f",
3491
+ "recipeRunId": null,
3492
+ "id": "anc-1af90d67",
3493
+ "at": "2026-09-04T05:03:56.195Z"
3494
+ },
3495
+ {
3496
+ "lineId": "ln-1b318320",
3497
+ "nodeId": "dw-756e3e07",
3498
+ "prevValue": null,
3499
+ "newValue": 180,
3500
+ "source": "recipe",
3501
+ "actor": "recipe",
3502
+ "recipeRunId": "rr-9e70a9dc",
3503
+ "id": "anc-d1063132",
3504
+ "at": "2026-09-04T05:08:10.199Z"
3505
+ },
3506
+ {
3507
+ "lineId": "ln-1b318320",
3508
+ "nodeId": "dw-756e3e07",
3509
+ "prevValue": 180,
3510
+ "newValue": 182,
3511
+ "source": "manual",
3512
+ "actor": "0d79cb5d-b903-482a-b051-15fd93353244",
3513
+ "recipeRunId": null,
3514
+ "id": "anc-06b67ce8",
3515
+ "at": "2026-09-04T05:08:10.323Z"
3516
+ },
3517
+ {
3518
+ "lineId": "ln-c50d97f5",
3519
+ "nodeId": "dw-1ccbe1a8",
3520
+ "prevValue": null,
3521
+ "newValue": 180,
3522
+ "source": "recipe",
3523
+ "actor": "recipe",
3524
+ "recipeRunId": "rr-dbb44962",
3525
+ "id": "anc-938cd33b",
3526
+ "at": "2026-09-04T05:08:56.394Z"
3527
+ },
3528
+ {
3529
+ "lineId": "ln-c50d97f5",
3530
+ "nodeId": "dw-1ccbe1a8",
3531
+ "prevValue": 180,
3532
+ "newValue": 182,
3533
+ "source": "manual",
3534
+ "actor": "8a5b36eb-b4ce-485c-bfbd-c5fa45f73774",
3535
+ "recipeRunId": null,
3536
+ "id": "anc-11437d12",
3537
+ "at": "2026-09-04T05:08:56.547Z"
3538
+ },
3539
+ {
3540
+ "lineId": "ln-826f8518",
3541
+ "nodeId": "dw-3b6fd688",
3542
+ "prevValue": null,
3543
+ "newValue": 180,
3544
+ "source": "recipe",
3545
+ "actor": "recipe",
3546
+ "recipeRunId": "rr-02e1b75d",
3547
+ "id": "anc-a35dd56d",
3548
+ "at": "2026-09-04T05:12:03.728Z"
3549
+ },
3550
+ {
3551
+ "lineId": "ln-826f8518",
3552
+ "nodeId": "dw-3b6fd688",
3553
+ "prevValue": 180,
3554
+ "newValue": 182,
3555
+ "source": "manual",
3556
+ "actor": "524916e4-b875-43dc-a620-34d31dbbb162",
3557
+ "recipeRunId": null,
3558
+ "id": "anc-39d9576c",
3559
+ "at": "2026-09-04T05:12:13.886Z"
3428
3560
  }
3429
3561
  ],
3430
3562
  "records": [
@@ -3816,7 +3948,7 @@
3816
3948
  "channels": [],
3817
3949
  "degraded": true
3818
3950
  },
3819
- "evaluatedAt": "2026-09-03T16:46:02.898Z",
3951
+ "evaluatedAt": "2026-09-04T05:35:21.681Z",
3820
3952
  "windowAgg": {
3821
3953
  "at": "2026-08-31T16:25:17.398Z",
3822
3954
  "fromMs": 1788193396897,
@@ -1,112 +1,4 @@
1
1
  [
2
- {
3
- "id": "rr-842bf8f2",
4
- "recipeId": "rc-441a308a",
5
- "recipeName": "工具审计配方",
6
- "productId": "pd-6d5b56d9",
7
- "lineId": "ln-2d9ddcdd",
8
- "startedAt": "2026-08-30T02:07:36.105Z",
9
- "endedAt": "2026-08-30T02:07:49.656Z",
10
- "results": [
11
- {
12
- "templateRef": "dcw-temp-sp",
13
- "nodeId": "dw-33200617",
14
- "ok": true,
15
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
16
- "value": 180
17
- }
18
- ]
19
- },
20
- {
21
- "id": "rr-7bd50f54",
22
- "recipeId": "rc-c1cc9555",
23
- "recipeName": "探针配方Q5",
24
- "productId": "pd-edf2cbf0",
25
- "lineId": "ln-a95f0e22",
26
- "startedAt": "2026-08-30T02:07:51.038Z",
27
- "endedAt": "2026-08-30T02:14:10.156Z",
28
- "results": [
29
- {
30
- "templateRef": "dcw-temp-sp",
31
- "nodeId": "dw-3cd5c7b6",
32
- "ok": true,
33
- "message": "写入并回读一致:180 → raw 1200,回读 180(标定后物理值 180)",
34
- "value": 180
35
- }
36
- ]
37
- },
38
- {
39
- "id": "rr-d486ce72",
40
- "recipeId": "rc-0a9abcf7",
41
- "recipeName": "探针配方Q5",
42
- "productId": "pd-dab719d8",
43
- "lineId": "ln-42c6d982",
44
- "startedAt": "2026-08-30T02:15:11.404Z",
45
- "endedAt": "2026-08-30T02:23:06.752Z",
46
- "results": [
47
- {
48
- "templateRef": "dcw-temp-sp",
49
- "nodeId": "dw-7879db6b",
50
- "ok": true,
51
- "message": "写入并回读一致:180 → raw 1200,回读 180(标定后物理值 180)",
52
- "value": 180
53
- }
54
- ]
55
- },
56
- {
57
- "id": "rr-a7f2b569",
58
- "recipeId": "rc-4bc5e73d",
59
- "recipeName": "探针配方Q5",
60
- "productId": "pd-ec8220db",
61
- "lineId": "ln-0958d4da",
62
- "startedAt": "2026-08-30T02:29:09.532Z",
63
- "endedAt": "2026-08-30T02:35:36.229Z",
64
- "results": [
65
- {
66
- "templateRef": "dcw-temp-sp",
67
- "nodeId": "dw-f58fda28",
68
- "ok": true,
69
- "message": "写入并回读一致:180 → raw 1200,回读 180(标定后物理值 180)",
70
- "value": 180
71
- }
72
- ]
73
- },
74
- {
75
- "id": "rr-aaf8e2c2",
76
- "recipeId": "rc-540ea9c3",
77
- "recipeName": "终审配方A",
78
- "productId": "pd-641f7dee",
79
- "lineId": "ln-eb53bc4d",
80
- "startedAt": "2026-08-30T07:41:33.834Z",
81
- "endedAt": "2026-08-30T07:41:54.080Z",
82
- "results": [
83
- {
84
- "templateRef": "dcw-temp-sp",
85
- "nodeId": "dw-b361c30f",
86
- "ok": true,
87
- "message": "写入并回读一致:182 → raw 1280,回读 182(标定后物理值 182)",
88
- "value": 182
89
- }
90
- ]
91
- },
92
- {
93
- "id": "rr-adf11ad3",
94
- "recipeId": "rc-db98ac7f",
95
- "recipeName": "控制终审X线配方",
96
- "productId": "pd-3d886f32",
97
- "lineId": "ln-9cc67fe6",
98
- "startedAt": "2026-08-30T07:41:54.376Z",
99
- "endedAt": "2026-08-30T07:42:00.234Z",
100
- "results": [
101
- {
102
- "templateRef": "dcw-temp-sp",
103
- "nodeId": "dw-058c5b13",
104
- "ok": true,
105
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
106
- "value": 180
107
- }
108
- ]
109
- },
110
2
  {
111
3
  "id": "rr-4c9920e7",
112
4
  "recipeId": "rc-23cbfa6b",
@@ -5507,5 +5399,167 @@
5507
5399
  "max": 200
5508
5400
  }
5509
5401
  ]
5402
+ },
5403
+ {
5404
+ "id": "rr-c66a150f",
5405
+ "recipeId": "rc-6acb6e12",
5406
+ "recipeName": "A-闭环工艺",
5407
+ "productId": "pd-835aed90",
5408
+ "lineId": "ln-758658dc",
5409
+ "startedAt": "2026-09-03T17:12:52.205Z",
5410
+ "endedAt": null,
5411
+ "results": [
5412
+ {
5413
+ "templateRef": "dcw-temp-sp",
5414
+ "nodeId": "dw-8fb89e02",
5415
+ "ok": true,
5416
+ "message": "写入并回读一致:160 → raw 160,回读 160(标定后物理值 160)",
5417
+ "value": 160
5418
+ }
5419
+ ],
5420
+ "paramsSnapshot": [
5421
+ {
5422
+ "nodeId": "dw-8fb89e02",
5423
+ "templateRef": "dcw-temp-sp",
5424
+ "value": 160,
5425
+ "min": 100,
5426
+ "max": 200
5427
+ }
5428
+ ]
5429
+ },
5430
+ {
5431
+ "id": "rr-875be24a",
5432
+ "recipeId": "rc-59b8eca0",
5433
+ "recipeName": "配方-mtmhgrsn",
5434
+ "productId": "pd-b06ac7d7",
5435
+ "lineId": "ln-40681e03",
5436
+ "startedAt": "2026-09-04T04:58:09.920Z",
5437
+ "endedAt": "2026-09-04T04:58:51.324Z",
5438
+ "results": [
5439
+ {
5440
+ "templateRef": "dcw-temp-sp",
5441
+ "nodeId": "dw-3a3f7a4c",
5442
+ "ok": true,
5443
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5444
+ "value": 180
5445
+ }
5446
+ ],
5447
+ "paramsSnapshot": [
5448
+ {
5449
+ "nodeId": "dw-3a3f7a4c",
5450
+ "templateRef": "dcw-temp-sp",
5451
+ "value": 180,
5452
+ "min": 176,
5453
+ "max": 188
5454
+ }
5455
+ ]
5456
+ },
5457
+ {
5458
+ "id": "rr-de10d51e",
5459
+ "recipeId": "rc-5667c3cb",
5460
+ "recipeName": "配方-mtmhnz2f",
5461
+ "productId": "pd-a7ccbe70",
5462
+ "lineId": "ln-a284d605",
5463
+ "startedAt": "2026-09-04T05:03:45.894Z",
5464
+ "endedAt": "2026-09-04T05:04:27.237Z",
5465
+ "results": [
5466
+ {
5467
+ "templateRef": "dcw-temp-sp",
5468
+ "nodeId": "dw-42fcd798",
5469
+ "ok": true,
5470
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5471
+ "value": 180
5472
+ }
5473
+ ],
5474
+ "paramsSnapshot": [
5475
+ {
5476
+ "nodeId": "dw-42fcd798",
5477
+ "templateRef": "dcw-temp-sp",
5478
+ "value": 180,
5479
+ "min": 176,
5480
+ "max": 188
5481
+ }
5482
+ ]
5483
+ },
5484
+ {
5485
+ "id": "rr-9e70a9dc",
5486
+ "recipeId": "rc-ccee1b1b",
5487
+ "recipeName": "探针配方",
5488
+ "productId": "pd-db432902",
5489
+ "lineId": "ln-1b318320",
5490
+ "startedAt": "2026-09-04T05:08:10.103Z",
5491
+ "endedAt": null,
5492
+ "results": [
5493
+ {
5494
+ "templateRef": "dcw-temp-sp",
5495
+ "nodeId": "dw-756e3e07",
5496
+ "ok": true,
5497
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5498
+ "value": 180
5499
+ }
5500
+ ],
5501
+ "paramsSnapshot": [
5502
+ {
5503
+ "nodeId": "dw-756e3e07",
5504
+ "templateRef": "dcw-temp-sp",
5505
+ "value": 180,
5506
+ "min": 176,
5507
+ "max": 188
5508
+ }
5509
+ ]
5510
+ },
5511
+ {
5512
+ "id": "rr-dbb44962",
5513
+ "recipeId": "rc-c73f8aed",
5514
+ "recipeName": "探针配方",
5515
+ "productId": "pd-f6296ca1",
5516
+ "lineId": "ln-c50d97f5",
5517
+ "startedAt": "2026-09-04T05:08:56.257Z",
5518
+ "endedAt": "2026-09-04T05:09:02.608Z",
5519
+ "results": [
5520
+ {
5521
+ "templateRef": "dcw-temp-sp",
5522
+ "nodeId": "dw-1ccbe1a8",
5523
+ "ok": true,
5524
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5525
+ "value": 180
5526
+ }
5527
+ ],
5528
+ "paramsSnapshot": [
5529
+ {
5530
+ "nodeId": "dw-1ccbe1a8",
5531
+ "templateRef": "dcw-temp-sp",
5532
+ "value": 180,
5533
+ "min": 176,
5534
+ "max": 188
5535
+ }
5536
+ ]
5537
+ },
5538
+ {
5539
+ "id": "rr-02e1b75d",
5540
+ "recipeId": "rc-839041c6",
5541
+ "recipeName": "配方-mtmhyn1r",
5542
+ "productId": "pd-cfe2e059",
5543
+ "lineId": "ln-826f8518",
5544
+ "startedAt": "2026-09-04T05:12:03.638Z",
5545
+ "endedAt": "2026-09-04T05:12:13.981Z",
5546
+ "results": [
5547
+ {
5548
+ "templateRef": "dcw-temp-sp",
5549
+ "nodeId": "dw-3b6fd688",
5550
+ "ok": true,
5551
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
5552
+ "value": 180
5553
+ }
5554
+ ],
5555
+ "paramsSnapshot": [
5556
+ {
5557
+ "nodeId": "dw-3b6fd688",
5558
+ "templateRef": "dcw-temp-sp",
5559
+ "value": 180,
5560
+ "min": 176,
5561
+ "max": 188
5562
+ }
5563
+ ]
5510
5564
  }
5511
5565
  ]