Skip to main content

Module Extensions

Module Extensions 

Source
Expand description

§Extension management handlers

Wind queries the scanner’s registry through these. Each delegates to MountainEnvironment::GetExtensions / GetExtension; the work has already happened in ExtensionPopulate / Scanner::ScanDirectoryForExtensions.

Layout (one export per file, file name = identity):

  • ExtensionsGetInstalled::ExtensionsGetInstalled - ILocalExtension-shaped list with optional 0/1 type filter; carries the boot-race poll (≤5 s wait for ExtensionPopulate) and the manifest skeleton fix that keeps the trusted-publishers migration from crashing the webview on manifest.publisher.toLowerCase().
  • ExtensionsGetAll::ExtensionsGetAll - raw manifests, no reshape. Tooling / debug surfaces only.
  • ExtensionsGet::ExtensionsGet - single extension by <publisher>.<name>.
  • ExtensionsIsActive::ExtensionsIsActive - currently a “scanned & present” predicate; TODO: consult Cocoon’s activation table for a real answer.

Modules§

ExtensionsGet
extensions:get(id) - fetch a single extension’s manifest by <publisher>.<name> identifier. Returns null when the id isn’t in the scanner’s registry; non-error outcome so callers can ?? defaults cleanly without an unwrap.
ExtensionsGetAll
extensions:getAll - every scanned extension’s raw manifest, no ILocalExtension reshape. Used by tooling / debug surfaces that want the full payload (extension activity log, marketplace UI, audit reports). Renderer consumers MUST go through ExtensionsGetInstalled for the workbench-shaped data.
ExtensionsGetInstalled
extensions:getInstalled(type?) - return scanned extensions reshaped as VS Code’s ILocalExtension[] so ExtensionManagementChannelClient.getInstalled can destructure extension.identifier.id, extension.manifest.*, and extension.location without blowing up.
ExtensionsIsActive
extensions:isActive(id) -> bool - predicate over the scanner’s registry. Currently a “scanned & present” check; a future revision should consult Cocoon’s per-extension activation table so the answer reflects whether the extension’s activate() function actually ran.