opencode-idea 0.0.25 → 0.0.26

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-idea",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "OpenCode plugin that connects to JetBrains IDE MCP servers and prefers IDE tools when the current project is open in the IDE",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -31,7 +31,7 @@ IDE (或那个 IDE 没装 `idea-mcp-enhance`)—— 让用户执行 `/open-in-id
31
31
  - **看一眼**:`<前缀>_inspect_run_configuration` —— 定义、命名解析、活实例、历史日志路径全在里面;
32
32
  构建 patch 之前先用它拿到当前值 (尤其 `configurationXml`)。
33
33
  - **模板是字段参考**:`assets/types/*.md` 用来查类型 id、看这个类型有哪些字段、`configurationXml` 该长什么样。
34
- - **建带平台 / 环境变体的配置** → 名字按模板「怎么读配置名」的文法拼 (`win@base` / `base@env`);环境具体怎么接上问
34
+ - **建带平台 / 环境变体的配置** → 名字文法见 IDE 引导的「运行配置」(`win@base` / `base@env`);环境具体怎么接上问
35
35
  用户,或照项目里现成的同类配置来。
36
36
  - **没有模板**(矩阵之外)→ **走 `cloneFrom`**:复制一个同类型的现成配置再 patch 它的字段。
37
37
  字段名不确定时,这是 **唯一可靠**的路子 (照猜字段名 = 静默用默认值)。连一个同类型的现成配置都没有,
@@ -71,5 +71,5 @@ IDE (或那个 IDE 没装 `idea-mcp-enhance`)—— 让用户执行 `/open-in-id
71
71
  3. **路径宏**:`$PROJECT_DIR$` = 该项目根。 **项目内的路径一律用它**(`$PROJECT_DIR$/子目录/...`),不要写本机绝对路径 ——
72
72
  写死了别人 clone 下来就指到不存在的目录。
73
73
 
74
- 名字怎么读、变体怎么选、每条登记什么,都在 [assets/AGENTS.template.md](assets/AGENTS.template.md) 的「怎么读配置名」
75
- 「怎么选变体」与生成提示里 —— 本文件不重复那套规则。
74
+ 名字怎么读、变体怎么选 —— 见 IDE 引导的「运行配置」(每次请求都在);每条登记什么,见
75
+ [assets/AGENTS.template.md](assets/AGENTS.template.md) 的生成提示。两处都不在本文件重复。
@@ -21,8 +21,6 @@
21
21
 
22
22
  ## run configuration 一览
23
23
 
24
- **「怎么读配置名」与「怎么选变体」两节是固定文本,照抄,不要改写、不要删条目** —— 它们是读名字与选变体的规则,下面那个列表靠它们才成立。
25
-
26
24
  <!-- 生成提示:begin -->
27
25
 
28
26
  **先过滤**:服务化 / 常驻应用的配置 **一律不进本块**(它们归 `idea-standalone`,端口与热重载写在那边)。有
@@ -32,12 +30,9 @@
32
30
  目录的那些 —— 翻文件看不到)。 **项目与各子项目里真正存在的、过滤后剩下的都要有。**
33
31
  **项目写在条目开头的括号里**(那套工具的前缀:root 写 `ide`,子项目写它的目录名):一条配置属于谁、该用哪套工具去看和跑,
34
32
  由它决定。条目里的配置名必须是该前缀下 **真实存在的名字**,不凭印象写;块里有、项目里已经没有的 **整个条目删掉**。 **只登记
35
- base,变体不另起条目**:run configuration 的名字是 `[os@]base[@env]`,`@` 分割、最多三段 —— os 段 (`win` = Windows,缺省 =
36
- macOS/Linux)、
37
- base 段 (配置本体)、env 段 (环境名,缺省 = 默认环境)。`win@base` 与 `base@env` 都是 **同一个 base 的变体**:
38
- 平台不同 / 环境不同,事情是同一件。 **本块只登记 base**(`{配置名}` 不带任何 `@` 段),变体不另起条目 ——
39
- 把"有哪些变体"写进 base 的 `desc` 一条即可;判断某个变体在哪个平台成立 **看命令与脚本内容本身**(有 `\` 路径、调用
40
- `.bat`、依赖 Windows 专属工具的,就是 Windows), **判断不了就问用户**,不猜。
33
+ base,变体不另起条目**:`{配置名}` 不带任何 `@` 段 —— 名字文法与变体怎么选见 IDE 引导的「运行配置」;有哪些变体写进 base 的
34
+ `desc` 一条即可。判断某个变体在哪个平台成立 **看命令与脚本内容本身**(有 `\` 路径、调用 `.bat`、依赖 Windows 专属工具的,
35
+ 就是 Windows), **判断不了就问用户**,不猜。
41
36
 
42
37
  **when** 只写两种,先把是哪一种写明:**用户授权触发** → 用户开口 (或在本会话里授权) 之后 AI 才跑,后面写用户通常在
43
38
  什么情况下会要它跑 (发版前 / 出安装包 / 回归);**AI 自己触发** → AI 判断到场景就自己跑, **必须把场景写具体**(改完某类代码要
@@ -94,21 +89,6 @@ base 段 (配置本体)、env 段 (环境名,缺省 = 默认环境)。`win@base`
94
89
  `应用` / `端口` / `热重载`。 **五项始终都在**:真没有内容就写 **`无`** —— 不省略,也不写 `-` / `N/A`。
95
90
  <!-- 生成提示:end -->
96
91
 
97
- ### 怎么读配置名
98
-
99
- run configuration 的名字是 `[os@]base[@env]`,`@` 分割、最多三段:`os` = `win`(缺省表示:macOS / Linux)、`base` = 配置本体
100
- (必填)、`env` = 环境名(缺省表示:默认环境)。`win@base`(换平台)与 `base@env`(换环境)都是 `base` 的 **变种**:
101
- 同一件事,平台 / 环境不同。 **只登记 base**,变体不另起条目 —— 有哪些变体写进 base 的 `desc`。
102
-
103
- ### 怎么选变体
104
-
105
- - **平台**:macOS / Linux 用 `base`,Windows 用 `win@base` —— `win@base` 不存在就 **交回用户**,别拿 base 顶替。
106
- - **环境**:不带 `@` 的那条就是 **默认环境**。一起起一批时 **逐条解析**:有 `base@<要的环境>` 就用它,没有就用默认;只有
107
- `@env` 变体、没有默认版的,就用它自己那个 —— "10 个服务"可以是"3 个 `@dev` + 7 个默认",不必逐条问。
108
- - **一条配置同时有 `base` 与 `base@<env>`**、又没说走哪个环境 → **启动前问一次用户走哪个环境**;选定后本会话默认走这套,
109
- 别反复问 —— 改代码 → 自己重启 → 同一套变体。
110
- - 一个环境怎么接上 (启动参数 / 环境变量 / 配置文件) 是项目自己的事:照现成的同类变体来,或问用户。
111
-
112
92
  ### base 登记
113
93
 
114
94
  - {配置名} (项目 {前缀})
@@ -24,8 +24,8 @@ description: "为项目固化 standalone(启动收口只有 IDEA run configurati
24
24
  - 读 `<项目根>/AGENTS.md`:有没有 `idea-standalone` 标记块 (有则更新,没有就在文件末尾追加)。
25
25
  - 枚举:该项目的 `<前缀>_get_run_configurations` 直接调用,不传任何参数 —— 它给出 IDE 真正认的配置,连同启动细节 (程序参数、
26
26
  工作目录、环境变量、能否启动时覆盖)。 **条目里的 base 名与端口只能来自这里**,不用再去项目目录逐个翻配置文件。
27
- - **一条配置一个条目**:带 `@` 段的配置一律 **取 base 部分登记**,变体不另起一条 —— 文法、选变体、每一项怎么写,全在模板的
28
- 「怎么读配置名」「怎么选变体」与生成提示里。
27
+ - **一条配置一个条目**:带 `@` 段的配置一律 **取 base 部分登记**,变体不另起一条 —— 文法与选变体见 IDE 引导的「运行配置」,
28
+ 每一项怎么写见模板的生成提示。
29
29
 
30
30
  **缺口**(端口、热重载、`应用` 各自怎么定,模板的生成提示里写了;拿不准就 **问用户**,不猜)
31
31
 
@@ -38,15 +38,12 @@ skill 一律不动。
38
38
 
39
39
  ## 二、standalone 下启动哪些应用 (必须经 IDEA run configuration)
40
40
 
41
- **「怎么读配置名」与「怎么选变体」两节是固定文本,照抄,不要改写、不要删条目** —— 它们是读名字与选变体的规则,下面那个列表靠它们才成立。
42
-
43
41
  <!-- 生成提示:begin -->
44
42
 
45
43
  一条一个 **run configuration**(服务化 / 常驻的那种)—— **应用只是它的一个属性**:同一个应用有多条配置 (前端 dev server +
46
44
  后端服务)就写多条,别合并成一条。 **括号里的项目是这条配置的归属**(root 写 `ide`,子项目写它的目录名):配置可能住在子项目
47
- 里,跑它就用 **那个前缀**的工具 —— 拿不准就问用户。 **条目开头的名字填真实 base 名**(不带任何 `@` 段),平台与环境由名字里
48
- 的段决定,见上面「怎么读配置名」。
49
- **变体不另起一条**:`win@base`(换平台)、`base@env`(换环境)都是同一个 base 的变种,写一条就够,怎么选走「怎么选变体」那节。
45
+ 里,跑它就用 **那个前缀**的工具 —— 拿不准就问用户。 **条目开头的名字填真实 base 名**(不带任何 `@` 段)—— 名字文法与变体怎么选
46
+ 见 IDE 引导的「运行配置」。 **只登记 base,变体不另起一条**:写一条 base 就够,有哪些变体写进 `desc`。
50
47
 
51
48
  **下面是两个示例**,照这个形状写 —— 一条把长的地方展开,一条全是短句 (生成产物时把示例删掉):
52
49
 
@@ -94,21 +91,6 @@ skill 一律不动。
94
91
  `AGENTS.md` 里,名字与顺序对上了才看得出哪些是服务、哪些是固定流程。 **某项确实没有内容就写 `无`**(不省略、也不写 `-`)。
95
92
  <!-- 生成提示:end -->
96
93
 
97
- ### 怎么读配置名
98
-
99
- run configuration 的名字是 `[os@]base[@env]`,`@` 分割、最多三段:`os` = `win`(缺省表示:macOS / Linux)、`base` = 配置本体
100
- (必填)、`env` = 环境名(缺省表示:默认环境)。`win@base`(换平台)与 `base@env`(换环境)都是 `base` 的 **变种**:
101
- 同一件事,平台 / 环境不同。 **只登记 base**,变体不另起条目 —— 有哪些变体写进 base 的 `desc`。
102
-
103
- ### 怎么选变体
104
-
105
- - **平台**:macOS / Linux 用 `base`,Windows 用 `win@base` —— `win@base` 不存在就 **交回用户**,别拿 base 顶替。
106
- - **环境**:不带 `@` 的那条就是 **默认环境**。一起起一批时 **逐条解析**:有 `base@<要的环境>` 就用它,没有就用默认;只有
107
- `@env` 变体、没有默认版的,就用它自己那个 —— "10 个服务"可以是"3 个 `@dev` + 7 个默认",不必逐条问。
108
- - **一条配置同时有 `base` 与 `base@<env>`**、又没说走哪个环境 → **启动前问一次用户走哪个环境**;选定后本会话默认走这套,
109
- 别反复问 —— 改代码 → 自己重启 → 同一套变体。
110
- - 一个环境怎么接上 (启动参数 / 环境变量 / 配置文件) 是项目自己的事:照现成的同类变体来,或问用户。
111
-
112
94
  ### 服务化配置
113
95
 
114
96
  一条一个 run configuration;`应用` 是它的属性 —— 同一个应用可以有多条配置。括号里的项目是它的归属:跑这条配置,用那个项目
@@ -158,6 +158,15 @@
158
158
  有没有热重载都一样;读 `started` 判断新进程是否真的起来了。这次运行的输出在 `output`,完整日志文件路径在
159
159
  `fullOutputPath`。不要用 `pkill` / `kill` / `shell` 代替。
160
160
  {{/if}}
161
+
162
+ **配置名怎么读**:`[os@]base[@env]`,`@` 分割、最多三段 —— `os` = `win`(缺省 macOS / Linux)、`base` = 配置本体(必填)、
163
+ `env` = 环境名(缺省 = 默认环境)。`win@base`(换平台)与 `base@env`(换环境)都是 `base` 的 **变体**,跑哪一个:
164
+
165
+ - **平台**:macOS / Linux 用 `base`,Windows 用 `win@base` —— `win@base` 不存在就 **交回用户**,别拿 base 顶替。
166
+ - **环境**:不带 `@` 的就是 **默认环境**。一批一起起时 **逐条解析**:有 `base@<要的环境>` 就用它,没有就用默认;只有 `@env`
167
+ 变体、没有默认版的,就用它自己那个 —— "10 个服务"可以是"3 个 `@dev` + 7 个默认",不必逐条问。
168
+ - 一条配置同时有 `base` 与 `base@<env>`、又没说走哪个环境 → **问一次走哪个环境**,选定后本会话默认走这套,别反复问。
169
+ - 一个环境怎么接上(启动参数 / 环境变量 / 配置文件)是项目自己的事:照现成的同类变体来,或问用户。
161
170
  {{#if canListDeploymentServers}}
162
171
 
163
172
  ### 服务器文件同步
package/src/mcp/idea.js CHANGED
@@ -127,7 +127,7 @@ export async function callTool(port, projectPath, name, args = {}, options = {})
127
127
  params: {
128
128
  protocolVersion: PROTOCOL_VERSION,
129
129
  capabilities: {},
130
- clientInfo: { name: 'opencode-idea', version: '0.0.25' },
130
+ clientInfo: { name: 'opencode-idea', version: '0.0.26' },
131
131
  },
132
132
  });
133
133
  // The IDE's Streamable-HTTP endpoint binds follow-up requests to the session