/** * @nanmicoder/dsh-plugin-market — a plugin marketplace for DeepSeek Harness. * * The host half serves a curated catalog over its own HTTP routes and performs * installs into the running profile. The browser half (`./client`) renders it * as a tab in Settings > Plugins. * * @module @nanmicoder/dsh-plugin-market */ import type { Context } from '@deepseek-ai/cordis'; import z from '@deepseek-ai/schemastery'; import { readInstalledPackage } from './profile.ts'; export declare const name = "plugin-hub"; /** * Only the Loader is required. The web server is resolved lazily through * `ctx.get()` instead: a headless profile mounts no web server at all, and * naming it here would leave this plugin permanently inactive there. */ export declare const inject: string[]; /** Plugin configuration. */ export interface Config { /** * Where the catalog comes from. Empty keeps the packaged seed snapshot. * * Accepts an HTTPS URL, or — because the crawler runs on the user's own * machine — an absolute path or `file://` URL pointing at the * `data/v1/catalog.json` it writes. */ registryUrl?: string; /** Background refresh interval in hours; 0 disables periodic refresh. */ refreshIntervalHours?: number; /** When false every mutation route refuses, whatever the UI sends. */ allowInstall?: boolean; /** Escape hatch for an unusual layout; normally derived from `ctx.baseUrl`. */ profileDir?: string; } export declare const Config: z; /** * Mount the marketplace. * @param ctx - the host context. * @param config - the plugin configuration. */ export declare function apply(ctx: Context, config: Config): void; export { readInstalledPackage };