Compare commits
1
Commits
3b87b77b7f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb50367921
|
No files matched your search
@@ -37,7 +37,7 @@ jobs:
|
||||
version="${GITHUB_REF_NAME#mcp-}"
|
||||
binary="ely-eye-mcp"
|
||||
if [ "$GOOS" = "windows" ]; then binary="ely-eye-mcp.exe"; fi
|
||||
ldflags="-s -w -X github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli.version=${version}"
|
||||
ldflags="-s -w -X git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli.version=${version}"
|
||||
mkdir -p dist
|
||||
go build -trimpath -ldflags "$ldflags" -o "dist/${binary}" ./cmd/ely-eye-mcp
|
||||
base="ely-eye-mcp_${GOOS}_${GOARCH}"
|
||||
|
||||
@@ -70,7 +70,10 @@ go run ./cmd/ely-eye-mcp server --ely-eye-home /path/to/.ely_eye
|
||||
|
||||
## Releases
|
||||
|
||||
Pushing a `mcp-v*` tag runs `.github/workflows/mcp-release.yml`, which cross-compiles the pure-Go server (CGO disabled) for Linux, macOS, and Windows on amd64 and arm64, then publishes the archives with a `SHA256SUMS` manifest to a GitHub Release. The installers consume those assets.
|
||||
Pushing a `mcp-v*` tag runs `.github/workflows/mcp-release.yml`, which Gitea Actions
|
||||
picks up, cross-compiles the pure-Go server (CGO disabled) for Linux, macOS, and
|
||||
Windows on amd64 and arm64, then publishes the archives with a `SHA256SUMS`
|
||||
manifest to a release on git.zacharyzhang.com. The installers consume those assets.
|
||||
|
||||
## Security posture
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
module github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp
|
||||
module git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp
|
||||
|
||||
go 1.25.0
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ function Get-Platform {
|
||||
function Resolve-Version {
|
||||
if ($Version) { return $Version }
|
||||
try {
|
||||
$releases = Invoke-RestMethod -Uri "https://api.github.com/repos/$Repo/releases" -Headers @{ "User-Agent" = "ely-eye-mcp-installer" }
|
||||
$releases = Invoke-RestMethod -Uri "https://git.zacharyzhang.com/api/v1/repos/$Repo/releases" -Headers @{ "User-Agent" = "ely-eye-mcp-installer" }
|
||||
}
|
||||
catch { return "" }
|
||||
$match = $releases | Where-Object { $_.tag_name -like "mcp-*" } | Select-Object -First 1
|
||||
@@ -79,8 +79,8 @@ function Build-FromSource {
|
||||
function Download-Binary([string]$Tag) {
|
||||
$platform = Get-Platform
|
||||
$asset = "ely-eye-mcp_$platform.zip"
|
||||
$url = "https://github.com/$Repo/releases/download/$Tag/$asset"
|
||||
$sumsUrl = "https://github.com/$Repo/releases/download/$Tag/ely-eye-mcp_SHA256SUMS.txt"
|
||||
$url = "https://git.zacharyzhang.com/$Repo/releases/download/$Tag/$asset"
|
||||
$sumsUrl = "https://git.zacharyzhang.com/$Repo/releases/download/$Tag/ely-eye-mcp_SHA256SUMS.txt"
|
||||
$tmp = Join-Path ([IO.Path]::GetTempPath()) ("ely-eye-mcp-" + [Guid]::NewGuid().ToString("N"))
|
||||
New-Item -ItemType Directory -Force -Path $tmp | Out-Null
|
||||
try {
|
||||
|
||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
||||
|
||||
# Ely-Eye MCP installer for Linux and macOS.
|
||||
#
|
||||
# curl -fsSL https://raw.githubusercontent.com/ZacharyZhang-NY/ely-eye/main/ely-eye-mcp/install.sh | bash
|
||||
# curl -fsSL https://git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/raw/branch/main/ely-eye-mcp/install.sh | bash
|
||||
#
|
||||
# By default it downloads a prebuilt, checksum-verified binary for this platform
|
||||
# and needs no toolchain. Run with --method source from a repository checkout to
|
||||
@@ -79,7 +79,7 @@ sha256() {
|
||||
resolve_version() {
|
||||
if [[ -n "$VERSION" ]]; then echo "$VERSION"; return 0; fi
|
||||
local body
|
||||
body="$(curl -fsSL "https://api.github.com/repos/${REPO}/releases" 2>/dev/null)" || return 0
|
||||
body="$(curl -fsSL "https://git.zacharyzhang.com/api/v1/repos/${REPO}/releases" 2>/dev/null)" || return 0
|
||||
printf '%s\n' "$body" \
|
||||
| grep -oE '"tag_name": *"mcp-[^"]*"' \
|
||||
| head -n 1 \
|
||||
@@ -97,8 +97,8 @@ download_binary() {
|
||||
local tag="$1" platform asset url sums tmp
|
||||
platform="$(detect_platform)"
|
||||
asset="ely-eye-mcp_${platform}.tar.gz"
|
||||
url="https://github.com/${REPO}/releases/download/${tag}/${asset}"
|
||||
sums="https://github.com/${REPO}/releases/download/${tag}/ely-eye-mcp_SHA256SUMS.txt"
|
||||
url="https://git.zacharyzhang.com/${REPO}/releases/download/${tag}/${asset}"
|
||||
sums="https://git.zacharyzhang.com/${REPO}/releases/download/${tag}/ely-eye-mcp_SHA256SUMS.txt"
|
||||
tmp="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmp"' RETURN
|
||||
echo "Downloading $asset from release $tag."
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
)
|
||||
|
||||
const maxErrorBody = 4096
|
||||
|
||||
@@ -8,10 +8,10 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/mcpserver"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/setup"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/mcpserver"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/setup"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
|
||||
)
|
||||
|
||||
// version is stamped at release build time via -ldflags -X. The default is the
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"strings"
|
||||
"unicode/utf8"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
)
|
||||
|
||||
var profileBudgets = map[string]int64{
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
)
|
||||
|
||||
const storeCardBody = `{"schema_version":11,"atoms":3,"sources":3,"modalities":{"text":2,"image":1},
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
)
|
||||
|
||||
func directoryServer(t *testing.T, body string, seen *[]string) *httptest.Server {
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
)
|
||||
|
||||
const manifestBody = `{"cartridge_id":"home_1","name":"home","created_at":"2026-05-01T12:00:00Z",` +
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
)
|
||||
|
||||
func searchTestServer(t *testing.T, recorded *map[string]any) *httptest.Server {
|
||||
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package mcpserver
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
)
|
||||
|
||||
// askingServer records the path and query string of every request so a test can
|
||||
|
||||
@@ -4,9 +4,9 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/contextpack"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/contextpack"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"github.com/modelcontextprotocol/go-sdk/mcp"
|
||||
)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
|
||||
)
|
||||
|
||||
func recordingServer(t *testing.T, status int, body string, seen *[]string) *httptest.Server {
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
)
|
||||
|
||||
type Options struct {
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
)
|
||||
|
||||
func (s *Store) FetchAtom(ctx context.Context, atomID string) (domain.Atom, error) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
)
|
||||
|
||||
func (s *Store) ListCartridges(ctx context.Context, limit int) ([]domain.Cartridge, error) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
)
|
||||
|
||||
func (s *Store) evalProofsRoot() string {
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
)
|
||||
|
||||
type proofDir struct {
|
||||
|
||||
@@ -7,8 +7,8 @@ import (
|
||||
"net/url"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
|
||||
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
|
||||
Reference in new issue
Block a user