> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genesiscomputing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# System Manager Tools

> Administer platform-wide settings, health, maintenance, and configuration from a single control surface.

## **Overview**

### **Tool Name**

```json theme={null}
system_manager_tools
```

### **Purpose**

The **system\_manager\_tools** group centralizes platform administration plus prior-conversation search, thread export, agent and mission export/import workflows, thread cost analysis, and thread memory recovery. Generate chat titles automatically, search prior conversations, read thread history, analyze cache-aware thread costs, export thread packages and reusable ZIP bundles, re-import agent and mission bundles when needed, compress long-running threads, recover compressed artifacts, check overall health, toggle maintenance mode, adjust configuration, perform safe cleanups, and restart components when required. Most administrative actions are routed through a single entrypoint for predictable governance.

### **Key Features & Functions**

<Steps>
  <Step title="Auto-Title Conversations" icon="comment-dots">
    Generate concise chat titles that reflect conversation context.
  </Step>

  <Step title="Search Prior Conversations" icon="search">
    Search prior threads across one or more bots and read clean thread history by default, or include tool requests and outputs when execution details matter.
  </Step>

  <Step title="Export Threads, Agents, and Missions" icon="file-export">
    Save thread, agent, and mission packages into `bot_git` repos with download-ready links for handoff or backup, then re-import agent and mission ZIP bundles later.
  </Step>

  <Step title="Thread Cost Analysis" icon="calculator">
    Calculate cache-aware thread token and cost breakdowns, including optional child-thread rollups and pricing overrides.
  </Step>

  <Step title="Thread Compression & Recovery" icon="box-archive">
    Compress long-running threads and recover summarized tool results or logically hidden messages without rerunning prior tools.
  </Step>

  <Step title="Health & Status" icon="heartbeat">
    Retrieve real-time system status with optional connectivity checks.
  </Step>

  <Step title="Maintenance Control" icon="tools">
    Enable or disable maintenance mode with messages and timing.
  </Step>

  <Step title="Configuration Management" icon="sliders-h">
    Get, set, update, or reset system configuration keys safely.
  </Step>

  <Step title="Cleanup Operations" icon="broom">
    Remove temporary files, old logs, or expired sessions with dry-run support.
  </Step>

  <Step title="Targeted Restarts" icon="redo-alt">
    Restart the platform or specific components with explicit confirmation.
  </Step>

  <Step title="Audit & Logging" icon="clipboard-list">
    Keep an administrative trail of system actions and outcomes.
  </Step>

  <Step title="Organization Health Audit" icon="clipboard-check">
    Start a background, read-only review of the deployment's skills, blueprints,
    and live agent activations through the [GenesisAuditor](/docs/Genesis-Data-Agents/GenesisAuditor-Agent).
  </Step>
</Steps>

<Tip>
  Check **SYSTEM\_STATUS** before toggling maintenance or performing a restart. It helps confirm health, dependencies, and connectivity.
</Tip>

## **Input Parameters for Each Function**

Most administrative operations use `manage_system` with an `action` value. Prior-conversation search uses dedicated `find_threads` and `read_thread` functions. Cost analysis uses the dedicated `thread_cost` function. Export workflows use the dedicated `export_thread`, `export_agent`, and `export_mission` functions. Agent and mission re-import use the dedicated `import_agent` and `import_mission` functions. Thread memory management (compression, recovery, status) is handled by `manage_thread_memory` in `context_tools` (always available to agents). Poll-and-check pacing uses `wait` in `context_tools` (always available to agents). The internal `compress_thread` function remains available for support workflows but is not exposed as an agent tool.

`audit_organization_health` starts the hidden GenesisAuditor worker. See
[GenesisAuditor tools](/docs/Genbot-Toolkit/Additional-Tool-Groups#genesis-auditor-tools)
for its `focus` parameter and the read-only audit tools available to the spawned
agent.

### **`AUTO_TITLE_CHAT`**

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **conversation\_id** | Conversation to generate a title for. | String |
| **conversation\_content** | Optional summary to guide title quality. | String |
| **title\_length** | Max title length. | Integer |

<Note>
  When **OpenAI** is the active provider, auto-titling uses the saved
  `fast_model` assignment from **Config → AI Providers → Change Models**
  (falling back to `supervisor` or `default_chat` when fast is unset). The call
  routes through the LiteLLM engine with per-call OpenAI credentials from
  **AI Providers** — not a raw OpenAI client. Genesis applies the assignment on
  the next title generation without a server restart.
  For **Databricks**, auto-titling likewise uses `fast_model`, falling back to
  `supervisor` and then `default_chat` when the fast assignment is unset. See
  [Databricks provider setup](/docs/Setup/Setup-AI-Model#provider-specific-notes)
  for the model defaults and authentication details.
</Note>

### **`SYSTEM_STATUS`**

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **include\_details** | Include component level details. | Boolean |
| **check\_connectivity** | Run connectivity probes where available. | Boolean |

### **`MAINTENANCE_MODE`**

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **enable** | Turn maintenance mode on or off. | Boolean |
| **maintenance\_message** | Optional banner message for users. | String |
| **estimated\_duration** | Estimated duration in minutes. | Integer |

### **`SYSTEM_CONFIG`**

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **config\_operation** | One of `GET`, `SET`, `UPDATE`, `RESET`. | String |
| **config\_key** | Configuration key to read or modify. | String |
| **config\_value** | New value when setting or updating. | String |

### **`CLEANUP_TASKS`**

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **cleanup\_type** | One of `temporary_files`, `old_logs`, `expired_sessions`, `all`. | String |
| **retention\_days** | Keep newer items for this many days. | Integer |
| **dry\_run** | Preview what would be removed without deleting. | Boolean |

### **`SYSTEM_RESTART`**

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **component** | Optional component name to restart. | String |
| **force\_restart** | Skip graceful shutdown if true. | Boolean |
| **confirmation** | Must be true to proceed. | Boolean |

<Warning>
  Restarts interrupt running jobs and sessions. Use **SYSTEM\_STATUS** first, schedule a window, then set `confirmation = true` only when ready.
</Warning>

### **`find_threads`**

Search prior conversations across one or more bots using hybrid semantic plus lexical matching. Results are ranked by relevance and can be returned as formatted text or structured data.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **query** | Search query. Required. Supports keywords, phrases, or natural language. | String |
| **limit** | Maximum threads to return. Default: `5`. Min: `1`. Max: `50`. If Genesis cannot coerce the supplied value to an integer, it falls back to `5`. | Integer |
| **include\_summary** | Generate LLM summaries for matching threads. Default: `false`. Genesis summarizes at most the top `5` results. | Boolean |
| **include\_hidden** | Include hidden or background-job threads in results. Default: `false`. | Boolean |
| **bot\_ids** | Optional list of bot IDs to search. Defaults to the current bot from context when omitted. Use the exact `bot_id` values Genesis returns for agents, such as the values from `GET /api/bots`. | Array of strings |
| **response\_format** | Response shape: `formatted` or `structured`. Default: `formatted`. | String |
| **stages** | Optional staged search sequence. Allowed values: `tokens`, `semantic`, `phrase`. | Array of strings |
| **tool\_filter** | Optional tool or function name filter for structured tool-call search. | String |
| **tool\_action** | Optional action filter extracted from tool parameters. | String |
| **param\_filter** | Optional exact-match filter over indexed tool-call parameters. Nested keys such as `spec.backend` are supported. | Object |
| **result\_filter** | Optional structured-result filter. Currently supports only `status`, for example `{"status": "FAILED"}`. | Object |

<Note>
  `bot_id`, `thread_id`, and `user_id` are injected from the current tool context. A caller identity is required: if `user_id` does not reach `find_threads`, it returns an access-denied error with no results rather than searching without an identity filter. `find_threads` excludes the current thread automatically and still enforces normal visibility and permission checks on returned threads. When you pass `bot_ids`, use the exact, case-sensitive values from `GET /api/bots` or `_list_all_bots`. Cross-bot search enumerates active agents registered in the database, not storage directories without a matching bot row. Structured results include `bot_id` for each thread; pass that value to `read_thread` as `thread_bot_id` when opening a hit owned by a different bot.
</Note>

**Example**

```python theme={null}
find_threads(query="database migration")

find_threads(query="ETL pipeline", limit=10)

find_threads(
    query="UNRESOLVED_COLUMN",
    tool_filter="databricks_action",
    response_format="structured",
)
```

### **`read_thread`**

Read the content of a specific thread after `find_threads` or `search_threads`. Threads are stored per bot; when the hit belongs to another bot, pass that bot's ID in `thread_bot_id` using the `bot_id` from the search result. By default Genesis returns a clean user/assistant transcript and omits tool banners, tool-call payloads, and internal metadata. Set `include_tool_calls=true` when you need prior SQL, tool outputs, artifact links, reports, or other execution details.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **thread\_id** | Thread ID to read. Required. | String |
| **last\_n\_messages** | Optional tail limit for returned user/assistant messages. Valid integers are clamped to `1`-`100`. When omitted, Genesis returns all filtered messages. If the supplied value cannot be coerced to an integer, Genesis falls back to the last `20` messages. | Integer |
| **include\_tool\_calls** | Optional boolean that includes assistant tool requests and tool outputs. Default: `false`. Use this when you need prior SQL, artifact links, reports, or other execution details from the thread. | Boolean |
| **thread\_bot\_id** | Bot that owns the thread when it is not the current bot. Use the `bot_id` reported for the thread by `find_threads` or `search_threads`. Default: the current bot from context. | String |

<Note>
  `bot_id` and `user_id` are injected from the current tool context. Naming another bot in `thread_bot_id` does not widen access — Genesis still enforces normal thread visibility on every read. When a thread cannot be read under the requested bot, Genesis returns an error that suggests trying `thread_bot_id` if another bot may own the thread. If the tool trims the output, the response includes a summary line showing how many messages were returned out of the total message count for the selected mode.
</Note>

<Note>
  With `include_tool_calls=true`, Genesis returns unredacted tool calls only to the thread owner or explicitly invited users. Other permitted readers receive redacted tool content and `tool_calls_redacted=true` in the response.
</Note>

**Example**

```python theme={null}
read_thread(thread_id="chat_abc123")

read_thread(thread_id="chat_abc123", last_n_messages=20)

read_thread(thread_id="chat_abc123", include_tool_calls=True)

read_thread(thread_id="chat_abc123", thread_bot_id="Adam")
```

### **`export_thread`**

Export the current thread or a specified thread into a `bot_git` repo as Markdown, PDF, or a ZIP package for backup, import, or support workflows. Support-oriented ZIP exports can bundle `bug_report.md`, `server.log`, and any selected file attachments.

<Note>
  When `format="pdf"`, Genesis renders each message header with an ISO-8601 timestamp including timezone offset when timestamp metadata is available. ZIP exports use the same timestamped transcript for `thread.pdf`, while `thread.md` remains the clean Markdown transcript.
</Note>

For PDF availability in Databricks App deployments and ZIP fallback behavior,
see [Chat and Threads](/docs/User-Guide/Chat-And-Threads#import-and-export).

<Note>
  In container-based deployments, Genesis prepares the mounted `bot_git`
  workspace on startup so export bundles can be written to shared repos even
  when `/app/bot_git` is backed by a reused persistent volume.
</Note>

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **repo\_id** | Target `bot_git` repo where the export is saved. Required. | String |
| **source\_thread\_id** | Thread ID to export. Defaults to the current thread from context. | String |
| **format** | Export format: `md`, `pdf`, or `zip`. Default: `zip`. | String |
| **filename** | Optional custom filename. Auto-generated when omitted. | String |
| **relative\_path** | Directory inside the repo. Default: `exports`. | String |
| **include\_files** | Include file attachments in ZIP exports. Default: `true`. | Boolean |
| **include\_tool\_calls** | Include `tool_calls` arrays and tool messages in JSON data (`thread.json`). `thread.md` is always clean Markdown. Default: `true`. | Boolean |
| **bug\_report** | Markdown bug report written to `bug_report.md` in ZIP exports only. | String |
| **include\_server\_log** | Include the server-side `server.log` file in ZIP exports. Defaults to `true` when `bug_report` is provided and `false` otherwise. | Boolean |

<Note>
  `bot_id`, `thread_id`, and `user_id` are injected from the current tool context. `user_id` is used to enforce thread access, so callers can export only threads they are allowed to access.
</Note>

<Note>
  When `bug_report` is provided, Genesis includes `server.log` in the ZIP by default. Workspace admins can disable server-log inclusion in support bundles with `support.include_server_log_in_bug_reports` (default: `true`).
</Note>

<Note>
  ZIP exports also include `scrub_manifest.json`. Ordinary `export_thread` calls keep original thread content intact and record manifest `status: disabled` so the bundle remains suitable for import. Support-bundle workflows opt into scrubbing separately, which redacts supported text artifacts such as `thread.md`, `thread.json`, `message_log.csv`, `bug_report.md`, and `server.log`, while binary attachments remain passthrough.
</Note>

<Note>
  Export metadata includes `message_log_row_count`, the number of source rows used
  to render `message_log.csv`. When a legacy pre-rendered CSV is reused and its
  source-row count is unavailable, the value is `null`; Genesis does not guess a
  count from rendered CSV lines.
</Note>

<Note>
  Export metadata also includes `message_log_source`; see the [Thread Export API
  reference](/docs/Genesis-API/API-Reference#thread-export) for its values and
  how to interpret synthesized rows.
</Note>

**Example**

```python theme={null}
export_thread(repo_id="uploads", format="zip", relative_path="exports/")

export_thread(
    repo_id="support",
    source_thread_id="chat_123",
    format="zip",
    bug_report="## Issue\nExport prepared for support review."
)
```

<Note>
  Successful `export_thread`, `export_agent`, and `export_mission` responses return root-relative Genesis links in `download_url`; `export_thread` also returns `view_url`. Expect `/api/git/...` in standalone and local deployments, and `/git/...` in SPCS.
</Note>

### **`export_agent`**

Export an agent configuration as a ZIP package into a `bot_git` repo so it can be downloaded or re-imported later.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **target\_bot** | Bot ID to export. Defaults to the current bot from context. | String |
| **target\_bot\_id** | Deprecated alias for `target_bot`. Falls back to the current bot from context when used. | String |
| **repo\_id** | Target `bot_git` repo where the export is saved. Required. | String |
| **relative\_path** | Directory inside the repo. Optional. | String |

**Example**

```python theme={null}
export_agent(repo_id="uploads", target_bot="sales_assistant")
```

### **`export_mission`**

Export a complete mission as a ZIP package into a `bot_git` repo, including project metadata, thread and replay data, and optional repo, query-result, and agent content.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **project\_id** | Mission ID to export. Required. | String |
| **repo\_id** | Target `bot_git` repo where the export is saved. Required. | String |
| **relative\_path** | Directory inside the repo. Optional. | String |
| **include\_repos** | Include Git repositories in the export. Default: `true`. | Boolean |
| **include\_query\_results** | Include query-result caches in the export. Default: `true`. | Boolean |
| **include\_agent** | Include agent configuration in the export. Default: `false`. | Boolean |

**Example**

```python theme={null}
export_mission(
    project_id="mission_123",
    repo_id="uploads",
    include_agent=True
)
```

<Note>
  `export_agent` and `export_mission` write binary ZIP files to the target
  `bot_git` repo. Storage-only repos such as `uploads` persist the ZIP on disk
  without creating a git commit; git-backed repos also stage and commit the
  export. If the ZIP write fails, the tool returns `success: false` with an
  error describing the target path. The [API export reference](/docs/Genesis-API/API-Reference#export-download-responses)
  describes how these binary tool-generated bundles handle repository directory content.
</Note>

### **`import_agent`**

Import an agent ZIP package that was previously exported with `export_agent`.
Genesis assigns a new `bot_id` for the imported agent so it does not collide
with the original.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **repo\_id** | Source repo containing the agent ZIP file. Required. | String |
| **file\_path** | Path to the agent ZIP file within the repo. Required. | String |
| **new\_name** | Custom name for the imported agent. Optional. | String |
| **handle\_conflict** | How to handle name conflicts: `error`, `rename`, or `replace`. Default: `rename`. | String |

<Note>
  `bot_id`, `thread_id`, and `user_id` are injected from the current tool
  context. For managed remote repos, Genesis reads the ZIP from the current
  remote file state instead of a shared local clone. If managed-remote status
  cannot be verified, the tool returns `error_code="MANAGED_REMOTE_STATUS_UNKNOWN"`.
</Note>

**Example**

```python theme={null}
import_agent(
    repo_id="uploads",
    file_path="exports/sales_assistant.zip",
    new_name="sales_assistant_copy"
)
```

### **`import_mission`**

Import a mission ZIP package that was previously exported with
`export_mission`. Genesis assigns new IDs for imported entities so the imported
mission can coexist safely with the source mission.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **repo\_id** | Source repo containing the mission ZIP file. Required. | String |
| **file\_path** | Path to the mission ZIP file within the repo. Required. | String |
| **target\_bot** | Bot ID to attach the imported mission to. Defaults to the current bot from context. | String |
| **target\_bot\_id** | Deprecated alias for `target_bot`. | String |
| **new\_name** | Custom name for the imported mission. Optional. | String |
| **handle\_conflict** | How to handle name conflicts: `error`, `rename`, or `replace`. Default: `rename`. | String |
| **repo\_conflict** | How to handle existing repos: `create_new`, `reuse_existing`, or `replace`. Default: `create_new`. | String |

<Note>
  `bot_id`, `thread_id`, and `user_id` are injected from the current tool
  context. For managed remote repos, Genesis reads the ZIP from the current
  remote file state instead of a shared local clone. If managed-remote status
  cannot be verified, the tool returns `error_code="MANAGED_REMOTE_STATUS_UNKNOWN"`.
</Note>

**Example**

```python theme={null}
import_mission(
    repo_id="uploads",
    file_path="exports/mission_123.zip",
    target_bot="sales_assistant",
    repo_conflict="reuse_existing"
)
```

### **`thread_cost`**

Calculate token usage and cache-aware LLM costs for the current thread or any
specified thread, with optional recursive child-thread aggregation.

**Parameters**

| **Name** | **Definition** | **Format** |
| - | - | :-: |
| **thread\_id** | Thread ID to analyze. Defaults to the current thread from context. | String |
| **target\_bot** | Optional bot ID for the thread. Defaults to the current bot. Only Eve can access other bots' threads. | String |
| **target\_bot\_id** | Deprecated alias for `target_bot`. | String |
| **include\_children** | Include child threads such as delegated or validation threads. Default: `true`. | Boolean |
| **override\_input\_cost** | Optional override for input-token pricing per 1M tokens. Applies to all models in the calculation. | Number |
| **override\_output\_cost** | Optional override for output-token pricing per 1M tokens. Applies to all models in the calculation. | Number |
| **override\_cache\_read\_cost** | Optional override for cache-read pricing per 1M tokens. Applies to all models in the calculation. | Number |
| **override\_cache\_write\_cost** | Optional override for cache-write pricing per 1M tokens. Applies to all models in the calculation. | Number |

<Note>
  `thread_cost` returns separate `input`, `output`, `cache_read`, and
  `cache_write` totals. In `summary.total_tokens`, Genesis reports
  `billable_input` as prompt input minus both `cache_read` and
  `cache_creation`, floored at `0`.
</Note>

**Example**

```python theme={null}
thread_cost()

thread_cost(thread_id="chat_123", include_children=False)

thread_cost(
    thread_id="chat_123",
    override_input_cost=2.4,
    override_output_cost=12.0,
    override_cache_read_cost=0.24,
)
```

### **`compress_thread`** (Internal / Support Only)

<Warning>
  `compress_thread` is an internal function used by support workflows. Agents should use **`manage_thread_memory`** (part of `context_tools`, always available) for thread compression, status, and recovery.
</Warning>

See [`manage_thread_memory`](/docs/Genbot-Toolkit/Context-Tools#manage_thread_memory) for the supported compression versions and fallback behavior.

Thread memory management — compression, status checks, and recovery of compressed artifacts — is handled by `manage_thread_memory` in the `context_tools` group. Key actions:

| **Action** | **Purpose** |
| - | - |
| `GET_STATUS` | Panel-style memory snapshot aligned with the context-state budget card |
| `COMPRESS` | Compress toward a target percentage (default 50%) |
| `SEARCH_MESSAGES` | Search visible, hidden, summary, raw, or artifact content within the current thread |
| `LIST_RECOVERABLE_BLOCKS` | Discover recovery handles for compressed blocks |
| `GET_COMPRESSED_TOOL_RESULT` | Retrieve compressed content or quote an uncompressed result still stored in the thread; see [`manage_thread_memory`](/docs/Genbot-Toolkit/Context-Tools#manage_thread_memory) for paging details |
| `GET_COMPRESSED_PARAM_ARCHIVE` | Retrieve archived large tool parameters |
| `GET_HIDDEN_MESSAGES` | Retrieve logically hidden messages by durable `start_message_num` / `end_message_num` for V6, or by legacy handles when needed |

**Examples**

```python theme={null}
manage_thread_memory(action="GET_STATUS")

manage_thread_memory(
    action="COMPRESS",
    target_percentage=50
)

manage_thread_memory(
    action="GET_COMPRESSED_TOOL_RESULT",
    result_tool_call_id="call_abc123"
)

manage_thread_memory(
    action="SEARCH_MESSAGES",
    query="French Russian",
    search_scope="hidden"
)

manage_thread_memory(
    action="GET_HIDDEN_MESSAGES",
  start_message_num=12,
  end_message_num=12
)
```

<Note>
  Compression artifacts include `recoverable`, `recovery_kind`, and `recovery_hint` metadata. For V6 history, use `LIST_RECOVERABLE_BLOCKS` and `SEARCH_MESSAGES` to find numeric `start_message_num` / `end_message_num` handles, then recover exact text with `GET_HIDDEN_MESSAGES`. Older summaries may still expose `recovery_id` as a legacy fallback. When `GET_STATUS` includes `compression_history`, each event can expose `event_sequence` (monotonic pass number) and compact `raw` diagnostics such as `chat_model`, `thread_model_tier`, `thread_model_provider`, `summary_llm_model`, `summary_llm_engine`, `summary_rollup_fallback_used`, and `llm_summary_used_delta` so you can see which models and summary paths were active for that pass.
</Note>

## **Use Cases**

1. Generate descriptive chat titles for better search and navigation.
2. Monitor platform health, component readiness, and external connectivity.
3. Schedule maintenance windows with user-facing messages and durations.
4. Adjust configuration keys safely and audit the changes.
5. Reclaim space by cleaning temporary files, old logs, or expired sessions.
6. Restart a misbehaving component after validating dependencies.
7. Maintain an administrative trail of system actions for compliance.
8. Recover a compressed tool result or a logically hidden message group without rerunning earlier work.

## **Workflow/How It Works**

1. **Assess** current health with `SYSTEM_STATUS` and decide on next steps.
2. **Communicate** by enabling `MAINTENANCE_MODE` with a clear message and duration.
3. **Change** settings via `SYSTEM_CONFIG` to apply the desired configuration.
4. **Clean** using `CLEANUP_TASKS` with `dry_run = true`, then execute for real.
5. **Restart** selected components using `SYSTEM_RESTART` with explicit confirmation.
6. **Verify** recovery with `SYSTEM_STATUS` and disable maintenance mode.

<Note>
  Prefer `dry_run` for cleanups and staged config updates to reduce risk in production.
</Note>

## **Integration Relevance**

* **genesis\_job\_tools** to coordinate or pause background jobs during maintenance.
* **system\_stats\_tools** for performance verification before and after changes.
* **make\_baby\_bot** to manage data agent availability during platform updates.
* **harvester\_tools** to align metadata crawls with maintenance windows.
* All tools that rely on system configuration or uptime benefit from predictable scheduling.

## **Configuration Details**

* Use precise `config_key` names and document them in your runbook.
* Maintenance messages should be concise and include a contact or status page.
* Choose conservative `retention_days` to avoid premature log or session removal.
* Component names for restarts should match deployed service identifiers.
* Auto-title works best with a short, representative `conversation_content` when available.

## **Limitations or Notes**

1. Administrative privileges are required for `manage_system` actions. `export_thread` instead follows the caller's thread access permissions.
2. Maintenance mode affects all users, so schedule during low activity periods.
3. Some configuration changes may require a restart to take effect.
4. Cleanups are destructive unless you have separate backups.
5. Status checks can have overhead during peak load.
6. Cross-component dependencies may delay restarts or require ordering.

## **Output**

* **Auto-Title**: Proposed title, relevance score, and suggested alternatives.
* **Status**: Overall health plus component details and connectivity results.
* **Maintenance**: Mode status, banner message, and timing confirmation.
* **Configuration**: Current values, change confirmations, and diffs where applicable.
* **Cleanup**: Dry-run preview or executed results with counts and recovered space.
* **Restart**: Acknowledgment, component recovery status, and timing.
* **Exports & Imports**: `export_thread`, `export_agent`, and `export_mission` return the saved repo location plus `download_url`; `export_thread` also returns `view_url` and the selected export `format`. `import_agent` returns `bot_id`, `bot_name`, and `warnings`. `import_mission` returns `project_id`, `project_name`, `thread_id`, `bot_id`, `repos_imported`, `query_results_imported`, `todos_imported`, `assets_imported`, and `warnings`.
* **Thread Compression & Recovery**: Agent-facing recovery uses `manage_thread_memory`, which returns panel-aligned status, before and after compression stats, searchable thread-history results, chunked `value_chunk` recovery with `has_more` and `next_offset`, and paginated hidden `messages` keyed primarily by durable message numbers/ranges for V6. The internal `compress_thread` helper backs those recovery flows for support workflows.
* **Errors**: Actionable messages for permission issues, invalid keys, or failed operations.
