@vetta-org/plugin-sdk 0.1.1 → 0.3.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.
- package/dist/activity-tab.d.ts +2 -0
- package/dist/activity-tab.d.ts.map +1 -1
- package/dist/activity-tab.js +1 -1
- package/dist/activity-tab.js.map +1 -1
- package/dist/agent.d.ts +148 -4
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +14 -1
- package/dist/agent.js.map +1 -1
- package/dist/ai.d.ts +106 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +2 -0
- package/dist/ai.js.map +1 -0
- package/dist/app-actions.d.ts +9 -1
- package/dist/app-actions.d.ts.map +1 -1
- package/dist/app-actions.js.map +1 -1
- package/dist/artifacts.d.ts +31 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +2 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/browser.d.ts +119 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +2 -0
- package/dist/browser.js.map +1 -0
- package/dist/capture.d.ts +64 -0
- package/dist/capture.d.ts.map +1 -0
- package/dist/capture.js +2 -0
- package/dist/capture.js.map +1 -0
- package/dist/cli-provider.d.ts +18 -0
- package/dist/cli-provider.d.ts.map +1 -0
- package/dist/cli-provider.js +2 -0
- package/dist/cli-provider.js.map +1 -0
- package/dist/context.d.ts +59 -7
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/conversation.d.ts +66 -2
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js.map +1 -1
- package/dist/gateway.d.ts +37 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +14 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +26 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/jobs.d.ts +34 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +2 -0
- package/dist/jobs.js.map +1 -0
- package/dist/manifest-schema.d.ts +637 -0
- package/dist/manifest-schema.d.ts.map +1 -0
- package/dist/manifest-schema.js +251 -0
- package/dist/manifest-schema.js.map +1 -0
- package/dist/manifest.d.ts +21 -55
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +468 -1
- package/dist/manifest.js.map +1 -1
- package/dist/media.d.ts +193 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +11 -0
- package/dist/media.js.map +1 -0
- package/dist/models.d.ts +35 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +2 -0
- package/dist/models.js.map +1 -0
- package/dist/network.d.ts +2 -1
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js.map +1 -1
- package/dist/npm-package.d.ts +17 -0
- package/dist/npm-package.d.ts.map +1 -0
- package/dist/npm-package.js +38 -0
- package/dist/npm-package.js.map +1 -0
- package/dist/ocr.d.ts +78 -0
- package/dist/ocr.d.ts.map +1 -0
- package/dist/ocr.js +2 -0
- package/dist/ocr.js.map +1 -0
- package/dist/official.d.ts +219 -10
- package/dist/official.d.ts.map +1 -1
- package/dist/official.js.map +1 -1
- package/dist/permissions.d.ts +2 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +62 -1
- package/dist/permissions.js.map +1 -1
- package/dist/prompt-attachment.d.ts +30 -6
- package/dist/prompt-attachment.d.ts.map +1 -1
- package/dist/prompt-attachment.js +35 -1
- package/dist/prompt-attachment.js.map +1 -1
- package/dist/quickjs.d.ts +147 -0
- package/dist/quickjs.d.ts.map +1 -0
- package/dist/quickjs.js +2 -0
- package/dist/quickjs.js.map +1 -0
- package/dist/secrets.d.ts +27 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +2 -0
- package/dist/secrets.js.map +1 -0
- package/dist/service-provider.d.ts +62 -0
- package/dist/service-provider.d.ts.map +1 -0
- package/dist/service-provider.js +2 -0
- package/dist/service-provider.js.map +1 -0
- package/dist/storage.d.ts +46 -6
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +8 -1
- package/dist/storage.js.map +1 -1
- package/dist/ui.d.ts +341 -22
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js.map +1 -1
- package/package.json +22 -2
- package/src/tailwind-theme.css +30 -0
- package/dist/settings.d.ts +0 -13
- package/dist/settings.d.ts.map +0 -1
- package/dist/settings.js +0 -2
- package/dist/settings.js.map +0 -1
package/dist/official.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PluginPermission } from "./permissions.js";
|
|
1
2
|
export interface PluginOfficialGeneralSettings {
|
|
2
3
|
workspacePath: string;
|
|
3
4
|
defaultExecutionMode?: "sandbox" | "full-access";
|
|
@@ -232,6 +233,13 @@ export interface PluginOfficialProviderSummary {
|
|
|
232
233
|
baseUrl?: string;
|
|
233
234
|
api?: string;
|
|
234
235
|
hasApiKey: boolean;
|
|
236
|
+
/** 图标 symbol;配合 `ProviderIcon` 解析为内置图标,无则不画图标。 */
|
|
237
|
+
icon?: string;
|
|
238
|
+
/**
|
|
239
|
+
* true = 来自登录后服务端下发的远程目录(如 Vetta Go),凭据是账号登录态而非本地
|
|
240
|
+
* API Key,因此不会出现在本地模型配置里,也不可用 `upsertProvider` / `removeProvider` 改。
|
|
241
|
+
*/
|
|
242
|
+
remote?: boolean;
|
|
235
243
|
modelCount: number;
|
|
236
244
|
models: PluginOfficialModelSummary[];
|
|
237
245
|
}
|
|
@@ -275,13 +283,47 @@ export interface PluginOfficialPluginSummary {
|
|
|
275
283
|
id: string;
|
|
276
284
|
name: string;
|
|
277
285
|
version: string;
|
|
286
|
+
activeVersion: string;
|
|
287
|
+
pendingVersion?: string;
|
|
278
288
|
enabled: boolean;
|
|
279
289
|
required: boolean;
|
|
280
290
|
source: string;
|
|
281
291
|
permissions: string[];
|
|
282
292
|
description?: string;
|
|
293
|
+
rootPath?: string;
|
|
283
294
|
devWatch?: unknown;
|
|
284
295
|
}
|
|
296
|
+
export interface PluginOfficialPluginChangedEvent {
|
|
297
|
+
reason?: string;
|
|
298
|
+
pluginId?: string;
|
|
299
|
+
}
|
|
300
|
+
export interface PluginOfficialSaveCopyOptions {
|
|
301
|
+
defaultFileName?: string;
|
|
302
|
+
title?: string;
|
|
303
|
+
filters?: Array<{
|
|
304
|
+
name: string;
|
|
305
|
+
extensions: string[];
|
|
306
|
+
}>;
|
|
307
|
+
}
|
|
308
|
+
/** `official.dialog.openFiles` 的选项。 */
|
|
309
|
+
export interface PluginOfficialOpenFilesOptions {
|
|
310
|
+
title?: string;
|
|
311
|
+
filters?: Array<{
|
|
312
|
+
name: string;
|
|
313
|
+
extensions: string[];
|
|
314
|
+
}>;
|
|
315
|
+
/** 允许多选,默认单选。 */
|
|
316
|
+
multiple?: boolean;
|
|
317
|
+
/** 单个文件的字节上限,超过则抛错。默认 64MB。 */
|
|
318
|
+
maxBytes?: number;
|
|
319
|
+
}
|
|
320
|
+
/** 用户在文件对话框里选中的一个文件,内容随选择一起回传。 */
|
|
321
|
+
export interface PluginOfficialOpenedFile {
|
|
322
|
+
path: string;
|
|
323
|
+
name: string;
|
|
324
|
+
/** base64 编码的文件内容。 */
|
|
325
|
+
data: string;
|
|
326
|
+
}
|
|
285
327
|
export interface PluginOfficialKnowledgeBase {
|
|
286
328
|
id: string;
|
|
287
329
|
name: string;
|
|
@@ -297,6 +339,63 @@ export interface PluginOfficialKnowledgeProcessingSettings {
|
|
|
297
339
|
agentConcurrency?: number;
|
|
298
340
|
ocrConcurrency?: number;
|
|
299
341
|
}
|
|
342
|
+
/** 由 `official.sessions.create` 新建的后台会话句柄。 */
|
|
343
|
+
export interface PluginOfficialSessionHandle {
|
|
344
|
+
/** 进程内 runtime id,用于 prompt / abort / subscribe。重启后失效。 */
|
|
345
|
+
sessionId: string;
|
|
346
|
+
/** 会话文件绝对路径,跨重启稳定,用于持久化与跳转。 */
|
|
347
|
+
sessionPath: string;
|
|
348
|
+
/** 实际运行目录(「对话」项目会落到 per-session 子目录,见 ADR-0007)。 */
|
|
349
|
+
cwd?: string;
|
|
350
|
+
}
|
|
351
|
+
/** 会话运行态变化广播(按 sessionPath 标识,跨重启稳定)。 */
|
|
352
|
+
export interface PluginOfficialSessionRunningEvent {
|
|
353
|
+
sessionPath: string;
|
|
354
|
+
running: boolean;
|
|
355
|
+
sessionId?: string;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* 会话文件此刻允许做什么。
|
|
359
|
+
*
|
|
360
|
+
* 同一份会话文件可能正被另一个运行时占用、或已不可读,宿主自己点会话时就是按这几
|
|
361
|
+
* 位分流的(可续聊 / 只读查看 / 完全打不开)。插件在跳转前必须先看它,否则会把用户
|
|
362
|
+
* 送进一个打不开的会话,且失败发生在导航之后、很难解释。
|
|
363
|
+
*/
|
|
364
|
+
export interface PluginOfficialSessionAccess {
|
|
365
|
+
/** 能否读取历史。为 false 时连只读查看都不行。 */
|
|
366
|
+
readHistory: boolean;
|
|
367
|
+
/** 能否在对话页续聊。 */
|
|
368
|
+
interactiveResume: boolean;
|
|
369
|
+
rename: boolean;
|
|
370
|
+
delete: boolean;
|
|
371
|
+
}
|
|
372
|
+
/** 会话历史条目(`official.sessions.list` 返回),按 `modifiedAt` 倒序。 */
|
|
373
|
+
export interface PluginOfficialSessionSummary {
|
|
374
|
+
path: string;
|
|
375
|
+
cwd?: string;
|
|
376
|
+
firstMessage?: string;
|
|
377
|
+
modifiedAt?: number;
|
|
378
|
+
access: PluginOfficialSessionAccess;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* 导航目标。多数目标只要 `target`;`target: "new-session"` 这类带参数的目标另需
|
|
382
|
+
* `cwd`(项目绝对路径),缺了会被宿主拒绝而不是跳到一个空页面。
|
|
383
|
+
*/
|
|
384
|
+
export interface PluginOfficialNavigationOpenInput {
|
|
385
|
+
target: string;
|
|
386
|
+
tab?: string;
|
|
387
|
+
section?: string;
|
|
388
|
+
/** 仅 `target: "new-session"` 使用:要新建会话的项目目录。 */
|
|
389
|
+
cwd?: string;
|
|
390
|
+
/**
|
|
391
|
+
* 仅 `target: "new-session"` 使用:预置到输入框的草稿文本,不发送,用户可继续编辑。
|
|
392
|
+
*
|
|
393
|
+
* 用输入框的文本形态书写行内 token(`@skill:名字` / `@mcp:名字` / `@/abs/path`),
|
|
394
|
+
* 宿主会把它们渲染成对应的 badge。在导航发生**之前**写入该 cwd 的新会话草稿位,
|
|
395
|
+
* 所以不会被新会话页自己的草稿恢复覆盖;该 cwd 上已有的未发送草稿会被替换。
|
|
396
|
+
*/
|
|
397
|
+
draft?: string;
|
|
398
|
+
}
|
|
300
399
|
/** 仅宿主验证为官方来源的插件可以调用;普通插件调用时由宿主拒绝。 */
|
|
301
400
|
export interface PluginOfficialApi {
|
|
302
401
|
general: {
|
|
@@ -338,6 +437,16 @@ export interface PluginOfficialApi {
|
|
|
338
437
|
enabled: boolean;
|
|
339
438
|
}>;
|
|
340
439
|
uninstall(name: string, type?: "skill" | "scene"): Promise<void>;
|
|
440
|
+
/**
|
|
441
|
+
* 从能力市场按 slug 安装 skill/scene(产品文案:能力)。
|
|
442
|
+
* 下载在主进程完成;密钥类凭证不经过此 API。
|
|
443
|
+
*/
|
|
444
|
+
installFromMarket(type: "skill" | "scene", slug: string): Promise<{
|
|
445
|
+
name: string;
|
|
446
|
+
type: "skill" | "scene";
|
|
447
|
+
version: string;
|
|
448
|
+
updated: boolean;
|
|
449
|
+
}>;
|
|
341
450
|
};
|
|
342
451
|
shortcuts: {
|
|
343
452
|
listAvailableActions(): Array<{
|
|
@@ -374,6 +483,21 @@ export interface PluginOfficialApi {
|
|
|
374
483
|
status: unknown;
|
|
375
484
|
}>;
|
|
376
485
|
assertModelKeyExists(modelKey: string): Promise<void>;
|
|
486
|
+
/**
|
|
487
|
+
* 写入飞书凭证。Agent 应省略 appSecret 等密钥,由审批弹窗让用户手填。
|
|
488
|
+
* 空字符串密钥字段表示保持现有值不改。
|
|
489
|
+
*/
|
|
490
|
+
setFeishuConfig(input: {
|
|
491
|
+
enabled?: boolean;
|
|
492
|
+
appId?: string;
|
|
493
|
+
appSecret?: string;
|
|
494
|
+
verificationToken?: string;
|
|
495
|
+
encryptKey?: string;
|
|
496
|
+
baseUrl?: string;
|
|
497
|
+
}): Promise<{
|
|
498
|
+
ok: boolean;
|
|
499
|
+
error?: string;
|
|
500
|
+
}>;
|
|
377
501
|
};
|
|
378
502
|
mcp: {
|
|
379
503
|
list(): Promise<PluginOfficialMcpServerSummary[]>;
|
|
@@ -384,6 +508,11 @@ export interface PluginOfficialApi {
|
|
|
384
508
|
remove(name: string): Promise<void>;
|
|
385
509
|
};
|
|
386
510
|
models: {
|
|
511
|
+
/**
|
|
512
|
+
* 用户当前可选的全部模型:本地配置的 provider **加上**登录后服务端下发的远程目录
|
|
513
|
+
* (Vetta Go 等,`remote: true`)。同一个 `provider/modelId` 以本地为准。
|
|
514
|
+
* 与宿主输入栏模型选择器同一口径。
|
|
515
|
+
*/
|
|
387
516
|
list(): Promise<{
|
|
388
517
|
defaultModel: string | null;
|
|
389
518
|
providers: PluginOfficialProviderSummary[];
|
|
@@ -400,6 +529,7 @@ export interface PluginOfficialApi {
|
|
|
400
529
|
defaultModel: string;
|
|
401
530
|
}>;
|
|
402
531
|
upsertProvider(provider: string, data: PluginOfficialProviderUpsertData): Promise<PluginOfficialProviderDetail>;
|
|
532
|
+
/** Removes the provider when present. Repeated removal is an idempotent no-op. */
|
|
403
533
|
removeProvider(provider: string): Promise<void>;
|
|
404
534
|
};
|
|
405
535
|
projects: {
|
|
@@ -425,9 +555,43 @@ export interface PluginOfficialApi {
|
|
|
425
555
|
installFromPath(path: string, options?: {
|
|
426
556
|
grantedPermissions?: string[];
|
|
427
557
|
enable?: boolean;
|
|
558
|
+
source?: "archive" | "npm";
|
|
559
|
+
expectedSha256?: string;
|
|
560
|
+
expectedId?: string;
|
|
561
|
+
expectedVersion?: string;
|
|
562
|
+
npm?: {
|
|
563
|
+
packageName: string;
|
|
564
|
+
requestedSpec: string;
|
|
565
|
+
resolvedVersion: string;
|
|
566
|
+
integrity?: string;
|
|
567
|
+
};
|
|
428
568
|
}): Promise<PluginOfficialPluginSummary>;
|
|
429
569
|
uninstall(id: string): Promise<void>;
|
|
430
570
|
reload(id: string): Promise<PluginOfficialPluginSummary>;
|
|
571
|
+
grantPermissions(id: string, permissions: PluginPermission[]): Promise<PluginOfficialPluginSummary>;
|
|
572
|
+
startDevWatch(id: string, projectDir: string): Promise<PluginOfficialPluginSummary>;
|
|
573
|
+
stopDevWatch(id: string): Promise<void>;
|
|
574
|
+
onChanged(handler: (event?: PluginOfficialPluginChangedEvent) => void): () => void;
|
|
575
|
+
};
|
|
576
|
+
dialog: {
|
|
577
|
+
saveCopy(sourcePath: string, options?: PluginOfficialSaveCopyOptions): Promise<string | null>;
|
|
578
|
+
/**
|
|
579
|
+
* 打开原生文件选择框,并把选中文件的**内容**一起返回。
|
|
580
|
+
*
|
|
581
|
+
* 插件的 `ctx.fs` 只能读已授权的项目根,因此「选个文件再自己去读」这条路走不通;
|
|
582
|
+
* 这个接口不放宽任何目录授权,插件能看到的只有用户这次亲手选中的文件。
|
|
583
|
+
* 用户取消时返回空数组。
|
|
584
|
+
*/
|
|
585
|
+
openFiles(options?: PluginOfficialOpenFilesOptions): Promise<PluginOfficialOpenedFile[]>;
|
|
586
|
+
};
|
|
587
|
+
shell: {
|
|
588
|
+
/**
|
|
589
|
+
* 在系统文件管理器里定位并选中这个路径。
|
|
590
|
+
*
|
|
591
|
+
* 与 `ui.openExternal` 分工:那个只放行 http/https,用来把链接交给浏览器;
|
|
592
|
+
* 这个只做「显示这个本地路径」,不能用来拉起任意协议。
|
|
593
|
+
*/
|
|
594
|
+
showItemInFolder(path: string): Promise<void>;
|
|
431
595
|
};
|
|
432
596
|
knowledge: {
|
|
433
597
|
list(): Promise<PluginOfficialKnowledgeBase[]>;
|
|
@@ -499,21 +663,66 @@ export interface PluginOfficialApi {
|
|
|
499
663
|
setLanguage(language: "zh" | "en"): Promise<unknown>;
|
|
500
664
|
listThemeIds(): string[];
|
|
501
665
|
};
|
|
666
|
+
/**
|
|
667
|
+
* 后台会话编排。会话本体跑在主进程,创建后即使宿主停留在别的页面也会继续执行,
|
|
668
|
+
* 因此系统插件可以据此做「多任务并发派单」类工作台(如看板)。
|
|
669
|
+
*/
|
|
670
|
+
sessions: {
|
|
671
|
+
/**
|
|
672
|
+
* 在 `cwd` 下新建一个会话;不发送任何 prompt。
|
|
673
|
+
*
|
|
674
|
+
* 传 `modelKey`(`provider/modelId`)时写入该会话的模型设置,后续无论是插件
|
|
675
|
+
* 继续 `prompt`、还是用户在对话页手动接着聊,都用这个模型;不传则跟随宿主全局默认。
|
|
676
|
+
*/
|
|
677
|
+
create(input: {
|
|
678
|
+
cwd: string;
|
|
679
|
+
title?: string;
|
|
680
|
+
modelKey?: string;
|
|
681
|
+
}): Promise<PluginOfficialSessionHandle>;
|
|
682
|
+
/**
|
|
683
|
+
* 向会话发起一轮对话。streaming 中会进入该会话的输入队列(ADR-0060)。
|
|
684
|
+
*
|
|
685
|
+
* `options.modelKey` 只钉住**这一轮**用哪个模型(不改会话设置);要让整个会话
|
|
686
|
+
* 都用某个模型,在 `create` 时传 `modelKey`。
|
|
687
|
+
*/
|
|
688
|
+
prompt(sessionId: string, text: string, options?: {
|
|
689
|
+
modelKey?: string;
|
|
690
|
+
}): Promise<{
|
|
691
|
+
status: "sent" | "queued" | "failed";
|
|
692
|
+
error?: {
|
|
693
|
+
message: string;
|
|
694
|
+
};
|
|
695
|
+
}>;
|
|
696
|
+
/** 中止会话当前回合。 */
|
|
697
|
+
abort(sessionId: string): Promise<void>;
|
|
698
|
+
/** 重命名会话(写入会话文件标题),用于把看板卡片标题同步到会话列表。 */
|
|
699
|
+
rename(sessionPath: string, name: string): Promise<void>;
|
|
700
|
+
/** 列出某目录下的历史会话。 */
|
|
701
|
+
list(cwd: string): Promise<PluginOfficialSessionSummary[]>;
|
|
702
|
+
/** 当前处于 agent loop 中的会话文件路径快照。 */
|
|
703
|
+
listRunning(): Promise<string[]>;
|
|
704
|
+
/**
|
|
705
|
+
* 当前有会话在跑的项目 cwd(去重)。
|
|
706
|
+
*
|
|
707
|
+
* 需要「这个项目忙不忙」时用它,不要拿 `listRunning()` 的路径去比对 cwd:会话文件
|
|
708
|
+
* 默认落在按 cwd 编码的分片目录里,那个编码不可逆且会让不同项目撞进同一分片。
|
|
709
|
+
*/
|
|
710
|
+
listRunningCwds(): Promise<string[]>;
|
|
711
|
+
/** 订阅运行态翻转;返回取消订阅函数。 */
|
|
712
|
+
onRunningChanged(handler: (event: PluginOfficialSessionRunningEvent) => void): () => void;
|
|
713
|
+
/** 把宿主导航到该会话的对话页。 */
|
|
714
|
+
open(input: {
|
|
715
|
+
cwd: string;
|
|
716
|
+
sessionPath: string;
|
|
717
|
+
}): Promise<void>;
|
|
718
|
+
};
|
|
502
719
|
navigation: {
|
|
503
720
|
help(): unknown;
|
|
504
|
-
resolveOpen(input: {
|
|
505
|
-
target: string;
|
|
506
|
-
tab?: string;
|
|
507
|
-
section?: string;
|
|
508
|
-
}): {
|
|
721
|
+
resolveOpen(input: PluginOfficialNavigationOpenInput): {
|
|
509
722
|
hashPath: string;
|
|
510
723
|
resolved: unknown;
|
|
511
724
|
};
|
|
512
|
-
open(input:
|
|
513
|
-
target: string;
|
|
514
|
-
tab?: string;
|
|
515
|
-
section?: string;
|
|
516
|
-
}): Promise<unknown>;
|
|
725
|
+
open(input: PluginOfficialNavigationOpenInput): Promise<unknown>;
|
|
517
726
|
};
|
|
518
727
|
}
|
|
519
728
|
//# sourceMappingURL=official.d.ts.map
|
package/dist/official.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"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","sourcesContent":["export interface PluginOfficialGeneralSettings {\n\tworkspacePath: string;\n\tdefaultExecutionMode?: \"sandbox\" | \"full-access\";\n\tnotificationsEnabled: boolean;\n\tdebugMode: boolean;\n\tsandbox: unknown;\n}\n\nexport type PluginOfficialGeneralSettingsUpdate =\n\t| { operation: \"set-notifications\"; enabled: boolean }\n\t| { operation: \"set-execution-mode\"; mode: \"sandbox\" | \"full-access\" }\n\t| { operation: \"set-workspace\"; path: string };\n\nexport interface PluginOfficialExperimentalSettings {\n\tvettaCli: boolean;\n\tpromptPrediction: boolean;\n\tagentSkills: boolean;\n}\n\nexport interface PluginOfficialDownloadItem {\n\tid: string;\n\turl: string;\n\tfilename: string;\n\tpath: string;\n\ttotalBytes: number;\n\treceivedBytes: number;\n\tstatus: \"queued\" | \"downloading\" | \"paused\" | \"completed\" | \"failed\" | \"canceled\";\n\terror?: string;\n\tcreatedAt: number;\n\tcompletedAt?: number;\n\tspeedBytesPerSec?: number;\n}\n\nexport interface PluginOfficialUpdaterState {\n\tphase: \"idle\" | \"checking\" | \"available\" | \"downloading\" | \"ready\" | \"installing\" | \"error\";\n\tcurrentVersion: string;\n\tlatestVersion?: string;\n\treleaseNote?: string;\n\tprogress?: number;\n\tdownloadedBytes?: number;\n\ttotalBytes?: number;\n\tassetFileName?: string;\n\terror?: string;\n}\n\nexport type PluginOfficialWebhookKind = \"feishu\" | \"dingtalk\";\n\nexport interface PluginOfficialWebhookEndpoint {\n\tid: string;\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\tenabled: boolean;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\turlMask?: string;\n\thasSignSecret?: boolean;\n}\n\nexport interface PluginOfficialWebhookProvider {\n\tkind: PluginOfficialWebhookKind;\n\tdisplayName: string;\n\ticonClass?: string;\n}\n\nexport interface PluginOfficialWebhookCreateInput {\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\twebhookUrl: string;\n\tsignSecret?: string;\n\tenabled?: boolean;\n}\n\nexport interface PluginOfficialWebhookUpdateInput {\n\tname?: string;\n\tenabled?: boolean;\n\twebhookUrl?: string;\n\tsignSecret?: string;\n}\n\nexport interface PluginOfficialWebhookMessage {\n\ttitle?: string;\n\ttext: string;\n\tlevel?: \"info\" | \"warn\" | \"error\" | \"success\";\n}\n\nexport interface PluginOfficialWebhookSendResult {\n\tok: boolean;\n\terror?: string;\n}\n\nexport interface PluginOfficialSkillInfo {\n\tname: string;\n\talias?: string;\n\tdescription: string;\n\tsource: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport type PluginOfficialInstalledSkill = {\n\tname: string;\n\tversion: string;\n\tinstalledAt: string;\n\tsource: \"market\" | \"custom\";\n\tenabled: boolean;\n\ttype?: \"skill\" | \"scene\";\n\talias?: string;\n\tmarketDescription?: string;\n\tdescription?: string;\n};\n\nexport interface PluginOfficialShortcutBinding {\n\tid: string;\n\tdefaultShortcut: string;\n\tshortcut: string;\n\tisDefault: boolean;\n}\n\nexport interface PluginOfficialQuickPanelSettings {\n\ttrigger: \"none\" | \"mod\" | \"alt\" | \"shift\";\n\tpostSendBehavior: \"foreground\" | \"background\";\n}\n\nexport interface PluginOfficialImStatus {\n\tenabled: boolean;\n\ttransport: string;\n\tagentModel: { provider: string; model: string; reasoningLevel?: string } | null;\n\twechatBound: boolean;\n\tfeishuAppId: string | null;\n\truntime: unknown;\n}\n\nexport interface PluginOfficialImLog {\n\tlevel: string;\n\tmsg: string;\n\ttime: string;\n\tfields?: Record<string, unknown>;\n}\n\nexport interface PluginOfficialMcpServerSummary {\n\tname: string;\n\ttype: \"http\" | \"stdio\";\n\tdisabled: boolean;\n\tcommand?: string;\n\turl?: string;\n}\n\nexport interface PluginOfficialMcpServerDetail {\n\tname: string;\n\ttype?: \"http\" | \"stdio\";\n\tcommand?: string;\n\targs?: string[];\n\tenv?: Record<string, string>;\n\tcwd?: string;\n\turl?: string;\n\theaders?: Record<string, string>;\n\tdisabled?: boolean;\n\tautoApprove?: string[];\n\tstartupTimeout?: number;\n\tdebug?: boolean;\n}\n\nexport type PluginOfficialMcpUpsertData =\n\t| {\n\t\t\ttype?: \"stdio\";\n\t\t\tcommand?: string;\n\t\t\targs?: string[];\n\t\t\tenv?: Record<string, string>;\n\t\t\tcwd?: string;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t }\n\t| {\n\t\t\ttype: \"http\";\n\t\t\turl?: string;\n\t\t\theaders?: Record<string, string>;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t };\n\nexport type PluginOfficialExecutionMode = \"inherit\" | \"sandbox\" | \"full-access\";\n\nexport interface PluginOfficialSelectedSkill {\n\tname: string;\n\talias?: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport interface PluginOfficialBatchProjectCreateData {\n\tname: string;\n\tprompt: string;\n\tmodelKey?: string;\n\tfolders: string[];\n\tconcurrency: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialBatchProjectUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tmodelKey?: string;\n\tconcurrency?: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tnewFolders?: string[];\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialSchedulerTaskCreateData {\n\tname: string;\n\tprompt: string;\n\tcron: string;\n\tisOnce: boolean;\n\tenabled?: boolean;\n\tcwd: string;\n\tmodelKey?: string;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialSchedulerTaskUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tcron?: string;\n\tisOnce?: boolean;\n\tenabled?: boolean;\n\tcwd?: string;\n\tmodelKey?: string | null;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialModelSummary {\n\tid: string;\n\tname?: string;\n\tapi?: string;\n\treasoning?: boolean;\n}\n\nexport interface PluginOfficialProviderSummary {\n\tid: string;\n\tdisplayName: string;\n\tbaseUrl?: string;\n\tapi?: string;\n\thasApiKey: boolean;\n\tmodelCount: number;\n\tmodels: PluginOfficialModelSummary[];\n}\n\nexport interface PluginOfficialProviderDetail {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProviderUpsertData {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProjectEntry {\n\tpath: string;\n\tname?: string;\n}\n\nexport interface PluginOfficialPluginSummary {\n\tid: string;\n\tname: string;\n\tversion: string;\n\tenabled: boolean;\n\trequired: boolean;\n\tsource: string;\n\tpermissions: string[];\n\tdescription?: string;\n\tdevWatch?: unknown;\n}\n\nexport interface PluginOfficialKnowledgeBase {\n\tid: string;\n\tname: string;\n\tupdatedAt: number;\n\tisDefault: boolean;\n\tnodes: unknown[];\n}\n\nexport interface PluginOfficialKnowledgeProcessingSettings {\n\tenabled?: boolean;\n\tpollIntervalMinutes?: number;\n\tprocessingModelKey?: string;\n\tprocessingModelReasoningLevel?: string;\n\tagentConcurrency?: number;\n\tocrConcurrency?: number;\n}\n\n/** 仅宿主验证为官方来源的插件可以调用;普通插件调用时由宿主拒绝。 */\nexport interface PluginOfficialApi {\n\tgeneral: {\n\t\tgetSettings(): Promise<PluginOfficialGeneralSettings>;\n\t\tsetSettings(input: PluginOfficialGeneralSettingsUpdate): Promise<PluginOfficialGeneralSettingsUpdate>;\n\t};\n\tagent: {\n\t\tgetExperimental(): Promise<PluginOfficialExperimentalSettings>;\n\t\tsetExperimental(input: Partial<PluginOfficialExperimentalSettings>): Promise<PluginOfficialExperimentalSettings>;\n\t};\n\tdownloads: {\n\t\tlist(): Promise<PluginOfficialDownloadItem[]>;\n\t\tcancel(id: string): Promise<void>;\n\t};\n\tupdater: {\n\t\tgetState(): Promise<PluginOfficialUpdaterState>;\n\t\tgetCurrentVersion(): Promise<string>;\n\t\tcheck(): Promise<PluginOfficialUpdaterState>;\n\t\tdownload(): Promise<PluginOfficialUpdaterState>;\n\t\tinstall(): Promise<void>;\n\t\tdismiss(): Promise<void>;\n\t\tcancel(): Promise<void>;\n\t};\n\twebhook: {\n\t\tlist(): Promise<PluginOfficialWebhookEndpoint[]>;\n\t\tlistProviders(): Promise<PluginOfficialWebhookProvider[]>;\n\t\tcreate(input: PluginOfficialWebhookCreateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tupdate(id: string, input: PluginOfficialWebhookUpdateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialWebhookEndpoint>;\n\t\tdelete(id: string): Promise<void>;\n\t\ttest(id: string): Promise<PluginOfficialWebhookSendResult>;\n\t\tsend(id: string, message: PluginOfficialWebhookMessage): Promise<PluginOfficialWebhookSendResult>;\n\t};\n\tskills: {\n\t\tlist(cwd?: string): Promise<PluginOfficialSkillInfo[]>;\n\t\tgetManifest(): Promise<Record<string, PluginOfficialInstalledSkill>>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<{ name: string; enabled: boolean }>;\n\t\tuninstall(name: string, type?: \"skill\" | \"scene\"): Promise<void>;\n\t};\n\tshortcuts: {\n\t\tlistAvailableActions(): Array<{ id: string; defaultShortcut: string }>;\n\t\tget(): Promise<{ bindings: PluginOfficialShortcutBinding[]; quickPanel: PluginOfficialQuickPanelSettings }>;\n\t\tsetBinding(id: string, shortcut: string): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tresetBinding(id: string): Promise<{ bindings: PluginOfficialShortcutBinding[]; shortcut: string }>;\n\t\tresetAllBindings(): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tsetQuickPanelTrigger(trigger: PluginOfficialQuickPanelSettings[\"trigger\"]): Promise<PluginOfficialQuickPanelSettings>;\n\t\tsetQuickPanelBehavior(\n\t\t\tbehavior: PluginOfficialQuickPanelSettings[\"postSendBehavior\"],\n\t\t): Promise<PluginOfficialQuickPanelSettings>;\n\t};\n\tim: {\n\t\tgetStatus(): Promise<PluginOfficialImStatus>;\n\t\tgetLogs(limit?: number): Promise<PluginOfficialImLog[]>;\n\t\tsetEnabled(enabled: boolean): Promise<{ status: unknown }>;\n\t\trestart(): Promise<{ status: unknown }>;\n\t\tsetAgentModel(\n\t\t\tmodelKey: string | null,\n\t\t\treasoningLevel?: string,\n\t\t): Promise<{ status: unknown }>;\n\t\tassertModelKeyExists(modelKey: string): Promise<void>;\n\t};\n\tmcp: {\n\t\tlist(): Promise<PluginOfficialMcpServerSummary[]>;\n\t\tget(name: string): Promise<PluginOfficialMcpServerDetail>;\n\t\tlistNames(): Promise<string[]>;\n\t\tupsert(name: string, data: PluginOfficialMcpUpsertData): Promise<PluginOfficialMcpServerDetail>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<void>;\n\t\tremove(name: string): Promise<void>;\n\t};\n\tmodels: {\n\t\tlist(): Promise<{ defaultModel: string | null; providers: PluginOfficialProviderSummary[] }>;\n\t\tget(provider?: string): Promise<unknown>;\n\t\tprobe(provider: string, model: string): Promise<{ ok: boolean; message?: string; error?: string }>;\n\t\tlistProviderIds(): Promise<string[]>;\n\t\tassertModelKeyExists(modelKey: string, operation?: string): Promise<void>;\n\t\tsetDefault(modelKey: string): Promise<{ defaultModel: string }>;\n\t\tupsertProvider(provider: string, data: PluginOfficialProviderUpsertData): Promise<PluginOfficialProviderDetail>;\n\t\tremoveProvider(provider: string): Promise<void>;\n\t};\n\tprojects: {\n\t\tlist(): Promise<{\n\t\t\tworkspacePath: string;\n\t\t\tprojects: PluginOfficialProjectEntry[];\n\t\t\tarchivedProjects: PluginOfficialProjectEntry[];\n\t\t}>;\n\t\tlistSessions(cwd: string): Promise<unknown[]>;\n\t\tlistRuntimeProjects(): Promise<unknown[]>;\n\t\tcreate(name: string, path?: string): Promise<PluginOfficialProjectEntry>;\n\t\topen(path: string, name?: string): Promise<PluginOfficialProjectEntry>;\n\t\trename(path: string, name: string): Promise<PluginOfficialProjectEntry>;\n\t\tarchive(path: string): Promise<void>;\n\t\tunarchive(path: string): Promise<void>;\n\t\tremove(path: string): Promise<void>;\n\t};\n\tplugins: {\n\t\tlist(): Promise<PluginOfficialPluginSummary[]>;\n\t\tget(id: string): Promise<PluginOfficialPluginSummary>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromUrl(url: string): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromPath(\n\t\t\tpath: string,\n\t\t\toptions?: { grantedPermissions?: string[]; enable?: boolean },\n\t\t): Promise<PluginOfficialPluginSummary>;\n\t\tuninstall(id: string): Promise<void>;\n\t\treload(id: string): Promise<PluginOfficialPluginSummary>;\n\t};\n\tknowledge: {\n\t\tlist(): Promise<PluginOfficialKnowledgeBase[]>;\n\t\tfileStatuses(): Promise<Record<string, unknown>>;\n\t\tisProcessing(): Promise<boolean>;\n\t\tgetProcessing(): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t\tcreate(name: string): Promise<void>;\n\t\trename(name: string, newName: string): Promise<void>;\n\t\tdelete(name: string): Promise<void>;\n\t\taddFiles(kbId: string, paths: string[], move?: boolean): Promise<void>;\n\t\tdeleteEntry(kbId: string, relPath: string): Promise<void>;\n\t\tscanNow(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tretryFailed(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tsetProcessing(\n\t\t\tdata: Partial<{\n\t\t\t\tenabled: boolean;\n\t\t\t\tpollIntervalMinutes: 3 | 5 | 10 | 30;\n\t\t\t\tprocessingModelKey: string | null;\n\t\t\t\tprocessingModelReasoningLevel: string | null;\n\t\t\t\tagentConcurrency: number;\n\t\t\t\tocrConcurrency: number;\n\t\t\t}>,\n\t\t): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t};\n\tbatchTasks: {\n\t\tlistProjects(): Promise<unknown[]>;\n\t\tgetProject(projectId: string): Promise<unknown>;\n\t\tlistProjectIds(): Promise<string[]>;\n\t\tcreateProject(data: PluginOfficialBatchProjectCreateData): Promise<unknown>;\n\t\tupdateProject(projectId: string, data: PluginOfficialBatchProjectUpdateData): Promise<unknown>;\n\t\tdeleteProject(projectId: string): Promise<unknown>;\n\t\trunTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tretryTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tstopTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tdeleteTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTaskWithText(projectId: string, taskId: string, text: string): Promise<unknown>;\n\t\tdeleteTaskSession(projectId: string, taskId: string): Promise<unknown>;\n\t\tbatchDelete(projectId: string): Promise<unknown>;\n\t\tbatchStart(projectId: string): Promise<unknown>;\n\t\tbatchStop(projectId: string): Promise<unknown>;\n\t\tbatchReset(projectId: string): Promise<unknown>;\n\t\tbatchResetFailed(projectId: string, taskIds: string[]): Promise<unknown>;\n\t};\n\tscheduler: {\n\t\tlistTasks(): Promise<unknown[]>;\n\t\tgetTask(taskId: string): Promise<unknown>;\n\t\tlistTaskIds(): Promise<string[]>;\n\t\tgetHistory(taskId: string): Promise<unknown[]>;\n\t\tcreateTask(data: PluginOfficialSchedulerTaskCreateData): Promise<unknown>;\n\t\tupdateTask(taskId: string, data: PluginOfficialSchedulerTaskUpdateData): Promise<unknown>;\n\t\tdeleteTask(taskId: string): Promise<unknown>;\n\t\tsetEnabled(taskId: string, enabled: boolean): Promise<unknown>;\n\t\trunNow(taskId: string): Promise<unknown>;\n\t\tabort(taskId: string): Promise<unknown>;\n\t};\n\tappearance: {\n\t\thelp(): Promise<unknown>;\n\t\tget(): Promise<unknown>;\n\t\tset(input: {\n\t\t\tmode?: \"light\" | \"dark\" | \"auto\";\n\t\t\tthemeId?: string;\n\t\t\tcursorStyle?: \"default\" | \"stoat\";\n\t\t}): Promise<unknown>;\n\t\tsetLanguage(language: \"zh\" | \"en\"): Promise<unknown>;\n\t\tlistThemeIds(): string[];\n\t};\n\tnavigation: {\n\t\thelp(): unknown;\n\t\tresolveOpen(input: { target: string; tab?: string; section?: string }): {\n\t\t\thashPath: string;\n\t\t\tresolved: unknown;\n\t\t};\n\t\topen(input: { target: string; tab?: string; section?: string }): Promise<unknown>;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PluginPermission } from \"./permissions.js\";\n\nexport interface PluginOfficialGeneralSettings {\n\tworkspacePath: string;\n\tdefaultExecutionMode?: \"sandbox\" | \"full-access\";\n\tnotificationsEnabled: boolean;\n\tdebugMode: boolean;\n\tsandbox: unknown;\n}\n\nexport type PluginOfficialGeneralSettingsUpdate =\n\t| { operation: \"set-notifications\"; enabled: boolean }\n\t| { operation: \"set-execution-mode\"; mode: \"sandbox\" | \"full-access\" }\n\t| { operation: \"set-workspace\"; path: string };\n\nexport interface PluginOfficialExperimentalSettings {\n\tvettaCli: boolean;\n\tpromptPrediction: boolean;\n\tagentSkills: boolean;\n}\n\nexport interface PluginOfficialDownloadItem {\n\tid: string;\n\turl: string;\n\tfilename: string;\n\tpath: string;\n\ttotalBytes: number;\n\treceivedBytes: number;\n\tstatus: \"queued\" | \"downloading\" | \"paused\" | \"completed\" | \"failed\" | \"canceled\";\n\terror?: string;\n\tcreatedAt: number;\n\tcompletedAt?: number;\n\tspeedBytesPerSec?: number;\n}\n\nexport interface PluginOfficialUpdaterState {\n\tphase: \"idle\" | \"checking\" | \"available\" | \"downloading\" | \"ready\" | \"installing\" | \"error\";\n\tcurrentVersion: string;\n\tlatestVersion?: string;\n\treleaseNote?: string;\n\tprogress?: number;\n\tdownloadedBytes?: number;\n\ttotalBytes?: number;\n\tassetFileName?: string;\n\terror?: string;\n}\n\nexport type PluginOfficialWebhookKind = \"feishu\" | \"dingtalk\";\n\nexport interface PluginOfficialWebhookEndpoint {\n\tid: string;\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\tenabled: boolean;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\turlMask?: string;\n\thasSignSecret?: boolean;\n}\n\nexport interface PluginOfficialWebhookProvider {\n\tkind: PluginOfficialWebhookKind;\n\tdisplayName: string;\n\ticonClass?: string;\n}\n\nexport interface PluginOfficialWebhookCreateInput {\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\twebhookUrl: string;\n\tsignSecret?: string;\n\tenabled?: boolean;\n}\n\nexport interface PluginOfficialWebhookUpdateInput {\n\tname?: string;\n\tenabled?: boolean;\n\twebhookUrl?: string;\n\tsignSecret?: string;\n}\n\nexport interface PluginOfficialWebhookMessage {\n\ttitle?: string;\n\ttext: string;\n\tlevel?: \"info\" | \"warn\" | \"error\" | \"success\";\n}\n\nexport interface PluginOfficialWebhookSendResult {\n\tok: boolean;\n\terror?: string;\n}\n\nexport interface PluginOfficialSkillInfo {\n\tname: string;\n\talias?: string;\n\tdescription: string;\n\tsource: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport type PluginOfficialInstalledSkill = {\n\tname: string;\n\tversion: string;\n\tinstalledAt: string;\n\tsource: \"market\" | \"custom\";\n\tenabled: boolean;\n\ttype?: \"skill\" | \"scene\";\n\talias?: string;\n\tmarketDescription?: string;\n\tdescription?: string;\n};\n\nexport interface PluginOfficialShortcutBinding {\n\tid: string;\n\tdefaultShortcut: string;\n\tshortcut: string;\n\tisDefault: boolean;\n}\n\nexport interface PluginOfficialQuickPanelSettings {\n\ttrigger: \"none\" | \"mod\" | \"alt\" | \"shift\";\n\tpostSendBehavior: \"foreground\" | \"background\";\n}\n\nexport interface PluginOfficialImStatus {\n\tenabled: boolean;\n\ttransport: string;\n\tagentModel: { provider: string; model: string; reasoningLevel?: string } | null;\n\twechatBound: boolean;\n\tfeishuAppId: string | null;\n\truntime: unknown;\n}\n\nexport interface PluginOfficialImLog {\n\tlevel: string;\n\tmsg: string;\n\ttime: string;\n\tfields?: Record<string, unknown>;\n}\n\nexport interface PluginOfficialMcpServerSummary {\n\tname: string;\n\ttype: \"http\" | \"stdio\";\n\tdisabled: boolean;\n\tcommand?: string;\n\turl?: string;\n}\n\nexport interface PluginOfficialMcpServerDetail {\n\tname: string;\n\ttype?: \"http\" | \"stdio\";\n\tcommand?: string;\n\targs?: string[];\n\tenv?: Record<string, string>;\n\tcwd?: string;\n\turl?: string;\n\theaders?: Record<string, string>;\n\tdisabled?: boolean;\n\tautoApprove?: string[];\n\tstartupTimeout?: number;\n\tdebug?: boolean;\n}\n\nexport type PluginOfficialMcpUpsertData =\n\t| {\n\t\t\ttype?: \"stdio\";\n\t\t\tcommand?: string;\n\t\t\targs?: string[];\n\t\t\tenv?: Record<string, string>;\n\t\t\tcwd?: string;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t }\n\t| {\n\t\t\ttype: \"http\";\n\t\t\turl?: string;\n\t\t\theaders?: Record<string, string>;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t };\n\nexport type PluginOfficialExecutionMode = \"inherit\" | \"sandbox\" | \"full-access\";\n\nexport interface PluginOfficialSelectedSkill {\n\tname: string;\n\talias?: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport interface PluginOfficialBatchProjectCreateData {\n\tname: string;\n\tprompt: string;\n\tmodelKey?: string;\n\tfolders: string[];\n\tconcurrency: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialBatchProjectUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tmodelKey?: string;\n\tconcurrency?: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tnewFolders?: string[];\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialSchedulerTaskCreateData {\n\tname: string;\n\tprompt: string;\n\tcron: string;\n\tisOnce: boolean;\n\tenabled?: boolean;\n\tcwd: string;\n\tmodelKey?: string;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialSchedulerTaskUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tcron?: string;\n\tisOnce?: boolean;\n\tenabled?: boolean;\n\tcwd?: string;\n\tmodelKey?: string | null;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialModelSummary {\n\tid: string;\n\tname?: string;\n\tapi?: string;\n\treasoning?: boolean;\n}\n\nexport interface PluginOfficialProviderSummary {\n\tid: string;\n\tdisplayName: string;\n\tbaseUrl?: string;\n\tapi?: string;\n\thasApiKey: boolean;\n\t/** 图标 symbol;配合 `ProviderIcon` 解析为内置图标,无则不画图标。 */\n\ticon?: string;\n\t/**\n\t * true = 来自登录后服务端下发的远程目录(如 Vetta Go),凭据是账号登录态而非本地\n\t * API Key,因此不会出现在本地模型配置里,也不可用 `upsertProvider` / `removeProvider` 改。\n\t */\n\tremote?: boolean;\n\tmodelCount: number;\n\tmodels: PluginOfficialModelSummary[];\n}\n\nexport interface PluginOfficialProviderDetail {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProviderUpsertData {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProjectEntry {\n\tpath: string;\n\tname?: string;\n}\n\nexport interface PluginOfficialPluginSummary {\n\tid: string;\n\tname: string;\n\tversion: string;\n\tactiveVersion: string;\n\tpendingVersion?: string;\n\tenabled: boolean;\n\trequired: boolean;\n\tsource: string;\n\tpermissions: string[];\n\tdescription?: string;\n\trootPath?: string;\n\tdevWatch?: unknown;\n}\n\nexport interface PluginOfficialPluginChangedEvent {\n\treason?: string;\n\tpluginId?: string;\n}\n\nexport interface PluginOfficialSaveCopyOptions {\n\tdefaultFileName?: string;\n\ttitle?: string;\n\tfilters?: Array<{ name: string; extensions: string[] }>;\n}\n\n/** `official.dialog.openFiles` 的选项。 */\nexport interface PluginOfficialOpenFilesOptions {\n\ttitle?: string;\n\tfilters?: Array<{ name: string; extensions: string[] }>;\n\t/** 允许多选,默认单选。 */\n\tmultiple?: boolean;\n\t/** 单个文件的字节上限,超过则抛错。默认 64MB。 */\n\tmaxBytes?: number;\n}\n\n/** 用户在文件对话框里选中的一个文件,内容随选择一起回传。 */\nexport interface PluginOfficialOpenedFile {\n\tpath: string;\n\tname: string;\n\t/** base64 编码的文件内容。 */\n\tdata: string;\n}\n\nexport interface PluginOfficialKnowledgeBase {\n\tid: string;\n\tname: string;\n\tupdatedAt: number;\n\tisDefault: boolean;\n\tnodes: unknown[];\n}\n\nexport interface PluginOfficialKnowledgeProcessingSettings {\n\tenabled?: boolean;\n\tpollIntervalMinutes?: number;\n\tprocessingModelKey?: string;\n\tprocessingModelReasoningLevel?: string;\n\tagentConcurrency?: number;\n\tocrConcurrency?: number;\n}\n\n/** 由 `official.sessions.create` 新建的后台会话句柄。 */\nexport interface PluginOfficialSessionHandle {\n\t/** 进程内 runtime id,用于 prompt / abort / subscribe。重启后失效。 */\n\tsessionId: string;\n\t/** 会话文件绝对路径,跨重启稳定,用于持久化与跳转。 */\n\tsessionPath: string;\n\t/** 实际运行目录(「对话」项目会落到 per-session 子目录,见 ADR-0007)。 */\n\tcwd?: string;\n}\n\n/** 会话运行态变化广播(按 sessionPath 标识,跨重启稳定)。 */\nexport interface PluginOfficialSessionRunningEvent {\n\tsessionPath: string;\n\trunning: boolean;\n\tsessionId?: string;\n}\n\n/**\n * 会话文件此刻允许做什么。\n *\n * 同一份会话文件可能正被另一个运行时占用、或已不可读,宿主自己点会话时就是按这几\n * 位分流的(可续聊 / 只读查看 / 完全打不开)。插件在跳转前必须先看它,否则会把用户\n * 送进一个打不开的会话,且失败发生在导航之后、很难解释。\n */\nexport interface PluginOfficialSessionAccess {\n\t/** 能否读取历史。为 false 时连只读查看都不行。 */\n\treadHistory: boolean;\n\t/** 能否在对话页续聊。 */\n\tinteractiveResume: boolean;\n\trename: boolean;\n\tdelete: boolean;\n}\n\n/** 会话历史条目(`official.sessions.list` 返回),按 `modifiedAt` 倒序。 */\nexport interface PluginOfficialSessionSummary {\n\tpath: string;\n\tcwd?: string;\n\tfirstMessage?: string;\n\tmodifiedAt?: number;\n\taccess: PluginOfficialSessionAccess;\n}\n\n/**\n * 导航目标。多数目标只要 `target`;`target: \"new-session\"` 这类带参数的目标另需\n * `cwd`(项目绝对路径),缺了会被宿主拒绝而不是跳到一个空页面。\n */\nexport interface PluginOfficialNavigationOpenInput {\n\ttarget: string;\n\ttab?: string;\n\tsection?: string;\n\t/** 仅 `target: \"new-session\"` 使用:要新建会话的项目目录。 */\n\tcwd?: string;\n\t/**\n\t * 仅 `target: \"new-session\"` 使用:预置到输入框的草稿文本,不发送,用户可继续编辑。\n\t *\n\t * 用输入框的文本形态书写行内 token(`@skill:名字` / `@mcp:名字` / `@/abs/path`),\n\t * 宿主会把它们渲染成对应的 badge。在导航发生**之前**写入该 cwd 的新会话草稿位,\n\t * 所以不会被新会话页自己的草稿恢复覆盖;该 cwd 上已有的未发送草稿会被替换。\n\t */\n\tdraft?: string;\n}\n\n/** 仅宿主验证为官方来源的插件可以调用;普通插件调用时由宿主拒绝。 */\nexport interface PluginOfficialApi {\n\tgeneral: {\n\t\tgetSettings(): Promise<PluginOfficialGeneralSettings>;\n\t\tsetSettings(input: PluginOfficialGeneralSettingsUpdate): Promise<PluginOfficialGeneralSettingsUpdate>;\n\t};\n\tagent: {\n\t\tgetExperimental(): Promise<PluginOfficialExperimentalSettings>;\n\t\tsetExperimental(input: Partial<PluginOfficialExperimentalSettings>): Promise<PluginOfficialExperimentalSettings>;\n\t};\n\tdownloads: {\n\t\tlist(): Promise<PluginOfficialDownloadItem[]>;\n\t\tcancel(id: string): Promise<void>;\n\t};\n\tupdater: {\n\t\tgetState(): Promise<PluginOfficialUpdaterState>;\n\t\tgetCurrentVersion(): Promise<string>;\n\t\tcheck(): Promise<PluginOfficialUpdaterState>;\n\t\tdownload(): Promise<PluginOfficialUpdaterState>;\n\t\tinstall(): Promise<void>;\n\t\tdismiss(): Promise<void>;\n\t\tcancel(): Promise<void>;\n\t};\n\twebhook: {\n\t\tlist(): Promise<PluginOfficialWebhookEndpoint[]>;\n\t\tlistProviders(): Promise<PluginOfficialWebhookProvider[]>;\n\t\tcreate(input: PluginOfficialWebhookCreateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tupdate(id: string, input: PluginOfficialWebhookUpdateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialWebhookEndpoint>;\n\t\tdelete(id: string): Promise<void>;\n\t\ttest(id: string): Promise<PluginOfficialWebhookSendResult>;\n\t\tsend(id: string, message: PluginOfficialWebhookMessage): Promise<PluginOfficialWebhookSendResult>;\n\t};\n\tskills: {\n\t\tlist(cwd?: string): Promise<PluginOfficialSkillInfo[]>;\n\t\tgetManifest(): Promise<Record<string, PluginOfficialInstalledSkill>>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<{ name: string; enabled: boolean }>;\n\t\tuninstall(name: string, type?: \"skill\" | \"scene\"): Promise<void>;\n\t\t/**\n\t\t * 从能力市场按 slug 安装 skill/scene(产品文案:能力)。\n\t\t * 下载在主进程完成;密钥类凭证不经过此 API。\n\t\t */\n\t\tinstallFromMarket(\n\t\t\ttype: \"skill\" | \"scene\",\n\t\t\tslug: string,\n\t\t): Promise<{ name: string; type: \"skill\" | \"scene\"; version: string; updated: boolean }>;\n\t};\n\tshortcuts: {\n\t\tlistAvailableActions(): Array<{ id: string; defaultShortcut: string }>;\n\t\tget(): Promise<{ bindings: PluginOfficialShortcutBinding[]; quickPanel: PluginOfficialQuickPanelSettings }>;\n\t\tsetBinding(id: string, shortcut: string): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tresetBinding(id: string): Promise<{ bindings: PluginOfficialShortcutBinding[]; shortcut: string }>;\n\t\tresetAllBindings(): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tsetQuickPanelTrigger(trigger: PluginOfficialQuickPanelSettings[\"trigger\"]): Promise<PluginOfficialQuickPanelSettings>;\n\t\tsetQuickPanelBehavior(\n\t\t\tbehavior: PluginOfficialQuickPanelSettings[\"postSendBehavior\"],\n\t\t): Promise<PluginOfficialQuickPanelSettings>;\n\t};\n\tim: {\n\t\tgetStatus(): Promise<PluginOfficialImStatus>;\n\t\tgetLogs(limit?: number): Promise<PluginOfficialImLog[]>;\n\t\tsetEnabled(enabled: boolean): Promise<{ status: unknown }>;\n\t\trestart(): Promise<{ status: unknown }>;\n\t\tsetAgentModel(\n\t\t\tmodelKey: string | null,\n\t\t\treasoningLevel?: string,\n\t\t): Promise<{ status: unknown }>;\n\t\tassertModelKeyExists(modelKey: string): Promise<void>;\n\t\t/**\n\t\t * 写入飞书凭证。Agent 应省略 appSecret 等密钥,由审批弹窗让用户手填。\n\t\t * 空字符串密钥字段表示保持现有值不改。\n\t\t */\n\t\tsetFeishuConfig(input: {\n\t\t\tenabled?: boolean;\n\t\t\tappId?: string;\n\t\t\tappSecret?: string;\n\t\t\tverificationToken?: string;\n\t\t\tencryptKey?: string;\n\t\t\tbaseUrl?: string;\n\t\t}): Promise<{ ok: boolean; error?: string }>;\n\t};\n\tmcp: {\n\t\tlist(): Promise<PluginOfficialMcpServerSummary[]>;\n\t\tget(name: string): Promise<PluginOfficialMcpServerDetail>;\n\t\tlistNames(): Promise<string[]>;\n\t\tupsert(name: string, data: PluginOfficialMcpUpsertData): Promise<PluginOfficialMcpServerDetail>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<void>;\n\t\tremove(name: string): Promise<void>;\n\t};\n\tmodels: {\n\t\t/**\n\t\t * 用户当前可选的全部模型:本地配置的 provider **加上**登录后服务端下发的远程目录\n\t\t * (Vetta Go 等,`remote: true`)。同一个 `provider/modelId` 以本地为准。\n\t\t * 与宿主输入栏模型选择器同一口径。\n\t\t */\n\t\tlist(): Promise<{ defaultModel: string | null; providers: PluginOfficialProviderSummary[] }>;\n\t\tget(provider?: string): Promise<unknown>;\n\t\tprobe(provider: string, model: string): Promise<{ ok: boolean; message?: string; error?: string }>;\n\t\tlistProviderIds(): Promise<string[]>;\n\t\tassertModelKeyExists(modelKey: string, operation?: string): Promise<void>;\n\t\tsetDefault(modelKey: string): Promise<{ defaultModel: string }>;\n\t\tupsertProvider(provider: string, data: PluginOfficialProviderUpsertData): Promise<PluginOfficialProviderDetail>;\n\t\t/** Removes the provider when present. Repeated removal is an idempotent no-op. */\n\t\tremoveProvider(provider: string): Promise<void>;\n\t};\n\tprojects: {\n\t\tlist(): Promise<{\n\t\t\tworkspacePath: string;\n\t\t\tprojects: PluginOfficialProjectEntry[];\n\t\t\tarchivedProjects: PluginOfficialProjectEntry[];\n\t\t}>;\n\t\tlistSessions(cwd: string): Promise<unknown[]>;\n\t\tlistRuntimeProjects(): Promise<unknown[]>;\n\t\tcreate(name: string, path?: string): Promise<PluginOfficialProjectEntry>;\n\t\topen(path: string, name?: string): Promise<PluginOfficialProjectEntry>;\n\t\trename(path: string, name: string): Promise<PluginOfficialProjectEntry>;\n\t\tarchive(path: string): Promise<void>;\n\t\tunarchive(path: string): Promise<void>;\n\t\tremove(path: string): Promise<void>;\n\t};\n\tplugins: {\n\t\tlist(): Promise<PluginOfficialPluginSummary[]>;\n\t\tget(id: string): Promise<PluginOfficialPluginSummary>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromUrl(url: string): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromPath(\n\t\t\tpath: string,\n\t\t\toptions?: {\n\t\t\t\tgrantedPermissions?: string[];\n\t\t\t\tenable?: boolean;\n\t\t\t\tsource?: \"archive\" | \"npm\";\n\t\t\t\texpectedSha256?: string;\n\t\t\t\texpectedId?: string;\n\t\t\t\texpectedVersion?: string;\n\t\t\t\tnpm?: {\n\t\t\t\t\tpackageName: string;\n\t\t\t\t\trequestedSpec: string;\n\t\t\t\t\tresolvedVersion: string;\n\t\t\t\t\tintegrity?: string;\n\t\t\t\t};\n\t\t\t},\n\t\t): Promise<PluginOfficialPluginSummary>;\n\t\tuninstall(id: string): Promise<void>;\n\t\treload(id: string): Promise<PluginOfficialPluginSummary>;\n\t\tgrantPermissions(id: string, permissions: PluginPermission[]): Promise<PluginOfficialPluginSummary>;\n\t\tstartDevWatch(id: string, projectDir: string): Promise<PluginOfficialPluginSummary>;\n\t\tstopDevWatch(id: string): Promise<void>;\n\t\tonChanged(handler: (event?: PluginOfficialPluginChangedEvent) => void): () => void;\n\t};\n\tdialog: {\n\t\tsaveCopy(sourcePath: string, options?: PluginOfficialSaveCopyOptions): Promise<string | null>;\n\t\t/**\n\t\t * 打开原生文件选择框,并把选中文件的**内容**一起返回。\n\t\t *\n\t\t * 插件的 `ctx.fs` 只能读已授权的项目根,因此「选个文件再自己去读」这条路走不通;\n\t\t * 这个接口不放宽任何目录授权,插件能看到的只有用户这次亲手选中的文件。\n\t\t * 用户取消时返回空数组。\n\t\t */\n\t\topenFiles(options?: PluginOfficialOpenFilesOptions): Promise<PluginOfficialOpenedFile[]>;\n\t};\n\tshell: {\n\t\t/**\n\t\t * 在系统文件管理器里定位并选中这个路径。\n\t\t *\n\t\t * 与 `ui.openExternal` 分工:那个只放行 http/https,用来把链接交给浏览器;\n\t\t * 这个只做「显示这个本地路径」,不能用来拉起任意协议。\n\t\t */\n\t\tshowItemInFolder(path: string): Promise<void>;\n\t};\n\tknowledge: {\n\t\tlist(): Promise<PluginOfficialKnowledgeBase[]>;\n\t\tfileStatuses(): Promise<Record<string, unknown>>;\n\t\tisProcessing(): Promise<boolean>;\n\t\tgetProcessing(): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t\tcreate(name: string): Promise<void>;\n\t\trename(name: string, newName: string): Promise<void>;\n\t\tdelete(name: string): Promise<void>;\n\t\taddFiles(kbId: string, paths: string[], move?: boolean): Promise<void>;\n\t\tdeleteEntry(kbId: string, relPath: string): Promise<void>;\n\t\tscanNow(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tretryFailed(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tsetProcessing(\n\t\t\tdata: Partial<{\n\t\t\t\tenabled: boolean;\n\t\t\t\tpollIntervalMinutes: 3 | 5 | 10 | 30;\n\t\t\t\tprocessingModelKey: string | null;\n\t\t\t\tprocessingModelReasoningLevel: string | null;\n\t\t\t\tagentConcurrency: number;\n\t\t\t\tocrConcurrency: number;\n\t\t\t}>,\n\t\t): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t};\n\tbatchTasks: {\n\t\tlistProjects(): Promise<unknown[]>;\n\t\tgetProject(projectId: string): Promise<unknown>;\n\t\tlistProjectIds(): Promise<string[]>;\n\t\tcreateProject(data: PluginOfficialBatchProjectCreateData): Promise<unknown>;\n\t\tupdateProject(projectId: string, data: PluginOfficialBatchProjectUpdateData): Promise<unknown>;\n\t\tdeleteProject(projectId: string): Promise<unknown>;\n\t\trunTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tretryTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tstopTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tdeleteTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTaskWithText(projectId: string, taskId: string, text: string): Promise<unknown>;\n\t\tdeleteTaskSession(projectId: string, taskId: string): Promise<unknown>;\n\t\tbatchDelete(projectId: string): Promise<unknown>;\n\t\tbatchStart(projectId: string): Promise<unknown>;\n\t\tbatchStop(projectId: string): Promise<unknown>;\n\t\tbatchReset(projectId: string): Promise<unknown>;\n\t\tbatchResetFailed(projectId: string, taskIds: string[]): Promise<unknown>;\n\t};\n\tscheduler: {\n\t\tlistTasks(): Promise<unknown[]>;\n\t\tgetTask(taskId: string): Promise<unknown>;\n\t\tlistTaskIds(): Promise<string[]>;\n\t\tgetHistory(taskId: string): Promise<unknown[]>;\n\t\tcreateTask(data: PluginOfficialSchedulerTaskCreateData): Promise<unknown>;\n\t\tupdateTask(taskId: string, data: PluginOfficialSchedulerTaskUpdateData): Promise<unknown>;\n\t\tdeleteTask(taskId: string): Promise<unknown>;\n\t\tsetEnabled(taskId: string, enabled: boolean): Promise<unknown>;\n\t\trunNow(taskId: string): Promise<unknown>;\n\t\tabort(taskId: string): Promise<unknown>;\n\t};\n\tappearance: {\n\t\thelp(): Promise<unknown>;\n\t\tget(): Promise<unknown>;\n\t\tset(input: {\n\t\t\tmode?: \"light\" | \"dark\" | \"auto\";\n\t\t\tthemeId?: string;\n\t\t\tcursorStyle?: \"default\" | \"stoat\";\n\t\t}): Promise<unknown>;\n\t\tsetLanguage(language: \"zh\" | \"en\"): Promise<unknown>;\n\t\tlistThemeIds(): string[];\n\t};\n\t/**\n\t * 后台会话编排。会话本体跑在主进程,创建后即使宿主停留在别的页面也会继续执行,\n\t * 因此系统插件可以据此做「多任务并发派单」类工作台(如看板)。\n\t */\n\tsessions: {\n\t\t/**\n\t\t * 在 `cwd` 下新建一个会话;不发送任何 prompt。\n\t\t *\n\t\t * 传 `modelKey`(`provider/modelId`)时写入该会话的模型设置,后续无论是插件\n\t\t * 继续 `prompt`、还是用户在对话页手动接着聊,都用这个模型;不传则跟随宿主全局默认。\n\t\t */\n\t\tcreate(input: { cwd: string; title?: string; modelKey?: string }): Promise<PluginOfficialSessionHandle>;\n\t\t/**\n\t\t * 向会话发起一轮对话。streaming 中会进入该会话的输入队列(ADR-0060)。\n\t\t *\n\t\t * `options.modelKey` 只钉住**这一轮**用哪个模型(不改会话设置);要让整个会话\n\t\t * 都用某个模型,在 `create` 时传 `modelKey`。\n\t\t */\n\t\tprompt(\n\t\t\tsessionId: string,\n\t\t\ttext: string,\n\t\t\toptions?: { modelKey?: string },\n\t\t): Promise<{ status: \"sent\" | \"queued\" | \"failed\"; error?: { message: string } }>;\n\t\t/** 中止会话当前回合。 */\n\t\tabort(sessionId: string): Promise<void>;\n\t\t/** 重命名会话(写入会话文件标题),用于把看板卡片标题同步到会话列表。 */\n\t\trename(sessionPath: string, name: string): Promise<void>;\n\t\t/** 列出某目录下的历史会话。 */\n\t\tlist(cwd: string): Promise<PluginOfficialSessionSummary[]>;\n\t\t/** 当前处于 agent loop 中的会话文件路径快照。 */\n\t\tlistRunning(): Promise<string[]>;\n\t\t/**\n\t\t * 当前有会话在跑的项目 cwd(去重)。\n\t\t *\n\t\t * 需要「这个项目忙不忙」时用它,不要拿 `listRunning()` 的路径去比对 cwd:会话文件\n\t\t * 默认落在按 cwd 编码的分片目录里,那个编码不可逆且会让不同项目撞进同一分片。\n\t\t */\n\t\tlistRunningCwds(): Promise<string[]>;\n\t\t/** 订阅运行态翻转;返回取消订阅函数。 */\n\t\tonRunningChanged(handler: (event: PluginOfficialSessionRunningEvent) => void): () => void;\n\t\t/** 把宿主导航到该会话的对话页。 */\n\t\topen(input: { cwd: string; sessionPath: string }): Promise<void>;\n\t};\n\tnavigation: {\n\t\thelp(): unknown;\n\t\tresolveOpen(input: PluginOfficialNavigationOpenInput): {\n\t\t\thashPath: string;\n\t\t\tresolved: unknown;\n\t\t};\n\t\topen(input: PluginOfficialNavigationOpenInput): Promise<unknown>;\n\t};\n}\n"]}
|
package/dist/official.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official.js","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"","sourcesContent":["export interface PluginOfficialGeneralSettings {\n\tworkspacePath: string;\n\tdefaultExecutionMode?: \"sandbox\" | \"full-access\";\n\tnotificationsEnabled: boolean;\n\tdebugMode: boolean;\n\tsandbox: unknown;\n}\n\nexport type PluginOfficialGeneralSettingsUpdate =\n\t| { operation: \"set-notifications\"; enabled: boolean }\n\t| { operation: \"set-execution-mode\"; mode: \"sandbox\" | \"full-access\" }\n\t| { operation: \"set-workspace\"; path: string };\n\nexport interface PluginOfficialExperimentalSettings {\n\tvettaCli: boolean;\n\tpromptPrediction: boolean;\n\tagentSkills: boolean;\n}\n\nexport interface PluginOfficialDownloadItem {\n\tid: string;\n\turl: string;\n\tfilename: string;\n\tpath: string;\n\ttotalBytes: number;\n\treceivedBytes: number;\n\tstatus: \"queued\" | \"downloading\" | \"paused\" | \"completed\" | \"failed\" | \"canceled\";\n\terror?: string;\n\tcreatedAt: number;\n\tcompletedAt?: number;\n\tspeedBytesPerSec?: number;\n}\n\nexport interface PluginOfficialUpdaterState {\n\tphase: \"idle\" | \"checking\" | \"available\" | \"downloading\" | \"ready\" | \"installing\" | \"error\";\n\tcurrentVersion: string;\n\tlatestVersion?: string;\n\treleaseNote?: string;\n\tprogress?: number;\n\tdownloadedBytes?: number;\n\ttotalBytes?: number;\n\tassetFileName?: string;\n\terror?: string;\n}\n\nexport type PluginOfficialWebhookKind = \"feishu\" | \"dingtalk\";\n\nexport interface PluginOfficialWebhookEndpoint {\n\tid: string;\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\tenabled: boolean;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\turlMask?: string;\n\thasSignSecret?: boolean;\n}\n\nexport interface PluginOfficialWebhookProvider {\n\tkind: PluginOfficialWebhookKind;\n\tdisplayName: string;\n\ticonClass?: string;\n}\n\nexport interface PluginOfficialWebhookCreateInput {\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\twebhookUrl: string;\n\tsignSecret?: string;\n\tenabled?: boolean;\n}\n\nexport interface PluginOfficialWebhookUpdateInput {\n\tname?: string;\n\tenabled?: boolean;\n\twebhookUrl?: string;\n\tsignSecret?: string;\n}\n\nexport interface PluginOfficialWebhookMessage {\n\ttitle?: string;\n\ttext: string;\n\tlevel?: \"info\" | \"warn\" | \"error\" | \"success\";\n}\n\nexport interface PluginOfficialWebhookSendResult {\n\tok: boolean;\n\terror?: string;\n}\n\nexport interface PluginOfficialSkillInfo {\n\tname: string;\n\talias?: string;\n\tdescription: string;\n\tsource: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport type PluginOfficialInstalledSkill = {\n\tname: string;\n\tversion: string;\n\tinstalledAt: string;\n\tsource: \"market\" | \"custom\";\n\tenabled: boolean;\n\ttype?: \"skill\" | \"scene\";\n\talias?: string;\n\tmarketDescription?: string;\n\tdescription?: string;\n};\n\nexport interface PluginOfficialShortcutBinding {\n\tid: string;\n\tdefaultShortcut: string;\n\tshortcut: string;\n\tisDefault: boolean;\n}\n\nexport interface PluginOfficialQuickPanelSettings {\n\ttrigger: \"none\" | \"mod\" | \"alt\" | \"shift\";\n\tpostSendBehavior: \"foreground\" | \"background\";\n}\n\nexport interface PluginOfficialImStatus {\n\tenabled: boolean;\n\ttransport: string;\n\tagentModel: { provider: string; model: string; reasoningLevel?: string } | null;\n\twechatBound: boolean;\n\tfeishuAppId: string | null;\n\truntime: unknown;\n}\n\nexport interface PluginOfficialImLog {\n\tlevel: string;\n\tmsg: string;\n\ttime: string;\n\tfields?: Record<string, unknown>;\n}\n\nexport interface PluginOfficialMcpServerSummary {\n\tname: string;\n\ttype: \"http\" | \"stdio\";\n\tdisabled: boolean;\n\tcommand?: string;\n\turl?: string;\n}\n\nexport interface PluginOfficialMcpServerDetail {\n\tname: string;\n\ttype?: \"http\" | \"stdio\";\n\tcommand?: string;\n\targs?: string[];\n\tenv?: Record<string, string>;\n\tcwd?: string;\n\turl?: string;\n\theaders?: Record<string, string>;\n\tdisabled?: boolean;\n\tautoApprove?: string[];\n\tstartupTimeout?: number;\n\tdebug?: boolean;\n}\n\nexport type PluginOfficialMcpUpsertData =\n\t| {\n\t\t\ttype?: \"stdio\";\n\t\t\tcommand?: string;\n\t\t\targs?: string[];\n\t\t\tenv?: Record<string, string>;\n\t\t\tcwd?: string;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t }\n\t| {\n\t\t\ttype: \"http\";\n\t\t\turl?: string;\n\t\t\theaders?: Record<string, string>;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t };\n\nexport type PluginOfficialExecutionMode = \"inherit\" | \"sandbox\" | \"full-access\";\n\nexport interface PluginOfficialSelectedSkill {\n\tname: string;\n\talias?: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport interface PluginOfficialBatchProjectCreateData {\n\tname: string;\n\tprompt: string;\n\tmodelKey?: string;\n\tfolders: string[];\n\tconcurrency: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialBatchProjectUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tmodelKey?: string;\n\tconcurrency?: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tnewFolders?: string[];\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialSchedulerTaskCreateData {\n\tname: string;\n\tprompt: string;\n\tcron: string;\n\tisOnce: boolean;\n\tenabled?: boolean;\n\tcwd: string;\n\tmodelKey?: string;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialSchedulerTaskUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tcron?: string;\n\tisOnce?: boolean;\n\tenabled?: boolean;\n\tcwd?: string;\n\tmodelKey?: string | null;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialModelSummary {\n\tid: string;\n\tname?: string;\n\tapi?: string;\n\treasoning?: boolean;\n}\n\nexport interface PluginOfficialProviderSummary {\n\tid: string;\n\tdisplayName: string;\n\tbaseUrl?: string;\n\tapi?: string;\n\thasApiKey: boolean;\n\tmodelCount: number;\n\tmodels: PluginOfficialModelSummary[];\n}\n\nexport interface PluginOfficialProviderDetail {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProviderUpsertData {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProjectEntry {\n\tpath: string;\n\tname?: string;\n}\n\nexport interface PluginOfficialPluginSummary {\n\tid: string;\n\tname: string;\n\tversion: string;\n\tenabled: boolean;\n\trequired: boolean;\n\tsource: string;\n\tpermissions: string[];\n\tdescription?: string;\n\tdevWatch?: unknown;\n}\n\nexport interface PluginOfficialKnowledgeBase {\n\tid: string;\n\tname: string;\n\tupdatedAt: number;\n\tisDefault: boolean;\n\tnodes: unknown[];\n}\n\nexport interface PluginOfficialKnowledgeProcessingSettings {\n\tenabled?: boolean;\n\tpollIntervalMinutes?: number;\n\tprocessingModelKey?: string;\n\tprocessingModelReasoningLevel?: string;\n\tagentConcurrency?: number;\n\tocrConcurrency?: number;\n}\n\n/** 仅宿主验证为官方来源的插件可以调用;普通插件调用时由宿主拒绝。 */\nexport interface PluginOfficialApi {\n\tgeneral: {\n\t\tgetSettings(): Promise<PluginOfficialGeneralSettings>;\n\t\tsetSettings(input: PluginOfficialGeneralSettingsUpdate): Promise<PluginOfficialGeneralSettingsUpdate>;\n\t};\n\tagent: {\n\t\tgetExperimental(): Promise<PluginOfficialExperimentalSettings>;\n\t\tsetExperimental(input: Partial<PluginOfficialExperimentalSettings>): Promise<PluginOfficialExperimentalSettings>;\n\t};\n\tdownloads: {\n\t\tlist(): Promise<PluginOfficialDownloadItem[]>;\n\t\tcancel(id: string): Promise<void>;\n\t};\n\tupdater: {\n\t\tgetState(): Promise<PluginOfficialUpdaterState>;\n\t\tgetCurrentVersion(): Promise<string>;\n\t\tcheck(): Promise<PluginOfficialUpdaterState>;\n\t\tdownload(): Promise<PluginOfficialUpdaterState>;\n\t\tinstall(): Promise<void>;\n\t\tdismiss(): Promise<void>;\n\t\tcancel(): Promise<void>;\n\t};\n\twebhook: {\n\t\tlist(): Promise<PluginOfficialWebhookEndpoint[]>;\n\t\tlistProviders(): Promise<PluginOfficialWebhookProvider[]>;\n\t\tcreate(input: PluginOfficialWebhookCreateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tupdate(id: string, input: PluginOfficialWebhookUpdateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialWebhookEndpoint>;\n\t\tdelete(id: string): Promise<void>;\n\t\ttest(id: string): Promise<PluginOfficialWebhookSendResult>;\n\t\tsend(id: string, message: PluginOfficialWebhookMessage): Promise<PluginOfficialWebhookSendResult>;\n\t};\n\tskills: {\n\t\tlist(cwd?: string): Promise<PluginOfficialSkillInfo[]>;\n\t\tgetManifest(): Promise<Record<string, PluginOfficialInstalledSkill>>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<{ name: string; enabled: boolean }>;\n\t\tuninstall(name: string, type?: \"skill\" | \"scene\"): Promise<void>;\n\t};\n\tshortcuts: {\n\t\tlistAvailableActions(): Array<{ id: string; defaultShortcut: string }>;\n\t\tget(): Promise<{ bindings: PluginOfficialShortcutBinding[]; quickPanel: PluginOfficialQuickPanelSettings }>;\n\t\tsetBinding(id: string, shortcut: string): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tresetBinding(id: string): Promise<{ bindings: PluginOfficialShortcutBinding[]; shortcut: string }>;\n\t\tresetAllBindings(): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tsetQuickPanelTrigger(trigger: PluginOfficialQuickPanelSettings[\"trigger\"]): Promise<PluginOfficialQuickPanelSettings>;\n\t\tsetQuickPanelBehavior(\n\t\t\tbehavior: PluginOfficialQuickPanelSettings[\"postSendBehavior\"],\n\t\t): Promise<PluginOfficialQuickPanelSettings>;\n\t};\n\tim: {\n\t\tgetStatus(): Promise<PluginOfficialImStatus>;\n\t\tgetLogs(limit?: number): Promise<PluginOfficialImLog[]>;\n\t\tsetEnabled(enabled: boolean): Promise<{ status: unknown }>;\n\t\trestart(): Promise<{ status: unknown }>;\n\t\tsetAgentModel(\n\t\t\tmodelKey: string | null,\n\t\t\treasoningLevel?: string,\n\t\t): Promise<{ status: unknown }>;\n\t\tassertModelKeyExists(modelKey: string): Promise<void>;\n\t};\n\tmcp: {\n\t\tlist(): Promise<PluginOfficialMcpServerSummary[]>;\n\t\tget(name: string): Promise<PluginOfficialMcpServerDetail>;\n\t\tlistNames(): Promise<string[]>;\n\t\tupsert(name: string, data: PluginOfficialMcpUpsertData): Promise<PluginOfficialMcpServerDetail>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<void>;\n\t\tremove(name: string): Promise<void>;\n\t};\n\tmodels: {\n\t\tlist(): Promise<{ defaultModel: string | null; providers: PluginOfficialProviderSummary[] }>;\n\t\tget(provider?: string): Promise<unknown>;\n\t\tprobe(provider: string, model: string): Promise<{ ok: boolean; message?: string; error?: string }>;\n\t\tlistProviderIds(): Promise<string[]>;\n\t\tassertModelKeyExists(modelKey: string, operation?: string): Promise<void>;\n\t\tsetDefault(modelKey: string): Promise<{ defaultModel: string }>;\n\t\tupsertProvider(provider: string, data: PluginOfficialProviderUpsertData): Promise<PluginOfficialProviderDetail>;\n\t\tremoveProvider(provider: string): Promise<void>;\n\t};\n\tprojects: {\n\t\tlist(): Promise<{\n\t\t\tworkspacePath: string;\n\t\t\tprojects: PluginOfficialProjectEntry[];\n\t\t\tarchivedProjects: PluginOfficialProjectEntry[];\n\t\t}>;\n\t\tlistSessions(cwd: string): Promise<unknown[]>;\n\t\tlistRuntimeProjects(): Promise<unknown[]>;\n\t\tcreate(name: string, path?: string): Promise<PluginOfficialProjectEntry>;\n\t\topen(path: string, name?: string): Promise<PluginOfficialProjectEntry>;\n\t\trename(path: string, name: string): Promise<PluginOfficialProjectEntry>;\n\t\tarchive(path: string): Promise<void>;\n\t\tunarchive(path: string): Promise<void>;\n\t\tremove(path: string): Promise<void>;\n\t};\n\tplugins: {\n\t\tlist(): Promise<PluginOfficialPluginSummary[]>;\n\t\tget(id: string): Promise<PluginOfficialPluginSummary>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromUrl(url: string): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromPath(\n\t\t\tpath: string,\n\t\t\toptions?: { grantedPermissions?: string[]; enable?: boolean },\n\t\t): Promise<PluginOfficialPluginSummary>;\n\t\tuninstall(id: string): Promise<void>;\n\t\treload(id: string): Promise<PluginOfficialPluginSummary>;\n\t};\n\tknowledge: {\n\t\tlist(): Promise<PluginOfficialKnowledgeBase[]>;\n\t\tfileStatuses(): Promise<Record<string, unknown>>;\n\t\tisProcessing(): Promise<boolean>;\n\t\tgetProcessing(): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t\tcreate(name: string): Promise<void>;\n\t\trename(name: string, newName: string): Promise<void>;\n\t\tdelete(name: string): Promise<void>;\n\t\taddFiles(kbId: string, paths: string[], move?: boolean): Promise<void>;\n\t\tdeleteEntry(kbId: string, relPath: string): Promise<void>;\n\t\tscanNow(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tretryFailed(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tsetProcessing(\n\t\t\tdata: Partial<{\n\t\t\t\tenabled: boolean;\n\t\t\t\tpollIntervalMinutes: 3 | 5 | 10 | 30;\n\t\t\t\tprocessingModelKey: string | null;\n\t\t\t\tprocessingModelReasoningLevel: string | null;\n\t\t\t\tagentConcurrency: number;\n\t\t\t\tocrConcurrency: number;\n\t\t\t}>,\n\t\t): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t};\n\tbatchTasks: {\n\t\tlistProjects(): Promise<unknown[]>;\n\t\tgetProject(projectId: string): Promise<unknown>;\n\t\tlistProjectIds(): Promise<string[]>;\n\t\tcreateProject(data: PluginOfficialBatchProjectCreateData): Promise<unknown>;\n\t\tupdateProject(projectId: string, data: PluginOfficialBatchProjectUpdateData): Promise<unknown>;\n\t\tdeleteProject(projectId: string): Promise<unknown>;\n\t\trunTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tretryTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tstopTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tdeleteTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTaskWithText(projectId: string, taskId: string, text: string): Promise<unknown>;\n\t\tdeleteTaskSession(projectId: string, taskId: string): Promise<unknown>;\n\t\tbatchDelete(projectId: string): Promise<unknown>;\n\t\tbatchStart(projectId: string): Promise<unknown>;\n\t\tbatchStop(projectId: string): Promise<unknown>;\n\t\tbatchReset(projectId: string): Promise<unknown>;\n\t\tbatchResetFailed(projectId: string, taskIds: string[]): Promise<unknown>;\n\t};\n\tscheduler: {\n\t\tlistTasks(): Promise<unknown[]>;\n\t\tgetTask(taskId: string): Promise<unknown>;\n\t\tlistTaskIds(): Promise<string[]>;\n\t\tgetHistory(taskId: string): Promise<unknown[]>;\n\t\tcreateTask(data: PluginOfficialSchedulerTaskCreateData): Promise<unknown>;\n\t\tupdateTask(taskId: string, data: PluginOfficialSchedulerTaskUpdateData): Promise<unknown>;\n\t\tdeleteTask(taskId: string): Promise<unknown>;\n\t\tsetEnabled(taskId: string, enabled: boolean): Promise<unknown>;\n\t\trunNow(taskId: string): Promise<unknown>;\n\t\tabort(taskId: string): Promise<unknown>;\n\t};\n\tappearance: {\n\t\thelp(): Promise<unknown>;\n\t\tget(): Promise<unknown>;\n\t\tset(input: {\n\t\t\tmode?: \"light\" | \"dark\" | \"auto\";\n\t\t\tthemeId?: string;\n\t\t\tcursorStyle?: \"default\" | \"stoat\";\n\t\t}): Promise<unknown>;\n\t\tsetLanguage(language: \"zh\" | \"en\"): Promise<unknown>;\n\t\tlistThemeIds(): string[];\n\t};\n\tnavigation: {\n\t\thelp(): unknown;\n\t\tresolveOpen(input: { target: string; tab?: string; section?: string }): {\n\t\t\thashPath: string;\n\t\t\tresolved: unknown;\n\t\t};\n\t\topen(input: { target: string; tab?: string; section?: string }): Promise<unknown>;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"official.js","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginPermission } from \"./permissions.js\";\n\nexport interface PluginOfficialGeneralSettings {\n\tworkspacePath: string;\n\tdefaultExecutionMode?: \"sandbox\" | \"full-access\";\n\tnotificationsEnabled: boolean;\n\tdebugMode: boolean;\n\tsandbox: unknown;\n}\n\nexport type PluginOfficialGeneralSettingsUpdate =\n\t| { operation: \"set-notifications\"; enabled: boolean }\n\t| { operation: \"set-execution-mode\"; mode: \"sandbox\" | \"full-access\" }\n\t| { operation: \"set-workspace\"; path: string };\n\nexport interface PluginOfficialExperimentalSettings {\n\tvettaCli: boolean;\n\tpromptPrediction: boolean;\n\tagentSkills: boolean;\n}\n\nexport interface PluginOfficialDownloadItem {\n\tid: string;\n\turl: string;\n\tfilename: string;\n\tpath: string;\n\ttotalBytes: number;\n\treceivedBytes: number;\n\tstatus: \"queued\" | \"downloading\" | \"paused\" | \"completed\" | \"failed\" | \"canceled\";\n\terror?: string;\n\tcreatedAt: number;\n\tcompletedAt?: number;\n\tspeedBytesPerSec?: number;\n}\n\nexport interface PluginOfficialUpdaterState {\n\tphase: \"idle\" | \"checking\" | \"available\" | \"downloading\" | \"ready\" | \"installing\" | \"error\";\n\tcurrentVersion: string;\n\tlatestVersion?: string;\n\treleaseNote?: string;\n\tprogress?: number;\n\tdownloadedBytes?: number;\n\ttotalBytes?: number;\n\tassetFileName?: string;\n\terror?: string;\n}\n\nexport type PluginOfficialWebhookKind = \"feishu\" | \"dingtalk\";\n\nexport interface PluginOfficialWebhookEndpoint {\n\tid: string;\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\tenabled: boolean;\n\tcreatedAt: string;\n\tupdatedAt: string;\n\turlMask?: string;\n\thasSignSecret?: boolean;\n}\n\nexport interface PluginOfficialWebhookProvider {\n\tkind: PluginOfficialWebhookKind;\n\tdisplayName: string;\n\ticonClass?: string;\n}\n\nexport interface PluginOfficialWebhookCreateInput {\n\tkind: PluginOfficialWebhookKind;\n\tname: string;\n\twebhookUrl: string;\n\tsignSecret?: string;\n\tenabled?: boolean;\n}\n\nexport interface PluginOfficialWebhookUpdateInput {\n\tname?: string;\n\tenabled?: boolean;\n\twebhookUrl?: string;\n\tsignSecret?: string;\n}\n\nexport interface PluginOfficialWebhookMessage {\n\ttitle?: string;\n\ttext: string;\n\tlevel?: \"info\" | \"warn\" | \"error\" | \"success\";\n}\n\nexport interface PluginOfficialWebhookSendResult {\n\tok: boolean;\n\terror?: string;\n}\n\nexport interface PluginOfficialSkillInfo {\n\tname: string;\n\talias?: string;\n\tdescription: string;\n\tsource: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport type PluginOfficialInstalledSkill = {\n\tname: string;\n\tversion: string;\n\tinstalledAt: string;\n\tsource: \"market\" | \"custom\";\n\tenabled: boolean;\n\ttype?: \"skill\" | \"scene\";\n\talias?: string;\n\tmarketDescription?: string;\n\tdescription?: string;\n};\n\nexport interface PluginOfficialShortcutBinding {\n\tid: string;\n\tdefaultShortcut: string;\n\tshortcut: string;\n\tisDefault: boolean;\n}\n\nexport interface PluginOfficialQuickPanelSettings {\n\ttrigger: \"none\" | \"mod\" | \"alt\" | \"shift\";\n\tpostSendBehavior: \"foreground\" | \"background\";\n}\n\nexport interface PluginOfficialImStatus {\n\tenabled: boolean;\n\ttransport: string;\n\tagentModel: { provider: string; model: string; reasoningLevel?: string } | null;\n\twechatBound: boolean;\n\tfeishuAppId: string | null;\n\truntime: unknown;\n}\n\nexport interface PluginOfficialImLog {\n\tlevel: string;\n\tmsg: string;\n\ttime: string;\n\tfields?: Record<string, unknown>;\n}\n\nexport interface PluginOfficialMcpServerSummary {\n\tname: string;\n\ttype: \"http\" | \"stdio\";\n\tdisabled: boolean;\n\tcommand?: string;\n\turl?: string;\n}\n\nexport interface PluginOfficialMcpServerDetail {\n\tname: string;\n\ttype?: \"http\" | \"stdio\";\n\tcommand?: string;\n\targs?: string[];\n\tenv?: Record<string, string>;\n\tcwd?: string;\n\turl?: string;\n\theaders?: Record<string, string>;\n\tdisabled?: boolean;\n\tautoApprove?: string[];\n\tstartupTimeout?: number;\n\tdebug?: boolean;\n}\n\nexport type PluginOfficialMcpUpsertData =\n\t| {\n\t\t\ttype?: \"stdio\";\n\t\t\tcommand?: string;\n\t\t\targs?: string[];\n\t\t\tenv?: Record<string, string>;\n\t\t\tcwd?: string;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t }\n\t| {\n\t\t\ttype: \"http\";\n\t\t\turl?: string;\n\t\t\theaders?: Record<string, string>;\n\t\t\tdisabled?: boolean;\n\t\t\tautoApprove?: string[];\n\t\t\tstartupTimeout?: number;\n\t\t\tdebug?: boolean;\n\t };\n\nexport type PluginOfficialExecutionMode = \"inherit\" | \"sandbox\" | \"full-access\";\n\nexport interface PluginOfficialSelectedSkill {\n\tname: string;\n\talias?: string;\n\ttype: \"skill\" | \"scene\";\n}\n\nexport interface PluginOfficialBatchProjectCreateData {\n\tname: string;\n\tprompt: string;\n\tmodelKey?: string;\n\tfolders: string[];\n\tconcurrency: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialBatchProjectUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tmodelKey?: string;\n\tconcurrency?: number;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tartifactPatterns?: string[];\n\tnotifyEnabled?: boolean;\n\ttimeoutMinutes?: number;\n\tnewFolders?: string[];\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialSchedulerTaskCreateData {\n\tname: string;\n\tprompt: string;\n\tcron: string;\n\tisOnce: boolean;\n\tenabled?: boolean;\n\tcwd: string;\n\tmodelKey?: string;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill;\n}\n\nexport interface PluginOfficialSchedulerTaskUpdateData {\n\tname?: string;\n\tprompt?: string;\n\tcron?: string;\n\tisOnce?: boolean;\n\tenabled?: boolean;\n\tcwd?: string;\n\tmodelKey?: string | null;\n\texecutionMode?: PluginOfficialExecutionMode;\n\tskill?: PluginOfficialSelectedSkill | null;\n}\n\nexport interface PluginOfficialModelSummary {\n\tid: string;\n\tname?: string;\n\tapi?: string;\n\treasoning?: boolean;\n}\n\nexport interface PluginOfficialProviderSummary {\n\tid: string;\n\tdisplayName: string;\n\tbaseUrl?: string;\n\tapi?: string;\n\thasApiKey: boolean;\n\t/** 图标 symbol;配合 `ProviderIcon` 解析为内置图标,无则不画图标。 */\n\ticon?: string;\n\t/**\n\t * true = 来自登录后服务端下发的远程目录(如 Vetta Go),凭据是账号登录态而非本地\n\t * API Key,因此不会出现在本地模型配置里,也不可用 `upsertProvider` / `removeProvider` 改。\n\t */\n\tremote?: boolean;\n\tmodelCount: number;\n\tmodels: PluginOfficialModelSummary[];\n}\n\nexport interface PluginOfficialProviderDetail {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProviderUpsertData {\n\tbaseUrl?: string;\n\tapiKey?: string;\n\tapi?: string;\n\tdisplayName?: string;\n\tauthHeader?: boolean;\n\theaders?: Record<string, string>;\n\tmodels?: Array<{\n\t\tid: string;\n\t\tname?: string;\n\t\tapi?: string;\n\t\treasoning?: boolean;\n\t\tcontextWindow?: number;\n\t\tmaxTokens?: number;\n\t}>;\n}\n\nexport interface PluginOfficialProjectEntry {\n\tpath: string;\n\tname?: string;\n}\n\nexport interface PluginOfficialPluginSummary {\n\tid: string;\n\tname: string;\n\tversion: string;\n\tactiveVersion: string;\n\tpendingVersion?: string;\n\tenabled: boolean;\n\trequired: boolean;\n\tsource: string;\n\tpermissions: string[];\n\tdescription?: string;\n\trootPath?: string;\n\tdevWatch?: unknown;\n}\n\nexport interface PluginOfficialPluginChangedEvent {\n\treason?: string;\n\tpluginId?: string;\n}\n\nexport interface PluginOfficialSaveCopyOptions {\n\tdefaultFileName?: string;\n\ttitle?: string;\n\tfilters?: Array<{ name: string; extensions: string[] }>;\n}\n\n/** `official.dialog.openFiles` 的选项。 */\nexport interface PluginOfficialOpenFilesOptions {\n\ttitle?: string;\n\tfilters?: Array<{ name: string; extensions: string[] }>;\n\t/** 允许多选,默认单选。 */\n\tmultiple?: boolean;\n\t/** 单个文件的字节上限,超过则抛错。默认 64MB。 */\n\tmaxBytes?: number;\n}\n\n/** 用户在文件对话框里选中的一个文件,内容随选择一起回传。 */\nexport interface PluginOfficialOpenedFile {\n\tpath: string;\n\tname: string;\n\t/** base64 编码的文件内容。 */\n\tdata: string;\n}\n\nexport interface PluginOfficialKnowledgeBase {\n\tid: string;\n\tname: string;\n\tupdatedAt: number;\n\tisDefault: boolean;\n\tnodes: unknown[];\n}\n\nexport interface PluginOfficialKnowledgeProcessingSettings {\n\tenabled?: boolean;\n\tpollIntervalMinutes?: number;\n\tprocessingModelKey?: string;\n\tprocessingModelReasoningLevel?: string;\n\tagentConcurrency?: number;\n\tocrConcurrency?: number;\n}\n\n/** 由 `official.sessions.create` 新建的后台会话句柄。 */\nexport interface PluginOfficialSessionHandle {\n\t/** 进程内 runtime id,用于 prompt / abort / subscribe。重启后失效。 */\n\tsessionId: string;\n\t/** 会话文件绝对路径,跨重启稳定,用于持久化与跳转。 */\n\tsessionPath: string;\n\t/** 实际运行目录(「对话」项目会落到 per-session 子目录,见 ADR-0007)。 */\n\tcwd?: string;\n}\n\n/** 会话运行态变化广播(按 sessionPath 标识,跨重启稳定)。 */\nexport interface PluginOfficialSessionRunningEvent {\n\tsessionPath: string;\n\trunning: boolean;\n\tsessionId?: string;\n}\n\n/**\n * 会话文件此刻允许做什么。\n *\n * 同一份会话文件可能正被另一个运行时占用、或已不可读,宿主自己点会话时就是按这几\n * 位分流的(可续聊 / 只读查看 / 完全打不开)。插件在跳转前必须先看它,否则会把用户\n * 送进一个打不开的会话,且失败发生在导航之后、很难解释。\n */\nexport interface PluginOfficialSessionAccess {\n\t/** 能否读取历史。为 false 时连只读查看都不行。 */\n\treadHistory: boolean;\n\t/** 能否在对话页续聊。 */\n\tinteractiveResume: boolean;\n\trename: boolean;\n\tdelete: boolean;\n}\n\n/** 会话历史条目(`official.sessions.list` 返回),按 `modifiedAt` 倒序。 */\nexport interface PluginOfficialSessionSummary {\n\tpath: string;\n\tcwd?: string;\n\tfirstMessage?: string;\n\tmodifiedAt?: number;\n\taccess: PluginOfficialSessionAccess;\n}\n\n/**\n * 导航目标。多数目标只要 `target`;`target: \"new-session\"` 这类带参数的目标另需\n * `cwd`(项目绝对路径),缺了会被宿主拒绝而不是跳到一个空页面。\n */\nexport interface PluginOfficialNavigationOpenInput {\n\ttarget: string;\n\ttab?: string;\n\tsection?: string;\n\t/** 仅 `target: \"new-session\"` 使用:要新建会话的项目目录。 */\n\tcwd?: string;\n\t/**\n\t * 仅 `target: \"new-session\"` 使用:预置到输入框的草稿文本,不发送,用户可继续编辑。\n\t *\n\t * 用输入框的文本形态书写行内 token(`@skill:名字` / `@mcp:名字` / `@/abs/path`),\n\t * 宿主会把它们渲染成对应的 badge。在导航发生**之前**写入该 cwd 的新会话草稿位,\n\t * 所以不会被新会话页自己的草稿恢复覆盖;该 cwd 上已有的未发送草稿会被替换。\n\t */\n\tdraft?: string;\n}\n\n/** 仅宿主验证为官方来源的插件可以调用;普通插件调用时由宿主拒绝。 */\nexport interface PluginOfficialApi {\n\tgeneral: {\n\t\tgetSettings(): Promise<PluginOfficialGeneralSettings>;\n\t\tsetSettings(input: PluginOfficialGeneralSettingsUpdate): Promise<PluginOfficialGeneralSettingsUpdate>;\n\t};\n\tagent: {\n\t\tgetExperimental(): Promise<PluginOfficialExperimentalSettings>;\n\t\tsetExperimental(input: Partial<PluginOfficialExperimentalSettings>): Promise<PluginOfficialExperimentalSettings>;\n\t};\n\tdownloads: {\n\t\tlist(): Promise<PluginOfficialDownloadItem[]>;\n\t\tcancel(id: string): Promise<void>;\n\t};\n\tupdater: {\n\t\tgetState(): Promise<PluginOfficialUpdaterState>;\n\t\tgetCurrentVersion(): Promise<string>;\n\t\tcheck(): Promise<PluginOfficialUpdaterState>;\n\t\tdownload(): Promise<PluginOfficialUpdaterState>;\n\t\tinstall(): Promise<void>;\n\t\tdismiss(): Promise<void>;\n\t\tcancel(): Promise<void>;\n\t};\n\twebhook: {\n\t\tlist(): Promise<PluginOfficialWebhookEndpoint[]>;\n\t\tlistProviders(): Promise<PluginOfficialWebhookProvider[]>;\n\t\tcreate(input: PluginOfficialWebhookCreateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tupdate(id: string, input: PluginOfficialWebhookUpdateInput): Promise<PluginOfficialWebhookEndpoint>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialWebhookEndpoint>;\n\t\tdelete(id: string): Promise<void>;\n\t\ttest(id: string): Promise<PluginOfficialWebhookSendResult>;\n\t\tsend(id: string, message: PluginOfficialWebhookMessage): Promise<PluginOfficialWebhookSendResult>;\n\t};\n\tskills: {\n\t\tlist(cwd?: string): Promise<PluginOfficialSkillInfo[]>;\n\t\tgetManifest(): Promise<Record<string, PluginOfficialInstalledSkill>>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<{ name: string; enabled: boolean }>;\n\t\tuninstall(name: string, type?: \"skill\" | \"scene\"): Promise<void>;\n\t\t/**\n\t\t * 从能力市场按 slug 安装 skill/scene(产品文案:能力)。\n\t\t * 下载在主进程完成;密钥类凭证不经过此 API。\n\t\t */\n\t\tinstallFromMarket(\n\t\t\ttype: \"skill\" | \"scene\",\n\t\t\tslug: string,\n\t\t): Promise<{ name: string; type: \"skill\" | \"scene\"; version: string; updated: boolean }>;\n\t};\n\tshortcuts: {\n\t\tlistAvailableActions(): Array<{ id: string; defaultShortcut: string }>;\n\t\tget(): Promise<{ bindings: PluginOfficialShortcutBinding[]; quickPanel: PluginOfficialQuickPanelSettings }>;\n\t\tsetBinding(id: string, shortcut: string): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tresetBinding(id: string): Promise<{ bindings: PluginOfficialShortcutBinding[]; shortcut: string }>;\n\t\tresetAllBindings(): Promise<{ bindings: PluginOfficialShortcutBinding[] }>;\n\t\tsetQuickPanelTrigger(trigger: PluginOfficialQuickPanelSettings[\"trigger\"]): Promise<PluginOfficialQuickPanelSettings>;\n\t\tsetQuickPanelBehavior(\n\t\t\tbehavior: PluginOfficialQuickPanelSettings[\"postSendBehavior\"],\n\t\t): Promise<PluginOfficialQuickPanelSettings>;\n\t};\n\tim: {\n\t\tgetStatus(): Promise<PluginOfficialImStatus>;\n\t\tgetLogs(limit?: number): Promise<PluginOfficialImLog[]>;\n\t\tsetEnabled(enabled: boolean): Promise<{ status: unknown }>;\n\t\trestart(): Promise<{ status: unknown }>;\n\t\tsetAgentModel(\n\t\t\tmodelKey: string | null,\n\t\t\treasoningLevel?: string,\n\t\t): Promise<{ status: unknown }>;\n\t\tassertModelKeyExists(modelKey: string): Promise<void>;\n\t\t/**\n\t\t * 写入飞书凭证。Agent 应省略 appSecret 等密钥,由审批弹窗让用户手填。\n\t\t * 空字符串密钥字段表示保持现有值不改。\n\t\t */\n\t\tsetFeishuConfig(input: {\n\t\t\tenabled?: boolean;\n\t\t\tappId?: string;\n\t\t\tappSecret?: string;\n\t\t\tverificationToken?: string;\n\t\t\tencryptKey?: string;\n\t\t\tbaseUrl?: string;\n\t\t}): Promise<{ ok: boolean; error?: string }>;\n\t};\n\tmcp: {\n\t\tlist(): Promise<PluginOfficialMcpServerSummary[]>;\n\t\tget(name: string): Promise<PluginOfficialMcpServerDetail>;\n\t\tlistNames(): Promise<string[]>;\n\t\tupsert(name: string, data: PluginOfficialMcpUpsertData): Promise<PluginOfficialMcpServerDetail>;\n\t\tsetEnabled(name: string, enabled: boolean): Promise<void>;\n\t\tremove(name: string): Promise<void>;\n\t};\n\tmodels: {\n\t\t/**\n\t\t * 用户当前可选的全部模型:本地配置的 provider **加上**登录后服务端下发的远程目录\n\t\t * (Vetta Go 等,`remote: true`)。同一个 `provider/modelId` 以本地为准。\n\t\t * 与宿主输入栏模型选择器同一口径。\n\t\t */\n\t\tlist(): Promise<{ defaultModel: string | null; providers: PluginOfficialProviderSummary[] }>;\n\t\tget(provider?: string): Promise<unknown>;\n\t\tprobe(provider: string, model: string): Promise<{ ok: boolean; message?: string; error?: string }>;\n\t\tlistProviderIds(): Promise<string[]>;\n\t\tassertModelKeyExists(modelKey: string, operation?: string): Promise<void>;\n\t\tsetDefault(modelKey: string): Promise<{ defaultModel: string }>;\n\t\tupsertProvider(provider: string, data: PluginOfficialProviderUpsertData): Promise<PluginOfficialProviderDetail>;\n\t\t/** Removes the provider when present. Repeated removal is an idempotent no-op. */\n\t\tremoveProvider(provider: string): Promise<void>;\n\t};\n\tprojects: {\n\t\tlist(): Promise<{\n\t\t\tworkspacePath: string;\n\t\t\tprojects: PluginOfficialProjectEntry[];\n\t\t\tarchivedProjects: PluginOfficialProjectEntry[];\n\t\t}>;\n\t\tlistSessions(cwd: string): Promise<unknown[]>;\n\t\tlistRuntimeProjects(): Promise<unknown[]>;\n\t\tcreate(name: string, path?: string): Promise<PluginOfficialProjectEntry>;\n\t\topen(path: string, name?: string): Promise<PluginOfficialProjectEntry>;\n\t\trename(path: string, name: string): Promise<PluginOfficialProjectEntry>;\n\t\tarchive(path: string): Promise<void>;\n\t\tunarchive(path: string): Promise<void>;\n\t\tremove(path: string): Promise<void>;\n\t};\n\tplugins: {\n\t\tlist(): Promise<PluginOfficialPluginSummary[]>;\n\t\tget(id: string): Promise<PluginOfficialPluginSummary>;\n\t\tsetEnabled(id: string, enabled: boolean): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromUrl(url: string): Promise<PluginOfficialPluginSummary>;\n\t\tinstallFromPath(\n\t\t\tpath: string,\n\t\t\toptions?: {\n\t\t\t\tgrantedPermissions?: string[];\n\t\t\t\tenable?: boolean;\n\t\t\t\tsource?: \"archive\" | \"npm\";\n\t\t\t\texpectedSha256?: string;\n\t\t\t\texpectedId?: string;\n\t\t\t\texpectedVersion?: string;\n\t\t\t\tnpm?: {\n\t\t\t\t\tpackageName: string;\n\t\t\t\t\trequestedSpec: string;\n\t\t\t\t\tresolvedVersion: string;\n\t\t\t\t\tintegrity?: string;\n\t\t\t\t};\n\t\t\t},\n\t\t): Promise<PluginOfficialPluginSummary>;\n\t\tuninstall(id: string): Promise<void>;\n\t\treload(id: string): Promise<PluginOfficialPluginSummary>;\n\t\tgrantPermissions(id: string, permissions: PluginPermission[]): Promise<PluginOfficialPluginSummary>;\n\t\tstartDevWatch(id: string, projectDir: string): Promise<PluginOfficialPluginSummary>;\n\t\tstopDevWatch(id: string): Promise<void>;\n\t\tonChanged(handler: (event?: PluginOfficialPluginChangedEvent) => void): () => void;\n\t};\n\tdialog: {\n\t\tsaveCopy(sourcePath: string, options?: PluginOfficialSaveCopyOptions): Promise<string | null>;\n\t\t/**\n\t\t * 打开原生文件选择框,并把选中文件的**内容**一起返回。\n\t\t *\n\t\t * 插件的 `ctx.fs` 只能读已授权的项目根,因此「选个文件再自己去读」这条路走不通;\n\t\t * 这个接口不放宽任何目录授权,插件能看到的只有用户这次亲手选中的文件。\n\t\t * 用户取消时返回空数组。\n\t\t */\n\t\topenFiles(options?: PluginOfficialOpenFilesOptions): Promise<PluginOfficialOpenedFile[]>;\n\t};\n\tshell: {\n\t\t/**\n\t\t * 在系统文件管理器里定位并选中这个路径。\n\t\t *\n\t\t * 与 `ui.openExternal` 分工:那个只放行 http/https,用来把链接交给浏览器;\n\t\t * 这个只做「显示这个本地路径」,不能用来拉起任意协议。\n\t\t */\n\t\tshowItemInFolder(path: string): Promise<void>;\n\t};\n\tknowledge: {\n\t\tlist(): Promise<PluginOfficialKnowledgeBase[]>;\n\t\tfileStatuses(): Promise<Record<string, unknown>>;\n\t\tisProcessing(): Promise<boolean>;\n\t\tgetProcessing(): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t\tcreate(name: string): Promise<void>;\n\t\trename(name: string, newName: string): Promise<void>;\n\t\tdelete(name: string): Promise<void>;\n\t\taddFiles(kbId: string, paths: string[], move?: boolean): Promise<void>;\n\t\tdeleteEntry(kbId: string, relPath: string): Promise<void>;\n\t\tscanNow(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tretryFailed(): Promise<{ skipped: boolean; reason?: string }>;\n\t\tsetProcessing(\n\t\t\tdata: Partial<{\n\t\t\t\tenabled: boolean;\n\t\t\t\tpollIntervalMinutes: 3 | 5 | 10 | 30;\n\t\t\t\tprocessingModelKey: string | null;\n\t\t\t\tprocessingModelReasoningLevel: string | null;\n\t\t\t\tagentConcurrency: number;\n\t\t\t\tocrConcurrency: number;\n\t\t\t}>,\n\t\t): Promise<PluginOfficialKnowledgeProcessingSettings>;\n\t};\n\tbatchTasks: {\n\t\tlistProjects(): Promise<unknown[]>;\n\t\tgetProject(projectId: string): Promise<unknown>;\n\t\tlistProjectIds(): Promise<string[]>;\n\t\tcreateProject(data: PluginOfficialBatchProjectCreateData): Promise<unknown>;\n\t\tupdateProject(projectId: string, data: PluginOfficialBatchProjectUpdateData): Promise<unknown>;\n\t\tdeleteProject(projectId: string): Promise<unknown>;\n\t\trunTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tretryTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tstopTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tdeleteTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTask(projectId: string, taskId: string): Promise<unknown>;\n\t\tresumeTaskWithText(projectId: string, taskId: string, text: string): Promise<unknown>;\n\t\tdeleteTaskSession(projectId: string, taskId: string): Promise<unknown>;\n\t\tbatchDelete(projectId: string): Promise<unknown>;\n\t\tbatchStart(projectId: string): Promise<unknown>;\n\t\tbatchStop(projectId: string): Promise<unknown>;\n\t\tbatchReset(projectId: string): Promise<unknown>;\n\t\tbatchResetFailed(projectId: string, taskIds: string[]): Promise<unknown>;\n\t};\n\tscheduler: {\n\t\tlistTasks(): Promise<unknown[]>;\n\t\tgetTask(taskId: string): Promise<unknown>;\n\t\tlistTaskIds(): Promise<string[]>;\n\t\tgetHistory(taskId: string): Promise<unknown[]>;\n\t\tcreateTask(data: PluginOfficialSchedulerTaskCreateData): Promise<unknown>;\n\t\tupdateTask(taskId: string, data: PluginOfficialSchedulerTaskUpdateData): Promise<unknown>;\n\t\tdeleteTask(taskId: string): Promise<unknown>;\n\t\tsetEnabled(taskId: string, enabled: boolean): Promise<unknown>;\n\t\trunNow(taskId: string): Promise<unknown>;\n\t\tabort(taskId: string): Promise<unknown>;\n\t};\n\tappearance: {\n\t\thelp(): Promise<unknown>;\n\t\tget(): Promise<unknown>;\n\t\tset(input: {\n\t\t\tmode?: \"light\" | \"dark\" | \"auto\";\n\t\t\tthemeId?: string;\n\t\t\tcursorStyle?: \"default\" | \"stoat\";\n\t\t}): Promise<unknown>;\n\t\tsetLanguage(language: \"zh\" | \"en\"): Promise<unknown>;\n\t\tlistThemeIds(): string[];\n\t};\n\t/**\n\t * 后台会话编排。会话本体跑在主进程,创建后即使宿主停留在别的页面也会继续执行,\n\t * 因此系统插件可以据此做「多任务并发派单」类工作台(如看板)。\n\t */\n\tsessions: {\n\t\t/**\n\t\t * 在 `cwd` 下新建一个会话;不发送任何 prompt。\n\t\t *\n\t\t * 传 `modelKey`(`provider/modelId`)时写入该会话的模型设置,后续无论是插件\n\t\t * 继续 `prompt`、还是用户在对话页手动接着聊,都用这个模型;不传则跟随宿主全局默认。\n\t\t */\n\t\tcreate(input: { cwd: string; title?: string; modelKey?: string }): Promise<PluginOfficialSessionHandle>;\n\t\t/**\n\t\t * 向会话发起一轮对话。streaming 中会进入该会话的输入队列(ADR-0060)。\n\t\t *\n\t\t * `options.modelKey` 只钉住**这一轮**用哪个模型(不改会话设置);要让整个会话\n\t\t * 都用某个模型,在 `create` 时传 `modelKey`。\n\t\t */\n\t\tprompt(\n\t\t\tsessionId: string,\n\t\t\ttext: string,\n\t\t\toptions?: { modelKey?: string },\n\t\t): Promise<{ status: \"sent\" | \"queued\" | \"failed\"; error?: { message: string } }>;\n\t\t/** 中止会话当前回合。 */\n\t\tabort(sessionId: string): Promise<void>;\n\t\t/** 重命名会话(写入会话文件标题),用于把看板卡片标题同步到会话列表。 */\n\t\trename(sessionPath: string, name: string): Promise<void>;\n\t\t/** 列出某目录下的历史会话。 */\n\t\tlist(cwd: string): Promise<PluginOfficialSessionSummary[]>;\n\t\t/** 当前处于 agent loop 中的会话文件路径快照。 */\n\t\tlistRunning(): Promise<string[]>;\n\t\t/**\n\t\t * 当前有会话在跑的项目 cwd(去重)。\n\t\t *\n\t\t * 需要「这个项目忙不忙」时用它,不要拿 `listRunning()` 的路径去比对 cwd:会话文件\n\t\t * 默认落在按 cwd 编码的分片目录里,那个编码不可逆且会让不同项目撞进同一分片。\n\t\t */\n\t\tlistRunningCwds(): Promise<string[]>;\n\t\t/** 订阅运行态翻转;返回取消订阅函数。 */\n\t\tonRunningChanged(handler: (event: PluginOfficialSessionRunningEvent) => void): () => void;\n\t\t/** 把宿主导航到该会话的对话页。 */\n\t\topen(input: { cwd: string; sessionPath: string }): Promise<void>;\n\t};\n\tnavigation: {\n\t\thelp(): unknown;\n\t\tresolveOpen(input: PluginOfficialNavigationOpenInput): {\n\t\t\thashPath: string;\n\t\t\tresolved: unknown;\n\t\t};\n\t\topen(input: PluginOfficialNavigationOpenInput): Promise<unknown>;\n\t};\n}\n"]}
|
package/dist/permissions.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const PLUGIN_PERMISSIONS: readonly ["ui.slot.global", "ui.slot.ability-detail", "ui.slot.file-preview", "ui.slot.activity-tab", "ui.slot.input-action", "ui.slot.message", "ui.slot.tool-call", "ui.slot.turn-card", "ui.slot.workspace-view", "ui.slot.new-session-context", "ui.shortcuts.register", "conversation.draft.read", "ui.file-explorer.decorations", "ui.file-explorer.context-menu", "ui.file-explorer.toolbar", "workspace.read", "agent.session.read", "agent.session.write", "agent.command.run", "agent.command.spawn", "capture.offscreen", "browser.read", "browser.open", "browser.interact", "browser.profile.persist", "browser.attach", "browser.runtime.manage", "agent.systemPrompt.read", "agent.systemPrompt.write", "agent.systemPrompt.fullControl", "agent.skills.control", "agent.mcp.control", "agent.tools.control", "agent.tools.register", "agent.toolHandler.execute", "agent.hooks.register", "agent.hookHandler.execute", "agent.state.read", "agent.state.write", "agent.continuation.register", "agent.runtime.configure", "app.actions.register", "app.actionHandler.execute", "ai.models.list", "ai.complete", "models.manage", "fs.read", "fs.write", "network.fetch", "storage.read", "storage.write", "media.generate", "media.provider.register", "ai.ocr.recognize", "ai.ocr.provider.register", "settings.read", "settings.write", "secrets.read", "secrets.write", "shell.openExternal"];
|
|
2
|
+
export type PluginPermission = (typeof PLUGIN_PERMISSIONS)[number];
|
|
2
3
|
//# sourceMappingURL=permissions.d.ts.map
|