dsh-mnemon 0.1.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.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +169 -0
  3. package/README.md +169 -0
  4. package/cordis.patch.yml +15 -0
  5. package/docs/README.md +8 -0
  6. package/docs/en/README.md +39 -0
  7. package/docs/en/architecture.md +129 -0
  8. package/docs/en/assets/project-architecture.svg +182 -0
  9. package/docs/en/configuration.md +204 -0
  10. package/docs/en/development.md +178 -0
  11. package/docs/en/getting-started.md +147 -0
  12. package/docs/en/interfaces.md +159 -0
  13. package/docs/en/operations.md +151 -0
  14. package/docs/en/project-overview.md +247 -0
  15. package/docs/en/roadmap.md +41 -0
  16. package/docs/en/storage-model.md +179 -0
  17. package/docs/en/workflows.md +290 -0
  18. package/docs/zh-CN/README.md +39 -0
  19. package/docs/zh-CN/architecture.md +129 -0
  20. package/docs/zh-CN/assets/project-architecture.svg +182 -0
  21. package/docs/zh-CN/assets/screenshots/conversation-recall.png +0 -0
  22. package/docs/zh-CN/assets/screenshots/conversation-writeback.png +0 -0
  23. package/docs/zh-CN/assets/screenshots/documents-markdown.png +0 -0
  24. package/docs/zh-CN/assets/screenshots/entities-context.png +0 -0
  25. package/docs/zh-CN/assets/screenshots/memory-content.png +0 -0
  26. package/docs/zh-CN/assets/screenshots/overview-memory-graph.png +0 -0
  27. package/docs/zh-CN/assets/screenshots/recall-agent-answer.png +0 -0
  28. package/docs/zh-CN/assets/screenshots/runtime-memory.png +0 -0
  29. package/docs/zh-CN/configuration.md +204 -0
  30. package/docs/zh-CN/development.md +178 -0
  31. package/docs/zh-CN/getting-started.md +147 -0
  32. package/docs/zh-CN/interfaces.md +159 -0
  33. package/docs/zh-CN/operations.md +151 -0
  34. package/docs/zh-CN/project-overview.md +247 -0
  35. package/docs/zh-CN/roadmap.md +41 -0
  36. package/docs/zh-CN/storage-model.md +179 -0
  37. package/docs/zh-CN/workflows.md +290 -0
  38. package/lib/client.js +6288 -0
  39. package/lib/client.js.map +1 -0
  40. package/lib/index.js +4453 -0
  41. package/lib/types/client/MnemonLogo.d.ts +7 -0
  42. package/lib/types/client/MnemonLogo.d.ts.map +1 -0
  43. package/lib/types/client/MnemonLogo.js +6 -0
  44. package/lib/types/client/MnemonLogo.js.map +1 -0
  45. package/lib/types/client/MnemonSettingsCard.d.ts +9 -0
  46. package/lib/types/client/MnemonSettingsCard.d.ts.map +1 -0
  47. package/lib/types/client/MnemonSettingsCard.js +109 -0
  48. package/lib/types/client/MnemonSettingsCard.js.map +1 -0
  49. package/lib/types/client/MnemonView.d.ts +11 -0
  50. package/lib/types/client/MnemonView.d.ts.map +1 -0
  51. package/lib/types/client/MnemonView.js +1239 -0
  52. package/lib/types/client/MnemonView.js.map +1 -0
  53. package/lib/types/client/api.d.ts +68 -0
  54. package/lib/types/client/api.d.ts.map +1 -0
  55. package/lib/types/client/api.js +80 -0
  56. package/lib/types/client/api.js.map +1 -0
  57. package/lib/types/client/index.d.ts +4 -0
  58. package/lib/types/client/index.d.ts.map +1 -0
  59. package/lib/types/client/index.js +36 -0
  60. package/lib/types/client/index.js.map +1 -0
  61. package/lib/types/client/locales.d.ts +1054 -0
  62. package/lib/types/client/locales.d.ts.map +1 -0
  63. package/lib/types/client/locales.js +1062 -0
  64. package/lib/types/client/locales.js.map +1 -0
  65. package/lib/types/client/settings.d.ts +17 -0
  66. package/lib/types/client/settings.d.ts.map +1 -0
  67. package/lib/types/client/settings.js +49 -0
  68. package/lib/types/client/settings.js.map +1 -0
  69. package/lib/types/commands.d.ts +6 -0
  70. package/lib/types/commands.d.ts.map +1 -0
  71. package/lib/types/commands.js +100 -0
  72. package/lib/types/commands.js.map +1 -0
  73. package/lib/types/config-values.d.ts +4 -0
  74. package/lib/types/config-values.d.ts.map +1 -0
  75. package/lib/types/config-values.js +4 -0
  76. package/lib/types/config-values.js.map +1 -0
  77. package/lib/types/config.d.ts +49 -0
  78. package/lib/types/config.d.ts.map +1 -0
  79. package/lib/types/config.js +55 -0
  80. package/lib/types/config.js.map +1 -0
  81. package/lib/types/contracts.d.ts +272 -0
  82. package/lib/types/contracts.d.ts.map +1 -0
  83. package/lib/types/contracts.js +2 -0
  84. package/lib/types/contracts.js.map +1 -0
  85. package/lib/types/documents.d.ts +149 -0
  86. package/lib/types/documents.d.ts.map +1 -0
  87. package/lib/types/documents.js +503 -0
  88. package/lib/types/documents.js.map +1 -0
  89. package/lib/types/guidance.d.ts +9 -0
  90. package/lib/types/guidance.d.ts.map +1 -0
  91. package/lib/types/guidance.js +18 -0
  92. package/lib/types/guidance.js.map +1 -0
  93. package/lib/types/index.d.ts +15 -0
  94. package/lib/types/index.d.ts.map +1 -0
  95. package/lib/types/index.js +45 -0
  96. package/lib/types/index.js.map +1 -0
  97. package/lib/types/lifecycle.d.ts +75 -0
  98. package/lib/types/lifecycle.d.ts.map +1 -0
  99. package/lib/types/lifecycle.js +380 -0
  100. package/lib/types/lifecycle.js.map +1 -0
  101. package/lib/types/memory-bodies.d.ts +47 -0
  102. package/lib/types/memory-bodies.d.ts.map +1 -0
  103. package/lib/types/memory-bodies.js +160 -0
  104. package/lib/types/memory-bodies.js.map +1 -0
  105. package/lib/types/process.d.ts +14 -0
  106. package/lib/types/process.d.ts.map +1 -0
  107. package/lib/types/process.js +65 -0
  108. package/lib/types/process.js.map +1 -0
  109. package/lib/types/review-activity.d.ts +33 -0
  110. package/lib/types/review-activity.d.ts.map +1 -0
  111. package/lib/types/review-activity.js +37 -0
  112. package/lib/types/review-activity.js.map +1 -0
  113. package/lib/types/rpc.d.ts +12 -0
  114. package/lib/types/rpc.d.ts.map +1 -0
  115. package/lib/types/rpc.js +225 -0
  116. package/lib/types/rpc.js.map +1 -0
  117. package/lib/types/runner.d.ts +29 -0
  118. package/lib/types/runner.d.ts.map +1 -0
  119. package/lib/types/runner.js +150 -0
  120. package/lib/types/runner.js.map +1 -0
  121. package/lib/types/runtime-memory.d.ts +104 -0
  122. package/lib/types/runtime-memory.d.ts.map +1 -0
  123. package/lib/types/runtime-memory.js +415 -0
  124. package/lib/types/runtime-memory.js.map +1 -0
  125. package/lib/types/service.d.ts +173 -0
  126. package/lib/types/service.d.ts.map +1 -0
  127. package/lib/types/service.js +508 -0
  128. package/lib/types/service.js.map +1 -0
  129. package/lib/types/settings.d.ts +6 -0
  130. package/lib/types/settings.d.ts.map +1 -0
  131. package/lib/types/settings.js +75 -0
  132. package/lib/types/settings.js.map +1 -0
  133. package/lib/types/storage-scope.d.ts +39 -0
  134. package/lib/types/storage-scope.d.ts.map +1 -0
  135. package/lib/types/storage-scope.js +179 -0
  136. package/lib/types/storage-scope.js.map +1 -0
  137. package/lib/types/subagent.d.ts +97 -0
  138. package/lib/types/subagent.d.ts.map +1 -0
  139. package/lib/types/subagent.js +619 -0
  140. package/lib/types/subagent.js.map +1 -0
  141. package/lib/types/tools.d.ts +8 -0
  142. package/lib/types/tools.d.ts.map +1 -0
  143. package/lib/types/tools.js +328 -0
  144. package/lib/types/tools.js.map +1 -0
  145. package/package.json +111 -0
@@ -0,0 +1,29 @@
1
+ import type { JsonValue } from './contracts.ts';
2
+ import type { ResolvedConfig } from './config.ts';
3
+ import { type ProcessRunner } from './process.ts';
4
+ /** Locate the local Mnemon binary without invoking a shell. */
5
+ export declare function findMnemonCommand(config: Pick<ResolvedConfig, 'cliPath'>): string | undefined;
6
+ export declare class MnemonCliError extends Error {
7
+ readonly exitCode: number | null;
8
+ readonly stderr: string;
9
+ constructor(message: string, exitCode?: number | null, stderr?: string);
10
+ }
11
+ export interface MnemonRunner {
12
+ readonly command: string;
13
+ readonly commandFound: boolean;
14
+ readonly config: ResolvedConfig;
15
+ runJson(args: readonly string[], options?: {
16
+ signal?: AbortSignal;
17
+ globalFlags?: boolean;
18
+ store?: string;
19
+ }): Promise<JsonValue>;
20
+ runText(args: readonly string[], options?: {
21
+ signal?: AbortSignal;
22
+ globalFlags?: boolean;
23
+ store?: string;
24
+ }): Promise<string>;
25
+ effectiveDataDir(): string;
26
+ effectiveStore(): string;
27
+ }
28
+ export declare function createRunner(config: ResolvedConfig, processRunner?: ProcessRunner): MnemonRunner;
29
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAuBlF,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAmB7F;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAEX,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,MAAM,SAAK;CAMzE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/H,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5H,gBAAgB,IAAI,MAAM,CAAA;IAC1B,cAAc,IAAI,MAAM,CAAA;CACzB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,GAAE,aAA0B,GAAG,YAAY,CAuF5G"}
@@ -0,0 +1,150 @@
1
+ import { accessSync, constants, existsSync, readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { delimiter, join, resolve } from 'node:path';
4
+ import { runProcess } from "./process.js";
5
+ const COMMON_CLI_PATHS = [
6
+ '~/.local/bin/mnemon',
7
+ '/opt/homebrew/bin/mnemon',
8
+ '/usr/local/bin/mnemon',
9
+ '/usr/bin/mnemon',
10
+ ];
11
+ function expandHome(path) {
12
+ if (path === '~')
13
+ return homedir();
14
+ return path.startsWith('~/') ? join(homedir(), path.slice(2)) : path;
15
+ }
16
+ function executable(path) {
17
+ try {
18
+ accessSync(path, constants.X_OK);
19
+ return true;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ /** Locate the local Mnemon binary without invoking a shell. */
26
+ export function findMnemonCommand(config) {
27
+ if (config.cliPath !== undefined)
28
+ return expandHome(config.cliPath);
29
+ const envPath = process.env.MNEMON_CLI_PATH?.trim();
30
+ if (envPath !== undefined && envPath !== '') {
31
+ const path = expandHome(envPath);
32
+ if (executable(path))
33
+ return path;
34
+ }
35
+ for (const directory of (process.env.PATH ?? '').split(delimiter)) {
36
+ if (directory === '')
37
+ continue;
38
+ for (const name of process.platform === 'win32' ? ['mnemon.exe', 'mnemon.cmd', 'mnemon'] : ['mnemon']) {
39
+ const path = join(directory, name);
40
+ if (executable(path))
41
+ return path;
42
+ }
43
+ }
44
+ for (const candidate of COMMON_CLI_PATHS) {
45
+ const path = expandHome(candidate);
46
+ if (executable(path))
47
+ return path;
48
+ }
49
+ return undefined;
50
+ }
51
+ export class MnemonCliError extends Error {
52
+ exitCode;
53
+ stderr;
54
+ constructor(message, exitCode = null, stderr = '') {
55
+ super(message);
56
+ this.name = 'MnemonCliError';
57
+ this.exitCode = exitCode;
58
+ this.stderr = stderr;
59
+ }
60
+ }
61
+ export function createRunner(config, processRunner = runProcess) {
62
+ const found = findMnemonCommand(config);
63
+ const command = found ?? config.cliPath ?? 'mnemon';
64
+ // Mnemon 0.1.2 runs store migrations while opening the database. Serializing
65
+ // CLI processes prevents parallel status/viz calls during WebUI mount from
66
+ // racing that migration and surfacing a transient SQLITE_BUSY error.
67
+ let processQueue = Promise.resolve();
68
+ const globalArgs = (store) => {
69
+ const args = [];
70
+ if (config.storageScope !== 'global' || config.dataDir !== undefined)
71
+ args.push('--data-dir', effectiveDataDir());
72
+ if (store !== undefined)
73
+ args.push('--store', store);
74
+ else if (config.store !== undefined)
75
+ args.push('--store', config.store);
76
+ return args;
77
+ };
78
+ const effectiveDataDir = () => {
79
+ if (config.storageScope === 'workspace')
80
+ return resolve(process.cwd(), '.mnemon');
81
+ if (config.storageScope === 'custom')
82
+ return expandHome(config.dataDir);
83
+ return expandHome(process.env.MNEMON_DATA_DIR?.trim() || '~/.mnemon');
84
+ };
85
+ const launch = async (args, options = {}) => {
86
+ if (options.signal?.aborted === true)
87
+ throw new MnemonCliError(`mnemon command aborted: ${String(options.signal.reason ?? 'cancelled')}`);
88
+ const argv = options.globalFlags === false ? [...args] : [...globalArgs(options.store), ...args];
89
+ const processOptions = {
90
+ timeoutMs: config.timeoutMs,
91
+ ...(options.signal === undefined ? {} : { signal: options.signal }),
92
+ };
93
+ let result;
94
+ try {
95
+ result = await processRunner(command, argv, processOptions);
96
+ }
97
+ catch (error) {
98
+ const detail = error instanceof Error ? error.message : String(error);
99
+ throw new MnemonCliError(`${detail}. Install Mnemon and ensure "mnemon" is on PATH, or set dsh-mnemon.cliPath.`);
100
+ }
101
+ if (result.exitCode !== 0) {
102
+ const detail = result.stderr.trim() || result.stdout.trim() || 'no output';
103
+ throw new MnemonCliError(`mnemon ${args.join(' ')} exited ${String(result.exitCode)}: ${detail}`, result.exitCode, result.stderr);
104
+ }
105
+ return result.stdout;
106
+ };
107
+ const execute = (args, options = {}) => {
108
+ const result = processQueue.then(() => launch(args, options));
109
+ processQueue = result.then(() => undefined, () => undefined);
110
+ return result;
111
+ };
112
+ return {
113
+ command,
114
+ commandFound: found !== undefined && executable(found),
115
+ config,
116
+ async runJson(args, options) {
117
+ const stdout = await execute(args, options);
118
+ try {
119
+ return JSON.parse(stdout);
120
+ }
121
+ catch {
122
+ throw new MnemonCliError(`mnemon ${args.join(' ')} returned invalid JSON`);
123
+ }
124
+ },
125
+ runText: execute,
126
+ effectiveDataDir() {
127
+ return effectiveDataDir();
128
+ },
129
+ effectiveStore() {
130
+ if (config.store !== undefined)
131
+ return config.store;
132
+ const fromEnvironment = process.env.MNEMON_STORE?.trim();
133
+ if (fromEnvironment !== undefined && fromEnvironment !== '')
134
+ return fromEnvironment;
135
+ const active = join(this.effectiveDataDir(), 'active');
136
+ if (existsSync(active)) {
137
+ try {
138
+ const value = readFileSync(active, 'utf8').trim();
139
+ if (value !== '')
140
+ return value;
141
+ }
142
+ catch {
143
+ // Fall through to Mnemon's own default.
144
+ }
145
+ }
146
+ return 'default';
147
+ },
148
+ };
149
+ }
150
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import type { MnemonRunner } from './runner.ts';
2
+ export declare const RUNTIME_MEMORY_VERSION = 1;
3
+ export declare const RUNTIME_ENTRY_DELIMITER = "\n\u00A7\n";
4
+ export declare const RUNTIME_MEMORY_LIMITS: {
5
+ readonly memory: number;
6
+ readonly user: number;
7
+ };
8
+ export type RuntimeMemoryTarget = keyof typeof RUNTIME_MEMORY_LIMITS;
9
+ export type RuntimeMemoryImportance = 'critical' | 'normal' | 'low';
10
+ export type RuntimeMemoryAction = 'add' | 'replace' | 'remove';
11
+ export interface RuntimeMemoryEntry {
12
+ content: string;
13
+ created_at: string;
14
+ updated_at: string;
15
+ target: RuntimeMemoryTarget;
16
+ importance: RuntimeMemoryImportance;
17
+ }
18
+ export interface RuntimeMemoryUsage {
19
+ used: number;
20
+ limit: number;
21
+ }
22
+ export interface RuntimeMemoryTargetView extends RuntimeMemoryUsage {
23
+ target: RuntimeMemoryTarget;
24
+ entryCount: number;
25
+ markdownPath: string;
26
+ }
27
+ export interface RuntimeMemorySnapshot {
28
+ directory: string;
29
+ sourcePath: string;
30
+ revision: string;
31
+ generatedAt: string;
32
+ entries: RuntimeMemoryEntry[];
33
+ targets: Record<RuntimeMemoryTarget, RuntimeMemoryTargetView>;
34
+ }
35
+ export interface RuntimeMemoryCompactedEntry {
36
+ content: string;
37
+ importance: RuntimeMemoryImportance;
38
+ }
39
+ export interface RuntimeMemoryMutation {
40
+ action: RuntimeMemoryAction;
41
+ target: RuntimeMemoryTarget;
42
+ content?: string;
43
+ oldText?: string;
44
+ importance?: RuntimeMemoryImportance;
45
+ }
46
+ export type RuntimeMemoryMutationResult = {
47
+ success: true;
48
+ message: string;
49
+ target: RuntimeMemoryTarget;
50
+ entryCount: number;
51
+ usage: RuntimeMemoryUsage;
52
+ added?: string;
53
+ replaced?: {
54
+ from: string;
55
+ to: string;
56
+ };
57
+ removed?: string;
58
+ maintenance?: {
59
+ kind: 'local-compaction' | 'mnemon-archive';
60
+ runId: string;
61
+ provider: string;
62
+ summary: string;
63
+ memoryBodyIds: string[];
64
+ };
65
+ };
66
+ export declare class RuntimeMemoryCapacityError extends Error {
67
+ readonly target: RuntimeMemoryTarget;
68
+ readonly used: number;
69
+ readonly projected: number;
70
+ readonly limit: number;
71
+ constructor(target: RuntimeMemoryTarget, used: number, projected: number, limit: number);
72
+ }
73
+ export declare class RuntimeMemoryConflictError extends Error {
74
+ constructor();
75
+ }
76
+ /**
77
+ * Single authority for hot memory. JSON is the durable source of truth;
78
+ * Markdown files are deterministic projections consumed by prompt assembly.
79
+ */
80
+ export declare class RuntimeMemoryController {
81
+ private readonly now;
82
+ readonly directory: string;
83
+ readonly sourcePath: string;
84
+ readonly memoryPath: string;
85
+ readonly userPath: string;
86
+ readonly lockPath: string;
87
+ private queue;
88
+ constructor(runner: Pick<MnemonRunner, 'effectiveDataDir'>, now?: () => Date);
89
+ snapshot(): RuntimeMemorySnapshot;
90
+ contextText(): string;
91
+ mutate(request: RuntimeMemoryMutation): Promise<RuntimeMemoryMutationResult>;
92
+ /** Apply an LLM-produced compaction only to the exact snapshot it reviewed. */
93
+ compactTarget(expectedRevision: string, target: RuntimeMemoryTarget, compacted: RuntimeMemoryCompactedEntry[], maxBytes?: number): Promise<RuntimeMemorySnapshot>;
94
+ private initialize;
95
+ private mutateLocked;
96
+ private result;
97
+ private targetView;
98
+ private snapshotUnlocked;
99
+ private readSource;
100
+ private persist;
101
+ private repairProjections;
102
+ private withLock;
103
+ }
104
+ //# sourceMappingURL=runtime-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-memory.d.ts","sourceRoot":"","sources":["../../src/runtime-memory.ts"],"names":[],"mappings":"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"}