Files
Fu-Jie_openwebui-extensions/plugins/pipes/github-copilot-sdk/INTERNAL_KNOWLEDGE.md

2.6 KiB

GitHub Copilot SDK Pipe - Internal Architecture & Knowledge

This document details the core runtime mechanisms, file layout, and deep integration logic of the GitHub Copilot SDK plugin within the OpenWebUI environment.

1. Core Environmental Context

1.1 Filesystem Layout

Path Description Permissions
/app/backend OpenWebUI backend Python source code Read-Only
/app/build OpenWebUI frontend assets (Artifacts renderer location) Read-Only
/root/.copilot/ SDK core configuration and state storage Full Control
/app/backend/data/copilot_workspace/ Plugin-specific persistent workspace Read/Write

1.2 Identity Mapping Mechanism

  • Session ID Binding: The plugin strictly maps OpenWebUI's Chat ID to the Copilot SDK's Session ID.
  • Outcome: Every chat session has its own isolated physical directory: /root/.copilot/session-state/{chat_id}/.

2. TODO List Persistence (TODO Intelligence)

2.1 Data Source

TODO data is not stored in a standalone database table for basic operations but is captured from the session event stream via the update_todo tool:

  • Storage File: /root/.copilot/session-state/{chat_id}/events.jsonl
  • Detection: Scans for the latest tool.execution_complete event where toolName is update_todo.

2.2 Data Format (NDJSON)

{
  "type": "tool.execution_complete",
  "data": {
    "toolName": "update_todo",
    "result": { 
      "detailedContent": "TODO List content...", 
      "toolTelemetry": { "metrics": { "total_items": 3 } } 
    }
  }
}

3. Toolchain Integration

The plugin harmonizes three distinct tool systems:

  1. Copilot Native: Built-in capabilities like bash, edit, and task.
  2. OpenWebUI Ecosystem: Dynamically mounts local Python tools and built-in Web Search via get_tools.
  3. MCP (Model Context Protocol): External capability extensions via servers like GDMap or Pandoc.

4. Security & Permissions

4.1 Admin Mode (God Mode)

When __user__['role'] == 'admin':

  • ADMIN_EXTENSIONS are enabled.
  • Access to DATABASE_URL via environment variables is permitted.
  • bash can be used to diagnose internal state within /root/.copilot/.

4.2 Regular User Mode

  • USER_RESTRICTIONS are strictly enforced.
  • Probing environment variables or database credentials is prohibited.
  • bash activity is strictly confined to the isolated workspace.

5. Common Maintenance

  • Reset Session: Delete the /root/.copilot/session-state/{chat_id} directory.
  • Clear Cache: Disable ENABLE_TOOL_CACHE in Valves.
  • View Logs: Check latest logs under /root/.copilot/logs/.