@prmichaelsen/remember-core 0.12.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 +100 -0
- package/dist/collections/composite-ids.d.ts +47 -0
- package/dist/collections/composite-ids.d.ts.map +1 -0
- package/dist/collections/composite-ids.js +97 -0
- package/dist/collections/composite-ids.js.map +1 -0
- package/dist/collections/dot-notation.d.ts +37 -0
- package/dist/collections/dot-notation.d.ts.map +1 -0
- package/dist/collections/dot-notation.js +100 -0
- package/dist/collections/dot-notation.js.map +1 -0
- package/dist/collections/index.d.ts +7 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +7 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/tracking-arrays.d.ts +28 -0
- package/dist/collections/tracking-arrays.d.ts.map +1 -0
- package/dist/collections/tracking-arrays.js +67 -0
- package/dist/collections/tracking-arrays.js.map +1 -0
- package/dist/config/debug.d.ts +36 -0
- package/dist/config/debug.d.ts.map +1 -0
- package/dist/config/debug.js +48 -0
- package/dist/config/debug.js.map +1 -0
- package/dist/config/environment.d.ts +71 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +57 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +27 -0
- package/dist/config/index.js.map +1 -0
- package/dist/constants/content-types.d.ts +60 -0
- package/dist/constants/content-types.d.ts.map +1 -0
- package/dist/constants/content-types.js +450 -0
- package/dist/constants/content-types.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/database/firestore/index.d.ts +8 -0
- package/dist/database/firestore/index.d.ts.map +1 -0
- package/dist/database/firestore/index.js +10 -0
- package/dist/database/firestore/index.js.map +1 -0
- package/dist/database/firestore/init.d.ts +51 -0
- package/dist/database/firestore/init.d.ts.map +1 -0
- package/dist/database/firestore/init.js +92 -0
- package/dist/database/firestore/init.js.map +1 -0
- package/dist/database/firestore/paths.d.ts +54 -0
- package/dist/database/firestore/paths.d.ts.map +1 -0
- package/dist/database/firestore/paths.js +103 -0
- package/dist/database/firestore/paths.js.map +1 -0
- package/dist/database/weaviate/client.d.ts +68 -0
- package/dist/database/weaviate/client.d.ts.map +1 -0
- package/dist/database/weaviate/client.js +157 -0
- package/dist/database/weaviate/client.js.map +1 -0
- package/dist/database/weaviate/index.d.ts +6 -0
- package/dist/database/weaviate/index.d.ts.map +1 -0
- package/dist/database/weaviate/index.js +9 -0
- package/dist/database/weaviate/index.js.map +1 -0
- package/dist/database/weaviate/schema.d.ts +22 -0
- package/dist/database/weaviate/schema.d.ts.map +1 -0
- package/dist/database/weaviate/schema.js +50 -0
- package/dist/database/weaviate/schema.js.map +1 -0
- package/dist/database/weaviate/space-schema.d.ts +36 -0
- package/dist/database/weaviate/space-schema.d.ts.map +1 -0
- package/dist/database/weaviate/space-schema.js +65 -0
- package/dist/database/weaviate/space-schema.js.map +1 -0
- package/dist/database/weaviate/v2-collections.d.ts +160 -0
- package/dist/database/weaviate/v2-collections.d.ts.map +1 -0
- package/dist/database/weaviate/v2-collections.js +275 -0
- package/dist/database/weaviate/v2-collections.js.map +1 -0
- package/dist/errors/app-errors.d.ts +64 -0
- package/dist/errors/app-errors.d.ts.map +1 -0
- package/dist/errors/app-errors.js +90 -0
- package/dist/errors/app-errors.js.map +1 -0
- package/dist/errors/base.error.d.ts +15 -0
- package/dist/errors/base.error.d.ts.map +1 -0
- package/dist/errors/base.error.js +25 -0
- package/dist/errors/base.error.js.map +1 -0
- package/dist/errors/index.d.ts +19 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +25 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/services/confirmation-token.service.d.ts +56 -0
- package/dist/services/confirmation-token.service.d.ts.map +1 -0
- package/dist/services/confirmation-token.service.js +118 -0
- package/dist/services/confirmation-token.service.js.map +1 -0
- package/dist/services/credentials-provider.d.ts +25 -0
- package/dist/services/credentials-provider.d.ts.map +1 -0
- package/dist/services/credentials-provider.js +31 -0
- package/dist/services/credentials-provider.js.map +1 -0
- package/dist/services/index.d.ts +11 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +17 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/memory.service.d.ts +129 -0
- package/dist/services/memory.service.d.ts.map +1 -0
- package/dist/services/memory.service.js +294 -0
- package/dist/services/memory.service.js.map +1 -0
- package/dist/services/preferences.service.d.ts +27 -0
- package/dist/services/preferences.service.d.ts.map +1 -0
- package/dist/services/preferences.service.js +106 -0
- package/dist/services/preferences.service.js.map +1 -0
- package/dist/services/relationship.service.d.ts +75 -0
- package/dist/services/relationship.service.d.ts.map +1 -0
- package/dist/services/relationship.service.js +211 -0
- package/dist/services/relationship.service.js.map +1 -0
- package/dist/services/space-config.service.d.ts +22 -0
- package/dist/services/space-config.service.d.ts.map +1 -0
- package/dist/services/space-config.service.js +50 -0
- package/dist/services/space-config.service.js.map +1 -0
- package/dist/services/space.service.d.ts +160 -0
- package/dist/services/space.service.d.ts.map +1 -0
- package/dist/services/space.service.js +815 -0
- package/dist/services/space.service.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/test-data-generator.d.ts +100 -0
- package/dist/testing/test-data-generator.d.ts.map +1 -0
- package/dist/testing/test-data-generator.js +194 -0
- package/dist/testing/test-data-generator.js.map +1 -0
- package/dist/testing/weaviate-mock.d.ts +317 -0
- package/dist/testing/weaviate-mock.d.ts.map +1 -0
- package/dist/testing/weaviate-mock.js +233 -0
- package/dist/testing/weaviate-mock.js.map +1 -0
- package/dist/types/auth.types.d.ts +36 -0
- package/dist/types/auth.types.d.ts.map +1 -0
- package/dist/types/auth.types.js +9 -0
- package/dist/types/auth.types.js.map +1 -0
- package/dist/types/context.types.d.ts +78 -0
- package/dist/types/context.types.d.ts.map +1 -0
- package/dist/types/context.types.js +6 -0
- package/dist/types/context.types.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/llm.types.d.ts +8 -0
- package/dist/types/llm.types.d.ts.map +1 -0
- package/dist/types/llm.types.js +8 -0
- package/dist/types/llm.types.js.map +1 -0
- package/dist/types/memory.types.d.ts +83 -0
- package/dist/types/memory.types.d.ts.map +1 -0
- package/dist/types/memory.types.js +6 -0
- package/dist/types/memory.types.js.map +1 -0
- package/dist/types/preferences.types.d.ts +285 -0
- package/dist/types/preferences.types.d.ts.map +1 -0
- package/dist/types/preferences.types.js +195 -0
- package/dist/types/preferences.types.js.map +1 -0
- package/dist/types/result.types.d.ts +60 -0
- package/dist/types/result.types.d.ts.map +1 -0
- package/dist/types/result.types.js +82 -0
- package/dist/types/result.types.js.map +1 -0
- package/dist/types/search.types.d.ts +49 -0
- package/dist/types/search.types.d.ts.map +1 -0
- package/dist/types/search.types.js +6 -0
- package/dist/types/search.types.js.map +1 -0
- package/dist/types/shared.types.d.ts +91 -0
- package/dist/types/shared.types.d.ts.map +1 -0
- package/dist/types/shared.types.js +57 -0
- package/dist/types/shared.types.js.map +1 -0
- package/dist/types/space.types.d.ts +82 -0
- package/dist/types/space.types.d.ts.map +1 -0
- package/dist/types/space.types.js +18 -0
- package/dist/types/space.types.js.map +1 -0
- package/dist/types/utils.types.d.ts +51 -0
- package/dist/types/utils.types.d.ts.map +1 -0
- package/dist/types/utils.types.js +4 -0
- package/dist/types/utils.types.js.map +1 -0
- package/dist/utils/auth-helpers.d.ts +23 -0
- package/dist/utils/auth-helpers.d.ts.map +1 -0
- package/dist/utils/auth-helpers.js +31 -0
- package/dist/utils/auth-helpers.js.map +1 -0
- package/dist/utils/debug.d.ts +45 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +112 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/error-handler.d.ts +46 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +63 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/filters.d.ts +42 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +132 -0
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +68 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User preferences types for remember-core.
|
|
3
|
+
* Ported from remember-mcp/src/types/preferences.ts
|
|
4
|
+
* Stored in Firestore at users/{userId}/preferences
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Default preferences
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_PREFERENCES = {
|
|
10
|
+
templates: {
|
|
11
|
+
auto_suggest: true,
|
|
12
|
+
suggestion_threshold: 0.6,
|
|
13
|
+
max_suggestions: 3,
|
|
14
|
+
show_preview: true,
|
|
15
|
+
remember_choice: true,
|
|
16
|
+
suppressed_categories: [],
|
|
17
|
+
suppressed_templates: [],
|
|
18
|
+
always_suggest: [],
|
|
19
|
+
},
|
|
20
|
+
search: {
|
|
21
|
+
default_limit: 10,
|
|
22
|
+
include_low_trust: false,
|
|
23
|
+
weight_by_access: true,
|
|
24
|
+
weight_by_recency: true,
|
|
25
|
+
default_alpha: 0.7,
|
|
26
|
+
},
|
|
27
|
+
location: {
|
|
28
|
+
auto_capture: true,
|
|
29
|
+
precision: 'approximate',
|
|
30
|
+
share_with_memories: true,
|
|
31
|
+
},
|
|
32
|
+
privacy: {
|
|
33
|
+
default_trust_level: 0.25,
|
|
34
|
+
allow_cross_user_access: false,
|
|
35
|
+
auto_approve_requests: false,
|
|
36
|
+
audit_logging: true,
|
|
37
|
+
},
|
|
38
|
+
notifications: {
|
|
39
|
+
trust_violations: true,
|
|
40
|
+
access_requests: true,
|
|
41
|
+
memory_reminders: false,
|
|
42
|
+
relationship_suggestions: true,
|
|
43
|
+
},
|
|
44
|
+
display: {
|
|
45
|
+
date_format: 'MM/DD/YYYY',
|
|
46
|
+
time_format: '12h',
|
|
47
|
+
timezone: 'America/Los_Angeles',
|
|
48
|
+
language: 'en',
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Valid preference categories
|
|
53
|
+
*/
|
|
54
|
+
export const PREFERENCE_CATEGORIES = [
|
|
55
|
+
'templates',
|
|
56
|
+
'search',
|
|
57
|
+
'location',
|
|
58
|
+
'privacy',
|
|
59
|
+
'notifications',
|
|
60
|
+
'display',
|
|
61
|
+
];
|
|
62
|
+
/**
|
|
63
|
+
* Preference field descriptions for dynamic tool schema generation
|
|
64
|
+
*/
|
|
65
|
+
export const PREFERENCE_DESCRIPTIONS = {
|
|
66
|
+
templates: {
|
|
67
|
+
auto_suggest: 'Automatically suggest templates when creating memories (default: true)',
|
|
68
|
+
suggestion_threshold: 'Minimum confidence to show template suggestion, 0-1 (default: 0.6)',
|
|
69
|
+
max_suggestions: 'Maximum number of templates to suggest, 1-5 (default: 3)',
|
|
70
|
+
show_preview: 'Show template preview in suggestion (default: true)',
|
|
71
|
+
remember_choice: 'Remember "don\'t suggest for this type" choices (default: true)',
|
|
72
|
+
suppressed_categories: 'Categories to never suggest templates for (default: [])',
|
|
73
|
+
suppressed_templates: 'Specific templates to never suggest (default: [])',
|
|
74
|
+
always_suggest: 'Templates to always suggest regardless of confidence (default: [])',
|
|
75
|
+
},
|
|
76
|
+
search: {
|
|
77
|
+
default_limit: 'Default number of search results to return, 1-100 (default: 10)',
|
|
78
|
+
include_low_trust: 'Include low-trust memories in search results (default: false)',
|
|
79
|
+
weight_by_access: 'Use access count in search ranking (default: true)',
|
|
80
|
+
weight_by_recency: 'Use recency in search ranking (default: true)',
|
|
81
|
+
default_alpha: 'Default hybrid search alpha (0=keyword, 1=semantic, default: 0.7)',
|
|
82
|
+
},
|
|
83
|
+
location: {
|
|
84
|
+
auto_capture: 'Automatically capture location for memories (default: true)',
|
|
85
|
+
precision: 'Location precision level: exact, approximate, city, none (default: approximate)',
|
|
86
|
+
share_with_memories: 'Include location data in memories (default: true)',
|
|
87
|
+
},
|
|
88
|
+
privacy: {
|
|
89
|
+
default_trust_level: 'Default trust level for new memories, 0-1 (default: 0.25)',
|
|
90
|
+
allow_cross_user_access: 'Allow other users to request access to memories (default: false)',
|
|
91
|
+
auto_approve_requests: 'Automatically approve access requests (default: false)',
|
|
92
|
+
audit_logging: 'Enable audit logging for preference changes (default: true)',
|
|
93
|
+
},
|
|
94
|
+
notifications: {
|
|
95
|
+
trust_violations: 'Notify on trust violations (default: true)',
|
|
96
|
+
access_requests: 'Notify on access requests from other users (default: true)',
|
|
97
|
+
memory_reminders: 'Send reminders about important memories (default: false)',
|
|
98
|
+
relationship_suggestions: 'Suggest new relationships between memories (default: true)',
|
|
99
|
+
},
|
|
100
|
+
display: {
|
|
101
|
+
date_format: 'Date format string (default: MM/DD/YYYY)',
|
|
102
|
+
time_format: 'Time format: 12h or 24h (default: 12h)',
|
|
103
|
+
timezone: 'Timezone identifier (default: America/Los_Angeles)',
|
|
104
|
+
language: 'Language code (default: en)',
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Generate dynamic preference description for tool schema
|
|
109
|
+
*/
|
|
110
|
+
export function getPreferenceDescription() {
|
|
111
|
+
const categories = Object.entries(PREFERENCE_DESCRIPTIONS)
|
|
112
|
+
.map(([category, fields]) => {
|
|
113
|
+
const fieldList = Object.entries(fields)
|
|
114
|
+
.map(([field, desc]) => ` - ${field}: ${desc}`)
|
|
115
|
+
.join('\n');
|
|
116
|
+
return `${category}:\n${fieldList}`;
|
|
117
|
+
})
|
|
118
|
+
.join('\n\n');
|
|
119
|
+
return `User preferences control system behavior. Available preference categories and fields:\n\n${categories}`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Generate JSON schema for preferences
|
|
123
|
+
*/
|
|
124
|
+
export function getPreferencesSchema() {
|
|
125
|
+
return {
|
|
126
|
+
type: 'object',
|
|
127
|
+
properties: {
|
|
128
|
+
templates: {
|
|
129
|
+
type: 'object',
|
|
130
|
+
description: 'Template suggestion preferences',
|
|
131
|
+
properties: {
|
|
132
|
+
auto_suggest: { type: 'boolean' },
|
|
133
|
+
suggestion_threshold: { type: 'number', minimum: 0, maximum: 1 },
|
|
134
|
+
max_suggestions: { type: 'number', minimum: 1, maximum: 5 },
|
|
135
|
+
show_preview: { type: 'boolean' },
|
|
136
|
+
remember_choice: { type: 'boolean' },
|
|
137
|
+
suppressed_categories: { type: 'array', items: { type: 'string' } },
|
|
138
|
+
suppressed_templates: { type: 'array', items: { type: 'string' } },
|
|
139
|
+
always_suggest: { type: 'array', items: { type: 'string' } },
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
search: {
|
|
143
|
+
type: 'object',
|
|
144
|
+
description: 'Search behavior preferences',
|
|
145
|
+
properties: {
|
|
146
|
+
default_limit: { type: 'number', minimum: 1, maximum: 100 },
|
|
147
|
+
include_low_trust: { type: 'boolean' },
|
|
148
|
+
weight_by_access: { type: 'boolean' },
|
|
149
|
+
weight_by_recency: { type: 'boolean' },
|
|
150
|
+
default_alpha: { type: 'number', minimum: 0, maximum: 1 },
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
location: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
description: 'Location capture preferences',
|
|
156
|
+
properties: {
|
|
157
|
+
auto_capture: { type: 'boolean' },
|
|
158
|
+
precision: { type: 'string', enum: ['exact', 'approximate', 'city', 'none'] },
|
|
159
|
+
share_with_memories: { type: 'boolean' },
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
privacy: {
|
|
163
|
+
type: 'object',
|
|
164
|
+
description: 'Privacy and trust preferences',
|
|
165
|
+
properties: {
|
|
166
|
+
default_trust_level: { type: 'number', minimum: 0, maximum: 1 },
|
|
167
|
+
allow_cross_user_access: { type: 'boolean' },
|
|
168
|
+
auto_approve_requests: { type: 'boolean' },
|
|
169
|
+
audit_logging: { type: 'boolean' },
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
notifications: {
|
|
173
|
+
type: 'object',
|
|
174
|
+
description: 'Notification preferences',
|
|
175
|
+
properties: {
|
|
176
|
+
trust_violations: { type: 'boolean' },
|
|
177
|
+
access_requests: { type: 'boolean' },
|
|
178
|
+
memory_reminders: { type: 'boolean' },
|
|
179
|
+
relationship_suggestions: { type: 'boolean' },
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
display: {
|
|
183
|
+
type: 'object',
|
|
184
|
+
description: 'Display format preferences',
|
|
185
|
+
properties: {
|
|
186
|
+
date_format: { type: 'string' },
|
|
187
|
+
time_format: { type: 'string', enum: ['12h', '24h'] },
|
|
188
|
+
timezone: { type: 'string' },
|
|
189
|
+
language: { type: 'string' },
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=preferences.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preferences.types.js","sourceRoot":"","sources":["../../src/types/preferences.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a successful result containing a value of type T
|
|
3
|
+
*/
|
|
4
|
+
export interface Ok<T> {
|
|
5
|
+
readonly success: true;
|
|
6
|
+
readonly value: T;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Represents a failed result containing an error of type E
|
|
10
|
+
*/
|
|
11
|
+
export interface Err<E> {
|
|
12
|
+
readonly success: false;
|
|
13
|
+
readonly error: E;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A value that is either Ok<T> or Err<E>.
|
|
17
|
+
* Use for operations where failure is expected and callers must handle both cases.
|
|
18
|
+
*/
|
|
19
|
+
export type Result<T, E = Error> = Ok<T> | Err<E>;
|
|
20
|
+
/**
|
|
21
|
+
* Construct a successful result
|
|
22
|
+
*/
|
|
23
|
+
export declare function ok<T>(value: T): Ok<T>;
|
|
24
|
+
/**
|
|
25
|
+
* Construct a failed result
|
|
26
|
+
*/
|
|
27
|
+
export declare function err<E>(error: E): Err<E>;
|
|
28
|
+
/**
|
|
29
|
+
* Type guard: checks if a Result is successful
|
|
30
|
+
*/
|
|
31
|
+
export declare function isOk<T, E>(result: Result<T, E>): result is Ok<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Type guard: checks if a Result is a failure
|
|
34
|
+
*/
|
|
35
|
+
export declare function isErr<T, E>(result: Result<T, E>): result is Err<E>;
|
|
36
|
+
/**
|
|
37
|
+
* Apply a transform to the Ok value, passing Err through unchanged
|
|
38
|
+
*/
|
|
39
|
+
export declare function mapOk<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
40
|
+
/**
|
|
41
|
+
* Apply a transform to the Err value, passing Ok through unchanged
|
|
42
|
+
*/
|
|
43
|
+
export declare function mapErr<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
|
|
44
|
+
/**
|
|
45
|
+
* Chain two Result-returning operations
|
|
46
|
+
*/
|
|
47
|
+
export declare function andThen<T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
|
|
48
|
+
/**
|
|
49
|
+
* Unwrap the Ok value or return a default
|
|
50
|
+
*/
|
|
51
|
+
export declare function getOrElse<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
52
|
+
/**
|
|
53
|
+
* Wrap a synchronous function that might throw into one returning a Result
|
|
54
|
+
*/
|
|
55
|
+
export declare function tryCatch<T, E = Error>(fn: () => T, onError: (e: unknown) => E): Result<T, E>;
|
|
56
|
+
/**
|
|
57
|
+
* Wrap an async function that might throw into one returning a Result
|
|
58
|
+
*/
|
|
59
|
+
export declare function tryCatchAsync<T, E = Error>(fn: () => Promise<T>, onError: (e: unknown) => E): Promise<Result<T, E>>;
|
|
60
|
+
//# sourceMappingURL=result.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.types.d.ts","sourceRoot":"","sources":["../../src/types/result.types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAElD;;GAEG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAErC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAEhE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAElE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKd;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKd;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKd;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EACnC,EAAE,EAAE,MAAM,CAAC,EACX,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,GACzB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMd;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAC9C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAMvB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// src/types/result.types.ts
|
|
2
|
+
// Pattern: Result Types (core-sdk.types-result.md)
|
|
3
|
+
/**
|
|
4
|
+
* Construct a successful result
|
|
5
|
+
*/
|
|
6
|
+
export function ok(value) {
|
|
7
|
+
return { success: true, value };
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Construct a failed result
|
|
11
|
+
*/
|
|
12
|
+
export function err(error) {
|
|
13
|
+
return { success: false, error };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type guard: checks if a Result is successful
|
|
17
|
+
*/
|
|
18
|
+
export function isOk(result) {
|
|
19
|
+
return result.success === true;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Type guard: checks if a Result is a failure
|
|
23
|
+
*/
|
|
24
|
+
export function isErr(result) {
|
|
25
|
+
return result.success === false;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Apply a transform to the Ok value, passing Err through unchanged
|
|
29
|
+
*/
|
|
30
|
+
export function mapOk(result, fn) {
|
|
31
|
+
if (isOk(result)) {
|
|
32
|
+
return ok(fn(result.value));
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Apply a transform to the Err value, passing Ok through unchanged
|
|
38
|
+
*/
|
|
39
|
+
export function mapErr(result, fn) {
|
|
40
|
+
if (isErr(result)) {
|
|
41
|
+
return err(fn(result.error));
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Chain two Result-returning operations
|
|
47
|
+
*/
|
|
48
|
+
export function andThen(result, fn) {
|
|
49
|
+
if (isOk(result)) {
|
|
50
|
+
return fn(result.value);
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Unwrap the Ok value or return a default
|
|
56
|
+
*/
|
|
57
|
+
export function getOrElse(result, defaultValue) {
|
|
58
|
+
return isOk(result) ? result.value : defaultValue;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Wrap a synchronous function that might throw into one returning a Result
|
|
62
|
+
*/
|
|
63
|
+
export function tryCatch(fn, onError) {
|
|
64
|
+
try {
|
|
65
|
+
return ok(fn());
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
return err(onError(e));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Wrap an async function that might throw into one returning a Result
|
|
73
|
+
*/
|
|
74
|
+
export async function tryCatchAsync(fn, onError) {
|
|
75
|
+
try {
|
|
76
|
+
return ok(await fn());
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
return err(onError(e));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=result.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.types.js","sourceRoot":"","sources":["../../src/types/result.types.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,mDAAmD;AAwBnD;;GAEG;AACH,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAO,MAAoB;IAC7C,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAO,MAAoB;IAC9C,OAAO,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CACnB,MAAoB,EACpB,EAAmB;IAEnB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,MAAoB,EACpB,EAAmB;IAEnB,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,MAAoB,EACpB,EAA8B;IAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAO,MAAoB,EAAE,YAAe;IACnE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,EAAW,EACX,OAA0B;IAE1B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAoB,EACpB,OAA0B;IAE1B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search-related types for remember-core.
|
|
3
|
+
* Ported from remember-mcp/src/types/memory.ts
|
|
4
|
+
*/
|
|
5
|
+
import type { GPSCoordinates } from './context.types.js';
|
|
6
|
+
import type { ContentType, Memory, Relationship } from './memory.types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Search filters
|
|
9
|
+
*/
|
|
10
|
+
export interface SearchFilters {
|
|
11
|
+
types?: ContentType[];
|
|
12
|
+
tags?: string[];
|
|
13
|
+
weight_min?: number;
|
|
14
|
+
weight_max?: number;
|
|
15
|
+
trust_min?: number;
|
|
16
|
+
trust_max?: number;
|
|
17
|
+
date_from?: string;
|
|
18
|
+
date_to?: string;
|
|
19
|
+
location_near?: GPSCoordinates;
|
|
20
|
+
location_radius_meters?: number;
|
|
21
|
+
has_relationships?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deleted filter type
|
|
25
|
+
*/
|
|
26
|
+
export type DeletedFilter = 'exclude' | 'include' | 'only';
|
|
27
|
+
/**
|
|
28
|
+
* Search options
|
|
29
|
+
*/
|
|
30
|
+
export interface SearchOptions {
|
|
31
|
+
query: string;
|
|
32
|
+
alpha?: number;
|
|
33
|
+
filters?: SearchFilters;
|
|
34
|
+
include_relationships?: boolean;
|
|
35
|
+
deleted_filter?: DeletedFilter;
|
|
36
|
+
limit?: number;
|
|
37
|
+
offset?: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Search result
|
|
41
|
+
*/
|
|
42
|
+
export interface SearchResult {
|
|
43
|
+
memories: Memory[];
|
|
44
|
+
relationships?: Relationship[];
|
|
45
|
+
total: number;
|
|
46
|
+
offset: number;
|
|
47
|
+
limit: number;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=search.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.types.d.ts","sourceRoot":"","sources":["../../src/types/search.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.types.js","sourceRoot":"","sources":["../../src/types/search.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
declare const __brand: unique symbol;
|
|
2
|
+
type Brand<T, B> = T & {
|
|
3
|
+
[__brand]: B;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* A user's unique identifier.
|
|
7
|
+
* Prevents mixing raw strings with user IDs at compile time.
|
|
8
|
+
*/
|
|
9
|
+
export type UserId = Brand<string, 'UserId'>;
|
|
10
|
+
/**
|
|
11
|
+
* An email address (validated format).
|
|
12
|
+
*/
|
|
13
|
+
export type EmailAddress = Brand<string, 'EmailAddress'>;
|
|
14
|
+
/**
|
|
15
|
+
* An ISO 8601 timestamp string.
|
|
16
|
+
*/
|
|
17
|
+
export type Timestamp = Brand<string, 'Timestamp'>;
|
|
18
|
+
/**
|
|
19
|
+
* Cast a raw string to UserId.
|
|
20
|
+
* Validates the string is non-empty; throws otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare function toUserId(value: string): UserId;
|
|
23
|
+
/**
|
|
24
|
+
* Cast a raw string to EmailAddress.
|
|
25
|
+
* Validates basic email format; throws otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export declare function toEmailAddress(value: string): EmailAddress;
|
|
28
|
+
/**
|
|
29
|
+
* Cast a raw string to Timestamp.
|
|
30
|
+
* Validates it is a parseable date; throws otherwise.
|
|
31
|
+
*/
|
|
32
|
+
export declare function toTimestamp(value: string): Timestamp;
|
|
33
|
+
/**
|
|
34
|
+
* Internal User entity (as stored in the database).
|
|
35
|
+
* Never expose this directly in API responses — use UserDTO instead.
|
|
36
|
+
*/
|
|
37
|
+
export interface User {
|
|
38
|
+
id: UserId;
|
|
39
|
+
email: EmailAddress;
|
|
40
|
+
name: string;
|
|
41
|
+
role: 'admin' | 'member' | 'viewer';
|
|
42
|
+
createdAt: Timestamp;
|
|
43
|
+
updatedAt: Timestamp;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Input for creating a new user.
|
|
47
|
+
*/
|
|
48
|
+
export interface CreateUserInput {
|
|
49
|
+
email: string;
|
|
50
|
+
name: string;
|
|
51
|
+
role?: 'admin' | 'member' | 'viewer';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Input for listing users with optional filtering.
|
|
55
|
+
*/
|
|
56
|
+
export interface ListUsersInput {
|
|
57
|
+
role?: 'admin' | 'member' | 'viewer';
|
|
58
|
+
cursor?: string;
|
|
59
|
+
limit?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* User data as returned in API responses.
|
|
63
|
+
* Omits sensitive fields; adds computed display fields.
|
|
64
|
+
*/
|
|
65
|
+
export interface UserDTO {
|
|
66
|
+
id: string;
|
|
67
|
+
email: string;
|
|
68
|
+
name: string;
|
|
69
|
+
role: string;
|
|
70
|
+
createdAt: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Transform an internal User entity to a UserDTO for API responses.
|
|
74
|
+
* Co-located with the type so the transformation is always in sync.
|
|
75
|
+
*/
|
|
76
|
+
export declare function toUserDTO(user: User): UserDTO;
|
|
77
|
+
/**
|
|
78
|
+
* A paginated list of items with cursor-based navigation.
|
|
79
|
+
*/
|
|
80
|
+
export interface PaginatedResult<T> {
|
|
81
|
+
items: T[];
|
|
82
|
+
total: number;
|
|
83
|
+
cursor: string | null;
|
|
84
|
+
hasMore: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create a PaginatedResult from a list of items.
|
|
88
|
+
*/
|
|
89
|
+
export declare function createPaginatedResult<T>(items: T[], total: number, cursor: string | null): PaginatedResult<T>;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=shared.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.types.d.ts","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"AAKA,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AACrC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAK1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAKpD;AAID;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQ7C;AAID;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,eAAe,CAAC,CAAC,CAAC,CAOpB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// src/types/shared.types.ts
|
|
2
|
+
// Pattern: Shared Types (core-sdk.types-shared.md)
|
|
3
|
+
/**
|
|
4
|
+
* Cast a raw string to UserId.
|
|
5
|
+
* Validates the string is non-empty; throws otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export function toUserId(value) {
|
|
8
|
+
if (!value || value.trim().length === 0) {
|
|
9
|
+
throw new Error('UserId must be a non-empty string');
|
|
10
|
+
}
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Cast a raw string to EmailAddress.
|
|
15
|
+
* Validates basic email format; throws otherwise.
|
|
16
|
+
*/
|
|
17
|
+
export function toEmailAddress(value) {
|
|
18
|
+
if (!value.includes('@')) {
|
|
19
|
+
throw new Error(`Invalid email address: ${value}`);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Cast a raw string to Timestamp.
|
|
25
|
+
* Validates it is a parseable date; throws otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export function toTimestamp(value) {
|
|
28
|
+
if (isNaN(Date.parse(value))) {
|
|
29
|
+
throw new Error(`Invalid timestamp: ${value}`);
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Transform an internal User entity to a UserDTO for API responses.
|
|
35
|
+
* Co-located with the type so the transformation is always in sync.
|
|
36
|
+
*/
|
|
37
|
+
export function toUserDTO(user) {
|
|
38
|
+
return {
|
|
39
|
+
id: user.id,
|
|
40
|
+
email: user.email,
|
|
41
|
+
name: user.name,
|
|
42
|
+
role: user.role,
|
|
43
|
+
createdAt: user.createdAt,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create a PaginatedResult from a list of items.
|
|
48
|
+
*/
|
|
49
|
+
export function createPaginatedResult(items, total, cursor) {
|
|
50
|
+
return {
|
|
51
|
+
items,
|
|
52
|
+
total,
|
|
53
|
+
cursor,
|
|
54
|
+
hasMore: cursor !== null,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=shared.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.types.js","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,mDAAmD;AAuBnD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAqB,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAkB,CAAC;AAC5B,CAAC;AAmDD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAcD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAU,EACV,KAAa,EACb,MAAqB;IAErB,OAAO;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO,EAAE,MAAM,KAAK,IAAI;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Space Memory type definitions for remember-core.
|
|
3
|
+
* Ported from remember-mcp/src/types/space-memory.ts
|
|
4
|
+
*
|
|
5
|
+
* Space memories are memories published to shared collections
|
|
6
|
+
* where they can be discovered by other users.
|
|
7
|
+
*/
|
|
8
|
+
import type { Memory } from './memory.types.js';
|
|
9
|
+
import type { SearchOptions, SearchResult } from './search.types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Space memory - a memory published to a shared space.
|
|
12
|
+
* Extends Memory with additional fields for attribution and discovery.
|
|
13
|
+
*/
|
|
14
|
+
export interface SpaceMemory extends Omit<Memory, 'user_id' | 'doc_type'> {
|
|
15
|
+
/**
|
|
16
|
+
* Spaces this memory is published to (snake_case array).
|
|
17
|
+
* Examples: ['the_void'], ['dogs', 'cats'], ['the_void', 'dogs']
|
|
18
|
+
*
|
|
19
|
+
* A memory can belong to multiple spaces simultaneously.
|
|
20
|
+
*/
|
|
21
|
+
spaces: string[];
|
|
22
|
+
/**
|
|
23
|
+
* Original author's user_id (for permissions).
|
|
24
|
+
* This is private and not shown publicly.
|
|
25
|
+
*/
|
|
26
|
+
author_id: string;
|
|
27
|
+
/**
|
|
28
|
+
* Optional ghost profile ID for pseudonymous publishing.
|
|
29
|
+
* If present, memory is attributed to ghost instead of user.
|
|
30
|
+
*/
|
|
31
|
+
ghost_id?: string;
|
|
32
|
+
/**
|
|
33
|
+
* When the memory was published to the space.
|
|
34
|
+
*/
|
|
35
|
+
published_at: string;
|
|
36
|
+
/**
|
|
37
|
+
* How many times this memory has been discovered/viewed.
|
|
38
|
+
*/
|
|
39
|
+
discovery_count: number;
|
|
40
|
+
/**
|
|
41
|
+
* Attribution type.
|
|
42
|
+
* - 'user': Published as the user (shows author_id)
|
|
43
|
+
* - 'ghost': Published as a ghost (shows ghost_id)
|
|
44
|
+
*/
|
|
45
|
+
attribution: 'user' | 'ghost';
|
|
46
|
+
/**
|
|
47
|
+
* Document type discriminator.
|
|
48
|
+
* Always 'space_memory' for space memories.
|
|
49
|
+
*/
|
|
50
|
+
doc_type: 'space_memory';
|
|
51
|
+
deleted_at?: Date | null;
|
|
52
|
+
deleted_by?: string;
|
|
53
|
+
deletion_reason?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Search options for space memories.
|
|
57
|
+
* Same as SearchOptions but for space collections.
|
|
58
|
+
*/
|
|
59
|
+
export interface SpaceSearchOptions extends Omit<SearchOptions, 'include_relationships'> {
|
|
60
|
+
/** Space to search */
|
|
61
|
+
space: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Search result for space memories.
|
|
65
|
+
*/
|
|
66
|
+
export interface SpaceSearchResult extends Omit<SearchResult, 'memories' | 'relationships'> {
|
|
67
|
+
/** Found space memories */
|
|
68
|
+
space_memories: SpaceMemory[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Supported space IDs
|
|
72
|
+
*/
|
|
73
|
+
export type SpaceId = 'the_void';
|
|
74
|
+
/**
|
|
75
|
+
* Space display names mapped to IDs
|
|
76
|
+
*/
|
|
77
|
+
export declare const SPACE_DISPLAY_NAMES: Record<SpaceId, string>;
|
|
78
|
+
/**
|
|
79
|
+
* Supported spaces constant
|
|
80
|
+
*/
|
|
81
|
+
export declare const SUPPORTED_SPACES: SpaceId[];
|
|
82
|
+
//# sourceMappingURL=space.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space.types.d.ts","sourceRoot":"","sources":["../../src/types/space.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IACvE;;;;;OAKG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;OAGG;IACH,QAAQ,EAAE,cAAc,CAAC;IAGzB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,uBAAuB,CAAC;IACtF,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,eAAe,CAAC;IACzF,2BAA2B;IAC3B,cAAc,EAAE,WAAW,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAEvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAAiB,CAAC"}
|