Class ResolveAgentDocsTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
io.github.duckasteroid.agentdocs.resolve.task.ResolveAgentDocsTask
All Implemented Interfaces:
Comparable<org.gradle.api.Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, org.gradle.api.Named, org.gradle.api.plugins.ExtensionAware, org.gradle.api.Task, org.gradle.util.Configurable<org.gradle.api.Task>

@DisableCachingByDefault(because="Resolver task performs filesystem orchestration not yet modeled for cache reuse") public abstract class ResolveAgentDocsTask extends org.gradle.api.DefaultTask
Resolves Agent-Docs manifest declarations (per specification/java-conventions.md) for direct dependencies on the configured classpath and for Gradle plugins applied via plugins {}, extracts docs into scoped directories in the local project skills tree, marks managed folders with .agent-docs, and removes stale marker-owned folders.

Only dependencies whose resolved jar carries an Agent-Docs manifest attribute are considered — dependencies without it are skipped with no further resolution attempt of any kind. A classpath declaration is extracted directly from the dependency's own jar; a maven declaration is resolved as a separate agent-docs sidecar zip.

Applied plugins are discovered separately (see AppliedPluginCollector), since they aren't resolved onto a project Configuration the way regular dependencies are. Only the classpath scheme is meaningful there — a plugin jar declaring maven is skipped with a warning, since it has no consumer-side resolution path. Dependency- and plugin-sourced candidates share a single skill-name collision-detection pass (see SkillNameAssigner), since both land in the same skills directory.

When getIncludeSources() is true, the task also resolves the sources classifier jar for each declared dependency and unpacks it into a src/ subdirectory of the skill folder. The extracted SKILL.md frontmatter records metadata.sources: src/ when sources are available, or metadata.sources: none when the artifact has no sources jar. Plugin-sourced skills always record metadata.sources: none when sources are requested, since there's no Maven coordinate to resolve a sources jar from.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.gradle.api.Named

    org.gradle.api.Named.Namer
  • Field Summary

    Fields inherited from interface org.gradle.api.Task

    TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract org.gradle.api.provider.MapProperty<String,String>
    For classpath-scheme coordinates, the absolute path of the dependency's own resolved jar to extract from.
    abstract org.gradle.api.provider.MapProperty<String,String>
    For classpath-scheme coordinates, the path within the jar (from getClasspathJarPaths()) to the root of the docs bundle.
    abstract org.gradle.api.provider.Property<String>
    Gradle configuration name to inspect for direct dependencies.
    abstract org.gradle.api.provider.ListProperty<String>
    Coordinates, in group:name:version form, of direct dependencies whose resolved jar carries an Agent-Docs manifest attribute — precomputed during task configuration.
    abstract org.gradle.api.provider.Property<Boolean>
    When true, the task also resolves and extracts the sources classifier jar for each dependency with an agent-docs declaration.
    abstract org.gradle.api.provider.MapProperty<String,String>
    For each id in getPluginIds(), the path within the jar (from getPluginJarPaths()) to the root of the docs bundle.
    abstract org.gradle.api.provider.ListProperty<String>
    Plugin ids of Gradle plugins applied via plugins {} whose own jar carries a classpath-scheme Agent-Docs manifest attribute — precomputed during task configuration by AppliedPluginCollector.
    abstract org.gradle.api.provider.MapProperty<String,String>
    For each id in getPluginIds(), the absolute path of that plugin's own resolved jar (found via its classloader) to extract from.
    abstract org.gradle.api.provider.MapProperty<String,String>
    For maven-scheme coordinates, the sidecar archive path resolved during task configuration.
    abstract org.gradle.api.provider.MapProperty<String,String>
    Sources jar paths resolved during task configuration and keyed by group:name:version coordinates.
    abstract org.gradle.api.provider.MapProperty<String,String>
    Agent-Docs scheme (either classpath or maven) keyed by coordinate.
    abstract org.gradle.api.file.DirectoryProperty
    Root output directory for extracted docs and generated skills.

    Methods inherited from class org.gradle.api.DefaultTask

    compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService

    Methods inherited from class org.gradle.api.internal.AbstractTask

    acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, setImpliesSubProjects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.gradle.api.Task

    doNotTrackState, notCompatibleWithConfigurationCache
  • Constructor Details

    • ResolveAgentDocsTask

      public ResolveAgentDocsTask()
  • Method Details

    • getConfigurationName

      @Input public abstract org.gradle.api.provider.Property<String> getConfigurationName()
      Gradle configuration name to inspect for direct dependencies.
      Returns:
      configuration name property
    • getDependencyCoordinates

      @Input public abstract org.gradle.api.provider.ListProperty<String> getDependencyCoordinates()
      Coordinates, in group:name:version form, of direct dependencies whose resolved jar carries an Agent-Docs manifest attribute — precomputed during task configuration. Dependencies without the attribute are not included here at all.
      Returns:
      declared dependency coordinates
    • getSchemes

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getSchemes()
      Agent-Docs scheme (either classpath or maven) keyed by coordinate.
      Returns:
      coordinate-to-scheme mapping
    • getClasspathJarPaths

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getClasspathJarPaths()
      For classpath-scheme coordinates, the absolute path of the dependency's own resolved jar to extract from.
      Returns:
      coordinate-to-jar-path mapping
    • getClasspathPrefixes

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getClasspathPrefixes()
      For classpath-scheme coordinates, the path within the jar (from getClasspathJarPaths()) to the root of the docs bundle.
      Returns:
      coordinate-to-embedded-path mapping
    • getResolvedSidecarPaths

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getResolvedSidecarPaths()
      For maven-scheme coordinates, the sidecar archive path resolved during task configuration. Absent when the sidecar didn't resolve.
      Returns:
      coordinate-to-sidecar-path mapping
    • getPluginIds

      @Input public abstract org.gradle.api.provider.ListProperty<String> getPluginIds()
      Plugin ids of Gradle plugins applied via plugins {} whose own jar carries a classpath-scheme Agent-Docs manifest attribute — precomputed during task configuration by AppliedPluginCollector. Plugins without the attribute, or declaring an unsupported scheme, are not included here at all.
      Returns:
      declared plugin ids
    • getPluginJarPaths

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getPluginJarPaths()
      For each id in getPluginIds(), the absolute path of that plugin's own resolved jar (found via its classloader) to extract from.
      Returns:
      plugin-id-to-jar-path mapping
    • getPluginClasspathPrefixes

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getPluginClasspathPrefixes()
      For each id in getPluginIds(), the path within the jar (from getPluginJarPaths()) to the root of the docs bundle.
      Returns:
      plugin-id-to-embedded-path mapping
    • getIncludeSources

      @Input public abstract org.gradle.api.provider.Property<Boolean> getIncludeSources()
      When true, the task also resolves and extracts the sources classifier jar for each dependency with an agent-docs declaration.
      Returns:
      include-sources flag property
    • getResolvedSourcePaths

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getResolvedSourcePaths()
      Sources jar paths resolved during task configuration and keyed by group:name:version coordinates. Only populated when getIncludeSources() is true; empty otherwise.
      Returns:
      coordinate-to-sources-path mapping
    • getSkillsDirectory

      @OutputDirectory public abstract org.gradle.api.file.DirectoryProperty getSkillsDirectory()
      Root output directory for extracted docs and generated skills.
      Returns:
      skills root directory property