@aipanel/provider-opencode 1.2.0-beta.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/lib/types.d.ts ADDED
@@ -0,0 +1,160 @@
1
+ /**
2
+ * OpenCode Provider 专属类型
3
+ * 所有与 OpenCode Web 绑定的类型自包含于此,核心层不感知。
4
+ */
5
+ import type { LogFileConfig } from "@aipanel/core";
6
+ /**
7
+ * OpenCode 界面语言选项
8
+ */
9
+ export type OpenCodeLanguage = "en" | "zh" | "zht" | "ko" | "ja" | "de" | "es" | "fr" | "da" | "pl" | "ru" | "bs" | "ar" | "no" | "br" | "th" | "tr";
10
+ /**
11
+ * OpenCode 内部设置(与 localStorage settings.v3 对应)
12
+ * 用于配置 OpenCode Web 内部行为
13
+ */
14
+ export interface OpenCodeSettings {
15
+ /** 通用设置 */
16
+ general?: {
17
+ /** 自动保存 */
18
+ autoSave?: boolean;
19
+ /** 显示更新说明 */
20
+ releaseNotes?: boolean;
21
+ /** 后续动作模式 */
22
+ followup?: "steer" | "suggest" | "none";
23
+ /** 显示推理摘要 */
24
+ showReasoningSummaries?: boolean;
25
+ /** 默认展开 shell 工具部分 */
26
+ shellToolPartsExpanded?: boolean;
27
+ /** 默认展开编辑工具部分 */
28
+ editToolPartsExpanded?: boolean;
29
+ };
30
+ /** 外观设置 */
31
+ appearance?: {
32
+ /** 界面字体大小 */
33
+ fontSize?: number;
34
+ /** 代码字体 */
35
+ mono?: string;
36
+ /** 界面字体 */
37
+ sans?: string;
38
+ };
39
+ /** 权限设置 */
40
+ permissions?: {
41
+ /** 自动批准权限请求 */
42
+ autoApprove?: boolean;
43
+ };
44
+ /** 通知设置 */
45
+ notifications?: {
46
+ /** 智能体完成时通知 */
47
+ agent?: boolean;
48
+ /** 权限请求时通知 */
49
+ permissions?: boolean;
50
+ /** 错误时通知 */
51
+ errors?: boolean;
52
+ };
53
+ /** 音效设置 */
54
+ sounds?: {
55
+ /** 启用智能体音效 */
56
+ agentEnabled?: boolean;
57
+ /** 智能体音效 */
58
+ agent?: string;
59
+ /** 启用权限音效 */
60
+ permissionsEnabled?: boolean;
61
+ /** 权限音效 */
62
+ permissions?: string;
63
+ /** 启用错误音效 */
64
+ errorsEnabled?: boolean;
65
+ /** 错误音效 */
66
+ errors?: string;
67
+ };
68
+ }
69
+ /**
70
+ * OpenCode Provider 专属配置(对应插件配置的 providerOptions 段)
71
+ * 保留字符串索引签名,以赋给 PluginOptions 的 Record<string, unknown> 泛型约束。
72
+ */
73
+ export type OpenCodeProviderOptions = {
74
+ /** OpenCode 界面语言,默认跟随浏览器语言 */
75
+ language?: OpenCodeLanguage;
76
+ /** OpenCode 内部设置,直接映射到 localStorage settings.v3 */
77
+ settings?: OpenCodeSettings;
78
+ /** 自定义日志文件配置 */
79
+ logFiles?: LogFileConfig[];
80
+ /** 启用 LSP 诊断(TypeScript + ESLint),agent 编辑文件后自动返回错误信息,默认 false */
81
+ enableLsp?: boolean;
82
+ /** 启用 LSP 错误硬阻止:编辑后有错误则回滚文件并拒绝修改,默认 false */
83
+ enableBlockOnError?: boolean;
84
+ /** 启用代码格式化功能(prettier),默认 true */
85
+ enablePrettier?: boolean;
86
+ /** 允许 Provider 自定义扩展字段(schema 由具体 Provider 定义) */
87
+ [key: string]: unknown;
88
+ };
89
+ /**
90
+ * OpenCode Web 服务启动选项(进程管理内部类型)
91
+ */
92
+ export interface WebOptions {
93
+ /** 服务端口 */
94
+ port: number;
95
+ /** 服务主机名 */
96
+ hostname: string;
97
+ /** 服务器 URL */
98
+ serverUrl: string;
99
+ /** 工作目录 */
100
+ cwd: string;
101
+ /** 配置目录路径 */
102
+ configDir?: string;
103
+ /** CORS 允许的源 */
104
+ corsOrigins?: string[];
105
+ /** 上下文 API URL */
106
+ contextApiUrl?: string;
107
+ /** 进程日志 API URL */
108
+ logsApiUrl?: string;
109
+ /** 日志文件配置(JSON 字符串) */
110
+ logFilesJson?: string;
111
+ /** 启用 LSP 错误硬阻止(环境变量透传给 OpenCode 插件) */
112
+ enableBlockOnError?: boolean;
113
+ /** 启用 verbose 模式(环境变量透传,调试日志输出) */
114
+ verbose?: boolean;
115
+ /** 启用 LSP / 质量门禁(环境变量透传,控制 block-on-error 插件运行) */
116
+ enableLsp?: boolean;
117
+ /** 启用代码格式化功能(prettier) */
118
+ enablePrettier?: boolean;
119
+ /** Vue DevTools API 地址(环境变量透传给 OpenCode 插件) */
120
+ vueDevtoolsApiUrl?: string;
121
+ }
122
+ /**
123
+ * OpenCode 会话信息(REST API 原始返回)
124
+ */
125
+ export interface SessionInfo {
126
+ /** 会话 ID */
127
+ id: string;
128
+ /** 会话标识符 */
129
+ slug: string;
130
+ /** 项目 ID */
131
+ projectID: string;
132
+ /** 项目目录 */
133
+ directory: string;
134
+ /** 会话标题 */
135
+ title: string;
136
+ /** 版本号 */
137
+ version: string;
138
+ /** 会话 URL */
139
+ url?: string;
140
+ /** 父会话 ID(subagent 会话才有) */
141
+ parentID?: string;
142
+ /** 代码变更统计 */
143
+ summary: {
144
+ /** 新增行数 */
145
+ additions: number;
146
+ /** 删除行数 */
147
+ deletions: number;
148
+ /** 修改文件数 */
149
+ files: number;
150
+ };
151
+ /** 时间信息 */
152
+ time: {
153
+ /** 创建时间戳 */
154
+ created: number;
155
+ /** 更新时间戳 */
156
+ updated: number;
157
+ /** 归档时间戳(已归档会话才有) */
158
+ archived?: number;
159
+ };
160
+ }
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@aipanel/provider-opencode",
3
+ "version": "1.2.0-beta.0",
4
+ "type": "module",
5
+ "main": "lib/index.cjs",
6
+ "module": "es/index.js",
7
+ "types": "es/index.d.ts",
8
+ "files": [
9
+ "es",
10
+ "lib"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./es/index.d.ts",
15
+ "import": "./es/index.js",
16
+ "require": "./lib/index.cjs"
17
+ }
18
+ },
19
+ "publishConfig": {
20
+ "access": "public",
21
+ "registry": "https://registry.npmjs.org/"
22
+ },
23
+ "dependencies": {
24
+ "execa": "^9.6.1",
25
+ "@aipanel/core": "1.2.0-beta.0",
26
+ "@aipanel/opencode-plugins": "1.2.0-beta.0"
27
+ },
28
+ "scripts": {
29
+ "build": "pagoda-cli build",
30
+ "typecheck": "tsc -p tsconfig.declaration.json --noEmit"
31
+ }
32
+ }