claude-pangu 1.1.0 → 1.2.2

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 (110) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/commands/cancel-yishan.md +45 -45
  3. package/dist/lib/agent/context-compression.d.ts +61 -0
  4. package/dist/lib/agent/context-compression.d.ts.map +1 -0
  5. package/dist/lib/agent/context-compression.js +193 -0
  6. package/dist/lib/agent/context-compression.js.map +1 -0
  7. package/dist/lib/agent/index.d.ts +46 -0
  8. package/dist/lib/agent/index.d.ts.map +1 -0
  9. package/dist/lib/agent/index.js +124 -0
  10. package/dist/lib/agent/index.js.map +1 -0
  11. package/dist/lib/agent/persistence.d.ts +22 -0
  12. package/dist/lib/agent/persistence.d.ts.map +1 -0
  13. package/dist/lib/agent/persistence.js +77 -0
  14. package/dist/lib/agent/persistence.js.map +1 -0
  15. package/dist/lib/agent/session-manager.d.ts +81 -0
  16. package/dist/lib/agent/session-manager.d.ts.map +1 -0
  17. package/dist/lib/agent/session-manager.js +239 -0
  18. package/dist/lib/agent/session-manager.js.map +1 -0
  19. package/dist/lib/agent/state-manager.d.ts +45 -0
  20. package/dist/lib/agent/state-manager.d.ts.map +1 -0
  21. package/dist/lib/agent/state-manager.js +115 -0
  22. package/dist/lib/agent/state-manager.js.map +1 -0
  23. package/dist/lib/agent/types.d.ts +351 -0
  24. package/dist/lib/agent/types.d.ts.map +1 -0
  25. package/dist/lib/agent/types.js +63 -0
  26. package/dist/lib/agent/types.js.map +1 -0
  27. package/dist/lib/agent-state-manager.d.ts +15 -0
  28. package/dist/lib/agent-state-manager.d.ts.map +1 -0
  29. package/dist/lib/agent-state-manager.js +12 -516
  30. package/dist/lib/agent-state-manager.js.map +1 -1
  31. package/dist/lib/complexity-analyzer.d.ts +19 -0
  32. package/dist/lib/complexity-analyzer.d.ts.map +1 -0
  33. package/dist/lib/complexity-analyzer.js +82 -0
  34. package/dist/lib/complexity-analyzer.js.map +1 -0
  35. package/dist/lib/config-commands.d.ts +25 -0
  36. package/dist/lib/config-commands.d.ts.map +1 -0
  37. package/dist/lib/config-commands.js +228 -0
  38. package/dist/lib/config-commands.js.map +1 -0
  39. package/dist/lib/config-manager.d.ts +147 -0
  40. package/dist/lib/config-manager.d.ts.map +1 -0
  41. package/dist/lib/config-manager.js +31 -17
  42. package/dist/lib/config-manager.js.map +1 -1
  43. package/dist/lib/constants.d.ts +109 -0
  44. package/dist/lib/constants.d.ts.map +1 -0
  45. package/dist/lib/constants.js +143 -0
  46. package/dist/lib/constants.js.map +1 -0
  47. package/dist/lib/error-handler.d.ts +17 -0
  48. package/dist/lib/error-handler.d.ts.map +1 -0
  49. package/dist/lib/error-handler.js +80 -0
  50. package/dist/lib/error-handler.js.map +1 -0
  51. package/dist/lib/file-operations.d.ts +84 -0
  52. package/dist/lib/file-operations.d.ts.map +1 -0
  53. package/dist/lib/file-operations.js +232 -0
  54. package/dist/lib/file-operations.js.map +1 -0
  55. package/dist/lib/installer.d.ts +36 -0
  56. package/dist/lib/installer.d.ts.map +1 -0
  57. package/dist/lib/installer.js +247 -0
  58. package/dist/lib/installer.js.map +1 -0
  59. package/dist/lib/lock-manager.d.ts +28 -0
  60. package/dist/lib/lock-manager.d.ts.map +1 -0
  61. package/dist/lib/lock-manager.js +192 -0
  62. package/dist/lib/lock-manager.js.map +1 -0
  63. package/dist/lib/plugin-installer.d.ts +26 -0
  64. package/dist/lib/plugin-installer.d.ts.map +1 -0
  65. package/dist/lib/plugin-installer.js +139 -0
  66. package/dist/lib/plugin-installer.js.map +1 -0
  67. package/dist/lib/skill-loader.d.ts +240 -0
  68. package/dist/lib/skill-loader.d.ts.map +1 -0
  69. package/dist/lib/skill-loader.js +326 -0
  70. package/dist/lib/skill-loader.js.map +1 -0
  71. package/dist/lib/ui/messages.d.ts +41 -0
  72. package/dist/lib/ui/messages.d.ts.map +1 -0
  73. package/dist/lib/ui/messages.js +127 -0
  74. package/dist/lib/ui/messages.js.map +1 -0
  75. package/dist/lib/ui/progress.d.ts +40 -0
  76. package/dist/lib/ui/progress.d.ts.map +1 -0
  77. package/dist/lib/ui/progress.js +74 -0
  78. package/dist/lib/ui/progress.js.map +1 -0
  79. package/dist/lib/verifier.d.ts +30 -0
  80. package/dist/lib/verifier.d.ts.map +1 -0
  81. package/dist/lib/verifier.js +151 -0
  82. package/dist/lib/verifier.js.map +1 -0
  83. package/dist/scripts/cli.d.ts +10 -0
  84. package/dist/scripts/cli.d.ts.map +1 -0
  85. package/dist/scripts/cli.js +25 -1592
  86. package/dist/scripts/cli.js.map +1 -1
  87. package/dist/scripts/logger.d.ts +28 -0
  88. package/dist/scripts/logger.d.ts.map +1 -0
  89. package/dist/types/index.d.ts +228 -0
  90. package/dist/types/index.d.ts.map +1 -0
  91. package/dist/types/index.js +1 -0
  92. package/dist/types/index.js.map +1 -1
  93. package/hooks/ast-grep.sh +520 -520
  94. package/hooks/auto-update-checker.sh +402 -402
  95. package/hooks/code-quality-checker.sh +428 -428
  96. package/hooks/directory-agents-injector.sh +467 -467
  97. package/hooks/hooks.json +4 -6
  98. package/hooks/lsp-tools.sh +508 -508
  99. package/hooks/output-truncator.sh +409 -409
  100. package/hooks/preemptive-compaction.sh +444 -444
  101. package/hooks/rules-injector.sh +491 -491
  102. package/hooks/think-mode.sh +457 -457
  103. package/package.json +1 -1
  104. package/scripts/cli.js +1357 -1357
  105. package/scripts/cli.ts +56 -1839
  106. package/scripts/logger.ts +51 -51
  107. package/scripts/setup-yishan-loop.sh +99 -99
  108. package/hooks/todo-enforcer.sh +0 -156
  109. package/hooks/yishan-stop-hook.ps1 +0 -187
  110. package/hooks/yishan-stop-hook.sh +0 -200
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://code.claude.com/plugin-schema.json",
3
3
  "name": "oh-my-claude",
4
- "version": "1.1.0",
4
+ "version": "1.2.2",
5
5
  "description": "基于中国传统文化的 Claude Code 智能编排插件 - A Claude Code plugin inspired by Chinese traditional culture",
6
6
  "author": "ZDragon17",
7
7
  "contributors": [
@@ -1,45 +1,45 @@
1
- ---
2
- name: cancel-yishan
3
- description: |
4
- 取消愚公移山循环 - 停止当前的自主循环执行。
5
- 别名:/stop-yishan, /cancel-yugong, /stop-loop
6
- ---
7
-
8
- # 取消愚公移山循环
9
-
10
- 你需要取消当前正在进行的愚公移山循环。
11
-
12
- ## 取消操作
13
-
14
- 请执行以下步骤:
15
-
16
- ### 1. 删除状态文件
17
-
18
- 使用 Bash 工具删除状态文件:
19
-
20
- ```bash
21
- rm -f .claude/yishan-loop.local.md
22
- ```
23
-
24
- ### 2. 确认取消
25
-
26
- 删除成功后,向用户确认:
27
-
28
- ```
29
- 🛑 愚公移山循环已取消
30
-
31
- 状态文件已删除:.claude/yishan-loop.local.md
32
- 循环将在当前响应结束后停止。
33
-
34
- 如需重新启动循环,请使用 /yishan 或 /yugong 命令。
35
- ```
36
-
37
- ## 注意事项
38
-
39
- - 取消操作会立即停止循环,当前响应完成后不会再继续
40
- - 已完成的工作不会被撤销
41
- - TODO 列表会保留,可以稍后继续处理
42
-
43
- ## 执行
44
-
45
- 现在请删除状态文件以取消循环。
1
+ ---
2
+ name: cancel-yishan
3
+ description: |
4
+ 取消愚公移山循环 - 停止当前的自主循环执行。
5
+ 别名:/stop-yishan, /cancel-yugong, /stop-loop
6
+ ---
7
+
8
+ # 取消愚公移山循环
9
+
10
+ 你需要取消当前正在进行的愚公移山循环。
11
+
12
+ ## 取消操作
13
+
14
+ 请执行以下步骤:
15
+
16
+ ### 1. 删除状态文件
17
+
18
+ 使用 Bash 工具删除状态文件:
19
+
20
+ ```bash
21
+ rm -f .claude/yishan-loop.local.md
22
+ ```
23
+
24
+ ### 2. 确认取消
25
+
26
+ 删除成功后,向用户确认:
27
+
28
+ ```
29
+ 🛑 愚公移山循环已取消
30
+
31
+ 状态文件已删除:.claude/yishan-loop.local.md
32
+ 循环将在当前响应结束后停止。
33
+
34
+ 如需重新启动循环,请使用 /yishan 或 /yugong 命令。
35
+ ```
36
+
37
+ ## 注意事项
38
+
39
+ - 取消操作会立即停止循环,当前响应完成后不会再继续
40
+ - 已完成的工作不会被撤销
41
+ - TODO 列表会保留,可以稍后继续处理
42
+
43
+ ## 执行
44
+
45
+ 现在请删除状态文件以取消循环。
@@ -0,0 +1,61 @@
1
+ /**
2
+ * 上下文压缩模块
3
+ * 提供多种上下文压缩算法
4
+ */
5
+ import type { ContextCompression } from '../../types/index.js';
6
+ /**
7
+ * 生成上下文摘要
8
+ */
9
+ export declare function generateSummary(context: Record<string, unknown>): string;
10
+ /**
11
+ * 提取关键点
12
+ */
13
+ export declare function extractKeypoints(context: Record<string, unknown>): string[];
14
+ /**
15
+ * 构建层次结构
16
+ */
17
+ export declare function buildHierarchy(context: Record<string, unknown>): Record<string, unknown>;
18
+ /**
19
+ * 从摘要恢复上下文
20
+ */
21
+ export declare function expandFromSummary(summary: string): Record<string, unknown>;
22
+ /**
23
+ * 从关键点恢复上下文
24
+ */
25
+ export declare function expandFromKeypoints(keypoints: string[]): Record<string, unknown>;
26
+ /**
27
+ * 从层次结构恢复上下文
28
+ */
29
+ export declare function expandFromHierarchy(hierarchy: Record<string, unknown>): Record<string, unknown>;
30
+ export declare class ContextCacheManager {
31
+ private cache;
32
+ /**
33
+ * 压缩上下文
34
+ */
35
+ compress(context: Record<string, unknown>, algorithm?: 'summary' | 'keypoints' | 'hierarchical'): ContextCompression;
36
+ /**
37
+ * 检索压缩上下文
38
+ */
39
+ retrieve(compressionId: string): Record<string, unknown> | null;
40
+ /**
41
+ * 获取缓存的压缩对象
42
+ */
43
+ get(compressionId: string): ContextCompression | undefined;
44
+ /**
45
+ * 设置压缩对象
46
+ */
47
+ set(compressionId: string, compression: ContextCompression): void;
48
+ /**
49
+ * 清理过期缓存
50
+ */
51
+ cleanupExpired(): number;
52
+ /**
53
+ * 导出缓存数据
54
+ */
55
+ exportCache(): Record<string, ContextCompression>;
56
+ /**
57
+ * 导入缓存数据
58
+ */
59
+ importCache(data: Record<string, ContextCompression>): void;
60
+ }
61
+ //# sourceMappingURL=context-compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-compression.d.ts","sourceRoot":"","sources":["../../../lib/agent/context-compression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAGxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAU3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAShF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW/F;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAA8C;IAE3D;;OAEG;IACH,QAAQ,CACN,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,GAAE,SAAS,GAAG,WAAW,GAAG,cAA0B,GAC9D,kBAAkB;IA0CrB;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAqB/D;;OAEG;IACH,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI1D;;OAEG;IACH,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAIjE;;OAEG;IACH,cAAc,IAAI,MAAM;IAyBxB;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAIjD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI;CAK5D"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * 上下文压缩模块
3
+ * 提供多种上下文压缩算法
4
+ */
5
+ import { CONTEXT_CACHE_TTL, MAX_CONTEXT_CACHE_SIZE } from './types.js';
6
+ // ==================== 压缩算法实现 ====================
7
+ /**
8
+ * 生成上下文摘要
9
+ */
10
+ export function generateSummary(context) {
11
+ const keys = Object.keys(context);
12
+ return `Context contains ${keys.length} items: ${keys.slice(0, 5).join(', ')}${keys.length > 5 ? '...' : ''}`;
13
+ }
14
+ /**
15
+ * 提取关键点
16
+ */
17
+ export function extractKeypoints(context) {
18
+ const keypoints = [];
19
+ for (const [key, value] of Object.entries(context)) {
20
+ if (typeof value === 'string' && value.length < 100) {
21
+ keypoints.push(`${key}: ${value}`);
22
+ }
23
+ else if (typeof value === 'number' || typeof value === 'boolean') {
24
+ keypoints.push(`${key}: ${value}`);
25
+ }
26
+ }
27
+ return keypoints.slice(0, 10);
28
+ }
29
+ /**
30
+ * 构建层次结构
31
+ */
32
+ export function buildHierarchy(context) {
33
+ const hierarchy = {};
34
+ for (const [key, value] of Object.entries(context)) {
35
+ if (typeof value === 'object' && value !== null) {
36
+ hierarchy[key] = { type: 'object', keys: Object.keys(value) };
37
+ }
38
+ else {
39
+ hierarchy[key] = { type: typeof value, value };
40
+ }
41
+ }
42
+ return hierarchy;
43
+ }
44
+ /**
45
+ * 从摘要恢复上下文
46
+ */
47
+ export function expandFromSummary(summary) {
48
+ return { summary, reconstructed: true };
49
+ }
50
+ /**
51
+ * 从关键点恢复上下文
52
+ */
53
+ export function expandFromKeypoints(keypoints) {
54
+ const context = {};
55
+ for (const point of keypoints) {
56
+ const [key, ...valueParts] = point.split(': ');
57
+ if (key && valueParts.length > 0) {
58
+ context[key] = valueParts.join(': ');
59
+ }
60
+ }
61
+ return context;
62
+ }
63
+ /**
64
+ * 从层次结构恢复上下文
65
+ */
66
+ export function expandFromHierarchy(hierarchy) {
67
+ const context = {};
68
+ for (const [key, info] of Object.entries(hierarchy)) {
69
+ const typedInfo = info;
70
+ if (typedInfo.type === 'object') {
71
+ context[key] = { placeholder: true, originalKeys: typedInfo.keys };
72
+ }
73
+ else {
74
+ context[key] = typedInfo.value;
75
+ }
76
+ }
77
+ return context;
78
+ }
79
+ // ==================== 上下文缓存管理 ====================
80
+ export class ContextCacheManager {
81
+ constructor() {
82
+ this.cache = new Map();
83
+ }
84
+ /**
85
+ * 压缩上下文
86
+ */
87
+ compress(context, algorithm = 'summary') {
88
+ const contextStr = JSON.stringify(context);
89
+ const originalSize = Buffer.byteLength(contextStr, 'utf8');
90
+ const compressedData = {};
91
+ switch (algorithm) {
92
+ case 'summary':
93
+ compressedData.summary = generateSummary(context);
94
+ break;
95
+ case 'keypoints':
96
+ compressedData.keypoints = extractKeypoints(context);
97
+ break;
98
+ case 'hierarchical':
99
+ compressedData.hierarchy = buildHierarchy(context);
100
+ break;
101
+ default:
102
+ compressedData.summary = generateSummary(context);
103
+ }
104
+ const compressedStr = JSON.stringify(compressedData);
105
+ const compressedSize = Buffer.byteLength(compressedStr, 'utf8');
106
+ const compression = {
107
+ id: `ctx_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`,
108
+ originalSize,
109
+ compressedSize,
110
+ compressionRatio: originalSize / compressedSize,
111
+ algorithm: algorithm,
112
+ timestamp: new Date().toISOString(),
113
+ expiresAt: new Date(Date.now() + CONTEXT_CACHE_TTL).toISOString(),
114
+ accessCount: 0,
115
+ lastAccessed: new Date().toISOString(),
116
+ data: compressedData
117
+ };
118
+ this.cache.set(compression.id, compression);
119
+ this.cleanupExpired();
120
+ return compression;
121
+ }
122
+ /**
123
+ * 检索压缩上下文
124
+ */
125
+ retrieve(compressionId) {
126
+ const compression = this.cache.get(compressionId);
127
+ if (!compression) {
128
+ return null;
129
+ }
130
+ compression.accessCount++;
131
+ compression.lastAccessed = new Date().toISOString();
132
+ switch (compression.algorithm) {
133
+ case 'summary':
134
+ return expandFromSummary(compression.data.summary);
135
+ case 'keypoints':
136
+ return expandFromKeypoints(compression.data.keypoints);
137
+ case 'hierarchical':
138
+ return expandFromHierarchy(compression.data.hierarchy);
139
+ default:
140
+ return expandFromSummary(compression.data.summary);
141
+ }
142
+ }
143
+ /**
144
+ * 获取缓存的压缩对象
145
+ */
146
+ get(compressionId) {
147
+ return this.cache.get(compressionId);
148
+ }
149
+ /**
150
+ * 设置压缩对象
151
+ */
152
+ set(compressionId, compression) {
153
+ this.cache.set(compressionId, compression);
154
+ }
155
+ /**
156
+ * 清理过期缓存
157
+ */
158
+ cleanupExpired() {
159
+ let cleaned = 0;
160
+ const now = Date.now();
161
+ for (const [id, compression] of this.cache.entries()) {
162
+ if (compression.expiresAt && new Date(compression.expiresAt).getTime() < now) {
163
+ this.cache.delete(id);
164
+ cleaned++;
165
+ }
166
+ }
167
+ if (this.cache.size > MAX_CONTEXT_CACHE_SIZE) {
168
+ const entries = Array.from(this.cache.entries());
169
+ entries.sort((a, b) => a[1].accessCount - b[1].accessCount);
170
+ const toRemove = entries.slice(0, this.cache.size - MAX_CONTEXT_CACHE_SIZE);
171
+ for (const [id] of toRemove) {
172
+ this.cache.delete(id);
173
+ cleaned++;
174
+ }
175
+ }
176
+ return cleaned;
177
+ }
178
+ /**
179
+ * 导出缓存数据
180
+ */
181
+ exportCache() {
182
+ return Object.fromEntries(this.cache);
183
+ }
184
+ /**
185
+ * 导入缓存数据
186
+ */
187
+ importCache(data) {
188
+ for (const [id, compression] of Object.entries(data)) {
189
+ this.cache.set(id, compression);
190
+ }
191
+ }
192
+ }
193
+ //# sourceMappingURL=context-compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-compression.js","sourceRoot":"","sources":["../../../lib/agent/context-compression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Agent 模块聚合导出
3
+ * 提供完整的 Agent 协作跟踪、上下文压缩、状态持久化功能
4
+ */
5
+ import type { AgentState, CollaborationSession, ContextCompression, CheckpointState, AgentStateManager, ContextRecord } from '../../types/index.js';
6
+ export * from './types.js';
7
+ export { AgentStateStore } from './state-manager.js';
8
+ export { SessionManager } from './session-manager.js';
9
+ export { ContextCacheManager, generateSummary, extractKeypoints, buildHierarchy } from './context-compression.js';
10
+ export { PersistenceManager } from './persistence.js';
11
+ /**
12
+ * Agent 状态管理器实现
13
+ * 组合各子模块提供完整功能
14
+ */
15
+ export declare class AgentStateManagerImpl implements AgentStateManager {
16
+ private agentStore;
17
+ private contextCache;
18
+ private sessionManager;
19
+ private persistence;
20
+ private initialized;
21
+ constructor();
22
+ private initialize;
23
+ getAgentState(agentId: string): AgentState | null;
24
+ updateAgentState(agentId: string, updates: Partial<AgentState>): void;
25
+ registerAgent(agentId: string, name: string): AgentState;
26
+ createSession(taskId: string, description: string, agentIds: string[]): CollaborationSession;
27
+ getActiveSession(sessionId: string): CollaborationSession | null;
28
+ updateSession(sessionId: string, updates: Partial<CollaborationSession>): void;
29
+ endSession(sessionId: string, status: 'completed' | 'failed'): void;
30
+ recordMessage(sessionId: string, agentId: string, type: string, content: string, metadata?: Record<string, unknown>): void;
31
+ getSessionMessages(sessionId: string, limit?: number): CollaborationSession['messages'];
32
+ compressContext(sessionId: string, context: ContextRecord, algorithm?: string): ContextCompression;
33
+ retrieveContext(compressionId: string): ContextRecord | null;
34
+ cleanupExpiredContexts(): number;
35
+ createCheckpoint(sessionId: string, description: string): string;
36
+ restoreFromCheckpoint(sessionId: string, checkpointId: string): CheckpointState;
37
+ recordPerformance(agentId: string, taskId: string, duration: number, success: boolean): void;
38
+ getAgentMetrics(agentId: string): AgentState['performance'];
39
+ getCollaborationMetrics(sessionId: string): CollaborationSession['metrics'];
40
+ saveState(): Promise<void>;
41
+ loadState(): Promise<void>;
42
+ exportSession(sessionId: string): ContextRecord;
43
+ importSession(data: ContextRecord): string;
44
+ }
45
+ export default AgentStateManagerImpl;
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAQ9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAClH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAItD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAkB;;YAUvB,UAAU;IAexB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIjD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAIrE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAMxD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAoB;IAc5F,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAIhE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAI9E,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI;IAMnE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI1H,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC;IAMvF,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAQlG,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAI5D,sBAAsB,IAAI,MAAM;IAMhC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAIhE,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe;IAM/E,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5F,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC;IAI3D,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC;IAMrE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAI/C,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM;CAG3C;AAID,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Agent 模块聚合导出
3
+ * 提供完整的 Agent 协作跟踪、上下文压缩、状态持久化功能
4
+ */
5
+ import { AgentStateStore } from './state-manager.js';
6
+ import { SessionManager } from './session-manager.js';
7
+ import { ContextCacheManager } from './context-compression.js';
8
+ import { PersistenceManager } from './persistence.js';
9
+ // ==================== 重新导出子模块 ====================
10
+ export * from './types.js';
11
+ export { AgentStateStore } from './state-manager.js';
12
+ export { SessionManager } from './session-manager.js';
13
+ export { ContextCacheManager, generateSummary, extractKeypoints, buildHierarchy } from './context-compression.js';
14
+ export { PersistenceManager } from './persistence.js';
15
+ // ==================== AgentStateManager 实现 ====================
16
+ /**
17
+ * Agent 状态管理器实现
18
+ * 组合各子模块提供完整功能
19
+ */
20
+ export class AgentStateManagerImpl {
21
+ constructor() {
22
+ this.initialized = false;
23
+ this.agentStore = new AgentStateStore();
24
+ this.contextCache = new ContextCacheManager();
25
+ this.sessionManager = new SessionManager(this.contextCache);
26
+ this.persistence = new PersistenceManager(this.agentStore, this.sessionManager, this.contextCache);
27
+ this.initialize();
28
+ }
29
+ async initialize() {
30
+ if (this.initialized)
31
+ return;
32
+ try {
33
+ await this.persistence.loadState();
34
+ this.initialized = true;
35
+ console.log('✅ Agent 状态管理器初始化完成');
36
+ }
37
+ catch (error) {
38
+ console.warn('⚠️ Agent 状态管理器初始化失败,使用默认状态:', error);
39
+ this.initialized = true;
40
+ }
41
+ }
42
+ // ==================== Agent 状态管理 ====================
43
+ getAgentState(agentId) {
44
+ return this.agentStore.getAgentState(agentId);
45
+ }
46
+ updateAgentState(agentId, updates) {
47
+ this.agentStore.updateAgentState(agentId, updates);
48
+ }
49
+ registerAgent(agentId, name) {
50
+ return this.agentStore.registerAgent(agentId, name);
51
+ }
52
+ // ==================== 协作会话管理 ====================
53
+ createSession(taskId, description, agentIds) {
54
+ // 验证所有 agents 都已注册
55
+ const agents = [];
56
+ for (const agentId of agentIds) {
57
+ const agentState = this.agentStore.getAgentState(agentId);
58
+ if (!agentState) {
59
+ throw new Error(`Agent ${agentId} not registered`);
60
+ }
61
+ agents.push(agentState);
62
+ }
63
+ return this.sessionManager.createSession(taskId, description, agents);
64
+ }
65
+ getActiveSession(sessionId) {
66
+ return this.sessionManager.getActiveSession(sessionId);
67
+ }
68
+ updateSession(sessionId, updates) {
69
+ this.sessionManager.updateSession(sessionId, updates);
70
+ }
71
+ endSession(sessionId, status) {
72
+ this.sessionManager.endSession(sessionId, status);
73
+ }
74
+ // ==================== 消息记录 ====================
75
+ recordMessage(sessionId, agentId, type, content, metadata) {
76
+ this.sessionManager.recordMessage(sessionId, agentId, type, content, metadata);
77
+ }
78
+ getSessionMessages(sessionId, limit) {
79
+ return this.sessionManager.getSessionMessages(sessionId, limit);
80
+ }
81
+ // ==================== 上下文管理 ====================
82
+ compressContext(sessionId, context, algorithm) {
83
+ return this.sessionManager.compressContext(sessionId, context, algorithm);
84
+ }
85
+ retrieveContext(compressionId) {
86
+ return this.sessionManager.retrieveContext(compressionId);
87
+ }
88
+ cleanupExpiredContexts() {
89
+ return this.contextCache.cleanupExpired();
90
+ }
91
+ // ==================== 检查点管理 ====================
92
+ createCheckpoint(sessionId, description) {
93
+ return this.sessionManager.createCheckpoint(sessionId, description);
94
+ }
95
+ restoreFromCheckpoint(sessionId, checkpointId) {
96
+ return this.sessionManager.restoreFromCheckpoint(sessionId, checkpointId);
97
+ }
98
+ // ==================== 性能监控 ====================
99
+ recordPerformance(agentId, taskId, duration, success) {
100
+ this.agentStore.recordPerformance(agentId, taskId, duration, success);
101
+ }
102
+ getAgentMetrics(agentId) {
103
+ return this.agentStore.getAgentMetrics(agentId);
104
+ }
105
+ getCollaborationMetrics(sessionId) {
106
+ return this.sessionManager.getCollaborationMetrics(sessionId);
107
+ }
108
+ // ==================== 数据持久化 ====================
109
+ async saveState() {
110
+ await this.persistence.saveState();
111
+ }
112
+ async loadState() {
113
+ await this.persistence.loadState();
114
+ }
115
+ exportSession(sessionId) {
116
+ return this.sessionManager.exportSession(sessionId);
117
+ }
118
+ importSession(data) {
119
+ return this.sessionManager.importSession(data);
120
+ }
121
+ }
122
+ // ==================== 默认导出 ====================
123
+ export default AgentStateManagerImpl;
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/agent/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 状态持久化模块
3
+ * 处理 Agent 状态、会话、上下文缓存的存储和加载
4
+ */
5
+ import { AgentStateStore } from './state-manager.js';
6
+ import { SessionManager } from './session-manager.js';
7
+ import { ContextCacheManager } from './context-compression.js';
8
+ export declare class PersistenceManager {
9
+ private agentStore;
10
+ private sessionManager;
11
+ private contextCache;
12
+ constructor(agentStore: AgentStateStore, sessionManager: SessionManager, contextCache: ContextCacheManager);
13
+ /**
14
+ * 保存所有状态
15
+ */
16
+ saveState(): Promise<void>;
17
+ /**
18
+ * 加载所有状态
19
+ */
20
+ loadState(): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/agent/persistence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAW/D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAsB;gBAGxC,UAAU,EAAE,eAAe,EAC3B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,mBAAmB;IAOnC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBhC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAqCjC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * 状态持久化模块
3
+ * 处理 Agent 状态、会话、上下文缓存的存储和加载
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import * as os from 'os';
8
+ import { AgentStateSchema, CollaborationSessionSchema } from './types.js';
9
+ // ==================== 路径配置 ====================
10
+ const STATE_DIR = path.join(os.homedir(), '.oh-my-claude', 'state');
11
+ const AGENT_STATE_FILE = path.join(STATE_DIR, 'agent-states.json');
12
+ const SESSION_STATE_FILE = path.join(STATE_DIR, 'sessions.json');
13
+ const CONTEXT_CACHE_FILE = path.join(STATE_DIR, 'context-cache.json');
14
+ // ==================== 持久化管理器 ====================
15
+ export class PersistenceManager {
16
+ constructor(agentStore, sessionManager, contextCache) {
17
+ this.agentStore = agentStore;
18
+ this.sessionManager = sessionManager;
19
+ this.contextCache = contextCache;
20
+ }
21
+ /**
22
+ * 保存所有状态
23
+ */
24
+ async saveState() {
25
+ // 确保目录存在
26
+ if (!fs.existsSync(STATE_DIR)) {
27
+ fs.mkdirSync(STATE_DIR, { recursive: true });
28
+ }
29
+ // 保存 agent 状态
30
+ const agentStates = Object.fromEntries(this.agentStore.getAllAgentStates());
31
+ fs.writeFileSync(AGENT_STATE_FILE, JSON.stringify(agentStates, null, 2));
32
+ // 保存会话状态
33
+ const sessions = {
34
+ active: Object.fromEntries(this.sessionManager.getActiveSessions()),
35
+ history: this.sessionManager.getSessionHistory()
36
+ };
37
+ fs.writeFileSync(SESSION_STATE_FILE, JSON.stringify(sessions, null, 2));
38
+ // 保存上下文缓存
39
+ const contextCache = this.contextCache.exportCache();
40
+ fs.writeFileSync(CONTEXT_CACHE_FILE, JSON.stringify(contextCache, null, 2));
41
+ }
42
+ /**
43
+ * 加载所有状态
44
+ */
45
+ async loadState() {
46
+ try {
47
+ // 加载 agent 状态
48
+ if (fs.existsSync(AGENT_STATE_FILE)) {
49
+ const agentData = JSON.parse(fs.readFileSync(AGENT_STATE_FILE, 'utf8'));
50
+ for (const [id, state] of Object.entries(agentData)) {
51
+ this.agentStore.setAgentState(id, AgentStateSchema.parse(state));
52
+ }
53
+ }
54
+ // 加载会话状态
55
+ if (fs.existsSync(SESSION_STATE_FILE)) {
56
+ const sessionData = JSON.parse(fs.readFileSync(SESSION_STATE_FILE, 'utf8'));
57
+ const activeSessions = new Map();
58
+ for (const [id, session] of Object.entries(sessionData.active)) {
59
+ activeSessions.set(id, CollaborationSessionSchema.parse(session));
60
+ }
61
+ this.sessionManager.setActiveSessions(activeSessions);
62
+ const history = sessionData.history.map((s) => CollaborationSessionSchema.parse(s));
63
+ this.sessionManager.setSessionHistory(history);
64
+ }
65
+ // 加载上下文缓存
66
+ if (fs.existsSync(CONTEXT_CACHE_FILE)) {
67
+ const cacheData = JSON.parse(fs.readFileSync(CONTEXT_CACHE_FILE, 'utf8'));
68
+ this.contextCache.importCache(cacheData);
69
+ }
70
+ }
71
+ catch (error) {
72
+ console.warn('加载状态数据失败:', error);
73
+ throw error;
74
+ }
75
+ }
76
+ }
77
+ //# sourceMappingURL=persistence.js.map