scrapePortfolio or parseResume directly, you receive a ResolverResult for that single source. When you run the CLI in batch mode across multiple inputs for the same candidate, each candidate’s sources are merged into an AggregatedResult. Understanding the shape of these objects — including what goes into warnings, when error appears, and how ownedRepos differs from externalRepos — lets you build reliable downstream logic on top of GitResolve’s output.
TypeScript import
AggregatedResult is defined in the source type system but is not exported from the package index. It is used internally by the CLI when merging multiple sources for a single candidate. You cannot import it directly from @clyrisai/gitresolve in your own code.ResolverResult
ResolverResult is the return type of both scrapePortfolio and parseResume. It contains everything GitResolve found about one source input.
string
required
The original input string — the URL that was scraped, or the file path that was parsed. Preserved exactly as passed in.
InputType
required
The
InputType for this source. One of 'repo_url', 'git_profile', 'portfolio', 'resume_file', 'resume_url', 'linkedin', or 'unknown'. For most sources this is the value returned by classifyInput; the CLI sets 'resume_url' when it downloads a remote PDF before parsing. See Input Classification for the full decision logic.ExtractedGitLink | null
required
The resolved git profile for the candidate, or
null if no owner could be determined. When confidence is 'none', this field is always null. See ExtractedGitLink below for the shape of this object.'high' | 'medium' | 'low' | 'none'
required
How certain GitResolve is about the
ownerProfile attribution. See the confidence levels table for the full meaning of each level.ExtractedGitLink[]
required
Repository links where
link.username matches the resolved owner (case-insensitive). These are repos the candidate owns. Deduplicated by URL.ExtractedGitLink[]
required
Links with
type === 'pull_request' or type === 'issue'. These represent explicit contribution activity found in the source. Deduplicated by URL.ExtractedGitLink[]
required
Repository links owned by someone other than the resolved owner. These may be libraries depended on, employer repositories, or open-source projects the candidate referenced without owning. Deduplicated by URL.
ExtractedGitLink[]
required
The complete, unfiltered set of every parsed git link found in the source — profiles, repos, gists, PRs, issues, and other link types combined. Use this for custom filtering or auditing the raw extraction output.
string[]
required
Non-fatal diagnostic messages logged during processing. This includes the browser provider used, disambiguation decisions and rationale, and edge-case flags. See The warnings array for a full description.
string
Present only when a fatal error occurred during processing — for example, a network failure fetching the portfolio URL, or a file read error on a resume path. When
error is set, the other fields (ownedRepos, allLinks, etc.) will be empty arrays and confidence will be 'none'. See The error field for details.ExtractedGitLink
ExtractedGitLink is the atomic unit of every link GitResolve extracts. It appears in ownerProfile, ownedRepos, contributions, externalRepos, and allLinks.
string
required
The canonical URL for this link. For repos, this is the normalized form
https://{host}/{owner}/{repo}. For PRs and issues, the raw URL (including the PR/issue number path) is preserved. For synthetic profile links (created in Case 3 of disambiguation), this is https://{host}/{username}.GitProvider
required
The git hosting platform. One of
'github', 'gitlab', or 'bitbucket'.GitLinkType
required
The kind of resource this link points to. See the GitLinkType values table below.
string
required
The username or organization name extracted from the URL path. Used for all ownership matching. Matching is always performed case-insensitively.
string
The repository name. Present when
type is 'repo', 'pull_request', or 'issue'. Absent for 'profile' and 'gist' links.string
The PR or issue number as a string. Present only when
type is 'pull_request' or 'issue'.GitLinkType values
AggregatedResult
AggregatedResult is the output type for CLI batch runs where multiple source inputs (a portfolio URL, a resume PDF, a repo URL) are resolved together for a single candidate. GitResolve merges the individual ResolverResult objects, deduplicates links across sources, and picks the highest-confidence owner profile. Note that unlike ResolverResult, AggregatedResult has no error field — errors are captured on individual ResolverResult objects before aggregation.
string | null
required
The final resolved username for this candidate, or
null if no owner could be determined across any source. Derived from ownerProfile.username.string[]
required
All input strings that were resolved and merged into this aggregate. For example
["https://janedoe.dev", "./resumes/janedoe.pdf"].InputType[]
required
The
InputType value for each entry in sources, in the same order.ExtractedGitLink | null
required
The best owner profile resolved across all sources. When one source yields
confidence: 'high', that profile wins. When all sources are lower confidence, the first resolved profile is used.'high' | 'medium' | 'low' | 'none'
required
The highest confidence level achieved across all merged sources.
ExtractedGitLink[]
required
Deduplicated union of
ownedRepos from all sources, filtered to the resolved owner.ExtractedGitLink[]
required
Deduplicated union of
contributions from all sources.ExtractedGitLink[]
required
Deduplicated union of
externalRepos from all sources.ExtractedGitLink[]
required
Deduplicated union of
allLinks from all sources.string[]
required
Combined warnings from all merged
ResolverResult objects.Confidence levels
The warnings array
Thewarnings array is always present (never undefined) and collects non-fatal diagnostic messages logged throughout processing. These messages are useful for debugging scraper output and understanding disambiguation decisions.
Common warnings you will encounter:
The error field
Theerror field on ResolverResult is only present when a fatal, unrecoverable exception occurred. It is absent (undefined) on successful runs — even runs that produced zero links.
Conditions that set error:
- Network failure — the portfolio URL timed out or returned a non-recoverable HTTP error
- File system error — the resume file path does not exist or cannot be read
- Unexpected exception — any other unhandled error thrown inside the scraper or parser
error is set, ownerProfile is null, confidence is 'none', and all link arrays (ownedRepos, allLinks, etc.) are empty. The warnings array may still contain partial diagnostic output from before the error occurred.
Partial extraction failures — such as one PDF parsing pass failing while the other succeeds — are reported in
warnings, not error. An error value means the entire source could not be processed.JSON examples
ResolverResult example
AggregatedResult example
Input Classification
How every input is categorized before processing begins
Disambiguation
How GitResolve resolves ambiguous link sets to a single owner