opencode-workspace-scope 0.1.0 → 0.1.1

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
@@ -1,11 +1,13 @@
1
1
  # opencode-workspace-scope
2
2
 
3
- 全局安装、**sidecar 自激活**的 [opencode](https://opencode.ai) 插件,为多 git worktree 并行开发提供工作区作用域隔离。
3
+ 全局安装、**sidecar 自激活**的 [opencode](https://opencode.ai) 插件,为"一个项目涉及多个代码仓库"的并行开发场景提供工作区作用域隔离。
4
4
 
5
- 每个并行工作区在 `.opencode/workspace-scope.jsonc` 里声明本工作区涉及的 worktree 路径与职责,插件据此:
5
+ `.opencode/workspace-scope.jsonc` 里声明本项目涉及的各个仓库路径与职责(如前端仓库、后端仓库、编排根),插件据此:
6
6
 
7
- - 自动注入 `permission.external_directory` 白名单,**只放开本工作区的 worktree**,其余外部路径保持默认 ask;
8
- - 把"工作区根 + 各 worktree 路径及职责"注入 system prompt,让 AI 每轮都知道改哪里、哪些路径不能碰。
7
+ - 自动注入 `permission.external_directory` 白名单,**只放开配置中声明的仓库**,其余外部路径保持默认 ask;
8
+ - 把"工作区根 + 各仓库路径及职责"注入 system prompt,让 AI 每轮都知道改哪里、哪些路径不能碰。
9
+
10
+ sidecar 只需在编排根(或任一仓库)放一份,其他并行会话通过向上查找自动继承作用域,配合 init 工具自动探测兄弟仓库,开箱即用、零重复配置。
9
11
 
10
12
  无 sidecar 的项目中插件完全 no-op,不影响任何正常使用。
11
13
 
@@ -28,7 +30,7 @@ ln -s /path/to/opencode-workspace-scope/src/index.ts ~/.config/opencode/plugins/
28
30
 
29
31
  > 初始化这个工作区的 scope 配置
30
32
 
31
- 插件会调用 `workspace_scope_init` 工具:自动探测父目录下的兄弟 git 仓库作为候选 worktree,生成 `.opencode/workspace-scope.jsonc`(并自动写入 `.opencode/.gitignore`,不纳入版本管理),同时生成配套 JSON Schema
33
+ 插件会调用 `workspace_scope_init` 工具:自动探测父目录下的兄弟 git 仓库作为候选 worktree,生成 `.opencode/workspace-scope.jsonc`(并自动写入 `.opencode/.gitignore`,不纳入版本管理),同时生成配套 JSON Schema。也可让 AI 传入显式 worktrees 列表,覆盖任意仓库/目录。
32
34
 
33
35
  2. 编辑该文件,为每个 worktree 补充 `description`(职责说明,会注入 AI 上下文):
34
36
 
@@ -49,6 +51,8 @@ ln -s /path/to/opencode-workspace-scope/src/index.ts ~/.config/opencode/plugins/
49
51
 
50
52
  `path` 支持绝对路径,也支持相对**工作区根目录**的相对路径(如 `../backend`)。
51
53
 
54
+ > `worktrees` 泛指本工作区涉及的各代码仓库/目录,不要求是 git worktree;可以是兄弟仓库、monorepo 子目录,或任意绝对/相对路径。
55
+
52
56
  3. **重启 opencode**,使 external_directory 权限生效(上下文注入无需重启)。
53
57
 
54
58
  ## 权限行为
package/dist/context.js CHANGED
@@ -1,8 +1,9 @@
1
1
  export function buildScopeBlock(scope) {
2
2
  const { config } = scope;
3
+ const wsDesc = config.workspace.description ? ` — ${config.workspace.description}` : "";
3
4
  const lines = [
4
5
  "## Workspace Scope(由 workspace-scope 插件自动注入)",
5
- `当前工作区:${config.name}(工作区根:${config.workspace.path})`,
6
+ `当前工作区:${config.name}(工作区根:${config.workspace.path})${wsDesc}`,
6
7
  "本次会话的修改范围仅限以下目录,其他路径一律视为外部目录、需用户确认后才可修改:",
7
8
  ...config.worktrees.map((w) => {
8
9
  const desc = w.description ? ` — ${w.description}` : "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-workspace-scope",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "全局安装、sidecar 自激活的 opencode 插件:按工作区配置自动生成 external_directory 权限,并把工作区 worktree 路径与职责注入 AI 上下文,支撑多 worktree 并行开发互不干扰。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",