@weppy/roblox-mcp 2.10.4 → 2.11.0

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 (51) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dashboard/dist/assets/{AssetsPage-YhGnZEI3.js → AssetsPage-kz1FKCck.js} +10 -10
  3. package/dashboard/dist/assets/ChangelogDetailPage-DtMfQXpn.js +1 -0
  4. package/dashboard/dist/assets/ChangelogDetailPage-vGgnpq1q.css +1 -0
  5. package/dashboard/dist/assets/ChangelogPage-DBeldxYm.js +1 -0
  6. package/dashboard/dist/assets/{ConfirmModal-WlE0qUHf.js → ConfirmModal-Cxha5h-n.js} +1 -1
  7. package/dashboard/dist/assets/{ConnectionPage-7MGw5kBx.js → ConnectionPage-8_vdhL7O.js} +2 -2
  8. package/dashboard/dist/assets/ControlsPage-CZBhWyyn.js +1 -0
  9. package/dashboard/dist/assets/CurrentPlaceScope-BKwvaN7Z.js +1 -0
  10. package/dashboard/dist/assets/{GameChangeDetail-1QGJVFSx.js → GameChangeDetail-raYOxmZc.js} +1 -1
  11. package/dashboard/dist/assets/{InfoLabel-BkAQdbWd.js → InfoLabel-dwgFWAxs.js} +1 -1
  12. package/dashboard/dist/assets/OverviewPage-DI5xU7tr.js +1 -0
  13. package/dashboard/dist/assets/PageHeader-BfTFbEOK.js +6 -0
  14. package/dashboard/dist/assets/PageHeader-CV_rjuG8.css +1 -0
  15. package/dashboard/dist/assets/{PlaytestPage-DVo_oYz5.js → PlaytestPage-BXzNfelw.js} +2 -2
  16. package/dashboard/dist/assets/SettingsPage-BzmeWDML.js +1 -0
  17. package/dashboard/dist/assets/{StatusBadge-C2tcoGvy.js → StatusBadge-Cbf0AbKE.js} +1 -1
  18. package/dashboard/dist/assets/SyncPage-BnVXEQel.css +1 -0
  19. package/dashboard/dist/assets/SyncPage-ChaWvprV.js +4 -0
  20. package/dashboard/dist/assets/{Tabs-Bb6imtwV.js → Tabs-9EkdOGoe.js} +1 -1
  21. package/dashboard/dist/assets/ToolsPage-AYrVzepe.js +1 -0
  22. package/dashboard/dist/assets/{TooltipText-0HIROg6e.js → TooltipText-DLPk69aK.js} +1 -1
  23. package/dashboard/dist/assets/{PageHeader-CrhjZjgp.css → UiPrimitive-BMSNRGwI.css} +1 -1
  24. package/dashboard/dist/assets/UiPrimitive-jQZP77uI.js +1 -0
  25. package/dashboard/dist/assets/{UiStudioPage-BVuHR29W.js → UiStudioPage-De2Q3D5I.js} +2 -2
  26. package/dashboard/dist/assets/WhatsNewPage-CK-MRVXv.js +1 -0
  27. package/dashboard/dist/assets/WhatsNewPage-wF04BABp.css +1 -0
  28. package/dashboard/dist/assets/{copy-ozprzL33.js → copy-mg-q_vEk.js} +1 -1
  29. package/dashboard/dist/assets/index-C8kXDvHv.js +750 -0
  30. package/dashboard/dist/assets/sample-requests-7VK_Hj8C.js +1 -0
  31. package/dashboard/dist/assets/{useLiveUptime-DpvpGzTY.js → useLiveUptime-BzjLApne.js} +1 -1
  32. package/dashboard/dist/assets/{useSettings-D918ACY5.js → useSettings-C1r4pJQ4.js} +1 -1
  33. package/dashboard/dist/index.html +1 -1
  34. package/dist/index.js +92 -79
  35. package/package.json +1 -1
  36. package/roblox-plugin/WeppyRobloxMCP.rbxm +0 -0
  37. package/dashboard/dist/assets/ChangelogDetailPage-C78XiyDy.js +0 -1
  38. package/dashboard/dist/assets/ChangelogDetailPage-D6Tqz7ut.css +0 -1
  39. package/dashboard/dist/assets/ChangelogPage-BDUgixCt.js +0 -1
  40. package/dashboard/dist/assets/ControlsPage-BUtN2zIN.js +0 -1
  41. package/dashboard/dist/assets/CurrentPlaceScope-CF_xE8My.js +0 -1
  42. package/dashboard/dist/assets/OverviewPage-D1OcIXB0.js +0 -1
  43. package/dashboard/dist/assets/PageHeader-CD450myM.js +0 -6
  44. package/dashboard/dist/assets/SettingsPage-CU7CHyaG.js +0 -1
  45. package/dashboard/dist/assets/SyncPage-BYVYYvX1.js +0 -4
  46. package/dashboard/dist/assets/SyncPage-CIZWp8Ul.css +0 -1
  47. package/dashboard/dist/assets/ToolsPage-DuMKAsHP.js +0 -1
  48. package/dashboard/dist/assets/WhatsNewPage-BIYOEZg3.css +0 -1
  49. package/dashboard/dist/assets/WhatsNewPage-CfslOZQY.js +0 -1
  50. package/dashboard/dist/assets/index-T_F9Rs-N.js +0 -718
  51. package/dashboard/dist/assets/sample-requests-D5m4UOF0.js +0 -1
@@ -0,0 +1 @@
1
+ import{o as v,m as k,u as G,r as d,j as n}from"./index-C8kXDvHv.js";import{C as D}from"./UiPrimitive-jQZP77uI.js";async function u(t,e){const r=await fetch(`${v}${t}`,e);if(!r.ok){let a=null;try{a=await r.json()}catch{}throw new k(r.status,(a==null?void 0:a.message)??r.statusText,(a==null?void 0:a.error)??null,a)}return r.json()}function S(t){return{headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}}function V(t){return u(`/api/ui-studio/usage?placeId=${t}`)}function X(t,e={}){const r=new URLSearchParams({placeId:String(t)});for(const[a,s]of Object.entries(e))s!=null&&r.set(a,String(s));return u(`/api/ui-studio/requests?${r}`)}function ee(t,e){return u(`/api/ui-studio/requests/${encodeURIComponent(e)}?placeId=${t}`)}function te(t,e){return u("/api/ui-studio/requests",{method:"DELETE",...S({placeId:t,...e})})}function ae(t,e){return u(`/api/ui-studio/snapshots/${encodeURIComponent(e)}?placeId=${t}`,{method:"DELETE"})}function re(t,e){return u("/api/ui-studio/snapshots",{method:"DELETE",...S({placeId:t,...e})})}function se(t,e){const r=new URLSearchParams({placeId:String(t)});if(e)for(const[a,s]of Object.entries(e))s!=null&&r.set(`preview.${a}`,String(s));return u(`/api/ui-studio/cleanup?${r}`)}function ie(t,e){return u("/api/ui-studio/cleanup",{method:"PUT",...S({placeId:t,...e})})}function oe(t){return u(`/api/ui-studio/cleanup/run?placeId=${t}`,{method:"POST"})}function ne(t,e){return u("/api/ui-studio/run",{method:"POST",...S({action:t,params:e})})}const C="_overlay_t66q4_4",A="_dialog_t66q4_15",E="_title_t66q4_28",x="_titleDanger_t66q4_37",U="_message_t66q4_42",H="_cascadeRow_t66q4_50",Z="_actions_t66q4_65",R="_cancelBtn_t66q4_73",w="_confirmBtn_t66q4_95",L="_confirmBtnDanger_t66q4_118",j="_busySpinner_t66q4_125",o={overlay:C,dialog:A,title:E,titleDanger:x,message:U,cascadeRow:H,actions:Z,cancelBtn:R,confirmBtn:w,confirmBtnDanger:L,busySpinner:j};function ue({title:t,message:e,danger:r=!1,cascadeOption:a,confirmLabel:s,busy:i=!1,onConfirm:T,onClose:p}){const{t:h}=G(),[_,g]=d.useState(!1),q=d.useRef(null),y=d.useRef(null);d.useEffect(()=>{var m;(m=q.current)==null||m.focus()},[]),d.useEffect(()=>{const m=l=>{if(l.key==="Escape"&&!i&&!_){p();return}if(l.key==="Tab"&&y.current){const f=Array.from(y.current.querySelectorAll('button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])'));if(f.length===0)return;const b=f[0],I=f[f.length-1];l.shiftKey&&document.activeElement===b?(l.preventDefault(),I.focus()):!l.shiftKey&&document.activeElement===I&&(l.preventDefault(),b.focus())}};return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[i,_,p]);const B=async()=>{if(!(_||i)){g(!0);try{await T()}finally{g(!1)}}},M=()=>{!i&&!_&&p()},c=i||_,P=s??h("common.delete","삭제");return n.jsx("div",{className:o.overlay,role:"presentation",onClick:M,children:n.jsxs("div",{ref:y,className:o.dialog,role:"dialog","aria-modal":"true","aria-labelledby":"delete-confirm-title",onClick:m=>m.stopPropagation(),children:[n.jsx("h2",{id:"delete-confirm-title",className:`${o.title} ${r?o.titleDanger:""}`,children:t}),n.jsx("p",{className:o.message,children:e}),a&&n.jsxs("label",{className:o.cascadeRow,children:[n.jsx(D,{checked:a.checked,onChange:m=>a.onChange(m.target.checked),disabled:c}),a.label]}),n.jsxs("div",{className:o.actions,children:[n.jsx("button",{ref:q,className:o.cancelBtn,onClick:p,disabled:c,type:"button",children:h("common.cancel","취소")}),n.jsxs("button",{className:`${o.confirmBtn} ${r?o.confirmBtnDanger:""}`,onClick:()=>void B(),disabled:c,type:"button",children:[c&&n.jsx("span",{className:o.busySpinner,"aria-hidden":"true"}),P]})]})]})})}const z="/dashboard/assets/ui-studio-sample-DrNTD6yi.png",me=z,le={requestCount:6,mutationCount:22,snapshotCount:8,historyBytes:12e3,snapshotBytes:48e4,totalBytes:492e3},_e={mode:"off",cascadeSnapshots:!0},O={sample_req_1:"uiStudio.sample.history.request1.label",sample_req_2:"uiStudio.sample.history.request2.label",sample_req_3:"uiStudio.sample.history.request3.label",sample_req_4:"uiStudio.sample.history.request4.label",sample_req_5:"uiStudio.sample.history.request5.label",sample_req_6:"uiStudio.sample.history.request6.label"},N={sample_mut_1_1:"uiStudio.sample.history.request1.mutation1.diff",sample_mut_1_2:"uiStudio.sample.history.request1.mutation2.diff",sample_mut_1_3:"uiStudio.sample.history.request1.mutation3.diff",sample_mut_1_4:"uiStudio.sample.history.request1.mutation4.diff",sample_mut_1_5:"uiStudio.sample.history.request1.mutation5.diff",sample_mut_2_1:"uiStudio.sample.history.request2.mutation1.diff",sample_mut_2_2:"uiStudio.sample.history.request2.mutation2.diff",sample_mut_2_3:"uiStudio.sample.history.request2.mutation3.diff",sample_mut_2_4:"uiStudio.sample.history.request2.mutation4.diff",sample_mut_3_1:"uiStudio.sample.history.request3.mutation1.diff",sample_mut_3_2:"uiStudio.sample.history.request3.mutation2.diff",sample_mut_4_1:"uiStudio.sample.history.request4.mutation1.diff",sample_mut_4_2:"uiStudio.sample.history.request4.mutation2.diff",sample_mut_4_3:"uiStudio.sample.history.request4.mutation3.diff",sample_mut_4_4:"uiStudio.sample.history.request4.mutation4.diff",sample_mut_4_5:"uiStudio.sample.history.request4.mutation5.diff",sample_mut_4_6:"uiStudio.sample.history.request4.mutation6.diff",sample_mut_5_1:"uiStudio.sample.history.request5.mutation1.diff",sample_mut_6_1:"uiStudio.sample.history.request6.mutation1.diff",sample_mut_6_2:"uiStudio.sample.history.request6.mutation2.diff",sample_mut_6_3:"uiStudio.sample.history.request6.mutation3.diff",sample_mut_6_4:"uiStudio.sample.history.request6.mutation4.diff"},$={BackgroundColor3:"uiStudio.sample.history.detail.backgroundColor",AnchorPoint:"uiStudio.sample.history.detail.anchorPoint",Position:"uiStudio.sample.history.detail.position",Size:"uiStudio.sample.history.detail.size",TextColor3:"uiStudio.sample.history.detail.textColor",TextSize:"uiStudio.sample.history.detail.textSize",BorderSizePixel:"uiStudio.sample.history.detail.borderSize",BorderColor3:"uiStudio.sample.history.detail.borderColor"},K={sample_mut_6_3:"uiStudio.sample.history.request6.mutation3.error",sample_mut_6_4:"uiStudio.sample.history.request6.mutation4.error"},Y=[{requestId:"sample_req_1",label:"HUD 레이아웃 초기 생성",startedAt:"2026-05-03T09:12:00.000Z",closedAt:"2026-05-03T09:12:04.321Z",closeReason:"explicit",ok:!0,affectedPaths:["StarterGui.HUD"],mutationCount:5,beforeSnapshots:{"StarterGui.HUD":null},afterSnapshots:{"StarterGui.HUD":"sample_snap_1"},childMutationIds:["sample_mut_1_1","sample_mut_1_2","sample_mut_1_3","sample_mut_1_4","sample_mut_1_5"]},{requestId:"sample_req_2",label:"Inventory 모달 디자인 업데이트",startedAt:"2026-05-03T10:04:18.000Z",closedAt:"2026-05-03T10:04:22.817Z",closeReason:"idle_timeout",ok:!0,affectedPaths:["StarterGui.Inventory.Modal","StarterGui.Inventory.Modal.Header"],mutationCount:4,beforeSnapshots:{"StarterGui.Inventory.Modal":"sample_snap_1","StarterGui.Inventory.Modal.Header":"sample_snap_1"},afterSnapshots:{"StarterGui.Inventory.Modal":"sample_snap_2","StarterGui.Inventory.Modal.Header":"sample_snap_2"},childMutationIds:["sample_mut_2_1","sample_mut_2_2","sample_mut_2_3","sample_mut_2_4"]},{requestId:"sample_req_3",label:"HUD HealthBar 색상 수정",startedAt:"2026-05-03T11:30:55.000Z",closedAt:"2026-05-03T11:30:57.102Z",closeReason:"context_change",ok:!0,affectedPaths:["StarterGui.HUD.HealthBar"],mutationCount:2,beforeSnapshots:{"StarterGui.HUD.HealthBar":"sample_snap_2"},afterSnapshots:{"StarterGui.HUD.HealthBar":"sample_snap_3"},childMutationIds:["sample_mut_3_1","sample_mut_3_2"]},{requestId:"sample_req_4",label:"Inventory 탭 버튼 터치 타겟 확대",startedAt:"2026-05-03T13:22:11.000Z",closedAt:"2026-05-03T13:22:14.500Z",closeReason:"explicit",ok:!0,affectedPaths:["StarterGui.Inventory.TabBar.TabAll","StarterGui.Inventory.TabBar.TabWeapon","StarterGui.Inventory.TabBar.TabArmor"],mutationCount:6,beforeSnapshots:{"StarterGui.Inventory.TabBar.TabAll":"sample_snap_3","StarterGui.Inventory.TabBar.TabWeapon":"sample_snap_3","StarterGui.Inventory.TabBar.TabArmor":"sample_snap_3"},afterSnapshots:{"StarterGui.Inventory.TabBar.TabAll":"sample_snap_4","StarterGui.Inventory.TabBar.TabWeapon":"sample_snap_4","StarterGui.Inventory.TabBar.TabArmor":"sample_snap_4"},childMutationIds:["sample_mut_4_1","sample_mut_4_2","sample_mut_4_3","sample_mut_4_4","sample_mut_4_5","sample_mut_4_6"]},{requestId:"sample_req_5",label:"Settings 팝업 삭제",startedAt:"2026-05-03T14:45:33.000Z",closedAt:"2026-05-03T14:45:34.290Z",closeReason:"legacy_single",ok:!0,affectedPaths:["StarterGui.Settings"],mutationCount:1,beforeSnapshots:{"StarterGui.Settings":"sample_snap_4"},afterSnapshots:{"StarterGui.Settings":null},childMutationIds:["sample_mut_5_1"]},{requestId:"sample_req_6",label:"HUD 미니맵 컴포넌트 추가",startedAt:"2026-05-03T16:08:47.000Z",closedAt:"2026-05-03T16:08:51.776Z",closeReason:"server_restart",ok:!1,affectedPaths:["StarterGui.HUD.Minimap"],mutationCount:4,beforeSnapshots:{"StarterGui.HUD.Minimap":null},afterSnapshots:{"StarterGui.HUD.Minimap":"sample_snap_5"},childMutationIds:["sample_mut_6_1","sample_mut_6_2","sample_mut_6_3","sample_mut_6_4"]}],F={sample_req_1:[{mutationId:"sample_mut_1_1",requestId:"sample_req_1",ts:"2026-05-03T09:12:00.500Z",command:"manage_ui_create_tree",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"Frame + HealthBar + StaminaBar 생성",ok:!0,durationMs:312},{mutationId:"sample_mut_1_2",requestId:"sample_req_1",ts:"2026-05-03T09:12:01.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"BackgroundColor3 → Color3.new(0.2,0.8,0.2)",changeDetails:[{property:"BackgroundColor3",category:"color",label:"배경색",before:{r:36,g:42,b:52},after:{r:51,g:204,b:51}}],ok:!0,durationMs:84},{mutationId:"sample_mut_1_3",requestId:"sample_req_1",ts:"2026-05-03T09:12:01.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.StaminaBar",diffSummary:"BackgroundColor3 → Color3.new(0.1,0.6,1.0)",ok:!0,durationMs:76},{mutationId:"sample_mut_1_4",requestId:"sample_req_1",ts:"2026-05-03T09:12:02.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"AnchorPoint, Position, Size 설정",changeDetails:[{property:"AnchorPoint",category:"layout",label:"앵커",before:{x:.5,y:.5},after:{x:0,y:0}},{property:"Position",category:"layout",label:"위치",before:{xScale:.5,xOffset:0,yScale:.5,yOffset:0},after:{xScale:0,xOffset:16,yScale:0,yOffset:16}},{property:"Size",category:"size",label:"사이즈",before:{xScale:0,xOffset:240,yScale:0,yOffset:64},after:{xScale:0,xOffset:320,yScale:0,yOffset:80}}],ok:!0,durationMs:91},{mutationId:"sample_mut_1_5",requestId:"sample_req_1",ts:"2026-05-03T09:12:02.500Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1521}],sample_req_2:[{mutationId:"sample_mut_2_1",requestId:"sample_req_2",ts:"2026-05-03T10:04:18.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal.Header",diffSummary:"BackgroundColor3 어둡게 조정 (대비 개선)",ok:!0,durationMs:102},{mutationId:"sample_mut_2_2",requestId:"sample_req_2",ts:"2026-05-03T10:04:19.000Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal.Header.Title",diffSummary:"TextColor3 → Color3.new(1,1,1), TextSize 16→18",changeDetails:[{property:"TextColor3",category:"color",label:"글자색",before:{r:212,g:222,b:238},after:{r:255,g:255,b:255}},{property:"TextSize",category:"size",label:"글자 크기",before:16,after:18}],ok:!0,durationMs:88},{mutationId:"sample_mut_2_3",requestId:"sample_req_2",ts:"2026-05-03T10:04:19.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.Modal",diffSummary:"BorderSizePixel 0→2, BorderColor3 설정",changeDetails:[{property:"BorderSizePixel",category:"size",label:"테두리 크기",before:0,after:2},{property:"BorderColor3",category:"color",label:"테두리색",before:{r:86,g:99,b:122},after:{r:255,g:255,b:255}}],ok:!0,durationMs:95},{mutationId:"sample_mut_2_4",requestId:"sample_req_2",ts:"2026-05-03T10:04:20.000Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.Inventory.Modal",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1802}],sample_req_3:[{mutationId:"sample_mut_3_1",requestId:"sample_req_3",ts:"2026-05-03T11:30:55.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"BackgroundColor3 → Color3.new(0.9,0.2,0.2) (빨간 계열)",ok:!0,durationMs:80},{mutationId:"sample_mut_3_2",requestId:"sample_req_3",ts:"2026-05-03T11:30:56.000Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD.HealthBar",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1102}],sample_req_4:[{mutationId:"sample_mut_4_1",requestId:"sample_req_4",ts:"2026-05-03T13:22:11.300Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabAll",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:78},{mutationId:"sample_mut_4_2",requestId:"sample_req_4",ts:"2026-05-03T13:22:11.700Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabWeapon",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:71},{mutationId:"sample_mut_4_3",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.100Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabArmor",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:73},{mutationId:"sample_mut_4_4",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.500Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabConsume",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:70},{mutationId:"sample_mut_4_5",requestId:"sample_req_4",ts:"2026-05-03T13:22:12.900Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabMisc",diffSummary:"Size {0,64},{0,32} → {0,64},{0,44}",ok:!0,durationMs:72},{mutationId:"sample_mut_4_6",requestId:"sample_req_4",ts:"2026-05-03T13:22:13.300Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.Inventory.TabBar.TabAll",diffSummary:"화면 캡처 저장 완료",ok:!0,durationMs:1200}],sample_req_5:[{mutationId:"sample_mut_5_1",requestId:"sample_req_5",ts:"2026-05-03T14:45:33.500Z",command:"manage_ui_delete",origin:"ai",targetPath:"StarterGui.Settings",diffSummary:"ScreenGui 제거 (Settings 전용 UI)",ok:!0,durationMs:290}],sample_req_6:[{mutationId:"sample_mut_6_1",requestId:"sample_req_6",ts:"2026-05-03T16:08:47.500Z",command:"manage_ui_create_tree",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"Frame + MapImage + PlayerDot 생성 시도",ok:!0,durationMs:340},{mutationId:"sample_mut_6_2",requestId:"sample_req_6",ts:"2026-05-03T16:08:48.200Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"Size, Position, BackgroundTransparency 설정",ok:!0,durationMs:84},{mutationId:"sample_mut_6_3",requestId:"sample_req_6",ts:"2026-05-03T16:08:48.900Z",command:"manage_ui_update",origin:"ai",targetPath:"StarterGui.HUD.Minimap.MapImage",diffSummary:"ImageLabel 설정 중 서버 재시작으로 중단",ok:!1,error:"server_restart: connection lost",durationMs:700},{mutationId:"sample_mut_6_4",requestId:"sample_req_6",ts:"2026-05-03T16:08:49.700Z",command:"manage_ui_preview",origin:"ai",targetPath:"StarterGui.HUD.Minimap",diffSummary:"불완전 화면 캡처 저장",ok:!1,error:"partial snapshot: missing layers",durationMs:876}]};function W(t,e){var s;const r=N[e.mutationId],a=K[e.mutationId];return{...e,diffSummary:e.diffSummary&&r?t(r,e.diffSummary):e.diffSummary,error:e.error&&a?t(a,e.error):e.error,changeDetails:(s=e.changeDetails)==null?void 0:s.map(i=>({...i,label:t($[i.property]??"",i.label)}))}}function de(t){const e=Y.map(a=>({...a,label:a.label?t(O[a.requestId]??"",a.label):a.label})),r=Object.fromEntries(Object.entries(F).map(([a,s])=>[a,s.map(i=>W(t,i))]));return{requests:e,mutationsByRequest:r}}export{ue as D,le as S,V as a,_e as b,ne as c,te as d,ae as e,se as f,z as g,re as h,X as i,ee as j,de as k,me as l,oe as r,ie as s};
@@ -1 +1 @@
1
- import{r as a}from"./index-T_F9Rs-N.js";function c(t){const r=Math.max(0,Math.floor(t/1e3)),n=Math.floor(r/3600),o=Math.floor(r%3600/60),e=Math.floor(r%60);return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}:${String(e).padStart(2,"0")}`}const s=1e3;function i(t){const[r,n]=a.useState(t??null);return a.useEffect(()=>{if(t==null){n(null);return}const o=Date.now();n(t);const e=window.setInterval(()=>{n(t+(Date.now()-o))},s);return()=>{window.clearInterval(e)}},[t]),r}export{c as f,i as u};
1
+ import{r as a}from"./index-C8kXDvHv.js";function c(t){const r=Math.max(0,Math.floor(t/1e3)),n=Math.floor(r/3600),o=Math.floor(r%3600/60),e=Math.floor(r%60);return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}:${String(e).padStart(2,"0")}`}const s=1e3;function i(t){const[r,n]=a.useState(t??null);return a.useEffect(()=>{if(t==null){n(null);return}const o=Date.now();n(t);const e=window.setInterval(()=>{n(t+(Date.now()-o))},s);return()=>{window.clearInterval(e)}},[t]),r}export{c as f,i as u};
@@ -1 +1 @@
1
- import{f as v,r as a,z as D,D as R,B as M,C as T,F as G,a as f}from"./index-T_F9Rs-N.js";const A="_page_1atks_2",N="_card_1atks_10",E="_licenseCardTarget_1atks_26",W="_licenseCardPro_1atks_31",F="_cardHeader_1atks_42",P="_cardHeaderActions_1atks_55",O="_collapseButton_1atks_61",K="_headerBadge_1atks_88",$="_headerBadgeLive_1atks_102",q="_licenseGrid_1atks_108",z="_statusDot_1atks_126",j="_statusActive_1atks_135",x="_statusGrace_1atks_140",J="_statusInactive_1atks_145",Q="_statusError_1atks_149",U="_proBadge_1atks_154",V="_upgradeLink_1atks_168",X="_licenseControls_1atks_182",Y="_licenseControlRow_1atks_191",Z="_licenseField_1atks_198",tt="_licenseFieldGrow_1atks_204",et="_controlLabel_1atks_209",st="_textInput_1atks_215",at="_actionBtn_1atks_235",nt="_licenseMessage_1atks_262",ot="_licenseNotice_1atks_269",it="_licenseNoticeInfo_1atks_279",ct="_licenseNoticeWarning_1atks_285",rt="_licenseNoticeMuted_1atks_291",_t="_controlGrid_1atks_296",lt="_controlHint_1atks_318",dt="_routingOverview_1atks_326",ut="_routingOverviewCopy_1atks_338",gt="_routingEyebrow_1atks_345",kt="_priorityTargetSummary_1atks_368",yt="_tableWrap_1atks_397",ft="_table_1atks_397",Ht="_studioRoutingChoiceControl_1atks_422",Lt="_segment_1atks_433",pt="_segmentActive_1atks_434",ht="_routingWarning_1atks_481",wt="_monoMuted_1atks_489",mt="_copyIconButton_1atks_493",bt="_routingBadge_1atks_518",Ct="_setPriorityTargetButton_1atks_532",St="_emptyRow_1atks_559",Bt="_settingRow_1atks_596",It="_settingLabel_1atks_610",vt="_settingControl_1atks_617",Dt="_select_1atks_626",Rt="_numberInput_1atks_648",Mt="_toggleSwitch_1atks_670",Tt="_toggleInput_1atks_677",Gt="_toggleTrack_1atks_685",At="_toggleThumb_1atks_707",Nt="_savedIndicator_1atks_756",Et="_savedIndicatorHidden_1atks_767",Wt="_dataHistoryIntro_1atks_772",Ft="_dataHistoryList_1atks_780",Pt="_dataHistoryRow_1atks_786",Ot="_dataHistoryDetail_1atks_795",Kt="_uiStudioDataHistoryRow_1atks_800",$t="_uiStudioDataHistoryDetail_1atks_805",qt="_dataHistoryMain_1atks_812",zt="_dataHistoryTitle_1atks_816",jt="_dataHistoryDescription_1atks_822",xt="_dataHistoryMetric_1atks_830",Jt="_dataHistoryActions_1atks_837",Qt="_linkButton_1atks_843",Ut="_dangerButton_1atks_844",Vt="_inlineStatus_1atks_887",Xt="_coldGrid_1atks_895",Yt="_coldHint_1atks_913",Zt="_langRow_1atks_922",te="_loading_1atks_935",ee="_unit_1atks_944",ae={page:A,card:N,licenseCardTarget:E,licenseCardPro:W,cardHeader:F,cardHeaderActions:P,collapseButton:O,headerBadge:K,headerBadgeLive:$,licenseGrid:q,statusDot:z,statusActive:j,statusGrace:x,statusInactive:J,statusError:Q,proBadge:U,upgradeLink:V,licenseControls:X,licenseControlRow:Y,licenseField:Z,licenseFieldGrow:tt,controlLabel:et,textInput:st,actionBtn:at,licenseMessage:nt,licenseNotice:ot,licenseNoticeInfo:it,licenseNoticeWarning:ct,licenseNoticeMuted:rt,controlGrid:_t,controlHint:lt,routingOverview:dt,routingOverviewCopy:ut,routingEyebrow:gt,priorityTargetSummary:kt,tableWrap:yt,table:ft,studioRoutingChoiceControl:Ht,segment:Lt,segmentActive:pt,routingWarning:ht,monoMuted:wt,copyIconButton:mt,routingBadge:bt,setPriorityTargetButton:Ct,emptyRow:St,settingRow:Bt,settingLabel:It,settingControl:vt,select:Dt,numberInput:Rt,toggleSwitch:Mt,toggleInput:Tt,toggleTrack:Gt,toggleThumb:At,savedIndicator:Nt,savedIndicatorHidden:Et,dataHistoryIntro:Wt,dataHistoryList:Ft,dataHistoryRow:Pt,dataHistoryDetail:Ot,uiStudioDataHistoryRow:Kt,uiStudioDataHistoryDetail:$t,dataHistoryMain:qt,dataHistoryTitle:zt,dataHistoryDescription:jt,dataHistoryMetric:xt,dataHistoryActions:Jt,linkButton:Qt,dangerButton:Ut,inlineStatus:Vt,coldGrid:Xt,coldHint:Yt,langRow:Zt,loading:te,unit:ee};function ne(){const{level:H}=v(),[l,g]=a.useState(null),[L,k]=a.useState(null),[p,y]=a.useState(!1),[h,w]=a.useState(!0),[m,i]=a.useState(!1),[b,_]=a.useState(null),o=H==="disconnected",n=a.useCallback(t=>{t&&k(e=>({...e,...t,maskedKey:t.maskedKey??(e==null?void 0:e.maskedKey),provider:t.provider??(e==null?void 0:e.provider)??"auto"}))},[]),d=a.useCallback(t=>{if(!t){k(null);return}k({...t,provider:t.provider??"auto"})},[]),u=a.useCallback(async()=>{try{return await D()}catch{return null}},[]);a.useEffect(()=>{let t=!1;async function e(){try{const[s,r]=await Promise.all([f.get("/api/dashboard/settings").catch(()=>null),u()]);if(t)return;s&&g(s),r&&n(r)}catch{}finally{t||w(!1)}}return e(),()=>{t=!0}},[u,n]),a.useEffect(()=>{const t=new R;t.connect();const e=t.on("license",s=>{u().then(r=>{if(r){if((s==null?void 0:s.cleared)===!0){d(r);return}n(r)}})});return()=>{e(),t.disconnect()}},[u,n,d]);const c=a.useCallback((t,e)=>{_(t??e)},[]),C=a.useCallback(async t=>{if(o)return!1;if(!t.trim())return _("License key is required."),!1;i(!0);try{const e=await M({licenseKey:t.trim()});return n(e.license),c(e.message,e.ok?"License updated.":"License activation failed."),e.ok}catch{return _("License activation failed."),!1}finally{i(!1)}},[c,o,n]),S=a.useCallback(async()=>{if(!o){i(!0);try{const t=await T();n(t.license),c(t.message,t.ok?"License updated.":"License refresh failed.")}catch{_("License refresh failed.")}finally{i(!1)}}},[c,o,n]),B=a.useCallback(async()=>{if(!o){i(!0);try{const t=await G();d(t.license),c(t.message,t.ok?"License reset.":"License reset failed.")}catch{_("License reset failed.")}finally{i(!1)}}},[c,o,d]),I=a.useCallback(async(t,e)=>{if(l){g(s=>s&&{...s,hot:{...s.hot,[t]:e}}),y(!0);try{await f.patch("/api/dashboard/settings",{[t]:e})}catch{g(s=>s&&{...s,hot:{...s.hot,[t]:l.hot[t]}})}finally{y(!1)}}},[l]);return{settings:l,license:L,saving:p,licenseControlsDisabled:o,licenseSubmitting:m,licenseMessage:b,activateLicense:C,refreshLicense:S,resetLicense:B,updateHotSetting:I,loading:h}}export{ae as s,ne as u};
1
+ import{f as v,r as a,z as D,D as R,B as M,C as T,F as G,a as f}from"./index-C8kXDvHv.js";const A="_page_1atks_2",N="_card_1atks_10",E="_licenseCardTarget_1atks_26",W="_licenseCardPro_1atks_31",F="_cardHeader_1atks_42",P="_cardHeaderActions_1atks_55",O="_collapseButton_1atks_61",K="_headerBadge_1atks_88",$="_headerBadgeLive_1atks_102",q="_licenseGrid_1atks_108",z="_statusDot_1atks_126",j="_statusActive_1atks_135",x="_statusGrace_1atks_140",J="_statusInactive_1atks_145",Q="_statusError_1atks_149",U="_proBadge_1atks_154",V="_upgradeLink_1atks_168",X="_licenseControls_1atks_182",Y="_licenseControlRow_1atks_191",Z="_licenseField_1atks_198",tt="_licenseFieldGrow_1atks_204",et="_controlLabel_1atks_209",st="_textInput_1atks_215",at="_actionBtn_1atks_235",nt="_licenseMessage_1atks_262",ot="_licenseNotice_1atks_269",it="_licenseNoticeInfo_1atks_279",ct="_licenseNoticeWarning_1atks_285",rt="_licenseNoticeMuted_1atks_291",_t="_controlGrid_1atks_296",lt="_controlHint_1atks_318",dt="_routingOverview_1atks_326",ut="_routingOverviewCopy_1atks_338",gt="_routingEyebrow_1atks_345",kt="_priorityTargetSummary_1atks_368",yt="_tableWrap_1atks_397",ft="_table_1atks_397",Ht="_studioRoutingChoiceControl_1atks_422",Lt="_segment_1atks_433",pt="_segmentActive_1atks_434",ht="_routingWarning_1atks_481",wt="_monoMuted_1atks_489",mt="_copyIconButton_1atks_493",bt="_routingBadge_1atks_518",Ct="_setPriorityTargetButton_1atks_532",St="_emptyRow_1atks_559",Bt="_settingRow_1atks_596",It="_settingLabel_1atks_610",vt="_settingControl_1atks_617",Dt="_select_1atks_626",Rt="_numberInput_1atks_648",Mt="_toggleSwitch_1atks_670",Tt="_toggleInput_1atks_677",Gt="_toggleTrack_1atks_685",At="_toggleThumb_1atks_707",Nt="_savedIndicator_1atks_756",Et="_savedIndicatorHidden_1atks_767",Wt="_dataHistoryIntro_1atks_772",Ft="_dataHistoryList_1atks_780",Pt="_dataHistoryRow_1atks_786",Ot="_dataHistoryDetail_1atks_795",Kt="_uiStudioDataHistoryRow_1atks_800",$t="_uiStudioDataHistoryDetail_1atks_805",qt="_dataHistoryMain_1atks_812",zt="_dataHistoryTitle_1atks_816",jt="_dataHistoryDescription_1atks_822",xt="_dataHistoryMetric_1atks_830",Jt="_dataHistoryActions_1atks_837",Qt="_linkButton_1atks_843",Ut="_dangerButton_1atks_844",Vt="_inlineStatus_1atks_887",Xt="_coldGrid_1atks_895",Yt="_coldHint_1atks_913",Zt="_langRow_1atks_922",te="_loading_1atks_935",ee="_unit_1atks_944",ae={page:A,card:N,licenseCardTarget:E,licenseCardPro:W,cardHeader:F,cardHeaderActions:P,collapseButton:O,headerBadge:K,headerBadgeLive:$,licenseGrid:q,statusDot:z,statusActive:j,statusGrace:x,statusInactive:J,statusError:Q,proBadge:U,upgradeLink:V,licenseControls:X,licenseControlRow:Y,licenseField:Z,licenseFieldGrow:tt,controlLabel:et,textInput:st,actionBtn:at,licenseMessage:nt,licenseNotice:ot,licenseNoticeInfo:it,licenseNoticeWarning:ct,licenseNoticeMuted:rt,controlGrid:_t,controlHint:lt,routingOverview:dt,routingOverviewCopy:ut,routingEyebrow:gt,priorityTargetSummary:kt,tableWrap:yt,table:ft,studioRoutingChoiceControl:Ht,segment:Lt,segmentActive:pt,routingWarning:ht,monoMuted:wt,copyIconButton:mt,routingBadge:bt,setPriorityTargetButton:Ct,emptyRow:St,settingRow:Bt,settingLabel:It,settingControl:vt,select:Dt,numberInput:Rt,toggleSwitch:Mt,toggleInput:Tt,toggleTrack:Gt,toggleThumb:At,savedIndicator:Nt,savedIndicatorHidden:Et,dataHistoryIntro:Wt,dataHistoryList:Ft,dataHistoryRow:Pt,dataHistoryDetail:Ot,uiStudioDataHistoryRow:Kt,uiStudioDataHistoryDetail:$t,dataHistoryMain:qt,dataHistoryTitle:zt,dataHistoryDescription:jt,dataHistoryMetric:xt,dataHistoryActions:Jt,linkButton:Qt,dangerButton:Ut,inlineStatus:Vt,coldGrid:Xt,coldHint:Yt,langRow:Zt,loading:te,unit:ee};function ne(){const{level:H}=v(),[l,g]=a.useState(null),[L,k]=a.useState(null),[p,y]=a.useState(!1),[h,w]=a.useState(!0),[m,i]=a.useState(!1),[b,_]=a.useState(null),o=H==="disconnected",n=a.useCallback(t=>{t&&k(e=>({...e,...t,maskedKey:t.maskedKey??(e==null?void 0:e.maskedKey),provider:t.provider??(e==null?void 0:e.provider)??"auto"}))},[]),d=a.useCallback(t=>{if(!t){k(null);return}k({...t,provider:t.provider??"auto"})},[]),u=a.useCallback(async()=>{try{return await D()}catch{return null}},[]);a.useEffect(()=>{let t=!1;async function e(){try{const[s,r]=await Promise.all([f.get("/api/dashboard/settings").catch(()=>null),u()]);if(t)return;s&&g(s),r&&n(r)}catch{}finally{t||w(!1)}}return e(),()=>{t=!0}},[u,n]),a.useEffect(()=>{const t=new R;t.connect();const e=t.on("license",s=>{u().then(r=>{if(r){if((s==null?void 0:s.cleared)===!0){d(r);return}n(r)}})});return()=>{e(),t.disconnect()}},[u,n,d]);const c=a.useCallback((t,e)=>{_(t??e)},[]),C=a.useCallback(async t=>{if(o)return!1;if(!t.trim())return _("License key is required."),!1;i(!0);try{const e=await M({licenseKey:t.trim()});return n(e.license),c(e.message,e.ok?"License updated.":"License activation failed."),e.ok}catch{return _("License activation failed."),!1}finally{i(!1)}},[c,o,n]),S=a.useCallback(async()=>{if(!o){i(!0);try{const t=await T();n(t.license),c(t.message,t.ok?"License updated.":"License refresh failed.")}catch{_("License refresh failed.")}finally{i(!1)}}},[c,o,n]),B=a.useCallback(async()=>{if(!o){i(!0);try{const t=await G();d(t.license),c(t.message,t.ok?"License reset.":"License reset failed.")}catch{_("License reset failed.")}finally{i(!1)}}},[c,o,d]),I=a.useCallback(async(t,e)=>{if(l){g(s=>s&&{...s,hot:{...s.hot,[t]:e}}),y(!0);try{await f.patch("/api/dashboard/settings",{[t]:e})}catch{g(s=>s&&{...s,hot:{...s.hot,[t]:l.hot[t]}})}finally{y(!1)}}},[l]);return{settings:l,license:L,saving:p,licenseControlsDisabled:o,licenseSubmitting:m,licenseMessage:b,activateLicense:C,refreshLicense:S,resetLicense:B,updateHotSetting:I,loading:h}}export{ae as s,ne as u};
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="icon" href="/dashboard/weppy-icon.png" />
7
7
  <title>WEPPY Dashboard</title>
8
- <script type="module" crossorigin src="/dashboard/assets/index-T_F9Rs-N.js"></script>
8
+ <script type="module" crossorigin src="/dashboard/assets/index-C8kXDvHv.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/dashboard/assets/index-DzkZyWCv.css">
10
10
  </head>
11
11
  <body>