aismemory 0.1.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.
package/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # aismemory
2
+
3
+ Persistent memory for AI agents. One command to give your AI agent memory that persists across sessions, tools, and runtimes.
4
+
5
+ ## Quick Start
6
+
7
+ Add to your IDE's MCP server config:
8
+
9
+ ```json
10
+ {
11
+ "mcpServers": {
12
+ "aismemory": {
13
+ "command": "npx",
14
+ "args": ["aismemory"]
15
+ }
16
+ }
17
+ }
18
+ ```
19
+
20
+ On first run, you'll be prompted to authenticate:
21
+
22
+ ```
23
+ Visit: https://agentsandswarms.ai/activate?user_code=ABCD-EFGH
24
+ Or go to https://agentsandswarms.ai/activate and enter code: ABCD-EFGH
25
+ ```
26
+
27
+ After approving, your agent has persistent memory. Every future session auto-authenticates.
28
+
29
+ ## Tools
30
+
31
+ | Tool | Description |
32
+ |------|-------------|
33
+ | `remember` | Store a memory (fact, event, lesson, context, goal, task) |
34
+ | `recall` | Search memories by natural language query |
35
+ | `whoami` | Get agent identity and status |
36
+ | `full_context` | Load complete agent context (personality, goals, facts, skills) |
37
+ | `dream` | Trigger memory consolidation (promotes important, archives old) |
38
+ | `handoff` | Save session context for the next session |
39
+
40
+ ## Works With
41
+
42
+ - Claude Code
43
+ - Claude.ai
44
+ - Cursor
45
+ - Windsurf
46
+ - VS Code + Copilot
47
+ - Any MCP-compatible client
48
+
49
+ ## How It Works
50
+
51
+ `aismemory` is a thin MCP server that connects to [Agent Identity Service](https://agentsandswarms.ai) via HTTP. No local database needed. Your agent's memories are stored securely in the cloud and accessible from any device or IDE.
52
+
53
+ Authentication uses the OAuth device flow (RFC 8628). Credentials are saved to `~/.aismemory/credentials.json`.
54
+
55
+ ## Environment Variables
56
+
57
+ | Variable | Default | Description |
58
+ |----------|---------|-------------|
59
+ | `AIS_URL` | `https://ais.agentsandswarms.ai` | AIS server URL |
60
+
61
+ ## License
62
+
63
+ MIT
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * aismemory — MCP server for persistent AI agent memory.
4
+ *
5
+ * Connects to the hosted Agent Identity Service at ais.agentsandswarms.ai.
6
+ * Uses OAuth device flow for zero-friction authentication.
7
+ *
8
+ * Usage: npx aismemory
9
+ */
10
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,240 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * aismemory — MCP server for persistent AI agent memory.
4
+ *
5
+ * Connects to the hosted Agent Identity Service at ais.agentsandswarms.ai.
6
+ * Uses OAuth device flow for zero-friction authentication.
7
+ *
8
+ * Usage: npx aismemory
9
+ */
10
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
11
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
12
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
13
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
14
+ import { join } from 'path';
15
+ import { homedir } from 'os';
16
+ // ── Config ──────────────────────────────────────────────
17
+ const AIS_URL = process.env['AIS_URL'] ?? 'https://ais.agentsandswarms.ai';
18
+ const CREDS_DIR = join(homedir(), '.aismemory');
19
+ const CREDS_FILE = join(CREDS_DIR, 'credentials.json');
20
+ // ── Credential persistence ──────────────────────────────
21
+ function loadCredentials() {
22
+ try {
23
+ if (!existsSync(CREDS_FILE))
24
+ return null;
25
+ const data = JSON.parse(readFileSync(CREDS_FILE, 'utf-8'));
26
+ if (new Date(data.expiresAt) <= new Date()) {
27
+ stderr('Saved credentials expired. Re-authenticating...');
28
+ return null;
29
+ }
30
+ return data;
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ function saveCredentials(creds) {
37
+ mkdirSync(CREDS_DIR, { recursive: true });
38
+ writeFileSync(CREDS_FILE, JSON.stringify(creds, null, 2));
39
+ }
40
+ // ── HTTP helpers ────────────────────────────────────────
41
+ function stderr(msg) {
42
+ process.stderr.write(`[aismemory] ${msg}\n`);
43
+ }
44
+ async function aisPost(path, body, token) {
45
+ const headers = { 'Content-Type': 'application/json' };
46
+ if (token)
47
+ headers['Authorization'] = `Bearer ${token}`;
48
+ const res = await fetch(`${AIS_URL}${path}`, {
49
+ method: 'POST',
50
+ headers,
51
+ body: JSON.stringify(body),
52
+ });
53
+ return res.json();
54
+ }
55
+ async function aisGet(path, token) {
56
+ const res = await fetch(`${AIS_URL}${path}`, {
57
+ headers: { 'Authorization': `Bearer ${token}` },
58
+ });
59
+ return res.json();
60
+ }
61
+ async function authenticate() {
62
+ stderr('Starting authentication...');
63
+ const authRes = await aisPost('/v1/oauth/device/authorize', {
64
+ name: `agent-${homedir().split('/').pop() ?? 'user'}`,
65
+ });
66
+ if (!authRes.success || !authRes.data) {
67
+ throw new Error(`Authentication failed: ${authRes.error?.message ?? 'Unknown error'}`);
68
+ }
69
+ const { device_code, user_code, verification_uri, verification_uri_complete, interval, agent_id, provisional_tenant_id } = authRes.data;
70
+ stderr('');
71
+ stderr('=== Authentication Required ===');
72
+ stderr(`Visit: ${verification_uri_complete}`);
73
+ stderr(`Or go to ${verification_uri} and enter code: ${user_code}`);
74
+ stderr('Waiting for approval...');
75
+ stderr('');
76
+ // Poll for token
77
+ const pollInterval = Math.max(interval, 5) * 1000;
78
+ const deadline = Date.now() + 30 * 60 * 1000; // 30 min
79
+ while (Date.now() < deadline) {
80
+ await new Promise((r) => setTimeout(r, pollInterval));
81
+ const pollRes = await aisPost('/v1/oauth/token', { device_code });
82
+ if (pollRes.access_token) {
83
+ const expiresAt = new Date(Date.now() + (pollRes.expires_in ?? 604800) * 1000).toISOString();
84
+ const creds = {
85
+ token: pollRes.access_token,
86
+ agentId: agent_id,
87
+ tenantId: provisional_tenant_id,
88
+ expiresAt,
89
+ };
90
+ saveCredentials(creds);
91
+ stderr('Authenticated successfully!');
92
+ return creds;
93
+ }
94
+ if (pollRes.error === 'authorization_pending')
95
+ continue;
96
+ if (pollRes.error === 'slow_down') {
97
+ await new Promise((r) => setTimeout(r, 5000));
98
+ continue;
99
+ }
100
+ if (pollRes.error === 'access_denied')
101
+ throw new Error('Authorization denied by user');
102
+ if (pollRes.error === 'expired_token')
103
+ throw new Error('Authorization expired. Please try again.');
104
+ }
105
+ throw new Error('Authentication timed out');
106
+ }
107
+ // ── MCP Tool definitions ────────────────────────────────
108
+ const tools = [
109
+ {
110
+ name: 'remember',
111
+ description: 'Store a memory. Types: fact, event, lesson, context, goal, task.',
112
+ inputSchema: {
113
+ type: 'object',
114
+ properties: {
115
+ content: { type: 'string', description: 'The memory content to store' },
116
+ type: { type: 'string', enum: ['fact', 'event', 'lesson', 'context', 'goal', 'task'], description: 'Memory type' },
117
+ importance: { type: 'number', minimum: 0, maximum: 1, description: 'Importance (0-1, default 0.5)' },
118
+ },
119
+ required: ['content'],
120
+ },
121
+ },
122
+ {
123
+ name: 'recall',
124
+ description: 'Search memories by natural language query.',
125
+ inputSchema: {
126
+ type: 'object',
127
+ properties: {
128
+ query: { type: 'string', description: 'Search query' },
129
+ limit: { type: 'number', description: 'Max results (default 10)' },
130
+ type: { type: 'string', enum: ['fact', 'event', 'lesson', 'context', 'goal', 'task'], description: 'Filter by type' },
131
+ },
132
+ required: ['query'],
133
+ },
134
+ },
135
+ {
136
+ name: 'whoami',
137
+ description: 'Get the current agent identity — name, DID, status, description.',
138
+ inputSchema: { type: 'object', properties: {} },
139
+ },
140
+ {
141
+ name: 'full_context',
142
+ description: 'Load the full agent context — identity, personality, goals, facts, skills, and last handoff.',
143
+ inputSchema: { type: 'object', properties: {} },
144
+ },
145
+ {
146
+ name: 'dream',
147
+ description: 'Trigger a memory consolidation dream cycle — promotes important memories and archives old ones.',
148
+ inputSchema: { type: 'object', properties: {} },
149
+ },
150
+ {
151
+ name: 'handoff',
152
+ description: 'Create a session handoff package — saves current context for the next session.',
153
+ inputSchema: {
154
+ type: 'object',
155
+ properties: {
156
+ summary: { type: 'string', description: 'Summary of what was accomplished this session' },
157
+ keyLearnings: { type: 'array', items: { type: 'string' }, description: 'Key learnings to carry forward' },
158
+ },
159
+ },
160
+ },
161
+ ];
162
+ // ── MCP Server ──────────────────────────────────────────
163
+ async function main() {
164
+ // Authenticate
165
+ let creds = loadCredentials();
166
+ if (!creds) {
167
+ creds = await authenticate();
168
+ }
169
+ else {
170
+ stderr(`Authenticated as agent ${creds.agentId}`);
171
+ }
172
+ const { token, agentId } = creds;
173
+ // Create MCP server
174
+ const server = new Server({ name: 'aismemory', version: '0.1.0' }, { capabilities: { tools: {} } });
175
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools }));
176
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
177
+ const { name, arguments: args } = request.params;
178
+ const a = (args ?? {});
179
+ try {
180
+ let result;
181
+ switch (name) {
182
+ case 'remember':
183
+ result = await aisPost(`/v1/agents/${agentId}/memory`, {
184
+ content: a['content'],
185
+ type: a['type'] ?? 'context',
186
+ importance: a['importance'] ?? 0.5,
187
+ }, token);
188
+ break;
189
+ case 'recall': {
190
+ const params = new URLSearchParams();
191
+ if (a['query'])
192
+ params.set('query', String(a['query']));
193
+ if (a['limit'])
194
+ params.set('limit', String(a['limit']));
195
+ if (a['type'])
196
+ params.set('types', String(a['type']));
197
+ result = await aisGet(`/v1/agents/${agentId}/memory?${params}`, token);
198
+ break;
199
+ }
200
+ case 'whoami':
201
+ result = await aisGet(`/v1/agents/${agentId}`, token);
202
+ break;
203
+ case 'full_context':
204
+ result = await aisGet(`/v1/agents/${agentId}/full-context`, token);
205
+ break;
206
+ case 'dream':
207
+ result = await aisPost(`/v1/agents/${agentId}/dream`, {}, token);
208
+ break;
209
+ case 'handoff':
210
+ result = await aisPost(`/v1/agents/${agentId}/handoff`, {
211
+ summary: a['summary'] ?? 'Session ended',
212
+ keyLearnings: a['keyLearnings'] ?? [],
213
+ }, token);
214
+ break;
215
+ default:
216
+ return {
217
+ content: [{ type: 'text', text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
218
+ isError: true,
219
+ };
220
+ }
221
+ return {
222
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
223
+ };
224
+ }
225
+ catch (error) {
226
+ return {
227
+ content: [{ type: 'text', text: JSON.stringify({ error: error instanceof Error ? error.message : 'Unknown error' }) }],
228
+ isError: true,
229
+ };
230
+ }
231
+ });
232
+ const transport = new StdioServerTransport();
233
+ await server.connect(transport);
234
+ stderr('MCP server running. Tools: remember, recall, whoami, full_context, dream, handoff');
235
+ }
236
+ main().catch((error) => {
237
+ stderr(`Fatal: ${error instanceof Error ? error.message : String(error)}`);
238
+ process.exit(1);
239
+ });
240
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "aismemory",
3
+ "version": "0.1.0",
4
+ "description": "Persistent memory for AI agents. MCP server that connects to Agent Identity Service.",
5
+ "type": "module",
6
+ "bin": "dist/index.js",
7
+ "main": "dist/index.js",
8
+ "files": [
9
+ "dist",
10
+ "README.md"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc && chmod +x dist/index.js",
14
+ "prepack": "npm run build"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "ai",
19
+ "agent",
20
+ "memory",
21
+ "identity",
22
+ "llm"
23
+ ],
24
+ "author": "Agents & Swarms <hello@agentsandswarms.ai>",
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^1.25.0"
28
+ },
29
+ "devDependencies": {
30
+ "typescript": "^5.7.0"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/rudedoggg/Corbot.git",
38
+ "directory": "packages/agentmemory"
39
+ },
40
+ "homepage": "https://agentsandswarms.ai"
41
+ }