@theromans/convex-dobty 0.1.17 → 0.1.19

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.
@@ -337,12 +337,23 @@ export declare class DobtAddon {
337
337
  /** Return distinct topic strings from knowledge base. */
338
338
  listKnowledgeTopics(ctx: QueryCtx): Promise<any>;
339
339
  /**
340
- * Schedule embedding jobs for all chunks where updatedAt > embeddedAt_en/de.
341
- * Embeddings are processed individually in the background via the scheduler.
342
- * Called automatically by seedKnowledgeChunks — only needed manually to
343
- * recover from a stuck state.
340
+ * Returns all chunks where updatedAt > embeddedAt_en/de.
341
+ * The parent app uses this to schedule individual embedChunk jobs.
344
342
  */
345
- scheduleStaleEmbeddings(ctx: ActionCtx): Promise<any>;
343
+ listStaleChunks(ctx: ActionCtx): Promise<{
344
+ id: string;
345
+ language: "en" | "de";
346
+ }[]>;
347
+ /**
348
+ * Embed a single chunk for a single language.
349
+ * apiToken must be passed explicitly — components don't inherit parent app env vars.
350
+ * Call this from the parent app's scheduler — one job per chunk per language.
351
+ */
352
+ embedChunk(ctx: ActionCtx, args: {
353
+ chunkId: string;
354
+ language: "en" | "de";
355
+ apiToken: string;
356
+ }): Promise<any>;
346
357
  }
347
358
  export {};
348
359
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -255,13 +255,19 @@ export class DobtAddon {
255
255
  return await ctx.runQuery(this.component.knowledge.listTopics, {});
256
256
  }
257
257
  /**
258
- * Schedule embedding jobs for all chunks where updatedAt > embeddedAt_en/de.
259
- * Embeddings are processed individually in the background via the scheduler.
260
- * Called automatically by seedKnowledgeChunks — only needed manually to
261
- * recover from a stuck state.
258
+ * Returns all chunks where updatedAt > embeddedAt_en/de.
259
+ * The parent app uses this to schedule individual embedChunk jobs.
262
260
  */
263
- async scheduleStaleEmbeddings(ctx) {
264
- return await ctx.runAction(this.component.knowledgeSearch.scheduleStaleEmbeddings, {});
261
+ async listStaleChunks(ctx) {
262
+ return await ctx.runAction(this.component.knowledgeSearch.listStaleChunks, {});
263
+ }
264
+ /**
265
+ * Embed a single chunk for a single language.
266
+ * apiToken must be passed explicitly — components don't inherit parent app env vars.
267
+ * Call this from the parent app's scheduler — one job per chunk per language.
268
+ */
269
+ async embedChunk(ctx, args) {
270
+ return await ctx.runAction(this.component.knowledgeSearch.embedChunk, args);
265
271
  }
266
272
  }
267
273
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -45,13 +45,13 @@ export declare const listChunks: import("convex/server").RegisteredQuery<"public
45
45
  export declare const listTopics: import("convex/server").RegisteredQuery<"public", {}, Promise<string[]>>;
46
46
  /** Patch English embedding for a single chunk. */
47
47
  export declare const updateEmbeddingEn: import("convex/server").RegisteredMutation<"internal", {
48
- embedding: number[];
49
48
  chunkId: import("convex/values").GenericId<"knowledgeChunks">;
49
+ embedding: number[];
50
50
  }, Promise<void>>;
51
51
  /** Patch Deutsch embedding for a single chunk. */
52
52
  export declare const updateEmbeddingDe: import("convex/server").RegisteredMutation<"internal", {
53
- embedding: number[];
54
53
  chunkId: import("convex/values").GenericId<"knowledgeChunks">;
54
+ embedding: number[];
55
55
  }, Promise<void>>;
56
56
  /** List all chunks across all topics. */
57
57
  export declare const listAllChunks: import("convex/server").RegisteredQuery<"internal", {}, Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/component/knowledge.ts"],"names":[],"mappings":"AASA,oFAAoF;AACpF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;GAyF9B,CAAC;AAEH,wGAAwG;AACxG,eAAO,MAAM,oBAAoB;;;;GAgB/B,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;KAQrB,CAAC;AAEH,qCAAqC;AACrC,eAAO,MAAM,UAAU,0EAOrB,CAAC;AAMH,kDAAkD;AAClD,eAAO,MAAM,iBAAiB;;;iBAW5B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,iBAAiB;;;iBAW5B,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;KAKxB,CAAC;AAEH,gCAAgC;AAChC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;UAKnB,CAAC"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/component/knowledge.ts"],"names":[],"mappings":"AAQA,oFAAoF;AACpF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;GA6D9B,CAAC;AAEH,wGAAwG;AACxG,eAAO,MAAM,oBAAoB;;;;GAgB/B,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;KAQrB,CAAC;AAEH,qCAAqC;AACrC,eAAO,MAAM,UAAU,0EAOrB,CAAC;AAMH,kDAAkD;AAClD,eAAO,MAAM,iBAAiB;;;iBAW5B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,iBAAiB;;;iBAW5B,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;KAKxB,CAAC;AAEH,gCAAgC;AAChC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;UAKnB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { mutation, query, internalMutation, internalQuery, } from "./_generated/server.js";
2
- import { internal } from "./_generated/api.js";
3
2
  import { v } from "convex/values";
4
3
  /** Upsert knowledge chunks by topic + chunkKey. Only updates if content changed. */
5
4
  export const seedKnowledgeChunks = mutation({
@@ -33,36 +32,16 @@ export const seedKnowledgeChunks = mutation({
33
32
  title_Deutsch: chunk.title_Deutsch,
34
33
  content_English: chunk.content_English,
35
34
  content_Deutsch: chunk.content_Deutsch,
36
- // Bump updatedAt — scheduler will detect embeddedAt < updatedAt and re-embed
37
35
  updatedAt: Date.now(),
38
36
  });
39
- // Schedule EN embedding via mutation→mutation→action chain.
40
- // 10s delay lets vector indexes finish bootstrapping after a fresh deploy.
41
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.scheduleEmbedChunk, {
42
- chunkId: existing._id,
43
- language: "en",
44
- delayMs: 10_000,
45
- });
46
37
  updated++;
47
38
  }
48
39
  else {
49
- // Content unchanged — but schedule embedding if vectors are missing
50
- const needsEmbed = !existing.embedding_en ||
51
- !existing.embedding_de ||
52
- !existing.embeddedAt_en ||
53
- !existing.embeddedAt_de;
54
- if (needsEmbed) {
55
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.scheduleEmbedChunk, {
56
- chunkId: existing._id,
57
- language: "en",
58
- delayMs: 10_000,
59
- });
60
- }
61
40
  skipped++;
62
41
  }
63
42
  }
64
43
  else {
65
- const id = await ctx.db.insert("knowledgeChunks", {
44
+ await ctx.db.insert("knowledgeChunks", {
66
45
  topic: chunk.topic,
67
46
  chunkKey: chunk.chunkKey,
68
47
  title_English: chunk.title_English,
@@ -71,13 +50,6 @@ export const seedKnowledgeChunks = mutation({
71
50
  content_Deutsch: chunk.content_Deutsch,
72
51
  updatedAt: Date.now(),
73
52
  });
74
- // Schedule EN embedding via mutation→mutation→action chain.
75
- // 10s delay lets vector indexes finish bootstrapping after a fresh deploy.
76
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.scheduleEmbedChunk, {
77
- chunkId: id,
78
- language: "en",
79
- delayMs: 10_000,
80
- });
81
53
  inserted++;
82
54
  }
83
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/component/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/component/knowledge.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,21 @@
1
- /**
2
- * Thin mutation that schedules an embedChunk action.
3
- * Mutations can schedule actions; other mutations cannot call actions directly.
4
- */
5
- export declare const scheduleEmbedChunk: import("convex/server").RegisteredMutation<"internal", {
6
- delayMs?: number | undefined;
7
- chunkId: import("convex/values").GenericId<"knowledgeChunks">;
8
- language: "en" | "de";
9
- }, Promise<void>>;
10
1
  /**
11
2
  * Embed a single chunk for a single language.
12
- * Called by the scheduler after a chunk is seeded or updated.
13
- * Retries on failure with a delay. Chains to the other language when done.
3
+ * apiToken is passed explicitly components do not inherit parent app env vars.
4
+ * Exposed as a public action so the parent app can schedule it via its own ctx.scheduler.
14
5
  */
15
- export declare const embedChunk: import("convex/server").RegisteredAction<"internal", {
16
- attempt?: number | undefined;
6
+ export declare const embedChunk: import("convex/server").RegisteredAction<"public", {
17
7
  chunkId: import("convex/values").GenericId<"knowledgeChunks">;
18
8
  language: "en" | "de";
9
+ apiToken: string;
19
10
  }, Promise<void>>;
20
11
  /**
21
- * Schedule embedding jobs for all chunks that are stale
22
- * (updatedAt > embeddedAt_en or embeddedAt_de).
23
- * Called automatically after seedKnowledgeChunks, or can be triggered manually.
12
+ * Returns all chunks that need (re-)embedding (updatedAt > embeddedAt_en or embeddedAt_de).
13
+ * The parent app uses this list to schedule individual embedChunk calls via its own scheduler.
24
14
  */
25
- export declare const scheduleStaleEmbeddings: import("convex/server").RegisteredAction<"internal", {}, Promise<{
26
- total: number;
27
- scheduled: number;
28
- }>>;
15
+ export declare const listStaleChunks: import("convex/server").RegisteredAction<"public", {}, Promise<{
16
+ id: string;
17
+ language: "en" | "de";
18
+ }[]>>;
29
19
  export interface KnowledgeResult {
30
20
  title: string;
31
21
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"knowledgeSearch.d.ts","sourceRoot":"","sources":["../../src/component/knowledgeSearch.ts"],"names":[],"mappings":"AA4CA;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;iBAa7B,CAAC;AAKH;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;iBAuFrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;GAoClC,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;8BAY1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;8BAUzB,CAAC"}
1
+ {"version":3,"file":"knowledgeSearch.d.ts","sourceRoot":"","sources":["../../src/component/knowledgeSearch.ts"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;iBAqDrB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;QAEU,MAAM;cAAY,IAAI,GAAG,IAAI;KAajE,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;8BAY1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;8BAUzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { internalAction, internalMutation, action } from "./_generated/server.js";
1
+ import { action } from "./_generated/server.js";
2
2
  import { internal } from "./_generated/api.js";
3
3
  import { v } from "convex/values";
4
4
  const EMBEDDING_ENDPOINT = "https://openai.inference.de-txl.ionos.com/v1/embeddings";
@@ -40,41 +40,22 @@ async function getEmbedding(text, apiToken) {
40
40
  clearTimeout(timer);
41
41
  }
42
42
  }
43
- /**
44
- * Thin mutation that schedules an embedChunk action.
45
- * Mutations can schedule actions; other mutations cannot call actions directly.
46
- */
47
- export const scheduleEmbedChunk = internalMutation({
48
- args: {
49
- chunkId: v.id("knowledgeChunks"),
50
- language: v.union(v.literal("en"), v.literal("de")),
51
- delayMs: v.optional(v.number()),
52
- },
53
- handler: async (ctx, { chunkId, language, delayMs = 10_000 }) => {
54
- await ctx.scheduler.runAfter(delayMs, internal.knowledgeSearch.embedChunk, {
55
- chunkId,
56
- language,
57
- attempt: 0,
58
- });
59
- },
60
- });
61
43
  const EMBED_RETRY_DELAY_MS = 30_000; // retry after 30s on transient failure
62
44
  const EMBED_MAX_RETRIES = 5;
63
45
  /**
64
46
  * Embed a single chunk for a single language.
65
- * Called by the scheduler after a chunk is seeded or updated.
66
- * Retries on failure with a delay. Chains to the other language when done.
47
+ * apiToken is passed explicitly components do not inherit parent app env vars.
48
+ * Exposed as a public action so the parent app can schedule it via its own ctx.scheduler.
67
49
  */
68
- export const embedChunk = internalAction({
50
+ export const embedChunk = action({
69
51
  args: {
70
52
  chunkId: v.id("knowledgeChunks"),
71
53
  language: v.union(v.literal("en"), v.literal("de")),
72
- attempt: v.optional(v.number()),
54
+ apiToken: v.string(),
73
55
  },
74
- handler: async (ctx, { chunkId, language, attempt = 0 }) => {
75
- const apiToken = globalThis.process?.env?.IONOS_API_TOKEN;
56
+ handler: async (ctx, { chunkId, language, apiToken }) => {
76
57
  if (!apiToken) {
77
- console.error("[embedChunk] IONOS_API_TOKEN not set — cannot embed");
58
+ console.error("[embedChunk] apiToken is empty — cannot embed");
78
59
  return;
79
60
  }
80
61
  const chunk = await ctx.runQuery(internal.knowledge.getChunk, { chunkId });
@@ -92,14 +73,6 @@ export const embedChunk = internalAction({
92
73
  const otherLanguage = language === "en" ? "de" : "en";
93
74
  const otherStale = language === "en" ? isStaleDe : isStaleEn;
94
75
  if (!isStale) {
95
- // Already up to date — chain to other language if needed
96
- if (otherStale) {
97
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
98
- chunkId,
99
- language: otherLanguage,
100
- attempt: 0,
101
- });
102
- }
103
76
  return;
104
77
  }
105
78
  const title = language === "en" ? chunk.title_English : chunk.title_Deutsch;
@@ -108,78 +81,34 @@ export const embedChunk = internalAction({
108
81
  console.warn(`[embedChunk] chunk ${chunk.chunkKey} missing ${language} content, skipping`);
109
82
  return;
110
83
  }
111
- try {
112
- const embedding = await getEmbedding(`${title}\n\n${content}`, apiToken);
113
- if (language === "en") {
114
- await ctx.runMutation(internal.knowledge.updateEmbeddingEn, { chunkId, embedding });
115
- }
116
- else {
117
- await ctx.runMutation(internal.knowledge.updateEmbeddingDe, { chunkId, embedding });
118
- }
119
- console.log(`[embedChunk] ✓ ${chunk.chunkKey} (${language})`);
120
- // Chain to the other language if also stale
121
- if (otherStale) {
122
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
123
- chunkId,
124
- language: otherLanguage,
125
- attempt: 0,
126
- });
127
- }
84
+ const embedding = await getEmbedding(`${title}\n\n${content}`, apiToken);
85
+ if (language === "en") {
86
+ await ctx.runMutation(internal.knowledge.updateEmbeddingEn, { chunkId, embedding });
128
87
  }
129
- catch (e) {
130
- console.error(`[embedChunk] failed ${chunk.chunkKey} (${language}) attempt ${attempt}: ${e.message}`);
131
- if (attempt < EMBED_MAX_RETRIES) {
132
- // Exponential backoff: 30s, 60s, 120s, 240s, 480s
133
- const delay = EMBED_RETRY_DELAY_MS * Math.pow(2, attempt);
134
- console.log(`[embedChunk] retrying in ${delay / 1000}s (attempt ${attempt + 1}/${EMBED_MAX_RETRIES})`);
135
- await ctx.scheduler.runAfter(delay, internal.knowledgeSearch.embedChunk, {
136
- chunkId,
137
- language,
138
- attempt: attempt + 1,
139
- });
140
- }
141
- else {
142
- console.error(`[embedChunk] giving up on ${chunk.chunkKey} (${language}) after ${EMBED_MAX_RETRIES} attempts`);
143
- }
88
+ else {
89
+ await ctx.runMutation(internal.knowledge.updateEmbeddingDe, { chunkId, embedding });
144
90
  }
91
+ console.log(`[embedChunk] ✓ ${chunk.chunkKey} (${language})`);
145
92
  },
146
93
  });
147
94
  /**
148
- * Schedule embedding jobs for all chunks that are stale
149
- * (updatedAt > embeddedAt_en or embeddedAt_de).
150
- * Called automatically after seedKnowledgeChunks, or can be triggered manually.
95
+ * Returns all chunks that need (re-)embedding (updatedAt > embeddedAt_en or embeddedAt_de).
96
+ * The parent app uses this list to schedule individual embedChunk calls via its own scheduler.
151
97
  */
152
- export const scheduleStaleEmbeddings = internalAction({
98
+ export const listStaleChunks = action({
153
99
  args: {},
154
100
  handler: async (ctx) => {
155
101
  const all = await ctx.runQuery(internal.knowledge.listAllChunks, {});
156
- let scheduled = 0;
102
+ const stale = [];
157
103
  for (const chunk of all) {
158
- const staleEn = !chunk.embedding_en ||
159
- !chunk.embeddedAt_en ||
160
- chunk.embeddedAt_en < chunk.updatedAt;
161
- const staleDe = !chunk.embedding_de ||
162
- !chunk.embeddedAt_de ||
163
- chunk.embeddedAt_de < chunk.updatedAt;
164
- if (staleEn) {
165
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
166
- chunkId: chunk._id,
167
- language: "en",
168
- attempt: 0,
169
- });
170
- scheduled++;
104
+ if (!chunk.embedding_en || !chunk.embeddedAt_en || chunk.embeddedAt_en < chunk.updatedAt) {
105
+ stale.push({ id: chunk._id, language: "en" });
171
106
  }
172
- else if (staleDe) {
173
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
174
- chunkId: chunk._id,
175
- language: "de",
176
- attempt: 0,
177
- });
178
- scheduled++;
107
+ if (!chunk.embedding_de || !chunk.embeddedAt_de || chunk.embeddedAt_de < chunk.updatedAt) {
108
+ stale.push({ id: chunk._id, language: "de" });
179
109
  }
180
110
  }
181
- console.log(`[scheduleStaleEmbeddings] scheduled ${scheduled} jobs for ${all.length} chunks`);
182
- return { total: all.length, scheduled };
111
+ return stale;
183
112
  },
184
113
  });
185
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"knowledgeSearch.js","sourceRoot":"","sources":["../../src/component/knowledgeSearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledgeSearch.js","sourceRoot":"","sources":["../../src/component/knowledgeSearch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theromans/convex-dobty",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -533,12 +533,22 @@ export class DobtAddon {
533
533
  }
534
534
 
535
535
  /**
536
- * Schedule embedding jobs for all chunks where updatedAt > embeddedAt_en/de.
537
- * Embeddings are processed individually in the background via the scheduler.
538
- * Called automatically by seedKnowledgeChunks — only needed manually to
539
- * recover from a stuck state.
536
+ * Returns all chunks where updatedAt > embeddedAt_en/de.
537
+ * The parent app uses this to schedule individual embedChunk jobs.
540
538
  */
541
- async scheduleStaleEmbeddings(ctx: ActionCtx) {
542
- return await ctx.runAction(this.component.knowledgeSearch.scheduleStaleEmbeddings, {});
539
+ async listStaleChunks(ctx: ActionCtx): Promise<{ id: string; language: "en" | "de" }[]> {
540
+ return await ctx.runAction(this.component.knowledgeSearch.listStaleChunks, {});
541
+ }
542
+
543
+ /**
544
+ * Embed a single chunk for a single language.
545
+ * apiToken must be passed explicitly — components don't inherit parent app env vars.
546
+ * Call this from the parent app's scheduler — one job per chunk per language.
547
+ */
548
+ async embedChunk(
549
+ ctx: ActionCtx,
550
+ args: { chunkId: string; language: "en" | "de"; apiToken: string },
551
+ ) {
552
+ return await ctx.runAction(this.component.knowledgeSearch.embedChunk, args);
543
553
  }
544
554
  }
@@ -4,7 +4,6 @@ import {
4
4
  internalMutation,
5
5
  internalQuery,
6
6
  } from "./_generated/server.js";
7
- import { internal } from "./_generated/api.js";
8
7
  import { v } from "convex/values";
9
8
 
10
9
  /** Upsert knowledge chunks by topic + chunkKey. Only updates if content changed. */
@@ -47,35 +46,14 @@ export const seedKnowledgeChunks = mutation({
47
46
  title_Deutsch: chunk.title_Deutsch,
48
47
  content_English: chunk.content_English,
49
48
  content_Deutsch: chunk.content_Deutsch,
50
- // Bump updatedAt — scheduler will detect embeddedAt < updatedAt and re-embed
51
49
  updatedAt: Date.now(),
52
50
  });
53
- // Schedule EN embedding via mutation→mutation→action chain.
54
- // 10s delay lets vector indexes finish bootstrapping after a fresh deploy.
55
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.scheduleEmbedChunk, {
56
- chunkId: existing._id,
57
- language: "en",
58
- delayMs: 10_000,
59
- });
60
51
  updated++;
61
52
  } else {
62
- // Content unchanged — but schedule embedding if vectors are missing
63
- const needsEmbed =
64
- !existing.embedding_en ||
65
- !existing.embedding_de ||
66
- !existing.embeddedAt_en ||
67
- !existing.embeddedAt_de;
68
- if (needsEmbed) {
69
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.scheduleEmbedChunk, {
70
- chunkId: existing._id,
71
- language: "en",
72
- delayMs: 10_000,
73
- });
74
- }
75
53
  skipped++;
76
54
  }
77
55
  } else {
78
- const id = await ctx.db.insert("knowledgeChunks", {
56
+ await ctx.db.insert("knowledgeChunks", {
79
57
  topic: chunk.topic,
80
58
  chunkKey: chunk.chunkKey,
81
59
  title_English: chunk.title_English,
@@ -84,13 +62,6 @@ export const seedKnowledgeChunks = mutation({
84
62
  content_Deutsch: chunk.content_Deutsch,
85
63
  updatedAt: Date.now(),
86
64
  });
87
- // Schedule EN embedding via mutation→mutation→action chain.
88
- // 10s delay lets vector indexes finish bootstrapping after a fresh deploy.
89
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.scheduleEmbedChunk, {
90
- chunkId: id,
91
- language: "en",
92
- delayMs: 10_000,
93
- });
94
65
  inserted++;
95
66
  }
96
67
  }
@@ -1,4 +1,4 @@
1
- import { internalAction, internalMutation, action, mutation } from "./_generated/server.js";
1
+ import { internalAction, action } from "./_generated/server.js";
2
2
  import { internal } from "./_generated/api.js";
3
3
  import { v } from "convex/values";
4
4
 
@@ -42,43 +42,24 @@ async function getEmbedding(text: string, apiToken: string): Promise<number[]> {
42
42
  }
43
43
  }
44
44
 
45
- /**
46
- * Thin mutation that schedules an embedChunk action.
47
- * Mutations can schedule actions; other mutations cannot call actions directly.
48
- */
49
- export const scheduleEmbedChunk = internalMutation({
50
- args: {
51
- chunkId: v.id("knowledgeChunks"),
52
- language: v.union(v.literal("en"), v.literal("de")),
53
- delayMs: v.optional(v.number()),
54
- },
55
- handler: async (ctx, { chunkId, language, delayMs = 10_000 }) => {
56
- await ctx.scheduler.runAfter(delayMs, internal.knowledgeSearch.embedChunk, {
57
- chunkId,
58
- language,
59
- attempt: 0,
60
- });
61
- },
62
- });
63
45
 
64
46
  const EMBED_RETRY_DELAY_MS = 30_000; // retry after 30s on transient failure
65
47
  const EMBED_MAX_RETRIES = 5;
66
48
 
67
49
  /**
68
50
  * Embed a single chunk for a single language.
69
- * Called by the scheduler after a chunk is seeded or updated.
70
- * Retries on failure with a delay. Chains to the other language when done.
51
+ * apiToken is passed explicitly components do not inherit parent app env vars.
52
+ * Exposed as a public action so the parent app can schedule it via its own ctx.scheduler.
71
53
  */
72
- export const embedChunk = internalAction({
54
+ export const embedChunk = action({
73
55
  args: {
74
56
  chunkId: v.id("knowledgeChunks"),
75
57
  language: v.union(v.literal("en"), v.literal("de")),
76
- attempt: v.optional(v.number()),
58
+ apiToken: v.string(),
77
59
  },
78
- handler: async (ctx, { chunkId, language, attempt = 0 }) => {
79
- const apiToken = (globalThis as any).process?.env?.IONOS_API_TOKEN as string | undefined;
60
+ handler: async (ctx, { chunkId, language, apiToken }) => {
80
61
  if (!apiToken) {
81
- console.error("[embedChunk] IONOS_API_TOKEN not set — cannot embed");
62
+ console.error("[embedChunk] apiToken is empty — cannot embed");
82
63
  return;
83
64
  }
84
65
 
@@ -102,14 +83,6 @@ export const embedChunk = internalAction({
102
83
  const otherStale = language === "en" ? isStaleDe : isStaleEn;
103
84
 
104
85
  if (!isStale) {
105
- // Already up to date — chain to other language if needed
106
- if (otherStale) {
107
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
108
- chunkId,
109
- language: otherLanguage,
110
- attempt: 0,
111
- });
112
- }
113
86
  return;
114
87
  }
115
88
 
@@ -121,83 +94,36 @@ export const embedChunk = internalAction({
121
94
  return;
122
95
  }
123
96
 
124
- try {
125
- const embedding = await getEmbedding(`${title}\n\n${content}`, apiToken);
97
+ const embedding = await getEmbedding(`${title}\n\n${content}`, apiToken);
126
98
 
127
- if (language === "en") {
128
- await ctx.runMutation(internal.knowledge.updateEmbeddingEn, { chunkId, embedding });
129
- } else {
130
- await ctx.runMutation(internal.knowledge.updateEmbeddingDe, { chunkId, embedding });
131
- }
132
-
133
- console.log(`[embedChunk] ✓ ${chunk.chunkKey} (${language})`);
134
-
135
- // Chain to the other language if also stale
136
- if (otherStale) {
137
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
138
- chunkId,
139
- language: otherLanguage,
140
- attempt: 0,
141
- });
142
- }
143
- } catch (e: any) {
144
- console.error(`[embedChunk] failed ${chunk.chunkKey} (${language}) attempt ${attempt}: ${e.message}`);
145
- if (attempt < EMBED_MAX_RETRIES) {
146
- // Exponential backoff: 30s, 60s, 120s, 240s, 480s
147
- const delay = EMBED_RETRY_DELAY_MS * Math.pow(2, attempt);
148
- console.log(`[embedChunk] retrying in ${delay / 1000}s (attempt ${attempt + 1}/${EMBED_MAX_RETRIES})`);
149
- await ctx.scheduler.runAfter(delay, internal.knowledgeSearch.embedChunk, {
150
- chunkId,
151
- language,
152
- attempt: attempt + 1,
153
- });
154
- } else {
155
- console.error(`[embedChunk] giving up on ${chunk.chunkKey} (${language}) after ${EMBED_MAX_RETRIES} attempts`);
156
- }
99
+ if (language === "en") {
100
+ await ctx.runMutation(internal.knowledge.updateEmbeddingEn, { chunkId, embedding });
101
+ } else {
102
+ await ctx.runMutation(internal.knowledge.updateEmbeddingDe, { chunkId, embedding });
157
103
  }
104
+
105
+ console.log(`[embedChunk] ✓ ${chunk.chunkKey} (${language})`);
158
106
  },
159
107
  });
160
108
 
161
109
  /**
162
- * Schedule embedding jobs for all chunks that are stale
163
- * (updatedAt > embeddedAt_en or embeddedAt_de).
164
- * Called automatically after seedKnowledgeChunks, or can be triggered manually.
110
+ * Returns all chunks that need (re-)embedding (updatedAt > embeddedAt_en or embeddedAt_de).
111
+ * The parent app uses this list to schedule individual embedChunk calls via its own scheduler.
165
112
  */
166
- export const scheduleStaleEmbeddings = internalAction({
113
+ export const listStaleChunks = action({
167
114
  args: {},
168
- handler: async (ctx) => {
115
+ handler: async (ctx): Promise<{ id: string; language: "en" | "de" }[]> => {
169
116
  const all: any[] = await ctx.runQuery(internal.knowledge.listAllChunks, {});
170
-
171
- let scheduled = 0;
117
+ const stale: { id: string; language: "en" | "de" }[] = [];
172
118
  for (const chunk of all) {
173
- const staleEn =
174
- !chunk.embedding_en ||
175
- !chunk.embeddedAt_en ||
176
- chunk.embeddedAt_en < chunk.updatedAt;
177
- const staleDe =
178
- !chunk.embedding_de ||
179
- !chunk.embeddedAt_de ||
180
- chunk.embeddedAt_de < chunk.updatedAt;
181
-
182
- if (staleEn) {
183
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
184
- chunkId: chunk._id,
185
- language: "en",
186
- attempt: 0,
187
- });
188
- scheduled++;
189
- } else if (staleDe) {
190
- await ctx.scheduler.runAfter(0, internal.knowledgeSearch.embedChunk, {
191
- chunkId: chunk._id,
192
- language: "de",
193
- attempt: 0,
194
- });
195
- scheduled++;
119
+ if (!chunk.embedding_en || !chunk.embeddedAt_en || chunk.embeddedAt_en < chunk.updatedAt) {
120
+ stale.push({ id: chunk._id as string, language: "en" });
121
+ }
122
+ if (!chunk.embedding_de || !chunk.embeddedAt_de || chunk.embeddedAt_de < chunk.updatedAt) {
123
+ stale.push({ id: chunk._id as string, language: "de" });
196
124
  }
197
125
  }
198
-
199
- console.log(`[scheduleStaleEmbeddings] scheduled ${scheduled} jobs for ${all.length} chunks`);
200
- return { total: all.length, scheduled };
126
+ return stale;
201
127
  },
202
128
  });
203
129