paper-manager 0.1.0 → 0.2.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/README.md CHANGED
@@ -1,38 +1,100 @@
1
- # my-ts-starter
1
+ # paper-manager
2
2
 
3
- A minimal TypeScript project template with modern tooling powered by the [oxc](https://oxc.rs/) ecosystem.
3
+ [![npm version](https://img.shields.io/npm/v/paper-manager)](https://www.npmjs.com/package/paper-manager)
4
+ [![license](https://img.shields.io/npm/l/paper-manager)](https://github.com/EurFelux/paper-manager/blob/main/LICENSE)
4
5
 
5
- ## Features
6
+ A CLI tool for managing academic papers with knowledge base and vector search support.
6
7
 
7
- - **TypeScript** — Type-safe development with `tsc`
8
- - **oxlint** — Fast linter with type-aware rules (via `oxlint-tsgolint`)
9
- - **oxfmt** — Fast formatter
8
+ ## Installation
10
9
 
11
- ## Getting Started
10
+ ```bash
11
+ npm install -g paper-manager
12
+ ```
13
+
14
+ ```bash
15
+ pnpm install -g paper-manager
16
+ ```
17
+
18
+ ```bash
19
+ bun install -g paper-manager
20
+ ```
21
+
22
+ ## Quick Start
12
23
 
13
24
  ```bash
14
- # Install dependencies
15
- pnpm install
25
+ # Initialize data directory
26
+ paper config init --user
16
27
 
17
- # Type check
18
- pnpm typecheck
28
+ # Configure an embedding model
29
+ paper config set embeddingModels '{"openai-small":{"provider":"openai","model":"text-embedding-3-small","apiKey":"sk-...","dimensions":1536}}' --user
30
+ paper config set defaultEmbeddingModelId '"openai-small"' --user
19
31
 
20
- # Lint
21
- pnpm lint
32
+ # Create a knowledge base
33
+ paper kb create my-papers -d "My research papers"
22
34
 
23
- # Format
24
- pnpm fmt
35
+ # Add a paper
36
+ paper lit add <knowledge-base-id> ./paper.pdf
37
+
38
+ # Search across papers
39
+ paper kb query <knowledge-base-id> "attention mechanism"
25
40
  ```
26
41
 
27
- ## Available Scripts
42
+ ## Commands
43
+
44
+ ### Configuration (`paper config`)
45
+
46
+ ```bash
47
+ paper config init [--user] # Initialize data directory structure
48
+ paper config get <key> [--user] # Get a config value
49
+ paper config set <key> <value> [--user] # Set a config value
50
+ paper config remove <key> [--user] # Remove a config key
51
+ paper config list [--user] # List all config
52
+ ```
53
+
54
+ ### Knowledge Base (`paper kb`)
55
+
56
+ ```bash
57
+ paper kb create <name> -d <desc> [-e <model-id>] [--user] # Create a knowledge base
58
+ paper kb list [--all | --user] # List knowledge bases
59
+ paper kb remove <id> # Remove a knowledge base
60
+ paper kb query <id> <query-text> # Query a knowledge base
61
+ ```
28
62
 
29
- | Script | Description |
30
- | ---------------- | -------------------------------- |
31
- | `pnpm typecheck` | Run TypeScript type checking |
32
- | `pnpm lint` | Lint with oxlint (type-aware) |
33
- | `pnpm lint:fix` | Lint and auto-fix |
34
- | `pnpm fmt` | Format with oxfmt |
35
- | `pnpm fmt:check` | Check formatting without writing |
63
+ ### Literature (`paper lit`)
64
+
65
+ ```bash
66
+ paper lit add <kb-id> <pdf-path> # Add a literature from PDF
67
+ paper lit remove <kb-id> <id> # Remove a literature
68
+ paper lit update <kb-id> <id> [opts] # Update literature metadata
69
+ paper lit list <kb-id> # List literatures
70
+ paper lit show <kb-id> <id> # Show literature details
71
+ paper lit note list <lit-id> # List notes
72
+ paper lit note set <lit-id> <k> <v> # Set a note
73
+ paper lit note remove <lit-id> <key> # Remove a note
74
+ ```
75
+
76
+ ## Data Storage
77
+
78
+ - **User data**: `~/.paper-manager/` — global config, personal knowledge bases
79
+ - **Project data**: `./.paper-manager/` — project-specific knowledge bases
80
+
81
+ Project config takes priority over user config.
82
+
83
+ ## Agent Skill
84
+
85
+ Install as a skill to let coding agent manage your papers (Powered by [vercel-labs/skills](https://github.com/vercel-labs/skills)):
86
+
87
+ ```bash
88
+ npx skills add https://github.com/EurFelux/paper-manager
89
+ ```
90
+
91
+ ```bash
92
+ pnpx skills add https://github.com/EurFelux/paper-manager
93
+ ```
94
+
95
+ ```bash
96
+ bunx skills add https://github.com/EurFelux/paper-manager
97
+ ```
36
98
 
37
99
  ## License
38
100
 
@@ -1,5 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import { listConfig, loadMergedConfig, removeConfig, setConfig } from "../config/index.js";
3
+ import { initScope } from "../config/init.js";
3
4
  export function createConfigCommand() {
4
5
  const config = new Command("config").description("Manage configuration");
5
6
  config
@@ -52,6 +53,20 @@ export function createConfigCommand() {
52
53
  console.log(JSON.stringify(result, null, 2));
53
54
  }
54
55
  });
56
+ config
57
+ .command("init")
58
+ .description("Initialize data directory for current scope")
59
+ .option("--user", "Initialize user scope (~/.paper-manager)")
60
+ .action((options) => {
61
+ const scopeLabel = options.user ? "user" : "project";
62
+ const result = initScope({ user: options.user });
63
+ console.log(`Initializing ${scopeLabel} scope: ${result.baseDir}\n`);
64
+ for (const item of result.items) {
65
+ const icon = item.status === "created" ? "+" : "=";
66
+ console.log(` [${icon}] ${item.name} (${item.status})`);
67
+ }
68
+ console.log(`\nDone.`);
69
+ });
55
70
  return config;
56
71
  }
57
72
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface InitScopeResult {
2
+ baseDir: string;
3
+ items: Array<{
4
+ name: string;
5
+ status: "created" | "exists";
6
+ }>;
7
+ }
8
+ export declare function initScope(options?: {
9
+ user?: boolean;
10
+ }): InitScopeResult;
@@ -0,0 +1,53 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { initializeDatabase, openDatabase } from "../db/index.js";
4
+ import { getPdfDir, getProjectDataDir, getUserDataDir, getVectorStoreDir, writeConfigFile, } from "./index.js";
5
+ export function initScope(options) {
6
+ const baseDir = options?.user ? getUserDataDir() : getProjectDataDir();
7
+ const items = [];
8
+ // 1. Base directory
9
+ if (fs.existsSync(baseDir)) {
10
+ items.push({ name: baseDir, status: "exists" });
11
+ }
12
+ else {
13
+ fs.mkdirSync(baseDir, { recursive: true });
14
+ items.push({ name: baseDir, status: "created" });
15
+ }
16
+ // 2. config.json — create empty object if missing, preserve if exists
17
+ const configPath = path.join(baseDir, "config.json");
18
+ if (fs.existsSync(configPath)) {
19
+ items.push({ name: "config.json", status: "exists" });
20
+ }
21
+ else {
22
+ writeConfigFile(configPath, {});
23
+ items.push({ name: "config.json", status: "created" });
24
+ }
25
+ // 3. papers.db — open, initialize tables, then close
26
+ // (avoid polluting the singleton cache; the lazy getter will re-open when needed)
27
+ const dbPath = path.join(baseDir, "papers.db");
28
+ const dbExisted = fs.existsSync(dbPath);
29
+ const db = openDatabase(dbPath);
30
+ initializeDatabase(db);
31
+ db.close();
32
+ items.push({ name: "papers.db", status: dbExisted ? "exists" : "created" });
33
+ // 4. pdfs/ directory
34
+ const pdfDir = getPdfDir(baseDir);
35
+ if (fs.existsSync(pdfDir)) {
36
+ items.push({ name: "pdfs/", status: "exists" });
37
+ }
38
+ else {
39
+ fs.mkdirSync(pdfDir, { recursive: true });
40
+ items.push({ name: "pdfs/", status: "created" });
41
+ }
42
+ // 5. vector-stores/ directory
43
+ const vectorDir = getVectorStoreDir(baseDir);
44
+ if (fs.existsSync(vectorDir)) {
45
+ items.push({ name: "vector-stores/", status: "exists" });
46
+ }
47
+ else {
48
+ fs.mkdirSync(vectorDir, { recursive: true });
49
+ items.push({ name: "vector-stores/", status: "created" });
50
+ }
51
+ return { baseDir, items };
52
+ }
53
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/config/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "paper-manager",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "A paper management system.",
5
5
  "keywords": [],
6
6
  "license": "MIT",
7
7
  "author": "EurFelux",
8
+ "homepage": "https://github.com/EurFelux/paper-manager",
9
+ "repository": {
10
+ "url": "https://github.com/EurFelux/paper-manager"
11
+ },
8
12
  "bin": {
9
13
  "paper": "dist/index.js"
10
14
  },