MCPcopy Create free account
hub / github.com/driangle/taskmd / Resolve

Function Resolve

apps/cli/internal/taskcontext/resolve.go:79–109  ·  view source on GitHub ↗

Resolve builds the context result for a task.

(task *model.Task, opts Options)

Source from the content-addressed store, hash-verified

77
78// Resolve builds the context result for a task.
79func Resolve(task *model.Task, opts Options) (*Result, error) {
80 files := resolveScopeFiles(task.Touches, opts.Scopes)
81 files = append(files, resolveExplicitFiles(task.Context)...)
82 files = deduplicateFiles(files)
83 checkExistence(files, opts.ProjectRoot)
84
85 if opts.Resolve {
86 files = expandDirectories(files, opts.ProjectRoot)
87 }
88
89 if opts.IncludeContent {
90 inlineContents(files, opts.ProjectRoot)
91 }
92
93 if opts.MaxFiles > 0 {
94 files = capFiles(files, opts.MaxFiles)
95 }
96
97 result := &Result{
98 TaskID: task.ID,
99 Title: task.Title,
100 Files: files,
101 }
102
103 body := strings.TrimSpace(task.Body)
104 if body != "" {
105 result.TaskBody = body
106 }
107
108 return result, nil
109}
110
111// resolveScopeFiles maps touches to file paths via scope definitions.
112func resolveScopeFiles(touches []string, scopes ScopeMap) []FileEntry {

Calls 7

resolveScopeFilesFunction · 0.85
resolveExplicitFilesFunction · 0.85
deduplicateFilesFunction · 0.85
checkExistenceFunction · 0.85
expandDirectoriesFunction · 0.85
inlineContentsFunction · 0.85
capFilesFunction · 0.85