@getanima/core 1.0.0 → 1.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 CHANGED
@@ -34,32 +34,33 @@ Anima gives agents:
34
34
  ### Option 1: CLI (fastest)
35
35
 
36
36
  ```bash
37
- git clone https://github.com/GetAnima/anima.git
38
- cd anima
37
+ npm install -g @getanima/core
39
38
 
40
39
  # Set your agent's data directory
41
40
  export ANIMA_STORAGE=./my-agent-data
42
41
  export ANIMA_TZ=America/Los_Angeles
43
42
 
44
43
  # Boot — creates identity files on first run
45
- npx tsx cli.ts boot
44
+ anima boot
46
45
 
47
46
  # Remember something
48
- npx tsx cli.ts remember "I decided to focus on one project" --type decision --importance high
47
+ anima remember "I decided to focus on one project" --type decision --importance high
49
48
 
50
49
  # Search your memories
51
- npx tsx cli.ts recall "focus"
50
+ anima recall "focus"
52
51
 
53
52
  # Form an opinion
54
- npx tsx cli.ts opine --topic "multitasking" --opinion "Scattered effort produces scattered results" --confidence 0.8
53
+ anima opine --topic "multitasking" --opinion "Scattered effort produces scattered results" --confidence 0.8
55
54
 
56
55
  # Check your state
57
- npx tsx cli.ts status
56
+ anima status
58
57
 
59
58
  # End of session — runs decay, curates memories
60
- npx tsx cli.ts reflect
59
+ anima reflect
61
60
  ```
62
61
 
62
+ > **Tip:** You can also use `npx @getanima/core` instead of installing globally.
63
+
63
64
  ### Option 2: SDK (for integration)
64
65
 
65
66
  ```bash
package/dist/cli.js ADDED
@@ -0,0 +1,378 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Anima CLI — Identity and memory infrastructure for AI agents.
5
+ *
6
+ * Universal: works for any agent, not just Kip.
7
+ * Reads agent name from identity.json or ANIMA_AGENT env var.
8
+ *
9
+ * Usage:
10
+ * anima boot — Run boot sequence, print wake context
11
+ * anima remember <text> — Store a memory (--type lesson --importance high --tags "a,b" --emotional 0.7)
12
+ * anima recall <query> — Search memories (--limit 5)
13
+ * anima checkpoint — Update NOW.md lifeboat (--task "..." --status "..." --resume "..." --threads "a,b")
14
+ * anima reflect — End-of-session consolidation (decay, curate, summarize)
15
+ * anima opine — Record/update an opinion (--topic "..." --opinion "..." --confidence 0.8)
16
+ * anima curate — Review memories, promote to long-term (--hours 48 --dry-run)
17
+ * anima status — Show current state (identity, memories, opinions)
18
+ * anima wm — Update working memory L1 cache (--task "..." --actions "a,b" --threads "x,y")
19
+ * anima log — Log an external action (--action "REPLY" --detail "description")
20
+ * anima sign — Sign identity cryptographically
21
+ * anima help — Show this help text
22
+ *
23
+ * Environment:
24
+ * ANIMA_STORAGE — Path to anima-data directory (default: ./anima-data)
25
+ * ANIMA_TZ — Timezone for dates (default: system locale)
26
+ * ANIMA_AGENT — Agent name override (default: reads from identity.json)
27
+ * ANIMA_WM_PATH — Working memory file path (default: ANIMA_STORAGE/../WORKING-MEMORY.md)
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ const index_1 = require("./src/index");
31
+ const fs_1 = require("fs");
32
+ const path_1 = require("path");
33
+ const STORAGE_PATH = process.env.ANIMA_STORAGE || (0, path_1.join)(process.cwd(), 'anima-data');
34
+ const TZ = process.env.ANIMA_TZ || Intl.DateTimeFormat().resolvedOptions().timeZone;
35
+ const WM_PATH = process.env.ANIMA_WM_PATH || (0, path_1.join)(STORAGE_PATH, '..', 'WORKING-MEMORY.md');
36
+ function getAgentName() {
37
+ if (process.env.ANIMA_AGENT)
38
+ return process.env.ANIMA_AGENT;
39
+ const idPath = (0, path_1.join)(STORAGE_PATH, 'identity.json');
40
+ if ((0, fs_1.existsSync)(idPath)) {
41
+ try {
42
+ return JSON.parse((0, fs_1.readFileSync)(idPath, 'utf-8')).name || 'Agent';
43
+ }
44
+ catch {
45
+ return 'Agent';
46
+ }
47
+ }
48
+ return 'Agent';
49
+ }
50
+ function loadIdentityDefaults() {
51
+ const idPath = (0, path_1.join)(STORAGE_PATH, 'identity.json');
52
+ if ((0, fs_1.existsSync)(idPath)) {
53
+ try {
54
+ return JSON.parse((0, fs_1.readFileSync)(idPath, 'utf-8'));
55
+ }
56
+ catch {
57
+ return {};
58
+ }
59
+ }
60
+ return {};
61
+ }
62
+ function ensureStorageExists() {
63
+ if (!(0, fs_1.existsSync)(STORAGE_PATH)) {
64
+ (0, fs_1.mkdirSync)(STORAGE_PATH, { recursive: true });
65
+ (0, fs_1.mkdirSync)((0, path_1.join)(STORAGE_PATH, 'memory'), { recursive: true });
66
+ (0, fs_1.mkdirSync)((0, path_1.join)(STORAGE_PATH, 'opinions'), { recursive: true });
67
+ }
68
+ }
69
+ function localNow() {
70
+ return new Date().toLocaleString('en-US', {
71
+ timeZone: TZ, hour12: false,
72
+ year: 'numeric', month: '2-digit', day: '2-digit',
73
+ hour: '2-digit', minute: '2-digit',
74
+ });
75
+ }
76
+ function localTime() {
77
+ return new Date().toLocaleTimeString('en-US', {
78
+ timeZone: TZ, hour12: false, hour: '2-digit', minute: '2-digit',
79
+ });
80
+ }
81
+ function localDate() {
82
+ return new Date().toLocaleDateString('en-CA', { timeZone: TZ });
83
+ }
84
+ // ============ FLAG PARSING ============
85
+ // Handles: --flag value pairs and positional args
86
+ // Quotes in positional args are handled by the shell before we see them
87
+ function getFlag(args, flag) {
88
+ const idx = args.indexOf(flag);
89
+ if (idx === -1 || idx >= args.length - 1)
90
+ return undefined;
91
+ return args[idx + 1];
92
+ }
93
+ function getPositionalArgs(args, startIndex) {
94
+ const parts = [];
95
+ for (let i = startIndex; i < args.length; i++) {
96
+ if (args[i].startsWith('--')) {
97
+ i++;
98
+ continue;
99
+ } // skip --flag value
100
+ parts.push(args[i]);
101
+ }
102
+ return parts.join(' ');
103
+ }
104
+ // ============ HELP ============
105
+ const HELP = `
106
+ Anima CLI — Identity and memory infrastructure for AI agents.
107
+
108
+ Commands:
109
+ boot Run boot sequence, print wake context
110
+ remember Store a memory (text after command, flags: --type --importance --tags --emotional)
111
+ recall Search memories (query after command, flag: --limit)
112
+ checkpoint Update NOW.md lifeboat (--task --status --resume --threads)
113
+ reflect End-of-session consolidation
114
+ opine Record/update opinion (--topic --opinion --confidence)
115
+ curate Review + promote memories (--hours --dry-run)
116
+ status Show current state
117
+ wm Update working memory L1 cache (--task --actions --threads)
118
+ log Log external action (--action --detail)
119
+ sign Sign identity cryptographically
120
+ help Show this help
121
+
122
+ Environment:
123
+ ANIMA_STORAGE Path to data dir (default: ./anima-data)
124
+ ANIMA_TZ Timezone (default: system)
125
+ ANIMA_AGENT Agent name (default: from identity.json)
126
+ ANIMA_WM_PATH Working memory path (default: STORAGE/../WORKING-MEMORY.md)
127
+
128
+ Memory types: event, conversation, decision, insight, lesson, emotional
129
+ Importance levels: low, medium, high, critical
130
+ `.trim();
131
+ // ============ MAIN ============
132
+ async function main() {
133
+ const args = process.argv.slice(2);
134
+ const command = args[0];
135
+ if (!command || command === 'help' || command === '--help' || command === '-h') {
136
+ console.log(HELP);
137
+ process.exit(0);
138
+ }
139
+ ensureStorageExists();
140
+ const agentName = getAgentName();
141
+ const anima = new index_1.Anima({
142
+ name: agentName,
143
+ storagePath: STORAGE_PATH,
144
+ identity: loadIdentityDefaults(),
145
+ });
146
+ switch (command) {
147
+ // ============ BOOT ============
148
+ case 'boot': {
149
+ const context = await anima.boot();
150
+ console.log(JSON.stringify({
151
+ agent: agentName,
152
+ sessionId: context.sessionId,
153
+ instanceId: context.instanceId,
154
+ identity: context.identity,
155
+ lifeboat: context.lifeboat,
156
+ recentMemories: context.recentMemories.length,
157
+ opinions: context.relevantOpinions.length,
158
+ tokensUsed: context.tokensUsed,
159
+ bootTime: anima.getBootTime(),
160
+ }, null, 2));
161
+ break;
162
+ }
163
+ // ============ REMEMBER ============
164
+ case 'remember': {
165
+ await anima.quickLoad();
166
+ const text = getPositionalArgs(args, 1);
167
+ if (!text) {
168
+ console.error('Usage: anima remember <text> [--type lesson] [--importance high] [--tags "a,b"] [--emotional 0.7]');
169
+ process.exit(1);
170
+ }
171
+ const importance = (getFlag(args, '--importance') || 'medium');
172
+ const type = (getFlag(args, '--type') || 'event');
173
+ const emotional = parseFloat(getFlag(args, '--emotional') || '0');
174
+ const tagsRaw = getFlag(args, '--tags');
175
+ const tags = tagsRaw ? tagsRaw.split(',').map(t => t.trim()) : [];
176
+ const memory = await anima.remember({ content: text, type, importance, tags, emotionalWeight: emotional });
177
+ console.log(JSON.stringify({ stored: true, id: memory.id, type: memory.type, importance: memory.importance, salience: memory.salienceScore }));
178
+ break;
179
+ }
180
+ // ============ RECALL ============
181
+ case 'recall': {
182
+ await anima.quickLoad();
183
+ const query = getPositionalArgs(args, 1);
184
+ if (!query) {
185
+ console.error('Usage: anima recall <query> [--limit 5]');
186
+ process.exit(1);
187
+ }
188
+ const limit = parseInt(getFlag(args, '--limit') || '5');
189
+ const results = await anima.recall(query, limit);
190
+ if (results.length === 0) {
191
+ console.log(JSON.stringify({ results: [], message: 'No memories found matching query.' }));
192
+ }
193
+ else {
194
+ console.log(JSON.stringify(results.map(m => ({
195
+ id: m.id,
196
+ type: m.type,
197
+ content: m.content,
198
+ importance: m.importance,
199
+ salience: m.salienceScore,
200
+ timestamp: m.timestamp,
201
+ tags: m.tags,
202
+ })), null, 2));
203
+ }
204
+ break;
205
+ }
206
+ // ============ CHECKPOINT ============
207
+ case 'checkpoint': {
208
+ await anima.quickLoad();
209
+ const task = getFlag(args, '--task') || 'No task specified';
210
+ const status = (getFlag(args, '--status') || 'in-progress');
211
+ const resume = getFlag(args, '--resume') || 'Continue from last checkpoint';
212
+ const threadsRaw = getFlag(args, '--threads');
213
+ const threads = threadsRaw ? threadsRaw.split(',').map(t => t.trim()) : undefined;
214
+ await anima.checkpoint({ activeTask: task, status, resumePoint: resume, openThreads: threads });
215
+ console.log(JSON.stringify({ checkpointed: true, task, status, resume }));
216
+ break;
217
+ }
218
+ // ============ REFLECT ============
219
+ case 'reflect': {
220
+ await anima.boot();
221
+ const summary = await anima.reflect();
222
+ console.log(JSON.stringify(summary, null, 2));
223
+ break;
224
+ }
225
+ // ============ OPINE ============
226
+ case 'opine': {
227
+ await anima.quickLoad();
228
+ const topic = getFlag(args, '--topic');
229
+ const opinion = getFlag(args, '--opinion');
230
+ const confidence = parseFloat(getFlag(args, '--confidence') || '0.7');
231
+ if (!topic || !opinion) {
232
+ console.error('Usage: anima opine --topic "subject" --opinion "what you think" [--confidence 0.8]');
233
+ process.exit(1);
234
+ }
235
+ const result = await anima.opine(topic, opinion, confidence);
236
+ const evolved = result.previousOpinions.length > 0;
237
+ console.log(JSON.stringify({
238
+ topic: result.topic,
239
+ current: result.current,
240
+ confidence: result.confidence,
241
+ evolved,
242
+ previousCount: result.previousOpinions.length,
243
+ ...(evolved ? { previousOpinion: result.previousOpinions[result.previousOpinions.length - 1] } : {}),
244
+ }));
245
+ break;
246
+ }
247
+ // ============ CURATE ============
248
+ case 'curate': {
249
+ await anima.quickLoad();
250
+ const hours = parseInt(getFlag(args, '--hours') || '48');
251
+ const dryRun = args.includes('--dry-run');
252
+ const result = await anima.curate({ hoursBack: hours, dryRun });
253
+ console.log(JSON.stringify({
254
+ curated: result.curated.length,
255
+ written: result.written,
256
+ ...(dryRun ? { dryRun: true, wouldCurate: result.curated.map(m => m.content.slice(0, 80)) } : {}),
257
+ }));
258
+ break;
259
+ }
260
+ // ============ STATUS ============
261
+ case 'status': {
262
+ await anima.quickLoad();
263
+ const identity = anima.getIdentity().get();
264
+ const memories = await anima.getMemory().getAllMemories();
265
+ const opinions = await anima.getMemory().getOpinions();
266
+ const lifeboat = await anima.getMemory().readLifeboat();
267
+ // Check working memory
268
+ let wmExists = false;
269
+ let wmAge = '';
270
+ try {
271
+ const wm = (0, fs_1.readFileSync)(WM_PATH, 'utf-8');
272
+ wmExists = true;
273
+ const match = wm.match(/Last updated: (.+)/);
274
+ if (match)
275
+ wmAge = match[1];
276
+ }
277
+ catch { }
278
+ // Check action log
279
+ let actionLogEntries = 0;
280
+ try {
281
+ const log = (0, fs_1.readFileSync)((0, path_1.join)(STORAGE_PATH, 'action-log.md'), 'utf-8');
282
+ actionLogEntries = (log.match(/^- \[/gm) || []).length;
283
+ }
284
+ catch { }
285
+ console.log(JSON.stringify({
286
+ agent: identity.name,
287
+ personality: identity.personality,
288
+ values: identity.values,
289
+ memories: {
290
+ total: memories.length,
291
+ hot: memories.filter(m => m.tier === 'hot').length,
292
+ warm: memories.filter(m => m.tier === 'warm').length,
293
+ cold: memories.filter(m => m.tier === 'cold').length,
294
+ archived: memories.filter(m => m.tier === 'archived').length,
295
+ byType: memories.reduce((acc, m) => { acc[m.type] = (acc[m.type] || 0) + 1; return acc; }, {}),
296
+ },
297
+ opinions: opinions.length,
298
+ hasLifeboat: !!lifeboat,
299
+ workingMemory: { exists: wmExists, lastUpdated: wmAge },
300
+ actionLog: { entries: actionLogEntries },
301
+ }, null, 2));
302
+ break;
303
+ }
304
+ // ============ WORKING MEMORY ============
305
+ case 'wm': {
306
+ const task = getFlag(args, '--task') || 'No task specified';
307
+ const actionsRaw = getFlag(args, '--actions');
308
+ const threadsRaw = getFlag(args, '--threads');
309
+ const actions = actionsRaw ? actionsRaw.split(',').map(a => a.trim()) : [];
310
+ const threads = threadsRaw ? threadsRaw.split(',').map(t => t.trim()) : [];
311
+ let content = `# WORKING MEMORY\n`;
312
+ content += `*Auto-injected every turn. Update after every significant action. Keep under 200 tokens.*\n`;
313
+ content += `*Last updated: ${localNow()}*\n\n`;
314
+ content += `## Right Now\n- ${task}\n`;
315
+ if (actions.length > 0) {
316
+ content += `\n## Last 5 Actions\n`;
317
+ actions.slice(0, 5).forEach((a, i) => { content += `${i + 1}. ${a}\n`; });
318
+ }
319
+ if (threads.length > 0) {
320
+ content += `\n## Active Threads\n`;
321
+ threads.forEach(t => { content += `- ${t}\n`; });
322
+ }
323
+ const wmDir = (0, path_1.dirname)(WM_PATH);
324
+ if (!(0, fs_1.existsSync)(wmDir))
325
+ (0, fs_1.mkdirSync)(wmDir, { recursive: true });
326
+ (0, fs_1.writeFileSync)(WM_PATH, content);
327
+ const tokens = Math.ceil(content.length / 4);
328
+ if (tokens > 200) {
329
+ console.error(`Warning: Working memory is ${tokens} tokens (target: <200). Consider trimming.`);
330
+ }
331
+ console.log(JSON.stringify({ updated: true, path: WM_PATH, tokens }));
332
+ break;
333
+ }
334
+ // ============ ACTION LOG ============
335
+ case 'log': {
336
+ const actionType = getFlag(args, '--action') || 'ACTION';
337
+ const detail = getFlag(args, '--detail') || getPositionalArgs(args, 1);
338
+ if (!detail) {
339
+ console.error('Usage: anima log --action REPLY --detail "replied to @someone"');
340
+ console.error('Action types: TWEET, REPLY, LIKE, RETWEET, FOLLOW, PUBLISH, BIO, PIN, SUBSTACK_NOTE');
341
+ process.exit(1);
342
+ }
343
+ const logPath = (0, path_1.join)(STORAGE_PATH, 'action-log.md');
344
+ const today = localDate();
345
+ const time = localTime();
346
+ let existing = '';
347
+ try {
348
+ existing = (0, fs_1.readFileSync)(logPath, 'utf-8');
349
+ }
350
+ catch {
351
+ existing = '# Action Log\n*Every external action gets logged here IMMEDIATELY. Check before acting to avoid duplicates.*\n*Format: [timestamp] ACTION: description*\n';
352
+ }
353
+ // Add today's header if missing
354
+ if (!existing.includes(`## ${today}`)) {
355
+ existing += `\n## ${today}\n`;
356
+ }
357
+ existing += `- [${time}] ${actionType}: ${detail}\n`;
358
+ (0, fs_1.writeFileSync)(logPath, existing);
359
+ console.log(JSON.stringify({ logged: true, action: actionType, detail, time: `${today} ${time}` }));
360
+ break;
361
+ }
362
+ // ============ SIGN ============
363
+ case 'sign': {
364
+ await anima.boot();
365
+ const signed = await anima.sign();
366
+ console.log(JSON.stringify({ signed: true, agent: agentName, fingerprint: await anima.getFingerprint() }));
367
+ break;
368
+ }
369
+ default:
370
+ console.error(`Unknown command: ${command}\nRun 'anima help' for usage.`);
371
+ process.exit(1);
372
+ }
373
+ }
374
+ main().catch(err => {
375
+ console.error(`[anima] Error: ${err.message}`);
376
+ process.exit(1);
377
+ });
378
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getanima/core",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Identity and memory infrastructure for AI agents",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -12,6 +12,9 @@
12
12
  "require": "./dist/index.js"
13
13
  }
14
14
  },
15
+ "bin": {
16
+ "anima": "dist/cli.js"
17
+ },
15
18
  "files": [
16
19
  "dist/*.js",
17
20
  "dist/*.js.map",
@@ -22,7 +25,7 @@
22
25
  "LICENSE"
23
26
  ],
24
27
  "scripts": {
25
- "build": "tsc && tsc -p tsconfig.esm.json",
28
+ "build": "tsc && tsc -p tsconfig.esm.json && tsc -p tsconfig.cli.json",
26
29
  "dev": "tsc --watch",
27
30
  "test": "vitest",
28
31
  "prepublishOnly": "npm run build && npm test -- --run",