index.ts 1.4 KB

1234567891011121314151617181920212223242526
  1. /**
  2. * Plugin management over a dsh profile, shared by the `dsh plugin` command
  3. * and the Web host's `plugins` Remote.
  4. *
  5. * {@link PluginInstaller} changes what a profile has installed: it runs pnpm
  6. * in the profile directory, probes every new package in a child process, and
  7. * removes what has no place in a profile. It needs the profile on disk, not
  8. * a booted tree, so the CLI uses it before any plugin starts.
  9. * {@link PluginManager} adds the operations that need the booted tree —
  10. * enabling, disabling, and retrying bundles through the profile runtime,
  11. * rows in user layers, dependents, and one folded view per package — and
  12. * runs every mutation one at a time. Neither knows the Remote protocol: a
  13. * refusal or failure is a {@link PluginOperationError} carrying a `plugins/*`
  14. * code, which the Web host's adapter turns into a RemoteError of the same
  15. * code.
  16. * @module @deepseek-ai/dsh-plugin-manager
  17. */
  18. export * from './errors.ts'
  19. export type * from './types.ts'
  20. export type { PluginToolingConfig, SpawnLike } from './helpers.ts'
  21. export { PluginInstaller, type PluginInstallerOptions, type PluginInstallOutcome } from './installer.ts'
  22. export { PluginManager, type PluginManagerOptions, type PresetLayers } from './manager.ts'
  23. /** Group id of an isolated bundle, for callers that address its rows in the tree. */
  24. export { bundleGroupId } from '@deepseek-ai/dsh-app-boot'