feat(ax-10): bring mcp to v0.8.0-alpha.1 + CLI test scaffold

- Migrate go.mod direct + indirect deps from dappco.re/go/core/X (pre-migration paths) to dappco.re/go/X at v0.8.0-alpha.1
- Update all Go source imports across 49 files: dappco.re/go/core/{ai,api,cli,io,log,process,rag,webview,ws,i18n,inference} -> dappco.re/go/{ai,api,cli,io,log,process,rag,webview,ws,i18n,inference}
- Add tests/cli/mcp/Taskfile.yaml AX-10 scaffold (build / vet / test under default deps), per RFC-CORE-008-AGENT-EXPERIENCE.md §10
- mcp is library + 4 binaries (brain-seed, core-mcp, mcpcmd, openbrain-mcp); the build target validates all of them

Closes tasks.lthn.sh/view.php?id=198

Co-Authored-By: Athena <athena@lthn.ai>
This commit is contained in:
Snider 2026-04-24 23:35:37 +01:00
parent 903aba4695
commit b2ed228b3f
50 changed files with 110 additions and 84 deletions

View file

@ -27,8 +27,8 @@ import (
"strings"
"time"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
)
var (

View file

@ -1,7 +1,7 @@
package main
import (
"dappco.re/go/core/cli/pkg/cli"
"dappco.re/go/cli/pkg/cli"
mcpcmd "dappco.re/go/mcp/cmd/mcpcmd"
)

View file

@ -12,7 +12,7 @@ import (
"time"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
"dappco.re/go/mcp/pkg/mcp"
"dappco.re/go/mcp/pkg/mcp/brain"
)

22
go.mod
View file

@ -4,15 +4,15 @@ go 1.26.0
require (
dappco.re/go/core v0.8.0-alpha.1
dappco.re/go/core/ai v0.2.2
dappco.re/go/core/api v0.3.0
dappco.re/go/core/cli v0.5.2
dappco.re/go/core/io v0.4.1
dappco.re/go/core/log v0.1.2
dappco.re/go/core/process v0.5.0
dappco.re/go/core/rag v0.1.13
dappco.re/go/core/webview v0.2.1
dappco.re/go/core/ws v0.4.0
dappco.re/go/ai v0.8.0-alpha.1
dappco.re/go/api v0.8.0-alpha.1
dappco.re/go/cli v0.8.0-alpha.1
dappco.re/go/io v0.8.0-alpha.1
dappco.re/go/log v0.8.0-alpha.1
dappco.re/go/process v0.8.0-alpha.1
dappco.re/go/rag v0.8.0-alpha.1
dappco.re/go/webview v0.8.0-alpha.1
dappco.re/go/ws v0.8.0-alpha.1
github.com/gin-gonic/gin v1.12.0
github.com/gorilla/websocket v1.5.3
github.com/modelcontextprotocol/go-sdk v1.5.0
@ -21,8 +21,8 @@ require (
)
require (
dappco.re/go/core/i18n v0.2.3 // indirect
dappco.re/go/core/inference v0.3.0 // indirect
dappco.re/go/i18n v0.8.0-alpha.1 // indirect
dappco.re/go/inference v0.8.0-alpha.1 // indirect
github.com/99designs/gqlgen v0.17.88 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/agnivade/levenshtein v1.2.1 // indirect

View file

@ -10,8 +10,8 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -9,7 +9,7 @@ import (
"net/http"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -7,7 +7,7 @@ import (
"net/http"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreio "dappco.re/go/io"
coremcp "dappco.re/go/mcp/pkg/mcp"
)

View file

@ -9,7 +9,7 @@ import (
"net/http"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -7,7 +7,7 @@ import (
"os/exec"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -10,8 +10,8 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -10,8 +10,8 @@ import (
"os/exec"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -13,8 +13,8 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
"gopkg.in/yaml.v3"

View file

@ -9,7 +9,7 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreio "dappco.re/go/io"
"gopkg.in/yaml.v3"
)

View file

@ -11,8 +11,8 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
)
func listLocalRepos(basePath string) []string {

View file

@ -9,8 +9,8 @@ import (
"syscall"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -11,7 +11,7 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreio "dappco.re/go/io"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -8,7 +8,7 @@ import (
"net/http"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -9,8 +9,8 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -7,7 +7,7 @@ import (
"time"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -6,7 +6,7 @@ import (
"os"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreio "dappco.re/go/io"
)
// os.CreateTemp, os.Remove, os.Rename are framework-boundary calls for

View file

@ -17,7 +17,7 @@ import (
"time"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -9,7 +9,7 @@ import (
coremcp "dappco.re/go/mcp/pkg/mcp"
"dappco.re/go/mcp/pkg/mcp/ide"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
)
// errBridgeNotAvailable is returned when a tool requires the Laravel bridge

View file

@ -9,8 +9,8 @@ import (
"time"
core "dappco.re/go/core"
coreio "dappco.re/go/core/io"
coreerr "dappco.re/go/core/log"
coreio "dappco.re/go/io"
coreerr "dappco.re/go/log"
coremcp "dappco.re/go/mcp/pkg/mcp"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -7,9 +7,9 @@ import (
coremcp "dappco.re/go/mcp/pkg/mcp"
"dappco.re/go/mcp/pkg/mcp/ide"
"dappco.re/go/core/api"
"dappco.re/go/core/api/pkg/provider"
"dappco.re/go/core/ws"
"dappco.re/go/api"
"dappco.re/go/api/pkg/provider"
"dappco.re/go/ws"
"github.com/gin-gonic/gin"
)

View file

@ -8,7 +8,7 @@ import (
coremcp "dappco.re/go/mcp/pkg/mcp"
"dappco.re/go/mcp/pkg/mcp/ide"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -8,7 +8,7 @@ import (
core "dappco.re/go/core"
"github.com/gin-gonic/gin"
api "dappco.re/go/core/api"
api "dappco.re/go/api"
)
// maxBodySize is the maximum request body size accepted by bridged tool endpoints.

View file

@ -17,7 +17,7 @@ import (
"dappco.re/go/mcp/pkg/mcp/agentic"
"dappco.re/go/mcp/pkg/mcp/brain"
"dappco.re/go/mcp/pkg/mcp/ide"
api "dappco.re/go/core/api"
api "dappco.re/go/api"
)
func init() {

View file

@ -9,8 +9,8 @@ import (
"sync"
"time"
coreerr "dappco.re/go/core/log"
"dappco.re/go/core/ws"
coreerr "dappco.re/go/log"
"dappco.re/go/ws"
"github.com/gorilla/websocket"
)

View file

@ -11,7 +11,7 @@ import (
"testing"
"time"
"dappco.re/go/core/ws"
"dappco.re/go/ws"
"github.com/gorilla/websocket"
)

View file

@ -9,8 +9,8 @@ import (
core "dappco.re/go/core"
coremcp "dappco.re/go/mcp/pkg/mcp"
coreerr "dappco.re/go/core/log"
"dappco.re/go/core/ws"
coreerr "dappco.re/go/log"
"dappco.re/go/ws"
)
// errBridgeNotAvailable is returned when a tool requires the Laravel bridge

View file

@ -7,7 +7,7 @@ import (
"time"
coremcp "dappco.re/go/mcp/pkg/mcp"
coreerr "dappco.re/go/core/log"
coreerr "dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -9,7 +9,7 @@ import (
"time"
coremcp "dappco.re/go/mcp/pkg/mcp"
"dappco.re/go/core/ws"
"dappco.re/go/ws"
)
// --- Helpers ---

View file

@ -15,10 +15,10 @@ import (
"sync"
core "dappco.re/go/core"
"dappco.re/go/core/io"
"dappco.re/go/core/log"
"dappco.re/go/core/process"
"dappco.re/go/core/ws"
"dappco.re/go/io"
"dappco.re/go/log"
"dappco.re/go/process"
"dappco.re/go/ws"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -7,8 +7,8 @@ import (
"time"
core "dappco.re/go/core"
"dappco.re/go/core/process"
"dappco.re/go/core/ws"
"dappco.re/go/process"
"dappco.re/go/ws"
)
// Register is the service factory for core.WithService.

View file

@ -9,8 +9,8 @@ import (
"time"
"dappco.re/go/core"
"dappco.re/go/core/process"
"dappco.re/go/core/ws"
"dappco.re/go/process"
"dappco.re/go/ws"
)
func TestRegister_Good_WiresOptionalServices(t *testing.T) {

View file

@ -7,7 +7,7 @@ import (
"errors"
"testing"
"dappco.re/go/core/process"
"dappco.re/go/process"
)
func TestToolRegistry_Good_RecordsTools(t *testing.T) {

View file

@ -8,8 +8,8 @@ import (
"time"
core "dappco.re/go/core"
"dappco.re/go/core/ai/ai"
"dappco.re/go/core/log"
"dappco.re/go/ai/ai"
"dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -6,8 +6,8 @@ import (
"context"
"time"
"dappco.re/go/core/log"
"dappco.re/go/core/process"
"dappco.re/go/log"
"dappco.re/go/process"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -9,7 +9,7 @@ import (
"time"
"dappco.re/go/core"
"dappco.re/go/core/process"
"dappco.re/go/process"
)
// newTestProcessService creates a real process.Service backed by a core.Core for CI tests.

View file

@ -6,8 +6,8 @@ import (
"context"
core "dappco.re/go/core"
"dappco.re/go/core/log"
"dappco.re/go/core/rag"
"dappco.re/go/log"
"dappco.re/go/rag"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -13,8 +13,8 @@ import (
"time"
core "dappco.re/go/core"
"dappco.re/go/core/log"
"dappco.re/go/core/webview"
"dappco.re/go/log"
"dappco.re/go/webview"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -8,7 +8,7 @@ import (
"time"
core "dappco.re/go/core"
"dappco.re/go/core/log"
"dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -11,7 +11,7 @@ import (
"testing"
"time"
"dappco.re/go/core/webview"
"dappco.re/go/webview"
)
// skipIfShort skips webview tests in short mode (go test -short).

View file

@ -8,8 +8,8 @@ import (
"net/http"
core "dappco.re/go/core"
"dappco.re/go/core/log"
"dappco.re/go/core/ws"
"dappco.re/go/log"
"dappco.re/go/ws"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -11,7 +11,7 @@ import (
"time"
core "dappco.re/go/core"
"dappco.re/go/core/log"
"dappco.re/go/log"
"github.com/gorilla/websocket"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -3,7 +3,7 @@ package mcp
import (
"testing"
"dappco.re/go/core/ws"
"dappco.re/go/ws"
)
// TestWSToolsRegistered_Good verifies that WebSocket tools are registered when hub is available.

View file

@ -11,8 +11,8 @@ import (
"time"
core "dappco.re/go/core"
coreerr "dappco.re/go/core/log"
api "dappco.re/go/core/api"
coreerr "dappco.re/go/log"
api "dappco.re/go/api"
"github.com/gin-gonic/gin"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -6,7 +6,7 @@ import (
"context"
"os"
"dappco.re/go/core/log"
"dappco.re/go/log"
"github.com/modelcontextprotocol/go-sdk/mcp"
)

View file

@ -6,8 +6,8 @@ import (
"context"
"net"
"dappco.re/go/core/io"
"dappco.re/go/core/log"
"dappco.re/go/io"
"dappco.re/go/log"
)
// ServeUnix starts a Unix domain socket server for the MCP service.

View file

@ -0,0 +1,26 @@
version: "3"
tasks:
default:
deps:
- build
- vet
- test
build:
desc: Compile every package + binary in mcp.
dir: ../../..
cmds:
- GOWORK=off go build ./...
vet:
desc: Run go vet across the module.
dir: ../../..
cmds:
- GOWORK=off go vet ./...
test:
desc: Run unit tests.
dir: ../../..
cmds:
- GOWORK=off go test -count=1 ./...