opencode-idea 0.0.20 → 0.0.21
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/README.md
CHANGED
|
@@ -366,9 +366,10 @@ loader 读的是 OpenCode 文档里的那个嵌套写法(它自己的读取器
|
|
|
366
366
|
2. **建档**:过滤之后剩下的每个 run configuration 在**项目根 `AGENTS.md`** 的标记块(`<!-- idea-run-config-manager:begin -->` /
|
|
367
367
|
`<!-- idea-run-config-manager:end -->`)里占**一个条目** —— 标题是配置名(括号里写它属于哪个项目),下面四项固定:
|
|
368
368
|
`怎么跑` / `何时跑` / `跑前做` / `说明`;
|
|
369
|
-
`何时跑`
|
|
370
|
-
|
|
371
|
-
|
|
369
|
+
`何时跑` 回答的是**谁能起它**,而这件事只有三种:`用户授权触发`(用户开口 / 在本会话里一次性授权之后 AI 才跑,后面写用户通常在什么情况下要它跑)、
|
|
370
|
+
`AI 自己触发`(AI 判断到场景就自己跑,**必须把场景写具体**)、`用户手动触发` ——
|
|
371
|
+
最后这一种**不进条目**,只登记在块末尾「用户手动触发(线下,AI 不跑)」一节,**只有名字**,不写怎么跑 / 跑前做 / 说明(没人会照它跑);
|
|
372
|
+
判断不了就问用户,有副作用(改远端 / 动数据 / 出产物)又说不清场景的,归"用户授权触发";
|
|
372
373
|
**按操作系统分成两节**(macOS / Linux、Windows,与 `idea-standalone` 的两张应用表同一种拆法:同一条流程在两个平台上常常不是同一条命令);
|
|
373
374
|
**与 `idea-standalone` 应用表的列对得上** —— `怎么跑` / `跑前做` / `说明` 三项同名同序;**本块多一项 `何时跑`**(构建 / 迁移这类固定流程确实发生在某个时刻),
|
|
374
375
|
那边**多一列 `端口`**,**没有 `何时跑`** —— 服务化应用就是"改完代码要起它来测"的时候起,时机不值得单列;
|
package/package.json
CHANGED
|
@@ -11,7 +11,11 @@
|
|
|
11
11
|
|
|
12
12
|
本项目里**除服务化应用之外**的 run configuration:每个配置**是什么、怎么跑、什么时候跑**;服务化(长驻应用)的配置登记在 `idea-standalone` 块里,不在这里。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**谁能起它,只有三种** —— 读这个块的人照它决定动不动手:
|
|
15
|
+
|
|
16
|
+
- **用户手动触发**:用户自己在 IDE 里跑,AI **完全不碰**。这类只登记在末尾「用户手动触发」一节,**只有名字**,没有别的说明。
|
|
17
|
+
- **用户授权触发**:用户开口之后 AI 才跑(用户也可以在这个会话里一次性授权);**AI 不自己挑时机**。
|
|
18
|
+
- **AI 自己触发**:AI 判断到场景就自己跑;这类条目的 `何时跑` **必须把那个场景写具体**。
|
|
15
19
|
|
|
16
20
|
## run configuration 一览
|
|
17
21
|
|
|
@@ -24,26 +28,27 @@
|
|
|
24
28
|
**按操作系统分成两节**:macOS / Linux 一节,Windows 一节。同一份流程在两个平台上常常不是同一条命令(解释器不同、脚本后缀不同、路径写法不同),所以**按这个配置真正能跑的那个平台归节**,不要把 Windows 上才成立的命令写进 macOS 那一节。判断依据看配置里的解释器路径与脚本内容(例如 `INTERPRETER_PATH` 指向 PowerShell、命令里有 `\` 路径的,就是 Windows);**判断不了就问用户**,不猜。只在一个平台成立的流程就只写那一节。
|
|
25
29
|
|
|
26
30
|
**怎么跑**写走哪条工具:跑完即退的用 `<前缀>_execute_run_configuration`;长驻进程用 `<前缀>_rerun_run_configuration`(在跑就重启、没在跑就启动)。**不要**用 `execute` 跑长驻进程 —— 它是 Run 路径,对常驻进程**它会起出重复实例**。
|
|
27
|
-
**何时跑**写**谁能起它、什么场景起它** ——
|
|
31
|
+
**何时跑**写**谁能起它、什么场景起它** —— 会进这份列表的只有两种,写明是哪一种:
|
|
32
|
+
|
|
33
|
+
- **用户授权触发**:用户开口(或在本会话里授权)之后 AI 才跑;后面写用户通常在什么情况下会要它跑(发版前 / 出安装包 / 回归)。
|
|
34
|
+
- **AI 自己触发**:AI 判断到这个场景就自己跑;后面**必须把场景写具体**(改完某类代码要生成代码 / 改了依赖要装依赖 / 改了 schema 要同步某个环境的 DDL),不写"需要时""合适时"。
|
|
28
35
|
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
第三种 —— **用户手动触发**(用户自己在 IDE 里跑、AI 完全不碰)**不要写进上面的条目**,登记到末尾「用户手动触发」一节,只写名字。
|
|
37
|
+
判断不了就问用户。**有副作用的流程(改远端、动数据、出产物)说不清场景就别标成 AI 自己触发** —— 归"用户授权触发"。
|
|
31
38
|
|
|
32
|
-
判断不了就问用户。**有副作用的流程(改远端、动数据、出产物)说不清场景就别标成 AI 可自动触发** —— 归第一种。
|
|
33
39
|
**跑前做**写**跑之前要先做的事**(先装依赖 / 先构建 / 先起某个服务):**多数没有,整项不写**。确实得先做点什么才写,而且**按顺序写清第 1 步、第 2 步**。前置事项往往**不是**一个 run configuration(没有对应配置),所以只能写在这里 —— 漏了它,照着本块跑的人会直接跑出一个起不来的流程。
|
|
34
40
|
**说明**是这个条目唯一的自由文本项:**它是什么、干什么的**(同步某个环境的 DDL / 生成代码 / 跑迁移 …),以及有什么坑(必须先备份 / 只对某个环境生效 / 幂等与否 …)。
|
|
35
41
|
分两件事都往这里写,**不要再开新项**。写清它到底跑什么命令,就读它所在项目的落地文件 `.run/<name>.run.xml` 看里面的内容,拿不准就**问用户**,不猜。
|
|
36
42
|
本块的**主要价值**就在**说明**与**跑前做**:下次要办同类事情先在这里搜关键词,找得到就直接用,**不要再建一个重复的**。
|
|
37
43
|
**目录、端口这类"配置里本来就有"的字段不要抄进来** —— 它们会跟配置变旧而对不上;确实要交代依赖关系,就写进 `说明` 或 `跑前做`。
|
|
38
44
|
**四项的项名与顺序不要改**(`怎么跑` / `何时跑` / `跑前做` / `说明`),并且**与 `idea-standalone` 应用表的列对得上**:三项同名同序(`怎么跑` / `跑前做` / `说明`),本块**多一项 `何时跑`**、那边**多一列 `端口`**(服务化应用就是"改完代码要起它来测"的时候起,不用单列时机)—— 两个块住在同一份 `AGENTS.md` 里,名字与顺序对上了,才看得出哪几条是服务、哪几条是固定流程。某一项确实没有内容就**整项不写**,不要写 `-` / `无` / `N/A`。
|
|
39
|
-
|
|
40
45
|
<!-- 生成提示:end -->
|
|
41
46
|
|
|
42
47
|
### macOS / Linux
|
|
43
48
|
|
|
44
49
|
- {配置名}(项目 {前缀})
|
|
45
50
|
- 怎么跑:{<前缀>_execute_run_configuration}
|
|
46
|
-
- 何时跑:{
|
|
51
|
+
- 何时跑:{用户授权触发 / AI 自己触发} —— {什么场景}
|
|
47
52
|
- 跑前做:{第 1 步 / 第 2 步}
|
|
48
53
|
- 说明:{它是什么 + 有什么坑}
|
|
49
54
|
|
|
@@ -51,8 +56,19 @@
|
|
|
51
56
|
|
|
52
57
|
- {配置名}(项目 {前缀})
|
|
53
58
|
- 怎么跑:{<前缀>_execute_run_configuration}
|
|
54
|
-
- 何时跑:{
|
|
59
|
+
- 何时跑:{用户授权触发 / AI 自己触发} —— {什么场景}
|
|
55
60
|
- 跑前做:{第 1 步 / 第 2 步}
|
|
56
61
|
- 说明:{它是什么 + 有什么坑}
|
|
57
62
|
|
|
63
|
+
## 用户手动触发(线下,AI 不跑)
|
|
64
|
+
|
|
65
|
+
用户自己在 IDE 里跑的那种配置 —— AI 不碰,这里只登记名字。
|
|
66
|
+
|
|
67
|
+
<!-- 生成提示:begin -->
|
|
68
|
+
|
|
69
|
+
只写名字(带项目),**不要**写怎么跑 / 何时跑 / 跑前做 / 说明:没人会照它跑,写了只是噪音。判断不了某一项是"授权"还是"手动"就**问用户**。
|
|
70
|
+
<!-- 生成提示:end -->
|
|
71
|
+
|
|
72
|
+
- {配置名}(项目 {前缀})
|
|
73
|
+
|
|
58
74
|
<!-- idea-run-config-manager:end -->
|
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.
|
|
130
|
+
clientInfo: { name: 'opencode-idea', version: '0.0.21' },
|
|
131
131
|
},
|
|
132
132
|
});
|
|
133
133
|
// The IDE's Streamable-HTTP endpoint binds follow-up requests to the session
|