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

Method dispatchTaskRunPreClaim

internal/task/manager.go:2287–2321  ·  view source on GitHub ↗
(
	ctx context.Context,
	run Run,
	taskRecord Task,
	actor ActorContext,
)

Source from the content-addressed store, hash-verified

2285}
2286
2287func (m *Service) dispatchTaskRunPreClaim(
2288 ctx context.Context,
2289 run Run,
2290 taskRecord Task,
2291 actor ActorContext,
2292) error {
2293 contextPayload := m.taskRunHookContext(run, taskRecord, actor)
2294 payload := hookspkg.TaskRunPreClaimPayload{
2295 PayloadBase: hookspkg.PayloadBase{
2296 Event: hookspkg.HookTaskRunPreClaim,
2297 Timestamp: m.now().UTC(),
2298 },
2299 TaskRunContext: contextPayload,
2300 Criteria: hookspkg.TaskRunClaimCriteria{
2301 WorkspaceID: contextPayload.WorkspaceID,
2302 ClaimerSessionID: taskRunHookClaimerSessionID(run, actor),
2303 AgentName: contextPayload.AgentName,
2304 RequiredCapabilities: append([]string(nil), run.RequiredCapabilities...),
2305 PriorityMin: taskPriorityMin(taskRecord.Priority),
2306 CoordinationChannelID: contextPayload.CoordinationChannelID,
2307 },
2308 }
2309 result, err := m.taskHooks.DispatchTaskRunPreClaim(ctx, payload)
2310 if err != nil {
2311 return err
2312 }
2313 if result.Denied {
2314 reason := strings.TrimSpace(result.DenyReason)
2315 if reason == "" {
2316 reason = "task run claim denied by hook"
2317 }
2318 return fmt.Errorf("%w: %s", ErrPermissionDenied, reason)
2319 }
2320 return nil
2321}
2322
2323func (m *Service) dispatchTaskRunPostClaim(
2324 ctx context.Context,

Callers 1

ClaimRunMethod · 0.95

Calls 6

taskRunHookContextMethod · 0.95
appendFunction · 0.85
taskPriorityMinFunction · 0.85
nowMethod · 0.45

Tested by

no test coverage detected