---
id: plugin.lumi_ai
title: Lumi AI
scope: plugins
status: active
priority: 10
visibility: user
category: Plugin
tags: plugin, lumi_ai
generated: true
editable: false
---
# Lumi AI
Managed local AI provider and scoped WebUI assistant for Lumi.
## Metadata
Plugin ID: lumi_ai
Version: 0.8.5
Default state: enabled
## Web Routes
- /plugins/lumi_ai
- GET /plugins/lumi_ai
- POST /plugins/lumi_ai/settings
- POST /plugins/lumi_ai/download/runtime
- POST /plugins/lumi_ai/download/model/:id
- GET /plugins/lumi_ai/api/status
- GET /plugins/lumi_ai/api/downloads
- GET /plugins/lumi_ai/api/gpu-capacity
- GET /plugins/lumi_ai/api/assistant-diagnostics
- GET /plugins/lumi_ai/api/assistant/visibility-debug
- POST /plugins/lumi_ai/api/assistant/visibility-debug
- POST /plugins/lumi_ai/repo-index/refresh
- POST /plugins/lumi_ai/access-control
- POST /plugins/lumi_ai/models/:id/delete
- POST /plugins/lumi_ai/models/:id/verify
- POST /plugins/lumi_ai/storage/cleanup
- GET /plugins/lumi_ai/logs/:name
- GET /plugins/lumi_ai/logs/:name/download
- POST /plugins/lumi_ai/logs/:name/delete
- POST /plugins/lumi_ai/runtime/:action
- GET /plugins/lumi_ai/diagnostics/download
- GET /plugins/lumi_ai/work-history/:id/export
- POST /plugins/lumi_ai/assistant/message
- POST /plugins/lumi_ai/assistant/feedback
- GET /plugins/lumi_ai/assistant/jobs/:id
- POST /plugins/lumi_ai/assistant/jobs/:id/cancel
- POST /plugins/lumi_ai/assistant/jobs/:id/soft-timeout
- POST /plugins/lumi_ai/assistant/test
- POST /plugins/lumi_ai/assistant/confirm
- POST /plugins/lumi_ai/assistant/cancel
- GET /plugins/lumi_ai/api/tools
- GET /plugins/lumi_ai/api/tools-diagnostics
- GET /plugins/lumi_ai/api/tools/:id/readme
- GET /plugins/lumi_ai/api/tools/:id/settings
- POST /plugins/lumi_ai/api/tools/:id/settings
- POST /plugins/lumi_ai/api/tools/:id/settings/reset
- GET /plugins/lumi_ai/tools/:id/assets/*
- POST /plugins/lumi_ai/tools/:id/enable
- POST /plugins/lumi_ai/tools/:id/disable
- POST /plugins/lumi_ai/tools/:id/update
- POST /plugins/lumi_ai/tools/:id/delete
- GET /plugins/lumi_ai/improvement_center
- POST /plugins/lumi_ai/improvement_center/settings
- POST /plugins/lumi_ai/improvement_center/reviews/:id
- POST /plugins/lumi_ai/improvement_center/reviews/:id/delete
- POST /plugins/lumi_ai/improvement_center/reviews/:id/archive
- POST /plugins/lumi_ai/improvement_center/reviews/:id/implement
- POST /plugins/lumi_ai/improvement_center/corrections/save
- POST /plugins/lumi_ai/improvement_center/corrections/:id
- POST /plugins/lumi_ai/improvement_center/corrections/:id/delete
- POST /plugins/lumi_ai/improvement_center/evals
- POST /plugins/lumi_ai/improvement_center/evals/:id/delete
- POST /plugins/lumi_ai/improvement_center/evals/run
- POST /plugins/lumi_ai/improvement_center/exports/:format
## Route Reference
### MOUNT /plugins/lumi_ai

- Purpose: Mounts the plugin router at this base WebUI path.
- Inputs: No request parameters detected by static analysis.
- Response format: Plugin router mount point.
- Access: Access is controlled by the mount options and individual plugin routes.
- Side effects: No direct route action; child routes handle requests.
- Limits/notes: Mount metadata is inferred from static source scanning.

### GET /plugins/lumi_ai

- Purpose: Renders or serves the lumi_ai plugin page.
- Inputs: query: `access_page`, `logs_page`, `metrics_page`, `slow_page`, `work_page`
- Response format: HTML page rendered from an EJS view
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations.

### POST /plugins/lumi_ai/settings

- Purpose: Processes the lumi_ai plugin action for settings.
- Inputs: body: `admin_bypass_rate_limit`, `admin_custom`, `allow_deterministic_help_shortcuts`, `allow_moderator_code_help`, `allow_moderators_to_review_responses`, `allowed_support_domains`, `allowed_topics`, `answer_style`, `assistant_debug_logging`, `assistant_enabled`, `batch_size`, `clarification_behavior`, `command_denied_message`, `command_enabled`, `command_platform_discord`, `command_platform_kick`, `command_platform_other`, `command_platform_twitch`, `command_platform_youtube`, `command_role_admins`, `command_role_mods`, `command_role_users`, `command_triggers`, `command_unavailable_message`, `community_tone`, `concurrency`, `context_size`, `corrections_enabled`, `enabled`, `gate_cache_ttl_seconds`, `gate_context_size`, `gate_force_prefix`, `gate_high_confidence_threshold`, `gate_main_llm_threshold`, `gate_model_id`, `gate_predefined_enabled`, `gate_repeat_force_window_seconds`, `gate_similarity_threshold`, `gate_threads`, `gate_timeout_ms`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/download/runtime

- Purpose: Processes the lumi_ai plugin action for download runtime.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/download/model/:id

- Purpose: Processes the lumi_ai plugin action for download model id.
- Inputs: path params: `id`; body: `override_compatibility`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### GET /plugins/lumi_ai/api/status

- Purpose: Renders or serves the lumi_ai plugin page for api status.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/downloads

- Purpose: Renders or serves the lumi_ai plugin page for api downloads.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/gpu-capacity

- Purpose: Renders or serves the lumi_ai plugin page for api gpu capacity.
- Inputs: query: `context_size`, `intent_percent`, `model_id`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/assistant-diagnostics

- Purpose: Renders or serves the lumi_ai plugin page for api assistant diagnostics.
- Inputs: No request parameters detected by static analysis.
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/assistant/visibility-debug

- Purpose: Renders or serves the lumi_ai plugin page for api assistant visibility debug.
- Inputs: No request parameters detected by static analysis.
- Response format: HTML or data response; exact format was not detected statically.
- Access: No explicit access guard detected in the route handler; check surrounding router/mount middleware.
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_ai/api/assistant/visibility-debug

- Purpose: Processes the lumi_ai plugin action for api assistant visibility debug.
- Inputs: No request parameters detected by static analysis.
- Response format: Form/action response; exact format was not detected statically.
- Access: No explicit access guard detected in the route handler; check surrounding router/mount middleware.
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_ai/repo-index/refresh

- Purpose: Processes the lumi_ai plugin action for repo index refresh.
- Inputs: body: `source`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/access-control

- Purpose: Processes the lumi_ai plugin action for access control.
- Inputs: body: `action`, `reason`, `silent`, `timeout_until`, `user_id`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/models/:id/delete

- Purpose: Processes the lumi_ai plugin action for models id delete.
- Inputs: path params: `id`; body: `confirm`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/models/:id/verify

- Purpose: Processes the lumi_ai plugin action for models id verify.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/storage/cleanup

- Purpose: Processes the lumi_ai plugin action for storage cleanup.
- Inputs: body: `categories`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### GET /plugins/lumi_ai/logs/:name

- Purpose: Renders or serves the lumi_ai plugin page for logs name.
- Inputs: path params: `name`
- Response format: HTML page rendered from an EJS view
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page.

### GET /plugins/lumi_ai/logs/:name/download

- Purpose: Renders or serves the lumi_ai plugin page for logs name download.
- Inputs: path params: `name`
- Response format: file download
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page.

### POST /plugins/lumi_ai/logs/:name/delete

- Purpose: Processes the lumi_ai plugin action for logs name delete.
- Inputs: path params: `name`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/runtime/:action

- Purpose: Processes the lumi_ai plugin action for runtime action.
- Inputs: path params: `action`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### GET /plugins/lumi_ai/diagnostics/download

- Purpose: Renders or serves the lumi_ai plugin page for diagnostics download.
- Inputs: No request parameters detected by static analysis.
- Response format: file download
- Access: admin access expected; logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations.

### GET /plugins/lumi_ai/work-history/:id/export

- Purpose: Renders or serves the lumi_ai plugin page for work history id export.
- Inputs: path params: `id`
- Response format: plain or HTML response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler.

### POST /plugins/lumi_ai/assistant/message

- Purpose: Processes the lumi_ai plugin action for assistant message.
- Inputs: body: `history`, `message`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/assistant/feedback

- Purpose: Processes the lumi_ai plugin action for assistant feedback.
- Inputs: body: `assistant_answer`, `context_snapshot`, `feedback_kind`, `feedback_tag`, `model`, `optional_correction`, `rating`, `route_used`, `timestamp`, `user_message`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### GET /plugins/lumi_ai/assistant/jobs/:id

- Purpose: Renders or serves the lumi_ai plugin page for assistant jobs id.
- Inputs: path params: `id`
- Response format: JSON response
- Access: logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations.

### POST /plugins/lumi_ai/assistant/jobs/:id/cancel

- Purpose: Processes the lumi_ai plugin action for assistant jobs id cancel.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/assistant/jobs/:id/soft-timeout

- Purpose: Processes the lumi_ai plugin action for assistant jobs id soft timeout.
- Inputs: path params: `id`
- Response format: JSON response
- Access: logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/assistant/test

- Purpose: Processes the lumi_ai plugin action for assistant test.
- Inputs: body: `allow_tools`, `message`, `origin`, `role`, `show_raw_output`, `show_raw_prompt`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/assistant/confirm

- Purpose: Processes the lumi_ai plugin action for assistant confirm.
- Inputs: body: `id`
- Response format: JSON response
- Access: logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/assistant/cancel

- Purpose: Processes the lumi_ai plugin action for assistant cancel.
- Inputs: body: `id`
- Response format: JSON response
- Access: logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### GET /plugins/lumi_ai/api/tools

- Purpose: Renders or serves the lumi_ai plugin page for api tools.
- Inputs: query: `refresh`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/tools-diagnostics

- Purpose: Renders or serves the lumi_ai plugin page for api tools diagnostics.
- Inputs: query: `origin`, `role`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/tools/:id/readme

- Purpose: Renders or serves the lumi_ai plugin page for api tools id readme.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/api/tools/:id/settings

- Purpose: Renders or serves the lumi_ai plugin page for api tools id settings.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_ai/api/tools/:id/settings

- Purpose: Processes the lumi_ai plugin action for api tools id settings.
- Inputs: path params: `id`; body: full submitted body is passed to a helper; exact fields are defined by the matching form/service
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### POST /plugins/lumi_ai/api/tools/:id/settings/reset

- Purpose: Processes the lumi_ai plugin action for api tools id settings reset.
- Inputs: path params: `id`
- Response format: JSON response
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion. API consumers should expect JSON unless the response format says otherwise.

### GET /plugins/lumi_ai/tools/:id/assets/*

- Purpose: Renders or serves the lumi_ai plugin page for tools id assets *.
- Inputs: path params: `id`
- Response format: static file response
- Access: admin access expected; logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations.

### POST /plugins/lumi_ai/tools/:id/enable

- Purpose: Processes the lumi_ai plugin action for tools id enable.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/tools/:id/disable

- Purpose: Processes the lumi_ai plugin action for tools id disable.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/tools/:id/update

- Purpose: Processes the lumi_ai plugin action for tools id update.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/tools/:id/delete

- Purpose: Processes the lumi_ai plugin action for tools id delete.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: admin access expected; logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### GET /plugins/lumi_ai/improvement_center

- Purpose: Renders or serves the lumi_ai plugin page for improvement center.
- Inputs: query: `correction_page`, `eval_page`, `history_page`, `history_q`, `history_status`, `review_page`
- Response format: HTML page rendered from an EJS view
- Access: logged-in session required or used
- Side effects: Usually read-only.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler.

### POST /plugins/lumi_ai/improvement_center/settings

- Purpose: Processes the lumi_ai plugin action for improvement center settings.
- Inputs: body: `allow_moderators_to_review_responses`, `corrections_enabled`, `trusted_moderator_reviewers`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/reviews/:id

- Purpose: Processes the lumi_ai plugin action for improvement center reviews id.
- Inputs: path params: `id`; body: full submitted body is passed to a helper; exact fields are defined by the matching form/service
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/reviews/:id/delete

- Purpose: Processes the lumi_ai plugin action for improvement center reviews id delete.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/reviews/:id/archive

- Purpose: Processes the lumi_ai plugin action for improvement center reviews id archive.
- Inputs: path params: `id`; body: `review_notes`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/reviews/:id/implement

- Purpose: Processes the lumi_ai plugin action for improvement center reviews id implement.
- Inputs: path params: `id`; body: `corrected_answer`, `enabled`, `expected_link`, `explicitly_safe`, `forbidden_behavior`, `min_role`, `notes`, `permission_origin`, `review_notes`, `target`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/corrections/save

- Purpose: Processes the lumi_ai plugin action for improvement center corrections save.
- Inputs: No request parameters detected by static analysis.
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/corrections/:id

- Purpose: Processes the lumi_ai plugin action for improvement center corrections id.
- Inputs: path params: `id`; body: `action`, `enabled`, `expected_link`, `explicitly_safe`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: writes or mutates server-side state
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Input length or numeric bounds are enforced by helper functions in the handler. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/corrections/:id/delete

- Purpose: Processes the lumi_ai plugin action for improvement center corrections id delete.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/evals

- Purpose: Processes the lumi_ai plugin action for improvement center evals.
- Inputs: body: `expected_link`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: Consumes submitted data; state mutation happens in called helpers if present.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/evals/:id/delete

- Purpose: Processes the lumi_ai plugin action for improvement center evals id delete.
- Inputs: path params: `id`
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/evals/run

- Purpose: Processes the lumi_ai plugin action for improvement center evals run.
- Inputs: No request parameters detected by static analysis.
- Response format: Form/action response; exact format was not detected statically.
- Access: logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.

### POST /plugins/lumi_ai/improvement_center/exports/:format

- Purpose: Processes the lumi_ai plugin action for improvement center exports format.
- Inputs: path params: `format`
- Response format: file download
- Access: logged-in session required or used
- Side effects: Action route; side effects were not detected statically.
- Limits/notes: Generated from static route source analysis; confirm exact behavior in the handler before changing integrations. Errors are caught and usually returned as a flash message, JSON error, or error page. Most non-API POST routes are browser form submissions and usually redirect after completion.
## Commands
- No plugin command triggers detected.
## Source
Plugin folder: plugins/lumi_ai
