myagent-ai 1.2.2 → 1.2.3

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/core/version.py CHANGED
@@ -11,7 +11,7 @@ import subprocess
11
11
  from pathlib import Path
12
12
 
13
13
  # ── 基线版本(与 setup.py / package.json 保持一致) ──
14
- BASE_VERSION = "1.2.2"
14
+ BASE_VERSION = "1.2.3"
15
15
 
16
16
 
17
17
  def _version_from_git() -> str:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {
package/web/api_server.py CHANGED
@@ -100,22 +100,22 @@ class ApiServer:
100
100
  r.add_get("/api/agents/tree", self.handle_agents_tree)
101
101
  r.add_post("/api/agents", self.handle_create_agent)
102
102
  # ── Agent 子资源路由(必须在通用 {name} 路由之前注册) ──
103
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/soul", self.handle_get_soul)
104
- r.add_put("/api/agents/{name:[a-zA-Z0-9_/-]+}/soul", self.handle_set_soul)
105
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/identity", self.handle_get_identity)
106
- r.add_put("/api/agents/{name:[a-zA-Z0-9_/-]+}/identity", self.handle_set_identity)
107
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/user", self.handle_get_user)
108
- r.add_put("/api/agents/{name:[a-zA-Z0-9_/-]+}/user", self.handle_set_user)
109
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/sessions", self.handle_agent_sessions)
110
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/children", self.handle_list_children)
111
- r.add_post("/api/agents/{name:[a-zA-Z0-9_/-]+}/children", self.handle_create_child)
112
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/bindings", self.handle_agent_bindings)
113
- r.add_get("/api/agents/{name:[a-zA-Z0-9_/-]+}/knowledge", self.handle_list_agent_knowledge)
114
- r.add_post("/api/agents/{name:[a-zA-Z0-9_/-]+}/knowledge/upload", self.handle_upload_agent_knowledge)
115
- r.add_delete("/api/agents/{name:[a-zA-Z0-9_/-]+}/knowledge", self.handle_delete_agent_knowledge)
103
+ r.add_get("/api/agents/{name:[^/]+}/soul", self.handle_get_soul)
104
+ r.add_put("/api/agents/{name:[^/]+}/soul", self.handle_set_soul)
105
+ r.add_get("/api/agents/{name:[^/]+}/identity", self.handle_get_identity)
106
+ r.add_put("/api/agents/{name:[^/]+}/identity", self.handle_set_identity)
107
+ r.add_get("/api/agents/{name:[^/]+}/user", self.handle_get_user)
108
+ r.add_put("/api/agents/{name:[^/]+}/user", self.handle_set_user)
109
+ r.add_get("/api/agents/{name:[^/]+}/sessions", self.handle_agent_sessions)
110
+ r.add_get("/api/agents/{name:[^/]+}/children", self.handle_list_children)
111
+ r.add_post("/api/agents/{name:[^/]+}/children", self.handle_create_child)
112
+ r.add_get("/api/agents/{name:[^/]+}/bindings", self.handle_agent_bindings)
113
+ r.add_get("/api/agents/{name:[^/]+}/knowledge", self.handle_list_agent_knowledge)
114
+ r.add_post("/api/agents/{name:[^/]+}/knowledge/upload", self.handle_upload_agent_knowledge)
115
+ r.add_delete("/api/agents/{name:[^/]+}/knowledge", self.handle_delete_agent_knowledge)
116
116
  # ── Agent 通用 CRUD(放在子资源之后,name 不含斜杠避免吞掉子路由) ──
117
- r.add_get("/api/agents/{name:[a-zA-Z0-9_\\-]+}", self.handle_get_agent)
118
- r.add_put("/api/agents/{name:[a-zA-Z0-9_\\-]+}", self.handle_update_agent)
117
+ r.add_get("/api/agents/{name:[^/]+}", self.handle_get_agent)
118
+ r.add_put("/api/agents/{name:[^/]+}", self.handle_update_agent)
119
119
  r.add_delete("/api/agents/{name:.+}", self.handle_delete_agent)
120
120
  # ── 平台管理 ──
121
121
  r.add_get("/api/platforms", self.handle_list_platforms)
@@ -243,14 +243,18 @@ class ApiServer:
243
243
  r.add_post("/api/execution-lock", self.handle_execution_lock)
244
244
  r.add_post("/api/chat/check-text-size", self.handle_check_text_size)
245
245
  r.add_post("/api/chat/save-to-knowledge", self.handle_save_to_knowledge)
246
+ r.add_get("/ui/", self.handle_ui_index)
247
+ r.add_get("/", self.handle_index)
246
248
  ui_dir = Path(__file__).parent / "ui"
247
249
  if ui_dir.exists():
248
250
  r.add_static("/ui", str(ui_dir))
249
- r.add_get("/", self.handle_index)
250
251
 
251
252
  async def handle_index(self, request):
252
253
  raise web.HTTPFound("/ui/chat.html")
253
254
 
255
+ async def handle_ui_index(self, request):
256
+ raise web.HTTPFound("/ui/index.html")
257
+
254
258
  def _get_group_manager(self):
255
259
  """获取群聊管理器实例(懒加载)"""
256
260
  if not hasattr(self, '_group_manager'):
package/web/ui/chat.html CHANGED
@@ -3067,14 +3067,19 @@ function newChat() {
3067
3067
  document.getElementById('headerTitle').textContent = '新对话';
3068
3068
  const agent = findAgentByPath(state.activeAgent);
3069
3069
  if (agent) {
3070
- document.getElementById('welcomeEmoji').textContent = agent.avatar_emoji || '👋';
3071
- document.getElementById('welcomeTitle').textContent = `你好,我是 ${agent.name}`;
3072
- document.getElementById('welcomeSubtitle').textContent = agent.description || '你的 AI 助手';
3070
+ const emojiEl = document.getElementById('welcomeEmoji');
3071
+ if (emojiEl) emojiEl.textContent = agent.avatar_emoji || '👋';
3072
+ const titleEl = document.getElementById('welcomeTitle');
3073
+ if (titleEl) titleEl.textContent = `你好,我是 ${agent.name}`;
3074
+ const subEl = document.getElementById('welcomeSubtitle');
3075
+ if (subEl) subEl.textContent = agent.description || '你的 AI 助手';
3073
3076
  }
3074
- document.getElementById('welcomeCard').style.display = '';
3077
+ const welcomeCard = document.getElementById('welcomeCard');
3078
+ if (welcomeCard) welcomeCard.style.display = '';
3075
3079
  renderMessages();
3076
3080
  renderSessions();
3077
- document.getElementById('userInput').focus();
3081
+ const userInput = document.getElementById('userInput');
3082
+ if (userInput) userInput.focus();
3078
3083
  }
3079
3084
 
3080
3085
  async function selectSession(id) {
@@ -3565,7 +3570,7 @@ function showConfigModal() {
3565
3570
  + '<div class="config-action-row">'
3566
3571
  + '<button class="config-action-btn primary" onclick="hotReloadConfig()" id="reloadBtn">'
3567
3572
  + '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/></svg>'
3568
- + '热重载配置'</button>'
3573
+ + '热重载配置</button>'
3569
3574
  + '</div>'
3570
3575
  + '<div class="config-status" id="reloadStatus"></div>'
3571
3576
  + '</div>'