botnote 0.1.56 → 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.
Files changed (51) hide show
  1. package/dist/cli.js +3 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/db/migrations/0029_drop_global_uniques.sql +38 -0
  4. package/dist/db/schema.d.ts +4 -4
  5. package/dist/db/schema.js +6 -6
  6. package/dist/db/schema.js.map +1 -1
  7. package/dist/rest/routes.js +58 -58
  8. package/dist/rest/routes.js.map +1 -1
  9. package/dist/rest/server.d.ts +11 -1
  10. package/dist/rest/server.js +19 -3
  11. package/dist/rest/server.js.map +1 -1
  12. package/dist/service/embedding.d.ts +5 -0
  13. package/dist/service/embedding.js +6 -1
  14. package/dist/service/embedding.js.map +1 -1
  15. package/dist/service/embedding_settings.d.ts +4 -3
  16. package/dist/service/embedding_settings.js +13 -16
  17. package/dist/service/embedding_settings.js.map +1 -1
  18. package/dist/service/entities.d.ts +29 -20
  19. package/dist/service/entities.js +101 -60
  20. package/dist/service/entities.js.map +1 -1
  21. package/dist/service/feedback.d.ts +3 -2
  22. package/dist/service/feedback.js +8 -4
  23. package/dist/service/feedback.js.map +1 -1
  24. package/dist/service/opening_brief.d.ts +2 -1
  25. package/dist/service/opening_brief.js +6 -7
  26. package/dist/service/opening_brief.js.map +1 -1
  27. package/dist/service/projects.d.ts +6 -5
  28. package/dist/service/projects.js +25 -13
  29. package/dist/service/projects.js.map +1 -1
  30. package/dist/service/recurrence.d.ts +7 -6
  31. package/dist/service/recurrence.js +36 -14
  32. package/dist/service/recurrence.js.map +1 -1
  33. package/dist/service/scope.d.ts +14 -0
  34. package/dist/service/scope.js +19 -0
  35. package/dist/service/scope.js.map +1 -0
  36. package/dist/service/search.d.ts +3 -2
  37. package/dist/service/search.js +12 -9
  38. package/dist/service/search.js.map +1 -1
  39. package/dist/service/sessions.d.ts +7 -8
  40. package/dist/service/sessions.js +8 -8
  41. package/dist/service/sessions.js.map +1 -1
  42. package/dist/service/tasks.d.ts +2 -1
  43. package/dist/service/tasks.js +13 -6
  44. package/dist/service/tasks.js.map +1 -1
  45. package/dist/service/tokens.d.ts +7 -6
  46. package/dist/service/tokens.js +17 -10
  47. package/dist/service/tokens.js.map +1 -1
  48. package/dist/service/workspace_settings.d.ts +3 -2
  49. package/dist/service/workspace_settings.js +11 -15
  50. package/dist/service/workspace_settings.js.map +1 -1
  51. package/package.json +1 -1
@@ -10,6 +10,7 @@ import { fileURLToPath } from "node:url";
10
10
  import Fastify from "fastify";
11
11
  import { hasZodFastifySchemaValidationErrors, isResponseSerializationError, jsonSchemaTransform, serializerCompiler, validatorCompiler } from "fastify-type-provider-zod";
12
12
  import { corsOrigins, DEFAULT_PORT, envValue } from "../config.js";
13
+ import { DEFAULT_SCOPE, scopeFor } from "../service/scope.js";
13
14
  import { consumeSession } from "../service/sessions.js";
14
15
  import { consumeToken } from "../service/tokens.js";
15
16
  import { VERSION } from "../version.js";
@@ -33,6 +34,7 @@ function resolveWebDist(explicit) {
33
34
  export async function buildServer(opts) {
34
35
  const isProduction = process.env.NODE_ENV === "production";
35
36
  const auth = opts.auth ?? authConfigFromEnv();
37
+ const defaultScope = opts.defaultScope ?? DEFAULT_SCOPE;
36
38
  const app = Fastify({
37
39
  logger: { level: opts.logLevel ?? "info" },
38
40
  // Only peers listed in BOTNOTE_TRUST_PROXY may rewrite req.ip through
@@ -153,6 +155,16 @@ export async function buildServer(opts) {
153
155
  req.log.error({ err }, "unhandled error");
154
156
  return reply.code(500).send({ error: "server_error" });
155
157
  });
158
+ // ----- scope -----
159
+ // Every request starts in the default workspace. The auth hook below
160
+ // narrows it to the credential's workspace when one is presented, so a
161
+ // route handler can always pass req.scope straight into the service layer.
162
+ // null (not an object literal) so every request shares one hidden-class
163
+ // shape; the hook right below assigns the real value before any handler.
164
+ app.decorateRequest("scope", null);
165
+ app.addHook("onRequest", async (req) => {
166
+ req.scope = defaultScope;
167
+ });
156
168
  // ----- auth -----
157
169
  // Every /v1 request needs a session cookie or bearer token, except a direct
158
170
  // loopback connection when BOTNOTE_TRUST_LOCALHOST is on. Whether a request
@@ -181,22 +193,26 @@ export async function buildServer(opts) {
181
193
  const cookieToken = req.cookies?.botnote_session;
182
194
  if (cookieToken) {
183
195
  const session = await consumeSession(opts.db, cookieToken);
184
- if (session)
196
+ if (session) {
197
+ req.scope = scopeFor(session.workspaceId);
185
198
  return;
199
+ }
186
200
  }
187
201
  // CLI / MCP path: bearer token.
188
202
  const authHeader = req.headers.authorization;
189
203
  if (authHeader && authHeader.startsWith("Bearer ")) {
190
204
  const plaintext = authHeader.slice("Bearer ".length).trim();
191
205
  const tok = await consumeToken(opts.db, plaintext);
192
- if (tok)
206
+ if (tok) {
207
+ req.scope = scopeFor(tok.workspaceId);
193
208
  return;
209
+ }
194
210
  }
195
211
  return reply.code(401).send({ error: "unauthenticated" });
196
212
  });
197
213
  }
198
214
  app.log.info(describeAuthConfig(auth));
199
- await registerRoutes(app, { db: opts.db, embedding: opts.embedding, auth });
215
+ await registerRoutes(app, { db: opts.db, embedding: opts.embedding, auth, defaultScope });
200
216
  const webDist = resolveWebDist(opts.webDist);
201
217
  if (webDist) {
202
218
  await app.register(fastifyStatic, {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rest/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rest/server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Database } from "../db/client.js";
2
+ import { type Scope } from "./scope.js";
2
3
  import type { EmbeddingProvider } from "./types.js";
3
4
  export declare const EMBED_MODEL = "text-embedding-3-small";
4
5
  export declare const EMBED_DIM = 384;
@@ -23,11 +24,15 @@ export declare class EmbeddingService {
23
24
  private queue;
24
25
  private working;
25
26
  private envApiKey;
27
+ /** The daemon runs one embedding worker; its provider config is read from
28
+ * this workspace's embedding_settings row (the default workspace today). */
29
+ private scope;
26
30
  private status;
27
31
  constructor(db: Database["db"], opts?: {
28
32
  apiKey?: string | undefined;
29
33
  embedFn?: EmbedFn;
30
34
  logger?: (msg: string) => void;
35
+ scope?: Scope;
31
36
  });
32
37
  private log;
33
38
  reloadConfig(): Promise<EmbeddingRuntimeStatus>;
@@ -3,6 +3,7 @@ import { and, asc, inArray, isNull } from "drizzle-orm";
3
3
  import { entities as entitiesTable, VECTOR_DIMENSIONS } from "../db/schema.js";
4
4
  import { DEFAULT_EMBEDDING_MODEL, DEFAULT_EMBEDDING_PROVIDER, getEmbeddingSettings, previewSecret } from "./embedding_settings.js";
5
5
  import { setBodyVec } from "./entities.js";
6
+ import { DEFAULT_SCOPE } from "./scope.js";
6
7
  export const EMBED_MODEL = DEFAULT_EMBEDDING_MODEL;
7
8
  export const EMBED_DIM = VECTOR_DIMENSIONS;
8
9
  export class EmbeddingService {
@@ -12,6 +13,9 @@ export class EmbeddingService {
12
13
  queue = [];
13
14
  working = false;
14
15
  envApiKey;
16
+ /** The daemon runs one embedding worker; its provider config is read from
17
+ * this workspace's embedding_settings row (the default workspace today). */
18
+ scope;
15
19
  status = {
16
20
  enabled: false,
17
21
  provider: DEFAULT_EMBEDDING_PROVIDER,
@@ -26,6 +30,7 @@ export class EmbeddingService {
26
30
  constructor(db, opts = {}) {
27
31
  this.db = db;
28
32
  this.envApiKey = opts.apiKey;
33
+ this.scope = opts.scope ?? DEFAULT_SCOPE;
29
34
  if (opts.embedFn) {
30
35
  this.injected = true;
31
36
  this.embedFn = opts.embedFn;
@@ -50,7 +55,7 @@ export class EmbeddingService {
50
55
  async reloadConfig() {
51
56
  if (this.injected)
52
57
  return this.status;
53
- const settings = await getEmbeddingSettings(this.db);
58
+ const settings = await getEmbeddingSettings(this.scope, this.db);
54
59
  const settingsKey = settings.apiKey?.trim() || null;
55
60
  const envKey = this.envApiKey?.trim() || null;
56
61
  const apiKey = settingsKey ?? envKey;
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/service/embedding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/service/embedding.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Database } from "../db/client.js";
2
2
  import { type EmbeddingSettings } from "../db/schema.js";
3
+ import type { Scope } from "./scope.js";
3
4
  import type { UpdateEmbeddingSettingsInput } from "./types.js";
4
5
  export declare const DEFAULT_EMBEDDING_PROVIDER = "openai";
5
6
  export declare const DEFAULT_EMBEDDING_MODEL = "text-embedding-3-small";
@@ -10,6 +11,6 @@ export interface EmbeddingCoverage {
10
11
  missingCount: number;
11
12
  }
12
13
  export declare function previewSecret(value: string | null | undefined): string | null;
13
- export declare function getEmbeddingSettings(db: Database["db"]): Promise<EmbeddingSettings>;
14
- export declare function updateEmbeddingSettings(db: Database["db"], input: UpdateEmbeddingSettingsInput): Promise<EmbeddingSettings>;
15
- export declare function embeddingCoverage(db: Database["db"]): Promise<EmbeddingCoverage>;
14
+ export declare function getEmbeddingSettings(scope: Scope, db: Database["db"]): Promise<EmbeddingSettings>;
15
+ export declare function updateEmbeddingSettings(scope: Scope, db: Database["db"], input: UpdateEmbeddingSettingsInput): Promise<EmbeddingSettings>;
16
+ export declare function embeddingCoverage(scope: Scope, db: Database["db"]): Promise<EmbeddingCoverage>;
@@ -1,4 +1,4 @@
1
- import { eq, sql } from "drizzle-orm";
1
+ import { and, eq, sql } from "drizzle-orm";
2
2
  import { embeddingSettings, entities, VECTOR_DIMENSIONS } from "../db/schema.js";
3
3
  export const DEFAULT_EMBEDDING_PROVIDER = "openai";
4
4
  export const DEFAULT_EMBEDDING_MODEL = "text-embedding-3-small";
@@ -18,35 +18,31 @@ export function previewSecret(value) {
18
18
  return "configured";
19
19
  return `${value.slice(0, 7)}...${value.slice(-4)}`;
20
20
  }
21
- export async function getEmbeddingSettings(db) {
22
- const [existing] = await db
23
- .select()
24
- .from(embeddingSettings)
25
- .where(eq(embeddingSettings.id, EMBEDDING_SETTINGS_ID))
26
- .limit(1);
21
+ function rowFilter(scope) {
22
+ return and(eq(embeddingSettings.id, EMBEDDING_SETTINGS_ID), eq(embeddingSettings.workspaceId, scope.workspaceId));
23
+ }
24
+ export async function getEmbeddingSettings(scope, db) {
25
+ const [existing] = await db.select().from(embeddingSettings).where(rowFilter(scope)).limit(1);
27
26
  if (existing)
28
27
  return existing;
29
28
  await db
30
29
  .insert(embeddingSettings)
31
30
  .values({
32
31
  id: EMBEDDING_SETTINGS_ID,
32
+ workspaceId: scope.workspaceId,
33
33
  enabled: true,
34
34
  provider: DEFAULT_EMBEDDING_PROVIDER,
35
35
  model: DEFAULT_EMBEDDING_MODEL,
36
36
  dimensions: VECTOR_DIMENSIONS
37
37
  })
38
38
  .onConflictDoNothing();
39
- const [created] = await db
40
- .select()
41
- .from(embeddingSettings)
42
- .where(eq(embeddingSettings.id, EMBEDDING_SETTINGS_ID))
43
- .limit(1);
39
+ const [created] = await db.select().from(embeddingSettings).where(rowFilter(scope)).limit(1);
44
40
  if (!created)
45
41
  throw new Error("embedding settings row missing after insert");
46
42
  return created;
47
43
  }
48
- export async function updateEmbeddingSettings(db, input) {
49
- const current = await getEmbeddingSettings(db);
44
+ export async function updateEmbeddingSettings(scope, db, input) {
45
+ const current = await getEmbeddingSettings(scope, db);
50
46
  const apiKey = normalizeNullable(input.apiKey);
51
47
  const baseUrl = normalizeNullable(input.baseUrl);
52
48
  const set = {
@@ -60,13 +56,13 @@ export async function updateEmbeddingSettings(db, input) {
60
56
  const [updated] = await db
61
57
  .update(embeddingSettings)
62
58
  .set(set)
63
- .where(eq(embeddingSettings.id, EMBEDDING_SETTINGS_ID))
59
+ .where(rowFilter(scope))
64
60
  .returning();
65
61
  if (!updated)
66
62
  throw new Error("embedding settings update returned no row");
67
63
  return updated;
68
64
  }
69
- export async function embeddingCoverage(db) {
65
+ export async function embeddingCoverage(scope, db) {
70
66
  const [row] = (await db.execute(sql `
71
67
  SELECT
72
68
  count(*)::int AS total_count,
@@ -74,6 +70,7 @@ export async function embeddingCoverage(db) {
74
70
  count(*) FILTER (WHERE body_vec IS NULL)::int AS missing_count
75
71
  FROM ${entities}
76
72
  WHERE kind IN ('task', 'note')
73
+ AND workspace_id = ${scope.workspaceId}::uuid
77
74
  AND length(trim(coalesce(title, '') || E'\n' || coalesce(body, ''))) > 0
78
75
  `)).rows;
79
76
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"embedding_settings.js","sourceRoot":"","sources":["../../src/service/embedding_settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding_settings.js","sourceRoot":"","sources":["../../src/service/embedding_settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAQ/C,SAAS,iBAAiB,CAAC,KAAgC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IAC5C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,KAAY;IAC7B,OAAO,GAAG,CACR,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAC/C,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAY,EACZ,EAAkB;IAElB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,EAAE;SACL,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC;QACN,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,0BAA0B;QACpC,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,iBAAiB;KAC9B,CAAC;SACD,mBAAmB,EAAE,CAAC;IAEzB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAY,EACZ,EAAkB,EAClB,KAAmC;IAEnC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG;QACV,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;QACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QAC5C,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,KAAK;QAC3C,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QAC1D,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACtD,UAAU,EAAE,iBAAiB;KAC9B,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;SACvB,MAAM,CAAC,iBAAiB,CAAC;SACzB,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB,SAAS,EAAE,CAAC;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAY,EACZ,EAAkB;IAElB,MAAM,CAAC,GAAG,CAAC,GAAG,CACZ,MAAM,EAAE,CAAC,OAAO,CAIb,GAAG,CAAA;;;;;aAKG,QAAQ;;6BAEQ,KAAK,CAAC,WAAW;;KAEzC,CAAC,CACH,CAAC,IAAI,CAAC;IAEP,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,CAAC;QACzC,aAAa,EAAE,MAAM,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,CAAC;QAC/C,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,aAAa,IAAI,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC"}
@@ -1,61 +1,70 @@
1
1
  import type { Database } from "../db/client.js";
2
2
  import { type Entity, type EdgeKind } from "../db/schema.js";
3
+ import type { Scope } from "./scope.js";
3
4
  import type { CreateCommentInput, GetLinksInput, LinkInput, ListTagsInput, RecentInput, UpdateInput, WriteInput } from "./types.js";
4
- export declare function resolveEntityId(db: Database["db"], idOrPrefix: string): Promise<string | null>;
5
- export declare function write(db: Database["db"], input: WriteInput): Promise<Entity>;
5
+ /**
6
+ * Resolve a full UUID or a unique prefix to an entity id. A full UUID passes
7
+ * through without a lookup, so every caller still filters its own query by
8
+ * scope; prefixes are matched only inside the scope.
9
+ */
10
+ export declare function resolveEntityId(scope: Scope, db: Database["db"], idOrPrefix: string): Promise<string | null>;
11
+ export declare function write(scope: Scope, db: Database["db"], input: WriteInput): Promise<Entity>;
6
12
  /**
7
13
  * Append a comment (worklog entry) to a task or note. The comment inherits the
8
14
  * parent's projectId so project-scoped search/recent include it, but never
9
15
  * gets a KEY-SEQ number (the sequence trigger skips kind='comment').
10
16
  */
11
- export declare function addComment(db: Database["db"], parentIdOrPrefix: string, input: CreateCommentInput): Promise<Entity>;
17
+ export declare function addComment(scope: Scope, db: Database["db"], parentIdOrPrefix: string, input: CreateCommentInput): Promise<Entity>;
12
18
  /** Comments for one parent entity, oldest first (chronological worklog). */
13
- export declare function listComments(db: Database["db"], parentIdOrPrefix: string, limit?: number): Promise<Entity[]>;
14
- export declare function update(db: Database["db"], id: string, fields: UpdateInput): Promise<Entity>;
15
- export declare function listRelated(db: Database["db"], parentId: string): Promise<Entity[]>;
19
+ export declare function listComments(scope: Scope, db: Database["db"], parentIdOrPrefix: string, limit?: number): Promise<Entity[]>;
20
+ export declare function update(scope: Scope, db: Database["db"], id: string, fields: UpdateInput): Promise<Entity>;
21
+ export declare function listRelated(scope: Scope, db: Database["db"], parentId: string): Promise<Entity[]>;
16
22
  /**
17
23
  * Record an explicit read of an entity. Called from the REST get-by-id and
18
24
  * get-by-key handlers (not from internal lookups) so access stats reflect
19
25
  * deliberate recalls; search gives frequently-recalled entities a light boost.
20
26
  */
21
- export declare function bumpAccess(db: Database["db"], id: string): Promise<void>;
27
+ export declare function bumpAccess(scope: Scope, db: Database["db"], id: string): Promise<void>;
22
28
  /**
23
29
  * Mark `oldIdOrPrefix` as superseded by `newId` (kind='supersedes' edge from
24
30
  * the replacement to the outdated entity). Superseded entities stay readable
25
31
  * but are downweighted in search.
26
32
  */
27
- export declare function markSuperseded(db: Database["db"], newId: string, oldIdOrPrefix: string): Promise<string>;
28
- export declare function get(db: Database["db"], id: string): Promise<Entity | null>;
33
+ export declare function markSuperseded(scope: Scope, db: Database["db"], newId: string, oldIdOrPrefix: string): Promise<string>;
34
+ export declare function get(scope: Scope, db: Database["db"], id: string): Promise<Entity | null>;
29
35
  /**
30
36
  * Look up an entity by its human-readable identifier — e.g. project key `DEMO`
31
37
  * + sequence id `12` resolves to the entity displayed as `DEMO-12`.
32
38
  */
33
- export declare function getByKey(db: Database["db"], projectKey: string, sequenceId: number): Promise<Entity | null>;
39
+ export declare function getByKey(scope: Scope, db: Database["db"], projectKey: string, sequenceId: number): Promise<Entity | null>;
34
40
  /**
35
41
  * Soft delete: move the entity to the trash. Read paths hide trashed rows;
36
42
  * restore() brings them back, purge()/purgeExpired() hard-delete them.
37
43
  * Idempotent — re-deleting a trashed entity keeps its original trash time.
38
44
  */
39
- export declare function remove(db: Database["db"], id: string): Promise<boolean>;
45
+ export declare function remove(scope: Scope, db: Database["db"], id: string): Promise<boolean>;
40
46
  /** Bring a trashed entity back. Returns null when the id resolves to nothing. */
41
- export declare function restore(db: Database["db"], id: string): Promise<Entity | null>;
47
+ export declare function restore(scope: Scope, db: Database["db"], id: string): Promise<Entity | null>;
42
48
  /**
43
49
  * Hard-delete a trashed entity ("delete forever"). Refuses to touch live
44
50
  * rows — an entity must go through the trash first.
45
51
  */
46
- export declare function purge(db: Database["db"], id: string): Promise<boolean>;
52
+ export declare function purge(scope: Scope, db: Database["db"], id: string): Promise<boolean>;
47
53
  /** Trashed entities, most recently deleted first. */
48
- export declare function listTrash(db: Database["db"], limit?: number): Promise<Entity[]>;
49
- /** Hard-delete trash older than the retention window. Returns rows purged. */
54
+ export declare function listTrash(scope: Scope, db: Database["db"], limit?: number): Promise<Entity[]>;
55
+ /**
56
+ * Hard-delete trash older than the retention window across every workspace.
57
+ * Daemon-level maintenance, hence no scope. Returns rows purged.
58
+ */
50
59
  export declare function purgeExpired(db: Database["db"], retentionDays: number): Promise<number>;
51
- export declare function recent(db: Database["db"], input: RecentInput): Promise<Entity[]>;
52
- export declare function link(db: Database["db"], input: LinkInput): Promise<{
60
+ export declare function recent(scope: Scope, db: Database["db"], input: RecentInput): Promise<Entity[]>;
61
+ export declare function link(scope: Scope, db: Database["db"], input: LinkInput): Promise<{
53
62
  fromId: string;
54
63
  toId: string;
55
64
  kind: string;
56
65
  created: boolean;
57
66
  }>;
58
- export declare function listChildren(db: Database["db"], parentId: string): Promise<Entity[]>;
67
+ export declare function listChildren(scope: Scope, db: Database["db"], parentId: string): Promise<Entity[]>;
59
68
  export declare function setBodyVec(db: Database["db"], id: string, vec: number[]): Promise<void>;
60
69
  export interface TagCount {
61
70
  tag: string;
@@ -66,7 +75,7 @@ export interface TagCount {
66
75
  * counts, ordered by count DESC then tag ASC. Pass projectId to scope to one
67
76
  * project; omit (or pass null/undefined) for workspace-wide results.
68
77
  */
69
- export declare function listTags(db: Database["db"], input: ListTagsInput): Promise<TagCount[]>;
78
+ export declare function listTags(scope: Scope, db: Database["db"], input: ListTagsInput): Promise<TagCount[]>;
70
79
  export interface LinkResult {
71
80
  kind: EdgeKind;
72
81
  direction: "outgoing" | "incoming";
@@ -79,4 +88,4 @@ export interface LinkResult {
79
88
  * direction='both' → union of both directions (default)
80
89
  * Returns the OTHER endpoint entity alongside the edge kind and direction.
81
90
  */
82
- export declare function getLinks(db: Database["db"], input: GetLinksInput): Promise<LinkResult[]>;
91
+ export declare function getLinks(scope: Scope, db: Database["db"], input: GetLinksInput): Promise<LinkResult[]>;