opencode-idea 0.0.19 → 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
|
@@ -364,22 +364,30 @@ loader 读的是 OpenCode 文档里的那个嵌套写法(它自己的读取器
|
|
|
364
364
|
1. **建 / 改 / 删**(直接动手):Shell 类型走 `ide_create_shell_run_configuration`,其余类型直接写 / 改 / 删 `.run/<名字>.run.xml`,
|
|
365
365
|
**每种类型照自己的模板写**,写完用 `get_run_configurations` 复查;
|
|
366
366
|
2. **建档**:过滤之后剩下的每个 run configuration 在**项目根 `AGENTS.md`** 的标记块(`<!-- idea-run-config-manager:begin -->` /
|
|
367
|
-
`<!-- idea-run-config-manager:end -->`)
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
367
|
+
`<!-- idea-run-config-manager:end -->`)里占**一个条目** —— 标题是配置名(括号里写它属于哪个项目),下面四项固定:
|
|
368
|
+
`怎么跑` / `何时跑` / `跑前做` / `说明`;
|
|
369
|
+
`何时跑` 回答的是**谁能起它**,而这件事只有三种:`用户授权触发`(用户开口 / 在本会话里一次性授权之后 AI 才跑,后面写用户通常在什么情况下要它跑)、
|
|
370
|
+
`AI 自己触发`(AI 判断到场景就自己跑,**必须把场景写具体**)、`用户手动触发` ——
|
|
371
|
+
最后这一种**不进条目**,只登记在块末尾「用户手动触发(线下,AI 不跑)」一节,**只有名字**,不写怎么跑 / 跑前做 / 说明(没人会照它跑);
|
|
372
|
+
判断不了就问用户,有副作用(改远端 / 动数据 / 出产物)又说不清场景的,归"用户授权触发";
|
|
373
|
+
**按操作系统分成两节**(macOS / Linux、Windows,与 `idea-standalone` 的两张应用表同一种拆法:同一条流程在两个平台上常常不是同一条命令);
|
|
374
|
+
**与 `idea-standalone` 应用表的列对得上** —— `怎么跑` / `跑前做` / `说明` 三项同名同序;**本块多一项 `何时跑`**(构建 / 迁移这类固定流程确实发生在某个时刻),
|
|
375
|
+
那边**多一列 `端口`**,**没有 `何时跑`** —— 服务化应用就是"改完代码要起它来测"的时候起,时机不值得单列;
|
|
376
|
+
**热重载矩阵只有 3 列,不参与这套对应** —— 它答的是"改动后要不要重启";
|
|
377
|
+
**目录 / 端口 / 干什么都不单开一项**(standalone 的端口除外):前两个配置里本来就有,抄进来只会过时,第三个与 `说明` 重复;
|
|
374
378
|
3. **过滤**:服务化(长驻应用)的配置归 `idea-standalone` 的块,这里先读那个块把它排除,**两个块永不重叠**。
|
|
375
379
|
|
|
380
|
+
> **两个块的形态刻意不同**:档案块是**条目式**(一条配置一个条目,四项目各占一行 —— `说明` 常是一段话,塞进表格格子里既难读、
|
|
381
|
+
> 又要靠补空格维持对齐),`idea-standalone` 的应用表**保持表格**(列短、还有 `端口` 这种一格一个值的列)。
|
|
382
|
+
> 所以两边对齐的是**项名与顺序**,不是宽度;`AGENTS.md` 里一眼能看出哪几条是服务、哪几条是固定流程,靠的就是这一套同名的项。
|
|
383
|
+
|
|
376
384
|
**SKILL.md 只有一份五步流程**(读 → 枚举 → 建 / 删 / 改 → 同步 → 核对),外加**支持矩阵**与**硬性契约**(落地位置、固定信封、复查、
|
|
377
385
|
路径宏、不要写模板外的字段)——**它自己就带着规矩**;两类内容另放在两个地方,各管一段:
|
|
378
386
|
|
|
379
387
|
| 模板 | 装什么 |
|
|
380
388
|
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------- |
|
|
381
389
|
| `skills/idea-run-config-manager/assets/types/<类型>.md` | **一个类型一份**:那个类型的实测样本 + 字段表 + 坑(索引就是 SKILL.md 里的**支持矩阵**) |
|
|
382
|
-
| `skills/idea-run-config-manager/assets/AGENTS.template.md` | 产物(档案)
|
|
390
|
+
| `skills/idea-run-config-manager/assets/AGENTS.template.md` | 产物(档案)的骨架:条目怎么写、四项分别写什么、枚举与过滤的要求,都在它的生成提示里 |
|
|
383
391
|
|
|
384
392
|
**支持矩阵(7 份已落、2 份待实物)**:
|
|
385
393
|
|
|
@@ -396,14 +404,14 @@ loader 读的是 OpenCode 文档里的那个嵌套写法(它自己的读取器
|
|
|
396
404
|
把矩阵里那个类型从 ⏳ 改成 ✅。**每个字段名都来自真实文件,不靠猜** —— `js.build_tools.npm`(属性 + 自定义元素)、`ShConfigurationType`
|
|
397
405
|
(`<option>` 子元素)、`NodeJSConfigurationType`(全属性)三种写法并存,套错就是静默失效。
|
|
398
406
|
|
|
399
|
-
|
|
400
|
-
|
|
407
|
+
**先过滤,再建档**:**服务化的配置不进这个块** —— 它们已经登记在 `AGENTS.md` 的 `idea-standalone` 块里(端口 / 热重载也写在那里),
|
|
408
|
+
所以建档第一步是读那个块、把它的表里出现过的名字记下来并排除,**剩下的**才是本块内容。
|
|
401
409
|
|
|
402
|
-
|
|
403
|
-
`<前缀>_get_run_configurations` / `<前缀>_execute_run_configuration`
|
|
410
|
+
这个档案块**以带前缀的工具为准**,不围绕 IDE 界面说话:各项目各有自己的前缀(root 是 `ide`,子项目是它的目录名),枚举与执行都用**它自己那个前缀**的
|
|
411
|
+
`<前缀>_get_run_configurations` / `<前缀>_execute_run_configuration` …;**条目标题括号里写的就是这个前缀**,一条配置属于谁、该用哪套工具跑由它决定。
|
|
404
412
|
|
|
405
|
-
|
|
406
|
-
(无论谁做的:工具建的、用户自己建的、用户删掉的)
|
|
413
|
+
这个块的用途是**能被下次读到**:要办同类事情时先查它,有现成的就用,不再重复建 —— 所以**联动是硬要求**:配置被**新建 / 删除 / 修改**
|
|
414
|
+
(无论谁做的:工具建的、用户自己建的、用户删掉的)都要在文档里同步**加条目 / 删条目 / 改条目**,否则它就开始骗人。
|
|
407
415
|
|
|
408
416
|
**别的文档都指向这里**:引导文本与 `idea-standalone` skill 碰到"要建 / 删 / 改一个配置",不再让用户自己去 IDE 里摸,而是让用户调本 skill ——
|
|
409
417
|
增 / 删 / 改的流程入口只有这一个,而它只由用户触发。
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: idea-run-config-manager
|
|
3
3
|
requires: create_shell_run_configuration
|
|
4
|
-
description: "管理本项目的 run configuration:直接增 / 删 / 改(新建走工具,改和删直接编辑 `.run/<配置名>.run.xml` —— 都照 `assets/types/` 里**逐类型实测模板**写,没有模板的类型交给用户在 IDE 里配),并把配置档案同步进**项目根 `AGENTS.md`** 里由 `<!-- idea-run-config-manager:begin -->` 与 `<!-- idea-run-config-manager:end -->` 包裹的标记块 —— 每个 run configuration
|
|
4
|
+
description: "管理本项目的 run configuration:直接增 / 删 / 改(新建走工具,改和删直接编辑 `.run/<配置名>.run.xml` —— 都照 `assets/types/` 里**逐类型实测模板**写,没有模板的类型交给用户在 IDE 里配),并把配置档案同步进**项目根 `AGENTS.md`** 里由 `<!-- idea-run-config-manager:begin -->` 与 `<!-- idea-run-config-manager:end -->` 包裹的标记块 —— 每个 run configuration 一个条目,写清它干什么、怎么跑、什么时候跑;服务化的那些不在这里,它们归 `idea-standalone` 的块。当用户要建 / 删 / 改 run configuration,或要一份"这个项目有哪些配置、各自干什么"的说明时使用。"
|
|
5
5
|
metadata:
|
|
6
6
|
opencode/autoinvoke: false
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# idea-run-config-manager — 增删改 run configuration + 维护配置档案
|
|
10
10
|
|
|
11
|
-
**联动是硬要求**:配置被**新建 / 删除 /
|
|
11
|
+
**联动是硬要求**:配置被**新建 / 删除 / 修改**,文档就跟着**加条目 / 删条目 / 改条目** —— 无论那次改动是谁做的(你做的、用户自己做的、用户删掉的,都算)。改了配置却忘了同步这个档案块,等于它在骗下一个读者。
|
|
12
12
|
|
|
13
13
|
## 流程
|
|
14
14
|
|
|
15
|
-
1. **读**:项目根 `AGENTS.md` —— 有没有 `<!-- idea-run-config-manager:begin -->` … `<!-- idea-run-config-manager:end -->` 标记块(有则更新,没有就在文件末尾追加);同时读同文件里 `idea-standalone`
|
|
15
|
+
1. **读**:项目根 `AGENTS.md` —— 有没有 `<!-- idea-run-config-manager:begin -->` … `<!-- idea-run-config-manager:end -->` 标记块(有则更新,没有就在文件末尾追加);同时读同文件里 `idea-standalone` 的标记块,它登记过的配置不进本块。
|
|
16
16
|
2. **枚举**:逐个项目用**它自己那个前缀**的 `<前缀>_get_run_configurations` 直接调用,不传参数 —— 本项目的工具前缀跟着接入时的名字走(root 是 `ide`,子项目是它的目录名)。
|
|
17
17
|
3. **建 / 删 / 改**(**直接动手**):
|
|
18
18
|
1. **先查重**:已经在做同一件事的配置直接复用,不要新建一个几乎一样的。
|
|
@@ -21,8 +21,8 @@ metadata:
|
|
|
21
21
|
- **没有模板**(⏳ 或矩阵之外)→ **交给用户**:讲清要配什么(配置名、干什么、什么时候跑),请他在 IDE 里配好,你只负责把档案补上。
|
|
22
22
|
3. **写完必须复查**:`<前缀>_get_run_configurations` 里要能看到它。**看不到就是文件没被 IDE 认** —— `type` 写错会被静默忽略且不报错,回去查 `type` / 文件位置 / 信封。
|
|
23
23
|
4. **不要手搓启动命令**代替配置,也**不要写模板里没有的字段**(多余字段被忽略、名字写错静默用默认值,都不会报错)。
|
|
24
|
-
4. **同步文档**:按 [assets/AGENTS.template.md](assets/AGENTS.template.md) 逐段填,写在标记块内 ——
|
|
25
|
-
5.
|
|
24
|
+
4. **同步文档**:按 [assets/AGENTS.template.md](assets/AGENTS.template.md) 逐段填,写在标记块内 —— **条目怎么写、四项分别写什么、枚举与过滤的要求,都在那份模板的生成提示里**,动手前先读它;生成提示是给生成过程的说明,**产物里整块删掉**,块外一字不动(尤其**不要触碰**其他 skill 的标记块)。
|
|
25
|
+
5. **核对**:块里每个名字项目里都还在,项目里每个配置块里都有。
|
|
26
26
|
|
|
27
27
|
## 支持矩阵(一个类型一份模板)
|
|
28
28
|
|
|
@@ -4,43 +4,71 @@
|
|
|
4
4
|
|
|
5
5
|
<!-- 生成提示:begin -->
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
`{...}`
|
|
7
|
+
标记之外是项目自己在 `AGENTS.md` 里维护的内容,本 skill 一律不动;也只写这个项目 —— 不写全局配置目录,不另建规则文件。
|
|
8
|
+
`{...}` 是待替换的元变量,不留进产物。未涉及的条目与小节整块删掉,不留空标题。
|
|
9
9
|
**`<!-- 生成提示:… -->` 是给生成过程的说明,产物里整块删掉** —— 产物是给 AI 当规则读的,里面不该留指令。
|
|
10
10
|
<!-- 生成提示:end -->
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
本项目里**除服务化应用之外**的 run configuration:每个配置**是什么、怎么跑、什么时候跑**;服务化(长驻应用)的配置登记在 `idea-standalone` 块里,不在这里。
|
|
13
|
+
|
|
14
|
+
**谁能起它,只有三种** —— 读这个块的人照它决定动不动手:
|
|
15
|
+
|
|
16
|
+
- **用户手动触发**:用户自己在 IDE 里跑,AI **完全不碰**。这类只登记在末尾「用户手动触发」一节,**只有名字**,没有别的说明。
|
|
17
|
+
- **用户授权触发**:用户开口之后 AI 才跑(用户也可以在这个会话里一次性授权);**AI 不自己挑时机**。
|
|
18
|
+
- **AI 自己触发**:AI 判断到场景就自己跑;这类条目的 `何时跑` **必须把那个场景写具体**。
|
|
15
19
|
|
|
16
20
|
## run configuration 一览
|
|
17
21
|
|
|
18
22
|
<!-- 生成提示:begin -->
|
|
19
23
|
|
|
20
|
-
**先过滤**:动手前读 `<项目根>/AGENTS.md` 里 `idea-standalone`
|
|
24
|
+
**先过滤**:动手前读 `<项目根>/AGENTS.md` 里 `idea-standalone` 的标记块,把它登记过的 run configuration 名字收集起来 —— **这些一律不进本块**(它们服务化 / 长驻,端口与热重载已在那边写清)。剩下的才是本块内容;没有那个块就不过滤。
|
|
21
25
|
**枚举以工具为准**:各项目各有自己的工具前缀(root 是 `ide`,子项目是它的目录名),看哪个项目就用**它自己那个前缀**的工具 —— `<前缀>_get_run_configurations` 直接调用,不传参数,它给出 IDE 真正认的配置(含存在 `.idea/` 里的那些,单翻 `.run/` 目录看不到)。**项目与各子项目里真正存在的、过滤后剩下的都要有。**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
**项目写在标题的括号里**(那套工具的前缀:root 写 `ide`,子项目写它的目录名):一条配置属于谁、该用哪套工具去看和跑,由它决定。
|
|
27
|
+
标题里的配置名必须是该前缀下**真实存在的名字**,不凭印象写;块里有、项目里已经没有的**整个条目删掉**。
|
|
28
|
+
**按操作系统分成两节**:macOS / Linux 一节,Windows 一节。同一份流程在两个平台上常常不是同一条命令(解释器不同、脚本后缀不同、路径写法不同),所以**按这个配置真正能跑的那个平台归节**,不要把 Windows 上才成立的命令写进 macOS 那一节。判断依据看配置里的解释器路径与脚本内容(例如 `INTERPRETER_PATH` 指向 PowerShell、命令里有 `\` 路径的,就是 Windows);**判断不了就问用户**,不猜。只在一个平台成立的流程就只写那一节。
|
|
25
29
|
|
|
26
30
|
**怎么跑**写走哪条工具:跑完即退的用 `<前缀>_execute_run_configuration`;长驻进程用 `<前缀>_rerun_run_configuration`(在跑就重启、没在跑就启动)。**不要**用 `execute` 跑长驻进程 —— 它是 Run 路径,对常驻进程**它会起出重复实例**。
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
**何时跑**写**谁能起它、什么场景起它** —— 会进这份列表的只有两种,写明是哪一种:
|
|
32
|
+
|
|
33
|
+
- **用户授权触发**:用户开口(或在本会话里授权)之后 AI 才跑;后面写用户通常在什么情况下会要它跑(发版前 / 出安装包 / 回归)。
|
|
34
|
+
- **AI 自己触发**:AI 判断到这个场景就自己跑;后面**必须把场景写具体**(改完某类代码要生成代码 / 改了依赖要装依赖 / 改了 schema 要同步某个环境的 DDL),不写"需要时""合适时"。
|
|
35
|
+
|
|
36
|
+
第三种 —— **用户手动触发**(用户自己在 IDE 里跑、AI 完全不碰)**不要写进上面的条目**,登记到末尾「用户手动触发」一节,只写名字。
|
|
37
|
+
判断不了就问用户。**有副作用的流程(改远端、动数据、出产物)说不清场景就别标成 AI 自己触发** —— 归"用户授权触发"。
|
|
38
|
+
|
|
39
|
+
**跑前做**写**跑之前要先做的事**(先装依赖 / 先构建 / 先起某个服务):**多数没有,整项不写**。确实得先做点什么才写,而且**按顺序写清第 1 步、第 2 步**。前置事项往往**不是**一个 run configuration(没有对应配置),所以只能写在这里 —— 漏了它,照着本块跑的人会直接跑出一个起不来的流程。
|
|
40
|
+
**说明**是这个条目唯一的自由文本项:**它是什么、干什么的**(同步某个环境的 DDL / 生成代码 / 跑迁移 …),以及有什么坑(必须先备份 / 只对某个环境生效 / 幂等与否 …)。
|
|
41
|
+
分两件事都往这里写,**不要再开新项**。写清它到底跑什么命令,就读它所在项目的落地文件 `.run/<name>.run.xml` 看里面的内容,拿不准就**问用户**,不猜。
|
|
42
|
+
本块的**主要价值**就在**说明**与**跑前做**:下次要办同类事情先在这里搜关键词,找得到就直接用,**不要再建一个重复的**。
|
|
32
43
|
**目录、端口这类"配置里本来就有"的字段不要抄进来** —— 它们会跟配置变旧而对不上;确实要交代依赖关系,就写进 `说明` 或 `跑前做`。
|
|
33
|
-
|
|
44
|
+
**四项的项名与顺序不要改**(`怎么跑` / `何时跑` / `跑前做` / `说明`),并且**与 `idea-standalone` 应用表的列对得上**:三项同名同序(`怎么跑` / `跑前做` / `说明`),本块**多一项 `何时跑`**、那边**多一列 `端口`**(服务化应用就是"改完代码要起它来测"的时候起,不用单列时机)—— 两个块住在同一份 `AGENTS.md` 里,名字与顺序对上了,才看得出哪几条是服务、哪几条是固定流程。某一项确实没有内容就**整项不写**,不要写 `-` / `无` / `N/A`。
|
|
34
45
|
<!-- 生成提示:end -->
|
|
35
46
|
|
|
36
47
|
### macOS / Linux
|
|
37
48
|
|
|
38
|
-
|
|
39
|
-
|
|
49
|
+
- {配置名}(项目 {前缀})
|
|
50
|
+
- 怎么跑:{<前缀>_execute_run_configuration}
|
|
51
|
+
- 何时跑:{用户授权触发 / AI 自己触发} —— {什么场景}
|
|
52
|
+
- 跑前做:{第 1 步 / 第 2 步}
|
|
53
|
+
- 说明:{它是什么 + 有什么坑}
|
|
40
54
|
|
|
41
55
|
### Windows
|
|
42
56
|
|
|
43
|
-
|
|
44
|
-
|
|
57
|
+
- {配置名}(项目 {前缀})
|
|
58
|
+
- 怎么跑:{<前缀>_execute_run_configuration}
|
|
59
|
+
- 何时跑:{用户授权触发 / AI 自己触发} —— {什么场景}
|
|
60
|
+
- 跑前做:{第 1 步 / 第 2 步}
|
|
61
|
+
- 说明:{它是什么 + 有什么坑}
|
|
62
|
+
|
|
63
|
+
## 用户手动触发(线下,AI 不跑)
|
|
64
|
+
|
|
65
|
+
用户自己在 IDE 里跑的那种配置 —— AI 不碰,这里只登记名字。
|
|
66
|
+
|
|
67
|
+
<!-- 生成提示:begin -->
|
|
68
|
+
|
|
69
|
+
只写名字(带项目),**不要**写怎么跑 / 何时跑 / 跑前做 / 说明:没人会照它跑,写了只是噪音。判断不了某一项是"授权"还是"手动"就**问用户**。
|
|
70
|
+
<!-- 生成提示:end -->
|
|
71
|
+
|
|
72
|
+
- {配置名}(项目 {前缀})
|
|
45
73
|
|
|
46
74
|
<!-- idea-run-config-manager:end -->
|
|
@@ -39,23 +39,22 @@
|
|
|
39
39
|
让他调 `idea-run-config-manager` skill 去建(那个 skill 管这个项目 run configuration 的增 / 删 / 改),不要手搓启动命令,也不要自己写 `.run/*.run.xml`。
|
|
40
40
|
**怎么跑**写走哪条工具:常驻 / 服务化的配置一律 `rerun`(在跑就重启、没在跑就启动),**不要**用 `execute` —— 它是 Run 路径,对常驻进程会起出重复实例;细节见「跑应用只用 rerun」那条。
|
|
41
41
|
**端口**写清"固定 / 默认 / 被占用即启动失败";读不到就**问用户**,不要编。**服务化的应用一定有端口**,这一格是它区别于固定流程的地方。
|
|
42
|
-
**何时跑**列写**什么时候起它**(日常开发 / 只在某个流程之前 / 联调时才起 …);多数应用留这一格就够,起不来就写清触发场景。
|
|
43
42
|
**跑前做**列写**跑之前要先做的事**:**多数应用留空**。只有确实"得先做点什么才能起"时才写,而且**按顺序写清第 1 步、第 2 步、第 3 步**(例如 `1. 装依赖 2. 构建 3. 起前置服务`);
|
|
44
43
|
这些事**用文字写出来**(AI 照这段文本自己按序去做)。这类前置事项往往没被写成 run configuration,所以必须在这里说明,否则 AI 直接 rerun 会拿到一个起不来的进程。
|
|
45
44
|
**哪个应用必须先起来**也要写明(例如前端 dev server 的 proxy 指向本机后端)。与本项目无关的应用不写。
|
|
46
|
-
**说明**写剩下的坑与依赖关系(依赖谁、跟别的应用什么先后)。**目录**这类配置里本来就有的字段不要单开一格 —— 会跟配置变旧而对不上。
|
|
47
|
-
**列宽按同一约定**(中文两字 = 四个 dash,英文按字符数)
|
|
45
|
+
**说明**写剩下的坑与依赖关系(依赖谁、跟别的应用什么先后),以及例外(**只在联调 / 某个流程之前才需要起**之类)。**目录**这类配置里本来就有的字段不要单开一格 —— 会跟配置变旧而对不上。
|
|
46
|
+
**列宽按同一约定**(中文两字 = 四个 dash,英文按字符数),**两张应用表的公共列一一对位、宽度一致**(同一份 `AGENTS.md` 里两张表才像一家人)。**列名与顺序要和 `idea-run-config-manager` 的条目项对得上**(`怎么跑` / `跑前做` / `说明` 三项同名;**本表多一列 `端口`**(服务化应用一定有端口),**少一项 `何时跑`** —— 服务化应用就是"改完代码要起它来测"的时候起,没有别的时机可写)—— 两个块住在同一份 `AGENTS.md` 里,名字与顺序对上了才看得出哪些是服务、哪些是固定流程。**本块保持表格形式**(那边改成条目式了,这边不跟:应用有端口这样的短列,表格更好扫)。**某格不适用就留空,不要写 `-`;填行时别去改表头的空格。**
|
|
48
47
|
<!-- 生成提示:end -->
|
|
49
48
|
|
|
50
49
|
### macOS / Linux
|
|
51
50
|
|
|
52
|
-
| 应用 | run configuration | 怎么跑 | 端口 |
|
|
53
|
-
| ---- | ----------------- | ------ | ---- | ------ |
|
|
51
|
+
| 应用 | run configuration | 怎么跑 | 端口 | 跑前做 | 说明 |
|
|
52
|
+
| ---- | ----------------- | ------ | ---- | ------ | ---- |
|
|
54
53
|
|
|
55
54
|
### Windows
|
|
56
55
|
|
|
57
|
-
| 应用 | run configuration | 怎么跑 | 端口 |
|
|
58
|
-
| ---- | ----------------- | ------ | ---- | ------ |
|
|
56
|
+
| 应用 | run configuration | 怎么跑 | 端口 | 跑前做 | 说明 |
|
|
57
|
+
| ---- | ----------------- | ------ | ---- | ------ | ---- |
|
|
59
58
|
|
|
60
59
|
## 三、热重载矩阵:改代码后要不要提醒重启
|
|
61
60
|
|
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
|