TuringAgent
A local-first AI orchestration platform — a Flutter client and Go gRPC backend that run a private assistant stack with model routing, streaming, MCP tools, and approval-gated actions.
Go · gRPC · Flutter · Ollama · MCP · Docker
Loading…
A local-first AI orchestration platform — a Flutter client and Go gRPC backend that run a private assistant stack with model routing, streaming, MCP tools, and approval-gated actions.
Go · gRPC · Flutter · Ollama · MCP · Docker
Provide a machine-local assistant stack that can coordinate chat, model routing, tool execution, and human approval without exposing MCP services to the host network.
A Go gRPC orchestration layer for sessions, messages, runs, events, approvals, audit records, and SQLite persistence.
A Go agent runtime that loads context, calls local or OpenAI-compatible models, executes MCP tools, and streams runtime updates.
A Flutter client for settings, sessions, chat, streamed responses, and approval cards.
The client sends gRPC work to the orchestrator; the agent runtime loads context, reaches model providers, and calls internal MCP services. Mutating file tools pause for approval before execution.
Presents settings, session/chat UI, streamed events, model selection, and approval cards.
Owns public and internal gRPC APIs, sessions, runs, events, approvals, audit records, and SQLite persistence.
Loads session context, calls model providers, executes tools, and streams runtime updates.
The runtime reaches Ollama or an OpenAI-compatible provider and calls internal MCP services; file mutations require approval validation.
Docker Compose publishes the public orchestrator gRPC port while keeping the runtime and MCP services on internal networks.
Approval-gated writes use a short-lived JWT bound to the tool and argument hash, then consume approval through internal gRPC before mutation proceeds.
The file server uses descriptor-relative operations and no-follow flags to reject traversal and symlink escapes rather than relying on path rewriting alone.
The repository script starts Compose, checks health, creates a session, sends a deterministic system.time tool message, observes streamed events, and verifies event replay.
An on-demand script asks a real Ollama model to choose system.time and distinguishes a broken exercised loop from an inconclusive setup or model outcome; it is intentionally outside CI.
The documented matrix includes Go race tests, vet/build checks, protobuf validation, MCP-server checks, and Flutter analysis/tests.
Current public status: the repository documents a local development stack with Docker Compose, a Flutter client, a gRPC smoke test, and an on-demand live tool-loop check. This case study does not make a production-deployment or usage claim.
Documents the local install, smoke test, model-driven check, and developer command set.
Documents the runtime responsibilities, public/internal gRPC ports, and Docker-network exposure.
Documents approval ordering, token checks, bounded tool behaviour, and descriptor-relative file confinement.
Shows the Compose startup, health wait, and gRPC smoke-client execution used for the documented proof path.