@ai-zen/air 0.2.2 → 0.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.
Files changed (62) hide show
  1. package/package.json +3 -3
  2. package/src/__tests__/e2e.test.ts +1 -1
  3. package/dist/agent-runtime.d.ts +0 -2
  4. package/dist/agent-runtime.d.ts.map +0 -1
  5. package/dist/agent-runtime.js +0 -314
  6. package/dist/agent-runtime.js.map +0 -1
  7. package/dist/chat/commands/message.d.ts +0 -5
  8. package/dist/chat/commands/message.d.ts.map +0 -1
  9. package/dist/chat/commands/message.js +0 -53
  10. package/dist/chat/commands/message.js.map +0 -1
  11. package/dist/chat/session.d.ts +0 -8
  12. package/dist/chat/session.d.ts.map +0 -1
  13. package/dist/chat/session.js +0 -77
  14. package/dist/chat/session.js.map +0 -1
  15. package/dist/main.d.ts +0 -7
  16. package/dist/main.d.ts.map +0 -1
  17. package/dist/main.js +0 -248
  18. package/dist/main.js.map +0 -1
  19. package/dist/session/commands/back.d.ts +0 -3
  20. package/dist/session/commands/back.d.ts.map +0 -1
  21. package/dist/session/commands/back.js +0 -95
  22. package/dist/session/commands/back.js.map +0 -1
  23. package/dist/session/commands/editor.d.ts +0 -3
  24. package/dist/session/commands/editor.d.ts.map +0 -1
  25. package/dist/session/commands/editor.js +0 -20
  26. package/dist/session/commands/editor.js.map +0 -1
  27. package/dist/session/commands/exit.d.ts +0 -3
  28. package/dist/session/commands/exit.d.ts.map +0 -1
  29. package/dist/session/commands/exit.js +0 -5
  30. package/dist/session/commands/exit.js.map +0 -1
  31. package/dist/session/commands/help.d.ts +0 -2
  32. package/dist/session/commands/help.d.ts.map +0 -1
  33. package/dist/session/commands/help.js +0 -4
  34. package/dist/session/commands/help.js.map +0 -1
  35. package/dist/session/commands/load.d.ts +0 -3
  36. package/dist/session/commands/load.d.ts.map +0 -1
  37. package/dist/session/commands/load.js +0 -37
  38. package/dist/session/commands/load.js.map +0 -1
  39. package/dist/session/commands/new.d.ts +0 -3
  40. package/dist/session/commands/new.d.ts.map +0 -1
  41. package/dist/session/commands/new.js +0 -6
  42. package/dist/session/commands/new.js.map +0 -1
  43. package/dist/session/commands/save.d.ts +0 -3
  44. package/dist/session/commands/save.d.ts.map +0 -1
  45. package/dist/session/commands/save.js +0 -5
  46. package/dist/session/commands/save.js.map +0 -1
  47. package/dist/session/message.d.ts +0 -3
  48. package/dist/session/message.d.ts.map +0 -1
  49. package/dist/session/message.js +0 -31
  50. package/dist/session/message.js.map +0 -1
  51. package/dist/session/print.d.ts +0 -3
  52. package/dist/session/print.d.ts.map +0 -1
  53. package/dist/session/print.js +0 -24
  54. package/dist/session/print.js.map +0 -1
  55. package/dist/session/runtime.d.ts +0 -2
  56. package/dist/session/runtime.d.ts.map +0 -1
  57. package/dist/session/runtime.js +0 -46
  58. package/dist/session/runtime.js.map +0 -1
  59. package/dist/session/shared.d.ts +0 -8
  60. package/dist/session/shared.d.ts.map +0 -1
  61. package/dist/session/shared.js +0 -77
  62. package/dist/session/shared.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/session/runtime.ts"],"names":[],"mappings":"AAOA,wBAAsB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC5E"}
@@ -1,46 +0,0 @@
1
- import { Message } from "@ai-zen/agents-core";
2
- import { readConfig, readMessages, saveMessages, saveSnapshot } from "../config.js";
3
- import { buildAgent } from "../agent-factory.js";
4
- import { contextSize } from "../migration.js";
5
- import { SYSTEM_PROMPT, saveAndNew, ask } from "./shared.js";
6
- import { sendAndPrint } from "./print.js";
7
- export async function runConversation(initialMessage) {
8
- const config = readConfig();
9
- if (!config.apiKey) {
10
- console.error("❌ 请先设置 API Key: air key <your-key>");
11
- console.error(" 获取 Key: https://platform.deepseek.com/api_keys");
12
- process.exit(1);
13
- }
14
- let msgs = readMessages();
15
- if (msgs.length === 0) {
16
- msgs = [Message.System(SYSTEM_PROMPT)];
17
- saveMessages(msgs);
18
- }
19
- const agent = await buildAgent(msgs);
20
- const ctx = { agent };
21
- if (initialMessage) {
22
- const hasHistory = ctx.agent.messages.some(m => m.role === "user" || m.role === "assistant");
23
- if (hasHistory) {
24
- const snap = saveSnapshot(ctx.agent.messages);
25
- console.log(`💾 已存档旧对话: ${snap}\n`);
26
- }
27
- await saveAndNew(ctx);
28
- console.log(`💬 你: ${initialMessage}`);
29
- try {
30
- await sendAndPrint(ctx.agent, initialMessage);
31
- saveMessages(ctx.agent.messages);
32
- }
33
- catch (err) {
34
- console.error(`\n❌ ${err.message}`);
35
- }
36
- console.log("\n💬 继续对话 (输入 /exit 退出)\n");
37
- await ask(ctx);
38
- return;
39
- }
40
- const msgCount = ctx.agent.messages.filter((m) => m.role !== "system").length;
41
- console.log(msgCount > 0
42
- ? `\n💬 继续上次对话 (${msgCount} 条,/${contextSize(ctx.agent.messages)} 字符,输入 /new 重新开始)\n`
43
- : "\n💬 air — 极简 AI 助手 (输入 /help 查看命令)\n");
44
- await ask(ctx);
45
- }
46
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/session/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAc,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAuB;IAC3D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;IAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAU,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAe,EAAE,KAAK,EAAE,CAAC;IAElC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC7F,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YAC9C,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC;QACtB,CAAC,CAAC,gBAAgB,QAAQ,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB;QACrF,CAAC,CAAC,uCAAuC,CAAC,CAAC;IAE7C,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { Agent } from "@ai-zen/agents-core";
2
- export interface SessionCtx {
3
- agent: Agent;
4
- }
5
- export declare const SYSTEM_PROMPT: string;
6
- export declare function saveAndNew(ctx: SessionCtx): Promise<void>;
7
- export declare function ask(ctx: SessionCtx): Promise<void>;
8
- //# sourceMappingURL=shared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/session/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAW,MAAM,qBAAqB,CAAC;AAarD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,eAAO,MAAM,aAAa,QAcd,CAAC;AAEb,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAgCD,wBAAsB,GAAG,CAAC,GAAG,EAAE,UAAU,iBAaxC"}
@@ -1,77 +0,0 @@
1
- import { Message } from "@ai-zen/agents-core";
2
- import inquirer from "inquirer";
3
- import { saveMessages } from "../config.js";
4
- import { buildAgent } from "../agent-factory.js";
5
- import { handleMessage } from "./message.js";
6
- import { cmdExit } from "./commands/exit.js";
7
- import { cmdHelp } from "./commands/help.js";
8
- import { cmdSave } from "./commands/save.js";
9
- import { cmdNew } from "./commands/new.js";
10
- import { cmdLoad } from "./commands/load.js";
11
- import { cmdEditor } from "./commands/editor.js";
12
- import { cmdBack } from "./commands/back.js";
13
- export const SYSTEM_PROMPT = [
14
- "你是一个AI助手,专门帮助用户回答问题和执行任务。请用中文回复。",
15
- "",
16
- "## 行为准则",
17
- "1. 做任何改动之前,必须先跟用户商量,获得明确指示之后再行动。",
18
- "2. 用户没有明确要求产出文件时,不得自行创建任何文件到项目中。讨论就停留在讨论层面。",
19
- "3. 区分危险操作:删除文件、覆盖文件、安装卸载软件、修改系统配置、执行耗时任务等属于危险操作。执行前必须评估影响范围,并向用户说明风险,获得用户明确的书面的确认之后再执行。",
20
- "4. 追责原则:你的每一步操作都应当基于用户的明确指令。如果出了问题,可以从用户说过的话追溯责任——是用户让你做的,用户承担责任。所以你不需要畏手畏脚,只要用户明确说了\u201c做\u201d,你就放心去做。",
21
- "",
22
- "## 记忆",
23
- "你可以使用 shell 工具执行任何命令。如果你有需要长期记住的信息(用户偏好、项目约定、任务进度等),请写入以下位置:",
24
- "- 全局记忆: ~/.ai-zen/air/temp/*.md",
25
- "- 项目记忆: $(cwd)/.ai-zen/air/temp/*.md",
26
- "下次启动时用 shell 读取即可。这是你唯一的记忆方式。",
27
- ].join("\n");
28
- export async function saveAndNew(ctx) {
29
- const msgs = [Message.System(SYSTEM_PROMPT)];
30
- saveMessages(msgs);
31
- ctx.agent = await buildAgent(msgs);
32
- }
33
- async function dispatchCommand(ctx, cmd) {
34
- switch (cmd) {
35
- case "/exit":
36
- case "/quit":
37
- cmdExit(ctx);
38
- break;
39
- case "/save":
40
- await cmdSave(ctx);
41
- break;
42
- case "/new":
43
- await cmdNew(ctx);
44
- break;
45
- case "/load":
46
- await cmdLoad(ctx);
47
- break;
48
- case "/back":
49
- await cmdBack(ctx);
50
- break;
51
- case "/editor":
52
- await cmdEditor(ctx);
53
- break;
54
- case "/help":
55
- cmdHelp();
56
- break;
57
- default:
58
- console.log(`\n❌ 未知命令: ${cmd}\n`);
59
- break;
60
- }
61
- }
62
- export async function ask(ctx) {
63
- while (true) {
64
- const { input } = await inquirer.prompt([
65
- { type: "input", name: "input", message: "你:" },
66
- ]);
67
- const t = input.trim();
68
- if (!t)
69
- continue;
70
- if (t.startsWith("/")) {
71
- await dispatchCommand(ctx, t.toLowerCase());
72
- continue;
73
- }
74
- await handleMessage(ctx, t);
75
- }
76
- }
77
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/session/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM7C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,kCAAkC;IAClC,EAAE;IACF,SAAS;IACT,kCAAkC;IAClC,6CAA6C;IAC7C,yFAAyF;IACzF,2GAA2G;IAC3G,EAAE;IACF,OAAO;IACP,8DAA8D;IAC9D,iCAAiC;IACjC,sCAAsC;IACtC,+BAA+B;CAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAe;IAC9C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7C,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAe,EAAE,GAAW;IACzD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,MAAM;QACR,KAAK,OAAO;YACV,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,OAAO,EAAE,CAAC;YACV,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;YAClC,MAAM;IACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,GAAe;IACvC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}