lifeos 1.0.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 (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +202 -0
  3. package/README.md +202 -0
  4. package/assets/lifeos-rules.en.md +162 -0
  5. package/assets/lifeos-rules.zh.md +162 -0
  6. package/assets/lifeos.yaml +56 -0
  7. package/assets/prompts/AI_LLMResearch_Prompt.en.md +120 -0
  8. package/assets/prompts/AI_LLMResearch_Prompt.zh.md +120 -0
  9. package/assets/prompts/Art_ChinesePainting_Prompt.en.md +147 -0
  10. package/assets/prompts/Art_ChinesePainting_Prompt.zh.md +148 -0
  11. package/assets/prompts/Cryptography_Prompt.en.md +148 -0
  12. package/assets/prompts/Cryptography_Prompt.zh.md +147 -0
  13. package/assets/prompts/History_ChineseCulture_Prompt.en.md +98 -0
  14. package/assets/prompts/History_ChineseCulture_Prompt.zh.md +98 -0
  15. package/assets/prompts/Math_HigherMathematics_Prompt.en.md +117 -0
  16. package/assets/prompts/Math_HigherMathematics_Prompt.zh.md +116 -0
  17. package/assets/schema/Frontmatter_Schema.md +139 -0
  18. package/assets/skills/_shared/completion-report.en.md +30 -0
  19. package/assets/skills/_shared/completion-report.zh.md +30 -0
  20. package/assets/skills/_shared/dual-agent-orchestrator.en.md +40 -0
  21. package/assets/skills/_shared/dual-agent-orchestrator.zh.md +40 -0
  22. package/assets/skills/_shared/learning-lifecycle.en.md +53 -0
  23. package/assets/skills/_shared/learning-lifecycle.zh.md +53 -0
  24. package/assets/skills/_shared/lifecycle.en.md +84 -0
  25. package/assets/skills/_shared/lifecycle.zh.md +84 -0
  26. package/assets/skills/_shared/memory-protocol.en.md +36 -0
  27. package/assets/skills/_shared/memory-protocol.zh.md +36 -0
  28. package/assets/skills/_shared/template-loading.en.md +26 -0
  29. package/assets/skills/_shared/template-loading.zh.md +26 -0
  30. package/assets/skills/archive/SKILL.en.md +300 -0
  31. package/assets/skills/archive/SKILL.zh.md +300 -0
  32. package/assets/skills/ask/SKILL.en.md +164 -0
  33. package/assets/skills/ask/SKILL.zh.md +164 -0
  34. package/assets/skills/brainstorm/SKILL.en.md +242 -0
  35. package/assets/skills/brainstorm/SKILL.zh.md +242 -0
  36. package/assets/skills/brainstorm/references/action-options.en.md +65 -0
  37. package/assets/skills/brainstorm/references/action-options.zh.md +65 -0
  38. package/assets/skills/knowledge/SKILL.en.md +202 -0
  39. package/assets/skills/knowledge/SKILL.zh.md +202 -0
  40. package/assets/skills/project/SKILL.en.md +133 -0
  41. package/assets/skills/project/SKILL.zh.md +133 -0
  42. package/assets/skills/project/references/execution-agent-prompt.en.md +148 -0
  43. package/assets/skills/project/references/execution-agent-prompt.zh.md +148 -0
  44. package/assets/skills/project/references/planning-agent-prompt.en.md +162 -0
  45. package/assets/skills/project/references/planning-agent-prompt.zh.md +162 -0
  46. package/assets/skills/read-pdf/SKILL.en.md +199 -0
  47. package/assets/skills/read-pdf/SKILL.zh.md +199 -0
  48. package/assets/skills/read-pdf/scripts/read_pdf.py +354 -0
  49. package/assets/skills/research/SKILL.en.md +107 -0
  50. package/assets/skills/research/SKILL.zh.md +107 -0
  51. package/assets/skills/research/references/execution-agent-prompt.en.md +166 -0
  52. package/assets/skills/research/references/execution-agent-prompt.zh.md +166 -0
  53. package/assets/skills/research/references/planning-agent-prompt.en.md +129 -0
  54. package/assets/skills/research/references/planning-agent-prompt.zh.md +129 -0
  55. package/assets/skills/revise/SKILL.en.md +258 -0
  56. package/assets/skills/revise/SKILL.zh.md +258 -0
  57. package/assets/skills/revise/references/grading-protocol.en.md +99 -0
  58. package/assets/skills/revise/references/grading-protocol.zh.md +99 -0
  59. package/assets/skills/today/SKILL.en.md +211 -0
  60. package/assets/skills/today/SKILL.zh.md +211 -0
  61. package/assets/templates/en/Daily_Template.md +25 -0
  62. package/assets/templates/en/Draft_Template.md +29 -0
  63. package/assets/templates/en/Knowledge_Template.md +86 -0
  64. package/assets/templates/en/Project_Template.md +110 -0
  65. package/assets/templates/en/Research_Template.md +46 -0
  66. package/assets/templates/en/Retrospective_Template.md +89 -0
  67. package/assets/templates/en/Revise_Template.md +24 -0
  68. package/assets/templates/en/Wiki_Template.md +35 -0
  69. package/assets/templates/zh/Daily_Template.md +26 -0
  70. package/assets/templates/zh/Draft_Template.md +29 -0
  71. package/assets/templates/zh/Knowledge_Template.md +86 -0
  72. package/assets/templates/zh/Project_Template.md +110 -0
  73. package/assets/templates/zh/Research_Template.md +46 -0
  74. package/assets/templates/zh/Retrospective_Template.md +89 -0
  75. package/assets/templates/zh/Revise_Template.md +24 -0
  76. package/assets/templates/zh/Wiki_Template.md +35 -0
  77. package/bin/lifeos.js +24 -0
  78. package/dist/active-docs/citations.d.ts +20 -0
  79. package/dist/active-docs/citations.js +74 -0
  80. package/dist/active-docs/citations.js.map +1 -0
  81. package/dist/active-docs/derived-memory.d.ts +57 -0
  82. package/dist/active-docs/derived-memory.js +161 -0
  83. package/dist/active-docs/derived-memory.js.map +1 -0
  84. package/dist/active-docs/index.d.ts +51 -0
  85. package/dist/active-docs/index.js +165 -0
  86. package/dist/active-docs/index.js.map +1 -0
  87. package/dist/active-docs/long-term-profile.d.ts +24 -0
  88. package/dist/active-docs/long-term-profile.js +75 -0
  89. package/dist/active-docs/long-term-profile.js.map +1 -0
  90. package/dist/active-docs/taskboard.d.ts +12 -0
  91. package/dist/active-docs/taskboard.js +146 -0
  92. package/dist/active-docs/taskboard.js.map +1 -0
  93. package/dist/active-docs/userprofile.d.ts +12 -0
  94. package/dist/active-docs/userprofile.js +169 -0
  95. package/dist/active-docs/userprofile.js.map +1 -0
  96. package/dist/cli/commands/doctor.d.ts +9 -0
  97. package/dist/cli/commands/doctor.js +125 -0
  98. package/dist/cli/commands/doctor.js.map +1 -0
  99. package/dist/cli/commands/init.d.ts +1 -0
  100. package/dist/cli/commands/init.js +129 -0
  101. package/dist/cli/commands/init.js.map +1 -0
  102. package/dist/cli/commands/rename.d.ts +7 -0
  103. package/dist/cli/commands/rename.js +188 -0
  104. package/dist/cli/commands/rename.js.map +1 -0
  105. package/dist/cli/commands/upgrade.d.ts +6 -0
  106. package/dist/cli/commands/upgrade.js +66 -0
  107. package/dist/cli/commands/upgrade.js.map +1 -0
  108. package/dist/cli/index.d.ts +1 -0
  109. package/dist/cli/index.js +52 -0
  110. package/dist/cli/index.js.map +1 -0
  111. package/dist/cli/utils/assets.d.ts +3 -0
  112. package/dist/cli/utils/assets.js +20 -0
  113. package/dist/cli/utils/assets.js.map +1 -0
  114. package/dist/cli/utils/install-assets.d.ts +39 -0
  115. package/dist/cli/utils/install-assets.js +141 -0
  116. package/dist/cli/utils/install-assets.js.map +1 -0
  117. package/dist/cli/utils/lang.d.ts +1 -0
  118. package/dist/cli/utils/lang.js +32 -0
  119. package/dist/cli/utils/lang.js.map +1 -0
  120. package/dist/cli/utils/managed-assets.d.ts +9 -0
  121. package/dist/cli/utils/managed-assets.js +20 -0
  122. package/dist/cli/utils/managed-assets.js.map +1 -0
  123. package/dist/cli/utils/mcp-register.d.ts +2 -0
  124. package/dist/cli/utils/mcp-register.js +132 -0
  125. package/dist/cli/utils/mcp-register.js.map +1 -0
  126. package/dist/cli/utils/sync-vault.d.ts +14 -0
  127. package/dist/cli/utils/sync-vault.js +132 -0
  128. package/dist/cli/utils/sync-vault.js.map +1 -0
  129. package/dist/cli/utils/ui.d.ts +14 -0
  130. package/dist/cli/utils/ui.js +78 -0
  131. package/dist/cli/utils/ui.js.map +1 -0
  132. package/dist/cli/utils/version.d.ts +1 -0
  133. package/dist/cli/utils/version.js +4 -0
  134. package/dist/cli/utils/version.js.map +1 -0
  135. package/dist/config.d.ts +127 -0
  136. package/dist/config.js +356 -0
  137. package/dist/config.js.map +1 -0
  138. package/dist/core.d.ts +106 -0
  139. package/dist/core.js +286 -0
  140. package/dist/core.js.map +1 -0
  141. package/dist/db/consolidation.d.ts +14 -0
  142. package/dist/db/consolidation.js +28 -0
  143. package/dist/db/consolidation.js.map +1 -0
  144. package/dist/db/index.d.ts +22 -0
  145. package/dist/db/index.js +39 -0
  146. package/dist/db/index.js.map +1 -0
  147. package/dist/db/schema.d.ts +7 -0
  148. package/dist/db/schema.js +175 -0
  149. package/dist/db/schema.js.map +1 -0
  150. package/dist/index.d.ts +3 -0
  151. package/dist/index.js +5 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/server.d.ts +6 -0
  154. package/dist/server.js +303 -0
  155. package/dist/server.js.map +1 -0
  156. package/dist/services/capture.d.ts +101 -0
  157. package/dist/services/capture.js +297 -0
  158. package/dist/services/capture.js.map +1 -0
  159. package/dist/services/enhance.d.ts +51 -0
  160. package/dist/services/enhance.js +184 -0
  161. package/dist/services/enhance.js.map +1 -0
  162. package/dist/services/layer0.d.ts +24 -0
  163. package/dist/services/layer0.js +90 -0
  164. package/dist/services/layer0.js.map +1 -0
  165. package/dist/services/maintenance.d.ts +27 -0
  166. package/dist/services/maintenance.js +73 -0
  167. package/dist/services/maintenance.js.map +1 -0
  168. package/dist/services/retrieval.d.ts +120 -0
  169. package/dist/services/retrieval.js +571 -0
  170. package/dist/services/retrieval.js.map +1 -0
  171. package/dist/services/startup.d.ts +28 -0
  172. package/dist/services/startup.js +112 -0
  173. package/dist/services/startup.js.map +1 -0
  174. package/dist/skill-context/ask-global.d.ts +8 -0
  175. package/dist/skill-context/ask-global.js +21 -0
  176. package/dist/skill-context/ask-global.js.map +1 -0
  177. package/dist/skill-context/base.d.ts +48 -0
  178. package/dist/skill-context/base.js +5 -0
  179. package/dist/skill-context/base.js.map +1 -0
  180. package/dist/skill-context/daily-global.d.ts +8 -0
  181. package/dist/skill-context/daily-global.js +25 -0
  182. package/dist/skill-context/daily-global.js.map +1 -0
  183. package/dist/skill-context/index.d.ts +32 -0
  184. package/dist/skill-context/index.js +171 -0
  185. package/dist/skill-context/index.js.map +1 -0
  186. package/dist/skill-context/knowledge-strict.d.ts +8 -0
  187. package/dist/skill-context/knowledge-strict.js +26 -0
  188. package/dist/skill-context/knowledge-strict.js.map +1 -0
  189. package/dist/skill-context/review-strict.d.ts +8 -0
  190. package/dist/skill-context/review-strict.js +26 -0
  191. package/dist/skill-context/review-strict.js.map +1 -0
  192. package/dist/skill-context/revise-strict.d.ts +8 -0
  193. package/dist/skill-context/revise-strict.js +26 -0
  194. package/dist/skill-context/revise-strict.js.map +1 -0
  195. package/dist/skill-context/seed-profiles.d.ts +21 -0
  196. package/dist/skill-context/seed-profiles.js +80 -0
  197. package/dist/skill-context/seed-profiles.js.map +1 -0
  198. package/dist/types.d.ts +165 -0
  199. package/dist/types.js +76 -0
  200. package/dist/types.js.map +1 -0
  201. package/dist/utils/context-policy.d.ts +57 -0
  202. package/dist/utils/context-policy.js +333 -0
  203. package/dist/utils/context-policy.js.map +1 -0
  204. package/dist/utils/scan-state.d.ts +41 -0
  205. package/dist/utils/scan-state.js +79 -0
  206. package/dist/utils/scan-state.js.map +1 -0
  207. package/dist/utils/segmenter.d.ts +19 -0
  208. package/dist/utils/segmenter.js +75 -0
  209. package/dist/utils/segmenter.js.map +1 -0
  210. package/dist/utils/shared.d.ts +103 -0
  211. package/dist/utils/shared.js +313 -0
  212. package/dist/utils/shared.js.map +1 -0
  213. package/dist/utils/vault-indexer.d.ts +53 -0
  214. package/dist/utils/vault-indexer.js +256 -0
  215. package/dist/utils/vault-indexer.js.map +1 -0
  216. package/package.json +59 -0
package/dist/server.js ADDED
@@ -0,0 +1,303 @@
1
+ /**
2
+ * server.ts — MCP Server 入口。
3
+ *
4
+ * Registers 11 memory tools and starts the stdio transport.
5
+ */
6
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
+ import { z } from 'zod';
9
+ import * as core from './core.js';
10
+ // ─── Server instance ──────────────────────────────────────────────────────────
11
+ const server = new McpServer({
12
+ name: 'lifeos',
13
+ version: '1.0.0',
14
+ });
15
+ // ─── Tool registrations ───────────────────────────────────────────────────────
16
+ // 1. memory_startup
17
+ server.tool('memory_startup', 'Start session: scan vault, build Layer 0 summary.', {
18
+ db_path: z
19
+ .string()
20
+ .default('')
21
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
22
+ vault_root: z.string().default(''),
23
+ session_id: z.string().optional(),
24
+ }, async ({ db_path, vault_root, session_id }) => {
25
+ const result = core.memoryStartup({
26
+ dbPath: db_path || undefined,
27
+ vaultRoot: vault_root || undefined,
28
+ sessionId: session_id,
29
+ });
30
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
31
+ });
32
+ // 2. memory_query
33
+ server.tool('memory_query', 'Search vault index for notes, projects, and knowledge.', {
34
+ db_path: z
35
+ .string()
36
+ .default('')
37
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
38
+ vault_root: z.string().default(''),
39
+ query: z.string().default(''),
40
+ filters: z.record(z.string()).optional(),
41
+ limit: z.number().int().min(1).max(50).default(10),
42
+ scene: z.string().optional(),
43
+ }, async ({ db_path, vault_root, query, filters, limit, scene }) => {
44
+ const result = core.memoryQuery({
45
+ dbPath: db_path || undefined,
46
+ vaultRoot: vault_root || undefined,
47
+ query: query || undefined,
48
+ filters,
49
+ limit,
50
+ scene,
51
+ });
52
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
53
+ });
54
+ // 3. memory_recent
55
+ server.tool('memory_recent', 'Query recent session log events (decisions, corrections, milestones, etc.).', {
56
+ db_path: z
57
+ .string()
58
+ .default('')
59
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
60
+ vault_root: z.string().default(''),
61
+ days: z.number().int().min(1).max(365).default(14),
62
+ entry_type: z.string().optional(),
63
+ scope: z.string().optional(),
64
+ query: z.string().optional(),
65
+ limit: z.number().int().min(1).max(100).default(20),
66
+ scene: z.string().optional(),
67
+ }, async ({ db_path, vault_root, days, entry_type, scope, query, limit, scene }) => {
68
+ const result = core.memoryRecent({
69
+ dbPath: db_path || undefined,
70
+ vaultRoot: vault_root || undefined,
71
+ days,
72
+ entryType: entry_type,
73
+ scope,
74
+ query,
75
+ limit,
76
+ scene,
77
+ });
78
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
79
+ });
80
+ // 4. memory_log
81
+ server.tool('memory_log', 'Log a single memory event (decision, correction, preference, milestone, etc.).', {
82
+ db_path: z
83
+ .string()
84
+ .default('')
85
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
86
+ entry_type: z.enum([
87
+ 'skill_completion',
88
+ 'decision',
89
+ 'preference',
90
+ 'correction',
91
+ 'blocker',
92
+ 'milestone',
93
+ 'session_bridge',
94
+ ]),
95
+ importance: z.number().int().min(1).max(5),
96
+ summary: z.string().min(1),
97
+ scope: z.string().optional(),
98
+ session_id: z.string().optional(),
99
+ skill_name: z.string().optional(),
100
+ detail: z.string().optional(),
101
+ source_refs: z.array(z.string()).optional(),
102
+ related_files: z.array(z.string()).optional(),
103
+ related_entities: z.array(z.string()).optional(),
104
+ supersedes: z.string().optional(),
105
+ }, async ({ db_path, entry_type, importance, summary, scope, session_id, skill_name, detail, source_refs, related_files, related_entities, supersedes, }) => {
106
+ const result = core.memoryLog({
107
+ dbPath: db_path || undefined,
108
+ entryType: entry_type,
109
+ importance,
110
+ summary,
111
+ scope,
112
+ sessionId: session_id,
113
+ skillName: skill_name,
114
+ detail,
115
+ sourceRefs: source_refs,
116
+ relatedFiles: related_files,
117
+ relatedEntities: related_entities,
118
+ supersedes,
119
+ });
120
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
121
+ });
122
+ // 5. memory_auto_capture
123
+ server.tool('memory_auto_capture', 'Batch capture corrections, decisions, and preferences from the current session.', {
124
+ db_path: z
125
+ .string()
126
+ .default('')
127
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
128
+ corrections: z
129
+ .array(z.object({
130
+ summary: z.string(),
131
+ detail: z.string().optional(),
132
+ importance: z.number().int().min(1).max(5).optional(),
133
+ scope: z.string().optional(),
134
+ related_files: z.array(z.string()).optional(),
135
+ }))
136
+ .optional(),
137
+ decisions: z
138
+ .array(z.object({
139
+ summary: z.string(),
140
+ detail: z.string().optional(),
141
+ importance: z.number().int().min(1).max(5).optional(),
142
+ scope: z.string().optional(),
143
+ related_files: z.array(z.string()).optional(),
144
+ }))
145
+ .optional(),
146
+ preferences: z
147
+ .array(z.object({
148
+ summary: z.string(),
149
+ detail: z.string().optional(),
150
+ importance: z.number().int().min(1).max(5).optional(),
151
+ scope: z.string().optional(),
152
+ related_files: z.array(z.string()).optional(),
153
+ }))
154
+ .optional(),
155
+ session_id: z.string().optional(),
156
+ }, async ({ db_path, corrections, decisions, preferences, session_id }) => {
157
+ const result = core.memoryAutoCapture({
158
+ dbPath: db_path || undefined,
159
+ corrections,
160
+ decisions,
161
+ preferences,
162
+ sessionId: session_id,
163
+ });
164
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
165
+ });
166
+ // 6. memory_notify
167
+ server.tool('memory_notify', 'Notify the memory system that a vault file has been created or modified.', {
168
+ db_path: z
169
+ .string()
170
+ .default('')
171
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
172
+ vault_root: z.string().default(''),
173
+ file_path: z.string().min(1),
174
+ }, async ({ db_path, vault_root, file_path }) => {
175
+ const result = core.memoryNotify({
176
+ dbPath: db_path || undefined,
177
+ vaultRoot: vault_root || undefined,
178
+ filePath: file_path,
179
+ });
180
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
181
+ });
182
+ // 7. memory_checkpoint
183
+ server.tool('memory_checkpoint', 'Close the current session: refresh active docs, process enhance queue, write session bridge.', {
184
+ db_path: z
185
+ .string()
186
+ .default('')
187
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
188
+ vault_root: z.string().default(''),
189
+ session_id: z.string().optional(),
190
+ }, async ({ db_path, vault_root, session_id }) => {
191
+ const result = core.memoryCheckpoint({
192
+ dbPath: db_path || undefined,
193
+ vaultRoot: vault_root || undefined,
194
+ sessionId: session_id,
195
+ });
196
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
197
+ });
198
+ // 8. memory_skill_complete
199
+ server.tool('memory_skill_complete', 'Record that a LifeOS skill has completed its execution.', {
200
+ db_path: z
201
+ .string()
202
+ .default('')
203
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
204
+ vault_root: z.string().default(''),
205
+ skill_name: z.string().min(1),
206
+ summary: z.string().min(1),
207
+ scope: z.string().optional(),
208
+ importance: z.number().int().min(1).max(5).optional(),
209
+ detail: z.string().optional(),
210
+ related_files: z.array(z.string()).optional(),
211
+ related_entities: z.array(z.string()).optional(),
212
+ context_sources: z.array(z.string()).optional(),
213
+ refresh_targets: z.array(z.string()).optional(),
214
+ }, async ({ db_path, vault_root, skill_name, summary, scope, importance, detail, related_files, related_entities, context_sources, refresh_targets, }) => {
215
+ const result = core.memorySkillComplete({
216
+ dbPath: db_path || undefined,
217
+ vaultRoot: vault_root || undefined,
218
+ skillName: skill_name,
219
+ summary,
220
+ scope,
221
+ importance,
222
+ detail,
223
+ relatedFiles: related_files,
224
+ relatedEntities: related_entities,
225
+ contextSources: context_sources,
226
+ refreshTargets: refresh_targets,
227
+ });
228
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
229
+ });
230
+ // 9. memory_refresh
231
+ server.tool('memory_refresh', 'Rebuild AUTO sections of an active doc (TaskBoard or UserProfile) from DB data.', {
232
+ db_path: z
233
+ .string()
234
+ .default('')
235
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
236
+ vault_root: z.string().default(''),
237
+ target: z.enum(['TaskBoard', 'UserProfile']),
238
+ section: z.string().optional(),
239
+ preserve_manual: z.boolean().optional(),
240
+ }, async ({ db_path, vault_root, target, section, preserve_manual }) => {
241
+ const result = core.memoryRefresh({
242
+ dbPath: db_path || undefined,
243
+ vaultRoot: vault_root || undefined,
244
+ target,
245
+ section,
246
+ preserveManual: preserve_manual,
247
+ });
248
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
249
+ });
250
+ // 10. memory_citations
251
+ server.tool('memory_citations', 'Get source event citations for items in TaskBoard or UserProfile.', {
252
+ db_path: z
253
+ .string()
254
+ .default('')
255
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
256
+ vault_root: z.string().default(''),
257
+ target: z.enum(['TaskBoard', 'UserProfile']),
258
+ section: z.string().optional(),
259
+ keyword: z.string().optional(),
260
+ }, async ({ db_path, vault_root, target, section, keyword }) => {
261
+ const result = core.memoryCitations({
262
+ dbPath: db_path || undefined,
263
+ vaultRoot: vault_root || undefined,
264
+ target,
265
+ section,
266
+ keyword,
267
+ });
268
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
269
+ });
270
+ // 11. memory_skill_context
271
+ server.tool('memory_skill_context', 'Assemble skill execution context using a named seed profile.', {
272
+ db_path: z
273
+ .string()
274
+ .default('')
275
+ .describe('Optional. Auto-resolved from vault_root + lifeos.yaml. Do NOT construct manually.'),
276
+ vault_root: z.string().default(''),
277
+ skill_profile: z.string().min(1),
278
+ related_files: z.array(z.string()).optional(),
279
+ query: z.string().optional(),
280
+ limit: z.number().int().min(1).max(50).optional(),
281
+ }, async ({ db_path, vault_root, skill_profile, related_files, query, limit }) => {
282
+ const result = core.memorySkillContext({
283
+ dbPath: db_path || undefined,
284
+ vaultRoot: vault_root || undefined,
285
+ skillProfile: skill_profile,
286
+ relatedFiles: related_files,
287
+ query,
288
+ limit,
289
+ });
290
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
291
+ });
292
+ // ─── Entry point ──────────────────────────────────────────────────────────────
293
+ async function main() {
294
+ const args = process.argv.slice(2);
295
+ const vaultRootIdx = args.indexOf('--vault-root');
296
+ if (vaultRootIdx !== -1 && args[vaultRootIdx + 1]) {
297
+ process.env.LIFEOS_VAULT_ROOT = args[vaultRootIdx + 1];
298
+ }
299
+ const transport = new StdioServerTransport();
300
+ await server.connect(transport);
301
+ }
302
+ main().catch(console.error);
303
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * capture.ts — 捕获服务。
3
+ *
4
+ * Handles event logging, file change notifications, auto-capture,
5
+ * and session bridge helpers.
6
+ */
7
+ import type Database from 'better-sqlite3';
8
+ export interface LogEventOpts {
9
+ entryType: string;
10
+ importance: number;
11
+ summary: string;
12
+ scope?: string;
13
+ sessionId?: string;
14
+ skillName?: string;
15
+ detail?: string | null;
16
+ sourceRefs?: string[] | null;
17
+ relatedFiles?: string[] | null;
18
+ relatedEntities?: string[] | null;
19
+ supersedes?: string | null;
20
+ }
21
+ export interface LogEventResult {
22
+ eventId: string;
23
+ timestamp: string;
24
+ status: string;
25
+ }
26
+ export interface AutoCaptureItem {
27
+ summary: string;
28
+ detail?: string;
29
+ importance?: number;
30
+ scope?: string;
31
+ relatedFiles?: string[];
32
+ }
33
+ export interface AutoCapturePayload {
34
+ corrections?: AutoCaptureItem[];
35
+ decisions?: AutoCaptureItem[];
36
+ preferences?: AutoCaptureItem[];
37
+ }
38
+ export interface CapturedEventRef {
39
+ eventId: string;
40
+ entryType: string;
41
+ summary: string;
42
+ }
43
+ export interface AutoCaptureResult {
44
+ capturedCount: number;
45
+ events: CapturedEventRef[];
46
+ }
47
+ export interface SessionBridgeRow {
48
+ eventId: string;
49
+ sessionId: string;
50
+ summary: string;
51
+ detail: string | null;
52
+ timestamp: string;
53
+ }
54
+ export interface SeedEvent {
55
+ entryType: string;
56
+ summary: string;
57
+ importance?: number;
58
+ }
59
+ /**
60
+ * Log a single event into session_log.
61
+ * Handles detail normalization for rule events and auto-supersedes.
62
+ */
63
+ export declare function logEvent(db: Database.Database, opts: LogEventOpts): LogEventResult;
64
+ /**
65
+ * Batch capture corrections/decisions/preferences.
66
+ * Deduplicates by entry_hash across both existing DB records and current batch.
67
+ */
68
+ export declare function autoCaptureEvents(db: Database.Database, payload: AutoCapturePayload, sessionId?: string): AutoCaptureResult;
69
+ export interface NotifyFileChangedResult {
70
+ action: string;
71
+ filePath: string;
72
+ }
73
+ /**
74
+ * Notify the system that a file has changed.
75
+ * Re-indexes the file and updates the enhance queue if applicable.
76
+ */
77
+ export declare function notifyFileChanged(db: Database.Database, vaultRoot: string, filePath: string): NotifyFileChangedResult;
78
+ /**
79
+ * Query the most recent session_bridge event.
80
+ * Optionally filter by session_id.
81
+ */
82
+ export declare function latestSessionBridge(db: Database.Database, sessionId?: string): SessionBridgeRow | null;
83
+ /**
84
+ * Collect the most recent key events for a session to use as bridge seeds.
85
+ * Returns decisions, corrections, milestones, and skill_completions.
86
+ */
87
+ export declare function collectSessionBridgeSeedEvents(db: Database.Database, sessionId: string, limit?: number): SeedEvent[];
88
+ /**
89
+ * Generate a bridge text summary from a list of seed events.
90
+ * Used to create session_bridge entries that persist context across sessions.
91
+ */
92
+ export declare function buildAutoSessionBridge(events: SeedEvent[]): string;
93
+ export interface RecentlyModifiedFile {
94
+ filePath: string;
95
+ modifiedAt: string;
96
+ }
97
+ /**
98
+ * Scan for files in the vault that have been modified in the last 24 hours.
99
+ * Uses the vault_index table modified_at field.
100
+ */
101
+ export declare function scanRecentlyModifiedFiles(db: Database.Database, _vaultRoot: string): RecentlyModifiedFile[];