botnote 0.1.34 → 0.1.36
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/db/migrations/0023_comment_kind.sql +24 -0
- package/dist/db/migrations/0024_memory_access.sql +12 -0
- package/dist/db/schema.d.ts +36 -2
- package/dist/db/schema.js +6 -2
- package/dist/db/schema.js.map +1 -1
- package/dist/mcp/http-client.d.ts +17 -3
- package/dist/mcp/http-client.js +6 -0
- package/dist/mcp/http-client.js.map +1 -1
- package/dist/mcp/server.js +91 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/rest/routes.js +61 -5
- package/dist/rest/routes.js.map +1 -1
- package/dist/service/entities.d.ts +21 -1
- package/dist/service/entities.js +94 -8
- package/dist/service/entities.js.map +1 -1
- package/dist/service/opening_brief.d.ts +3 -0
- package/dist/service/opening_brief.js +29 -1
- package/dist/service/opening_brief.js.map +1 -1
- package/dist/service/search.d.ts +16 -0
- package/dist/service/search.js +42 -5
- package/dist/service/search.js.map +1 -1
- package/dist/service/types.d.ts +41 -17
- package/dist/service/types.js +11 -0
- package/dist/service/types.js.map +1 -1
- package/package.json +1 -1
- package/web/dist/assets/{index-Bt8xPxDL.css → index-BtZ_Me98.css} +1 -1
- package/web/dist/assets/{index-DyioCifb.js → index-CMxxEyK8.js} +5 -5
- package/web/dist/index.html +2 -2
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- botnote 0023 — reintroduce the 'comment' entity kind as an append-only
|
|
2
|
+
-- worklog attached to a task (parent_id). Unlike the pre-0008 comment kind,
|
|
3
|
+
-- these have a concrete product role: agent/human progress notes that the
|
|
4
|
+
-- opening brief surfaces for in_progress tasks.
|
|
5
|
+
-- Idempotent.
|
|
6
|
+
|
|
7
|
+
-- Comments carry project_id (so project-scoped search/recent include them)
|
|
8
|
+
-- but must NOT consume a per-project sequence number — KEY-SEQ identifiers
|
|
9
|
+
-- are for addressable work items (tasks/notes), not log lines.
|
|
10
|
+
CREATE OR REPLACE FUNCTION botnote_set_sequence_id() RETURNS trigger AS $$
|
|
11
|
+
BEGIN
|
|
12
|
+
IF NEW.sequence_id IS NULL AND NEW.project_id IS NOT NULL AND NEW.kind <> 'comment' THEN
|
|
13
|
+
SELECT COALESCE(MAX(sequence_id), 0) + 1
|
|
14
|
+
INTO NEW.sequence_id
|
|
15
|
+
FROM entities
|
|
16
|
+
WHERE project_id = NEW.project_id;
|
|
17
|
+
END IF;
|
|
18
|
+
RETURN NEW;
|
|
19
|
+
END;
|
|
20
|
+
$$ LANGUAGE plpgsql;
|
|
21
|
+
|
|
22
|
+
-- Fast "latest comment per task" lookups for the opening brief.
|
|
23
|
+
CREATE INDEX IF NOT EXISTS entities_comment_parent_created_idx
|
|
24
|
+
ON entities(parent_id, created_at DESC) WHERE kind = 'comment';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Memory upgrade: access tracking + supersedes edges.
|
|
2
|
+
--
|
|
3
|
+
-- last_accessed_at / access_count are bumped on explicit entity reads
|
|
4
|
+
-- (GET /v1/entities/:id and by-key lookups) and feed a light boost into
|
|
5
|
+
-- hybrid search so frequently-recalled memories rank slightly higher.
|
|
6
|
+
--
|
|
7
|
+
-- The 'supersedes' edge kind (new note -> outdated note) needs no schema
|
|
8
|
+
-- change (edges.kind is text); search downweights entities that are the
|
|
9
|
+
-- target of a supersedes edge.
|
|
10
|
+
|
|
11
|
+
ALTER TABLE entities ADD COLUMN IF NOT EXISTS last_accessed_at timestamptz;
|
|
12
|
+
ALTER TABLE entities ADD COLUMN IF NOT EXISTS access_count integer NOT NULL DEFAULT 0;
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare const VECTOR_DIMENSIONS = 384;
|
|
2
|
-
export declare const ENTITY_KINDS: readonly ["task", "note"];
|
|
2
|
+
export declare const ENTITY_KINDS: readonly ["task", "note", "comment"];
|
|
3
3
|
export type EntityKind = (typeof ENTITY_KINDS)[number];
|
|
4
4
|
export declare const ACTOR_KINDS: readonly ["human", "agent", "system"];
|
|
5
5
|
export type ActorKind = (typeof ACTOR_KINDS)[number];
|
|
6
|
-
export declare const EDGE_KINDS: readonly ["blocks", "references", "parent_of"];
|
|
6
|
+
export declare const EDGE_KINDS: readonly ["blocks", "references", "parent_of", "supersedes"];
|
|
7
7
|
export type EdgeKind = (typeof EDGE_KINDS)[number];
|
|
8
8
|
export declare const PROJECT_STATUSES: readonly ["planned", "active", "watching", "paused", "archived"];
|
|
9
9
|
export type ProjectStatus = (typeof PROJECT_STATUSES)[number];
|
|
@@ -510,6 +510,40 @@ export declare const entities: import("drizzle-orm/pg-core").PgTableWithColumns<
|
|
|
510
510
|
identity: undefined;
|
|
511
511
|
generated: undefined;
|
|
512
512
|
}, {}, {}>;
|
|
513
|
+
lastAccessedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
514
|
+
name: "last_accessed_at";
|
|
515
|
+
tableName: "entities";
|
|
516
|
+
dataType: "date";
|
|
517
|
+
columnType: "PgTimestamp";
|
|
518
|
+
data: Date;
|
|
519
|
+
driverParam: string;
|
|
520
|
+
notNull: false;
|
|
521
|
+
hasDefault: false;
|
|
522
|
+
isPrimaryKey: false;
|
|
523
|
+
isAutoincrement: false;
|
|
524
|
+
hasRuntimeDefault: false;
|
|
525
|
+
enumValues: undefined;
|
|
526
|
+
baseColumn: never;
|
|
527
|
+
identity: undefined;
|
|
528
|
+
generated: undefined;
|
|
529
|
+
}, {}, {}>;
|
|
530
|
+
accessCount: import("drizzle-orm/pg-core").PgColumn<{
|
|
531
|
+
name: "access_count";
|
|
532
|
+
tableName: "entities";
|
|
533
|
+
dataType: "number";
|
|
534
|
+
columnType: "PgInteger";
|
|
535
|
+
data: number;
|
|
536
|
+
driverParam: string | number;
|
|
537
|
+
notNull: true;
|
|
538
|
+
hasDefault: true;
|
|
539
|
+
isPrimaryKey: false;
|
|
540
|
+
isAutoincrement: false;
|
|
541
|
+
hasRuntimeDefault: false;
|
|
542
|
+
enumValues: undefined;
|
|
543
|
+
baseColumn: never;
|
|
544
|
+
identity: undefined;
|
|
545
|
+
generated: undefined;
|
|
546
|
+
}, {}, {}>;
|
|
513
547
|
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
514
548
|
name: "created_at";
|
|
515
549
|
tableName: "entities";
|
package/dist/db/schema.js
CHANGED
|
@@ -20,9 +20,9 @@ const tsvector = customType({
|
|
|
20
20
|
return "tsvector";
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
|
-
export const ENTITY_KINDS = ["task", "note"];
|
|
23
|
+
export const ENTITY_KINDS = ["task", "note", "comment"];
|
|
24
24
|
export const ACTOR_KINDS = ["human", "agent", "system"];
|
|
25
|
-
export const EDGE_KINDS = ["blocks", "references", "parent_of"];
|
|
25
|
+
export const EDGE_KINDS = ["blocks", "references", "parent_of", "supersedes"];
|
|
26
26
|
export const PROJECT_STATUSES = ["planned", "active", "watching", "paused", "archived"];
|
|
27
27
|
export const projects = pgTable("projects", {
|
|
28
28
|
id: uuid("id").primaryKey().defaultRandom(),
|
|
@@ -64,6 +64,10 @@ export const entities = pgTable("entities", {
|
|
|
64
64
|
// completedAt rather than dueAt so the timeline reflects what actually
|
|
65
65
|
// happened.
|
|
66
66
|
completedAt: timestamp("completed_at", { withTimezone: true }),
|
|
67
|
+
// Bumped on explicit reads (GET by id / by key); feeds a light boost
|
|
68
|
+
// into hybrid search so frequently-recalled memories rank higher.
|
|
69
|
+
lastAccessedAt: timestamp("last_accessed_at", { withTimezone: true }),
|
|
70
|
+
accessCount: integer("access_count").notNull().default(0),
|
|
67
71
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
68
72
|
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
|
|
69
73
|
}, (t) => ({
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,EACT,WAAW,EACX,IAAI,EACL,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,MAAM,MAAM,GAAG,UAAU,CAAyC;IAChE,QAAQ;QACN,OAAO,UAAU,iBAAiB,GAAG,CAAC;IACxC,CAAC;IACD,QAAQ,CAAC,KAAe;QACtB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,UAAU,CAAmB;IAC5C,QAAQ;QACN,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAGtD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGjE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAU,CAAC;AAGzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAGjG,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAC7B,UAAU,EACV;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;CAClD,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAC7B,UAAU,EACV;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACrF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;SACf,KAAK,EAAE;SACP,OAAO,EAAE;SACT,OAAO,CAAC,GAAG,CAAA,cAAc,CAAC;IAC7B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACxD,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAClD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,yEAAyE;IACzE,iEAAiE;IACjE,uEAAuE;IACvE,YAAY;IACZ,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC9D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,iBAAiB,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;IACrF,qBAAqB,EAAE,KAAK,CAAC,mCAAmC,CAAC,CAAC,EAAE,CAClE,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,SAAS,CACZ;IACD,SAAS,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtD,cAAc,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IACpE,cAAc,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;CAC7E,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAC1B,OAAO,EACP;IACE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACzD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;SAChB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACzD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACvD,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAC/C,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;CACtD,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,YAAY,CAAU,CAAC;AAGvE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAG1F,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CACpC,kBAAkB,EAClB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;SACxB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACzD,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QAC/E,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAC/D,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACrD,iBAAiB,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,gBAAgB,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACzE,gBAAgB,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACzE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACtD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,6EAA6E;IAC7E,4EAA4E;IAC5E,SAAS,EAAE,WAAW,CAAC,6BAA6B,CAAC;SAClD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAA,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3B,oBAAoB,EAAE,KAAK,CAAC,yCAAyC,CAAC,CAAC,EAAE,CACvE,CAAC,CAAC,mBAAmB,CACtB;IACD,iBAAiB,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACvF,UAAU,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC;CACpF,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CACzC,uBAAuB,EACvB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;SACpB,OAAO,EAAE;SACT,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAChE,YAAY,EAAE,SAAS,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1E,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACnF,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,iBAAiB,EAAE,KAAK,CAAC,2CAA2C,CAAC,CAAC,EAAE,CACtE,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,YAAY,CACf;IACD,SAAS,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;CACpE,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAC3B,QAAQ,EACR;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;IAC5B,UAAU,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC7D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,YAAY,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CACxD,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC7D,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAChE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACtE,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC7D,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC9C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,CAAC,CAAC;AAEH,yEAAyE;AACzE,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAC7B,UAAU,EACV;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IAC3C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACpE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,UAAU,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC7D,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CAClF,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,YAAY,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,UAAU,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CAC7D,CAAC,CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,14 +41,18 @@ export declare class BotnoteHttpClient {
|
|
|
41
41
|
getEntity(id: string): Promise<EntityDTO>;
|
|
42
42
|
getEntityByKey(projectKey: string, seq: number): Promise<EntityDTO>;
|
|
43
43
|
listRelated(id: string): Promise<EntityDTO[]>;
|
|
44
|
+
listComments(id: string): Promise<EntityDTO[]>;
|
|
44
45
|
recent(body: RecentBody): Promise<EntityDTO[]>;
|
|
45
46
|
search(body: SearchBody): Promise<{
|
|
46
47
|
hits: SearchHitDTO[];
|
|
47
48
|
embeddingUsed: boolean;
|
|
48
49
|
}>;
|
|
49
50
|
createTask(body: CreateTaskBody): Promise<EntityDTO>;
|
|
50
|
-
remember(body: CreateNoteBody): Promise<EntityDTO
|
|
51
|
+
remember(body: CreateNoteBody): Promise<EntityDTO & {
|
|
52
|
+
similar?: EntityDTO[];
|
|
53
|
+
}>;
|
|
51
54
|
updateEntity(id: string, body: UpdateEntityBody): Promise<EntityDTO>;
|
|
55
|
+
addComment(id: string, body: CreateCommentBody): Promise<EntityDTO>;
|
|
52
56
|
configureRecurrence(taskId: string, body: RecurrenceBody): Promise<RecurrenceRuleDTO>;
|
|
53
57
|
getRecurrence(taskId: string): Promise<RecurrenceDetailsDTO>;
|
|
54
58
|
skipOccurrence(taskId: string, body?: SkipOccurrenceBody): Promise<SkipOccurrenceDTO>;
|
|
@@ -91,7 +95,7 @@ export interface ProjectDTO {
|
|
|
91
95
|
export interface EntityDTO {
|
|
92
96
|
id: string;
|
|
93
97
|
projectId: string | null;
|
|
94
|
-
kind: "task" | "note";
|
|
98
|
+
kind: "task" | "note" | "comment";
|
|
95
99
|
title: string | null;
|
|
96
100
|
body: string;
|
|
97
101
|
tags: string[];
|
|
@@ -104,6 +108,8 @@ export interface EntityDTO {
|
|
|
104
108
|
pinned: boolean;
|
|
105
109
|
sequenceId: number | null;
|
|
106
110
|
completedAt: string | null;
|
|
111
|
+
lastAccessedAt: string | null;
|
|
112
|
+
accessCount: number;
|
|
107
113
|
createdAt: string;
|
|
108
114
|
updatedAt: string;
|
|
109
115
|
}
|
|
@@ -142,11 +148,12 @@ export interface OpeningBriefDTO {
|
|
|
142
148
|
project: ProjectDTO | null;
|
|
143
149
|
pinnedNotes: EntityDTO[];
|
|
144
150
|
openTasks: EntityDTO[];
|
|
151
|
+
latestComments?: EntityDTO[];
|
|
145
152
|
recentActivity: EntityDTO[];
|
|
146
153
|
agentsMd: string;
|
|
147
154
|
markdown: string;
|
|
148
155
|
}
|
|
149
|
-
export type LinkKind = "blocks" | "references" | "parent_of";
|
|
156
|
+
export type LinkKind = "blocks" | "references" | "parent_of" | "supersedes";
|
|
150
157
|
export interface CreateProjectBody {
|
|
151
158
|
key: string;
|
|
152
159
|
name: string;
|
|
@@ -182,6 +189,13 @@ export interface CreateNoteBody {
|
|
|
182
189
|
parentId?: string | null;
|
|
183
190
|
actorKind?: string;
|
|
184
191
|
pinned?: boolean;
|
|
192
|
+
supersedes?: string | null;
|
|
193
|
+
idempotencyKey?: string;
|
|
194
|
+
}
|
|
195
|
+
export interface CreateCommentBody {
|
|
196
|
+
body: string;
|
|
197
|
+
actorKind?: string;
|
|
198
|
+
metadata?: Record<string, unknown>;
|
|
185
199
|
idempotencyKey?: string;
|
|
186
200
|
}
|
|
187
201
|
export interface UpdateEntityBody {
|
package/dist/mcp/http-client.js
CHANGED
|
@@ -94,6 +94,9 @@ export class BotnoteHttpClient {
|
|
|
94
94
|
listRelated(id) {
|
|
95
95
|
return this.request("GET", `/v1/entities/${id}/related`);
|
|
96
96
|
}
|
|
97
|
+
listComments(id) {
|
|
98
|
+
return this.request("GET", `/v1/entities/${id}/comments`);
|
|
99
|
+
}
|
|
97
100
|
recent(body) {
|
|
98
101
|
return this.request("POST", "/v1/recent", body);
|
|
99
102
|
}
|
|
@@ -110,6 +113,9 @@ export class BotnoteHttpClient {
|
|
|
110
113
|
updateEntity(id, body) {
|
|
111
114
|
return this.request("PATCH", `/v1/entities/${id}`, body);
|
|
112
115
|
}
|
|
116
|
+
addComment(id, body) {
|
|
117
|
+
return this.request("POST", `/v1/entities/${id}/comments`, body);
|
|
118
|
+
}
|
|
113
119
|
configureRecurrence(taskId, body) {
|
|
114
120
|
return this.request("POST", `/v1/tasks/${taskId}/recurrence`, body);
|
|
115
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/mcp/http-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/mcp/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -4,7 +4,7 @@ import { BotnoteHttpError, serializeEntity } from "./http-client.js";
|
|
|
4
4
|
import { VERSION } from "../version.js";
|
|
5
5
|
// Inline kind constants so the MCP package can be packaged without pulling
|
|
6
6
|
// drizzle / the db schema module at runtime.
|
|
7
|
-
const ENTITY_KINDS = ["task", "note"];
|
|
7
|
+
const ENTITY_KINDS = ["task", "note", "comment"];
|
|
8
8
|
const ACTOR_KINDS = ["human", "agent", "system"];
|
|
9
9
|
const TASK_STATUSES = [
|
|
10
10
|
"open",
|
|
@@ -13,7 +13,7 @@ const TASK_STATUSES = [
|
|
|
13
13
|
"rejected"
|
|
14
14
|
];
|
|
15
15
|
const PRIORITIES = ["urgent", "high", "medium", "low", "none"];
|
|
16
|
-
const EDGE_KINDS = ["blocks", "references", "parent_of"];
|
|
16
|
+
const EDGE_KINDS = ["blocks", "references", "parent_of", "supersedes"];
|
|
17
17
|
const RECURRENCE_PRESETS = ["hourly", "daily", "weekly", "monthly", "yearly"];
|
|
18
18
|
const RECURRENCE_ANCHORS = ["scheduled", "completion"];
|
|
19
19
|
const WEEKDAYS = ["MO", "TU", "WE", "TH", "FR", "SA", "SU"];
|
|
@@ -125,6 +125,13 @@ Task scope:
|
|
|
125
125
|
References:
|
|
126
126
|
- Refer to tasks and notes by their KEY-SEQ identifier (e.g. BOT-55) when talking to the user, never by UUID.
|
|
127
127
|
|
|
128
|
+
Worklog:
|
|
129
|
+
- When pausing or finishing work on a task, record progress with add_comment (what was done, what's next, blockers). The opening brief surfaces the latest comment per in_progress task, so this is how the next session resumes.
|
|
130
|
+
|
|
131
|
+
Memory hygiene:
|
|
132
|
+
- When a stored fact becomes outdated (changed decision, corrected detail), remember the new fact with supersedes=<old note id> instead of leaving both or editing history away. Superseded notes are downweighted in search but stay readable.
|
|
133
|
+
- If remember reports similar existing notes, check them before piling on duplicates — supersede or update instead.
|
|
134
|
+
|
|
128
135
|
Session start: call opening_brief first to load project context.`;
|
|
129
136
|
export function buildMcpServer(ctx) {
|
|
130
137
|
const server = new McpServer({
|
|
@@ -482,7 +489,10 @@ export function buildMcpServer(ctx) {
|
|
|
482
489
|
"- `tags`: 2-4 short lowercase kebab-case tokens inferred from content. Re-use existing tags — recall similar memories first if unsure of vocabulary.\n" +
|
|
483
490
|
"- `projectId`: pick the most specific project. If unclear, omit (workspace-scope is fine; better than wrong-project).\n" +
|
|
484
491
|
"- `parentId`: pass a task's UUID when the note is a follow-up on a specific task — this surfaces the note when the task is opened.\n" +
|
|
485
|
-
"- `pinned=true`: ONLY for must-read context (deployment steps, hidden gotchas, AGENTS-style conventions). Pinned notes appear in every future opening_brief — abuse them and the brief becomes noise
|
|
492
|
+
"- `pinned=true`: ONLY for must-read context (deployment steps, hidden gotchas, AGENTS-style conventions). Pinned notes appear in every future opening_brief — abuse them and the brief becomes noise.\n" +
|
|
493
|
+
"- `supersedes`: pass an existing note's id when this note REPLACES an outdated memory (changed decision, corrected fact). The old note is downweighted in search but stays readable — prefer this over editing history away.\n" +
|
|
494
|
+
"\n" +
|
|
495
|
+
"The result may list `similar existing notes` — near-duplicates already stored. If one of them covers the same fact, mark it superseded via `link` (from=new note, to=old note, kind='supersedes') or update the existing note instead of keeping both.",
|
|
486
496
|
annotations: {
|
|
487
497
|
readOnlyHint: false,
|
|
488
498
|
destructiveHint: false,
|
|
@@ -497,6 +507,7 @@ export function buildMcpServer(ctx) {
|
|
|
497
507
|
parentId: EntityRef.optional().describe("Link this note under a task or other entity. Accepts UUID, UUID prefix, or KEY-SEQ such as BOT-55."),
|
|
498
508
|
actorKind: z.enum(ACTOR_KINDS).default("agent"),
|
|
499
509
|
pinned: z.boolean().default(false).describe("Pin to project opening brief (must-read context)."),
|
|
510
|
+
supersedes: EntityRef.optional().describe("Existing note this one replaces. Accepts UUID, UUID prefix, or KEY-SEQ such as BOT-55. The old note is downweighted in search."),
|
|
500
511
|
idempotencyKey: z.string().min(1).max(200).optional()
|
|
501
512
|
}
|
|
502
513
|
}, async (input) => {
|
|
@@ -504,6 +515,9 @@ export function buildMcpServer(ctx) {
|
|
|
504
515
|
const resolvedParentId = input.parentId
|
|
505
516
|
? await resolveEntityRef(c, input.parentId)
|
|
506
517
|
: null;
|
|
518
|
+
const resolvedSupersedes = input.supersedes
|
|
519
|
+
? await resolveEntityRef(c, input.supersedes)
|
|
520
|
+
: null;
|
|
507
521
|
const entity = await c.remember({
|
|
508
522
|
projectId: input.projectId ?? null,
|
|
509
523
|
title: input.title ?? null,
|
|
@@ -512,9 +526,21 @@ export function buildMcpServer(ctx) {
|
|
|
512
526
|
parentId: resolvedParentId,
|
|
513
527
|
actorKind: input.actorKind,
|
|
514
528
|
pinned: input.pinned,
|
|
529
|
+
supersedes: resolvedSupersedes,
|
|
515
530
|
idempotencyKey: input.idempotencyKey
|
|
516
531
|
});
|
|
517
|
-
|
|
532
|
+
let text = `remembered ${await summarize(entity)}\nid: ${entity.id}`;
|
|
533
|
+
if (resolvedSupersedes) {
|
|
534
|
+
text += `\nsupersedes: ${resolvedSupersedes}`;
|
|
535
|
+
}
|
|
536
|
+
const similar = entity.similar ?? [];
|
|
537
|
+
if (similar.length > 0) {
|
|
538
|
+
const lines = await Promise.all(similar.map(async (s) => `- ${await summarize(s)} (id: ${s.id})`));
|
|
539
|
+
text +=
|
|
540
|
+
`\n\nsimilar existing notes (possible duplicates):\n${lines.join("\n")}\n` +
|
|
541
|
+
`If one covers the same fact, run link(fromId=${entity.id}, toId=<old id>, kind='supersedes') or update the existing note instead of keeping both.`;
|
|
542
|
+
}
|
|
543
|
+
return { content: [{ type: "text", text }] };
|
|
518
544
|
}
|
|
519
545
|
catch (err) {
|
|
520
546
|
return formatToolError(err);
|
|
@@ -526,7 +552,7 @@ export function buildMcpServer(ctx) {
|
|
|
526
552
|
description: "Update fields on an existing task or note. Pass ONLY the fields you want to change — omitted fields are left untouched.\n" +
|
|
527
553
|
"\n" +
|
|
528
554
|
"Common transitions:\n" +
|
|
529
|
-
"- task completion: `status='done'`.
|
|
555
|
+
"- task completion: `status='done'`. Add a closing `add_comment` worklog entry summarizing what was done.\n" +
|
|
530
556
|
"- task cancellation / give up: `status='rejected'`.\n" +
|
|
531
557
|
"- start work: `status='in_progress'` ONLY when work actually begins in this turn (not just on every mention).\n" +
|
|
532
558
|
"- move between projects: pass `projectId` (or `null` to move to workspace scope).\n" +
|
|
@@ -583,6 +609,64 @@ export function buildMcpServer(ctx) {
|
|
|
583
609
|
return formatToolError(err);
|
|
584
610
|
}
|
|
585
611
|
});
|
|
612
|
+
server.registerTool("add_comment", {
|
|
613
|
+
title: "Add Comment",
|
|
614
|
+
description: "Append a comment (worklog entry) to a task or note. Use it to record progress, decisions, blockers, or a handoff summary when pausing work — the opening brief shows the latest comment for every in_progress task. Comments are append-only.",
|
|
615
|
+
annotations: {
|
|
616
|
+
readOnlyHint: false,
|
|
617
|
+
destructiveHint: false,
|
|
618
|
+
idempotentHint: false,
|
|
619
|
+
openWorldHint: false
|
|
620
|
+
},
|
|
621
|
+
inputSchema: {
|
|
622
|
+
id: EntityRef.describe("Parent task/note: UUID, unique UUID prefix, or KEY-SEQ such as BOT-55."),
|
|
623
|
+
body: z.string().min(1).describe("The comment text. Markdown allowed."),
|
|
624
|
+
actorKind: z.enum(ACTOR_KINDS).default("agent"),
|
|
625
|
+
idempotencyKey: z.string().min(1).max(200).optional()
|
|
626
|
+
}
|
|
627
|
+
}, async ({ id, body, actorKind, idempotencyKey }) => {
|
|
628
|
+
try {
|
|
629
|
+
const resolvedId = await resolveEntityRef(c, id);
|
|
630
|
+
const comment = await c.addComment(resolvedId, { body, actorKind, idempotencyKey });
|
|
631
|
+
return {
|
|
632
|
+
content: [
|
|
633
|
+
{ type: "text", text: `added comment ${comment.id.slice(0, 8)} on ${id}` }
|
|
634
|
+
]
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
catch (err) {
|
|
638
|
+
return formatToolError(err);
|
|
639
|
+
}
|
|
640
|
+
});
|
|
641
|
+
server.registerTool("list_comments", {
|
|
642
|
+
title: "List Comments",
|
|
643
|
+
description: "List the comments (worklog) on a task or note, oldest first. Read this when resuming an in_progress task to see what previous sessions did.",
|
|
644
|
+
annotations: {
|
|
645
|
+
readOnlyHint: true,
|
|
646
|
+
destructiveHint: false,
|
|
647
|
+
idempotentHint: true,
|
|
648
|
+
openWorldHint: false
|
|
649
|
+
},
|
|
650
|
+
inputSchema: {
|
|
651
|
+
id: EntityRef.describe("Parent task/note: UUID, unique UUID prefix, or KEY-SEQ such as BOT-55.")
|
|
652
|
+
}
|
|
653
|
+
}, async ({ id }) => {
|
|
654
|
+
try {
|
|
655
|
+
const resolvedId = await resolveEntityRef(c, id);
|
|
656
|
+
const rows = await c.listComments(resolvedId);
|
|
657
|
+
if (rows.length === 0) {
|
|
658
|
+
return { content: [{ type: "text", text: "no comments" }] };
|
|
659
|
+
}
|
|
660
|
+
const lines = rows.map((r) => {
|
|
661
|
+
const when = (r.createdAt ?? "").slice(0, 16).replace("T", " ");
|
|
662
|
+
return `[${when} · ${r.actorKind}]\n${r.body}`;
|
|
663
|
+
});
|
|
664
|
+
return { content: [{ type: "text", text: lines.join("\n\n---\n\n") }] };
|
|
665
|
+
}
|
|
666
|
+
catch (err) {
|
|
667
|
+
return formatToolError(err);
|
|
668
|
+
}
|
|
669
|
+
});
|
|
586
670
|
// ----- 13. recurrence -----
|
|
587
671
|
server.registerTool("configure_recurrence", {
|
|
588
672
|
title: "Configure Recurrence",
|
|
@@ -770,7 +854,7 @@ export function buildMcpServer(ctx) {
|
|
|
770
854
|
// ----- 15. link -----
|
|
771
855
|
server.registerTool("link", {
|
|
772
856
|
title: "Link Entities",
|
|
773
|
-
description: "Create a typed edge between two entities. `blocks` = source blocks target, `references` = source references target (citation/see-also), `parent_of` = source is the parent (e.g. task is parent of a sub-note).",
|
|
857
|
+
description: "Create a typed edge between two entities. `blocks` = source blocks target, `references` = source references target (citation/see-also), `parent_of` = source is the parent (e.g. task is parent of a sub-note), `supersedes` = source replaces target (the outdated entity is downweighted in search but stays readable).",
|
|
774
858
|
annotations: {
|
|
775
859
|
readOnlyHint: false,
|
|
776
860
|
destructiveHint: false,
|
|
@@ -892,7 +976,7 @@ export function buildMcpServer(ctx) {
|
|
|
892
976
|
},
|
|
893
977
|
inputSchema: {
|
|
894
978
|
id: EntityRef,
|
|
895
|
-
kind: z.enum(EDGE_KINDS).optional().describe("Edge type filter: blocks, references, or
|
|
979
|
+
kind: z.enum(EDGE_KINDS).optional().describe("Edge type filter: blocks, references, parent_of, or supersedes."),
|
|
896
980
|
direction: z.enum(["outgoing", "incoming", "both"]).default("both").describe("Edge direction relative to the given entity.")
|
|
897
981
|
}
|
|
898
982
|
}, async ({ id, kind, direction }) => {
|