diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1515b3..567342d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,25 +2,79 @@ name: CI on: push: - branches: [main] + branches: [dev, main] + pull_request: + branches: [dev, main] + +permissions: + contents: read + +env: + GOFLAGS: -buildvcs=false + GOWORK: "off" + GOPROXY: "direct" + GOSUMDB: "off" jobs: test: + name: Test + Coverage runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-go@v5 + - uses: actions/checkout@v5 with: - go-version-file: go.mod - - - name: Run tests with coverage - run: | - go test -coverprofile=coverage.out ./pkg/mcp/... - sed -i 's|forge.lthn.ai/core/mcp/||g' coverage.out - - - name: Upload to Codecov + fetch-depth: 0 + - uses: actions/setup-go@v6 + with: + go-version: '1.26' + - name: Test with coverage + working-directory: go + run: go test -race -coverprofile=coverage.out -covermode=atomic -count=1 ./... + - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: - files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} + files: go/coverage.out + flags: unittests + fail_ci_if_error: false + + lint: + name: golangci-lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-go@v6 + with: + go-version: '1.26' + - uses: golangci/golangci-lint-action@v9 + with: + version: latest + working-directory: go + args: --timeout=5m --tests=false + + sonarcloud: + name: SonarCloud + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v5 + with: + fetch-depth: 0 + - uses: actions/setup-go@v6 + with: + go-version: '1.26' + - name: Test for coverage + working-directory: go + run: go test -coverprofile=coverage.out -covermode=atomic -count=1 ./... + - name: SonarCloud Scan + uses: SonarSource/sonarqube-scan-action@v6 + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + with: + args: > + -Dsonar.organization=dappcore + -Dsonar.projectKey=dappcore_mcp + -Dsonar.sources=go + -Dsonar.exclusions=**/vendor/**,**/third_party/**,**/.tmp/**,**/*_test.go + -Dsonar.tests=go + -Dsonar.test.inclusions=**/*_test.go + -Dsonar.go.coverage.reportPaths=go/coverage.out diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..63a8bad --- /dev/null +++ b/.gitmodules @@ -0,0 +1,24 @@ +[submodule "external/go"] + path = external/go + url = https://github.com/dappcore/go.git + branch = dev +[submodule "external/io"] + path = external/io + url = https://github.com/dappcore/go-io.git + branch = dev +[submodule "external/log"] + path = external/log + url = https://github.com/dappcore/go-log.git + branch = dev +[submodule "external/process"] + path = external/process + url = https://github.com/dappcore/go-process.git + branch = dev +[submodule "external/rag"] + path = external/rag + url = https://github.com/dappcore/go-rag.git + branch = dev +[submodule "external/ws"] + path = external/ws + url = https://github.com/dappcore/go-ws.git + branch = dev diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..60358ee --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,37 @@ +# Woodpecker CI pipeline. +# Server: ci.lthn.sh. Lint + sonar in parallel, both depend only on clone. +# sonar_token is admin-scoped on the Woodpecker server. + +when: + - event: push + branch: [dev, main] + +steps: + - name: golangci-lint + image: golangci/golangci-lint:latest-alpine + depends_on: [] + environment: + GOFLAGS: -buildvcs=false + GOWORK: "off" + commands: + - cd go && golangci-lint run --timeout=5m ./... + + - name: go-test + image: golang:1.26-alpine + depends_on: [] + environment: + GOFLAGS: -buildvcs=false + GOWORK: "off" + CGO_ENABLED: "1" + commands: + - apk add --no-cache git build-base + - cd go && go test -race -coverprofile=coverage.out -covermode=atomic -count=1 ./... + - name: sonar + image: sonarsource/sonar-scanner-cli:latest + depends_on: [go-test] + environment: + SONAR_HOST_URL: https://sonar.lthn.sh + SONAR_TOKEN: + from_secret: sonar_token + commands: + - sonar-scanner diff --git a/CLAUDE.md b/CLAUDE.md index a83a086..41775ec 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,21 +6,33 @@ Guidance for Claude Code and Codex when working with this repository. `forge.lthn.ai/core/mcp` — Model Context Protocol server with file operations, tool registration, notification broadcasting, and channel events. +Repo layout has become language-segmented: + +```text +core/mcp/ +├── go/ — Go module `dappco.re/go/mcp` +├── php/ — PHP Laravel package (formerly `src/`) +├── docs/ — shared docs +└── composer.json +``` + +The Go module is `core/mcp/go/`; the PHP package is `core/mcp/php/`. + Licence: EUPL-1.2 ## Build & Test ```bash -go test ./pkg/mcp/... # run all tests -go build ./pkg/mcp/... # verify compilation -go build ./cmd/core-mcp/ # build binary +(cd go && go test ./pkg/mcp/...) # run all tests +(cd go && go build ./pkg/mcp/...) # verify compilation +(cd go && go build ./cmd/core-mcp/) # build binary ``` Or via the Core CLI: ```bash -core go test -core go qa # fmt + vet + lint + test +(cd go && core go test) +(cd go && core go qa) # fmt + vet + lint + test ``` ## API Shape @@ -126,4 +138,6 @@ Selected by `Run()` in priority order: ## Go Workspace -Part of `~/Code/go.work`. Use `GOWORK=off` to test in isolation. +The Go stack in this repo is nested as `go/`: + +`cd go && GOWORK=off go test ./...` for isolated module verification. diff --git a/README.md b/README.md index 6e311d0..51df0e2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ + + # mcp -Model Context Protocol — Go MCP server + Laravel MCP package \ No newline at end of file +> MCP server framework — Go runtime + PHP package; tool/resource/prompt registry + +[![CI](https://github.com/dappcore/mcp/actions/workflows/ci.yml/badge.svg?branch=dev)](https://github.com/dappcore/mcp/actions/workflows/ci.yml) +[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=dappcore_mcp&metric=alert_status)](https://sonarcloud.io/dashboard?id=dappcore_mcp) +[![Coverage](https://codecov.io/gh/dappcore/mcp/branch/dev/graph/badge.svg)](https://codecov.io/gh/dappcore/mcp) +[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=dappcore_mcp&metric=security_rating)](https://sonarcloud.io/dashboard?id=dappcore_mcp) +[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=dappcore_mcp&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=dappcore_mcp) +[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=dappcore_mcp&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=dappcore_mcp) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=dappcore_mcp&metric=code_smells)](https://sonarcloud.io/dashboard?id=dappcore_mcp) +[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=dappcore_mcp&metric=ncloc)](https://sonarcloud.io/dashboard?id=dappcore_mcp) +[![Go Reference](https://pkg.go.dev/badge/dappco.re/go/mcp.svg)](https://pkg.go.dev/dappco.re/go/mcp) +[![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](https://eupl.eu/1.2/en/) + + +Model Context Protocol — Go MCP server + Laravel MCP package diff --git a/cmd/core-mcp/main.go b/cmd/core-mcp/main.go deleted file mode 100644 index b704cd5..0000000 --- a/cmd/core-mcp/main.go +++ /dev/null @@ -1,12 +0,0 @@ -package main - -import ( - core "dappco.re/go" - mcpcmd "dappco.re/go/mcp/cmd/mcpcmd" -) - -func main() { - c := core.New(core.WithService(core.CliRegister)) - mcpcmd.AddMCPCommands(c) - c.Run() -} diff --git a/composer.json b/composer.json index 7f9c2f0..72333f2 100644 --- a/composer.json +++ b/composer.json @@ -9,14 +9,14 @@ }, "autoload": { "psr-4": { - "Core\\Mcp\\": "src/php/src/Mcp/", - "Core\\Website\\Mcp\\": "src/php/src/Website/Mcp/", - "Core\\Front\\Mcp\\": "src/php/src/Front/Mcp/" + "Core\\Mcp\\": "php/src/Mcp/", + "Core\\Website\\Mcp\\": "php/src/Website/Mcp/", + "Core\\Front\\Mcp\\": "php/src/Front/Mcp/" } }, "autoload-dev": { "psr-4": { - "Core\\Mcp\\Tests\\": "src/php/tests/" + "Core\\Mcp\\Tests\\": "php/tests/" } }, "extra": { diff --git a/external/go b/external/go new file mode 160000 index 0000000..d661b70 --- /dev/null +++ b/external/go @@ -0,0 +1 @@ +Subproject commit d661b703e16183b3cbab101de189f688888a1174 diff --git a/external/io b/external/io new file mode 160000 index 0000000..789653d --- /dev/null +++ b/external/io @@ -0,0 +1 @@ +Subproject commit 789653dfc376383a3873993cdb875c8c717e4b05 diff --git a/external/log b/external/log new file mode 160000 index 0000000..df05298 --- /dev/null +++ b/external/log @@ -0,0 +1 @@ +Subproject commit df0529839b2ab786a6a3da374fa664867d5f9f09 diff --git a/external/process b/external/process new file mode 160000 index 0000000..a0ad5cb --- /dev/null +++ b/external/process @@ -0,0 +1 @@ +Subproject commit a0ad5cbdea96ba43e86bceb1fa8c0b07d0343b3f diff --git a/external/rag b/external/rag new file mode 160000 index 0000000..8253303 --- /dev/null +++ b/external/rag @@ -0,0 +1 @@ +Subproject commit 825330379dae0b6be1597ac8d92f8db2624038e2 diff --git a/external/ws b/external/ws new file mode 160000 index 0000000..c83f7a1 --- /dev/null +++ b/external/ws @@ -0,0 +1 @@ +Subproject commit c83f7a1d91c314543ac0d61d14a13b24877b8cd7 diff --git a/go.work b/go.work new file mode 100644 index 0000000..7942ff9 --- /dev/null +++ b/go.work @@ -0,0 +1,14 @@ +go 1.26.2 + +// Workspace mode for development: pulls fresh code from external/ submodules. +// CI uses GOWORK=off to fall back to go/go.mod tags (reproducible). + +use ( + ./go + ./external/go + ./external/io + ./external/log + ./external/process + ./external/rag + ./external/ws +) diff --git a/go/AGENTS.md b/go/AGENTS.md new file mode 120000 index 0000000..be77ac8 --- /dev/null +++ b/go/AGENTS.md @@ -0,0 +1 @@ +../AGENTS.md \ No newline at end of file diff --git a/go/CLAUDE.md b/go/CLAUDE.md new file mode 120000 index 0000000..949a29f --- /dev/null +++ b/go/CLAUDE.md @@ -0,0 +1 @@ +../CLAUDE.md \ No newline at end of file diff --git a/go/README.md b/go/README.md new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/go/README.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/cmd/brain-seed/main.go b/go/cmd/brain-seed/main.go similarity index 100% rename from cmd/brain-seed/main.go rename to go/cmd/brain-seed/main.go diff --git a/cmd/mcpcmd/cmd_mcp.go b/go/cmd/mcpcmd/cmd_mcp.go similarity index 100% rename from cmd/mcpcmd/cmd_mcp.go rename to go/cmd/mcpcmd/cmd_mcp.go diff --git a/cmd/mcpcmd/cmd_mcp_example_test.go b/go/cmd/mcpcmd/cmd_mcp_example_test.go similarity index 100% rename from cmd/mcpcmd/cmd_mcp_example_test.go rename to go/cmd/mcpcmd/cmd_mcp_example_test.go diff --git a/cmd/mcpcmd/cmd_mcp_test.go b/go/cmd/mcpcmd/cmd_mcp_test.go similarity index 100% rename from cmd/mcpcmd/cmd_mcp_test.go rename to go/cmd/mcpcmd/cmd_mcp_test.go diff --git a/cmd/openbrain-mcp/README.md b/go/cmd/openbrain-mcp/README.md similarity index 100% rename from cmd/openbrain-mcp/README.md rename to go/cmd/openbrain-mcp/README.md diff --git a/cmd/openbrain-mcp/main.go b/go/cmd/openbrain-mcp/main.go similarity index 100% rename from cmd/openbrain-mcp/main.go rename to go/cmd/openbrain-mcp/main.go diff --git a/go/docs b/go/docs new file mode 120000 index 0000000..a9594bf --- /dev/null +++ b/go/docs @@ -0,0 +1 @@ +../docs \ No newline at end of file diff --git a/go.mod b/go/go.mod similarity index 100% rename from go.mod rename to go/go.mod diff --git a/go.sum b/go/go.sum similarity index 100% rename from go.sum rename to go/go.sum diff --git a/pkg/mcp/agentic/compliance_helpers_test.go b/go/pkg/mcp/agentic/compliance_helpers_test.go similarity index 100% rename from pkg/mcp/agentic/compliance_helpers_test.go rename to go/pkg/mcp/agentic/compliance_helpers_test.go diff --git a/pkg/mcp/agentic/coreio_compat.go b/go/pkg/mcp/agentic/coreio_compat.go similarity index 100% rename from pkg/mcp/agentic/coreio_compat.go rename to go/pkg/mcp/agentic/coreio_compat.go diff --git a/pkg/mcp/agentic/coreio_compat_example_test.go b/go/pkg/mcp/agentic/coreio_compat_example_test.go similarity index 100% rename from pkg/mcp/agentic/coreio_compat_example_test.go rename to go/pkg/mcp/agentic/coreio_compat_example_test.go diff --git a/pkg/mcp/agentic/coreio_compat_test.go b/go/pkg/mcp/agentic/coreio_compat_test.go similarity index 100% rename from pkg/mcp/agentic/coreio_compat_test.go rename to go/pkg/mcp/agentic/coreio_compat_test.go diff --git a/pkg/mcp/agentic/dispatch.go b/go/pkg/mcp/agentic/dispatch.go similarity index 100% rename from pkg/mcp/agentic/dispatch.go rename to go/pkg/mcp/agentic/dispatch.go diff --git a/pkg/mcp/agentic/dispatch_example_test.go b/go/pkg/mcp/agentic/dispatch_example_test.go similarity index 100% rename from pkg/mcp/agentic/dispatch_example_test.go rename to go/pkg/mcp/agentic/dispatch_example_test.go diff --git a/pkg/mcp/agentic/dispatch_test.go b/go/pkg/mcp/agentic/dispatch_test.go similarity index 100% rename from pkg/mcp/agentic/dispatch_test.go rename to go/pkg/mcp/agentic/dispatch_test.go diff --git a/pkg/mcp/agentic/epic.go b/go/pkg/mcp/agentic/epic.go similarity index 100% rename from pkg/mcp/agentic/epic.go rename to go/pkg/mcp/agentic/epic.go diff --git a/pkg/mcp/agentic/epic_example_test.go b/go/pkg/mcp/agentic/epic_example_test.go similarity index 100% rename from pkg/mcp/agentic/epic_example_test.go rename to go/pkg/mcp/agentic/epic_example_test.go diff --git a/pkg/mcp/agentic/epic_test.go b/go/pkg/mcp/agentic/epic_test.go similarity index 100% rename from pkg/mcp/agentic/epic_test.go rename to go/pkg/mcp/agentic/epic_test.go diff --git a/pkg/mcp/agentic/ingest.go b/go/pkg/mcp/agentic/ingest.go similarity index 100% rename from pkg/mcp/agentic/ingest.go rename to go/pkg/mcp/agentic/ingest.go diff --git a/pkg/mcp/agentic/issue.go b/go/pkg/mcp/agentic/issue.go similarity index 100% rename from pkg/mcp/agentic/issue.go rename to go/pkg/mcp/agentic/issue.go diff --git a/pkg/mcp/agentic/issue_example_test.go b/go/pkg/mcp/agentic/issue_example_test.go similarity index 100% rename from pkg/mcp/agentic/issue_example_test.go rename to go/pkg/mcp/agentic/issue_example_test.go diff --git a/pkg/mcp/agentic/issue_test.go b/go/pkg/mcp/agentic/issue_test.go similarity index 100% rename from pkg/mcp/agentic/issue_test.go rename to go/pkg/mcp/agentic/issue_test.go diff --git a/pkg/mcp/agentic/mirror.go b/go/pkg/mcp/agentic/mirror.go similarity index 100% rename from pkg/mcp/agentic/mirror.go rename to go/pkg/mcp/agentic/mirror.go diff --git a/pkg/mcp/agentic/mirror_example_test.go b/go/pkg/mcp/agentic/mirror_example_test.go similarity index 100% rename from pkg/mcp/agentic/mirror_example_test.go rename to go/pkg/mcp/agentic/mirror_example_test.go diff --git a/pkg/mcp/agentic/mirror_test.go b/go/pkg/mcp/agentic/mirror_test.go similarity index 100% rename from pkg/mcp/agentic/mirror_test.go rename to go/pkg/mcp/agentic/mirror_test.go diff --git a/pkg/mcp/agentic/plan.go b/go/pkg/mcp/agentic/plan.go similarity index 100% rename from pkg/mcp/agentic/plan.go rename to go/pkg/mcp/agentic/plan.go diff --git a/pkg/mcp/agentic/plan_example_test.go b/go/pkg/mcp/agentic/plan_example_test.go similarity index 100% rename from pkg/mcp/agentic/plan_example_test.go rename to go/pkg/mcp/agentic/plan_example_test.go diff --git a/pkg/mcp/agentic/plan_test.go b/go/pkg/mcp/agentic/plan_test.go similarity index 100% rename from pkg/mcp/agentic/plan_test.go rename to go/pkg/mcp/agentic/plan_test.go diff --git a/pkg/mcp/agentic/pr.go b/go/pkg/mcp/agentic/pr.go similarity index 100% rename from pkg/mcp/agentic/pr.go rename to go/pkg/mcp/agentic/pr.go diff --git a/pkg/mcp/agentic/pr_example_test.go b/go/pkg/mcp/agentic/pr_example_test.go similarity index 100% rename from pkg/mcp/agentic/pr_example_test.go rename to go/pkg/mcp/agentic/pr_example_test.go diff --git a/pkg/mcp/agentic/pr_test.go b/go/pkg/mcp/agentic/pr_test.go similarity index 100% rename from pkg/mcp/agentic/pr_test.go rename to go/pkg/mcp/agentic/pr_test.go diff --git a/pkg/mcp/agentic/prep.go b/go/pkg/mcp/agentic/prep.go similarity index 100% rename from pkg/mcp/agentic/prep.go rename to go/pkg/mcp/agentic/prep.go diff --git a/pkg/mcp/agentic/prep_example_test.go b/go/pkg/mcp/agentic/prep_example_test.go similarity index 100% rename from pkg/mcp/agentic/prep_example_test.go rename to go/pkg/mcp/agentic/prep_example_test.go diff --git a/pkg/mcp/agentic/prep_test.go b/go/pkg/mcp/agentic/prep_test.go similarity index 100% rename from pkg/mcp/agentic/prep_test.go rename to go/pkg/mcp/agentic/prep_test.go diff --git a/pkg/mcp/agentic/queue.go b/go/pkg/mcp/agentic/queue.go similarity index 100% rename from pkg/mcp/agentic/queue.go rename to go/pkg/mcp/agentic/queue.go diff --git a/pkg/mcp/agentic/queue_example_test.go b/go/pkg/mcp/agentic/queue_example_test.go similarity index 100% rename from pkg/mcp/agentic/queue_example_test.go rename to go/pkg/mcp/agentic/queue_example_test.go diff --git a/pkg/mcp/agentic/queue_test.go b/go/pkg/mcp/agentic/queue_test.go similarity index 100% rename from pkg/mcp/agentic/queue_test.go rename to go/pkg/mcp/agentic/queue_test.go diff --git a/pkg/mcp/agentic/repo_helpers.go b/go/pkg/mcp/agentic/repo_helpers.go similarity index 100% rename from pkg/mcp/agentic/repo_helpers.go rename to go/pkg/mcp/agentic/repo_helpers.go diff --git a/pkg/mcp/agentic/resume.go b/go/pkg/mcp/agentic/resume.go similarity index 100% rename from pkg/mcp/agentic/resume.go rename to go/pkg/mcp/agentic/resume.go diff --git a/pkg/mcp/agentic/resume_example_test.go b/go/pkg/mcp/agentic/resume_example_test.go similarity index 100% rename from pkg/mcp/agentic/resume_example_test.go rename to go/pkg/mcp/agentic/resume_example_test.go diff --git a/pkg/mcp/agentic/resume_test.go b/go/pkg/mcp/agentic/resume_test.go similarity index 100% rename from pkg/mcp/agentic/resume_test.go rename to go/pkg/mcp/agentic/resume_test.go diff --git a/pkg/mcp/agentic/review_queue.go b/go/pkg/mcp/agentic/review_queue.go similarity index 100% rename from pkg/mcp/agentic/review_queue.go rename to go/pkg/mcp/agentic/review_queue.go diff --git a/pkg/mcp/agentic/review_queue_example_test.go b/go/pkg/mcp/agentic/review_queue_example_test.go similarity index 100% rename from pkg/mcp/agentic/review_queue_example_test.go rename to go/pkg/mcp/agentic/review_queue_example_test.go diff --git a/pkg/mcp/agentic/review_queue_test.go b/go/pkg/mcp/agentic/review_queue_test.go similarity index 100% rename from pkg/mcp/agentic/review_queue_test.go rename to go/pkg/mcp/agentic/review_queue_test.go diff --git a/pkg/mcp/agentic/scan.go b/go/pkg/mcp/agentic/scan.go similarity index 100% rename from pkg/mcp/agentic/scan.go rename to go/pkg/mcp/agentic/scan.go diff --git a/pkg/mcp/agentic/scan_example_test.go b/go/pkg/mcp/agentic/scan_example_test.go similarity index 100% rename from pkg/mcp/agentic/scan_example_test.go rename to go/pkg/mcp/agentic/scan_example_test.go diff --git a/pkg/mcp/agentic/scan_test.go b/go/pkg/mcp/agentic/scan_test.go similarity index 100% rename from pkg/mcp/agentic/scan_test.go rename to go/pkg/mcp/agentic/scan_test.go diff --git a/pkg/mcp/agentic/status.go b/go/pkg/mcp/agentic/status.go similarity index 100% rename from pkg/mcp/agentic/status.go rename to go/pkg/mcp/agentic/status.go diff --git a/pkg/mcp/agentic/status_example_test.go b/go/pkg/mcp/agentic/status_example_test.go similarity index 100% rename from pkg/mcp/agentic/status_example_test.go rename to go/pkg/mcp/agentic/status_example_test.go diff --git a/pkg/mcp/agentic/status_test.go b/go/pkg/mcp/agentic/status_test.go similarity index 100% rename from pkg/mcp/agentic/status_test.go rename to go/pkg/mcp/agentic/status_test.go diff --git a/pkg/mcp/agentic/watch.go b/go/pkg/mcp/agentic/watch.go similarity index 100% rename from pkg/mcp/agentic/watch.go rename to go/pkg/mcp/agentic/watch.go diff --git a/pkg/mcp/agentic/watch_example_test.go b/go/pkg/mcp/agentic/watch_example_test.go similarity index 100% rename from pkg/mcp/agentic/watch_example_test.go rename to go/pkg/mcp/agentic/watch_example_test.go diff --git a/pkg/mcp/agentic/watch_test.go b/go/pkg/mcp/agentic/watch_test.go similarity index 100% rename from pkg/mcp/agentic/watch_test.go rename to go/pkg/mcp/agentic/watch_test.go diff --git a/pkg/mcp/agentic/write_atomic.go b/go/pkg/mcp/agentic/write_atomic.go similarity index 100% rename from pkg/mcp/agentic/write_atomic.go rename to go/pkg/mcp/agentic/write_atomic.go diff --git a/pkg/mcp/authz.go b/go/pkg/mcp/authz.go similarity index 100% rename from pkg/mcp/authz.go rename to go/pkg/mcp/authz.go diff --git a/pkg/mcp/brain/brain.go b/go/pkg/mcp/brain/brain.go similarity index 100% rename from pkg/mcp/brain/brain.go rename to go/pkg/mcp/brain/brain.go diff --git a/pkg/mcp/brain/brain_example_test.go b/go/pkg/mcp/brain/brain_example_test.go similarity index 100% rename from pkg/mcp/brain/brain_example_test.go rename to go/pkg/mcp/brain/brain_example_test.go diff --git a/pkg/mcp/brain/brain_test.go b/go/pkg/mcp/brain/brain_test.go similarity index 100% rename from pkg/mcp/brain/brain_test.go rename to go/pkg/mcp/brain/brain_test.go diff --git a/pkg/mcp/brain/bridge_events.go b/go/pkg/mcp/brain/bridge_events.go similarity index 100% rename from pkg/mcp/brain/bridge_events.go rename to go/pkg/mcp/brain/bridge_events.go diff --git a/pkg/mcp/brain/client/client.go b/go/pkg/mcp/brain/client/client.go similarity index 100% rename from pkg/mcp/brain/client/client.go rename to go/pkg/mcp/brain/client/client.go diff --git a/pkg/mcp/brain/client/client_example_test.go b/go/pkg/mcp/brain/client/client_example_test.go similarity index 100% rename from pkg/mcp/brain/client/client_example_test.go rename to go/pkg/mcp/brain/client/client_example_test.go diff --git a/pkg/mcp/brain/client/client_test.go b/go/pkg/mcp/brain/client/client_test.go similarity index 100% rename from pkg/mcp/brain/client/client_test.go rename to go/pkg/mcp/brain/client/client_test.go diff --git a/pkg/mcp/brain/client/compliance_helpers_test.go b/go/pkg/mcp/brain/client/compliance_helpers_test.go similarity index 100% rename from pkg/mcp/brain/client/compliance_helpers_test.go rename to go/pkg/mcp/brain/client/compliance_helpers_test.go diff --git a/pkg/mcp/brain/client/coreio_compat.go b/go/pkg/mcp/brain/client/coreio_compat.go similarity index 100% rename from pkg/mcp/brain/client/coreio_compat.go rename to go/pkg/mcp/brain/client/coreio_compat.go diff --git a/pkg/mcp/brain/client/coreio_compat_example_test.go b/go/pkg/mcp/brain/client/coreio_compat_example_test.go similarity index 100% rename from pkg/mcp/brain/client/coreio_compat_example_test.go rename to go/pkg/mcp/brain/client/coreio_compat_example_test.go diff --git a/pkg/mcp/brain/client/coreio_compat_test.go b/go/pkg/mcp/brain/client/coreio_compat_test.go similarity index 100% rename from pkg/mcp/brain/client/coreio_compat_test.go rename to go/pkg/mcp/brain/client/coreio_compat_test.go diff --git a/pkg/mcp/brain/compliance_helpers_test.go b/go/pkg/mcp/brain/compliance_helpers_test.go similarity index 100% rename from pkg/mcp/brain/compliance_helpers_test.go rename to go/pkg/mcp/brain/compliance_helpers_test.go diff --git a/pkg/mcp/brain/direct.go b/go/pkg/mcp/brain/direct.go similarity index 100% rename from pkg/mcp/brain/direct.go rename to go/pkg/mcp/brain/direct.go diff --git a/pkg/mcp/brain/direct_example_test.go b/go/pkg/mcp/brain/direct_example_test.go similarity index 100% rename from pkg/mcp/brain/direct_example_test.go rename to go/pkg/mcp/brain/direct_example_test.go diff --git a/pkg/mcp/brain/direct_test.go b/go/pkg/mcp/brain/direct_test.go similarity index 100% rename from pkg/mcp/brain/direct_test.go rename to go/pkg/mcp/brain/direct_test.go diff --git a/pkg/mcp/brain/provider.go b/go/pkg/mcp/brain/provider.go similarity index 100% rename from pkg/mcp/brain/provider.go rename to go/pkg/mcp/brain/provider.go diff --git a/pkg/mcp/brain/provider_example_test.go b/go/pkg/mcp/brain/provider_example_test.go similarity index 100% rename from pkg/mcp/brain/provider_example_test.go rename to go/pkg/mcp/brain/provider_example_test.go diff --git a/pkg/mcp/brain/provider_test.go b/go/pkg/mcp/brain/provider_test.go similarity index 100% rename from pkg/mcp/brain/provider_test.go rename to go/pkg/mcp/brain/provider_test.go diff --git a/pkg/mcp/brain/tools.go b/go/pkg/mcp/brain/tools.go similarity index 100% rename from pkg/mcp/brain/tools.go rename to go/pkg/mcp/brain/tools.go diff --git a/pkg/mcp/brain/tools_example_test.go b/go/pkg/mcp/brain/tools_example_test.go similarity index 100% rename from pkg/mcp/brain/tools_example_test.go rename to go/pkg/mcp/brain/tools_example_test.go diff --git a/pkg/mcp/brain/tools_test.go b/go/pkg/mcp/brain/tools_test.go similarity index 100% rename from pkg/mcp/brain/tools_test.go rename to go/pkg/mcp/brain/tools_test.go diff --git a/pkg/mcp/bridge.go b/go/pkg/mcp/bridge.go similarity index 100% rename from pkg/mcp/bridge.go rename to go/pkg/mcp/bridge.go diff --git a/pkg/mcp/bridge_example_test.go b/go/pkg/mcp/bridge_example_test.go similarity index 100% rename from pkg/mcp/bridge_example_test.go rename to go/pkg/mcp/bridge_example_test.go diff --git a/pkg/mcp/bridge_test.go b/go/pkg/mcp/bridge_test.go similarity index 100% rename from pkg/mcp/bridge_test.go rename to go/pkg/mcp/bridge_test.go diff --git a/pkg/mcp/compliance_helpers_test.go b/go/pkg/mcp/compliance_helpers_test.go similarity index 100% rename from pkg/mcp/compliance_helpers_test.go rename to go/pkg/mcp/compliance_helpers_test.go diff --git a/pkg/mcp/core_medium.go b/go/pkg/mcp/core_medium.go similarity index 100% rename from pkg/mcp/core_medium.go rename to go/pkg/mcp/core_medium.go diff --git a/pkg/mcp/core_medium_example_test.go b/go/pkg/mcp/core_medium_example_test.go similarity index 100% rename from pkg/mcp/core_medium_example_test.go rename to go/pkg/mcp/core_medium_example_test.go diff --git a/pkg/mcp/core_medium_test.go b/go/pkg/mcp/core_medium_test.go similarity index 100% rename from pkg/mcp/core_medium_test.go rename to go/pkg/mcp/core_medium_test.go diff --git a/pkg/mcp/ide/bridge.go b/go/pkg/mcp/ide/bridge.go similarity index 100% rename from pkg/mcp/ide/bridge.go rename to go/pkg/mcp/ide/bridge.go diff --git a/pkg/mcp/ide/bridge_example_test.go b/go/pkg/mcp/ide/bridge_example_test.go similarity index 100% rename from pkg/mcp/ide/bridge_example_test.go rename to go/pkg/mcp/ide/bridge_example_test.go diff --git a/pkg/mcp/ide/bridge_test.go b/go/pkg/mcp/ide/bridge_test.go similarity index 100% rename from pkg/mcp/ide/bridge_test.go rename to go/pkg/mcp/ide/bridge_test.go diff --git a/pkg/mcp/ide/compliance_helpers_test.go b/go/pkg/mcp/ide/compliance_helpers_test.go similarity index 100% rename from pkg/mcp/ide/compliance_helpers_test.go rename to go/pkg/mcp/ide/compliance_helpers_test.go diff --git a/pkg/mcp/ide/config.go b/go/pkg/mcp/ide/config.go similarity index 100% rename from pkg/mcp/ide/config.go rename to go/pkg/mcp/ide/config.go diff --git a/pkg/mcp/ide/config_example_test.go b/go/pkg/mcp/ide/config_example_test.go similarity index 100% rename from pkg/mcp/ide/config_example_test.go rename to go/pkg/mcp/ide/config_example_test.go diff --git a/pkg/mcp/ide/config_test.go b/go/pkg/mcp/ide/config_test.go similarity index 100% rename from pkg/mcp/ide/config_test.go rename to go/pkg/mcp/ide/config_test.go diff --git a/pkg/mcp/ide/ide.go b/go/pkg/mcp/ide/ide.go similarity index 100% rename from pkg/mcp/ide/ide.go rename to go/pkg/mcp/ide/ide.go diff --git a/pkg/mcp/ide/ide_example_test.go b/go/pkg/mcp/ide/ide_example_test.go similarity index 100% rename from pkg/mcp/ide/ide_example_test.go rename to go/pkg/mcp/ide/ide_example_test.go diff --git a/pkg/mcp/ide/ide_test.go b/go/pkg/mcp/ide/ide_test.go similarity index 100% rename from pkg/mcp/ide/ide_test.go rename to go/pkg/mcp/ide/ide_test.go diff --git a/pkg/mcp/ide/tools_build.go b/go/pkg/mcp/ide/tools_build.go similarity index 100% rename from pkg/mcp/ide/tools_build.go rename to go/pkg/mcp/ide/tools_build.go diff --git a/pkg/mcp/ide/tools_build_example_test.go b/go/pkg/mcp/ide/tools_build_example_test.go similarity index 100% rename from pkg/mcp/ide/tools_build_example_test.go rename to go/pkg/mcp/ide/tools_build_example_test.go diff --git a/pkg/mcp/ide/tools_build_test.go b/go/pkg/mcp/ide/tools_build_test.go similarity index 100% rename from pkg/mcp/ide/tools_build_test.go rename to go/pkg/mcp/ide/tools_build_test.go diff --git a/pkg/mcp/ide/tools_chat.go b/go/pkg/mcp/ide/tools_chat.go similarity index 100% rename from pkg/mcp/ide/tools_chat.go rename to go/pkg/mcp/ide/tools_chat.go diff --git a/pkg/mcp/ide/tools_chat_example_test.go b/go/pkg/mcp/ide/tools_chat_example_test.go similarity index 100% rename from pkg/mcp/ide/tools_chat_example_test.go rename to go/pkg/mcp/ide/tools_chat_example_test.go diff --git a/pkg/mcp/ide/tools_chat_test.go b/go/pkg/mcp/ide/tools_chat_test.go similarity index 100% rename from pkg/mcp/ide/tools_chat_test.go rename to go/pkg/mcp/ide/tools_chat_test.go diff --git a/pkg/mcp/ide/tools_dashboard.go b/go/pkg/mcp/ide/tools_dashboard.go similarity index 100% rename from pkg/mcp/ide/tools_dashboard.go rename to go/pkg/mcp/ide/tools_dashboard.go diff --git a/pkg/mcp/ide/tools_dashboard_example_test.go b/go/pkg/mcp/ide/tools_dashboard_example_test.go similarity index 100% rename from pkg/mcp/ide/tools_dashboard_example_test.go rename to go/pkg/mcp/ide/tools_dashboard_example_test.go diff --git a/pkg/mcp/ide/tools_dashboard_test.go b/go/pkg/mcp/ide/tools_dashboard_test.go similarity index 100% rename from pkg/mcp/ide/tools_dashboard_test.go rename to go/pkg/mcp/ide/tools_dashboard_test.go diff --git a/pkg/mcp/ide/tools_test.go b/go/pkg/mcp/ide/tools_test.go similarity index 100% rename from pkg/mcp/ide/tools_test.go rename to go/pkg/mcp/ide/tools_test.go diff --git a/pkg/mcp/integration_test.go b/go/pkg/mcp/integration_test.go similarity index 100% rename from pkg/mcp/integration_test.go rename to go/pkg/mcp/integration_test.go diff --git a/pkg/mcp/ipc.go b/go/pkg/mcp/ipc.go similarity index 100% rename from pkg/mcp/ipc.go rename to go/pkg/mcp/ipc.go diff --git a/pkg/mcp/ipc_test.go b/go/pkg/mcp/ipc_test.go similarity index 100% rename from pkg/mcp/ipc_test.go rename to go/pkg/mcp/ipc_test.go diff --git a/pkg/mcp/iter_test.go b/go/pkg/mcp/iter_test.go similarity index 100% rename from pkg/mcp/iter_test.go rename to go/pkg/mcp/iter_test.go diff --git a/pkg/mcp/mcp.go b/go/pkg/mcp/mcp.go similarity index 100% rename from pkg/mcp/mcp.go rename to go/pkg/mcp/mcp.go diff --git a/pkg/mcp/mcp_example_test.go b/go/pkg/mcp/mcp_example_test.go similarity index 100% rename from pkg/mcp/mcp_example_test.go rename to go/pkg/mcp/mcp_example_test.go diff --git a/pkg/mcp/mcp_test.go b/go/pkg/mcp/mcp_test.go similarity index 100% rename from pkg/mcp/mcp_test.go rename to go/pkg/mcp/mcp_test.go diff --git a/pkg/mcp/notify.go b/go/pkg/mcp/notify.go similarity index 100% rename from pkg/mcp/notify.go rename to go/pkg/mcp/notify.go diff --git a/pkg/mcp/notify_example_test.go b/go/pkg/mcp/notify_example_test.go similarity index 100% rename from pkg/mcp/notify_example_test.go rename to go/pkg/mcp/notify_example_test.go diff --git a/pkg/mcp/notify_test.go b/go/pkg/mcp/notify_test.go similarity index 100% rename from pkg/mcp/notify_test.go rename to go/pkg/mcp/notify_test.go diff --git a/pkg/mcp/process_notifications.go b/go/pkg/mcp/process_notifications.go similarity index 100% rename from pkg/mcp/process_notifications.go rename to go/pkg/mcp/process_notifications.go diff --git a/pkg/mcp/progress.go b/go/pkg/mcp/progress.go similarity index 100% rename from pkg/mcp/progress.go rename to go/pkg/mcp/progress.go diff --git a/pkg/mcp/progress_example_test.go b/go/pkg/mcp/progress_example_test.go similarity index 100% rename from pkg/mcp/progress_example_test.go rename to go/pkg/mcp/progress_example_test.go diff --git a/pkg/mcp/progress_test.go b/go/pkg/mcp/progress_test.go similarity index 100% rename from pkg/mcp/progress_test.go rename to go/pkg/mcp/progress_test.go diff --git a/pkg/mcp/register.go b/go/pkg/mcp/register.go similarity index 100% rename from pkg/mcp/register.go rename to go/pkg/mcp/register.go diff --git a/pkg/mcp/register_example_test.go b/go/pkg/mcp/register_example_test.go similarity index 100% rename from pkg/mcp/register_example_test.go rename to go/pkg/mcp/register_example_test.go diff --git a/pkg/mcp/register_test.go b/go/pkg/mcp/register_test.go similarity index 100% rename from pkg/mcp/register_test.go rename to go/pkg/mcp/register_test.go diff --git a/pkg/mcp/registry.go b/go/pkg/mcp/registry.go similarity index 100% rename from pkg/mcp/registry.go rename to go/pkg/mcp/registry.go diff --git a/pkg/mcp/registry_example_test.go b/go/pkg/mcp/registry_example_test.go similarity index 100% rename from pkg/mcp/registry_example_test.go rename to go/pkg/mcp/registry_example_test.go diff --git a/pkg/mcp/registry_test.go b/go/pkg/mcp/registry_test.go similarity index 100% rename from pkg/mcp/registry_test.go rename to go/pkg/mcp/registry_test.go diff --git a/pkg/mcp/result_helpers.go b/go/pkg/mcp/result_helpers.go similarity index 100% rename from pkg/mcp/result_helpers.go rename to go/pkg/mcp/result_helpers.go diff --git a/pkg/mcp/subsystem.go b/go/pkg/mcp/subsystem.go similarity index 100% rename from pkg/mcp/subsystem.go rename to go/pkg/mcp/subsystem.go diff --git a/pkg/mcp/subsystem_example_test.go b/go/pkg/mcp/subsystem_example_test.go similarity index 100% rename from pkg/mcp/subsystem_example_test.go rename to go/pkg/mcp/subsystem_example_test.go diff --git a/pkg/mcp/subsystem_test.go b/go/pkg/mcp/subsystem_test.go similarity index 100% rename from pkg/mcp/subsystem_test.go rename to go/pkg/mcp/subsystem_test.go diff --git a/pkg/mcp/tools_metrics.go b/go/pkg/mcp/tools_metrics.go similarity index 100% rename from pkg/mcp/tools_metrics.go rename to go/pkg/mcp/tools_metrics.go diff --git a/pkg/mcp/tools_metrics_example_test.go b/go/pkg/mcp/tools_metrics_example_test.go similarity index 100% rename from pkg/mcp/tools_metrics_example_test.go rename to go/pkg/mcp/tools_metrics_example_test.go diff --git a/pkg/mcp/tools_metrics_test.go b/go/pkg/mcp/tools_metrics_test.go similarity index 100% rename from pkg/mcp/tools_metrics_test.go rename to go/pkg/mcp/tools_metrics_test.go diff --git a/pkg/mcp/tools_process.go b/go/pkg/mcp/tools_process.go similarity index 100% rename from pkg/mcp/tools_process.go rename to go/pkg/mcp/tools_process.go diff --git a/pkg/mcp/tools_process_ci_test.go b/go/pkg/mcp/tools_process_ci_test.go similarity index 100% rename from pkg/mcp/tools_process_ci_test.go rename to go/pkg/mcp/tools_process_ci_test.go diff --git a/pkg/mcp/tools_process_example_test.go b/go/pkg/mcp/tools_process_example_test.go similarity index 100% rename from pkg/mcp/tools_process_example_test.go rename to go/pkg/mcp/tools_process_example_test.go diff --git a/pkg/mcp/tools_process_test.go b/go/pkg/mcp/tools_process_test.go similarity index 100% rename from pkg/mcp/tools_process_test.go rename to go/pkg/mcp/tools_process_test.go diff --git a/pkg/mcp/tools_rag.go b/go/pkg/mcp/tools_rag.go similarity index 100% rename from pkg/mcp/tools_rag.go rename to go/pkg/mcp/tools_rag.go diff --git a/pkg/mcp/tools_rag_ci_test.go b/go/pkg/mcp/tools_rag_ci_test.go similarity index 100% rename from pkg/mcp/tools_rag_ci_test.go rename to go/pkg/mcp/tools_rag_ci_test.go diff --git a/pkg/mcp/tools_rag_example_test.go b/go/pkg/mcp/tools_rag_example_test.go similarity index 100% rename from pkg/mcp/tools_rag_example_test.go rename to go/pkg/mcp/tools_rag_example_test.go diff --git a/pkg/mcp/tools_rag_test.go b/go/pkg/mcp/tools_rag_test.go similarity index 100% rename from pkg/mcp/tools_rag_test.go rename to go/pkg/mcp/tools_rag_test.go diff --git a/pkg/mcp/tools_webview_embed.go b/go/pkg/mcp/tools_webview_embed.go similarity index 100% rename from pkg/mcp/tools_webview_embed.go rename to go/pkg/mcp/tools_webview_embed.go diff --git a/pkg/mcp/tools_webview_embed_example_test.go b/go/pkg/mcp/tools_webview_embed_example_test.go similarity index 100% rename from pkg/mcp/tools_webview_embed_example_test.go rename to go/pkg/mcp/tools_webview_embed_example_test.go diff --git a/pkg/mcp/tools_webview_embed_test.go b/go/pkg/mcp/tools_webview_embed_test.go similarity index 100% rename from pkg/mcp/tools_webview_embed_test.go rename to go/pkg/mcp/tools_webview_embed_test.go diff --git a/pkg/mcp/tools_ws.go b/go/pkg/mcp/tools_ws.go similarity index 100% rename from pkg/mcp/tools_ws.go rename to go/pkg/mcp/tools_ws.go diff --git a/pkg/mcp/tools_ws_client.go b/go/pkg/mcp/tools_ws_client.go similarity index 100% rename from pkg/mcp/tools_ws_client.go rename to go/pkg/mcp/tools_ws_client.go diff --git a/pkg/mcp/tools_ws_client_example_test.go b/go/pkg/mcp/tools_ws_client_example_test.go similarity index 100% rename from pkg/mcp/tools_ws_client_example_test.go rename to go/pkg/mcp/tools_ws_client_example_test.go diff --git a/pkg/mcp/tools_ws_client_test.go b/go/pkg/mcp/tools_ws_client_test.go similarity index 100% rename from pkg/mcp/tools_ws_client_test.go rename to go/pkg/mcp/tools_ws_client_test.go diff --git a/pkg/mcp/tools_ws_example_test.go b/go/pkg/mcp/tools_ws_example_test.go similarity index 100% rename from pkg/mcp/tools_ws_example_test.go rename to go/pkg/mcp/tools_ws_example_test.go diff --git a/pkg/mcp/tools_ws_test.go b/go/pkg/mcp/tools_ws_test.go similarity index 100% rename from pkg/mcp/tools_ws_test.go rename to go/pkg/mcp/tools_ws_test.go diff --git a/pkg/mcp/transformer.go b/go/pkg/mcp/transformer.go similarity index 100% rename from pkg/mcp/transformer.go rename to go/pkg/mcp/transformer.go diff --git a/pkg/mcp/transformer_anthropic.go b/go/pkg/mcp/transformer_anthropic.go similarity index 100% rename from pkg/mcp/transformer_anthropic.go rename to go/pkg/mcp/transformer_anthropic.go diff --git a/pkg/mcp/transformer_anthropic_example_test.go b/go/pkg/mcp/transformer_anthropic_example_test.go similarity index 100% rename from pkg/mcp/transformer_anthropic_example_test.go rename to go/pkg/mcp/transformer_anthropic_example_test.go diff --git a/pkg/mcp/transformer_anthropic_test.go b/go/pkg/mcp/transformer_anthropic_test.go similarity index 100% rename from pkg/mcp/transformer_anthropic_test.go rename to go/pkg/mcp/transformer_anthropic_test.go diff --git a/pkg/mcp/transformer_example_test.go b/go/pkg/mcp/transformer_example_test.go similarity index 100% rename from pkg/mcp/transformer_example_test.go rename to go/pkg/mcp/transformer_example_test.go diff --git a/pkg/mcp/transformer_honeypot.go b/go/pkg/mcp/transformer_honeypot.go similarity index 100% rename from pkg/mcp/transformer_honeypot.go rename to go/pkg/mcp/transformer_honeypot.go diff --git a/pkg/mcp/transformer_honeypot_example_test.go b/go/pkg/mcp/transformer_honeypot_example_test.go similarity index 100% rename from pkg/mcp/transformer_honeypot_example_test.go rename to go/pkg/mcp/transformer_honeypot_example_test.go diff --git a/pkg/mcp/transformer_honeypot_test.go b/go/pkg/mcp/transformer_honeypot_test.go similarity index 100% rename from pkg/mcp/transformer_honeypot_test.go rename to go/pkg/mcp/transformer_honeypot_test.go diff --git a/pkg/mcp/transformer_openai.go b/go/pkg/mcp/transformer_openai.go similarity index 100% rename from pkg/mcp/transformer_openai.go rename to go/pkg/mcp/transformer_openai.go diff --git a/pkg/mcp/transformer_openai_example_test.go b/go/pkg/mcp/transformer_openai_example_test.go similarity index 100% rename from pkg/mcp/transformer_openai_example_test.go rename to go/pkg/mcp/transformer_openai_example_test.go diff --git a/pkg/mcp/transformer_openai_test.go b/go/pkg/mcp/transformer_openai_test.go similarity index 100% rename from pkg/mcp/transformer_openai_test.go rename to go/pkg/mcp/transformer_openai_test.go diff --git a/pkg/mcp/transformer_test.go b/go/pkg/mcp/transformer_test.go similarity index 100% rename from pkg/mcp/transformer_test.go rename to go/pkg/mcp/transformer_test.go diff --git a/pkg/mcp/transport_e2e_test.go b/go/pkg/mcp/transport_e2e_test.go similarity index 100% rename from pkg/mcp/transport_e2e_test.go rename to go/pkg/mcp/transport_e2e_test.go diff --git a/pkg/mcp/transport_http.go b/go/pkg/mcp/transport_http.go similarity index 100% rename from pkg/mcp/transport_http.go rename to go/pkg/mcp/transport_http.go diff --git a/pkg/mcp/transport_http_example_test.go b/go/pkg/mcp/transport_http_example_test.go similarity index 100% rename from pkg/mcp/transport_http_example_test.go rename to go/pkg/mcp/transport_http_example_test.go diff --git a/pkg/mcp/transport_http_test.go b/go/pkg/mcp/transport_http_test.go similarity index 100% rename from pkg/mcp/transport_http_test.go rename to go/pkg/mcp/transport_http_test.go diff --git a/pkg/mcp/transport_stdio.go b/go/pkg/mcp/transport_stdio.go similarity index 100% rename from pkg/mcp/transport_stdio.go rename to go/pkg/mcp/transport_stdio.go diff --git a/pkg/mcp/transport_stdio_example_test.go b/go/pkg/mcp/transport_stdio_example_test.go similarity index 100% rename from pkg/mcp/transport_stdio_example_test.go rename to go/pkg/mcp/transport_stdio_example_test.go diff --git a/pkg/mcp/transport_stdio_test.go b/go/pkg/mcp/transport_stdio_test.go similarity index 100% rename from pkg/mcp/transport_stdio_test.go rename to go/pkg/mcp/transport_stdio_test.go diff --git a/pkg/mcp/transport_tcp.go b/go/pkg/mcp/transport_tcp.go similarity index 100% rename from pkg/mcp/transport_tcp.go rename to go/pkg/mcp/transport_tcp.go diff --git a/pkg/mcp/transport_tcp_example_test.go b/go/pkg/mcp/transport_tcp_example_test.go similarity index 100% rename from pkg/mcp/transport_tcp_example_test.go rename to go/pkg/mcp/transport_tcp_example_test.go diff --git a/pkg/mcp/transport_tcp_test.go b/go/pkg/mcp/transport_tcp_test.go similarity index 100% rename from pkg/mcp/transport_tcp_test.go rename to go/pkg/mcp/transport_tcp_test.go diff --git a/pkg/mcp/transport_unix.go b/go/pkg/mcp/transport_unix.go similarity index 100% rename from pkg/mcp/transport_unix.go rename to go/pkg/mcp/transport_unix.go diff --git a/pkg/mcp/transport_unix_example_test.go b/go/pkg/mcp/transport_unix_example_test.go similarity index 100% rename from pkg/mcp/transport_unix_example_test.go rename to go/pkg/mcp/transport_unix_example_test.go diff --git a/pkg/mcp/transport_unix_test.go b/go/pkg/mcp/transport_unix_test.go similarity index 100% rename from pkg/mcp/transport_unix_test.go rename to go/pkg/mcp/transport_unix_test.go diff --git a/tests/cli/mcp/Taskfile.yaml b/go/tests/cli/mcp/Taskfile.yaml similarity index 100% rename from tests/cli/mcp/Taskfile.yaml rename to go/tests/cli/mcp/Taskfile.yaml diff --git a/src/php/.editorconfig b/php/.editorconfig similarity index 100% rename from src/php/.editorconfig rename to php/.editorconfig diff --git a/src/php/.env.example b/php/.env.example similarity index 100% rename from src/php/.env.example rename to php/.env.example diff --git a/src/php/.forgejo/workflows/ci.yml b/php/.forgejo/workflows/ci.yml similarity index 100% rename from src/php/.forgejo/workflows/ci.yml rename to php/.forgejo/workflows/ci.yml diff --git a/src/php/.forgejo/workflows/release.yml b/php/.forgejo/workflows/release.yml similarity index 100% rename from src/php/.forgejo/workflows/release.yml rename to php/.forgejo/workflows/release.yml diff --git a/src/php/.gemini/settings.json b/php/.gemini/settings.json similarity index 100% rename from src/php/.gemini/settings.json rename to php/.gemini/settings.json diff --git a/src/php/.github/FUNDING.yml b/php/.github/FUNDING.yml similarity index 100% rename from src/php/.github/FUNDING.yml rename to php/.github/FUNDING.yml diff --git a/src/php/.github/copilot-instructions.md b/php/.github/copilot-instructions.md similarity index 100% rename from src/php/.github/copilot-instructions.md rename to php/.github/copilot-instructions.md diff --git a/src/php/.github/dependabot.yml b/php/.github/dependabot.yml similarity index 100% rename from src/php/.github/dependabot.yml rename to php/.github/dependabot.yml diff --git a/src/php/.github/package-workflows/README.md b/php/.github/package-workflows/README.md similarity index 100% rename from src/php/.github/package-workflows/README.md rename to php/.github/package-workflows/README.md diff --git a/src/php/.github/package-workflows/ci.yml b/php/.github/package-workflows/ci.yml similarity index 100% rename from src/php/.github/package-workflows/ci.yml rename to php/.github/package-workflows/ci.yml diff --git a/src/php/.github/package-workflows/release.yml b/php/.github/package-workflows/release.yml similarity index 100% rename from src/php/.github/package-workflows/release.yml rename to php/.github/package-workflows/release.yml diff --git a/src/php/.github/workflows/ci.yml b/php/.github/workflows/ci.yml similarity index 100% rename from src/php/.github/workflows/ci.yml rename to php/.github/workflows/ci.yml diff --git a/src/php/.github/workflows/release.yml b/php/.github/workflows/release.yml similarity index 100% rename from src/php/.github/workflows/release.yml rename to php/.github/workflows/release.yml diff --git a/src/php/.gitignore b/php/.gitignore similarity index 100% rename from src/php/.gitignore rename to php/.gitignore diff --git a/src/php/AGENTS.md b/php/AGENTS.md similarity index 100% rename from src/php/AGENTS.md rename to php/AGENTS.md diff --git a/src/php/FINDINGS.md b/php/FINDINGS.md similarity index 100% rename from src/php/FINDINGS.md rename to php/FINDINGS.md diff --git a/src/php/GEMINI.md b/php/GEMINI.md similarity index 100% rename from src/php/GEMINI.md rename to php/GEMINI.md diff --git a/src/php/TODO.md b/php/TODO.md similarity index 100% rename from src/php/TODO.md rename to php/TODO.md diff --git a/src/php/app/Http/Controllers/.gitkeep b/php/app/Http/Controllers/.gitkeep similarity index 100% rename from src/php/app/Http/Controllers/.gitkeep rename to php/app/Http/Controllers/.gitkeep diff --git a/src/php/app/Mod/.gitkeep b/php/app/Mod/.gitkeep similarity index 100% rename from src/php/app/Mod/.gitkeep rename to php/app/Mod/.gitkeep diff --git a/src/php/app/Models/.gitkeep b/php/app/Models/.gitkeep similarity index 100% rename from src/php/app/Models/.gitkeep rename to php/app/Models/.gitkeep diff --git a/src/php/app/Providers/AppServiceProvider.php b/php/app/Providers/AppServiceProvider.php similarity index 100% rename from src/php/app/Providers/AppServiceProvider.php rename to php/app/Providers/AppServiceProvider.php diff --git a/src/php/artisan b/php/artisan similarity index 100% rename from src/php/artisan rename to php/artisan diff --git a/src/php/bootstrap/app.php b/php/bootstrap/app.php similarity index 100% rename from src/php/bootstrap/app.php rename to php/bootstrap/app.php diff --git a/src/php/bootstrap/cache/.gitignore b/php/bootstrap/cache/.gitignore similarity index 100% rename from src/php/bootstrap/cache/.gitignore rename to php/bootstrap/cache/.gitignore diff --git a/src/php/bootstrap/providers.php b/php/bootstrap/providers.php similarity index 100% rename from src/php/bootstrap/providers.php rename to php/bootstrap/providers.php diff --git a/src/php/config/core.php b/php/config/core.php similarity index 100% rename from src/php/config/core.php rename to php/config/core.php diff --git a/src/php/database/factories/.gitkeep b/php/database/factories/.gitkeep similarity index 100% rename from src/php/database/factories/.gitkeep rename to php/database/factories/.gitkeep diff --git a/src/php/database/migrations/.gitkeep b/php/database/migrations/.gitkeep similarity index 100% rename from src/php/database/migrations/.gitkeep rename to php/database/migrations/.gitkeep diff --git a/src/php/database/seeders/DatabaseSeeder.php b/php/database/seeders/DatabaseSeeder.php similarity index 100% rename from src/php/database/seeders/DatabaseSeeder.php rename to php/database/seeders/DatabaseSeeder.php diff --git a/src/php/docs/analytics.md b/php/docs/analytics.md similarity index 100% rename from src/php/docs/analytics.md rename to php/docs/analytics.md diff --git a/src/php/docs/creating-mcp-tools.md b/php/docs/creating-mcp-tools.md similarity index 100% rename from src/php/docs/creating-mcp-tools.md rename to php/docs/creating-mcp-tools.md diff --git a/src/php/docs/discovery-2026-02-21.md b/php/docs/discovery-2026-02-21.md similarity index 100% rename from src/php/docs/discovery-2026-02-21.md rename to php/docs/discovery-2026-02-21.md diff --git a/src/php/docs/index.md b/php/docs/index.md similarity index 100% rename from src/php/docs/index.md rename to php/docs/index.md diff --git a/src/php/docs/query-database.md b/php/docs/query-database.md similarity index 100% rename from src/php/docs/query-database.md rename to php/docs/query-database.md diff --git a/src/php/docs/quotas.md b/php/docs/quotas.md similarity index 100% rename from src/php/docs/quotas.md rename to php/docs/quotas.md diff --git a/src/php/docs/security.md b/php/docs/security.md similarity index 100% rename from src/php/docs/security.md rename to php/docs/security.md diff --git a/src/php/docs/sql-security.md b/php/docs/sql-security.md similarity index 100% rename from src/php/docs/sql-security.md rename to php/docs/sql-security.md diff --git a/src/php/docs/tools-reference.md b/php/docs/tools-reference.md similarity index 100% rename from src/php/docs/tools-reference.md rename to php/docs/tools-reference.md diff --git a/src/php/docs/tools.md b/php/docs/tools.md similarity index 100% rename from src/php/docs/tools.md rename to php/docs/tools.md diff --git a/src/php/docs/workspace.md b/php/docs/workspace.md similarity index 100% rename from src/php/docs/workspace.md rename to php/docs/workspace.md diff --git a/src/php/package.json b/php/package.json similarity index 100% rename from src/php/package.json rename to php/package.json diff --git a/src/php/phpunit.xml b/php/phpunit.xml similarity index 100% rename from src/php/phpunit.xml rename to php/phpunit.xml diff --git a/src/php/postcss.config.js b/php/postcss.config.js similarity index 100% rename from src/php/postcss.config.js rename to php/postcss.config.js diff --git a/src/php/public/.htaccess b/php/public/.htaccess similarity index 100% rename from src/php/public/.htaccess rename to php/public/.htaccess diff --git a/src/php/public/index.php b/php/public/index.php similarity index 100% rename from src/php/public/index.php rename to php/public/index.php diff --git a/src/php/public/robots.txt b/php/public/robots.txt similarity index 100% rename from src/php/public/robots.txt rename to php/public/robots.txt diff --git a/src/php/resources/css/app.css b/php/resources/css/app.css similarity index 100% rename from src/php/resources/css/app.css rename to php/resources/css/app.css diff --git a/src/php/resources/js/app.js b/php/resources/js/app.js similarity index 100% rename from src/php/resources/js/app.js rename to php/resources/js/app.js diff --git a/src/php/resources/js/bootstrap.js b/php/resources/js/bootstrap.js similarity index 100% rename from src/php/resources/js/bootstrap.js rename to php/resources/js/bootstrap.js diff --git a/src/php/resources/views/welcome.blade.php b/php/resources/views/welcome.blade.php similarity index 100% rename from src/php/resources/views/welcome.blade.php rename to php/resources/views/welcome.blade.php diff --git a/src/php/routes/api.php b/php/routes/api.php similarity index 100% rename from src/php/routes/api.php rename to php/routes/api.php diff --git a/src/php/routes/console.php b/php/routes/console.php similarity index 100% rename from src/php/routes/console.php rename to php/routes/console.php diff --git a/src/php/routes/web.php b/php/routes/web.php similarity index 100% rename from src/php/routes/web.php rename to php/routes/web.php diff --git a/src/php/src/Front/Mcp/Boot.php b/php/src/Front/Mcp/Boot.php similarity index 100% rename from src/php/src/Front/Mcp/Boot.php rename to php/src/Front/Mcp/Boot.php diff --git a/src/php/src/Front/Mcp/Contracts/McpToolHandler.php b/php/src/Front/Mcp/Contracts/McpToolHandler.php similarity index 100% rename from src/php/src/Front/Mcp/Contracts/McpToolHandler.php rename to php/src/Front/Mcp/Contracts/McpToolHandler.php diff --git a/src/php/src/Front/Mcp/McpContext.php b/php/src/Front/Mcp/McpContext.php similarity index 100% rename from src/php/src/Front/Mcp/McpContext.php rename to php/src/Front/Mcp/McpContext.php diff --git a/src/php/src/Front/View/Blade/layouts/mcp.blade.php b/php/src/Front/View/Blade/layouts/mcp.blade.php similarity index 100% rename from src/php/src/Front/View/Blade/layouts/mcp.blade.php rename to php/src/Front/View/Blade/layouts/mcp.blade.php diff --git a/src/php/src/Mcp/Boot.php b/php/src/Mcp/Boot.php similarity index 100% rename from src/php/src/Mcp/Boot.php rename to php/src/Mcp/Boot.php diff --git a/src/php/src/Mcp/Console/Commands/CleanupToolCallLogsCommand.php b/php/src/Mcp/Console/Commands/CleanupToolCallLogsCommand.php similarity index 100% rename from src/php/src/Mcp/Console/Commands/CleanupToolCallLogsCommand.php rename to php/src/Mcp/Console/Commands/CleanupToolCallLogsCommand.php diff --git a/src/php/src/Mcp/Console/Commands/McpAgentServerCommand.php b/php/src/Mcp/Console/Commands/McpAgentServerCommand.php similarity index 100% rename from src/php/src/Mcp/Console/Commands/McpAgentServerCommand.php rename to php/src/Mcp/Console/Commands/McpAgentServerCommand.php diff --git a/src/php/src/Mcp/Console/Commands/McpMonitorCommand.php b/php/src/Mcp/Console/Commands/McpMonitorCommand.php similarity index 100% rename from src/php/src/Mcp/Console/Commands/McpMonitorCommand.php rename to php/src/Mcp/Console/Commands/McpMonitorCommand.php diff --git a/src/php/src/Mcp/Console/Commands/PruneMetricsCommand.php b/php/src/Mcp/Console/Commands/PruneMetricsCommand.php similarity index 100% rename from src/php/src/Mcp/Console/Commands/PruneMetricsCommand.php rename to php/src/Mcp/Console/Commands/PruneMetricsCommand.php diff --git a/src/php/src/Mcp/Console/Commands/VerifyAuditLogCommand.php b/php/src/Mcp/Console/Commands/VerifyAuditLogCommand.php similarity index 100% rename from src/php/src/Mcp/Console/Commands/VerifyAuditLogCommand.php rename to php/src/Mcp/Console/Commands/VerifyAuditLogCommand.php diff --git a/src/php/src/Mcp/Context/WorkspaceContext.php b/php/src/Mcp/Context/WorkspaceContext.php similarity index 100% rename from src/php/src/Mcp/Context/WorkspaceContext.php rename to php/src/Mcp/Context/WorkspaceContext.php diff --git a/src/php/src/Mcp/Controllers/McpApiController.php b/php/src/Mcp/Controllers/McpApiController.php similarity index 100% rename from src/php/src/Mcp/Controllers/McpApiController.php rename to php/src/Mcp/Controllers/McpApiController.php diff --git a/src/php/src/Mcp/DTO/ToolStats.php b/php/src/Mcp/DTO/ToolStats.php similarity index 100% rename from src/php/src/Mcp/DTO/ToolStats.php rename to php/src/Mcp/DTO/ToolStats.php diff --git a/src/php/src/Mcp/Database/Seeders/SensitiveToolSeeder.php b/php/src/Mcp/Database/Seeders/SensitiveToolSeeder.php similarity index 100% rename from src/php/src/Mcp/Database/Seeders/SensitiveToolSeeder.php rename to php/src/Mcp/Database/Seeders/SensitiveToolSeeder.php diff --git a/src/php/src/Mcp/Dependencies/DependencyType.php b/php/src/Mcp/Dependencies/DependencyType.php similarity index 100% rename from src/php/src/Mcp/Dependencies/DependencyType.php rename to php/src/Mcp/Dependencies/DependencyType.php diff --git a/src/php/src/Mcp/Dependencies/HasDependencies.php b/php/src/Mcp/Dependencies/HasDependencies.php similarity index 100% rename from src/php/src/Mcp/Dependencies/HasDependencies.php rename to php/src/Mcp/Dependencies/HasDependencies.php diff --git a/src/php/src/Mcp/Dependencies/ToolDependency.php b/php/src/Mcp/Dependencies/ToolDependency.php similarity index 100% rename from src/php/src/Mcp/Dependencies/ToolDependency.php rename to php/src/Mcp/Dependencies/ToolDependency.php diff --git a/src/php/src/Mcp/Events/ToolExecuted.php b/php/src/Mcp/Events/ToolExecuted.php similarity index 100% rename from src/php/src/Mcp/Events/ToolExecuted.php rename to php/src/Mcp/Events/ToolExecuted.php diff --git a/src/php/src/Mcp/Exceptions/CircuitOpenException.php b/php/src/Mcp/Exceptions/CircuitOpenException.php similarity index 100% rename from src/php/src/Mcp/Exceptions/CircuitOpenException.php rename to php/src/Mcp/Exceptions/CircuitOpenException.php diff --git a/src/php/src/Mcp/Exceptions/ForbiddenQueryException.php b/php/src/Mcp/Exceptions/ForbiddenQueryException.php similarity index 100% rename from src/php/src/Mcp/Exceptions/ForbiddenQueryException.php rename to php/src/Mcp/Exceptions/ForbiddenQueryException.php diff --git a/src/php/src/Mcp/Exceptions/MissingDependencyException.php b/php/src/Mcp/Exceptions/MissingDependencyException.php similarity index 100% rename from src/php/src/Mcp/Exceptions/MissingDependencyException.php rename to php/src/Mcp/Exceptions/MissingDependencyException.php diff --git a/src/php/src/Mcp/Exceptions/MissingWorkspaceContextException.php b/php/src/Mcp/Exceptions/MissingWorkspaceContextException.php similarity index 100% rename from src/php/src/Mcp/Exceptions/MissingWorkspaceContextException.php rename to php/src/Mcp/Exceptions/MissingWorkspaceContextException.php diff --git a/src/php/src/Mcp/Exceptions/QueryTimeoutException.php b/php/src/Mcp/Exceptions/QueryTimeoutException.php similarity index 100% rename from src/php/src/Mcp/Exceptions/QueryTimeoutException.php rename to php/src/Mcp/Exceptions/QueryTimeoutException.php diff --git a/src/php/src/Mcp/Exceptions/ResultSizeLimitException.php b/php/src/Mcp/Exceptions/ResultSizeLimitException.php similarity index 100% rename from src/php/src/Mcp/Exceptions/ResultSizeLimitException.php rename to php/src/Mcp/Exceptions/ResultSizeLimitException.php diff --git a/src/php/src/Mcp/Lang/en_GB/mcp.php b/php/src/Mcp/Lang/en_GB/mcp.php similarity index 100% rename from src/php/src/Mcp/Lang/en_GB/mcp.php rename to php/src/Mcp/Lang/en_GB/mcp.php diff --git a/src/php/src/Mcp/Listeners/RecordToolExecution.php b/php/src/Mcp/Listeners/RecordToolExecution.php similarity index 100% rename from src/php/src/Mcp/Listeners/RecordToolExecution.php rename to php/src/Mcp/Listeners/RecordToolExecution.php diff --git a/src/php/src/Mcp/Middleware/CheckMcpQuota.php b/php/src/Mcp/Middleware/CheckMcpQuota.php similarity index 100% rename from src/php/src/Mcp/Middleware/CheckMcpQuota.php rename to php/src/Mcp/Middleware/CheckMcpQuota.php diff --git a/src/php/src/Mcp/Middleware/McpApiKeyAuth.php b/php/src/Mcp/Middleware/McpApiKeyAuth.php similarity index 100% rename from src/php/src/Mcp/Middleware/McpApiKeyAuth.php rename to php/src/Mcp/Middleware/McpApiKeyAuth.php diff --git a/src/php/src/Mcp/Middleware/McpAuthenticate.php b/php/src/Mcp/Middleware/McpAuthenticate.php similarity index 100% rename from src/php/src/Mcp/Middleware/McpAuthenticate.php rename to php/src/Mcp/Middleware/McpAuthenticate.php diff --git a/src/php/src/Mcp/Middleware/ValidateToolDependencies.php b/php/src/Mcp/Middleware/ValidateToolDependencies.php similarity index 100% rename from src/php/src/Mcp/Middleware/ValidateToolDependencies.php rename to php/src/Mcp/Middleware/ValidateToolDependencies.php diff --git a/src/php/src/Mcp/Middleware/ValidateWorkspaceContext.php b/php/src/Mcp/Middleware/ValidateWorkspaceContext.php similarity index 100% rename from src/php/src/Mcp/Middleware/ValidateWorkspaceContext.php rename to php/src/Mcp/Middleware/ValidateWorkspaceContext.php diff --git a/src/php/src/Mcp/Migrations/2026_01_07_004936_create_mcp_api_requests_table.php b/php/src/Mcp/Migrations/2026_01_07_004936_create_mcp_api_requests_table.php similarity index 100% rename from src/php/src/Mcp/Migrations/2026_01_07_004936_create_mcp_api_requests_table.php rename to php/src/Mcp/Migrations/2026_01_07_004936_create_mcp_api_requests_table.php diff --git a/src/php/src/Mcp/Migrations/2026_01_26_000001_create_mcp_tool_metrics_table.php b/php/src/Mcp/Migrations/2026_01_26_000001_create_mcp_tool_metrics_table.php similarity index 100% rename from src/php/src/Mcp/Migrations/2026_01_26_000001_create_mcp_tool_metrics_table.php rename to php/src/Mcp/Migrations/2026_01_26_000001_create_mcp_tool_metrics_table.php diff --git a/src/php/src/Mcp/Migrations/2026_01_26_000002_create_mcp_usage_quotas_table.php b/php/src/Mcp/Migrations/2026_01_26_000002_create_mcp_usage_quotas_table.php similarity index 100% rename from src/php/src/Mcp/Migrations/2026_01_26_000002_create_mcp_usage_quotas_table.php rename to php/src/Mcp/Migrations/2026_01_26_000002_create_mcp_usage_quotas_table.php diff --git a/src/php/src/Mcp/Migrations/2026_01_26_000003_create_mcp_audit_logs_table.php b/php/src/Mcp/Migrations/2026_01_26_000003_create_mcp_audit_logs_table.php similarity index 100% rename from src/php/src/Mcp/Migrations/2026_01_26_000003_create_mcp_audit_logs_table.php rename to php/src/Mcp/Migrations/2026_01_26_000003_create_mcp_audit_logs_table.php diff --git a/src/php/src/Mcp/Migrations/2026_01_26_000004_create_mcp_tool_versions_table.php b/php/src/Mcp/Migrations/2026_01_26_000004_create_mcp_tool_versions_table.php similarity index 100% rename from src/php/src/Mcp/Migrations/2026_01_26_000004_create_mcp_tool_versions_table.php rename to php/src/Mcp/Migrations/2026_01_26_000004_create_mcp_tool_versions_table.php diff --git a/src/php/src/Mcp/Models/McpApiRequest.php b/php/src/Mcp/Models/McpApiRequest.php similarity index 100% rename from src/php/src/Mcp/Models/McpApiRequest.php rename to php/src/Mcp/Models/McpApiRequest.php diff --git a/src/php/src/Mcp/Models/McpAuditLog.php b/php/src/Mcp/Models/McpAuditLog.php similarity index 100% rename from src/php/src/Mcp/Models/McpAuditLog.php rename to php/src/Mcp/Models/McpAuditLog.php diff --git a/src/php/src/Mcp/Models/McpSensitiveTool.php b/php/src/Mcp/Models/McpSensitiveTool.php similarity index 100% rename from src/php/src/Mcp/Models/McpSensitiveTool.php rename to php/src/Mcp/Models/McpSensitiveTool.php diff --git a/src/php/src/Mcp/Models/McpToolCall.php b/php/src/Mcp/Models/McpToolCall.php similarity index 100% rename from src/php/src/Mcp/Models/McpToolCall.php rename to php/src/Mcp/Models/McpToolCall.php diff --git a/src/php/src/Mcp/Models/McpToolCallStat.php b/php/src/Mcp/Models/McpToolCallStat.php similarity index 100% rename from src/php/src/Mcp/Models/McpToolCallStat.php rename to php/src/Mcp/Models/McpToolCallStat.php diff --git a/src/php/src/Mcp/Models/McpToolVersion.php b/php/src/Mcp/Models/McpToolVersion.php similarity index 100% rename from src/php/src/Mcp/Models/McpToolVersion.php rename to php/src/Mcp/Models/McpToolVersion.php diff --git a/src/php/src/Mcp/Models/McpUsageQuota.php b/php/src/Mcp/Models/McpUsageQuota.php similarity index 100% rename from src/php/src/Mcp/Models/McpUsageQuota.php rename to php/src/Mcp/Models/McpUsageQuota.php diff --git a/src/php/src/Mcp/Models/ToolMetric.php b/php/src/Mcp/Models/ToolMetric.php similarity index 100% rename from src/php/src/Mcp/Models/ToolMetric.php rename to php/src/Mcp/Models/ToolMetric.php diff --git a/src/php/src/Mcp/Resources/AppConfig.php b/php/src/Mcp/Resources/AppConfig.php similarity index 100% rename from src/php/src/Mcp/Resources/AppConfig.php rename to php/src/Mcp/Resources/AppConfig.php diff --git a/src/php/src/Mcp/Resources/ContentResource.php b/php/src/Mcp/Resources/ContentResource.php similarity index 100% rename from src/php/src/Mcp/Resources/ContentResource.php rename to php/src/Mcp/Resources/ContentResource.php diff --git a/src/php/src/Mcp/Resources/DatabaseSchema.php b/php/src/Mcp/Resources/DatabaseSchema.php similarity index 100% rename from src/php/src/Mcp/Resources/DatabaseSchema.php rename to php/src/Mcp/Resources/DatabaseSchema.php diff --git a/src/php/src/Mcp/Routes/admin.php b/php/src/Mcp/Routes/admin.php similarity index 100% rename from src/php/src/Mcp/Routes/admin.php rename to php/src/Mcp/Routes/admin.php diff --git a/src/php/src/Mcp/Services/AgentSessionService.php b/php/src/Mcp/Services/AgentSessionService.php similarity index 100% rename from src/php/src/Mcp/Services/AgentSessionService.php rename to php/src/Mcp/Services/AgentSessionService.php diff --git a/src/php/src/Mcp/Services/AgentToolRegistry.php b/php/src/Mcp/Services/AgentToolRegistry.php similarity index 100% rename from src/php/src/Mcp/Services/AgentToolRegistry.php rename to php/src/Mcp/Services/AgentToolRegistry.php diff --git a/src/php/src/Mcp/Services/AuditLogService.php b/php/src/Mcp/Services/AuditLogService.php similarity index 100% rename from src/php/src/Mcp/Services/AuditLogService.php rename to php/src/Mcp/Services/AuditLogService.php diff --git a/src/php/src/Mcp/Services/CircuitBreaker.php b/php/src/Mcp/Services/CircuitBreaker.php similarity index 100% rename from src/php/src/Mcp/Services/CircuitBreaker.php rename to php/src/Mcp/Services/CircuitBreaker.php diff --git a/src/php/src/Mcp/Services/DataRedactor.php b/php/src/Mcp/Services/DataRedactor.php similarity index 100% rename from src/php/src/Mcp/Services/DataRedactor.php rename to php/src/Mcp/Services/DataRedactor.php diff --git a/src/php/src/Mcp/Services/McpHealthService.php b/php/src/Mcp/Services/McpHealthService.php similarity index 100% rename from src/php/src/Mcp/Services/McpHealthService.php rename to php/src/Mcp/Services/McpHealthService.php diff --git a/src/php/src/Mcp/Services/McpMetricsService.php b/php/src/Mcp/Services/McpMetricsService.php similarity index 100% rename from src/php/src/Mcp/Services/McpMetricsService.php rename to php/src/Mcp/Services/McpMetricsService.php diff --git a/src/php/src/Mcp/Services/McpQuotaService.php b/php/src/Mcp/Services/McpQuotaService.php similarity index 100% rename from src/php/src/Mcp/Services/McpQuotaService.php rename to php/src/Mcp/Services/McpQuotaService.php diff --git a/src/php/src/Mcp/Services/McpWebhookDispatcher.php b/php/src/Mcp/Services/McpWebhookDispatcher.php similarity index 100% rename from src/php/src/Mcp/Services/McpWebhookDispatcher.php rename to php/src/Mcp/Services/McpWebhookDispatcher.php diff --git a/src/php/src/Mcp/Services/OpenApiGenerator.php b/php/src/Mcp/Services/OpenApiGenerator.php similarity index 100% rename from src/php/src/Mcp/Services/OpenApiGenerator.php rename to php/src/Mcp/Services/OpenApiGenerator.php diff --git a/src/php/src/Mcp/Services/QueryAuditService.php b/php/src/Mcp/Services/QueryAuditService.php similarity index 100% rename from src/php/src/Mcp/Services/QueryAuditService.php rename to php/src/Mcp/Services/QueryAuditService.php diff --git a/src/php/src/Mcp/Services/QueryExecutionService.php b/php/src/Mcp/Services/QueryExecutionService.php similarity index 100% rename from src/php/src/Mcp/Services/QueryExecutionService.php rename to php/src/Mcp/Services/QueryExecutionService.php diff --git a/src/php/src/Mcp/Services/SqlQueryValidator.php b/php/src/Mcp/Services/SqlQueryValidator.php similarity index 100% rename from src/php/src/Mcp/Services/SqlQueryValidator.php rename to php/src/Mcp/Services/SqlQueryValidator.php diff --git a/src/php/src/Mcp/Services/ToolAnalyticsService.php b/php/src/Mcp/Services/ToolAnalyticsService.php similarity index 100% rename from src/php/src/Mcp/Services/ToolAnalyticsService.php rename to php/src/Mcp/Services/ToolAnalyticsService.php diff --git a/src/php/src/Mcp/Services/ToolDependencyService.php b/php/src/Mcp/Services/ToolDependencyService.php similarity index 100% rename from src/php/src/Mcp/Services/ToolDependencyService.php rename to php/src/Mcp/Services/ToolDependencyService.php diff --git a/src/php/src/Mcp/Services/ToolRateLimiter.php b/php/src/Mcp/Services/ToolRateLimiter.php similarity index 100% rename from src/php/src/Mcp/Services/ToolRateLimiter.php rename to php/src/Mcp/Services/ToolRateLimiter.php diff --git a/src/php/src/Mcp/Services/ToolRegistry.php b/php/src/Mcp/Services/ToolRegistry.php similarity index 100% rename from src/php/src/Mcp/Services/ToolRegistry.php rename to php/src/Mcp/Services/ToolRegistry.php diff --git a/src/php/src/Mcp/Services/ToolVersionService.php b/php/src/Mcp/Services/ToolVersionService.php similarity index 100% rename from src/php/src/Mcp/Services/ToolVersionService.php rename to php/src/Mcp/Services/ToolVersionService.php diff --git a/src/php/src/Mcp/Tests/Unit/McpQuotaServiceTest.php b/php/src/Mcp/Tests/Unit/McpQuotaServiceTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/McpQuotaServiceTest.php rename to php/src/Mcp/Tests/Unit/McpQuotaServiceTest.php diff --git a/src/php/src/Mcp/Tests/Unit/QueryAuditServiceTest.php b/php/src/Mcp/Tests/Unit/QueryAuditServiceTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/QueryAuditServiceTest.php rename to php/src/Mcp/Tests/Unit/QueryAuditServiceTest.php diff --git a/src/php/src/Mcp/Tests/Unit/QueryExecutionServiceTest.php b/php/src/Mcp/Tests/Unit/QueryExecutionServiceTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/QueryExecutionServiceTest.php rename to php/src/Mcp/Tests/Unit/QueryExecutionServiceTest.php diff --git a/src/php/src/Mcp/Tests/Unit/ToolAnalyticsServiceTest.php b/php/src/Mcp/Tests/Unit/ToolAnalyticsServiceTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/ToolAnalyticsServiceTest.php rename to php/src/Mcp/Tests/Unit/ToolAnalyticsServiceTest.php diff --git a/src/php/src/Mcp/Tests/Unit/ToolDependencyServiceTest.php b/php/src/Mcp/Tests/Unit/ToolDependencyServiceTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/ToolDependencyServiceTest.php rename to php/src/Mcp/Tests/Unit/ToolDependencyServiceTest.php diff --git a/src/php/src/Mcp/Tests/Unit/ToolVersionServiceTest.php b/php/src/Mcp/Tests/Unit/ToolVersionServiceTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/ToolVersionServiceTest.php rename to php/src/Mcp/Tests/Unit/ToolVersionServiceTest.php diff --git a/src/php/src/Mcp/Tests/Unit/ValidateWorkspaceContextMiddlewareTest.php b/php/src/Mcp/Tests/Unit/ValidateWorkspaceContextMiddlewareTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/ValidateWorkspaceContextMiddlewareTest.php rename to php/src/Mcp/Tests/Unit/ValidateWorkspaceContextMiddlewareTest.php diff --git a/src/php/src/Mcp/Tests/Unit/WorkspaceContextSecurityTest.php b/php/src/Mcp/Tests/Unit/WorkspaceContextSecurityTest.php similarity index 100% rename from src/php/src/Mcp/Tests/Unit/WorkspaceContextSecurityTest.php rename to php/src/Mcp/Tests/Unit/WorkspaceContextSecurityTest.php diff --git a/src/php/src/Mcp/Tests/UseCase/ApiKeyManagerBasic.php b/php/src/Mcp/Tests/UseCase/ApiKeyManagerBasic.php similarity index 100% rename from src/php/src/Mcp/Tests/UseCase/ApiKeyManagerBasic.php rename to php/src/Mcp/Tests/UseCase/ApiKeyManagerBasic.php diff --git a/src/php/src/Mcp/Tools/Commerce/CreateCoupon.php b/php/src/Mcp/Tools/Commerce/CreateCoupon.php similarity index 100% rename from src/php/src/Mcp/Tools/Commerce/CreateCoupon.php rename to php/src/Mcp/Tools/Commerce/CreateCoupon.php diff --git a/src/php/src/Mcp/Tools/Commerce/GetBillingStatus.php b/php/src/Mcp/Tools/Commerce/GetBillingStatus.php similarity index 100% rename from src/php/src/Mcp/Tools/Commerce/GetBillingStatus.php rename to php/src/Mcp/Tools/Commerce/GetBillingStatus.php diff --git a/src/php/src/Mcp/Tools/Commerce/ListInvoices.php b/php/src/Mcp/Tools/Commerce/ListInvoices.php similarity index 100% rename from src/php/src/Mcp/Tools/Commerce/ListInvoices.php rename to php/src/Mcp/Tools/Commerce/ListInvoices.php diff --git a/src/php/src/Mcp/Tools/Commerce/UpgradePlan.php b/php/src/Mcp/Tools/Commerce/UpgradePlan.php similarity index 100% rename from src/php/src/Mcp/Tools/Commerce/UpgradePlan.php rename to php/src/Mcp/Tools/Commerce/UpgradePlan.php diff --git a/src/php/src/Mcp/Tools/Concerns/RequiresWorkspaceContext.php b/php/src/Mcp/Tools/Concerns/RequiresWorkspaceContext.php similarity index 100% rename from src/php/src/Mcp/Tools/Concerns/RequiresWorkspaceContext.php rename to php/src/Mcp/Tools/Concerns/RequiresWorkspaceContext.php diff --git a/src/php/src/Mcp/Tools/Concerns/ValidatesDependencies.php b/php/src/Mcp/Tools/Concerns/ValidatesDependencies.php similarity index 100% rename from src/php/src/Mcp/Tools/Concerns/ValidatesDependencies.php rename to php/src/Mcp/Tools/Concerns/ValidatesDependencies.php diff --git a/src/php/src/Mcp/Tools/ContentTools.php b/php/src/Mcp/Tools/ContentTools.php similarity index 100% rename from src/php/src/Mcp/Tools/ContentTools.php rename to php/src/Mcp/Tools/ContentTools.php diff --git a/src/php/src/Mcp/Tools/DescribeTable.php b/php/src/Mcp/Tools/DescribeTable.php similarity index 100% rename from src/php/src/Mcp/Tools/DescribeTable.php rename to php/src/Mcp/Tools/DescribeTable.php diff --git a/src/php/src/Mcp/Tools/GetStats.php b/php/src/Mcp/Tools/GetStats.php similarity index 100% rename from src/php/src/Mcp/Tools/GetStats.php rename to php/src/Mcp/Tools/GetStats.php diff --git a/src/php/src/Mcp/Tools/ListRoutes.php b/php/src/Mcp/Tools/ListRoutes.php similarity index 100% rename from src/php/src/Mcp/Tools/ListRoutes.php rename to php/src/Mcp/Tools/ListRoutes.php diff --git a/src/php/src/Mcp/Tools/ListSites.php b/php/src/Mcp/Tools/ListSites.php similarity index 100% rename from src/php/src/Mcp/Tools/ListSites.php rename to php/src/Mcp/Tools/ListSites.php diff --git a/src/php/src/Mcp/Tools/ListTables.php b/php/src/Mcp/Tools/ListTables.php similarity index 100% rename from src/php/src/Mcp/Tools/ListTables.php rename to php/src/Mcp/Tools/ListTables.php diff --git a/src/php/src/Mcp/Tools/QueryDatabase.php b/php/src/Mcp/Tools/QueryDatabase.php similarity index 100% rename from src/php/src/Mcp/Tools/QueryDatabase.php rename to php/src/Mcp/Tools/QueryDatabase.php diff --git a/src/php/src/Mcp/View/Blade/admin/analytics/dashboard.blade.php b/php/src/Mcp/View/Blade/admin/analytics/dashboard.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/analytics/dashboard.blade.php rename to php/src/Mcp/View/Blade/admin/analytics/dashboard.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/analytics/partials/stats-card.blade.php b/php/src/Mcp/View/Blade/admin/analytics/partials/stats-card.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/analytics/partials/stats-card.blade.php rename to php/src/Mcp/View/Blade/admin/analytics/partials/stats-card.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/analytics/partials/tool-table.blade.php b/php/src/Mcp/View/Blade/admin/analytics/partials/tool-table.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/analytics/partials/tool-table.blade.php rename to php/src/Mcp/View/Blade/admin/analytics/partials/tool-table.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/analytics/tool-detail.blade.php b/php/src/Mcp/View/Blade/admin/analytics/tool-detail.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/analytics/tool-detail.blade.php rename to php/src/Mcp/View/Blade/admin/analytics/tool-detail.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/api-key-manager.blade.php b/php/src/Mcp/View/Blade/admin/api-key-manager.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/api-key-manager.blade.php rename to php/src/Mcp/View/Blade/admin/api-key-manager.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/audit-log-viewer.blade.php b/php/src/Mcp/View/Blade/admin/audit-log-viewer.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/audit-log-viewer.blade.php rename to php/src/Mcp/View/Blade/admin/audit-log-viewer.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/mcp-playground.blade.php b/php/src/Mcp/View/Blade/admin/mcp-playground.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/mcp-playground.blade.php rename to php/src/Mcp/View/Blade/admin/mcp-playground.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/playground.blade.php b/php/src/Mcp/View/Blade/admin/playground.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/playground.blade.php rename to php/src/Mcp/View/Blade/admin/playground.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/quota-usage.blade.php b/php/src/Mcp/View/Blade/admin/quota-usage.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/quota-usage.blade.php rename to php/src/Mcp/View/Blade/admin/quota-usage.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/request-log.blade.php b/php/src/Mcp/View/Blade/admin/request-log.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/request-log.blade.php rename to php/src/Mcp/View/Blade/admin/request-log.blade.php diff --git a/src/php/src/Mcp/View/Blade/admin/tool-version-manager.blade.php b/php/src/Mcp/View/Blade/admin/tool-version-manager.blade.php similarity index 100% rename from src/php/src/Mcp/View/Blade/admin/tool-version-manager.blade.php rename to php/src/Mcp/View/Blade/admin/tool-version-manager.blade.php diff --git a/src/php/src/Mcp/View/Modal/Admin/ApiKeyManager.php b/php/src/Mcp/View/Modal/Admin/ApiKeyManager.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/ApiKeyManager.php rename to php/src/Mcp/View/Modal/Admin/ApiKeyManager.php diff --git a/src/php/src/Mcp/View/Modal/Admin/AuditLogViewer.php b/php/src/Mcp/View/Modal/Admin/AuditLogViewer.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/AuditLogViewer.php rename to php/src/Mcp/View/Modal/Admin/AuditLogViewer.php diff --git a/src/php/src/Mcp/View/Modal/Admin/McpPlayground.php b/php/src/Mcp/View/Modal/Admin/McpPlayground.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/McpPlayground.php rename to php/src/Mcp/View/Modal/Admin/McpPlayground.php diff --git a/src/php/src/Mcp/View/Modal/Admin/Playground.php b/php/src/Mcp/View/Modal/Admin/Playground.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/Playground.php rename to php/src/Mcp/View/Modal/Admin/Playground.php diff --git a/src/php/src/Mcp/View/Modal/Admin/QuotaUsage.php b/php/src/Mcp/View/Modal/Admin/QuotaUsage.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/QuotaUsage.php rename to php/src/Mcp/View/Modal/Admin/QuotaUsage.php diff --git a/src/php/src/Mcp/View/Modal/Admin/RequestLog.php b/php/src/Mcp/View/Modal/Admin/RequestLog.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/RequestLog.php rename to php/src/Mcp/View/Modal/Admin/RequestLog.php diff --git a/src/php/src/Mcp/View/Modal/Admin/ToolAnalyticsDashboard.php b/php/src/Mcp/View/Modal/Admin/ToolAnalyticsDashboard.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/ToolAnalyticsDashboard.php rename to php/src/Mcp/View/Modal/Admin/ToolAnalyticsDashboard.php diff --git a/src/php/src/Mcp/View/Modal/Admin/ToolAnalyticsDetail.php b/php/src/Mcp/View/Modal/Admin/ToolAnalyticsDetail.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/ToolAnalyticsDetail.php rename to php/src/Mcp/View/Modal/Admin/ToolAnalyticsDetail.php diff --git a/src/php/src/Mcp/View/Modal/Admin/ToolVersionManager.php b/php/src/Mcp/View/Modal/Admin/ToolVersionManager.php similarity index 100% rename from src/php/src/Mcp/View/Modal/Admin/ToolVersionManager.php rename to php/src/Mcp/View/Modal/Admin/ToolVersionManager.php diff --git a/src/php/src/Website/Mcp/Boot.php b/php/src/Website/Mcp/Boot.php similarity index 100% rename from src/php/src/Website/Mcp/Boot.php rename to php/src/Website/Mcp/Boot.php diff --git a/src/php/src/Website/Mcp/Controllers/McpRegistryController.php b/php/src/Website/Mcp/Controllers/McpRegistryController.php similarity index 100% rename from src/php/src/Website/Mcp/Controllers/McpRegistryController.php rename to php/src/Website/Mcp/Controllers/McpRegistryController.php diff --git a/src/php/src/Website/Mcp/Routes/web.php b/php/src/Website/Mcp/Routes/web.php similarity index 100% rename from src/php/src/Website/Mcp/Routes/web.php rename to php/src/Website/Mcp/Routes/web.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/analytics.blade.php b/php/src/Website/Mcp/View/Blade/web/analytics.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/analytics.blade.php rename to php/src/Website/Mcp/View/Blade/web/analytics.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/api-explorer.blade.php b/php/src/Website/Mcp/View/Blade/web/api-explorer.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/api-explorer.blade.php rename to php/src/Website/Mcp/View/Blade/web/api-explorer.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/api-key-manager.blade.php b/php/src/Website/Mcp/View/Blade/web/api-key-manager.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/api-key-manager.blade.php rename to php/src/Website/Mcp/View/Blade/web/api-key-manager.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/connect.blade.php b/php/src/Website/Mcp/View/Blade/web/connect.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/connect.blade.php rename to php/src/Website/Mcp/View/Blade/web/connect.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/dashboard.blade.php b/php/src/Website/Mcp/View/Blade/web/dashboard.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/dashboard.blade.php rename to php/src/Website/Mcp/View/Blade/web/dashboard.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/index.blade.php b/php/src/Website/Mcp/View/Blade/web/index.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/index.blade.php rename to php/src/Website/Mcp/View/Blade/web/index.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/keys.blade.php b/php/src/Website/Mcp/View/Blade/web/keys.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/keys.blade.php rename to php/src/Website/Mcp/View/Blade/web/keys.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/landing.blade.php b/php/src/Website/Mcp/View/Blade/web/landing.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/landing.blade.php rename to php/src/Website/Mcp/View/Blade/web/landing.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/mcp-metrics.blade.php b/php/src/Website/Mcp/View/Blade/web/mcp-metrics.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/mcp-metrics.blade.php rename to php/src/Website/Mcp/View/Blade/web/mcp-metrics.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/mcp-playground.blade.php b/php/src/Website/Mcp/View/Blade/web/mcp-playground.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/mcp-playground.blade.php rename to php/src/Website/Mcp/View/Blade/web/mcp-playground.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/playground.blade.php b/php/src/Website/Mcp/View/Blade/web/playground.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/playground.blade.php rename to php/src/Website/Mcp/View/Blade/web/playground.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/request-log.blade.php b/php/src/Website/Mcp/View/Blade/web/request-log.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/request-log.blade.php rename to php/src/Website/Mcp/View/Blade/web/request-log.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/show.blade.php b/php/src/Website/Mcp/View/Blade/web/show.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/show.blade.php rename to php/src/Website/Mcp/View/Blade/web/show.blade.php diff --git a/src/php/src/Website/Mcp/View/Blade/web/unified-search.blade.php b/php/src/Website/Mcp/View/Blade/web/unified-search.blade.php similarity index 100% rename from src/php/src/Website/Mcp/View/Blade/web/unified-search.blade.php rename to php/src/Website/Mcp/View/Blade/web/unified-search.blade.php diff --git a/src/php/src/Website/Mcp/View/Modal/ApiExplorer.php b/php/src/Website/Mcp/View/Modal/ApiExplorer.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/ApiExplorer.php rename to php/src/Website/Mcp/View/Modal/ApiExplorer.php diff --git a/src/php/src/Website/Mcp/View/Modal/ApiKeyManager.php b/php/src/Website/Mcp/View/Modal/ApiKeyManager.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/ApiKeyManager.php rename to php/src/Website/Mcp/View/Modal/ApiKeyManager.php diff --git a/src/php/src/Website/Mcp/View/Modal/Dashboard.php b/php/src/Website/Mcp/View/Modal/Dashboard.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/Dashboard.php rename to php/src/Website/Mcp/View/Modal/Dashboard.php diff --git a/src/php/src/Website/Mcp/View/Modal/McpMetrics.php b/php/src/Website/Mcp/View/Modal/McpMetrics.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/McpMetrics.php rename to php/src/Website/Mcp/View/Modal/McpMetrics.php diff --git a/src/php/src/Website/Mcp/View/Modal/McpPlayground.php b/php/src/Website/Mcp/View/Modal/McpPlayground.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/McpPlayground.php rename to php/src/Website/Mcp/View/Modal/McpPlayground.php diff --git a/src/php/src/Website/Mcp/View/Modal/Playground.php b/php/src/Website/Mcp/View/Modal/Playground.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/Playground.php rename to php/src/Website/Mcp/View/Modal/Playground.php diff --git a/src/php/src/Website/Mcp/View/Modal/RequestLog.php b/php/src/Website/Mcp/View/Modal/RequestLog.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/RequestLog.php rename to php/src/Website/Mcp/View/Modal/RequestLog.php diff --git a/src/php/src/Website/Mcp/View/Modal/UnifiedSearch.php b/php/src/Website/Mcp/View/Modal/UnifiedSearch.php similarity index 100% rename from src/php/src/Website/Mcp/View/Modal/UnifiedSearch.php rename to php/src/Website/Mcp/View/Modal/UnifiedSearch.php diff --git a/src/php/storage/app/.gitignore b/php/storage/app/.gitignore similarity index 100% rename from src/php/storage/app/.gitignore rename to php/storage/app/.gitignore diff --git a/src/php/storage/app/public/.gitignore b/php/storage/app/public/.gitignore similarity index 100% rename from src/php/storage/app/public/.gitignore rename to php/storage/app/public/.gitignore diff --git a/src/php/storage/framework/.gitignore b/php/storage/framework/.gitignore similarity index 100% rename from src/php/storage/framework/.gitignore rename to php/storage/framework/.gitignore diff --git a/src/php/storage/framework/cache/.gitignore b/php/storage/framework/cache/.gitignore similarity index 100% rename from src/php/storage/framework/cache/.gitignore rename to php/storage/framework/cache/.gitignore diff --git a/src/php/storage/framework/cache/data/.gitignore b/php/storage/framework/cache/data/.gitignore similarity index 100% rename from src/php/storage/framework/cache/data/.gitignore rename to php/storage/framework/cache/data/.gitignore diff --git a/src/php/storage/framework/sessions/.gitignore b/php/storage/framework/sessions/.gitignore similarity index 100% rename from src/php/storage/framework/sessions/.gitignore rename to php/storage/framework/sessions/.gitignore diff --git a/src/php/storage/framework/testing/.gitignore b/php/storage/framework/testing/.gitignore similarity index 100% rename from src/php/storage/framework/testing/.gitignore rename to php/storage/framework/testing/.gitignore diff --git a/src/php/storage/framework/views/.gitignore b/php/storage/framework/views/.gitignore similarity index 100% rename from src/php/storage/framework/views/.gitignore rename to php/storage/framework/views/.gitignore diff --git a/src/php/storage/logs/.gitignore b/php/storage/logs/.gitignore similarity index 100% rename from src/php/storage/logs/.gitignore rename to php/storage/logs/.gitignore diff --git a/src/php/tailwind.config.js b/php/tailwind.config.js similarity index 100% rename from src/php/tailwind.config.js rename to php/tailwind.config.js diff --git a/src/php/tests/Feature/.gitkeep b/php/tests/Feature/.gitkeep similarity index 100% rename from src/php/tests/Feature/.gitkeep rename to php/tests/Feature/.gitkeep diff --git a/src/php/tests/Pest.php b/php/tests/Pest.php similarity index 100% rename from src/php/tests/Pest.php rename to php/tests/Pest.php diff --git a/src/php/tests/TestCase.php b/php/tests/TestCase.php similarity index 100% rename from src/php/tests/TestCase.php rename to php/tests/TestCase.php diff --git a/src/php/tests/Unit/.gitkeep b/php/tests/Unit/.gitkeep similarity index 100% rename from src/php/tests/Unit/.gitkeep rename to php/tests/Unit/.gitkeep diff --git a/src/php/tests/Unit/DescribeTableTest.php b/php/tests/Unit/DescribeTableTest.php similarity index 100% rename from src/php/tests/Unit/DescribeTableTest.php rename to php/tests/Unit/DescribeTableTest.php diff --git a/src/php/tests/Unit/McpResourceListTest.php b/php/tests/Unit/McpResourceListTest.php similarity index 100% rename from src/php/tests/Unit/McpResourceListTest.php rename to php/tests/Unit/McpResourceListTest.php diff --git a/src/php/tests/Unit/SqlQueryValidatorTest.php b/php/tests/Unit/SqlQueryValidatorTest.php similarity index 100% rename from src/php/tests/Unit/SqlQueryValidatorTest.php rename to php/tests/Unit/SqlQueryValidatorTest.php diff --git a/src/php/vite.config.js b/php/vite.config.js similarity index 100% rename from src/php/vite.config.js rename to php/vite.config.js diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..685ce14 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,8 @@ +sonar.projectKey=core_mcp +sonar.projectName=core/mcp +sonar.sources=. +sonar.exclusions=**/vendor/**,**/third_party/**,**/.tmp/**,**/gomodcache/**,**/node_modules/**,**/dist/**,**/build/**,**/*_test.go,**/*.test.ts,**/*.test.js,**/*.spec.ts,**/*.spec.js +sonar.tests=. +sonar.test.inclusions=**/*_test.go,**/*.test.ts,**/*.test.js,**/*.spec.ts,**/*.spec.js +sonar.test.exclusions=**/vendor/**,**/third_party/**,**/.tmp/**,**/gomodcache/**,**/node_modules/**,**/dist/**,**/build/** +sonar.go.coverage.reportPaths=go/coverage.out