@memo-code/memo 0.8.5 → 0.8.7

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 (97) hide show
  1. package/dist/web/server/main.cjs +145359 -0
  2. package/package.json +2 -1
  3. package/dist/web/server/app.controller.d.ts +0 -6
  4. package/dist/web/server/app.controller.js +0 -33
  5. package/dist/web/server/app.module.d.ts +0 -4
  6. package/dist/web/server/app.module.js +0 -61
  7. package/dist/web/server/auth/access-token.guard.d.ts +0 -9
  8. package/dist/web/server/auth/access-token.guard.js +0 -53
  9. package/dist/web/server/auth/auth.controller.d.ts +0 -18
  10. package/dist/web/server/auth/auth.controller.js +0 -75
  11. package/dist/web/server/auth/auth.module.d.ts +0 -2
  12. package/dist/web/server/auth/auth.module.js +0 -24
  13. package/dist/web/server/auth/auth.service.d.ts +0 -15
  14. package/dist/web/server/auth/auth.service.js +0 -146
  15. package/dist/web/server/auth/auth.types.d.ts +0 -26
  16. package/dist/web/server/auth/auth.types.js +0 -2
  17. package/dist/web/server/auth/public.decorator.d.ts +0 -2
  18. package/dist/web/server/auth/public.decorator.js +0 -7
  19. package/dist/web/server/chat/chat.controller.d.ts +0 -30
  20. package/dist/web/server/chat/chat.controller.js +0 -150
  21. package/dist/web/server/chat/chat.module.d.ts +0 -2
  22. package/dist/web/server/chat/chat.module.js +0 -26
  23. package/dist/web/server/chat/chat.service.d.ts +0 -61
  24. package/dist/web/server/chat/chat.service.js +0 -847
  25. package/dist/web/server/chat/chat.types.d.ts +0 -38
  26. package/dist/web/server/chat/chat.types.js +0 -2
  27. package/dist/web/server/common/constants.d.ts +0 -1
  28. package/dist/web/server/common/constants.js +0 -4
  29. package/dist/web/server/common/filters/api-error.filter.d.ts +0 -7
  30. package/dist/web/server/common/filters/api-error.filter.js +0 -95
  31. package/dist/web/server/common/interceptors/api-response.interceptor.d.ts +0 -15
  32. package/dist/web/server/common/interceptors/api-response.interceptor.js +0 -51
  33. package/dist/web/server/common/middleware/request-logging.middleware.d.ts +0 -7
  34. package/dist/web/server/common/middleware/request-logging.middleware.js +0 -42
  35. package/dist/web/server/config/memo-config.service.d.ts +0 -7
  36. package/dist/web/server/config/memo-config.service.js +0 -106
  37. package/dist/web/server/config/memo-config.types.d.ts +0 -6
  38. package/dist/web/server/config/memo-config.types.js +0 -2
  39. package/dist/web/server/config/server-config.module.d.ts +0 -2
  40. package/dist/web/server/config/server-config.module.js +0 -22
  41. package/dist/web/server/config/server-config.service.d.ts +0 -14
  42. package/dist/web/server/config/server-config.service.js +0 -326
  43. package/dist/web/server/config/server-config.service.test.d.ts +0 -1
  44. package/dist/web/server/config/server-config.service.test.js +0 -193
  45. package/dist/web/server/config/server-config.types.d.ts +0 -27
  46. package/dist/web/server/config/server-config.types.js +0 -2
  47. package/dist/web/server/main.d.ts +0 -1
  48. package/dist/web/server/main.js +0 -19
  49. package/dist/web/server/mcp/mcp.controller.d.ts +0 -38
  50. package/dist/web/server/mcp/mcp.controller.js +0 -126
  51. package/dist/web/server/mcp/mcp.module.d.ts +0 -2
  52. package/dist/web/server/mcp/mcp.module.js +0 -22
  53. package/dist/web/server/mcp/mcp.service.d.ts +0 -25
  54. package/dist/web/server/mcp/mcp.service.js +0 -56
  55. package/dist/web/server/server.d.ts +0 -18
  56. package/dist/web/server/server.js +0 -142
  57. package/dist/web/server/sessions/sessions.controller.d.ts +0 -8
  58. package/dist/web/server/sessions/sessions.controller.js +0 -59
  59. package/dist/web/server/sessions/sessions.module.d.ts +0 -2
  60. package/dist/web/server/sessions/sessions.module.js +0 -24
  61. package/dist/web/server/sessions/sessions.service.d.ts +0 -22
  62. package/dist/web/server/sessions/sessions.service.js +0 -217
  63. package/dist/web/server/sessions/sessions.types.d.ts +0 -18
  64. package/dist/web/server/sessions/sessions.types.js +0 -2
  65. package/dist/web/server/skills/skills.controller.d.ts +0 -31
  66. package/dist/web/server/skills/skills.controller.js +0 -86
  67. package/dist/web/server/skills/skills.module.d.ts +0 -2
  68. package/dist/web/server/skills/skills.module.js +0 -24
  69. package/dist/web/server/skills/skills.service.d.ts +0 -38
  70. package/dist/web/server/skills/skills.service.js +0 -97
  71. package/dist/web/server/stream/stream.module.d.ts +0 -2
  72. package/dist/web/server/stream/stream.module.js +0 -20
  73. package/dist/web/server/stream/stream.service.d.ts +0 -26
  74. package/dist/web/server/stream/stream.service.js +0 -166
  75. package/dist/web/server/tsconfig.build.tsbuildinfo +0 -1
  76. package/dist/web/server/workspaces/workspaces.module.d.ts +0 -2
  77. package/dist/web/server/workspaces/workspaces.module.js +0 -20
  78. package/dist/web/server/workspaces/workspaces.service.d.ts +0 -38
  79. package/dist/web/server/workspaces/workspaces.service.js +0 -378
  80. package/dist/web/server/workspaces/workspaces.types.d.ts +0 -1
  81. package/dist/web/server/workspaces/workspaces.types.js +0 -2
  82. package/dist/web/server/workspaces/workspaces.utils.d.ts +0 -1
  83. package/dist/web/server/workspaces/workspaces.utils.js +0 -9
  84. package/dist/web/server/ws/rpc-router.service.d.ts +0 -20
  85. package/dist/web/server/ws/rpc-router.service.js +0 -275
  86. package/dist/web/server/ws/session-runtime-registry.service.d.ts +0 -37
  87. package/dist/web/server/ws/session-runtime-registry.service.js +0 -118
  88. package/dist/web/server/ws/ws-event-bus.service.d.ts +0 -5
  89. package/dist/web/server/ws/ws-event-bus.service.js +0 -27
  90. package/dist/web/server/ws/ws-gateway.module.d.ts +0 -2
  91. package/dist/web/server/ws/ws-gateway.module.js +0 -42
  92. package/dist/web/server/ws/ws-gateway.service.d.ts +0 -42
  93. package/dist/web/server/ws/ws-gateway.service.js +0 -473
  94. package/dist/web/server/ws/ws.errors.d.ts +0 -8
  95. package/dist/web/server/ws/ws.errors.js +0 -16
  96. package/dist/web/server/ws/ws.types.d.ts +0 -34
  97. package/dist/web/server/ws/ws.types.js +0 -2
@@ -1,38 +0,0 @@
1
- import type { FileSuggestion, LiveSessionState, SessionRuntimeBadge, SessionTurnStep } from '@memo-code/core';
2
- export type ChatSnapshotTurn = {
3
- turn: number;
4
- input: string;
5
- assistant: string;
6
- status: string;
7
- errorMessage?: string;
8
- steps?: SessionTurnStep[];
9
- };
10
- export type ChatSessionSnapshot = {
11
- state: LiveSessionState;
12
- turns: ChatSnapshotTurn[];
13
- };
14
- export type CreateLiveSessionInput = {
15
- providerName?: string;
16
- workspaceId?: string;
17
- cwd?: string;
18
- toolPermissionMode?: 'none' | 'once' | 'full';
19
- activeMcpServers?: string[];
20
- };
21
- export type ChatProviderRecord = {
22
- name: string;
23
- model: string;
24
- isCurrent: boolean;
25
- };
26
- export type SessionInputResult = {
27
- accepted: boolean;
28
- kind: 'turn' | 'command';
29
- status: 'ok' | 'error' | 'cancelled';
30
- message?: string;
31
- };
32
- export type ChatRuntimeListResponse = {
33
- items: SessionRuntimeBadge[];
34
- };
35
- export type ChatFileSuggestionsResponse = {
36
- items: FileSuggestion[];
37
- };
38
- export type { LiveSessionState };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- export declare const REQUEST_ID_HEADER = "x-request-id";
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REQUEST_ID_HEADER = void 0;
4
- exports.REQUEST_ID_HEADER = 'x-request-id';
@@ -1,7 +0,0 @@
1
- import { ArgumentsHost, ExceptionFilter } from '@nestjs/common';
2
- export declare class ApiErrorFilter implements ExceptionFilter {
3
- private readonly logger;
4
- catch(exception: unknown, host: ArgumentsHost): void;
5
- private parseHttpException;
6
- private normalizeMessage;
7
- }
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var ApiErrorFilter_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ApiErrorFilter = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const constants_1 = require("../constants");
13
- let ApiErrorFilter = ApiErrorFilter_1 = class ApiErrorFilter {
14
- logger = new common_1.Logger(ApiErrorFilter_1.name);
15
- catch(exception, host) {
16
- const http = host.switchToHttp();
17
- const request = http.getRequest();
18
- const response = http.getResponse();
19
- const requestId = request.requestId ||
20
- (typeof response.locals?.requestId === 'string'
21
- ? response.locals.requestId
22
- : undefined) ||
23
- (typeof response.getHeader(constants_1.REQUEST_ID_HEADER) === 'string'
24
- ? response.getHeader(constants_1.REQUEST_ID_HEADER)
25
- : undefined) ||
26
- 'unknown';
27
- let statusCode = common_1.HttpStatus.INTERNAL_SERVER_ERROR;
28
- let payload = {
29
- code: 'INTERNAL_SERVER_ERROR',
30
- message: 'Internal server error',
31
- };
32
- if (exception instanceof common_1.HttpException) {
33
- statusCode = exception.getStatus();
34
- payload = this.parseHttpException(exception, statusCode);
35
- }
36
- else if (exception instanceof Error) {
37
- payload = {
38
- code: 'INTERNAL_SERVER_ERROR',
39
- message: exception.message || 'Internal server error',
40
- };
41
- }
42
- this.logger.error(`${request.method} ${request.originalUrl} -> ${statusCode} reqId=${requestId} message="${payload.message}"`, exception instanceof Error ? exception.stack : undefined);
43
- response.status(statusCode).json({
44
- success: false,
45
- error: payload,
46
- meta: {
47
- requestId,
48
- timestamp: new Date().toISOString(),
49
- path: request.originalUrl,
50
- },
51
- });
52
- }
53
- parseHttpException(exception, statusCode) {
54
- const fallbackCode = typeof common_1.HttpStatus[statusCode] === 'string'
55
- ? String(common_1.HttpStatus[statusCode])
56
- : 'HTTP_EXCEPTION';
57
- const fallbackMessage = exception.message || 'Request failed';
58
- const response = exception.getResponse();
59
- if (typeof response === 'string') {
60
- return {
61
- code: fallbackCode,
62
- message: response,
63
- };
64
- }
65
- if (!response || typeof response !== 'object') {
66
- return {
67
- code: fallbackCode,
68
- message: fallbackMessage,
69
- };
70
- }
71
- const record = response;
72
- const message = this.normalizeMessage(record.message) ?? fallbackMessage;
73
- const code = typeof record.code === 'string' ? record.code : fallbackCode;
74
- const details = record.details;
75
- return {
76
- code,
77
- message,
78
- ...(details === undefined ? {} : { details }),
79
- };
80
- }
81
- normalizeMessage(raw) {
82
- if (typeof raw === 'string')
83
- return raw;
84
- if (Array.isArray(raw)) {
85
- const items = raw.filter((item) => typeof item === 'string');
86
- if (items.length > 0)
87
- return items.join('; ');
88
- }
89
- return null;
90
- }
91
- };
92
- exports.ApiErrorFilter = ApiErrorFilter;
93
- exports.ApiErrorFilter = ApiErrorFilter = ApiErrorFilter_1 = __decorate([
94
- (0, common_1.Catch)()
95
- ], ApiErrorFilter);
@@ -1,15 +0,0 @@
1
- import { CallHandler, ExecutionContext, NestInterceptor, StreamableFile } from '@nestjs/common';
2
- import { type Observable } from 'rxjs';
3
- type ApiSuccessMeta = {
4
- requestId: string;
5
- timestamp: string;
6
- };
7
- type ApiSuccessEnvelope<T> = {
8
- success: true;
9
- data: T;
10
- meta: ApiSuccessMeta;
11
- };
12
- export declare class ApiResponseInterceptor<T> implements NestInterceptor<T, ApiSuccessEnvelope<T> | StreamableFile> {
13
- intercept(context: ExecutionContext, next: CallHandler<T>): Observable<ApiSuccessEnvelope<T> | StreamableFile>;
14
- }
15
- export {};
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ApiResponseInterceptor = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const rxjs_1 = require("rxjs");
12
- const constants_1 = require("../constants");
13
- function resolveRequestId(request, response) {
14
- if (request.requestId && request.requestId.trim().length > 0)
15
- return request.requestId;
16
- const fromLocals = response.locals
17
- ?.requestId;
18
- if (typeof fromLocals === 'string' && fromLocals.trim().length > 0)
19
- return fromLocals;
20
- const fromHeader = response.getHeader(constants_1.REQUEST_ID_HEADER);
21
- if (typeof fromHeader === 'string' && fromHeader.trim().length > 0)
22
- return fromHeader;
23
- return 'unknown';
24
- }
25
- let ApiResponseInterceptor = class ApiResponseInterceptor {
26
- intercept(context, next) {
27
- if (context.getType() !== 'http') {
28
- return next.handle();
29
- }
30
- const http = context.switchToHttp();
31
- const request = http.getRequest();
32
- const response = http.getResponse();
33
- const requestId = resolveRequestId(request, response);
34
- return next.handle().pipe((0, rxjs_1.map)((data) => {
35
- if (data instanceof common_1.StreamableFile)
36
- return data;
37
- return {
38
- success: true,
39
- data: (data ?? null),
40
- meta: {
41
- requestId,
42
- timestamp: new Date().toISOString(),
43
- },
44
- };
45
- }));
46
- }
47
- };
48
- exports.ApiResponseInterceptor = ApiResponseInterceptor;
49
- exports.ApiResponseInterceptor = ApiResponseInterceptor = __decorate([
50
- (0, common_1.Injectable)()
51
- ], ApiResponseInterceptor);
@@ -1,7 +0,0 @@
1
- import { type NestMiddleware } from '@nestjs/common';
2
- import type { NextFunction, Response } from 'express';
3
- import type { AuthenticatedRequest } from '../../auth/auth.types';
4
- export declare class RequestLoggingMiddleware implements NestMiddleware {
5
- private readonly logger;
6
- use(request: AuthenticatedRequest, response: Response, next: NextFunction): void;
7
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RequestLoggingMiddleware = void 0;
10
- const node_crypto_1 = require("node:crypto");
11
- const common_1 = require("@nestjs/common");
12
- const constants_1 = require("../constants");
13
- function readHeaderValue(value) {
14
- if (!value)
15
- return null;
16
- if (Array.isArray(value)) {
17
- const first = value[0]?.trim();
18
- return first && first.length > 0 ? first : null;
19
- }
20
- const trimmed = value.trim();
21
- return trimmed.length > 0 ? trimmed : null;
22
- }
23
- let RequestLoggingMiddleware = class RequestLoggingMiddleware {
24
- logger = new common_1.Logger('HTTP');
25
- use(request, response, next) {
26
- const existingRequestId = readHeaderValue(request.headers[constants_1.REQUEST_ID_HEADER]);
27
- const requestId = existingRequestId ?? (0, node_crypto_1.randomUUID)();
28
- const startedAt = Date.now();
29
- request.requestId = requestId;
30
- response.locals.requestId = requestId;
31
- response.setHeader(constants_1.REQUEST_ID_HEADER, requestId);
32
- response.on('finish', () => {
33
- const durationMs = Date.now() - startedAt;
34
- this.logger.log(`${request.method} ${request.originalUrl} ${response.statusCode} ${durationMs}ms reqId=${requestId}`);
35
- });
36
- next();
37
- }
38
- };
39
- exports.RequestLoggingMiddleware = RequestLoggingMiddleware;
40
- exports.RequestLoggingMiddleware = RequestLoggingMiddleware = __decorate([
41
- (0, common_1.Injectable)()
42
- ], RequestLoggingMiddleware);
@@ -1,7 +0,0 @@
1
- import type { MemoRuntimeConfig } from './memo-config.types';
2
- export declare class MemoConfigService {
3
- private readonly configPath;
4
- getConfigPath(): string;
5
- load(): Promise<MemoRuntimeConfig>;
6
- setActiveMcpServers(names: string[]): Promise<void>;
7
- }
@@ -1,106 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.MemoConfigService = void 0;
10
- const node_os_1 = require("node:os");
11
- const node_path_1 = require("node:path");
12
- const common_1 = require("@nestjs/common");
13
- const core_1 = require("@memo-code/core");
14
- const DEFAULT_PROVIDER = {
15
- name: 'deepseek',
16
- env_api_key: 'DEEPSEEK_API_KEY',
17
- model: 'deepseek-chat',
18
- base_url: 'https://api.deepseek.com',
19
- };
20
- function expandHome(path) {
21
- if (!path.startsWith('~'))
22
- return path;
23
- return (0, node_path_1.join)((0, node_os_1.homedir)(), path.slice(1));
24
- }
25
- function resolveMemoHome() {
26
- const memoHome = process.env.MEMO_HOME;
27
- if (!memoHome)
28
- return (0, node_path_1.join)((0, node_os_1.homedir)(), '.memo');
29
- return expandHome(memoHome);
30
- }
31
- function readNonEmptyString(value) {
32
- if (typeof value !== 'string')
33
- return undefined;
34
- const trimmed = value.trim();
35
- return trimmed.length > 0 ? trimmed : undefined;
36
- }
37
- function normalizeProviders(input) {
38
- if (!Array.isArray(input)) {
39
- return [DEFAULT_PROVIDER];
40
- }
41
- const providers = [];
42
- for (const item of input) {
43
- if (!item || typeof item !== 'object' || Array.isArray(item))
44
- continue;
45
- const record = item;
46
- const name = readNonEmptyString(record.name);
47
- if (!name)
48
- continue;
49
- providers.push({
50
- name,
51
- env_api_key: readNonEmptyString(record.env_api_key) ?? DEFAULT_PROVIDER.env_api_key,
52
- model: readNonEmptyString(record.model) ?? DEFAULT_PROVIDER.model,
53
- base_url: readNonEmptyString(record.base_url),
54
- });
55
- }
56
- return providers.length > 0 ? providers : [DEFAULT_PROVIDER];
57
- }
58
- function normalizeCurrentProvider(currentProvider, providers) {
59
- const current = readNonEmptyString(currentProvider);
60
- if (current && providers.some((provider) => provider.name === current)) {
61
- return current;
62
- }
63
- return providers[0]?.name ?? DEFAULT_PROVIDER.name;
64
- }
65
- function normalizeActiveMcpServers(input) {
66
- if (!Array.isArray(input))
67
- return [];
68
- return Array.from(new Set(input
69
- .filter((item) => typeof item === 'string')
70
- .map((item) => item.trim())
71
- .filter(Boolean)));
72
- }
73
- function normalizeMcpServers(input) {
74
- if (!input || typeof input !== 'object' || Array.isArray(input)) {
75
- return {};
76
- }
77
- return input;
78
- }
79
- let MemoConfigService = class MemoConfigService {
80
- configPath = (0, node_path_1.join)(resolveMemoHome(), 'config.toml');
81
- getConfigPath() {
82
- return this.configPath;
83
- }
84
- async load() {
85
- const loaded = await (0, core_1.loadMemoConfig)();
86
- const providers = normalizeProviders(loaded.config.providers);
87
- return {
88
- current_provider: normalizeCurrentProvider(loaded.config.current_provider, providers),
89
- providers,
90
- mcp_servers: normalizeMcpServers(loaded.config.mcp_servers),
91
- active_mcp_servers: normalizeActiveMcpServers(loaded.config.active_mcp_servers),
92
- };
93
- }
94
- async setActiveMcpServers(names) {
95
- const loaded = await (0, core_1.loadMemoConfig)();
96
- const nextConfig = {
97
- ...loaded.config,
98
- active_mcp_servers: normalizeActiveMcpServers(names),
99
- };
100
- await (0, core_1.writeMemoConfig)(loaded.configPath, nextConfig);
101
- }
102
- };
103
- exports.MemoConfigService = MemoConfigService;
104
- exports.MemoConfigService = MemoConfigService = __decorate([
105
- (0, common_1.Injectable)()
106
- ], MemoConfigService);
@@ -1,6 +0,0 @@
1
- import type { MCPServerConfig as MemoMcpServerConfig, MemoConfig, ProviderConfig as MemoProviderConfig } from '@memo-code/core';
2
- export type { MemoMcpServerConfig, MemoProviderConfig };
3
- export type MemoRuntimeConfig = Pick<MemoConfig, 'current_provider' | 'providers'> & {
4
- mcp_servers: Record<string, MemoMcpServerConfig>;
5
- active_mcp_servers: string[];
6
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- export declare class ServerConfigModule {
2
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ServerConfigModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const memo_config_service_1 = require("./memo-config.service");
12
- const server_config_service_1 = require("./server-config.service");
13
- let ServerConfigModule = class ServerConfigModule {
14
- };
15
- exports.ServerConfigModule = ServerConfigModule;
16
- exports.ServerConfigModule = ServerConfigModule = __decorate([
17
- (0, common_1.Global)(),
18
- (0, common_1.Module)({
19
- providers: [server_config_service_1.ServerConfigService, memo_config_service_1.MemoConfigService],
20
- exports: [server_config_service_1.ServerConfigService, memo_config_service_1.MemoConfigService],
21
- })
22
- ], ServerConfigModule);
@@ -1,14 +0,0 @@
1
- import type { ServerRuntimeConfig } from './server-config.types';
2
- export declare class ServerConfigService {
3
- private readonly logger;
4
- private configPath;
5
- private config;
6
- load(): Promise<ServerRuntimeConfig>;
7
- getConfigPath(): string;
8
- getLoadedConfig(): ServerRuntimeConfig;
9
- updateConfig(mutator: (config: ServerRuntimeConfig) => ServerRuntimeConfig): Promise<ServerRuntimeConfig>;
10
- private readOrCreateConfig;
11
- private createDefaultConfig;
12
- private normalizeParsedConfig;
13
- private writeConfig;
14
- }