diff --git a/docs/AIChat-Migration.md b/AIChat-Migration.md
similarity index 98%
rename from docs/AIChat-Migration.md
rename to AIChat-Migration.md
index 0fd26d5..0948d48 100644
--- a/docs/AIChat-Migration.md
+++ b/AIChat-Migration.md
@@ -206,5 +206,5 @@ Here's how to migrate your functions over to Loki from the `llm-functions` repos
patch_file
```
-Refer to the [custom bash tools docs](./function-calling/Custom-Bash-Tools.md) to learn how to compile and test bash
+Refer to the [custom bash tools docs](Custom-Bash-Tools) to learn how to compile and test bash
tools in Loki without needing to use `argc`.
diff --git a/docs/Agents.md b/Agents.md
similarity index 97%
rename from docs/Agents.md
rename to Agents.md
index fb74be5..9e3ebe5 100644
--- a/docs/Agents.md
+++ b/Agents.md
@@ -1,8 +1,8 @@
Agents in Loki follow the same style as OpenAI's GPTs. They consist of 3 parts:
-* [Role](./Roles.md) - Tell the LLM how to behave
-* [RAG](./RAG.md) - Pre-built knowledge bases specifically for the agent
-* [Function Calling](./function-calling/Tools.md#tools) ([#2](./function-calling/MCP-Servers.md)) - Extends the functionality of the LLM through custom functions it can call
+* [Role](Roles) - Tell the LLM how to behave
+* [RAG](RAG) - Pre-built knowledge bases specifically for the agent
+* [Function Calling](Tools#tools) ([#2](MCP-Servers)) - Extends the functionality of the LLM through custom functions it can call

@@ -101,7 +101,7 @@ variables: # An array of optional variables that the agent expect
## Static Instructions
By default, Loki agents use statically defined instructions. Think of them as being identical to the instructions for a
-[role](./Roles.md#instructions), because they virtually are.
+[role](Roles#instructions), because they virtually are.
**Example:**
```yaml
@@ -294,7 +294,7 @@ documents:
```
These documents use the same syntax as those you'd define when constructing RAG normally. To see all the available types
-of documents that Loki supports and how to use custom document loaders, refer to the [RAG documentation](./RAG.md#supported-document-sources).
+of documents that Loki supports and how to use custom document loaders, refer to the [RAG documentation](RAG#supported-document-sources).
Anytime your agent starts up, it will automatically be using the RAG you've defined here.
@@ -354,7 +354,7 @@ def get_ip_address_from_aws():
Loki automatically compiles these as separate functions for the LLM to call. No extra work is needed. Just make sure you
follow all the same steps to define each function as you would when creating custom Python tools.
-For more information on how to build tools in Python, refer to the [custom Python tools documentation](./function-calling/Custom-Tools.md#custom-python-based-tools)
+For more information on how to build tools in Python, refer to the [custom Python tools documentation](Custom-Tools#custom-python-based-tools)
## Bash-Based Agent Tools
Bash-based agent tools are virtually identical to custom bash tools, with only one difference. Instead of defining a
@@ -393,8 +393,8 @@ $ ./tools.sh get_ip_address_from_aws
All other special annotations (`@env`, `@arg`, `@option` `@flags`) apply to subcommands as well, so be sure to follow
the same syntax ad formatting as is used to create custom bash tools globally.
-For more information on how to write, [build and test](function-calling/Custom-Bash-Tools.md#execute-and-test-your-bash-tools) tools in bash, refer to the
-[custom bash tools documentation](function-calling/Custom-Bash-Tools.md).
+For more information on how to write, [build and test](Custom-Bash-Tools#execute-and-test-your-bash-tools) tools in bash, refer to the
+[custom bash tools documentation](Custom-Bash-Tools).
## TypeScript-Based Agent Tools
TypeScript-based agent tools work exactly the same as TypeScript global tools. Instead of a single `run` function,
@@ -443,7 +443,7 @@ export function _instructions(): string {
}
```
-For more information on how to build tools in TypeScript, refer to the [custom TypeScript tools documentation](function-calling/Custom-Tools.md#custom-typescript-based-tools).
+For more information on how to build tools in TypeScript, refer to the [custom TypeScript tools documentation](Custom-Tools#custom-typescript-based-tools).
# 5. Conversation Starters
It's often helpful to also have some conversation starters so users know what kinds of things the agent is capable of
@@ -507,7 +507,7 @@ inject_todo_instructions: true # Include the default todo instructions into pr
- Workflows requiring guaranteed completion of all steps
For complete documentation including all configuration options, tool details, and best practices, see the
-[Todo System Guide](./TODO-System.md).
+[Todo System Guide](TODO-System).
# 7. Sub-Agent Spawning System
diff --git a/docs/function-calling/Bash-Prompt-Helpers.md b/Bash-Prompt-Helpers.md
similarity index 87%
rename from docs/function-calling/Bash-Prompt-Helpers.md
rename to Bash-Prompt-Helpers.md
index 8342595..4030374 100644
--- a/docs/function-calling/Bash-Prompt-Helpers.md
+++ b/Bash-Prompt-Helpers.md
@@ -34,7 +34,7 @@ Below are the built-in bash prompt helpers that can be used to enhance user inte
## input
Prompt for text input
-
+
**Example With Validation:**
```bash
@@ -49,7 +49,7 @@ text=$(input "Please enter something:" 2>/dev/tty)
## confirm
Show a confirm dialog with options for yes/no
-
+
**Example:**
```bash
@@ -61,7 +61,7 @@ if [[ $confirmed == "0" ]]; then echo "No"; else echo "Yes"; fi
Renders a text based list of options that can be selected by the user using up, down, and enter
keys that then returns the chosen option.
-
+
**Example:**
```bash
@@ -74,7 +74,7 @@ echo "Your choice: ${options[$choice]}"
Render a text based list of options, where multiple options can be selected by the user using down, up,
and enter keys that then returns the chosen options.
-
+
**Example:**
```bash
@@ -86,7 +86,7 @@ echo "Your choices: ${checked}"
## password
Show a password prompt displaying stars for each character typed.
-
+
**Example With Validation:**
```bash
@@ -117,7 +117,7 @@ echo -e "You wrote:\n${text}"
Evaluate the given prompt command with validation. This prompts the user for input until the
validation functions returns 0.
-
+
**Example:**
```bash
@@ -137,7 +137,7 @@ pass=$(with_validate 'password "Enter random password"' validate_password 2>/dev
## validate_present
Validate that the prompt returned a value.
-
+
**Example:**
```bash
@@ -211,27 +211,27 @@ new_contents="$(patch_file "$path" file.patch)"
## error
Log an error
-
+
## warn
Log a warning
-
+
## info
Log info
-
+
## debug
Log a debug message
-
+
## trace
Log a trace message
-
+
## Colored Output
The following commands allow users to output text in specific colors.
diff --git a/docs/clients/Clients.md b/Clients.md
similarity index 95%
rename from docs/clients/Clients.md
rename to Clients.md
index aca1eaf..81b070c 100644
--- a/docs/clients/Clients.md
+++ b/Clients.md
@@ -47,7 +47,7 @@ available settings are listed below:
| `name` | The name of the client (e.g. `openai`, `gemini`, etc.) |
| `auth` | Authentication method: `oauth` for OAuth, or omit to use `api_key` (see [Authentication](#authentication)) |
| `models` | See the [model settings](#model-settings) documentation below |
-| `patch` | See the [client patch configuration](./Patches.md#client-configuration-patches) documentation |
+| `patch` | See the [client patch configuration](Patches#client-configuration-patches) documentation |
| `extra` | See the [extra settings](#extra-settings) documentation below |
Be sure to also check provider-specific configurations for any extra fields that are added for authentication purposes.
@@ -62,7 +62,7 @@ The `models` array lists the available models from the model client. Each one ha
| `type` | * | `all` | The type of model. Loki supports only 3 types of models:
- `chat`
- `embedding`
- `reranker`
|
| `input_price` | | `all` | The cost in USD per 1M tokens for each input sequence; Loki will keep track of usage costs if this is defined |
| `output_price` | | `all` | The cost in USD per 1M tokens of the model output; Loki will keep track of usage costs if this is defined |
-| `patch` | | `all` | See the [model-specific patch configuration](./Patches.md#model-specific-patches) documentation |
+| `patch` | | `all` | See the [model-specific patch configuration](Patches#model-specific-patches) documentation |
| `max_input_tokens` | | `all` | The maximum number of input tokens for the model |
| `max_output_tokens` | | `chat` | The maximum number of output tokens for the model |
| `require_max_tokens` | | `chat` | Whether to enforce the `max_output_tokens` constraint. |
@@ -83,7 +83,7 @@ must use one or the other.
## API Key Authentication
Most clients authenticate using an API key. Simply set the `api_key` field directly or inject it from the
-[Loki vault](../Vault.md):
+[Loki vault](Vault):
```yaml
clients:
@@ -92,7 +92,7 @@ clients:
```
API keys can also be provided via environment variables named `{CLIENT_NAME}_API_KEY` (e.g. `OPENAI_API_KEY`,
-`GEMINI_API_KEY`). See the [environment variables documentation](../Environment-Variables.md#client-related-variables)
+`GEMINI_API_KEY`). See the [environment variables documentation](Environment-Variables#client-related-variables)
for details.
## OAuth Authentication
@@ -144,12 +144,12 @@ to be used as a simple CLI. As such, there's no terms of service or privacy poli
cannot verify Loki.
So, when you kick off OAuth with Gemini, you may see a page similar to the following:
-
+
Simply click the `Advanced` link and click `Go to Loki (unsafe)` to continue the OAuth flow.
-
-
+
+
**Step 3: Use normally**
diff --git a/docs/function-calling/Custom-Bash-Tools.md b/Custom-Bash-Tools.md
similarity index 99%
rename from docs/function-calling/Custom-Bash-Tools.md
rename to Custom-Bash-Tools.md
index a0291d7..9c4b885 100644
--- a/docs/function-calling/Custom-Bash-Tools.md
+++ b/Custom-Bash-Tools.md
@@ -291,4 +291,4 @@ users.
To accommodate this, Loki provides a set of prompt helper functions that can be referenced and used within your Bash
tools.
-For more information, refer to the [Bash Prompt Helpers documentation](Bash-Prompt-Helpers.md).
+For more information, refer to the [Bash Prompt Helpers documentation](Bash-Prompt-Helpers).
diff --git a/docs/function-calling/Custom-Tools.md b/Custom-Tools.md
similarity index 98%
rename from docs/function-calling/Custom-Tools.md
rename to Custom-Tools.md
index 79b5c8c..3cc8590 100644
--- a/docs/function-calling/Custom-Tools.md
+++ b/Custom-Tools.md
@@ -21,7 +21,7 @@ loki --info | grep functions_dir | awk '{print $2}'
```
Once you've created your custom tool, remember to add it to the `visible_tools` array in your global `config.yaml` file
-to enable it globally. See the [Tools](Tools.md#enablingdisabling-global-tools) documentation for more information on how Loki utilizes the
+to enable it globally. See the [Tools](Tools#enablingdisabling-global-tools) documentation for more information on how Loki utilizes the
`visible_tools` array.
## Environment Variables
@@ -38,7 +38,7 @@ Loki also searches the tools directory on startup for a `.env` file. If found, a
the environment variables defined in the `.env` file available to them.
## Custom Bash-Based Tools
-To create a Bash-based tool, refer to the [custom bash tools documentation](Custom-Bash-Tools.md).
+To create a Bash-based tool, refer to the [custom bash tools documentation](Custom-Bash-Tools).
## Custom Python-Based Tools
Loki supports tools written in Python.
diff --git a/docs/Environment-Variables.md b/Environment-Variables.md
similarity index 100%
rename from docs/Environment-Variables.md
rename to Environment-Variables.md
diff --git a/docs/Getting-Started.md b/Getting-Started.md
similarity index 93%
rename from docs/Getting-Started.md
rename to Getting-Started.md
index 80965c3..44b3312 100644
--- a/docs/Getting-Started.md
+++ b/Getting-Started.md
@@ -13,7 +13,7 @@ loki --list-secrets
# Authentication
Each client in your configuration needs authentication (with a few exceptions; e.g. ollama). Most clients use an API key
-(set via `api_key` in the config or through the [vault](./Vault.md)). For providers that support OAuth (e.g. Claude Pro/Max
+(set via `api_key` in the config or through the [vault](Vault)). For providers that support OAuth (e.g. Claude Pro/Max
subscribers, Google Gemini), you can authenticate with your existing subscription instead:
```yaml
@@ -29,7 +29,7 @@ loki --authenticate my-claude-oauth
# Or via the REPL: .authenticate
```
-For full details, see the [authentication documentation](./clients/Clients.md#authentication).
+For full details, see the [authentication documentation](Clients#authentication).
# Configuration
The location of the global Loki configuration varies between systems, so you can use the following command to find your
@@ -70,7 +70,7 @@ shown below:
| Setting | Description |
|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `repl_prelude` | This setting lets you specify a default `session` or `role` to use when starting Loki in [REPL](./REPL.md) mode.
Values can be - `role:` to define a role
- `session:` to define a session
- `:` to define both a session and a role to use
|
+| `repl_prelude` | This setting lets you specify a default `session` or `role` to use when starting Loki in [REPL](REPL) mode.
Values can be - `role:` to define a role
- `session:` to define a session
- `:` to define both a session and a role to use
|
| `cmd_prelude` | This setting lets you specify a default `session` or `role` to use when running one-off queries in Loki via the CLI.
Values can be - `role:` to define a role
- `session:` to define a session
- `:` to define both a session and a role to use
|
| `agent_session` | This setting is used to specify a default session that all agents should start into, unless otherwise specified in the agent configuration. (e.g. `temp`, `default`) |
diff --git a/Home.md b/Home.md
index 3859391..1cc06b3 100644
--- a/Home.md
+++ b/Home.md
@@ -15,36 +15,36 @@ in as little time as possible.

-Coming from [AIChat](https://github.com/sigoden/aichat)? Follow the [migration guide](./docs/AIChat-Migration.md) to get started.
+Coming from [AIChat](https://github.com/sigoden/aichat)? Follow the [migration guide](AIChat-Migration) to get started.
---
# Quick Links
-* [AIChat Migration Guide](./docs/AIChat-Migration.md): Coming from AIChat? Follow the migration guide to get started.
-* [Installation](./docs/Installation.md): Install Loki
-* [Getting Started](./docs/Getting-Started.md): Get started with Loki by doing first-run setup steps, and learn the basics.
-* [REPL](./docs/REPL.md): Interactive Read-Eval-Print Loop for conversational interactions with LLMs and Loki.
- * [Custom REPL Prompt](./docs/REPL-Prompt.md): Customize the REPL prompt to provide useful contextual information.
-* [Vault](./docs/VAULT.md): Securely store and manage sensitive information such as API keys and credentials.
-* [Shell Integrations](./docs/Shell-Integrations.md): Seamlessly integrate Loki with your shell environment for enhanced command-line assistance.
-* [Function Calling](./docs/function-calling/Tools.md#Tools): Leverage function calling capabilities to extend Loki's functionality with custom tools
- * [Creating Custom Tools](./docs/function-calling/Custom-Tools.md): You can create your own custom tools to enhance Loki's capabilities.
- * [Create Custom Python Tools](./docs/function-calling/Custom-Tools.md#custom-python-based-tools)
- * [Create Custom TypeScript Tools](./docs/function-calling/Custom-Tools.md#custom-typescript-based-tools)
- * [Create Custom Bash Tools](./docs/function-calling/Custom-Bash-Tools.md)
- * [Bash Prompt Utilities](./docs/function-calling/Bash-Prompt-Helpers.md)
-* [First-Class MCP Server Support](./docs/function-calling/MCP-Servers.md): Easily connect and interact with MCP servers for advanced functionality.
-* [Macros](./docs/Macros.md): Automate repetitive tasks and workflows with Loki "scripts" (macros).
-* [RAG](./docs/RAG.md): Retrieval-Augmented Generation for enhanced information retrieval and generation.
-* [Sessions](/docs/Sessions.md): Manage and persist conversational contexts and settings across multiple interactions.
-* [Roles](./docs/Roles.md): Customize model behavior for specific tasks or domains.
-* [Agents](/docs/Agents.md): Leverage AI agents to perform complex tasks and workflows, including sub-agent spawning, teammate messaging, and user interaction tools.
- * [Todo System](./docs/TODO-System.md): Built-in task tracking for improved agent reliability with smaller models.
-* [Environment Variables](./docs/Environment-Variables.md): Override and customize your Loki configuration at runtime with environment variables.
-* [Client Configurations](./docs/clients/Clients.md): Configuration instructions for various LLM providers.
- * [Authentication (API Key & OAuth)](./docs/clients/Clients.md#authentication): Authenticate with API keys or OAuth for subscription-based access.
- * [Patching API Requests](./docs/clients/Patches.md): Learn how to patch API requests for advanced customization.
-* [Custom Themes](./docs/Themes.md): Change the look and feel of Loki to your preferences with custom themes.
+* [AIChat Migration Guide](AIChat-Migration): Coming from AIChat? Follow the migration guide to get started.
+* [Installation](Installation): Install Loki
+* [Getting Started](Getting-Started): Get started with Loki by doing first-run setup steps, and learn the basics.
+* [REPL](REPL): Interactive Read-Eval-Print Loop for conversational interactions with LLMs and Loki.
+ * [Custom REPL Prompt](REPL-Prompt): Customize the REPL prompt to provide useful contextual information.
+* [Vault](Vault): Securely store and manage sensitive information such as API keys and credentials.
+* [Shell Integrations](Shell-Integrations): Seamlessly integrate Loki with your shell environment for enhanced command-line assistance.
+* [Function Calling](Tools#Tools): Leverage function calling capabilities to extend Loki's functionality with custom tools
+ * [Creating Custom Tools](Custom-Tools): You can create your own custom tools to enhance Loki's capabilities.
+ * [Create Custom Python Tools](Custom-Tools#custom-python-based-tools)
+ * [Create Custom TypeScript Tools](Custom-Tools#custom-typescript-based-tools)
+ * [Create Custom Bash Tools](Custom-Bash-Tools)
+ * [Bash Prompt Utilities](Bash-Prompt-Helpers)
+* [First-Class MCP Server Support](MCP-Servers): Easily connect and interact with MCP servers for advanced functionality.
+* [Macros](Macros): Automate repetitive tasks and workflows with Loki "scripts" (macros).
+* [RAG](RAG): Retrieval-Augmented Generation for enhanced information retrieval and generation.
+* [Sessions](Sessions): Manage and persist conversational contexts and settings across multiple interactions.
+* [Roles](Roles): Customize model behavior for specific tasks or domains.
+* [Agents](Agents): Leverage AI agents to perform complex tasks and workflows, including sub-agent spawning, teammate messaging, and user interaction tools.
+ * [Todo System](TODO-System): Built-in task tracking for improved agent reliability with smaller models.
+* [Environment Variables](Environment-Variables): Override and customize your Loki configuration at runtime with environment variables.
+* [Client Configurations](Clients): Configuration instructions for various LLM providers.
+ * [Authentication (API Key & OAuth)](Clients#authentication): Authenticate with API keys or OAuth for subscription-based access.
+ * [Patching API Requests](Patches): Learn how to patch API requests for advanced customization.
+* [Custom Themes](Themes): Change the look and feel of Loki to your preferences with custom themes.
* [History](#history): A history of how Loki came to be.
---
@@ -53,7 +53,7 @@ Coming from [AIChat](https://github.com/sigoden/aichat)? Follow the [migration g
Loki began as a fork of [AIChat CLI](https://github.com/sigoden/aichat) and has since evolved into an independent project.
-See [CREDITS.md](https://github.com/Dark-Alex-17/loki/CREDITS.md) for full attribution and background.
+See [CREDITS](https://github.com/Dark-Alex-17/loki/CREDITS) for full attribution and background.
---
diff --git a/docs/Installation.md b/Installation.md
similarity index 100%
rename from docs/Installation.md
rename to Installation.md
diff --git a/docs/function-calling/MCP-Servers.md b/MCP-Servers.md
similarity index 94%
rename from docs/function-calling/MCP-Servers.md
rename to MCP-Servers.md
index 2384008..65518e8 100644
--- a/docs/function-calling/MCP-Servers.md
+++ b/MCP-Servers.md
@@ -6,7 +6,7 @@ services, those services can expose their functionality through an MCP server.
Loki has first-class support for MCP servers.
-As mentioned in the [Loki Vault documentation](../Vault.md), Loki can inject sensitive
+As mentioned in the [Loki Vault documentation](Vault.md), Loki can inject sensitive
configuration data into your MCP configuration file to ensure that secrets are not hard-coded.
---
@@ -118,12 +118,12 @@ protocol with the server. The `type` field primarily serves as documentation of
server speaks. Neither type supports `command`, `args`, or `cwd` fields.
## Secret Injection
-As mentioned in the [Loki Vault documentation](../Vault.md), you can use Loki Vault to inject secrets into your MCP configuration file.
+As mentioned in the [Loki Vault documentation](Vault), you can use Loki Vault to inject secrets into your MCP configuration file.
In fact, this is why you need to set up your vault before using Loki at all: the built-in MCP configuration
requires you set up some secrets to use it.
-For more information about how to set up your vault and inject secrets, please refer to the [Loki Vault documentation](../Vault.md).
+For more information about how to set up your vault and inject secrets, please refer to the [Loki Vault documentation](Vault).
# Default MCP Servers
Loki ships with a `functions/mcp.json` file that includes some useful MCP servers:
@@ -168,7 +168,7 @@ A special note about `enabled_mcp_servers`: a user can set this to `all` to enab
When running in REPL-mode, the `mcp_server_support` and `enabled_mcp_servers` settings can be overridden using the
`.set` command:
-
+
## Role Configuration
When you create a role, you have the following MCP-related configuration options available to you:
@@ -179,7 +179,7 @@ enabled_mcp_servers: github # Which MCP servers the role uses.
The values for `mapping_mcp_servers` are inherited from the `[global configuration](#global-configuration)`.
-For more information about roles, refer to the [Roles](../Roles.md) documentation.
+For more information about roles, refer to the [Roles](Roles) documentation.
## Agent Configuration
When you create an agent, you have the following MCP-related configuration options available to you:
@@ -192,6 +192,6 @@ mcp_servers: # Which MCP servers the agent uses
The values for `mapping_mcp_servers` are inherited from the [global configuration](#global-configuration).
-For more information about agents, refer to the [Agents](../Agents.md) documentation.
+For more information about agents, refer to the [Agents](Agents) documentation.
For a full example configuration for an agent, see the [Agent Configuration Example](https://github.com/Dark-Alex-17/loki/blob/main/config.agent.example.yaml) file.
diff --git a/docs/Macros.md b/Macros.md
similarity index 98%
rename from docs/Macros.md
rename to Macros.md
index 73d69d8..d01314c 100644
--- a/docs/Macros.md
+++ b/Macros.md
@@ -6,7 +6,7 @@ This isolation ensures that your workspace remains clean and unaffected by macro

-For more information on Loki's REPL, refer to the [REPL](./REPL.md) documentation.
+For more information on Loki's REPL, refer to the [REPL](REPL) documentation.
---
diff --git a/docs/clients/Patches.md b/Patches.md
similarity index 100%
rename from docs/clients/Patches.md
rename to Patches.md
diff --git a/docs/RAG.md b/RAG.md
similarity index 100%
rename from docs/RAG.md
rename to RAG.md
diff --git a/docs/REPL-Prompt.md b/REPL-Prompt.md
similarity index 100%
rename from docs/REPL-Prompt.md
rename to REPL-Prompt.md
diff --git a/docs/REPL.md b/REPL.md
similarity index 95%
rename from docs/REPL.md
rename to REPL.md
index fac3271..d7bd2e7 100644
--- a/docs/REPL.md
+++ b/REPL.md
@@ -24,7 +24,7 @@ things like
REPL.
* **History Search** Press `ctrl+r` to search the REPL history, and navigate it with `↑↓`
* **Configurable Keybindings:** You can switch between `emacs` style keybindings or `vi` style keybindings
-* [**Custom REPL Prompt:**](./REPL-Prompt.md) You can even customize the REPL prompt to display information about the
+* [**Custom REPL Prompt:**](REPL-Prompt) You can even customize the REPL prompt to display information about the
current context in the prompt
* **Built-in user interaction tools:** When function calling is enabled in the REPL, the `user__ask`, `user__confirm`,
`user__input`, and `user__checkbox` tools are always available for interactive prompts. These are not injected in the
@@ -51,7 +51,7 @@ openai:gpt-4o 128000 / 4096 | 5 / 15 👁 ⚒
```

-For more information about how to add models to Loki, refer to the [clients documentation](./clients/Clients.md).
+For more information about how to add models to Loki, refer to the [clients documentation](Clients).
## `.role` - Role management
Loki offers the following commands to manage your roles:
@@ -66,7 +66,7 @@ Loki offers the following commands to manage your roles:

-For more information about roles in Loki and how to build them, refer to the [roles documentation](./Roles.md).
+For more information about roles in Loki and how to build them, refer to the [roles documentation](Roles).
## `.prompt` - Set a temporary role using a prompt
If you need to create a temporary role that you want to discard after use, you use `.prompt`. `.prompt`-based roles
@@ -89,7 +89,7 @@ Use the following commands to manage sessions in Loki:

-For more information on sessions and how to use them in Loki, refer to the [sessions documentation](./Sessions.md).
+For more information on sessions and how to use them in Loki, refer to the [sessions documentation](Sessions).
## `.agent` - Chat with an AI agent
Loki lets you build OpenAI GPT-style agents. The following commands let you interact with and manage your agents in
@@ -106,7 +106,7 @@ Loki:

-For more information on agents in Loki and how to create them, refer to the [agents documentation](./Agents.md).
+For more information on agents in Loki and how to create them, refer to the [agents documentation](Agents).
## `.rag` - Chat with documents
RAG (Retrieval Augmented Generation) enables you to load documents into the LLM so you can ask questions about it or
@@ -123,7 +123,7 @@ complete tasks using the documents as additional context.

-For more information about RAG in Loki and how to utilize it, refer to the [rag documentation](./RAG.md).
+For more information about RAG in Loki and how to utilize it, refer to the [rag documentation](RAG).
## `.macro` - Execute a macro
Macros in Loki are like "scripts" of commands that can be run in isolated environments; that means they do not use any
@@ -132,7 +132,7 @@ command.

-For more information on macros in Loki and how to create them, refer to the [macros documentation](./Macros.md).
+For more information on macros in Loki and how to create them, refer to the [macros documentation](Macros).
## `.file` - Read files and use them as input
Loki lets you specify any number of documents that you can load and use as ephemeral RAG to chat with the LLM. To see
@@ -145,7 +145,7 @@ Usage: .file ... [-- ...]

-For more information about ephemeral RAG, refer to the [ephemeral RAG documentation](./RAG.md#ephemeral-rag).
+For more information about ephemeral RAG, refer to the [ephemeral RAG documentation](RAGd#ephemeral-rag).
## `.vault` - Manage the Loki vault
The Loki vault lets users store sensitive secrets and credentials securely so that there's no plaintext secrets
@@ -153,7 +153,7 @@ anywhere in your configurations.

-For more information about the Loki vault, refer to the [vault documentation](./Vault.md).
+For more information about the Loki vault, refer to the [vault documentation](Vault).
## `.continue` - Continue the previous response
When you have a response that exceeds the context length, you can use the `.continue` command to continue the generation
@@ -216,7 +216,7 @@ The following entities are supported:
## `.authenticate` - Authenticate the current model client via OAuth
The `.authenticate` command will start the OAuth flow for the current model client if
-* The client supports OAuth (See the [clients documentation](./clients/Clients.md#providers-that-support-oauth) for supported clients)
+* The client supports OAuth (See the [clients documentation](Clients#providers-that-support-oauth) for supported clients)
* The client is configured in your Loki configuration to use OAuth via the `auth: oauth` property
## `.exit` - Exit an agent/role/session/rag or the Loki REPL itself
diff --git a/docs/Roles.md b/Roles.md
similarity index 100%
rename from docs/Roles.md
rename to Roles.md
diff --git a/docs/Sessions.md b/Sessions.md
similarity index 100%
rename from docs/Sessions.md
rename to Sessions.md
diff --git a/docs/Shell-Integrations.md b/Shell-Integrations.md
similarity index 100%
rename from docs/Shell-Integrations.md
rename to Shell-Integrations.md
diff --git a/docs/TODO-System.md b/TODO-System.md
similarity index 97%
rename from docs/TODO-System.md
rename to TODO-System.md
index 221e3c4..f4b58ac 100644
--- a/docs/TODO-System.md
+++ b/TODO-System.md
@@ -231,6 +231,6 @@ automatically. If you're seeing loops:
---
# Additional Docs
-- [Agents](./Agents.md) - Full agent configuration guide
-- [Function Calling](./function-calling/Tools.md) - How tools work in Loki
-- [Sessions](./Sessions.md) - How conversation state is managed
+- [Agents](Agents) - Full agent configuration guide
+- [Function Calling](Tools) - How tools work in Loki
+- [Sessions](Sessions) - How conversation state is managed
diff --git a/docs/Themes.md b/Themes.md
similarity index 100%
rename from docs/Themes.md
rename to Themes.md
diff --git a/docs/function-calling/Tools.md b/Tools.md
similarity index 98%
rename from docs/function-calling/Tools.md
rename to Tools.md
index 43b5a99..996a092 100644
--- a/docs/function-calling/Tools.md
+++ b/Tools.md
@@ -85,7 +85,7 @@ are globally enabled/disabled globally.
When running in REPL-mode, the `function_calling_support` and `enabled_tools` settings can be overridden using the
`.set` command:
-
+
You'll notice that mentioned above, some tools are disabled while others are enabled. How is that determined?
@@ -113,7 +113,7 @@ enabled_tools: query_jira_issues # Which tools the role uses.
The values for `mapping_tools` are inherited from the [global configuration](#global-configuration).
-For more information about roles, refer to the [Roles](../Roles.md) documentation.
+For more information about roles, refer to the [Roles](Roles) documentation.
## Agent Configuration
When you create an agent, you have the following global tool-related configuration options available to you:
@@ -127,7 +127,7 @@ global_tools: # Which global tools the agent uses
The values for `mapping_tools` are inherited from the [global configuration](#global-configuration).
-For more information about agents, refer to the [Agents](../Agents.md) documentation.
+For more information about agents, refer to the [Agents](Agents) documentation.
For a full example configuration for an agent, see the [Agent Configuration Example](https://github.com/Dark-Alex-17/loki/blob/main/config.agent.example.yaml) file.
diff --git a/docs/Vault.md b/Vault.md
similarity index 98%
rename from docs/Vault.md
rename to Vault.md
index ef262f7..bd9ca24 100644
--- a/docs/Vault.md
+++ b/Vault.md
@@ -145,5 +145,5 @@ follows:
}
```
-For more information about variable usage within agents, refer to the [Variables section](./Agents.md#user-defined-variables) of the [Agents README](./Agents.md)
+For more information about variable usage within agents, refer to the [Variables section](Agents#user-defined-variables) of the [Agents documentation](Agents)
diff --git a/images/agents/conversation-starters.gif b/images/agents/conversation-starters.gif
new file mode 100644
index 0000000..594a663
Binary files /dev/null and b/images/agents/conversation-starters.gif differ
diff --git a/images/agents/sql.gif b/images/agents/sql.gif
new file mode 100644
index 0000000..b7fbd38
Binary files /dev/null and b/images/agents/sql.gif differ
diff --git a/images/agents/todo-system.png b/images/agents/todo-system.png
new file mode 100644
index 0000000..e66212a
Binary files /dev/null and b/images/agents/todo-system.png differ
diff --git a/images/macros/macros-example.gif b/images/macros/macros-example.gif
new file mode 100644
index 0000000..005beb0
Binary files /dev/null and b/images/macros/macros-example.gif differ
diff --git a/images/mcp/global-settings-overrides-repl.png b/images/mcp/global-settings-overrides-repl.png
new file mode 100644
index 0000000..00adbcf
Binary files /dev/null and b/images/mcp/global-settings-overrides-repl.png differ
diff --git a/images/rag/ephemeral-rag.gif b/images/rag/ephemeral-rag.gif
new file mode 100644
index 0000000..fb31d62
Binary files /dev/null and b/images/rag/ephemeral-rag.gif differ
diff --git a/images/rag/git-loader.png b/images/rag/git-loader.png
new file mode 100644
index 0000000..b6905f8
Binary files /dev/null and b/images/rag/git-loader.png differ
diff --git a/images/rag/persistent-rag.gif b/images/rag/persistent-rag.gif
new file mode 100644
index 0000000..6459312
Binary files /dev/null and b/images/rag/persistent-rag.gif differ
diff --git a/images/repl/continue.gif b/images/repl/continue.gif
new file mode 100644
index 0000000..3fae887
Binary files /dev/null and b/images/repl/continue.gif differ
diff --git a/images/repl/copy.gif b/images/repl/copy.gif
new file mode 100644
index 0000000..ad86371
Binary files /dev/null and b/images/repl/copy.gif differ
diff --git a/images/repl/model.gif b/images/repl/model.gif
new file mode 100644
index 0000000..f64bfd7
Binary files /dev/null and b/images/repl/model.gif differ
diff --git a/images/repl/regenerate.gif b/images/repl/regenerate.gif
new file mode 100644
index 0000000..ad798cc
Binary files /dev/null and b/images/repl/regenerate.gif differ
diff --git a/images/repl/set.gif b/images/repl/set.gif
new file mode 100644
index 0000000..3882417
Binary files /dev/null and b/images/repl/set.gif differ
diff --git a/images/roles/code.gif b/images/roles/code.gif
new file mode 100644
index 0000000..18c1d69
Binary files /dev/null and b/images/roles/code.gif differ
diff --git a/images/roles/prompt-role.gif b/images/roles/prompt-role.gif
new file mode 100644
index 0000000..54be216
Binary files /dev/null and b/images/roles/prompt-role.gif differ
diff --git a/images/sessions/sessions-example.gif b/images/sessions/sessions-example.gif
new file mode 100644
index 0000000..b4eef8a
Binary files /dev/null and b/images/sessions/sessions-example.gif differ
diff --git a/images/shell_integrations/assistant.gif b/images/shell_integrations/assistant.gif
new file mode 100644
index 0000000..511730d
Binary files /dev/null and b/images/shell_integrations/assistant.gif differ
diff --git a/images/shell_integrations/code-generation.gif b/images/shell_integrations/code-generation.gif
new file mode 100644
index 0000000..a757bff
Binary files /dev/null and b/images/shell_integrations/code-generation.gif differ
diff --git a/images/shell_integrations/explain-shell.png b/images/shell_integrations/explain-shell.png
new file mode 100644
index 0000000..84690e4
Binary files /dev/null and b/images/shell_integrations/explain-shell.png differ
diff --git a/images/themes/1337-scheme.png b/images/themes/1337-scheme.png
new file mode 100644
index 0000000..6ad2e87
Binary files /dev/null and b/images/themes/1337-scheme.png differ
diff --git a/images/themes/coldark.png b/images/themes/coldark.png
new file mode 100644
index 0000000..2501fc5
Binary files /dev/null and b/images/themes/coldark.png differ
diff --git a/images/themes/dracula.png b/images/themes/dracula.png
new file mode 100644
index 0000000..3077c05
Binary files /dev/null and b/images/themes/dracula.png differ
diff --git a/images/themes/github.png b/images/themes/github.png
new file mode 100644
index 0000000..e6f98c6
Binary files /dev/null and b/images/themes/github.png differ
diff --git a/images/themes/gruvbox-dark.png b/images/themes/gruvbox-dark.png
new file mode 100644
index 0000000..fbaf262
Binary files /dev/null and b/images/themes/gruvbox-dark.png differ
diff --git a/images/themes/gruvbox-light.png b/images/themes/gruvbox-light.png
new file mode 100644
index 0000000..616b201
Binary files /dev/null and b/images/themes/gruvbox-light.png differ
diff --git a/images/themes/onehalf-dark.png b/images/themes/onehalf-dark.png
new file mode 100644
index 0000000..9146282
Binary files /dev/null and b/images/themes/onehalf-dark.png differ
diff --git a/images/themes/onehalf-light.png b/images/themes/onehalf-light.png
new file mode 100644
index 0000000..86ed15b
Binary files /dev/null and b/images/themes/onehalf-light.png differ
diff --git a/images/themes/solarized-dark.png b/images/themes/solarized-dark.png
new file mode 100644
index 0000000..4458464
Binary files /dev/null and b/images/themes/solarized-dark.png differ
diff --git a/images/themes/solarized-light.png b/images/themes/solarized-light.png
new file mode 100644
index 0000000..1c71093
Binary files /dev/null and b/images/themes/solarized-light.png differ
diff --git a/images/themes/sublime-snazzy.png b/images/themes/sublime-snazzy.png
new file mode 100644
index 0000000..6136a0b
Binary files /dev/null and b/images/themes/sublime-snazzy.png differ
diff --git a/images/themes/twodark.png b/images/themes/twodark.png
new file mode 100644
index 0000000..a301183
Binary files /dev/null and b/images/themes/twodark.png differ
diff --git a/images/themes/visual-studio-dark-plus.png b/images/themes/visual-studio-dark-plus.png
new file mode 100644
index 0000000..1222644
Binary files /dev/null and b/images/themes/visual-studio-dark-plus.png differ
diff --git a/images/themes/zenburn.png b/images/themes/zenburn.png
new file mode 100644
index 0000000..5aee8df
Binary files /dev/null and b/images/themes/zenburn.png differ
diff --git a/images/tools/global-settings-overrides-repl.png b/images/tools/global-settings-overrides-repl.png
new file mode 100644
index 0000000..463f638
Binary files /dev/null and b/images/tools/global-settings-overrides-repl.png differ
diff --git a/images/tools/prompt-utils-checkbox.png b/images/tools/prompt-utils-checkbox.png
new file mode 100644
index 0000000..f557f4a
Binary files /dev/null and b/images/tools/prompt-utils-checkbox.png differ
diff --git a/images/tools/prompt-utils-confirm.png b/images/tools/prompt-utils-confirm.png
new file mode 100644
index 0000000..cc18a8b
Binary files /dev/null and b/images/tools/prompt-utils-confirm.png differ
diff --git a/images/tools/prompt-utils-debug.png b/images/tools/prompt-utils-debug.png
new file mode 100644
index 0000000..2eed9bb
Binary files /dev/null and b/images/tools/prompt-utils-debug.png differ
diff --git a/images/tools/prompt-utils-error.png b/images/tools/prompt-utils-error.png
new file mode 100644
index 0000000..3f3e733
Binary files /dev/null and b/images/tools/prompt-utils-error.png differ
diff --git a/images/tools/prompt-utils-info.png b/images/tools/prompt-utils-info.png
new file mode 100644
index 0000000..221f0e8
Binary files /dev/null and b/images/tools/prompt-utils-info.png differ
diff --git a/images/tools/prompt-utils-input.png b/images/tools/prompt-utils-input.png
new file mode 100644
index 0000000..513e567
Binary files /dev/null and b/images/tools/prompt-utils-input.png differ
diff --git a/images/tools/prompt-utils-list.png b/images/tools/prompt-utils-list.png
new file mode 100644
index 0000000..604d146
Binary files /dev/null and b/images/tools/prompt-utils-list.png differ
diff --git a/images/tools/prompt-utils-password.png b/images/tools/prompt-utils-password.png
new file mode 100644
index 0000000..2206020
Binary files /dev/null and b/images/tools/prompt-utils-password.png differ
diff --git a/images/tools/prompt-utils-trace.png b/images/tools/prompt-utils-trace.png
new file mode 100644
index 0000000..f698c2e
Binary files /dev/null and b/images/tools/prompt-utils-trace.png differ
diff --git a/images/tools/prompt-utils-validate-present.png b/images/tools/prompt-utils-validate-present.png
new file mode 100644
index 0000000..bacd958
Binary files /dev/null and b/images/tools/prompt-utils-validate-present.png differ
diff --git a/images/tools/prompt-utils-warning.png b/images/tools/prompt-utils-warning.png
new file mode 100644
index 0000000..5363986
Binary files /dev/null and b/images/tools/prompt-utils-warning.png differ
diff --git a/images/tools/prompt-utils-with-validate.png b/images/tools/prompt-utils-with-validate.png
new file mode 100644
index 0000000..4c4dbb8
Binary files /dev/null and b/images/tools/prompt-utils-with-validate.png differ
diff --git a/images/vault/vault-demo.gif b/images/vault/vault-demo.gif
new file mode 100644
index 0000000..dd473e6
Binary files /dev/null and b/images/vault/vault-demo.gif differ
diff --git a/images/vault/vault-repl-commands.png b/images/vault/vault-repl-commands.png
new file mode 100644
index 0000000..0562a49
Binary files /dev/null and b/images/vault/vault-repl-commands.png differ
diff --git a/images/vault/vault-repl.png b/images/vault/vault-repl.png
new file mode 100644
index 0000000..9c7d6aa
Binary files /dev/null and b/images/vault/vault-repl.png differ