Update build script to include welcome.md

This commit is contained in:
tusharmagar 2026-01-21 21:18:31 +05:30
parent 72897e279f
commit f6b4a30fa2
3 changed files with 70 additions and 2 deletions

View file

@ -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": {

View file

@ -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();
ensureDefaultConfigs();
ensureWelcomeFile();

View file

@ -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.