chore(ui): Move zombie UI to old

This commit is contained in:
Richard Palethorpe
2025-04-01 16:44:35 +01:00
parent 99e0011920
commit 53d135bec9
23 changed files with 144 additions and 143 deletions

View File

@@ -249,7 +249,7 @@ func (a *App) ImportAgent(pool *state.AgentPool) func(c *fiber.Ctx) error {
}
}
func (a *App) Chat(pool *state.AgentPool) func(c *fiber.Ctx) error {
func (a *App) OldChat(pool *state.AgentPool) func(c *fiber.Ctx) error {
return func(c *fiber.Ctx) error {
payload := struct {
Message string `json:"message"`
@@ -307,9 +307,9 @@ func (a *App) Chat(pool *state.AgentPool) func(c *fiber.Ctx) error {
}
}
// ChatAPI provides a JSON-based API for chat functionality
// Chat provides a JSON-based API for chat functionality
// This is designed to work better with the React UI
func (a *App) ChatAPI(pool *state.AgentPool) func(c *fiber.Ctx) error {
func (a *App) Chat(pool *state.AgentPool) func(c *fiber.Ctx) error {
return func(c *fiber.Ctx) error {
// Parse the request body
payload := struct {

View File

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View File

Before

Width:  |  Height:  |  Size: 886 KiB

After

Width:  |  Height:  |  Size: 886 KiB

View File

@@ -4,10 +4,10 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Actions Playground</title>
{{template "views/partials/header"}}
{{template "old/views/partials/header"}}
</head>
<body>
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<!-- Toast for notifications -->
<div id="toast" class="toast">
@@ -97,7 +97,7 @@
});
function fetchActions() {
fetch('/actions')
fetch('/api/actions')
.then(response => response.json())
.then(actions => {
const select = document.getElementById('action-select');
@@ -173,7 +173,7 @@
`;
// Execute the action
fetch(`/action/${actionId}/run`, {
fetch(`/api/action/${actionId}/run`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',

View File

@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Agent List</title>
{{template "views/partials/header"}}
{{template "old/views/partials/header"}}
<style>
.avatar-placeholder {
width: 96px;
@@ -46,7 +46,7 @@
</style>
</head>
<body>
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<!-- Toast for notifications -->
<div id="toast" class="toast">
@@ -60,7 +60,7 @@
</header>
<div class="button-container justify-center mb-6">
<a href="/create" class="action-btn start-btn">
<a href="/old/create" class="action-btn start-btn">
<i class="fas fa-plus-circle"></i> Add New Agent
</a>
<button id="toggle-import" class="action-btn" style="background: linear-gradient(135deg, var(--tertiary), #4a76a8);">
@@ -121,11 +121,11 @@
</div>
<div class="grid grid-cols-2 gap-2 w-full mb-4">
<a href="/status/{{.}}" class="action-btn flex items-center justify-center"
<a href="/old/status/{{.}}" class="action-btn flex items-center justify-center"
style="background: linear-gradient(135deg, #2a2a2a, #3a3a3a);">
<i class="fas fa-info-circle mr-2"></i> Status
</a>
<a href="/talk/{{.}}" class="action-btn flex items-center justify-center"
<a href="/old/talk/{{.}}" class="action-btn flex items-center justify-center"
style="background: linear-gradient(135deg, #2a2a2a, #3a3a3a);">
<i class="fas fa-comments mr-2"></i> Talk
</a>
@@ -141,7 +141,7 @@
<i class="fas fa-play"></i> Start
{{ end }}
</button>
<a href="/settings/{{.}}" class="action-btn col-span-1 flex items-center justify-center"
<a href="/old/settings/{{.}}" class="action-btn col-span-1 flex items-center justify-center"
style="background: linear-gradient(135deg, #2a2a2a, #3a3a3a);">
<i class="fas fa-cog"></i>
</a>
@@ -244,7 +244,7 @@
button.addEventListener('click', function() {
const agent = this.getAttribute('data-agent');
const isActive = this.getAttribute('data-active') === 'true';
const endpoint = isActive ? `/pause/${agent}` : `/start/${agent}`;
const endpoint = isActive ? `/api/agent/${agent}/pause` : `/api/agent/${agent}/start`;
// Add animation
this.style.animation = 'pulse 0.5s';

View File

@@ -2,7 +2,7 @@
<html lang="en">
<head>
<title>Smart Agent Interface</title>
{{template "views/partials/header"}}
{{template "old/views/partials/header"}}
<style>
body { overflow: hidden; }
.chat-container { height: 90vh; display: flex; flex-direction: column; }
@@ -37,7 +37,7 @@
</style>
</head>
<body class="bg-gray-900 p-4 text-white font-sans" hx-ext="sse" sse-connect="/sse/{{.Name}}">
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<div class="chat-container bg-gray-800 shadow-lg rounded-lg" >
<!-- Chat Header -->
@@ -78,7 +78,7 @@
<!-- Message Input -->
<div class="p-4 border-t border-gray-700">
<div sse-swap="message_status"></div>
<input id="inputMessage" name="message" type="text" hx-post="/chat/{{.Name}}" hx-target="#results" hx-indicator=".htmx-indicator"
<input id="inputMessage" name="message" type="text" hx-post="/old/chat/{{.Name}}" hx-target="#results" hx-indicator=".htmx-indicator"
class="p-2 border rounded w-full bg-gray-600 text-white placeholder-gray-300" placeholder="Type a message..." _="on htmx:afterRequest set my value to ''">
<div class="my-2 htmx-indicator" ></div>
<div id="results" class="flex justify-center"></div>

View File

@@ -2,20 +2,20 @@
<html lang="en">
<head>
<title>Create New Agent</title>
{{template "views/partials/header"}}
<script src="/public/js/wizard.js"></script>
<link rel="stylesheet" href="/public/css/wizard.css">
<script src="/public/js/connector-templates.js"></script>
<script src="/public/js/agent-form.js"></script>
{{template "old/views/partials/header"}}
<script src="/old/public/js/wizard.js"></script>
<link rel="stylesheet" href="/old/public/css/wizard.css">
<script src="/old/public/js/connector-templates.js"></script>
<script src="/old/public/js/agent-form.js"></script>
</head>
<body>
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<div class="container">
<div class="section-box">
<h1>Create New Agent</h1>
<form id="create-agent-form" action="/create" method="POST">
{{template "views/partials/agent-form" . }}
<form id="create-agent-form" action="/api/agent/create" method="POST">
{{template "old/views/partials/agent-form" . }}
<button type="submit" id="create-button" data-original-text="<i class='fas fa-robot'></i> Create Agent">
<i class="fas fa-robot"></i> Create Agent
@@ -84,7 +84,7 @@
if (jsonData.promptblocks === null) return; // Validation failed
// Send the structured data as JSON
fetch('/create', {
fetch('/api/agent/create', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
@@ -110,7 +110,7 @@
// Redirect to agent list page after a delay
setTimeout(() => {
window.location.href = '/agents';
window.location.href = '/old/agents';
}, 2000);
} else if (data.error) {
// Show error toast

View File

@@ -2,11 +2,11 @@
<html lang="en">
<head>
<title>Create Agent Group</title>
{{template "views/partials/header"}}
<script src="/public/js/wizard.js"></script>
<link rel="stylesheet" href="/public/css/wizard.css">
<script src="/public/js/connector-templates.js"></script>
<script src="/public/js/agent-form.js"></script>
{{template "old/views/partials/header"}}
<script src="/old/public/js/wizard.js"></script>
<link rel="stylesheet" href="/old/public/css/wizard.css">
<script src="/old/public/js/connector-templates.js"></script>
<script src="/old/public/js/agent-form.js"></script>
<style>
.agent-profile {
border: 1px solid var(--medium-bg);
@@ -179,7 +179,7 @@
</style>
</head>
<body>
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<div class="container">
<div class="section-box">
<h1>Create Agent Group</h1>
@@ -268,7 +268,7 @@
<!-- Use the existing agent-form partial -->
<div id="group-agent-form">
{{template "views/partials/agent-form" . }}
{{template "old/views/partials/agent-form" . }}
</div>
</form>
@@ -554,7 +554,7 @@
// Redirect to agent list page after a delay
setTimeout(() => {
window.location.href = '/agents';
window.location.href = '/old/agents';
}, 2000);
} else if (data.error) {
// Show error toast

View File

@@ -2,7 +2,7 @@
<html lang="en">
<head>
<title>Smart Assistant Dashboard</title>
{{template "views/partials/header"}}
{{template "old/views/partials/header"}}
<style>
.image-container {
display: flex;
@@ -132,12 +132,12 @@
</style>
</head>
<body>
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<div class="container">
<div class="image-container">
<img src="/public/logo_1.png" width="250" alt="Company Logo">
<img src="/old/public/logo_1.png" width="250" alt="Company Logo">
</div>
<h1 class="dashboard-title">LocalAgent</h1>
@@ -160,7 +160,7 @@
<div class="cards-container">
<!-- Card for Agent List Page -->
<a href="/agents" class="card-link">
<a href="/old/agents" class="card-link">
<div class="card">
<h2><i class="fas fa-robot"></i> Agent List</h2>
<p>View and manage your list of agents, including detailed profiles and statistics.</p>
@@ -168,7 +168,7 @@
</a>
<!-- Card for Create Agent -->
<a href="/create" class="card-link">
<a href="/old/create" class="card-link">
<div class="card">
<h2><i class="fas fa-plus-circle"></i> Create Agent</h2>
<p>Create a new intelligent agent with custom behaviors, connectors, and actions.</p>

View File

@@ -1,11 +1,11 @@
<!DOCTYPE html>
<html lang="en">
{{template "views/partials/header" .}}
{{template "old/views/partials/header" .}}
<body class="bg-gradient-to-br from-gray-900 to-gray-950 text-gray-200">
<div class="flex flex-col min-h-screen">
{{template "views/partials/menu" .}}
{{template "old/views/partials/menu" .}}
<div class="container mx-auto px-4 py-8 flex-grow flex items-center justify-center">
<!-- Auth Card -->

View File

@@ -6,5 +6,5 @@
<script src="https://unpkg.com/htmx.org"></script>
<script src="https://unpkg.com/htmx.org/dist/ext/sse.js"></script>
<script src="https://unpkg.com/hyperscript.org@0.9.12"></script>
<link rel="stylesheet" href="/public/css/styles.css">
<script src="/public/js/common.js"></script>
<link rel="stylesheet" href="/old/public/css/styles.css">
<script src="/old/public/js/common.js"></script>

View File

@@ -5,9 +5,9 @@
<!-- Logo container -->
<div class="flex-shrink-0">
<!-- Logo with glow effect -->
<a href="/" class="flex items-center group">
<a href="/old" class="flex items-center group">
<div class="relative">
<img src="/public/logo_1.png" alt="Logo" class="h-10 w-auto mr-4 transition-transform duration-300 group-hover:scale-105"
<img src="/old/public/logo_1.png" alt="Logo" class="h-10 w-auto mr-4 transition-transform duration-300 group-hover:scale-105"
style="filter: drop-shadow(0 0 5px var(--primary));">
<!-- Animated scan line on hover -->
<div class="absolute inset-0 overflow-hidden opacity-0 group-hover:opacity-100 transition-opacity duration-300">
@@ -21,25 +21,25 @@
</div>
<div class="hidden md:block ml-10">
<div class="flex space-x-4">
<a href="/" class="px-3 py-2 rounded-md text-lg font-medium text-white hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<a href="/old" class="px-3 py-2 rounded-md text-lg font-medium text-white hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<i class="fas fa-home mr-2"></i> Home
<!-- Underline animation -->
<span class="absolute bottom-0 left-0 w-0 h-0.5 group-hover:w-full transition-all duration-300"
style="background: linear-gradient(90deg, var(--primary), var(--secondary));"></span>
</a>
<a href="/agents" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<a href="/old/agents" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<i class="fas fa-users mr-2"></i> Agent List
<!-- Underline animation -->
<span class="absolute bottom-0 left-0 w-0 h-0.5 group-hover:w-full transition-all duration-300"
style="background: linear-gradient(90deg, var(--secondary), var(--tertiary));"></span>
</a>
<a href="/actions-playground" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<a href="/old/actions-playground" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<i class="fas fa-bolt mr-2"></i> Actions Playground
<!-- Underline animation -->
<span class="absolute bottom-0 left-0 w-0 h-0.5 group-hover:w-full transition-all duration-300"
style="background: linear-gradient(90deg, var(--tertiary), var(--primary));"></span>
</a>
<a href="/group-create" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<a href="/old/group-create" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<i class="fas fa-users-cog mr-2"></i> Create Agent Group
<!-- Underline animation -->
<span class="absolute bottom-0 left-0 w-0 h-0.5 group-hover:w-full transition-all duration-300"
@@ -72,21 +72,21 @@
<div id="mobile-menu" class="md:hidden hidden"
style="background-color: var(--darker-bg); border-top: 1px solid var(--medium-bg);">
<div class="px-2 pt-2 pb-3 space-y-1">
<a href="/" class="block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-gray-800 transition duration-300"
<a href="/old" class="block px-3 py-2 rounded-md text-base font-medium text-white hover:bg-gray-800 transition duration-300"
style="border-left: 3px solid var(--primary);">
<i class="fas fa-home mr-2"></i> Home
</a>
<a href="/agents" class="block px-3 py-2 rounded-md text-base font-medium text-gray-400 hover:bg-gray-800 transition duration-300"
<a href="/old/agents" class="block px-3 py-2 rounded-md text-base font-medium text-gray-400 hover:bg-gray-800 transition duration-300"
style="border-left: 3px solid var(--secondary);">
<i class="fas fa-users mr-2"></i> Agent List
</a>
<a href="/actions-playground" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<a href="/old/actions-playground" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<i class="fas fa-bolt mr-2"></i> Actions Playground
<!-- Underline animation -->
<span class="absolute bottom-0 left-0 w-0 h-0.5 group-hover:w-full transition-all duration-300"
style="background: linear-gradient(90deg, var(--tertiary), var(--primary));"></span>
</a>
<a href="/group-create" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<a href="/old/group-create" class="px-3 py-2 rounded-md text-lg font-medium text-gray-400 hover:bg-gray-800 transition duration-300 relative overflow-hidden group">
<i class="fas fa-users-cog mr-2"></i> Create Agent Group
<!-- Underline animation -->
<span class="absolute bottom-0 left-0 w-0 h-0.5 group-hover:w-full transition-all duration-300"

View File

@@ -2,14 +2,14 @@
<html lang="en">
<head>
<title>Agent settings {{.Name}}</title>
{{template "views/partials/header"}}
<script src="/public/js/wizard.js"></script>
<link rel="stylesheet" href="/public/css/wizard.css">
<script src="/public/js/connector-templates.js"></script>
<script src="/public/js/agent-form.js"></script>
{{template "old/views/partials/header"}}
<script src="/old/public/js/wizard.js"></script>
<link rel="stylesheet" href="/old/public/css/wizard.css">
<script src="/old/public/js/connector-templates.js"></script>
<script src="/old/public/js/agent-form.js"></script>
</head>
<body>
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<!-- Toast notification container -->
<div id="toast" class="toast">
@@ -29,7 +29,7 @@
<form id="edit-agent-form">
<input type="hidden" name="name" id="name" value="{{.Name}}">
{{template "views/partials/agent-form" .}}
{{template "old/views/partials/agent-form" .}}
<button type="submit" id="update-button" class="action-btn" data-original-text="<i class='fas fa-save'></i> Update Agent">
<i class="fas fa-save"></i> Update Agent
@@ -58,7 +58,7 @@
<p class="mb-4">Export your agent configuration for backup or transfer.</p>
<button
class="action-btn"
onclick="window.location.href='/settings/export/{{.Name}}'">
onclick="window.location.href='/old/settings/export/{{.Name}}'">
<i class="fas fa-file-export"></i> Export Configuration
</button>
</div>
@@ -69,7 +69,7 @@
<button
class="action-btn"
style="background: linear-gradient(135deg, #ff4545, var(--secondary)); color: white;"
hx-delete="/delete/{{.Name}}"
hx-delete="/api/agent/{{.Name}}"
hx-swap="none"
data-action="delete"
data-agent="{{.Name}}">
@@ -114,7 +114,7 @@
toggleButton.addEventListener('click', function() {
const agent = this.getAttribute('data-agent');
const isActive = this.getAttribute('data-active') === "true";
const endpoint = isActive ? `/pause/${agent}` : `/start/${agent}`;
const endpoint = isActive ? `/api/agent/${agent}/pause` : `/api/agent/${agent}/start`;
// Add animation
this.style.animation = 'pulse 0.5s';
@@ -277,7 +277,7 @@
message = `Agent "${agent}" deleted successfully`;
// Redirect to agent list page after short delay for delete
setTimeout(() => {
window.location.href = "/agents";
window.location.href = "/old/agents";
}, 2000);
break;
default:

View File

@@ -2,7 +2,7 @@
<html lang="en">
<head>
<title>Smart Agent status</title>
{{template "views/partials/header"}}
{{template "old/views/partials/header"}}
<style>
body { overflow: hidden; }
.chat-container { height: 90vh; display: flex; flex-direction: column; }
@@ -37,7 +37,7 @@
</style>
</head>
<body class="bg-gray-900 p-4 text-white font-sans" hx-ext="sse" sse-connect="/sse/{{.Name}}">
{{template "views/partials/menu"}}
{{template "old/views/partials/menu"}}
<div class="chat-container bg-gray-800 shadow-lg rounded-lg" >
<!-- Chat Header -->
<div class="border-b border-gray-700 p-4">

View File

@@ -21,10 +21,10 @@ import (
"github.com/mudler/LocalAgent/services"
)
//go:embed views/*
//go:embed old/views/*
var viewsfs embed.FS
//go:embed public/*
//go:embed old/public/*
var embeddedFiles embed.FS
//go:embed react-ui/dist/*
@@ -39,12 +39,12 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
Browse: true,
}))
/* webapp.Use("/public", filesystem.New(filesystem.Config{
webapp.Use("/old/public", filesystem.New(filesystem.Config{
Root: http.FS(embeddedFiles),
PathPrefix: "public",
PathPrefix: "/old/public",
Browse: true,
}))
*/
if len(app.config.ApiKeys) > 0 {
kaConfig, err := GetKeyAuthConfig(app.config.ApiKeys)
if err != nil || kaConfig == nil {
@@ -53,15 +53,18 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
webapp.Use(v2keyauth.New(*kaConfig))
}
/* webapp.Get("/", func(c *fiber.Ctx) error {
return c.Render("views/index", fiber.Map{
webapp.Get("/old", func(c *fiber.Ctx) error {
return c.Render("old/views/index", fiber.Map{
"Agents": pool.List(),
"AgentCount": len(pool.List()),
"Actions": len(services.AvailableActions),
"Connectors": len(services.AvailableConnectors),
})
})
*/
webapp.Get("/", func(c *fiber.Ctx) error {
return c.Redirect("/app")
})
webapp.Use("/app", filesystem.New(filesystem.Config{
Root: http.FS(reactUI),
PathPrefix: "react-ui/dist",
@@ -77,7 +80,7 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
return c.Send(indexHTML)
})
/* webapp.Get("/agents", func(c *fiber.Ctx) error {
webapp.Get("/old/agents", func(c *fiber.Ctx) error {
statuses := map[string]bool{}
for _, a := range pool.List() {
agent := pool.GetAgent(a)
@@ -87,20 +90,19 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
}
statuses[a] = !agent.Paused()
}
return c.Render("views/agents", fiber.Map{
return c.Render("old/views/agents", fiber.Map{
"Agents": pool.List(),
"Status": statuses,
})
})
*/
/* webapp.Get("/api/create", func(c *fiber.Ctx) error {
return c.Render("views/create", fiber.Map{
webapp.Get("/old/create", func(c *fiber.Ctx) error {
return c.Render("old/views/create", fiber.Map{
"Actions": services.AvailableActions,
"Connectors": services.AvailableConnectors,
"PromptBlocks": services.AvailableBlockPrompts,
})
})
*/
// Define a route for the GET method on the root path '/'
webapp.Get("/sse/:name", func(c *fiber.Ctx) error {
m := pool.GetManager(c.Params("name"))
@@ -112,42 +114,41 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
return nil
})
/*webapp.Get("/status/:name", func(c *fiber.Ctx) error {
webapp.Get("/old/status/:name", func(c *fiber.Ctx) error {
history := pool.GetStatusHistory(c.Params("name"))
if history == nil {
history = &state.Status{ActionResults: []types.ActionState{}}
}
// reverse history
return c.Render("views/status", fiber.Map{
return c.Render("old/views/status", fiber.Map{
"Name": c.Params("name"),
"History": Reverse(history.Results()),
})
})
webapp.Get("/notify/:name", app.Notify(pool))
webapp.Post("/chat/:name", app.Chat(pool))
*/
webapp.Get("/api/notify/:name", app.Notify(pool))
webapp.Post("/old/chat/:name", app.OldChat(pool))
webapp.Post("/api/agent/create", app.Create(pool))
webapp.Delete("/api/agent/:name", app.Delete(pool))
webapp.Put("/api/agent/:name/pause", app.Pause(pool))
webapp.Put("/api/agent/:name/start", app.Start(pool))
// Add JSON-based chat API endpoint
webapp.Post("/api/chat/:name", app.ChatAPI(pool))
webapp.Post("/api/chat/:name", app.Chat(pool))
conversationTracker := connectors.NewConversationTracker[string](app.config.ConversationStoreDuration)
webapp.Post("/v1/responses", app.Responses(pool, conversationTracker))
/* webapp.Get("/talk/:name", func(c *fiber.Ctx) error {
return c.Render("views/chat", fiber.Map{
webapp.Get("/old/talk/:name", func(c *fiber.Ctx) error {
return c.Render("old/views/chat", fiber.Map{
// "Character": agent.Character,
"Name": c.Params("name"),
})
})
webapp.Get("/settings/:name", func(c *fiber.Ctx) error {
webapp.Get("/old/settings/:name", func(c *fiber.Ctx) error {
status := false
for _, a := range pool.List() {
if a == c.Params("name") {
@@ -155,7 +156,7 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
}
}
return c.Render("views/settings", fiber.Map{
return c.Render("old/views/settings", fiber.Map{
"Name": c.Params("name"),
"Status": status,
"Actions": services.AvailableActions,
@@ -164,18 +165,18 @@ func (app *App) registerRoutes(pool *state.AgentPool, webapp *fiber.App) {
})
})
webapp.Get("/actions-playground", func(c *fiber.Ctx) error {
return c.Render("views/actions", fiber.Map{})
webapp.Get("/old/actions-playground", func(c *fiber.Ctx) error {
return c.Render("old/views/actions", fiber.Map{})
})
webapp.Get("/group-create", func(c *fiber.Ctx) error {
return c.Render("views/group-create", fiber.Map{
webapp.Get("/old/group-create", func(c *fiber.Ctx) error {
return c.Render("old/views/group-create", fiber.Map{
"Actions": services.AvailableActions,
"Connectors": services.AvailableConnectors,
"PromptBlocks": services.AvailableBlockPrompts,
})
})
*/
// New API endpoints for getting and updating agent configuration
webapp.Get("/api/agent/:name/config", app.GetAgentConfig(pool))
webapp.Put("/api/agent/:name/config", app.UpdateAgentConfig(pool))
@@ -295,7 +296,7 @@ func getApiKeyErrorHandler(opaqueErrors bool, apiKeys []string) fiber.ErrorHandl
if opaqueErrors {
return ctx.SendStatus(401)
}
return ctx.Status(401).Render("views/login", fiber.Map{})
return ctx.Status(401).Render("old/views/login", fiber.Map{})
}
if opaqueErrors {
return ctx.SendStatus(500)