@jayjiang/byoao 1.1.1 → 2.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/dist/__tests__/plugin-config.test.js +7 -10
- package/dist/__tests__/plugin-config.test.js.map +1 -1
- package/dist/assets/obsidian-skills/byoao-conventions.md +30 -54
- package/dist/assets/obsidian-skills/vault-thinking.md +6 -5
- package/dist/assets/presets/common/AGENTS.md.hbs +29 -46
- package/dist/assets/presets/common/SCHEMA.md.hbs +57 -0
- package/dist/assets/presets/common/Start Here.md.hbs +29 -40
- package/dist/assets/presets/minimal/preset.json +3 -3
- package/dist/assets/presets/pm-tpm/preset.json +2 -2
- package/dist/assets/skills/ask.md +133 -0
- package/dist/assets/skills/challenge.md +132 -0
- package/dist/assets/skills/connect.md +125 -0
- package/dist/assets/skills/cook.md +167 -0
- package/dist/assets/skills/diagnose.md +131 -0
- package/dist/assets/skills/drift.md +122 -0
- package/dist/assets/skills/health.md +63 -0
- package/dist/assets/skills/ideas.md +173 -0
- package/dist/assets/skills/organize.md +107 -0
- package/dist/assets/skills/prep.md +63 -0
- package/dist/assets/skills/trace.md +141 -0
- package/dist/assets/skills/wiki.md +126 -0
- package/dist/cli/cli-program.js +17 -14
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/installer.js +47 -6
- package/dist/cli/installer.js.map +1 -1
- package/dist/hooks/idle-suggestions.js +4 -4
- package/dist/hooks/idle-suggestions.js.map +1 -1
- package/dist/hooks/system-transform.js +35 -1
- package/dist/hooks/system-transform.js.map +1 -1
- package/dist/index.js +397 -884
- package/dist/index.js.map +1 -1
- package/dist/plugin-config.js +6 -32
- package/dist/plugin-config.js.map +1 -1
- package/dist/tools/init-vault.js +8 -38
- package/dist/tools/init-vault.js.map +1 -1
- package/dist/tools/vault-doctor.js +1 -1
- package/dist/tools/vault-doctor.js.map +1 -1
- package/dist/tools/vault-status.js +1 -1
- package/dist/tools/vault-status.js.map +1 -1
- package/dist/vault/__tests__/create.test.js +48 -116
- package/dist/vault/__tests__/create.test.js.map +1 -1
- package/dist/vault/__tests__/doctor.test.js +14 -2
- package/dist/vault/__tests__/doctor.test.js.map +1 -1
- package/dist/vault/__tests__/manifest.test.js +2 -2
- package/dist/vault/__tests__/manifest.test.js.map +1 -1
- package/dist/vault/__tests__/status.test.js +13 -8
- package/dist/vault/__tests__/status.test.js.map +1 -1
- package/dist/vault/__tests__/upgrade.test.js +3 -3
- package/dist/vault/__tests__/upgrade.test.js.map +1 -1
- package/dist/vault/__tests__/vault-detect.test.js +1 -13
- package/dist/vault/__tests__/vault-detect.test.js.map +1 -1
- package/dist/vault/create.js +76 -229
- package/dist/vault/create.js.map +1 -1
- package/dist/vault/doctor.js +49 -0
- package/dist/vault/doctor.js.map +1 -1
- package/dist/vault/manifest.js +1 -1
- package/dist/vault/preset.js +10 -4
- package/dist/vault/preset.js.map +1 -1
- package/dist/vault/self-update.js +1 -1
- package/dist/vault/status.js +24 -3
- package/dist/vault/status.js.map +1 -1
- package/dist/vault/upgrade.js +121 -18
- package/dist/vault/upgrade.js.map +1 -1
- package/dist/vault/vault-detect.js +2 -4
- package/dist/vault/vault-detect.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/obsidian-skills/byoao-conventions.md +30 -54
- package/src/assets/obsidian-skills/vault-thinking.md +6 -5
- package/src/assets/presets/common/AGENTS.md.hbs +29 -46
- package/src/assets/presets/common/SCHEMA.md.hbs +57 -0
- package/src/assets/presets/common/Start Here.md.hbs +29 -40
- package/src/assets/presets/minimal/preset.json +3 -3
- package/src/assets/presets/pm-tpm/preset.json +2 -2
- package/src/skills/ask.md +133 -0
- package/src/skills/challenge.md +79 -115
- package/src/skills/connect.md +75 -156
- package/src/skills/cook.md +167 -0
- package/src/skills/diagnose.md +99 -41
- package/src/skills/drift.md +64 -159
- package/src/skills/health.md +63 -0
- package/src/skills/ideas.md +19 -12
- package/src/skills/organize.md +56 -156
- package/src/skills/prep.md +63 -0
- package/src/skills/trace.md +76 -84
- package/src/skills/wiki.md +126 -0
- package/dist/assets/presets/common/Glossary.md.hbs +0 -16
- package/dist/assets/presets/common/obsidian/daily-notes.json +0 -5
- package/dist/assets/presets/common/obsidian/templates.json +0 -3
- package/dist/assets/presets/common/templates/Daily Note.md +0 -19
- package/dist/assets/presets/common/templates/Decision Record.md +0 -32
- package/dist/assets/presets/common/templates/Investigation.md +0 -34
- package/dist/assets/presets/common/templates/Meeting Notes.md +0 -25
- package/dist/tools/add-glossary-term.js +0 -21
- package/dist/tools/add-glossary-term.js.map +0 -1
- package/dist/tools/add-person.js +0 -21
- package/dist/tools/add-person.js.map +0 -1
- package/dist/tools/add-project.js +0 -24
- package/dist/tools/add-project.js.map +0 -1
- package/dist/tools/graph-health.js +0 -25
- package/dist/tools/graph-health.js.map +0 -1
- package/dist/tools/note-read.js +0 -19
- package/dist/tools/note-read.js.map +0 -1
- package/dist/tools/search-vault.js +0 -22
- package/dist/tools/search-vault.js.map +0 -1
- package/dist/vault/__tests__/glossary.test.js +0 -68
- package/dist/vault/__tests__/glossary.test.js.map +0 -1
- package/dist/vault/__tests__/graph-health.test.js +0 -102
- package/dist/vault/__tests__/graph-health.test.js.map +0 -1
- package/dist/vault/__tests__/member.test.js +0 -85
- package/dist/vault/__tests__/member.test.js.map +0 -1
- package/dist/vault/__tests__/note-read.test.js +0 -71
- package/dist/vault/__tests__/note-read.test.js.map +0 -1
- package/dist/vault/__tests__/obsidian-cli.test.js +0 -108
- package/dist/vault/__tests__/obsidian-cli.test.js.map +0 -1
- package/dist/vault/__tests__/search-vault.test.js +0 -93
- package/dist/vault/__tests__/search-vault.test.js.map +0 -1
- package/dist/vault/glossary.js +0 -27
- package/dist/vault/glossary.js.map +0 -1
- package/dist/vault/graph-health.js +0 -83
- package/dist/vault/graph-health.js.map +0 -1
- package/dist/vault/member.js +0 -67
- package/dist/vault/member.js.map +0 -1
- package/dist/vault/note-read.js +0 -70
- package/dist/vault/note-read.js.map +0 -1
- package/dist/vault/project.js +0 -68
- package/dist/vault/project.js.map +0 -1
- package/dist/vault/retrieval-types.js +0 -5
- package/dist/vault/retrieval-types.js.map +0 -1
- package/dist/vault/search-vault.js +0 -87
- package/dist/vault/search-vault.js.map +0 -1
- package/src/assets/presets/common/Glossary.md.hbs +0 -16
- package/src/assets/presets/common/obsidian/daily-notes.json +0 -5
- package/src/assets/presets/common/obsidian/templates.json +0 -3
- package/src/assets/presets/common/templates/Daily Note.md +0 -19
- package/src/assets/presets/common/templates/Decision Record.md +0 -32
- package/src/assets/presets/common/templates/Investigation.md +0 -34
- package/src/assets/presets/common/templates/Meeting Notes.md +0 -25
- package/src/skills/emerge.md +0 -161
- package/src/skills/weave.md +0 -282
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/manifest.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,IAAI,MAAc,CAAC;AAEnB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,CAAC,6CAA6C,CAAC;YACvD,QAAQ,EAAE,CAAC,oCAAoC,CAAC;YAChD,cAAc,EAAE,CAAC,6BAA6B,CAAC;YAC/C,SAAS,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/manifest.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,20 +64,16 @@ describe("getVaultStatus", () => {
|
|
|
64
64
|
});
|
|
65
65
|
it("detects config files", async () => {
|
|
66
66
|
await fs.ensureDir(path.join(tmpDir, ".obsidian"));
|
|
67
|
-
await fs.
|
|
68
|
-
await fs.writeFile(path.join(tmpDir, "AGENT.md"), "# Agent");
|
|
69
|
-
await fs.writeFile(path.join(tmpDir, "Knowledge/Glossary.md"), "# Glossary");
|
|
67
|
+
await fs.writeFile(path.join(tmpDir, "AGENTS.md"), "# Agent");
|
|
70
68
|
const status = await getVaultStatus(tmpDir);
|
|
71
69
|
expect(status.hasObsidianConfig).toBe(true);
|
|
72
70
|
expect(status.hasAgentMd).toBe(true);
|
|
73
|
-
expect(status.hasGlossary).toBe(true);
|
|
74
71
|
});
|
|
75
72
|
it("reports false for missing config files", async () => {
|
|
76
73
|
await fs.writeFile(path.join(tmpDir, "note.md"), "# Note");
|
|
77
74
|
const status = await getVaultStatus(tmpDir);
|
|
78
75
|
expect(status.hasObsidianConfig).toBe(false);
|
|
79
76
|
expect(status.hasAgentMd).toBe(false);
|
|
80
|
-
expect(status.hasGlossary).toBe(false);
|
|
81
77
|
});
|
|
82
78
|
});
|
|
83
79
|
describe("formatVaultStatus", () => {
|
|
@@ -91,7 +87,10 @@ describe("formatVaultStatus", () => {
|
|
|
91
87
|
directories: {},
|
|
92
88
|
hasObsidianConfig: false,
|
|
93
89
|
hasAgentMd: false,
|
|
94
|
-
|
|
90
|
+
agentPages: { entities: 0, concepts: 0, comparisons: 0, queries: 0 },
|
|
91
|
+
hasSchema: false,
|
|
92
|
+
hasLog: false,
|
|
93
|
+
hasIndexBase: false,
|
|
95
94
|
};
|
|
96
95
|
expect(formatVaultStatus(status)).toContain("not found");
|
|
97
96
|
});
|
|
@@ -105,7 +104,10 @@ describe("formatVaultStatus", () => {
|
|
|
105
104
|
directories: { People: 3, Projects: 2 },
|
|
106
105
|
hasObsidianConfig: true,
|
|
107
106
|
hasAgentMd: true,
|
|
108
|
-
|
|
107
|
+
agentPages: { entities: 0, concepts: 0, comparisons: 0, queries: 0 },
|
|
108
|
+
hasSchema: false,
|
|
109
|
+
hasLog: false,
|
|
110
|
+
hasIndexBase: false,
|
|
109
111
|
};
|
|
110
112
|
const output = formatVaultStatus(status);
|
|
111
113
|
expect(output).toContain("Notes: 10");
|
|
@@ -124,7 +126,10 @@ describe("formatVaultStatus", () => {
|
|
|
124
126
|
directories: {},
|
|
125
127
|
hasObsidianConfig: false,
|
|
126
128
|
hasAgentMd: false,
|
|
127
|
-
|
|
129
|
+
agentPages: { entities: 0, concepts: 0, comparisons: 0, queries: 0 },
|
|
130
|
+
hasSchema: false,
|
|
131
|
+
hasLog: false,
|
|
132
|
+
hasIndexBase: false,
|
|
128
133
|
};
|
|
129
134
|
const output = formatVaultStatus(status);
|
|
130
135
|
expect(output).toContain("Broken links (2)");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/status.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/status.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,12 @@ describe("scanInstalledAssets", () => {
|
|
|
20
20
|
await fs.ensureDir(path.join(tmpDir, ".obsidian"));
|
|
21
21
|
await fs.writeFile(path.join(tmpDir, ".obsidian", "core-plugins.json"), "[]");
|
|
22
22
|
await fs.ensureDir(path.join(tmpDir, "Knowledge", "templates"));
|
|
23
|
-
await fs.writeFile(path.join(tmpDir, "Knowledge", "templates", "
|
|
23
|
+
await fs.writeFile(path.join(tmpDir, "Knowledge", "templates", "Example.md"), "# Ex");
|
|
24
24
|
const result = await scanInstalledAssets(tmpDir);
|
|
25
25
|
expect(result.skills).toContain(".opencode/skills/test/SKILL.md");
|
|
26
26
|
expect(result.commands).toContain(".opencode/commands/cmd.md");
|
|
27
27
|
expect(result.obsidianConfig).toContain(".obsidian/core-plugins.json");
|
|
28
|
-
expect(result.templates).toContain("Knowledge/templates/
|
|
28
|
+
expect(result.templates).toContain("Knowledge/templates/Example.md");
|
|
29
29
|
});
|
|
30
30
|
it("returns empty arrays when no infrastructure exists", async () => {
|
|
31
31
|
const { scanInstalledAssets } = await import("../upgrade.js");
|
|
@@ -48,7 +48,7 @@ describe("bootstrapManifest", () => {
|
|
|
48
48
|
const manifest = await readManifest(tmpDir);
|
|
49
49
|
expect(manifest).not.toBeNull();
|
|
50
50
|
expect(manifest.version).toBe("0.0.0");
|
|
51
|
-
expect(manifest.preset).toBe("
|
|
51
|
+
expect(manifest.preset).toBe("minimal");
|
|
52
52
|
expect(manifest.infrastructure.skills).toContain(".opencode/skills/s/SKILL.md");
|
|
53
53
|
});
|
|
54
54
|
it("accepts preset override", async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/upgrade.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,IAAI,MAAc,CAAC;AAEnB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAE9D,yEAAyE;QACzE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACrE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5F,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAClF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"upgrade.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/upgrade.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,19 +17,7 @@ describe("detectVaultContext", () => {
|
|
|
17
17
|
const result = detectVaultContext(tmpDir);
|
|
18
18
|
expect(result).toBe(tmpDir);
|
|
19
19
|
});
|
|
20
|
-
it("returns
|
|
21
|
-
await fs.ensureDir(path.join(tmpDir, ".obsidian"));
|
|
22
|
-
await fs.ensureDir(path.join(tmpDir, "Knowledge"));
|
|
23
|
-
await fs.writeFile(path.join(tmpDir, "Knowledge/Glossary.md"), "# Glossary");
|
|
24
|
-
const result = detectVaultContext(tmpDir);
|
|
25
|
-
expect(result).toBe(tmpDir);
|
|
26
|
-
});
|
|
27
|
-
it("returns null when .obsidian/ is missing", async () => {
|
|
28
|
-
await fs.writeFile(path.join(tmpDir, "AGENT.md"), "# Agent");
|
|
29
|
-
const result = detectVaultContext(tmpDir);
|
|
30
|
-
expect(result).toBeNull();
|
|
31
|
-
});
|
|
32
|
-
it("returns null when .obsidian/ exists but no AGENT.md or Glossary", async () => {
|
|
20
|
+
it("returns null when .obsidian/ exists but no AGENTS.md or AGENT.md", async () => {
|
|
33
21
|
await fs.ensureDir(path.join(tmpDir, ".obsidian"));
|
|
34
22
|
const result = detectVaultContext(tmpDir);
|
|
35
23
|
expect(result).toBeNull();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-detect.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/vault-detect.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,IAAI,MAAc,CAAC;AAEnB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"vault-detect.test.js","sourceRoot":"","sources":["../../../src/vault/__tests__/vault-detect.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,IAAI,MAAc,CAAC;AAEnB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/vault/create.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { fs } from "../lib/cjs-modules.js";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { renderTemplate
|
|
3
|
+
import { renderTemplate } from "./template.js";
|
|
4
4
|
import { loadPreset, getCommonDir } from "./preset.js";
|
|
5
5
|
import { configureMcp } from "./mcp.js";
|
|
6
6
|
import { configureObsidianPlugins } from "./obsidian-plugins.js";
|
|
@@ -14,12 +14,6 @@ function countWikilinks(content) {
|
|
|
14
14
|
const matches = stripped.match(/\[\[([^\]|]+)(?:\|[^\]]+)?\]\]/g);
|
|
15
15
|
return matches ? matches.length : 0;
|
|
16
16
|
}
|
|
17
|
-
// Minimal directories: the core of every knowledge base
|
|
18
|
-
const MINIMAL_DIRECTORIES = [
|
|
19
|
-
"Daily",
|
|
20
|
-
"Knowledge",
|
|
21
|
-
"Knowledge/templates",
|
|
22
|
-
];
|
|
23
17
|
function makeContext(vaultPath, kbName, preserveObsidian = false) {
|
|
24
18
|
return {
|
|
25
19
|
vaultPath,
|
|
@@ -44,17 +38,8 @@ const MCP_DISPLAY_NAMES = {
|
|
|
44
38
|
// ---------------------------------------------------------------------------
|
|
45
39
|
// Composable creation functions
|
|
46
40
|
// ---------------------------------------------------------------------------
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* Glossary.md, Start Here.md.
|
|
50
|
-
*/
|
|
51
|
-
export async function createMinimalCore(ctx, glossaryEntries = []) {
|
|
52
|
-
// 1. Create minimal directories
|
|
53
|
-
for (const dir of MINIMAL_DIRECTORIES) {
|
|
54
|
-
await fs.ensureDir(path.join(ctx.vaultPath, dir));
|
|
55
|
-
}
|
|
56
|
-
ctx.directories.push(...MINIMAL_DIRECTORIES);
|
|
57
|
-
// 2. Copy .obsidian config from common (skip if preserving existing vault config)
|
|
41
|
+
export async function createMinimalCore(ctx) {
|
|
42
|
+
// Copy .obsidian config from common (skip if preserving existing vault config)
|
|
58
43
|
if (!ctx.preserveObsidian) {
|
|
59
44
|
await fs.ensureDir(path.join(ctx.vaultPath, ".obsidian"));
|
|
60
45
|
const obsidianSrc = path.join(ctx.commonDir, "obsidian");
|
|
@@ -67,36 +52,7 @@ export async function createMinimalCore(ctx, glossaryEntries = []) {
|
|
|
67
52
|
}
|
|
68
53
|
}
|
|
69
54
|
}
|
|
70
|
-
//
|
|
71
|
-
const templateDest = path.join(ctx.vaultPath, "Knowledge/templates");
|
|
72
|
-
const commonTemplatesDir = path.join(ctx.commonDir, "templates");
|
|
73
|
-
if (await fs.pathExists(commonTemplatesDir)) {
|
|
74
|
-
const files = await fs.readdir(commonTemplatesDir);
|
|
75
|
-
for (const file of files) {
|
|
76
|
-
await fs.copy(path.join(commonTemplatesDir, file), path.join(templateDest, file), { overwrite: false });
|
|
77
|
-
ctx.filesCreated++;
|
|
78
|
-
ctx.installedFiles.templates.push(`Knowledge/templates/${file}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// 4. Generate Glossary.md
|
|
82
|
-
const glossaryTemplate = await fs.readFile(path.join(ctx.commonDir, "Glossary.md.hbs"), "utf-8");
|
|
83
|
-
let glossaryRows = "";
|
|
84
|
-
if (glossaryEntries.length > 0) {
|
|
85
|
-
glossaryRows = glossaryEntries
|
|
86
|
-
.map((e) => `| **${e.term}** | ${e.definition} | ${e.domain} |`)
|
|
87
|
-
.join("\n");
|
|
88
|
-
}
|
|
89
|
-
const glossaryContent = renderTemplate(glossaryTemplate, {
|
|
90
|
-
KB_NAME: ctx.kbName,
|
|
91
|
-
date: today(),
|
|
92
|
-
GLOSSARY_ENTRIES: glossaryRows,
|
|
93
|
-
});
|
|
94
|
-
const glossaryPath = path.join(ctx.vaultPath, "Knowledge/Glossary.md");
|
|
95
|
-
if (!(await fs.pathExists(glossaryPath))) {
|
|
96
|
-
await fs.writeFile(glossaryPath, glossaryContent);
|
|
97
|
-
ctx.filesCreated++;
|
|
98
|
-
}
|
|
99
|
-
// 5. Generate Start Here.md
|
|
55
|
+
// Generate Start Here.md
|
|
100
56
|
const startHereTemplate = await fs.readFile(path.join(ctx.commonDir, "Start Here.md.hbs"), "utf-8");
|
|
101
57
|
const startHereContent = renderTemplate(startHereTemplate, {
|
|
102
58
|
KB_NAME: ctx.kbName,
|
|
@@ -110,28 +66,56 @@ export async function createMinimalCore(ctx, glossaryEntries = []) {
|
|
|
110
66
|
}
|
|
111
67
|
}
|
|
112
68
|
/**
|
|
113
|
-
*
|
|
69
|
+
* Create LLM Wiki core: 4 agent directories, SCHEMA.md, log.md.
|
|
70
|
+
* Always runs regardless of preset — this is built-in BYOAO capability.
|
|
114
71
|
*/
|
|
115
|
-
export async function
|
|
72
|
+
export async function createLlmWikiCore(ctx, wikiDomain = "") {
|
|
73
|
+
const agentDirs = ["entities", "concepts", "comparisons", "queries"];
|
|
74
|
+
for (const dir of agentDirs) {
|
|
75
|
+
const dirPath = path.join(ctx.vaultPath, dir);
|
|
76
|
+
if (!(await fs.pathExists(dirPath))) {
|
|
77
|
+
await fs.ensureDir(dirPath);
|
|
78
|
+
ctx.filesCreated++;
|
|
79
|
+
ctx.directories.push(dir);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Create SCHEMA.md from template
|
|
83
|
+
const schemaTemplatePath = path.join(ctx.commonDir, "SCHEMA.md.hbs");
|
|
84
|
+
if (await fs.pathExists(schemaTemplatePath)) {
|
|
85
|
+
const schemaTemplate = await fs.readFile(schemaTemplatePath, "utf-8");
|
|
86
|
+
const schemaContent = renderTemplate(schemaTemplate, {
|
|
87
|
+
KB_NAME: ctx.kbName,
|
|
88
|
+
WIKI_DOMAIN: wikiDomain || "",
|
|
89
|
+
});
|
|
90
|
+
const schemaPath = path.join(ctx.vaultPath, "SCHEMA.md");
|
|
91
|
+
if (!(await fs.pathExists(schemaPath))) {
|
|
92
|
+
await fs.writeFile(schemaPath, schemaContent);
|
|
93
|
+
ctx.filesCreated++;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Create log.md
|
|
97
|
+
const logContent = `# Agent Activity Log
|
|
98
|
+
|
|
99
|
+
Entries are appended here during /cook operations.
|
|
100
|
+
|
|
101
|
+
`;
|
|
102
|
+
const logPath = path.join(ctx.vaultPath, "log.md");
|
|
103
|
+
if (!(await fs.pathExists(logPath))) {
|
|
104
|
+
await fs.writeFile(logPath, logContent);
|
|
105
|
+
ctx.filesCreated++;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export async function createAgentsMd(ctx, ownerName, presetConfig, presetDir) {
|
|
116
109
|
const agentsTemplate = await fs.readFile(path.join(ctx.commonDir, "AGENTS.md.hbs"), "utf-8");
|
|
117
110
|
let roleSection = "";
|
|
118
111
|
const agentSectionPath = path.join(presetDir, "agent-section.hbs");
|
|
119
112
|
if (await fs.pathExists(agentSectionPath)) {
|
|
120
113
|
const agentSectionTemplate = await fs.readFile(agentSectionPath, "utf-8");
|
|
121
|
-
let projectsList;
|
|
122
|
-
if (projects.length > 0) {
|
|
123
|
-
projectsList = projects
|
|
124
|
-
.map((p) => `- [[${p.name}]] — ${p.description}`)
|
|
125
|
-
.join("\n");
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
projectsList = "(No projects added yet — create notes in Projects/)";
|
|
129
|
-
}
|
|
130
114
|
roleSection = renderTemplate(agentSectionTemplate, {
|
|
131
|
-
PROJECTS:
|
|
132
|
-
JIRA_HOST:
|
|
133
|
-
JIRA_PROJECT:
|
|
134
|
-
HAS_JIRA:
|
|
115
|
+
PROJECTS: "(Use /cook to discover projects from your notes)",
|
|
116
|
+
JIRA_HOST: "",
|
|
117
|
+
JIRA_PROJECT: "",
|
|
118
|
+
HAS_JIRA: false,
|
|
135
119
|
});
|
|
136
120
|
}
|
|
137
121
|
const agentsContent = renderTemplate(agentsTemplate, {
|
|
@@ -145,159 +129,32 @@ export async function createAgentsMd(ctx, ownerName, presetConfig, presetDir, pr
|
|
|
145
129
|
ctx.filesCreated++;
|
|
146
130
|
}
|
|
147
131
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Apply preset overlay: create preset-specific directories and copy preset templates.
|
|
150
|
-
* Returns the list of all template names (common + preset).
|
|
151
|
-
*/
|
|
152
132
|
export async function applyPresetOverlay(ctx, presetConfig, presetDir) {
|
|
153
|
-
// Create preset-specific directories
|
|
154
133
|
for (const dir of presetConfig.directories) {
|
|
155
134
|
await fs.ensureDir(path.join(ctx.vaultPath, dir));
|
|
156
135
|
}
|
|
157
136
|
ctx.directories.push(...presetConfig.directories);
|
|
158
|
-
// Collect common template names already installed
|
|
159
|
-
const templateDest = path.join(ctx.vaultPath, "Knowledge/templates");
|
|
160
137
|
const allTemplateNames = [];
|
|
161
|
-
// Read existing common templates (already copied by createMinimalCore)
|
|
162
|
-
if (await fs.pathExists(templateDest)) {
|
|
163
|
-
const existing = await fs.readdir(templateDest);
|
|
164
|
-
for (const file of existing) {
|
|
165
|
-
if (file.endsWith(".md")) {
|
|
166
|
-
allTemplateNames.push(file.replace(/\.md$/, ""));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Copy preset templates
|
|
171
138
|
const presetTemplatesDir = path.join(presetDir, "templates");
|
|
172
139
|
if (await fs.pathExists(presetTemplatesDir)) {
|
|
140
|
+
const templateDest = path.join(ctx.vaultPath, "templates");
|
|
141
|
+
await fs.ensureDir(templateDest);
|
|
173
142
|
const files = await fs.readdir(presetTemplatesDir);
|
|
174
143
|
for (const file of files) {
|
|
175
144
|
await fs.copy(path.join(presetTemplatesDir, file), path.join(templateDest, file), { overwrite: false });
|
|
176
145
|
allTemplateNames.push(file.replace(/\.md$/, ""));
|
|
177
146
|
ctx.filesCreated++;
|
|
178
|
-
ctx.installedFiles.templates.push(`
|
|
147
|
+
ctx.installedFiles.templates.push(`templates/${file}`);
|
|
179
148
|
}
|
|
180
149
|
}
|
|
181
150
|
return allTemplateNames;
|
|
182
151
|
}
|
|
183
|
-
/**
|
|
184
|
-
* Create people notes from members config.
|
|
185
|
-
* Ensures People/ directory exists.
|
|
186
|
-
*/
|
|
187
|
-
export async function createPeopleNotes(ctx, members) {
|
|
188
|
-
if (members.length === 0)
|
|
189
|
-
return;
|
|
190
|
-
await fs.ensureDir(path.join(ctx.vaultPath, "People"));
|
|
191
|
-
if (!ctx.directories.includes("People")) {
|
|
192
|
-
ctx.directories.push("People");
|
|
193
|
-
}
|
|
194
|
-
for (const member of members) {
|
|
195
|
-
const content = `---
|
|
196
|
-
title: "${member.name}"
|
|
197
|
-
type: person
|
|
198
|
-
team: "${ctx.kbName}"
|
|
199
|
-
role: "${member.role}"
|
|
200
|
-
status: active
|
|
201
|
-
tags: [person]
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
# ${member.name}
|
|
205
|
-
|
|
206
|
-
**Role**: ${member.role}
|
|
207
|
-
**Team**: ${ctx.kbName}
|
|
208
|
-
`;
|
|
209
|
-
const memberPath = path.join(ctx.vaultPath, `People/${member.name}.md`);
|
|
210
|
-
if (!(await fs.pathExists(memberPath))) {
|
|
211
|
-
await fs.writeFile(memberPath, content);
|
|
212
|
-
ctx.filesCreated++;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Create project notes from projects config.
|
|
218
|
-
* Ensures Projects/ directory exists.
|
|
219
|
-
*/
|
|
220
|
-
export async function createProjectNotes(ctx, projects) {
|
|
221
|
-
if (projects.length === 0)
|
|
222
|
-
return;
|
|
223
|
-
await fs.ensureDir(path.join(ctx.vaultPath, "Projects"));
|
|
224
|
-
if (!ctx.directories.includes("Projects")) {
|
|
225
|
-
ctx.directories.push("Projects");
|
|
226
|
-
}
|
|
227
|
-
for (const project of projects) {
|
|
228
|
-
const content = `---
|
|
229
|
-
title: "${project.name}"
|
|
230
|
-
type: feature
|
|
231
|
-
status: active
|
|
232
|
-
date: ${today()}
|
|
233
|
-
team: "${ctx.kbName}"
|
|
234
|
-
jira: ""
|
|
235
|
-
stakeholders: []
|
|
236
|
-
priority: ""
|
|
237
|
-
tags: [project]
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
# ${project.name}
|
|
241
|
-
|
|
242
|
-
${project.description}
|
|
243
|
-
`;
|
|
244
|
-
const projectPath = path.join(ctx.vaultPath, `Projects/${project.name}.md`);
|
|
245
|
-
if (!(await fs.pathExists(projectPath))) {
|
|
246
|
-
await fs.writeFile(projectPath, content);
|
|
247
|
-
ctx.filesCreated++;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Create team index note in People/.
|
|
253
|
-
* Only call when the vault has a People/ directory (preset includes it or members exist).
|
|
254
|
-
*/
|
|
255
|
-
export async function createTeamIndex(ctx, members, projects) {
|
|
256
|
-
await fs.ensureDir(path.join(ctx.vaultPath, "People"));
|
|
257
|
-
if (!ctx.directories.includes("People")) {
|
|
258
|
-
ctx.directories.push("People");
|
|
259
|
-
}
|
|
260
|
-
let teamIndexContent = `---
|
|
261
|
-
title: "${ctx.kbName} Team"
|
|
262
|
-
type: reference
|
|
263
|
-
team: "${ctx.kbName}"
|
|
264
|
-
tags: [team]
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
# ${ctx.kbName} Team
|
|
268
|
-
|
|
269
|
-
## Members
|
|
270
|
-
|
|
271
|
-
`;
|
|
272
|
-
if (members.length > 0) {
|
|
273
|
-
teamIndexContent += "| Name | Role |\n|------|------|\n";
|
|
274
|
-
teamIndexContent += members.map((m) => `| [[${m.name}]] | ${m.role} |`).join("\n");
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
teamIndexContent += "(No members added yet)";
|
|
278
|
-
}
|
|
279
|
-
teamIndexContent += "\n\n## Active Projects\n\n";
|
|
280
|
-
if (projects.length > 0) {
|
|
281
|
-
teamIndexContent += projects
|
|
282
|
-
.map((p) => `- [[${p.name}]] — ${p.description}`)
|
|
283
|
-
.join("\n");
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
teamIndexContent += "(No projects added yet)";
|
|
287
|
-
}
|
|
288
|
-
teamIndexContent += "\n";
|
|
289
|
-
const teamIndexPath = path.join(ctx.vaultPath, `People/${ctx.kbName} Team.md`);
|
|
290
|
-
if (!(await fs.pathExists(teamIndexPath))) {
|
|
291
|
-
await fs.writeFile(teamIndexPath, teamIndexContent);
|
|
292
|
-
ctx.filesCreated++;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
152
|
// ---------------------------------------------------------------------------
|
|
296
153
|
// Main orchestrator
|
|
297
154
|
// ---------------------------------------------------------------------------
|
|
298
155
|
export async function createVault(config) {
|
|
299
|
-
const { kbName, vaultPath,
|
|
300
|
-
const presetName = preset ?? "
|
|
156
|
+
const { kbName, vaultPath, preset } = config;
|
|
157
|
+
const presetName = preset ?? "minimal";
|
|
301
158
|
const { config: presetConfig, presetsDir } = loadPreset(presetName);
|
|
302
159
|
const presetDir = path.join(presetsDir, presetName);
|
|
303
160
|
const initMode = detectInitMode(vaultPath);
|
|
@@ -311,24 +168,17 @@ export async function createVault(config) {
|
|
|
311
168
|
ctx.mcpServices.push(info);
|
|
312
169
|
}
|
|
313
170
|
}
|
|
314
|
-
// 1. Create minimal core (
|
|
315
|
-
await createMinimalCore(ctx
|
|
316
|
-
// 2.
|
|
317
|
-
|
|
318
|
-
// 3.
|
|
319
|
-
await
|
|
320
|
-
// 4.
|
|
321
|
-
await
|
|
322
|
-
// 5.
|
|
323
|
-
await createProjectNotes(ctx, projects);
|
|
324
|
-
// 6. Create team index (only when preset declares People/ or members exist)
|
|
325
|
-
const hasPeopleDir = presetConfig.directories.includes("People") || members.length > 0;
|
|
326
|
-
if (hasPeopleDir) {
|
|
327
|
-
await createTeamIndex(ctx, members, projects);
|
|
328
|
-
}
|
|
329
|
-
// 7. Configure vault as OpenCode project (plugin + skills + commands)
|
|
171
|
+
// 1. Create minimal core (.obsidian, Start Here)
|
|
172
|
+
await createMinimalCore(ctx);
|
|
173
|
+
// 2. Create LLM Wiki core (agent dirs, SCHEMA.md, log.md) — always, regardless of preset
|
|
174
|
+
await createLlmWikiCore(ctx, config.wikiDomain);
|
|
175
|
+
// 3. Apply preset overlay (role-specific dirs + templates)
|
|
176
|
+
await applyPresetOverlay(ctx, presetConfig, presetDir);
|
|
177
|
+
// 4. Generate AGENTS.md
|
|
178
|
+
await createAgentsMd(ctx, config.ownerName, presetConfig, presetDir);
|
|
179
|
+
// 5. Configure vault as OpenCode project (plugin + skills + commands)
|
|
330
180
|
await configureOpenCodeProject(ctx.vaultPath, ctx.installedFiles);
|
|
331
|
-
//
|
|
181
|
+
// 6. Configure MCP servers in global OpenCode config
|
|
332
182
|
const mcpOptions = {};
|
|
333
183
|
if (config.mcpSkip && config.mcpSkip.length > 0) {
|
|
334
184
|
mcpOptions.skip = config.mcpSkip;
|
|
@@ -337,16 +187,16 @@ export async function createVault(config) {
|
|
|
337
187
|
mcpOptions.vars = { GCP_PROJECT_ID: config.gcpProjectId };
|
|
338
188
|
}
|
|
339
189
|
const mcpResult = await configureMcp(presetConfig, mcpOptions);
|
|
340
|
-
//
|
|
190
|
+
// 7. Install Obsidian community plugins from preset
|
|
341
191
|
const pluginsResult = await configureObsidianPlugins(ctx.vaultPath, presetConfig);
|
|
342
|
-
//
|
|
192
|
+
// 8. Configure AI provider in global OpenCode config
|
|
343
193
|
let providerResult = null;
|
|
344
194
|
if (config.provider && config.provider !== "skip") {
|
|
345
195
|
providerResult = await configureProvider(config.provider, config.provider === "gemini" ? config.gcpProjectId : undefined);
|
|
346
196
|
}
|
|
347
|
-
//
|
|
197
|
+
// 9. Write BYOAO manifest
|
|
348
198
|
await writeManifest(ctx.vaultPath, presetName, ctx.installedFiles);
|
|
349
|
-
//
|
|
199
|
+
// 10. Count wikilinks from all generated markdown files
|
|
350
200
|
let wikilinksCreated = 0;
|
|
351
201
|
const entries = await fs.readdir(ctx.vaultPath, { recursive: true });
|
|
352
202
|
for (const entry of entries) {
|
|
@@ -367,14 +217,7 @@ export async function createVault(config) {
|
|
|
367
217
|
providerResult,
|
|
368
218
|
};
|
|
369
219
|
}
|
|
370
|
-
/**
|
|
371
|
-
* Configure the vault directory as an OpenCode project.
|
|
372
|
-
* Creates .opencode.json with BYOAO plugin registered,
|
|
373
|
-
* and copies skills + commands so BYOAO tools work when
|
|
374
|
-
* OpenCode is launched from the vault (including via Agent Client).
|
|
375
|
-
*/
|
|
376
220
|
async function configureOpenCodeProject(vaultPath, installedFiles) {
|
|
377
|
-
// 1. Write .opencode.json with BYOAO plugin
|
|
378
221
|
const configPath = path.join(vaultPath, ".opencode.json");
|
|
379
222
|
let config = {};
|
|
380
223
|
if (await fs.pathExists(configPath)) {
|
|
@@ -391,7 +234,6 @@ async function configureOpenCodeProject(vaultPath, installedFiles) {
|
|
|
391
234
|
config.plugin = plugins;
|
|
392
235
|
}
|
|
393
236
|
await fs.writeJson(configPath, config, { spaces: 2 });
|
|
394
|
-
// 2. Copy Obsidian Skills
|
|
395
237
|
const assetsDir = resolveAssetsDir();
|
|
396
238
|
const obsidianSkillsSrc = path.join(assetsDir, "obsidian-skills");
|
|
397
239
|
const skillsDest = path.join(vaultPath, ".opencode", "skills");
|
|
@@ -408,7 +250,6 @@ async function configureOpenCodeProject(vaultPath, installedFiles) {
|
|
|
408
250
|
}
|
|
409
251
|
}
|
|
410
252
|
}
|
|
411
|
-
// 3. Copy BYOAO commands
|
|
412
253
|
const byoaoSkillsSrc = path.join(assetsDir, "..", "skills");
|
|
413
254
|
const commandsDest = path.join(vaultPath, ".opencode", "commands");
|
|
414
255
|
if (await fs.pathExists(byoaoSkillsSrc)) {
|
|
@@ -423,12 +264,18 @@ async function configureOpenCodeProject(vaultPath, installedFiles) {
|
|
|
423
264
|
}
|
|
424
265
|
}
|
|
425
266
|
function resolveAssetsDir() {
|
|
267
|
+
// When running from dist/ (bundled): dist/assets
|
|
268
|
+
const distAssets = path.resolve(import.meta.dirname, "assets");
|
|
269
|
+
// When running from dist/ via tsc only: ../assets
|
|
426
270
|
const srcAssets = path.resolve(import.meta.dirname, "..", "assets");
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
return srcAssets;
|
|
271
|
+
// When running from src/ via tsx: ../../src/assets
|
|
272
|
+
const devAssets = path.resolve(import.meta.dirname, "..", "..", "src", "assets");
|
|
430
273
|
if (fs.existsSync(distAssets))
|
|
431
274
|
return distAssets;
|
|
432
|
-
|
|
275
|
+
if (fs.existsSync(srcAssets))
|
|
276
|
+
return srcAssets;
|
|
277
|
+
if (fs.existsSync(devAssets))
|
|
278
|
+
return devAssets;
|
|
279
|
+
return distAssets;
|
|
433
280
|
}
|
|
434
281
|
//# sourceMappingURL=create.js.map
|