vars: { d2-config: { layout-engine: elk theme-id: 105 } } classes: { protocol: { shape: class style.stroke-dash: 3 style.fill: "#f4a261" } implementation: { shape: class } } ports { grid-rows: 2 height: 2500 logical_ports { grid-rows: 2 changes_repo_protocol: <> ChangesRepositoryPrtcl { -source_type: "GitServerAPIPrtcl | GitCLIPrtcl" get_change_request_data(project_id int\|str, change_id int): Change } changes_repo_protocol.class: protocol intelligence_service_protocol: <> IntelligenceServicePrtcl { -engine_type: "LLMServerPrtcl | LLMSDKPrtcl" load_instructions(): ChatSession instruct_model(ChatSession): LLMResponse } intelligence_service_protocol.class: protocol } infrastructure_ports { grid-rows: 4 gitserver_protocol: <> GitServerAPIPrtcl gitserver_protocol.class: protocol gitcli_protocol: <> GitCLIPrtcl gitcli_protocol.class: protocol llmserver_protocol: <> LLMServerPrtcl llmserver_protocol.class: protocol llmsdk_protocol: <> LLMSDKPrtcl llmsdk_protocol.class: protocol } } adapters { grid-rows: 5 height: 2500 repository: Repositories & Services { grid-rows: 2 changes_repo: ChangesRepository { -source_type: "GitServerAPIPrtcl | GitCLIPrtcl" get_change_request_data(project_id str, change_id int): Change } changes_repo.class: implementation intelligence_service: IntelligenceService { -engine_type: "LLMServerPrtcl | LLMSDKPrtcl" load_instructions(): ChatSession instruct_model(session ChatSession): LLMResponse } intelligence_service.class: implementation } gitserver { grid-rows: 2 gitlab_server: GitLab Server gitlab_server.class: implementation forgejo_server: Forgejo Server forgejo_server.class: implementation } gitcli { grid-rows: 2 gitlab_cli: GlabAdapter gitlab_cli.class: implementation forgejo_cli: FjAdapter forgejo_cli.class: implementation } llmserver { grid-rows: 2 lmstudio_adapter: LMStudioAdapter lmstudio_adapter.class: implementation openai_adapter: OpenAIAdapter openai_adapter.class: implementation } llmsdk { grid-rows: 2 llamacpp_adapter: LLamacppAdapter llamacpp_adapter.class: implementation mlxlm_adapter: MLXLMAdapter mlxlm_adapter.class: implementation } } adapters.repository.changes_repo -> ports.logical_ports.changes_repo_protocol: Implements adapters.repository.intelligence_service -> ports.logical_ports.intelligence_service_protocol: Implements adapters.llmserver.lmstudio_adapter -> ports.infrastructure_ports.llmserver_protocol: Implements adapters.llmserver.openai_adapter -> ports.infrastructure_ports.llmserver_protocol: Implements adapters.llmsdk.llamacpp_adapter -> ports.infrastructure_ports.llmsdk_protocol: Implements adapters.llmsdk.mlxlm_adapter -> ports.infrastructure_ports.llmsdk_protocol: Implements adapters.gitserver.gitlab_server -> ports.infrastructure_ports.gitserver_protocol: Implements adapters.gitserver.forgejo_server -> ports.infrastructure_ports.gitserver_protocol: Implements adapters.gitcli.gitlab_cli -> ports.infrastructure_ports.gitcli_protocol: Implements adapters.gitcli.forgejo_cli -> ports.infrastructure_ports.gitcli_protocol: Implements