mnemosyne-core 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,115 @@
1
+ import * as node_events from 'node:events';
2
+ import * as node_stream_promises from 'node:stream/promises';
3
+ import * as node_stream from 'node:stream';
4
+ import * as node_stream_web from 'node:stream/web';
5
+ import * as node_http from 'node:http';
6
+ import { C as Config, S as Store, f as Project, c as Atom } from './Store-BtdYuiUx.js';
7
+
8
+ /**
9
+ * Mnemosyne Configuration
10
+ * Loads config.yaml with a minimal parser. Supports env overrides.
11
+ */
12
+
13
+ declare function loadConfig(configPath?: string, baseDir?: string): Config;
14
+ declare class MnemosyneConfig {
15
+ readonly config: Config;
16
+ private baseDir;
17
+ constructor(options?: {
18
+ configPath?: string;
19
+ baseDir?: string;
20
+ overrides?: Partial<Config>;
21
+ });
22
+ get dbPath(): string;
23
+ get filesDir(): string;
24
+ get backupsDir(): string;
25
+ get baseDirPath(): string;
26
+ }
27
+
28
+ /**
29
+ * Mnemosyne Core Engine
30
+ * Main orchestrator class. Owns lifecycle (init, close).
31
+ * Store owns SQLite operations. Config owns settings.
32
+ */
33
+
34
+ interface MnemosyneOptions {
35
+ dbPath?: string;
36
+ configPath?: string;
37
+ baseDir?: string;
38
+ autoBackup?: boolean;
39
+ }
40
+ declare class Mnemosyne {
41
+ store: Store;
42
+ config: MnemosyneConfig;
43
+ vecEnabled: boolean;
44
+ private db;
45
+ constructor(options?: MnemosyneOptions);
46
+ init(): Promise<void>;
47
+ close(): Promise<void>;
48
+ createProject(name: string, description?: string): Project;
49
+ createAtom(projectId: string, title: string, type: string, createdBy: string, opts?: Parameters<Store["createAtom"]>[4]): Atom;
50
+ }
51
+
52
+ interface ServerOptions {
53
+ port?: number;
54
+ host?: string;
55
+ dashboard?: boolean;
56
+ mcp?: boolean;
57
+ websocket?: boolean;
58
+ }
59
+ declare class MnemosyneServer {
60
+ store: Store;
61
+ private api;
62
+ private wsHandler?;
63
+ private httpServer;
64
+ private brain?;
65
+ constructor(options?: ServerOptions, brain?: Mnemosyne);
66
+ private serveDashboard;
67
+ getHandler(): node_http.Server<typeof node_http.IncomingMessage, {
68
+ new (req: node_http.IncomingMessage): node_http.ServerResponse<node_http.IncomingMessage>;
69
+ fromWeb(writableStream: node_stream_web.WritableStream, options?: Pick<node_stream.WritableOptions, "decodeStrings" | "highWaterMark" | "objectMode" | "signal">): node_stream.Writable;
70
+ toWeb(streamWritable: NodeJS.WritableStream): node_stream_web.WritableStream;
71
+ promises: typeof node_stream_promises;
72
+ Stream: typeof node_stream;
73
+ duplexPair(options?: node_stream.DuplexOptions): [node_stream.Duplex, node_stream.Duplex];
74
+ addAbortSignal<T extends NodeJS.ReadableStream | NodeJS.WritableStream | node_stream_web.ReadableStream | node_stream_web.WritableStream>(signal: AbortSignal, stream: T): T;
75
+ getDefaultHighWaterMark(objectMode: boolean): number;
76
+ setDefaultHighWaterMark(objectMode: boolean, value: number): void;
77
+ finished: typeof node_stream.finished;
78
+ pipeline: typeof node_stream.pipeline;
79
+ compose(stream: node_stream.ComposeSource<any> | node_stream.ComposeDestination<any>): node_stream.Duplex;
80
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, D extends node_stream.ComposeTransform<S, any> | node_stream.ComposeDestination<S>>(source: S, destination: D): node_stream.Duplex;
81
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T extends node_stream.ComposeTransform<S, any>, D extends node_stream.ComposeTransform<T, any> | node_stream.ComposeDestination<T>>(source: S, transform: T, destination: D): node_stream.Duplex;
82
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T1 extends node_stream.ComposeTransform<S, any>, T2 extends node_stream.ComposeTransform<T1, any>, D extends node_stream.ComposeTransform<T2, any> | node_stream.ComposeDestination<T2>>(source: S, transform1: T1, transform2: T2, destination: D): node_stream.Duplex;
83
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T1 extends node_stream.ComposeTransform<S, any>, T2 extends node_stream.ComposeTransform<T1, any>, T3 extends node_stream.ComposeTransform<T2, any>, D extends node_stream.ComposeTransform<T3, any> | node_stream.ComposeDestination<T3>>(source: S, transform1: T1, transform2: T2, transform3: T3, destination: D): node_stream.Duplex;
84
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T1 extends node_stream.ComposeTransform<S, any>, T2 extends node_stream.ComposeTransform<T1, any>, T3 extends node_stream.ComposeTransform<T2, any>, T4 extends node_stream.ComposeTransform<T3, any>, D extends node_stream.ComposeTransform<T4, any> | node_stream.ComposeDestination<T4>>(source: S, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: D): node_stream.Duplex;
85
+ compose(...streams: [node_stream.ComposeSource<any>, ...node_stream.ComposeTransform<any, any>[], node_stream.ComposeDestination<any>]): node_stream.Duplex;
86
+ isErrored(stream: NodeJS.ReadableStream | NodeJS.WritableStream | node_stream_web.ReadableStream | node_stream_web.WritableStream): boolean;
87
+ isReadable(stream: NodeJS.ReadableStream | node_stream_web.ReadableStream): boolean | null;
88
+ isWritable(stream: NodeJS.WritableStream | node_stream_web.WritableStream): boolean | null;
89
+ Readable: typeof node_stream.Readable;
90
+ Writable: typeof node_stream.Writable;
91
+ Duplex: typeof node_stream.Duplex;
92
+ Transform: typeof node_stream.Transform;
93
+ PassThrough: typeof node_stream.PassThrough;
94
+ EventEmitter: typeof node_events;
95
+ addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable;
96
+ getEventListeners(emitter: node_events, name: string | symbol): ((...args: any[]) => void)[];
97
+ getEventListeners(emitter: EventTarget, name: string): ((...args: any[]) => void)[];
98
+ getMaxListeners(emitter: node_events | EventTarget): number;
99
+ listenerCount(emitter: node_events, eventName: string | symbol): number;
100
+ listenerCount(emitter: EventTarget, eventName: string): number;
101
+ on(emitter: node_events, eventName: string | symbol, options?: node_events.OnOptions): NodeJS.AsyncIterator<any[]>;
102
+ on(emitter: EventTarget, eventName: string, options?: node_events.OnOptions): NodeJS.AsyncIterator<any[]>;
103
+ once(emitter: node_events, eventName: string | symbol, options?: node_events.OnceOptions): Promise<any[]>;
104
+ once(emitter: EventTarget, eventName: string, options?: node_events.OnceOptions): Promise<any[]>;
105
+ setMaxListeners(n: number, ...eventTargets: ReadonlyArray<node_events | EventTarget>): void;
106
+ readonly captureRejectionSymbol: typeof node_events.captureRejectionSymbol;
107
+ captureRejections: boolean;
108
+ defaultMaxListeners: number;
109
+ readonly errorMonitor: typeof node_events.errorMonitor;
110
+ EventEmitterAsyncResource: typeof node_events.EventEmitterAsyncResource;
111
+ }>;
112
+ close(): Promise<void>;
113
+ }
114
+
115
+ export { Mnemosyne as M, type ServerOptions as S, MnemosyneConfig as a, type MnemosyneOptions as b, MnemosyneServer as c, loadConfig as l };
@@ -0,0 +1,115 @@
1
+ import * as node_events from 'node:events';
2
+ import * as node_stream_promises from 'node:stream/promises';
3
+ import * as node_stream from 'node:stream';
4
+ import * as node_stream_web from 'node:stream/web';
5
+ import * as node_http from 'node:http';
6
+ import { C as Config, S as Store, f as Project, c as Atom } from './Store-BtdYuiUx.mjs';
7
+
8
+ /**
9
+ * Mnemosyne Configuration
10
+ * Loads config.yaml with a minimal parser. Supports env overrides.
11
+ */
12
+
13
+ declare function loadConfig(configPath?: string, baseDir?: string): Config;
14
+ declare class MnemosyneConfig {
15
+ readonly config: Config;
16
+ private baseDir;
17
+ constructor(options?: {
18
+ configPath?: string;
19
+ baseDir?: string;
20
+ overrides?: Partial<Config>;
21
+ });
22
+ get dbPath(): string;
23
+ get filesDir(): string;
24
+ get backupsDir(): string;
25
+ get baseDirPath(): string;
26
+ }
27
+
28
+ /**
29
+ * Mnemosyne Core Engine
30
+ * Main orchestrator class. Owns lifecycle (init, close).
31
+ * Store owns SQLite operations. Config owns settings.
32
+ */
33
+
34
+ interface MnemosyneOptions {
35
+ dbPath?: string;
36
+ configPath?: string;
37
+ baseDir?: string;
38
+ autoBackup?: boolean;
39
+ }
40
+ declare class Mnemosyne {
41
+ store: Store;
42
+ config: MnemosyneConfig;
43
+ vecEnabled: boolean;
44
+ private db;
45
+ constructor(options?: MnemosyneOptions);
46
+ init(): Promise<void>;
47
+ close(): Promise<void>;
48
+ createProject(name: string, description?: string): Project;
49
+ createAtom(projectId: string, title: string, type: string, createdBy: string, opts?: Parameters<Store["createAtom"]>[4]): Atom;
50
+ }
51
+
52
+ interface ServerOptions {
53
+ port?: number;
54
+ host?: string;
55
+ dashboard?: boolean;
56
+ mcp?: boolean;
57
+ websocket?: boolean;
58
+ }
59
+ declare class MnemosyneServer {
60
+ store: Store;
61
+ private api;
62
+ private wsHandler?;
63
+ private httpServer;
64
+ private brain?;
65
+ constructor(options?: ServerOptions, brain?: Mnemosyne);
66
+ private serveDashboard;
67
+ getHandler(): node_http.Server<typeof node_http.IncomingMessage, {
68
+ new (req: node_http.IncomingMessage): node_http.ServerResponse<node_http.IncomingMessage>;
69
+ fromWeb(writableStream: node_stream_web.WritableStream, options?: Pick<node_stream.WritableOptions, "decodeStrings" | "highWaterMark" | "objectMode" | "signal">): node_stream.Writable;
70
+ toWeb(streamWritable: NodeJS.WritableStream): node_stream_web.WritableStream;
71
+ promises: typeof node_stream_promises;
72
+ Stream: typeof node_stream;
73
+ duplexPair(options?: node_stream.DuplexOptions): [node_stream.Duplex, node_stream.Duplex];
74
+ addAbortSignal<T extends NodeJS.ReadableStream | NodeJS.WritableStream | node_stream_web.ReadableStream | node_stream_web.WritableStream>(signal: AbortSignal, stream: T): T;
75
+ getDefaultHighWaterMark(objectMode: boolean): number;
76
+ setDefaultHighWaterMark(objectMode: boolean, value: number): void;
77
+ finished: typeof node_stream.finished;
78
+ pipeline: typeof node_stream.pipeline;
79
+ compose(stream: node_stream.ComposeSource<any> | node_stream.ComposeDestination<any>): node_stream.Duplex;
80
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, D extends node_stream.ComposeTransform<S, any> | node_stream.ComposeDestination<S>>(source: S, destination: D): node_stream.Duplex;
81
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T extends node_stream.ComposeTransform<S, any>, D extends node_stream.ComposeTransform<T, any> | node_stream.ComposeDestination<T>>(source: S, transform: T, destination: D): node_stream.Duplex;
82
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T1 extends node_stream.ComposeTransform<S, any>, T2 extends node_stream.ComposeTransform<T1, any>, D extends node_stream.ComposeTransform<T2, any> | node_stream.ComposeDestination<T2>>(source: S, transform1: T1, transform2: T2, destination: D): node_stream.Duplex;
83
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T1 extends node_stream.ComposeTransform<S, any>, T2 extends node_stream.ComposeTransform<T1, any>, T3 extends node_stream.ComposeTransform<T2, any>, D extends node_stream.ComposeTransform<T3, any> | node_stream.ComposeDestination<T3>>(source: S, transform1: T1, transform2: T2, transform3: T3, destination: D): node_stream.Duplex;
84
+ compose<S extends node_stream.ComposeSource<any> | node_stream.ComposeTransform<any, any>, T1 extends node_stream.ComposeTransform<S, any>, T2 extends node_stream.ComposeTransform<T1, any>, T3 extends node_stream.ComposeTransform<T2, any>, T4 extends node_stream.ComposeTransform<T3, any>, D extends node_stream.ComposeTransform<T4, any> | node_stream.ComposeDestination<T4>>(source: S, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: D): node_stream.Duplex;
85
+ compose(...streams: [node_stream.ComposeSource<any>, ...node_stream.ComposeTransform<any, any>[], node_stream.ComposeDestination<any>]): node_stream.Duplex;
86
+ isErrored(stream: NodeJS.ReadableStream | NodeJS.WritableStream | node_stream_web.ReadableStream | node_stream_web.WritableStream): boolean;
87
+ isReadable(stream: NodeJS.ReadableStream | node_stream_web.ReadableStream): boolean | null;
88
+ isWritable(stream: NodeJS.WritableStream | node_stream_web.WritableStream): boolean | null;
89
+ Readable: typeof node_stream.Readable;
90
+ Writable: typeof node_stream.Writable;
91
+ Duplex: typeof node_stream.Duplex;
92
+ Transform: typeof node_stream.Transform;
93
+ PassThrough: typeof node_stream.PassThrough;
94
+ EventEmitter: typeof node_events;
95
+ addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable;
96
+ getEventListeners(emitter: node_events, name: string | symbol): ((...args: any[]) => void)[];
97
+ getEventListeners(emitter: EventTarget, name: string): ((...args: any[]) => void)[];
98
+ getMaxListeners(emitter: node_events | EventTarget): number;
99
+ listenerCount(emitter: node_events, eventName: string | symbol): number;
100
+ listenerCount(emitter: EventTarget, eventName: string): number;
101
+ on(emitter: node_events, eventName: string | symbol, options?: node_events.OnOptions): NodeJS.AsyncIterator<any[]>;
102
+ on(emitter: EventTarget, eventName: string, options?: node_events.OnOptions): NodeJS.AsyncIterator<any[]>;
103
+ once(emitter: node_events, eventName: string | symbol, options?: node_events.OnceOptions): Promise<any[]>;
104
+ once(emitter: EventTarget, eventName: string, options?: node_events.OnceOptions): Promise<any[]>;
105
+ setMaxListeners(n: number, ...eventTargets: ReadonlyArray<node_events | EventTarget>): void;
106
+ readonly captureRejectionSymbol: typeof node_events.captureRejectionSymbol;
107
+ captureRejections: boolean;
108
+ defaultMaxListeners: number;
109
+ readonly errorMonitor: typeof node_events.errorMonitor;
110
+ EventEmitterAsyncResource: typeof node_events.EventEmitterAsyncResource;
111
+ }>;
112
+ close(): Promise<void>;
113
+ }
114
+
115
+ export { Mnemosyne as M, type ServerOptions as S, MnemosyneConfig as a, type MnemosyneOptions as b, MnemosyneServer as c, loadConfig as l };
@@ -0,0 +1,98 @@
1
+ import { S as Store } from './Store-BtdYuiUx.js';
2
+ import * as http from 'http';
3
+
4
+ /**
5
+ * MCP Protocol Types
6
+ */
7
+ interface JsonRpcRequest {
8
+ jsonrpc: "2.0";
9
+ id: string | number | null;
10
+ method: string;
11
+ params?: any;
12
+ }
13
+ interface JsonRpcResponse {
14
+ jsonrpc: "2.0";
15
+ id: string | number | null;
16
+ result?: any;
17
+ error?: {
18
+ code: number;
19
+ message: string;
20
+ data?: any;
21
+ };
22
+ }
23
+ interface McpTool {
24
+ name: string;
25
+ description: string;
26
+ inputSchema: any;
27
+ handler: (args: any, store: Store) => any;
28
+ }
29
+ interface McpTransport {
30
+ name: string;
31
+ start(handler: (message: JsonRpcRequest) => Promise<JsonRpcResponse | null> | JsonRpcResponse | null): void;
32
+ send(message: JsonRpcResponse): void;
33
+ }
34
+
35
+ /**
36
+ * MCP Server
37
+ * JSON-RPC handler for Model Context Protocol.
38
+ */
39
+
40
+ declare class McpServer {
41
+ private store;
42
+ private toolMap;
43
+ constructor(store: Store);
44
+ /**
45
+ * Returns `null` for notifications (no response needed).
46
+ */
47
+ handleRequest(req: JsonRpcRequest): JsonRpcResponse | null;
48
+ getManifest(): {
49
+ name: string;
50
+ version: string;
51
+ description: string;
52
+ protocol: string;
53
+ transport: string[];
54
+ endpoints: {
55
+ sse: string;
56
+ messages: string;
57
+ };
58
+ tools: {
59
+ name: string;
60
+ description: string;
61
+ }[];
62
+ };
63
+ private ok;
64
+ private err;
65
+ }
66
+
67
+ declare class McpSseTransport {
68
+ private server;
69
+ private sessions;
70
+ private sessionCounter;
71
+ constructor(server: McpServer);
72
+ handleSse(req: http.IncomingMessage, res: http.ServerResponse): void;
73
+ handleMessage(req: http.IncomingMessage, res: http.ServerResponse, body: any): void;
74
+ private sendSse;
75
+ }
76
+
77
+ /**
78
+ * MCP Stdio Transport
79
+ * Line-delimited JSON-RPC over stdin/stdout.
80
+ * This is what Claude Desktop uses to communicate with MCP servers.
81
+ */
82
+
83
+ declare class McpStdioTransport {
84
+ private server;
85
+ private buffer;
86
+ constructor(server: McpServer);
87
+ start(): void;
88
+ send(message: JsonRpcResponse): void;
89
+ }
90
+
91
+ /**
92
+ * MCP Tool Definitions
93
+ * All tools exposed to MCP clients (Claude Desktop, Cursor, etc.)
94
+ */
95
+
96
+ declare const TOOLS: McpTool[];
97
+
98
+ export { type JsonRpcRequest as J, McpServer as M, TOOLS as T, type JsonRpcResponse as a, McpSseTransport as b, McpStdioTransport as c, type McpTool as d, type McpTransport as e };
@@ -0,0 +1,98 @@
1
+ import { S as Store } from './Store-BtdYuiUx.mjs';
2
+ import * as http from 'http';
3
+
4
+ /**
5
+ * MCP Protocol Types
6
+ */
7
+ interface JsonRpcRequest {
8
+ jsonrpc: "2.0";
9
+ id: string | number | null;
10
+ method: string;
11
+ params?: any;
12
+ }
13
+ interface JsonRpcResponse {
14
+ jsonrpc: "2.0";
15
+ id: string | number | null;
16
+ result?: any;
17
+ error?: {
18
+ code: number;
19
+ message: string;
20
+ data?: any;
21
+ };
22
+ }
23
+ interface McpTool {
24
+ name: string;
25
+ description: string;
26
+ inputSchema: any;
27
+ handler: (args: any, store: Store) => any;
28
+ }
29
+ interface McpTransport {
30
+ name: string;
31
+ start(handler: (message: JsonRpcRequest) => Promise<JsonRpcResponse | null> | JsonRpcResponse | null): void;
32
+ send(message: JsonRpcResponse): void;
33
+ }
34
+
35
+ /**
36
+ * MCP Server
37
+ * JSON-RPC handler for Model Context Protocol.
38
+ */
39
+
40
+ declare class McpServer {
41
+ private store;
42
+ private toolMap;
43
+ constructor(store: Store);
44
+ /**
45
+ * Returns `null` for notifications (no response needed).
46
+ */
47
+ handleRequest(req: JsonRpcRequest): JsonRpcResponse | null;
48
+ getManifest(): {
49
+ name: string;
50
+ version: string;
51
+ description: string;
52
+ protocol: string;
53
+ transport: string[];
54
+ endpoints: {
55
+ sse: string;
56
+ messages: string;
57
+ };
58
+ tools: {
59
+ name: string;
60
+ description: string;
61
+ }[];
62
+ };
63
+ private ok;
64
+ private err;
65
+ }
66
+
67
+ declare class McpSseTransport {
68
+ private server;
69
+ private sessions;
70
+ private sessionCounter;
71
+ constructor(server: McpServer);
72
+ handleSse(req: http.IncomingMessage, res: http.ServerResponse): void;
73
+ handleMessage(req: http.IncomingMessage, res: http.ServerResponse, body: any): void;
74
+ private sendSse;
75
+ }
76
+
77
+ /**
78
+ * MCP Stdio Transport
79
+ * Line-delimited JSON-RPC over stdin/stdout.
80
+ * This is what Claude Desktop uses to communicate with MCP servers.
81
+ */
82
+
83
+ declare class McpStdioTransport {
84
+ private server;
85
+ private buffer;
86
+ constructor(server: McpServer);
87
+ start(): void;
88
+ send(message: JsonRpcResponse): void;
89
+ }
90
+
91
+ /**
92
+ * MCP Tool Definitions
93
+ * All tools exposed to MCP clients (Claude Desktop, Cursor, etc.)
94
+ */
95
+
96
+ declare const TOOLS: McpTool[];
97
+
98
+ export { type JsonRpcRequest as J, McpServer as M, TOOLS as T, type JsonRpcResponse as a, McpSseTransport as b, McpStdioTransport as c, type McpTool as d, type McpTransport as e };
@@ -0,0 +1,45 @@
1
+ export { M as Mnemosyne, a as MnemosyneConfig, b as MnemosyneOptions, c as MnemosyneServer, l as loadConfig } from './index-B8PTQKy9.mjs';
2
+ import { S as Store, A as Assistant } from './Store-BtdYuiUx.mjs';
3
+ export { a as Action, b as AssistantRole, c as Atom, B as Block, d as Bond, C as Config, E as EventLogEntry, P as PRIORITY, e as PermissionLevel, f as Project, Q as QueueEntry, R as ROLE_PERMISSIONS, T as TEMPLATES } from './Store-BtdYuiUx.mjs';
4
+ export { API, API as ApiRouter } from './server/api.mjs';
5
+ import * as http from 'http';
6
+ export { J as JsonRpcRequest, a as JsonRpcResponse, M as McpServer, b as McpSseTransport, c as McpStdioTransport, d as McpTool, e as McpTransport, T as TOOLS } from './index-yTOihMUk.mjs';
7
+ export { WebSocketHandler, createWebSocketServer } from './server/websocket.mjs';
8
+ export { EventBroadcaster } from './ws/index.mjs';
9
+ import 'node:events';
10
+ import 'node:stream/promises';
11
+ import 'node:stream';
12
+ import 'node:stream/web';
13
+ import 'node:http';
14
+ import 'better-sqlite3';
15
+ import 'ws';
16
+
17
+ declare class RateLimiter {
18
+ private rates;
19
+ private limit;
20
+ private windowMs;
21
+ constructor(limit: number, windowMs: number);
22
+ check(token: string): boolean;
23
+ private cleanup;
24
+ }
25
+ declare function authenticate(store: Store, req: http.IncomingMessage): Assistant | undefined;
26
+
27
+ declare function json(res: http.ServerResponse, status: number, data: any): void;
28
+ declare function readBody(req: http.IncomingMessage): Promise<any>;
29
+ declare function resolveProjectId(store: Store, idOrName: string): string;
30
+ declare function serializeAtom(store: Store, atom: any, compact?: boolean): any;
31
+
32
+ /**
33
+ * Content-Addressed Storage (CAS)
34
+ * Files stored by SHA256 hash, sharded by first 2 hex chars.
35
+ */
36
+ declare function computeHash(buffer: Buffer): string;
37
+ declare function saveFile(buffer: Buffer, _fileName: string): {
38
+ hash: string;
39
+ size: number;
40
+ path: string;
41
+ };
42
+ declare function getFile(hash: string): Buffer | null;
43
+ declare function fileExists(hash: string): boolean;
44
+
45
+ export { Assistant, RateLimiter, Store, authenticate, computeHash, fileExists, getFile, json, readBody, resolveProjectId, saveFile, serializeAtom };
@@ -0,0 +1,45 @@
1
+ export { M as Mnemosyne, a as MnemosyneConfig, b as MnemosyneOptions, c as MnemosyneServer, l as loadConfig } from './index-B2oTMNlL.js';
2
+ import { S as Store, A as Assistant } from './Store-BtdYuiUx.js';
3
+ export { a as Action, b as AssistantRole, c as Atom, B as Block, d as Bond, C as Config, E as EventLogEntry, P as PRIORITY, e as PermissionLevel, f as Project, Q as QueueEntry, R as ROLE_PERMISSIONS, T as TEMPLATES } from './Store-BtdYuiUx.js';
4
+ export { API, API as ApiRouter } from './server/api.js';
5
+ import * as http from 'http';
6
+ export { J as JsonRpcRequest, a as JsonRpcResponse, M as McpServer, b as McpSseTransport, c as McpStdioTransport, d as McpTool, e as McpTransport, T as TOOLS } from './index-DWk78ifo.js';
7
+ export { WebSocketHandler, createWebSocketServer } from './server/websocket.js';
8
+ export { EventBroadcaster } from './ws/index.js';
9
+ import 'node:events';
10
+ import 'node:stream/promises';
11
+ import 'node:stream';
12
+ import 'node:stream/web';
13
+ import 'node:http';
14
+ import 'better-sqlite3';
15
+ import 'ws';
16
+
17
+ declare class RateLimiter {
18
+ private rates;
19
+ private limit;
20
+ private windowMs;
21
+ constructor(limit: number, windowMs: number);
22
+ check(token: string): boolean;
23
+ private cleanup;
24
+ }
25
+ declare function authenticate(store: Store, req: http.IncomingMessage): Assistant | undefined;
26
+
27
+ declare function json(res: http.ServerResponse, status: number, data: any): void;
28
+ declare function readBody(req: http.IncomingMessage): Promise<any>;
29
+ declare function resolveProjectId(store: Store, idOrName: string): string;
30
+ declare function serializeAtom(store: Store, atom: any, compact?: boolean): any;
31
+
32
+ /**
33
+ * Content-Addressed Storage (CAS)
34
+ * Files stored by SHA256 hash, sharded by first 2 hex chars.
35
+ */
36
+ declare function computeHash(buffer: Buffer): string;
37
+ declare function saveFile(buffer: Buffer, _fileName: string): {
38
+ hash: string;
39
+ size: number;
40
+ path: string;
41
+ };
42
+ declare function getFile(hash: string): Buffer | null;
43
+ declare function fileExists(hash: string): boolean;
44
+
45
+ export { Assistant, RateLimiter, Store, authenticate, computeHash, fileExists, getFile, json, readBody, resolveProjectId, saveFile, serializeAtom };