agentworkshop 0.7.12 → 0.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{D2JyEL28.js → CXutoGrn.js} +4 -4
- package/.output/public/_nuxt/DGVAuScD.js +1 -0
- package/.output/public/_nuxt/DVoWWlUW.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/bf43874b-06d3-4e20-a84d-e5b0d09e8a27.json +1 -0
- package/.output/public/_nuxt/logs.BarkrvUp.css +1 -0
- package/.output/public/_nuxt/tokens.BVXU1jOK.css +1 -0
- package/.output/server/chunks/_/nitro.mjs +688 -687
- package/.output/server/chunks/_/user.schema.mjs +1 -1
- package/.output/server/chunks/_/user.schema.mjs.map +1 -1
- package/.output/server/chunks/build/{logs-Crf6f1IC.mjs → logs-UWXeNKy_.mjs} +34 -34
- package/.output/server/chunks/build/{logs-Crf6f1IC.mjs.map → logs-UWXeNKy_.mjs.map} +1 -1
- package/.output/server/chunks/build/{tokens-BKLzcdMg.mjs → tokens-Dxnuw96_.mjs} +14 -14
- package/.output/server/chunks/build/{tokens-BKLzcdMg.mjs.map → tokens-Dxnuw96_.mjs.map} +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/virtual/entry.mjs +4 -4
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/app/pages/logs/index.vue +3 -1
- package/app/pages/tokens.vue +3 -1
- package/i18n/locales/en.ts +1 -1
- package/i18n/locales/zh-CN.ts +1 -1
- package/package.json +1 -1
- package/server/repositories/user.repository.ts +4 -3
- package/server/schemas/user.schema.ts +2 -2
- package/.output/public/_nuxt/CvYfzHYz.js +0 -1
- package/.output/public/_nuxt/builds/meta/54e22640-4fd0-4fee-9077-31d4d4bb7969.json +0 -1
- package/.output/public/_nuxt/hb_ceMJP.js +0 -1
- package/.output/public/_nuxt/logs.BS1sb41K.css +0 -1
- package/.output/public/_nuxt/tokens.rW1xHxRW.css +0 -1
package/app/pages/logs/index.vue
CHANGED
package/app/pages/tokens.vue
CHANGED
|
@@ -272,7 +272,9 @@ useHead({ title: () => tt('titles.tokens') })
|
|
|
272
272
|
<template v-else>
|
|
273
273
|
<div class="head">
|
|
274
274
|
<div>
|
|
275
|
-
<p class="aw-kicker">
|
|
275
|
+
<p class="aw-kicker">
|
|
276
|
+
agentworkshop / api tokens
|
|
277
|
+
</p>
|
|
276
278
|
<h2>API Token</h2>
|
|
277
279
|
<p class="sub">
|
|
278
280
|
{{ userStore.user?.name }} · {{ $t('tokens.k1upppaw026') }}
|
package/i18n/locales/en.ts
CHANGED
|
@@ -1119,7 +1119,7 @@ export default {
|
|
|
1119
1119
|
ke16e53026: '\'s resources (user-isolated; persisted server-side)',
|
|
1120
1120
|
k41ds5027: 'Template',
|
|
1121
1121
|
k1ggoa45028: 'Members / Busy',
|
|
1122
|
-
k48h2c001: 'Email',
|
|
1122
|
+
k48h2c001: 'Email or username',
|
|
1123
1123
|
k3yvgs002: 'Password',
|
|
1124
1124
|
kwgbai9003: 'Username (unique)',
|
|
1125
1125
|
kizjkbo004: 'Email (unique)',
|
package/i18n/locales/zh-CN.ts
CHANGED
package/package.json
CHANGED
|
@@ -319,10 +319,11 @@ export const userRepository = {
|
|
|
319
319
|
return new Map(rows.map(r => [r.lineId, r.mode]))
|
|
320
320
|
},
|
|
321
321
|
|
|
322
|
-
/**
|
|
323
|
-
|
|
322
|
+
/** 内部:取密码哈希(仅认证路径使用,不参与领域对象外泄)。
|
|
323
|
+
* 登录账号:邮箱或用户名均可(用户名注册时唯一;参数绑定防注入) */
|
|
324
|
+
getPasswordHash(account: string): { id: string, hash: string } | null {
|
|
324
325
|
const d = getDb()
|
|
325
|
-
const row = d.prepare('SELECT id, password_hash AS hash FROM users WHERE LOWER(email) = LOWER(?)').get(
|
|
326
|
+
const row = d.prepare('SELECT id, password_hash AS hash FROM users WHERE LOWER(email) = LOWER(?) OR LOWER(name) = LOWER(?)').get(account, account) as { id: string, hash: string } | undefined
|
|
326
327
|
return row ?? null
|
|
327
328
|
},
|
|
328
329
|
|
|
@@ -42,9 +42,9 @@ export const userRegisterSchema = z.object({
|
|
|
42
42
|
password: passwordSchema,
|
|
43
43
|
})
|
|
44
44
|
|
|
45
|
-
/** 登录请求体(email
|
|
45
|
+
/** 登录请求体(account = 邮箱或用户名均可;字段名保留 email 兼容既有客户端) */
|
|
46
46
|
export const userLoginSchema = z.object({
|
|
47
|
-
email: z.string().trim().
|
|
47
|
+
email: z.string().trim().min(1, '请输入邮箱或用户名').max(128, '过长'),
|
|
48
48
|
password: z.string().min(1, '密码不能为空').max(128, '密码过长'),
|
|
49
49
|
})
|
|
50
50
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as e}from"./rqZ-1SoP.js";import{C as t,H as n,Ht as r,St as i,Wt as a,a as o,b as s,et as c,f as l,g as u,h as d,lt as f,m as p,mt as m,nt as h,p as g,t as _,x as v}from"./BSCpFtzG.js";import{d as ee}from"./-6OnbLFb.js";import{n as y}from"./B5S_UyaC.js";import{n as b}from"./BeIfu4N3.js";import{t as te}from"./VLI2Zy4t.js";import{t as ne}from"./DNxVTfhe.js";import{r as x}from"./D-Ca4BGY.js";import{t as re}from"./RzXYI9FM.js";import{t as S}from"./B-xskWta.js";import{t as C}from"./BBwMH_hG.js";import{t as w}from"./DTYBfjRY.js";import{t as T}from"./Cor9siSf.js";import{t as ie}from"./ORt9oDIy2.js";import{t as ae}from"./C9f8QMp12.js";import{t as E}from"./BcrN7QEl2.js";import{t as D}from"./G0qIw7Gq2.js";import{t as O}from"./CNs_Ozdc.js";var oe={class:`page`},se={key:0,class:`auth-gate`},ce={class:`sub`},le={class:`head`},ue={class:`sub`},de={class:`font-medium`},fe={key:1,class:`tok-cell`},pe=[`title`],me={class:`once-banner`},he={class:`raw-row`},ge={class:`raw`},_e=[`title`],ve=[`title`],ye={class:`once-meta`},k=_(t({__name:`tokens`,setup(t){let{t:_}=b();O({layout:`default`});let k=E(),A=m([]),j=m(!1),M=m(!1),N=m(``),P=m(!1),F=m(``),I=m(``),L=m(!1),R=m(``),z=m(``),B=m(!1),V=async()=>{if(k.isLoggedIn){j.value=!0;try{A.value=await k.listTokens()}catch(e){x.error(e instanceof Error?e.message:_(`tokens.k19jvk54013`))}finally{j.value=!1}}};c(()=>k.isLoggedIn,e=>{e?V():A.value=[]},{immediate:!0});let H=async()=>{P.value=!0;try{let e=await k.createToken(N.value);F.value=e.token,I.value=N.value,M.value=!1,N.value=``,await V()}catch(e){x.error(D(e))}finally{P.value=!1}},U=async()=>{if(!z.value.trim()){x.warning(_(`tokens.k169z26g014`));return}B.value=!0;try{await k.renameToken(R.value,z.value),L.value=!1,await V(),x.success(_(`tokens.k3n9aij015`))}catch(e){x.error(D(e))}finally{B.value=!1}},be=e=>{let t=e.id;if(!t)return;let n=t===k.user?.tokenId;(async()=>{try{if(await k.revokeToken(t),x.success(_(`tokens.k3n64kh016`)),n)return;await V()}catch(e){x.error(D(e))}})()},W=m(!1),G=m(!1),xe=l(()=>{let e=F.value;return e?`${e.slice(0,6)}${`•`.repeat(Math.max(12,e.length-10))}${e.slice(-4)}`:``}),Se=()=>{W.value=!W.value},K=async e=>{try{return await navigator.clipboard.writeText(e),!0}catch{try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}},Ce=async()=>{await K(F.value)?(G.value=!0,setTimeout(()=>{G.value=!1},1600)):x.error(_(`tokens.kjtcn2h017`))},q=()=>{F.value=``,W.value=!1,G.value=!1},J=m({}),Y=m(``),X=m(``),Z=e=>e in J.value,we=e=>Z(e.id)?J.value[e.id]:e.preview??`ut-${`•`.repeat(14)}`,Q=async e=>{if(Z(e.id)){Reflect.deleteProperty(J.value,e.id);return}if(!e.hasPlain){x.warning(_(`tokens.kkpgzo8018`));return}Y.value=e.id;try{let t=await k.revealToken(e.id);t&&(J.value[e.id]=t)}catch(e){x.error(e instanceof Error?e.message:_(`tokens.k1gj9ls019`))}finally{Y.value=``}},Te=async e=>{let t=J.value[e.id]??null;if(!t){if(!e.hasPlain){x.warning(_(`tokens.kr5ovor020`));return}Y.value=e.id;try{t=await k.revealToken(e.id)}catch(e){x.error(e instanceof Error?e.message:_(`tokens.kubtby5021`));return}finally{Y.value=``}}t&&await K(t)?(X.value=e.id,setTimeout(()=>{X.value=``},1600)):x.error(_(`tokens.kgkfcr0022`))},$=e=>e?e.replace(`T`,` `).slice(0,19):`-`,Ee=e=>{R.value=e.id??``,z.value=e.label??``,L.value=!0},De=[{title:_(`tokens.k41416002`),key:`label`,dataIndex:`label`},{title:`Token`,key:`token`,width:360},{title:_(`tokens.k1bg95gk023`),key:`createdAt`,dataIndex:`createdAt`,width:170},{title:_(`tokens.k1euotul024`),key:`lastUsedAt`,dataIndex:`lastUsedAt`,width:200},{title:_(`tokens.k40aa6025`),key:`action`,width:170}];return y({title:()=>_(`titles.tokens`)}),(t,c)=>{let l=te,m=T,_=S,y=ie,b=w,x=ne,E=ae,D=re,O=C;return n(),u(`div`,oe,[i(k).isLoggedIn?(n(),u(o,{key:1},[g(`div`,le,[g(`div`,null,[c[6]||=g(`p`,{class:`aw-kicker`},`agentworkshop / api tokens`,-1),c[7]||=g(`h2`,null,`API Token`,-1),g(`p`,ue,a(i(k).user?.name)+` · `+a(t.$t(`tokens.k1upppaw026`)),1)]),v(y,null,{default:h(()=>[i(k).user?.tokenId?(n(),p(_,{key:0,color:`green`},{default:h(()=>[s(a(t.$t(`tokens.khcxmsc006`)),1)]),_:1})):d(``,!0),v(l,{type:`primary`,onClick:c[1]||=e=>M.value=!0},{default:h(()=>[c[8]||=g(`span`,{class:`i-tabler-plus`},null,-1),s(` `+a(t.$t(`chips.issue`)),1)]),_:1})]),_:1})]),v(E,{spinning:i(j)},{default:h(()=>[v(x,{columns:De,"data-source":i(A),pagination:!1,"row-key":`id`},{bodyCell:h(({column:e,record:f})=>[e.key===`label`?(n(),p(y,{key:0},{default:h(()=>[c[9]||=g(`span`,{class:`i-tabler-key text-primary`},null,-1),g(`span`,de,a(f.label||t.$t(`tokens.kj3mklm028`)),1),f.id===i(k).user?.tokenId?(n(),p(_,{key:0,color:`green`},{default:h(()=>[s(a(t.$t(`tokens.k1defr98007`)),1)]),_:1})):d(``,!0)]),_:2},1024)):e.key===`token`?(n(),u(`div`,fe,[g(`code`,{class:r([`tok-val`,{revealed:Z(f.id)}]),title:Z(f.id)?`已显示明文,点击眼睛遮回`:`掩码预览`},a(we(f)),11,pe),f.hasPlain?(n(),p(l,{key:0,type:`text`,size:`small`,class:`tok-op`,loading:i(Y)===f.id,title:Z(f.id)?`遮回`:`查看明文`,onClick:e=>Q(f)},{default:h(()=>[g(`span`,{class:r(Z(f.id)?`i-tabler-eye-off`:`i-tabler-eye`)},null,2)]),_:2},1032,[`loading`,`title`,`onClick`])):d(``,!0),f.hasPlain?(n(),p(l,{key:1,type:`text`,size:`small`,class:r([`tok-op`,{ok:i(X)===f.id}]),title:i(X)===f.id?`已复制`:`复制明文`,onClick:e=>Te(f)},{default:h(()=>[g(`span`,{class:r(i(X)===f.id?`i-tabler-check`:`i-tabler-copy`)},null,2)]),_:2},1032,[`class`,`title`,`onClick`])):d(``,!0)])):e.key===`createdAt`?(n(),u(o,{key:2},[s(a($(f.createdAt)),1)],64)):e.key===`lastUsedAt`?(n(),u(o,{key:3},[s(a($(f.lastUsedAt)),1)],64)):e.key===`action`?(n(),p(y,{key:4},{default:h(()=>[v(l,{type:`link`,size:`small`,onClick:e=>Ee(f)},{default:h(()=>[c[10]||=g(`span`,{class:`i-tabler-edit`},null,-1),s(` `+a(t.$t(`tokens.k3vrpcs009`)),1)]),_:1},8,[`onClick`]),v(b,{title:f.id===i(k).user?.tokenId?`吊销当前会话 token 将退出登录`:`吊销后立即失效`,"ok-text":`吊销`,"cancel-text":`取消`,onConfirm:e=>be(f)},{default:h(()=>[v(l,{type:`text`,size:`small`,class:`tok-revoke`},{default:h(()=>[c[11]||=g(`span`,{class:`i-tabler-trash`},null,-1),s(` `+a(t.$t(`tokens.k3xmrz010`)),1)]),_:1})]),_:1},8,[`title`,`onConfirm`])]),_:2},1024)):d(``,!0)]),_:1},8,[`data-source`])]),_:1},8,[`spinning`]),v(O,{open:i(M),"onUpdate:open":c[3]||=e=>f(M)?M.value=e:null,title:t.$t(`chips.issueTitle`),"confirm-loading":i(P),"ok-text":`创建`,"cancel-text":`取消`,onOk:H},{default:h(()=>[v(D,{value:i(N),"onUpdate:value":c[2]||=e=>f(N)?N.value=e:null,placeholder:t.$t(`tokens.k1hlqknl001`),onKeydown:e(H,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`]),v(O,{open:i(F)!==``,title:`Token 已创建`,footer:null,"mask-closable":!1,onCancel:q,onAfterClose:q},{default:h(()=>[g(`div`,me,[c[12]||=g(`span`,{class:`i-tabler-circle-check`},null,-1),g(`span`,null,a(t.$t(`tokens.k12149oy011`)),1)]),g(`div`,he,[g(`code`,ge,a(i(W)?i(F):i(xe)),1),g(`button`,{class:`raw-op`,title:i(W)?`隐藏明文`:`显示明文`,onClick:Se},[g(`span`,{class:r(i(W)?`i-tabler-eye-off`:`i-tabler-eye`)},null,2)],8,_e),g(`button`,{class:r([`raw-op`,{ok:i(G)}]),title:i(G)?`已复制`:`复制`,onClick:Ce},[g(`span`,{class:r(i(G)?`i-tabler-check`:`i-tabler-copy`)},null,2)],10,ve)]),g(`div`,ye,[g(`span`,null,a(t.$t(`tokens.k3p0p44027`))+a(i(I)||t.$t(`tokens.kj3mklm028`)),1),c[13]||=g(`span`,null,`用法:Authorization: Bearer <token>`,-1)]),v(l,{type:`primary`,block:``,onClick:q},{default:h(()=>[s(a(t.$t(`tokens.k1s5f5zd012`)),1)]),_:1})]),_:1},8,[`open`]),v(O,{open:i(L),"onUpdate:open":c[5]||=e=>f(L)?L.value=e:null,title:`重命名 Token`,"confirm-loading":i(B),"ok-text":`保存`,"cancel-text":`取消`,onOk:U},{default:h(()=>[v(D,{value:i(z),"onUpdate:value":c[4]||=e=>f(z)?z.value=e:null,placeholder:t.$t(`tokens.k41416002`),onKeydown:e(U,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`confirm-loading`])],64)):(n(),u(`div`,se,[v(m,{class:`auth-card`},{default:h(()=>[g(`h2`,null,a(t.$t(`tokens.k1k6z0r8003`)),1),g(`p`,ce,a(t.$t(`tokens.k1gjnree004`)),1),v(l,{type:`primary`,block:``,onClick:c[0]||=e=>(`navigateTo`in t?t.navigateTo:i(ee))(`/workshop`)},{default:h(()=>[s(a(t.$t(`tokens.k1bhhheq005`)),1)]),_:1})]),_:1})]))])}}}),[[`__scopeId`,`data-v-473f21d7`]]);export{k as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"54e22640-4fd0-4fee-9077-31d4d4bb7969","timestamp":1788682049459,"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,K as t,U as n,W as r,q as ee}from"./rqZ-1SoP.js";import{C as i,G as a,H as o,Ht as s,St as c,Wt as l,a as u,b as d,c as te,f,ft as p,g as m,h,m as ne,mt as g,p as _,rt as v,t as y,z as re}from"./BSCpFtzG.js";import{r as b}from"./D-Ca4BGY.js";import{t as ie}from"./G0qIw7Gq2.js";import{t as ae}from"./arUY5dyq2.js";import{t as oe}from"./C6m-kenn.js";import{t as se}from"./Bmpvki7M.js";var ce={class:`page`},le={class:`head`},ue={class:`h1`},de={class:`sub`},fe={class:`head-actions`},pe=[`title`],x={class:`live-txt mono`},S={class:`filter-card`},C={class:`flt`},w={value:``},T=[`value`],E={class:`flt`},D={value:``},O=[`value`],k={class:`flt`},A={value:``},j=[`value`],M={class:`flt`},N={value:``},P={value:`user`},F={value:`system`},I={class:`flt`},L={value:``},R=[`value`],z={class:`flt flt-grow`},B=[`placeholder`],me=[`disabled`],he={class:`table-card`},ge={key:0,class:`err`},_e={class:`log-table`},ve={class:`th-time`},ye={class:`th-src`},be={class:`th-kind`},xe={class:`th-scope`},Se={class:`th-detail`},Ce={class:`mono dim`},we={class:`actor`},Te={class:`summary`},Ee={class:`mono dim action`},De={class:`scope`},Oe=[`title`],ke=[`title`],Ae={key:2,class:`scope-chip`,title:`Recipe`},V={key:3,class:`dim`},je={class:`detail-cell`},Me=[`onClick`],Ne={key:1,class:`dim`},Pe={key:0,colspan:`7`,class:`empty`},Fe={key:1,class:`detail-box mono`},Ie={class:`modal`},Le={class:`m-title`},Re={class:`m-f`},ze=[`placeholder`],Be={class:`m-grid`},Ve={class:`m-f`},He={value:``},Ue=[`value`],We={class:`m-f`},Ge={value:``},Ke=[`value`],qe={class:`m-f`},Je={value:``},Ye=[`value`],Xe={key:0,class:`err`},Ze={class:`m-actions`},Qe=[`disabled`],H=y(i({name:`OpsLogsPage`,setup(i){let y=t=>e().$i18n.t(t),H=oe(),$e=ae(),U=se(),et=[`write`,`manual`,`alarm`,`line`,`recipe`,`rollback`,`daq`,`system`],W=p({lineId:``,productId:``,recipeId:``,actorKind:``,kind:``,text:``}),G=g(null),K=g(!1),q=p({summary:``,lineId:``,productId:``,recipeId:``}),tt=f(()=>!!(W.lineId||W.productId||W.recipeId||W.actorKind||W.kind||W.text.trim())),J=f(()=>H.products.filter(e=>!W.lineId||e.lineId===W.lineId)),Y=f(()=>H.recipes.filter(e=>(!W.lineId||e.lineId===W.lineId)&&(!W.productId||e.productId===W.productId)));function X(){U.fetchLogs({lineId:W.lineId,productId:W.productId,recipeId:W.recipeId,actorKind:W.actorKind,kind:W.kind,q:W.text.trim(),limit:300}),G.value=null}function nt(){W.lineId=``,W.productId=``,W.recipeId=``,W.actorKind=``,W.kind=``,W.text=``,X()}function rt(){q.summary=``,q.lineId=W.lineId,q.productId=W.productId,q.recipeId=W.recipeId,K.value=!0}async function it(){try{await U.postManual({summary:q.summary.trim(),lineId:q.lineId,productId:q.productId,recipeId:q.recipeId}),b.success(y(`logs.mOk`)),K.value=!1,X()}catch(e){b.error(ie(e))}}function at(e){G.value=G.value===e?null:e}function ot(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function st(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return e;let n=e=>String(e).padStart(2,`0`);return`${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function ct(e){return e===`agent`?`Agent`:y(e===`user`?`logs.src.user`:`logs.src.system`)}function lt(e){return e?y(`logs.kind.${e}`):`—`}function Z(e){return H.lines.find(t=>t.id===e)?.name??``}function Q(e){return H.products.find(t=>t.id===e)?.name??``}function $(e){return H.recipes.find(t=>t.id===e)?.name??``}return re(()=>{$e.ensureConnected(),U.ensureLive(),H.load(),X()}),(e,i)=>(o(),m(`div`,ce,[_(`header`,le,[_(`div`,null,[i[16]||=_(`p`,{class:`aw-kicker`},`agentworkshop / audit log`,-1),_(`h1`,ue,l(e.$t(`logs.title`)),1),_(`p`,de,l(e.$t(`logs.sub`)),1)]),_(`div`,fe,[_(`span`,{class:`live-dot`,title:e.$t(`logs.liveHint`)},null,8,pe),_(`span`,x,l(e.$t(`logs.live`))+` `+l(c(U).recent.length),1),_(`button`,{class:`pill-btn`,onClick:rt},[i[17]||=_(`span`,{class:`i-tabler-plus`},null,-1),d(` `+l(e.$t(`logs.manual`)),1)])])]),_(`section`,S,[_(`label`,C,[_(`span`,null,l(e.$t(`logs.fLine`)),1),v(_(`select`,{"onUpdate:modelValue":i[0]||=e=>W.lineId=e,class:`inp-sel`,onChange:i[1]||=e=>{W.productId=``,W.recipeId=``}},[_(`option`,w,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(c(H).lines,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,T))),128))],544),[[n,W.lineId]])]),_(`label`,E,[_(`span`,null,l(e.$t(`logs.fProduct`)),1),v(_(`select`,{"onUpdate:modelValue":i[2]||=e=>W.productId=e,class:`inp-sel`,onChange:i[3]||=e=>W.recipeId=``},[_(`option`,D,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(J.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,O))),128))],544),[[n,W.productId]])]),_(`label`,k,[i[18]||=_(`span`,null,`Recipe`,-1),v(_(`select`,{"onUpdate:modelValue":i[4]||=e=>W.recipeId=e,class:`inp-sel`},[_(`option`,A,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(Y.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,j))),128))],512),[[n,W.recipeId]])]),_(`label`,M,[_(`span`,null,l(e.$t(`logs.fSource`)),1),v(_(`select`,{"onUpdate:modelValue":i[5]||=e=>W.actorKind=e,class:`inp-sel`},[_(`option`,N,l(e.$t(`logs.all`)),1),_(`option`,P,l(e.$t(`logs.src.user`)),1),i[19]||=_(`option`,{value:`agent`},` Agent `,-1),_(`option`,F,l(e.$t(`logs.src.system`)),1)],512),[[n,W.actorKind]])]),_(`label`,I,[_(`span`,null,l(e.$t(`logs.fKind`)),1),v(_(`select`,{"onUpdate:modelValue":i[6]||=e=>W.kind=e,class:`inp-sel`},[_(`option`,L,l(e.$t(`logs.all`)),1),(o(),m(u,null,a(et,t=>_(`option`,{key:t,value:t},l(e.$t(`logs.kind.${t}`)),9,R)),64))],512),[[n,W.kind]])]),_(`label`,z,[_(`span`,null,l(e.$t(`logs.fKeyword`)),1),v(_(`input`,{"onUpdate:modelValue":i[7]||=e=>W.text=e,class:`inp-sel`,type:`search`,placeholder:e.$t(`logs.fKeywordPh`),onKeydown:t(X,[`enter`])},null,40,B),[[r,W.text]])]),_(`button`,{class:`pill-btn`,disabled:c(U).loading.list,onClick:X},[i[20]||=_(`span`,{class:`i-tabler-search`},null,-1),d(` `+l(e.$t(`logs.query`)),1)],8,me),tt.value?(o(),m(`button`,{key:0,class:`mini-btn`,onClick:nt},l(e.$t(`logs.reset`)),1)):h(``,!0)]),_(`section`,he,[c(U).error.list?(o(),m(`p`,ge,l(c(U).error.list),1)):h(``,!0),_(`table`,_e,[_(`thead`,null,[_(`tr`,null,[_(`th`,ve,l(e.$t(`logs.thTime`)),1),_(`th`,ye,l(e.$t(`logs.fSource`)),1),_(`th`,null,l(e.$t(`logs.thActor`)),1),_(`th`,be,l(e.$t(`logs.fKind`)),1),_(`th`,null,l(e.$t(`logs.thSummary`)),1),_(`th`,xe,l(e.$t(`logs.thScope`)),1),_(`th`,Se,l(e.$t(`logs.thDetail`)),1)])]),_(`tbody`,null,[(o(!0),m(u,null,a(c(U).results,t=>(o(),m(`tr`,{key:`${t.id}-${t.at}`},[_(`td`,Ce,l(st(t.at)),1),_(`td`,null,[_(`span`,{class:s([`src-badge`,t.actorKind])},l(ct(t.actorKind)),3)]),_(`td`,we,l(t.actorName||t.actor||`—`),1),_(`td`,null,[_(`span`,{class:s([`kind-chip`,t.kind])},l(lt(t.kind)),3)]),_(`td`,Te,[d(l(t.summary)+` `,1),_(`small`,Ee,l(t.action),1)]),_(`td`,De,[Z(t.lineId)?(o(),m(`span`,{key:0,class:`scope-chip`,title:e.$t(`logs.fLine`)},l(Z(t.lineId)),9,Oe)):h(``,!0),Q(t.productId)?(o(),m(`span`,{key:1,class:`scope-chip`,title:e.$t(`logs.fProduct`)},l(Q(t.productId)),9,ke)):h(``,!0),$(t.recipeId)?(o(),m(`span`,Ae,l($(t.recipeId)),1)):h(``,!0),!t.lineId&&!t.productId&&!t.recipeId?(o(),m(`span`,V,`—`)):h(``,!0)]),_(`td`,je,[t.detailJson&&t.detailJson!==`{}`?(o(),m(`button`,{key:0,class:`mini-btn`,onClick:e=>at(t)},l(G.value===t?e.$t(`logs.fold`):e.$t(`logs.expand`)),9,Me)):(o(),m(`span`,Ne,`—`))])]))),128)),_(`tr`,null,[c(U).results.length===0?(o(),m(`td`,Pe,[c(U).loading.list?(o(),m(u,{key:0},[d(l(e.$t(`logs.loading`)),1)],64)):(o(),m(u,{key:1},[d(l(e.$t(`logs.empty`)),1)],64))])):h(``,!0)])])]),G.value?(o(),m(`pre`,Fe,l(ot(G.value.detailJson)),1)):h(``,!0)]),(o(),ne(te,{to:`body`},[K.value?(o(),m(`div`,{key:0,class:`modal-mask`,onClick:i[15]||=ee(e=>K.value=!1,[`self`])},[_(`div`,Ie,[_(`h3`,Le,l(e.$t(`logs.manual`)),1),_(`label`,Re,[_(`span`,null,l(e.$t(`logs.mSummary`))+` *`,1),v(_(`textarea`,{"onUpdate:modelValue":i[8]||=e=>q.summary=e,rows:`3`,placeholder:e.$t(`logs.mSummaryPh`)},null,8,ze),[[r,q.summary]])]),_(`div`,Be,[_(`label`,Ve,[_(`span`,null,l(e.$t(`logs.fLine`)),1),v(_(`select`,{"onUpdate:modelValue":i[9]||=e=>q.lineId=e,class:`inp-sel`,onChange:i[10]||=e=>{q.productId=``,q.recipeId=``}},[_(`option`,He,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(c(H).lines,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ue))),128))],544),[[n,q.lineId]])]),_(`label`,We,[_(`span`,null,l(e.$t(`logs.fProduct`)),1),v(_(`select`,{"onUpdate:modelValue":i[11]||=e=>q.productId=e,class:`inp-sel`,onChange:i[12]||=e=>q.recipeId=``},[_(`option`,Ge,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(J.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ke))),128))],544),[[n,q.productId]])]),_(`label`,qe,[i[21]||=_(`span`,null,`Recipe`,-1),v(_(`select`,{"onUpdate:modelValue":i[13]||=e=>q.recipeId=e,class:`inp-sel`},[_(`option`,Je,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(Y.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ye))),128))],512),[[n,q.recipeId]])])]),c(U).error.post?(o(),m(`p`,Xe,l(c(U).error.post),1)):h(``,!0),_(`div`,Ze,[_(`button`,{class:`ghost-btn`,onClick:i[14]||=e=>K.value=!1},l(e.$t(`common.cancel`)),1),_(`button`,{class:`pill-btn`,disabled:c(U).loading.posting||!q.summary.trim(),onClick:it},l(e.$t(`logs.mSubmit`)),9,Qe)])])])):h(``,!0)]))]))}}),[[`__scopeId`,`data-v-ad74182f`]]);export{H as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page[data-v-ad74182f]{flex-direction:column;gap:12px;display:flex}.head[data-v-ad74182f]{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.h1[data-v-ad74182f]{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:20px;font-weight:700;display:flex}.sub[data-v-ad74182f]{color:var(--ink-faint);margin:4px 0 0;font-size:12.5px}.head-actions[data-v-ad74182f]{align-items:center;gap:10px;display:flex}.live-dot[data-v-ad74182f]{background:var(--tone-success-dot);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--tone-success-dot) 45%, transparent);border-radius:50%;animation:2s ease-out infinite livePulse-ad74182f}@keyframes livePulse-ad74182f{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--tone-success-dot) 45%, transparent)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.live-txt[data-v-ad74182f]{color:var(--ink-faint);font-size:11px}.filter-card[data-v-ad74182f]{background:var(--surface-glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(var(--aurora-blur)) saturate(1.15);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:10px 14px;display:flex}.flt[data-v-ad74182f]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.flt-grow[data-v-ad74182f]{flex:180px}.inp-sel[data-v-ad74182f]{min-width:0;color:var(--ink);background:var(--frost-bg);border:1px solid var(--glass-line);border-radius:7px;outline:none;padding:6px 9px;font-size:12.5px}.inp-sel[data-v-ad74182f]:focus{border-color:color-mix(in srgb, var(--tone-info-dot) 55%, transparent)}.mini-btn[data-v-ad74182f]{color:var(--ink-soft);background:var(--frost-bg);border:1px solid var(--glass-line);cursor:pointer;border-radius:7px;padding:6px 11px;font-size:12px}.mini-btn[data-v-ad74182f]:hover{border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.table-card[data-v-ad74182f]{background:var(--surface-glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(var(--aurora-blur)) saturate(1.15);border-radius:10px;overflow:hidden}.err[data-v-ad74182f]{color:var(--tone-danger-dot);margin:0;padding:8px 14px;font-size:12px}.log-table[data-v-ad74182f]{border-collapse:collapse;width:100%;font-size:12.5px}.log-table th[data-v-ad74182f]{z-index:1;text-align:left;color:var(--ink-soft);background:var(--frost-bg);border-bottom:1px solid var(--glass-line);padding:8px 10px;font-weight:600;position:sticky;top:0}.log-table td[data-v-ad74182f]{max-width:380px;color:var(--ink-soft);border-bottom:1px solid color-mix(in srgb, var(--glass-line) 55%, transparent);vertical-align:top;padding:7px 10px}.th-kind[data-v-ad74182f],.th-src[data-v-ad74182f],.th-time[data-v-ad74182f]{white-space:nowrap}.th-detail[data-v-ad74182f]{width:72px}.actor[data-v-ad74182f]{white-space:nowrap}.summary .action[data-v-ad74182f]{color:var(--ink-faint);font-size:10px;display:block}.scope[data-v-ad74182f]{flex-wrap:wrap;gap:4px;max-width:220px;display:flex}.scope-chip[data-v-ad74182f]{color:var(--ink-soft);background:var(--frost-bg);white-space:nowrap;border-radius:99px;padding:1px 7px;font-size:10.5px}.detail-cell[data-v-ad74182f]{white-space:nowrap}.empty[data-v-ad74182f]{color:var(--ink-faint);text-align:center;padding:22px 0!important}.detail-box[data-v-ad74182f]{max-height:260px;color:var(--ink-soft);background:var(--frost-bg);border-top:1px solid var(--glass-line);margin:0;padding:10px 14px;font-size:11.5px;overflow:auto}.src-badge[data-v-ad74182f]{border:1px solid var(--glass-line);color:var(--ink-faint);border-radius:99px;padding:1px 8px;font-size:10.5px;display:inline-block}.src-badge.agent[data-v-ad74182f]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.src-badge.user[data-v-ad74182f]{color:var(--tone-success-dot);border-color:color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.kind-chip[data-v-ad74182f]{color:var(--ink-soft);background:var(--frost-bg);white-space:nowrap;border-radius:5px;padding:1px 7px;font-size:10.5px;display:inline-block}.kind-chip.alarm[data-v-ad74182f]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.kind-chip.write[data-v-ad74182f]{color:var(--tone-info-dot)}.kind-chip.rollback[data-v-ad74182f]{color:var(--tone-warning-dot)}.kind-chip.manual[data-v-ad74182f]{color:var(--tone-success-dot)}.m-title[data-v-ad74182f]{color:var(--ink);margin:0 0 10px;font-size:15px}.modal-mask[data-v-ad74182f]{z-index:60;background:color-mix(in srgb, var(--ink) 32%, transparent);-webkit-backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal[data-v-ad74182f]{background:var(--surface-glass);border:1px solid var(--glass-line);width:min(560px,94vw);-webkit-backdrop-filter:blur(calc(var(--aurora-blur)*1.4)) saturate(1.2);border-radius:12px;padding:16px 18px}.m-f[data-v-ad74182f]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.m-f .inp-sel[data-v-ad74182f],.m-f textarea[data-v-ad74182f]{color:var(--ink);background:var(--frost-bg);border:1px solid var(--glass-line);resize:vertical;border-radius:7px;outline:none;padding:7px 9px;font-family:inherit;font-size:12.5px}.m-f .inp-sel[data-v-ad74182f]:focus,.m-f textarea[data-v-ad74182f]:focus{border-color:color-mix(in srgb, var(--tone-info-dot) 55%, transparent)}.m-grid[data-v-ad74182f]{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;display:grid}.m-actions[data-v-ad74182f]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.ghost-btn[data-v-ad74182f]{color:var(--ink-soft);border:1px solid var(--glass-line);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-size:12.5px}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page[data-v-473f21d7]{padding:4px}.auth-gate[data-v-473f21d7]{justify-content:center;padding-top:8vh;display:flex}.auth-card[data-v-473f21d7]{width:460px;max-width:92vw}.auth-card h2[data-v-473f21d7]{font-family:var(--font-display);margin:0 0 8px}.sub[data-v-473f21d7]{opacity:.6;margin:0 0 12px;font-size:12px}.head[data-v-473f21d7]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}h2[data-v-473f21d7]{font-family:var(--font-display);margin:0 0 4px}.once-banner[data-v-473f21d7]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:var(--radius-chip);align-items:flex-start;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:12.5px;line-height:1.5;display:flex}.raw-row[data-v-473f21d7]{align-items:stretch;gap:6px;display:flex}.raw[data-v-473f21d7]{font-family:var(--font-mono);letter-spacing:.02em;word-break:break-all;-webkit-user-select:all;user-select:all;background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);flex:auto;padding:10px 12px;font-size:13px}.raw-op[data-v-473f21d7]{width:42px;color:var(--ink-soft);cursor:pointer;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast);flex:none;justify-content:center;align-items:center;font-size:15px;display:inline-flex}.raw-op[data-v-473f21d7]:hover{color:var(--accent);border-color:var(--accent)}.raw-op.ok[data-v-473f21d7]{color:var(--tone-success-dot);border-color:var(--tone-success-dot)}.once-meta[data-v-473f21d7]{font-family:var(--font-mono);color:var(--ink-faint);justify-content:space-between;gap:14px;margin:10px 2px 14px;font-size:11px;display:flex}.tok-cell[data-v-473f21d7]{align-items:center;gap:2px;min-width:0;display:flex}.tok-val[data-v-473f21d7]{min-width:0;font-family:var(--font-mono);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);flex:auto;padding:3px 8px;font-size:12px;overflow:hidden}.tok-val.revealed[data-v-473f21d7]{color:var(--accent);-webkit-user-select:all;user-select:all}.tok-op[data-v-473f21d7]{color:var(--ink-faint);flex:none}.tok-op[data-v-473f21d7]:hover{color:var(--accent)}.tok-op.ok[data-v-473f21d7]{color:var(--tone-success-dot)}.legacy-tag[data-v-473f21d7]{flex:none;margin-left:4px;font-size:10px;line-height:16px}.text-primary[data-v-473f21d7]{color:var(--accent)}
|