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.
- package/LICENSE +21 -0
- package/README.en.md +202 -0
- package/README.md +202 -0
- package/assets/lifeos-rules.en.md +162 -0
- package/assets/lifeos-rules.zh.md +162 -0
- package/assets/lifeos.yaml +56 -0
- package/assets/prompts/AI_LLMResearch_Prompt.en.md +120 -0
- package/assets/prompts/AI_LLMResearch_Prompt.zh.md +120 -0
- package/assets/prompts/Art_ChinesePainting_Prompt.en.md +147 -0
- package/assets/prompts/Art_ChinesePainting_Prompt.zh.md +148 -0
- package/assets/prompts/Cryptography_Prompt.en.md +148 -0
- package/assets/prompts/Cryptography_Prompt.zh.md +147 -0
- package/assets/prompts/History_ChineseCulture_Prompt.en.md +98 -0
- package/assets/prompts/History_ChineseCulture_Prompt.zh.md +98 -0
- package/assets/prompts/Math_HigherMathematics_Prompt.en.md +117 -0
- package/assets/prompts/Math_HigherMathematics_Prompt.zh.md +116 -0
- package/assets/schema/Frontmatter_Schema.md +139 -0
- package/assets/skills/_shared/completion-report.en.md +30 -0
- package/assets/skills/_shared/completion-report.zh.md +30 -0
- package/assets/skills/_shared/dual-agent-orchestrator.en.md +40 -0
- package/assets/skills/_shared/dual-agent-orchestrator.zh.md +40 -0
- package/assets/skills/_shared/learning-lifecycle.en.md +53 -0
- package/assets/skills/_shared/learning-lifecycle.zh.md +53 -0
- package/assets/skills/_shared/lifecycle.en.md +84 -0
- package/assets/skills/_shared/lifecycle.zh.md +84 -0
- package/assets/skills/_shared/memory-protocol.en.md +36 -0
- package/assets/skills/_shared/memory-protocol.zh.md +36 -0
- package/assets/skills/_shared/template-loading.en.md +26 -0
- package/assets/skills/_shared/template-loading.zh.md +26 -0
- package/assets/skills/archive/SKILL.en.md +300 -0
- package/assets/skills/archive/SKILL.zh.md +300 -0
- package/assets/skills/ask/SKILL.en.md +164 -0
- package/assets/skills/ask/SKILL.zh.md +164 -0
- package/assets/skills/brainstorm/SKILL.en.md +242 -0
- package/assets/skills/brainstorm/SKILL.zh.md +242 -0
- package/assets/skills/brainstorm/references/action-options.en.md +65 -0
- package/assets/skills/brainstorm/references/action-options.zh.md +65 -0
- package/assets/skills/knowledge/SKILL.en.md +202 -0
- package/assets/skills/knowledge/SKILL.zh.md +202 -0
- package/assets/skills/project/SKILL.en.md +133 -0
- package/assets/skills/project/SKILL.zh.md +133 -0
- package/assets/skills/project/references/execution-agent-prompt.en.md +148 -0
- package/assets/skills/project/references/execution-agent-prompt.zh.md +148 -0
- package/assets/skills/project/references/planning-agent-prompt.en.md +162 -0
- package/assets/skills/project/references/planning-agent-prompt.zh.md +162 -0
- package/assets/skills/read-pdf/SKILL.en.md +199 -0
- package/assets/skills/read-pdf/SKILL.zh.md +199 -0
- package/assets/skills/read-pdf/scripts/read_pdf.py +354 -0
- package/assets/skills/research/SKILL.en.md +107 -0
- package/assets/skills/research/SKILL.zh.md +107 -0
- package/assets/skills/research/references/execution-agent-prompt.en.md +166 -0
- package/assets/skills/research/references/execution-agent-prompt.zh.md +166 -0
- package/assets/skills/research/references/planning-agent-prompt.en.md +129 -0
- package/assets/skills/research/references/planning-agent-prompt.zh.md +129 -0
- package/assets/skills/revise/SKILL.en.md +258 -0
- package/assets/skills/revise/SKILL.zh.md +258 -0
- package/assets/skills/revise/references/grading-protocol.en.md +99 -0
- package/assets/skills/revise/references/grading-protocol.zh.md +99 -0
- package/assets/skills/today/SKILL.en.md +211 -0
- package/assets/skills/today/SKILL.zh.md +211 -0
- package/assets/templates/en/Daily_Template.md +25 -0
- package/assets/templates/en/Draft_Template.md +29 -0
- package/assets/templates/en/Knowledge_Template.md +86 -0
- package/assets/templates/en/Project_Template.md +110 -0
- package/assets/templates/en/Research_Template.md +46 -0
- package/assets/templates/en/Retrospective_Template.md +89 -0
- package/assets/templates/en/Revise_Template.md +24 -0
- package/assets/templates/en/Wiki_Template.md +35 -0
- package/assets/templates/zh/Daily_Template.md +26 -0
- package/assets/templates/zh/Draft_Template.md +29 -0
- package/assets/templates/zh/Knowledge_Template.md +86 -0
- package/assets/templates/zh/Project_Template.md +110 -0
- package/assets/templates/zh/Research_Template.md +46 -0
- package/assets/templates/zh/Retrospective_Template.md +89 -0
- package/assets/templates/zh/Revise_Template.md +24 -0
- package/assets/templates/zh/Wiki_Template.md +35 -0
- package/bin/lifeos.js +24 -0
- package/dist/active-docs/citations.d.ts +20 -0
- package/dist/active-docs/citations.js +74 -0
- package/dist/active-docs/citations.js.map +1 -0
- package/dist/active-docs/derived-memory.d.ts +57 -0
- package/dist/active-docs/derived-memory.js +161 -0
- package/dist/active-docs/derived-memory.js.map +1 -0
- package/dist/active-docs/index.d.ts +51 -0
- package/dist/active-docs/index.js +165 -0
- package/dist/active-docs/index.js.map +1 -0
- package/dist/active-docs/long-term-profile.d.ts +24 -0
- package/dist/active-docs/long-term-profile.js +75 -0
- package/dist/active-docs/long-term-profile.js.map +1 -0
- package/dist/active-docs/taskboard.d.ts +12 -0
- package/dist/active-docs/taskboard.js +146 -0
- package/dist/active-docs/taskboard.js.map +1 -0
- package/dist/active-docs/userprofile.d.ts +12 -0
- package/dist/active-docs/userprofile.js +169 -0
- package/dist/active-docs/userprofile.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +9 -0
- package/dist/cli/commands/doctor.js +125 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.js +129 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/rename.d.ts +7 -0
- package/dist/cli/commands/rename.js +188 -0
- package/dist/cli/commands/rename.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +6 -0
- package/dist/cli/commands/upgrade.js +66 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +52 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/assets.d.ts +3 -0
- package/dist/cli/utils/assets.js +20 -0
- package/dist/cli/utils/assets.js.map +1 -0
- package/dist/cli/utils/install-assets.d.ts +39 -0
- package/dist/cli/utils/install-assets.js +141 -0
- package/dist/cli/utils/install-assets.js.map +1 -0
- package/dist/cli/utils/lang.d.ts +1 -0
- package/dist/cli/utils/lang.js +32 -0
- package/dist/cli/utils/lang.js.map +1 -0
- package/dist/cli/utils/managed-assets.d.ts +9 -0
- package/dist/cli/utils/managed-assets.js +20 -0
- package/dist/cli/utils/managed-assets.js.map +1 -0
- package/dist/cli/utils/mcp-register.d.ts +2 -0
- package/dist/cli/utils/mcp-register.js +132 -0
- package/dist/cli/utils/mcp-register.js.map +1 -0
- package/dist/cli/utils/sync-vault.d.ts +14 -0
- package/dist/cli/utils/sync-vault.js +132 -0
- package/dist/cli/utils/sync-vault.js.map +1 -0
- package/dist/cli/utils/ui.d.ts +14 -0
- package/dist/cli/utils/ui.js +78 -0
- package/dist/cli/utils/ui.js.map +1 -0
- package/dist/cli/utils/version.d.ts +1 -0
- package/dist/cli/utils/version.js +4 -0
- package/dist/cli/utils/version.js.map +1 -0
- package/dist/config.d.ts +127 -0
- package/dist/config.js +356 -0
- package/dist/config.js.map +1 -0
- package/dist/core.d.ts +106 -0
- package/dist/core.js +286 -0
- package/dist/core.js.map +1 -0
- package/dist/db/consolidation.d.ts +14 -0
- package/dist/db/consolidation.js +28 -0
- package/dist/db/consolidation.js.map +1 -0
- package/dist/db/index.d.ts +22 -0
- package/dist/db/index.js +39 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +7 -0
- package/dist/db/schema.js +175 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +303 -0
- package/dist/server.js.map +1 -0
- package/dist/services/capture.d.ts +101 -0
- package/dist/services/capture.js +297 -0
- package/dist/services/capture.js.map +1 -0
- package/dist/services/enhance.d.ts +51 -0
- package/dist/services/enhance.js +184 -0
- package/dist/services/enhance.js.map +1 -0
- package/dist/services/layer0.d.ts +24 -0
- package/dist/services/layer0.js +90 -0
- package/dist/services/layer0.js.map +1 -0
- package/dist/services/maintenance.d.ts +27 -0
- package/dist/services/maintenance.js +73 -0
- package/dist/services/maintenance.js.map +1 -0
- package/dist/services/retrieval.d.ts +120 -0
- package/dist/services/retrieval.js +571 -0
- package/dist/services/retrieval.js.map +1 -0
- package/dist/services/startup.d.ts +28 -0
- package/dist/services/startup.js +112 -0
- package/dist/services/startup.js.map +1 -0
- package/dist/skill-context/ask-global.d.ts +8 -0
- package/dist/skill-context/ask-global.js +21 -0
- package/dist/skill-context/ask-global.js.map +1 -0
- package/dist/skill-context/base.d.ts +48 -0
- package/dist/skill-context/base.js +5 -0
- package/dist/skill-context/base.js.map +1 -0
- package/dist/skill-context/daily-global.d.ts +8 -0
- package/dist/skill-context/daily-global.js +25 -0
- package/dist/skill-context/daily-global.js.map +1 -0
- package/dist/skill-context/index.d.ts +32 -0
- package/dist/skill-context/index.js +171 -0
- package/dist/skill-context/index.js.map +1 -0
- package/dist/skill-context/knowledge-strict.d.ts +8 -0
- package/dist/skill-context/knowledge-strict.js +26 -0
- package/dist/skill-context/knowledge-strict.js.map +1 -0
- package/dist/skill-context/review-strict.d.ts +8 -0
- package/dist/skill-context/review-strict.js +26 -0
- package/dist/skill-context/review-strict.js.map +1 -0
- package/dist/skill-context/revise-strict.d.ts +8 -0
- package/dist/skill-context/revise-strict.js +26 -0
- package/dist/skill-context/revise-strict.js.map +1 -0
- package/dist/skill-context/seed-profiles.d.ts +21 -0
- package/dist/skill-context/seed-profiles.js +80 -0
- package/dist/skill-context/seed-profiles.js.map +1 -0
- package/dist/types.d.ts +165 -0
- package/dist/types.js +76 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/context-policy.d.ts +57 -0
- package/dist/utils/context-policy.js +333 -0
- package/dist/utils/context-policy.js.map +1 -0
- package/dist/utils/scan-state.d.ts +41 -0
- package/dist/utils/scan-state.js +79 -0
- package/dist/utils/scan-state.js.map +1 -0
- package/dist/utils/segmenter.d.ts +19 -0
- package/dist/utils/segmenter.js +75 -0
- package/dist/utils/segmenter.js.map +1 -0
- package/dist/utils/shared.d.ts +103 -0
- package/dist/utils/shared.js +313 -0
- package/dist/utils/shared.js.map +1 -0
- package/dist/utils/vault-indexer.d.ts +53 -0
- package/dist/utils/vault-indexer.js +256 -0
- package/dist/utils/vault-indexer.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config.ts — LifeOS 路径解析的唯一入口。
|
|
3
|
+
*
|
|
4
|
+
* Provides VaultConfig class and module-level singleton helpers.
|
|
5
|
+
*/
|
|
6
|
+
interface DirectoriesConfig {
|
|
7
|
+
drafts: string;
|
|
8
|
+
diary: string;
|
|
9
|
+
projects: string;
|
|
10
|
+
research: string;
|
|
11
|
+
knowledge: string;
|
|
12
|
+
outputs: string;
|
|
13
|
+
plans: string;
|
|
14
|
+
resources: string;
|
|
15
|
+
reflection: string;
|
|
16
|
+
system: string;
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
}
|
|
19
|
+
interface SubdirectoriesConfig {
|
|
20
|
+
knowledge: {
|
|
21
|
+
notes: string;
|
|
22
|
+
wiki: string;
|
|
23
|
+
};
|
|
24
|
+
resources: {
|
|
25
|
+
books: string;
|
|
26
|
+
literature: string;
|
|
27
|
+
};
|
|
28
|
+
system: {
|
|
29
|
+
templates: string;
|
|
30
|
+
schema: string;
|
|
31
|
+
memory: string;
|
|
32
|
+
prompts: string;
|
|
33
|
+
archive: {
|
|
34
|
+
projects: string;
|
|
35
|
+
drafts: string;
|
|
36
|
+
plans: string;
|
|
37
|
+
diary: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
interface MemoryConfig {
|
|
42
|
+
db_name: string;
|
|
43
|
+
scan_prefixes: string[];
|
|
44
|
+
excluded_prefixes: string[];
|
|
45
|
+
enhance_priority: Record<string, number>;
|
|
46
|
+
context_budgets: Record<string, number>;
|
|
47
|
+
}
|
|
48
|
+
interface ManagedAssetRecord {
|
|
49
|
+
version: string;
|
|
50
|
+
sha256: string;
|
|
51
|
+
}
|
|
52
|
+
interface LifeOSConfig {
|
|
53
|
+
version?: string;
|
|
54
|
+
language: string;
|
|
55
|
+
directories: DirectoriesConfig;
|
|
56
|
+
subdirectories: SubdirectoriesConfig;
|
|
57
|
+
memory: MemoryConfig;
|
|
58
|
+
installed_versions?: {
|
|
59
|
+
cli?: string;
|
|
60
|
+
assets?: string;
|
|
61
|
+
};
|
|
62
|
+
managed_assets?: Record<string, ManagedAssetRecord>;
|
|
63
|
+
[key: string]: unknown;
|
|
64
|
+
}
|
|
65
|
+
declare const ZH_PRESET: LifeOSConfig;
|
|
66
|
+
declare const EN_PRESET: LifeOSConfig;
|
|
67
|
+
export declare class VaultConfig {
|
|
68
|
+
private readonly _vaultRoot;
|
|
69
|
+
private readonly _config;
|
|
70
|
+
constructor(vaultRoot: string, config?: Record<string, unknown>);
|
|
71
|
+
private _load;
|
|
72
|
+
get vaultRoot(): string;
|
|
73
|
+
get rawConfig(): LifeOSConfig;
|
|
74
|
+
/** Resolve a logical directory name to an absolute filesystem path. */
|
|
75
|
+
dirPath(logicalName: string): string;
|
|
76
|
+
/** Returns the physical directory name with a trailing slash (for prefix matching). */
|
|
77
|
+
dirPrefix(logicalName: string): string;
|
|
78
|
+
/** Resolve a logical subdirectory name to an absolute filesystem path. */
|
|
79
|
+
subDirPath(parent: string, child: string): string;
|
|
80
|
+
/** Returns the relative prefix for a subdirectory (parent/sub/). */
|
|
81
|
+
subDirPrefix(parent: string, child: string): string;
|
|
82
|
+
/** List of physical directory prefixes (with slash) to scan for indexing. */
|
|
83
|
+
scanPrefixes(): string[];
|
|
84
|
+
/** List of physical directory prefixes (with slash) to exclude from indexing. */
|
|
85
|
+
excludedPrefixes(): string[];
|
|
86
|
+
/** Absolute path to the memory subdirectory. */
|
|
87
|
+
memoryDir(): string;
|
|
88
|
+
/** Absolute path to the SQLite database file. */
|
|
89
|
+
dbPath(): string;
|
|
90
|
+
/** Map of physical directory prefix → enhance priority weight. */
|
|
91
|
+
enhancePriority(): Record<string, number>;
|
|
92
|
+
/** Context budget configuration object. */
|
|
93
|
+
contextBudgets(): Record<string, number>;
|
|
94
|
+
/**
|
|
95
|
+
* Infer a domain name from a vault-relative file path.
|
|
96
|
+
* Returns null if the path does not belong to a domain-organized directory.
|
|
97
|
+
*/
|
|
98
|
+
inferDomainFromPath(relPath: string): string | null;
|
|
99
|
+
/**
|
|
100
|
+
* Map a vault-relative file path to a document bucket type.
|
|
101
|
+
* Returns null if the path does not match any known bucket.
|
|
102
|
+
*/
|
|
103
|
+
pathToBucket(relPath: string): string | null;
|
|
104
|
+
}
|
|
105
|
+
/** Get the current global VaultConfig (null if not set). */
|
|
106
|
+
export declare function getVaultConfig(): VaultConfig | null;
|
|
107
|
+
/** Set the global VaultConfig singleton. */
|
|
108
|
+
export declare function setVaultConfig(cfg: VaultConfig): void;
|
|
109
|
+
/**
|
|
110
|
+
* Get the existing singleton or create a new one from vaultRoot.
|
|
111
|
+
* Throws if no singleton exists and vaultRoot is not provided.
|
|
112
|
+
*/
|
|
113
|
+
export declare function getOrCreateVaultConfig(vaultRoot?: string): VaultConfig;
|
|
114
|
+
/**
|
|
115
|
+
* Convenience factory: create a VaultConfig from a vault root path.
|
|
116
|
+
* Does NOT register it as the global singleton.
|
|
117
|
+
*/
|
|
118
|
+
export declare function resolveConfig(vaultRoot: string, config?: Record<string, unknown>): VaultConfig;
|
|
119
|
+
/**
|
|
120
|
+
* Reset the module-level singleton (for use in tests only).
|
|
121
|
+
*/
|
|
122
|
+
export declare function _resetDefaultInstance(): void;
|
|
123
|
+
/** Reflection subdirectory names by language */
|
|
124
|
+
declare const ZH_REFLECTION_SUBS: readonly string[];
|
|
125
|
+
declare const EN_REFLECTION_SUBS: readonly string[];
|
|
126
|
+
export { ZH_PRESET, EN_PRESET, ZH_REFLECTION_SUBS, EN_REFLECTION_SUBS };
|
|
127
|
+
export type { LifeOSConfig, ManagedAssetRecord };
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* config.ts — LifeOS 路径解析的唯一入口。
|
|
3
|
+
*
|
|
4
|
+
* Provides VaultConfig class and module-level singleton helpers.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
7
|
+
import { join, resolve } from 'node:path';
|
|
8
|
+
import { parse as parseYaml } from 'yaml';
|
|
9
|
+
// ─── Presets ──────────────────────────────────────────────────────────────────
|
|
10
|
+
const ZH_PRESET = {
|
|
11
|
+
version: '1.0',
|
|
12
|
+
language: 'zh',
|
|
13
|
+
directories: {
|
|
14
|
+
drafts: '00_草稿',
|
|
15
|
+
diary: '10_日记',
|
|
16
|
+
projects: '20_项目',
|
|
17
|
+
research: '30_研究',
|
|
18
|
+
knowledge: '40_知识',
|
|
19
|
+
outputs: '50_成果',
|
|
20
|
+
plans: '60_计划',
|
|
21
|
+
resources: '70_资源',
|
|
22
|
+
reflection: '80_复盘',
|
|
23
|
+
system: '90_系统',
|
|
24
|
+
},
|
|
25
|
+
subdirectories: {
|
|
26
|
+
knowledge: { notes: '笔记', wiki: '百科' },
|
|
27
|
+
resources: { books: '书籍', literature: '文献' },
|
|
28
|
+
system: {
|
|
29
|
+
templates: '模板',
|
|
30
|
+
schema: '规范',
|
|
31
|
+
memory: '记忆',
|
|
32
|
+
prompts: '提示词',
|
|
33
|
+
archive: {
|
|
34
|
+
projects: '归档/项目',
|
|
35
|
+
drafts: '归档/草稿',
|
|
36
|
+
plans: '归档/计划',
|
|
37
|
+
diary: '归档/日记',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
memory: {
|
|
42
|
+
db_name: 'memory.db',
|
|
43
|
+
scan_prefixes: [
|
|
44
|
+
'drafts',
|
|
45
|
+
'diary',
|
|
46
|
+
'projects',
|
|
47
|
+
'research',
|
|
48
|
+
'knowledge',
|
|
49
|
+
'outputs',
|
|
50
|
+
'plans',
|
|
51
|
+
'resources',
|
|
52
|
+
'reflection',
|
|
53
|
+
],
|
|
54
|
+
excluded_prefixes: ['system'],
|
|
55
|
+
enhance_priority: { projects: 8, knowledge: 6 },
|
|
56
|
+
context_budgets: {
|
|
57
|
+
layer0_total: 1200,
|
|
58
|
+
userprofile_summary: 400,
|
|
59
|
+
taskboard_focus: 800,
|
|
60
|
+
userprofile_doc_limit: 2000,
|
|
61
|
+
taskboard_doc_limit: 3000,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
const EN_PRESET = {
|
|
66
|
+
version: '1.0',
|
|
67
|
+
language: 'en',
|
|
68
|
+
directories: {
|
|
69
|
+
drafts: '00_Drafts',
|
|
70
|
+
diary: '10_Diary',
|
|
71
|
+
projects: '20_Projects',
|
|
72
|
+
research: '30_Research',
|
|
73
|
+
knowledge: '40_Knowledge',
|
|
74
|
+
outputs: '50_Outputs',
|
|
75
|
+
plans: '60_Plans',
|
|
76
|
+
resources: '70_Resources',
|
|
77
|
+
reflection: '80_Reflection',
|
|
78
|
+
system: '90_System',
|
|
79
|
+
},
|
|
80
|
+
subdirectories: {
|
|
81
|
+
knowledge: { notes: 'Notes', wiki: 'Wiki' },
|
|
82
|
+
resources: { books: 'Books', literature: 'Literature' },
|
|
83
|
+
system: {
|
|
84
|
+
templates: 'Templates',
|
|
85
|
+
schema: 'Schema',
|
|
86
|
+
memory: 'Memory',
|
|
87
|
+
prompts: 'Prompts',
|
|
88
|
+
archive: {
|
|
89
|
+
projects: 'Archive/Projects',
|
|
90
|
+
drafts: 'Archive/Drafts',
|
|
91
|
+
plans: 'Archive/Plans',
|
|
92
|
+
diary: 'Archive/Diary',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
memory: {
|
|
97
|
+
db_name: 'memory.db',
|
|
98
|
+
scan_prefixes: [
|
|
99
|
+
'drafts',
|
|
100
|
+
'diary',
|
|
101
|
+
'projects',
|
|
102
|
+
'research',
|
|
103
|
+
'knowledge',
|
|
104
|
+
'outputs',
|
|
105
|
+
'plans',
|
|
106
|
+
'resources',
|
|
107
|
+
'reflection',
|
|
108
|
+
],
|
|
109
|
+
excluded_prefixes: ['system'],
|
|
110
|
+
enhance_priority: { projects: 8, knowledge: 6 },
|
|
111
|
+
context_budgets: {
|
|
112
|
+
layer0_total: 1200,
|
|
113
|
+
userprofile_summary: 400,
|
|
114
|
+
taskboard_focus: 800,
|
|
115
|
+
userprofile_doc_limit: 2000,
|
|
116
|
+
taskboard_doc_limit: 3000,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
// ─── Constants ────────────────────────────────────────────────────────────────
|
|
121
|
+
/** Maps directory logical name → document bucket type */
|
|
122
|
+
const LOGICAL_TO_BUCKET = {
|
|
123
|
+
diary: 'daily',
|
|
124
|
+
drafts: 'draft',
|
|
125
|
+
projects: 'project',
|
|
126
|
+
research: 'research',
|
|
127
|
+
knowledge: 'knowledge',
|
|
128
|
+
resources: 'resource',
|
|
129
|
+
};
|
|
130
|
+
// ─── Utilities ────────────────────────────────────────────────────────────────
|
|
131
|
+
function loadPreset(language) {
|
|
132
|
+
return language === 'en' ? { ...EN_PRESET } : { ...ZH_PRESET };
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Deep-merges override into base. Objects are merged recursively;
|
|
136
|
+
* all other types are overwritten.
|
|
137
|
+
*/
|
|
138
|
+
function deepMerge(base, override) {
|
|
139
|
+
const result = { ...base };
|
|
140
|
+
for (const [key, value] of Object.entries(override)) {
|
|
141
|
+
if (key in result &&
|
|
142
|
+
typeof result[key] === 'object' &&
|
|
143
|
+
result[key] !== null &&
|
|
144
|
+
!Array.isArray(result[key]) &&
|
|
145
|
+
typeof value === 'object' &&
|
|
146
|
+
value !== null &&
|
|
147
|
+
!Array.isArray(value)) {
|
|
148
|
+
result[key] = deepMerge(result[key], value);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
result[key] = value;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
// ─── VaultConfig class ────────────────────────────────────────────────────────
|
|
157
|
+
export class VaultConfig {
|
|
158
|
+
_vaultRoot;
|
|
159
|
+
_config;
|
|
160
|
+
constructor(vaultRoot, config) {
|
|
161
|
+
this._vaultRoot = resolve(vaultRoot);
|
|
162
|
+
this._config = this._load(config);
|
|
163
|
+
}
|
|
164
|
+
_load(config) {
|
|
165
|
+
if (config !== undefined) {
|
|
166
|
+
const lang = config.language ?? 'zh';
|
|
167
|
+
const preset = loadPreset(lang);
|
|
168
|
+
return deepMerge(preset, config);
|
|
169
|
+
}
|
|
170
|
+
const yamlPath = join(this._vaultRoot, 'lifeos.yaml');
|
|
171
|
+
if (existsSync(yamlPath)) {
|
|
172
|
+
const raw = readFileSync(yamlPath, 'utf-8');
|
|
173
|
+
const userConfig = parseYaml(raw) ?? {};
|
|
174
|
+
const lang = userConfig.language ?? 'zh';
|
|
175
|
+
const preset = loadPreset(lang);
|
|
176
|
+
return deepMerge(preset, userConfig);
|
|
177
|
+
}
|
|
178
|
+
// No yaml file — detect from vault contents (default to zh)
|
|
179
|
+
return loadPreset('zh');
|
|
180
|
+
}
|
|
181
|
+
// ── Accessors ──────────────────────────────────────────────────────────────
|
|
182
|
+
get vaultRoot() {
|
|
183
|
+
return this._vaultRoot;
|
|
184
|
+
}
|
|
185
|
+
get rawConfig() {
|
|
186
|
+
return this._config;
|
|
187
|
+
}
|
|
188
|
+
// ── Directory helpers ──────────────────────────────────────────────────────
|
|
189
|
+
/** Resolve a logical directory name to an absolute filesystem path. */
|
|
190
|
+
dirPath(logicalName) {
|
|
191
|
+
const dirs = this._config.directories;
|
|
192
|
+
if (!(logicalName in dirs)) {
|
|
193
|
+
throw new Error(`Unknown directory: ${logicalName}`);
|
|
194
|
+
}
|
|
195
|
+
return join(this._vaultRoot, dirs[logicalName]);
|
|
196
|
+
}
|
|
197
|
+
/** Returns the physical directory name with a trailing slash (for prefix matching). */
|
|
198
|
+
dirPrefix(logicalName) {
|
|
199
|
+
const dirs = this._config.directories;
|
|
200
|
+
if (!(logicalName in dirs)) {
|
|
201
|
+
throw new Error(`Unknown directory: ${logicalName}`);
|
|
202
|
+
}
|
|
203
|
+
return `${dirs[logicalName]}/`;
|
|
204
|
+
}
|
|
205
|
+
/** Resolve a logical subdirectory name to an absolute filesystem path. */
|
|
206
|
+
subDirPath(parent, child) {
|
|
207
|
+
const parentDir = this._config.directories[parent];
|
|
208
|
+
if (!parentDir)
|
|
209
|
+
throw new Error(`Unknown directory: ${parent}`);
|
|
210
|
+
const group = this._config.subdirectories[parent];
|
|
211
|
+
if (!group || typeof group[child] !== 'string') {
|
|
212
|
+
throw new Error(`Unknown subdirectory: ${parent}/${child}`);
|
|
213
|
+
}
|
|
214
|
+
return join(this._vaultRoot, parentDir, group[child]);
|
|
215
|
+
}
|
|
216
|
+
/** Returns the relative prefix for a subdirectory (parent/sub/). */
|
|
217
|
+
subDirPrefix(parent, child) {
|
|
218
|
+
const parentDir = this._config.directories[parent];
|
|
219
|
+
if (!parentDir)
|
|
220
|
+
throw new Error(`Unknown directory: ${parent}`);
|
|
221
|
+
const group = this._config.subdirectories[parent];
|
|
222
|
+
if (!group || typeof group[child] !== 'string') {
|
|
223
|
+
throw new Error(`Unknown subdirectory: ${parent}/${child}`);
|
|
224
|
+
}
|
|
225
|
+
return `${parentDir}/${group[child]}/`;
|
|
226
|
+
}
|
|
227
|
+
// ── Memory helpers ─────────────────────────────────────────────────────────
|
|
228
|
+
/** List of physical directory prefixes (with slash) to scan for indexing. */
|
|
229
|
+
scanPrefixes() {
|
|
230
|
+
const logicalNames = this._config.memory.scan_prefixes ?? [];
|
|
231
|
+
return logicalNames.map((name) => this.dirPrefix(name));
|
|
232
|
+
}
|
|
233
|
+
/** List of physical directory prefixes (with slash) to exclude from indexing. */
|
|
234
|
+
excludedPrefixes() {
|
|
235
|
+
const logicalNames = this._config.memory.excluded_prefixes ?? [];
|
|
236
|
+
return logicalNames.map((name) => this.dirPrefix(name));
|
|
237
|
+
}
|
|
238
|
+
/** Absolute path to the memory subdirectory. */
|
|
239
|
+
memoryDir() {
|
|
240
|
+
return this.subDirPath('system', 'memory');
|
|
241
|
+
}
|
|
242
|
+
/** Absolute path to the SQLite database file. */
|
|
243
|
+
dbPath() {
|
|
244
|
+
const dbName = this._config.memory.db_name ?? 'memory.db';
|
|
245
|
+
return join(this.memoryDir(), dbName);
|
|
246
|
+
}
|
|
247
|
+
/** Map of physical directory prefix → enhance priority weight. */
|
|
248
|
+
enhancePriority() {
|
|
249
|
+
const logicalMap = this._config.memory.enhance_priority ?? {};
|
|
250
|
+
const result = {};
|
|
251
|
+
for (const [logicalName, weight] of Object.entries(logicalMap)) {
|
|
252
|
+
result[this.dirPrefix(logicalName)] = weight;
|
|
253
|
+
}
|
|
254
|
+
return result;
|
|
255
|
+
}
|
|
256
|
+
/** Context budget configuration object. */
|
|
257
|
+
contextBudgets() {
|
|
258
|
+
return { ...(this._config.memory.context_budgets ?? {}) };
|
|
259
|
+
}
|
|
260
|
+
// ── Path inference ─────────────────────────────────────────────────────────
|
|
261
|
+
/**
|
|
262
|
+
* Infer a domain name from a vault-relative file path.
|
|
263
|
+
* Returns null if the path does not belong to a domain-organized directory.
|
|
264
|
+
*/
|
|
265
|
+
inferDomainFromPath(relPath) {
|
|
266
|
+
const parts = relPath.split('/');
|
|
267
|
+
const knowledgeDir = this._config.directories.knowledge ?? '';
|
|
268
|
+
const researchDir = this._config.directories.research ?? '';
|
|
269
|
+
const notesSub = this._config.subdirectories.knowledge?.notes ?? '笔记';
|
|
270
|
+
const wikiSub = this._config.subdirectories.knowledge?.wiki ?? '百科';
|
|
271
|
+
// 40_知识/笔记/<Domain>/... or 40_知识/百科/<Domain>/...
|
|
272
|
+
if (parts.length >= 4 &&
|
|
273
|
+
parts[0] === knowledgeDir &&
|
|
274
|
+
(parts[1] === notesSub || parts[1] === wikiSub)) {
|
|
275
|
+
const candidate = parts[2];
|
|
276
|
+
if (candidate && !candidate.startsWith('.'))
|
|
277
|
+
return candidate;
|
|
278
|
+
}
|
|
279
|
+
// 30_研究/<Domain>/...
|
|
280
|
+
if (parts.length >= 3 && parts[0] === researchDir) {
|
|
281
|
+
const candidate = parts[1];
|
|
282
|
+
if (candidate && !candidate.startsWith('.'))
|
|
283
|
+
return candidate;
|
|
284
|
+
}
|
|
285
|
+
return null;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Map a vault-relative file path to a document bucket type.
|
|
289
|
+
* Returns null if the path does not match any known bucket.
|
|
290
|
+
*/
|
|
291
|
+
pathToBucket(relPath) {
|
|
292
|
+
const dirs = this._config.directories;
|
|
293
|
+
for (const [logicalName, bucket] of Object.entries(LOGICAL_TO_BUCKET)) {
|
|
294
|
+
const physicalDir = dirs[logicalName] ?? '';
|
|
295
|
+
if (physicalDir && relPath.startsWith(`${physicalDir}/`)) {
|
|
296
|
+
return bucket;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// ─── Module-level singleton ───────────────────────────────────────────────────
|
|
303
|
+
let _defaultInstance = null;
|
|
304
|
+
/** Get the current global VaultConfig (null if not set). */
|
|
305
|
+
export function getVaultConfig() {
|
|
306
|
+
return _defaultInstance;
|
|
307
|
+
}
|
|
308
|
+
/** Set the global VaultConfig singleton. */
|
|
309
|
+
export function setVaultConfig(cfg) {
|
|
310
|
+
_defaultInstance = cfg;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Get the existing singleton or create a new one from vaultRoot.
|
|
314
|
+
* Throws if no singleton exists and vaultRoot is not provided.
|
|
315
|
+
*/
|
|
316
|
+
export function getOrCreateVaultConfig(vaultRoot) {
|
|
317
|
+
if (_defaultInstance !== null)
|
|
318
|
+
return _defaultInstance;
|
|
319
|
+
if (vaultRoot === undefined) {
|
|
320
|
+
throw new Error('vault_root is required when no global VaultConfig exists');
|
|
321
|
+
}
|
|
322
|
+
_defaultInstance = new VaultConfig(vaultRoot);
|
|
323
|
+
return _defaultInstance;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Convenience factory: create a VaultConfig from a vault root path.
|
|
327
|
+
* Does NOT register it as the global singleton.
|
|
328
|
+
*/
|
|
329
|
+
export function resolveConfig(vaultRoot, config) {
|
|
330
|
+
return new VaultConfig(vaultRoot, config);
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Reset the module-level singleton (for use in tests only).
|
|
334
|
+
*/
|
|
335
|
+
export function _resetDefaultInstance() {
|
|
336
|
+
_defaultInstance = null;
|
|
337
|
+
}
|
|
338
|
+
// ─── Reflection subdirectory names ───────────────────────────────────────────
|
|
339
|
+
/** Reflection subdirectory names by language */
|
|
340
|
+
const ZH_REFLECTION_SUBS = [
|
|
341
|
+
'周复盘',
|
|
342
|
+
'月复盘',
|
|
343
|
+
'季度复盘',
|
|
344
|
+
'年度复盘',
|
|
345
|
+
'项目复盘',
|
|
346
|
+
];
|
|
347
|
+
const EN_REFLECTION_SUBS = [
|
|
348
|
+
'Weekly',
|
|
349
|
+
'Monthly',
|
|
350
|
+
'Quarterly',
|
|
351
|
+
'Yearly',
|
|
352
|
+
'Projects',
|
|
353
|
+
];
|
|
354
|
+
// ─── Re-exports for CLI ──────────────────────────────────────────────────────
|
|
355
|
+
export { ZH_PRESET, EN_PRESET, ZH_REFLECTION_SUBS, EN_REFLECTION_SUBS };
|
|
356
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core.ts — 核心调度层。
|
|
3
|
+
*
|
|
4
|
+
* Thin orchestration wrappers over service modules.
|
|
5
|
+
* Each function opens a DB, calls services, closes DB, and returns results.
|
|
6
|
+
*/
|
|
7
|
+
import { type AutoCaptureItem, type AutoCaptureResult, type LogEventResult, type NotifyFileChangedResult } from './services/capture.js';
|
|
8
|
+
import { type SessionEvent, type VaultQueryResult } from './services/retrieval.js';
|
|
9
|
+
import { type SkillContextResult } from './skill-context/index.js';
|
|
10
|
+
import { type ActiveDocTarget, type CheckpointResult, type CitationsResult, type RefreshResult, type SkillCompleteResult, type StartupResult } from './types.js';
|
|
11
|
+
import { type ScenePolicy } from './utils/context-policy.js';
|
|
12
|
+
export declare function memoryStartup(opts: {
|
|
13
|
+
dbPath?: string;
|
|
14
|
+
vaultRoot?: string;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
}): StartupResult;
|
|
17
|
+
export declare function memoryQuery(opts: {
|
|
18
|
+
dbPath?: string;
|
|
19
|
+
query?: string;
|
|
20
|
+
filters?: Record<string, string>;
|
|
21
|
+
limit?: number;
|
|
22
|
+
scene?: string;
|
|
23
|
+
vaultRoot?: string;
|
|
24
|
+
}): {
|
|
25
|
+
results: VaultQueryResult[];
|
|
26
|
+
scene_policy?: ScenePolicy;
|
|
27
|
+
};
|
|
28
|
+
export declare function memoryRecent(opts: {
|
|
29
|
+
dbPath?: string;
|
|
30
|
+
days?: number;
|
|
31
|
+
entryType?: string;
|
|
32
|
+
scope?: string;
|
|
33
|
+
query?: string;
|
|
34
|
+
limit?: number;
|
|
35
|
+
scene?: string;
|
|
36
|
+
vaultRoot?: string;
|
|
37
|
+
}): {
|
|
38
|
+
events: SessionEvent[];
|
|
39
|
+
scene_policy?: ScenePolicy;
|
|
40
|
+
};
|
|
41
|
+
export declare function memoryLog(opts: {
|
|
42
|
+
dbPath?: string;
|
|
43
|
+
entryType: string;
|
|
44
|
+
importance: number;
|
|
45
|
+
summary: string;
|
|
46
|
+
scope?: string;
|
|
47
|
+
sessionId?: string;
|
|
48
|
+
skillName?: string;
|
|
49
|
+
detail?: string;
|
|
50
|
+
sourceRefs?: string[];
|
|
51
|
+
relatedFiles?: string[];
|
|
52
|
+
relatedEntities?: string[];
|
|
53
|
+
supersedes?: string;
|
|
54
|
+
}): LogEventResult;
|
|
55
|
+
export declare function memoryAutoCapture(opts: {
|
|
56
|
+
dbPath?: string;
|
|
57
|
+
corrections?: AutoCaptureItem[];
|
|
58
|
+
decisions?: AutoCaptureItem[];
|
|
59
|
+
preferences?: AutoCaptureItem[];
|
|
60
|
+
sessionId?: string;
|
|
61
|
+
}): AutoCaptureResult;
|
|
62
|
+
export declare function memoryNotify(opts: {
|
|
63
|
+
dbPath?: string;
|
|
64
|
+
vaultRoot?: string;
|
|
65
|
+
filePath: string;
|
|
66
|
+
}): NotifyFileChangedResult;
|
|
67
|
+
export declare function memoryCheckpoint(opts: {
|
|
68
|
+
dbPath?: string;
|
|
69
|
+
vaultRoot?: string;
|
|
70
|
+
sessionId?: string;
|
|
71
|
+
}): CheckpointResult;
|
|
72
|
+
export declare function memorySkillComplete(opts: {
|
|
73
|
+
dbPath?: string;
|
|
74
|
+
vaultRoot?: string;
|
|
75
|
+
skillName: string;
|
|
76
|
+
summary: string;
|
|
77
|
+
scope?: string;
|
|
78
|
+
importance?: number;
|
|
79
|
+
detail?: string;
|
|
80
|
+
relatedFiles?: string[];
|
|
81
|
+
relatedEntities?: string[];
|
|
82
|
+
contextSources?: string[];
|
|
83
|
+
refreshTargets?: string[];
|
|
84
|
+
}): SkillCompleteResult;
|
|
85
|
+
export declare function memoryRefresh(opts: {
|
|
86
|
+
dbPath?: string;
|
|
87
|
+
vaultRoot?: string;
|
|
88
|
+
target: ActiveDocTarget;
|
|
89
|
+
section?: string;
|
|
90
|
+
preserveManual?: boolean;
|
|
91
|
+
}): RefreshResult;
|
|
92
|
+
export declare function memoryCitations(opts: {
|
|
93
|
+
dbPath?: string;
|
|
94
|
+
vaultRoot?: string;
|
|
95
|
+
target: ActiveDocTarget;
|
|
96
|
+
section?: string;
|
|
97
|
+
keyword?: string;
|
|
98
|
+
}): CitationsResult;
|
|
99
|
+
export declare function memorySkillContext(opts: {
|
|
100
|
+
dbPath?: string;
|
|
101
|
+
vaultRoot?: string;
|
|
102
|
+
skillProfile: string;
|
|
103
|
+
relatedFiles?: string[];
|
|
104
|
+
query?: string;
|
|
105
|
+
limit?: number;
|
|
106
|
+
}): SkillContextResult;
|