@grant-vine/wunderkind 0.3.1 → 0.4.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.
Files changed (106) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +156 -36
  3. package/agents/brand-builder.md +16 -2
  4. package/agents/ciso.md +23 -0
  5. package/agents/creative-director.md +14 -0
  6. package/agents/fullstack-wunderkind.md +16 -0
  7. package/agents/marketing-wunderkind.md +14 -0
  8. package/agents/operations-lead.md +15 -0
  9. package/agents/product-wunderkind.md +15 -0
  10. package/agents/qa-specialist.md +14 -0
  11. package/dist/agents/brand-builder.d.ts.map +1 -1
  12. package/dist/agents/brand-builder.js +17 -3
  13. package/dist/agents/brand-builder.js.map +1 -1
  14. package/dist/agents/ciso.d.ts.map +1 -1
  15. package/dist/agents/ciso.js +24 -1
  16. package/dist/agents/ciso.js.map +1 -1
  17. package/dist/agents/creative-director.d.ts.map +1 -1
  18. package/dist/agents/creative-director.js +15 -1
  19. package/dist/agents/creative-director.js.map +1 -1
  20. package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
  21. package/dist/agents/fullstack-wunderkind.js +17 -1
  22. package/dist/agents/fullstack-wunderkind.js.map +1 -1
  23. package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
  24. package/dist/agents/marketing-wunderkind.js +15 -1
  25. package/dist/agents/marketing-wunderkind.js.map +1 -1
  26. package/dist/agents/operations-lead.d.ts.map +1 -1
  27. package/dist/agents/operations-lead.js +16 -1
  28. package/dist/agents/operations-lead.js.map +1 -1
  29. package/dist/agents/product-wunderkind.d.ts.map +1 -1
  30. package/dist/agents/product-wunderkind.js +16 -1
  31. package/dist/agents/product-wunderkind.js.map +1 -1
  32. package/dist/agents/qa-specialist.d.ts.map +1 -1
  33. package/dist/agents/qa-specialist.js +15 -1
  34. package/dist/agents/qa-specialist.js.map +1 -1
  35. package/dist/cli/cli-installer.d.ts.map +1 -1
  36. package/dist/cli/cli-installer.js +48 -4
  37. package/dist/cli/cli-installer.js.map +1 -1
  38. package/dist/cli/config-manager/index.d.ts +5 -3
  39. package/dist/cli/config-manager/index.d.ts.map +1 -1
  40. package/dist/cli/config-manager/index.js +160 -59
  41. package/dist/cli/config-manager/index.js.map +1 -1
  42. package/dist/cli/gitignore-manager.d.ts +8 -0
  43. package/dist/cli/gitignore-manager.d.ts.map +1 -0
  44. package/dist/cli/gitignore-manager.js +57 -0
  45. package/dist/cli/gitignore-manager.js.map +1 -0
  46. package/dist/cli/index.js +46 -1
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/memory-commands.d.ts +3 -0
  49. package/dist/cli/memory-commands.d.ts.map +1 -0
  50. package/dist/cli/memory-commands.js +138 -0
  51. package/dist/cli/memory-commands.js.map +1 -0
  52. package/dist/cli/tui-installer.d.ts +2 -1
  53. package/dist/cli/tui-installer.d.ts.map +1 -1
  54. package/dist/cli/tui-installer.js +339 -5
  55. package/dist/cli/tui-installer.js.map +1 -1
  56. package/dist/cli/types.d.ts +43 -0
  57. package/dist/cli/types.d.ts.map +1 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +26 -6
  60. package/dist/index.js.map +1 -1
  61. package/dist/memory/adapters/file.d.ts +21 -0
  62. package/dist/memory/adapters/file.d.ts.map +1 -0
  63. package/dist/memory/adapters/file.js +232 -0
  64. package/dist/memory/adapters/file.js.map +1 -0
  65. package/dist/memory/adapters/mem0.d.ts +37 -0
  66. package/dist/memory/adapters/mem0.d.ts.map +1 -0
  67. package/dist/memory/adapters/mem0.js +171 -0
  68. package/dist/memory/adapters/mem0.js.map +1 -0
  69. package/dist/memory/adapters/sqlite.d.ts +21 -0
  70. package/dist/memory/adapters/sqlite.d.ts.map +1 -0
  71. package/dist/memory/adapters/sqlite.js +198 -0
  72. package/dist/memory/adapters/sqlite.js.map +1 -0
  73. package/dist/memory/adapters/stub.d.ts +20 -0
  74. package/dist/memory/adapters/stub.d.ts.map +1 -0
  75. package/dist/memory/adapters/stub.js +58 -0
  76. package/dist/memory/adapters/stub.js.map +1 -0
  77. package/dist/memory/adapters/types.d.ts +45 -0
  78. package/dist/memory/adapters/types.d.ts.map +1 -0
  79. package/dist/memory/adapters/types.js +2 -0
  80. package/dist/memory/adapters/types.js.map +1 -0
  81. package/dist/memory/adapters/vector.d.ts +29 -0
  82. package/dist/memory/adapters/vector.d.ts.map +1 -0
  83. package/dist/memory/adapters/vector.js +347 -0
  84. package/dist/memory/adapters/vector.js.map +1 -0
  85. package/dist/memory/docker.d.ts +9 -0
  86. package/dist/memory/docker.d.ts.map +1 -0
  87. package/dist/memory/docker.js +43 -0
  88. package/dist/memory/docker.js.map +1 -0
  89. package/dist/memory/format.d.ts +5 -0
  90. package/dist/memory/format.d.ts.map +1 -0
  91. package/dist/memory/format.js +41 -0
  92. package/dist/memory/format.js.map +1 -0
  93. package/dist/memory/index.d.ts +19 -0
  94. package/dist/memory/index.d.ts.map +1 -0
  95. package/dist/memory/index.js +183 -0
  96. package/dist/memory/index.js.map +1 -0
  97. package/dist/memory/slug.d.ts +2 -0
  98. package/dist/memory/slug.d.ts.map +1 -0
  99. package/dist/memory/slug.js +40 -0
  100. package/dist/memory/slug.js.map +1 -0
  101. package/dist/memory/tools.d.ts +3 -0
  102. package/dist/memory/tools.d.ts.map +1 -0
  103. package/dist/memory/tools.js +84 -0
  104. package/dist/memory/tools.js.map +1 -0
  105. package/package.json +13 -3
  106. package/skills/memory-manager/SKILL.md +48 -0
@@ -0,0 +1,21 @@
1
+ import type { HistoryEntry, MemoryAdapter, MemoryCount, MemoryEntry, StaleAnalysis } from "./types.js";
2
+ export declare class SqliteAdapter implements MemoryAdapter {
3
+ #private;
4
+ constructor(dbPath: string);
5
+ read(agent: string): Promise<MemoryEntry[]>;
6
+ write(agent: string, entry: Omit<MemoryEntry, "id">): Promise<MemoryEntry>;
7
+ update(id: string, content: string): Promise<MemoryEntry>;
8
+ delete(id: string): Promise<void>;
9
+ deleteAll(agent: string): Promise<void>;
10
+ search(agent: string, query: string): Promise<MemoryEntry[]>;
11
+ history(id: string): Promise<HistoryEntry[]>;
12
+ analyzeStale(agent: string): Promise<StaleAnalysis>;
13
+ prune(agent: string, idsToRemove: string[]): Promise<number>;
14
+ count(agent: string): Promise<MemoryCount>;
15
+ listAgents(): Promise<string[]>;
16
+ status(): Promise<{
17
+ ok: boolean;
18
+ message: string;
19
+ }>;
20
+ }
21
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/memory/adapters/sqlite.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AA6DtG,qBAAa,aAAc,YAAW,aAAa;;gBAGrC,MAAM,EAAE,MAAM;IAQpB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ3C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IA8B1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAczD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAU5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAY5C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKnD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAc5D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmB1C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ/B,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAyC1D"}
@@ -0,0 +1,198 @@
1
+ import { mkdir } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { Database } from "bun:sqlite";
4
+ import { analyzeStale, generateId, generateSlug } from "../format.js";
5
+ const SCHEMA = `
6
+ CREATE TABLE IF NOT EXISTS memories (
7
+ id TEXT PRIMARY KEY,
8
+ agent_id TEXT NOT NULL,
9
+ slug TEXT NOT NULL,
10
+ content TEXT NOT NULL,
11
+ tags TEXT NOT NULL DEFAULT '',
12
+ created_at INTEGER NOT NULL,
13
+ updated_at INTEGER NOT NULL,
14
+ pinned INTEGER NOT NULL DEFAULT 0,
15
+ metadata TEXT NOT NULL DEFAULT '{}'
16
+ );
17
+ CREATE INDEX IF NOT EXISTS idx_memories_agent ON memories(agent_id, created_at DESC);
18
+ CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
19
+ content,
20
+ tags,
21
+ content = 'memories',
22
+ content_rowid = 'rowid',
23
+ tokenize = 'porter unicode61'
24
+ );
25
+ CREATE TRIGGER IF NOT EXISTS memories_ai AFTER INSERT ON memories BEGIN
26
+ INSERT INTO memories_fts(rowid, content, tags) VALUES (new.rowid, new.content, new.tags);
27
+ END;
28
+ CREATE TRIGGER IF NOT EXISTS memories_ad AFTER DELETE ON memories BEGIN
29
+ INSERT INTO memories_fts(memories_fts, rowid, content, tags) VALUES ('delete', old.rowid, old.content, old.tags);
30
+ END;
31
+ CREATE TRIGGER IF NOT EXISTS memories_au AFTER UPDATE ON memories BEGIN
32
+ INSERT INTO memories_fts(memories_fts, rowid, content, tags) VALUES ('delete', old.rowid, old.content, old.tags);
33
+ INSERT INTO memories_fts(rowid, content, tags) VALUES (new.rowid, new.content, new.tags);
34
+ END;
35
+
36
+ CREATE TABLE IF NOT EXISTS memory_history (
37
+ id TEXT PRIMARY KEY,
38
+ memory_id TEXT NOT NULL,
39
+ action TEXT NOT NULL,
40
+ value TEXT NOT NULL,
41
+ timestamp INTEGER NOT NULL
42
+ );
43
+ CREATE INDEX IF NOT EXISTS idx_history_memory ON memory_history(memory_id, timestamp DESC);
44
+ `;
45
+ export class SqliteAdapter {
46
+ #db;
47
+ constructor(dbPath) {
48
+ const dir = path.dirname(dbPath);
49
+ void mkdir(dir, { recursive: true });
50
+ this.#db = new Database(dbPath, { create: true });
51
+ this.#db.exec("PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;");
52
+ this.#db.exec(SCHEMA);
53
+ }
54
+ async read(agent) {
55
+ const stmt = this.#db.prepare("SELECT * FROM memories WHERE agent_id = $agent ORDER BY created_at DESC");
56
+ const rows = stmt.all({ $agent: agent });
57
+ return rows.map((row) => this.#mapRow(row));
58
+ }
59
+ async write(agent, entry) {
60
+ const id = generateId();
61
+ const now = entry.createdAt;
62
+ const slug = entry.slug.trim().length > 0 ? entry.slug : generateSlug(entry.content);
63
+ const metadata = JSON.stringify(entry.metadata);
64
+ const stmt = this.#db.prepare("INSERT INTO memories (id, agent_id, slug, content, tags, created_at, updated_at, pinned, metadata) VALUES ($id, $agent, $slug, $content, '', $created, $updated, $pinned, $metadata)");
65
+ stmt.run({
66
+ $id: id,
67
+ $agent: agent,
68
+ $slug: slug,
69
+ $content: entry.content,
70
+ $created: now,
71
+ $updated: now,
72
+ $pinned: entry.pinned ? 1 : 0,
73
+ $metadata: metadata,
74
+ });
75
+ this.#insertHistory(id, "ADD", entry.content);
76
+ return {
77
+ id,
78
+ agent,
79
+ slug,
80
+ content: entry.content,
81
+ createdAt: entry.createdAt,
82
+ pinned: entry.pinned,
83
+ metadata: entry.metadata,
84
+ };
85
+ }
86
+ async update(id, content) {
87
+ const now = Date.now();
88
+ const stmt = this.#db.prepare("UPDATE memories SET content = $content, updated_at = $updated WHERE id = $id");
89
+ stmt.run({ $id: id, $content: content, $updated: now });
90
+ this.#insertHistory(id, "UPDATE", content);
91
+ const entry = this.#getById(id);
92
+ if (!entry) {
93
+ throw new Error(`Memory entry not found: ${id}`);
94
+ }
95
+ return entry;
96
+ }
97
+ async delete(id) {
98
+ const stmt = this.#db.prepare("DELETE FROM memories WHERE id = $id");
99
+ stmt.run({ $id: id });
100
+ this.#insertHistory(id, "DELETE", id);
101
+ }
102
+ async deleteAll(agent) {
103
+ const stmt = this.#db.prepare("DELETE FROM memories WHERE agent_id = $agent");
104
+ stmt.run({ $agent: agent });
105
+ }
106
+ async search(agent, query) {
107
+ const escaped = query.replace(/"/g, '""');
108
+ const search = `"${escaped}"`;
109
+ const stmt = this.#db.prepare("SELECT m.* FROM memories_fts JOIN memories m ON memories_fts.rowid = m.rowid WHERE memories_fts MATCH $query AND m.agent_id = $agent ORDER BY bm25(memories_fts, 5.0, 1.0) LIMIT 10");
110
+ const rows = stmt.all({ $query: search, $agent: agent });
111
+ return rows.map((row) => this.#mapRow(row));
112
+ }
113
+ async history(id) {
114
+ const stmt = this.#db.prepare("SELECT action, value, timestamp FROM memory_history WHERE memory_id = $id ORDER BY timestamp DESC");
115
+ const rows = stmt.all({ $id: id });
116
+ return rows.map((row) => ({
117
+ action: row.action,
118
+ value: row.value,
119
+ timestamp: row.timestamp,
120
+ }));
121
+ }
122
+ async analyzeStale(agent) {
123
+ const entries = await this.read(agent);
124
+ return analyzeStale(entries);
125
+ }
126
+ async prune(agent, idsToRemove) {
127
+ if (idsToRemove.length === 0)
128
+ return 0;
129
+ let removed = 0;
130
+ const stmt = this.#db.prepare("DELETE FROM memories WHERE id = $id AND agent_id = $agent");
131
+ const transaction = this.#db.transaction((ids) => {
132
+ for (const id of ids) {
133
+ const result = stmt.run({ $id: id, $agent: agent });
134
+ if (result.changes > 0)
135
+ removed += 1;
136
+ }
137
+ });
138
+ transaction(idsToRemove);
139
+ return removed;
140
+ }
141
+ async count(agent) {
142
+ const stmt = this.#db.prepare("SELECT COUNT(*) as total, SUM(pinned) as pinned, MIN(created_at) as oldest, MAX(created_at) as newest FROM memories WHERE agent_id = $agent");
143
+ const row = stmt.get({ $agent: agent });
144
+ if (!row || row.total === 0) {
145
+ return { total: 0, pinned: 0, oldest: 0, newest: 0 };
146
+ }
147
+ return {
148
+ total: row.total,
149
+ pinned: row.pinned ?? 0,
150
+ oldest: row.oldest ?? 0,
151
+ newest: row.newest ?? 0,
152
+ };
153
+ }
154
+ async listAgents() {
155
+ const stmt = this.#db.prepare("SELECT DISTINCT agent_id FROM memories ORDER BY agent_id ASC");
156
+ const rows = stmt.all();
157
+ return rows.map((r) => r.agent_id);
158
+ }
159
+ async status() {
160
+ try {
161
+ this.#db.query("SELECT 1").get();
162
+ return { ok: true, message: "sqlite adapter ready" };
163
+ }
164
+ catch (err) {
165
+ const message = err instanceof Error ? err.message : String(err);
166
+ return { ok: false, message };
167
+ }
168
+ }
169
+ #mapRow(row) {
170
+ return {
171
+ id: row.id,
172
+ agent: row.agent_id,
173
+ slug: row.slug,
174
+ content: row.content,
175
+ createdAt: row.created_at,
176
+ pinned: row.pinned !== 0,
177
+ metadata: JSON.parse(row.metadata),
178
+ };
179
+ }
180
+ #getById(id) {
181
+ const stmt = this.#db.prepare("SELECT * FROM memories WHERE id = $id");
182
+ const row = stmt.get({ $id: id });
183
+ if (!row)
184
+ return null;
185
+ return this.#mapRow(row);
186
+ }
187
+ #insertHistory(memoryId, action, value) {
188
+ const stmt = this.#db.prepare("INSERT INTO memory_history (id, memory_id, action, value, timestamp) VALUES ($id, $memoryId, $action, $value, $timestamp)");
189
+ stmt.run({
190
+ $id: generateId(),
191
+ $memoryId: memoryId,
192
+ $action: action,
193
+ $value: value,
194
+ $timestamp: Date.now(),
195
+ });
196
+ }
197
+ }
198
+ //# sourceMappingURL=sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/memory/adapters/sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { HistoryEntry, MemoryAdapter, MemoryCount, MemoryEntry, StaleAnalysis } from "./types.js";
2
+ export declare class StubAdapter implements MemoryAdapter {
3
+ constructor();
4
+ read(_agent: string): Promise<MemoryEntry[]>;
5
+ write(agent: string, entry: Omit<MemoryEntry, "id">): Promise<MemoryEntry>;
6
+ update(id: string, content: string): Promise<MemoryEntry>;
7
+ delete(_id: string): Promise<void>;
8
+ deleteAll(_agent: string): Promise<void>;
9
+ search(_agent: string, _query: string): Promise<MemoryEntry[]>;
10
+ history(_id: string): Promise<HistoryEntry[]>;
11
+ analyzeStale(_agent: string): Promise<StaleAnalysis>;
12
+ prune(_agent: string, _idsToRemove: string[]): Promise<number>;
13
+ count(_agent: string): Promise<MemoryCount>;
14
+ listAgents(): Promise<string[]>;
15
+ status(): Promise<{
16
+ ok: boolean;
17
+ message: string;
18
+ }>;
19
+ }
20
+ //# sourceMappingURL=stub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../../src/memory/adapters/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAKtG,qBAAa,WAAY,YAAW,aAAa;;IAGzC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI5C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAY1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAYzD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI9D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI3C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAG1D"}
@@ -0,0 +1,58 @@
1
+ import { generateId, generateSlug } from "../format.js";
2
+ const STUB_MESSAGE = "No memory system bootstrapped. Set memoryAdapter in wunderkind.config.jsonc to 'file', 'sqlite', or 'mem0'.";
3
+ export class StubAdapter {
4
+ constructor() { }
5
+ async read(_agent) {
6
+ return [];
7
+ }
8
+ async write(agent, entry) {
9
+ return {
10
+ id: generateId(),
11
+ agent,
12
+ slug: entry.slug.trim().length > 0 ? entry.slug : generateSlug(entry.content),
13
+ content: STUB_MESSAGE,
14
+ createdAt: entry.createdAt,
15
+ pinned: false,
16
+ metadata: {},
17
+ };
18
+ }
19
+ async update(id, content) {
20
+ return {
21
+ id,
22
+ agent: "",
23
+ slug: generateSlug(content),
24
+ content: STUB_MESSAGE,
25
+ createdAt: Date.now(),
26
+ pinned: false,
27
+ metadata: {},
28
+ };
29
+ }
30
+ async delete(_id) {
31
+ return;
32
+ }
33
+ async deleteAll(_agent) {
34
+ return;
35
+ }
36
+ async search(_agent, _query) {
37
+ return [];
38
+ }
39
+ async history(_id) {
40
+ return [];
41
+ }
42
+ async analyzeStale(_agent) {
43
+ return { toKeep: [], toDrop: [], pinned: 0, recent: 0, stale: 0 };
44
+ }
45
+ async prune(_agent, _idsToRemove) {
46
+ return 0;
47
+ }
48
+ async count(_agent) {
49
+ return { total: 0, pinned: 0, oldest: 0, newest: 0 };
50
+ }
51
+ async listAgents() {
52
+ return [];
53
+ }
54
+ async status() {
55
+ return { ok: false, message: STUB_MESSAGE };
56
+ }
57
+ }
58
+ //# sourceMappingURL=stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../src/memory/adapters/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGvD,MAAM,YAAY,GAChB,6GAA6G,CAAA;AAE/G,MAAM,OAAO,WAAW;IACtB,gBAAe,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,KAA8B;QACvD,OAAO;YACL,EAAE,EAAE,UAAU,EAAE;YAChB,KAAK;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7E,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAe;QACtC,OAAO;YACL,EAAE;YACF,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;YAC3B,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAM;IACR,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,OAAM;IACR,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,MAAc;QACzC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,YAAsB;QAChD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc;QACxB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;IAC7C,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ export interface MemoryEntry {
2
+ id: string;
3
+ agent: string;
4
+ slug: string;
5
+ content: string;
6
+ createdAt: number;
7
+ pinned: boolean;
8
+ metadata: Record<string, string>;
9
+ }
10
+ export interface HistoryEntry {
11
+ action: string;
12
+ value: string;
13
+ timestamp: number;
14
+ }
15
+ export interface StaleAnalysis {
16
+ toKeep: MemoryEntry[];
17
+ toDrop: MemoryEntry[];
18
+ pinned: number;
19
+ recent: number;
20
+ stale: number;
21
+ }
22
+ export interface MemoryCount {
23
+ total: number;
24
+ pinned: number;
25
+ oldest: number;
26
+ newest: number;
27
+ }
28
+ export interface MemoryAdapter {
29
+ read(agent: string): Promise<MemoryEntry[]>;
30
+ write(agent: string, entry: Omit<MemoryEntry, "id">): Promise<MemoryEntry>;
31
+ update(id: string, content: string): Promise<MemoryEntry>;
32
+ delete(id: string): Promise<void>;
33
+ deleteAll(agent: string): Promise<void>;
34
+ search(agent: string, query: string): Promise<MemoryEntry[]>;
35
+ history(id: string): Promise<HistoryEntry[]>;
36
+ analyzeStale(agent: string): Promise<StaleAnalysis>;
37
+ prune(agent: string, idsToRemove: string[]): Promise<number>;
38
+ count(agent: string): Promise<MemoryCount>;
39
+ listAgents(): Promise<string[]>;
40
+ status(): Promise<{
41
+ ok: boolean;
42
+ message: string;
43
+ }>;
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/adapters/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC3C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC5C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACnD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC/B,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/memory/adapters/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import type { HistoryEntry, MemoryAdapter, MemoryCount, MemoryEntry, StaleAnalysis } from "./types.js";
2
+ export interface VectorAdapterConfig {
3
+ qdrantUrl: string;
4
+ model: string;
5
+ vectorSize: number;
6
+ collectionName: string;
7
+ projectSlug: string;
8
+ cacheDir?: string;
9
+ }
10
+ export declare class VectorAdapter implements MemoryAdapter {
11
+ #private;
12
+ constructor(config: VectorAdapterConfig);
13
+ read(agent: string): Promise<MemoryEntry[]>;
14
+ write(agent: string, entry: Omit<MemoryEntry, "id">): Promise<MemoryEntry>;
15
+ update(id: string, content: string): Promise<MemoryEntry>;
16
+ delete(id: string): Promise<void>;
17
+ deleteAll(agent: string): Promise<void>;
18
+ search(agent: string, query: string): Promise<MemoryEntry[]>;
19
+ history(id: string): Promise<HistoryEntry[]>;
20
+ analyzeStale(agent: string): Promise<StaleAnalysis>;
21
+ prune(_agent: string, idsToRemove: string[]): Promise<number>;
22
+ count(agent: string): Promise<MemoryCount>;
23
+ listAgents(): Promise<string[]>;
24
+ status(): Promise<{
25
+ ok: boolean;
26
+ message: string;
27
+ }>;
28
+ }
29
+ //# sourceMappingURL=vector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/memory/adapters/vector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEtG,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAkGD,qBAAa,aAAc,YAAW,aAAa;;gBAIrC,MAAM,EAAE,mBAAmB;IA8CjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO3C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAmE1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmCzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAsC5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAgB5C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKnD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAc1C,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA2B/B,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAU1D"}