@agentunion/kite 1.3.2 → 1.5.0
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/CHANGELOG.md +302 -0
- package/cli.js +119 -4
- package/core/dependency_checker.py +250 -0
- package/core/env_checker.py +490 -0
- package/dependencies_lock.json +128 -0
- package/extensions/agents/assistant/entry.py +111 -1
- package/extensions/agents/assistant/server.py +279 -215
- package/extensions/channels/acp_channel/entry.py +111 -1
- package/extensions/channels/acp_channel/module.md +23 -22
- package/extensions/channels/acp_channel/server.py +279 -215
- package/extensions/event_hub_bench/entry.py +107 -1
- package/extensions/services/backup/entry.py +306 -21
- package/extensions/services/backup/module.md +24 -22
- package/extensions/services/evol/auth_manager.py +443 -0
- package/extensions/services/evol/config.yaml +149 -0
- package/extensions/services/evol/config_loader.py +117 -0
- package/extensions/services/evol/entry.py +406 -0
- package/extensions/services/evol/evol_api.py +173 -0
- package/extensions/services/evol/evol_config.json5 +29 -0
- package/extensions/services/evol/migrate_tokens.py +122 -0
- package/extensions/services/evol/module.md +32 -0
- package/extensions/services/evol/pairing.py +250 -0
- package/extensions/services/evol/pairing_codes.jsonl +1 -0
- package/extensions/services/evol/relay.py +682 -0
- package/extensions/services/evol/relay_config.json5 +67 -0
- package/extensions/services/evol/routes/__init__.py +1 -0
- package/extensions/services/evol/routes/routes_management_ws.py +127 -0
- package/extensions/services/evol/routes/routes_rpc.py +89 -0
- package/extensions/services/evol/routes/routes_test.py +61 -0
- package/extensions/services/evol/server.py +875 -0
- package/extensions/services/evol/static/css/style.css +1200 -0
- package/extensions/services/evol/static/index.html +781 -0
- package/extensions/services/evol/static/index_evol.html +14 -0
- package/extensions/services/evol/static/js/app.js +6304 -0
- package/extensions/services/evol/static/js/auth.js +326 -0
- package/extensions/services/evol/static/js/dialog.js +285 -0
- package/extensions/services/evol/static/js/evol-app-fixed.js +50 -0
- package/extensions/services/evol/static/js/evol-app.js +1949 -0
- package/extensions/services/evol/static/js/evol-app.js.bak +1800 -0
- package/extensions/services/evol/static/js/kernel-client-example.js +228 -0
- package/extensions/services/evol/static/js/kernel-client.js +396 -0
- package/extensions/services/evol/static/js/main.js +141 -0
- package/extensions/services/evol/static/js/registry-tests.js +585 -0
- package/extensions/services/evol/static/js/stats.js +217 -0
- package/extensions/services/evol/static/js/token-manager.js +175 -0
- package/extensions/services/evol/static/pairing.html +248 -0
- package/extensions/services/evol/static/test_registry.html +262 -0
- package/extensions/services/evol/static/test_relay.html +462 -0
- package/extensions/services/evol/stats_manager.py +240 -0
- package/extensions/services/model_service/entry.py +167 -19
- package/extensions/services/model_service/module.md +21 -22
- package/extensions/services/proxy/.claude/settings.local.json +13 -0
- package/extensions/services/proxy/CHANGELOG_20260308.md +258 -0
- package/extensions/services/proxy/_fix_prints.py +133 -0
- package/extensions/services/proxy/_fix_prints2.py +87 -0
- package/extensions/services/proxy/agentcp/LICENCE +178 -0
- package/extensions/services/proxy/agentcp/README copy.md +85 -0
- package/extensions/services/proxy/agentcp/README.md +260 -0
- package/extensions/services/proxy/agentcp/__init__.py +16 -0
- package/extensions/services/proxy/agentcp/agent.py +4 -0
- package/extensions/services/proxy/agentcp/agentcp.py +2494 -0
- package/extensions/services/proxy/agentcp/agentprofile.json +89 -0
- package/extensions/services/proxy/agentcp/ap/__init__.py +16 -0
- package/extensions/services/proxy/agentcp/ap/ap_client.py +316 -0
- package/extensions/services/proxy/agentcp/assets/images/wechat_qr.png +0 -0
- package/extensions/services/proxy/agentcp/backup/metrics.json +31 -0
- package/extensions/services/proxy/agentcp/base/__init__.py +20 -0
- package/extensions/services/proxy/agentcp/base/auth_client.py +257 -0
- package/extensions/services/proxy/agentcp/base/client.py +112 -0
- package/extensions/services/proxy/agentcp/base/env.py +34 -0
- package/extensions/services/proxy/agentcp/base/html_util.py +336 -0
- package/extensions/services/proxy/agentcp/base/log.py +98 -0
- package/extensions/services/proxy/agentcp/ca/__init__.py +17 -0
- package/extensions/services/proxy/agentcp/ca/ca_client.py +414 -0
- package/extensions/services/proxy/agentcp/ca/ca_root.py +74 -0
- package/extensions/services/proxy/agentcp/context/__init__.py +20 -0
- package/extensions/services/proxy/agentcp/context/context.py +73 -0
- package/extensions/services/proxy/agentcp/context/exceptions.py +114 -0
- package/extensions/services/proxy/agentcp/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/create_profile_weather.py +125 -0
- package/extensions/services/proxy/agentcp/db/__init__.py +15 -0
- package/extensions/services/proxy/agentcp/db/db_mananger.py +550 -0
- package/extensions/services/proxy/agentcp/docs/UDP_HEARTBEAT_FIX_REPORT.md +265 -0
- package/extensions/services/proxy/agentcp/docs/heartbeat_issue_analysis.md +291 -0
- package/extensions/services/proxy/agentcp/file/__init__.py +16 -0
- package/extensions/services/proxy/agentcp/file/file_client.py +141 -0
- package/extensions/services/proxy/agentcp/file/wss_binary_message.py +137 -0
- package/extensions/services/proxy/agentcp/hcp.py +299 -0
- package/extensions/services/proxy/agentcp/heartbeat/__init__.py +16 -0
- package/extensions/services/proxy/agentcp/heartbeat/heartbeat_client.py +360 -0
- package/extensions/services/proxy/agentcp/improved_scheduler.py +498 -0
- package/extensions/services/proxy/agentcp/llm_agent_utils.py +249 -0
- package/extensions/services/proxy/agentcp/llm_server.py +172 -0
- package/extensions/services/proxy/agentcp/mermaid.py +210 -0
- package/extensions/services/proxy/agentcp/message.py +149 -0
- package/extensions/services/proxy/agentcp/metrics.py +256 -0
- package/extensions/services/proxy/agentcp/monitoring/__init__.py +20 -0
- package/extensions/services/proxy/agentcp/monitoring/global_monitor.py +27 -0
- package/extensions/services/proxy/agentcp/monitoring/metrics_store.py +325 -0
- package/extensions/services/proxy/agentcp/monitoring/monitoring_service.py +269 -0
- package/extensions/services/proxy/agentcp/monitoring/sliding_window.py +222 -0
- package/extensions/services/proxy/agentcp/monitoring/standalone_reader.py +224 -0
- package/extensions/services/proxy/agentcp/msg/__init__.py +21 -0
- package/extensions/services/proxy/agentcp/msg/connection_manager.py +456 -0
- package/extensions/services/proxy/agentcp/msg/message_client.py +2058 -0
- package/extensions/services/proxy/agentcp/msg/message_serialize.py +263 -0
- package/extensions/services/proxy/agentcp/msg/open_ai_message.py +88 -0
- package/extensions/services/proxy/agentcp/msg/session_manager.py +1062 -0
- package/extensions/services/proxy/agentcp/msg/stream_client.py +267 -0
- package/extensions/services/proxy/agentcp/msg/websocket_file_receiver.py +89 -0
- package/extensions/services/proxy/agentcp/msg/ws_logger.py +685 -0
- package/extensions/services/proxy/agentcp/msg/wss_binary_message.py +137 -0
- package/extensions/services/proxy/agentcp/requirements.txt +7 -0
- package/extensions/services/proxy/agentcp/samples/agent_graph/README.md +37 -0
- package/extensions/services/proxy/agentcp/samples/agent_graph/agentprofile.json +89 -0
- package/extensions/services/proxy/agentcp/samples/agent_graph/create_profile.py +138 -0
- package/extensions/services/proxy/agentcp/samples/agent_graph/main.py +164 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/create_profile.py +123 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/llm/create_profile.py +129 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/llm/env.json +5 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/llm/main.py +146 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/main.py +123 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/readme.md +379 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/search/create_profile.py +129 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/search/main.py +28 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/tool/create_profile.py +129 -0
- package/extensions/services/proxy/agentcp/samples/agent_use/tool/main.py +20 -0
- package/extensions/services/proxy/agentcp/samples/ali_amap/README.md +97 -0
- package/extensions/services/proxy/agentcp/samples/ali_amap/amap_agent.py +88 -0
- package/extensions/services/proxy/agentcp/samples/ali_amap/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/compute_agent/agent/powershell.py +228 -0
- package/extensions/services/proxy/agentcp/samples/compute_agent/agent/software.py +63 -0
- package/extensions/services/proxy/agentcp/samples/compute_agent/agent/tools.py +36 -0
- package/extensions/services/proxy/agentcp/samples/compute_agent/browser_user.py +41 -0
- package/extensions/services/proxy/agentcp/samples/deepseek/README.md +79 -0
- package/extensions/services/proxy/agentcp/samples/deepseek/create_profile.py +126 -0
- package/extensions/services/proxy/agentcp/samples/deepseek/deepseek.py +42 -0
- package/extensions/services/proxy/agentcp/samples/dify_chat/README.md +78 -0
- package/extensions/services/proxy/agentcp/samples/dify_chat/create_profile.py +126 -0
- package/extensions/services/proxy/agentcp/samples/dify_chat/dify_chat.py +47 -0
- package/extensions/services/proxy/agentcp/samples/dify_workflow/README.md +78 -0
- package/extensions/services/proxy/agentcp/samples/dify_workflow/create_profile.py +126 -0
- package/extensions/services/proxy/agentcp/samples/dify_workflow/dify_workflow.py +46 -0
- package/extensions/services/proxy/agentcp/samples/executor/README.md +44 -0
- package/extensions/services/proxy/agentcp/samples/executor/agentprofile.json +89 -0
- package/extensions/services/proxy/agentcp/samples/executor/create_profile.py +139 -0
- package/extensions/services/proxy/agentcp/samples/executor/main.py +160 -0
- package/extensions/services/proxy/agentcp/samples/filereader/README.md +45 -0
- package/extensions/services/proxy/agentcp/samples/filereader/agentprofile.json +90 -0
- package/extensions/services/proxy/agentcp/samples/filereader/create_profile.py +137 -0
- package/extensions/services/proxy/agentcp/samples/filereader/main.py +253 -0
- package/extensions/services/proxy/agentcp/samples/filewriter/README.md +38 -0
- package/extensions/services/proxy/agentcp/samples/filewriter/agentprofile.json +91 -0
- package/extensions/services/proxy/agentcp/samples/filewriter/create_profile.py +138 -0
- package/extensions/services/proxy/agentcp/samples/filewriter/main.py +289 -0
- package/extensions/services/proxy/agentcp/samples/hcp/README.md +85 -0
- package/extensions/services/proxy/agentcp/samples/hcp/acp_weather_agent.zip +0 -0
- package/extensions/services/proxy/agentcp/samples/hcp/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/hcp/hcp.py +237 -0
- package/extensions/services/proxy/agentcp/samples/helloworld/README.md +68 -0
- package/extensions/services/proxy/agentcp/samples/helloworld/hello_world.py +40 -0
- package/extensions/services/proxy/agentcp/samples/llm_agent/MEADME.md +117 -0
- package/extensions/services/proxy/agentcp/samples/llm_agent/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/llm_agent/qwen_agent.py +136 -0
- package/extensions/services/proxy/agentcp/samples/local_llm_agent/README.md +90 -0
- package/extensions/services/proxy/agentcp/samples/local_llm_agent/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/local_llm_agent/main.py +49 -0
- package/extensions/services/proxy/agentcp/samples/query_llm_from_agent/README.md +55 -0
- package/extensions/services/proxy/agentcp/samples/query_llm_from_agent/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/query_llm_from_agent/main.py +23 -0
- package/extensions/services/proxy/agentcp/samples/query_weather_api_agent/README.md +103 -0
- package/extensions/services/proxy/agentcp/samples/query_weather_api_agent/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/query_weather_api_agent/main.py +69 -0
- package/extensions/services/proxy/agentcp/samples/query_weather_from_agent/README.md +58 -0
- package/extensions/services/proxy/agentcp/samples/query_weather_from_agent/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/query_weather_from_agent/main.py +25 -0
- package/extensions/services/proxy/agentcp/samples/qwen3/README.md +71 -0
- package/extensions/services/proxy/agentcp/samples/qwen3/create_profile.py +126 -0
- package/extensions/services/proxy/agentcp/samples/qwen3/qwen3.py +37 -0
- package/extensions/services/proxy/agentcp/samples/qwen3_tools/README.md +133 -0
- package/extensions/services/proxy/agentcp/samples/qwen3_tools/create_profile.py +126 -0
- package/extensions/services/proxy/agentcp/samples/qwen3_tools/qwen3_tools.py +98 -0
- package/extensions/services/proxy/agentcp/samples/search/create_profile_qwen.py +125 -0
- package/extensions/services/proxy/agentcp/samples/search/create_profile_search.py +125 -0
- package/extensions/services/proxy/agentcp/samples/search/qwen_agent.py +136 -0
- package/extensions/services/proxy/agentcp/samples/search/search_agent.py +170 -0
- package/extensions/services/proxy/agentcp/samples/wrapper_agently_to_agent/README.md +89 -0
- package/extensions/services/proxy/agentcp/samples/wrapper_agently_to_agent/create_profile.py +125 -0
- package/extensions/services/proxy/agentcp/samples/wrapper_agently_to_agent/main.py +44 -0
- package/extensions/services/proxy/agentcp/utils/__init__.py +15 -0
- package/extensions/services/proxy/agentcp/utils/file_util.py +117 -0
- package/extensions/services/proxy/agentcp/utils/proxy_bypass.py +99 -0
- package/extensions/services/proxy/agentcp/workflow.py +203 -0
- package/extensions/services/proxy/console_auth.py +109 -0
- package/extensions/services/proxy/evol/__init__.py +1 -0
- package/extensions/services/proxy/evol/config.py +37 -0
- package/extensions/services/proxy/evol/http/__init__.py +1 -0
- package/extensions/services/proxy/evol/http/async_http.py +551 -0
- package/extensions/services/proxy/evol/log.py +28 -0
- package/extensions/services/proxy/evol/presenter/__init__.py +2 -0
- package/extensions/services/proxy/evol/presenter/agentIdPresenter.py +1031 -0
- package/extensions/services/proxy/evol/presenter/apikeyPresenter.py +106 -0
- package/extensions/services/proxy/evol/presenter/configPresenter.py +1281 -0
- package/extensions/services/proxy/evol/presenter/userPresenter.py +477 -0
- package/extensions/services/proxy/evol/server/__init__.py +1 -0
- package/extensions/services/proxy/evol/server/claude_proxy_async.py +3430 -0
- package/extensions/services/proxy/evol/server/openclaw_proxy.py +1861 -0
- package/extensions/services/proxy/evol/server/proxy_config.py +15 -0
- package/extensions/services/proxy/evol/server/proxy_engine.py +501 -0
- package/extensions/services/proxy/evol/version.py +24 -0
- package/extensions/services/proxy/logs/websocket.log +260 -0
- package/extensions/services/proxy/main.py +240 -0
- package/extensions/services/proxy/requirements.txt +13 -0
- package/extensions/services/proxy/server.py +271 -0
- package/extensions/services/watchdog/entry.py +215 -26
- package/extensions/services/watchdog/module.md +1 -0
- package/extensions/services/watchdog/monitor.py +178 -38
- package/extensions/services/web/WEBSOCKET_STATUS.md +143 -0
- package/extensions/services/web/config_example.py +35 -0
- package/extensions/services/web/config_loader.py +110 -0
- package/extensions/services/web/entry.py +114 -26
- package/extensions/services/web/module.md +35 -24
- package/extensions/services/web/pairing.py +250 -0
- package/extensions/services/web/pairing_codes.jsonl +16 -0
- package/extensions/services/web/relay.py +643 -0
- package/extensions/services/web/relay_config.json5 +67 -0
- package/extensions/services/web/routes/routes_management_ws.py +127 -0
- package/extensions/services/web/routes/routes_rpc.py +89 -0
- package/extensions/services/web/routes/routes_test.py +61 -0
- package/extensions/services/web/routes/schemas.py +0 -22
- package/extensions/services/web/server.py +434 -99
- package/extensions/services/web/static/css/style.css +67 -28
- package/extensions/services/web/static/index.html +234 -44
- package/extensions/services/web/static/js/app.js +1335 -48
- package/extensions/services/web/static/js/kernel-client-example.js +161 -0
- package/extensions/services/web/static/js/kernel-client.js +383 -0
- package/extensions/services/web/static/js/registry-tests.js +558 -0
- package/extensions/services/web/static/js/token-manager.js +175 -0
- package/extensions/services/web/static/pairing.html +248 -0
- package/extensions/services/web/static/test_registry.html +262 -0
- package/extensions/services/web/web_config.json5 +29 -0
- package/kernel/entry.py +120 -32
- package/kernel/event_hub.py +141 -16
- package/kernel/module.md +60 -33
- package/kernel/registry_store.py +45 -36
- package/kernel/rpc_router.py +152 -59
- package/kernel/server.py +322 -26
- package/kite_cli/__init__.py +3 -0
- package/kite_cli/__main__.py +5 -0
- package/kite_cli/commands/__init__.py +1 -0
- package/kite_cli/commands/clean.py +101 -0
- package/kite_cli/commands/deps_install.py +67 -0
- package/kite_cli/commands/doctor.py +35 -0
- package/kite_cli/commands/env_check.py +45 -0
- package/kite_cli/commands/history.py +111 -0
- package/kite_cli/commands/info.py +96 -0
- package/kite_cli/commands/install.py +313 -0
- package/kite_cli/commands/list.py +143 -0
- package/kite_cli/commands/log.py +81 -0
- package/kite_cli/commands/prepare.py +49 -0
- package/kite_cli/commands/rollback.py +88 -0
- package/kite_cli/commands/search.py +73 -0
- package/kite_cli/commands/uninstall.py +85 -0
- package/kite_cli/commands/update.py +118 -0
- package/kite_cli/commands/venv_setup.py +56 -0
- package/kite_cli/core/__init__.py +1 -0
- package/kite_cli/core/checker.py +142 -0
- package/kite_cli/core/dependency.py +229 -0
- package/kite_cli/core/downloader.py +209 -0
- package/kite_cli/core/install_info.py +40 -0
- package/kite_cli/core/tool_installer.py +397 -0
- package/kite_cli/core/validator.py +78 -0
- package/kite_cli/main.py +317 -0
- package/kite_cli/utils/__init__.py +1 -0
- package/kite_cli/utils/i18n.py +252 -0
- package/kite_cli/utils/interactive.py +63 -0
- package/kite_cli/utils/operation_log.py +77 -0
- package/kite_cli/utils/paths.py +34 -0
- package/kite_cli/utils/version.py +308 -0
- package/launcher/entry.py +1124 -178
- package/launcher/logging_setup.py +104 -0
- package/launcher/module.md +46 -37
- package/launcher/module_scanner.py +11 -1
- package/main.py +4 -1
- package/package.json +9 -1
- package/python_version.json +4 -0
- package/requirements.txt +38 -0
- package/scripts/env-manager.js +328 -0
- package/scripts/plan_manager.py +315 -0
- package/scripts/python-env.js +79 -0
- package/scripts/scan_dependencies.py +461 -0
- package/scripts/setup-python-env.js +191 -0
- package/extensions/services/web/routes/routes_modules.py +0 -249
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,238 @@
|
|
|
1
|
+
# v1.5.0
|
|
2
|
+
|
|
3
|
+
**发布日期**:2026-03-09
|
|
4
|
+
**上一版本**:v1.4.0
|
|
5
|
+
**版本级别**:minor
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 核心变更
|
|
10
|
+
|
|
11
|
+
本次发布新增 **Evol 账户管理模块**(`extensions/services/evol/`),提供完整的 Evol AI 平台账户管理、设备配对、中转服务和 Web UI。同时新增 **环境管理系统**(`core/env_checker.py`、`scripts/env-manager.js`),实现 Python 环境自动检测、依赖安装和版本锁定,确保跨平台一致性。Kite CLI 新增 `prepare` 命令,支持依赖扫描和锁定文件生成。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 变更统计
|
|
16
|
+
|
|
17
|
+
| 类型 | 数量 | 说明 |
|
|
18
|
+
|------|------|------|
|
|
19
|
+
| 新增 | 368 | evol 模块(36 个)+ 环境管理(6 个)+ kite_cli 命令(4 个)+ 其他 |
|
|
20
|
+
| 删除 | 2 | CHANGELOG.md、package.json(版本更新) |
|
|
21
|
+
| 修改 | 21 | 核心入口、模块定义、服务实现 |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 关键变更
|
|
26
|
+
|
|
27
|
+
### 新增模块
|
|
28
|
+
|
|
29
|
+
**`extensions/services/evol/`** (36 个文件)
|
|
30
|
+
- **账户管理**:`auth_manager.py` (登录认证), `evol_api.py` (API 封装), `config_loader.py` (配置加载)
|
|
31
|
+
- **设备配对**:`pairing.py` (配对码管理), `pairing_codes.jsonl` (持久化存储), `migrate_tokens.py` (Token 迁移)
|
|
32
|
+
- **中转服务**:`relay.py` (Kernel WebSocket 中转), `relay_config.json5` (中转配置)
|
|
33
|
+
- **路由系统**:`routes_management_ws.py` (WebSocket 管理), `routes_rpc.py` (RPC 转发), `routes_test.py` (测试接口)
|
|
34
|
+
- **Web UI**:完整的前端界面(HTML/CSS/JS),支持登录、配对、中转测试
|
|
35
|
+
- **配置文件**:`config.yaml`, `evol_config.json5` (多层配置系统)
|
|
36
|
+
|
|
37
|
+
**`core/` 环境管理** (2 个文件)
|
|
38
|
+
- `env_checker.py` — Python 环境检测、依赖安装、版本验证
|
|
39
|
+
- `dependency_checker.py` — 依赖扫描和锁定文件生成
|
|
40
|
+
|
|
41
|
+
**`scripts/` 环境脚本** (4 个文件)
|
|
42
|
+
- `env-manager.js` — Node.js 环境管理器(PYTHONPATH 修复)
|
|
43
|
+
- `python-env.js` — Python 环境检测和安装
|
|
44
|
+
- `setup-python-env.js` — npm postinstall 钩子
|
|
45
|
+
- `scan_dependencies.py` — 依赖扫描工具
|
|
46
|
+
|
|
47
|
+
**`kite_cli/commands/`** (4 个文件)
|
|
48
|
+
- `prepare.py` — 打包准备命令(依赖锁定 + Python 版本记录)
|
|
49
|
+
- 其他命令增强
|
|
50
|
+
|
|
51
|
+
### 删除内容
|
|
52
|
+
|
|
53
|
+
- **`CHANGELOG.md`** — 将被新版本覆盖
|
|
54
|
+
- **`package.json`** — 版本号更新为 1.5.0
|
|
55
|
+
|
|
56
|
+
### 入口变更
|
|
57
|
+
|
|
58
|
+
**`main.py`** — 行数变化:18 行 → 21 行
|
|
59
|
+
- 新增环境检查逻辑
|
|
60
|
+
- 优化启动流程
|
|
61
|
+
|
|
62
|
+
**`cli.js`** — 新增环境管理器调用
|
|
63
|
+
- 启动前检查 Python 环境
|
|
64
|
+
- 自动修复 PYTHONPATH
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 架构演进
|
|
69
|
+
|
|
70
|
+
| 版本 | 核心模块 | CLI 命令 | 服务模块 | 包文件数 |
|
|
71
|
+
|------|---------|---------|---------|---------|
|
|
72
|
+
| v1.3.2 | 2 (kernel, launcher) | 10 | 5 | 88 |
|
|
73
|
+
| v1.4.0 | 2 (kernel, launcher) | 11 | 5 | 134 |
|
|
74
|
+
| v1.5.0 | 2 (kernel, launcher) | 12 | 6 (新增 evol) | 499 |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 设计原则
|
|
79
|
+
|
|
80
|
+
- ✅ **零共享代码依赖** — evol 模块可独立拷贝使用
|
|
81
|
+
- ✅ **跨平台兼容** — 环境管理支持 Windows/Linux/macOS
|
|
82
|
+
- ✅ **版本锁定** — `dependencies_lock.json` + `python_version.json` 确保环境一致性
|
|
83
|
+
- ✅ **自动化安装** — npm postinstall 自动检测和安装 Python 依赖
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 包信息
|
|
88
|
+
|
|
89
|
+
- **文件数**:499(+365 vs v1.4.0)
|
|
90
|
+
- **打包大小**:待验证
|
|
91
|
+
- **解压大小**:待验证
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 兼容性说明
|
|
96
|
+
|
|
97
|
+
本次发布为 minor 版本,向后兼容。新增功能不影响现有模块运行。
|
|
98
|
+
|
|
99
|
+
- ✅ CLI 接口保持兼容(`kite` 命令)
|
|
100
|
+
- ✅ Kernel WebSocket 协议保持兼容
|
|
101
|
+
- ✅ 现有模块无需修改即可运行
|
|
102
|
+
- ✅ 新增 `kite prepare` 命令,不影响现有命令
|
|
103
|
+
# v1.4.0
|
|
104
|
+
|
|
105
|
+
**发布日期**:2026-03-07
|
|
106
|
+
**上一版本**:v1.3.2
|
|
107
|
+
**版本级别**:minor
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 核心变更
|
|
112
|
+
|
|
113
|
+
本次发布新增 **Kite CLI 模块管理工具**(`kite_cli/`),提供模块安装、卸载、更新、搜索等完整生命周期管理能力。同时 Web 模块新增**配对机制**和 **Kernel 中转服务**,支持前端通过配对码安全连接 Kernel,实现 WebSocket 双向通信和 RPC 权限控制。
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 变更统计
|
|
118
|
+
|
|
119
|
+
| 类型 | 数量 | 说明 |
|
|
120
|
+
|------|------|------|
|
|
121
|
+
| 新增 | 46 | kite_cli 模块(28 个)+ web 功能扩展(18 个) |
|
|
122
|
+
| 删除 | 1 | routes_modules.py(被 routes_management_ws.py 替代) |
|
|
123
|
+
| 修改 | 30 | launcher、kernel、extensions 核心模块适配 |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 关键变更
|
|
128
|
+
|
|
129
|
+
### 新增模块
|
|
130
|
+
|
|
131
|
+
**`kite_cli/`** (28 个文件)
|
|
132
|
+
- **命令模块**(11 个):install, uninstall, update, list, info, doctor, history, log, search, clean, rollback
|
|
133
|
+
- **核心模块**(7 个):checker, dependency, downloader, install_info, tool_installer, validator
|
|
134
|
+
- **工具模块**(6 个):i18n, interactive, operation_log, paths, version
|
|
135
|
+
- **入口文件**:`main.py` (CLI 主入口), `__main__.py` (模块化启动)
|
|
136
|
+
|
|
137
|
+
**`extensions/services/web/`** (18 个文件)
|
|
138
|
+
- **配对机制**:`pairing.py` (配对码管理), `pairing_codes.jsonl` (持久化存储), `pairing.html` (配对界面)
|
|
139
|
+
- **中转服务**:`relay.py` (Kernel WebSocket 中转), `relay_config.json5` (中转配置)
|
|
140
|
+
- **配置系统**:`config_example.py`, `config_loader.py`, `web_config.json5`
|
|
141
|
+
- **路由扩展**:`routes_management_ws.py` (WebSocket 管理), `routes_rpc.py` (RPC 转发), `routes_test.py` (测试接口)
|
|
142
|
+
- **前端工具**:`kernel-client.js` (Kernel 客户端), `kernel-client-example.js`, `registry-tests.js`, `token-manager.js`, `test_registry.html`
|
|
143
|
+
- **文档**:`WEBSOCKET_STATUS.md` (WebSocket 状态说明)
|
|
144
|
+
|
|
145
|
+
**`scripts/`** (1 个文件)
|
|
146
|
+
- `plan_manager.py` — 计划管理工具
|
|
147
|
+
|
|
148
|
+
### 删除内容
|
|
149
|
+
|
|
150
|
+
- **`routes_modules.py`** — 被 `routes_management_ws.py` 替代(HTTP → WebSocket)
|
|
151
|
+
|
|
152
|
+
### 核心功能
|
|
153
|
+
|
|
154
|
+
**Kite CLI 模块管理**
|
|
155
|
+
```bash
|
|
156
|
+
# 安装模块
|
|
157
|
+
kite install <source>
|
|
158
|
+
|
|
159
|
+
# 卸载模块
|
|
160
|
+
kite uninstall <name>
|
|
161
|
+
|
|
162
|
+
# 更新模块
|
|
163
|
+
kite update <name>
|
|
164
|
+
|
|
165
|
+
# 列出已安装模块
|
|
166
|
+
kite list
|
|
167
|
+
|
|
168
|
+
# 搜索可用模块
|
|
169
|
+
kite search <keyword>
|
|
170
|
+
|
|
171
|
+
# 查看模块信息
|
|
172
|
+
kite info <name>
|
|
173
|
+
|
|
174
|
+
# 查看操作日志
|
|
175
|
+
kite log
|
|
176
|
+
|
|
177
|
+
# 回滚最后一次操作
|
|
178
|
+
kite rollback
|
|
179
|
+
|
|
180
|
+
# 清理临时文件
|
|
181
|
+
kite clean
|
|
182
|
+
|
|
183
|
+
# 检查下载工具状态
|
|
184
|
+
kite doctor
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Web 配对机制**
|
|
188
|
+
- 生成 6 位配对码(临时,不持久化)
|
|
189
|
+
- 前端输入配对码获取 frontend_token(30 天有效期)
|
|
190
|
+
- 支持 admin/guest 角色权限控制
|
|
191
|
+
- 配对记录持久化到 `pairing_codes.jsonl`
|
|
192
|
+
|
|
193
|
+
**Kernel 中转服务**
|
|
194
|
+
- 前端通过 WebSocket 连接 Web 模块
|
|
195
|
+
- Web 模块为每个前端创建到 Kernel 的连接
|
|
196
|
+
- 双向转发 JSON-RPC 消息
|
|
197
|
+
- RPC 权限白名单控制(admin 全权限,guest 受限)
|
|
198
|
+
- 前端模块生命周期管理(注册、重连、优雅退出)
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 架构演进
|
|
203
|
+
|
|
204
|
+
| 版本 | 核心模块 | CLI 工具 | Web 功能 | 包文件数 |
|
|
205
|
+
|------|---------|---------|---------|---------|
|
|
206
|
+
| v1.2.0 | 3 (event_hub, registry, launcher) | 无 | 基础 API | 97 |
|
|
207
|
+
| v1.3.1 | 2 (kernel, launcher) | 无 | 模块管理 API | 87 |
|
|
208
|
+
| v1.3.2 | 2 (kernel, launcher) | 无 | 断线重连防抖 | 88 |
|
|
209
|
+
| v1.4.0 | 2 (kernel, launcher) | kite_cli | 配对 + 中转 | 134 |
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 设计原则
|
|
214
|
+
|
|
215
|
+
- ✅ **零共享代码依赖** — `relay.py` 和 `pairing.py` 可独立拷贝使用
|
|
216
|
+
- ✅ **跨语言兼容** — WebSocket JSON-RPC 2.0 标准协议
|
|
217
|
+
- ✅ **安全性** — 配对码 + frontend_token 双重验证,RPC 权限白名单
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 包信息
|
|
222
|
+
|
|
223
|
+
- **文件数**:134(+46 vs v1.3.2)
|
|
224
|
+
- **打包大小**:311.5 kB(+103.5 kB)
|
|
225
|
+
- **解压大小**:1.4 MB
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 兼容性说明
|
|
230
|
+
|
|
231
|
+
本次发布为 minor 版本,向后兼容。新增功能不影响现有模块运行。
|
|
232
|
+
|
|
233
|
+
- ✅ CLI 接口保持兼容(`kite` 命令)
|
|
234
|
+
- ✅ Kernel WebSocket 协议保持兼容
|
|
235
|
+
- ✅ 现有模块无需修改即可运行
|
|
1
236
|
# v1.3.2
|
|
2
237
|
|
|
3
238
|
**发布日期**:2026-03-04
|
|
@@ -292,3 +527,70 @@
|
|
|
292
527
|
## 变更摘要
|
|
293
528
|
|
|
294
529
|
重大功能更新:新增三个扩展类型目录(agents、channels、services),引入统一日志工具 `kite_log.py`,新增 backup、model_service、web 三个服务模块。核心模块(launcher、registry、event_hub)进行了多项优化和增强,包括进程管理改进、事件路由优化、模块生命周期管理完善。打包文件数从 36 个增至 72 个,框架扩展性和功能完整度显著提升。
|
|
530
|
+
# v1.0.8
|
|
531
|
+
|
|
532
|
+
**发布日期**:2026-03-01
|
|
533
|
+
**上一版本**:v1.0.7
|
|
534
|
+
**版本级别**:patch
|
|
535
|
+
|
|
536
|
+
## 变更文件
|
|
537
|
+
|
|
538
|
+
### 修改
|
|
539
|
+
- `package.json` — `files` 字段新增 `!` 否定模式排除规则
|
|
540
|
+
|
|
541
|
+
## 变更摘要
|
|
542
|
+
|
|
543
|
+
修复 npm 打包时包含了不必要文件的问题。在 `package.json` 的 `files` 字段中添加排除规则(`!**/__pycache__`、`!**/*.pyc`、`!**/data`、`!**/bench_results`、`!core/event_hub_bench`),确保发布包不包含 Python 缓存、运行时数据和基准测试文件。包大小从 177.6 kB 降至 53.4 kB。
|
|
544
|
+
# v1.0.7
|
|
545
|
+
|
|
546
|
+
**发布日期**:2026-03-01
|
|
547
|
+
**上一版本**:无(首次发布)
|
|
548
|
+
**版本级别**:patch
|
|
549
|
+
|
|
550
|
+
## 变更文件
|
|
551
|
+
|
|
552
|
+
初始发布,包含所有文件:
|
|
553
|
+
|
|
554
|
+
### 根文件
|
|
555
|
+
- `cli.js`
|
|
556
|
+
- `main.py`
|
|
557
|
+
- `__main__.py`
|
|
558
|
+
- `__init__.py`
|
|
559
|
+
- `package.json`
|
|
560
|
+
|
|
561
|
+
### core/
|
|
562
|
+
- `core/__init__.py`
|
|
563
|
+
- `core/launcher/__init__.py`
|
|
564
|
+
- `core/launcher/entry.py`
|
|
565
|
+
- `core/launcher/process_manager.py`
|
|
566
|
+
- `core/launcher/module_scanner.py`
|
|
567
|
+
- `core/launcher/module.md`
|
|
568
|
+
- `core/registry/__init__.py`
|
|
569
|
+
- `core/registry/entry.py`
|
|
570
|
+
- `core/registry/server.py`
|
|
571
|
+
- `core/registry/store.py`
|
|
572
|
+
- `core/registry/module.md`
|
|
573
|
+
- `core/event_hub/__init__.py`
|
|
574
|
+
- `core/event_hub/entry.py`
|
|
575
|
+
- `core/event_hub/hub.py`
|
|
576
|
+
- `core/event_hub/router.py`
|
|
577
|
+
- `core/event_hub/dedup.py`
|
|
578
|
+
- `core/event_hub/server.py`
|
|
579
|
+
- `core/event_hub/bench.py`
|
|
580
|
+
- `core/event_hub/bench_extreme.py`
|
|
581
|
+
- `core/event_hub/bench_perf.py`
|
|
582
|
+
- `core/event_hub/module.md`
|
|
583
|
+
- `core/event_hub/BENCHMARK.md`
|
|
584
|
+
|
|
585
|
+
### extensions/
|
|
586
|
+
- `extensions/__init__.py`
|
|
587
|
+
- `extensions/services/__init__.py`
|
|
588
|
+
- `extensions/services/watchdog/__init__.py`
|
|
589
|
+
- `extensions/services/watchdog/entry.py`
|
|
590
|
+
- `extensions/services/watchdog/server.py`
|
|
591
|
+
- `extensions/services/watchdog/monitor.py`
|
|
592
|
+
- `extensions/services/watchdog/module.md`
|
|
593
|
+
|
|
594
|
+
## 变更摘要
|
|
595
|
+
|
|
596
|
+
Kite 框架首次发布到 npm。包含核心启动器(launcher)、模块注册中心(registry)、事件中心(event_hub)三个核心模块,以及 watchdog 服务扩展。提供 Node.js CLI 入口和 Python 主入口,支持 Windows、Linux、macOS 三平台。
|
package/cli.js
CHANGED
|
@@ -20,6 +20,7 @@ const { spawn, execSync } = require('child_process');
|
|
|
20
20
|
const crypto = require('crypto');
|
|
21
21
|
const fs = require('fs');
|
|
22
22
|
const path = require('path');
|
|
23
|
+
const { ensureEnvironment, markEnvFailed } = require('./scripts/env-manager');
|
|
23
24
|
|
|
24
25
|
// Timestamped console.log with delta + color
|
|
25
26
|
const _origLog = console.log.bind(console);
|
|
@@ -67,6 +68,82 @@ for (let i = 0; i < args.length; i++) {
|
|
|
67
68
|
|
|
68
69
|
const versionDir = path.join(kiteHome, 'versions', useVersion);
|
|
69
70
|
|
|
71
|
+
// Check if first arg is a CLI command or help/version flag
|
|
72
|
+
const cliCommands = ['install', 'uninstall', 'update', 'list', 'search', 'info', 'log', 'rollback', 'clean', 'doctor', 'history'];
|
|
73
|
+
const helpFlags = ['-h', '-H', '--help', 'help'];
|
|
74
|
+
const versionFlags = ['-v', '-V', '--version', 'version'];
|
|
75
|
+
|
|
76
|
+
// Handle no arguments - show brief help
|
|
77
|
+
if (args.length === 0) {
|
|
78
|
+
// Detect language from environment
|
|
79
|
+
const lang = (process.env.LANG || '').toLowerCase();
|
|
80
|
+
const isEnglish = lang.startsWith('en');
|
|
81
|
+
|
|
82
|
+
if (isEnglish) {
|
|
83
|
+
console.log('Kite CLI — Modular AI Framework');
|
|
84
|
+
console.log('');
|
|
85
|
+
console.log('Usage:');
|
|
86
|
+
console.log(' kite start Start Kite framework');
|
|
87
|
+
console.log(' kite list List installed modules');
|
|
88
|
+
console.log(' kite install <module> Install a module');
|
|
89
|
+
console.log(' kite -h, --help Show full help');
|
|
90
|
+
console.log(' kite -v, --version Show version');
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log('Run "kite -h" to see all available commands');
|
|
93
|
+
} else {
|
|
94
|
+
console.log('Kite CLI — 模块化 AI 框架');
|
|
95
|
+
console.log('');
|
|
96
|
+
console.log('用法:');
|
|
97
|
+
console.log(' kite start 启动 Kite 框架');
|
|
98
|
+
console.log(' kite list 列出已安装的模块');
|
|
99
|
+
console.log(' kite install <module> 安装模块');
|
|
100
|
+
console.log(' kite -h, --help 显示完整帮助信息');
|
|
101
|
+
console.log(' kite -v, --version 显示版本号');
|
|
102
|
+
console.log('');
|
|
103
|
+
console.log('运行 "kite -h" 查看所有可用命令');
|
|
104
|
+
}
|
|
105
|
+
process.exit(0);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Handle 'start' command - launch Kite framework
|
|
109
|
+
if (args[0] === 'start') {
|
|
110
|
+
// Remove 'start' from args and continue to framework launch
|
|
111
|
+
pythonArgs.splice(pythonArgs.indexOf('start'), 1);
|
|
112
|
+
// Continue to framework launch below
|
|
113
|
+
} else if (args.length > 0 && (cliCommands.includes(args[0]) || helpFlags.includes(args[0]) || versionFlags.includes(args[0]))) {
|
|
114
|
+
// Determine working directory for kite_cli
|
|
115
|
+
let cliWorkDir = versionDir;
|
|
116
|
+
|
|
117
|
+
// If running from development directory (has kite_cli/), use current directory
|
|
118
|
+
if (fs.existsSync(path.join(packageDir, 'kite_cli', '__init__.py'))) {
|
|
119
|
+
cliWorkDir = packageDir;
|
|
120
|
+
} else if (!fs.existsSync(path.join(versionDir, 'main.py'))) {
|
|
121
|
+
// Version not installed yet
|
|
122
|
+
console.log('[kite] CLI 命令需要先安装 Kite 框架');
|
|
123
|
+
console.log('[kite] 正在安装...');
|
|
124
|
+
// Will be installed below
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Only execute if we have a valid working directory
|
|
128
|
+
if (fs.existsSync(path.join(cliWorkDir, 'kite_cli', '__init__.py'))) {
|
|
129
|
+
// Use system Python (env_checker will handle venv)
|
|
130
|
+
const python = process.platform === 'win32' ? 'python' : 'python3';
|
|
131
|
+
const cliArgs = ['-m', 'kite_cli', ...args];
|
|
132
|
+
const result = spawn(python, cliArgs, {
|
|
133
|
+
cwd: cliWorkDir,
|
|
134
|
+
stdio: 'inherit',
|
|
135
|
+
env: {
|
|
136
|
+
...process.env,
|
|
137
|
+
KITE_PROJECT: cliWorkDir,
|
|
138
|
+
KITE_MODULES: modulesDir,
|
|
139
|
+
KITE_DATA: dataDir
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
result.on('exit', code => process.exit(code ?? 0));
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
70
147
|
// ── Install: copy framework to ~/.kite/versions/{ver}/ if needed ──
|
|
71
148
|
|
|
72
149
|
function copyDirSync(src, dest) {
|
|
@@ -133,6 +210,13 @@ if (!fs.existsSync(path.join(versionDir, 'main.py'))) {
|
|
|
133
210
|
install();
|
|
134
211
|
}
|
|
135
212
|
|
|
213
|
+
// 环境检查和准备(Node.js 层)
|
|
214
|
+
console.log('[kite] 检查环境...');
|
|
215
|
+
if (!ensureEnvironment(versionDir)) {
|
|
216
|
+
console.error('[kite] 环境准备失败,无法启动');
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
|
|
136
220
|
const kiteCwd = cwdOverride || process.cwd();
|
|
137
221
|
|
|
138
222
|
console.log(`[kite] 版本: ${useVersion}`);
|
|
@@ -152,20 +236,51 @@ const env = {
|
|
|
152
236
|
PYTHONUTF8: '1',
|
|
153
237
|
};
|
|
154
238
|
|
|
155
|
-
|
|
239
|
+
// Use venv Python (确保使用虚拟环境)
|
|
240
|
+
const venvPath = path.join(kiteHome, 'venv');
|
|
241
|
+
const python = process.platform === 'win32'
|
|
242
|
+
? path.join(venvPath, 'Scripts', 'python.exe')
|
|
243
|
+
: path.join(venvPath, 'bin', 'python');
|
|
244
|
+
|
|
245
|
+
// 检查虚拟环境 Python 是否存在
|
|
246
|
+
if (!fs.existsSync(python)) {
|
|
247
|
+
console.error(`[kite] 虚拟环境 Python 不存在: ${python}`);
|
|
248
|
+
console.error(`[kite] 环境准备可能失败,请重新运行 kite start`);
|
|
249
|
+
process.exit(1);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
console.log(`[kite] Python: ${python}`);
|
|
253
|
+
|
|
156
254
|
const child = spawn(
|
|
157
255
|
python,
|
|
158
|
-
[
|
|
256
|
+
[path.join(versionDir, 'main.py'), ...pythonArgs],
|
|
159
257
|
{ cwd: versionDir, env, stdio: 'inherit' }
|
|
160
258
|
);
|
|
161
259
|
|
|
162
260
|
child.on('error', err => {
|
|
163
261
|
console.error(`[kite] 启动 Python 失败: ${err.message}`);
|
|
164
|
-
console.error(`[kite] 请确认
|
|
262
|
+
console.error(`[kite] 请确认 Python 3.8+ 已安装`);
|
|
263
|
+
console.error(`[kite] 或运行: npm install 重新准备环境`);
|
|
264
|
+
|
|
265
|
+
// 标记环境失败
|
|
266
|
+
markEnvFailed('python_launch_failed');
|
|
165
267
|
process.exit(1);
|
|
166
268
|
});
|
|
167
269
|
|
|
168
|
-
child.on('exit', code =>
|
|
270
|
+
child.on('exit', (code, signal) => {
|
|
271
|
+
// 如果是异常退出,检查是否是环境问题
|
|
272
|
+
if (code !== 0 && code !== null) {
|
|
273
|
+
console.error(`[kite] Python 进程异常退出,退出码: ${code}`);
|
|
274
|
+
|
|
275
|
+
// 常见的环境相关错误码
|
|
276
|
+
if (code === 1 || code === 127) {
|
|
277
|
+
console.error(`[kite] 可能是环境问题,下次启动将重新检查环境`);
|
|
278
|
+
markEnvFailed('python_runtime_error');
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
process.exit(code ?? 0);
|
|
283
|
+
});
|
|
169
284
|
|
|
170
285
|
for (const sig of ['SIGINT', 'SIGTERM']) {
|
|
171
286
|
process.on(sig, () => child.kill(sig));
|