yuangs 3.9.0 → 3.11.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.
@@ -0,0 +1,3 @@
1
+ export declare class ReflectionAgent {
2
+ static run(limit?: number): Promise<void>;
3
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReflectionAgent = void 0;
4
+ const executionStore_1 = require("../core/executionStore");
5
+ const contextStorage_1 = require("../commands/contextStorage");
6
+ class ReflectionAgent {
7
+ static async run(limit = 20) {
8
+ const records = (0, executionStore_1.listExecutionRecords)(limit);
9
+ if (records.length === 0)
10
+ return;
11
+ const failures = records.filter(r => !r.outcome.success);
12
+ const successes = records.filter(r => r.outcome.success);
13
+ const memories = [];
14
+ if (failures.length > 0) {
15
+ memories.push({
16
+ type: 'memory',
17
+ path: 'reflection:failures',
18
+ summary: 'Recent high-risk failures',
19
+ content: failures.slice(0, 5)
20
+ .map(f => `❌ ${f.meta.commandName}`)
21
+ .join('\n'),
22
+ importance: 0.8,
23
+ lastUsedAt: Date.now(),
24
+ id: `reflection:failures:${Date.now()}`,
25
+ tokens: 0
26
+ });
27
+ }
28
+ if (successes.length > 0) {
29
+ memories.push({
30
+ type: 'memory',
31
+ path: 'reflection:success',
32
+ summary: 'Recent stable successes',
33
+ content: successes.slice(0, 5)
34
+ .map(s => `✅ ${s.meta.commandName}`)
35
+ .join('\n'),
36
+ importance: 0.5,
37
+ lastUsedAt: Date.now(),
38
+ id: `reflection:success:${Date.now()}`,
39
+ tokens: 0
40
+ });
41
+ }
42
+ if (memories.length > 0) {
43
+ await (0, contextStorage_1.saveContext)(memories);
44
+ }
45
+ }
46
+ }
47
+ exports.ReflectionAgent = ReflectionAgent;
48
+ //# sourceMappingURL=ReflectionAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReflectionAgent.js","sourceRoot":"","sources":["../../src/agent/ReflectionAgent.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAC9D,+DAAyD;AAGzD,MAAa,eAAe;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE;QACjC,MAAM,OAAO,GAAG,IAAA,qCAAoB,EAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,2BAA2B;gBACpC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;qBACnC,IAAI,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,EAAE,EAAE,uBAAuB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACvC,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;qBACnC,IAAI,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACtC,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAA,4BAAW,EAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AA5CD,0CA4CC"}
@@ -6,7 +6,7 @@ function buildContext(input, contextBuffer) {
6
6
  return {
7
7
  files: items.map(item => ({
8
8
  path: item.path,
9
- content: item.content,
9
+ content: item.content ?? item.summary ?? '',
10
10
  })),
11
11
  gitDiff: undefined, // Will be enhanced later
12
12
  history: [], // Will be populated from conversation history
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":";;AAGA,oCAWC;AAXD,SAAgB,YAAY,CAAC,KAAiB,EAAE,aAA4B;IACxE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IAErC,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,yBAAyB;QAC7C,OAAO,EAAE,EAAE,EAAE,8CAA8C;KAC9D,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":";;AAGA,oCAWC;AAXD,SAAgB,YAAY,CAAC,KAAiB,EAAE,aAA4B;IACxE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IAErC,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE;SAC9C,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,yBAAyB;QAC7C,OAAO,EAAE,EAAE,EAAE,8CAA8C;KAC9D,CAAC;AACN,CAAC"}
package/dist/ai/client.js CHANGED
@@ -14,25 +14,20 @@ const fs_1 = __importDefault(require("fs"));
14
14
  const path_1 = __importDefault(require("path"));
15
15
  const os_1 = __importDefault(require("os"));
16
16
  const validation_1 = require("../core/validation");
17
- const chatHistoryStorage_1 = require("../commands/chatHistoryStorage");
17
+ const db_1 = require("../core/db");
18
18
  const CONFIG_FILE = path_1.default.join(os_1.default.homedir(), '.yuangs.json');
19
- let conversationHistory = [];
20
- // 初始化时加载持久化的聊天历史记录
21
- (0, chatHistoryStorage_1.loadChatHistory)().then(history => {
22
- conversationHistory = history;
23
- });
19
+ let conversationHistory = (0, db_1.getRecentMessagesFromDB)(20);
24
20
  function addToConversationHistory(role, content) {
25
21
  conversationHistory.push({ role, content });
26
22
  if (conversationHistory.length > 20) {
27
23
  conversationHistory = conversationHistory.slice(-20);
28
24
  }
29
- // 同时保存到持久化存储
30
- (0, chatHistoryStorage_1.saveChatHistory)(conversationHistory);
25
+ // Deep persist
26
+ (0, db_1.appendMessageToDB)(role, content);
31
27
  }
32
28
  function clearConversationHistory() {
33
29
  conversationHistory = [];
34
- // 同时清除持久化存储
35
- (0, chatHistoryStorage_1.saveChatHistory)(conversationHistory);
30
+ (0, db_1.clearMessagesInDB)();
36
31
  }
37
32
  function getConversationHistory() {
38
33
  return conversationHistory;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ai/client.ts"],"names":[],"mappings":";;;;;AAgBA,4DAOC;AAED,4DAIC;AAED,wDAEC;AAED,sCAQC;AAED,sBA4BC;AAED,sCAoDC;AA/HD,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,mDAAuI;AACvI,uEAAkF;AAElF,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AAE5D,IAAI,mBAAmB,GAAuB,EAAE,CAAC;AAEjD,mBAAmB;AACnB,IAAA,oCAAe,GAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;IAC7B,mBAAmB,GAAG,OAAO,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,SAAgB,wBAAwB,CAAC,IAAqC,EAAE,OAAe;IAC3F,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,IAAI,mBAAmB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClC,mBAAmB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,aAAa;IACb,IAAA,oCAAe,EAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,wBAAwB;IACpC,mBAAmB,GAAG,EAAE,CAAC;IACzB,YAAY;IACZ,IAAA,oCAAe,EAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,sBAAsB;IAClC,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,SAAgB,aAAa;IACzB,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;QAC7C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,KAAK,CAAC,MAAc,EAAE,KAAc;IACtD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,iCAAoB,CAAC;IAEtD,MAAM,OAAO,GAAG;QACZ,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,YAAY;QAC3B,QAAQ,EAAE,sBAAsB;QAChC,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,MAAM,CAAC,WAAW,IAAI,iCAAoB;QACrD,YAAY,EAAE,yIAAyI;QACvJ,QAAQ,EAAE,kBAAkB;KAC/B,CAAC;IAEF,MAAM,IAAI,GAAG;QACT,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,0BAAa;QACpD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7C,MAAM,EAAE,KAAK;KAChB,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9D,OAAO,OAAO,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC;QAClH,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,QAA4B,EAAE,KAAyB,EAAE,OAAkC;IAC3H,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,iCAAoB,CAAC;IAEtD,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;QACzB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG;QACR,IAAI,EAAE;YACF,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,0BAAa;YACpD,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,IAAI;SACf;QACD,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,YAAY;YAC3B,QAAQ,EAAE,sBAAsB;YAChC,SAAS,EAAE,uBAAuB;YAClC,SAAS,EAAE,MAAM,CAAC,WAAW,IAAI,iCAAoB;YACrD,YAAY,EAAE,yIAAyI;YACvJ,QAAQ,EAAE,kBAAkB;SAC/B;KACJ,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACpB,OAAO,EAAE,CAAC;wBACV,OAAO;oBACX,CAAC;oBACD,IAAI,CAAC;wBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;wBACxD,IAAI,OAAO;4BAAE,OAAO,CAAC,OAAO,CAAC,CAAC;oBAClC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ai/client.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,44 @@
1
1
  export type ContextItem = {
2
- type: 'file' | 'directory';
2
+ id: string;
3
+ type: 'file' | 'directory' | 'memory' | 'antipattern';
3
4
  path: string;
4
5
  alias?: string;
5
- content: string;
6
+ content?: string;
6
7
  summary?: string;
7
8
  tokens: number;
9
+ importance: number;
10
+ lastUsedAt: number;
11
+ pinned?: boolean;
12
+ tags?: string[];
13
+ decayRate?: number;
8
14
  };
9
15
  export declare class ContextBuffer {
10
16
  private items;
11
17
  private maxTokens;
12
- add(item: Omit<ContextItem, 'tokens'>, bypassTokenLimit?: boolean): void;
18
+ add(item: Partial<ContextItem> & {
19
+ type: ContextItem['type'];
20
+ path: string;
21
+ }, bypassTokenLimit?: boolean): void;
13
22
  clear(): void;
14
23
  list(): {
15
24
  index: number;
16
- type: "file" | "directory";
25
+ type: "file" | "directory" | "memory" | "antipattern";
17
26
  path: string;
18
27
  alias: string | undefined;
19
28
  tokens: number;
29
+ importance: string;
30
+ pinned: string;
31
+ ageMin: number;
20
32
  summary: string | undefined;
21
33
  }[];
22
34
  isEmpty(): boolean;
23
35
  export(): ContextItem[];
24
36
  import(items: ContextItem[]): void;
25
37
  private totalTokens;
38
+ private computeImportance;
39
+ private decay;
26
40
  private trimIfNeeded;
41
+ optimizeForTokens(ratio: number): void;
42
+ promoteToMemoryIfNeeded(): void;
27
43
  buildPrompt(userInput: string): string;
28
44
  }
@@ -4,10 +4,19 @@ exports.ContextBuffer = void 0;
4
4
  const estimateTokens = (text) => Math.ceil(text.length / 4);
5
5
  class ContextBuffer {
6
6
  items = [];
7
- maxTokens = 32000; // 约 12.8 万字符
7
+ maxTokens = 32000;
8
8
  add(item, bypassTokenLimit = false) {
9
- const tokens = estimateTokens(item.content);
10
- this.items.push({ ...item, tokens });
9
+ const text = item.content ?? item.summary ?? '';
10
+ const tokens = estimateTokens(text);
11
+ const itemId = item.id || `${item.type}:${item.path}:${Date.now()}`;
12
+ const full = {
13
+ ...item,
14
+ id: itemId,
15
+ tokens,
16
+ importance: 0.5,
17
+ lastUsedAt: Date.now()
18
+ };
19
+ this.items.push(full);
11
20
  if (!bypassTokenLimit) {
12
21
  this.trimIfNeeded();
13
22
  }
@@ -22,6 +31,9 @@ class ContextBuffer {
22
31
  path: item.path,
23
32
  alias: item.alias,
24
33
  tokens: item.tokens,
34
+ importance: item.importance.toFixed(2),
35
+ pinned: item.pinned ? '📌' : '',
36
+ ageMin: Math.floor((Date.now() - item.lastUsedAt) / 60000),
25
37
  summary: item.summary
26
38
  }));
27
39
  }
@@ -32,41 +44,128 @@ class ContextBuffer {
32
44
  return this.items;
33
45
  }
34
46
  import(items) {
35
- this.items = items;
47
+ this.items = items.map(i => ({
48
+ ...i,
49
+ id: i.id || `${i.type}:${i.path}`,
50
+ importance: i.importance ?? 0.5,
51
+ lastUsedAt: i.lastUsedAt ?? Date.now()
52
+ }));
36
53
  }
37
54
  totalTokens() {
38
- return this.items.reduce((sum, i) => sum + i.tokens, 0);
55
+ return this.items.reduce((s, i) => s + i.tokens, 0);
56
+ }
57
+ computeImportance(item, query) {
58
+ const now = Date.now();
59
+ const recency = Math.exp(-(now - item.lastUsedAt) / (1000 * 60 * 30));
60
+ const pinned = item.pinned ? 1 : 0;
61
+ let semantic = 0;
62
+ if (item.content && query) {
63
+ semantic = item.content.toLowerCase().includes(query.toLowerCase())
64
+ ? 1
65
+ : 0;
66
+ }
67
+ item.importance =
68
+ 0.5 * recency +
69
+ 0.3 * semantic +
70
+ 0.2 * pinned;
71
+ }
72
+ decay(item) {
73
+ if (item.pinned)
74
+ return;
75
+ const now = Date.now();
76
+ const last = item.lastUsedAt ?? now;
77
+ const hours = (now - last) / 36e5;
78
+ const rate = item.decayRate ?? 0.95;
79
+ item.importance = (item.importance ?? 0.5) * Math.pow(rate, hours);
39
80
  }
40
81
  trimIfNeeded() {
41
82
  while (this.totalTokens() > this.maxTokens) {
42
- this.items.shift();
83
+ const victim = this.items
84
+ .filter(i => !i.pinned)
85
+ .sort((a, b) => a.importance - b.importance)[0];
86
+ if (!victim)
87
+ break;
88
+ this.items = this.items.filter(i => i !== victim);
89
+ }
90
+ }
91
+ optimizeForTokens(ratio) {
92
+ if (ratio < 0.7)
93
+ return;
94
+ const victims = this.items
95
+ .filter(i => i.content && !i.pinned)
96
+ .sort((a, b) => a.importance - b.importance);
97
+ for (const item of victims) {
98
+ item.summary = item.summary ?? item.content.slice(0, 500) + '...';
99
+ item.content = undefined;
100
+ item.tokens = estimateTokens(item.summary);
101
+ if (this.totalTokens() / this.maxTokens < 0.6)
102
+ break;
103
+ }
104
+ }
105
+ promoteToMemoryIfNeeded() {
106
+ const now = Date.now();
107
+ for (const item of this.items) {
108
+ if (item.type === 'memory' || item.type === 'antipattern')
109
+ continue;
110
+ if (item.importance < 0.85)
111
+ continue;
112
+ if (now - item.lastUsedAt > 1000 * 60 * 10)
113
+ continue;
114
+ item.type = 'memory';
115
+ item.pinned = true;
43
116
  }
44
117
  }
45
118
  buildPrompt(userInput) {
46
119
  if (this.isEmpty())
47
120
  return userInput;
48
- const contextBlock = this.items.map(item => {
49
- const title = item.alias
50
- ? `[Context Item] ${item.type}: ${item.alias} (${item.path})`
51
- : `[Context Item] ${item.type}: ${item.path}`;
52
- const body = item.summary ?? item.content;
121
+ for (const item of this.items) {
122
+ this.decay(item);
123
+ this.computeImportance(item, userInput);
124
+ }
125
+ this.promoteToMemoryIfNeeded();
126
+ this.items = this.items.filter(i => i.type !== 'memory' || (i.importance ?? 0) > 0.2);
127
+ const memory = this.items.filter(i => i.type === 'memory');
128
+ const active = this.items
129
+ .filter(i => i.importance > 0.6 && i.type !== 'memory' && i.type !== 'antipattern')
130
+ .sort((a, b) => b.importance - a.importance)
131
+ .slice(0, 6);
132
+ const reference = this.items.filter(i => !active.includes(i) && i.type !== 'memory' && i.type !== 'antipattern');
133
+ const antiPatterns = this.items.filter(i => i.type === 'antipattern').slice(-3);
134
+ const render = (items) => items
135
+ .map(i => {
136
+ const title = i.alias
137
+ ? `[Context] ${i.type}: ${i.alias} (${i.path})`
138
+ : `[Context] ${i.type}: ${i.path}`;
139
+ const body = i.summary ?? i.content ?? '';
53
140
  return `${title}\n---\n${body}\n---`;
54
- }).join('\n\n');
55
- return `
56
- # 知识上下文 (Knowledge Context)
57
- 你目前的会话已加载以下参考资料。在回答用户问题时,请优先参考这些内容:
141
+ })
142
+ .join('\n\n');
143
+ const renderAntiPatterns = (items) => items
144
+ .map(i => `⚠️ ${i.content}`)
145
+ .join('\n\n');
146
+ let antiPatternSection = '';
147
+ if (antiPatterns.length > 0) {
148
+ antiPatternSection = `
149
+ # Anti-Pattern Warnings
150
+ 以下模式曾导致执行失败,请避免:
151
+ ${renderAntiPatterns(antiPatterns)}
58
152
 
59
- ${contextBlock}
153
+ `;
154
+ }
155
+ return `
156
+ # System Memory
157
+ ${render(memory)}
60
158
 
61
- # 任务说明
62
- 基于上述提供的上下文(如果有),回答用户的问题。如果上下文中包含源码,请将其视为你当前的“真理来源”。
159
+ # Active Context
160
+ ${render(active)}
63
161
 
162
+ # Reference Context
163
+ ${render(reference)}
164
+ ${antiPatternSection}
64
165
  用户问题:
65
166
  ${userInput}
66
167
  `;
67
168
  }
68
169
  }
69
170
  exports.ContextBuffer = ContextBuffer;
70
- // Test change for git diff
71
- // Another test change (unstaged)
72
171
  //# sourceMappingURL=contextBuffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextBuffer.js","sourceRoot":"","sources":["../../src/commands/contextBuffer.ts"],"names":[],"mappings":";;;AASA,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEpE,MAAa,aAAa;IACd,KAAK,GAAkB,EAAE,CAAC;IAC1B,SAAS,GAAG,KAAK,CAAC,CAAC,aAAa;IAExC,GAAG,CAAC,IAAiC,EAAE,mBAA4B,KAAK;QACpE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,KAAoB;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEO,YAAY;QAChB,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;IAED,WAAW,CAAC,SAAiB;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;gBACpB,CAAC,CAAC,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,GAAG;gBAC7D,CAAC,CAAC,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAElD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;YAE1C,OAAO,GAAG,KAAK,UAAU,IAAI,OAAO,CAAC;QACzC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,OAAO;;;;EAIb,YAAY;;;;;;EAMZ,SAAS;CACV,CAAC;IACE,CAAC;CACJ;AA3ED,sCA2EC;AACD,2BAA2B;AAC3B,iCAAiC"}
1
+ {"version":3,"file":"contextBuffer.js","sourceRoot":"","sources":["../../src/commands/contextBuffer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -138,6 +171,26 @@ async function handleAICommand(userInput, options) {
138
171
  }
139
172
  const latencyMs = Date.now() - startTime;
140
173
  if (!isUsingMacro && result.code !== 0 && result.code !== null) {
174
+ // === Anti-Pattern Memory ===
175
+ const failBuffer = new contextBuffer_1.ContextBuffer();
176
+ const persistedFailContext = await (0, contextStorage_1.loadContext)();
177
+ failBuffer.import(persistedFailContext);
178
+ failBuffer.add({
179
+ type: 'antipattern',
180
+ path: `fail:${userInput}`,
181
+ content: `
182
+ Intent:
183
+ ${userInput}
184
+
185
+ Command:
186
+ ${commandToExecute}
187
+
188
+ Error:
189
+ ${result.stderr}
190
+ `,
191
+ tags: ['failure', 'command']
192
+ });
193
+ await (0, contextStorage_1.saveContext)(failBuffer.export());
141
194
  console.log(chalk_1.default.red('\n❌ 执行失败,尝试自动修复...'));
142
195
  const fixedPlan = await (0, autofix_1.autoFixCommand)(commandToExecute, result.stderr, os, selectedModel);
143
196
  if (fixedPlan && fixedPlan.command) {
@@ -169,8 +222,48 @@ async function handleAICommand(userInput, options) {
169
222
  else {
170
223
  console.log(chalk_1.default.green('\n✓ 执行成功并已存入历史库'));
171
224
  }
225
+ const reward = result.code === 0
226
+ ? latencyMs < 500 ? 1 : 0.5
227
+ : -1;
172
228
  if (!isUsingMacro) {
173
229
  capabilitySystem.createAndSaveExecutionRecord('ai-command', requirement, matchResult, commandToExecute);
230
+ const { listExecutionRecords, saveExecutionRecord } = await Promise.resolve().then(() => __importStar(require('../core/executionStore')));
231
+ const records = listExecutionRecords(1);
232
+ if (records.length > 0) {
233
+ const lastRecord = records[0];
234
+ lastRecord.outcome.reward = reward;
235
+ saveExecutionRecord(lastRecord);
236
+ }
237
+ }
238
+ // === Execution Result to Context ===
239
+ const successBuffer = new contextBuffer_1.ContextBuffer();
240
+ const persistedContext = await (0, contextStorage_1.loadContext)();
241
+ successBuffer.import(persistedContext);
242
+ successBuffer.add({
243
+ type: 'memory',
244
+ path: `Execution: ${commandToExecute}`,
245
+ alias: 'Last Successful Execution',
246
+ content: `
247
+ Command:
248
+ ${commandToExecute}
249
+
250
+ Stdout:
251
+ ${result.stdout ?? ''}
252
+
253
+ Stderr:
254
+ ${result.stderr ?? ''}
255
+ `
256
+ }, true);
257
+ await (0, contextStorage_1.saveContext)(successBuffer.export());
258
+ // === Trigger Reflection ===
259
+ if (Math.random() < 0.1) {
260
+ try {
261
+ const { ReflectionAgent } = await Promise.resolve().then(() => __importStar(require('../agent/ReflectionAgent')));
262
+ await ReflectionAgent.run();
263
+ }
264
+ catch (error) {
265
+ // Reflection is optional, fail silently
266
+ }
174
267
  }
175
268
  // Clear context after successful one-shot command execution
176
269
  await (0, contextStorage_1.saveContext)([]);
@@ -1 +1 @@
1
- {"version":3,"file":"handleAICommand.js","sourceRoot":"","sources":["../../src/commands/handleAICommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleAICommand.js","sourceRoot":"","sources":["../../src/commands/handleAICommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AIRequestMessage } from './validation';
2
+ export declare function appendMessageToDB(role: string, content: string): void;
3
+ export declare function getRecentMessagesFromDB(limit?: number): AIRequestMessage[];
4
+ export declare function clearMessagesInDB(): void;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.appendMessageToDB = appendMessageToDB;
7
+ exports.getRecentMessagesFromDB = getRecentMessagesFromDB;
8
+ exports.clearMessagesInDB = clearMessagesInDB;
9
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const os_1 = __importDefault(require("os"));
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const DB_DIR = path_1.default.resolve(os_1.default.homedir(), '.yuangs_chat_history');
14
+ const DB_FILE = path_1.default.join(DB_DIR, 'history.db');
15
+ // Ensure directory exists
16
+ if (!fs_1.default.existsSync(DB_DIR)) {
17
+ fs_1.default.mkdirSync(DB_DIR, { recursive: true });
18
+ }
19
+ let dbInstance = null;
20
+ function getDb() {
21
+ if (!dbInstance) {
22
+ dbInstance = new better_sqlite3_1.default(DB_FILE);
23
+ // Initialize schema
24
+ dbInstance.exec(`
25
+ CREATE TABLE IF NOT EXISTS messages (
26
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
27
+ role TEXT NOT NULL,
28
+ content TEXT NOT NULL,
29
+ timestamp INTEGER DEFAULT (unixepoch())
30
+ );
31
+ CREATE INDEX IF NOT EXISTS idx_timestamp ON messages(timestamp);
32
+ `);
33
+ }
34
+ return dbInstance;
35
+ }
36
+ function appendMessageToDB(role, content) {
37
+ const db = getDb();
38
+ const stmt = db.prepare('INSERT INTO messages (role, content, timestamp) VALUES (?, ?, ?)');
39
+ stmt.run(role, content, Date.now());
40
+ }
41
+ function getRecentMessagesFromDB(limit = 20) {
42
+ const db = getDb();
43
+ // Get last N messages order by timestamp desc, then reverse to get chronological order
44
+ const stmt = db.prepare('SELECT role, content FROM messages ORDER BY id DESC LIMIT ?');
45
+ const rows = stmt.all(limit);
46
+ // Reverse to return in chronological order (oldest -> newest)
47
+ return rows.reverse().map(row => ({
48
+ role: row.role,
49
+ content: row.content
50
+ }));
51
+ }
52
+ function clearMessagesInDB() {
53
+ const db = getDb();
54
+ db.exec('DELETE FROM messages');
55
+ }
56
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":";;;;;AAiCA,8CAIC;AAED,0DAWC;AAED,8CAGC;AAvDD,oEAAsC;AACtC,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AAGpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAClE,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEhD,0BAA0B;AAC1B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,YAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,UAAU,GAA6B,IAAI,CAAC;AAEhD,SAAS,KAAK;IACV,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,UAAU,GAAG,IAAI,wBAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,oBAAoB;QACpB,UAAU,CAAC,IAAI,CAAC;;;;;;;;SAQf,CAAC,CAAC;IACP,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC3D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC;IAC5F,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,uBAAuB,CAAC,QAAgB,EAAE;IACtD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,uFAAuF;IACvF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAwC,CAAC;IAEpE,8DAA8D;IAC9D,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,IAAuC;QACjD,OAAO,EAAE,GAAG,CAAC,OAAO;KACvB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAgB,iBAAiB;IAC7B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACpC,CAAC"}
@@ -31,6 +31,7 @@ export interface ExecutionOutcome {
31
31
  failureReason?: 'capability-mismatch' | 'provider-error' | 'user-abort' | 'timeout' | 'other';
32
32
  tokenCount?: number;
33
33
  latencyMs?: number;
34
+ reward?: number;
34
35
  }
35
36
  export interface ExecutionRecord {
36
37
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"executionRecord.js","sourceRoot":"","sources":["../../src/core/executionRecord.ts"],"names":[],"mappings":";;AAiDA,8CAEC;AAED,sDAqCC;AAED,4DAEC;AAED,gEAEC;AAjDD,SAAgB,iBAAiB;IAC/B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,WAAkC,EAClC,MAAoB,EACpB,WAAgB,EAChB,UAAqC,EAAE,EACvC,OAAgB;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAEtD,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE;YACJ,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;YAC1B,OAAO;YACP,UAAU,EAAE,IAAI;SACjB;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1C,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5C,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,kBAAkB;SAChE;QACD,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE;YACR,eAAe,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;YAC7C,aAAa,EAAE,WAAW,CAAC,QAAQ;YACnC,YAAY,EAAE,WAAW,CAAC,gBAAgB;SAC3C;QACD,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,GAAG,OAAO;SACX;QACD,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAuB;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"executionRecord.js","sourceRoot":"","sources":["../../src/core/executionRecord.ts"],"names":[],"mappings":";;AAkDA,8CAEC;AAED,sDAqCC;AAED,4DAEC;AAED,gEAEC;AAjDD,SAAgB,iBAAiB;IAC/B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,WAAkC,EAClC,MAAoB,EACpB,WAAgB,EAChB,UAAqC,EAAE,EACvC,OAAgB;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAEtD,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE;YACJ,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;YAC1B,OAAO;YACP,UAAU,EAAE,IAAI;SACjB;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1C,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5C,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,kBAAkB;SAChE;QACD,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE;YACR,eAAe,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;YAC7C,aAAa,EAAE,WAAW,CAAC,QAAQ;YACnC,YAAY,EAAE,WAAW,CAAC,gBAAgB;SAC3C;QACD,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,GAAG,OAAO;SACX;QACD,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAuB;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuangs",
3
- "version": "3.9.0",
3
+ "version": "3.11.0",
4
4
  "description": "苑广山的个人应用集合 CLI(彩色版)",
5
5
  "author": "苑广山",
6
6
  "license": "ISC",
@@ -36,6 +36,7 @@
36
36
  "homepage": "https://github.com/yuanguangshan/npm_yuangs#readme",
37
37
  "dependencies": {
38
38
  "axios": "^1.13.2",
39
+ "better-sqlite3": "^12.6.2",
39
40
  "chalk": "^4.1.2",
40
41
  "commander": "^13.1.0",
41
42
  "js-yaml": "^4.1.0",
@@ -48,6 +49,7 @@
48
49
  },
49
50
  "devDependencies": {
50
51
  "@assemblyscript/loader": "^0.27.37",
52
+ "@types/better-sqlite3": "^7.6.13",
51
53
  "@types/jest": "^30.0.0",
52
54
  "@types/js-yaml": "^4.0.9",
53
55
  "@types/json5": "^0.0.30",
@@ -1 +0,0 @@
1
- {"version":3,"file":"chatHistoryStorage.js","sourceRoot":"","sources":["../../src/commands/chatHistoryStorage.ts"],"names":[],"mappings":";;;;;AAcA,0CAmBC;AAED,0CAOC;AAED,4CAMC;AAlDD,4CAAoB;AACpB,+BAAiC;AACjC,gDAAwB;AACxB,4CAAoB;AAGpB,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAC5E,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;AAE3E,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,YAAE,CAAC,QAAQ,CAAC,CAAC;AAC7C,MAAM,cAAc,GAAG,IAAA,gBAAS,EAAC,YAAE,CAAC,SAAS,CAAC,CAAC;AAC/C,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC,YAAE,CAAC,KAAK,CAAC,CAAC;AACvC,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,YAAE,CAAC,EAAE,CAAC,CAAC;AAE1B,KAAK,UAAU,eAAe;IACjC,IAAI,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE7B,SAAS;YACT,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CACxC,OAAO,GAAG,KAAK,QAAQ;gBACvB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAClD,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAClC,EAAE,CAAC;gBACA,OAAO,IAA0B,CAAC;YACtC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,OAA2B;IAC7D,IAAI,CAAC;QACD,MAAM,UAAU,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,gBAAgB;IAClC,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;AACL,CAAC"}