@dcyfr/ai 1.0.3 → 1.0.4

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 (83) hide show
  1. package/LICENSE +27 -1
  2. package/README.md +343 -4
  3. package/dist/ai/index.d.ts +2 -0
  4. package/dist/ai/index.d.ts.map +1 -1
  5. package/dist/ai/index.js +2 -0
  6. package/dist/ai/index.js.map +1 -1
  7. package/dist/ai/mcp/index.d.ts +14 -2
  8. package/dist/ai/mcp/index.d.ts.map +1 -1
  9. package/dist/ai/mcp/index.js +11 -1
  10. package/dist/ai/mcp/index.js.map +1 -1
  11. package/dist/ai/mcp/servers/analytics/index.d.ts +19 -0
  12. package/dist/ai/mcp/servers/analytics/index.d.ts.map +1 -0
  13. package/dist/ai/mcp/servers/analytics/index.js +556 -0
  14. package/dist/ai/mcp/servers/analytics/index.js.map +1 -0
  15. package/dist/ai/mcp/servers/content-manager/content-provider.d.ts +61 -0
  16. package/dist/ai/mcp/servers/content-manager/content-provider.d.ts.map +1 -0
  17. package/dist/ai/mcp/servers/content-manager/content-provider.js +8 -0
  18. package/dist/ai/mcp/servers/content-manager/content-provider.js.map +1 -0
  19. package/dist/ai/mcp/servers/content-manager/index.d.ts +19 -0
  20. package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -0
  21. package/dist/ai/mcp/servers/content-manager/index.js +236 -0
  22. package/dist/ai/mcp/servers/content-manager/index.js.map +1 -0
  23. package/dist/ai/mcp/servers/design-tokens/index.d.ts +19 -0
  24. package/dist/ai/mcp/servers/design-tokens/index.d.ts.map +1 -0
  25. package/dist/ai/mcp/servers/design-tokens/index.js +422 -0
  26. package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -0
  27. package/dist/ai/mcp/servers/design-tokens/token-provider.d.ts +59 -0
  28. package/dist/ai/mcp/servers/design-tokens/token-provider.d.ts.map +1 -0
  29. package/dist/ai/mcp/servers/design-tokens/token-provider.js +8 -0
  30. package/dist/ai/mcp/servers/design-tokens/token-provider.js.map +1 -0
  31. package/dist/ai/mcp/servers/promptintel/index.d.ts +19 -0
  32. package/dist/ai/mcp/servers/promptintel/index.d.ts.map +1 -0
  33. package/dist/ai/mcp/servers/promptintel/index.js +323 -0
  34. package/dist/ai/mcp/servers/promptintel/index.js.map +1 -0
  35. package/dist/ai/mcp/servers/shared/cache.d.ts +62 -0
  36. package/dist/ai/mcp/servers/shared/cache.d.ts.map +1 -0
  37. package/dist/ai/mcp/servers/shared/cache.js +117 -0
  38. package/dist/ai/mcp/servers/shared/cache.js.map +1 -0
  39. package/dist/ai/mcp/servers/shared/promptintel-client.d.ts +53 -0
  40. package/dist/ai/mcp/servers/shared/promptintel-client.d.ts.map +1 -0
  41. package/dist/ai/mcp/servers/shared/promptintel-client.js +185 -0
  42. package/dist/ai/mcp/servers/shared/promptintel-client.js.map +1 -0
  43. package/dist/ai/mcp/servers/shared/promptintel-types.d.ts +85 -0
  44. package/dist/ai/mcp/servers/shared/promptintel-types.d.ts.map +1 -0
  45. package/dist/ai/mcp/servers/shared/promptintel-types.js +7 -0
  46. package/dist/ai/mcp/servers/shared/promptintel-types.js.map +1 -0
  47. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts +54 -0
  48. package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -0
  49. package/dist/ai/mcp/servers/shared/rate-limiter.js +122 -0
  50. package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -0
  51. package/dist/ai/mcp/servers/shared/redis-client.d.ts +54 -0
  52. package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -0
  53. package/dist/ai/mcp/servers/shared/redis-client.js +225 -0
  54. package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -0
  55. package/dist/ai/mcp/servers/shared/types.d.ts +292 -0
  56. package/dist/ai/mcp/servers/shared/types.d.ts.map +1 -0
  57. package/dist/ai/mcp/servers/shared/types.js +6 -0
  58. package/dist/ai/mcp/servers/shared/types.js.map +1 -0
  59. package/dist/ai/mcp/servers/shared/utils.d.ts +41 -0
  60. package/dist/ai/mcp/servers/shared/utils.d.ts.map +1 -0
  61. package/dist/ai/mcp/servers/shared/utils.js +183 -0
  62. package/dist/ai/mcp/servers/shared/utils.js.map +1 -0
  63. package/dist/ai/memory/config.d.ts +87 -0
  64. package/dist/ai/memory/config.d.ts.map +1 -0
  65. package/dist/ai/memory/config.js +154 -0
  66. package/dist/ai/memory/config.js.map +1 -0
  67. package/dist/ai/memory/dcyfr-memory.d.ts +63 -0
  68. package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -0
  69. package/dist/ai/memory/dcyfr-memory.js +270 -0
  70. package/dist/ai/memory/dcyfr-memory.js.map +1 -0
  71. package/dist/ai/memory/index.d.ts +15 -0
  72. package/dist/ai/memory/index.d.ts.map +1 -0
  73. package/dist/ai/memory/index.js +15 -0
  74. package/dist/ai/memory/index.js.map +1 -0
  75. package/dist/ai/memory/mem0-client.d.ts +108 -0
  76. package/dist/ai/memory/mem0-client.d.ts.map +1 -0
  77. package/dist/ai/memory/mem0-client.js +166 -0
  78. package/dist/ai/memory/mem0-client.js.map +1 -0
  79. package/dist/ai/memory/types.d.ts +175 -0
  80. package/dist/ai/memory/types.d.ts.map +1 -0
  81. package/dist/ai/memory/types.js +10 -0
  82. package/dist/ai/memory/types.js.map +1 -0
  83. package/package.json +24 -2
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Memory Layer Type Definitions
3
+ *
4
+ * Core interfaces for DCYFR memory abstraction layer.
5
+ * Provides type safety for user, agent, and session memory operations.
6
+ *
7
+ * @module @dcyfr/ai/memory/types
8
+ */
9
+ /**
10
+ * Base memory object
11
+ */
12
+ export interface Memory {
13
+ /** Unique memory identifier */
14
+ id: string;
15
+ /** Memory content (text) */
16
+ content: string;
17
+ /** Owner (userId or agentId) */
18
+ owner: string;
19
+ /** Owner type */
20
+ ownerType: 'user' | 'agent' | 'session';
21
+ /** Importance score (0-1, higher = more important) */
22
+ importance?: number;
23
+ /** Topic/category for filtering */
24
+ topic?: string;
25
+ /** Timestamp when memory was created */
26
+ createdAt: Date;
27
+ /** Additional metadata */
28
+ metadata?: Record<string, any>;
29
+ }
30
+ /**
31
+ * Agent-specific memory (extends base Memory)
32
+ */
33
+ export interface AgentMemory extends Memory {
34
+ ownerType: 'agent';
35
+ /** Agent identifier */
36
+ agentId: string;
37
+ /** Session identifier */
38
+ sessionId: string;
39
+ /** Agent workflow state */
40
+ state?: Record<string, any>;
41
+ }
42
+ /**
43
+ * Session-specific memory (temporary context)
44
+ */
45
+ export interface SessionMemory extends Memory {
46
+ ownerType: 'session';
47
+ /** Session identifier */
48
+ sessionId: string;
49
+ /** Expiration timestamp (auto-delete after) */
50
+ expiresAt?: Date;
51
+ }
52
+ /**
53
+ * Memory search result (includes relevance score)
54
+ */
55
+ export interface MemorySearchResult extends Memory {
56
+ /** Relevance score from vector search (0-1) */
57
+ relevance: number;
58
+ }
59
+ /**
60
+ * Memory addition context (optional metadata)
61
+ */
62
+ export interface MemoryContext {
63
+ /** Topic/category for filtering */
64
+ topic?: string;
65
+ /** Importance score (0-1) */
66
+ importance?: number;
67
+ /** Additional metadata */
68
+ metadata?: Record<string, any>;
69
+ }
70
+ /**
71
+ * DCYFRMemory interface - main API for memory operations
72
+ *
73
+ * This abstraction layer wraps mem0 (or other memory providers)
74
+ * to provide a consistent API for DCYFR applications.
75
+ */
76
+ export interface DCYFRMemory {
77
+ /**
78
+ * Add a user-level memory (persistent across sessions)
79
+ *
80
+ * @param userId - Unique user identifier
81
+ * @param message - Memory content
82
+ * @param context - Optional metadata (topic, importance)
83
+ * @returns Memory ID
84
+ */
85
+ addUserMemory(userId: string, message: string, context?: MemoryContext): Promise<string>;
86
+ /**
87
+ * Search user memories by semantic query
88
+ *
89
+ * @param userId - Unique user identifier
90
+ * @param query - Search query (natural language)
91
+ * @param limit - Max results to return (default: 3)
92
+ * @returns Array of relevant memories
93
+ */
94
+ searchUserMemories(userId: string, query: string, limit?: number): Promise<MemorySearchResult[]>;
95
+ /**
96
+ * Get all memories for a user (optionally filtered by topic)
97
+ *
98
+ * @param userId - Unique user identifier
99
+ * @param topic - Optional topic filter
100
+ * @returns Array of user memories
101
+ */
102
+ getUserMemories(userId: string, topic?: string): Promise<Memory[]>;
103
+ /**
104
+ * Add agent workflow state (for multi-step tasks)
105
+ *
106
+ * @param agentId - Unique agent identifier
107
+ * @param sessionId - Current session ID
108
+ * @param state - Workflow state to persist
109
+ * @returns Memory ID
110
+ */
111
+ addAgentMemory(agentId: string, sessionId: string, state: Record<string, any>): Promise<string>;
112
+ /**
113
+ * Search agent memories (retrieve workflow state)
114
+ *
115
+ * @param agentId - Unique agent identifier
116
+ * @param query - Search query
117
+ * @param limit - Max results to return (default: 3)
118
+ * @returns Array of agent memories
119
+ */
120
+ searchAgentMemories(agentId: string, query: string, limit?: number): Promise<MemorySearchResult[]>;
121
+ /**
122
+ * Get full agent state for a session
123
+ *
124
+ * @param agentId - Unique agent identifier
125
+ * @param sessionId - Session identifier
126
+ * @returns Agent workflow state
127
+ */
128
+ getAgentState(agentId: string, sessionId: string): Promise<Record<string, any> | null>;
129
+ /**
130
+ * Add temporary session context (auto-expires)
131
+ *
132
+ * @param sessionId - Unique session identifier
133
+ * @param message - Context message
134
+ * @param ttl - Time-to-live in seconds (default: 3600)
135
+ * @returns Memory ID
136
+ */
137
+ addSessionMemory(sessionId: string, message: string, ttl?: number): Promise<string>;
138
+ /**
139
+ * Get full session context (for prompt injection)
140
+ *
141
+ * @param sessionId - Unique session identifier
142
+ * @returns Concatenated session context string
143
+ */
144
+ getSessionContext(sessionId: string): Promise<string>;
145
+ /**
146
+ * Delete all memories for a user (GDPR compliance)
147
+ *
148
+ * @param userId - Unique user identifier
149
+ */
150
+ deleteUserMemories(userId: string): Promise<void>;
151
+ /**
152
+ * Delete all session memories (cleanup)
153
+ *
154
+ * @param sessionId - Session identifier
155
+ */
156
+ deleteSessionMemories(sessionId: string): Promise<void>;
157
+ }
158
+ /**
159
+ * Memory provider interface (for swapping backends)
160
+ */
161
+ export interface MemoryProvider {
162
+ /** Provider name (e.g., 'mem0', 'llamaindex') */
163
+ name: string;
164
+ /** Initialize provider with configuration */
165
+ initialize(config: any): Promise<void>;
166
+ /** Store a memory */
167
+ store(memory: Omit<Memory, 'id' | 'createdAt'>): Promise<string>;
168
+ /** Search memories */
169
+ search(owner: string, query: string, limit: number): Promise<MemorySearchResult[]>;
170
+ /** Retrieve memories */
171
+ retrieve(owner: string, filters?: Record<string, any>): Promise<Memory[]>;
172
+ /** Delete memories */
173
+ delete(owner: string): Promise<void>;
174
+ }
175
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../packages/ai/memory/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Memory Layer Type Definitions
3
+ *
4
+ * Core interfaces for DCYFR memory abstraction layer.
5
+ * Provides type safety for user, agent, and session memory operations.
6
+ *
7
+ * @module @dcyfr/ai/memory/types
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../packages/ai/memory/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
package/package.json CHANGED
@@ -1,10 +1,20 @@
1
1
  {
2
2
  "name": "@dcyfr/ai",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Portable AI agent framework with plugin architecture",
5
5
  "main": "./dist/ai/index.js",
6
6
  "types": "./dist/ai/index.d.ts",
7
7
  "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/ai/index.d.ts",
11
+ "import": "./dist/ai/index.js"
12
+ },
13
+ "./mcp": {
14
+ "types": "./dist/ai/mcp/index.d.ts",
15
+ "import": "./dist/ai/mcp/index.js"
16
+ }
17
+ },
8
18
  "bin": {
9
19
  "dcyfr-ai": "./bin/dcyfr-ai.js",
10
20
  "dcyfr-ai-tui": "./bin/tui.js"
@@ -18,6 +28,14 @@
18
28
  "prepack": "npm run build",
19
29
  "cli": "node bin/cli.js",
20
30
  "tui": "node bin/tui.js",
31
+ "mcp:analytics": "tsx packages/ai/mcp/servers/analytics/index.ts",
32
+ "mcp:tokens": "tsx packages/ai/mcp/servers/design-tokens/index.ts",
33
+ "mcp:content": "tsx packages/ai/mcp/servers/content-manager/index.ts",
34
+ "mcp:promptintel": "tsx packages/ai/mcp/servers/promptintel/index.ts",
35
+ "mcp:dev:analytics": "npx fastmcp dev packages/ai/mcp/servers/analytics/index.ts",
36
+ "mcp:dev:tokens": "npx fastmcp dev packages/ai/mcp/servers/design-tokens/index.ts",
37
+ "mcp:dev:content": "npx fastmcp dev packages/ai/mcp/servers/content-manager/index.ts",
38
+ "mcp:dev:promptintel": "npx fastmcp dev packages/ai/mcp/servers/promptintel/index.ts",
21
39
  "changeset": "changeset",
22
40
  "changeset:version": "changeset version",
23
41
  "changeset:publish": "changeset publish",
@@ -47,9 +65,13 @@
47
65
  },
48
66
  "homepage": "https://github.com/dcyfr/dcyfr-ai#readme",
49
67
  "dependencies": {
68
+ "@upstash/redis": "^1.34.3",
50
69
  "chalk": "^4.1.2",
51
70
  "cli-table3": "^0.6.5",
71
+ "fastmcp": "^3.30.1",
72
+ "gray-matter": "^4.0.3",
52
73
  "inquirer": "^13.2.2",
74
+ "mem0ai": "^2.2.2",
53
75
  "ora": "^9.1.0",
54
76
  "yaml": "^2.3.4",
55
77
  "zod": "^3.22.4"
@@ -59,7 +81,7 @@
59
81
  "@changesets/cli": "^2.29.8",
60
82
  "@types/glob": "^8.1.0",
61
83
  "@types/node": "^20.0.0",
62
- "eslint": "^8.55.0",
84
+ "eslint": "^9.39.2",
63
85
  "typescript": "^5.3.0",
64
86
  "vitest": "^4.0.18"
65
87
  },