pi-harness-runtime 1.1.95 → 1.1.97

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 (226) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/harness/loop-runtime.ts +3 -0
  3. package/index.ts +130 -29
  4. package/package.json +2 -1
  5. package/packages/a2a-adapter/package.json +1 -1
  6. package/packages/architecture-generator/package.json +1 -1
  7. package/packages/auth/package.json +1 -1
  8. package/packages/autonomous-refactor/package.json +1 -1
  9. package/packages/autonomous-runtime/package.json +1 -1
  10. package/packages/cache-strategy/package.json +1 -1
  11. package/packages/capability-registry/package.json +1 -1
  12. package/packages/checkpoint/package.json +1 -1
  13. package/packages/cli-plugin-sdk/package.json +1 -1
  14. package/packages/clipboard/package.json +1 -1
  15. package/packages/clipboard-plugin/package.json +1 -1
  16. package/packages/code-generation/package.json +1 -1
  17. package/packages/code-review/package.json +1 -1
  18. package/packages/codex-adapter/package.json +1 -1
  19. package/packages/config-capture/package.json +1 -1
  20. package/packages/context-compiler/package.json +1 -1
  21. package/packages/context-discovery/package.json +1 -1
  22. package/packages/context-manager/package.json +1 -1
  23. package/packages/cookie-sanitizer/package.json +1 -1
  24. package/packages/cost-optimizer/package.json +1 -1
  25. package/packages/dependency-analyzer/package.json +1 -1
  26. package/packages/django-plugin/package.json +1 -1
  27. package/packages/doc-generator/package.json +1 -1
  28. package/packages/evaluation-engine/package.json +1 -1
  29. package/packages/evaluation-runner/package.json +1 -1
  30. package/packages/event-bus/package.json +1 -1
  31. package/packages/event-store/package.json +1 -1
  32. package/packages/experience-replay/package.json +1 -1
  33. package/packages/feedback-collector/package.json +1 -1
  34. package/packages/file-copy-helper/package.json +1 -1
  35. package/packages/framework-detector/package.json +1 -1
  36. package/packages/framework-plugin-sdk/package.json +1 -1
  37. package/packages/frappe-plugin/package.json +1 -1
  38. package/packages/generic-web-plugin/package.json +1 -1
  39. package/packages/health-monitor/package.json +1 -1
  40. package/packages/intent-analyzer/package.json +1 -1
  41. package/packages/jev-judge/package.json +1 -1
  42. package/packages/knowledge-graph/package.json +1 -1
  43. package/packages/knowledge-retrieval/package.json +1 -1
  44. package/packages/laravel-plugin/package.json +1 -1
  45. package/packages/learning-engine/package.json +1 -1
  46. package/packages/mcp-adapter/package.json +1 -1
  47. package/packages/memory-engine/package.json +1 -1
  48. package/packages/milestone-manager/package.json +1 -1
  49. package/packages/model-registry/package.json +1 -1
  50. package/packages/nextjs-plugin/package.json +1 -1
  51. package/packages/notification/package.json +1 -1
  52. package/packages/observability/package.json +1 -1
  53. package/packages/okf-indexer/package.json +1 -1
  54. package/packages/performance-optimizer/package.json +1 -1
  55. package/packages/privilege-broker/package.json +1 -1
  56. package/packages/project-analyzer/package.json +1 -1
  57. package/packages/project-bootstrap/package.json +1 -1
  58. package/packages/projection-engine/package.json +1 -1
  59. package/packages/prompt-compiler/package.json +1 -1
  60. package/packages/prompt-versioning/package.json +1 -1
  61. package/packages/provider-adapter-sdk/package.json +1 -1
  62. package/packages/provider-router/package.json +1 -1
  63. package/packages/provider-selector/package.json +1 -1
  64. package/packages/providers/package.json +1 -1
  65. package/packages/qdrant-skills/dist/client.d.ts +51 -0
  66. package/packages/qdrant-skills/dist/client.d.ts.map +1 -0
  67. package/packages/qdrant-skills/dist/client.js +105 -0
  68. package/packages/qdrant-skills/dist/client.js.map +1 -0
  69. package/packages/qdrant-skills/dist/embedder.d.ts +39 -0
  70. package/packages/qdrant-skills/dist/embedder.d.ts.map +1 -0
  71. package/packages/qdrant-skills/dist/embedder.js +101 -0
  72. package/packages/qdrant-skills/dist/embedder.js.map +1 -0
  73. package/packages/qdrant-skills/dist/index.d.ts +25 -0
  74. package/packages/qdrant-skills/dist/index.d.ts.map +1 -0
  75. package/packages/qdrant-skills/dist/index.js +25 -0
  76. package/packages/qdrant-skills/dist/index.js.map +1 -0
  77. package/packages/qdrant-skills/package.json +27 -0
  78. package/packages/qdrant-skills/src/client.ts +178 -0
  79. package/packages/qdrant-skills/src/embedder.ts +137 -0
  80. package/packages/qdrant-skills/src/index.ts +42 -0
  81. package/packages/quota-manager/package.json +1 -1
  82. package/packages/rate-limiter/package.json +1 -1
  83. package/packages/react-vite-plugin/package.json +1 -1
  84. package/packages/release-manager/package.json +1 -1
  85. package/packages/requirement-compiler/package.json +1 -1
  86. package/packages/runtime/package.json +1 -1
  87. package/packages/scheduler/package.json +1 -1
  88. package/packages/scheduler-adapter/package.json +1 -1
  89. package/packages/session/package.json +1 -1
  90. package/packages/session-api/package.json +1 -1
  91. package/packages/session-export/package.json +1 -1
  92. package/packages/shared-context/package.json +1 -1
  93. package/packages/skill-mcp-client/package.json +1 -1
  94. package/packages/skill-registry/package.json +1 -1
  95. package/packages/skills/dist/index.d.ts +40 -0
  96. package/packages/skills/dist/index.d.ts.map +1 -0
  97. package/packages/skills/dist/index.js +84 -0
  98. package/packages/skills/dist/index.js.map +1 -0
  99. package/packages/skills/dist/linter.d.ts +38 -0
  100. package/packages/skills/dist/linter.d.ts.map +1 -0
  101. package/packages/skills/dist/linter.js +323 -0
  102. package/packages/skills/dist/linter.js.map +1 -0
  103. package/packages/skills/dist/loader.d.ts +74 -0
  104. package/packages/skills/dist/loader.d.ts.map +1 -0
  105. package/packages/skills/dist/loader.js +280 -0
  106. package/packages/skills/dist/loader.js.map +1 -0
  107. package/packages/skills/dist/parser.d.ts +32 -0
  108. package/packages/skills/dist/parser.d.ts.map +1 -0
  109. package/packages/skills/dist/parser.js +459 -0
  110. package/packages/skills/dist/parser.js.map +1 -0
  111. package/packages/skills/dist/scanner.d.ts +33 -0
  112. package/packages/skills/dist/scanner.d.ts.map +1 -0
  113. package/packages/skills/dist/scanner.js +257 -0
  114. package/packages/skills/dist/scanner.js.map +1 -0
  115. package/packages/skills/dist/skill-commands.d.ts +33 -0
  116. package/packages/skills/dist/skill-commands.d.ts.map +1 -0
  117. package/packages/skills/dist/skill-commands.js +239 -0
  118. package/packages/skills/dist/skill-commands.js.map +1 -0
  119. package/packages/skills/dist/skill-tool.d.ts +120 -0
  120. package/packages/skills/dist/skill-tool.d.ts.map +1 -0
  121. package/packages/skills/dist/skill-tool.js +239 -0
  122. package/packages/skills/dist/skill-tool.js.map +1 -0
  123. package/packages/skills/dist/skill-versioning.d.ts +123 -0
  124. package/packages/skills/dist/skill-versioning.d.ts.map +1 -0
  125. package/packages/skills/dist/skill-versioning.js +240 -0
  126. package/packages/skills/dist/skill-versioning.js.map +1 -0
  127. package/packages/skills/dist/types.d.ts +226 -0
  128. package/packages/skills/dist/types.d.ts.map +1 -0
  129. package/packages/skills/dist/types.js +21 -0
  130. package/packages/skills/dist/types.js.map +1 -0
  131. package/packages/skills/package.json +46 -0
  132. package/packages/skills/src/index.ts +95 -0
  133. package/packages/skills/src/linter.ts +371 -0
  134. package/packages/skills/src/loader.ts +335 -0
  135. package/packages/skills/src/parser.ts +548 -0
  136. package/packages/skills/src/scanner.ts +322 -0
  137. package/packages/skills/src/skill-commands.ts +318 -0
  138. package/packages/skills/src/skill-tool.ts +324 -0
  139. package/packages/skills/src/skill-versioning.ts +345 -0
  140. package/packages/skills/src/types.ts +259 -0
  141. package/packages/skills/test/init-skills.test.ts +118 -0
  142. package/packages/sprint-planner/package.json +1 -1
  143. package/packages/subscription-engine/package.json +1 -1
  144. package/packages/task-compiler/package.json +1 -1
  145. package/packages/tencentdb-memory/package.json +1 -1
  146. package/packages/tencentdb-sync/package.json +1 -1
  147. package/packages/test-data-generator/package.json +1 -1
  148. package/packages/test-generator/package.json +1 -1
  149. package/packages/todo-bd-sync/package.json +1 -1
  150. package/packages/token-estimation/package.json +1 -1
  151. package/packages/token-optimizer/package.json +1 -1
  152. package/packages/trajectory/dist/src/curator.d.ts +189 -0
  153. package/packages/trajectory/dist/src/curator.d.ts.map +1 -0
  154. package/packages/trajectory/dist/src/curator.js +340 -0
  155. package/packages/trajectory/dist/src/curator.js.map +1 -0
  156. package/packages/trajectory/dist/src/journey-renderer.d.ts +53 -0
  157. package/packages/trajectory/dist/src/journey-renderer.d.ts.map +1 -0
  158. package/packages/trajectory/dist/src/journey-renderer.js +324 -0
  159. package/packages/trajectory/dist/src/journey-renderer.js.map +1 -0
  160. package/packages/trajectory/dist/src/learning-graph.d.ts +159 -0
  161. package/packages/trajectory/dist/src/learning-graph.d.ts.map +1 -0
  162. package/packages/trajectory/dist/src/learning-graph.js +258 -0
  163. package/packages/trajectory/dist/src/learning-graph.js.map +1 -0
  164. package/packages/trajectory/dist/src/memory-store.d.ts +146 -0
  165. package/packages/trajectory/dist/src/memory-store.d.ts.map +1 -0
  166. package/packages/trajectory/dist/src/memory-store.js +472 -0
  167. package/packages/trajectory/dist/src/memory-store.js.map +1 -0
  168. package/packages/trajectory/dist/src/review-fork.d.ts +164 -0
  169. package/packages/trajectory/dist/src/review-fork.d.ts.map +1 -0
  170. package/packages/trajectory/dist/src/review-fork.js +332 -0
  171. package/packages/trajectory/dist/src/review-fork.js.map +1 -0
  172. package/packages/trajectory/dist/src/write-approval.d.ts +136 -0
  173. package/packages/trajectory/dist/src/write-approval.d.ts.map +1 -0
  174. package/packages/trajectory/dist/src/write-approval.js +281 -0
  175. package/packages/trajectory/dist/src/write-approval.js.map +1 -0
  176. package/packages/trajectory/package.json +1 -1
  177. package/packages/trajectory/src/curator.ts +485 -0
  178. package/packages/trajectory/src/journey-renderer.ts +399 -0
  179. package/packages/trajectory/src/learning-graph.ts +363 -0
  180. package/packages/trajectory/src/memory-store.ts +578 -0
  181. package/packages/trajectory/src/review-fork.ts +450 -0
  182. package/packages/trajectory/src/write-approval.ts +372 -0
  183. package/packages/tui/package.json +1 -1
  184. package/packages/types/package.json +1 -1
  185. package/packages/workflow-events/package.json +1 -1
  186. package/packages/workspace-scanner/package.json +1 -1
  187. package/packages/worktree/package.json +1 -1
  188. package/packages/write-review/dist/blackboard.d.ts +98 -0
  189. package/packages/write-review/dist/blackboard.d.ts.map +1 -0
  190. package/packages/write-review/dist/blackboard.js +289 -0
  191. package/packages/write-review/dist/blackboard.js.map +1 -0
  192. package/packages/write-review/dist/event-bus.d.ts +106 -0
  193. package/packages/write-review/dist/event-bus.d.ts.map +1 -0
  194. package/packages/write-review/dist/event-bus.js +294 -0
  195. package/packages/write-review/dist/event-bus.js.map +1 -0
  196. package/packages/write-review/dist/gate.d.ts +37 -0
  197. package/packages/write-review/dist/gate.d.ts.map +1 -0
  198. package/packages/write-review/dist/gate.js +138 -0
  199. package/packages/write-review/dist/gate.js.map +1 -0
  200. package/packages/write-review/dist/index.d.ts +22 -0
  201. package/packages/write-review/dist/index.d.ts.map +1 -0
  202. package/packages/write-review/dist/index.js +60 -0
  203. package/packages/write-review/dist/index.js.map +1 -0
  204. package/packages/write-review/dist/injection.d.ts +40 -0
  205. package/packages/write-review/dist/injection.d.ts.map +1 -0
  206. package/packages/write-review/dist/injection.js +179 -0
  207. package/packages/write-review/dist/injection.js.map +1 -0
  208. package/packages/write-review/dist/review.d.ts +54 -0
  209. package/packages/write-review/dist/review.d.ts.map +1 -0
  210. package/packages/write-review/dist/review.js +154 -0
  211. package/packages/write-review/dist/review.js.map +1 -0
  212. package/packages/write-review/dist/trigger.d.ts +39 -0
  213. package/packages/write-review/dist/trigger.d.ts.map +1 -0
  214. package/packages/write-review/dist/trigger.js +107 -0
  215. package/packages/write-review/dist/trigger.js.map +1 -0
  216. package/packages/write-review/dist/types.d.ts +78 -0
  217. package/packages/write-review/dist/types.d.ts.map +1 -0
  218. package/packages/write-review/dist/types.js +26 -0
  219. package/packages/write-review/dist/types.js.map +1 -0
  220. package/packages/write-review/package.json +1 -1
  221. package/packages/write-review/src/event-bus.ts +351 -0
  222. package/packages/write-review/src/index.ts +1 -0
  223. package/packages/write-review/src/injection.ts +25 -3
  224. package/proactive-compact.ts +51 -7
  225. package/scripts/sync-skills.ts +275 -0
  226. package/scripts/sync-to-qdrant.ts +398 -0
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Learning Graph
3
+ *
4
+ * Timeline data structure for tracking learned items:
5
+ * - Nodes: skills, memory, patterns, anti-patterns
6
+ * - Edges: created_from, extends, replaces, derived_from
7
+ *
8
+ * Based on Hermes Agent's Learning Journey.
9
+ */
10
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
11
+ import { join, dirname } from "node:path";
12
+ import { homedir } from "node:os";
13
+ /**
14
+ * Default configuration
15
+ */
16
+ export const DEFAULT_GRAPH_CONFIG = {
17
+ graphFile: "~/.pi-harness/learning-graph.json",
18
+ };
19
+ /**
20
+ * Expand path with ~
21
+ */
22
+ function expandPath(path) {
23
+ if (path.startsWith("~/")) {
24
+ return join(homedir(), path.slice(2));
25
+ }
26
+ return path;
27
+ }
28
+ /**
29
+ * Learning Graph class
30
+ */
31
+ export class LearningGraphStore {
32
+ config;
33
+ graph;
34
+ dirty = false;
35
+ constructor(config) {
36
+ this.config = { ...DEFAULT_GRAPH_CONFIG, ...config };
37
+ this.config.graphFile = expandPath(this.config.graphFile);
38
+ this.graph = this.load();
39
+ }
40
+ /**
41
+ * Load graph from file
42
+ */
43
+ load() {
44
+ if (!existsSync(this.config.graphFile)) {
45
+ return this.createEmpty();
46
+ }
47
+ try {
48
+ const content = readFileSync(this.config.graphFile, "utf-8");
49
+ return JSON.parse(content);
50
+ }
51
+ catch (err) {
52
+ console.error("[LearningGraph] Failed to load:", err);
53
+ return this.createEmpty();
54
+ }
55
+ }
56
+ /**
57
+ * Create empty graph
58
+ */
59
+ createEmpty() {
60
+ return {
61
+ nodes: [],
62
+ edges: [],
63
+ version: "1.0",
64
+ updated_at: new Date().toISOString(),
65
+ };
66
+ }
67
+ /**
68
+ * Save graph to file
69
+ */
70
+ save() {
71
+ if (!this.dirty)
72
+ return;
73
+ this.graph.updated_at = new Date().toISOString();
74
+ mkdirSync(dirname(this.config.graphFile), { recursive: true });
75
+ writeFileSync(this.config.graphFile, JSON.stringify(this.graph, null, 2), "utf-8");
76
+ this.dirty = false;
77
+ }
78
+ /**
79
+ * Add a node
80
+ */
81
+ addNode(node) {
82
+ const newNode = {
83
+ ...node,
84
+ id: `${node.type}_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
85
+ created_at: new Date().toISOString(),
86
+ usage_count: 0,
87
+ };
88
+ this.graph.nodes.push(newNode);
89
+ this.dirty = true;
90
+ this.save();
91
+ return newNode;
92
+ }
93
+ /**
94
+ * Add an edge
95
+ */
96
+ addEdge(edge) {
97
+ const newEdge = {
98
+ ...edge,
99
+ id: `edge_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
100
+ created_at: new Date().toISOString(),
101
+ };
102
+ this.graph.edges.push(newEdge);
103
+ this.dirty = true;
104
+ this.save();
105
+ return newEdge;
106
+ }
107
+ /**
108
+ * Remove a node and its edges
109
+ */
110
+ removeNode(nodeId) {
111
+ const index = this.graph.nodes.findIndex((n) => n.id === nodeId);
112
+ if (index < 0)
113
+ return false;
114
+ this.graph.nodes.splice(index, 1);
115
+ this.graph.edges = this.graph.edges.filter((e) => e.source !== nodeId && e.target !== nodeId);
116
+ this.dirty = true;
117
+ this.save();
118
+ return true;
119
+ }
120
+ /**
121
+ * Get node by ID
122
+ */
123
+ getNode(nodeId) {
124
+ return this.graph.nodes.find((n) => n.id === nodeId);
125
+ }
126
+ /**
127
+ * Get nodes by type
128
+ */
129
+ getNodesByType(type) {
130
+ return this.graph.nodes.filter((n) => n.type === type);
131
+ }
132
+ /**
133
+ * Get edges from/to a node
134
+ */
135
+ getNodeEdges(nodeId) {
136
+ return {
137
+ incoming: this.graph.edges.filter((e) => e.target === nodeId),
138
+ outgoing: this.graph.edges.filter((e) => e.source === nodeId),
139
+ };
140
+ }
141
+ /**
142
+ * Increment usage count
143
+ */
144
+ incrementUsage(nodeId) {
145
+ const node = this.getNode(nodeId);
146
+ if (node) {
147
+ node.usage_count++;
148
+ this.dirty = true;
149
+ this.save();
150
+ }
151
+ }
152
+ /**
153
+ * Update node
154
+ */
155
+ updateNode(nodeId, updates) {
156
+ const node = this.getNode(nodeId);
157
+ if (!node)
158
+ return false;
159
+ Object.assign(node, updates);
160
+ this.dirty = true;
161
+ this.save();
162
+ return true;
163
+ }
164
+ /**
165
+ * Get all nodes
166
+ */
167
+ getAllNodes() {
168
+ return [...this.graph.nodes];
169
+ }
170
+ /**
171
+ * Get all edges
172
+ */
173
+ getAllEdges() {
174
+ return [...this.graph.edges];
175
+ }
176
+ /**
177
+ * Get full graph
178
+ */
179
+ getGraph() {
180
+ return { ...this.graph };
181
+ }
182
+ /**
183
+ * Get nodes sorted by date
184
+ */
185
+ getTimeline(limit) {
186
+ const sorted = [...this.graph.nodes].sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
187
+ return limit ? sorted.slice(0, limit) : sorted;
188
+ }
189
+ /**
190
+ * Get recent nodes by type
191
+ */
192
+ getRecent(type, limit = 10) {
193
+ return this.getTimeline()
194
+ .filter((n) => n.type === type)
195
+ .slice(0, limit);
196
+ }
197
+ /**
198
+ * Search nodes
199
+ */
200
+ search(query) {
201
+ const queryLower = query.toLowerCase();
202
+ return this.graph.nodes.filter((n) => n.name.toLowerCase().includes(queryLower) ||
203
+ n.description?.toLowerCase().includes(queryLower));
204
+ }
205
+ /**
206
+ * Get stats
207
+ */
208
+ getStats() {
209
+ const byType = {
210
+ skill: 0,
211
+ memory: 0,
212
+ pattern: 0,
213
+ "anti-pattern": 0,
214
+ };
215
+ const byEdgeType = {
216
+ created_from: 0,
217
+ extends: 0,
218
+ replaces: 0,
219
+ derived_from: 0,
220
+ };
221
+ for (const node of this.graph.nodes) {
222
+ byType[node.type]++;
223
+ }
224
+ for (const edge of this.graph.edges) {
225
+ byEdgeType[edge.type]++;
226
+ }
227
+ const mostUsed = [...this.graph.nodes]
228
+ .sort((a, b) => b.usage_count - a.usage_count)
229
+ .slice(0, 5);
230
+ return {
231
+ totalNodes: this.graph.nodes.length,
232
+ byType,
233
+ totalEdges: this.graph.edges.length,
234
+ byEdgeType,
235
+ mostUsed,
236
+ };
237
+ }
238
+ /**
239
+ * Clear all nodes and edges
240
+ */
241
+ clear() {
242
+ this.graph = this.createEmpty();
243
+ this.dirty = true;
244
+ this.save();
245
+ }
246
+ }
247
+ // Global instance
248
+ let globalGraph = null;
249
+ export function getGlobalLearningGraph() {
250
+ if (!globalGraph) {
251
+ globalGraph = new LearningGraphStore();
252
+ }
253
+ return globalGraph;
254
+ }
255
+ export function createLearningGraph(config) {
256
+ return new LearningGraphStore(config);
257
+ }
258
+ //# sourceMappingURL=learning-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-graph.js","sourceRoot":"","sources":["../../src/learning-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Memory Store - Persistent memory for agent notes and user preferences
3
+ *
4
+ * Based on Hermes Agent's memory system:
5
+ * - MEMORY.md: Agent's personal notes (environment facts, conventions, tool quirks)
6
+ * - USER.md: User preferences and patterns (Honcho dialectic modeling)
7
+ *
8
+ * Memory is injected into system prompt at session start.
9
+ */
10
+ /**
11
+ * Memory entry for agent notes
12
+ */
13
+ export interface MemoryEntry {
14
+ id: string;
15
+ content: string;
16
+ source: "agent" | "user" | "curator";
17
+ created_at: string;
18
+ updated_at: string;
19
+ tags?: string[];
20
+ fingerprint?: string;
21
+ }
22
+ /**
23
+ * User profile entry
24
+ */
25
+ export interface UserProfileEntry {
26
+ id: string;
27
+ content: string;
28
+ category: "preference" | "style" | "workflow" | "context";
29
+ created_at: string;
30
+ updated_at: string;
31
+ confidence: number;
32
+ }
33
+ /**
34
+ * Memory store configuration
35
+ */
36
+ export interface MemoryStoreConfig {
37
+ memoryFile: string;
38
+ userFile: string;
39
+ maxMemoryTokens: number;
40
+ }
41
+ /**
42
+ * Default memory store configuration
43
+ */
44
+ export declare const DEFAULT_MEMORY_CONFIG: MemoryStoreConfig;
45
+ /**
46
+ * Memory Store class
47
+ */
48
+ export declare class MemoryStore {
49
+ private config;
50
+ private memoryFile;
51
+ private userFile;
52
+ private memoryCache;
53
+ private userCache;
54
+ private dirty;
55
+ constructor(config?: Partial<MemoryStoreConfig>);
56
+ /**
57
+ * Load memory from files
58
+ */
59
+ load(): void;
60
+ /**
61
+ * Load memory entries from file
62
+ */
63
+ private loadMemoryFile;
64
+ /**
65
+ * Load user profile from file
66
+ */
67
+ private loadUserFile;
68
+ /**
69
+ * Parse memory markdown format
70
+ */
71
+ private parseMemoryMarkdown;
72
+ /**
73
+ * Parse user profile markdown format
74
+ */
75
+ private parseUserMarkdown;
76
+ /**
77
+ * Save memory to file
78
+ */
79
+ save(): void;
80
+ /**
81
+ * Serialize memory entries to markdown
82
+ */
83
+ private serializeMemory;
84
+ /**
85
+ * Serialize user entries to markdown
86
+ */
87
+ private serializeUser;
88
+ /**
89
+ * Add memory entry
90
+ */
91
+ addMemory(content: string, source?: MemoryEntry["source"], tags?: string[]): MemoryEntry;
92
+ /**
93
+ * Replace memory entry
94
+ */
95
+ replaceMemory(oldText: string, newContent: string): boolean;
96
+ /**
97
+ * Remove memory entry
98
+ */
99
+ removeMemory(oldText: string): boolean;
100
+ /**
101
+ * Add user profile entry
102
+ */
103
+ addUserProfile(content: string, category?: UserProfileEntry["category"], confidence?: number): UserProfileEntry;
104
+ /**
105
+ * Get all memory entries
106
+ */
107
+ getMemory(): MemoryEntry[];
108
+ /**
109
+ * Get all user profile entries
110
+ */
111
+ getUserProfile(): UserProfileEntry[];
112
+ /**
113
+ * Get memory as system prompt section
114
+ */
115
+ getMemorySection(): string;
116
+ /**
117
+ * Get user preferences as system prompt section
118
+ */
119
+ getUserSection(): string;
120
+ /**
121
+ * Search memory entries
122
+ */
123
+ searchMemory(query: string): MemoryEntry[];
124
+ /**
125
+ * List pending entries (for write approval)
126
+ */
127
+ listPending(): {
128
+ memory: MemoryEntry[];
129
+ user: UserProfileEntry[];
130
+ };
131
+ /**
132
+ * Get approximate token count
133
+ */
134
+ getApproxTokenCount(): number;
135
+ /**
136
+ * Check if memory exceeds max tokens
137
+ */
138
+ isOverTokenLimit(): boolean;
139
+ /**
140
+ * Compact memory (keep most recent/important entries)
141
+ */
142
+ compact(): void;
143
+ }
144
+ export declare function getGlobalMemoryStore(): MemoryStore;
145
+ export declare function createMemoryStore(config?: Partial<MemoryStoreConfig>): MemoryStore;
146
+ //# sourceMappingURL=memory-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/memory-store.ts"],"names":[],"mappings":"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"}