@jayjiang/byoao 0.2.0 → 0.2.2
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/cli/cli-program.js +85 -83
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/installer.js +94 -5
- package/dist/cli/installer.js.map +1 -1
- package/dist/tools/add-member.js +1 -1
- package/dist/tools/add-member.js.map +1 -1
- package/dist/tools/add-project.js +1 -1
- package/dist/tools/add-project.js.map +1 -1
- package/dist/vault/glossary.js +1 -1
- package/dist/vault/glossary.js.map +1 -1
- package/dist/vault/member.js +3 -3
- package/dist/vault/member.js.map +1 -1
- package/dist/vault/project.js +2 -2
- package/dist/vault/project.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/presets/common/Glossary.md.hbs +2 -2
- package/src/assets/presets/common/obsidian/daily-notes.json +1 -1
- package/src/assets/presets/common/obsidian/templates.json +1 -1
- package/src/assets/web-clipper/confluence-page.json +1 -1
- package/src/assets/web-clipper/general-article.json +1 -1
- package/src/assets/web-clipper/jira-issue.json +1 -1
- package/src/assets/web-clipper/meeting-notes.json +1 -1
- package/src/skills/enrich-document.md +2 -2
- package/src/skills/system-explainer.md +1 -1
package/dist/cli/cli-program.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
-
import { install } from "./installer.js";
|
|
3
|
+
import { install, uninstall } from "./installer.js";
|
|
4
4
|
import { printLogo, printVersion, printEvent, printEventDetail, printEventDone } from "./ui.js";
|
|
5
5
|
import { createVault } from "../vault/create.js";
|
|
6
6
|
import { getVaultStatus, formatVaultStatus } from "../vault/status.js";
|
|
@@ -12,19 +12,25 @@ import os from "node:os";
|
|
|
12
12
|
const program = new Command();
|
|
13
13
|
program
|
|
14
14
|
.name("byoao")
|
|
15
|
-
.description("Build Your Own AI OS — Obsidian
|
|
16
|
-
|
|
15
|
+
.description("Build Your Own AI OS — turn Obsidian into an AI-powered knowledge graph.\n\n" +
|
|
16
|
+
"Quick start:\n" +
|
|
17
|
+
" 1. byoao install Set up BYOAO plugin in OpenCode\n" +
|
|
18
|
+
" 2. byoao init Create your team's knowledge base\n" +
|
|
19
|
+
" 3. byoao status <path> Check vault health\n\n" +
|
|
20
|
+
"For more info visit https://github.com/JayJiangCT/BYOAO")
|
|
21
|
+
.version("0.2.2");
|
|
17
22
|
// ── byoao install ────────────────────────────────────────────────
|
|
18
23
|
program
|
|
19
24
|
.command("install")
|
|
20
|
-
.description("
|
|
21
|
-
|
|
22
|
-
.option("-
|
|
25
|
+
.description("Set up BYOAO plugin in OpenCode — registers the plugin, copies Obsidian Skills " +
|
|
26
|
+
"and BYOAO commands so they are available in your AI agent sessions")
|
|
27
|
+
.option("-g, --global", "Install globally so BYOAO works in every project", false)
|
|
28
|
+
.option("-y, --yes", "Skip interactive prompts, use defaults", false)
|
|
23
29
|
.option("--no-skills", "Skip installing Obsidian Skills")
|
|
24
30
|
.option("--project-dir <path>", "Project directory (default: current directory)")
|
|
25
31
|
.action(async (opts) => {
|
|
26
32
|
printLogo();
|
|
27
|
-
printVersion("0.2.
|
|
33
|
+
printVersion("0.2.2");
|
|
28
34
|
let installGlobal = opts.global;
|
|
29
35
|
let installSkills = opts.skills !== false;
|
|
30
36
|
// Interactive prompts unless --yes flag is set
|
|
@@ -61,15 +67,46 @@ program
|
|
|
61
67
|
projectDir: opts.projectDir,
|
|
62
68
|
}, !opts.yes);
|
|
63
69
|
});
|
|
64
|
-
// ── byoao
|
|
70
|
+
// ── byoao uninstall ──────────────────────────────────────────────
|
|
71
|
+
program
|
|
72
|
+
.command("uninstall")
|
|
73
|
+
.description("Remove BYOAO plugin from OpenCode — unregisters the plugin and removes copied " +
|
|
74
|
+
"skills and commands. Your vaults and notes are not affected.")
|
|
75
|
+
.option("-g, --global", "Uninstall from global config", false)
|
|
76
|
+
.option("-y, --yes", "Skip confirmation prompt", false)
|
|
77
|
+
.option("--project-dir <path>", "Project directory (default: current directory)")
|
|
78
|
+
.action(async (opts) => {
|
|
79
|
+
if (!opts.yes && process.stdout.isTTY) {
|
|
80
|
+
try {
|
|
81
|
+
const { default: inquirer } = await import("inquirer");
|
|
82
|
+
const { confirm } = await inquirer.prompt([{
|
|
83
|
+
type: "confirm",
|
|
84
|
+
name: "confirm",
|
|
85
|
+
message: "Uninstall BYOAO? (your vaults and notes will not be affected)",
|
|
86
|
+
default: true,
|
|
87
|
+
}]);
|
|
88
|
+
if (!confirm) {
|
|
89
|
+
console.log("Cancelled.");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// inquirer not available — proceed
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
await uninstall({
|
|
98
|
+
global: opts.global,
|
|
99
|
+
projectDir: opts.projectDir,
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
// ── byoao init ───────────────────────────────────────────────────
|
|
65
103
|
program
|
|
66
|
-
.command("vault")
|
|
67
|
-
.description("Vault management commands")
|
|
68
104
|
.command("init")
|
|
69
|
-
.description("Create a new Obsidian
|
|
70
|
-
|
|
71
|
-
.option("--
|
|
72
|
-
.option("--
|
|
105
|
+
.description("Create a new Obsidian knowledge base for your team — sets up folders, templates, " +
|
|
106
|
+
"glossary, and an AI routing index (AGENT.md)")
|
|
107
|
+
.option("--team <name>", "Team name (skips interactive prompt)")
|
|
108
|
+
.option("--path <path>", "Where to create the vault (default: ~/Documents/<team> Workspace)")
|
|
109
|
+
.option("--preset <name>", "Role preset — determines folder structure and templates (default: pm-tpm)")
|
|
73
110
|
.action(async (opts) => {
|
|
74
111
|
// Check Obsidian first
|
|
75
112
|
const obsidianStatus = checkObsidian();
|
|
@@ -82,7 +119,6 @@ program
|
|
|
82
119
|
let vaultPath = opts.path;
|
|
83
120
|
let presetName = opts.preset || "pm-tpm";
|
|
84
121
|
let members = [];
|
|
85
|
-
let projects = [];
|
|
86
122
|
// Interactive TUI when --team is not provided and stdout is TTY
|
|
87
123
|
if (!teamName && process.stdout.isTTY) {
|
|
88
124
|
try {
|
|
@@ -114,7 +150,17 @@ program
|
|
|
114
150
|
validate: (v) => v.trim() ? true : "Team name is required",
|
|
115
151
|
}]);
|
|
116
152
|
teamName = teamAnswer.teamName;
|
|
117
|
-
// 3.
|
|
153
|
+
// 3. Your name (creates your own People note)
|
|
154
|
+
const { yourName } = await inquirer.prompt([{
|
|
155
|
+
type: "input",
|
|
156
|
+
name: "yourName",
|
|
157
|
+
message: "Your name:",
|
|
158
|
+
validate: (v) => v.trim() ? true : "Your name is required",
|
|
159
|
+
}]);
|
|
160
|
+
if (yourName.trim()) {
|
|
161
|
+
members.push({ name: yourName.trim(), role: presetName === "pm-tpm" ? "PM/TPM" : "Team Member" });
|
|
162
|
+
}
|
|
163
|
+
// 4. Vault path
|
|
118
164
|
const defaultPath = path.join(os.homedir(), "Documents", `${teamName} Workspace`);
|
|
119
165
|
const { pathChoice } = await inquirer.prompt([{
|
|
120
166
|
type: "list",
|
|
@@ -134,48 +180,6 @@ program
|
|
|
134
180
|
}]);
|
|
135
181
|
vaultPath = customPath;
|
|
136
182
|
}
|
|
137
|
-
// 4. Members loop
|
|
138
|
-
let addingMembers = true;
|
|
139
|
-
while (addingMembers) {
|
|
140
|
-
const { action } = await inquirer.prompt([{
|
|
141
|
-
type: "list",
|
|
142
|
-
name: "action",
|
|
143
|
-
message: `Team members (${members.length} added)`,
|
|
144
|
-
choices: [
|
|
145
|
-
{ name: "Add a member", value: "add" },
|
|
146
|
-
{ name: "Done", value: "done" },
|
|
147
|
-
],
|
|
148
|
-
}]);
|
|
149
|
-
if (action === "done")
|
|
150
|
-
break;
|
|
151
|
-
const { name, role } = await inquirer.prompt([
|
|
152
|
-
{ type: "input", name: "name", message: "Name:" },
|
|
153
|
-
{ type: "input", name: "role", message: "Role:", default: "" },
|
|
154
|
-
]);
|
|
155
|
-
if (name.trim())
|
|
156
|
-
members.push({ name: name.trim(), role: role.trim() || "Team Member" });
|
|
157
|
-
}
|
|
158
|
-
// 5. Projects loop
|
|
159
|
-
let addingProjects = true;
|
|
160
|
-
while (addingProjects) {
|
|
161
|
-
const { action } = await inquirer.prompt([{
|
|
162
|
-
type: "list",
|
|
163
|
-
name: "action",
|
|
164
|
-
message: `Projects (${projects.length} added)`,
|
|
165
|
-
choices: [
|
|
166
|
-
{ name: "Add a project", value: "add" },
|
|
167
|
-
{ name: "Done", value: "done" },
|
|
168
|
-
],
|
|
169
|
-
}]);
|
|
170
|
-
if (action === "done")
|
|
171
|
-
break;
|
|
172
|
-
const { name, description } = await inquirer.prompt([
|
|
173
|
-
{ type: "input", name: "name", message: "Project name:" },
|
|
174
|
-
{ type: "input", name: "description", message: "Description:", default: "" },
|
|
175
|
-
]);
|
|
176
|
-
if (name.trim())
|
|
177
|
-
projects.push({ name: name.trim(), description: description.trim() || "" });
|
|
178
|
-
}
|
|
179
183
|
}
|
|
180
184
|
catch {
|
|
181
185
|
// inquirer not available — fall through to require --team
|
|
@@ -194,7 +198,7 @@ program
|
|
|
194
198
|
teamName,
|
|
195
199
|
vaultPath,
|
|
196
200
|
members,
|
|
197
|
-
projects,
|
|
201
|
+
projects: [],
|
|
198
202
|
preset: presetName,
|
|
199
203
|
});
|
|
200
204
|
printEvent(`Creating vault for "${teamName}"`);
|
|
@@ -205,34 +209,32 @@ program
|
|
|
205
209
|
printEventDetail(`Files: ${result.filesCreated}`);
|
|
206
210
|
printEventDetail(`Wikilinks: ${result.wikilinksCreated}`);
|
|
207
211
|
printEventDetail(`Directories: ${result.directories.length}`);
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
|
|
212
|
+
console.log();
|
|
213
|
+
printEventDetail("Next steps:");
|
|
214
|
+
printEventDetail(" 1. Open Obsidian → Manage vaults → Open folder as vault");
|
|
215
|
+
printEventDetail(` ${result.vaultPath}`);
|
|
216
|
+
printEventDetail(' 2. Read "Start Here.md" — it explains the vault structure');
|
|
217
|
+
printEventDetail(" 3. Start adding notes — meeting notes, project docs, daily notes");
|
|
218
|
+
printEventDetail(` 4. When ready for AI features: cd "${result.vaultPath}" && opencode`);
|
|
219
|
+
});
|
|
220
|
+
// ── byoao status ─────────────────────────────────────────────────
|
|
221
|
+
program
|
|
222
|
+
.command("status")
|
|
223
|
+
.description("Check the health of an existing vault — note count, directory structure, " +
|
|
224
|
+
"broken [[wikilinks]], and Obsidian connection status")
|
|
225
|
+
.argument("<path>", "Path to the vault folder")
|
|
226
|
+
.action(async (vaultPath) => {
|
|
227
|
+
const resolvedPath = path.resolve(vaultPath);
|
|
228
|
+
const status = await getVaultStatus(resolvedPath);
|
|
229
|
+
console.log(formatVaultStatus(status));
|
|
230
|
+
console.log("\n--- Obsidian ---");
|
|
231
|
+
const obsidianStatus = checkObsidian();
|
|
232
|
+
console.log(formatObsidianStatus(obsidianStatus));
|
|
213
233
|
});
|
|
214
|
-
// ── byoao vault status ──────────────────────────────────────────
|
|
215
|
-
// We need to add status as a sibling command under vault
|
|
216
|
-
// Commander's nested commands require a parent command object
|
|
217
|
-
const vaultCmd = program.commands.find((c) => c.name() === "vault");
|
|
218
|
-
if (vaultCmd) {
|
|
219
|
-
vaultCmd
|
|
220
|
-
.command("status")
|
|
221
|
-
.description("Check vault health")
|
|
222
|
-
.argument("<path>", "Path to the vault")
|
|
223
|
-
.action(async (vaultPath) => {
|
|
224
|
-
const resolvedPath = path.resolve(vaultPath);
|
|
225
|
-
const status = await getVaultStatus(resolvedPath);
|
|
226
|
-
console.log(formatVaultStatus(status));
|
|
227
|
-
console.log("\n--- Obsidian ---");
|
|
228
|
-
const obsidianStatus = checkObsidian();
|
|
229
|
-
console.log(formatObsidianStatus(obsidianStatus));
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
234
|
// ── byoao check-obsidian ────────────────────────────────────────
|
|
233
235
|
program
|
|
234
236
|
.command("check-obsidian")
|
|
235
|
-
.description("
|
|
237
|
+
.description("Verify that Obsidian is installed and running on this machine")
|
|
236
238
|
.action(() => {
|
|
237
239
|
const status = checkObsidian();
|
|
238
240
|
console.log(formatObsidianStatus(status));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-program.js","sourceRoot":"","sources":["../../src/cli/cli-program.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-program.js","sourceRoot":"","sources":["../../src/cli/cli-program.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/installer.js
CHANGED
|
@@ -65,16 +65,18 @@ async function promptInstallDependency(name, installCommands, interactive) {
|
|
|
65
65
|
export async function install(options, interactive = true) {
|
|
66
66
|
// ── 1. Check dependencies ─────────────────────────────────────
|
|
67
67
|
printSectionHeader("Checking dependencies...");
|
|
68
|
-
|
|
68
|
+
let openCodeStatus = checkOpenCode();
|
|
69
69
|
if (!openCodeStatus.installed) {
|
|
70
70
|
printProgress("OpenCode", "warn", "not installed");
|
|
71
71
|
const installed = await promptInstallDependency("OpenCode", openCodeStatus.installCommands, interactive);
|
|
72
72
|
if (installed) {
|
|
73
|
+
// Re-check after installation so plugin registration works
|
|
74
|
+
openCodeStatus = checkOpenCode();
|
|
73
75
|
printProgress("OpenCode", "ok", "installed");
|
|
74
76
|
}
|
|
75
77
|
else {
|
|
76
78
|
printWarning("OpenCode is required for the plugin to work.");
|
|
77
|
-
printInfo("You can still use the standalone CLI (byoao
|
|
79
|
+
printInfo("You can still use the standalone CLI (byoao init, byoao status).");
|
|
78
80
|
printInfo("To install OpenCode later, run one of:");
|
|
79
81
|
for (const cmd of openCodeStatus.installCommands) {
|
|
80
82
|
printInfo(` ${cmd.label}: ${cmd.command}`);
|
|
@@ -159,7 +161,7 @@ export async function install(options, interactive = true) {
|
|
|
159
161
|
let installedCount = 0;
|
|
160
162
|
for (const file of skillFiles) {
|
|
161
163
|
if (file.endsWith(".md")) {
|
|
162
|
-
await fs.copy(path.join(obsidianSkillsSrc, file), path.join(skillsDir, file), { overwrite:
|
|
164
|
+
await fs.copy(path.join(obsidianSkillsSrc, file), path.join(skillsDir, file), { overwrite: true });
|
|
163
165
|
installedCount++;
|
|
164
166
|
}
|
|
165
167
|
}
|
|
@@ -183,7 +185,7 @@ export async function install(options, interactive = true) {
|
|
|
183
185
|
let installedCount = 0;
|
|
184
186
|
for (const file of skillFiles) {
|
|
185
187
|
if (file.endsWith(".md")) {
|
|
186
|
-
await fs.copy(path.join(byoaoSkillsSrc, file), path.join(skillsDestDir, file), { overwrite:
|
|
188
|
+
await fs.copy(path.join(byoaoSkillsSrc, file), path.join(skillsDestDir, file), { overwrite: true });
|
|
187
189
|
installedCount++;
|
|
188
190
|
}
|
|
189
191
|
}
|
|
@@ -205,7 +207,7 @@ export async function install(options, interactive = true) {
|
|
|
205
207
|
desc: "# Install & launch OpenCode",
|
|
206
208
|
});
|
|
207
209
|
}
|
|
208
|
-
gettingStartedItems.push({ cmd: "byoao
|
|
210
|
+
gettingStartedItems.push({ cmd: "byoao init", desc: "# Create a knowledge base" }, { cmd: "byoao status <path>", desc: "# Check vault health" });
|
|
209
211
|
printGettingStarted(gettingStartedItems);
|
|
210
212
|
printInfo("Recommended: Obsidian Web Clipper → https://obsidian.md/clipper");
|
|
211
213
|
printFooter("https://github.com/JayJiangCT/BYOAO");
|
|
@@ -214,6 +216,93 @@ export async function install(options, interactive = true) {
|
|
|
214
216
|
printBlank();
|
|
215
217
|
}
|
|
216
218
|
}
|
|
219
|
+
export async function uninstall(options, interactive = true) {
|
|
220
|
+
printSectionHeader("Uninstalling BYOAO...");
|
|
221
|
+
let removedItems = [];
|
|
222
|
+
// ── 1. Remove plugin from opencode.json ─────────────────────
|
|
223
|
+
const configCandidates = [];
|
|
224
|
+
if (options.global) {
|
|
225
|
+
for (const p of OPENCODE_CONFIG_PATHS) {
|
|
226
|
+
configCandidates.push(p);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
const dir = options.projectDir || process.cwd();
|
|
231
|
+
configCandidates.push(path.join(dir, ".opencode.json"));
|
|
232
|
+
}
|
|
233
|
+
for (const configPath of configCandidates) {
|
|
234
|
+
if (await fs.pathExists(configPath)) {
|
|
235
|
+
try {
|
|
236
|
+
const config = await fs.readJson(configPath);
|
|
237
|
+
const plugins = config.plugin || [];
|
|
238
|
+
const idx = plugins.indexOf("byoao");
|
|
239
|
+
if (idx !== -1) {
|
|
240
|
+
plugins.splice(idx, 1);
|
|
241
|
+
config.plugin = plugins;
|
|
242
|
+
await fs.writeJson(configPath, config, { spaces: 2 });
|
|
243
|
+
removedItems.push(`Plugin unregistered from ${configPath}`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
// Invalid JSON — skip
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// ── 2. Remove Obsidian Skills ───────────────────────────────
|
|
252
|
+
const skillsDir = options.global
|
|
253
|
+
? path.join(os.homedir(), ".config/opencode/skills")
|
|
254
|
+
: path.join(options.projectDir || process.cwd(), ".opencode/skills");
|
|
255
|
+
const assetsDir = resolveAssetsDir();
|
|
256
|
+
const obsidianSkillsSrc = path.join(assetsDir, "obsidian-skills");
|
|
257
|
+
if (await fs.pathExists(obsidianSkillsSrc) && await fs.pathExists(skillsDir)) {
|
|
258
|
+
const skillFiles = await fs.readdir(obsidianSkillsSrc);
|
|
259
|
+
let removedCount = 0;
|
|
260
|
+
for (const file of skillFiles) {
|
|
261
|
+
if (file.endsWith(".md")) {
|
|
262
|
+
const dest = path.join(skillsDir, file);
|
|
263
|
+
if (await fs.pathExists(dest)) {
|
|
264
|
+
await fs.remove(dest);
|
|
265
|
+
removedCount++;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (removedCount > 0) {
|
|
270
|
+
removedItems.push(`Obsidian Skills (${removedCount} files)`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
// ── 3. Remove BYOAO commands ────────────────────────────────
|
|
274
|
+
const commandsDir = options.global
|
|
275
|
+
? path.join(os.homedir(), ".config/opencode/commands")
|
|
276
|
+
: path.join(options.projectDir || process.cwd(), ".opencode/commands");
|
|
277
|
+
const byoaoSkillsSrc = path.join(assetsDir, "..", "skills");
|
|
278
|
+
if (await fs.pathExists(byoaoSkillsSrc) && await fs.pathExists(commandsDir)) {
|
|
279
|
+
const skillFiles = await fs.readdir(byoaoSkillsSrc);
|
|
280
|
+
let removedCount = 0;
|
|
281
|
+
for (const file of skillFiles) {
|
|
282
|
+
if (file.endsWith(".md")) {
|
|
283
|
+
const dest = path.join(commandsDir, file);
|
|
284
|
+
if (await fs.pathExists(dest)) {
|
|
285
|
+
await fs.remove(dest);
|
|
286
|
+
removedCount++;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (removedCount > 0) {
|
|
291
|
+
removedItems.push(`BYOAO commands (${removedCount} files)`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// ── Summary ─────────────────────────────────────────────────
|
|
295
|
+
if (removedItems.length === 0) {
|
|
296
|
+
printInfo("Nothing to uninstall — BYOAO was not found.");
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
for (const item of removedItems) {
|
|
300
|
+
printProgress(item, "ok", "removed");
|
|
301
|
+
}
|
|
302
|
+
printBlank();
|
|
303
|
+
printInfo("BYOAO has been uninstalled. Your vaults and notes are untouched.");
|
|
304
|
+
}
|
|
305
|
+
}
|
|
217
306
|
function resolveAssetsDir() {
|
|
218
307
|
const srcAssets = path.resolve(import.meta.dirname, "..", "assets");
|
|
219
308
|
const distAssets = path.resolve(import.meta.dirname, "..", "..", "src", "assets");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/cli/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/cli/installer.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/add-member.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { tool } from "@opencode-ai/plugin/tool";
|
|
2
2
|
import { addMember } from "../vault/member.js";
|
|
3
3
|
export const byoao_add_member = tool({
|
|
4
|
-
description: "Add a new team member note to an existing vault. Creates a person note in
|
|
4
|
+
description: "Add a new team member note to an existing vault. Creates a person note in People/ and updates the team index and AGENT.md wikilinks.",
|
|
5
5
|
args: {
|
|
6
6
|
vaultPath: tool.schema.string().describe("Path to the Obsidian vault"),
|
|
7
7
|
name: tool.schema.string().describe("Person's full name"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-member.js","sourceRoot":"","sources":["../../src/tools/add-member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"add-member.js","sourceRoot":"","sources":["../../src/tools/add-member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACnC,WAAW,EACT,sIAAsI;IACxI,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACtE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACzD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACrE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC5D;IACD,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,mBAAmB,IAAI,CAAC,IAAI,aAAa,MAAM,CAAC,QAAQ,0BAA0B,MAAM,CAAC,cAAc,EAAE,CAAC;IACnH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { tool } from "@opencode-ai/plugin/tool";
|
|
2
2
|
import { addProject } from "../vault/project.js";
|
|
3
3
|
export const byoao_add_project = tool({
|
|
4
|
-
description: "Add a new project note to an existing vault. Creates a project note in
|
|
4
|
+
description: "Add a new project note to an existing vault. Creates a project note in Projects/ and updates the team index and AGENT.md wikilinks.",
|
|
5
5
|
args: {
|
|
6
6
|
vaultPath: tool.schema.string().describe("Path to the Obsidian vault"),
|
|
7
7
|
name: tool.schema.string().describe("Project name"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../src/tools/add-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACpC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../src/tools/add-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACpC,WAAW,EACT,qIAAqI;IACvI,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACtE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACnD,WAAW,EAAE,IAAI,CAAC,MAAM;aACrB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC5D;IACD,KAAK,CAAC,OAAO,CAAC,IAAI;QAChB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,oBAAoB,IAAI,CAAC,IAAI,aAAa,MAAM,CAAC,QAAQ,0BAA0B,MAAM,CAAC,cAAc,EAAE,CAAC;IACpH,CAAC;CACF,CAAC,CAAC"}
|
package/dist/vault/glossary.js
CHANGED
|
@@ -2,7 +2,7 @@ import fs from "fs-extra";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
export async function addGlossaryTerm(input) {
|
|
4
4
|
const { vaultPath, term, definition } = input;
|
|
5
|
-
const glossaryPath = path.join(vaultPath, "
|
|
5
|
+
const glossaryPath = path.join(vaultPath, "Knowledge/Glossary.md");
|
|
6
6
|
if (!(await fs.pathExists(glossaryPath))) {
|
|
7
7
|
throw new Error(`Glossary not found at: ${glossaryPath}`);
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../src/vault/glossary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../src/vault/glossary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvD,iDAAiD;IACjD,MAAM,MAAM,GAAG,OAAO,IAAI,QAAQ,UAAU,IAAI,CAAC;IAEjD,yEAAyE;IACzE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC9B,sGAAsG,CACvG,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC;QACpE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE;YACrC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;YACrC,CAAC,CAAC,MAAM,CAAC;QACX,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,SAAS,EACT,GAAG,WAAW,GAAG,WAAW,KAAK,QAAQ,EAAE,CAC5C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,wDAAwD;QACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACjD,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,0BAA0B,EAC1B,GAAG,MAAM,8BAA8B,CACxC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,KAAK,MAAM,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAE1C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC"}
|
package/dist/vault/member.js
CHANGED
|
@@ -4,7 +4,7 @@ export async function addMember(input) {
|
|
|
4
4
|
const { vaultPath, name, role, team } = input;
|
|
5
5
|
let wikilinksAdded = 0;
|
|
6
6
|
// 1. Create person note
|
|
7
|
-
const personPath = path.join(vaultPath, `
|
|
7
|
+
const personPath = path.join(vaultPath, `People/${name}.md`);
|
|
8
8
|
if (await fs.pathExists(personPath)) {
|
|
9
9
|
throw new Error(`Person note already exists: ${personPath}`);
|
|
10
10
|
}
|
|
@@ -24,10 +24,10 @@ tags: [person]
|
|
|
24
24
|
`;
|
|
25
25
|
await fs.writeFile(personPath, content);
|
|
26
26
|
// 2. Update team index if it exists
|
|
27
|
-
const teamFiles = await fs.readdir(path.join(vaultPath, "
|
|
27
|
+
const teamFiles = await fs.readdir(path.join(vaultPath, "People"));
|
|
28
28
|
const teamIndexFile = teamFiles.find((f) => f.endsWith("Team.md"));
|
|
29
29
|
if (teamIndexFile) {
|
|
30
|
-
const teamIndexPath = path.join(vaultPath, "
|
|
30
|
+
const teamIndexPath = path.join(vaultPath, "People", teamIndexFile);
|
|
31
31
|
let teamContent = await fs.readFile(teamIndexPath, "utf-8");
|
|
32
32
|
// Add to members table
|
|
33
33
|
const tableRow = `| [[${name}]] | ${role} |`;
|
package/dist/vault/member.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member.js","sourceRoot":"","sources":["../../src/vault/member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAqB;IACnD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC9C,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"member.js","sourceRoot":"","sources":["../../src/vault/member.ts"],"names":[],"mappings":"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"}
|
package/dist/vault/project.js
CHANGED
|
@@ -5,7 +5,7 @@ export async function addProject(input) {
|
|
|
5
5
|
const { vaultPath, name, description, team } = input;
|
|
6
6
|
let wikilinksAdded = 0;
|
|
7
7
|
// 1. Create project note
|
|
8
|
-
const projectPath = path.join(vaultPath, `
|
|
8
|
+
const projectPath = path.join(vaultPath, `Projects/${name}.md`);
|
|
9
9
|
if (await fs.pathExists(projectPath)) {
|
|
10
10
|
throw new Error(`Project note already exists: ${projectPath}`);
|
|
11
11
|
}
|
|
@@ -27,7 +27,7 @@ ${description}
|
|
|
27
27
|
`;
|
|
28
28
|
await fs.writeFile(projectPath, content);
|
|
29
29
|
// 2. Update team index if it exists
|
|
30
|
-
const peoplePath = path.join(vaultPath, "
|
|
30
|
+
const peoplePath = path.join(vaultPath, "People");
|
|
31
31
|
if (await fs.pathExists(peoplePath)) {
|
|
32
32
|
const teamFiles = await fs.readdir(peoplePath);
|
|
33
33
|
const teamIndexFile = teamFiles.find((f) => f.endsWith("Team.md"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/vault/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQtC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACrD,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/vault/project.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ tags: [glossary, domain, reference]
|
|
|
11
11
|
Centralized quick-reference for all domain terms. This glossary uses a **two-tier terminology system**:
|
|
12
12
|
|
|
13
13
|
- **Tier 1 (this file)**: Simple terms defined in one or two sentences — kept here in table rows.
|
|
14
|
-
- **Tier 2 (concept notes)**: Complex terms that need detailed explanation, diagrams, or have multiple relationships — get their own note in `
|
|
14
|
+
- **Tier 2 (concept notes)**: Complex terms that need detailed explanation, diagrams, or have multiple relationships — get their own note in `Knowledge/concepts/` and are linked from here.
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -27,7 +27,7 @@ Centralized quick-reference for all domain terms. This glossary uses a **two-tie
|
|
|
27
27
|
|
|
28
28
|
1. **Start here**: Add a row to the appropriate table above with a one-line definition.
|
|
29
29
|
2. **Graduate if needed**: If a term grows beyond 2 sentences, has 3+ relationships to other terms, or has important gotchas, create a concept note:
|
|
30
|
-
- Create `
|
|
30
|
+
- Create `Knowledge/concepts/Term Name.md`
|
|
31
31
|
- Replace the definition here with: `Brief intro — see [[Term Name]] for full details.`
|
|
32
32
|
3. **Link generously**: Use `[[wikilinks]]` in definitions to connect related terms.
|
|
33
33
|
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
}
|
|
57
57
|
],
|
|
58
58
|
"noteNameFormat": "{{date}} — {{title|safe_name|truncate:80}}",
|
|
59
|
-
"path": "
|
|
59
|
+
"path": "Inbox",
|
|
60
60
|
"triggers": ["atlassian.net/wiki", "confluence"],
|
|
61
61
|
"context": "{{content}}",
|
|
62
62
|
"body": "## Summary\n\n{{\"Summarize the key points of this Confluence page in 3-5 bullet points. Focus on decisions, action items, and important context. Be concise.\"|prompt}}\n\n---\n\n## Original Content\n\n{{content}}"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
48
|
"noteNameFormat": "{{date}} — {{title|safe_name|truncate:80}}",
|
|
49
|
-
"path": "
|
|
49
|
+
"path": "Inbox",
|
|
50
50
|
"triggers": [],
|
|
51
51
|
"context": "{{content|truncate:3000}}",
|
|
52
52
|
"body": "## Summary\n\n{{\"Summarize this article in 3-5 bullet points. Focus on key insights, conclusions, and actionable takeaways. Be concise.\"|prompt}}\n\n## Key Quotes\n\n{% if highlights %}{% for highlight in highlights %}\n> {{highlight}}\n{% endfor %}{% else %}\n*No highlights selected. Use the Web Clipper highlighter to capture key passages.*\n{% endif %}\n\n---\n\n## Original Content\n\n{{content}}\n\n---\n\n*Clipped from [{{domain}}]({{url}}) on {{date}}*"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
}
|
|
62
62
|
],
|
|
63
63
|
"noteNameFormat": "{{selector:#key-val|default:title|safe_name}} — {{selector:#summary-val|default:title|safe_name|truncate:60}}",
|
|
64
|
-
"path": "
|
|
64
|
+
"path": "Inbox",
|
|
65
65
|
"triggers": ["atlassian.net/browse", "atlassian.net/jira"],
|
|
66
66
|
"context": "{{content}}",
|
|
67
67
|
"body": "## Summary\n\n**Status**: {{selector:#status-val span}} | **Priority**: {{selector:#priority-val img|attr:alt}} | **Assignee**: {{selector:#assignee-val span}}\n\n## Description\n\n{{selector:#description-val|markdown}}\n\n{% if selector:.acceptance-criteria %}## Acceptance Criteria\n\n{{selector:.acceptance-criteria|markdown}}\n{% endif %}\n\n---\n\n*Clipped from [Jira]({{url}}) on {{date}}*"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
48
|
"noteNameFormat": "{{date}} — Meeting — {{title|safe_name|truncate:60}}",
|
|
49
|
-
"path": "
|
|
49
|
+
"path": "Inbox",
|
|
50
50
|
"triggers": ["meet.google.com", "calendar.google.com", "outlook.office.com"],
|
|
51
51
|
"context": "{% if selection %}{{selection}}{% else %}{{content|truncate:3000}}{% endif %}",
|
|
52
52
|
"body": "## Meeting Info\n\n- **Date**: {{date}}\n- **Participants**: *fill in after meeting*\n- **Project**: *link to project*\n\n## Agenda / Context\n\n{% if selection %}{{selection|markdown}}{% else %}{{content|markdown}}{% endif %}\n\n## Notes\n\n- \n\n## Action Items\n\n- [ ] \n\n## Decisions\n\n- \n\n---\n\n*Clipped from [{{domain}}]({{url}}) on {{date}}*"
|
|
@@ -14,7 +14,7 @@ You are a document enrichment assistant. Your job is to improve Obsidian notes b
|
|
|
14
14
|
2. **Scan the vault** for context:
|
|
15
15
|
- Use `byoao_vault_status` to understand what's in the vault
|
|
16
16
|
- Read `AGENT.md` for project/people index
|
|
17
|
-
- Read `
|
|
17
|
+
- Read `Knowledge/Glossary.md` for domain terms
|
|
18
18
|
|
|
19
19
|
3. **Add/fix frontmatter**:
|
|
20
20
|
- Ensure `title`, `type`, `status`, `date`, `tags` are present
|
|
@@ -25,7 +25,7 @@ You are a document enrichment assistant. Your job is to improve Obsidian notes b
|
|
|
25
25
|
- Link mentions of people names to `[[Person Name]]`
|
|
26
26
|
- Link mentions of projects to `[[Project Name]]`
|
|
27
27
|
- Link domain terms to `[[Glossary]]` or concept notes
|
|
28
|
-
- Link related system references to `
|
|
28
|
+
- Link related system references to `Systems/` docs
|
|
29
29
|
|
|
30
30
|
5. **Preserve content**: Never delete or rewrite user content. Only add frontmatter and convert plain text mentions to wikilinks.
|
|
31
31
|
|
|
@@ -43,7 +43,7 @@ Previously generated explanations are cached in `Systems/`. Reuse them when the
|
|
|
43
43
|
|
|
44
44
|
1. **Parse the question** — identify the target system, service, or feature.
|
|
45
45
|
2. **Load baseline overview** — read `.opencode/context/repos/{service}.md`.
|
|
46
|
-
3. **Check Obsidian vault** — search `
|
|
46
|
+
3. **Check Obsidian vault** — search `Systems/` for existing knowledge docs.
|
|
47
47
|
4. **If more detail needed** — read the local repo clone using baseline as guide.
|
|
48
48
|
5. **Staleness detection** — flag discrepancies between baseline and actual code.
|
|
49
49
|
6. **Synthesize a clear explanation** with Mermaid diagrams where helpful.
|