8
8
"strings"
9
9
10
10
"github.com/agentuity/cli/internal/agent"
11
+ "github.com/agentuity/cli/internal/errsystem"
11
12
"github.com/agentuity/cli/internal/project"
12
13
"github.com/agentuity/cli/internal/templates"
13
14
"github.com/agentuity/cli/internal/tui"
@@ -37,7 +38,7 @@ var agentDeleteCmd = &cobra.Command{
37
38
logger := env .NewLogger (cmd )
38
39
apikey := viper .GetString ("auth.api_key" )
39
40
if apikey == "" {
40
- logger .Fatal ("you are not logged in" )
41
+ logger .Fatal ("You are not logged in. Please run `agentuity login` to login. " )
41
42
}
42
43
theproject := ensureProject (cmd )
43
44
apiUrl , _ := getURLs (logger )
@@ -68,7 +69,7 @@ var agentDeleteCmd = &cobra.Command{
68
69
var err error
69
70
deleted , err = agent .DeleteAgents (logger , apiUrl , apikey , theproject .Project .ProjectId , selected )
70
71
if err != nil {
71
- logger . Fatal ( "failed to delete Agents: %s" , err )
72
+ errsystem . New ( errsystem . ErrApiRequest , err , errsystem . WithContextMessage ( "Failed to delete agents" )). ShowErrorAndExit ( )
72
73
}
73
74
for _ , key := range keys {
74
75
agent := state [key ]
@@ -83,7 +84,7 @@ var agentDeleteCmd = &cobra.Command{
83
84
return
84
85
}
85
86
86
- tui .ShowSpinner (logger , "Deleting Agents ..." , action )
87
+ tui .ShowSpinner ("Deleting Agents ..." , action )
87
88
tui .ShowSuccess ("%s deleted successfully" , util .Pluralize (len (deleted ), "Agent" , "Agents" ))
88
89
},
89
90
}
@@ -96,14 +97,14 @@ var agentCreateCmd = &cobra.Command{
96
97
logger := env .NewLogger (cmd )
97
98
apikey := viper .GetString ("auth.api_key" )
98
99
if apikey == "" {
99
- logger .Fatal ("you are not logged in" )
100
+ logger .Fatal ("You are not logged in. Please run `agentuity login` to login. " )
100
101
}
101
102
theproject := ensureProject (cmd )
102
103
apiUrl , _ := getURLs (logger )
103
104
104
105
remoteAgents , err := getAgentList (logger , apiUrl , apikey , theproject )
105
106
if err != nil {
106
- logger . Fatal ( "failed to list Agents: %s" , err )
107
+ errsystem . New ( errsystem . ErrApiRequest , err , errsystem . WithContextMessage ( "Failed to get agent list" )). ShowErrorAndExit ( )
107
108
}
108
109
109
110
initScreenWithLogo ()
@@ -122,12 +123,12 @@ var agentCreateCmd = &cobra.Command{
122
123
action := func () {
123
124
agentID , err := agent .CreateAgent (logger , apiUrl , apikey , theproject .Project .ProjectId , name , description )
124
125
if err != nil {
125
- logger . Fatal ( "failed to create agent: %s" , err )
126
+ errsystem . New ( errsystem . ErrApiRequest , err , errsystem . WithContextMessage ( "Failed to create agent" )). ShowErrorAndExit ( )
126
127
}
127
128
128
129
rules , err := templates .LoadTemplateRuleForIdentifier (theproject .Project .Bundler .Identifier )
129
130
if err != nil {
130
- logger . Fatal ( "failed to load template rules for %s: %s" , theproject .Project .Bundler .Identifier , err )
131
+ errsystem . New ( errsystem . ErrInvalidConfiguration , err , errsystem . WithAttributes ( map [ string ] any { "identifier" : theproject .Project .Bundler .Identifier })). ShowErrorAndExit ( )
131
132
}
132
133
133
134
if err := rules .NewAgent (templates.TemplateContext {
@@ -136,7 +137,7 @@ var agentCreateCmd = &cobra.Command{
136
137
Description : description ,
137
138
ProjectDir : theproject .Dir ,
138
139
}); err != nil {
139
- logger . Fatal ( "failed to create agent: %s" , err )
140
+ errsystem . New ( errsystem . ErrApiRequest , err , errsystem . WithAttributes ( map [ string ] any { "name" : name })). ShowErrorAndExit ( )
140
141
}
141
142
142
143
theproject .Project .Agents = append (theproject .Project .Agents , project.AgentConfig {
@@ -146,10 +147,10 @@ var agentCreateCmd = &cobra.Command{
146
147
})
147
148
148
149
if err := theproject .Project .Save (theproject .Dir ); err != nil {
149
- logger . Fatal ( "failed to save project: %s" , err )
150
+ errsystem . New ( errsystem . ErrSaveProject , err , errsystem . WithContextMessage ( "Failed to save project to disk" )). ShowErrorAndExit ( )
150
151
}
151
152
}
152
- tui .ShowSpinner (logger , "Creating agent ..." , action )
153
+ tui .ShowSpinner ("Creating agent ..." , action )
153
154
tui .ShowSuccess ("Agent created successfully" )
154
155
},
155
156
}
@@ -167,7 +168,7 @@ func getAgentList(logger logger.Logger, apiUrl string, apikey string, project pr
167
168
action := func () {
168
169
remoteAgents , err = agent .ListAgents (logger , apiUrl , apikey , project .Project .ProjectId )
169
170
}
170
- tui .ShowSpinner (logger , "Fetching Agents ..." , action )
171
+ tui .ShowSpinner ("Fetching Agents ..." , action )
171
172
return remoteAgents , err
172
173
}
173
174
@@ -178,12 +179,14 @@ func normalAgentName(name string) string {
178
179
func reconcileAgentList (logger logger.Logger , apiUrl string , apikey string , theproject projectContext ) ([]string , map [string ]agentListState ) {
179
180
remoteAgents , err := getAgentList (logger , apiUrl , apikey , theproject )
180
181
if err != nil {
181
- logger . Fatal ( "failed to fetch Agents for project: %s" , err )
182
+ errsystem . New ( errsystem . ErrApiRequest , err , errsystem . WithContextMessage ( "Failed to get agent list" )). ShowErrorAndExit ( )
182
183
}
183
184
184
185
rules , err := templates .LoadTemplateRuleForIdentifier (theproject .Project .Bundler .Identifier )
185
186
if err != nil {
186
- logger .Fatal ("failed to load the agent template for %s. %s" , theproject .Project .Bundler .Identifier , err )
187
+ errsystem .New (errsystem .ErrInvalidConfiguration , err ,
188
+ errsystem .WithContextMessage ("Failed loading template rule" ),
189
+ errsystem .WithAttributes (map [string ]any {"identifier" : theproject .Project .Bundler .Identifier })).ShowErrorAndExit ()
187
190
}
188
191
189
192
// make a map of the agents in the agentuity config file
@@ -207,7 +210,7 @@ func reconcileAgentList(logger logger.Logger, apiUrl string, apikey string, thep
207
210
}
208
211
localAgents , err := util .ListDir (agentSrcDir )
209
212
if err != nil {
210
- logger . Fatal ( "failed to list local Agents: %s" , err )
213
+ errsystem . New ( errsystem . ErrListFilesAndDirectories , err , errsystem . WithContextMessage ( "Failed to list agent source directory" )). ShowErrorAndExit ( )
211
214
}
212
215
for _ , filename := range localAgents {
213
216
agentName := filepath .Base (filepath .Dir (filename ))
@@ -337,13 +340,13 @@ func showAgentWarnings(remoteIssues int, localIssues int, deploying bool) bool {
337
340
338
341
var agentListCmd = & cobra.Command {
339
342
Use : "list" ,
340
- Short : "List all the Agents in the project which are deployed " ,
343
+ Short : "List all Agents in the project" ,
341
344
Aliases : []string {"ls" },
342
345
Run : func (cmd * cobra.Command , args []string ) {
343
346
logger := env .NewLogger (cmd )
344
347
apikey := viper .GetString ("auth.api_key" )
345
348
if apikey == "" {
346
- logger .Fatal ("you are not logged in" )
349
+ logger .Fatal ("You are not logged in. Please run `agentuity login` to login. " )
347
350
}
348
351
project := ensureProject (cmd )
349
352
apiUrl , _ := getURLs (logger )
@@ -359,7 +362,7 @@ var agentListCmd = &cobra.Command{
359
362
360
363
root , localIssues , remoteIssues , err := buildAgentTree (keys , state , project )
361
364
if err != nil {
362
- logger . Fatal ( "%s" , err )
365
+ errsystem . New ( errsystem . ErrInvalidConfiguration , err , errsystem . WithContextMessage ( "Failed to build agent tree" )). ShowErrorAndExit ( )
363
366
}
364
367
365
368
fmt .Println (root )
0 commit comments