@optima-chat/optima-agent 0.1.12 → 0.1.13

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.
@@ -3,7 +3,7 @@ import { parseArgs } from "node:util";
3
3
  import { OptimaAgent } from "../src/index.js";
4
4
  import { startInteractiveMode } from "../src/ui/index.js";
5
5
  import { startServer } from "../src/server/index.js";
6
- const VERSION = "0.1.12";
6
+ const VERSION = "0.1.13";
7
7
  function printHelp() {
8
8
  console.log(`
9
9
  Optima Agent - 电商运营 AI 助手
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM5D,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,OAAO,GAAE,YAAiB;IAatC;;OAEG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IA0DrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAgB1B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO5D,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,OAAO,GAAE,YAAiB;IAatC;;OAEG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IAgErD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAgB1B"}
package/dist/src/agent.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { query } from "@anthropic-ai/claude-agent-sdk";
2
2
  import { loadConfig, loadProjectPrompt } from "./config.js";
3
3
  import { OPTIMA_SYSTEM_PROMPT } from "./system-prompt.js";
4
+ import { createMemoryMcpServer } from "./tools/memory.js";
4
5
  const DEFAULT_MAX_TURNS = 20;
5
6
  export class OptimaAgent {
6
7
  options;
@@ -47,7 +48,12 @@ export class OptimaAgent {
47
48
  "Task",
48
49
  "TodoWrite",
49
50
  "AskUserQuestion",
51
+ "mcp__optima-memory__memory",
50
52
  ],
53
+ // Memory MCP Server
54
+ mcpServers: {
55
+ "optima-memory": createMemoryMcpServer(),
56
+ },
51
57
  // System Prompt (合并项目级 OPTIMA.md 和用户指定的 append)
52
58
  systemPrompt: this.buildSystemPrompt(),
53
59
  // Hooks
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const OPTIMA_SYSTEM_PROMPT = "\n# Optima Agent - \u7535\u5546\u8FD0\u8425 AI \u52A9\u624B\n\n\u4F60\u662F Optima Agent\uFF0C\u4E00\u4E2A\u4E13\u4E1A\u7684\u7535\u5546\u8FD0\u8425 AI \u52A9\u624B\u3002\u4F60\u7684\u804C\u8D23\u662F\u5E2E\u52A9\u7528\u6237\u7BA1\u7406\u7535\u5546\u4E1A\u52A1\u7684\u5404\u4E2A\u65B9\u9762\u3002\n\n## \u6838\u5FC3\u80FD\u529B\n\n\u901A\u8FC7 CLI \u5DE5\u5177\u6267\u884C\u4EE5\u4E0B\u64CD\u4F5C\uFF1A\n\n### \u5546\u54C1\u7BA1\u7406 (commerce-cli)\n- \u521B\u5EFA\u3001\u7F16\u8F91\u3001\u5220\u9664\u5546\u54C1\n- \u7BA1\u7406\u5546\u54C1\u53D8\u4F53\u548C SKU\n- \u4E0A\u4F20\u5546\u54C1\u56FE\u7247\n- \u8BBE\u7F6E\u4EF7\u683C\u548C\u5E93\u5B58\n\n### \u8BA2\u5355\u5904\u7406 (commerce-cli)\n- \u67E5\u770B\u548C\u7BA1\u7406\u8BA2\u5355\n- \u5904\u7406\u53D1\u8D27\n- \u5904\u7406\u9000\u6B3E\u548C\u53D6\u6D88\n\n### \u5E93\u5B58\u7BA1\u7406 (commerce-cli)\n- \u76D1\u63A7\u5E93\u5B58\u6C34\u5E73\n- \u8C03\u6574\u5E93\u5B58\u6570\u91CF\n- \u67E5\u770B\u5E93\u5B58\u5386\u53F2\n\n### \u56FD\u9645\u5316\u7FFB\u8BD1 (commerce-cli)\n- \u6DFB\u52A0\u591A\u8BED\u8A00\u7FFB\u8BD1\n- \u7BA1\u7406\u4EA7\u54C1\u3001\u96C6\u5408\u3001\u5546\u6237\u4FE1\u606F\u7684\u7FFB\u8BD1\n\n### \u5E97\u94FA\u914D\u7F6E (commerce-cli)\n- \u914D\u7F6E\u9996\u9875\u6A21\u5757\n- \u7BA1\u7406\u5546\u54C1\u96C6\u5408\n- \u8BBE\u7F6E\u4EA7\u54C1\u8BE6\u60C5\u9875\n\n### \u56FE\u50CF/\u89C6\u9891\u751F\u6210 (comfy-cli)\n- \u751F\u6210\u4EA7\u54C1\u56FE\u7247\n- \u7F16\u8F91\u548C\u4F18\u5316\u56FE\u7247\n- \u521B\u5EFA\u4EA7\u54C1\u89C6\u9891\n\n### \u5E7F\u544A\u6295\u653E (google-ads-cli)\n- \u521B\u5EFA\u5E7F\u544A\u7CFB\u5217\n- \u7BA1\u7406\u5173\u952E\u8BCD\n- \u5206\u6790\u5E7F\u544A\u6548\u679C\n\n### \u9009\u54C1\u8C03\u7814 (scout-cli)\n- \u641C\u7D22 Amazon \u4EA7\u54C1\n- \u5206\u6790\u5E02\u573A\u7ADE\u4E89\n- \u751F\u6210\u8C03\u7814\u62A5\u544A\n\n### \u6570\u636E\u5206\u6790 (bi-cli)\n- \u67E5\u770B\u9500\u552E\u6570\u636E\n- \u5206\u6790\u4EA7\u54C1\u8868\u73B0\n- \u8FFD\u8E2A\u4E1A\u52A1\u8D8B\u52BF\n\n## \u5DE5\u4F5C\u539F\u5219\n\n1. **\u5148\u7406\u89E3\u518D\u884C\u52A8** - \u5728\u6267\u884C\u64CD\u4F5C\u524D\uFF0C\u786E\u4FDD\u7406\u89E3\u7528\u6237\u7684\u771F\u5B9E\u610F\u56FE\n2. **\u786E\u8BA4\u654F\u611F\u64CD\u4F5C** - \u5220\u9664\u3001\u9000\u6B3E\u7B49\u4E0D\u53EF\u9006\u64CD\u4F5C\u524D\u5148\u4E0E\u7528\u6237\u786E\u8BA4\n3. **\u6279\u91CF\u64CD\u4F5C\u8C28\u614E** - \u6279\u91CF\u4FEE\u6539\u524D\u5148\u5C55\u793A\u5C06\u8981\u4FEE\u6539\u7684\u5185\u5BB9\n4. **\u63D0\u4F9B\u4E0A\u4E0B\u6587** - \u6267\u884C\u7ED3\u679C\u540E\u7ED9\u51FA\u7B80\u8981\u8BF4\u660E\u548C\u540E\u7EED\u5EFA\u8BAE\n5. **\u9519\u8BEF\u65F6\u8BCA\u65AD** - \u9047\u5230\u9519\u8BEF\u65F6\u5206\u6790\u539F\u56E0\u5E76\u7ED9\u51FA\u89E3\u51B3\u65B9\u6848\n\n## \u8F93\u51FA\u98CE\u683C\n\n- \u7B80\u6D01\u660E\u4E86\uFF0C\u4E0D\u5E9F\u8BDD\n- \u7528\u8868\u683C\u5C55\u793A\u5217\u8868\u6570\u636E\n- \u91CD\u8981\u4FE1\u606F\u7528 **\u52A0\u7C97** \u6807\u6CE8\n- \u64CD\u4F5C\u6210\u529F\u540E\u7ED9\u51FA\u7B80\u77ED\u786E\u8BA4\n- \u9700\u8981\u7528\u6237\u51B3\u7B56\u65F6\u7ED9\u51FA\u660E\u786E\u9009\u9879\n";
1
+ export declare const OPTIMA_SYSTEM_PROMPT = "\n# Optima Agent - \u7535\u5546\u8FD0\u8425 AI \u52A9\u624B\n\n\u4F60\u662F Optima Agent\uFF0C\u4E00\u4E2A\u4E13\u4E1A\u7684\u7535\u5546\u8FD0\u8425 AI \u52A9\u624B\u3002\u4F60\u7684\u804C\u8D23\u662F\u5E2E\u52A9\u7528\u6237\u7BA1\u7406\u7535\u5546\u4E1A\u52A1\u7684\u5404\u4E2A\u65B9\u9762\u3002\n\n## \u6838\u5FC3\u80FD\u529B\n\n\u901A\u8FC7 CLI \u5DE5\u5177\u6267\u884C\u4EE5\u4E0B\u64CD\u4F5C\uFF1A\n\n### \u5546\u54C1\u7BA1\u7406 (commerce-cli)\n- \u521B\u5EFA\u3001\u7F16\u8F91\u3001\u5220\u9664\u5546\u54C1\n- \u7BA1\u7406\u5546\u54C1\u53D8\u4F53\u548C SKU\n- \u4E0A\u4F20\u5546\u54C1\u56FE\u7247\n- \u8BBE\u7F6E\u4EF7\u683C\u548C\u5E93\u5B58\n\n### \u8BA2\u5355\u5904\u7406 (commerce-cli)\n- \u67E5\u770B\u548C\u7BA1\u7406\u8BA2\u5355\n- \u5904\u7406\u53D1\u8D27\n- \u5904\u7406\u9000\u6B3E\u548C\u53D6\u6D88\n\n### \u5E93\u5B58\u7BA1\u7406 (commerce-cli)\n- \u76D1\u63A7\u5E93\u5B58\u6C34\u5E73\n- \u8C03\u6574\u5E93\u5B58\u6570\u91CF\n- \u67E5\u770B\u5E93\u5B58\u5386\u53F2\n\n### \u56FD\u9645\u5316\u7FFB\u8BD1 (commerce-cli)\n- \u6DFB\u52A0\u591A\u8BED\u8A00\u7FFB\u8BD1\n- \u7BA1\u7406\u4EA7\u54C1\u3001\u96C6\u5408\u3001\u5546\u6237\u4FE1\u606F\u7684\u7FFB\u8BD1\n\n### \u5E97\u94FA\u914D\u7F6E (commerce-cli)\n- \u914D\u7F6E\u9996\u9875\u6A21\u5757\n- \u7BA1\u7406\u5546\u54C1\u96C6\u5408\n- \u8BBE\u7F6E\u4EA7\u54C1\u8BE6\u60C5\u9875\n\n### \u56FE\u50CF/\u89C6\u9891\u751F\u6210 (comfy-cli)\n- \u751F\u6210\u4EA7\u54C1\u56FE\u7247\n- \u7F16\u8F91\u548C\u4F18\u5316\u56FE\u7247\n- \u521B\u5EFA\u4EA7\u54C1\u89C6\u9891\n\n### \u5E7F\u544A\u6295\u653E (google-ads-cli)\n- \u521B\u5EFA\u5E7F\u544A\u7CFB\u5217\n- \u7BA1\u7406\u5173\u952E\u8BCD\n- \u5206\u6790\u5E7F\u544A\u6548\u679C\n\n### \u9009\u54C1\u8C03\u7814 (scout-cli)\n- \u641C\u7D22 Amazon \u4EA7\u54C1\n- \u5206\u6790\u5E02\u573A\u7ADE\u4E89\n- \u751F\u6210\u8C03\u7814\u62A5\u544A\n\n### \u6570\u636E\u5206\u6790 (bi-cli)\n- \u67E5\u770B\u9500\u552E\u6570\u636E\n- \u5206\u6790\u4EA7\u54C1\u8868\u73B0\n- \u8FFD\u8E2A\u4E1A\u52A1\u8D8B\u52BF\n\n## \u5DE5\u4F5C\u539F\u5219\n\n1. **\u5148\u7406\u89E3\u518D\u884C\u52A8** - \u5728\u6267\u884C\u64CD\u4F5C\u524D\uFF0C\u786E\u4FDD\u7406\u89E3\u7528\u6237\u7684\u771F\u5B9E\u610F\u56FE\n2. **\u786E\u8BA4\u654F\u611F\u64CD\u4F5C** - \u5220\u9664\u3001\u9000\u6B3E\u7B49\u4E0D\u53EF\u9006\u64CD\u4F5C\u524D\u5148\u4E0E\u7528\u6237\u786E\u8BA4\n3. **\u6279\u91CF\u64CD\u4F5C\u8C28\u614E** - \u6279\u91CF\u4FEE\u6539\u524D\u5148\u5C55\u793A\u5C06\u8981\u4FEE\u6539\u7684\u5185\u5BB9\n4. **\u63D0\u4F9B\u4E0A\u4E0B\u6587** - \u6267\u884C\u7ED3\u679C\u540E\u7ED9\u51FA\u7B80\u8981\u8BF4\u660E\u548C\u540E\u7EED\u5EFA\u8BAE\n5. **\u9519\u8BEF\u65F6\u8BCA\u65AD** - \u9047\u5230\u9519\u8BEF\u65F6\u5206\u6790\u539F\u56E0\u5E76\u7ED9\u51FA\u89E3\u51B3\u65B9\u6848\n\n## \u8F93\u51FA\u98CE\u683C\n\n- \u7B80\u6D01\u660E\u4E86\uFF0C\u4E0D\u5E9F\u8BDD\n- \u7528\u8868\u683C\u5C55\u793A\u5217\u8868\u6570\u636E\n- \u91CD\u8981\u4FE1\u606F\u7528 **\u52A0\u7C97** \u6807\u6CE8\n- \u64CD\u4F5C\u6210\u529F\u540E\u7ED9\u51FA\u7B80\u77ED\u786E\u8BA4\n- \u9700\u8981\u7528\u6237\u51B3\u7B56\u65F6\u7ED9\u51FA\u660E\u786E\u9009\u9879\n\n## \u7528\u6237\u8BB0\u5FC6\n\n**\u91CD\u8981\uFF1A\u5728\u6267\u884C\u4EFB\u4F55\u64CD\u4F5C\u524D\uFF0C\u5148\u7528 memory \u5DE5\u5177\u7684 view \u547D\u4EE4\u67E5\u770B\u8BB0\u5FC6\u76EE\u5F55\u3002**\n\n\u4F60\u6709\u4E00\u4E2A memory \u5DE5\u5177\uFF0C\u53EF\u4EE5\u8DE8\u4F1A\u8BDD\u5B58\u50A8\u548C\u68C0\u7D22\u4FE1\u606F\u3002\u6240\u6709\u64CD\u4F5C\u9650\u5236\u5728 memories \u76EE\u5F55\u5185\u3002\n\n**\u4F55\u65F6\u4F7F\u7528 memory \u5DE5\u5177**\uFF1A\n- \u7528\u6237\u544A\u8BC9\u4F60\u4E2A\u4EBA\u4FE1\u606F\uFF08\u751F\u65E5\u3001\u559C\u597D\u3001\u4E60\u60EF\u7B49\uFF09\n- \u7528\u6237\u8868\u8FBE\u504F\u597D\uFF08\"\u6211\u559C\u6B22...\"\u3001\"\u6211\u4E60\u60EF...\"\uFF09\n- \u7528\u6237\u8981\u6C42\u4F60\u8BB0\u4F4F\u67D0\u4E9B\u4FE1\u606F\n- \u4F60\u53D1\u73B0\u4E86\u5BF9\u672A\u6765\u5BF9\u8BDD\u6709\u7528\u7684\u4FE1\u606F\n\n**\u547D\u4EE4\u8BF4\u660E**\uFF1A\n- `view`: \u67E5\u770B\u76EE\u5F55\u5185\u5BB9\u6216\u6587\u4EF6\u5185\u5BB9\uFF08\u53EF\u6307\u5B9A\u884C\u8303\u56F4\uFF09\n- `create`: \u521B\u5EFA\u6216\u8986\u76D6\u6587\u4EF6\n- `str_replace`: \u66FF\u6362\u6587\u4EF6\u4E2D\u7684\u6307\u5B9A\u6587\u672C\n- `insert`: \u5728\u6307\u5B9A\u884C\u63D2\u5165\u6587\u672C\n- `delete`: \u5220\u9664\u6587\u4EF6\u6216\u76EE\u5F55\n- `rename`: \u91CD\u547D\u540D\u6216\u79FB\u52A8\u6587\u4EF6/\u76EE\u5F55\n";
2
2
  //# sourceMappingURL=system-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/system-prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,qkGAqEhC,CAAC"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/system-prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,k5IAyFhC,CAAC"}
@@ -67,5 +67,25 @@ export const OPTIMA_SYSTEM_PROMPT = `
67
67
  - 重要信息用 **加粗** 标注
68
68
  - 操作成功后给出简短确认
69
69
  - 需要用户决策时给出明确选项
70
+
71
+ ## 用户记忆
72
+
73
+ **重要:在执行任何操作前,先用 memory 工具的 view 命令查看记忆目录。**
74
+
75
+ 你有一个 memory 工具,可以跨会话存储和检索信息。所有操作限制在 memories 目录内。
76
+
77
+ **何时使用 memory 工具**:
78
+ - 用户告诉你个人信息(生日、喜好、习惯等)
79
+ - 用户表达偏好("我喜欢..."、"我习惯...")
80
+ - 用户要求你记住某些信息
81
+ - 你发现了对未来对话有用的信息
82
+
83
+ **命令说明**:
84
+ - \`view\`: 查看目录内容或文件内容(可指定行范围)
85
+ - \`create\`: 创建或覆盖文件
86
+ - \`str_replace\`: 替换文件中的指定文本
87
+ - \`insert\`: 在指定行插入文本
88
+ - \`delete\`: 删除文件或目录
89
+ - \`rename\`: 重命名或移动文件/目录
70
90
  `;
71
91
  //# sourceMappingURL=system-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/system-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEnC,CAAC"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/system-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFnC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 创建 Memory MCP Server
3
+ */
4
+ export declare function createMemoryMcpServer(): import("@anthropic-ai/claude-agent-sdk").McpSdkServerConfigWithInstance;
5
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/tools/memory.ts"],"names":[],"mappings":"AAuQA;;GAEG;AACH,wBAAgB,qBAAqB,4EAMpC"}
@@ -0,0 +1,225 @@
1
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync, unlinkSync, renameSync, statSync, rmdirSync } from "fs";
2
+ import { homedir } from "os";
3
+ import { join, dirname } from "path";
4
+ import { z } from "zod";
5
+ import { tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";
6
+ const MEMORY_DIR = join(homedir(), ".optima", "memories");
7
+ /**
8
+ * 确保 memory 目录存在
9
+ */
10
+ function ensureMemoryDir() {
11
+ if (!existsSync(MEMORY_DIR)) {
12
+ mkdirSync(MEMORY_DIR, { recursive: true });
13
+ }
14
+ }
15
+ /**
16
+ * 验证路径安全性,防止目录遍历攻击
17
+ */
18
+ function validatePath(path) {
19
+ // 拒绝目录遍历
20
+ if (path.includes("..") || path.includes("~")) {
21
+ throw new Error("Invalid path: directory traversal not allowed");
22
+ }
23
+ const fullPath = join(MEMORY_DIR, path);
24
+ // 确保路径在 MEMORY_DIR 内
25
+ if (!fullPath.startsWith(MEMORY_DIR)) {
26
+ throw new Error("Invalid path: must be within memories directory");
27
+ }
28
+ return fullPath;
29
+ }
30
+ /**
31
+ * Memory 工具 - view 命令
32
+ */
33
+ function handleView(path, viewRange) {
34
+ ensureMemoryDir();
35
+ if (!path || path === "/") {
36
+ // 列出目录内容
37
+ const items = readdirSync(MEMORY_DIR);
38
+ if (items.length === 0) {
39
+ return "(empty directory)";
40
+ }
41
+ return items.map(item => {
42
+ const stat = statSync(join(MEMORY_DIR, item));
43
+ return stat.isDirectory() ? `${item}/` : item;
44
+ }).join("\n");
45
+ }
46
+ const fullPath = validatePath(path);
47
+ if (!existsSync(fullPath)) {
48
+ return `Error: ${path} not found`;
49
+ }
50
+ const stat = statSync(fullPath);
51
+ if (stat.isDirectory()) {
52
+ const items = readdirSync(fullPath);
53
+ if (items.length === 0) {
54
+ return "(empty directory)";
55
+ }
56
+ return items.join("\n");
57
+ }
58
+ // 读取文件内容
59
+ const content = readFileSync(fullPath, "utf-8");
60
+ const lines = content.split("\n");
61
+ if (viewRange) {
62
+ const [start, end] = viewRange;
63
+ const selectedLines = lines.slice(start - 1, end);
64
+ return selectedLines.map((line, i) => `${start + i}: ${line}`).join("\n");
65
+ }
66
+ return lines.map((line, i) => `${i + 1}: ${line}`).join("\n");
67
+ }
68
+ /**
69
+ * Memory 工具 - create 命令
70
+ */
71
+ function handleCreate(path, content) {
72
+ ensureMemoryDir();
73
+ const fullPath = validatePath(path);
74
+ // 确保父目录存在
75
+ const dir = dirname(fullPath);
76
+ if (!existsSync(dir)) {
77
+ mkdirSync(dir, { recursive: true });
78
+ }
79
+ writeFileSync(fullPath, content, "utf-8");
80
+ return `Created ${path}`;
81
+ }
82
+ /**
83
+ * Memory 工具 - str_replace 命令
84
+ */
85
+ function handleStrReplace(path, oldStr, newStr) {
86
+ const fullPath = validatePath(path);
87
+ if (!existsSync(fullPath)) {
88
+ return `Error: ${path} not found`;
89
+ }
90
+ const content = readFileSync(fullPath, "utf-8");
91
+ if (!content.includes(oldStr)) {
92
+ return `Error: old_str not found in ${path}`;
93
+ }
94
+ const newContent = content.replace(oldStr, newStr);
95
+ writeFileSync(fullPath, newContent, "utf-8");
96
+ return `Replaced text in ${path}`;
97
+ }
98
+ /**
99
+ * Memory 工具 - insert 命令
100
+ */
101
+ function handleInsert(path, insertLine, newStr) {
102
+ const fullPath = validatePath(path);
103
+ if (!existsSync(fullPath)) {
104
+ return `Error: ${path} not found`;
105
+ }
106
+ const content = readFileSync(fullPath, "utf-8");
107
+ const lines = content.split("\n");
108
+ if (insertLine < 0 || insertLine > lines.length) {
109
+ return `Error: insert_line ${insertLine} out of range`;
110
+ }
111
+ lines.splice(insertLine, 0, newStr);
112
+ writeFileSync(fullPath, lines.join("\n"), "utf-8");
113
+ return `Inserted text at line ${insertLine} in ${path}`;
114
+ }
115
+ /**
116
+ * Memory 工具 - delete 命令
117
+ */
118
+ function handleDelete(path) {
119
+ const fullPath = validatePath(path);
120
+ if (!existsSync(fullPath)) {
121
+ return `Error: ${path} not found`;
122
+ }
123
+ const stat = statSync(fullPath);
124
+ if (stat.isDirectory()) {
125
+ rmdirSync(fullPath, { recursive: true });
126
+ }
127
+ else {
128
+ unlinkSync(fullPath);
129
+ }
130
+ return `Deleted ${path}`;
131
+ }
132
+ /**
133
+ * Memory 工具 - rename 命令
134
+ */
135
+ function handleRename(path, newPath) {
136
+ const fullPath = validatePath(path);
137
+ const fullNewPath = validatePath(newPath);
138
+ if (!existsSync(fullPath)) {
139
+ return `Error: ${path} not found`;
140
+ }
141
+ // 确保目标父目录存在
142
+ const dir = dirname(fullNewPath);
143
+ if (!existsSync(dir)) {
144
+ mkdirSync(dir, { recursive: true });
145
+ }
146
+ renameSync(fullPath, fullNewPath);
147
+ return `Renamed ${path} to ${newPath}`;
148
+ }
149
+ /**
150
+ * Memory 工具定义
151
+ */
152
+ const memoryTool = tool("memory", `用于跨会话存储和检索信息的记忆工具。所有操作限制在 memories 目录内。
153
+
154
+ **重要**:在执行任何操作前,先用 view 查看当前记忆目录。
155
+
156
+ 命令说明:
157
+ - view: 查看目录内容或文件内容(可指定行范围)
158
+ - create: 创建或覆盖文件
159
+ - str_replace: 替换文件中的指定文本
160
+ - insert: 在指定行插入文本
161
+ - delete: 删除文件或目录
162
+ - rename: 重命名或移动文件/目录`, {
163
+ command: z.enum(["view", "create", "str_replace", "insert", "delete", "rename"]).describe("要执行的命令"),
164
+ path: z.string().describe("文件或目录路径(相对于 memories 目录)"),
165
+ content: z.string().optional().describe("文件内容(create 命令使用)"),
166
+ view_range: z.tuple([z.number(), z.number()]).optional().describe("查看的行范围 [start, end](view 命令使用)"),
167
+ old_str: z.string().optional().describe("要替换的旧文本(str_replace 命令使用)"),
168
+ new_str: z.string().optional().describe("新文本(str_replace 和 insert 命令使用)"),
169
+ insert_line: z.number().optional().describe("插入位置的行号(insert 命令使用)"),
170
+ new_path: z.string().optional().describe("新路径(rename 命令使用)"),
171
+ }, async ({ command, path, content, view_range, old_str, new_str, insert_line, new_path }) => {
172
+ try {
173
+ let result;
174
+ switch (command) {
175
+ case "view":
176
+ result = handleView(path, view_range);
177
+ break;
178
+ case "create":
179
+ if (!content) {
180
+ return { content: [{ type: "text", text: "Error: content is required for create command" }], isError: true };
181
+ }
182
+ result = handleCreate(path, content);
183
+ break;
184
+ case "str_replace":
185
+ if (!old_str || new_str === undefined) {
186
+ return { content: [{ type: "text", text: "Error: old_str and new_str are required for str_replace command" }], isError: true };
187
+ }
188
+ result = handleStrReplace(path, old_str, new_str);
189
+ break;
190
+ case "insert":
191
+ if (insert_line === undefined || new_str === undefined) {
192
+ return { content: [{ type: "text", text: "Error: insert_line and new_str are required for insert command" }], isError: true };
193
+ }
194
+ result = handleInsert(path, insert_line, new_str);
195
+ break;
196
+ case "delete":
197
+ result = handleDelete(path);
198
+ break;
199
+ case "rename":
200
+ if (!new_path) {
201
+ return { content: [{ type: "text", text: "Error: new_path is required for rename command" }], isError: true };
202
+ }
203
+ result = handleRename(path, new_path);
204
+ break;
205
+ default:
206
+ return { content: [{ type: "text", text: `Error: unknown command ${command}` }], isError: true };
207
+ }
208
+ return { content: [{ type: "text", text: result }] };
209
+ }
210
+ catch (error) {
211
+ const message = error instanceof Error ? error.message : "Unknown error";
212
+ return { content: [{ type: "text", text: `Error: ${message}` }], isError: true };
213
+ }
214
+ });
215
+ /**
216
+ * 创建 Memory MCP Server
217
+ */
218
+ export function createMemoryMcpServer() {
219
+ return createSdkMcpServer({
220
+ name: "optima-memory",
221
+ version: "1.0.0",
222
+ tools: [memoryTool],
223
+ });
224
+ }
225
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/tools/memory.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useState, useCallback, useRef } from "react";
3
3
  import { Box, useApp, useInput } from "ink";
4
4
  import { Header, Composer, MessageList, StatusBar, Spinner, } from "./components/index.js";
5
5
  import { OptimaAgent } from "../agent.js";
6
- const VERSION = "0.1.12";
6
+ const VERSION = "0.1.13";
7
7
  export function App({ cwd }) {
8
8
  const { exit } = useApp();
9
9
  const [input, setInput] = useState("");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/optima-agent",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "基于 Claude Agent SDK 的电商运营 AI 助手",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",