@hasna/mementos 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.
@@ -0,0 +1,158 @@
1
+ export type MemoryScope = "global" | "shared" | "private";
2
+ export type MemoryCategory = "preference" | "fact" | "knowledge" | "history";
3
+ export type MemorySource = "user" | "agent" | "system" | "auto" | "imported";
4
+ export type MemoryStatus = "active" | "archived" | "expired";
5
+ export interface Memory {
6
+ id: string;
7
+ key: string;
8
+ value: string;
9
+ category: MemoryCategory;
10
+ scope: MemoryScope;
11
+ summary: string | null;
12
+ tags: string[];
13
+ importance: number;
14
+ source: MemorySource;
15
+ status: MemoryStatus;
16
+ pinned: boolean;
17
+ agent_id: string | null;
18
+ project_id: string | null;
19
+ session_id: string | null;
20
+ metadata: Record<string, unknown>;
21
+ access_count: number;
22
+ version: number;
23
+ expires_at: string | null;
24
+ created_at: string;
25
+ updated_at: string;
26
+ accessed_at: string | null;
27
+ }
28
+ export interface MemoryWithRelations extends Memory {
29
+ agent: Agent | null;
30
+ project: Project | null;
31
+ }
32
+ export interface CreateMemoryInput {
33
+ key: string;
34
+ value: string;
35
+ category?: MemoryCategory;
36
+ scope?: MemoryScope;
37
+ summary?: string;
38
+ tags?: string[];
39
+ importance?: number;
40
+ source?: MemorySource;
41
+ agent_id?: string;
42
+ project_id?: string;
43
+ session_id?: string;
44
+ metadata?: Record<string, unknown>;
45
+ expires_at?: string;
46
+ ttl_ms?: number;
47
+ }
48
+ export interface UpdateMemoryInput {
49
+ value?: string;
50
+ category?: MemoryCategory;
51
+ scope?: MemoryScope;
52
+ summary?: string | null;
53
+ tags?: string[];
54
+ importance?: number;
55
+ pinned?: boolean;
56
+ status?: MemoryStatus;
57
+ metadata?: Record<string, unknown>;
58
+ expires_at?: string | null;
59
+ version: number;
60
+ }
61
+ export interface MemoryFilter {
62
+ scope?: MemoryScope | MemoryScope[];
63
+ category?: MemoryCategory | MemoryCategory[];
64
+ source?: MemorySource | MemorySource[];
65
+ status?: MemoryStatus | MemoryStatus[];
66
+ project_id?: string;
67
+ agent_id?: string;
68
+ session_id?: string;
69
+ tags?: string[];
70
+ min_importance?: number;
71
+ pinned?: boolean;
72
+ search?: string;
73
+ limit?: number;
74
+ offset?: number;
75
+ }
76
+ export interface MemorySearchResult {
77
+ memory: Memory;
78
+ score: number;
79
+ match_type: "exact" | "fuzzy" | "tag";
80
+ }
81
+ export interface Agent {
82
+ id: string;
83
+ name: string;
84
+ description: string | null;
85
+ role: string | null;
86
+ metadata: Record<string, unknown>;
87
+ created_at: string;
88
+ last_seen_at: string;
89
+ }
90
+ export interface Project {
91
+ id: string;
92
+ name: string;
93
+ path: string;
94
+ description: string | null;
95
+ memory_prefix: string | null;
96
+ created_at: string;
97
+ updated_at: string;
98
+ }
99
+ export interface MemoryStats {
100
+ total: number;
101
+ by_scope: Record<MemoryScope, number>;
102
+ by_category: Record<MemoryCategory, number>;
103
+ by_status: Record<MemoryStatus, number>;
104
+ by_agent: Record<string, number>;
105
+ pinned_count: number;
106
+ expired_count: number;
107
+ }
108
+ export interface MementosConfig {
109
+ default_scope: MemoryScope;
110
+ default_category: MemoryCategory;
111
+ default_importance: number;
112
+ max_entries: number;
113
+ max_entries_per_scope: Record<MemoryScope, number>;
114
+ injection: {
115
+ max_tokens: number;
116
+ min_importance: number;
117
+ categories: MemoryCategory[];
118
+ refresh_interval: number;
119
+ };
120
+ sync_agents: string[];
121
+ auto_cleanup: {
122
+ enabled: boolean;
123
+ expired_check_interval: number;
124
+ };
125
+ }
126
+ export type DedupeMode = "merge" | "create";
127
+ export type SyncDirection = "push" | "pull" | "both";
128
+ export type ConflictResolution = "prefer-local" | "prefer-remote" | "prefer-newer";
129
+ export interface SyncOptions {
130
+ direction: SyncDirection;
131
+ conflict_resolution?: ConflictResolution;
132
+ agent_id?: string;
133
+ project_id?: string;
134
+ }
135
+ export interface SyncResult {
136
+ pushed: number;
137
+ pulled: number;
138
+ conflicts: number;
139
+ errors: string[];
140
+ }
141
+ export declare class MemoryNotFoundError extends Error {
142
+ constructor(id: string);
143
+ }
144
+ export declare class DuplicateMemoryError extends Error {
145
+ constructor(key: string, scope: MemoryScope);
146
+ }
147
+ export declare class MemoryExpiredError extends Error {
148
+ constructor(id: string);
149
+ }
150
+ export declare class InvalidScopeError extends Error {
151
+ constructor(message: string);
152
+ }
153
+ export declare class VersionConflictError extends Error {
154
+ expected: number;
155
+ actual: number;
156
+ constructor(id: string, expected: number, actual: number);
157
+ }
158
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@hasna/mementos",
3
+ "version": "0.1.0",
4
+ "description": "Universal memory system for AI agents - CLI + MCP server + library API",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "mementos": "dist/cli/index.js",
10
+ "mementos-mcp": "dist/mcp/index.js",
11
+ "mementos-serve": "dist/server/index.js"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "dashboard/dist",
22
+ "LICENSE",
23
+ "README.md"
24
+ ],
25
+ "scripts": {
26
+ "build": "bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly --outDir dist",
27
+ "typecheck": "tsc --noEmit",
28
+ "test": "bun test",
29
+ "dev:cli": "bun run src/cli/index.tsx",
30
+ "dev:mcp": "bun run src/mcp/index.ts",
31
+ "dev:serve": "bun run src/server/index.ts"
32
+ },
33
+ "keywords": [
34
+ "memory",
35
+ "mementos",
36
+ "mcp",
37
+ "ai",
38
+ "coding-agent",
39
+ "claude",
40
+ "codex",
41
+ "gemini",
42
+ "cli",
43
+ "sqlite"
44
+ ],
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/hasna/mementos.git"
51
+ },
52
+ "homepage": "https://github.com/hasna/mementos",
53
+ "bugs": {
54
+ "url": "https://github.com/hasna/mementos/issues"
55
+ },
56
+ "engines": {
57
+ "bun": ">=1.0.0"
58
+ },
59
+ "author": "Andrei Hasna <andrei@hasna.com>",
60
+ "license": "Apache-2.0",
61
+ "dependencies": {
62
+ "@modelcontextprotocol/sdk": "^1.12.1",
63
+ "chalk": "^5.4.1",
64
+ "commander": "^13.1.0",
65
+ "ink": "^5.2.0",
66
+ "react": "^18.3.1",
67
+ "zod": "^3.24.2"
68
+ },
69
+ "devDependencies": {
70
+ "@types/bun": "^1.2.4",
71
+ "@types/react": "^18.3.18",
72
+ "typescript": "^5.7.3"
73
+ }
74
+ }