agentstudio 0.1.14 → 0.1.16

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 (44) hide show
  1. package/backend/dist/bin/agentstudio.js +1 -1
  2. package/backend/dist/frontend/assets/AgentsPage-Dqb_aqAA.js +1 -0
  3. package/backend/dist/frontend/assets/ChatPage-BvQmXfcP.css +1 -0
  4. package/backend/dist/frontend/assets/ChatPage-L8Paywyc.js +91 -0
  5. package/backend/dist/frontend/assets/CommandForm-DLl7EIMS.js +7 -0
  6. package/backend/dist/frontend/assets/CommandsPage-Bzavq0Ec.js +1 -0
  7. package/backend/dist/frontend/assets/DashboardPage-B3o4AYFT.js +15 -0
  8. package/backend/dist/frontend/assets/FileBrowser-DL3ayaqb.js +1 -0
  9. package/backend/dist/frontend/assets/GeneralSettingsPage-CBN_de-V.js +1 -0
  10. package/backend/dist/frontend/assets/LandingPage-Dl4ioKos.js +1 -0
  11. package/backend/dist/frontend/assets/LoginPage-4QqRdiSi.js +12 -0
  12. package/backend/dist/frontend/assets/McpPage-CY3tYiqj.js +39 -0
  13. package/backend/dist/frontend/assets/MemorySettingsPage-DGxrok5K.js +1 -0
  14. package/backend/dist/frontend/assets/ProjectSelector-hgmGYVFh.js +1 -0
  15. package/backend/dist/frontend/assets/ProjectsPage-D399IM0c.js +14 -0
  16. package/backend/dist/frontend/assets/SettingsLayout-CL_K-lzJ.js +1 -0
  17. package/backend/dist/frontend/assets/SubagentForm-DXtTTIKg.js +7 -0
  18. package/backend/dist/frontend/assets/SubagentsPage-Chbhj8p2.js +1 -0
  19. package/backend/dist/frontend/assets/ToastTestPage-DT4wuN5C.js +1 -0
  20. package/backend/dist/frontend/assets/UnifiedToolSelector-CsM9qBvs.js +1 -0
  21. package/backend/dist/frontend/assets/VersionSettingsPage-74Q-LVgA.js +5 -0
  22. package/backend/dist/frontend/assets/agents-ClAzIJTw.js +1 -0
  23. package/backend/dist/frontend/assets/agents-DwCY2K8p.css +1 -0
  24. package/backend/dist/frontend/assets/authFetch-BATQyPG5.js +1 -0
  25. package/backend/dist/frontend/assets/data-structures-DLJedtzx.js +27 -0
  26. package/backend/dist/frontend/assets/dateFormat-CXa8VnEC.js +1 -0
  27. package/backend/dist/frontend/assets/index-B9YHa7XT.css +1 -0
  28. package/backend/dist/frontend/assets/index-B_CTNvca.js +268 -0
  29. package/backend/dist/frontend/assets/monaco-editor-C7Z4sOhS.js +19 -0
  30. package/backend/dist/frontend/assets/syntax-highlighting-YWvMU4Hm.js +24 -0
  31. package/backend/dist/frontend/assets/tabManager-DV8urRBM.js +30 -0
  32. package/backend/dist/frontend/assets/table-D6q1rytw.js +1 -0
  33. package/backend/dist/frontend/assets/tools-C4EPanYi.js +1 -0
  34. package/backend/dist/frontend/assets/ui-components-Cw21Epuw.js +481 -0
  35. package/backend/dist/frontend/assets/useAgents-DwnOE1_k.js +2 -0
  36. package/backend/dist/frontend/assets/useClaudeVersions-CQdGnCqv.js +1 -0
  37. package/backend/dist/frontend/assets/useCommands-CCVaurbt.js +1 -0
  38. package/backend/dist/frontend/cc-studio.png +0 -0
  39. package/backend/dist/frontend/index.html +70 -0
  40. package/backend/dist/frontend/vite.svg +1 -0
  41. package/backend/dist/index.d.ts.map +1 -1
  42. package/backend/dist/index.js +17 -1
  43. package/backend/dist/index.js.map +1 -1
  44. package/package.json +6 -5
@@ -0,0 +1,2 @@
1
+ import{f as h,h as w,A as o}from"./agents-ClAzIJTw.js";import{a as i}from"./authFetch-BATQyPG5.js";const O=(s,e)=>h({queryKey:["agents",s,e],queryFn:async()=>{const t=new URL(`${o}/agents`),n=await i(t.toString());if(!n.ok)throw new Error("Failed to fetch agents");return n.json()}}),C=s=>h({queryKey:["agent",s],queryFn:async()=>{const e=await i(`${o}/agents/${s}`);if(!e.ok)throw new Error("Failed to fetch agent");return e.json()},enabled:!!s}),P=()=>w({mutationFn:async s=>{const e=await i(`${o}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!e.ok)throw new Error("Failed to create agent");return e.json()}}),R=()=>w({mutationFn:async({agentId:s,data:e})=>{const t=await i(`${o}/agents/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to update agent");return t.json()}}),x=()=>w({mutationFn:async s=>{const e=await i(`${o}/agents/${s}`,{method:"DELETE"});if(!e.ok)throw new Error("Failed to delete agent");return e.json()}}),N=(s,e,t)=>h({queryKey:["agent-sessions",s,e,t],queryFn:async()=>{const n=new URL(`${o}/sessions/${s}`);e&&e.trim()&&n.searchParams.append("search",e.trim()),t&&n.searchParams.set("projectPath",t);const r=await i(n.toString());if(!r.ok)throw new Error("Failed to fetch agent sessions");return r.json()},enabled:!!s}),D=(s,e,t)=>(console.log("🎣 useAgentSessionMessages hook called:",{agentId:s,sessionId:e,projectPath:t,enabled:!!s&&!!e}),h({queryKey:["agent-session-messages",s,e,t],queryFn:async()=>{if(console.log("🎣 Fetching session messages for:",{agentId:s,sessionId:e,projectPath:t}),!e)return{messages:[]};const n=new URL(`${o}/sessions/${s}/${e}/messages`);t&&n.searchParams.set("projectPath",t),console.log("🎣 Fetching from URL:",n.toString());const r=await i(n.toString());if(!r.ok)throw console.error("🎣 Fetch failed:",r.status,r.statusText),new Error("Failed to fetch agent session messages");const u=await r.json();console.log("🎣 Raw API response:",{messageCount:u.messages?.length});const p=u.messages.map(y=>({...y,timestamp:new Date(y.timestamp)}));return console.log("🎣 Converted messages:",{messageCount:p.length}),{...u,messages:p}},enabled:!!s&&!!e})),M=()=>({mutateAsync:async({agentId:s,message:e,images:t,context:n,sessionId:r,projectPath:u,mcpTools:p,permissionMode:y,model:m,claudeVersion:S,abortController:f,onMessage:E,onError:F})=>{try{console.log("🚀 Starting SSE request to:",`${o}/agents/chat`);const a=await i(`${o}/agents/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:s,message:e,images:t,context:n,sessionId:r,projectPath:u,mcpTools:p,permissionMode:y,model:m,claudeVersion:S}),signal:f?.signal});if(console.log("🚀 SSE response received:",{status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries())}),!a.ok)throw new Error(`Agent chat request failed: ${a.status} ${a.statusText}`);const d=a.body?.getReader(),j=new TextDecoder;if(!d)throw new Error("No response body");for(console.log("🚀 Starting SSE stream reading...");;){if(f?.signal.aborted)throw d.cancel(),new DOMException("Request aborted","AbortError");const{done:$,value:b}=await d.read();if($)break;const A=j.decode(b).split(`
2
+ `);for(const g of A)if(g.startsWith("data: "))try{const c=g.slice(6);console.log("🔄 Raw SSE data:",c.length>200?c.substring(0,200)+"...":c);const l=JSON.parse(c);console.log("🔄 Parsed SSE event:",{type:l.type,subtype:l.subtype,hasMessage:!!l.message,messageContentBlocks:l.message?.content?.length||0}),E?.(l)}catch(c){console.error("❌ Failed to parse SSE data:",g,"Error:",c)}else g.trim()&&console.log("🔄 Non-data SSE line:",g)}}catch(a){throw console.error("Agent SSE error:",a),F?.(a),a}}}),U=()=>w({mutationFn:async({agentId:s,projectName:e,parentDirectory:t})=>{const n=await i(`${o}/agents/projects/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:s,projectName:e,parentDirectory:t})});if(!n.ok){const r=await n.json();throw new Error(r.error||"Failed to create project")}return n.json()}}),v=s=>h({queryKey:["agent-projects",s],queryFn:async()=>{const e=await i(`${o}/projects/agents/${s}`);if(!e.ok)throw new Error("Failed to fetch agent projects");return e.json()},enabled:!!s}),J=()=>w({mutationFn:async s=>{const e=await i(`${o}/agents/sessions/${s}/interrupt`,{method:"POST"});if(!e.ok){const t=await e.json();throw new Error(t.error||"Failed to interrupt session")}return e.json()}});export{R as a,x as b,P as c,J as d,N as e,D as f,M as g,C as h,U as i,v as j,O as u};
@@ -0,0 +1 @@
1
+ import{f as l,e as i,h as u,A as o}from"./agents-ClAzIJTw.js";import{a}from"./authFetch-BATQyPG5.js";import{u as y}from"./index-B_CTNvca.js";import{r as d}from"./monaco-editor-C7Z4sOhS.js";const w=t=>{const{currentServiceId:r}=y();d.useRef(!1);const e=!1,s=!0,n=l({queryKey:["claude-versions",r],queryFn:async()=>{const c=await a(`${o}/settings/claude-versions`);if(!c.ok)throw new Error("Failed to fetch Claude versions");return c.json()},enabled:s,retry:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1,staleTime:3e4});return d.useEffect(()=>{},[n.isError,n.isLoading,r,s,e]),n},h=()=>{const t=i();return u({mutationFn:async r=>{const e=await a(`${o}/settings/claude-versions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!e.ok){const s=await e.json();throw new Error(s.message||"Failed to create Claude version")}return e.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})},C=()=>{const t=i();return u({mutationFn:async({id:r,data:e})=>{const s=await a(`${o}/settings/claude-versions/${r}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok){const n=await s.json();throw new Error(n.message||"Failed to update Claude version")}return s.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})},g=()=>{const t=i();return u({mutationFn:async r=>{const e=await a(`${o}/settings/claude-versions/${r}`,{method:"DELETE"});if(!e.ok){const s=await e.json();throw new Error(s.message||"Failed to delete Claude version")}},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})},E=()=>{const t=i();return u({mutationFn:async r=>{const e=await a(`${o}/settings/claude-versions/${r}/set-default`,{method:"PUT"});if(!e.ok){const s=await e.json();throw new Error(s.message||"Failed to set default Claude version")}},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})};export{h as a,C as b,g as c,E as d,w as u};
@@ -0,0 +1 @@
1
+ import{f as h,e as p,h as d,A as r,i as w}from"./agents-ClAzIJTw.js";import{a as s}from"./authFetch-BATQyPG5.js";const y=async(e={})=>{try{const o=new URLSearchParams;e.scope&&e.scope!=="all"&&o.append("scope",e.scope),e.namespace&&o.append("namespace",e.namespace),e.search&&o.append("search",e.search);const t=await s(`${r}/commands?${o}`);if(!t.ok)throw new Error("Failed to fetch commands");return t.json()}catch(o){if(w(o))return[];throw o}},f=async e=>{const o=await s(`${r}/commands`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok){const t=await o.json();throw new Error(t.error||"Failed to create command")}return o.json()},l=async(e,o)=>{const t=await s(`${r}/commands/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!t.ok){const a=await t.json();throw new Error(a.error||"Failed to update command")}return t.json()},C=async e=>{const o=await s(`${r}/commands/${encodeURIComponent(e)}`,{method:"DELETE"});if(!o.ok){const t=await o.json();throw new Error(t.error||"Failed to delete command")}},D=e=>h({queryKey:["commands",e],queryFn:()=>y(e),staleTime:1e3*60*5,retry:!1}),U=()=>{const e=p();return d({mutationFn:f,onSuccess:()=>{e.invalidateQueries({queryKey:["commands"]})}})},R=()=>{const e=p();return d({mutationFn:({id:o,updates:t})=>l(o,t),onSuccess:o=>{e.invalidateQueries({queryKey:["commands"]}),e.setQueryData(["commands",o.id],o)}})},k=()=>{const e=p();return d({mutationFn:C,onSuccess:(o,t)=>{e.invalidateQueries({queryKey:["commands"]}),e.removeQueries({queryKey:["commands",t]})}})},P=async(e,o={})=>{if(!e)return[];let t;if(e.startsWith("/"))t=e;else{const m=await s(`${r}/projects`);if(!m.ok)throw new Error("Failed to fetch project info");const n=(await m.json()).projects.find(u=>u.id===e);if(!n)throw new Error("Project not found");t=n.path}const a=new URLSearchParams;a.append("scope","project"),a.append("projectPath",t),o.namespace&&a.append("namespace",o.namespace),o.search&&a.append("search",o.search);const c=await s(`${r}/commands?${a}`);if(!c.ok)throw new Error("Failed to fetch project commands");return c.json()},Q=e=>h({queryKey:["commands","project",e.projectId,e.search],queryFn:()=>P(e.projectId,{search:e.search}),staleTime:1e3*60*5}),E=async(e,o)=>{const t=await s(`${r}/agents/projects`);if(!t.ok)throw new Error("Failed to fetch project info");const c=(await t.json()).projects.find(n=>n.id===e);if(!c)throw new Error("Project not found");const m=new URLSearchParams;m.append("projectPath",c.path);const i=await s(`${r}/commands?${m}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!i.ok){const n=await i.json();throw new Error(n.error||"Failed to create command")}return i.json()},F=async(e,o)=>{const t=await s(`${r}/agents/projects`);if(!t.ok)throw new Error("Failed to fetch project info");const c=(await t.json()).projects.find(j=>j.id===e);if(!c)throw new Error("Project not found");const{id:m,updates:i}=o,n=new URLSearchParams;n.append("projectPath",c.path);const u=await s(`${r}/commands/${encodeURIComponent(m)}?${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!u.ok){const j=await u.json();throw new Error(j.error||"Failed to update command")}return u.json()},$=async(e,o)=>{const t=await s(`${r}/agents/projects`);if(!t.ok)throw new Error("Failed to fetch project info");const c=(await t.json()).projects.find(n=>n.id===e);if(!c)throw new Error("Project not found");const m=new URLSearchParams;m.append("projectPath",c.path);const i=await s(`${r}/commands/${encodeURIComponent(o)}?${m}`,{method:"DELETE"});if(!i.ok){const n=await i.json();throw new Error(n.error||"Failed to delete command")}},T=e=>{const o=p();return d({mutationFn:t=>E(e,t),onSuccess:()=>{o.invalidateQueries({queryKey:["commands","project",e]})}})},K=e=>{const o=p();return d({mutationFn:t=>F(e,t),onSuccess:t=>{o.invalidateQueries({queryKey:["commands","project",e]}),o.setQueryData(["commands",t.id],t)}})},v=e=>{const o=p();return d({mutationFn:t=>$(e,t),onSuccess:(t,a)=>{o.invalidateQueries({queryKey:["commands","project",e]}),o.removeQueries({queryKey:["commands",a]})}})};export{Q as a,v as b,k as c,T as d,U as e,K as f,R as g,D as u};
@@ -0,0 +1,70 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/png" href="/cc-studio.png" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+
8
+ <!-- Primary Meta Tags -->
9
+ <title>AgentStudio - 智能体工作平台 | Claude Code 驱动的 AI 助手</title>
10
+ <meta name="title" content="AgentStudio - 智能体工作平台 | Claude Code 驱动的 AI 助手" />
11
+ <meta name="description" content="基于 Claude Code SDK 的现代化个人智能体工作平台。通过直观的 Web 界面,轻松访问强大的 AI 能力,支持多种大语言模型,提升工作效率。" />
12
+ <meta name="keywords" content="AI助手,智能体,Agent,Claude Code,大语言模型,LLM,工作平台,效率工具,人工智能,聊天机器人" />
13
+ <meta name="author" content="AgentStudio Team" />
14
+ <meta name="robots" content="index, follow" />
15
+
16
+ <!-- Open Graph / Facebook -->
17
+ <meta property="og:type" content="website" />
18
+ <meta property="og:url" content="https://agentstudio.cc/" />
19
+ <meta property="og:title" content="AgentStudio - 智能体工作平台 | Claude Code 驱动的 AI 助手" />
20
+ <meta property="og:description" content="基于 Claude Code SDK 的现代化个人智能体工作平台。通过直观的 Web 界面,轻松访问强大的 AI 能力,支持多种大语言模型,提升工作效率。" />
21
+ <meta property="og:image" content="https://agentstudio.cc/cc-studio.png" />
22
+ <meta property="og:site_name" content="AgentStudio" />
23
+ <meta property="og:locale" content="zh_CN" />
24
+
25
+ <!-- Twitter -->
26
+ <meta property="twitter:card" content="summary_large_image" />
27
+ <meta property="twitter:url" content="https://agentstudio.cc/" />
28
+ <meta property="twitter:title" content="AgentStudio - 智能体工作平台 | Claude Code 驱动的 AI 助手" />
29
+ <meta property="twitter:description" content="基于 Claude Code SDK 的现代化个人智能体工作平台。通过直观的 Web 界面,轻松访问强大的 AI 能力,支持多种大语言模型,提升工作效率。" />
30
+ <meta property="twitter:image" content="https://agentstudio.cc/cc-studio.png" />
31
+
32
+ <!-- Additional SEO -->
33
+ <link rel="canonical" href="https://agentstudio.cc/" />
34
+ <meta name="theme-color" content="#2563eb" />
35
+
36
+ <!-- Structured Data -->
37
+ <script type="application/ld+json">
38
+ {
39
+ "@context": "https://schema.org",
40
+ "@type": "SoftwareApplication",
41
+ "name": "AgentStudio",
42
+ "description": "基于 Claude Code SDK 的现代化个人智能体工作平台",
43
+ "url": "https://agentstudio.cc/",
44
+ "applicationCategory": "ProductivityApplication",
45
+ "operatingSystem": "Web Browser",
46
+ "offers": {
47
+ "@type": "Offer",
48
+ "price": "0",
49
+ "priceCurrency": "USD"
50
+ },
51
+ "author": {
52
+ "@type": "Organization",
53
+ "name": "AgentStudio Team"
54
+ }
55
+ }
56
+ </script>
57
+ <script type="module" crossorigin src="/assets/index-B_CTNvca.js"></script>
58
+ <link rel="modulepreload" crossorigin href="/assets/monaco-editor-C7Z4sOhS.js">
59
+ <link rel="modulepreload" crossorigin href="/assets/syntax-highlighting-YWvMU4Hm.js">
60
+ <link rel="modulepreload" crossorigin href="/assets/data-structures-DLJedtzx.js">
61
+ <link rel="modulepreload" crossorigin href="/assets/ui-components-Cw21Epuw.js">
62
+ <link rel="modulepreload" crossorigin href="/assets/tools-C4EPanYi.js">
63
+ <link rel="modulepreload" crossorigin href="/assets/agents-ClAzIJTw.js">
64
+ <link rel="stylesheet" crossorigin href="/assets/agents-DwCY2K8p.css">
65
+ <link rel="stylesheet" crossorigin href="/assets/index-B9YHa7XT.css">
66
+ </head>
67
+ <body>
68
+ <div id="root"></div>
69
+ </body>
70
+ </html>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAwItB,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAyItB,eAAe,GAAG,CAAC"}
@@ -100,6 +100,21 @@ app.use(express.urlencoded({ extended: true, limit: '10mb' }));
100
100
  // Static files - serve slides directory
101
101
  const slidesDir = join(__dirname, '../..', process.env.SLIDES_DIR || 'slides');
102
102
  app.use('/slides', express.static(slidesDir));
103
+
104
+ // Serve frontend static files
105
+ const frontendDir = join(__dirname, 'frontend');
106
+ app.use(express.static(frontendDir, {
107
+ index: 'index.html'
108
+ }));
109
+
110
+ // SPA fallback - serve index.html for all non-API routes
111
+ app.get('*', (req, res, next) => {
112
+ // Skip API routes and static assets
113
+ if (req.path.startsWith('/api') || req.path.startsWith('/slides') || req.path.includes('.')) {
114
+ return next();
115
+ }
116
+ res.sendFile(path.join(frontendDir, 'index.html'));
117
+ });
103
118
  // Routes - Public routes
104
119
  app.use('/api/auth', authRouter);
105
120
  // Protected routes - Require authentication
@@ -128,7 +143,8 @@ app.use((err, req, res, next) => {
128
143
  app.use('*', (req, res) => {
129
144
  res.status(404).json({ error: 'Route not found' });
130
145
  });
131
- if (require.main === module) {
146
+ // Check if this file is being run directly
147
+ if (import.meta.url === `file://${process.argv[1]}`) {
132
148
  app.listen(PORT, () => {
133
149
  console.log(`AI PPT Editor backend running on http://localhost:${PORT}`);
134
150
  console.log(`Serving slides from: ${slidesDir}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentstudio",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "Claude-powered AgentStudio with React frontend and Node.js backend, built on top of Claude Code SDK",
5
5
  "type": "module",
6
6
  "private": false,
@@ -13,8 +13,9 @@
13
13
  ],
14
14
  "scripts": {
15
15
  "start": "node backend/dist/index.js",
16
- "build": "pnpm run build:backend",
17
- "build:backend": "cd backend && npm install && npm run build"
16
+ "build": "node scripts/build-complete.js",
17
+ "build:backend": "cd backend && npm install && npm run build",
18
+ "build:complete": "node scripts/build-complete.js"
18
19
  },
19
20
  "keywords": [
20
21
  "ai",
@@ -34,7 +35,7 @@
34
35
  "bugs": {
35
36
  "url": "https://github.com/git-men/agentstudio/issues"
36
37
  },
37
- "devDependencies": {
38
+ "devDependencies": {
38
39
  "concurrently": "^8.2.2",
39
40
  "typescript": "^5.9.2"
40
41
  },
@@ -55,4 +56,4 @@
55
56
  "jsonwebtoken": "^9.0.2",
56
57
  "zod": "^3.22.2"
57
58
  }
58
- }
59
+ }