- go-git in-process clone, default-branch/tag resolution, optional token auth - web-tree URL normalization (github/gitlab) with implied discovery root - discovery of skills/commands/agents/mcp, lenient frontmatter with warnings - selection: all by default, --include with missing-entry hard errors - external/<source>/<type>/ materialization preserving exec bits - lockfile v2: deterministic JSON, pinned url/ref/rev, inventory, warnings - offline black-box e2e suite against local fixture git repositories
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
// Package cli wires the agent-lib command tree: vendor (curator side),
|
|
// sync/status (client side) and version.
|
|
package cli
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
"runtime"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/m3tam3re/agent-lib/internal/version"
|
|
)
|
|
|
|
func NewRootCmd() *cobra.Command {
|
|
root := &cobra.Command{
|
|
Use: "agent-lib",
|
|
Short: "Curated agent content: vendor external sources, sync to OpenCode",
|
|
SilenceUsage: true,
|
|
SilenceErrors: true,
|
|
}
|
|
root.AddCommand(newVersionCmd())
|
|
root.AddCommand(newVendorCmd())
|
|
return root
|
|
}
|
|
|
|
func newVersionCmd() *cobra.Command {
|
|
return &cobra.Command{
|
|
Use: "version",
|
|
Short: "Print the agent-lib version",
|
|
Args: cobra.NoArgs,
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return printVersion(cmd.OutOrStdout())
|
|
},
|
|
}
|
|
}
|
|
|
|
func printVersion(w io.Writer) error {
|
|
_, err := fmt.Fprintf(w, "agent-lib %s (%s/%s)\n", version.Version, runtime.GOOS, runtime.GOARCH)
|
|
return err
|
|
}
|
|
|
|
func Execute() error {
|
|
if err := NewRootCmd().Execute(); err != nil {
|
|
fmt.Fprintln(os.Stderr, "error:", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|