Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions knowledge/repos/jiuwenswarm/_routes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@ owners:
- jiuwenswarm/common/acp/
- jiuwenswarm/common/config_panel/
- jiuwenswarm/common/schema/
- jiuwenswarm/scripts/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Route the WhatsApp bridge to gateway-channels

When a PR changes jiuwenswarm/scripts/whatsapp-bridge.js, this directory-wide prefix makes Direct return only common-core; however, components/gateway-channels/feature-depth-im-whatsapp.md documents that script as the runtime bridge started by WhatsAppChannel, including its lifecycle and configuration contracts. Route that file to gateway-channels and reserve common-core for the unrelated folder-generation scripts so reviews receive the relevant failure-mode knowledge.

AGENTS.md reference: AGENTS.md:L12-L17

Useful? React with 👍 / 👎.

- owner: login-auth
path: repos/jiuwenswarm/components/login-auth/_index.md
signals:
Expand Down Expand Up @@ -399,6 +400,7 @@ owners:
- jiuwenswarm/extensions/yuanrong_frontend_client.py
- jiuwenswarm/extensions/agentos/
- jiuwenswarm/extensions/video_duplex/
- jiuwenswarm/extensions/__init__.py
- owner: observability
path: repos/jiuwenswarm/components/observability/_index.md
signals:
Expand Down Expand Up @@ -459,6 +461,7 @@ owners:
- jiuwenswarm/runtime/session_lifecycle.py
- jiuwenswarm/runtime/session_provisioner.py
- jiuwenswarm/runtime/session/
- jiuwenswarm/runtime/__init__.py
- owner: cron-scheduling
path: repos/jiuwenswarm/components/cron-scheduling/_index.md
signals:
Expand Down Expand Up @@ -511,3 +514,109 @@ owners:
- jiuwenswarm/symphony/skill_retrieval/
- jiuwenswarm/symphony/evolution/
- jiuwenswarm/symphony/shared/
- owner: browser-client
path: repos/jiuwenswarm/components/browser-client/_index.md
signals:
- browser client
scope_prefixes:
- jiuwenswarm/channels/browser/frontend/src/background/index.ts
- jiuwenswarm/channels/browser/frontend/src/sidepanel/index.ts
- jiuwenswarm/channels/browser/
- owner: ide-clients
path: repos/jiuwenswarm/components/ide-clients/_index.md
signals:
- ide clients
scope_prefixes:
- jiuwenswarm/channels/ide/packages/jetbrains-plugin/src/main/kotlin/com/jiuwenswarm/plugin/JiuwenSwarmService.kt
- jiuwenswarm/channels/ide/packages/jetbrains-plugin/src/main/kotlin/com/jiuwenswarm/plugin/ui/ChatToolWindow.kt
- jiuwenswarm/channels/ide/packages/vscode-extension/src/editor/DiffApplier.ts
- jiuwenswarm/channels/ide/packages/vscode-extension/src/extension.ts
- jiuwenswarm/channels/ide/packages/jetbrains-plugin/
- jiuwenswarm/channels/ide/packages/shared-webview/
- jiuwenswarm/channels/ide/packages/vscode-extension/esbuild.js
- jiuwenswarm/channels/ide/packages/vscode-extension/src/client/
- jiuwenswarm/channels/ide/packages/vscode-extension/src/codeActions/
- jiuwenswarm/channels/ide/packages/vscode-extension/src/context/
- jiuwenswarm/channels/ide/packages/vscode-extension/src/editor/
- jiuwenswarm/channels/ide/packages/vscode-extension/src/swarm/
- jiuwenswarm/channels/ide/packages/vscode-extension/src/ui/StatusBar.ts
- owner: ide-vscode
path: repos/jiuwenswarm/components/ide-vscode/_index.md
signals:
- ide vscode
scope_prefixes:
- jiuwenswarm/channels/ide/packages/vscode-extension/src/terminal/TerminalManager.ts
- jiuwenswarm/channels/ide/packages/vscode-extension/src/ui/ChatPanel.ts
- owner: sandbox-runtime
path: repos/jiuwenswarm/components/sandbox-runtime/_index.md
signals:
- sandbox runtime
scope_prefixes:
- jiuwenbox/src/jiuwenbox/proxy/inference_privacy_proxy.py
- jiuwenbox/src/jiuwenbox/proxy/inference_privacy_proxy_manager.py
- jiuwenbox/src/jiuwenbox/server/app.py
Comment on lines +555 to +557

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep broad subpackage routes from consuming the cap

These new narrow routes overlap the pre-existing subpackages prefixes (jiuwenbox/ and sdks/). For a descriptionless PR changing the sandbox app, SDK client, and TUI, Direct ranks the generic subpackages route first, then adds sandbox-runtime and sdk-clients, exhausting its three-route cap and omitting tui-client even though that owner was touched. Remove or narrow the generic coverage, or otherwise ensure each file resolves to its nearest owner without consuming duplicate route slots.

AGENTS.md reference: AGENTS.md:L11-L17

Useful? React with 👍 / 👎.

- owner: sdk-clients
path: repos/jiuwenswarm/components/sdk-clients/_index.md
signals:
- sdk clients
scope_prefixes:
- sdks/python/src/jiuwenswarm_sdk/client.py
- owner: tui-client
path: repos/jiuwenswarm/components/tui-client/_index.md
signals:
- tui client
scope_prefixes:
- jiuwenswarm/channels/tui/frontend/src/core/commands/builtins/autofix-pr.ts
- jiuwenswarm/channels/tui/frontend/src/core/commands/builtins/autofix-pr.watch.ts
- jiuwenswarm/channels/tui/frontend/src/index.ts
- jiuwenswarm/channels/tui/
- owner: packaging-deploy-2
path: repos/jiuwenswarm/components/packaging-deploy/_index.md
signals:
- 打包
- build
- electron
- inno
- hap
- harmony
- pyinstaller
- wheel
- tui
- 签名
- notarize
- playwright mcp runtime
- nfs
- setup_nfs
- teardown_nfs
- 共享存储挂载
- 多实例部署脚本
scope_prefixes:
- scripts/build-electron-exe.ps1
- scripts/build-electron-exe.sh
- scripts/build-exe.bat
- scripts/build-exe.ps1
- scripts/build-harmony-hap.sh
- scripts/build-harmony.sh
- scripts/build-macos.sh
- scripts/build-runtimes.psm1
- scripts/build-runtimes.sh
- scripts/build.ps1
- scripts/build.sh
- scripts/build_config.py
- scripts/build_python_packages.py
- scripts/build_tui.py
- scripts/harmony_entry.py
- scripts/installer-electron.iss
- scripts/installer.iss
- scripts/jiuwenswarm.iss
- scripts/jiuwenswarm.spec
- scripts/jiuwenswarm_exe_entry.py
- scripts/openjiuwen_team_mcp_exe_entry.py
- scripts/reset_trajectory_data.py
- scripts/update_playwright_mcp_runtime.py
- scripts/verify_a2ui_bundle.py
- scripts/verify_gitcode_cli_bundle.py
- scripts/verify_playwright_mcp_bundle.py
- scripts/verify_playwright_mcp_offline.py
- scripts/verify_rsi_bundle.py
- scripts/nfs/
1 change: 1 addition & 0 deletions knowledge/repos/jiuwenswarm/components/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ sources: []
- [sandbox-runtime](sandbox-runtime/_index.md)
- [subpackages](subpackages/_index.md)
- [config-resources](config-resources/_index.md)
- [ide-vscode](ide-vscode/_index.md)
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,12 @@ sources: []
- [sidepanel](sidepanel/_index.md)
- [webview](webview/_index.md)
- [Chromium 浏览器扩展:实现深读](feature-depth-browser-client.md)

## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:browser client。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| browser client | 入口 | `jiuwenswarm/channels/browser/frontend/src/background/index.ts`、`jiuwenswarm/channels/browser/frontend/src/sidepanel/index.ts`、`jiuwenswarm/channels/browser/` |
4 changes: 3 additions & 1 deletion knowledge/repos/jiuwenswarm/components/common-core/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ sources: []

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| common、config、配置、模型选择、model catalog、mode、工作区、cron、updater、doctor、hooks、kv cache… | 入口 | `jiuwenswarm/common/config.py`、`jiuwenswarm/common/model_catalog.py`、`jiuwenswarm/common/mcp_config.py`、`jiuwenswarm/common/_build_config.py` |
| common、config、配置、模型选择、model catalog、mode、工作区、cron、updater、doctor、hooks、kv cache… | 入口 | `jiuwenswarm/common/config.py`、`jiuwenswarm/common/model_catalog.py`、`jiuwenswarm/common/mcp_config.py` |


- [jiuwenswarm/common 审查规则:配置读写事务、跨仓契约与持久化键稳定性](rules.md)

Expand All @@ -46,3 +47,4 @@ sources: []
- [模型平台与 API 配置:实现深读](feature-depth-models.md)
- [MCP 配置、凭据与资源:实现深读](feature-depth-mcp.md)
- [外部 Claude 与 Codex CLI 智能体:实现深读](feature-depth-external-cli-agents.md)
- [开发辅助脚本(scripts/)](jiuwenswarm-scripts.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: "开发辅助脚本(scripts/)"
created: 2026-10-05
updated: 2026-10-05
type: architecture
tags: [jiuwenswarm]
sources: []
---

# 开发辅助脚本(scripts/)

存放仓库的开发辅助 Node.js 脚本:扫描 agent 资源目录生成文件夹索引并在开发时监听变更、把 WhatsApp 消息桥接到 WebSocket 频道。它们不属于运行时核心,而是生成产物与联调工具。

**入口文件**

- `jiuwenswarm/scripts/generate-agent-folders.js` — 遍历 agent 资源目录(可用环境变量覆盖根路径),把各语言后缀的 Markdown 文件归组并输出排序后的文件夹索引数据。
- `jiuwenswarm/scripts/whatsapp-bridge.js` — 连接 WhatsApp(@whiskeysockets/baileys)并通过 WebSocket 服务转发消息,带二维码终端打印、状态广播与自动重连。

**其他关键文件**

- `jiuwenswarm/scripts/watch-folders.js` — 开发模式下的监听器:用 chokidar 监视 agent 目录(环境变量或仓库回退路径),变更时以子进程重新执行生成脚本。

**相关文档**

- `docs/README.md`

**Routes**

- `jiuwenswarm/scripts/`
9 changes: 9 additions & 0 deletions knowledge/repos/jiuwenswarm/components/ide-clients/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,12 @@ sources: []
- [vscode-extension-src](vscode-extension-src/_index.md)
- [VS Code 客户端:实现深读](feature-depth-vscode.md)
- [JetBrains 客户端:实现深读](feature-depth-jetbrains.md)

## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:ide clients。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| ide clients | 入口 | `jiuwenswarm/channels/ide/packages/jetbrains-plugin/src/main/kotlin/com/jiuwenswarm/plugin/JiuwenSwarmService.kt`、`jiuwenswarm/channels/ide/packages/jetbrains-plugin/src/main/kotlin/com/jiuwenswarm/plugin/ui/ChatToolWindow.kt`、`jiuwenswarm/channels/ide/packages/vscode-extension/src/editor/DiffApplier.ts` |
21 changes: 21 additions & 0 deletions knowledge/repos/jiuwenswarm/components/ide-vscode/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: "ide-vscode"
created: 2026-10-05
updated: 2026-10-05
type: index
tags: [jiuwenswarm]
sources: []
---

# ide-vscode

- IDE 终端命令镜像执行 (`ide-terminal-command-mirror`)

## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:ide vscode。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| ide vscode | 入口 | `jiuwenswarm/channels/ide/packages/vscode-extension/src/terminal/TerminalManager.ts`、`jiuwenswarm/channels/ide/packages/vscode-extension/src/ui/ChatPanel.ts` |
11 changes: 11 additions & 0 deletions knowledge/repos/jiuwenswarm/components/packaging-deploy/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,14 @@ sources: []
- [scripts](scripts/_index.md)
- [scripts-nfs](scripts-nfs/_index.md)
- [打包与部署:实现深读](feature-depth-deployment.md)
- [scripts/ — 打包与构建脚本](scripts.md)
- [NFS 部署脚本(scripts/nfs)](scripts-nfs.md)
Comment on lines +19 to +20

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Merge script summaries into the existing indexed pages

These links create scripts.md and scripts-nfs.md alongside the already-linked scripts/_index.md and scripts-nfs/_index.md, duplicating the same module summaries and source contracts under two canonical-looking destinations. Future edits can leave the parallel pages inconsistent; merge the new architecture material into the existing indexed destinations instead of maintaining synonymous pages.

AGENTS.md reference: AGENTS.md:L7-L11

Useful? React with 👍 / 👎.


## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:打包、build、electron、inno、hap、harmony、pyinstaller、wheel、tui、签名、notarize、playwright mcp runtime。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| 打包、build、electron、inno、hap、harmony、pyinstaller、wheel、tui、签名、notarize、playwright… | 入口 | `scripts/build-electron-exe.ps1`、`scripts/build-electron-exe.sh`、`scripts/build-exe.bat` |
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "NFS 部署脚本(scripts/nfs)"
created: 2026-10-05
updated: 2026-10-05
type: architecture
tags: [jiuwenswarm]
sources: []
---

# NFS 部署脚本(scripts/nfs)

提供在服务器与客户端上安装和卸载 NFS 共享存储的 bash 脚本,用于多实例部署时挂载共享目录。四个脚本分别覆盖服务端/客户端的 setup 与 teardown。

**入口脚本**

- `scripts/nfs/setup_nfs_server.sh` — 在服务端安装并导出 NFS 共享目录,先读这个了解配置的共享路径与导出参数
- `scripts/nfs/setup_nfs_client.sh` — 在客户端挂载服务端导出的 NFS 目录

**其余脚本**

- `scripts/nfs/teardown_nfs_server.sh` — 服务端卸载:取消导出并清理 NFS 服务
- `scripts/nfs/teardown_nfs_client.sh` — 客户端卸载:解除挂载并清理

**相关文档**

- `README_CN.md` — 安装与部署总览,了解 NFS 脚本在部署流程中的位置
- `docs/README.md` — 文档总导航,定位多实例/部署相关文档

**Routes**

- `scripts/nfs/`
75 changes: 75 additions & 0 deletions knowledge/repos/jiuwenswarm/components/packaging-deploy/scripts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: "scripts/ — 打包与构建脚本"
created: 2026-10-05
updated: 2026-10-05
type: architecture
tags: [jiuwenswarm]
sources: []
---

# scripts/ — 打包与构建脚本

该模块集中了 JiuwenSwarm 各平台的打包构建脚本(Windows/macOS Electron 与 exe、鸿蒙 HAP、wheel 包、TUI 二进制)、PyInstaller 打包入口与配置,以及冻结产物的离线校验脚本。构建标识(应用名、版本、产物文件名)统一由 build_config.py 从根 pyproject.toml 派生并同步到各打包文件。

**构建入口**

- `scripts/build_config.py` — 构建标识的唯一事实来源:从 pyproject.toml 读取并派生各平台产物名,检测/写回各打包文件中的版本漂移
- `scripts/build-electron-exe.ps1` — Windows Electron 安装包入口(依赖 → 前端 → PyInstaller → Inno Setup)
- `scripts/build-electron-exe.sh` — macOS Electron 打包入口,与 Windows 版流程对应
- `scripts/build-exe.ps1` — Windows 纯 Python exe 打包入口(uv sync → npm build → PyInstaller → Inno Setup)
- `scripts/build-macos.sh` — macOS .app/.dmg 打包入口,按机器是否配置签名身份自动决定是否签名/公证
- `scripts/build.sh` — 通用打包入口:编译 web 前端并构建含前端 dist 的 wheel 包(Windows 对应 build.ps1)
- `scripts/build-harmony.sh` — 鸿蒙 .hap 打包入口(前端构建 → HNP/rawfile → hvigorw)
- `scripts/build_python_packages.py` — 构建 root/sidecar/jiuwenbox wheel 与 TUI 二进制的统一驱动
- `scripts/jiuwenswarm_exe_entry.py` — PyInstaller 打包后的主入口:分发主应用与子命令(含 Windows 单实例锁、捆绑二进制转发)
- `scripts/harmony_entry.py` — 鸿蒙端服务编排入口:启动 AgentServer、Gateway、Web 前端并输出 HARMONY_READY 信号

**关键文件**

- `scripts/jiuwenswarm.spec` — PyInstaller 打包配置,列出后端冻结所需的隐藏导入与资源
- `scripts/build-runtimes.sh` — Node 运行时解析与绑定的共享实现(macOS 两条打包链路的单一来源),build-runtimes.psm1 是其 PowerShell 对应
- `scripts/jiuwenswarm.iss` — Inno Setup 安装包定义(另有 installer.iss / installer-electron.iss)
- `scripts/build_tui.py` — 跨平台构建 TUI 二进制,含 macOS 签名修正
- `scripts/update_playwright_mcp_runtime.py` — 生成可复现、免 npm 的 Playwright MCP 运行时归档并提交仓库
- `scripts/verify_playwright_mcp_bundle.py` — 冻结产物校验:Node 与 Playwright MCP CLI(同类还有 verify_a2ui_bundle / verify_gitcode_cli_bundle / verify_rsi_bundle / verify_playwr
- `scripts/reset_trajectory_data.py` — 清理旧轨迹契约(schema v2/4/2 之前)遗留的工作区数据
- `scripts/openjiuwen_team_mcp_exe_entry.py` — 捆绑的 OpenJiuWen team MCP server 的 PyInstaller 入口
- `scripts/run_gateway_acp.sh` — ACP 模式下启动 Gateway 的 shell 包装(Windows 对应 run_gateway_acp.cmd)
- `scripts/build-harmony-hap.sh` — 不用 DevEco Studio、纯 CLI 的 HAP 五阶段手动构建脚本

**相关文档**

- `docs/README.md` — 需要各平台构建或部署的完整说明时先查这里
- `docs/zh/HarmonyOS_Dev_Workflow_Test_Guide.md` — 改动 build-harmony*.sh 或 harmony_entry.py 时读
- `TESTING.md` — 打包契约测试(如 test_desktop_electron_contract.py)相关改动时读

**构建链路**

- `scripts/build-electron-exe.ps1`
- `scripts/build-electron-exe.sh`
- `scripts/build-exe.bat`
- `scripts/build-exe.ps1`
- `scripts/build-harmony-hap.sh`
- `scripts/build-harmony.sh`
- `scripts/build-macos.sh`
- `scripts/build-runtimes.psm1`
- `scripts/build-runtimes.sh`
- `scripts/build.ps1`
- `scripts/build.sh`
- `scripts/build_config.py`
- `scripts/build_python_packages.py`
- `scripts/build_tui.py`
- `scripts/harmony_entry.py`
- `scripts/installer-electron.iss`
- `scripts/installer.iss`
- `scripts/jiuwenswarm.iss`
- `scripts/jiuwenswarm.spec`
- `scripts/jiuwenswarm_exe_entry.py`
- `scripts/openjiuwen_team_mcp_exe_entry.py`
- `scripts/reset_trajectory_data.py`
- `scripts/update_playwright_mcp_runtime.py`
- `scripts/verify_a2ui_bundle.py`
- `scripts/verify_gitcode_cli_bundle.py`
- `scripts/verify_playwright_mcp_bundle.py`
- `scripts/verify_playwright_mcp_offline.py`
- `scripts/verify_rsi_bundle.py`
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,12 @@ sources: []
- [JiuwenBox 推理隐私代理功能知识](feature-sandbox-privacy-proxy.md)
- [JiuwenBox 隔离执行:实现深读](feature-depth-sandbox.md)
- [JiuwenBox 推理隐私代理:实现深读](feature-depth-sandbox-privacy-proxy.md)

## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:sandbox runtime。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| sandbox runtime | 入口 | `jiuwenbox/src/jiuwenbox/proxy/inference_privacy_proxy.py`、`jiuwenbox/src/jiuwenbox/proxy/inference_privacy_proxy_manager.py`、`jiuwenbox/src/jiuwenbox/server/app.py` |
9 changes: 9 additions & 0 deletions knowledge/repos/jiuwenswarm/components/sdk-clients/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,12 @@ sources: []
理解该代码 owner 的职责、接口、配置与相关功能时查这里;通用审查方法不属于本目录。
- [Python 与 TypeScript SDK 功能知识](feature-sdk.md)
- [Python 与 TypeScript SDK:实现深读](feature-depth-sdk.md)

## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:sdk clients。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| sdk clients | 入口 | `sdks/python/src/jiuwenswarm_sdk/client.py` |
9 changes: 9 additions & 0 deletions knowledge/repos/jiuwenswarm/components/tui-client/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,12 @@ sources: []
- [ui-rendering](ui-rendering/_index.md)
- [TUI 对话与命令:实现深读](feature-depth-tui.md)
- [已有 PR 自动修复:实现深读](feature-depth-autofix.md)

## 代码快速入口(Direct)
<!-- kb-init:quick-map -->

触发词:tui client。PR 描述或改动命中下表一行时,先读该行的规则,再读页面其余部分。

| PR 描述在做什么 | 精确规则 | 第一批 live 源码 |
|---|---|---|
| tui client | 入口 | `jiuwenswarm/channels/tui/frontend/src/core/commands/builtins/autofix-pr.ts`、`jiuwenswarm/channels/tui/frontend/src/core/commands/builtins/autofix-pr.watch.ts`、`jiuwenswarm/channels/tui/frontend/src/index.ts` |
Loading