cf-claw 3.0.1 → 3.0.3
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/dist/bot.js +1 -1
- package/dist/bot.js.map +1 -1
- package/dist/dashboard/404/index.html +1 -1
- package/dist/dashboard/404.html +1 -1
- package/dist/dashboard/index.html +1 -1
- package/dist/dashboard/index.txt +1 -1
- package/dist/dashboard/manual/index.html +1 -1
- package/dist/dashboard/manual/index.txt +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/openai-compat.d.ts +4 -1
- package/dist/llm/openai-compat.d.ts.map +1 -1
- package/dist/llm/openai-compat.js +15 -3
- package/dist/llm/openai-compat.js.map +1 -1
- package/dist/voice.d.ts +1 -5
- package/dist/voice.d.ts.map +1 -1
- package/dist/voice.js +30 -27
- package/dist/voice.js.map +1 -1
- package/package.json +1 -1
- /package/dist/dashboard/_next/static/{1xd_Aby3TOwJdfecSmZAL → hskYcp5OItQ-v0RVtFTun}/_buildManifest.js +0 -0
- /package/dist/dashboard/_next/static/{1xd_Aby3TOwJdfecSmZAL → hskYcp5OItQ-v0RVtFTun}/_ssgManifest.js +0 -0
package/dist/bot.js
CHANGED
|
@@ -195,7 +195,7 @@ bot.on("message:voice", async (ctx) => {
|
|
|
195
195
|
await ctx.reply("🎤 Transkriberar röst...");
|
|
196
196
|
const file = await ctx.getFile();
|
|
197
197
|
const fileUrl = `https://api.telegram.org/file/bot${config.telegramBotToken}/${file.file_path}`;
|
|
198
|
-
const transcript = await transcribeVoice(
|
|
198
|
+
const transcript = await transcribeVoice(file.file_id);
|
|
199
199
|
console.log(`📝 Transcript: ${transcript.substring(0, 80)}${transcript.length > 80 ? "…" : ""}`);
|
|
200
200
|
await ctx.reply(`🎤 _"${transcript}"_`, { parse_mode: "Markdown" }).catch(async () => {
|
|
201
201
|
await ctx.reply(`🎤 "${transcript}"`);
|
package/dist/bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"hskYcp5OItQ-v0RVtFTun\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baff0f221c10680b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"sv\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-[#030712] text-slate-300 antialiased\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CF Claw Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"CF Claw AgentOS Dashboard\"}]]\n3:null\n"])</script></body></html>
|
package/dist/dashboard/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"hskYcp5OItQ-v0RVtFTun\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baff0f221c10680b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"sv\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-[#030712] text-slate-300 antialiased\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CF Claw Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"CF Claw AgentOS Dashboard\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><script src="/_next/static/chunks/343-71498a8257bc1e81.js" async=""></script><script src="/_next/static/chunks/191-a6922264096cb3ad.js" async=""></script><script src="/_next/static/chunks/app/page-dff55e58941a3c4d.js" async=""></script><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div class="flex h-screen w-screen overflow-hidden bg-[#030712]"><aside class="flex w-64 flex-shrink-0 flex-col border-r border-slate-800/60 bg-[#0b1120]" style="width:256px"><div class="flex items-center gap-3 border-b border-slate-800/60 px-5 py-5"><div class="flex h-9 w-9 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-5 w-5 text-cyan-400" style="filter:drop-shadow(0 0 6px rgba(34,211,238,0.6))"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><h1 class="text-sm font-semibold text-slate-100">CF Claw</h1><p class="text-xs text-slate-500">AgentOS Dashboard</p></div></div><nav class="flex-1 overflow-y-auto px-3 py-3"><div class="space-y-0.5"><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-cyan-500/20 bg-cyan-500/10 text-cyan-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity h-4 w-4 flex-shrink-0"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="truncate">Platform Overview</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-factory h-4 w-4 flex-shrink-0"><path d="M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path><path d="M17 18h1"></path><path d="M12 18h1"></path><path d="M7 18h1"></path></svg><span class="truncate">Project Factory</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-4 w-4 flex-shrink-0"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="truncate">Cron Scheduler</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-4 w-4 flex-shrink-0"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="truncate">Agent Chat</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-4 w-4 flex-shrink-0"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg><span class="truncate">Skills & Learning</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit h-4 w-4 flex-shrink-0"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg><span class="truncate">Memory & Graph</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-merge h-4 w-4 flex-shrink-0"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M6 21V9a9 9 0 0 0 9 9"></path></svg><span class="truncate">Mesh & Swarms</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-4 w-4 flex-shrink-0"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg><span class="truncate">Agent Registry</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder h-4 w-4 flex-shrink-0"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg><span class="truncate">Document Store</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-4 w-4 flex-shrink-0"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg><span class="truncate">System Logs</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dollar-sign h-4 w-4 flex-shrink-0"><line x1="12" x2="12" y1="2" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg><span class="truncate">Usage & Cost</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-4 w-4 flex-shrink-0"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg><span class="truncate">Webhooks</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-4 w-4 flex-shrink-0"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg><span class="truncate">Sessions</span></button></div></nav><div class="border-t border-slate-800/60 p-4"><h3 class="mb-3 text-xs font-semibold uppercase tracking-wider text-slate-500">Nudge Counters</h3><div class="space-y-3"><div><div class="mb-1 flex items-center justify-between"><span class="text-xs text-slate-400">Memory Nudge</span><span class="text-xs font-mono text-cyan-400">0<!-- -->/10</span></div><div class="h-1.5 w-full rounded-full bg-slate-800"><div class="h-1.5 rounded-full bg-cyan-500 transition-all duration-500" style="width:0%"></div></div></div><div><div class="mb-1 flex items-center justify-between"><span class="text-xs text-slate-400">Skill Edit Nudge</span><span class="text-xs font-mono text-purple-400">0<!-- -->/10</span></div><div class="h-1.5 w-full rounded-full bg-slate-800"><div class="h-1.5 rounded-full bg-purple-500 transition-all duration-500" style="width:0%"></div></div></div></div></div></aside><div class="flex flex-1 flex-col overflow-hidden"><header class="flex items-center justify-between border-b border-slate-800/60 bg-[#0b1120] px-6 py-3"><h2 class="text-base font-semibold text-slate-100">Platform Overview</h2><div class="flex items-center gap-3"><div class="flex items-center gap-2"><div class="h-2 w-2 rounded-full animate-pulse bg-amber-400"></div><span class="text-xs text-slate-500">Connecting...</span><span class="mx-1 text-slate-700">|</span><span class="text-xs text-slate-500">WS: <!-- -->Closed</span></div><a class="flex items-center gap-1.5 rounded-lg border border-slate-700/50 bg-slate-800/40 px-3 py-1.5 text-xs font-medium text-slate-400 transition-colors hover:border-cyan-500/30 hover:bg-cyan-500/10 hover:text-cyan-400" href="/manual/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-help h-3.5 w-3.5"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><path d="M12 17h.01"></path></svg>Help</a></div></header><main class="flex-1 overflow-y-auto p-6"><div class="space-y-6"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5"><h3 class="text-sm font-semibold text-slate-300 mb-4 flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity w-4 h-4 text-cyan-400"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg>System Status</h3><div class="grid grid-cols-2 lg:grid-cols-4 gap-4"><div class="flex items-center gap-3"><div class="bg-purple-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap w-4 h-4 text-purple-400"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><p class="text-xs text-slate-500">Active Model</p><p class="text-sm text-slate-300 font-medium">—</p></div></div><div class="flex items-center gap-3"><div class="bg-cyan-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4 text-cyan-400"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div><div><p class="text-xs text-slate-500">Uptime</p><p class="text-sm text-slate-300 font-medium">—</p></div></div><div class="flex items-center gap-3"><div class="bg-red-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wifi-off w-4 h-4 text-red-400"><path d="M12 20h.01"></path><path d="M8.5 16.429a5 5 0 0 1 7 0"></path><path d="M5 12.859a10 10 0 0 1 5.17-2.69"></path><path d="M19 12.859a10 10 0 0 0-2.007-1.523"></path><path d="M2 8.82a15 15 0 0 1 4.177-2.643"></path><path d="M22 8.82a15 15 0 0 0-11.288-3.764"></path><path d="m2 2 20 20"></path></svg></div><div><p class="text-xs text-slate-500">WebSocket</p><p class="text-sm font-medium text-red-400">Disconnected</p></div></div><div class="flex items-center gap-3"><div class="bg-amber-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-4 h-4 text-amber-400"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></div><div><p class="text-xs text-slate-500">Scheduler</p><p class="text-sm font-medium text-slate-500">Disabled</p></div></div></div></div></div></main></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[4615,[\"343\",\"static/chunks/343-71498a8257bc1e81.js\",\"191\",\"static/chunks/191-a6922264096cb3ad.js\",\"931\",\"static/chunks/app/page-dff55e58941a3c4d.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"1xd_Aby3TOwJdfecSmZAL\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baff0f221c10680b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"sv\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-[#030712] text-slate-300 antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CF Claw Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"CF Claw AgentOS Dashboard\"}]]\n3:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><script src="/_next/static/chunks/343-71498a8257bc1e81.js" async=""></script><script src="/_next/static/chunks/191-a6922264096cb3ad.js" async=""></script><script src="/_next/static/chunks/app/page-dff55e58941a3c4d.js" async=""></script><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div class="flex h-screen w-screen overflow-hidden bg-[#030712]"><aside class="flex w-64 flex-shrink-0 flex-col border-r border-slate-800/60 bg-[#0b1120]" style="width:256px"><div class="flex items-center gap-3 border-b border-slate-800/60 px-5 py-5"><div class="flex h-9 w-9 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-5 w-5 text-cyan-400" style="filter:drop-shadow(0 0 6px rgba(34,211,238,0.6))"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><h1 class="text-sm font-semibold text-slate-100">CF Claw</h1><p class="text-xs text-slate-500">AgentOS Dashboard</p></div></div><nav class="flex-1 overflow-y-auto px-3 py-3"><div class="space-y-0.5"><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-cyan-500/20 bg-cyan-500/10 text-cyan-400"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity h-4 w-4 flex-shrink-0"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="truncate">Platform Overview</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-factory h-4 w-4 flex-shrink-0"><path d="M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path><path d="M17 18h1"></path><path d="M12 18h1"></path><path d="M7 18h1"></path></svg><span class="truncate">Project Factory</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-4 w-4 flex-shrink-0"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg><span class="truncate">Cron Scheduler</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-4 w-4 flex-shrink-0"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="truncate">Agent Chat</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-4 w-4 flex-shrink-0"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg><span class="truncate">Skills & Learning</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit h-4 w-4 flex-shrink-0"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg><span class="truncate">Memory & Graph</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-merge h-4 w-4 flex-shrink-0"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M6 21V9a9 9 0 0 0 9 9"></path></svg><span class="truncate">Mesh & Swarms</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-4 w-4 flex-shrink-0"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg><span class="truncate">Agent Registry</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder h-4 w-4 flex-shrink-0"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg><span class="truncate">Document Store</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-4 w-4 flex-shrink-0"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg><span class="truncate">System Logs</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dollar-sign h-4 w-4 flex-shrink-0"><line x1="12" x2="12" y1="2" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg><span class="truncate">Usage & Cost</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-4 w-4 flex-shrink-0"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg><span class="truncate">Webhooks</span></button><button class="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors border border-transparent text-slate-400 hover:bg-slate-800/40 hover:text-slate-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-4 w-4 flex-shrink-0"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg><span class="truncate">Sessions</span></button></div></nav><div class="border-t border-slate-800/60 p-4"><h3 class="mb-3 text-xs font-semibold uppercase tracking-wider text-slate-500">Nudge Counters</h3><div class="space-y-3"><div><div class="mb-1 flex items-center justify-between"><span class="text-xs text-slate-400">Memory Nudge</span><span class="text-xs font-mono text-cyan-400">0<!-- -->/10</span></div><div class="h-1.5 w-full rounded-full bg-slate-800"><div class="h-1.5 rounded-full bg-cyan-500 transition-all duration-500" style="width:0%"></div></div></div><div><div class="mb-1 flex items-center justify-between"><span class="text-xs text-slate-400">Skill Edit Nudge</span><span class="text-xs font-mono text-purple-400">0<!-- -->/10</span></div><div class="h-1.5 w-full rounded-full bg-slate-800"><div class="h-1.5 rounded-full bg-purple-500 transition-all duration-500" style="width:0%"></div></div></div></div></div></aside><div class="flex flex-1 flex-col overflow-hidden"><header class="flex items-center justify-between border-b border-slate-800/60 bg-[#0b1120] px-6 py-3"><h2 class="text-base font-semibold text-slate-100">Platform Overview</h2><div class="flex items-center gap-3"><div class="flex items-center gap-2"><div class="h-2 w-2 rounded-full animate-pulse bg-amber-400"></div><span class="text-xs text-slate-500">Connecting...</span><span class="mx-1 text-slate-700">|</span><span class="text-xs text-slate-500">WS: <!-- -->Closed</span></div><a class="flex items-center gap-1.5 rounded-lg border border-slate-700/50 bg-slate-800/40 px-3 py-1.5 text-xs font-medium text-slate-400 transition-colors hover:border-cyan-500/30 hover:bg-cyan-500/10 hover:text-cyan-400" href="/manual/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-help h-3.5 w-3.5"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><path d="M12 17h.01"></path></svg>Help</a></div></header><main class="flex-1 overflow-y-auto p-6"><div class="space-y-6"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5 animate-pulse"><div class="flex items-center gap-3 mb-3"><div class="w-10 h-10 rounded-xl bg-slate-800"></div><div class="flex-1"><div class="h-4 bg-slate-800 rounded w-12 mb-1"></div><div class="h-3 bg-slate-800 rounded w-20"></div></div></div><div class="h-8 bg-slate-800 rounded w-16"></div></div></div><div class="bg-[#0b1120] border border-slate-800 rounded-2xl p-5"><h3 class="text-sm font-semibold text-slate-300 mb-4 flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity w-4 h-4 text-cyan-400"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg>System Status</h3><div class="grid grid-cols-2 lg:grid-cols-4 gap-4"><div class="flex items-center gap-3"><div class="bg-purple-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap w-4 h-4 text-purple-400"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><p class="text-xs text-slate-500">Active Model</p><p class="text-sm text-slate-300 font-medium">—</p></div></div><div class="flex items-center gap-3"><div class="bg-cyan-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4 text-cyan-400"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div><div><p class="text-xs text-slate-500">Uptime</p><p class="text-sm text-slate-300 font-medium">—</p></div></div><div class="flex items-center gap-3"><div class="bg-red-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wifi-off w-4 h-4 text-red-400"><path d="M12 20h.01"></path><path d="M8.5 16.429a5 5 0 0 1 7 0"></path><path d="M5 12.859a10 10 0 0 1 5.17-2.69"></path><path d="M19 12.859a10 10 0 0 0-2.007-1.523"></path><path d="M2 8.82a15 15 0 0 1 4.177-2.643"></path><path d="M22 8.82a15 15 0 0 0-11.288-3.764"></path><path d="m2 2 20 20"></path></svg></div><div><p class="text-xs text-slate-500">WebSocket</p><p class="text-sm font-medium text-red-400">Disconnected</p></div></div><div class="flex items-center gap-3"><div class="bg-amber-500/10 p-2 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-4 h-4 text-amber-400"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></div><div><p class="text-xs text-slate-500">Scheduler</p><p class="text-sm font-medium text-slate-500">Disabled</p></div></div></div></div></div></main></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[4615,[\"343\",\"static/chunks/343-71498a8257bc1e81.js\",\"191\",\"static/chunks/191-a6922264096cb3ad.js\",\"931\",\"static/chunks/app/page-dff55e58941a3c4d.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"hskYcp5OItQ-v0RVtFTun\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baff0f221c10680b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"sv\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-[#030712] text-slate-300 antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CF Claw Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"CF Claw AgentOS Dashboard\"}]]\n3:null\n"])</script></body></html>
|
package/dist/dashboard/index.txt
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
3:I[4615,["343","static/chunks/343-71498a8257bc1e81.js","191","static/chunks/191-a6922264096cb3ad.js","931","static/chunks/app/page-dff55e58941a3c4d.js"],"default",1]
|
|
3
3
|
4:I[4707,[],""]
|
|
4
4
|
5:I[6423,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["hskYcp5OItQ-v0RVtFTun",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/baff0f221c10680b.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"sv","children":["$","body",null,{"className":"bg-[#030712] text-slate-300 antialiased","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"CF Claw Dashboard"}],["$","meta","3",{"name":"description","content":"CF Claw AgentOS Dashboard"}]]
|
|
7
7
|
1:null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><script src="/_next/static/chunks/343-71498a8257bc1e81.js" async=""></script><script src="/_next/static/chunks/app/manual/page-3c401ecf89979cd7.js" async=""></script><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div class="min-h-screen bg-[#030712]"><div class="mx-auto max-w-4xl px-6 py-8"><header class="mb-8"><a class="mb-6 inline-flex items-center gap-2 rounded-lg border border-slate-700/50 bg-slate-800/40 px-4 py-2 text-sm font-medium text-slate-400 transition-colors hover:border-cyan-500/30 hover:bg-cyan-500/10 hover:text-cyan-400" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left h-4 w-4"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Tillbaka till Dashboard</a><div class="mt-6 flex items-center gap-4"><div class="flex h-12 w-12 items-center justify-center rounded-xl bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-6 w-6 text-cyan-400" style="filter:drop-shadow(0 0 6px rgba(34,211,238,0.6))"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><h1 class="text-2xl font-bold text-slate-100">CF Claw Dashboard — Manual</h1><p class="text-sm text-slate-500">AgentOS Dashboard v1.0</p></div></div></header><div class="mb-8 rounded-xl border border-cyan-500/20 bg-cyan-500/5 p-5"><h3 class="mb-2 text-sm font-semibold text-cyan-400">Om CF Claw Dashboard</h3><p class="text-sm leading-relaxed text-slate-300">CF Claw Dashboard är webbgränssnittet för din AI-agentplattform. Här kan du hantera projekt, schemalägga uppgifter, chatta med agenter, övervaka minne och kunskaper, samt följa systemets prestanda i realtid. All kommunikation sker via ett autentiserat WebSocket-anslutning mot backend.</p></div><div class="space-y-6"><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wifi h-4 w-4 text-cyan-400"><path d="M12 20h.01"></path><path d="M2 8.82a15 15 0 0 1 20 0"></path><path d="M5 12.859a10 10 0 0 1 14 0"></path><path d="M8.5 16.429a5 5 0 0 1 7 0"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Anslutning & Autentisering</h2></div><p class="mb-3 text-sm text-slate-400">Dashboarden ansluter automatiskt till backend-servern via WebSocket. Statusen visas i headern på varje sida:</p><div class="space-y-2 text-sm text-slate-400"><div class="flex items-center gap-2"><div class="h-2 w-2 rounded-full bg-emerald-400"></div><span class="text-emerald-400">Connected</span> — API och WebSocket är uppkopplat</div><div class="flex items-center gap-2"><div class="h-2 w-2 rounded-full bg-red-400"></div><span class="text-red-400">Disconnected</span> — Ingen kontakt med backend</div><div class="flex items-center gap-2"><div class="h-2 w-2 animate-pulse rounded-full bg-amber-400"></div><span class="text-amber-400">Connecting...</span> — Försöker ansluta</div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Om du ser "Disconnected", kontrollera att backend-servern körs och att<code class="mx-1 rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">NEXT_PUBLIC_API_BASE</code>är korrekt inställd i din <code class="mx-1 rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">.env.local</code>.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-4 w-4 text-cyan-400"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Autentisering</h2></div><p class="mb-3 text-sm text-slate-400">Om miljövariabeln<code class="mx-1 rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">NEXT_PUBLIC_AUTH_TOKEN</code>är satt skickas en Bearer-token med alla API-anrop och WebSocket-autentisering. Utan token körs dashboarden i öppet läge (endast för utveckling).</p></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity h-4 w-4 text-cyan-400"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Platform Overview</h2></div><p class="mb-3 text-sm text-slate-400">Översiktssidan visar systemets hälsostatus och nyckeltal vid en blink.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Statistikkort</span><p class="mt-0.5 text-sm text-slate-400">Visar antal aktiva projekt, cron-jobb, inlärda färdigheter och registrerade agenter.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">System Status</span><p class="mt-0.5 text-sm text-slate-400">Aktiv AI-modell, upptid, WebSocket-status och om schemaläggaren är igång.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Sidan uppdateras automatiskt när du öppnar den. Statistikkortens data hämtas från flera API:er parallellt.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-factory h-4 w-4 text-cyan-400"><path d="M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path><path d="M17 18h1"></path><path d="M12 18h1"></path><path d="M7 18h1"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Project Factory</h2></div><p class="mb-3 text-sm text-slate-400">Hantera projekt med Kanban-stil uppdelning. Skapa projekt, lägg till uppgifter och flytta dem mellan kolumner.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Projektlistning</span><p class="mt-0.5 text-sm text-slate-400">Välj bland projekt med framstegsindikatorer, team-avatars och status.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kanban-tavla</span><p class="mt-0.5 text-sm text-slate-400">Fyra kolumner: Backlog, Working, Review och Done. Hovra över en uppgift för att flytta den.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Skapa projekt</span><p class="mt-0.5 text-sm text-slate-400">Klicka "Nytt Projekt" och ange titel, beskrivning och team.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Uppgifter flyttas optimistic — gränssnittet uppdateras direkt och rullas tillbaka om API-anropet misslyckas.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-4 w-4 text-cyan-400"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Cron Scheduler</h2></div><p class="mb-3 text-sm text-slate-400">Schemalägga återkommande uppgifter med cron-uttryck som skickar prompts till din AI-agent.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Global start/stopp</span><p class="mt-0.5 text-sm text-slate-400">Starta eller stoppa hela schemaläggaren med en knapp.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Skapa cron-jobb</span><p class="mt-0.5 text-sm text-slate-400">Ange namn, cron-uttryck (t.ex. 0 9 * * *) och prompt som ska köras.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Aktivera/inaktivera</span><p class="mt-0.5 text-sm text-slate-400">Pausa enskilda jobb utan att ta bort dem.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Nästa körning</span><p class="mt-0.5 text-sm text-slate-400">Se när varje jobb körs nästa gång.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Cron-uttryck följer standardformat: minut timme dag-månad månad veckodag. Exempel: <code class="rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">0 */2 * * *</code> kör varannan timme.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-4 w-4 text-cyan-400"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Agent Chat</h2></div><p class="mb-3 text-sm text-slate-400">Chatta direkt med din AI-agent i realtid med strömmande svar och Markdown-rendering.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Strömmande svar</span><p class="mt-0.5 text-sm text-slate-400">Svaren visas tecken för tecken via WebSocket i realtid.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Modellbyte</span><p class="mt-0.5 text-sm text-slate-400">Välj aktiv AI-modell från en dropdown i chatten. Modeller grupperas per leverantör.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Markdown</span><p class="mt-0.5 text-sm text-slate-400">Assistentens svar renderas med full Markdown-stöd inklusive kodblock.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Stop generation</span><p class="mt-0.5 text-sm text-slate-400">Avbryt en pågående generering med stopp-knappen.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Auto-resize</span><p class="mt-0.5 text-sm text-slate-400">Textrutan växer automatiskt. Skicka med Enter, ny rad med Shift+Enter.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-4 w-4 text-cyan-400"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Skills & Learning</h2></div><p class="mb-3 text-sm text-slate-400">Bläddra bland agentens inlärda färdigheter och inbyggda core-skills.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Learned Skills</span><p class="mt-0.5 text-sm text-slate-400">Färdigheter som agenten skapat och sparat. Klicka för att expandera och se innehållet.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Core Skills</span><p class="mt-0.5 text-sm text-slate-400">Inbyggda färdigheter från systemet som inte kan redigeras.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit h-4 w-4 text-cyan-400"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg></div><h2 class="text-lg font-semibold text-slate-100">Memory & Graph</h2></div><p class="mb-3 text-sm text-slate-400">Inspektera agentens beständiga minne — automatiska sammanfattningar, extraherade fakta och entitetsgraf.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Auto-Summaries</span><p class="mt-0.5 text-sm text-slate-400">Automatiskt genererade sammanfattningar av konversationer.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Extracted Facts</span><p class="mt-0.5 text-sm text-slate-400">Fakta som agenten extraherat och kategoriserat.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Entity Graph</span><p class="mt-0.5 text-sm text-slate-400">Visualisering av relationer mellan entiteter (subjekt — relation — objekt).</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-merge h-4 w-4 text-cyan-400"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M6 21V9a9 9 0 0 0 9 9"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Mesh & Swarms</h2></div><p class="mb-3 text-sm text-slate-400">Starta multi-agent arbetsflöden. Mesh delar upp ett mål, Swarm fördelar uppgifter till ett team.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Mesh</span><p class="mt-0.5 text-sm text-slate-400">Ange ett mål — agenten dekomponerar det och distribuerar till flera agenter.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Swarm</span><p class="mt-0.5 text-sm text-slate-400">Ange en uppgift och välj team (default, research, engineering, analysis).</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Live-output</span><p class="mt-0.5 text-sm text-slate-400">Följ arbetsflödets framsteg i realtid med statusindikatorer.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Krver aktiv WebSocket-anslutning. Om du ser en varning, kontrollera anslutningen i headern.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-4 w-4 text-cyan-400"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Agent Registry</h2></div><p class="mb-3 text-sm text-slate-400">Se alla registrerade AI-agenter grupperade per team.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Team-gruppering</span><p class="mt-0.5 text-sm text-slate-400">Agenter visas i team som content, strategy, design, development, quality, operations och support.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Agentkort</span><p class="mt-0.5 text-sm text-slate-400">Varje agent visar namn, roll, tillgängliga verktyg och taggar.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Aktiv agent</span><p class="mt-0.5 text-sm text-slate-400">Den aktiva agenten markeras med en pulserande cyan-prick.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder h-4 w-4 text-cyan-400"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Document Store</h2></div><p class="mb-3 text-sm text-slate-400">Bläddra och hantera dokument med kategorifiltrering.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kategorifilter</span><p class="mt-0.5 text-sm text-slate-400">Filtrera på: all, general, projects, research, notes, html.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Dokumentlista</span><p class="mt-0.5 text-sm text-slate-400">Visar filtyp, titel, storlek och datum. HTML-filer får en "Canvas Ready"-badge.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Åtgärder</span><p class="mt-0.5 text-sm text-slate-400">Rendera (HTML), redigera eller radera dokument vid hover.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-4 w-4 text-cyan-400"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg></div><h2 class="text-lg font-semibold text-slate-100">System Logs</h2></div><p class="mb-3 text-sm text-slate-400">Realtidsloggvisning med terminalkänsla. Se allt som händer i systemet.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Realtidsuppdateringar</span><p class="mt-0.5 text-sm text-slate-400">Nya loggar strömmar via WebSocket (max 500 rader buffras).</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Färgkodade källor</span><p class="mt-0.5 text-sm text-slate-400">Agent Nudge (lila), Memory (cyan), Factory (indigo), Scheduler (amber), Core (grå).</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Auto-scroll</span><p class="mt-0.5 text-sm text-slate-400">Loggen scrollar automatiskt till botten vid nya inlägg.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dollar-sign h-4 w-4 text-cyan-400"><line x1="12" x2="12" y1="2" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Usage & Cost</h2></div><p class="mb-3 text-sm text-slate-400">Övervaka LLM API-användning, kostnader och prestandamätetal.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">24h-statistik</span><p class="mt-0.5 text-sm text-slate-400">Totalt anrop, tokens, kostnad och genomsnittlig latens.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kostnad per modell</span><p class="mt-0.5 text-sm text-slate-400">Tabell med anrop, tokens och kostnad uppdelat per AI-modell.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Senaste anrop</span><p class="mt-0.5 text-sm text-slate-400">De 10 senaste API-anropen med detaljer om modell, tokens och källa.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-4 w-4 text-cyan-400"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Webhooks</h2></div><p class="mb-3 text-sm text-slate-400">Skapa webhook-endpoints som triggare AI-prompts vid externa händelser.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Skapa webhook</span><p class="mt-0.5 text-sm text-slate-400">Ange namn, path, hemlighet (valfritt) och prompt-mall.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kopiera URL</span><p class="mt-0.5 text-sm text-slate-400">Kopiera webhook-URL:en till urklipp med ett klick.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Hantera</span><p class="mt-0.5 text-sm text-slate-400">Aktivera, inaktivera eller radera webhooks.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-4 w-4 text-cyan-400"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Sessions</h2></div><p class="mb-3 text-sm text-slate-400">Bläddra bland isolerade sub-agent konversationssessioner.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Sessionlista</span><p class="mt-0.5 text-sm text-slate-400">Vänsterpanelen visar alla sessioner med ID och tidsstämpel.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Meddelandevy</span><p class="mt-0.5 text-sm text-slate-400">Välj en session för att se dess konversation i chat-layout.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Rollmarkering</span><p class="mt-0.5 text-sm text-slate-400">Meddelanden färgkodas per roll — user (cyan), assistant/system (mörk).</p></div></div></section></div><footer class="mt-12 border-t border-slate-800/60 pt-6 pb-12 text-center"><p class="text-xs text-slate-600">CF Claw AgentOS Dashboard — Manual v1.0</p><a class="mt-3 inline-flex items-center gap-2 text-sm text-cyan-400 transition-colors hover:text-cyan-300" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left h-4 w-4"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Tillbaka till Dashboard</a></footer></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[8423,[\"343\",\"static/chunks/343-71498a8257bc1e81.js\",\"789\",\"static/chunks/app/manual/page-3c401ecf89979cd7.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"1xd_Aby3TOwJdfecSmZAL\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"manual\",\"\"],\"initialTree\":[\"\",{\"children\":[\"manual\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"manual\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"manual\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baff0f221c10680b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"sv\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-[#030712] text-slate-300 antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CF Claw Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"CF Claw AgentOS Dashboard\"}]]\n3:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="sv"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/baff0f221c10680b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-9583fa19bc194043.js" async=""></script><script src="/_next/static/chunks/117-c657912d4a6fa056.js" async=""></script><script src="/_next/static/chunks/main-app-89f5ec28b3bb0e7f.js" async=""></script><script src="/_next/static/chunks/343-71498a8257bc1e81.js" async=""></script><script src="/_next/static/chunks/app/manual/page-3c401ecf89979cd7.js" async=""></script><title>CF Claw Dashboard</title><meta name="description" content="CF Claw AgentOS Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="bg-[#030712] text-slate-300 antialiased"><div class="min-h-screen bg-[#030712]"><div class="mx-auto max-w-4xl px-6 py-8"><header class="mb-8"><a class="mb-6 inline-flex items-center gap-2 rounded-lg border border-slate-700/50 bg-slate-800/40 px-4 py-2 text-sm font-medium text-slate-400 transition-colors hover:border-cyan-500/30 hover:bg-cyan-500/10 hover:text-cyan-400" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left h-4 w-4"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Tillbaka till Dashboard</a><div class="mt-6 flex items-center gap-4"><div class="flex h-12 w-12 items-center justify-center rounded-xl bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap h-6 w-6 text-cyan-400" style="filter:drop-shadow(0 0 6px rgba(34,211,238,0.6))"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg></div><div><h1 class="text-2xl font-bold text-slate-100">CF Claw Dashboard — Manual</h1><p class="text-sm text-slate-500">AgentOS Dashboard v1.0</p></div></div></header><div class="mb-8 rounded-xl border border-cyan-500/20 bg-cyan-500/5 p-5"><h3 class="mb-2 text-sm font-semibold text-cyan-400">Om CF Claw Dashboard</h3><p class="text-sm leading-relaxed text-slate-300">CF Claw Dashboard är webbgränssnittet för din AI-agentplattform. Här kan du hantera projekt, schemalägga uppgifter, chatta med agenter, övervaka minne och kunskaper, samt följa systemets prestanda i realtid. All kommunikation sker via ett autentiserat WebSocket-anslutning mot backend.</p></div><div class="space-y-6"><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wifi h-4 w-4 text-cyan-400"><path d="M12 20h.01"></path><path d="M2 8.82a15 15 0 0 1 20 0"></path><path d="M5 12.859a10 10 0 0 1 14 0"></path><path d="M8.5 16.429a5 5 0 0 1 7 0"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Anslutning & Autentisering</h2></div><p class="mb-3 text-sm text-slate-400">Dashboarden ansluter automatiskt till backend-servern via WebSocket. Statusen visas i headern på varje sida:</p><div class="space-y-2 text-sm text-slate-400"><div class="flex items-center gap-2"><div class="h-2 w-2 rounded-full bg-emerald-400"></div><span class="text-emerald-400">Connected</span> — API och WebSocket är uppkopplat</div><div class="flex items-center gap-2"><div class="h-2 w-2 rounded-full bg-red-400"></div><span class="text-red-400">Disconnected</span> — Ingen kontakt med backend</div><div class="flex items-center gap-2"><div class="h-2 w-2 animate-pulse rounded-full bg-amber-400"></div><span class="text-amber-400">Connecting...</span> — Försöker ansluta</div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Om du ser "Disconnected", kontrollera att backend-servern körs och att<code class="mx-1 rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">NEXT_PUBLIC_API_BASE</code>är korrekt inställd i din <code class="mx-1 rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">.env.local</code>.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-4 w-4 text-cyan-400"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Autentisering</h2></div><p class="mb-3 text-sm text-slate-400">Om miljövariabeln<code class="mx-1 rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">NEXT_PUBLIC_AUTH_TOKEN</code>är satt skickas en Bearer-token med alla API-anrop och WebSocket-autentisering. Utan token körs dashboarden i öppet läge (endast för utveckling).</p></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity h-4 w-4 text-cyan-400"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Platform Overview</h2></div><p class="mb-3 text-sm text-slate-400">Översiktssidan visar systemets hälsostatus och nyckeltal vid en blink.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Statistikkort</span><p class="mt-0.5 text-sm text-slate-400">Visar antal aktiva projekt, cron-jobb, inlärda färdigheter och registrerade agenter.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">System Status</span><p class="mt-0.5 text-sm text-slate-400">Aktiv AI-modell, upptid, WebSocket-status och om schemaläggaren är igång.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Sidan uppdateras automatiskt när du öppnar den. Statistikkortens data hämtas från flera API:er parallellt.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-factory h-4 w-4 text-cyan-400"><path d="M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path><path d="M17 18h1"></path><path d="M12 18h1"></path><path d="M7 18h1"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Project Factory</h2></div><p class="mb-3 text-sm text-slate-400">Hantera projekt med Kanban-stil uppdelning. Skapa projekt, lägg till uppgifter och flytta dem mellan kolumner.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Projektlistning</span><p class="mt-0.5 text-sm text-slate-400">Välj bland projekt med framstegsindikatorer, team-avatars och status.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kanban-tavla</span><p class="mt-0.5 text-sm text-slate-400">Fyra kolumner: Backlog, Working, Review och Done. Hovra över en uppgift för att flytta den.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Skapa projekt</span><p class="mt-0.5 text-sm text-slate-400">Klicka "Nytt Projekt" och ange titel, beskrivning och team.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Uppgifter flyttas optimistic — gränssnittet uppdateras direkt och rullas tillbaka om API-anropet misslyckas.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-4 w-4 text-cyan-400"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Cron Scheduler</h2></div><p class="mb-3 text-sm text-slate-400">Schemalägga återkommande uppgifter med cron-uttryck som skickar prompts till din AI-agent.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Global start/stopp</span><p class="mt-0.5 text-sm text-slate-400">Starta eller stoppa hela schemaläggaren med en knapp.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Skapa cron-jobb</span><p class="mt-0.5 text-sm text-slate-400">Ange namn, cron-uttryck (t.ex. 0 9 * * *) och prompt som ska köras.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Aktivera/inaktivera</span><p class="mt-0.5 text-sm text-slate-400">Pausa enskilda jobb utan att ta bort dem.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Nästa körning</span><p class="mt-0.5 text-sm text-slate-400">Se när varje jobb körs nästa gång.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Cron-uttryck följer standardformat: minut timme dag-månad månad veckodag. Exempel: <code class="rounded bg-slate-800 px-1.5 py-0.5 text-xs text-cyan-300">0 */2 * * *</code> kör varannan timme.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-4 w-4 text-cyan-400"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Agent Chat</h2></div><p class="mb-3 text-sm text-slate-400">Chatta direkt med din AI-agent i realtid med strömmande svar och Markdown-rendering.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Strömmande svar</span><p class="mt-0.5 text-sm text-slate-400">Svaren visas tecken för tecken via WebSocket i realtid.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Modellbyte</span><p class="mt-0.5 text-sm text-slate-400">Välj aktiv AI-modell från en dropdown i chatten. Modeller grupperas per leverantör.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Markdown</span><p class="mt-0.5 text-sm text-slate-400">Assistentens svar renderas med full Markdown-stöd inklusive kodblock.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Stop generation</span><p class="mt-0.5 text-sm text-slate-400">Avbryt en pågående generering med stopp-knappen.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Auto-resize</span><p class="mt-0.5 text-sm text-slate-400">Textrutan växer automatiskt. Skicka med Enter, ny rad med Shift+Enter.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-4 w-4 text-cyan-400"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Skills & Learning</h2></div><p class="mb-3 text-sm text-slate-400">Bläddra bland agentens inlärda färdigheter och inbyggda core-skills.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Learned Skills</span><p class="mt-0.5 text-sm text-slate-400">Färdigheter som agenten skapat och sparat. Klicka för att expandera och se innehållet.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Core Skills</span><p class="mt-0.5 text-sm text-slate-400">Inbyggda färdigheter från systemet som inte kan redigeras.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit h-4 w-4 text-cyan-400"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg></div><h2 class="text-lg font-semibold text-slate-100">Memory & Graph</h2></div><p class="mb-3 text-sm text-slate-400">Inspektera agentens beständiga minne — automatiska sammanfattningar, extraherade fakta och entitetsgraf.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Auto-Summaries</span><p class="mt-0.5 text-sm text-slate-400">Automatiskt genererade sammanfattningar av konversationer.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Extracted Facts</span><p class="mt-0.5 text-sm text-slate-400">Fakta som agenten extraherat och kategoriserat.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Entity Graph</span><p class="mt-0.5 text-sm text-slate-400">Visualisering av relationer mellan entiteter (subjekt — relation — objekt).</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-merge h-4 w-4 text-cyan-400"><circle cx="18" cy="18" r="3"></circle><circle cx="6" cy="6" r="3"></circle><path d="M6 21V9a9 9 0 0 0 9 9"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Mesh & Swarms</h2></div><p class="mb-3 text-sm text-slate-400">Starta multi-agent arbetsflöden. Mesh delar upp ett mål, Swarm fördelar uppgifter till ett team.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Mesh</span><p class="mt-0.5 text-sm text-slate-400">Ange ett mål — agenten dekomponerar det och distribuerar till flera agenter.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Swarm</span><p class="mt-0.5 text-sm text-slate-400">Ange en uppgift och välj team (default, research, engineering, analysis).</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Live-output</span><p class="mt-0.5 text-sm text-slate-400">Följ arbetsflödets framsteg i realtid med statusindikatorer.</p></div></div><div class="mt-3 flex gap-2 rounded-lg border border-amber-500/20 bg-amber-500/5 p-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lightbulb h-4 w-4 flex-shrink-0 text-amber-400"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><p class="text-sm text-amber-200/80">Krver aktiv WebSocket-anslutning. Om du ser en varning, kontrollera anslutningen i headern.</p></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-4 w-4 text-cyan-400"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Agent Registry</h2></div><p class="mb-3 text-sm text-slate-400">Se alla registrerade AI-agenter grupperade per team.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Team-gruppering</span><p class="mt-0.5 text-sm text-slate-400">Agenter visas i team som content, strategy, design, development, quality, operations och support.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Agentkort</span><p class="mt-0.5 text-sm text-slate-400">Varje agent visar namn, roll, tillgängliga verktyg och taggar.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Aktiv agent</span><p class="mt-0.5 text-sm text-slate-400">Den aktiva agenten markeras med en pulserande cyan-prick.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder h-4 w-4 text-cyan-400"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Document Store</h2></div><p class="mb-3 text-sm text-slate-400">Bläddra och hantera dokument med kategorifiltrering.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kategorifilter</span><p class="mt-0.5 text-sm text-slate-400">Filtrera på: all, general, projects, research, notes, html.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Dokumentlista</span><p class="mt-0.5 text-sm text-slate-400">Visar filtyp, titel, storlek och datum. HTML-filer får en "Canvas Ready"-badge.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Åtgärder</span><p class="mt-0.5 text-sm text-slate-400">Rendera (HTML), redigera eller radera dokument vid hover.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-4 w-4 text-cyan-400"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg></div><h2 class="text-lg font-semibold text-slate-100">System Logs</h2></div><p class="mb-3 text-sm text-slate-400">Realtidsloggvisning med terminalkänsla. Se allt som händer i systemet.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Realtidsuppdateringar</span><p class="mt-0.5 text-sm text-slate-400">Nya loggar strömmar via WebSocket (max 500 rader buffras).</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Färgkodade källor</span><p class="mt-0.5 text-sm text-slate-400">Agent Nudge (lila), Memory (cyan), Factory (indigo), Scheduler (amber), Core (grå).</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Auto-scroll</span><p class="mt-0.5 text-sm text-slate-400">Loggen scrollar automatiskt till botten vid nya inlägg.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dollar-sign h-4 w-4 text-cyan-400"><line x1="12" x2="12" y1="2" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Usage & Cost</h2></div><p class="mb-3 text-sm text-slate-400">Övervaka LLM API-användning, kostnader och prestandamätetal.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">24h-statistik</span><p class="mt-0.5 text-sm text-slate-400">Totalt anrop, tokens, kostnad och genomsnittlig latens.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kostnad per modell</span><p class="mt-0.5 text-sm text-slate-400">Tabell med anrop, tokens och kostnad uppdelat per AI-modell.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Senaste anrop</span><p class="mt-0.5 text-sm text-slate-400">De 10 senaste API-anropen med detaljer om modell, tokens och källa.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-4 w-4 text-cyan-400"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Webhooks</h2></div><p class="mb-3 text-sm text-slate-400">Skapa webhook-endpoints som triggare AI-prompts vid externa händelser.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Skapa webhook</span><p class="mt-0.5 text-sm text-slate-400">Ange namn, path, hemlighet (valfritt) och prompt-mall.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Kopiera URL</span><p class="mt-0.5 text-sm text-slate-400">Kopiera webhook-URL:en till urklipp med ett klick.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Hantera</span><p class="mt-0.5 text-sm text-slate-400">Aktivera, inaktivera eller radera webhooks.</p></div></div></section><section class="rounded-xl border border-slate-800/60 bg-[#0b1120] p-6"><div class="mb-4 flex items-center gap-3"><div class="flex h-8 w-8 items-center justify-center rounded-lg bg-cyan-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers h-4 w-4 text-cyan-400"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></div><h2 class="text-lg font-semibold text-slate-100">Sessions</h2></div><p class="mb-3 text-sm text-slate-400">Bläddra bland isolerade sub-agent konversationssessioner.</p><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Sessionlista</span><p class="mt-0.5 text-sm text-slate-400">Vänsterpanelen visar alla sessioner med ID och tidsstämpel.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Meddelandevy</span><p class="mt-0.5 text-sm text-slate-400">Välj en session för att se dess konversation i chat-layout.</p></div></div><div class="flex gap-3 py-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right mt-0.5 h-4 w-4 flex-shrink-0 text-cyan-500"><path d="m9 18 6-6-6-6"></path></svg><div><span class="text-sm font-medium text-slate-200">Rollmarkering</span><p class="mt-0.5 text-sm text-slate-400">Meddelanden färgkodas per roll — user (cyan), assistant/system (mörk).</p></div></div></section></div><footer class="mt-12 border-t border-slate-800/60 pt-6 pb-12 text-center"><p class="text-xs text-slate-600">CF Claw AgentOS Dashboard — Manual v1.0</p><a class="mt-3 inline-flex items-center gap-2 text-sm text-cyan-400 transition-colors hover:text-cyan-300" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left h-4 w-4"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Tillbaka till Dashboard</a></footer></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/baff0f221c10680b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[8423,[\"343\",\"static/chunks/343-71498a8257bc1e81.js\",\"789\",\"static/chunks/app/manual/page-3c401ecf89979cd7.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"hskYcp5OItQ-v0RVtFTun\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"manual\",\"\"],\"initialTree\":[\"\",{\"children\":[\"manual\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"manual\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"manual\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/baff0f221c10680b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"sv\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-[#030712] text-slate-300 antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CF Claw Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"CF Claw AgentOS Dashboard\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
3:I[8423,["343","static/chunks/343-71498a8257bc1e81.js","789","static/chunks/app/manual/page-3c401ecf89979cd7.js"],"default",1]
|
|
3
3
|
4:I[4707,[],""]
|
|
4
4
|
5:I[6423,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["hskYcp5OItQ-v0RVtFTun",[[["",{"children":["manual",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["manual",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","manual","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/baff0f221c10680b.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"sv","children":["$","body",null,{"className":"bg-[#030712] text-slate-300 antialiased","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"CF Claw Dashboard"}],["$","meta","3",{"name":"description","content":"CF Claw AgentOS Dashboard"}]]
|
|
7
7
|
1:null
|
package/dist/index.js
CHANGED
|
@@ -40,7 +40,7 @@ async function registerProviders() {
|
|
|
40
40
|
const models = provider.models || [];
|
|
41
41
|
const defaultModel = provider.default || models[0];
|
|
42
42
|
const baseUrl = provider.baseUrl;
|
|
43
|
-
if (!apiKey)
|
|
43
|
+
if (!apiKey || apiKey.trim() === "")
|
|
44
44
|
continue;
|
|
45
45
|
if (name === "google") {
|
|
46
46
|
registerProvider(new GoogleProvider({ apiKey }));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,KAAK,UAAU,iBAAiB;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;IAEvD,MAAM,eAAe,GAAuC;QAC1D,GAAG,EAAE,MAAM,CAAC,SAAS;QACrB,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,QAAQ,EAAE,MAAM,CAAC,cAAc;QAC/B,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,UAAU,EAAE,MAAM,CAAC,gBAAgB;QACnC,IAAI,EAAE,MAAM,CAAC,UAAU;KACxB,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,YAAY,GAAI,QAAgB,CAAC,MAAM,CAAC;QAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAI,QAAgB,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAI,QAAgB,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAI,QAAgB,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,MAAM;YAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,KAAK,UAAU,iBAAiB;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;IAEvD,MAAM,eAAe,GAAuC;QAC1D,GAAG,EAAE,MAAM,CAAC,SAAS;QACrB,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,QAAQ,EAAE,MAAM,CAAC,cAAc;QAC/B,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,UAAU,EAAE,MAAM,CAAC,gBAAgB;QACnC,IAAI,EAAE,MAAM,CAAC,UAAU;KACxB,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,YAAY,GAAI,QAAgB,CAAC,MAAM,CAAC;QAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAI,QAAgB,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAI,QAAgB,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAI,QAAgB,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAE9C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,gBAAgB,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,gBAAgB,CAAC,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,gBAAgB,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,oBAAoB,CAAC;gBACxC,IAAI;gBACJ,MAAM;gBACN,YAAY;gBACZ,MAAM;gBACN,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,gBAAgB,CAAC,IAAI,oBAAoB,CAAC;YACxC,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;YAClF,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACxD,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAClD,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,gBAAgB,CAAC,IAAI,cAAc,CAAC;oBAClC,OAAO,EAAE,MAAM,CAAC,aAAa;oBAC7B,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;iBACxB,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,WAAW,iCAAiC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9F,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,aAAa,GAA0D,IAAI,CAAC;IAEhF,KAAK,UAAU,QAAQ,CAAC,MAAsB;QAC5C,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QAEpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,oBAAoB,CAAC,CAAC;QAEzD,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,CAAC;QACd,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,mBAAmB,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,WAAW,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAE,GAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,aAAa,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC1B,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QAC3B,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,WAAW,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAEvD,MAAM,iBAAiB,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,cAAc,EAAE,EAAE,CAAC,CAAC;IAEtD,MAAM,UAAU,EAAE,CAAC;IACnB,kBAAkB,EAAE,CAAC;IAErB,UAAU,EAAE,CAAC;IAEb,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,EAAE,CAAC;IAElB,aAAa,GAAG,MAAM,kBAAkB,CACtC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,gBAAgB,CACxB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,+CAA+C,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjF,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACjC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;QACvD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,WAAW,iBAAiB,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,YAAY,EAAE,CAAC;IAEf,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC,CAAC;QAEF,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,KAAK,CAAC;QACd,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC9D,MAAM,CAAC,+BAA+B,CAAC,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -3,8 +3,10 @@ import type { LLMProvider, ChatCompletionOptions, ChatCompletionResult } from ".
|
|
|
3
3
|
export declare class OpenAICompatProvider implements LLMProvider {
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly models: string[];
|
|
6
|
-
protected client: OpenAI;
|
|
6
|
+
protected client: OpenAI | null;
|
|
7
7
|
private defaultModel;
|
|
8
|
+
private apiKey;
|
|
9
|
+
private baseURL;
|
|
8
10
|
constructor(opts: {
|
|
9
11
|
name: string;
|
|
10
12
|
models: string[];
|
|
@@ -12,6 +14,7 @@ export declare class OpenAICompatProvider implements LLMProvider {
|
|
|
12
14
|
apiKey: string;
|
|
13
15
|
baseURL: string;
|
|
14
16
|
});
|
|
17
|
+
private getClient;
|
|
15
18
|
chatCompletion(options: ChatCompletionOptions): Promise<ChatCompletionResult>;
|
|
16
19
|
}
|
|
17
20
|
//# sourceMappingURL=openai-compat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../../src/llm/openai-compat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAuC,MAAM,eAAe,CAAC;AA8BnI,qBAAa,oBAAqB,YAAW,WAAW;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../../src/llm/openai-compat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAuC,MAAM,eAAe,CAAC;AA8BnI,qBAAa,oBAAqB,YAAW,WAAW;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAQ3G,OAAO,CAAC,SAAS;IAUX,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA+BpF"}
|
|
@@ -29,18 +29,30 @@ function toOpenAITools(tools) {
|
|
|
29
29
|
export class OpenAICompatProvider {
|
|
30
30
|
name;
|
|
31
31
|
models;
|
|
32
|
-
client;
|
|
32
|
+
client = null;
|
|
33
33
|
defaultModel;
|
|
34
|
+
apiKey;
|
|
35
|
+
baseURL;
|
|
34
36
|
constructor(opts) {
|
|
35
37
|
this.name = opts.name;
|
|
36
38
|
this.models = opts.models;
|
|
37
39
|
this.defaultModel = opts.defaultModel;
|
|
38
|
-
this.
|
|
40
|
+
this.apiKey = opts.apiKey;
|
|
41
|
+
this.baseURL = opts.baseURL;
|
|
42
|
+
}
|
|
43
|
+
getClient() {
|
|
44
|
+
if (!this.client) {
|
|
45
|
+
if (!this.apiKey || this.apiKey.trim() === "") {
|
|
46
|
+
throw new Error(`Provider "${this.name}" has no API key configured`);
|
|
47
|
+
}
|
|
48
|
+
this.client = new OpenAI({ apiKey: this.apiKey, baseURL: this.baseURL });
|
|
49
|
+
}
|
|
50
|
+
return this.client;
|
|
39
51
|
}
|
|
40
52
|
async chatCompletion(options) {
|
|
41
53
|
const model = options.model || this.defaultModel;
|
|
42
54
|
const openaiTools = toOpenAITools(options.tools);
|
|
43
|
-
const response = await this.
|
|
55
|
+
const response = await this.getClient().chat.completions.create({
|
|
44
56
|
model,
|
|
45
57
|
messages: toOpenAIMessages(options.messages),
|
|
46
58
|
tools: openaiTools,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../src/llm/openai-compat.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,SAAS,gBAAgB,CAAC,QAA+B;IACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,YAAY,EAAE,CAAC,CAAC,YAAa,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,WAAoB;gBAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;gBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACpC,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,UAAmB;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;iBACvE,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAA4C,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;KACjF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,OAAO,oBAAoB;IACtB,IAAI,CAAS;IACb,MAAM,CAAW;IAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../src/llm/openai-compat.ts"],"names":[],"mappings":"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"}
|
package/dist/voice.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Downloads a Telegram voice file and transcribes it using Groq Whisper.
|
|
3
|
-
* Returns the transcribed text.
|
|
4
|
-
*/
|
|
5
|
-
export declare function transcribeVoice(fileUrl: string, fileName: string): Promise<string>;
|
|
1
|
+
export declare function transcribeVoice(fileId: string): Promise<string>;
|
|
6
2
|
//# sourceMappingURL=voice.d.ts.map
|
package/dist/voice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAiCA,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBrE"}
|
package/dist/voice.js
CHANGED
|
@@ -3,45 +3,48 @@ import { config } from "./config.js";
|
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import os from "node:os";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
let safeName = path.basename(fileName);
|
|
17
|
-
// Telegram uses .oga extension, but Groq Whisper expects .ogg (same codec)
|
|
18
|
-
if (safeName.endsWith(".oga")) {
|
|
19
|
-
safeName = safeName.replace(/\.oga$/, ".ogg");
|
|
6
|
+
let groqClient = null;
|
|
7
|
+
function getGroqClient() {
|
|
8
|
+
if (!groqClient) {
|
|
9
|
+
if (!config.groqApiKey) {
|
|
10
|
+
throw new Error("GROQ_API_KEY not configured — voice transcription unavailable");
|
|
11
|
+
}
|
|
12
|
+
groqClient = new OpenAI({
|
|
13
|
+
apiKey: config.groqApiKey,
|
|
14
|
+
baseURL: "https://api.groq.com/openai/v1",
|
|
15
|
+
});
|
|
20
16
|
}
|
|
21
|
-
|
|
17
|
+
return groqClient;
|
|
18
|
+
}
|
|
19
|
+
async function downloadTelegramFile(fileId, botToken) {
|
|
20
|
+
const fileUrl = `https://api.telegram.org/bot${botToken}/getFile?file_id=${fileId}`;
|
|
21
|
+
const fileRes = await fetch(fileUrl);
|
|
22
|
+
const fileData = (await fileRes.json());
|
|
23
|
+
if (!fileData.ok || !fileData.result)
|
|
24
|
+
throw new Error("Failed to get Telegram file");
|
|
25
|
+
const downloadUrl = `https://api.telegram.org/file/bot${botToken}/${fileData.result.file_path}`;
|
|
26
|
+
const res = await fetch(downloadUrl);
|
|
27
|
+
if (!res.ok)
|
|
28
|
+
throw new Error("Failed to download file");
|
|
29
|
+
return Buffer.from(await res.arrayBuffer());
|
|
30
|
+
}
|
|
31
|
+
export async function transcribeVoice(fileId) {
|
|
32
|
+
const buffer = await downloadTelegramFile(fileId, config.telegramBotToken);
|
|
33
|
+
const tempPath = path.join(os.tmpdir(), `cf-claw-voice-${Date.now()}.ogg`);
|
|
22
34
|
try {
|
|
23
|
-
const response = await fetch(fileUrl);
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
throw new Error(`Failed to download voice file: ${response.statusText}`);
|
|
26
|
-
}
|
|
27
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
28
35
|
fs.writeFileSync(tempPath, buffer);
|
|
29
|
-
|
|
30
|
-
const transcription = await groq.audio.transcriptions.create({
|
|
36
|
+
const transcription = await getGroqClient().audio.transcriptions.create({
|
|
31
37
|
file: fs.createReadStream(tempPath),
|
|
32
38
|
model: "whisper-large-v3",
|
|
33
|
-
language: "sv",
|
|
39
|
+
language: "sv",
|
|
34
40
|
});
|
|
35
41
|
return transcription.text;
|
|
36
42
|
}
|
|
37
43
|
finally {
|
|
38
|
-
// Clean up temp file
|
|
39
44
|
try {
|
|
40
45
|
fs.unlinkSync(tempPath);
|
|
41
46
|
}
|
|
42
|
-
catch {
|
|
43
|
-
// ignore cleanup errors
|
|
44
|
-
}
|
|
47
|
+
catch { }
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
//# sourceMappingURL=voice.js.map
|
package/dist/voice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,SAAS,aAAa;IACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,UAAU,GAAG,IAAI,MAAM,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC,UAAU;YACzB,OAAO,EAAE,gCAAgC;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,QAAgB;IAClE,MAAM,OAAO,GAAG,+BAA+B,QAAQ,oBAAoB,MAAM,EAAE,CAAC;IACpF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAoD,CAAC;IAC3F,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAErF,MAAM,WAAW,GAAG,oCAAoC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc;IAClD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE3E,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEnC,MAAM,aAAa,GAAG,MAAM,aAAa,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YACtE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YACnC,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
File without changes
|
/package/dist/dashboard/_next/static/{1xd_Aby3TOwJdfecSmZAL → hskYcp5OItQ-v0RVtFTun}/_ssgManifest.js
RENAMED
|
File without changes
|