Skip to main content

Class: ExtensionManager

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:68

Coordinates discovery and lifecycle management for extension packs. Packs emit descriptors which are registered into kind-specific registries.

Constructors​

Constructor​

new ExtensionManager(options?): ExtensionManager

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:87

Parameters​

options?​

ExtensionManagerOptions = {}

Returns​

ExtensionManager

Methods​

getRegistry()​

getRegistry<TPayload>(kind): ExtensionRegistry<TPayload>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:300

Provides the registry for a particular kind, creating it if necessary.

Type Parameters​

TPayload​

TPayload

Parameters​

kind​

string

Returns​

ExtensionRegistry<TPayload>


getVoiceAdapters()​

getVoiceAdapters(): ScopedVoiceAdapter<keyof VoiceAdapterValues>[]

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:310

Lists active scoped factories only, without invoking them or reading a process credential.

Returns​

ScopedVoiceAdapter<keyof VoiceAdapterValues>[]


listLoadedPacks()​

listLoadedPacks(): object[]

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:285

List pack metadata for packs loaded during this process lifetime.

Returns​

object[]


loadManifest()​

loadManifest(context?): Promise<void>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:105

Loads packs defined in the manifest, registering their descriptors in the appropriate registries. Supports factory-based packs as well as resolving packs from package and module manifest entries.

Parameters​

context?​

ExtensionLifecycleContext

Returns​

Promise<void>


loadPackEntry()​

loadPackEntry(entry, lifecycleContext?): Promise<{ key: string; loaded: true; pack: { identifier?: string; name: string; version?: string; }; } | { key?: string; loaded: false; reason: "disabled" | "already_loaded" | "unresolved"; skipped: true; } | { error: Error; key?: string; loaded: false; reason: "failed"; skipped: false; sourceName: string; }>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:160

Load a single manifest entry at runtime, applying the same resolution, secret hydration, registration, and event emission logic as loadManifest.

This enables schema-on-demand / lazy-loading flows where an agent can enable an extension pack mid-session.

Parameters​

entry​

ExtensionPackManifestEntry

lifecycleContext?​

ExtensionLifecycleContext

Returns​

Promise<{ key: string; loaded: true; pack: { identifier?: string; name: string; version?: string; }; } | { key?: string; loaded: false; reason: "disabled" | "already_loaded" | "unresolved"; skipped: true; } | { error: Error; key?: string; loaded: false; reason: "failed"; skipped: false; sourceName: string; }>


loadPackFromFactory()​

loadPackFromFactory(pack, identifier?, options?, lifecycleContext?): Promise<void>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:131

Directly loads a pack instance (typically produced by an inline factory) and registers all of its descriptors.

Parameters​

pack​

ExtensionPack

identifier?​

string

options?​

Record<string, unknown>

lifecycleContext?​

ExtensionLifecycleContext

Returns​

Promise<void>


loadPackFromModule()​

loadPackFromModule(moduleSpecifier, options?, identifier?, lifecycleContext?): Promise<{ key: string; loaded: true; pack: { identifier?: string; name: string; version?: string; }; } | { key?: string; loaded: false; reason: "disabled" | "already_loaded" | "unresolved"; skipped: true; } | { error: Error; key?: string; loaded: false; reason: "failed"; skipped: false; sourceName: string; }>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:264

Convenience: load an extension pack by local module specifier at runtime.

Parameters​

moduleSpecifier​

string

options?​

Record<string, unknown>

identifier?​

string

lifecycleContext?​

ExtensionLifecycleContext

Returns​

Promise<{ key: string; loaded: true; pack: { identifier?: string; name: string; version?: string; }; } | { key?: string; loaded: false; reason: "disabled" | "already_loaded" | "unresolved"; skipped: true; } | { error: Error; key?: string; loaded: false; reason: "failed"; skipped: false; sourceName: string; }>


loadPackFromPackage()​

loadPackFromPackage(packageName, options?, identifier?, lifecycleContext?): Promise<{ key: string; loaded: true; pack: { identifier?: string; name: string; version?: string; }; } | { key?: string; loaded: false; reason: "disabled" | "already_loaded" | "unresolved"; skipped: true; } | { error: Error; key?: string; loaded: false; reason: "failed"; skipped: false; sourceName: string; }>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:243

Convenience: load an extension pack by npm package name at runtime.

Parameters​

packageName​

string

options?​

Record<string, unknown>

identifier?​

string

lifecycleContext?​

ExtensionLifecycleContext

Returns​

Promise<{ key: string; loaded: true; pack: { identifier?: string; name: string; version?: string; }; } | { key?: string; loaded: false; reason: "disabled" | "already_loaded" | "unresolved"; skipped: true; } | { error: Error; key?: string; loaded: false; reason: "failed"; skipped: false; sourceName: string; }>


off()​

off(listener): void

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:123

Parameters​

listener​

ExtensionEventListener

Returns​

void


on()​

on(listener): void

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:119

Registers a listener for extension lifecycle events.

Parameters​

listener​

ExtensionEventListener

Returns​

void


shutdown()​

shutdown(context?): Promise<void>

Defined in: packages/agentos/src/extensions/ExtensionManager.ts:329

Deactivates all loaded descriptors and extension packs.

This is intentionally best-effort: one failing deactivation should not prevent other packs/descriptors from shutting down.

Parameters​

context?​

ExtensionLifecycleContext

Returns​

Promise<void>