@ai-zen/cli 0.8.2 → 1.0.0-alpha.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.
Files changed (298) hide show
  1. package/CHANGELOG.md +64 -1
  2. package/README.md +95 -41
  3. package/README.zh.md +95 -41
  4. package/dist/agent-creator.d.ts +11 -5
  5. package/dist/agent-creator.d.ts.map +1 -1
  6. package/dist/agent-creator.js +32 -15
  7. package/dist/agent-creator.js.map +1 -1
  8. package/dist/agents-store.d.ts +33 -0
  9. package/dist/agents-store.d.ts.map +1 -0
  10. package/dist/agents-store.js +50 -0
  11. package/dist/agents-store.js.map +1 -0
  12. package/dist/auto-migrate-confirm-plugin.d.ts +7 -7
  13. package/dist/auto-migrate-confirm-plugin.d.ts.map +1 -1
  14. package/dist/auto-migrate-confirm-plugin.js +3 -21
  15. package/dist/auto-migrate-confirm-plugin.js.map +1 -1
  16. package/dist/config-editor.d.ts +201 -0
  17. package/dist/config-editor.d.ts.map +1 -0
  18. package/dist/config-editor.js +511 -0
  19. package/dist/config-editor.js.map +1 -0
  20. package/dist/config.d.ts +41 -16
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +32 -29
  23. package/dist/config.js.map +1 -1
  24. package/dist/conversation-commands/registry.d.ts +4 -5
  25. package/dist/conversation-commands/registry.d.ts.map +1 -1
  26. package/dist/conversation-commands/registry.js +9 -6
  27. package/dist/conversation-commands/registry.js.map +1 -1
  28. package/dist/conversation-persist-plugin.d.ts +25 -0
  29. package/dist/conversation-persist-plugin.d.ts.map +1 -0
  30. package/dist/conversation-persist-plugin.js +44 -0
  31. package/dist/conversation-persist-plugin.js.map +1 -0
  32. package/dist/conversation-repository.d.ts +19 -2
  33. package/dist/conversation-repository.d.ts.map +1 -1
  34. package/dist/conversation-repository.js +48 -5
  35. package/dist/conversation-repository.js.map +1 -1
  36. package/dist/format-time.d.ts +2 -2
  37. package/dist/format-time.js +2 -2
  38. package/dist/hook.d.ts.map +1 -1
  39. package/dist/hook.js +58 -46
  40. package/dist/hook.js.map +1 -1
  41. package/dist/index.js +65 -36
  42. package/dist/index.js.map +1 -1
  43. package/dist/migration-service.d.ts +3 -1
  44. package/dist/migration-service.d.ts.map +1 -1
  45. package/dist/migration-service.js +26 -23
  46. package/dist/migration-service.js.map +1 -1
  47. package/dist/mode.d.ts +56 -0
  48. package/dist/mode.d.ts.map +1 -0
  49. package/dist/mode.js +83 -0
  50. package/dist/mode.js.map +1 -0
  51. package/dist/session-pointer.d.ts +22 -0
  52. package/dist/session-pointer.d.ts.map +1 -0
  53. package/dist/session-pointer.js +49 -0
  54. package/dist/session-pointer.js.map +1 -0
  55. package/dist/stdio-runner.d.ts +34 -0
  56. package/dist/stdio-runner.d.ts.map +1 -0
  57. package/dist/stdio-runner.js +161 -0
  58. package/dist/stdio-runner.js.map +1 -0
  59. package/dist/tui/chat-session.d.ts +100 -0
  60. package/dist/tui/chat-session.d.ts.map +1 -0
  61. package/dist/tui/chat-session.js +263 -0
  62. package/dist/tui/chat-session.js.map +1 -0
  63. package/dist/tui/components.d.ts +44 -0
  64. package/dist/tui/components.d.ts.map +1 -0
  65. package/dist/tui/components.js +62 -0
  66. package/dist/tui/components.js.map +1 -0
  67. package/dist/tui/config-wizard/detail.d.ts +51 -0
  68. package/dist/tui/config-wizard/detail.d.ts.map +1 -0
  69. package/dist/tui/config-wizard/detail.js +273 -0
  70. package/dist/tui/config-wizard/detail.js.map +1 -0
  71. package/dist/tui/config-wizard/engine.d.ts +36 -0
  72. package/dist/tui/config-wizard/engine.d.ts.map +1 -0
  73. package/dist/tui/config-wizard/engine.js +187 -0
  74. package/dist/tui/config-wizard/engine.js.map +1 -0
  75. package/dist/tui/config-wizard/fields.d.ts +24 -0
  76. package/dist/tui/config-wizard/fields.d.ts.map +1 -0
  77. package/dist/tui/config-wizard/fields.js +411 -0
  78. package/dist/tui/config-wizard/fields.js.map +1 -0
  79. package/dist/tui/config-wizard/frame.d.ts +27 -0
  80. package/dist/tui/config-wizard/frame.d.ts.map +1 -0
  81. package/dist/tui/config-wizard/frame.js +28 -0
  82. package/dist/tui/config-wizard/frame.js.map +1 -0
  83. package/dist/tui/config-wizard/index.d.ts +6 -0
  84. package/dist/tui/config-wizard/index.d.ts.map +1 -0
  85. package/dist/tui/config-wizard/index.js +7 -0
  86. package/dist/tui/config-wizard/index.js.map +1 -0
  87. package/dist/tui/config-wizard/kv-editor.d.ts +18 -0
  88. package/dist/tui/config-wizard/kv-editor.d.ts.map +1 -0
  89. package/dist/tui/config-wizard/kv-editor.js +116 -0
  90. package/dist/tui/config-wizard/kv-editor.js.map +1 -0
  91. package/dist/tui/config-wizard/list.d.ts +13 -0
  92. package/dist/tui/config-wizard/list.d.ts.map +1 -0
  93. package/dist/tui/config-wizard/list.js +29 -0
  94. package/dist/tui/config-wizard/list.js.map +1 -0
  95. package/dist/tui/config-wizard/mcp-helpers.d.ts +9 -0
  96. package/dist/tui/config-wizard/mcp-helpers.d.ts.map +1 -0
  97. package/dist/tui/config-wizard/mcp-helpers.js +19 -0
  98. package/dist/tui/config-wizard/mcp-helpers.js.map +1 -0
  99. package/dist/tui/config-wizard/menu.d.ts +18 -0
  100. package/dist/tui/config-wizard/menu.d.ts.map +1 -0
  101. package/dist/tui/config-wizard/menu.js +70 -0
  102. package/dist/tui/config-wizard/menu.js.map +1 -0
  103. package/dist/tui/config-wizard/prompt-editor.d.ts +24 -0
  104. package/dist/tui/config-wizard/prompt-editor.d.ts.map +1 -0
  105. package/dist/tui/config-wizard/prompt-editor.js +83 -0
  106. package/dist/tui/config-wizard/prompt-editor.js.map +1 -0
  107. package/dist/tui/config-wizard/prompt.d.ts +57 -0
  108. package/dist/tui/config-wizard/prompt.d.ts.map +1 -0
  109. package/dist/tui/config-wizard/prompt.js +130 -0
  110. package/dist/tui/config-wizard/prompt.js.map +1 -0
  111. package/dist/tui/config-wizard/step-agents.d.ts +4 -0
  112. package/dist/tui/config-wizard/step-agents.d.ts.map +1 -0
  113. package/dist/tui/config-wizard/step-agents.js +110 -0
  114. package/dist/tui/config-wizard/step-agents.js.map +1 -0
  115. package/dist/tui/config-wizard/step-defaults.d.ts +4 -0
  116. package/dist/tui/config-wizard/step-defaults.d.ts.map +1 -0
  117. package/dist/tui/config-wizard/step-defaults.js +76 -0
  118. package/dist/tui/config-wizard/step-defaults.js.map +1 -0
  119. package/dist/tui/config-wizard/step-endpoints.d.ts +4 -0
  120. package/dist/tui/config-wizard/step-endpoints.d.ts.map +1 -0
  121. package/dist/tui/config-wizard/step-endpoints.js +43 -0
  122. package/dist/tui/config-wizard/step-endpoints.js.map +1 -0
  123. package/dist/tui/config-wizard/step-mcp.d.ts +4 -0
  124. package/dist/tui/config-wizard/step-mcp.d.ts.map +1 -0
  125. package/dist/tui/config-wizard/step-mcp.js +97 -0
  126. package/dist/tui/config-wizard/step-mcp.js.map +1 -0
  127. package/dist/tui/config-wizard/step-menu.d.ts +4 -0
  128. package/dist/tui/config-wizard/step-menu.d.ts.map +1 -0
  129. package/dist/tui/config-wizard/step-menu.js +28 -0
  130. package/dist/tui/config-wizard/step-menu.js.map +1 -0
  131. package/dist/tui/config-wizard/step-models.d.ts +4 -0
  132. package/dist/tui/config-wizard/step-models.d.ts.map +1 -0
  133. package/dist/tui/config-wizard/step-models.js +114 -0
  134. package/dist/tui/config-wizard/step-models.js.map +1 -0
  135. package/dist/tui/config-wizard/step-new-endpoint.d.ts +4 -0
  136. package/dist/tui/config-wizard/step-new-endpoint.d.ts.map +1 -0
  137. package/dist/tui/config-wizard/step-new-endpoint.js +54 -0
  138. package/dist/tui/config-wizard/step-new-endpoint.js.map +1 -0
  139. package/dist/tui/config-wizard/step-simple.d.ts +4 -0
  140. package/dist/tui/config-wizard/step-simple.d.ts.map +1 -0
  141. package/dist/tui/config-wizard/step-simple.js +55 -0
  142. package/dist/tui/config-wizard/step-simple.js.map +1 -0
  143. package/dist/tui/config-wizard/types.d.ts +138 -0
  144. package/dist/tui/config-wizard/types.d.ts.map +1 -0
  145. package/dist/tui/config-wizard/types.js +12 -0
  146. package/dist/tui/config-wizard/types.js.map +1 -0
  147. package/dist/tui/config-wizard/wizard.d.ts +9 -0
  148. package/dist/tui/config-wizard/wizard.d.ts.map +1 -0
  149. package/dist/tui/config-wizard/wizard.js +33 -0
  150. package/dist/tui/config-wizard/wizard.js.map +1 -0
  151. package/dist/tui/highlight.d.ts +34 -0
  152. package/dist/tui/highlight.d.ts.map +1 -0
  153. package/dist/tui/highlight.js +116 -0
  154. package/dist/tui/highlight.js.map +1 -0
  155. package/dist/tui/index.d.ts +33 -0
  156. package/dist/tui/index.d.ts.map +1 -0
  157. package/dist/tui/index.js +265 -0
  158. package/dist/tui/index.js.map +1 -0
  159. package/dist/tui/screens/chat-commands.d.ts +27 -0
  160. package/dist/tui/screens/chat-commands.d.ts.map +1 -0
  161. package/dist/tui/screens/chat-commands.js +176 -0
  162. package/dist/tui/screens/chat-commands.js.map +1 -0
  163. package/dist/tui/screens/chat.d.ts +25 -0
  164. package/dist/tui/screens/chat.d.ts.map +1 -0
  165. package/dist/tui/screens/chat.js +494 -0
  166. package/dist/tui/screens/chat.js.map +1 -0
  167. package/dist/tui/screens/index.d.ts +13 -0
  168. package/dist/tui/screens/index.d.ts.map +1 -0
  169. package/dist/tui/screens/index.js +14 -0
  170. package/dist/tui/screens/index.js.map +1 -0
  171. package/dist/tui/screens/input.d.ts +29 -0
  172. package/dist/tui/screens/input.d.ts.map +1 -0
  173. package/dist/tui/screens/input.js +54 -0
  174. package/dist/tui/screens/input.js.map +1 -0
  175. package/dist/tui/screens/layout.d.ts +42 -0
  176. package/dist/tui/screens/layout.d.ts.map +1 -0
  177. package/dist/tui/screens/layout.js +45 -0
  178. package/dist/tui/screens/layout.js.map +1 -0
  179. package/dist/tui/screens/lines.d.ts +71 -0
  180. package/dist/tui/screens/lines.d.ts.map +1 -0
  181. package/dist/tui/screens/lines.js +198 -0
  182. package/dist/tui/screens/lines.js.map +1 -0
  183. package/dist/tui/screens/overlays.d.ts +12 -0
  184. package/dist/tui/screens/overlays.d.ts.map +1 -0
  185. package/dist/tui/screens/overlays.js +34 -0
  186. package/dist/tui/screens/overlays.js.map +1 -0
  187. package/dist/tui/screens/render.d.ts +9 -0
  188. package/dist/tui/screens/render.d.ts.map +1 -0
  189. package/dist/tui/screens/render.js +97 -0
  190. package/dist/tui/screens/render.js.map +1 -0
  191. package/dist/tui/screens/splash.d.ts +5 -0
  192. package/dist/tui/screens/splash.d.ts.map +1 -0
  193. package/dist/tui/screens/splash.js +51 -0
  194. package/dist/tui/screens/splash.js.map +1 -0
  195. package/dist/tui/screens/state.d.ts +13 -0
  196. package/dist/tui/screens/state.d.ts.map +1 -0
  197. package/dist/tui/screens/state.js +75 -0
  198. package/dist/tui/screens/state.js.map +1 -0
  199. package/dist/tui/text.d.ts +71 -0
  200. package/dist/tui/text.d.ts.map +1 -0
  201. package/dist/tui/text.js +191 -0
  202. package/dist/tui/text.js.map +1 -0
  203. package/dist/tui/theme.d.ts +62 -0
  204. package/dist/tui/theme.d.ts.map +1 -0
  205. package/dist/tui/theme.js +120 -0
  206. package/dist/tui/theme.js.map +1 -0
  207. package/dist/types.d.ts +1 -2
  208. package/dist/types.d.ts.map +1 -1
  209. package/dist/types.js +1 -1
  210. package/package.json +11 -6
  211. package/dist/config-wizard.d.ts +0 -6
  212. package/dist/config-wizard.d.ts.map +0 -1
  213. package/dist/config-wizard.js +0 -46
  214. package/dist/config-wizard.js.map +0 -1
  215. package/dist/conversation-commands/back.d.ts +0 -3
  216. package/dist/conversation-commands/back.d.ts.map +0 -1
  217. package/dist/conversation-commands/back.js +0 -144
  218. package/dist/conversation-commands/back.js.map +0 -1
  219. package/dist/conversation-commands/clear.d.ts +0 -3
  220. package/dist/conversation-commands/clear.d.ts.map +0 -1
  221. package/dist/conversation-commands/clear.js +0 -8
  222. package/dist/conversation-commands/clear.js.map +0 -1
  223. package/dist/conversation-commands/editor.d.ts +0 -3
  224. package/dist/conversation-commands/editor.d.ts.map +0 -1
  225. package/dist/conversation-commands/editor.js +0 -15
  226. package/dist/conversation-commands/editor.js.map +0 -1
  227. package/dist/conversation-commands/exit.d.ts +0 -3
  228. package/dist/conversation-commands/exit.d.ts.map +0 -1
  229. package/dist/conversation-commands/exit.js +0 -37
  230. package/dist/conversation-commands/exit.js.map +0 -1
  231. package/dist/conversation-commands/help.d.ts +0 -3
  232. package/dist/conversation-commands/help.d.ts.map +0 -1
  233. package/dist/conversation-commands/help.js +0 -10
  234. package/dist/conversation-commands/help.js.map +0 -1
  235. package/dist/conversation-commands/index.d.ts +0 -13
  236. package/dist/conversation-commands/index.d.ts.map +0 -1
  237. package/dist/conversation-commands/index.js +0 -66
  238. package/dist/conversation-commands/index.js.map +0 -1
  239. package/dist/conversation-commands/migrate.d.ts +0 -12
  240. package/dist/conversation-commands/migrate.d.ts.map +0 -1
  241. package/dist/conversation-commands/migrate.js +0 -56
  242. package/dist/conversation-commands/migrate.js.map +0 -1
  243. package/dist/conversation-commands/new.d.ts +0 -3
  244. package/dist/conversation-commands/new.d.ts.map +0 -1
  245. package/dist/conversation-commands/new.js +0 -45
  246. package/dist/conversation-commands/new.js.map +0 -1
  247. package/dist/conversation-commands/save.d.ts +0 -3
  248. package/dist/conversation-commands/save.d.ts.map +0 -1
  249. package/dist/conversation-commands/save.js +0 -32
  250. package/dist/conversation-commands/save.js.map +0 -1
  251. package/dist/conversation-runner.d.ts +0 -17
  252. package/dist/conversation-runner.d.ts.map +0 -1
  253. package/dist/conversation-runner.js +0 -176
  254. package/dist/conversation-runner.js.map +0 -1
  255. package/dist/delta-renderer.d.ts +0 -33
  256. package/dist/delta-renderer.d.ts.map +0 -1
  257. package/dist/delta-renderer.js +0 -120
  258. package/dist/delta-renderer.js.map +0 -1
  259. package/dist/draft-plugin.d.ts +0 -19
  260. package/dist/draft-plugin.d.ts.map +0 -1
  261. package/dist/draft-plugin.js +0 -30
  262. package/dist/draft-plugin.js.map +0 -1
  263. package/dist/draft-repository.d.ts +0 -34
  264. package/dist/draft-repository.d.ts.map +0 -1
  265. package/dist/draft-repository.js +0 -64
  266. package/dist/draft-repository.js.map +0 -1
  267. package/dist/menus/agents.d.ts +0 -5
  268. package/dist/menus/agents.d.ts.map +0 -1
  269. package/dist/menus/agents.js +0 -219
  270. package/dist/menus/agents.js.map +0 -1
  271. package/dist/menus/common.d.ts +0 -41
  272. package/dist/menus/common.d.ts.map +0 -1
  273. package/dist/menus/common.js +0 -104
  274. package/dist/menus/common.js.map +0 -1
  275. package/dist/menus/config-display.d.ts +0 -2
  276. package/dist/menus/config-display.d.ts.map +0 -1
  277. package/dist/menus/config-display.js +0 -82
  278. package/dist/menus/config-display.js.map +0 -1
  279. package/dist/menus/config.d.ts +0 -8
  280. package/dist/menus/config.d.ts.map +0 -1
  281. package/dist/menus/config.js +0 -407
  282. package/dist/menus/config.js.map +0 -1
  283. package/dist/menus/conversations.d.ts +0 -20
  284. package/dist/menus/conversations.d.ts.map +0 -1
  285. package/dist/menus/conversations.js +0 -83
  286. package/dist/menus/conversations.js.map +0 -1
  287. package/dist/menus/index.d.ts +0 -5
  288. package/dist/menus/index.d.ts.map +0 -1
  289. package/dist/menus/index.js +0 -59
  290. package/dist/menus/index.js.map +0 -1
  291. package/dist/menus/start-conversation.d.ts +0 -16
  292. package/dist/menus/start-conversation.d.ts.map +0 -1
  293. package/dist/menus/start-conversation.js +0 -176
  294. package/dist/menus/start-conversation.js.map +0 -1
  295. package/dist/slash-hint-prompt.d.ts +0 -41
  296. package/dist/slash-hint-prompt.d.ts.map +0 -1
  297. package/dist/slash-hint-prompt.js +0 -92
  298. package/dist/slash-hint-prompt.js.map +0 -1
@@ -1,5 +0,0 @@
1
- /**
2
- * Agent 管理
3
- */
4
- export declare function manageAgentsInteractive(): Promise<void>;
5
- //# sourceMappingURL=agents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/menus/agents.ts"],"names":[],"mappings":"AA8DA;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0D7D"}
@@ -1,219 +0,0 @@
1
- import chalk from "chalk";
2
- import inquirer from "inquirer";
3
- import { AgentNS, Message } from "@ai-zen/agents-core";
4
- import { AgentRepository, } from "@ai-zen/agents-sdk";
5
- import { AGENTS_DIR, readConfig, saveConfig } from "../config.js";
6
- import { formatFullTime } from "../format-time.js";
7
- import { selectItemAndAction, confirmAction, SEPARATOR_LONG, } from "./common.js";
8
- const agentRepository = new AgentRepository(AGENTS_DIR);
9
- /**
10
- * 获取消息列表中的文本摘要
11
- */
12
- function getMessagesSummary(messages) {
13
- const systemMsg = messages.find((m) => m.role === AgentNS.Role.System);
14
- if (systemMsg && typeof systemMsg.content === "string") {
15
- return systemMsg.content.substring(0, 80);
16
- }
17
- const firstMsg = messages[0];
18
- if (firstMsg && typeof firstMsg.content === "string") {
19
- return firstMsg.content.substring(0, 80);
20
- }
21
- return "(空)";
22
- }
23
- /**
24
- * 展现 Agent 详情
25
- */
26
- function formatAgentDetails(agent, isDefault) {
27
- if (!agent)
28
- return [];
29
- return [
30
- chalk.white.bold(` ${isDefault ? "⭐ " : " "}${agent.name} ${isDefault ? "(默认)" : ""}`),
31
- chalk.gray(` ID: ${agent.id}`),
32
- agent.description ? chalk.gray(` 描述: ${agent.description}`) : "",
33
- chalk.gray(` 消息数: ${agent.messages.length} 条`),
34
- chalk.gray(` 摘要: ${getMessagesSummary(agent.messages)}`),
35
- chalk.gray(` 创建时间: ${formatFullTime(agent.createdAt)}`),
36
- SEPARATOR_LONG,
37
- ].filter(Boolean);
38
- }
39
- /**
40
- * 获取默认 Agent
41
- */
42
- async function getDefaultAgent() {
43
- const config = await readConfig();
44
- return config.defaultAgent ? (await agentRepository.read(config.defaultAgent)) ?? undefined : undefined;
45
- }
46
- /**
47
- * Agent 管理
48
- */
49
- export async function manageAgentsInteractive() {
50
- while (true) {
51
- console.log(chalk.blue.bold("\n🤖 Agent 管理\n"));
52
- const agents = await agentRepository.list();
53
- if (agents.length === 0) {
54
- console.log(chalk.yellow("📭 没有可用的 Agent\n"));
55
- const { create } = await inquirer.prompt([
56
- {
57
- type: "confirm",
58
- name: "create",
59
- message: "是否创建一个 Agent?",
60
- default: true,
61
- },
62
- ]);
63
- if (create) {
64
- await createAgentInteractive();
65
- continue;
66
- }
67
- return;
68
- }
69
- const defaultAgent = await getDefaultAgent();
70
- const result = await selectItemAndAction(agents, {
71
- getName: (a) => `${a.name}${defaultAgent?.id === a.id ? " ⭐(默认)" : ""}`,
72
- getValue: (a) => a.id,
73
- getDetails: (a) => formatAgentDetails(a, defaultAgent?.id === a.id),
74
- actions: [
75
- { name: "✏️ 编辑", value: "edit" },
76
- { name: "🗑️ 删除", value: "delete" },
77
- { name: "⭐ 设为默认", value: "set-default" },
78
- ],
79
- emptyMessage: "📭 没有可用的 Agent",
80
- });
81
- if (!result)
82
- return;
83
- const { item: agent, action } = result;
84
- switch (action) {
85
- case "edit":
86
- await editAgentInteractive(agent.id);
87
- break;
88
- case "delete":
89
- await deleteAgentInteractive(agent.id);
90
- break;
91
- case "set-default": {
92
- const config = await readConfig();
93
- config.defaultAgent = agent.id;
94
- await saveConfig(config);
95
- console.log(chalk.green(`\n✅ 默认 Agent 已设置为 "${agent.name}"\n`));
96
- break;
97
- }
98
- case "__exit__":
99
- return;
100
- }
101
- }
102
- }
103
- /** 创建 Agent */
104
- async function createAgentInteractive() {
105
- const config = await readConfig();
106
- const { name, description, systemContent, modelId } = await inquirer.prompt([
107
- {
108
- type: "input",
109
- name: "name",
110
- message: "Agent 名称:",
111
- validate: (input) => input.trim() !== "" || "名称不能为空",
112
- },
113
- { type: "input", name: "description", message: "描述 (可选):" },
114
- {
115
- type: "editor",
116
- name: "systemContent",
117
- message: "系统提示 (在编辑器中输入):",
118
- default: "你是一个AI助手,请用中文回复。",
119
- },
120
- {
121
- type: "list",
122
- name: "modelId",
123
- message: "默认模型:",
124
- choices: [
125
- ...config.models.map((m) => ({
126
- name: `${m.name} (${m.id})`,
127
- value: m.id,
128
- })),
129
- { name: "使用全局默认模型", value: "" },
130
- ],
131
- },
132
- ]);
133
- let id = name.toLowerCase().replace(/[^a-zA-Z0-9\u4e00-\u9fa5_-]/g, "_");
134
- if (await agentRepository.read(id)) {
135
- const suffix = Math.random().toString(36).substring(2, 6);
136
- id = `${id}_${suffix}`;
137
- console.log(chalk.yellow(`⚠️ 名称生成的 ID 已存在,已调整为: ${id}\n`));
138
- }
139
- const now = new Date().toISOString();
140
- await agentRepository.write({
141
- id,
142
- name,
143
- description,
144
- messages: [Message.System(systemContent)],
145
- modelId: modelId || undefined,
146
- createdAt: now,
147
- updatedAt: now,
148
- });
149
- console.log(chalk.green(`\n✅ Agent "${name}" 创建成功!\n`));
150
- }
151
- /** 编辑 Agent */
152
- async function editAgentInteractive(agentId) {
153
- const agent = await agentRepository.read(agentId);
154
- if (!agent)
155
- return;
156
- const currentSystem = agent.messages.find((m) => m.role === AgentNS.Role.System && typeof m.content === "string");
157
- const currentContent = currentSystem && typeof currentSystem.content === "string"
158
- ? currentSystem.content
159
- : "";
160
- const config = await readConfig();
161
- const { name, description, systemContent, modelId } = await inquirer.prompt([
162
- {
163
- type: "input",
164
- name: "name",
165
- message: "Agent 名称:",
166
- default: agent.name,
167
- },
168
- {
169
- type: "input",
170
- name: "description",
171
- message: "描述:",
172
- default: agent.description || "",
173
- },
174
- {
175
- type: "editor",
176
- name: "systemContent",
177
- message: "系统提示:",
178
- default: currentContent,
179
- },
180
- {
181
- type: "list",
182
- name: "modelId",
183
- message: "默认模型:",
184
- choices: [
185
- ...config.models.map((m) => ({
186
- name: `${m.name} (${m.id})`,
187
- value: m.id,
188
- })),
189
- { name: "使用全局默认模型", value: "" },
190
- ],
191
- },
192
- ]);
193
- await agentRepository.write({
194
- ...agent,
195
- name,
196
- description,
197
- messages: [Message.System(systemContent)],
198
- modelId: modelId || undefined,
199
- updatedAt: new Date().toISOString(),
200
- });
201
- console.log(chalk.green(`\n✅ Agent "${name}" 已更新\n`));
202
- }
203
- /** 删除 Agent */
204
- async function deleteAgentInteractive(agentId) {
205
- const agent = await agentRepository.read(agentId);
206
- if (!agent)
207
- return;
208
- const confirmed = await confirmAction(`确定要删除 Agent "${agent.name}" 吗?`, false);
209
- if (confirmed) {
210
- await agentRepository.delete(agentId);
211
- const config = await readConfig();
212
- if (config.defaultAgent === agentId) {
213
- config.defaultAgent = "";
214
- await saveConfig(config);
215
- }
216
- console.log(chalk.green(`\n✅ Agent "${agent.name}" 已删除\n`));
217
- }
218
- }
219
- //# sourceMappingURL=agents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/menus/agents.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * 对 API Key 做脱敏显示
3
- */
4
- export declare function maskApiKey(apiKey: string | undefined): string;
5
- /**
6
- * 从列表中选一项(含空判断),支持取消/返回
7
- * @returns 选中项的值,或 null(取消/返回时)
8
- */
9
- export declare function selectFromList<T>(items: T[], options: {
10
- message: string;
11
- getName: (item: T) => string;
12
- getValue: (item: T) => string;
13
- emptyMessage?: string;
14
- withBack?: boolean;
15
- backLabel?: string;
16
- }): Promise<string | null>;
17
- /**
18
- * 从列表中选择一项,之后选择对其执行的操作
19
- * 返回 { item, action } 或 null(无数据或取消时)
20
- */
21
- export declare function selectItemAndAction<T>(items: T[], options: {
22
- getName: (item: T) => string;
23
- getValue: (item: T) => string;
24
- getDetails: (item: T) => string[];
25
- actions: Array<{
26
- name: string;
27
- value: string;
28
- }>;
29
- emptyMessage: string;
30
- selectMessage?: string;
31
- }): Promise<{
32
- item: T;
33
- action: string;
34
- } | null>;
35
- /**
36
- * 确认操作
37
- */
38
- export declare function confirmAction(message: string, defaultVal?: boolean): Promise<boolean>;
39
- export declare const SEPARATOR: string;
40
- export declare const SEPARATOR_LONG: string;
41
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/menus/common.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK7D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiCxB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA0C7C;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,OAAO,CAAC,CAKlB;AAID,eAAO,MAAM,SAAS,QAA6B,CAAC;AACpD,eAAO,MAAM,cAAc,QAA6B,CAAC"}
@@ -1,104 +0,0 @@
1
- import chalk from "chalk";
2
- import inquirer from "inquirer";
3
- // ==================== 工具函数 ====================
4
- /**
5
- * 对 API Key 做脱敏显示
6
- */
7
- export function maskApiKey(apiKey) {
8
- if (!apiKey)
9
- return chalk.red("未设置");
10
- if (apiKey.length <= 12)
11
- return apiKey.substring(0, 4) + "..." + apiKey.substring(apiKey.length - 4);
12
- return apiKey.substring(0, 8) + "..." + apiKey.substring(apiKey.length - 4);
13
- }
14
- /**
15
- * 从列表中选一项(含空判断),支持取消/返回
16
- * @returns 选中项的值,或 null(取消/返回时)
17
- */
18
- export async function selectFromList(items, options) {
19
- if (items.length === 0) {
20
- console.log(chalk.yellow(`\n${options.emptyMessage || "⚠️ 没有可用项"}\n`));
21
- return null;
22
- }
23
- const choices = items.map((item) => ({
24
- name: options.getName(item),
25
- value: options.getValue(item),
26
- }));
27
- // 默认添加"返回"选项
28
- const shouldAddBack = options.withBack !== false;
29
- if (shouldAddBack) {
30
- choices.push({
31
- name: options.backLabel || "🔙 返回",
32
- value: "__back__",
33
- });
34
- }
35
- const { selected } = await inquirer.prompt([
36
- {
37
- type: "list",
38
- name: "selected",
39
- message: options.message,
40
- choices,
41
- },
42
- ]);
43
- if (selected === "__back__")
44
- return null;
45
- return selected;
46
- }
47
- /**
48
- * 从列表中选择一项,之后选择对其执行的操作
49
- * 返回 { item, action } 或 null(无数据或取消时)
50
- */
51
- export async function selectItemAndAction(items, options) {
52
- if (items.length === 0) {
53
- console.log(chalk.yellow(`\n${options.emptyMessage}\n`));
54
- return null;
55
- }
56
- // 第一步:选一个条目(带"返回"选项)
57
- const itemValue = await selectFromList(items, {
58
- message: options.selectMessage || "请选择:",
59
- getName: options.getName,
60
- getValue: options.getValue,
61
- emptyMessage: options.emptyMessage,
62
- });
63
- if (!itemValue)
64
- return null; // 用户选择返回
65
- const item = items.find((i) => options.getValue(i) === itemValue);
66
- // 显示详情
67
- const details = options.getDetails(item);
68
- if (details.length > 0) {
69
- for (const line of details) {
70
- console.log(line);
71
- }
72
- }
73
- // 第二步:选择操作
74
- const { action } = await inquirer.prompt([
75
- {
76
- type: "list",
77
- name: "action",
78
- message: `对 "${options.getName(item)}" 执行操作:`,
79
- choices: [
80
- ...options.actions,
81
- { name: "🔙 返回", value: "__back__" },
82
- ...(options.actions.length > 0 ? [{ name: "🔚 退出管理", value: "__exit__" }] : []),
83
- ],
84
- },
85
- ]);
86
- if (action === "__back__")
87
- return null;
88
- if (action === "__exit__")
89
- return { item, action: "__exit__" };
90
- return { item, action };
91
- }
92
- /**
93
- * 确认操作
94
- */
95
- export async function confirmAction(message, defaultVal = false) {
96
- const { confirm } = await inquirer.prompt([
97
- { type: "confirm", name: "confirm", message, default: defaultVal },
98
- ]);
99
- return confirm;
100
- }
101
- // ==================== 分隔线 ====================
102
- export const SEPARATOR = chalk.gray("─".repeat(60));
103
- export const SEPARATOR_LONG = chalk.gray("─".repeat(80));
104
- //# sourceMappingURL=common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/menus/common.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function showConfig(): Promise<void>;
2
- //# sourceMappingURL=config-display.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-display.d.ts","sourceRoot":"","sources":["../../src/menus/config-display.ts"],"names":[],"mappings":"AAUA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuEhD"}
@@ -1,82 +0,0 @@
1
- import chalk from "chalk";
2
- import { promises as fs } from "fs";
3
- import { readConfig, CONFIG_FILE, readMcpConfig, MCP_CONFIG_FILE, USER_AGENTS_MCP_CONFIG_FILE, PROJECT_AGENTS_MCP_CONFIG_FILE, USER_AGENTS_SKILLS_DIR, PROJECT_AGENTS_SKILLS_DIR, } from "../config.js";
4
- import { maskApiKey, SEPARATOR } from "./common.js";
5
- export async function showConfig() {
6
- const config = await readConfig();
7
- console.log(chalk.blue.bold("\n📋 当前配置总览\n"));
8
- console.log(chalk.blue.bold("🌐 端点:"));
9
- if (config.endpoints.length === 0) {
10
- console.log(chalk.yellow(" (无)"));
11
- }
12
- else {
13
- for (const ep of config.endpoints) {
14
- console.log(chalk.white(` ${ep.name} (${ep.id})`));
15
- console.log(chalk.gray(` API Key: ${maskApiKey(ep.apiKey)}`));
16
- console.log(chalk.gray(` Base URL: ${ep.baseUrl}`));
17
- }
18
- }
19
- console.log(SEPARATOR);
20
- console.log(chalk.blue.bold("⭐ 默认模型:"));
21
- if (config.defaultModel) {
22
- const model = config.models.find((m) => m.id === config.defaultModel);
23
- console.log(chalk.white(` ${model?.name || config.defaultModel}`));
24
- }
25
- else {
26
- console.log(chalk.yellow(" (未设置)"));
27
- }
28
- console.log(SEPARATOR);
29
- console.log(chalk.blue.bold("🎨 默认图片模型:"));
30
- if (config.defaultImageModel) {
31
- const model = (config.imageModels || []).find((m) => m.id === config.defaultImageModel);
32
- console.log(chalk.white(` ${model?.name || config.defaultImageModel}`));
33
- }
34
- else {
35
- console.log(chalk.yellow(" (未设置)"));
36
- }
37
- console.log(SEPARATOR);
38
- console.log(chalk.blue.bold("🤖 默认 Agent:"));
39
- if (config.defaultAgent) {
40
- console.log(chalk.white(` ${config.defaultAgent}`));
41
- }
42
- else {
43
- console.log(chalk.yellow(" (未设置)"));
44
- }
45
- console.log(SEPARATOR);
46
- console.log(chalk.blue.bold("🔌 MCP 服务器:"));
47
- const mcp = await readMcpConfig();
48
- const names = Object.keys(mcp.mcpServers);
49
- if (names.length === 0) {
50
- console.log(chalk.yellow(" (未配置)"));
51
- }
52
- else {
53
- for (const name of names) {
54
- const srv = mcp.mcpServers[name];
55
- console.log(chalk.white(` ${name}`));
56
- console.log(chalk.gray(` 传输方式: ${srv.type}`));
57
- if (srv.type === "stdio") {
58
- console.log(chalk.gray(` 命令: ${srv.command}`));
59
- }
60
- else {
61
- console.log(chalk.gray(` URL: ${srv.url}`));
62
- }
63
- }
64
- }
65
- console.log(SEPARATOR);
66
- console.log(chalk.gray(`配置文件路径: ${CONFIG_FILE}`));
67
- console.log(chalk.gray(`MCP 配置路径: ${MCP_CONFIG_FILE}`));
68
- for (const [label, p] of [
69
- ["~/.agents/mcp.json", USER_AGENTS_MCP_CONFIG_FILE],
70
- [".agents/mcp.json", PROJECT_AGENTS_MCP_CONFIG_FILE],
71
- ["~/.agents/skills/", USER_AGENTS_SKILLS_DIR],
72
- [".agents/skills/", PROJECT_AGENTS_SKILLS_DIR],
73
- ]) {
74
- try {
75
- await fs.access(p);
76
- console.log(chalk.gray(`${label}: ${p} ✅`));
77
- }
78
- catch { }
79
- }
80
- console.log();
81
- }
82
- //# sourceMappingURL=config-display.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-display.js","sourceRoot":"","sources":["../../src/menus/config-display.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * 配置管理菜单
3
- *
4
- * 所有配置读写委托给 SDK 的 readConfig / saveConfig。
5
- * 菜单 UI 通过 config 对象的类型化字段直接操作,无需中间包装函数。
6
- */
7
- export declare function showInteractiveConfig(): Promise<void>;
8
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/menus/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgVH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqC3D"}