()
| 32 | } |
| 33 | |
| 34 | func newAPICmd() *cobra.Command { |
| 35 | var flags apiFlags |
| 36 | |
| 37 | cmd := &cobra.Command{ |
| 38 | Use: "api <agent-file>|<agents-dir>", |
| 39 | Short: "Start the API server", |
| 40 | Args: cobra.ExactArgs(1), |
| 41 | RunE: flags.runAPICommand, |
| 42 | } |
| 43 | |
| 44 | cmd.PersistentFlags().StringVarP(&flags.listenAddr, "listen", "l", "127.0.0.1:8080", "Address to listen on") |
| 45 | cmd.PersistentFlags().StringVarP(&flags.sessionDB, "session-db", "s", "session.db", "Path to the session database") |
| 46 | cmd.PersistentFlags().IntVar(&flags.pullIntervalMins, "pull-interval", 0, "Auto-pull OCI reference every N minutes (0 = disabled)") |
| 47 | cmd.PersistentFlags().StringVar(&flags.fakeResponses, "fake", "", "Replay AI responses from cassette file (for testing)") |
| 48 | cmd.PersistentFlags().StringVar(&flags.recordPath, "record", "", "Record AI API interactions to cassette file") |
| 49 | cmd.PersistentFlags().StringVar(&flags.authToken, "auth-token", "", "Bearer token required for API requests (empty = no authentication)") |
| 50 | cmd.PersistentFlags().StringVar(&flags.pprofAddr, "pprof-addr", "", "TCP host:port to expose Go pprof endpoints at /debug/pprof/ (e.g. 127.0.0.1:6060); also set via CAGENT_PPROF_ADDR") |
| 51 | _ = cmd.PersistentFlags().MarkHidden("pprof-addr") |
| 52 | cmd.MarkFlagsMutuallyExclusive("fake", "record") |
| 53 | addRuntimeConfigFlags(cmd, &flags.runConfig) |
| 54 | |
| 55 | return cmd |
| 56 | } |
| 57 | |
| 58 | func (f *apiFlags) runAPICommand(cmd *cobra.Command, args []string) (commandErr error) { |
| 59 | ctx := cmd.Context() |
no test coverage detected