@vetta-org/plugin-sdk 0.0.4 → 0.1.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.
Files changed (48) hide show
  1. package/dist/agent.d.ts +5 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js.map +1 -1
  4. package/dist/context.d.ts +4 -2
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/context.js.map +1 -1
  7. package/dist/conversation.d.ts +7 -1
  8. package/dist/conversation.d.ts.map +1 -1
  9. package/dist/conversation.js.map +1 -1
  10. package/dist/fs.d.ts +9 -0
  11. package/dist/fs.d.ts.map +1 -1
  12. package/dist/fs.js.map +1 -1
  13. package/dist/hooks.d.ts +4 -6
  14. package/dist/hooks.d.ts.map +1 -1
  15. package/dist/hooks.js +4 -6
  16. package/dist/hooks.js.map +1 -1
  17. package/dist/host-bridge.d.ts +2 -2
  18. package/dist/host-bridge.d.ts.map +1 -1
  19. package/dist/host-bridge.js.map +1 -1
  20. package/dist/images.d.ts +0 -41
  21. package/dist/images.d.ts.map +1 -1
  22. package/dist/images.js.map +1 -1
  23. package/dist/index.d.ts +7 -4
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/network.d.ts +38 -0
  28. package/dist/network.d.ts.map +1 -0
  29. package/dist/network.js +2 -0
  30. package/dist/network.js.map +1 -0
  31. package/dist/official.d.ts +0 -1
  32. package/dist/official.d.ts.map +1 -1
  33. package/dist/official.js.map +1 -1
  34. package/dist/permissions.d.ts +1 -1
  35. package/dist/permissions.d.ts.map +1 -1
  36. package/dist/permissions.js.map +1 -1
  37. package/dist/prompt-attachment.d.ts +15 -0
  38. package/dist/prompt-attachment.d.ts.map +1 -0
  39. package/dist/prompt-attachment.js +2 -0
  40. package/dist/prompt-attachment.js.map +1 -0
  41. package/dist/storage.d.ts +31 -0
  42. package/dist/storage.d.ts.map +1 -0
  43. package/dist/storage.js +2 -0
  44. package/dist/storage.js.map +1 -0
  45. package/dist/ui.d.ts +39 -9
  46. package/dist/ui.d.ts.map +1 -1
  47. package/dist/ui.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,38 @@
1
+ export type PluginNetworkBody = {
2
+ type: "json";
3
+ value: unknown;
4
+ } | {
5
+ type: "multipart";
6
+ fields?: Record<string, string>;
7
+ files?: Array<{
8
+ fieldName: string;
9
+ fileName: string;
10
+ mimeType: string;
11
+ data: string;
12
+ }>;
13
+ };
14
+ export interface PluginNetworkRequest {
15
+ url: string;
16
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
17
+ headers?: Record<string, string>;
18
+ body?: PluginNetworkBody;
19
+ responseType?: "json" | "text" | "base64";
20
+ timeoutMs?: number;
21
+ }
22
+ export interface PluginNetworkResponse<T = unknown> {
23
+ ok: boolean;
24
+ status: number;
25
+ statusText: string;
26
+ headers: Record<string, string>;
27
+ body: T;
28
+ }
29
+ /**
30
+ * Host-mediated network access for trusted plugins.
31
+ *
32
+ * Requests run in the main process so plugins do not depend on renderer CORS
33
+ * behavior. Access requires the `network.fetch` permission.
34
+ */
35
+ export interface PluginNetworkApi {
36
+ request<T = unknown>(request: PluginNetworkRequest): Promise<PluginNetworkResponse<T>>;
37
+ }
38
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAC1B;IACA,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CACd,GACD;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;CACF,CAAC;AAEL,MAAM,WAAW,oBAAoB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IACjD,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;CACR;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;CACvF","sourcesContent":["export type PluginNetworkBody =\n\t| {\n\t\t\ttype: \"json\";\n\t\t\tvalue: unknown;\n\t }\n\t| {\n\t\t\ttype: \"multipart\";\n\t\t\tfields?: Record<string, string>;\n\t\t\tfiles?: Array<{\n\t\t\t\tfieldName: string;\n\t\t\t\tfileName: string;\n\t\t\t\tmimeType: string;\n\t\t\t\tdata: string;\n\t\t\t}>;\n\t };\n\nexport interface PluginNetworkRequest {\n\turl: string;\n\tmethod?: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\theaders?: Record<string, string>;\n\tbody?: PluginNetworkBody;\n\tresponseType?: \"json\" | \"text\" | \"base64\";\n\ttimeoutMs?: number;\n}\n\nexport interface PluginNetworkResponse<T = unknown> {\n\tok: boolean;\n\tstatus: number;\n\tstatusText: string;\n\theaders: Record<string, string>;\n\tbody: T;\n}\n\n/**\n * Host-mediated network access for trusted plugins.\n *\n * Requests run in the main process so plugins do not depend on renderer CORS\n * behavior. Access requires the `network.fetch` permission.\n */\nexport interface PluginNetworkApi {\n\trequest<T = unknown>(request: PluginNetworkRequest): Promise<PluginNetworkResponse<T>>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"","sourcesContent":["export type PluginNetworkBody =\n\t| {\n\t\t\ttype: \"json\";\n\t\t\tvalue: unknown;\n\t }\n\t| {\n\t\t\ttype: \"multipart\";\n\t\t\tfields?: Record<string, string>;\n\t\t\tfiles?: Array<{\n\t\t\t\tfieldName: string;\n\t\t\t\tfileName: string;\n\t\t\t\tmimeType: string;\n\t\t\t\tdata: string;\n\t\t\t}>;\n\t };\n\nexport interface PluginNetworkRequest {\n\turl: string;\n\tmethod?: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\theaders?: Record<string, string>;\n\tbody?: PluginNetworkBody;\n\tresponseType?: \"json\" | \"text\" | \"base64\";\n\ttimeoutMs?: number;\n}\n\nexport interface PluginNetworkResponse<T = unknown> {\n\tok: boolean;\n\tstatus: number;\n\tstatusText: string;\n\theaders: Record<string, string>;\n\tbody: T;\n}\n\n/**\n * Host-mediated network access for trusted plugins.\n *\n * Requests run in the main process so plugins do not depend on renderer CORS\n * behavior. Access requires the `network.fetch` permission.\n */\nexport interface PluginNetworkApi {\n\trequest<T = unknown>(request: PluginNetworkRequest): Promise<PluginNetworkResponse<T>>;\n}\n"]}
@@ -43,7 +43,6 @@ export interface PluginOfficialUpdaterState {
43
43
  totalBytes?: number;
44
44
  assetFileName?: string;
45
45
  error?: string;
46
- pendingInstall: boolean;
47
46
  }
48
47
  export type PluginOfficialWebhookKind = "feishu" | "dingtalk";
49
48
  export interface PluginOfficialWebhookEndpoint {
@@ -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\tpendingInstall: boolean;\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":["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 +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\tpendingInstall: boolean;\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":["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,2 +1,2 @@
1
- export type PluginPermission = "ui.slot.global" | "ui.slot.file-preview" | "ui.slot.activity-tab" | "ui.slot.input-action" | "ui.slot.message" | "ui.slot.tool-call" | "ui.slot.turn-card" | "agent.session.read" | "agent.session.write" | "agent.command.run" | "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.state.read" | "agent.state.write" | "agent.continuation.register" | "agent.runtime.configure" | "app.actions.register" | "app.actionHandler.execute" | "fs.read" | "fs.write" | "network.fetch" | "images.generate" | "settings.read" | "settings.write";
1
+ export type PluginPermission = "ui.slot.global" | "ui.slot.file-preview" | "ui.slot.activity-tab" | "ui.slot.input-action" | "ui.slot.message" | "ui.slot.tool-call" | "ui.slot.turn-card" | "agent.session.read" | "agent.session.write" | "agent.command.run" | "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.state.read" | "agent.state.write" | "agent.continuation.register" | "agent.runtime.configure" | "app.actions.register" | "app.actionHandler.execute" | "fs.read" | "fs.write" | "network.fetch" | "storage.read" | "storage.write" | "settings.read" | "settings.write";
2
2
  //# sourceMappingURL=permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACzB,gBAAgB,GAChB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,yBAAyB,GACzB,0BAA0B,GAC1B,gCAAgC,GAChC,sBAAsB,GACtB,mBAAmB,GACnB,qBAAqB,GACrB,sBAAsB,GACtB,2BAA2B,GAC3B,kBAAkB,GAClB,mBAAmB,GACnB,6BAA6B,GAC7B,yBAAyB,GACzB,sBAAsB,GACtB,2BAA2B,GAC3B,SAAS,GACT,UAAU,GACV,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,gBAAgB,CAAC","sourcesContent":["export type PluginPermission =\n\t| \"ui.slot.global\"\n\t| \"ui.slot.file-preview\"\n\t| \"ui.slot.activity-tab\"\n\t| \"ui.slot.input-action\"\n\t| \"ui.slot.message\"\n\t| \"ui.slot.tool-call\"\n\t| \"ui.slot.turn-card\"\n\t| \"agent.session.read\"\n\t| \"agent.session.write\"\n\t| \"agent.command.run\"\n\t| \"agent.systemPrompt.read\"\n\t| \"agent.systemPrompt.write\"\n\t| \"agent.systemPrompt.fullControl\"\n\t| \"agent.skills.control\"\n\t| \"agent.mcp.control\"\n\t| \"agent.tools.control\"\n\t| \"agent.tools.register\"\n\t| \"agent.toolHandler.execute\"\n\t| \"agent.state.read\"\n\t| \"agent.state.write\"\n\t| \"agent.continuation.register\"\n\t| \"agent.runtime.configure\"\n\t| \"app.actions.register\"\n\t| \"app.actionHandler.execute\"\n\t| \"fs.read\"\n\t| \"fs.write\"\n\t| \"network.fetch\"\n\t| \"images.generate\"\n\t| \"settings.read\"\n\t| \"settings.write\";\n"]}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACzB,gBAAgB,GAChB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,yBAAyB,GACzB,0BAA0B,GAC1B,gCAAgC,GAChC,sBAAsB,GACtB,mBAAmB,GACnB,qBAAqB,GACrB,sBAAsB,GACtB,2BAA2B,GAC3B,kBAAkB,GAClB,mBAAmB,GACnB,6BAA6B,GAC7B,yBAAyB,GACzB,sBAAsB,GACtB,2BAA2B,GAC3B,SAAS,GACT,UAAU,GACV,eAAe,GACf,cAAc,GACd,eAAe,GACf,eAAe,GACf,gBAAgB,CAAC","sourcesContent":["export type PluginPermission =\n\t| \"ui.slot.global\"\n\t| \"ui.slot.file-preview\"\n\t| \"ui.slot.activity-tab\"\n\t| \"ui.slot.input-action\"\n\t| \"ui.slot.message\"\n\t| \"ui.slot.tool-call\"\n\t| \"ui.slot.turn-card\"\n\t| \"agent.session.read\"\n\t| \"agent.session.write\"\n\t| \"agent.command.run\"\n\t| \"agent.systemPrompt.read\"\n\t| \"agent.systemPrompt.write\"\n\t| \"agent.systemPrompt.fullControl\"\n\t| \"agent.skills.control\"\n\t| \"agent.mcp.control\"\n\t| \"agent.tools.control\"\n\t| \"agent.tools.register\"\n\t| \"agent.toolHandler.execute\"\n\t| \"agent.state.read\"\n\t| \"agent.state.write\"\n\t| \"agent.continuation.register\"\n\t| \"agent.runtime.configure\"\n\t| \"app.actions.register\"\n\t| \"app.actionHandler.execute\"\n\t| \"fs.read\"\n\t| \"fs.write\"\n\t| \"network.fetch\"\n\t| \"storage.read\"\n\t| \"storage.write\"\n\t| \"settings.read\"\n\t| \"settings.write\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"","sourcesContent":["export type PluginPermission =\n\t| \"ui.slot.global\"\n\t| \"ui.slot.file-preview\"\n\t| \"ui.slot.activity-tab\"\n\t| \"ui.slot.input-action\"\n\t| \"ui.slot.message\"\n\t| \"ui.slot.tool-call\"\n\t| \"ui.slot.turn-card\"\n\t| \"agent.session.read\"\n\t| \"agent.session.write\"\n\t| \"agent.command.run\"\n\t| \"agent.systemPrompt.read\"\n\t| \"agent.systemPrompt.write\"\n\t| \"agent.systemPrompt.fullControl\"\n\t| \"agent.skills.control\"\n\t| \"agent.mcp.control\"\n\t| \"agent.tools.control\"\n\t| \"agent.tools.register\"\n\t| \"agent.toolHandler.execute\"\n\t| \"agent.state.read\"\n\t| \"agent.state.write\"\n\t| \"agent.continuation.register\"\n\t| \"agent.runtime.configure\"\n\t| \"app.actions.register\"\n\t| \"app.actionHandler.execute\"\n\t| \"fs.read\"\n\t| \"fs.write\"\n\t| \"network.fetch\"\n\t| \"images.generate\"\n\t| \"settings.read\"\n\t| \"settings.write\";\n"]}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"","sourcesContent":["export type PluginPermission =\n\t| \"ui.slot.global\"\n\t| \"ui.slot.file-preview\"\n\t| \"ui.slot.activity-tab\"\n\t| \"ui.slot.input-action\"\n\t| \"ui.slot.message\"\n\t| \"ui.slot.tool-call\"\n\t| \"ui.slot.turn-card\"\n\t| \"agent.session.read\"\n\t| \"agent.session.write\"\n\t| \"agent.command.run\"\n\t| \"agent.systemPrompt.read\"\n\t| \"agent.systemPrompt.write\"\n\t| \"agent.systemPrompt.fullControl\"\n\t| \"agent.skills.control\"\n\t| \"agent.mcp.control\"\n\t| \"agent.tools.control\"\n\t| \"agent.tools.register\"\n\t| \"agent.toolHandler.execute\"\n\t| \"agent.state.read\"\n\t| \"agent.state.write\"\n\t| \"agent.continuation.register\"\n\t| \"agent.runtime.configure\"\n\t| \"app.actions.register\"\n\t| \"app.actionHandler.execute\"\n\t| \"fs.read\"\n\t| \"fs.write\"\n\t| \"network.fetch\"\n\t| \"storage.read\"\n\t| \"storage.write\"\n\t| \"settings.read\"\n\t| \"settings.write\";\n"]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * One-shot plugin-owned context attached to the next outgoing prompt.
3
+ *
4
+ * The host renders only the label/icon, merges metadata and hidden instructions
5
+ * at send time, then clears the attachment. Domain payloads stay in plugin
6
+ * storage or out-of-band references.
7
+ */
8
+ export interface PluginPromptAttachment {
9
+ id: string;
10
+ label: string;
11
+ icon?: string;
12
+ instructions?: string[];
13
+ metadata?: Record<string, unknown>;
14
+ }
15
+ //# sourceMappingURL=prompt-attachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-attachment.d.ts","sourceRoot":"","sources":["../src/prompt-attachment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC","sourcesContent":["/**\n * One-shot plugin-owned context attached to the next outgoing prompt.\n *\n * The host renders only the label/icon, merges metadata and hidden instructions\n * at send time, then clears the attachment. Domain payloads stay in plugin\n * storage or out-of-band references.\n */\nexport interface PluginPromptAttachment {\n\tid: string;\n\tlabel: string;\n\ticon?: string;\n\tinstructions?: string[];\n\tmetadata?: Record<string, unknown>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prompt-attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-attachment.js","sourceRoot":"","sources":["../src/prompt-attachment.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * One-shot plugin-owned context attached to the next outgoing prompt.\n *\n * The host renders only the label/icon, merges metadata and hidden instructions\n * at send time, then clears the attachment. Domain payloads stay in plugin\n * storage or out-of-band references.\n */\nexport interface PluginPromptAttachment {\n\tid: string;\n\tlabel: string;\n\ticon?: string;\n\tinstructions?: string[];\n\tmetadata?: Record<string, unknown>;\n}\n"]}
@@ -0,0 +1,31 @@
1
+ export interface PluginStoredBlobRef {
2
+ id: string;
3
+ url: string;
4
+ mimeType: string;
5
+ }
6
+ export interface PluginStoredBlob {
7
+ data: string;
8
+ mimeType: string;
9
+ }
10
+ export interface PluginPutBlobInput {
11
+ id?: string;
12
+ data: string;
13
+ mimeType: string;
14
+ }
15
+ /**
16
+ * Private persistent storage scoped to the current plugin.
17
+ *
18
+ * JSON keys and file paths are relative to the plugin namespace. Blob bytes are
19
+ * base64 encoded at the bridge boundary and exposed through a host media URL.
20
+ */
21
+ export interface PluginStorageApi {
22
+ readJson<T>(key: string): Promise<T | null>;
23
+ writeJson(key: string, value: unknown): Promise<void>;
24
+ list(prefix?: string): Promise<string[]>;
25
+ readFile(path: string): Promise<string | null>;
26
+ writeFile(path: string, data: string): Promise<void>;
27
+ putBlob(input: PluginPutBlobInput): Promise<PluginStoredBlobRef>;
28
+ readBlob(id: string): Promise<PluginStoredBlob | null>;
29
+ getBlobRef(id: string): Promise<PluginStoredBlobRef | null>;
30
+ }
31
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CAC5D","sourcesContent":["export interface PluginStoredBlobRef {\n\tid: string;\n\turl: string;\n\tmimeType: string;\n}\n\nexport interface PluginStoredBlob {\n\tdata: string;\n\tmimeType: string;\n}\n\nexport interface PluginPutBlobInput {\n\tid?: string;\n\tdata: string;\n\tmimeType: string;\n}\n\n/**\n * Private persistent storage scoped to the current plugin.\n *\n * JSON keys and file paths are relative to the plugin namespace. Blob bytes are\n * base64 encoded at the bridge boundary and exposed through a host media URL.\n */\nexport interface PluginStorageApi {\n\treadJson<T>(key: string): Promise<T | null>;\n\twriteJson(key: string, value: unknown): Promise<void>;\n\tlist(prefix?: string): Promise<string[]>;\n\treadFile(path: string): Promise<string | null>;\n\twriteFile(path: string, data: string): Promise<void>;\n\tputBlob(input: PluginPutBlobInput): Promise<PluginStoredBlobRef>;\n\treadBlob(id: string): Promise<PluginStoredBlob | null>;\n\tgetBlobRef(id: string): Promise<PluginStoredBlobRef | null>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"","sourcesContent":["export interface PluginStoredBlobRef {\n\tid: string;\n\turl: string;\n\tmimeType: string;\n}\n\nexport interface PluginStoredBlob {\n\tdata: string;\n\tmimeType: string;\n}\n\nexport interface PluginPutBlobInput {\n\tid?: string;\n\tdata: string;\n\tmimeType: string;\n}\n\n/**\n * Private persistent storage scoped to the current plugin.\n *\n * JSON keys and file paths are relative to the plugin namespace. Blob bytes are\n * base64 encoded at the bridge boundary and exposed through a host media URL.\n */\nexport interface PluginStorageApi {\n\treadJson<T>(key: string): Promise<T | null>;\n\twriteJson(key: string, value: unknown): Promise<void>;\n\tlist(prefix?: string): Promise<string[]>;\n\treadFile(path: string): Promise<string | null>;\n\twriteFile(path: string, data: string): Promise<void>;\n\tputBlob(input: PluginPutBlobInput): Promise<PluginStoredBlobRef>;\n\treadBlob(id: string): Promise<PluginStoredBlob | null>;\n\tgetBlobRef(id: string): Promise<PluginStoredBlobRef | null>;\n}\n"]}
package/dist/ui.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { ComponentType, ReactNode } from "react";
2
2
  import type { ConversationMessage } from "./conversation.js";
3
3
  import type { Disposable } from "./disposable.js";
4
4
  import type { PluginImageRef } from "./images.js";
5
+ import type { PluginPromptAttachment } from "./prompt-attachment.js";
5
6
  import type { ConversationScenario } from "./scenario.js";
6
7
  export interface PluginGlobalSlotContribution {
7
8
  id: string;
@@ -73,6 +74,13 @@ export interface PluginActivityTabContribution {
73
74
  * `["project", "conversation"]`)。会话页插槽据此随对话类型显隐。
74
75
  */
75
76
  scope_use?: readonly ConversationScenario[];
77
+ /**
78
+ * 注册后是否默认在标签栏里(缺省 `true`)。声明 `false` 表示「出现条件由我
79
+ * 自己决定」——注册只是入池,之后由 {@link PluginUiApi.setActivityTabVisible}
80
+ * 或 {@link PluginUiApi.openActivityTab} 决定何时上栏(如 git 只在仓库目录、
81
+ * 工作台跟随输入栏 toggle)。无论哪种,用户仍可用减号手动隐藏。
82
+ */
83
+ initiallyVisible?: boolean;
76
84
  }
77
85
  /** Options for {@link PluginUiApi.openActivityTab}. */
78
86
  export interface PluginOpenActivityTabOptions {
@@ -83,13 +91,21 @@ export interface PluginOpenActivityTabOptions {
83
91
  */
84
92
  width?: number | "max";
85
93
  }
94
+ export interface PluginCaptureRegion {
95
+ x: number;
96
+ y: number;
97
+ width: number;
98
+ height: number;
99
+ }
86
100
  /**
87
101
  * Decoration a plugin contributes to the next outgoing prompt while its input
88
- * action is active. `metadata` is shallow-merged into the prompt request's
89
- * `metadata` bag, which the agent turn can read (e.g. `{ imageMode: true }`).
102
+ * action is active. `metadata` is shallow-merged into the prompt request and
103
+ * `instructions` are appended as hidden, model-visible guidance.
90
104
  */
91
105
  export interface PluginPromptDecoration {
92
106
  metadata?: Record<string, unknown>;
107
+ /** Hidden plugin-owned instructions appended to the next agent turn. */
108
+ instructions?: string[];
93
109
  }
94
110
  /**
95
111
  * An action button shown in a row beneath the AI input bar. Rendered as a
@@ -303,14 +319,22 @@ export interface PluginUiApi {
303
319
  */
304
320
  openActivityTab(tabId: string, options?: PluginOpenActivityTabOptions): void;
305
321
  /**
306
- * Bind (or clear, with `null`) an image as the "edit target" for the next
307
- * outgoing prompt. The host renders it as a thumbnail capsule in the AI input
308
- * bar's top capsule strip and, at send time, injects `metadata.editImageId`
309
- * (the ref's id) so this turn edits that image. One-shot: cleared after the
310
- * prompt is sent (or when the user closes the capsule). Only the image
311
- * reference (id/url) crosses over — bytes stay out-of-band.
322
+ * 把本插件的某个活动面板标签卡在当前会话里上栏 / 下栏,**不激活也不展开
323
+ * 面板**——`openActivityTab` 是「用户此刻要看它」,这个是「它现在该不该在
324
+ * 栏里」。配合 `initiallyVisible: false` 使用,插件即可完全掌握自己标签卡的
325
+ * 出现条件(如 git 只在仓库目录里上栏、工作台跟随输入栏 toggle)。
326
+ *
327
+ * 上栏记录按会话 cwd 持久化(ADR-0026),所以只需在条件变化时调用一次;
328
+ * 用户随后用减号手动隐藏的结果不会被重复调用覆盖。当前没有活动会话时为
329
+ * no-op(无处记录),插件应在会话就绪后重新判定。
330
+ */
331
+ setActivityTabVisible(tabId: string, visible: boolean): void;
332
+ /**
333
+ * Bind or clear plugin-owned one-shot context for the next outgoing prompt.
334
+ * The host renders its label/icon, merges metadata and hidden instructions,
335
+ * then clears it after send or when the user closes the capsule.
312
336
  */
313
- setEditImageAttachment(ref: PluginImageRef | null): void;
337
+ setPromptAttachment(attachment: PluginPromptAttachment | null): void;
314
338
  /**
315
339
  * Open the host's global full-screen image previewer for the given image.
316
340
  * Only the image reference (id/url) crosses over — bytes stay out-of-band.
@@ -325,6 +349,12 @@ export interface PluginUiApi {
325
349
  * The host owns the navigation; the plugin only asks to jump there.
326
350
  */
327
351
  openPluginSettings(): void;
352
+ /**
353
+ * Capture a rectangle in the current Vetta window and open the host save
354
+ * dialog. Coordinates use renderer DIP values such as getBoundingClientRect().
355
+ * Requires `ui.slot.activity-tab`.
356
+ */
357
+ captureRegion(rect: PluginCaptureRegion, defaultFileName: string): Promise<string | null>;
328
358
  /**
329
359
  * Show a global toast in the host UI (bottom-right). No permission required.
330
360
  * Prefer this over swallowing errors into opaque UI copy: pass `error` so