agent/cmd/mcp/ethics.go
Snider e90a84eaa0 feat: merge go-agent + go-agentic + php-devops into unified agent repo
Combines three repositories into a single workspace:
- go-agent → pkg/orchestrator (Clotho), pkg/jobrunner, pkg/loop, cmd/
- go-agentic → pkg/lifecycle (allowance, sessions, plans, dispatch)
- php-devops → repos.yaml, setup.sh, scripts/, .core/

Module path: forge.lthn.ai/core/agent

All packages build, all tests pass.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 15:23:00 +00:00

37 lines
928 B
Go

package main
import (
"context"
"fmt"
"os"
"path/filepath"
"github.com/mark3labs/mcp-go/mcp"
)
const ethicsModalPath = "codex/ethics/MODAL.md"
const ethicsAxiomsPath = "codex/ethics/kernel/axioms.json"
func ethicsCheckHandler(_ context.Context, _ mcp.CallToolRequest) (*mcp.CallToolResult, error) {
root, err := findRepoRoot()
if err != nil {
return mcp.NewToolResultError(fmt.Sprintf("failed to locate repo root: %v", err)), nil
}
modalBytes, err := os.ReadFile(filepath.Join(root, ethicsModalPath))
if err != nil {
return mcp.NewToolResultError(fmt.Sprintf("failed to read modal: %v", err)), nil
}
axioms, err := readJSONMap(filepath.Join(root, ethicsAxiomsPath))
if err != nil {
return mcp.NewToolResultError(fmt.Sprintf("failed to read axioms: %v", err)), nil
}
payload := EthicsContext{
Modal: string(modalBytes),
Axioms: axioms,
}
return mcp.NewToolResultStructuredOnly(payload), nil
}