botnote 0.1.1 → 0.1.6

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jianhua Wang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # botnote
2
2
 
3
- Notion for bots. A single binary that stores projects, tasks, notes, decisions, and memory — and exposes them to AI agents via MCP and REST.
3
+ Notion for bots. A single binary that stores projects, tasks, notes, and agent memory — and exposes them to AI agents via MCP and REST.
4
4
 
5
5
  ## Why
6
6
 
@@ -8,18 +8,18 @@ Agents work best with one stable, queryable, write-friendly source of truth —
8
8
 
9
9
  Three things only:
10
10
 
11
- 1. **Project management** — projects, tasks, decisions, comments.
12
- 2. **Note-taking** — free-form Markdown notes, tagged, searchable.
11
+ 1. **Project management** — projects and tasks with status, priority, due dates, and stable identifiers.
12
+ 2. **Note-taking** — free-form Markdown notes, tagged, searchable, and optionally pinned.
13
13
  3. **Memory for agents** — hybrid retrieval (BM25 + vector + time decay), opening brief auto-bundles AGENTS.md + recent context.
14
14
 
15
15
  ## Design
16
16
 
17
- - Storage: Postgres 16 + pgvector + tsvector. Single dedicated docker container.
18
- - Single multi-kind entity table — `task / note / decision / doc / comment / log / memory` discriminated by `kind` column.
17
+ - Storage: Postgres + pgvector + tsvector. Single dedicated docker container.
18
+ - Single multi-kind entity table — `task / note` discriminated by `kind` column.
19
19
  - Search: hybrid retrieval — tsvector BM25 + pgvector cosine + time decay, merged via Reciprocal Rank Fusion (k=60).
20
20
  - Embeddings: OpenAI `text-embedding-3-small` at 384 dimensions, written asynchronously. Falls back to BM25-only if no API key.
21
21
  - API: MCP server (stdio) + REST API (Fastify on `:4280`) over a shared service layer.
22
- - Every write requires `actor` (human / agent / system); `idempotency_key` is supported on every write.
22
+ - Every write records `actorKind` (human / agent / system); `idempotencyKey` is supported on writes.
23
23
  - All MCP tools carry `2025-03-26` annotations: `readOnlyHint`, `idempotentHint`, `destructiveHint`, `openWorldHint`.
24
24
 
25
25
  ## Quick start
@@ -38,11 +38,17 @@ botnote login
38
38
  `botnote login` stores the daemon URL and bearer token in
39
39
  `~/.config/botnote/config.json`. Use `https://botnote.net` plus a token from
40
40
  Settings -> API tokens on remote machines; use `http://127.0.0.1:4280` without
41
- a token on the daemon host.
41
+ a token on the daemon host. New API tokens remain copyable from Settings; tokens
42
+ created before recoverable storage was added only show their prefix and should
43
+ be regenerated if the full value was lost.
42
44
 
43
- The Claude Code and Codex plugins call `botnote mcp`, so installing the npm
44
- package is enough for plugin runtime on machines that do not have a botnote
45
- source checkout.
45
+ Security note: newly-created API tokens are stored recoverably in the database
46
+ so Settings can copy them later. Treat the database and backups as
47
+ secret-bearing material, and revoke tokens if either is exposed.
48
+
49
+ The Claude Code, Codex, and Cursor plugins call `botnote mcp`, so installing
50
+ the npm package is enough for plugin runtime on machines that do not have a
51
+ botnote source checkout.
46
52
 
47
53
  ### Local daemon development
48
54
 
@@ -68,6 +74,20 @@ Then:
68
74
 
69
75
  Embeddings are optional. Set `OPENAI_API_KEY` to enable hybrid (BM25 + cosine) search; without it, search is BM25-only.
70
76
 
77
+ ### Tests
78
+
79
+ Tests must run against a disposable database whose name contains `test`. The
80
+ helper refuses any other database name so local test runs do not touch a live
81
+ botnote instance.
82
+
83
+ ```bash
84
+ docker compose up -d
85
+ docker exec botnote-postgres createdb -U botnote botnote_test || true
86
+
87
+ DATABASE_URL=postgres://botnote:botnote@127.0.0.1:55434/botnote_test pnpm db:migrate
88
+ BOTNOTE_TEST_DATABASE_URL=postgres://botnote:botnote@127.0.0.1:55434/botnote_test pnpm test
89
+ ```
90
+
71
91
  ## REST endpoints
72
92
 
73
93
  | method | path | summary |
@@ -75,17 +95,23 @@ Embeddings are optional. Set `OPENAI_API_KEY` to enable hybrid (BM25 + cosine) s
75
95
  | `POST` | `/v1/projects` | Create project |
76
96
  | `GET` | `/v1/projects` | List projects |
77
97
  | `GET` | `/v1/projects/:id` | Fetch project |
98
+ | `PATCH` | `/v1/projects/:id` | Update project |
78
99
  | `GET` | `/v1/projects/by-key/:key` | Fetch by key |
79
- | `GET` | `/v1/projects/:id/agents-md` | Read AGENTS.md |
80
- | `PUT` | `/v1/projects/:id/agents-md` | Write AGENTS.md |
81
100
  | `POST` | `/v1/projects/:id/opening-brief` | Opening brief |
82
- | `POST` | `/v1/entities` | Write entity |
101
+ | `POST` | `/v1/opening-brief` | Workspace or project opening brief |
102
+ | `POST` | `/v1/tasks` | Create task |
103
+ | `POST` | `/v1/notes` | Create note |
83
104
  | `GET` | `/v1/entities/:id` | Fetch entity |
84
105
  | `PATCH` | `/v1/entities/:id` | Update entity |
106
+ | `DELETE` | `/v1/entities/:id` | Delete entity |
107
+ | `GET` | `/v1/entities/:id/related` | List related entities |
85
108
  | `POST` | `/v1/entities/:id/links` | Link entity to another |
86
109
  | `POST` | `/v1/recent` | Recent activity |
87
110
  | `POST` | `/v1/search` | Hybrid search |
88
- | `POST` | `/v1/actors` | Get/create actor |
111
+ | `POST` | `/v1/tasks/range` | Scheduled, overdue, and backlog tasks |
112
+ | `GET` | `/v1/tokens` | List API tokens |
113
+ | `POST` | `/v1/tokens` | Create API token |
114
+ | `DELETE` | `/v1/tokens/:id` | Revoke API token |
89
115
  | `GET` | `/health` | Health check |
90
116
 
91
117
  Schemas: see `/docs` (Swagger UI) or `/docs/json` (OpenAPI 3).
@@ -100,9 +126,9 @@ PID=$(curl -s -X POST $A/v1/projects \
100
126
  -d '{"key":"DEMO","name":"Demo","agentsMd":"ALWAYS run tests"}' \
101
127
  | jq -r .id)
102
128
 
103
- curl -s -X POST $A/v1/entities \
129
+ curl -s -X POST $A/v1/tasks \
104
130
  -H 'content-type: application/json' \
105
- -d "{\"kind\":\"task\",\"projectId\":\"$PID\",\"title\":\"Ship botnote v1\",\"actorKind\":\"human\"}"
131
+ -d "{\"projectId\":\"$PID\",\"title\":\"Ship botnote v1\",\"actorKind\":\"human\"}"
106
132
 
107
133
  curl -s -X POST $A/v1/search \
108
134
  -H 'content-type: application/json' \
@@ -112,8 +138,8 @@ curl -s -X POST $A/v1/search \
112
138
  ## Plugin
113
139
 
114
140
  The plugin bundles the MCP server, workflow skills/commands, and a curator
115
- subagent. All workflows route through MCP no extra direct Letheia or Plane
116
- MCP installs are required.
141
+ subagent. All workflows route through MCP, so no separate task or memory MCP
142
+ setup is required.
117
143
 
118
144
  ### Claude Code
119
145
 
@@ -123,8 +149,8 @@ MCP installs are required.
123
149
  /plugin install botnote@botnote
124
150
 
125
151
  # Claude Code will prompt for:
126
- # botnote_url -> default http://127.0.0.1:4280 on daemon host
127
- # or https://botnote.net on remote machines
152
+ # botnote_url -> default https://botnote.net
153
+ # use http://127.0.0.1:4280 on the daemon host
128
154
  # botnote_token -> bearer from Settings -> API tokens; skip on loopback
129
155
  ```
130
156
 
@@ -134,7 +160,7 @@ Slash commands:
134
160
  /botnote:today # today + overdue
135
161
  /botnote:remember "..." # capture a note via MCP
136
162
  /botnote:recall "..." # hybrid search
137
- /botnote:start-work BOT # pickup workflow on a project
163
+ /botnote:start-work DEMO # pickup workflow on a project
138
164
  /botnote:done # mark current focus done
139
165
  /botnote:add-task "..." # capture a task without starting it
140
166
  /botnote:show-todo # workspace task/context summary
@@ -148,16 +174,19 @@ inside the plugin uses the URL + token from the install prompt and calls the
148
174
  ### Codex
149
175
 
150
176
  Add the plugin through `/settings -> plugin` in Codex, or add this marketplace
151
- from Git without a full source checkout:
177
+ from the public repository without a full source checkout:
152
178
 
153
179
  ```bash
154
- codex plugin marketplace add git@github.com:Jianhua-Wang/botnote.git \
155
- --sparse .agents/plugins \
180
+ codex plugin marketplace add https://github.com/jianhuawang/botnote.git \
181
+ --sparse .codex-plugin \
156
182
  --sparse plugins/botnote
157
183
 
158
184
  codex plugin add botnote@botnote-plugins
159
185
  ```
160
186
 
187
+ The repo also keeps a `.agents/plugins/marketplace.json` entry for Codex clients
188
+ that still discover marketplace files from that path.
189
+
161
190
  For local plugin development, add this marketplace entry to
162
191
  `.agents/plugins/marketplace.json` in the repo:
163
192
 
@@ -200,6 +229,21 @@ The Codex plugin starts `./scripts/run-mcp.sh`. It defaults to
200
229
  back to `npx -y botnote mcp`. Set `BOTNOTE_URL` and `BOTNOTE_TOKEN` only when
201
230
  using a remote daemon.
202
231
 
232
+ ### Cursor
233
+
234
+ Cursor-compatible plugin metadata lives in `.cursor-plugin/marketplace.json`.
235
+ The marketplace points at the same `plugins/botnote` bundle, so Cursor gets the
236
+ same MCP server and workflow skills without a second plugin implementation.
237
+
238
+ ```bash
239
+ # Marketplace root for Cursor plugin clients:
240
+ https://github.com/jianhuawang/botnote
241
+ ```
242
+
243
+ The Cursor plugin manifest is `plugins/botnote/.cursor-plugin/plugin.json` and
244
+ uses the same `botnote_url` / `botnote_token` settings as the Claude Code
245
+ plugin.
246
+
203
247
  ## MCP tools
204
248
 
205
249
  botnote exposes the following tools + resources over stdio.
@@ -208,17 +252,20 @@ botnote exposes the following tools + resources over stdio.
208
252
 
209
253
  | tool | annotations | what it does |
210
254
  |---|---|---|
211
- | `opening_brief` | `readOnly` | Project context bundle (AGENTS.md + open tasks + decisions + recent) |
212
- | `search` | `readOnly` | Hybrid retrieval over entities |
213
- | `get` | `readOnly` | Fetch one entity by id |
214
- | `write` | `idempotent` | Create entity (task/note/decision/...) |
215
- | `update` | `destructive` | Mutate entity fields |
216
- | `link` | `idempotent` | Create typed edge between entities |
255
+ | `opening_brief` | `readOnly` | Project or workspace context bundle (AGENTS.md + pinned notes + open tasks + recent) |
256
+ | `search` | `readOnly` | Hybrid retrieval over tasks and notes |
217
257
  | `recent` | `readOnly` | Recent activity, filterable |
218
- | `agents_md` | `readOnly` | Read project AGENTS.md |
258
+ | `list_projects` | `readOnly` | List all projects |
259
+ | `get_project` | `readOnly` | Fetch a project by UUID or key, including AGENTS.md |
219
260
  | `create_project` | — | Create a project |
220
- | `set_agents_md` | `destructive idempotent` | Overwrite project AGENTS.md |
221
- | `ensure_actor` | `idempotent` | Get/create actor identity |
261
+ | `update_project` | `destructive idempotent` | Update project name, color, icon, or AGENTS.md |
262
+ | `get_entity` | `readOnly` | Fetch one task or note by UUID |
263
+ | `get_entity_by_key` | `readOnly` | Fetch one task or note by human-readable identifier, e.g. `DEMO-12` |
264
+ | `create_task` | `idempotent` | Create a structured task |
265
+ | `remember` | `idempotent` | Create a free-form note |
266
+ | `update_entity` | `destructive` | Mutate task or note fields |
267
+ | `related` | `readOnly` | List child notes/tasks for an entity |
268
+ | `link` | `idempotent` | Create typed edge between entities |
222
269
 
223
270
  ### Resource
224
271
 
@@ -274,4 +321,4 @@ v0 / M1 — complete. See `AGENTS.md` for codebase conventions and the `BOT` pro
274
321
 
275
322
  ## License
276
323
 
277
- Private.
324
+ MIT.
package/dist/cli.js CHANGED
@@ -32,7 +32,7 @@ async function runMcp() {
32
32
  // MCP stdio mode. The server is now an HTTP client of the botnote daemon
33
33
  // (no DB connection here), so this entry point is package-portable: it can
34
34
  // be installed via a Claude Code plugin on any machine and pointed at any
35
- // daemon (tailnet IP, https://botnote.net, ...).
35
+ // daemon (private network URL, https://botnote.net, ...).
36
36
  // Every log line must go to stderr so we don't corrupt the MCP framed JSON
37
37
  // on stdout.
38
38
  const baseUrl = process.env.BOTNOTE_URL ?? DEFAULT_MCP_BASE_URL;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- -- botnote 0003 — priority + per-project sequence id (BOT-12 style).
1
+ -- botnote 0003 — priority + per-project sequence id (DEMO-12 style).
2
2
  -- Idempotent.
3
3
 
4
4
  ALTER TABLE entities ADD COLUMN IF NOT EXISTS priority text NOT NULL DEFAULT 'none';
@@ -1,7 +1,7 @@
1
1
  -- API tokens. token_hash stores sha256 of the plaintext token; prefix is the first
2
2
  -- 8 chars of the plaintext (for display). Auth middleware enforcement is off by
3
- -- default (botnote currently expects tailnet-only access); these endpoints exist
4
- -- so the UI can grant/revoke tokens and Boss can enable enforcement later.
3
+ -- default for local deployments; these endpoints let the UI grant/revoke tokens
4
+ -- when public or proxy-gated access is enabled.
5
5
  CREATE TABLE IF NOT EXISTS tokens (
6
6
  id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
7
7
  name text NOT NULL,
@@ -1,8 +1,8 @@
1
1
  -- Add completed_at column to entities. Set automatically on a status
2
2
  -- transition into 'done' (and cleared when leaving). Backfill existing done
3
- -- rows from updated_at as the best available approximation — Plane-migrated
4
- -- tasks lost their original timestamp, so this clusters them on the migration
5
- -- day rather than guessing. New transitions are exact.
3
+ -- rows from updated_at as the best available approximation. Legacy-imported
4
+ -- tasks may have lost their original timestamp, so this clusters them on the
5
+ -- migration day rather than guessing. New transitions are exact.
6
6
  ALTER TABLE entities ADD COLUMN IF NOT EXISTS completed_at timestamptz;
7
7
 
8
8
  UPDATE entities
@@ -1,9 +1,9 @@
1
- -- Fix the 0010 backfill. The first pass used updated_at, which for tasks
2
- -- migrated from Plane is the migration day so every legacy done task piled
3
- -- onto the same calendar cell. Re-backfill with COALESCE(due_at, updated_at)
4
- -- so legacy done items render on their original due date (the pre-change
5
- -- behavior), while freshly-completed tasks still get an exact stamp from the
6
- -- service layer at status-transition time.
1
+ -- Fix the 0010 backfill. The first pass used updated_at, which for imported
2
+ -- tasks can be the migration day, so every legacy done task piled onto the
3
+ -- same calendar cell. Re-backfill with COALESCE(due_at, updated_at) so legacy
4
+ -- done items render on their original due date (the pre-change behavior),
5
+ -- while freshly-completed tasks still get an exact stamp from the service
6
+ -- layer at status-transition time.
7
7
  UPDATE entities
8
8
  SET completed_at = COALESCE(due_at, updated_at)
9
9
  WHERE kind = 'task'
@@ -1,9 +1,9 @@
1
- -- Date-only due dates were imported from Plane as `YYYY-MM-DD T00:00:00Z`,
1
+ -- Date-only due dates may be imported as `YYYY-MM-DD T00:00:00Z`,
2
2
  -- which lands the previous calendar day in any UTC-negative timezone
3
3
  -- (e.g. UTC midnight = 5pm Pacific the day before). Bump every midnight-UTC
4
4
  -- due_at to noon-UTC so it stays on the intended calendar day in every
5
- -- timezone Boss actually uses (UTC-12 .. UTC+11). The service layer applies
6
- -- the same normalization to new writes so this stays clean going forward.
5
+ -- timezone (UTC-12 .. UTC+11). The service layer applies the same
6
+ -- normalization to new writes so this stays clean going forward.
7
7
  UPDATE entities
8
8
  SET due_at = date_trunc('day', due_at AT TIME ZONE 'UTC') + INTERVAL '12 hours'
9
9
  WHERE kind = 'task'
@@ -0,0 +1,3 @@
1
+ -- Store newly generated API tokens so Settings can copy them after creation.
2
+ -- Existing tokens remain NULL because only their sha256 hashes were stored.
3
+ ALTER TABLE tokens ADD COLUMN IF NOT EXISTS plaintext text;
@@ -658,6 +658,23 @@ export declare const tokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
658
658
  identity: undefined;
659
659
  generated: undefined;
660
660
  }, {}, {}>;
661
+ plaintext: import("drizzle-orm/pg-core").PgColumn<{
662
+ name: "plaintext";
663
+ tableName: "tokens";
664
+ dataType: "string";
665
+ columnType: "PgText";
666
+ data: string;
667
+ driverParam: string;
668
+ notNull: false;
669
+ hasDefault: false;
670
+ isPrimaryKey: false;
671
+ isAutoincrement: false;
672
+ hasRuntimeDefault: false;
673
+ enumValues: [string, ...string[]];
674
+ baseColumn: never;
675
+ identity: undefined;
676
+ generated: undefined;
677
+ }, {}, {}>;
661
678
  lastUsedAt: import("drizzle-orm/pg-core").PgColumn<{
662
679
  name: "last_used_at";
663
680
  tableName: "tokens";
package/dist/db/schema.js CHANGED
@@ -89,6 +89,7 @@ export const tokens = pgTable("tokens", {
89
89
  name: text("name").notNull(),
90
90
  tokenHash: text("token_hash").notNull(),
91
91
  prefix: text("prefix").notNull(),
92
+ plaintext: text("plaintext"),
92
93
  lastUsedAt: timestamp("last_used_at", { withTimezone: true }),
93
94
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
94
95
  }, (t) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * The MCP server used to import drizzle and hit the DB directly. That coupled
5
5
  * the MCP process to the daemon's machine and required DATABASE_URL. The
6
- * plugin model needs the MCP to be runnable on any machine — laptop, tailnet,
7
- * public — pointing at whichever botnote daemon the user is reachable to.
6
+ * plugin model needs the MCP to be runnable on any machine — laptop, private
7
+ * network, public — pointing at whichever botnote daemon the user can reach.
8
8
  *
9
9
  * Auth model mirrors the daemon's:
10
- * - direct tailnet/localhost: no token required (daemon trusts the network)
10
+ * - direct private-network/localhost: no token required when the daemon trusts it
11
11
  * - through Cloudflare Tunnel: bearer + optional CF Access service token
12
12
  */
13
13
  export interface HttpClientOptions {
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * The MCP server used to import drizzle and hit the DB directly. That coupled
5
5
  * the MCP process to the daemon's machine and required DATABASE_URL. The
6
- * plugin model needs the MCP to be runnable on any machine — laptop, tailnet,
7
- * public — pointing at whichever botnote daemon the user is reachable to.
6
+ * plugin model needs the MCP to be runnable on any machine — laptop, private
7
+ * network, public — pointing at whichever botnote daemon the user can reach.
8
8
  *
9
9
  * Auth model mirrors the daemon's:
10
- * - direct tailnet/localhost: no token required (daemon trusts the network)
10
+ * - direct private-network/localhost: no token required when the daemon trusts it
11
11
  * - through Cloudflare Tunnel: bearer + optional CF Access service token
12
12
  */
13
13
  const VERSION_HEADER = "x-botnote-mcp-version";
@@ -25,7 +25,7 @@ function displayTitle(e) {
25
25
  }
26
26
  function summarizeEntity(e) {
27
27
  const tagPart = e.tags.length ? ` [${e.tags.join(", ")}]` : "";
28
- return `${e.kind}/${e.id.slice(0, 8)} · ${displayTitle(e)}${tagPart}`;
28
+ return `${e.kind}/${e.id} · ${displayTitle(e)}${tagPart}`;
29
29
  }
30
30
  const ProjectKey = z
31
31
  .string()
@@ -135,7 +135,7 @@ export function buildMcpServer(ctx) {
135
135
  // ----- 4. list_projects -----
136
136
  server.registerTool("list_projects", {
137
137
  title: "List Projects",
138
- description: "List every project in the workspace with its key, name, color and icon. Call this FIRST before creating tasks/notes if you don't already know the target project's UUID. Use `OTHE` (Others) as the fallback bucket for one-off / 杂项 work that doesn't deserve its own project.",
138
+ description: "List every project in the workspace with its key, name, color and icon. Call this before creating tasks or notes if you don't already know the target project's UUID.",
139
139
  annotations: {
140
140
  readOnlyHint: true,
141
141
  destructiveHint: false,
@@ -182,10 +182,10 @@ export function buildMcpServer(ctx) {
182
182
  // ----- 6. create_project -----
183
183
  server.registerTool("create_project", {
184
184
  title: "Create Project",
185
- description: "Create a new project. Boss already has 13 projects (call `list_projects` first to verify the project doesn't exist or fit an existing bucket — typically `OTHE` is the right home for one-off / 杂项 work). Only create a new project when the work is large enough to deserve its own backlog.\n" +
185
+ description: "Create a new project. Call `list_projects` first to verify the project does not already exist or fit an existing bucket. Only create a new project when the work is large enough to deserve its own backlog.\n" +
186
186
  "\n" +
187
187
  "Conventions:\n" +
188
- "- `key`: short uppercase (3-4 chars), e.g. 'BOT', 'NOED', 'OTHE'. Unique across the workspace.\n" +
188
+ "- `key`: short uppercase identifier, e.g. 'BOT', 'DOCS', 'OPS'. Unique across the workspace.\n" +
189
189
  "- `name`: human-readable.\n" +
190
190
  "- `color`: hex like '#5e6ad2' (Linear blue) by default. Pick a color that contrasts with the existing palette.\n" +
191
191
  "- `icon`: lowercase kebab name from lucide-react (e.g. 'rocket', 'brain', 'package', 'archive').\n" +
@@ -261,7 +261,7 @@ export function buildMcpServer(ctx) {
261
261
  // ----- 9. get_entity_by_key -----
262
262
  server.registerTool("get_entity_by_key", {
263
263
  title: "Get Entity by Identifier",
264
- description: "Fetch a task or note by its human-readable identifier (e.g. BOT-12). Pass the project key and sequence number separately.",
264
+ description: "Fetch a task or note by its human-readable identifier (e.g. DEMO-12). Pass the project key and sequence number separately.",
265
265
  annotations: {
266
266
  readOnlyHint: true,
267
267
  destructiveHint: false,
@@ -291,10 +291,10 @@ export function buildMcpServer(ctx) {
291
291
  "\n" +
292
292
  "Conventions (follow strictly):\n" +
293
293
  "- `projectId`: required. Call `list_projects` first if you don't already know the project's UUID. If user-supplied context doesn't pin a project, ask before creating.\n" +
294
- "- `title`: an executable verb phrase, NOT a vague topic ('Fix CRED-12 null-pointer' ✓, 'Process CRED stuff' ✗). Max ~100 chars.\n" +
295
- "- `priority`: infer from urgency cues — ASAP/紧急/blocker urgent; this week / 本周 → high; soon / 近期 → medium; backlog / 待办 → low; otherwise none.\n" +
294
+ "- `title`: an executable verb phrase, NOT a vague topic ('Fix DEMO-12 null-pointer' ✓, 'Process demo stuff' ✗). Max ~100 chars.\n" +
295
+ "- `priority`: infer from urgency cues — ASAP/blocker -> urgent; this week -> high; soon -> medium; backlog -> low; otherwise none.\n" +
296
296
  "- `status`: defaults to 'open'. Use 'in_progress' only if work has actually started in this turn.\n" +
297
- "- `dueAt`: include when the user mentions a date (今天/明天/周五前/by Friday). ISO datetime, UTC.\n" +
297
+ "- `dueAt`: include when the user mentions a date. Use an ISO datetime in UTC.\n" +
298
298
  "- `tags`: 2-4 short lowercase kebab-case tokens. Re-use existing tags when possible — search first if unsure.\n" +
299
299
  "- `parentId`: include when this task is a follow-up under another task or note.",
300
300
  annotations: {
@@ -333,7 +333,7 @@ export function buildMcpServer(ctx) {
333
333
  // ----- 11. remember (= create_note) -----
334
334
  server.registerTool("remember", {
335
335
  title: "Remember (Create Note)",
336
- description: "Capture a free-form note. Title is optional (body's first line acts as label). Notes are botnote's memory layer — Boss's instinct is 'multi-记多用', so err on the side of remembering rather than forgetting.\n" +
336
+ description: "Capture a free-form note. Title is optional (body's first line acts as label). Notes are botnote's memory layer, so err on the side of preserving useful context.\n" +
337
337
  "\n" +
338
338
  "Conventions:\n" +
339
339
  "- `body`: the substance. Multi-line + markdown OK. Include the WHY, not just the WHAT.\n" +
@@ -377,8 +377,8 @@ export function buildMcpServer(ctx) {
377
377
  description: "Update fields on an existing task or note. Pass ONLY the fields you want to change — omitted fields are left untouched.\n" +
378
378
  "\n" +
379
379
  "Common transitions:\n" +
380
- "- task completion: `status='done'` (when user signals '搞定/done/完成了'). Optionally `remember` a closing note with `parentId` set to this task.\n" +
381
- "- task soft-delete / give up: `status='archived'`. `status='rejected'` if the work was declined / 不做了.\n" +
380
+ "- task completion: `status='done'`. Optionally `remember` a closing note with `parentId` set to this task.\n" +
381
+ "- task soft-delete / give up: `status='archived'`. `status='rejected'` if the work was declined.\n" +
382
382
  "- start work: `status='in_progress'` ONLY when work actually begins in this turn (not just on every mention).\n" +
383
383
  "- re-parent: pass `parentId` (or `null` to detach).\n" +
384
384
  "- pin/unpin: `pinned: true/false`. Pinned notes drive opening_brief — use sparingly.\n" +
@@ -456,7 +456,7 @@ export function buildMcpServer(ctx) {
456
456
  {
457
457
  type: "text",
458
458
  text: result.created
459
- ? `linked ${fromId.slice(0, 8)} -[${kind}]-> ${toId.slice(0, 8)}`
459
+ ? `linked ${fromId} -[${kind}]-> ${toId}`
460
460
  : `link already exists`
461
461
  }
462
462
  ]
@@ -483,7 +483,7 @@ export function buildMcpServer(ctx) {
483
483
  lines.push("");
484
484
  lines.push("## Recent (workspace-wide)");
485
485
  for (const r of recentRows) {
486
- lines.push(`- ${r.createdAt.slice(0, 16).replace("T", " ")} · ${r.kind} · ${displayTitle(r)}`);
486
+ lines.push(`- ${r.createdAt.slice(0, 16).replace("T", " ")} · ${r.kind}/${r.id} · ${displayTitle(r)}`);
487
487
  }
488
488
  return { contents: [{ uri: uri.href, mimeType: "text/markdown", text: lines.join("\n") }] };
489
489
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}