@indigoai-us/cq 0.0.1

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 (177) hide show
  1. package/dist/__tests__/integration.test.d.ts +8 -0
  2. package/dist/__tests__/integration.test.d.ts.map +1 -0
  3. package/dist/__tests__/integration.test.js +233 -0
  4. package/dist/__tests__/integration.test.js.map +1 -0
  5. package/dist/budget/__tests__/budget.test.d.ts +2 -0
  6. package/dist/budget/__tests__/budget.test.d.ts.map +1 -0
  7. package/dist/budget/__tests__/budget.test.js +238 -0
  8. package/dist/budget/__tests__/budget.test.js.map +1 -0
  9. package/dist/budget/__tests__/token-tracker.test.d.ts +2 -0
  10. package/dist/budget/__tests__/token-tracker.test.d.ts.map +1 -0
  11. package/dist/budget/__tests__/token-tracker.test.js +292 -0
  12. package/dist/budget/__tests__/token-tracker.test.js.map +1 -0
  13. package/dist/budget/index.d.ts +38 -0
  14. package/dist/budget/index.d.ts.map +1 -0
  15. package/dist/budget/index.js +192 -0
  16. package/dist/budget/index.js.map +1 -0
  17. package/dist/budget/token-tracker.d.ts +62 -0
  18. package/dist/budget/token-tracker.d.ts.map +1 -0
  19. package/dist/budget/token-tracker.js +152 -0
  20. package/dist/budget/token-tracker.js.map +1 -0
  21. package/dist/budget/types.d.ts +41 -0
  22. package/dist/budget/types.d.ts.map +1 -0
  23. package/dist/budget/types.js +5 -0
  24. package/dist/budget/types.js.map +1 -0
  25. package/dist/confidence/__tests__/confidence.test.d.ts +2 -0
  26. package/dist/confidence/__tests__/confidence.test.d.ts.map +1 -0
  27. package/dist/confidence/__tests__/confidence.test.js +336 -0
  28. package/dist/confidence/__tests__/confidence.test.js.map +1 -0
  29. package/dist/confidence/erosion.d.ts +33 -0
  30. package/dist/confidence/erosion.d.ts.map +1 -0
  31. package/dist/confidence/erosion.js +42 -0
  32. package/dist/confidence/erosion.js.map +1 -0
  33. package/dist/confidence/index.d.ts +42 -0
  34. package/dist/confidence/index.d.ts.map +1 -0
  35. package/dist/confidence/index.js +168 -0
  36. package/dist/confidence/index.js.map +1 -0
  37. package/dist/confidence/types.d.ts +29 -0
  38. package/dist/confidence/types.d.ts.map +1 -0
  39. package/dist/confidence/types.js +5 -0
  40. package/dist/confidence/types.js.map +1 -0
  41. package/dist/curiosity/__tests__/curiosity.test.d.ts +2 -0
  42. package/dist/curiosity/__tests__/curiosity.test.d.ts.map +1 -0
  43. package/dist/curiosity/__tests__/curiosity.test.js +280 -0
  44. package/dist/curiosity/__tests__/curiosity.test.js.map +1 -0
  45. package/dist/curiosity/dedup.d.ts +29 -0
  46. package/dist/curiosity/dedup.d.ts.map +1 -0
  47. package/dist/curiosity/dedup.js +64 -0
  48. package/dist/curiosity/dedup.js.map +1 -0
  49. package/dist/curiosity/index.d.ts +56 -0
  50. package/dist/curiosity/index.d.ts.map +1 -0
  51. package/dist/curiosity/index.js +163 -0
  52. package/dist/curiosity/index.js.map +1 -0
  53. package/dist/curiosity/types.d.ts +29 -0
  54. package/dist/curiosity/types.d.ts.map +1 -0
  55. package/dist/curiosity/types.js +5 -0
  56. package/dist/curiosity/types.js.map +1 -0
  57. package/dist/index.d.ts +25 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +16 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/index.test.d.ts +2 -0
  62. package/dist/index.test.d.ts.map +1 -0
  63. package/dist/index.test.js +7 -0
  64. package/dist/index.test.js.map +1 -0
  65. package/dist/init.d.ts +17 -0
  66. package/dist/init.d.ts.map +1 -0
  67. package/dist/init.js +153 -0
  68. package/dist/init.js.map +1 -0
  69. package/dist/knowledge-tree/__tests__/knowledge-tree.test.d.ts +2 -0
  70. package/dist/knowledge-tree/__tests__/knowledge-tree.test.d.ts.map +1 -0
  71. package/dist/knowledge-tree/__tests__/knowledge-tree.test.js +317 -0
  72. package/dist/knowledge-tree/__tests__/knowledge-tree.test.js.map +1 -0
  73. package/dist/knowledge-tree/format.d.ts +17 -0
  74. package/dist/knowledge-tree/format.d.ts.map +1 -0
  75. package/dist/knowledge-tree/format.js +48 -0
  76. package/dist/knowledge-tree/format.js.map +1 -0
  77. package/dist/knowledge-tree/index.d.ts +33 -0
  78. package/dist/knowledge-tree/index.d.ts.map +1 -0
  79. package/dist/knowledge-tree/index.js +182 -0
  80. package/dist/knowledge-tree/index.js.map +1 -0
  81. package/dist/knowledge-tree/types.d.ts +37 -0
  82. package/dist/knowledge-tree/types.d.ts.map +1 -0
  83. package/dist/knowledge-tree/types.js +5 -0
  84. package/dist/knowledge-tree/types.js.map +1 -0
  85. package/dist/metadata/__tests__/metadata.test.d.ts +2 -0
  86. package/dist/metadata/__tests__/metadata.test.d.ts.map +1 -0
  87. package/dist/metadata/__tests__/metadata.test.js +196 -0
  88. package/dist/metadata/__tests__/metadata.test.js.map +1 -0
  89. package/dist/metadata/__tests__/search.test.d.ts +2 -0
  90. package/dist/metadata/__tests__/search.test.d.ts.map +1 -0
  91. package/dist/metadata/__tests__/search.test.js +227 -0
  92. package/dist/metadata/__tests__/search.test.js.map +1 -0
  93. package/dist/metadata/index.d.ts +29 -0
  94. package/dist/metadata/index.d.ts.map +1 -0
  95. package/dist/metadata/index.js +108 -0
  96. package/dist/metadata/index.js.map +1 -0
  97. package/dist/metadata/schema.d.ts +8 -0
  98. package/dist/metadata/schema.d.ts.map +1 -0
  99. package/dist/metadata/schema.js +31 -0
  100. package/dist/metadata/schema.js.map +1 -0
  101. package/dist/metadata/search.d.ts +27 -0
  102. package/dist/metadata/search.d.ts.map +1 -0
  103. package/dist/metadata/search.js +57 -0
  104. package/dist/metadata/search.js.map +1 -0
  105. package/dist/metadata/types.d.ts +17 -0
  106. package/dist/metadata/types.d.ts.map +1 -0
  107. package/dist/metadata/types.js +5 -0
  108. package/dist/metadata/types.js.map +1 -0
  109. package/dist/orchestrator/__tests__/orchestrator.test.d.ts +2 -0
  110. package/dist/orchestrator/__tests__/orchestrator.test.d.ts.map +1 -0
  111. package/dist/orchestrator/__tests__/orchestrator.test.js +354 -0
  112. package/dist/orchestrator/__tests__/orchestrator.test.js.map +1 -0
  113. package/dist/orchestrator/index.d.ts +23 -0
  114. package/dist/orchestrator/index.d.ts.map +1 -0
  115. package/dist/orchestrator/index.js +302 -0
  116. package/dist/orchestrator/index.js.map +1 -0
  117. package/dist/orchestrator/scheduler.d.ts +32 -0
  118. package/dist/orchestrator/scheduler.d.ts.map +1 -0
  119. package/dist/orchestrator/scheduler.js +102 -0
  120. package/dist/orchestrator/scheduler.js.map +1 -0
  121. package/dist/orchestrator/types.d.ts +90 -0
  122. package/dist/orchestrator/types.d.ts.map +1 -0
  123. package/dist/orchestrator/types.js +5 -0
  124. package/dist/orchestrator/types.js.map +1 -0
  125. package/dist/pipeline/__tests__/pipeline.test.d.ts +2 -0
  126. package/dist/pipeline/__tests__/pipeline.test.d.ts.map +1 -0
  127. package/dist/pipeline/__tests__/pipeline.test.js +320 -0
  128. package/dist/pipeline/__tests__/pipeline.test.js.map +1 -0
  129. package/dist/pipeline/index.d.ts +23 -0
  130. package/dist/pipeline/index.d.ts.map +1 -0
  131. package/dist/pipeline/index.js +212 -0
  132. package/dist/pipeline/index.js.map +1 -0
  133. package/dist/pipeline/types.d.ts +41 -0
  134. package/dist/pipeline/types.d.ts.map +1 -0
  135. package/dist/pipeline/types.js +5 -0
  136. package/dist/pipeline/types.js.map +1 -0
  137. package/dist/providers/__tests__/providers.test.d.ts +2 -0
  138. package/dist/providers/__tests__/providers.test.d.ts.map +1 -0
  139. package/dist/providers/__tests__/providers.test.js +195 -0
  140. package/dist/providers/__tests__/providers.test.js.map +1 -0
  141. package/dist/providers/claude-model.d.ts +17 -0
  142. package/dist/providers/claude-model.d.ts.map +1 -0
  143. package/dist/providers/claude-model.js +119 -0
  144. package/dist/providers/claude-model.js.map +1 -0
  145. package/dist/providers/index.d.ts +22 -0
  146. package/dist/providers/index.d.ts.map +1 -0
  147. package/dist/providers/index.js +38 -0
  148. package/dist/providers/index.js.map +1 -0
  149. package/dist/providers/openai-search.d.ts +14 -0
  150. package/dist/providers/openai-search.d.ts.map +1 -0
  151. package/dist/providers/openai-search.js +97 -0
  152. package/dist/providers/openai-search.js.map +1 -0
  153. package/dist/providers/types.d.ts +42 -0
  154. package/dist/providers/types.d.ts.map +1 -0
  155. package/dist/providers/types.js +5 -0
  156. package/dist/providers/types.js.map +1 -0
  157. package/dist/types.d.ts +122 -0
  158. package/dist/types.d.ts.map +1 -0
  159. package/dist/types.js +5 -0
  160. package/dist/types.js.map +1 -0
  161. package/dist/vetter/__tests__/vetter.test.d.ts +2 -0
  162. package/dist/vetter/__tests__/vetter.test.d.ts.map +1 -0
  163. package/dist/vetter/__tests__/vetter.test.js +224 -0
  164. package/dist/vetter/__tests__/vetter.test.js.map +1 -0
  165. package/dist/vetter/index.d.ts +23 -0
  166. package/dist/vetter/index.d.ts.map +1 -0
  167. package/dist/vetter/index.js +177 -0
  168. package/dist/vetter/index.js.map +1 -0
  169. package/dist/vetter/resource-tracker.d.ts +49 -0
  170. package/dist/vetter/resource-tracker.d.ts.map +1 -0
  171. package/dist/vetter/resource-tracker.js +183 -0
  172. package/dist/vetter/resource-tracker.js.map +1 -0
  173. package/dist/vetter/types.d.ts +44 -0
  174. package/dist/vetter/types.d.ts.map +1 -0
  175. package/dist/vetter/types.js +5 -0
  176. package/dist/vetter/types.js.map +1 -0
  177. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.test.js","sourceRoot":"","sources":["../../../src/orchestrator/__tests__/orchestrator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Research Orchestrator — two-phase execution engine.
3
+ *
4
+ * Phase 1 (Curiosity): processes pending curiosity queue items via runPipeline.
5
+ * Phase 2 (Proactive): refreshes low-confidence entries and fills thin categories.
6
+ *
7
+ * Tracks run history in the research_job_log table.
8
+ */
9
+ import type { OrchestratorOptions, OrchestratorResult, RunLogEntry } from "./types.js";
10
+ export type { OrchestratorOptions, OrchestratorResult, CuriosityPhaseResult, ProactivePhaseResult, RunLogEntry, SchedulerConfig, } from "./types.js";
11
+ /** Create the research_job_log table if it doesn't exist. */
12
+ export declare function initJobLog(db: import("better-sqlite3").Database): void;
13
+ /** Return recent orchestrator runs, most recent first. */
14
+ export declare function getRecentRuns(db: import("better-sqlite3").Database, limit?: number): RunLogEntry[];
15
+ /**
16
+ * Run the full two-phase research orchestrator.
17
+ *
18
+ * Phase 1 processes pending curiosity items by priority.
19
+ * Phase 2 refreshes low-confidence entries and fills thin categories
20
+ * (only runs if remaining budget >= proactiveMinBudgetUsd).
21
+ */
22
+ export declare function runOrchestrator(options: OrchestratorOptions): Promise<OrchestratorResult>;
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAGlB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AAwBpB,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,gBAAgB,EAAE,QAAQ,GAAG,IAAI,CAEtE;AAMD,0DAA0D;AAC1D,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,gBAAgB,EAAE,QAAQ,EACrC,KAAK,SAAK,GACT,WAAW,EAAE,CAOf;AAgOD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAoE7B"}
@@ -0,0 +1,302 @@
1
+ /**
2
+ * Research Orchestrator — two-phase execution engine.
3
+ *
4
+ * Phase 1 (Curiosity): processes pending curiosity queue items via runPipeline.
5
+ * Phase 2 (Proactive): refreshes low-confidence entries and fills thin categories.
6
+ *
7
+ * Tracks run history in the research_job_log table.
8
+ */
9
+ import { fetchPending, addCuriosity } from "../curiosity/index.js";
10
+ import { runPipeline } from "../pipeline/index.js";
11
+ import { checkBudget, charge as budgetCharge } from "../budget/index.js";
12
+ import { getRefreshCandidates } from "../confidence/index.js";
13
+ import { listCategories } from "../knowledge-tree/index.js";
14
+ // ---------------------------------------------------------------------------
15
+ // Schema
16
+ // ---------------------------------------------------------------------------
17
+ const CREATE_JOB_LOG = `
18
+ CREATE TABLE IF NOT EXISTS research_job_log (
19
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
20
+ run_date TEXT NOT NULL,
21
+ status TEXT NOT NULL,
22
+ phase1_processed INTEGER NOT NULL DEFAULT 0,
23
+ phase2_processed INTEGER NOT NULL DEFAULT 0,
24
+ total_cost_usd REAL NOT NULL DEFAULT 0,
25
+ duration_ms INTEGER NOT NULL DEFAULT 0,
26
+ error TEXT,
27
+ created_at TEXT NOT NULL
28
+ );
29
+ `;
30
+ // ---------------------------------------------------------------------------
31
+ // Initialisation
32
+ // ---------------------------------------------------------------------------
33
+ /** Create the research_job_log table if it doesn't exist. */
34
+ export function initJobLog(db) {
35
+ db.exec(CREATE_JOB_LOG);
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // Run history
39
+ // ---------------------------------------------------------------------------
40
+ /** Return recent orchestrator runs, most recent first. */
41
+ export function getRecentRuns(db, limit = 10) {
42
+ initJobLog(db);
43
+ return db
44
+ .prepare("SELECT * FROM research_job_log ORDER BY created_at DESC LIMIT ?")
45
+ .all(limit);
46
+ }
47
+ /** Insert a run log entry. */
48
+ function logRun(db, result) {
49
+ initJobLog(db);
50
+ const phase2Processed = result.phases.proactive
51
+ ? result.phases.proactive.refreshed + result.phases.proactive.thinCategoryFilled
52
+ : 0;
53
+ db.prepare(`
54
+ INSERT INTO research_job_log (run_date, status, phase1_processed, phase2_processed, total_cost_usd, duration_ms, error, created_at)
55
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
56
+ `).run(result.runDate, result.status, result.phases.curiosity.processed, phase2Processed, result.totalBudgetUsedUsd, result.totalDurationMs, result.error ?? null, new Date().toISOString());
57
+ }
58
+ // ---------------------------------------------------------------------------
59
+ // Phase 1: Curiosity
60
+ // ---------------------------------------------------------------------------
61
+ async function runCuriosityPhase(options) {
62
+ const maxItems = options.maxCuriosityItems ?? 10;
63
+ const items = fetchPending(maxItems);
64
+ const phase = {
65
+ processed: 0,
66
+ succeeded: 0,
67
+ failed: 0,
68
+ skipped: 0,
69
+ costUsd: 0,
70
+ };
71
+ for (const item of items) {
72
+ // Check budget before each item
73
+ const budget = checkBudget();
74
+ if (!budget.allowed) {
75
+ phase.skipped += items.length - phase.processed;
76
+ break;
77
+ }
78
+ let itemCost = 0;
79
+ const chargeTracker = (type, costUsd) => {
80
+ itemCost += costUsd;
81
+ budgetCharge(type, costUsd);
82
+ };
83
+ let result;
84
+ try {
85
+ result = await runPipeline(item.id, item.question, {
86
+ dataDir: options.dataDir,
87
+ searchProvider: options.searchProvider,
88
+ modelProvider: options.modelProvider,
89
+ checkBudget: () => {
90
+ const b = checkBudget();
91
+ return { allowed: b.allowed, remainingUsd: b.remainingUsd };
92
+ },
93
+ charge: chargeTracker,
94
+ });
95
+ }
96
+ catch {
97
+ phase.processed++;
98
+ phase.failed++;
99
+ continue;
100
+ }
101
+ phase.processed++;
102
+ phase.costUsd += itemCost;
103
+ if (result.success) {
104
+ if (result.action === "skipped_duplicate" || result.action === "skipped_budget") {
105
+ phase.skipped++;
106
+ }
107
+ else {
108
+ phase.succeeded++;
109
+ }
110
+ }
111
+ else {
112
+ if (result.action === "skipped_budget") {
113
+ phase.skipped++;
114
+ // Budget exhausted — skip remaining
115
+ phase.skipped += items.length - phase.processed;
116
+ break;
117
+ }
118
+ phase.failed++;
119
+ }
120
+ }
121
+ return phase;
122
+ }
123
+ // ---------------------------------------------------------------------------
124
+ // Phase 2: Proactive
125
+ // ---------------------------------------------------------------------------
126
+ async function runProactivePhase(options) {
127
+ const maxRefresh = options.maxRefreshItems ?? 5;
128
+ const thinThreshold = options.thinCategoryThreshold ?? 3;
129
+ const maxThinItems = options.maxThinCategoryItems ?? 3;
130
+ const phase = {
131
+ refreshed: 0,
132
+ thinCategoryFilled: 0,
133
+ costUsd: 0,
134
+ };
135
+ // --- Refresh low-confidence entries ---
136
+ const candidates = getRefreshCandidates(maxRefresh);
137
+ for (const candidate of candidates) {
138
+ const budget = checkBudget();
139
+ if (!budget.allowed)
140
+ break;
141
+ // Create a curiosity item to re-research this topic
142
+ const question = `Refresh: ${candidate.title} (current confidence: ${candidate.computed_confidence.toFixed(2)})`;
143
+ const curiosityItem = addCuriosity({
144
+ question,
145
+ context: `Refresh of ${candidate.category}/${candidate.slug} — confidence dropped to ${candidate.computed_confidence.toFixed(2)}`,
146
+ source: "system",
147
+ priority: 7,
148
+ });
149
+ if (!curiosityItem)
150
+ continue; // Dedup hit
151
+ let itemCost = 0;
152
+ const chargeTracker = (type, costUsd) => {
153
+ itemCost += costUsd;
154
+ budgetCharge(type, costUsd);
155
+ };
156
+ try {
157
+ const result = await runPipeline(curiosityItem.id, curiosityItem.question, {
158
+ dataDir: options.dataDir,
159
+ searchProvider: options.searchProvider,
160
+ modelProvider: options.modelProvider,
161
+ checkBudget: () => {
162
+ const b = checkBudget();
163
+ return { allowed: b.allowed, remainingUsd: b.remainingUsd };
164
+ },
165
+ charge: chargeTracker,
166
+ });
167
+ if (result.success) {
168
+ phase.refreshed++;
169
+ }
170
+ phase.costUsd += itemCost;
171
+ }
172
+ catch {
173
+ // Non-fatal — continue with next candidate
174
+ }
175
+ }
176
+ // --- Fill thin categories ---
177
+ let categories;
178
+ try {
179
+ categories = await listCategories(options.dataDir);
180
+ }
181
+ catch {
182
+ return phase;
183
+ }
184
+ const thinCategories = categories.filter((c) => c.entryCount < thinThreshold);
185
+ let thinFilled = 0;
186
+ for (const cat of thinCategories) {
187
+ if (thinFilled >= maxThinItems)
188
+ break;
189
+ const budget = checkBudget();
190
+ if (!budget.allowed)
191
+ break;
192
+ const question = `Expand knowledge about "${cat.name}" — currently only ${cat.entryCount} entries`;
193
+ const curiosityItem = addCuriosity({
194
+ question,
195
+ context: `Thin category fill: ${cat.name} has ${cat.entryCount} entries (threshold: ${thinThreshold})`,
196
+ source: "system",
197
+ priority: 4,
198
+ });
199
+ if (!curiosityItem)
200
+ continue;
201
+ let itemCost = 0;
202
+ const chargeTracker = (type, costUsd) => {
203
+ itemCost += costUsd;
204
+ budgetCharge(type, costUsd);
205
+ };
206
+ try {
207
+ const result = await runPipeline(curiosityItem.id, curiosityItem.question, {
208
+ dataDir: options.dataDir,
209
+ searchProvider: options.searchProvider,
210
+ modelProvider: options.modelProvider,
211
+ checkBudget: () => {
212
+ const b = checkBudget();
213
+ return { allowed: b.allowed, remainingUsd: b.remainingUsd };
214
+ },
215
+ charge: chargeTracker,
216
+ });
217
+ if (result.success) {
218
+ phase.thinCategoryFilled++;
219
+ thinFilled++;
220
+ }
221
+ phase.costUsd += itemCost;
222
+ }
223
+ catch {
224
+ // Non-fatal
225
+ }
226
+ }
227
+ return phase;
228
+ }
229
+ // ---------------------------------------------------------------------------
230
+ // Main orchestrator
231
+ // ---------------------------------------------------------------------------
232
+ /**
233
+ * Run the full two-phase research orchestrator.
234
+ *
235
+ * Phase 1 processes pending curiosity items by priority.
236
+ * Phase 2 refreshes low-confidence entries and fills thin categories
237
+ * (only runs if remaining budget >= proactiveMinBudgetUsd).
238
+ */
239
+ export async function runOrchestrator(options) {
240
+ const startTime = Date.now();
241
+ const runDate = new Date().toISOString();
242
+ const proactiveMinBudget = options.proactiveMinBudgetUsd ?? 0.10;
243
+ // Ensure job log table exists
244
+ initJobLog(options.db);
245
+ let curiosityPhase;
246
+ let proactivePhase = null;
247
+ let status = "completed";
248
+ let error;
249
+ // --- Phase 1: Curiosity ---
250
+ try {
251
+ curiosityPhase = await runCuriosityPhase(options);
252
+ }
253
+ catch (err) {
254
+ const result = {
255
+ runDate,
256
+ status: "failed",
257
+ phases: {
258
+ curiosity: { processed: 0, succeeded: 0, failed: 0, skipped: 0, costUsd: 0 },
259
+ proactive: null,
260
+ },
261
+ totalDurationMs: Date.now() - startTime,
262
+ totalBudgetUsedUsd: 0,
263
+ error: `Phase 1 failed: ${err instanceof Error ? err.message : String(err)}`,
264
+ };
265
+ logRun(options.db, result);
266
+ return result;
267
+ }
268
+ // --- Phase 2: Proactive (if budget allows) ---
269
+ const budgetStatus = checkBudget();
270
+ if (budgetStatus.allowed && budgetStatus.remainingUsd >= proactiveMinBudget) {
271
+ try {
272
+ proactivePhase = await runProactivePhase(options);
273
+ }
274
+ catch (err) {
275
+ // Phase 2 failure is non-fatal — report as partial
276
+ status = "partial";
277
+ error = `Phase 2 failed: ${err instanceof Error ? err.message : String(err)}`;
278
+ }
279
+ }
280
+ // --- Determine overall status ---
281
+ if (curiosityPhase.failed > 0 && curiosityPhase.succeeded === 0) {
282
+ status = "failed";
283
+ }
284
+ else if (curiosityPhase.failed > 0) {
285
+ status = "partial";
286
+ }
287
+ const totalCost = curiosityPhase.costUsd + (proactivePhase?.costUsd ?? 0);
288
+ const result = {
289
+ runDate,
290
+ status,
291
+ phases: {
292
+ curiosity: curiosityPhase,
293
+ proactive: proactivePhase,
294
+ },
295
+ totalDurationMs: Date.now() - startTime,
296
+ totalBudgetUsedUsd: totalCost,
297
+ error,
298
+ };
299
+ logRun(options.db, result);
300
+ return result;
301
+ }
302
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Research Scheduler — cron-based automatic orchestrator execution.
3
+ *
4
+ * Uses a simple 3-field cron pattern (minute hour dayOfMonth) with
5
+ * setInterval to check every 60 seconds. No external cron library needed.
6
+ */
7
+ import type { SchedulerConfig } from "./types.js";
8
+ /**
9
+ * Parse and match a simplified cron expression against a Date.
10
+ *
11
+ * Format: "minute hour dayOfMonth" (3 fields, space-separated).
12
+ * Each field supports: exact number, "*" (any), comma-separated values.
13
+ *
14
+ * Examples:
15
+ * "0 3 *" → 3:00 AM every day
16
+ * "30 * *" → every hour at :30
17
+ * "0 6,18 *" → 6 AM and 6 PM daily
18
+ * "0 0 1" → midnight on the 1st of each month
19
+ */
20
+ export declare function matchesCron(cron: string, date: Date): boolean;
21
+ /**
22
+ * Start the scheduler. Checks every 60 seconds if the current time
23
+ * matches the cron expression, and if so, runs the orchestrator.
24
+ *
25
+ * Prevents double-runs within the same minute.
26
+ */
27
+ export declare function startScheduler(config: SchedulerConfig): void;
28
+ /** Stop the scheduler. */
29
+ export declare function stopScheduler(): void;
30
+ /** Check whether the scheduler is currently running. */
31
+ export declare function isSchedulerRunning(): boolean;
32
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,YAAY,CAAC;AActE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAgB7D;AAcD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAkC5D;AAED,0BAA0B;AAC1B,wBAAgB,aAAa,IAAI,IAAI,CAOpC;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Research Scheduler — cron-based automatic orchestrator execution.
3
+ *
4
+ * Uses a simple 3-field cron pattern (minute hour dayOfMonth) with
5
+ * setInterval to check every 60 seconds. No external cron library needed.
6
+ */
7
+ import { runOrchestrator } from "./index.js";
8
+ // ---------------------------------------------------------------------------
9
+ // State
10
+ // ---------------------------------------------------------------------------
11
+ let intervalId = null;
12
+ let lastRunMinute = null;
13
+ let running = false;
14
+ // ---------------------------------------------------------------------------
15
+ // Cron matching
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Parse and match a simplified cron expression against a Date.
19
+ *
20
+ * Format: "minute hour dayOfMonth" (3 fields, space-separated).
21
+ * Each field supports: exact number, "*" (any), comma-separated values.
22
+ *
23
+ * Examples:
24
+ * "0 3 *" → 3:00 AM every day
25
+ * "30 * *" → every hour at :30
26
+ * "0 6,18 *" → 6 AM and 6 PM daily
27
+ * "0 0 1" → midnight on the 1st of each month
28
+ */
29
+ export function matchesCron(cron, date) {
30
+ const parts = cron.trim().split(/\s+/);
31
+ if (parts.length !== 3) {
32
+ throw new Error(`Invalid cron expression "${cron}" — expected 3 fields (minute hour dayOfMonth)`);
33
+ }
34
+ const [minuteField, hourField, dayField] = parts;
35
+ const minute = date.getMinutes();
36
+ const hour = date.getHours();
37
+ const day = date.getDate();
38
+ return (matchesField(minuteField, minute) &&
39
+ matchesField(hourField, hour) &&
40
+ matchesField(dayField, day));
41
+ }
42
+ /** Check if a single cron field matches a value. Supports "*" and comma-separated numbers. */
43
+ function matchesField(field, value) {
44
+ if (field === "*")
45
+ return true;
46
+ const parts = field.split(",");
47
+ return parts.some((p) => parseInt(p, 10) === value);
48
+ }
49
+ // ---------------------------------------------------------------------------
50
+ // Scheduler
51
+ // ---------------------------------------------------------------------------
52
+ /**
53
+ * Start the scheduler. Checks every 60 seconds if the current time
54
+ * matches the cron expression, and if so, runs the orchestrator.
55
+ *
56
+ * Prevents double-runs within the same minute.
57
+ */
58
+ export function startScheduler(config) {
59
+ if (intervalId !== null) {
60
+ throw new Error("Scheduler is already running — call stopScheduler() first");
61
+ }
62
+ const cronExpr = config.cron ?? "0 3 *";
63
+ lastRunMinute = null;
64
+ running = false;
65
+ intervalId = setInterval(() => {
66
+ const now = new Date();
67
+ // Prevent double-runs within the same minute
68
+ const minuteKey = `${now.getFullYear()}-${now.getMonth()}-${now.getDate()}-${now.getHours()}-${now.getMinutes()}`;
69
+ if (minuteKey === lastRunMinute)
70
+ return;
71
+ if (!matchesCron(cronExpr, now))
72
+ return;
73
+ // Prevent overlapping runs
74
+ if (running)
75
+ return;
76
+ lastRunMinute = minuteKey;
77
+ running = true;
78
+ runOrchestrator(config.orchestratorOptions)
79
+ .then((result) => {
80
+ running = false;
81
+ config.onComplete?.(result);
82
+ })
83
+ .catch((err) => {
84
+ running = false;
85
+ config.onError?.(err instanceof Error ? err : new Error(String(err)));
86
+ });
87
+ }, 60_000);
88
+ }
89
+ /** Stop the scheduler. */
90
+ export function stopScheduler() {
91
+ if (intervalId !== null) {
92
+ clearInterval(intervalId);
93
+ intervalId = null;
94
+ }
95
+ running = false;
96
+ lastRunMinute = null;
97
+ }
98
+ /** Check whether the scheduler is currently running. */
99
+ export function isSchedulerRunning() {
100
+ return intervalId !== null;
101
+ }
102
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/orchestrator/scheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Orchestrator + Scheduler type definitions.
3
+ */
4
+ import type { SearchProvider, ModelProvider } from "../providers/types.js";
5
+ import type Database from "better-sqlite3";
6
+ /** Options for runOrchestrator. */
7
+ export interface OrchestratorOptions {
8
+ /** better-sqlite3 Database instance (already initialised). */
9
+ db: Database.Database;
10
+ /** Root directory for the knowledge tree. */
11
+ dataDir: string;
12
+ /** Search provider instance. */
13
+ searchProvider: SearchProvider;
14
+ /** Model provider instance. */
15
+ modelProvider: ModelProvider;
16
+ /** Maximum curiosity items to process in Phase 1. Default 10. */
17
+ maxCuriosityItems?: number;
18
+ /** Maximum refresh candidates to process in Phase 2. Default 5. */
19
+ maxRefreshItems?: number;
20
+ /** Minimum budget (USD) required to enter Phase 2. Default 0.10. */
21
+ proactiveMinBudgetUsd?: number;
22
+ /** Minimum entries a category must have to not be "thin". Default 3. */
23
+ thinCategoryThreshold?: number;
24
+ /** Maximum thin-category items to generate in Phase 2. Default 3. */
25
+ maxThinCategoryItems?: number;
26
+ }
27
+ /** Phase 1 (curiosity) result details. */
28
+ export interface CuriosityPhaseResult {
29
+ /** Number of items processed. */
30
+ processed: number;
31
+ /** Number of items that succeeded. */
32
+ succeeded: number;
33
+ /** Number of items that failed. */
34
+ failed: number;
35
+ /** Number of items skipped (budget, duplicate, etc.). */
36
+ skipped: number;
37
+ /** Total cost in USD for this phase. */
38
+ costUsd: number;
39
+ }
40
+ /** Phase 2 (proactive) result details. */
41
+ export interface ProactivePhaseResult {
42
+ /** Number of refresh candidates processed. */
43
+ refreshed: number;
44
+ /** Number of thin-category items generated and processed. */
45
+ thinCategoryFilled: number;
46
+ /** Total cost in USD for this phase. */
47
+ costUsd: number;
48
+ }
49
+ /** Result returned by runOrchestrator. */
50
+ export interface OrchestratorResult {
51
+ /** ISO 8601 date string of the run. */
52
+ runDate: string;
53
+ /** Overall status: "completed" | "partial" | "failed". */
54
+ status: "completed" | "partial" | "failed";
55
+ /** Phase results. */
56
+ phases: {
57
+ curiosity: CuriosityPhaseResult;
58
+ proactive: ProactivePhaseResult | null;
59
+ };
60
+ /** Total wall-clock duration in milliseconds. */
61
+ totalDurationMs: number;
62
+ /** Total budget used across both phases in USD. */
63
+ totalBudgetUsedUsd: number;
64
+ /** Error message if status is "failed". */
65
+ error?: string;
66
+ }
67
+ /** A row from the research_job_log table. */
68
+ export interface RunLogEntry {
69
+ id: number;
70
+ run_date: string;
71
+ status: string;
72
+ phase1_processed: number;
73
+ phase2_processed: number;
74
+ total_cost_usd: number;
75
+ duration_ms: number;
76
+ error: string | null;
77
+ created_at: string;
78
+ }
79
+ /** Configuration for the cron scheduler. */
80
+ export interface SchedulerConfig {
81
+ /** Cron expression: "minute hour dayOfMonth" (simplified 3-field). Default "0 3 *" (3 AM daily). */
82
+ cron?: string;
83
+ /** Orchestrator options passed to each run. */
84
+ orchestratorOptions: OrchestratorOptions;
85
+ /** Called when a scheduled run completes. */
86
+ onComplete?: (result: OrchestratorResult) => void;
87
+ /** Called when a scheduled run fails with an unhandled error. */
88
+ onError?: (error: Error) => void;
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAEtB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,cAAc,EAAE,cAAc,CAAC;IAE/B,+BAA+B;IAC/B,aAAa,EAAE,aAAa,CAAC;IAE7B,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,qEAAqE;IACrE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAMD,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,qBAAqB;IACrB,MAAM,EAAE;QACN,SAAS,EAAE,oBAAoB,CAAC;QAChC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;KACxC,CAAC;IACF,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,oGAAoG;IACpG,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+CAA+C;IAC/C,mBAAmB,EAAE,mBAAmB,CAAC;IAEzC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAElD,iEAAiE;IACjE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Orchestrator + Scheduler type definitions.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/orchestrator/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../../../src/pipeline/__tests__/pipeline.test.ts"],"names":[],"mappings":""}