@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,19 @@
|
|
|
1
|
+
export { AppError } from './base.error.js';
|
|
2
|
+
export type { ErrorKind, ErrorContext } from './base.error.js';
|
|
3
|
+
export { ValidationError, NotFoundError, UnauthorizedError, ForbiddenError, ConflictError, RateLimitError, ExternalError, InternalError, } from './app-errors.js';
|
|
4
|
+
import { ValidationError, NotFoundError, UnauthorizedError, ForbiddenError, ConflictError, RateLimitError, ExternalError, InternalError } from './app-errors.js';
|
|
5
|
+
/**
|
|
6
|
+
* Union of all typed application errors.
|
|
7
|
+
* Use this in catch blocks and Result<T, E> type parameters.
|
|
8
|
+
*/
|
|
9
|
+
export type AppErrorUnion = ValidationError | NotFoundError | UnauthorizedError | ForbiddenError | ConflictError | RateLimitError | ExternalError | InternalError;
|
|
10
|
+
/**
|
|
11
|
+
* HTTP status codes for each error kind.
|
|
12
|
+
* Use in REST adapters to map errors to responses.
|
|
13
|
+
*/
|
|
14
|
+
export declare const HTTP_STATUS: Record<AppErrorUnion['kind'], number>;
|
|
15
|
+
/**
|
|
16
|
+
* Type guard: checks if a value is a typed AppError
|
|
17
|
+
*/
|
|
18
|
+
export declare function isAppError(value: unknown): value is AppErrorUnion;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,cAAc,GACd,aAAa,GACb,aAAa,CAAC;AAElB;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAS7D,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEjE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/errors/index.ts
|
|
2
|
+
// Pattern: Error Types (core-sdk.types-error.md)
|
|
3
|
+
export { AppError } from './base.error.js';
|
|
4
|
+
export { ValidationError, NotFoundError, UnauthorizedError, ForbiddenError, ConflictError, RateLimitError, ExternalError, InternalError, } from './app-errors.js';
|
|
5
|
+
/**
|
|
6
|
+
* HTTP status codes for each error kind.
|
|
7
|
+
* Use in REST adapters to map errors to responses.
|
|
8
|
+
*/
|
|
9
|
+
export const HTTP_STATUS = {
|
|
10
|
+
validation: 400,
|
|
11
|
+
unauthorized: 401,
|
|
12
|
+
forbidden: 403,
|
|
13
|
+
not_found: 404,
|
|
14
|
+
conflict: 409,
|
|
15
|
+
rate_limit: 429,
|
|
16
|
+
external: 502,
|
|
17
|
+
internal: 500,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Type guard: checks if a value is a typed AppError
|
|
21
|
+
*/
|
|
22
|
+
export function isAppError(value) {
|
|
23
|
+
return value instanceof Error && 'kind' in value;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,iDAAiD;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,iBAAiB,CAAC;AA2BzB;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA0C;IAChE,UAAU,EAAI,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAK,GAAG;IACjB,SAAS,EAAK,GAAG;IACjB,QAAQ,EAAM,GAAG;IACjB,UAAU,EAAI,GAAG;IACjB,QAAQ,EAAM,GAAG;IACjB,QAAQ,EAAM,GAAG;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACnD,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './types/index.js';
|
|
2
|
+
export * from './constants/index.js';
|
|
3
|
+
export * from './config/index.js';
|
|
4
|
+
export * from './errors/index.js';
|
|
5
|
+
export * from './collections/index.js';
|
|
6
|
+
export * from './utils/index.js';
|
|
7
|
+
export * from './services/index.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @prmichaelsen/remember-core — root barrel export
|
|
2
|
+
export * from './types/index.js';
|
|
3
|
+
export * from './constants/index.js';
|
|
4
|
+
export * from './config/index.js';
|
|
5
|
+
export * from './errors/index.js';
|
|
6
|
+
export * from './collections/index.js';
|
|
7
|
+
export * from './utils/index.js';
|
|
8
|
+
export * from './services/index.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Confirmation Token Service.
|
|
3
|
+
*
|
|
4
|
+
* Ported from remember-mcp/src/services/confirmation-token.service.ts.
|
|
5
|
+
* Manages confirmation tokens for sensitive operations.
|
|
6
|
+
* Tokens are one-time use with 5-minute expiry.
|
|
7
|
+
*/
|
|
8
|
+
import type { Logger } from '../utils/logger.js';
|
|
9
|
+
/**
|
|
10
|
+
* Confirmation request stored in Firestore.
|
|
11
|
+
*/
|
|
12
|
+
export interface ConfirmationRequest {
|
|
13
|
+
user_id: string;
|
|
14
|
+
token: string;
|
|
15
|
+
action: string;
|
|
16
|
+
target_collection?: string;
|
|
17
|
+
payload: any;
|
|
18
|
+
created_at: string;
|
|
19
|
+
expires_at: string;
|
|
20
|
+
status: 'pending' | 'confirmed' | 'denied' | 'expired' | 'retracted';
|
|
21
|
+
confirmed_at?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class ConfirmationTokenService {
|
|
24
|
+
private readonly EXPIRY_MINUTES;
|
|
25
|
+
private logger;
|
|
26
|
+
constructor(logger: Logger);
|
|
27
|
+
/**
|
|
28
|
+
* Create a new confirmation request.
|
|
29
|
+
*/
|
|
30
|
+
createRequest(userId: string, action: string, payload: any, targetCollection?: string): Promise<{
|
|
31
|
+
requestId: string;
|
|
32
|
+
token: string;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Validate and retrieve a confirmation request.
|
|
36
|
+
*/
|
|
37
|
+
validateToken(userId: string, token: string): Promise<(ConfirmationRequest & {
|
|
38
|
+
request_id: string;
|
|
39
|
+
}) | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Confirm a request.
|
|
42
|
+
*/
|
|
43
|
+
confirmRequest(userId: string, token: string): Promise<(ConfirmationRequest & {
|
|
44
|
+
request_id: string;
|
|
45
|
+
}) | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Deny a request.
|
|
48
|
+
*/
|
|
49
|
+
denyRequest(userId: string, token: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Retract a request.
|
|
52
|
+
*/
|
|
53
|
+
retractRequest(userId: string, token: string): Promise<boolean>;
|
|
54
|
+
private updateStatus;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=confirmation-token.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-token.service.d.ts","sourceRoot":"","sources":["../../src/services/confirmation-token.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAK;IACpC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EACZ,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAwChD;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,mBAAmB,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IA6BjE;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,mBAAmB,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAQjE;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOlE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAOvD,YAAY;CAY3B"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Confirmation Token Service.
|
|
3
|
+
*
|
|
4
|
+
* Ported from remember-mcp/src/services/confirmation-token.service.ts.
|
|
5
|
+
* Manages confirmation tokens for sensitive operations.
|
|
6
|
+
* Tokens are one-time use with 5-minute expiry.
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID } from 'crypto';
|
|
9
|
+
import { addDocument, updateDocument, queryDocuments, } from '../database/firestore/init.js';
|
|
10
|
+
export class ConfirmationTokenService {
|
|
11
|
+
EXPIRY_MINUTES = 5;
|
|
12
|
+
logger;
|
|
13
|
+
constructor(logger) {
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a new confirmation request.
|
|
18
|
+
*/
|
|
19
|
+
async createRequest(userId, action, payload, targetCollection) {
|
|
20
|
+
try {
|
|
21
|
+
const token = randomUUID();
|
|
22
|
+
const now = new Date();
|
|
23
|
+
const expiresAt = new Date(now.getTime() + this.EXPIRY_MINUTES * 60 * 1000);
|
|
24
|
+
const request = {
|
|
25
|
+
user_id: userId,
|
|
26
|
+
token,
|
|
27
|
+
action,
|
|
28
|
+
target_collection: targetCollection,
|
|
29
|
+
payload,
|
|
30
|
+
created_at: now.toISOString(),
|
|
31
|
+
expires_at: expiresAt.toISOString(),
|
|
32
|
+
status: 'pending',
|
|
33
|
+
};
|
|
34
|
+
const collectionPath = `users/${userId}/requests`;
|
|
35
|
+
const docRef = await addDocument(collectionPath, request);
|
|
36
|
+
if (!docRef?.id) {
|
|
37
|
+
throw new Error('Firestore addDocument returned invalid reference');
|
|
38
|
+
}
|
|
39
|
+
this.logger.info('Confirmation request created', {
|
|
40
|
+
service: 'ConfirmationTokenService',
|
|
41
|
+
requestId: docRef.id,
|
|
42
|
+
expiresAt: request.expires_at,
|
|
43
|
+
});
|
|
44
|
+
return { requestId: docRef.id, token };
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
this.logger.error('Failed to create confirmation request', {
|
|
48
|
+
service: 'ConfirmationTokenService',
|
|
49
|
+
error: error instanceof Error ? error.message : String(error),
|
|
50
|
+
});
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Validate and retrieve a confirmation request.
|
|
56
|
+
*/
|
|
57
|
+
async validateToken(userId, token) {
|
|
58
|
+
const collectionPath = `users/${userId}/requests`;
|
|
59
|
+
const queryOptions = {
|
|
60
|
+
where: [
|
|
61
|
+
{ field: 'token', op: '==', value: token },
|
|
62
|
+
{ field: 'status', op: '==', value: 'pending' },
|
|
63
|
+
],
|
|
64
|
+
limit: 1,
|
|
65
|
+
};
|
|
66
|
+
const results = await queryDocuments(collectionPath, queryOptions);
|
|
67
|
+
if (results.length === 0) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const doc = results[0];
|
|
71
|
+
const request = doc.data;
|
|
72
|
+
const expiresAt = new Date(request.expires_at);
|
|
73
|
+
if (expiresAt.getTime() < Date.now()) {
|
|
74
|
+
await this.updateStatus(userId, doc.id, 'expired');
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return { ...request, request_id: doc.id };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Confirm a request.
|
|
81
|
+
*/
|
|
82
|
+
async confirmRequest(userId, token) {
|
|
83
|
+
const request = await this.validateToken(userId, token);
|
|
84
|
+
if (!request)
|
|
85
|
+
return null;
|
|
86
|
+
await this.updateStatus(userId, request.request_id, 'confirmed');
|
|
87
|
+
return { ...request, status: 'confirmed', confirmed_at: new Date().toISOString() };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Deny a request.
|
|
91
|
+
*/
|
|
92
|
+
async denyRequest(userId, token) {
|
|
93
|
+
const request = await this.validateToken(userId, token);
|
|
94
|
+
if (!request)
|
|
95
|
+
return false;
|
|
96
|
+
await this.updateStatus(userId, request.request_id, 'denied');
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Retract a request.
|
|
101
|
+
*/
|
|
102
|
+
async retractRequest(userId, token) {
|
|
103
|
+
const request = await this.validateToken(userId, token);
|
|
104
|
+
if (!request)
|
|
105
|
+
return false;
|
|
106
|
+
await this.updateStatus(userId, request.request_id, 'retracted');
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
async updateStatus(userId, requestId, status) {
|
|
110
|
+
const collectionPath = `users/${userId}/requests`;
|
|
111
|
+
const updateData = { status };
|
|
112
|
+
if (status === 'confirmed') {
|
|
113
|
+
updateData.confirmed_at = new Date().toISOString();
|
|
114
|
+
}
|
|
115
|
+
await updateDocument(collectionPath, requestId, updateData);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=confirmation-token.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-token.service.js","sourceRoot":"","sources":["../../src/services/confirmation-token.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credentials Provider.
|
|
3
|
+
*
|
|
4
|
+
* Ported from remember-mcp/src/services/credentials-provider.ts.
|
|
5
|
+
* Resolves user credentials (group memberships, permissions) from an access token.
|
|
6
|
+
* Currently uses a stub implementation; future: HTTP provider.
|
|
7
|
+
*/
|
|
8
|
+
import type { CredentialsProvider, UserCredentials } from '../types/auth.types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Stub credentials provider — returns empty group memberships.
|
|
11
|
+
* Used until an HTTP-based provider is wired up.
|
|
12
|
+
*/
|
|
13
|
+
export declare class StubCredentialsProvider implements CredentialsProvider {
|
|
14
|
+
getCredentials(_accessToken: string, userId: string): Promise<UserCredentials>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Factory to create the appropriate credentials provider.
|
|
18
|
+
* Future: reads config to pick stub vs HTTP implementation.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createCredentialsProvider(): CredentialsProvider;
|
|
21
|
+
/**
|
|
22
|
+
* Singleton credentials provider instance.
|
|
23
|
+
*/
|
|
24
|
+
export declare const credentialsProvider: CredentialsProvider;
|
|
25
|
+
//# sourceMappingURL=credentials-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials-provider.d.ts","sourceRoot":"","sources":["../../src/services/credentials-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEnF;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAC3D,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAMrF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,qBAA8B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credentials Provider.
|
|
3
|
+
*
|
|
4
|
+
* Ported from remember-mcp/src/services/credentials-provider.ts.
|
|
5
|
+
* Resolves user credentials (group memberships, permissions) from an access token.
|
|
6
|
+
* Currently uses a stub implementation; future: HTTP provider.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Stub credentials provider — returns empty group memberships.
|
|
10
|
+
* Used until an HTTP-based provider is wired up.
|
|
11
|
+
*/
|
|
12
|
+
export class StubCredentialsProvider {
|
|
13
|
+
async getCredentials(_accessToken, userId) {
|
|
14
|
+
return {
|
|
15
|
+
user_id: userId,
|
|
16
|
+
group_memberships: [],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Factory to create the appropriate credentials provider.
|
|
22
|
+
* Future: reads config to pick stub vs HTTP implementation.
|
|
23
|
+
*/
|
|
24
|
+
export function createCredentialsProvider() {
|
|
25
|
+
return new StubCredentialsProvider();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Singleton credentials provider instance.
|
|
29
|
+
*/
|
|
30
|
+
export const credentialsProvider = createCredentialsProvider();
|
|
31
|
+
//# sourceMappingURL=credentials-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials-provider.js","sourceRoot":"","sources":["../../src/services/credentials-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAClC,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,MAAc;QACvD,OAAO;YACL,OAAO,EAAE,MAAM;YACf,iBAAiB,EAAE,EAAE;SACtB,CAAC;IACJ,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,uBAAuB,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Services module barrel exports.
|
|
3
|
+
*/
|
|
4
|
+
export { PreferencesDatabaseService } from './preferences.service.js';
|
|
5
|
+
export { ConfirmationTokenService, type ConfirmationRequest, } from './confirmation-token.service.js';
|
|
6
|
+
export { StubCredentialsProvider, createCredentialsProvider, credentialsProvider, } from './credentials-provider.js';
|
|
7
|
+
export { getSpaceConfig, setSpaceConfig, DEFAULT_SPACE_CONFIG, type SpaceConfig, } from './space-config.service.js';
|
|
8
|
+
export { MemoryService, type CreateMemoryInput, type CreateMemoryResult, type SearchMemoryInput, type SearchMemoryResult, type FindSimilarInput, type FindSimilarResult, type SimilarMemoryItem, type QueryMemoryInput, type QueryMemoryResult, type RelevantMemoryItem, type UpdateMemoryInput, type UpdateMemoryResult, type DeleteMemoryInput, type DeleteMemoryResult, } from './memory.service.js';
|
|
9
|
+
export { RelationshipService, type CreateRelationshipInput, type CreateRelationshipResult, type UpdateRelationshipInput, type UpdateRelationshipResult, type SearchRelationshipInput, type SearchRelationshipResult, type DeleteRelationshipInput, type DeleteRelationshipResult, } from './relationship.service.js';
|
|
10
|
+
export { SpaceService, type PublishInput, type PublishResult, type RetractInput, type RetractResult, type ReviseInput, type ReviseResult, type ConfirmInput, type ConfirmResult, type DenyInput, type DenyResult, type ModerateInput, type ModerateResult, type SearchSpaceInput, type SearchSpaceResult, type QuerySpaceInput, type QuerySpaceResult, type ModerationAction, type ModerationFilter, type RevisionEntry, type RevisionResult, buildModerationFilter, parseRevisionHistory, buildRevisionHistory, } from './space.service.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EACL,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,KAAK,WAAW,GACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Services module barrel exports.
|
|
3
|
+
*/
|
|
4
|
+
// Scaffolded base (keep for future use)
|
|
5
|
+
// export type { Logger } from './base.service.js';
|
|
6
|
+
// export { BaseService } from './base.service.js';
|
|
7
|
+
// export type { UserRepository } from './user.service.js';
|
|
8
|
+
// export { UserService } from './user.service.js';
|
|
9
|
+
// Ported services
|
|
10
|
+
export { PreferencesDatabaseService } from './preferences.service.js';
|
|
11
|
+
export { ConfirmationTokenService, } from './confirmation-token.service.js';
|
|
12
|
+
export { StubCredentialsProvider, createCredentialsProvider, credentialsProvider, } from './credentials-provider.js';
|
|
13
|
+
export { getSpaceConfig, setSpaceConfig, DEFAULT_SPACE_CONFIG, } from './space-config.service.js';
|
|
14
|
+
export { MemoryService, } from './memory.service.js';
|
|
15
|
+
export { RelationshipService, } from './relationship.service.js';
|
|
16
|
+
export { SpaceService, buildModerationFilter, parseRevisionHistory, buildRevisionHistory, } from './space.service.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wCAAwC;AACxC,mDAAmD;AACnD,mDAAmD;AACnD,2DAA2D;AAC3D,mDAAmD;AAEnD,kBAAkB;AAClB,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EACL,wBAAwB,GAEzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,GAErB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,aAAa,GAed,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,GASpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,YAAY,EAqBZ,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryService — unified CRUD + search for user memories.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from 6 remember-mcp tool handlers:
|
|
5
|
+
* create-memory.ts, search-memory.ts, find-similar.ts,
|
|
6
|
+
* query-memory.ts, update-memory.ts, delete-memory.ts
|
|
7
|
+
*
|
|
8
|
+
* Design: accepts Weaviate collection + Logger via constructor. No MCP-specific code.
|
|
9
|
+
*/
|
|
10
|
+
import type { Logger } from '../utils/logger.js';
|
|
11
|
+
import type { SearchFilters } from '../types/search.types.js';
|
|
12
|
+
import type { ContentType } from '../types/index.js';
|
|
13
|
+
import { type DeletedFilter } from '../utils/filters.js';
|
|
14
|
+
export interface CreateMemoryInput {
|
|
15
|
+
content: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
type?: ContentType;
|
|
18
|
+
weight?: number;
|
|
19
|
+
trust?: number;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
references?: string[];
|
|
22
|
+
template_id?: string;
|
|
23
|
+
parent_id?: string | null;
|
|
24
|
+
thread_root_id?: string | null;
|
|
25
|
+
moderation_flags?: string[];
|
|
26
|
+
context_summary?: string;
|
|
27
|
+
context_conversation_id?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CreateMemoryResult {
|
|
30
|
+
memory_id: string;
|
|
31
|
+
created_at: string;
|
|
32
|
+
}
|
|
33
|
+
export interface SearchMemoryInput {
|
|
34
|
+
query: string;
|
|
35
|
+
alpha?: number;
|
|
36
|
+
limit?: number;
|
|
37
|
+
offset?: number;
|
|
38
|
+
filters?: SearchFilters;
|
|
39
|
+
include_relationships?: boolean;
|
|
40
|
+
deleted_filter?: DeletedFilter;
|
|
41
|
+
}
|
|
42
|
+
export interface SearchMemoryResult {
|
|
43
|
+
memories: Record<string, unknown>[];
|
|
44
|
+
relationships?: Record<string, unknown>[];
|
|
45
|
+
total: number;
|
|
46
|
+
offset: number;
|
|
47
|
+
limit: number;
|
|
48
|
+
}
|
|
49
|
+
export interface FindSimilarInput {
|
|
50
|
+
memory_id?: string;
|
|
51
|
+
text?: string;
|
|
52
|
+
limit?: number;
|
|
53
|
+
min_similarity?: number;
|
|
54
|
+
include_relationships?: boolean;
|
|
55
|
+
deleted_filter?: DeletedFilter;
|
|
56
|
+
}
|
|
57
|
+
export interface SimilarMemoryItem {
|
|
58
|
+
id: string;
|
|
59
|
+
similarity: number;
|
|
60
|
+
[key: string]: unknown;
|
|
61
|
+
}
|
|
62
|
+
export interface FindSimilarResult {
|
|
63
|
+
similar_memories: SimilarMemoryItem[];
|
|
64
|
+
total: number;
|
|
65
|
+
}
|
|
66
|
+
export interface QueryMemoryInput {
|
|
67
|
+
query: string;
|
|
68
|
+
limit?: number;
|
|
69
|
+
min_relevance?: number;
|
|
70
|
+
filters?: SearchFilters;
|
|
71
|
+
deleted_filter?: DeletedFilter;
|
|
72
|
+
}
|
|
73
|
+
export interface RelevantMemoryItem {
|
|
74
|
+
id: string;
|
|
75
|
+
relevance: number;
|
|
76
|
+
[key: string]: unknown;
|
|
77
|
+
}
|
|
78
|
+
export interface QueryMemoryResult {
|
|
79
|
+
memories: RelevantMemoryItem[];
|
|
80
|
+
total: number;
|
|
81
|
+
}
|
|
82
|
+
export interface UpdateMemoryInput {
|
|
83
|
+
memory_id: string;
|
|
84
|
+
content?: string;
|
|
85
|
+
title?: string;
|
|
86
|
+
type?: string;
|
|
87
|
+
weight?: number;
|
|
88
|
+
trust?: number;
|
|
89
|
+
tags?: string[];
|
|
90
|
+
references?: string[];
|
|
91
|
+
parent_id?: string | null;
|
|
92
|
+
thread_root_id?: string | null;
|
|
93
|
+
moderation_flags?: string[];
|
|
94
|
+
}
|
|
95
|
+
export interface UpdateMemoryResult {
|
|
96
|
+
memory_id: string;
|
|
97
|
+
updated_at: string;
|
|
98
|
+
version: number;
|
|
99
|
+
updated_fields: string[];
|
|
100
|
+
}
|
|
101
|
+
export interface DeleteMemoryInput {
|
|
102
|
+
memory_id: string;
|
|
103
|
+
reason?: string;
|
|
104
|
+
}
|
|
105
|
+
export interface DeleteMemoryResult {
|
|
106
|
+
memory_id: string;
|
|
107
|
+
deleted_at: string;
|
|
108
|
+
orphaned_relationship_ids: string[];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* MemoryService provides transport-agnostic memory CRUD + search operations.
|
|
112
|
+
*
|
|
113
|
+
* @param collection - A Weaviate collection instance for the user (Memory_users_{userId})
|
|
114
|
+
* @param userId - The owner user ID
|
|
115
|
+
* @param logger - Logger instance
|
|
116
|
+
*/
|
|
117
|
+
export declare class MemoryService {
|
|
118
|
+
private collection;
|
|
119
|
+
private userId;
|
|
120
|
+
private logger;
|
|
121
|
+
constructor(collection: any, userId: string, logger: Logger);
|
|
122
|
+
create(input: CreateMemoryInput): Promise<CreateMemoryResult>;
|
|
123
|
+
search(input: SearchMemoryInput): Promise<SearchMemoryResult>;
|
|
124
|
+
findSimilar(input: FindSimilarInput): Promise<FindSimilarResult>;
|
|
125
|
+
query(input: QueryMemoryInput): Promise<QueryMemoryResult>;
|
|
126
|
+
update(input: UpdateMemoryInput): Promise<UpdateMemoryResult>;
|
|
127
|
+
delete(input: DeleteMemoryInput): Promise<DeleteMemoryResult>;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=memory.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../src/services/memory.service.ts"],"names":[],"mappings":"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"}
|