mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-17 16:38:54 +00:00
* Plan: flesh out PR7 (MCP server + Agent Skill) design stdio transport (no HTTP port), mlr mcp terminal in the main binary, SDK-vs-handroll decision, tool list, in-process vs subprocess split, run-tool safety (--no-shell prerequisite), single-sourced skill, tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add mlr mcp: MCP server + agent playbook; --no-shell gate (#2098 PR7) New terminal `mlr mcp` runs a Model Context Protocol server over stdio (spawned by MCP clients; no network port), exposing five tools -- list_capabilities, which, validate_dsl, describe_data, run -- plus an agent playbook as MCP prompt/resource. Catalog tools are served in-process from the help registries; the rest subprocess this same binary with MLR_ERRORS_JSON=1, a timeout, and an output cap. Prerequisite: a new --no-shell flag / MLR_NO_SHELL env var (one-way gate) disables the DSL system/exec functions, piped redirects, and --prepipe/--prepipex; the MCP server sets it on the commands it runs unless started with --allow-shell. Adds the github.com/modelcontextprotocol/go-sdk dependency. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Force LF checkout for the embedded SKILL.md (Windows CI fix) go:embed embeds checkout bytes, so a CRLF checkout on Windows made the embedded playbook differ per platform and failed TestPlaybookHasFrontmatter. Pin the file to eol=lf in .gitattributes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Move no-shell test DSL into per-case mlr files (Windows CI fix) Inline single-quoted DSL in cmd files is mangled by the Windows shell (single quotes are not quote characters there); the harness's put -f ${CASEDIR}/mlr pattern avoids shell quoting entirely. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
58 lines
2.1 KiB
Modula-2
58 lines
2.1 KiB
Modula-2
module github.com/johnkerl/miller/v6
|
|
|
|
// The repo is 'miller' and the executable is 'mlr', going back many years and
|
|
// predating the Go port.
|
|
//
|
|
// If we had ./mlr.go then 'go build github.com/johnkerl/miller' then the
|
|
// executable would be 'miller' not 'mlr'.
|
|
//
|
|
// So we have cmd/mlr/main.go:
|
|
// * go build github.com/johnkerl/miller/v6/cmd/mlr
|
|
// * go install github.com/johnkerl/miller/v6/cmd/mlr
|
|
|
|
// go get github.com/johnkerl/lumin@v1.0.0
|
|
// Local development:
|
|
// replace github.com/johnkerl/lumin => /Users/kerl/git/johnkerl/lumin
|
|
|
|
go 1.25.0
|
|
|
|
require (
|
|
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb
|
|
github.com/johnkerl/lumin v1.0.0
|
|
github.com/johnkerl/pgpg/go v1.0.0
|
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
|
github.com/klauspost/compress v1.19.0
|
|
github.com/kshedden/statmodel v0.0.0-20210519035403-ee97d3e48df1
|
|
github.com/lestrrat-go/strftime v1.2.0
|
|
github.com/mattn/go-isatty v0.0.22
|
|
github.com/modelcontextprotocol/go-sdk v1.6.1
|
|
github.com/nine-lives-later/go-windows-terminal-sequences v1.0.4
|
|
github.com/pkg/profile v1.7.0
|
|
github.com/rivo/uniseg v0.4.7
|
|
github.com/stretchr/testify v1.11.1
|
|
golang.org/x/sys v0.46.0
|
|
golang.org/x/term v0.44.0
|
|
golang.org/x/text v0.38.0
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
pault.ag/go/debian v0.21.0
|
|
)
|
|
|
|
require (
|
|
github.com/ProtonMail/go-crypto v1.4.1 // indirect
|
|
github.com/cloudflare/circl v1.6.3 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/felixge/fgprof v0.9.3 // indirect
|
|
github.com/golang/snappy v1.0.0 // indirect
|
|
github.com/google/jsonschema-go v0.4.3 // indirect
|
|
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect
|
|
github.com/kshedden/dstream v0.0.0-20190512025041-c4c410631beb // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/segmentio/asm v1.1.3 // indirect
|
|
github.com/segmentio/encoding v0.5.4 // indirect
|
|
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
|
|
golang.org/x/crypto v0.45.0 // indirect
|
|
golang.org/x/oauth2 v0.35.0 // indirect
|
|
golang.org/x/tools v0.45.0 // indirect
|
|
gonum.org/v1/gonum v0.16.0 // indirect
|
|
pault.ag/go/topsort v0.1.1 // indirect
|
|
)
|