MCPcopy Create free account
hub / github.com/compozy/agh / createAgentDefinition

Function createAgentDefinition

internal/cli/agent.go:122–164  ·  view source on GitHub ↗
(
	cmd *cobra.Command,
	deps commandDeps,
	name string,
	flags agentCreateFlags,
)

Source from the content-addressed store, hash-verified

120}
121
122func createAgentDefinition(
123 cmd *cobra.Command,
124 deps commandDeps,
125 name string,
126 flags agentCreateFlags,
127) (aghconfig.AgentDef, error) {
128 agentName := aghconfig.NormalizeAgentName(name)
129 if err := aghconfig.ValidatePublicAgentName(agentName); err != nil {
130 return aghconfig.AgentDef{}, err
131 }
132 prompt, err := agentCreatePrompt(flags)
133 if err != nil {
134 return aghconfig.AgentDef{}, err
135 }
136 agentsDir, err := resolveAgentCreateDirectory(cmd, deps, flags.workspace)
137 if err != nil {
138 return aghconfig.AgentDef{}, err
139 }
140 path := filepath.Join(agentsDir, agentName, aghconfig.AgentDefinitionFileName)
141 agent, err := aghconfig.CreateAgentDefFile(path, aghconfig.AgentDefinitionDraft{
142 Name: agentName,
143 Provider: flags.provider,
144 Command: flags.command,
145 Model: flags.model,
146 Tools: flags.tools,
147 Toolsets: flags.toolsets,
148 DenyTools: flags.denyTools,
149 Permissions: flags.permissions,
150 CategoryPath: flags.categoryPath,
151 Prompt: prompt,
152 }, flags.force)
153 if err != nil {
154 if errors.Is(err, aghconfig.ErrAgentDefinitionExists) {
155 return aghconfig.AgentDef{}, fmt.Errorf(
156 "cli: agent definition already exists at %s (use --force to overwrite): %w",
157 path,
158 err,
159 )
160 }
161 return aghconfig.AgentDef{}, err
162 }
163 return agent, nil
164}
165
166func agentCreatePrompt(flags agentCreateFlags) (string, error) {
167 prompt := strings.TrimSpace(flags.prompt)

Callers 1

newAgentCreateCommandFunction · 0.85

Calls 3

agentCreatePromptFunction · 0.85
IsMethod · 0.45

Tested by

no test coverage detected