agentworkshop 0.7.15 → 0.7.17

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 (99) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +924 -755
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +924 -755
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/{DMdVWIGz.js → B-E8fXAO.js} +1 -1
  5. package/.output/public/_nuxt/{DyisHHzD.js → BA3XzwiD.js} +1 -1
  6. package/.output/public/_nuxt/{CD1SlCoI.js → BJem8_v5.js} +4 -4
  7. package/.output/public/_nuxt/{6vYobj4F.js → BWC4HQHQ.js} +1 -1
  8. package/.output/public/_nuxt/{kkEthL84.js → Ba7YofCb.js} +1 -1
  9. package/.output/public/_nuxt/{DGVAuScD.js → C_2bTK0C.js} +1 -1
  10. package/.output/public/_nuxt/{B53Mp7lD.js → CgT5wMfz.js} +1 -1
  11. package/.output/public/_nuxt/{DT-Wg8r1.js → D4CLp1hc.js} +1 -1
  12. package/.output/public/_nuxt/{C6m-kenn.js → DAR70Lf5.js} +1 -1
  13. package/.output/public/_nuxt/{B3Psw_sL.js → DBXhDLgl.js} +1 -1
  14. package/.output/public/_nuxt/{Cj6139IM.js → DsOkkMX3.js} +1 -1
  15. package/.output/public/_nuxt/DtM4RX5T.js +1 -0
  16. package/.output/public/_nuxt/{DaE5saZg.js → QT54MQV9.js} +1 -1
  17. package/.output/public/_nuxt/{Bmpvki7M.js → UtviM1bg.js} +1 -1
  18. package/.output/public/_nuxt/_id_.pF-B9O6u.css +1 -0
  19. package/.output/public/_nuxt/builds/latest.json +1 -1
  20. package/.output/public/_nuxt/builds/meta/6a0a88de-639e-4e7b-b7c1-7f4034e04787.json +1 -0
  21. package/.output/server/chunks/_/nitro.mjs +1411 -910
  22. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  23. package/.output/server/chunks/build/{TownView-CunmEMzS.mjs → TownView-ql2eHZOg.mjs} +4 -4
  24. package/.output/server/chunks/build/{TownView-CunmEMzS.mjs.map → TownView-ql2eHZOg.mjs.map} +1 -1
  25. package/.output/server/chunks/build/{_id_-CVnMdSeG.mjs → _id_-CwR5oLu9.mjs} +4 -4
  26. package/.output/server/chunks/build/{_id_-CVnMdSeG.mjs.map → _id_-CwR5oLu9.mjs.map} +1 -1
  27. package/.output/server/chunks/build/{_id_-D265Wh_k.mjs → _id_-DvJZ5Qis.mjs} +168 -120
  28. package/.output/server/chunks/build/_id_-DvJZ5Qis.mjs.map +1 -0
  29. package/.output/server/chunks/build/{_wsId_-eNJmBp05.mjs → _wsId_-B3aB9bIp.mjs} +5 -5
  30. package/.output/server/chunks/build/{_wsId_-eNJmBp05.mjs.map → _wsId_-B3aB9bIp.mjs.map} +1 -1
  31. package/.output/server/chunks/build/{daq-DxaXk_8N.mjs → daq-epWL_sC7.mjs} +5 -5
  32. package/.output/server/chunks/build/{daq-DxaXk_8N.mjs.map → daq-epWL_sC7.mjs.map} +1 -1
  33. package/.output/server/chunks/build/{dcw-B0dtiHFG.mjs → dcw-CBPaFj2f.mjs} +2 -2
  34. package/.output/server/chunks/build/{dcw-B0dtiHFG.mjs.map → dcw-CBPaFj2f.mjs.map} +1 -1
  35. package/.output/server/chunks/build/{logs-UWXeNKy_.mjs → logs-Bz1p6x_5.mjs} +3 -3
  36. package/.output/server/chunks/build/{logs-UWXeNKy_.mjs.map → logs-Bz1p6x_5.mjs.map} +1 -1
  37. package/.output/server/chunks/build/{pages-Aexs6LjD.mjs → pages-Dq7_H4FK.mjs} +3 -3
  38. package/.output/server/chunks/build/{pages-Aexs6LjD.mjs.map → pages-Dq7_H4FK.mjs.map} +1 -1
  39. package/.output/server/chunks/build/{town-BbaR-8io.mjs → town-CstiKxf_.mjs} +5 -5
  40. package/.output/server/chunks/build/{town-BbaR-8io.mjs.map → town-CstiKxf_.mjs.map} +1 -1
  41. package/.output/server/chunks/build/{useDaqStream-BkmyQT06.mjs → useDaqStream-BOOZ-p-l.mjs} +2 -2
  42. package/.output/server/chunks/build/{useDaqStream-BkmyQT06.mjs.map → useDaqStream-BOOZ-p-l.mjs.map} +1 -1
  43. package/.output/server/chunks/build/{useDcwStream-DWVoU96J.mjs → useDcwStream-DyB2ufQI.mjs} +15 -1
  44. package/.output/server/chunks/build/{useDcwStream-DWVoU96J.mjs.map → useDcwStream-DyB2ufQI.mjs.map} +1 -1
  45. package/.output/server/chunks/build/{useDeviceTwins-34WGk9aN.mjs → useDeviceTwins-ZbT86L9O.mjs} +2 -2
  46. package/.output/server/chunks/build/{useDeviceTwins-34WGk9aN.mjs.map → useDeviceTwins-ZbT86L9O.mjs.map} +1 -1
  47. package/.output/server/chunks/build/{useOpsLog-C9zTzYof.mjs → useOpsLog-8HCYFb6n.mjs} +2 -2
  48. package/.output/server/chunks/build/{useOpsLog-C9zTzYof.mjs.map → useOpsLog-8HCYFb6n.mjs.map} +1 -1
  49. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  50. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  51. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +42 -0
  52. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -0
  53. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +29 -0
  54. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -0
  55. package/.output/server/chunks/routes/api/workshop/dcw/recipes/{_id_.patch.mjs → index.patch.mjs} +11 -6
  56. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -0
  57. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
  58. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  59. package/.output/server/chunks/routes/renderer.mjs +1 -1
  60. package/.output/server/chunks/virtual/entry.mjs +34 -8
  61. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  62. package/.output/server/package.json +1 -1
  63. package/app/composables/workshop/useDcwStream.ts +12 -0
  64. package/app/pages/dcw/[id].vue +165 -1
  65. package/i18n/locales/en.ts +13 -0
  66. package/i18n/locales/zh-CN.ts +13 -0
  67. package/package.json +1 -1
  68. package/scripts/_dbg-opslog-agent-e2e.mjs +191 -0
  69. package/scripts/_dbg-recipe-e2e.mjs +176 -0
  70. package/server/api/workshop/daq/index.post.ts +1 -1
  71. package/server/api/workshop/dcw/lines/index.post.ts +1 -1
  72. package/server/api/workshop/dcw/recipes/{[id].patch.ts → [id]/index.patch.ts} +9 -3
  73. package/server/api/workshop/dcw/recipes/[id]/revert.post.ts +28 -0
  74. package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +14 -0
  75. package/server/data/daqs.json +471 -61
  76. package/server/data/dcw-lines.json +49 -0
  77. package/server/data/dcw-products.json +56 -0
  78. package/server/data/dcw-recipes.json +64 -0
  79. package/server/data/dcw-rollback.json +239 -6
  80. package/server/data/dcw-runs.json +162 -142
  81. package/server/data/dcw-writes.json +132 -0
  82. package/server/data/dcws.json +344 -198
  83. package/server/data/line-runs.json +41 -11
  84. package/server/data/scene-layouts.json +11 -0
  85. package/server/plugins/workshop.ts +9 -0
  86. package/server/services/workshop/agents/agent-badge.ts +38 -0
  87. package/server/services/workshop/agents/host-tool-bridge.ts +642 -612
  88. package/server/services/workshop/agents/industrial-tools.ts +357 -4
  89. package/server/services/workshop/daq/drivers.ts +41 -8
  90. package/server/services/workshop/dcw/dcw-controller.ts +50 -2
  91. package/server/services/workshop/dcw/dcw-recipe.repo.ts +81 -3
  92. package/server/services/workshop/dcw/drivers.ts +2 -2
  93. package/server/services/workshop/dcw/recipe-rollback-manager.ts +8 -6
  94. package/shared/dcw-protocol.ts +14 -2
  95. package/.output/public/_nuxt/Bc3PiGGr.js +0 -1
  96. package/.output/public/_nuxt/_id_.DTvjd6VN.css +0 -1
  97. package/.output/public/_nuxt/builds/meta/65f6bed9-b794-44a4-805a-e22700c10817.json +0 -1
  98. package/.output/server/chunks/build/_id_-D265Wh_k.mjs.map +0 -1
  99. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +0 -1
@@ -1 +1 @@
1
- import{I as e,U as t,V as n,W as r,q as i}from"./rqZ-1SoP.js";import{C as a,G as o,H as s,Ht as c,St as l,Ut as u,Wt as d,a as f,b as p,f as m,ft as h,g,h as _,mt as v,nt as y,p as b,rt as x,t as S,x as C}from"./BSCpFtzG.js";import{t as ee}from"./D8CqF0yy.js";import{n as te}from"./BeIfu4N3.js";import{t as w}from"./G0qIw7Gq2.js";import{r as T,t as ne}from"./C6m-kenn.js";var re={class:`page`},ie={class:`aw-page-head`},ae={class:`sub`},oe={class:`badges mono`},se=[`title`],ce={class:`badge`},le={key:0,class:`banner bad`},ue={class:`fleet-filter`},de={class:`aw-seg`},fe=[`placeholder`],pe={class:`line-grid aw-stagger`},me={class:`lc-head`},he={class:`lc-name`},ge=[`title`,`onClick`],_e=[`title`,`onClick`],ve={key:0,class:`lc-run mono`},ye={class:`lc-stats mono`},be={class:`lc-ctl`},xe=[`onUpdate:modelValue`,`disabled`,`title`],Se={value:``},Ce=[`value`,`disabled`],we=[`disabled`,`onClick`],Te=[`disabled`,`onClick`],Ee={key:1,class:`banner`},De={key:2,class:`banner`},Oe={class:`modal`},ke={class:`m-title`},Ae={class:`f`},je=[`placeholder`],Me={class:`f`},Ne=[`placeholder`],Pe={class:`f`},Fe={class:`color-row`},Ie=[`onClick`],Le={class:`dim`},Re={key:0,class:`m-err`},ze={class:`m-actions`},Be=[`disabled`],Ve={class:`modal`},He={class:`m-title`},Ue={class:`f`},We=[`placeholder`],Ge={class:`f`},Ke=[`placeholder`],qe={class:`f`},Je={class:`color-row`},Ye=[`onClick`],Xe={class:`dim`},Ze={key:0,class:`m-err`},Qe={class:`m-actions`},$e=[`disabled`],et={class:`modal`},tt={class:`m-title danger-title`},nt={class:`del-summary`},rt={class:`del-purge`},it={key:0,class:`m-err`},at={class:`m-actions`},ot=[`disabled`],st={class:`modal wide`},ct={class:`m-title`},lt={class:`dim mono`},ut={class:`dim tpl-hint`},dt={class:`tpl-list`},ft=[`title`],pt={class:`mono dim`},mt={key:0,class:`tpl-sem`},ht=[`onClick`],gt={class:`sec-label`},_t={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},E=S(a({__name:`index`,setup(a){let{t:S}=te(),E=ne();E.load();let D=m(()=>E.lines.map(e=>({line:e,nodes:E.nodes.filter(t=>t.lineId===e.id).length,products:E.products.filter(t=>t.lineId===e.id).length,recipes:E.recipes.filter(t=>t.lineId===e.id).length}))),O=m(()=>E.nodes.filter(e=>!e.lineId).length+E.products.filter(e=>!e.lineId).length),k=v(`all`),A=v(``),j=m(()=>D.value.filter(e=>E.lineStateOf(e.line.id).active).length),M=m(()=>D.value.filter(e=>{let t=E.lineStateOf(e.line.id).active;if(k.value===`running`&&!t||k.value===`idle`&&t)return!1;let n=A.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),N=v(!1),P=v(!1),F=v(``),I=h({name:``,description:``,color:``}),L=m(()=>T[E.lines.length%T.length]??`#3aa0ff`);function Ft(){I.name=``,I.description=``,I.color=``,F.value=``,N.value=!0}async function It(){P.value=!0,F.value=``;try{await E.createLine({name:I.name.trim(),description:I.description.trim(),color:I.color||void 0}),N.value=!1}catch(e){F.value=w(e)}finally{P.value=!1}}let R=v(``),z=v(``),B=h({});async function Lt(e){R.value=e.line.id,z.value=``;try{let t=B[e.line.id]??``;if(!t)throw Error(S(`dcw.k188cswn039`));await E.startLine(e.line.id,t)}catch(e){z.value=w(e)}finally{R.value=``}}async function Rt(e){R.value=e.line.id,z.value=``;try{await E.stopLine(e.line.id)}catch(e){z.value=w(e)}finally{R.value=``}}function V(e){return E.recipes.filter(t=>t.lineId===e)}let H=v(!1),U=v(!1),W=v(``),G=v(!0),K=v(null);function zt(e){K.value=e,G.value=!0,W.value=``,H.value=!0}async function Bt(){if(K.value){U.value=!0,W.value=``;try{await E.removeLine(K.value.line.id,G.value),H.value=!1}catch(e){W.value=w(e)}finally{U.value=!1}}}let q=v(!1),J=v(!1),Y=v(``),X=h({id:``,name:``,description:``,color:``});function Vt(e){X.id=e.line.id,X.name=e.line.name,X.description=e.line.description,X.color=e.line.color,Y.value=``,q.value=!0}async function Ht(){J.value=!0,Y.value=``;try{await E.updateLine(X.id,{name:X.name.trim(),description:X.description.trim(),color:X.color||void 0}),q.value=!1}catch(e){Y.value=w(e)}finally{J.value=!1}}let Z=v(!1),Q=v(``),$=h({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:S(`dcw.k422b8040`)},{key:`pressure`,label:S(`dcw.k3x6ff041`)},{key:`tension`,label:S(`dcw.k3z9xc042`)},{key:`encoder`,label:S(`dcw.kjb3vhs043`)},{key:`camera`,label:S(`dcw.k47atw044`)},{key:`gateway`,label:S(`dcw.k48c07045`)}];async function Wt(){Q.value=``;try{if(!$.name.trim())throw Error(S(`dcw.k6ugbw2046`));if($.min===``||$.max===``)throw Error(S(`dcw.k13awowo047`));await E.createTemplate({name:$.name.trim(),ch:$.ch.trim()||$.name.trim(),code:$.code.trim()||`CUSTOM`,unit:$.unit.trim()||`-`,min:Number($.min),max:Number($.max),decimals:Number($.decimals)||0,icon:$.icon,semantics:$.semantics.trim()||void 0}),$.name=``,$.ch=``,$.code=``,$.unit=``,$.min=``,$.max=``}catch(e){Q.value=w(e)}}async function Gt(e){Q.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??S(`dcw.k1bphrb3048`))});let t=E.templates.findIndex(t=>t.key===e);t>=0&&E.templates.splice(t,1)}catch(e){Q.value=w(e)}}let Kt=m(()=>E.templates.filter(e=>e.builtin).length);return(a,m)=>{let h=ee;return s(),g(`div`,re,[b(`div`,ie,[b(`div`,null,[m[27]||=b(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),b(`h1`,null,d(a.$t(`dcw.k1b2tk5c009`)),1),b(`p`,ae,d(a.$t(`dcw.k5q0aqi010`)),1)]),b(`div`,oe,[O.value?(s(),g(`span`,{key:0,class:`badge warn-badge`,title:a.$t(`dcw.k1i5a9vw001`)},d(a.$t(`dcw.k3ootr6049`))+` `+d(O.value),9,se)):_(``,!0),b(`span`,ce,d(a.$t(`dcw.k3wj9n050`))+` `+d(l(E).lines.length),1),b(`button`,{class:`badge tpl-btn`,onClick:m[0]||=e=>Z.value=!0},d(a.$t(`dcw.k11nndsp051`))+` `+d(l(E).templates.length),1)])]),z.value?(s(),g(`p`,le,d(z.value),1)):_(``,!0),b(`div`,ue,[b(`div`,de,[b(`button`,{class:c({on:k.value===`all`}),onClick:m[1]||=e=>k.value=`all`},d(a.$t(`common.all`))+` `+d(D.value.length),3),b(`button`,{class:c({on:k.value===`running`}),onClick:m[2]||=e=>k.value=`running`},d(a.$t(`dcw.k1eox1el055`))+` `+d(j.value),3),b(`button`,{class:c({on:k.value===`idle`}),onClick:m[3]||=e=>k.value=`idle`},d(a.$t(`dcw.k149r6y7059`))+` `+d(D.value.length-j.value),3)]),x(b(`input`,{"onUpdate:modelValue":m[4]||=e=>A.value=e,class:`inp fleet-search`,type:`search`,placeholder:a.$t(`dcw.filterSearchPh`)},null,8,fe),[[r,A.value]])]),b(`div`,pe,[(s(!0),g(f,null,o(M.value,e=>(s(),g(`div`,{key:e.line.id,class:c([`line-card aw-liftable`,{idle:!l(E).lineStateOf(e.line.id).active}]),style:u({"--lc":e.line.color})},[b(`div`,me,[m[30]||=b(`span`,{class:`lc-dot`},null,-1),b(`b`,he,d(e.line.name),1),b(`span`,{class:c([`lc-state`,{on:l(E).lineStateOf(e.line.id).active}])},d(l(E).lineStateOf(e.line.id).active?a.$t(`dcw.k1eox1el055`):a.$t(`dcw.k149r6y7059`)),3),b(`button`,{class:`lc-act`,title:a.$t(`common.edit`),onClick:t=>Vt(e)},[...m[28]||=[b(`span`,{class:`i-tabler-pencil`},null,-1)]],8,ge),b(`button`,{class:`lc-act danger`,title:a.$t(`dcw.k3xakp026`),onClick:t=>zt(e)},[...m[29]||=[b(`span`,{class:`i-tabler-trash`},null,-1)]],8,_e)]),l(E).lineStateOf(e.line.id).active?(s(),g(`small`,ve,d(l(E).lineStateOf(e.line.id).productName)+` · `+d(l(E).lineStateOf(e.line.id).recipeName)+` · `+d(a.$t(`dcw.k3zz0f052`))+` `+d(l(E).lineStateOf(e.line.id).taggedSamples),1)):(s(),g(`small`,{key:1,class:c([`lc-run dim`,{ph:!e.line.description}])},d(e.line.description||a.$t(`dcw.k18moyq1056`)),3)),b(`div`,ye,[b(`span`,null,[p(d(a.$t(`dcw.k45uio011`))+` `,1),b(`b`,null,d(e.nodes),1)]),b(`span`,null,[p(d(a.$t(`dcw.k3waz1012`))+` `,1),b(`b`,null,d(e.products),1)]),b(`span`,null,[p(d(a.$t(`dcw.k48grv013`))+` `,1),b(`b`,null,d(e.recipes),1)])]),b(`div`,be,[l(E).lineStateOf(e.line.id).active?(s(),g(`button`,{key:1,class:`pill-btn stop`,disabled:R.value===e.line.id,onClick:t=>Rt(e)},d(a.$t(`dcw.k148rclf015`)),9,Te)):(s(),g(f,{key:0},[x(b(`select`,{"onUpdate:modelValue":t=>B[e.line.id]=t,class:`inp`,disabled:V(e.line.id).length===0,title:a.$t(`dcw.k1dhaby4003`)},[b(`option`,Se,d(V(e.line.id).length?a.$t(`dcw.kutxzsz057`):a.$t(`dcw.k1elczt9060`)),1),(s(!0),g(f,null,o(V(e.line.id),e=>(s(),g(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},d(e.name)+`(`+d(e.params.length)+`) `,9,Ce))),128))],8,xe),[[t,B[e.line.id]]]),b(`button`,{class:`pill-btn`,disabled:R.value===e.line.id||!B[e.line.id],onClick:t=>Lt(e)},d(a.$t(`dcw.k149b4vg014`)),9,we)],64))]),C(h,{class:`lc-manage`,to:`/dcw/${e.line.id}`},{default:y(()=>[p(d(a.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),b(`button`,{class:`line-card new-card`,onClick:Ft},[m[31]||=b(`span`,{class:`i-tabler-plus`},null,-1),p(` `+d(a.$t(`dcw.k1efe391017`))+` `,1),b(`small`,null,d(a.$t(`dcw.k19dlbli053`)),1)])]),l(E).loaded&&l(E).lines.length===0?(s(),g(`p`,Ee,d(a.$t(`dcw.k1sk85vs018`)),1)):l(E).loaded&&M.value.length===0?(s(),g(`p`,De,d(a.$t(`dcw.filterEmpty`)),1)):_(``,!0),C(e,{name:`modal`},{default:y(()=>[N.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[8]||=i(e=>N.value=!1,[`self`])},[b(`div`,Oe,[b(`h3`,ke,d(a.$t(`dcw.k1efe391017`)),1),b(`label`,Ae,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[32]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[5]||=e=>I.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,je),[[r,I.name]])]),b(`label`,Me,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[6]||=e=>I.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ne),[[r,I.description]])]),b(`div`,Pe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Fe,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:I.color===e}]),style:u({background:e}),onClick:t=>I.color=I.color===e?``:e},null,14,Ie))),128)),b(`small`,Le,d(I.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),F.value?(s(),g(`p`,Re,d(F.value),1)):_(``,!0),b(`div`,ze,[b(`button`,{class:`mini-btn`,onClick:m[7]||=e=>N.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:P.value||!I.name.trim(),onClick:It},d(a.$t(`dcw.k3wzi2023`)),9,Be)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[q.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[12]||=i(e=>q.value=!1,[`self`])},[b(`div`,Ve,[b(`h3`,He,d(a.$t(`dcw.k5tq8wc071`)),1),b(`label`,Ue,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[33]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[9]||=e=>X.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,We),[[r,X.name]])]),b(`label`,Ge,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[10]||=e=>X.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ke),[[r,X.description]])]),b(`div`,qe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Je,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:X.color===e}]),style:u({background:e}),onClick:t=>X.color=X.color===e?``:e},null,14,Ye))),128)),b(`small`,Xe,d(X.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),Y.value?(s(),g(`p`,Ze,d(Y.value),1)):_(``,!0),b(`div`,Qe,[b(`button`,{class:`mini-btn`,onClick:m[11]||=e=>q.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:J.value||!X.name.trim(),onClick:Ht},d(a.$t(`common.save`)),9,$e)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[H.value&&K.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[15]||=i(e=>H.value=!1,[`self`])},[b(`div`,et,[b(`h3`,tt,[m[34]||=b(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(` `+d(a.$t(`dcw.k7xq2mfd063`,{p0:K.value.line.name})),1)]),b(`p`,nt,d(G.value?a.$t(`dcw.k4r7nbd073`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes}):a.$t(`dcw.k1gp649b062`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes})),1),b(`label`,rt,[x(b(`input`,{"onUpdate:modelValue":m[13]||=e=>G.value=e,type:`checkbox`},null,512),[[n,G.value]]),b(`span`,null,d(a.$t(`dcw.k9m2vxa072`)),1)]),W.value?(s(),g(`p`,it,d(W.value),1)):_(``,!0),b(`div`,at,[b(`button`,{class:`mini-btn`,onClick:m[14]||=e=>H.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn danger`,disabled:U.value,onClick:Bt},d(a.$t(`dcw.k3xakp026`)),9,ot)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[Z.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[26]||=i(e=>Z.value=!1,[`self`])},[b(`div`,st,[b(`h3`,ct,[p(d(a.$t(`dcw.k11oadmx024`))+` `,1),b(`small`,lt,d(a.$t(`dcw.k3x23c054`))+` `+d(Kt.value)+` · `+d(a.$t(`dcw.k3t616a058`))+` `+d(l(E).templates.length-Kt.value),1)]),b(`p`,ut,d(a.$t(`dcw.k2hlav5025`)),1),b(`div`,dt,[(s(!0),g(f,null,o(l(E).templates,e=>(s(),g(`div`,{key:e.key,class:`tpl-row`,title:e.semantics??``},[b(`b`,null,d(e.name),1),b(`small`,pt,d(e.code)+` · `+d(e.min)+`~`+d(e.max)+` `+d(e.unit),1),e.semantics?(s(),g(`small`,mt,d(e.semantics.slice(0,40))+d(e.semantics.length>40?`…`:``),1)):_(``,!0),b(`span`,{class:c([`tpl-tag`,{builtin:e.builtin}])},d(e.builtin?a.$t(`dcw.k3x23c054`):a.$t(`dcw.k3t616a058`)),3),e.builtin?_(``,!0):(s(),g(`button`,{key:1,class:`mini-btn danger`,onClick:t=>Gt(e.key)},d(a.$t(`dcw.k3xakp026`)),9,ht))],8,ft))),128))]),b(`p`,gt,d(a.$t(`dcw.k169eb4s027`)),1),b(`div`,_t,[b(`label`,vt,[b(`span`,null,[p(d(a.$t(`dcw.k3xhia028`)),1),m[35]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[16]||=e=>$.name=e,class:`inp`,placeholder:a.$t(`dcw.k1tooi3o006`)},null,8,yt),[[r,$.name]])]),b(`label`,bt,[b(`span`,null,d(a.$t(`dcw.k1bqk219029`)),1),x(b(`input`,{"onUpdate:modelValue":m[17]||=e=>$.ch=e,class:`inp`,placeholder:a.$t(`dcw.k698qz0007`)},null,8,xt),[[r,$.ch]])]),b(`label`,St,[b(`span`,null,d(a.$t(`dcw.k1ayxrqb030`)),1),x(b(`input`,{"onUpdate:modelValue":m[18]||=e=>$.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[r,$.code]])]),b(`label`,Ct,[b(`span`,null,d(a.$t(`dcw.k3x4ef031`)),1),x(b(`input`,{"onUpdate:modelValue":m[19]||=e=>$.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[r,$.unit]])]),b(`label`,wt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv5m032`)),1),m[36]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[20]||=e=>$.min=e,type:`number`,class:`inp`},null,512),[[r,$.min,void 0,{number:!0}]])]),b(`label`,Tt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv4p033`)),1),m[37]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[21]||=e=>$.max=e,type:`number`,class:`inp`},null,512),[[r,$.max,void 0,{number:!0}]])]),b(`label`,Et,[b(`span`,null,d(a.$t(`dcw.k3mxmcx034`)),1),x(b(`input`,{"onUpdate:modelValue":m[22]||=e=>$.decimals=e,type:`number`,class:`inp`},null,512),[[r,$.decimals,void 0,{number:!0}]])]),b(`label`,Dt,[b(`span`,null,d(a.$t(`dcw.k3xx56035`)),1),x(b(`select`,{"onUpdate:modelValue":m[23]||=e=>$.icon=e,class:`inp`},[(s(),g(f,null,o(Ut,e=>b(`option`,{key:e.key,value:e.key},d(e.label),9,Ot)),64))],512),[[t,$.icon]])])]),b(`label`,kt,[b(`span`,null,d(a.$t(`dcw.k1b6qorg036`)),1),x(b(`textarea`,{"onUpdate:modelValue":m[24]||=e=>$.semantics=e,class:`inp`,rows:`3`,placeholder:a.$t(`dcw.k1qdnfzc008`)},null,8,At),[[r,$.semantics]])]),Q.value?(s(),g(`p`,jt,d(Q.value),1)):_(``,!0),b(`div`,Mt,[b(`button`,{class:`mini-btn`,onClick:m[25]||=e=>Z.value=!1},d(a.$t(`dcw.k3x62t037`)),1),b(`button`,{class:`pill-btn`,disabled:!$.name.trim()||$.min===``||$.max===``,onClick:Wt},d(a.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):_(``,!0)]),_:1}),l(E).error?(s(),g(`p`,Pt,d(l(E).error),1)):_(``,!0)])}}}),[[`__scopeId`,`data-v-3f1efd1b`]]);export{E as default};
1
+ import{I as e,U as t,V as n,W as r,q as i}from"./rqZ-1SoP.js";import{C as a,G as o,H as s,Ht as c,St as l,Ut as u,Wt as d,a as f,b as p,f as m,ft as h,g,h as _,mt as v,nt as y,p as b,rt as x,t as S,x as C}from"./BSCpFtzG.js";import{t as ee}from"./D8CqF0yy.js";import{n as te}from"./BeIfu4N3.js";import{t as w}from"./G0qIw7Gq2.js";import{r as T,t as ne}from"./DAR70Lf5.js";var re={class:`page`},ie={class:`aw-page-head`},ae={class:`sub`},oe={class:`badges mono`},se=[`title`],ce={class:`badge`},le={key:0,class:`banner bad`},ue={class:`fleet-filter`},de={class:`aw-seg`},fe=[`placeholder`],pe={class:`line-grid aw-stagger`},me={class:`lc-head`},he={class:`lc-name`},ge=[`title`,`onClick`],_e=[`title`,`onClick`],ve={key:0,class:`lc-run mono`},ye={class:`lc-stats mono`},be={class:`lc-ctl`},xe=[`onUpdate:modelValue`,`disabled`,`title`],Se={value:``},Ce=[`value`,`disabled`],we=[`disabled`,`onClick`],Te=[`disabled`,`onClick`],Ee={key:1,class:`banner`},De={key:2,class:`banner`},Oe={class:`modal`},ke={class:`m-title`},Ae={class:`f`},je=[`placeholder`],Me={class:`f`},Ne=[`placeholder`],Pe={class:`f`},Fe={class:`color-row`},Ie=[`onClick`],Le={class:`dim`},Re={key:0,class:`m-err`},ze={class:`m-actions`},Be=[`disabled`],Ve={class:`modal`},He={class:`m-title`},Ue={class:`f`},We=[`placeholder`],Ge={class:`f`},Ke=[`placeholder`],qe={class:`f`},Je={class:`color-row`},Ye=[`onClick`],Xe={class:`dim`},Ze={key:0,class:`m-err`},Qe={class:`m-actions`},$e=[`disabled`],et={class:`modal`},tt={class:`m-title danger-title`},nt={class:`del-summary`},rt={class:`del-purge`},it={key:0,class:`m-err`},at={class:`m-actions`},ot=[`disabled`],st={class:`modal wide`},ct={class:`m-title`},lt={class:`dim mono`},ut={class:`dim tpl-hint`},dt={class:`tpl-list`},ft=[`title`],pt={class:`mono dim`},mt={key:0,class:`tpl-sem`},ht=[`onClick`],gt={class:`sec-label`},_t={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},E=S(a({__name:`index`,setup(a){let{t:S}=te(),E=ne();E.load();let D=m(()=>E.lines.map(e=>({line:e,nodes:E.nodes.filter(t=>t.lineId===e.id).length,products:E.products.filter(t=>t.lineId===e.id).length,recipes:E.recipes.filter(t=>t.lineId===e.id).length}))),O=m(()=>E.nodes.filter(e=>!e.lineId).length+E.products.filter(e=>!e.lineId).length),k=v(`all`),A=v(``),j=m(()=>D.value.filter(e=>E.lineStateOf(e.line.id).active).length),M=m(()=>D.value.filter(e=>{let t=E.lineStateOf(e.line.id).active;if(k.value===`running`&&!t||k.value===`idle`&&t)return!1;let n=A.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),N=v(!1),P=v(!1),F=v(``),I=h({name:``,description:``,color:``}),L=m(()=>T[E.lines.length%T.length]??`#3aa0ff`);function Ft(){I.name=``,I.description=``,I.color=``,F.value=``,N.value=!0}async function It(){P.value=!0,F.value=``;try{await E.createLine({name:I.name.trim(),description:I.description.trim(),color:I.color||void 0}),N.value=!1}catch(e){F.value=w(e)}finally{P.value=!1}}let R=v(``),z=v(``),B=h({});async function Lt(e){R.value=e.line.id,z.value=``;try{let t=B[e.line.id]??``;if(!t)throw Error(S(`dcw.k188cswn039`));await E.startLine(e.line.id,t)}catch(e){z.value=w(e)}finally{R.value=``}}async function Rt(e){R.value=e.line.id,z.value=``;try{await E.stopLine(e.line.id)}catch(e){z.value=w(e)}finally{R.value=``}}function V(e){return E.recipes.filter(t=>t.lineId===e)}let H=v(!1),U=v(!1),W=v(``),G=v(!0),K=v(null);function zt(e){K.value=e,G.value=!0,W.value=``,H.value=!0}async function Bt(){if(K.value){U.value=!0,W.value=``;try{await E.removeLine(K.value.line.id,G.value),H.value=!1}catch(e){W.value=w(e)}finally{U.value=!1}}}let q=v(!1),J=v(!1),Y=v(``),X=h({id:``,name:``,description:``,color:``});function Vt(e){X.id=e.line.id,X.name=e.line.name,X.description=e.line.description,X.color=e.line.color,Y.value=``,q.value=!0}async function Ht(){J.value=!0,Y.value=``;try{await E.updateLine(X.id,{name:X.name.trim(),description:X.description.trim(),color:X.color||void 0}),q.value=!1}catch(e){Y.value=w(e)}finally{J.value=!1}}let Z=v(!1),Q=v(``),$=h({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:S(`dcw.k422b8040`)},{key:`pressure`,label:S(`dcw.k3x6ff041`)},{key:`tension`,label:S(`dcw.k3z9xc042`)},{key:`encoder`,label:S(`dcw.kjb3vhs043`)},{key:`camera`,label:S(`dcw.k47atw044`)},{key:`gateway`,label:S(`dcw.k48c07045`)}];async function Wt(){Q.value=``;try{if(!$.name.trim())throw Error(S(`dcw.k6ugbw2046`));if($.min===``||$.max===``)throw Error(S(`dcw.k13awowo047`));await E.createTemplate({name:$.name.trim(),ch:$.ch.trim()||$.name.trim(),code:$.code.trim()||`CUSTOM`,unit:$.unit.trim()||`-`,min:Number($.min),max:Number($.max),decimals:Number($.decimals)||0,icon:$.icon,semantics:$.semantics.trim()||void 0}),$.name=``,$.ch=``,$.code=``,$.unit=``,$.min=``,$.max=``}catch(e){Q.value=w(e)}}async function Gt(e){Q.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??S(`dcw.k1bphrb3048`))});let t=E.templates.findIndex(t=>t.key===e);t>=0&&E.templates.splice(t,1)}catch(e){Q.value=w(e)}}let Kt=m(()=>E.templates.filter(e=>e.builtin).length);return(a,m)=>{let h=ee;return s(),g(`div`,re,[b(`div`,ie,[b(`div`,null,[m[27]||=b(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),b(`h1`,null,d(a.$t(`dcw.k1b2tk5c009`)),1),b(`p`,ae,d(a.$t(`dcw.k5q0aqi010`)),1)]),b(`div`,oe,[O.value?(s(),g(`span`,{key:0,class:`badge warn-badge`,title:a.$t(`dcw.k1i5a9vw001`)},d(a.$t(`dcw.k3ootr6049`))+` `+d(O.value),9,se)):_(``,!0),b(`span`,ce,d(a.$t(`dcw.k3wj9n050`))+` `+d(l(E).lines.length),1),b(`button`,{class:`badge tpl-btn`,onClick:m[0]||=e=>Z.value=!0},d(a.$t(`dcw.k11nndsp051`))+` `+d(l(E).templates.length),1)])]),z.value?(s(),g(`p`,le,d(z.value),1)):_(``,!0),b(`div`,ue,[b(`div`,de,[b(`button`,{class:c({on:k.value===`all`}),onClick:m[1]||=e=>k.value=`all`},d(a.$t(`common.all`))+` `+d(D.value.length),3),b(`button`,{class:c({on:k.value===`running`}),onClick:m[2]||=e=>k.value=`running`},d(a.$t(`dcw.k1eox1el055`))+` `+d(j.value),3),b(`button`,{class:c({on:k.value===`idle`}),onClick:m[3]||=e=>k.value=`idle`},d(a.$t(`dcw.k149r6y7059`))+` `+d(D.value.length-j.value),3)]),x(b(`input`,{"onUpdate:modelValue":m[4]||=e=>A.value=e,class:`inp fleet-search`,type:`search`,placeholder:a.$t(`dcw.filterSearchPh`)},null,8,fe),[[r,A.value]])]),b(`div`,pe,[(s(!0),g(f,null,o(M.value,e=>(s(),g(`div`,{key:e.line.id,class:c([`line-card aw-liftable`,{idle:!l(E).lineStateOf(e.line.id).active}]),style:u({"--lc":e.line.color})},[b(`div`,me,[m[30]||=b(`span`,{class:`lc-dot`},null,-1),b(`b`,he,d(e.line.name),1),b(`span`,{class:c([`lc-state`,{on:l(E).lineStateOf(e.line.id).active}])},d(l(E).lineStateOf(e.line.id).active?a.$t(`dcw.k1eox1el055`):a.$t(`dcw.k149r6y7059`)),3),b(`button`,{class:`lc-act`,title:a.$t(`common.edit`),onClick:t=>Vt(e)},[...m[28]||=[b(`span`,{class:`i-tabler-pencil`},null,-1)]],8,ge),b(`button`,{class:`lc-act danger`,title:a.$t(`dcw.k3xakp026`),onClick:t=>zt(e)},[...m[29]||=[b(`span`,{class:`i-tabler-trash`},null,-1)]],8,_e)]),l(E).lineStateOf(e.line.id).active?(s(),g(`small`,ve,d(l(E).lineStateOf(e.line.id).productName)+` · `+d(l(E).lineStateOf(e.line.id).recipeName)+` · `+d(a.$t(`dcw.k3zz0f052`))+` `+d(l(E).lineStateOf(e.line.id).taggedSamples),1)):(s(),g(`small`,{key:1,class:c([`lc-run dim`,{ph:!e.line.description}])},d(e.line.description||a.$t(`dcw.k18moyq1056`)),3)),b(`div`,ye,[b(`span`,null,[p(d(a.$t(`dcw.k45uio011`))+` `,1),b(`b`,null,d(e.nodes),1)]),b(`span`,null,[p(d(a.$t(`dcw.k3waz1012`))+` `,1),b(`b`,null,d(e.products),1)]),b(`span`,null,[p(d(a.$t(`dcw.k48grv013`))+` `,1),b(`b`,null,d(e.recipes),1)])]),b(`div`,be,[l(E).lineStateOf(e.line.id).active?(s(),g(`button`,{key:1,class:`pill-btn stop`,disabled:R.value===e.line.id,onClick:t=>Rt(e)},d(a.$t(`dcw.k148rclf015`)),9,Te)):(s(),g(f,{key:0},[x(b(`select`,{"onUpdate:modelValue":t=>B[e.line.id]=t,class:`inp`,disabled:V(e.line.id).length===0,title:a.$t(`dcw.k1dhaby4003`)},[b(`option`,Se,d(V(e.line.id).length?a.$t(`dcw.kutxzsz057`):a.$t(`dcw.k1elczt9060`)),1),(s(!0),g(f,null,o(V(e.line.id),e=>(s(),g(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},d(e.name)+`(`+d(e.params.length)+`) `,9,Ce))),128))],8,xe),[[t,B[e.line.id]]]),b(`button`,{class:`pill-btn`,disabled:R.value===e.line.id||!B[e.line.id],onClick:t=>Lt(e)},d(a.$t(`dcw.k149b4vg014`)),9,we)],64))]),C(h,{class:`lc-manage`,to:`/dcw/${e.line.id}`},{default:y(()=>[p(d(a.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),b(`button`,{class:`line-card new-card`,onClick:Ft},[m[31]||=b(`span`,{class:`i-tabler-plus`},null,-1),p(` `+d(a.$t(`dcw.k1efe391017`))+` `,1),b(`small`,null,d(a.$t(`dcw.k19dlbli053`)),1)])]),l(E).loaded&&l(E).lines.length===0?(s(),g(`p`,Ee,d(a.$t(`dcw.k1sk85vs018`)),1)):l(E).loaded&&M.value.length===0?(s(),g(`p`,De,d(a.$t(`dcw.filterEmpty`)),1)):_(``,!0),C(e,{name:`modal`},{default:y(()=>[N.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[8]||=i(e=>N.value=!1,[`self`])},[b(`div`,Oe,[b(`h3`,ke,d(a.$t(`dcw.k1efe391017`)),1),b(`label`,Ae,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[32]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[5]||=e=>I.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,je),[[r,I.name]])]),b(`label`,Me,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[6]||=e=>I.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ne),[[r,I.description]])]),b(`div`,Pe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Fe,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:I.color===e}]),style:u({background:e}),onClick:t=>I.color=I.color===e?``:e},null,14,Ie))),128)),b(`small`,Le,d(I.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),F.value?(s(),g(`p`,Re,d(F.value),1)):_(``,!0),b(`div`,ze,[b(`button`,{class:`mini-btn`,onClick:m[7]||=e=>N.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:P.value||!I.name.trim(),onClick:It},d(a.$t(`dcw.k3wzi2023`)),9,Be)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[q.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[12]||=i(e=>q.value=!1,[`self`])},[b(`div`,Ve,[b(`h3`,He,d(a.$t(`dcw.k5tq8wc071`)),1),b(`label`,Ue,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[33]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[9]||=e=>X.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,We),[[r,X.name]])]),b(`label`,Ge,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[10]||=e=>X.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ke),[[r,X.description]])]),b(`div`,qe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Je,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:X.color===e}]),style:u({background:e}),onClick:t=>X.color=X.color===e?``:e},null,14,Ye))),128)),b(`small`,Xe,d(X.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),Y.value?(s(),g(`p`,Ze,d(Y.value),1)):_(``,!0),b(`div`,Qe,[b(`button`,{class:`mini-btn`,onClick:m[11]||=e=>q.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:J.value||!X.name.trim(),onClick:Ht},d(a.$t(`common.save`)),9,$e)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[H.value&&K.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[15]||=i(e=>H.value=!1,[`self`])},[b(`div`,et,[b(`h3`,tt,[m[34]||=b(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(` `+d(a.$t(`dcw.k7xq2mfd063`,{p0:K.value.line.name})),1)]),b(`p`,nt,d(G.value?a.$t(`dcw.k4r7nbd073`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes}):a.$t(`dcw.k1gp649b062`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes})),1),b(`label`,rt,[x(b(`input`,{"onUpdate:modelValue":m[13]||=e=>G.value=e,type:`checkbox`},null,512),[[n,G.value]]),b(`span`,null,d(a.$t(`dcw.k9m2vxa072`)),1)]),W.value?(s(),g(`p`,it,d(W.value),1)):_(``,!0),b(`div`,at,[b(`button`,{class:`mini-btn`,onClick:m[14]||=e=>H.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn danger`,disabled:U.value,onClick:Bt},d(a.$t(`dcw.k3xakp026`)),9,ot)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[Z.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[26]||=i(e=>Z.value=!1,[`self`])},[b(`div`,st,[b(`h3`,ct,[p(d(a.$t(`dcw.k11oadmx024`))+` `,1),b(`small`,lt,d(a.$t(`dcw.k3x23c054`))+` `+d(Kt.value)+` · `+d(a.$t(`dcw.k3t616a058`))+` `+d(l(E).templates.length-Kt.value),1)]),b(`p`,ut,d(a.$t(`dcw.k2hlav5025`)),1),b(`div`,dt,[(s(!0),g(f,null,o(l(E).templates,e=>(s(),g(`div`,{key:e.key,class:`tpl-row`,title:e.semantics??``},[b(`b`,null,d(e.name),1),b(`small`,pt,d(e.code)+` · `+d(e.min)+`~`+d(e.max)+` `+d(e.unit),1),e.semantics?(s(),g(`small`,mt,d(e.semantics.slice(0,40))+d(e.semantics.length>40?`…`:``),1)):_(``,!0),b(`span`,{class:c([`tpl-tag`,{builtin:e.builtin}])},d(e.builtin?a.$t(`dcw.k3x23c054`):a.$t(`dcw.k3t616a058`)),3),e.builtin?_(``,!0):(s(),g(`button`,{key:1,class:`mini-btn danger`,onClick:t=>Gt(e.key)},d(a.$t(`dcw.k3xakp026`)),9,ht))],8,ft))),128))]),b(`p`,gt,d(a.$t(`dcw.k169eb4s027`)),1),b(`div`,_t,[b(`label`,vt,[b(`span`,null,[p(d(a.$t(`dcw.k3xhia028`)),1),m[35]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[16]||=e=>$.name=e,class:`inp`,placeholder:a.$t(`dcw.k1tooi3o006`)},null,8,yt),[[r,$.name]])]),b(`label`,bt,[b(`span`,null,d(a.$t(`dcw.k1bqk219029`)),1),x(b(`input`,{"onUpdate:modelValue":m[17]||=e=>$.ch=e,class:`inp`,placeholder:a.$t(`dcw.k698qz0007`)},null,8,xt),[[r,$.ch]])]),b(`label`,St,[b(`span`,null,d(a.$t(`dcw.k1ayxrqb030`)),1),x(b(`input`,{"onUpdate:modelValue":m[18]||=e=>$.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[r,$.code]])]),b(`label`,Ct,[b(`span`,null,d(a.$t(`dcw.k3x4ef031`)),1),x(b(`input`,{"onUpdate:modelValue":m[19]||=e=>$.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[r,$.unit]])]),b(`label`,wt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv5m032`)),1),m[36]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[20]||=e=>$.min=e,type:`number`,class:`inp`},null,512),[[r,$.min,void 0,{number:!0}]])]),b(`label`,Tt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv4p033`)),1),m[37]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[21]||=e=>$.max=e,type:`number`,class:`inp`},null,512),[[r,$.max,void 0,{number:!0}]])]),b(`label`,Et,[b(`span`,null,d(a.$t(`dcw.k3mxmcx034`)),1),x(b(`input`,{"onUpdate:modelValue":m[22]||=e=>$.decimals=e,type:`number`,class:`inp`},null,512),[[r,$.decimals,void 0,{number:!0}]])]),b(`label`,Dt,[b(`span`,null,d(a.$t(`dcw.k3xx56035`)),1),x(b(`select`,{"onUpdate:modelValue":m[23]||=e=>$.icon=e,class:`inp`},[(s(),g(f,null,o(Ut,e=>b(`option`,{key:e.key,value:e.key},d(e.label),9,Ot)),64))],512),[[t,$.icon]])])]),b(`label`,kt,[b(`span`,null,d(a.$t(`dcw.k1b6qorg036`)),1),x(b(`textarea`,{"onUpdate:modelValue":m[24]||=e=>$.semantics=e,class:`inp`,rows:`3`,placeholder:a.$t(`dcw.k1qdnfzc008`)},null,8,At),[[r,$.semantics]])]),Q.value?(s(),g(`p`,jt,d(Q.value),1)):_(``,!0),b(`div`,Mt,[b(`button`,{class:`mini-btn`,onClick:m[25]||=e=>Z.value=!1},d(a.$t(`dcw.k3x62t037`)),1),b(`button`,{class:`pill-btn`,disabled:!$.name.trim()||$.min===``||$.max===``,onClick:Wt},d(a.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):_(``,!0)]),_:1}),l(E).error?(s(),g(`p`,Pt,d(l(E).error),1)):_(``,!0)])}}}),[[`__scopeId`,`data-v-3f1efd1b`]]);export{E as default};
@@ -1 +1 @@
1
- import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{t as n}from"./36oeS8_R2.js";import{i as r}from"./C6m-kenn.js";var i=40,a=(e,t)=>r({base:`/api/workshop/ops-logs`,path:e,init:t});function o(e){return{id:0,actor:e.actor,actorName:e.actorName||e.actor,actorKind:e.actorKind,action:e.action,targetKind:e.targetKind,targetId:e.targetId,detailJson:``,at:e.at,lineId:e.lineId,productId:e.productId,recipeId:e.recipeId,kind:e.kind,summary:e.summary}}var s=()=>{let r=e([]),s=e([]),c=e({list:!1,posting:!1}),l=e({list:``,post:``}),u=0,d=null;function f(){u++,u===1&&(m(),d=n().subscribe(p));let e=!1;return()=>{e||(e=!0,--u===0&&(d?.(),d=null))}}function p(e){if(e.type===`ops.log`){let t=o(e.payload);r.some(e=>e.at===t.at&&e.actor===t.actor&&e.action===t.action)||(r.unshift(t),r.length>i&&r.splice(i))}}async function m(){try{let e=await a(`?limit=15`);for(let t of(e.logs??[]).reverse())r.some(e=>e.at===t.at&&e.actor===t.actor&&e.action===t.action)||r.unshift(t)}catch{}}async function h(e={}){c.list=!0,l.list=``;try{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=await a(`?${t.toString()}`);s.splice(0,s.length,...n.logs??[])}catch(e){l.list=t(e)}finally{c.list=!1}}async function g(e){c.posting=!0,l.post=``;try{await a(``,{method:`POST`,body:JSON.stringify(e)})}catch(e){throw l.post=t(e),e}finally{c.posting=!1}}return e({recent:r,results:s,loading:c,error:l,ensureLive:f,fetchLogs:h,postManual:g})},c=`__opsLogStream`;function l(){let e=globalThis;return e[c]||(e[c]=s()),e[c]}export{l as t};
1
+ import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{t as n}from"./36oeS8_R2.js";import{i as r}from"./DAR70Lf5.js";var i=40,a=(e,t)=>r({base:`/api/workshop/ops-logs`,path:e,init:t});function o(e){return{id:0,actor:e.actor,actorName:e.actorName||e.actor,actorKind:e.actorKind,action:e.action,targetKind:e.targetKind,targetId:e.targetId,detailJson:``,at:e.at,lineId:e.lineId,productId:e.productId,recipeId:e.recipeId,kind:e.kind,summary:e.summary}}var s=()=>{let r=e([]),s=e([]),c=e({list:!1,posting:!1}),l=e({list:``,post:``}),u=0,d=null;function f(){u++,u===1&&(m(),d=n().subscribe(p));let e=!1;return()=>{e||(e=!0,--u===0&&(d?.(),d=null))}}function p(e){if(e.type===`ops.log`){let t=o(e.payload);r.some(e=>e.at===t.at&&e.actor===t.actor&&e.action===t.action)||(r.unshift(t),r.length>i&&r.splice(i))}}async function m(){try{let e=await a(`?limit=15`);for(let t of(e.logs??[]).reverse())r.some(e=>e.at===t.at&&e.actor===t.actor&&e.action===t.action)||r.unshift(t)}catch{}}async function h(e={}){c.list=!0,l.list=``;try{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=await a(`?${t.toString()}`);s.splice(0,s.length,...n.logs??[])}catch(e){l.list=t(e)}finally{c.list=!1}}async function g(e){c.posting=!0,l.post=``;try{await a(``,{method:`POST`,body:JSON.stringify(e)})}catch(e){throw l.post=t(e),e}finally{c.posting=!1}}return e({recent:r,results:s,loading:c,error:l,ensureLive:f,fetchLogs:h,postManual:g})},c=`__opsLogStream`;function l(){let e=globalThis;return e[c]||(e[c]=s()),e[c]}export{l as t};
@@ -0,0 +1 @@
1
+ .line-chip[data-v-51b1ce74]{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block;box-shadow:0 0 10px}.param-chip.daqwin[data-v-51b1ce74]{color:#41c8f4;border-color:#41c8f466}.adopt-card[data-v-51b1ce74]{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.adopt-title[data-v-51b1ce74]{color:var(--aw-dim,#8fa0b5);flex:none;padding-top:4px;font-size:12px}.adopt-list[data-v-51b1ce74]{flex-wrap:wrap;gap:8px;display:flex}.adopt-chip[data-v-51b1ce74]{color:#e8eef8;background:#0d1420b3;border:1px solid #3c506e80;border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:inline-flex}.page[data-v-51b1ce74]{padding:4px}h1[data-v-51b1ce74]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.ledger-card[data-v-51b1ce74]{margin-bottom:14px;padding:14px 18px}.ledger-head[data-v-51b1ce74]{align-items:center;gap:12px;display:flex}.ledger-head b[data-v-51b1ce74]{font-size:13.5px}.ledger-tri[data-v-51b1ce74]{align-items:center;gap:12px;margin-top:12px;display:flex}.tri-cell[data-v-51b1ce74]{background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);flex-direction:column;flex:none;gap:2px;padding:8px 16px;display:flex}.tri-cell small[data-v-51b1ce74]{color:var(--ink-faint);font-size:10px}.tri-cell b[data-v-51b1ce74]{color:var(--ink);font-size:17px}.ledger-cols[data-v-51b1ce74]{grid-template-columns:1fr 1fr;gap:16px;margin-top:12px;display:grid}.sec-t[data-v-51b1ce74]{letter-spacing:.14em;color:var(--ink-faint);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.ledger-list[data-v-51b1ce74]{max-height:200px;color:var(--ink-soft);flex-direction:column;gap:3px;margin:0;padding:0;font-size:11px;list-style:none;display:flex;overflow:auto}.ledger-rec[data-v-51b1ce74]{align-items:center;gap:8px;display:flex}.rec-st[data-v-51b1ce74]{font-family:var(--font-mono);color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:4px;flex:none;padding:0 6px;font-size:9px}.rec-st.open[data-v-51b1ce74]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot)}.rec-st.judged[data-v-51b1ce74]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot);opacity:.85}.rec-st.judged-keep[data-v-51b1ce74],.rec-st.rolled-back[data-v-51b1ce74]{color:var(--tone-success-dot);border-color:var(--tone-success-dot)}.sub[data-v-51b1ce74]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-51b1ce74]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-51b1ce74]{opacity:.55}.badges[data-v-51b1ce74]{gap:8px;display:flex}.badge[data-v-51b1ce74]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11px}.ctrl-card[data-v-51b1ce74]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.ctrl-left[data-v-51b1ce74]{align-items:center;gap:14px;display:flex}.aw-pill.running[data-v-51b1ce74]{background:var(--accent)}.ctrl-right[data-v-51b1ce74]{align-items:center;gap:12px;display:flex}.ctrl-metrics[data-v-51b1ce74]{color:var(--ink-soft);align-items:center;gap:8px;font-size:11.5px;display:flex}.ctrl-metrics .sep[data-v-51b1ce74]{opacity:.4}.ctrl-metrics .warn[data-v-51b1ce74]{color:var(--tone-warning-dot)}.add-btn[data-v-51b1ce74]{padding:8px 16px;font-size:13px}.banner[data-v-51b1ce74]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-51b1ce74]{color:var(--tone-danger-dot);background:var(--tone-danger-bg);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 40%, transparent)}.banner.good[data-v-51b1ce74]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.table-card[data-v-51b1ce74]{margin-bottom:14px;overflow-x:auto}.nodes-table[data-v-51b1ce74]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-51b1ce74],.nodes-table th[data-v-51b1ce74]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-51b1ce74]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11px;font-weight:600}.nodes-table td b[data-v-51b1ce74]{margin-left:8px}.ch[data-v-51b1ce74]{color:var(--ink-faint);margin-top:2px;font-size:10px;display:block}.right[data-v-51b1ce74]{text-align:right}.val[data-v-51b1ce74]{font-size:13px}.val small[data-v-51b1ce74]{color:var(--ink-faint);margin-left:3px}.read-stale[data-v-51b1ce74]{color:var(--tone-danger-dot,#e05a5a);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.read-btn[data-v-51b1ce74]{margin-left:8px}.st-pill[data-v-51b1ce74]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:2px 9px;font-size:10.5px;display:inline-block}.st-pill.ok[data-v-51b1ce74]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-51b1ce74]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-51b1ce74],.st-pill.error[data-v-51b1ce74]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-51b1ce74]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-51b1ce74],.st-pill.offline[data-v-51b1ce74]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-51b1ce74]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.ctrl-toggle[data-v-51b1ce74]{cursor:pointer;color:var(--ink-faint);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;display:inline-flex}.ctrl-toggle .ct-dot[data-v-51b1ce74]{background:var(--tone-neutral-dot);border-radius:50%;width:7px;height:7px}.ctrl-toggle.on[data-v-51b1ce74]{color:var(--tone-success-dot);border-color:color-mix(in srgb, var(--tone-success-dot) 45%, transparent)}.ctrl-toggle.on .ct-dot[data-v-51b1ce74]{background:var(--tone-success-dot);box-shadow:0 0 6px var(--tone-success-dot)}.ctrl-toggle[data-v-51b1ce74]:disabled{opacity:.55;cursor:wait}.node-paused td[data-v-51b1ce74]{opacity:.6}.node-paused .write-row[data-v-51b1ce74]{opacity:.5}.tpl-hint[data-v-51b1ce74]{margin:0 0 10px;font-size:12px}.tpl-chips[data-v-51b1ce74]{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.tpl-chip[data-v-51b1ce74]{color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;display:inline-flex}.tpl-chip small[data-v-51b1ce74]{color:var(--ink-faint)}.tpl-tag[data-v-51b1ce74]{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:var(--radius-pill);padding:1px 6px;font-size:10px;font-style:normal}.tpl-tag.builtin[data-v-51b1ce74]{color:var(--ink-faint);border-color:var(--line-strong)}.write-row[data-v-51b1ce74]{align-items:center;gap:6px;display:flex}.write-inp[data-v-51b1ce74]{width:92px;padding:4px 8px}.write-btn[data-v-51b1ce74]{padding:5px 12px}.mini-btn[data-v-51b1ce74]{cursor:pointer;color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);margin-right:4px;padding:4px 10px;font-size:11.5px}.mini-btn.danger[data-v-51b1ce74]{color:var(--tone-danger-dot)}.mini-btn[data-v-51b1ce74]:hover{border-color:var(--accent);color:var(--accent)}.inp[data-v-51b1ce74]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 9px;font-size:12.5px}.line-card[data-v-51b1ce74]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.line-status[data-v-51b1ce74]{align-items:center;gap:12px;min-width:260px;display:flex}.line-dot[data-v-51b1ce74]{background:var(--tone-neutral-dot);width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb, var(--tone-neutral-dot) 20%, transparent);border-radius:50%}.line-dot.on[data-v-51b1ce74]{background:var(--tone-success-dot);box-shadow:0 0 0 4px color-mix(in srgb, var(--tone-success-dot) 22%, transparent);animation:1.6s infinite linePulse-51b1ce74}@keyframes linePulse-51b1ce74{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--tone-success-dot) 25%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--tone-success-dot) 8%, transparent)}}.line-info b[data-v-51b1ce74]{font-size:14px}.line-info small[data-v-51b1ce74]{margin-top:2px;font-size:11px;display:block}.line-ctl[data-v-51b1ce74]{align-items:flex-end;gap:10px;display:flex}.ctl-sel[data-v-51b1ce74]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11px;display:flex}.ctl-sel .inp[data-v-51b1ce74]{min-width:150px}.pill-btn.stop[data-v-51b1ce74]{background:var(--tone-danger-dot);border-color:var(--tone-danger-dot)}.product-row[data-v-51b1ce74]{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.prod-chip[data-v-51b1ce74]{cursor:pointer;color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:inline-flex}.prod-chip.on[data-v-51b1ce74]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.prod-del[data-v-51b1ce74]{color:var(--tone-danger-dot);font-weight:700}.query-card[data-v-51b1ce74]{margin-bottom:14px;padding:14px 18px}.q-grid[data-v-51b1ce74]{grid-template-columns:repeat(6,1fr);align-items:end;gap:10px;display:grid}.q-grid .f[data-v-51b1ce74]{color:var(--ink-faint);font-size:11px}.q-actions[data-v-51b1ce74]{justify-content:flex-end}.q-result[data-v-51b1ce74]{margin-top:12px;overflow-x:auto}.cal-form[data-v-51b1ce74]{grid-template-columns:2fr 1fr;align-items:end}.recipe-card[data-v-51b1ce74]{margin-bottom:14px;padding:16px 18px}.recipe-hd[data-v-51b1ce74]{align-items:center;gap:10px;margin-bottom:6px;display:flex}.recipe-hd h3[data-v-51b1ce74]{margin:0;font-size:16px}.panel-tag[data-v-51b1ce74]{color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:2px 8px;font-size:11px}.recipe-sub[data-v-51b1ce74]{color:var(--ink-faint);margin:0 0 14px;font-size:12px}.recipe-grid[data-v-51b1ce74]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.recipe-item[data-v-51b1ce74]{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);padding:12px 14px}.recipe-name b[data-v-51b1ce74]{font-size:13.5px}.recipe-name small[data-v-51b1ce74]{margin-left:8px}.desc[data-v-51b1ce74]{margin:4px 0;font-size:12px}.recipe-params[data-v-51b1ce74]{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.param-chip[data-v-51b1ce74]{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:var(--radius-chip);padding:2px 8px;font-size:11px}.recipe-actions[data-v-51b1ce74]{align-items:center;gap:6px;margin-top:8px;display:flex}.ver-row[data-v-51b1ce74]{border:1px solid var(--divider-hair);border-radius:10px;margin-bottom:8px;padding:10px 12px}.ver-row.cur[data-v-51b1ce74]{background:color-mix(in srgb, var(--accent) 6%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.ver-head[data-v-51b1ce74]{align-items:center;gap:10px;display:flex}.ver-v[data-v-51b1ce74]{font-size:13px;font-weight:700}.ver-src[data-v-51b1ce74]{border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:1px 8px;font-size:10.5px}.ver-src.agent[data-v-51b1ce74]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.ver-src.user[data-v-51b1ce74]{color:var(--ink-soft)}.ver-src.system[data-v-51b1ce74]{color:var(--ink-faint)}.ver-src.cur[data-v-51b1ce74]{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:#0000}.ver-actor[data-v-51b1ce74]{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}.ver-desc[data-v-51b1ce74]{color:var(--ink);margin:6px 0 0;font-size:12px}.ver-diff[data-v-51b1ce74]{color:var(--ink-faint);margin:4px 0 0;font-size:11px}.sec-label[data-v-51b1ce74]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.runs[data-v-51b1ce74]{margin-top:6px}.pill-btn[data-v-51b1ce74]{cursor:pointer;color:var(--paper-raised);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);padding:6px 14px;font-size:12.5px}.pill-btn.outline[data-v-51b1ce74]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}.pill-btn[data-v-51b1ce74]:disabled{opacity:.5;cursor:default}.modal-mask[data-v-51b1ce74]{z-index:50;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-51b1ce74]{background:var(--surface-glass-strong);width:680px;max-width:94vw;max-height:88vh;-webkit-backdrop-filter:var(--aurora-blur);border:1px solid var(--glass-line);border-radius:var(--radius-panel);box-shadow:var(--glass-edge), var(--shadow-float);padding:22px 24px;overflow-y:auto}.m-title[data-v-51b1ce74]{margin:0 0 14px;font-size:17px}.seg-row[data-v-51b1ce74]{gap:8px;margin-bottom:14px;display:flex}.seg[data-v-51b1ce74]{cursor:pointer;color:var(--ink-faint);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);flex:1;padding:8px 0;font-size:13px}.seg.on[data-v-51b1ce74]{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:600}.f-grid[data-v-51b1ce74]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.driver-form[data-v-51b1ce74]{grid-template-columns:repeat(3,1fr)}.param-row[data-v-51b1ce74]{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:end;gap:8px;margin-bottom:8px;display:grid}.param-row .f[data-v-51b1ce74]{flex:1}.param-del[data-v-51b1ce74]{margin-bottom:2px}.f[data-v-51b1ce74]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-51b1ce74]{margin-left:3px;font-style:normal}.hint[data-v-51b1ce74]{color:var(--ink-fainter);font-size:10px}.test-row[data-v-51b1ce74]{align-items:center;gap:10px;margin:6px 0 4px;display:flex}.test-result[data-v-51b1ce74]{font-family:var(--font-mono);font-size:11px}.test-result.good[data-v-51b1ce74]{color:var(--tone-success-dot)}.test-result.bad[data-v-51b1ce74]{color:var(--tone-danger-dot)}.m-err[data-v-51b1ce74]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-actions[data-v-51b1ce74]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-51b1ce74]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}.err[data-v-51b1ce74]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-51b1ce74]:hover{background:var(--hover-tint)}}
@@ -1 +1 @@
1
- {"id":"65f6bed9-b794-44a4-805a-e22700c10817","timestamp":1788694948621}
1
+ {"id":"6a0a88de-639e-4e7b-b7c1-7f4034e04787","timestamp":1788706745133}
@@ -0,0 +1 @@
1
+ {"id":"6a0a88de-639e-4e7b-b7c1-7f4034e04787","timestamp":1788706745133,"prerendered":[]}