Theia API Documentation v1.75.0
    Preparing search index...

    Performs all Agent Plugin filesystem and network work: the plugins root lives outside the browser FileService sandbox.

    Installing is two-phase so that a content-hash mismatch is an explicit user decision rather than something discovered after the plugin is already in place: stage downloads and verifies without touching the final location, and the frontend then commits or discards. Registering the resolved components is the frontend's job, after commit returns.

    Implements

    Index

    Constructors

    Properties

    clients: Set<PluginInstallClient> = ...
    directoryNaming: PluginDirectoryNaming
    hashCache: Map<string, { contentHash: string; signature: string }> = ...

    Content hash per root, keyed on a stat signature, so drift detection skips unchanged files.

    logger: ILogger
    notifyTimeout: undefined | Timeout
    staged: Map<string, StagedDownload> = ...
    stagingCounter: number = 0

    Disambiguates two staging directories created within the same millisecond.

    subscription: undefined | AsyncSubscription
    tarballSource: GitHubTarballSource
    watching: boolean = false

    Methods

    • The last segment of the identifier while no other installed plugin has claimed it, and the directory name otherwise. First come, first served, and recorded rather than derived: a plugin installed later must never rename the skills of one that is already there, and an update of this plugin must not rename its own.

      Parameters

      • pluginId: string
      • directoryName: string

      Returns Promise<string>

    • Qualifiers of every managed plugin other than exceptDirectory, read from the markers alone - listInstalledPlugins would walk every tree and hash it just to answer this.

      Parameters

      • exceptDirectory: string

      Returns Promise<Set<string>>

    • An absent mcp.json is not an error. One that is not a regular file, or resolves outside the plugin root, invalidates the MCP component type without touching the others.

      Parameters

      • root: string

      Returns Promise<{ mcpDisabledReason?: string; mcpJsonText?: string }>