server

package
v0.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2026 License: MIT Imports: 60 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthInfo

type AuthInfo struct {
	UserID   int64  `json:"user_id"`
	Username string `json:"username"`
	Role     string `json:"role"`
	IsAdmin  bool   `json:"is_admin"`
}

AuthInfo carries authenticated user data through request context.

func UserFromContext

func UserFromContext(ctx context.Context) *AuthInfo

UserFromContext extracts the AuthInfo from a request context. Returns nil if the user is not authenticated.

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server provides HTTP handlers for the admin API and templ-rendered pages.

func New

func New(store config.Store, authStore auth.AuthStore, engine *auth.PolicyEngine, mem memory.Provider, db *sql.DB, linkCodes *auth.LinkCodeStore, poolManager *agent.PoolManager, pluginHost *pluginhost.Host) *Server

New creates an admin server with all API routes mounted. The linkCodes store is shared with channel bots so codes generated in the admin panel can be consumed by channel handlers.

func (*Server) AssignAgentUser

func (s *Server) AssignAgentUser(w http.ResponseWriter, r *http.Request, id string)

func (*Server) ChangePassword

func (s *Server) ChangePassword(w http.ResponseWriter, r *http.Request)

ChangePassword handles PUT /api/auth/profile/password.

func (*Server) CreateAgent

func (s *Server) CreateAgent(w http.ResponseWriter, r *http.Request)

func (*Server) CreateChannel

func (s *Server) CreateChannel(w http.ResponseWriter, r *http.Request)

func (*Server) CreateFeed

func (s *Server) CreateFeed(w http.ResponseWriter, r *http.Request)

func (*Server) CreateProvider

func (s *Server) CreateProvider(w http.ResponseWriter, r *http.Request)

func (*Server) CreateSchedulerJob

func (s *Server) CreateSchedulerJob(w http.ResponseWriter, r *http.Request)

func (*Server) CreateSession

func (s *Server) CreateSession(w http.ResponseWriter, r *http.Request)

func (*Server) CreateSkill

func (s *Server) CreateSkill(w http.ResponseWriter, r *http.Request)

func (*Server) CredentialsService

func (s *Server) CredentialsService() *credentials.Service

CredentialsService returns the shared credentials service. Used by callers that need to wire in the runner invalidator or access the credentials tool from outside the admin package.

func (*Server) DeleteAgent

func (s *Server) DeleteAgent(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteAgentSkill

func (s *Server) DeleteAgentSkill(w http.ResponseWriter, r *http.Request, id string, skillId string)

func (*Server) DeleteAgentSkillFile

func (s *Server) DeleteAgentSkillFile(w http.ResponseWriter, r *http.Request, id string, skillId string, params apiserver.DeleteAgentSkillFileParams)

func (*Server) DeleteArticle

func (s *Server) DeleteArticle(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteAuthUserIdentity

func (s *Server) DeleteAuthUserIdentity(w http.ResponseWriter, r *http.Request, id int64, identityId int64)

DeleteAuthUserIdentity handles DELETE /api/auth/users/{id}/identities/{identityId}.

func (*Server) DeleteChannel

func (s *Server) DeleteChannel(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteFeed

func (s *Server) DeleteFeed(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteProfileMemory

func (s *Server) DeleteProfileMemory(w http.ResponseWriter, r *http.Request, agentId string)

DeleteProfileMemory handles DELETE /api/auth/profile/memories/{agentId}.

func (*Server) DeleteProfileSkill

func (s *Server) DeleteProfileSkill(w http.ResponseWriter, r *http.Request, skillId string)

func (*Server) DeleteProfileSkillFile

func (s *Server) DeleteProfileSkillFile(w http.ResponseWriter, r *http.Request, skillId string, params apiserver.DeleteProfileSkillFileParams)

func (*Server) DeleteProvider

func (s *Server) DeleteProvider(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteSchedulerJob

func (s *Server) DeleteSchedulerJob(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteSkill

func (s *Server) DeleteSkill(w http.ResponseWriter, r *http.Request, id string)

func (*Server) DeleteSkillFile

func (s *Server) DeleteSkillFile(w http.ResponseWriter, r *http.Request, id string, params apiserver.DeleteSkillFileParams)

DeleteSkillFile removes a single file under a skill (admin-only route).

func (*Server) DeleteUserMemory

func (s *Server) DeleteUserMemory(w http.ResponseWriter, r *http.Request, id int64, agentId string)

func (*Server) DeleteVaultEntry

func (s *Server) DeleteVaultEntry(w http.ResponseWriter, r *http.Request, name string)

DeleteVaultEntry handles DELETE /api/auth/profile/vault/{name}.

func (*Server) DisconnectOAuth

func (s *Server) DisconnectOAuth(w http.ResponseWriter, r *http.Request, provider string)

DisconnectOAuth handles DELETE /api/auth/profile/oauth/{provider}.

func (*Server) DuplicateBuiltinSkillToAgent

func (s *Server) DuplicateBuiltinSkillToAgent(w http.ResponseWriter, r *http.Request, id string, skillId string)

func (*Server) FetchProviderModels

func (s *Server) FetchProviderModels(w http.ResponseWriter, r *http.Request, id string)

func (*Server) GenerateLinkCode

func (s *Server) GenerateLinkCode(w http.ResponseWriter, r *http.Request)

GenerateLinkCode handles POST /api/auth/profile/link-code.

func (*Server) GetAgent

func (s *Server) GetAgent(w http.ResponseWriter, r *http.Request, id string)

func (*Server) GetAgentSkill

func (s *Server) GetAgentSkill(w http.ResponseWriter, r *http.Request, id string, skillId string)

func (*Server) GetAgentSkillFile

func (s *Server) GetAgentSkillFile(w http.ResponseWriter, r *http.Request, id string, skillId string, params apiserver.GetAgentSkillFileParams)

func (*Server) GetArticle

func (s *Server) GetArticle(w http.ResponseWriter, r *http.Request, id string, params apiserver.GetArticleParams)

func (*Server) GetAuthUser

func (s *Server) GetAuthUser(w http.ResponseWriter, r *http.Request, id int64)

GetAuthUser handles GET /api/auth/users/{id}.

func (*Server) GetBuiltinResource

func (s *Server) GetBuiltinResource(w http.ResponseWriter, r *http.Request, kindStr string, id string)

func (*Server) GetChannel

func (s *Server) GetChannel(w http.ResponseWriter, r *http.Request, id string)

func (*Server) GetDigest

func (s *Server) GetDigest(w http.ResponseWriter, r *http.Request)

func (*Server) GetFeed

func (s *Server) GetFeed(w http.ResponseWriter, r *http.Request, id string)

func (*Server) GetMe

func (s *Server) GetMe(w http.ResponseWriter, r *http.Request)

GetMe handles GET /api/auth/me.

func (*Server) GetOAuthConnected

func (s *Server) GetOAuthConnected(w http.ResponseWriter, r *http.Request, provider string)

GetOAuthConnected handles GET /api/auth/profile/oauth/{provider}/connected.

func (*Server) GetPluginConfig

func (s *Server) GetPluginConfig(w http.ResponseWriter, r *http.Request, kind string, name string)

func (*Server) GetPluginConfigSchema

func (s *Server) GetPluginConfigSchema(w http.ResponseWriter, r *http.Request, kind string, name string)

func (*Server) GetPluginStatus

func (s *Server) GetPluginStatus(w http.ResponseWriter, r *http.Request, kind string, name string)

func (*Server) GetProfileSkill

func (s *Server) GetProfileSkill(w http.ResponseWriter, r *http.Request, skillId string)

func (*Server) GetProfileSkillFile

func (s *Server) GetProfileSkillFile(w http.ResponseWriter, r *http.Request, skillId string, params apiserver.GetProfileSkillFileParams)

func (*Server) GetProvider

func (s *Server) GetProvider(w http.ResponseWriter, r *http.Request, id string)

func (*Server) GetSession

func (s *Server) GetSession(w http.ResponseWriter, r *http.Request, sessionID string)

func (*Server) GetSessionMessages

func (s *Server) GetSessionMessages(w http.ResponseWriter, r *http.Request, sessionID string, params apiserver.GetSessionMessagesParams)

func (*Server) GetSessionSystemPrompt

func (s *Server) GetSessionSystemPrompt(w http.ResponseWriter, r *http.Request, sessionID string)

func (*Server) GetSkill

func (s *Server) GetSkill(w http.ResponseWriter, r *http.Request, id string)

func (*Server) GetSkillFile

func (s *Server) GetSkillFile(w http.ResponseWriter, r *http.Request, id string, params apiserver.GetSkillFileParams)

func (*Server) Handler

func (s *Server) Handler() http.Handler

Handler returns the HTTP handler with CORS, JSON, and auth middleware applied.

func (*Server) InstallAgentSkill

func (s *Server) InstallAgentSkill(w http.ResponseWriter, r *http.Request, id string)

func (*Server) InstallProfileSkill

func (s *Server) InstallProfileSkill(w http.ResponseWriter, r *http.Request)

func (*Server) InstallSkill

func (s *Server) InstallSkill(w http.ResponseWriter, r *http.Request)

InstallSkill handles POST /api/skills/install. It delegates to skillstool.InstallToStore to fetch and store the skill. "Actually install from a real GitHub repo" is integration-level and should be tested manually — unit tests cover only validation and auth.

func (*Server) LinkCodes

func (s *Server) LinkCodes() *auth.LinkCodeStore

LinkCodes returns the link code store for use by channel handlers.

func (*Server) ListAgentSkills

func (s *Server) ListAgentSkills(w http.ResponseWriter, r *http.Request, id string)

func (*Server) ListAgentUsers

func (s *Server) ListAgentUsers(w http.ResponseWriter, r *http.Request, id string)

func (*Server) ListAgents

func (s *Server) ListAgents(w http.ResponseWriter, r *http.Request)

func (*Server) ListArticles

func (s *Server) ListArticles(w http.ResponseWriter, r *http.Request, params apiserver.ListArticlesParams)

func (*Server) ListAuthUserAgents

func (s *Server) ListAuthUserAgents(w http.ResponseWriter, r *http.Request, id int64)

ListAuthUserAgents handles GET /api/auth/users/{id}/agents.

func (*Server) ListAuthUsers

func (s *Server) ListAuthUsers(w http.ResponseWriter, r *http.Request)

ListAuthUsers handles GET /api/auth/users.

func (*Server) ListBuiltinResources

func (s *Server) ListBuiltinResources(w http.ResponseWriter, r *http.Request, kindStr string)

func (*Server) ListChannels

func (s *Server) ListChannels(w http.ResponseWriter, r *http.Request)

func (*Server) ListFeedEntries

func (s *Server) ListFeedEntries(w http.ResponseWriter, r *http.Request, feedId string, params apiserver.ListFeedEntriesParams)

func (*Server) ListFeeds

func (s *Server) ListFeeds(w http.ResponseWriter, r *http.Request, params apiserver.ListFeedsParams)

func (*Server) ListManifestPlugins

func (s *Server) ListManifestPlugins(w http.ResponseWriter, r *http.Request)

func (*Server) ListModels

func (s *Server) ListModels(w http.ResponseWriter, r *http.Request)

ListModels returns enabled models from provider config + fetched cache, filtered to only include models whose provider instance is enabled. No provider API calls — reads only from the DB and ~/.anna/cache/models.json.

func (*Server) ListOAuthProviders

func (s *Server) ListOAuthProviders(w http.ResponseWriter, r *http.Request)

ListOAuthProviders handles GET /api/auth/profile/oauth/providers.

func (*Server) ListPlugins

func (s *Server) ListPlugins(w http.ResponseWriter, r *http.Request)

func (*Server) ListProfileIdentities

func (s *Server) ListProfileIdentities(w http.ResponseWriter, r *http.Request)

ListProfileIdentities handles GET /api/auth/profile/identities.

func (*Server) ListProfileMemories

func (s *Server) ListProfileMemories(w http.ResponseWriter, r *http.Request)

ListProfileMemories handles GET /api/auth/profile/memories.

func (*Server) ListProfileSkills

func (s *Server) ListProfileSkills(w http.ResponseWriter, r *http.Request)

func (*Server) ListProviderModels

func (s *Server) ListProviderModels(w http.ResponseWriter, r *http.Request, id string)

func (*Server) ListProviderTypes

func (s *Server) ListProviderTypes(w http.ResponseWriter, r *http.Request)

func (*Server) ListProviders

func (s *Server) ListProviders(w http.ResponseWriter, r *http.Request)

func (*Server) ListPublicChannels

func (s *Server) ListPublicChannels(w http.ResponseWriter, r *http.Request)

func (*Server) ListSchedulerJobRuns

func (s *Server) ListSchedulerJobRuns(w http.ResponseWriter, r *http.Request, id string)

func (*Server) ListSchedulerJobs

func (s *Server) ListSchedulerJobs(w http.ResponseWriter, r *http.Request)

func (*Server) ListSessions

func (s *Server) ListSessions(w http.ResponseWriter, r *http.Request, params apiserver.ListSessionsParams)

func (*Server) ListSkills

func (s *Server) ListSkills(w http.ResponseWriter, r *http.Request)

func (*Server) ListTools

func (s *Server) ListTools(w http.ResponseWriter, r *http.Request)

func (*Server) ListUserMemories

func (s *Server) ListUserMemories(w http.ResponseWriter, r *http.Request, id int64)

func (*Server) ListVaultEntries

func (s *Server) ListVaultEntries(w http.ResponseWriter, r *http.Request)

ListVaultEntries handles GET /api/auth/profile/vault.

func (*Server) Login

func (s *Server) Login(w http.ResponseWriter, r *http.Request)

Login handles POST /api/auth/login.

func (*Server) Logout

func (s *Server) Logout(w http.ResponseWriter, r *http.Request)

Logout handles POST /api/auth/logout.

func (*Server) OauthCallback

func (s *Server) OauthCallback(w http.ResponseWriter, r *http.Request, provider string, params apiserver.OauthCallbackParams)

OauthCallback handles GET /api/auth/profile/oauth/{provider}/callback. This is intentionally a pass-through to the unexported helper so the generated interface signature is satisfied.

func (*Server) PollFeed

func (s *Server) PollFeed(w http.ResponseWriter, r *http.Request, id string, params apiserver.PollFeedParams)

func (*Server) PollOAuthFlow

func (s *Server) PollOAuthFlow(w http.ResponseWriter, r *http.Request, provider string, flowID string)

PollOAuthFlow handles GET /api/auth/profile/oauth/{provider}/status/{flowID}.

func (*Server) PollWeixinQRStatus

func (s *Server) PollWeixinQRStatus(w http.ResponseWriter, r *http.Request, params apiserver.PollWeixinQRStatusParams)

PollWeixinQRStatus polls the QR code scan status. On confirmed, saves channel credentials to DB and creates an auth identity linking the current user to the weixin account. GET /api/channels/weixin/qr/status?qrcode=...

func (*Server) Register

func (s *Server) Register(w http.ResponseWriter, r *http.Request)

Register handles POST /api/auth/register.

func (*Server) RemoveAgentUser

func (s *Server) RemoveAgentUser(w http.ResponseWriter, r *http.Request, id string, userId int64)

func (*Server) SaveArticle

func (s *Server) SaveArticle(w http.ResponseWriter, r *http.Request)

func (*Server) SaveManifestPlugins

func (s *Server) SaveManifestPlugins(w http.ResponseWriter, r *http.Request)

func (*Server) SearchSkills

func (s *Server) SearchSkills(w http.ResponseWriter, r *http.Request, params apiserver.SearchSkillsParams)

SearchSkills handles GET /api/skills/search?q=<query>&limit=<n>. It queries mcphub for skills matching the query. Errors from the upstream search API are returned as 502 (bad gateway) since they are not our fault.

func (*Server) SendSessionMessage

func (s *Server) SendSessionMessage(w http.ResponseWriter, r *http.Request, sessionID string)

func (*Server) SetProfileMemory

func (s *Server) SetProfileMemory(w http.ResponseWriter, r *http.Request, agentId string)

SetProfileMemory handles PUT /api/auth/profile/memories/{agentId}.

func (*Server) SetProfileSoul

func (s *Server) SetProfileSoul(w http.ResponseWriter, r *http.Request, agentId string)

SetProfileSoul handles PUT /api/auth/profile/soul/{agentId}.

func (*Server) SetSchedulerService

func (s *Server) SetSchedulerService(svc *scheduler.Service)

SetSchedulerService wires the live scheduler service into the admin server. When set, create and delete job handlers go through the service (live + DB). If not set, those handlers write DB-only.

func (*Server) SetTokenService

func (s *Server) SetTokenService(svc *auth.TokenService)

SetTokenService wires bearer token authentication into the admin server.

func (*Server) SetUserMemory

func (s *Server) SetUserMemory(w http.ResponseWriter, r *http.Request, id int64, agentId string)

func (*Server) SetVaultEntry

func (s *Server) SetVaultEntry(w http.ResponseWriter, r *http.Request, name string)

SetVaultEntry handles PUT /api/auth/profile/vault/{name}.

func (*Server) SetVaultRecipient

func (s *Server) SetVaultRecipient(r *age.X25519Recipient)

SetVaultRecipient sets the master age recipient so that new users created via web registration receive an age keypair. Call before serving requests. If not set (nil), vault key generation is skipped for new users.

func (*Server) SetVaultService

func (s *Server) SetVaultService(svc *vault.Service)

SetVaultService wires the vault service into the admin server. Call before serving requests. If not set (nil), vault API endpoints return 503 Service Unavailable.

func (*Server) StartOAuthFlow

func (s *Server) StartOAuthFlow(w http.ResponseWriter, r *http.Request, provider string)

StartOAuthFlow handles POST /api/auth/profile/oauth/{provider}/start.

func (*Server) StartWeixinQR

func (s *Server) StartWeixinQR(w http.ResponseWriter, r *http.Request)

StartWeixinQR initiates the WeChat QR login flow by requesting a QR code from the iLink API. Any authenticated user can call this. POST /api/channels/weixin/qr

func (*Server) SyncManifestPlugins

func (s *Server) SyncManifestPlugins(w http.ResponseWriter, r *http.Request)

func (*Server) TogglePlugin

func (s *Server) TogglePlugin(w http.ResponseWriter, r *http.Request, kind string, name string)

func (*Server) TriggerSchedulerJob

func (s *Server) TriggerSchedulerJob(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UnlinkProfileIdentity

func (s *Server) UnlinkProfileIdentity(w http.ResponseWriter, r *http.Request, id int64)

UnlinkProfileIdentity handles DELETE /api/auth/profile/identities/{id}.

func (*Server) UpdateAgent

func (s *Server) UpdateAgent(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateAgentSkill

func (s *Server) UpdateAgentSkill(w http.ResponseWriter, r *http.Request, id string, skillId string)

func (*Server) UpdateArticle

func (s *Server) UpdateArticle(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateAuthUserActive

func (s *Server) UpdateAuthUserActive(w http.ResponseWriter, r *http.Request, id int64)

UpdateAuthUserActive handles PUT /api/auth/users/{id}/active.

func (*Server) UpdateAuthUserAgents

func (s *Server) UpdateAuthUserAgents(w http.ResponseWriter, r *http.Request, id int64)

UpdateAuthUserAgents handles PUT /api/auth/users/{id}/agents.

func (*Server) UpdateAuthUserRole

func (s *Server) UpdateAuthUserRole(w http.ResponseWriter, r *http.Request, id int64)

UpdateAuthUserRole handles PUT /api/auth/users/{id}/role.

func (*Server) UpdateChannel

func (s *Server) UpdateChannel(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateFeed

func (s *Server) UpdateFeed(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateFeedEntry

func (s *Server) UpdateFeedEntry(w http.ResponseWriter, r *http.Request, feedId string, id string)

func (*Server) UpdatePluginConfig

func (s *Server) UpdatePluginConfig(w http.ResponseWriter, r *http.Request, kind string, name string)

func (*Server) UpdateProfileSkill

func (s *Server) UpdateProfileSkill(w http.ResponseWriter, r *http.Request, skillId string)

func (*Server) UpdateProvider

func (s *Server) UpdateProvider(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateSchedulerJob

func (s *Server) UpdateSchedulerJob(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateSkill

func (s *Server) UpdateSkill(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UpdateUserDefaultAgent

func (s *Server) UpdateUserDefaultAgent(w http.ResponseWriter, r *http.Request, id int64)

func (*Server) UpdateUserNotifyIdentity

func (s *Server) UpdateUserNotifyIdentity(w http.ResponseWriter, r *http.Request, id int64)

func (*Server) UploadAgentSkill

func (s *Server) UploadAgentSkill(w http.ResponseWriter, r *http.Request, id string)

func (*Server) UploadProfileSkill

func (s *Server) UploadProfileSkill(w http.ResponseWriter, r *http.Request)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL