paperkite 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { parseRange, parseVersion, rangeAbi, satisfies } from "./semver.js";
1
2
  export const SDK_PACKAGE = "@paperkite/sdk";
2
3
  /** 本 Core 提供的 SDK 版本;ABI 代际取其 major。 */
3
4
  export const CORE_SDK_VERSION = "0.2.0";
@@ -28,7 +29,7 @@ export function evaluateCompatibility(declarations, policy = CORE_POLICY) {
28
29
  const current = parseVersion(policy.sdkVersion);
29
30
  if (!current)
30
31
  return { verdict: "load" };
31
- const abi = Math.max(...declared.map((entry) => abiOf(entry.range)));
32
+ const abi = Math.max(...declared.map((entry) => rangeAbi(entry.range)));
32
33
  if (policy.unsupported.includes(abi)) {
33
34
  return { verdict: "reject", detail: "declares ABI " + abi + ", marked unsupported by this core" };
34
35
  }
@@ -51,230 +52,4 @@ export function evaluateCompatibility(declarations, policy = CORE_POLICY) {
51
52
  }
52
53
  return { verdict: "load", abi };
53
54
  }
54
- const VERSION_PATTERN = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;
55
- const PARTIAL_PATTERN = /^v?(\d+|[xX*])(?:\.(\d+|[xX*]))?(?:\.(\d+|[xX*]))?(?:-([0-9A-Za-z.-]+))?$/;
56
- const COMPARATOR_PATTERN = /^(>=|<=|>|<|=|\^|~>|~)?(.+)$/;
57
- function parseVersion(text) {
58
- const match = VERSION_PATTERN.exec(text);
59
- if (!match?.[1] || !match[2] || !match[3])
60
- return undefined;
61
- return version(Number(match[1]), Number(match[2]), Number(match[3]), identifiers(match[4]));
62
- }
63
- function version(major, minor, patch, prerelease = []) {
64
- return { major, minor, patch, prerelease };
65
- }
66
- function identifiers(text) {
67
- if (!text)
68
- return [];
69
- return text.split(".").map((part) => (/^\d+$/.test(part) ? Number(part) : part));
70
- }
71
- function component(token) {
72
- if (token === undefined)
73
- return undefined;
74
- if (token === "*" || token === "x" || token === "X")
75
- return "*";
76
- return /^\d+$/.test(token) ? Number(token) : undefined;
77
- }
78
- function parsePartial(text) {
79
- const match = PARTIAL_PATTERN.exec(text);
80
- if (!match)
81
- return undefined;
82
- const major = component(match[1]);
83
- const minor = component(match[2]);
84
- const patch = component(match[3]);
85
- if (typeof major !== "number")
86
- return undefined;
87
- if (minor === undefined && match[2] !== undefined)
88
- return undefined;
89
- if (patch === undefined && match[3] !== undefined)
90
- return undefined;
91
- if (minor === "*" && typeof patch === "number")
92
- return undefined;
93
- const prerelease = identifiers(match[4]);
94
- if (prerelease.length && typeof patch !== "number")
95
- return undefined;
96
- return {
97
- major,
98
- minor: minor === "*" ? undefined : minor,
99
- patch: patch === "*" ? undefined : patch,
100
- prerelease
101
- };
102
- }
103
- function expand(op, partial) {
104
- const { major, minor, patch, prerelease } = partial;
105
- const atLeast = () => ({
106
- op: ">=",
107
- version: version(major, minor ?? 0, patch ?? 0, prerelease)
108
- });
109
- const below = (value, middle = 0, last = 0) => ({
110
- op: "<",
111
- version: version(value, middle, last)
112
- });
113
- const at = (value, middle = 0, last = 0) => ({
114
- op: ">=",
115
- version: version(value, middle, last)
116
- });
117
- const exact = (operator) => [
118
- { op: operator, version: version(major, minor ?? 0, patch ?? 0, prerelease) }
119
- ];
120
- switch (op) {
121
- case ">":
122
- if (patch !== undefined)
123
- return exact(">");
124
- if (minor !== undefined)
125
- return [at(major, minor + 1)];
126
- return [at(major + 1)];
127
- case ">=":
128
- return [atLeast()];
129
- case "<":
130
- if (patch !== undefined)
131
- return exact("<");
132
- return [below(major, minor ?? 0)];
133
- case "<=":
134
- if (patch !== undefined)
135
- return exact("<=");
136
- if (minor !== undefined)
137
- return [below(major, minor + 1)];
138
- return [below(major + 1)];
139
- case "^":
140
- if (major > 0)
141
- return [atLeast(), below(major + 1)];
142
- if (minor === undefined)
143
- return [atLeast(), below(1)];
144
- if (minor > 0)
145
- return [atLeast(), below(0, minor + 1)];
146
- if (patch !== undefined)
147
- return [atLeast(), below(0, 0, patch + 1)];
148
- return [atLeast(), below(0, 1)];
149
- case "~":
150
- case "~>":
151
- if (minor === undefined)
152
- return [atLeast(), below(major + 1)];
153
- return [atLeast(), below(major, minor + 1)];
154
- case "=":
155
- case undefined:
156
- if (patch !== undefined)
157
- return exact("=");
158
- if (minor !== undefined)
159
- return [atLeast(), below(major, minor + 1)];
160
- return [atLeast(), below(major + 1)];
161
- default:
162
- return undefined;
163
- }
164
- }
165
- function parseRange(text) {
166
- const trimmed = text.trim();
167
- if (!trimmed)
168
- return undefined;
169
- const sets = [];
170
- for (const clause of trimmed.split("||")) {
171
- const hyphen = /^(.+?)\s+-\s+(.+)$/.exec(clause.trim());
172
- if (hyphen?.[1] && hyphen[2]) {
173
- const from = parsePartial(hyphen[1]);
174
- const to = parsePartial(hyphen[2]);
175
- if (!from || !to)
176
- return undefined;
177
- const lower = expand(">=", from);
178
- const upper = expand("<=", to);
179
- if (!lower || !upper)
180
- return undefined;
181
- sets.push([...lower, ...upper]);
182
- continue;
183
- }
184
- const comparators = [];
185
- const normalized = clause.trim().replace(/(>=|<=|>|<|=|\^|~>|~)\s+/g, "$1");
186
- for (const token of normalized.split(/\s+/)) {
187
- if (!token)
188
- continue;
189
- const match = COMPARATOR_PATTERN.exec(token);
190
- if (!match?.[2])
191
- return undefined;
192
- const partial = parsePartial(match[2]);
193
- if (!partial)
194
- return undefined;
195
- const expanded = expand(match[1], partial);
196
- if (!expanded)
197
- return undefined;
198
- comparators.push(...expanded);
199
- }
200
- if (!comparators.length)
201
- return undefined;
202
- sets.push(comparators);
203
- }
204
- return sets.length ? sets : undefined;
205
- }
206
- function satisfies(range, current) {
207
- return range.some((set) => set.every((comparator) => holds(comparator, current)));
208
- }
209
- function holds(comparator, current) {
210
- const order = compare(current, comparator.version);
211
- switch (comparator.op) {
212
- case "=":
213
- return order === 0;
214
- case ">":
215
- return order > 0;
216
- case ">=":
217
- return order >= 0;
218
- case "<":
219
- return order < 0;
220
- case "<=":
221
- return order <= 0;
222
- }
223
- }
224
- function compare(left, right) {
225
- if (left.major !== right.major)
226
- return left.major < right.major ? -1 : 1;
227
- if (left.minor !== right.minor)
228
- return left.minor < right.minor ? -1 : 1;
229
- if (left.patch !== right.patch)
230
- return left.patch < right.patch ? -1 : 1;
231
- return comparePrerelease(left.prerelease, right.prerelease);
232
- }
233
- function comparePrerelease(left, right) {
234
- if (!left.length || !right.length)
235
- return left.length === right.length ? 0 : left.length ? -1 : 1;
236
- const length = Math.max(left.length, right.length);
237
- for (let index = 0; index < length; index += 1) {
238
- const a = left[index];
239
- const b = right[index];
240
- if (a === undefined)
241
- return -1;
242
- if (b === undefined)
243
- return 1;
244
- if (a === b)
245
- continue;
246
- if (typeof a === "number" && typeof b === "number")
247
- return a < b ? -1 : 1;
248
- if (typeof a === "number")
249
- return -1;
250
- if (typeof b === "number")
251
- return 1;
252
- return a < b ? -1 : 1;
253
- }
254
- return 0;
255
- }
256
- /** 范围为插件接受的 ABI 代际上限;无上限时取所需的最低代际。 */
257
- function abiOf(range) {
258
- let abi = 0;
259
- for (const set of range) {
260
- let lowest = 0;
261
- let highest;
262
- for (const comparator of set) {
263
- if (comparator.op === "<") {
264
- highest = Math.min(highest ?? Number.POSITIVE_INFINITY, majorBelow(comparator.version));
265
- }
266
- else if (comparator.op === "<=") {
267
- highest = Math.min(highest ?? Number.POSITIVE_INFINITY, comparator.version.major);
268
- }
269
- else {
270
- lowest = Math.max(lowest, comparator.version.major);
271
- }
272
- }
273
- abi = Math.max(abi, highest ?? lowest);
274
- }
275
- return abi;
276
- }
277
- function majorBelow(version) {
278
- return version.minor === 0 && version.patch === 0 ? Math.max(0, version.major - 1) : version.major;
279
- }
280
55
  //# sourceMappingURL=abi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../src/extensions/abi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../src/extensions/abi.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
- import type { PluginInfo } from "@paperkite/sdk";
1
+ import type { PluginCapability, PluginInfo } from "@paperkite/sdk";
2
2
  import { CapabilityRegistry } from "./registry.js";
3
+ import { type CompatibilityVerdict } from "./abi.js";
4
+ export type PluginSource = "manifest" | "user";
5
+ export interface InstalledPluginView {
6
+ readonly name: string;
7
+ readonly source: PluginSource;
8
+ readonly root: "profile" | "core" | "missing";
9
+ readonly version?: string;
10
+ readonly range?: string;
11
+ readonly capabilities: readonly PluginCapability[];
12
+ readonly compatibility?: CompatibilityVerdict;
13
+ readonly warning?: string;
14
+ }
3
15
  export interface LoadedExtensions {
4
16
  readonly registry: CapabilityRegistry;
5
17
  readonly packages: readonly string[];
@@ -11,6 +23,8 @@ export declare function createUsageMarker(installed: readonly PluginInfo[]): (re
11
23
  export declare function loadExtensions(references: Iterable<string>, options?: {
12
24
  profile?: string;
13
25
  }): Promise<LoadedExtensions>;
26
+ /** profile 优先、core 根兜底的插件发现结果,供 `plugin list` 与加载共用。 */
27
+ export declare function inspectPlugins(profile?: string): Promise<readonly InstalledPluginView[]>;
14
28
  /** handler 类别由结构判定:导出符号为函数,其原型带有 run。 */
15
29
  export declare function isHandlerConstructor(value: unknown): value is Function;
16
30
  export declare function coreRoot(): string;
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from "node:module";
2
- import { existsSync } from "node:fs";
2
+ import { existsSync, realpathSync } from "node:fs";
3
3
  import { readFile } from "node:fs/promises";
4
- import { dirname, join, resolve } from "node:path";
4
+ import { dirname, join, resolve, sep } from "node:path";
5
5
  import { fileURLToPath, pathToFileURL } from "node:url";
6
6
  import { CapabilityRegistry } from "./registry.js";
7
- import { profileDirectory, readProfile } from "./profile.js";
7
+ import { bundleRanges, profileDirectory, readProfile, userPlugins } from "./profile.js";
8
8
  import { evaluateCompatibility, sdkDeclarations } from "./abi.js";
9
9
  /** 按运行清单实际引用的能力标注插件使用状态,相同引用集合不重复计算。 */
10
10
  export function createUsageMarker(installed) {
@@ -25,20 +25,18 @@ export function createUsageMarker(installed) {
25
25
  function hashOf(values) {
26
26
  return [...values].sort().join("\u0000");
27
27
  }
28
+ /** 日志与注册作用域使用包短名(`@paperkite/plugin-messages-watch` → `messages-watch`)。 */
29
+ function shortPluginName(name) {
30
+ return name.replace(/^@[^/]+\/plugin-/, "");
31
+ }
28
32
  export async function loadExtensions(references, options = {}) {
29
33
  const profile = profileDirectory(options.profile ?? "default");
30
- const profileManifest = await readProfile(profile);
31
- const configured = Array.isArray(profileManifest.paperkite?.profile?.plugins)
32
- ? profileManifest.paperkite.profile.plugins
33
- : [];
34
- const bundles = new Set(await readBundles());
35
- const pluginNames = unique([...configured, ...bundles]);
36
- const candidates = [];
37
- for (const name of pluginNames) {
38
- const candidate = await inspectPlugin(name, profile, bundles.has(name));
39
- if (candidate)
40
- candidates.push(candidate);
41
- }
34
+ const inspections = await inspectProfile(profile);
35
+ const candidates = inspections.flatMap((inspection) => {
36
+ if (inspection.error)
37
+ throw new Error(inspection.error);
38
+ return inspection.candidate ? [inspection.candidate] : [];
39
+ });
42
40
  const owners = new Map();
43
41
  for (const candidate of candidates) {
44
42
  for (const capability of candidate.capabilities) {
@@ -75,9 +73,24 @@ export async function loadExtensions(references, options = {}) {
75
73
  loaded: selected.has(candidate.name),
76
74
  used: false
77
75
  }));
78
- const warnings = candidates.flatMap((candidate) => (candidate.warning ? [candidate.warning] : []));
76
+ const warnings = inspections.flatMap((inspection) => (inspection.warning ? [inspection.warning] : []));
79
77
  return { registry, packages: [...selected.keys()], installed, warnings };
80
78
  }
79
+ /** profile 优先、core 根兜底的插件发现结果,供 `plugin list` 与加载共用。 */
80
+ export async function inspectPlugins(profile = "default") {
81
+ const directory = profileDirectory(profile);
82
+ const inspections = await inspectProfile(directory);
83
+ return inspections.map((inspection) => ({
84
+ name: inspection.name,
85
+ source: inspection.source,
86
+ root: inspection.root,
87
+ version: inspection.version,
88
+ range: inspection.range,
89
+ capabilities: inspection.capabilities ?? [],
90
+ compatibility: inspection.compatibility,
91
+ warning: inspection.warning ?? inspection.error
92
+ }));
93
+ }
81
94
  function bindCapability(registry, candidate, module, capability, scope) {
82
95
  if (!capability.handler) {
83
96
  throw new Error("plugin " + candidate.name + " capability " + capability.name + " has no handler symbol");
@@ -112,31 +125,87 @@ export function isHandlerConstructor(value) {
112
125
  const prototype = value.prototype;
113
126
  return typeof prototype?.run === "function";
114
127
  }
115
- async function inspectPlugin(name, profile, bundled) {
116
- const packageFile = bundled ? resolveCorePackageJson(name) : resolvePackageJson(name, profile);
117
- if (!packageFile)
118
- return undefined;
119
- const manifest = JSON.parse(await readFile(packageFile, "utf8"));
120
- const metadata = manifest.paperkite;
121
- if (!metadata?.plugin)
122
- return undefined;
123
- const pluginObject = typeof metadata.plugin === "object" ? metadata.plugin : {};
124
- const capabilities = pluginObject.capabilities ?? metadata.capabilities ?? [];
125
- if (!Array.isArray(capabilities))
126
- throw new Error("invalid capability metadata in " + name);
127
- const compatibility = evaluateCompatibility(sdkDeclarations(manifest));
128
- if (compatibility.verdict === "reject") {
129
- throw new Error("plugin " + name + " is incompatible: " + compatibility.detail);
130
- }
131
- return {
132
- name,
133
- version: typeof manifest.version === "string" ? manifest.version : undefined,
134
- moduleUrl: resolvePluginModule(manifest, dirname(packageFile), name),
135
- capabilities,
136
- warning: compatibility.verdict === "warn"
137
- ? "plugin " + name + " compatibility warning: " + compatibility.detail
138
- : undefined
128
+ /** 候选集:profile 声明的用户插件、清单接管的插件与 core 快照里的内置插件。 */
129
+ async function inspectProfile(profile) {
130
+ const profileManifest = await readProfile(profile);
131
+ const managed = bundleRanges(profileManifest);
132
+ const requests = new Map();
133
+ for (const name of userPlugins(profileManifest))
134
+ requests.set(name, { name, source: "user" });
135
+ for (const [name, range] of Object.entries(managed))
136
+ requests.set(name, { name, source: "manifest", range });
137
+ for (const name of await readBundles()) {
138
+ const existing = requests.get(name);
139
+ requests.set(name, { name, source: "manifest", range: existing?.range ?? managed[name] });
140
+ }
141
+ const inspections = [];
142
+ for (const request of [...requests.values()].sort((left, right) => left.name.localeCompare(right.name))) {
143
+ inspections.push(await inspectPlugin(request, profile));
144
+ }
145
+ return inspections;
146
+ }
147
+ async function inspectPlugin(request, profile) {
148
+ const packageFile = resolvePackageJson(request.name, profile);
149
+ if (!packageFile) {
150
+ return {
151
+ name: request.name,
152
+ source: request.source,
153
+ root: "missing",
154
+ range: request.range,
155
+ warning: request.source === "manifest"
156
+ ? "bundled plugin " + request.name + " is not installed; run paperkite plugin sync"
157
+ : "plugin " + request.name + " is declared but not installed; run paperkite plugin add " + request.name
158
+ };
159
+ }
160
+ const base = {
161
+ name: request.name,
162
+ source: request.source,
163
+ range: request.range,
164
+ root: resolvesInside(profile, packageFile) ? "profile" : "core"
139
165
  };
166
+ try {
167
+ const manifest = JSON.parse(await readFile(packageFile, "utf8"));
168
+ const metadata = manifest.paperkite;
169
+ if (!metadata?.plugin) {
170
+ return { ...base, warning: "dependency " + request.name + " declares no paperkite.plugin metadata; skipped" };
171
+ }
172
+ const pluginObject = typeof metadata.plugin === "object" ? metadata.plugin : {};
173
+ const capabilities = pluginObject.capabilities ?? metadata.capabilities ?? [];
174
+ if (!Array.isArray(capabilities))
175
+ throw new Error("invalid capability metadata in " + request.name);
176
+ const compatibility = evaluateCompatibility(sdkDeclarations(manifest));
177
+ const version = typeof manifest.version === "string" ? manifest.version : undefined;
178
+ if (compatibility.verdict === "reject") {
179
+ return {
180
+ ...base,
181
+ version,
182
+ capabilities,
183
+ compatibility,
184
+ error: "plugin " + request.name + " is incompatible: " + compatibility.detail
185
+ };
186
+ }
187
+ return {
188
+ ...base,
189
+ version,
190
+ capabilities,
191
+ compatibility,
192
+ warning: compatibility.verdict === "warn"
193
+ ? "plugin " + request.name + " compatibility warning: " + compatibility.detail
194
+ : undefined,
195
+ candidate: {
196
+ name: request.name,
197
+ version,
198
+ moduleUrl: resolvePluginModule(manifest, dirname(packageFile), request.name),
199
+ capabilities
200
+ }
201
+ };
202
+ }
203
+ catch (error) {
204
+ return {
205
+ ...base,
206
+ error: "failed to inspect plugin " + request.name + ": " + (error instanceof Error ? error.message : String(error))
207
+ };
208
+ }
140
209
  }
141
210
  async function importPlugin(candidate) {
142
211
  try {
@@ -192,6 +261,7 @@ function resolveConditionalEntry(value, conditions) {
192
261
  }
193
262
  return undefined;
194
263
  }
264
+ /** profile 优先,core 根兜底;开发工作区与 `pnpm dev` 走兜底。 */
195
265
  function resolvePackageJson(name, profile) {
196
266
  const roots = [profile, coreRoot()];
197
267
  for (const root of roots) {
@@ -204,22 +274,15 @@ function resolvePackageJson(name, profile) {
204
274
  }
205
275
  return undefined;
206
276
  }
207
- /** bundled 插件固定从运行时根解析,profile 与工作区链接不可覆盖。 */
208
- function resolveCorePackageJson(name) {
277
+ /** 解析结果与 profile 都取真实路径比较,符号链接目录下的临时 profile 也判定为 profile。 */
278
+ function resolvesInside(profile, packageFile) {
209
279
  try {
210
- return createRequire(join(coreRoot(), "package.json")).resolve(name + "/package.json");
280
+ return realpathSync(packageFile).startsWith(realpathSync(profile) + sep);
211
281
  }
212
282
  catch {
213
- return undefined;
283
+ return false;
214
284
  }
215
285
  }
216
- function unique(values) {
217
- return [...new Set(values.map((value) => value.trim()).filter(Boolean))];
218
- }
219
- /** 日志与注册作用域使用包短名(`@paperkite/plugin-messages-watch` → `messages-watch`)。 */
220
- function shortPluginName(name) {
221
- return name.replace(/^@[^/]+\/plugin-/, "");
222
- }
223
286
  async function readBundles() {
224
287
  try {
225
288
  const manifest = JSON.parse(await readFile(join(coreRoot(), "package.json"), "utf8"));
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/extensions/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/extensions/loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1,48 @@
1
+ import { type InstalledPluginView, type PluginSource } from "./loader.js";
2
+ import { type HttpFetch, type ManifestOrigin } from "./manifest.js";
3
+ import { type PluginSettings } from "../config/settings.js";
4
+ import type { CompatibilityVerdict } from "./abi.js";
5
+ export type PnpmRunner = (args: readonly string[], cwd: string) => number | Promise<number>;
6
+ export interface SyncOptions {
7
+ readonly settings?: PluginSettings;
8
+ readonly refresh?: boolean;
9
+ readonly offline?: boolean;
10
+ readonly check?: boolean;
11
+ readonly fetch?: HttpFetch;
12
+ readonly runner?: PnpmRunner;
13
+ readonly now?: () => number;
14
+ readonly cacheDir?: string;
15
+ }
16
+ export interface SyncChange {
17
+ readonly name: string;
18
+ readonly version: string;
19
+ readonly range: string;
20
+ }
21
+ export interface SyncResult {
22
+ readonly origin: ManifestOrigin;
23
+ readonly manifestVersion?: string;
24
+ readonly added: readonly SyncChange[];
25
+ readonly kept: readonly string[];
26
+ readonly removed: readonly string[];
27
+ readonly warnings: readonly string[];
28
+ readonly problems: readonly string[];
29
+ readonly applied: boolean;
30
+ }
1
31
  export declare function managePlugins(profile: string, args: readonly string[]): number;
32
+ /** 按清单安装缺失的内置插件;已固定的版本与用户插件都不改动。 */
33
+ export declare function syncBundles(profile?: string, options?: SyncOptions): Promise<SyncResult>;
34
+ /** 重算清单管理插件的版本并前进;已是最新时不执行安装。 */
35
+ export declare function updatePlugins(profile: string, names: readonly string[], options?: SyncOptions): Promise<SyncResult>;
36
+ export interface PluginListEntry {
37
+ readonly name: string;
38
+ readonly source: PluginSource;
39
+ readonly root: InstalledPluginView["root"];
40
+ readonly version?: string;
41
+ readonly range?: string;
42
+ readonly available?: string;
43
+ readonly compatibility?: CompatibilityVerdict;
44
+ readonly capabilities: readonly string[];
45
+ readonly note?: string;
46
+ }
47
+ /** profile 视图 + 清单可用版本,供 `plugin list` 输出。 */
48
+ export declare function listPlugins(profile?: string, options?: SyncOptions): Promise<readonly PluginListEntry[]>;