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

Function newNetworkChannelsCreateCommand

internal/cli/network.go:229–298  ·  view source on GitHub ↗
(deps commandDeps, workspaceRef *string)

Source from the content-addressed store, hash-verified

227}
228
229func newNetworkChannelsCreateCommand(deps commandDeps, workspaceRef *string) *cobra.Command {
230 var flags networkCreateChannelFlags
231 cmd := &cobra.Command{
232 Use: "create [channel]",
233 Short: "Create a runtime channel and start one session per selected agent",
234 Args: cobra.MaximumNArgs(1),
235 Example: ` # Create a launch channel with two local agents
236 agh network --workspace ~/dev/ad8 channels create ad8_launch \
237 --purpose "Coordinate launch work" \
238 --agent site_copywriter \
239 --agent growth_marketer \
240 -o json`,
241 RunE: func(cmd *cobra.Command, args []string) error {
242 client, err := clientFromDeps(deps)
243 if err != nil {
244 return err
245 }
246 workspace, err := resolveNetworkWorkspaceRef(cmd, deps, client, workspaceRef)
247 if err != nil {
248 return err
249 }
250 channel, err := resolveNetworkCreateChannelName(args, flags.channel)
251 if err != nil {
252 return err
253 }
254 agentNames := trimSpawnAtoms(flags.agentNames)
255 if len(agentNames) == 0 {
256 return errors.New("cli: at least one --agent is required")
257 }
258 purpose := strings.TrimSpace(flags.purpose)
259 if purpose == "" {
260 return errors.New("cli: --purpose cannot be empty")
261 }
262 created, err := client.CreateNetworkChannel(cmd.Context(), workspace, CreateNetworkChannelRequest{
263 Channel: channel,
264 Purpose: purpose,
265 FanoutPolicy: strings.TrimSpace(flags.fanoutPolicy),
266 CoordinatorPeerID: strings.TrimSpace(flags.coordinatorPeerID),
267 AgentNames: agentNames,
268 })
269 if err != nil {
270 return err
271 }
272 return writeCommandOutput(cmd, networkChannelBundle(created))
273 },
274 }
275 cmd.Flags().StringVar(&flags.channel, networkChannelKey, "", "Channel name when not passed as an argument")
276 cmd.Flags().StringVar(&flags.purpose, "purpose", "", "Human-readable channel purpose")
277 cmd.Flags().StringVar(
278 &flags.fanoutPolicy,
279 "fanout-policy",
280 "",
281 "Delivery activation policy: capability_match, coordinator, or all_members",
282 )
283 cmd.Flags().StringVar(
284 &flags.coordinatorPeerID,
285 "coordinator-peer-id",
286 "",

Callers 1

Calls 8

clientFromDepsFunction · 0.85
trimSpawnAtomsFunction · 0.85
writeCommandOutputFunction · 0.85
networkChannelBundleFunction · 0.85
mustMarkFlagRequiredFunction · 0.85
CreateNetworkChannelMethod · 0.65

Tested by

no test coverage detected