# monkeycoder-18/impression architecture

> Architecture diagram of the GitHub repository monkeycoder-18/impression, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/monkeycoder-18/impression
- Repository: https://github.com/monkeycoder-18/impression

## Overview

WordPress is a semantic publishing platform with browser-based setup, content management, and extensibility. The README documents installation, import, and automatic updating; the sampled code additionally exposes a WordPress AI Client workflow: callers configure a prompt, the SDK selects and invokes a model, and callers receive typed generation results. The AI-related source index is unusually prominent here, so it is represented as a substantial subsystem. Several WordPress capabilities are identifiable from the tree or README, but their internal wiring was not sampled; unsupported connections are omitted.

Main entry points: [`wp-includes/php-ai-client/src/Builders/PromptBuilder.php`](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Builders/PromptBuilder.php) (Prompt builder), [`wp-admin/admin.php`](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/admin.php) (Administration), [`wp-includes/php-ai-client/src/Providers/ProviderRegistry.php`](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/ProviderRegistry.php) (Provider registry), [`wp-includes/php-ai-client/src/AiClient.php`](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/AiClient.php) (AI client API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["WordPress platform"]
  node_wp_site["WordPress site<br/>[index.php]"]
  node_wp_admin["Administration<br/>[admin.php]"]
  node_installer["Site installer<br/>[install.php]"]
  node_updater["Core updater<br/>[update-core.php]"]
end

subgraph group_content["Publishing and content"]
  node_importer["Content importer<br/>[import.php]"]
  node_content_editor["Content editing<br/>[post.php]"]
  node_rest_posts["Posts API"]
end

subgraph group_extension["Extensions and themes"]
  node_themes["Themes<br/>[themes.php]"]
  node_plugins["Plugins"]
end

subgraph group_aiwp["WordPress AI API"]
  node_wp_ai_builder["AI prompt wrapper"]
end

subgraph group_aisdk["AI client SDK"]
  node_sdk_client["AI client API<br/>[AiClient.php]"]
  node_prompt_builder["Prompt builder<br/>[PromptBuilder.php]"]
  node_provider_registry["Provider registry"]
  node_model_contract["Model contract<br/>[ModelInterface.php]"]
  node_model_config["Model configuration<br/>[ModelConfig.php]"]
  node_conversation["Conversation messages<br/>[Message.php]"]
  node_file_input["File inputs<br/>[File.php]"]
  node_generation_result["Generation results"]
end

node_site_visitor(("Site visitor"))
node_ai_provider{{"AI provider"}}

node_site_visitor -.->|"visits"| node_wp_site
node_wp_admin -->|"sets up"| node_installer
node_wp_admin -->|"opens updater"| node_updater
node_wp_admin -->|"opens importer"| node_importer
node_wp_admin -.->|"edits content"| node_content_editor
node_plugins -->|"extends"| node_wp_site
node_sdk_client -->|"delegates generation"| node_prompt_builder
node_sdk_client -->|"creates registry"| node_provider_registry
node_wp_ai_builder -->|"wraps builder"| node_prompt_builder
node_prompt_builder -->|"configures model"| node_model_config
node_prompt_builder -->|"builds messages"| node_conversation
node_prompt_builder -->|"accepts files"| node_file_input
node_prompt_builder -.->|"selects provider"| node_provider_registry
node_prompt_builder -->|"invokes model"| node_model_contract
node_provider_registry -.->|"registers providers"| node_ai_provider
node_model_contract -.->|"returns result"| node_generation_result

click node_wp_site "https://github.com/monkeycoder-18/impression/blob/main/index.php"
click node_wp_admin "https://github.com/monkeycoder-18/impression/blob/main/wp-admin/admin.php"
click node_installer "https://github.com/monkeycoder-18/impression/blob/main/wp-admin/install.php"
click node_updater "https://github.com/monkeycoder-18/impression/blob/main/wp-admin/update-core.php"
click node_importer "https://github.com/monkeycoder-18/impression/blob/main/wp-admin/import.php"
click node_content_editor "https://github.com/monkeycoder-18/impression/blob/main/wp-admin/post.php"
click node_rest_posts "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php"
click node_themes "https://github.com/monkeycoder-18/impression/blob/main/wp-admin/themes.php"
click node_plugins "https://github.com/monkeycoder-18/impression/tree/main/wp-content/plugins"
click node_wp_ai_builder "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/ai-client/class-wp-ai-client-prompt-builder.php"
click node_sdk_client "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/AiClient.php"
click node_prompt_builder "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Builders/PromptBuilder.php"
click node_provider_registry "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/ProviderRegistry.php"
click node_model_contract "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/Models/Contracts/ModelInterface.php"
click node_model_config "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/Models/DTO/ModelConfig.php"
click node_conversation "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Messages/DTO/Message.php"
click node_file_input "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Files/DTO/File.php"
click node_generation_result "https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Results/DTO/GenerativeAiResult.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_wp_site,node_wp_admin,node_installer,node_updater toneBlue
class node_importer,node_content_editor,node_rest_posts toneAmber
class node_themes,node_plugins toneMint
class node_wp_ai_builder toneRose
class node_sdk_client,node_prompt_builder,node_provider_registry,node_model_contract,node_model_config,node_conversation,node_file_input,node_generation_result,node_site_visitor,node_ai_provider toneIndigo
```

## Components

### WordPress platform

- [WordPress site](https://github.com/monkeycoder-18/impression/blob/main/index.php): `index.php`
- [Administration](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/admin.php): `wp-admin/admin.php`
- [Site installer](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/install.php): `wp-admin/install.php`
- [Core updater](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/update-core.php): `wp-admin/update-core.php`

### Publishing and content

- [Content importer](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/import.php): `wp-admin/import.php`
- [Content editing](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/post.php): `wp-admin/post.php`
- [Posts API](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php): `wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php`

### Extensions and themes

- [Themes](https://github.com/monkeycoder-18/impression/blob/main/wp-admin/themes.php): `wp-admin/themes.php`
- [Plugins](https://github.com/monkeycoder-18/impression/tree/main/wp-content/plugins): `wp-content/plugins`

### WordPress AI API

- [AI prompt wrapper](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/ai-client/class-wp-ai-client-prompt-builder.php): `wp-includes/ai-client/class-wp-ai-client-prompt-builder.php`

### AI client SDK

- [AI client API](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/AiClient.php): `wp-includes/php-ai-client/src/AiClient.php`
- [Prompt builder](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Builders/PromptBuilder.php): `wp-includes/php-ai-client/src/Builders/PromptBuilder.php`
- [Provider registry](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/ProviderRegistry.php): `wp-includes/php-ai-client/src/Providers/ProviderRegistry.php`
- [Model contract](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/Models/Contracts/ModelInterface.php): `wp-includes/php-ai-client/src/Providers/Models/Contracts/ModelInterface.php`
- [Model configuration](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Providers/Models/DTO/ModelConfig.php): `wp-includes/php-ai-client/src/Providers/Models/DTO/ModelConfig.php`
- [Conversation messages](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Messages/DTO/Message.php): `wp-includes/php-ai-client/src/Messages/DTO/Message.php`
- [File inputs](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Files/DTO/File.php): `wp-includes/php-ai-client/src/Files/DTO/File.php`
- [Generation results](https://github.com/monkeycoder-18/impression/blob/main/wp-includes/php-ai-client/src/Results/DTO/GenerativeAiResult.php): `wp-includes/php-ai-client/src/Results/DTO/GenerativeAiResult.php`

### Other components

- **Site visitor**
- **AI provider**

## Connections

- Site visitor → WordPress site: visits
- Administration → Site installer: sets up
- Administration → Core updater: opens updater
- Administration → Content importer: opens importer
- Administration → Content editing: edits content
- Plugins → WordPress site: extends
- AI client API → Prompt builder: delegates generation (evidence: `wp-includes/php-ai-client/src/AiClient.php`)
- AI client API → Provider registry: creates registry (evidence: `wp-includes/php-ai-client/src/AiClient.php`)
- AI prompt wrapper → Prompt builder: wraps builder (evidence: `wp-includes/ai-client/class-wp-ai-client-prompt-builder.php`)
- Prompt builder → Model configuration: configures model (evidence: `wp-includes/php-ai-client/src/Builders/PromptBuilder.php`)
- Prompt builder → Conversation messages: builds messages (evidence: `wp-includes/php-ai-client/src/Builders/PromptBuilder.php`)
- Prompt builder → File inputs: accepts files (evidence: `wp-includes/php-ai-client/src/Builders/PromptBuilder.php`)
- Prompt builder → Provider registry: selects provider (evidence: `wp-includes/php-ai-client/src/Builders/PromptBuilder.php`)
- Prompt builder → Model contract: invokes model (evidence: `wp-includes/php-ai-client/src/Builders/PromptBuilder.php`)
- Provider registry → AI provider: registers providers
- Model contract → Generation results: returns result
