From f6b4a30fa2fe2b09be2f814f9f6a2b21407034c6 Mon Sep 17 00:00:00 2001 From: tusharmagar Date: Wed, 21 Jan 2026 21:18:31 +0530 Subject: [PATCH] Update build script to include welcome.md --- apps/x/packages/core/package.json | 2 +- apps/x/packages/core/src/config/config.ts | 21 +++++++- apps/x/packages/core/src/knowledge/welcome.md | 49 +++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 apps/x/packages/core/src/knowledge/welcome.md diff --git a/apps/x/packages/core/package.json b/apps/x/packages/core/package.json index f1061b52..cf135019 100644 --- a/apps/x/packages/core/package.json +++ b/apps/x/packages/core/package.json @@ -5,7 +5,7 @@ "main": "./dist/index.js", "types": "./dist/index.d.ts", "scripts": { - "build": "rm -rf dist && tsc && mkdir -p dist/knowledge dist/pre_built && cp src/knowledge/note_creation_*.md dist/knowledge/ && cp src/pre_built/*.md dist/pre_built/", + "build": "rm -rf dist && tsc && mkdir -p dist/knowledge dist/pre_built && cp src/knowledge/note_creation_*.md src/knowledge/welcome.md dist/knowledge/ && cp src/pre_built/*.md dist/pre_built/", "dev": "tsc -w" }, "dependencies": { diff --git a/apps/x/packages/core/src/config/config.ts b/apps/x/packages/core/src/config/config.ts index 5bad3ed5..23046d42 100644 --- a/apps/x/packages/core/src/config/config.ts +++ b/apps/x/packages/core/src/config/config.ts @@ -1,10 +1,15 @@ import path from "path"; import fs from "fs"; import { homedir } from "os"; +import { fileURLToPath } from "url"; // Resolve app root relative to compiled file location (dist/...) export const WorkDir = path.join(homedir(), ".rowboat"); +// Get the directory of this file (for locating bundled assets) +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + function ensureDirs() { const ensure = (p: string) => { if (!fs.existsSync(p)) fs.mkdirSync(p, { recursive: true }); }; ensure(WorkDir); @@ -24,5 +29,19 @@ function ensureDefaultConfigs() { } } +function ensureWelcomeFile() { + // Copy welcome.md to knowledge directory if it doesn't exist + const welcomeDest = path.join(WorkDir, "knowledge", "Welcome.md"); + if (!fs.existsSync(welcomeDest)) { + // Look for welcome.md in the dist/knowledge directory (bundled with the package) + // __dirname is dist/config, so we need to go up one level to find dist/knowledge + const welcomeSrc = path.join(__dirname, "..", "knowledge", "welcome.md"); + if (fs.existsSync(welcomeSrc)) { + fs.copyFileSync(welcomeSrc, welcomeDest); + } + } +} + ensureDirs(); -ensureDefaultConfigs(); \ No newline at end of file +ensureDefaultConfigs(); +ensureWelcomeFile(); \ No newline at end of file diff --git a/apps/x/packages/core/src/knowledge/welcome.md b/apps/x/packages/core/src/knowledge/welcome.md new file mode 100644 index 00000000..ffbcdbb6 --- /dev/null +++ b/apps/x/packages/core/src/knowledge/welcome.md @@ -0,0 +1,49 @@ +# Welcome to Rowboat + +This vault is your work memory. + +Rowboat extracts context from your emails and meetings and turns it into long-lived, editable Markdown notes. The goal is not to store everything, but to preserve the context that stays useful over time. + +--- + +## How it works + +**Entity-based notes** +Notes represent people, projects, organizations, or topics that matter to your work. + +**Auto-updating context** +As new emails and meetings come in, Rowboat adds decisions, commitments, and relevant context to the appropriate notes. + +**Living notes** +These are not static summaries. Context accumulates over time, and notes evolve as your work evolves. + +--- + +## Your AI coworker + +Rowboat uses this shared memory to help with everyday work, such as: + +- Drafting emails +- Preparing for meetings +- Summarizing the current state of a project +- Taking local actions when appropriate + +The AI works with deep context, but you stay in control. All notes are visible, editable, and yours. + +--- + +## Design principles + +**Reduce noise** +Rowboat focuses on recurring contacts and active projects instead of trying to capture everything. + +**Local and inspectable** +All data is stored locally as plain Markdown. You can read, edit, or delete any file at any time. + +**Built to improve over time** +As you keep using Rowboat, context accumulates across notes instead of being reconstructed from scratch. + +--- + +If something feels confusing or limiting, we'd love to hear about it. +Rowboat is still evolving, and your workflow matters.