@oka-core/reason 0.2.19 → 0.2.22

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/client.d.ts CHANGED
@@ -30,6 +30,11 @@ export interface ConsolidateResponse {
30
30
  input_tokens?: number;
31
31
  output_tokens?: number;
32
32
  }
33
+ export interface ConsolidateAsyncResponse {
34
+ run_id: string;
35
+ status: string;
36
+ poll_url: string;
37
+ }
33
38
  export interface ContextQueryOptions {
34
39
  file_patterns?: string;
35
40
  limit?: number;
@@ -301,14 +306,49 @@ export declare class OkaClient {
301
306
  */
302
307
  reportUsedLearnings(usedIds: string[]): void;
303
308
  /**
304
- * Trigger a consolidation run.
305
- * POST /api/reasoning/consolidate
309
+ * Trigger a consolidation run synchronously and wait for completion.
310
+ *
311
+ * POST /api/reasoning/consolidate — server runs the full pipeline
312
+ * (fetch events → LLM consolidation → persist) before responding.
313
+ * Useful for short runs / scripts. Not suitable for the MCP tool path:
314
+ * a typical run takes 30-60 s via OpenRouter and exceeds the MCP
315
+ * transport timeout. Use `triggerConsolidationAsync()` from MCP code.
306
316
  */
307
317
  triggerConsolidation(req: ConsolidateRequest): Promise<ConsolidateResponse>;
318
+ /**
319
+ * Trigger a consolidation run in the background (fire-and-poll).
320
+ *
321
+ * POST /api/reasoning/consolidate/async — server persists an initial
322
+ * `running` ConsolidationRun row, spawns the pipeline as a tokio
323
+ * task, and returns immediately with the run_id and a poll URL.
324
+ * Designed for MCP and any other client where a 30-60 s sync call
325
+ * exceeds transport timeouts.
326
+ *
327
+ * Callers can poll progress at GET /api/consolidation/runs/{run_id}
328
+ * or just observe the resulting learnings via the read tools.
329
+ */
330
+ triggerConsolidationAsync(req: ConsolidateRequest): Promise<ConsolidateAsyncResponse>;
308
331
  private authHeaders;
309
332
  private buildHeaders;
310
333
  private get;
311
334
  private post;
335
+ /**
336
+ * Single attempt at the HTTP request. Returns the Response so the
337
+ * caller can decide whether to retry (e.g., refresh-then-retry on
338
+ * the first 401 in a tool call).
339
+ */
340
+ private sendOnce;
341
+ /**
342
+ * Run `send` once; on 401 with a valid refresh_token, refresh the
343
+ * access token and retry exactly once. Only throws
344
+ * `AuthenticationError` if BOTH the initial call and the post-refresh
345
+ * retry come back 401. This is the reactive companion to
346
+ * `McpTokenManager.getValidToken`'s proactive refresh — needed when
347
+ * the cached token's `exp` claim isn't yet within the 5min refresh
348
+ * window but the server invalidated it anyway (clock drift, key
349
+ * rotation, manual revoke).
350
+ */
351
+ private sendWithRefreshRetry;
312
352
  private rawGet;
313
353
  private rawPost;
314
354
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -345,13 +345,34 @@ export class OkaClient {
345
345
  }
346
346
  // ─── Consolidation ──────────────────────────────────────────────
347
347
  /**
348
- * Trigger a consolidation run.
349
- * POST /api/reasoning/consolidate
348
+ * Trigger a consolidation run synchronously and wait for completion.
349
+ *
350
+ * POST /api/reasoning/consolidate — server runs the full pipeline
351
+ * (fetch events → LLM consolidation → persist) before responding.
352
+ * Useful for short runs / scripts. Not suitable for the MCP tool path:
353
+ * a typical run takes 30-60 s via OpenRouter and exceeds the MCP
354
+ * transport timeout. Use `triggerConsolidationAsync()` from MCP code.
350
355
  */
351
356
  async triggerConsolidation(req) {
352
357
  const body = { ...req, repo: req.repo || this.repo };
353
358
  return this.post("/api/reasoning/consolidate", body, 120_000);
354
359
  }
360
+ /**
361
+ * Trigger a consolidation run in the background (fire-and-poll).
362
+ *
363
+ * POST /api/reasoning/consolidate/async — server persists an initial
364
+ * `running` ConsolidationRun row, spawns the pipeline as a tokio
365
+ * task, and returns immediately with the run_id and a poll URL.
366
+ * Designed for MCP and any other client where a 30-60 s sync call
367
+ * exceeds transport timeouts.
368
+ *
369
+ * Callers can poll progress at GET /api/consolidation/runs/{run_id}
370
+ * or just observe the resulting learnings via the read tools.
371
+ */
372
+ async triggerConsolidationAsync(req) {
373
+ const body = { ...req, repo: req.repo || this.repo };
374
+ return this.post("/api/reasoning/consolidate/async", body, 30_000);
375
+ }
355
376
  // ─── HTTP helpers ───────────────────────────────────────────────
356
377
  async authHeaders() {
357
378
  const key = this.apiKey || (await this.tokenManager.getValidToken());
@@ -381,53 +402,61 @@ export class OkaClient {
381
402
  source: "foreground",
382
403
  });
383
404
  }
384
- async rawGet(path) {
405
+ /**
406
+ * Single attempt at the HTTP request. Returns the Response so the
407
+ * caller can decide whether to retry (e.g., refresh-then-retry on
408
+ * the first 401 in a tool call).
409
+ */
410
+ async sendOnce(path, init, timeoutMs) {
385
411
  const headers = await this.authHeaders();
386
412
  const controller = new AbortController();
387
- const timer = setTimeout(() => controller.abort(), this.timeout);
413
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
388
414
  try {
389
- const response = await fetch(`${this.apiUrl}${path}`, {
390
- method: "GET",
391
- headers,
415
+ return await fetch(`${this.apiUrl}${path}`, {
416
+ ...init,
417
+ headers: { ...headers, ...init.headers },
392
418
  signal: controller.signal,
393
419
  });
394
- if (!response.ok) {
395
- if (response.status === 401) {
396
- throw new AuthenticationError("Authentication failed — run mcp__oka__login to re-authenticate");
397
- }
398
- throw new NetworkError(`HTTP ${response.status}`, {
399
- statusCode: response.status,
400
- });
401
- }
402
- return response.json();
403
420
  }
404
421
  finally {
405
422
  clearTimeout(timer);
406
423
  }
407
424
  }
408
- async rawPost(path, body, timeout) {
409
- const headers = await this.authHeaders();
410
- const controller = new AbortController();
411
- const timer = setTimeout(() => controller.abort(), timeout ?? this.timeout);
412
- try {
413
- const response = await fetch(`${this.apiUrl}${path}`, {
414
- method: "POST",
415
- headers,
416
- body: JSON.stringify(body),
417
- signal: controller.signal,
418
- });
419
- if (!response.ok) {
420
- if (response.status === 401) {
421
- throw new AuthenticationError("Authentication failed run mcp__oka__login to re-authenticate");
422
- }
423
- throw new NetworkError(`HTTP ${response.status}`, {
424
- statusCode: response.status,
425
- });
425
+ /**
426
+ * Run `send` once; on 401 with a valid refresh_token, refresh the
427
+ * access token and retry exactly once. Only throws
428
+ * `AuthenticationError` if BOTH the initial call and the post-refresh
429
+ * retry come back 401. This is the reactive companion to
430
+ * `McpTokenManager.getValidToken`'s proactive refresh needed when
431
+ * the cached token's `exp` claim isn't yet within the 5min refresh
432
+ * window but the server invalidated it anyway (clock drift, key
433
+ * rotation, manual revoke).
434
+ */
435
+ async sendWithRefreshRetry(path, init, timeoutMs) {
436
+ let response = await this.sendOnce(path, init, timeoutMs);
437
+ if (response.status === 401 && !this.apiKey) {
438
+ // Try one refresh + retry. `tryRefresh` is exported from `./auth`
439
+ // and lazily imported to avoid a circular import in tests.
440
+ const { tryRefresh } = await import("./auth.js");
441
+ const refreshed = await tryRefresh();
442
+ if (refreshed) {
443
+ response = await this.sendOnce(path, init, timeoutMs);
426
444
  }
427
- return response.json();
428
445
  }
429
- finally {
430
- clearTimeout(timer);
446
+ if (!response.ok) {
447
+ if (response.status === 401) {
448
+ throw new AuthenticationError("Authentication failed — run mcp__oka__login to re-authenticate");
449
+ }
450
+ throw new NetworkError(`HTTP ${response.status}`, {
451
+ statusCode: response.status,
452
+ });
431
453
  }
454
+ return response.json();
455
+ }
456
+ async rawGet(path) {
457
+ return this.sendWithRefreshRetry(path, { method: "GET" }, this.timeout);
458
+ }
459
+ async rawPost(path, body, timeout) {
460
+ return this.sendWithRefreshRetry(path, { method: "POST", body: JSON.stringify(body) }, timeout ?? this.timeout);
432
461
  }
433
462
  }
package/dist/schemas.d.ts CHANGED
@@ -62,7 +62,7 @@ export declare const RecordCompletionInput: z.ZodObject<{
62
62
  }>;
63
63
  export type RecordCompletionInput = z.infer<typeof RecordCompletionInput>;
64
64
  export declare const RecordObservationInput: z.ZodObject<{
65
- category: z.ZodEnum<["architecture", "bug_pattern", "convention", "performance", "security", "workflow", "dependency", "code_quality", "other"]>;
65
+ category: z.ZodEnum<["architecture", "bug_pattern", "convention", "decision", "performance", "security", "workflow", "domain_knowledge", "dependency", "code_quality", "testing", "api_design", "infrastructure", "other"]>;
66
66
  summary: z.ZodString;
67
67
  details: z.ZodOptional<z.ZodString>;
68
68
  confidence: z.ZodDefault<z.ZodNumber>;
@@ -71,12 +71,12 @@ export declare const RecordObservationInput: z.ZodObject<{
71
71
  }, "strip", z.ZodTypeAny, {
72
72
  file_patterns: string[];
73
73
  confidence: number;
74
- category: "security" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "dependency" | "code_quality" | "other";
74
+ category: "security" | "decision" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "domain_knowledge" | "dependency" | "code_quality" | "testing" | "api_design" | "infrastructure" | "other";
75
75
  tags: string[];
76
76
  summary: string;
77
77
  details?: string | undefined;
78
78
  }, {
79
- category: "security" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "dependency" | "code_quality" | "other";
79
+ category: "security" | "decision" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "domain_knowledge" | "dependency" | "code_quality" | "testing" | "api_design" | "infrastructure" | "other";
80
80
  summary: string;
81
81
  file_patterns?: string[] | undefined;
82
82
  confidence?: number | undefined;
@@ -106,7 +106,7 @@ export declare const GetContextInput: z.ZodObject<{
106
106
  export type GetContextInput = z.infer<typeof GetContextInput>;
107
107
  export declare const ListLearningsInput: z.ZodObject<{
108
108
  repo: z.ZodOptional<z.ZodString>;
109
- category: z.ZodOptional<z.ZodEnum<["architecture", "bug_pattern", "convention", "decision", "performance", "security", "workflow", "domain_knowledge"]>>;
109
+ category: z.ZodOptional<z.ZodEnum<["architecture", "bug_pattern", "convention", "decision", "performance", "security", "workflow", "domain_knowledge", "dependency", "code_quality", "testing", "api_design", "infrastructure", "other"]>>;
110
110
  status: z.ZodOptional<z.ZodEnum<["active", "reinforced", "contradicted", "obsolete"]>>;
111
111
  min_confidence: z.ZodOptional<z.ZodNumber>;
112
112
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -114,13 +114,13 @@ export declare const ListLearningsInput: z.ZodObject<{
114
114
  limit: number;
115
115
  repo?: string | undefined;
116
116
  min_confidence?: number | undefined;
117
- category?: "security" | "decision" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "domain_knowledge" | undefined;
117
+ category?: "security" | "decision" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "domain_knowledge" | "dependency" | "code_quality" | "testing" | "api_design" | "infrastructure" | "other" | undefined;
118
118
  status?: "active" | "reinforced" | "contradicted" | "obsolete" | undefined;
119
119
  }, {
120
120
  repo?: string | undefined;
121
121
  limit?: number | undefined;
122
122
  min_confidence?: number | undefined;
123
- category?: "security" | "decision" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "domain_knowledge" | undefined;
123
+ category?: "security" | "decision" | "architecture" | "bug_pattern" | "convention" | "performance" | "workflow" | "domain_knowledge" | "dependency" | "code_quality" | "testing" | "api_design" | "infrastructure" | "other" | undefined;
124
124
  status?: "active" | "reinforced" | "contradicted" | "obsolete" | undefined;
125
125
  }>;
126
126
  export type ListLearningsInput = z.infer<typeof ListLearningsInput>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAiBjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAI5E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAmB7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAI5E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;EAQnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC;;;;;;;;;;;;EAK1D,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAsBjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAI5E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAyB7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAI5E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;EAQnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC;;;;;;;;;;;;EAK1D,CAAC"}
package/dist/schemas.js CHANGED
@@ -27,11 +27,16 @@ export const RecordObservationInput = z.object({
27
27
  "architecture",
28
28
  "bug_pattern",
29
29
  "convention",
30
+ "decision",
30
31
  "performance",
31
32
  "security",
32
33
  "workflow",
34
+ "domain_knowledge",
33
35
  "dependency",
34
36
  "code_quality",
37
+ "testing",
38
+ "api_design",
39
+ "infrastructure",
35
40
  "other",
36
41
  ]),
37
42
  summary: z.string().min(1),
@@ -60,6 +65,12 @@ export const ListLearningsInput = z.object({
60
65
  "security",
61
66
  "workflow",
62
67
  "domain_knowledge",
68
+ "dependency",
69
+ "code_quality",
70
+ "testing",
71
+ "api_design",
72
+ "infrastructure",
73
+ "other",
63
74
  ])
64
75
  .optional(),
65
76
  status: z
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EACV,SAAS,EAOV,MAAM,cAAc,CAAC;AAKtB,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAgIhF,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CAi3B3D;AAwED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5E"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EACV,SAAS,EAOV,MAAM,cAAc,CAAC;AAKtB,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAgIhF,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CA02B3D;AAwED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5E"}
@@ -696,8 +696,10 @@ export function buildReadTools(client) {
696
696
  buildTool({
697
697
  name: "consolidate",
698
698
  description: "Trigger a consolidation run to process recent reasoning events " +
699
- "and derive new learnings and backlog items. Use this when you want " +
700
- "to refresh the institutional knowledge base.",
699
+ "and derive new learnings and backlog items. The run is started " +
700
+ "in the background this returns immediately with a run_id; " +
701
+ "results show up in `learnings`, `patterns`, and `backlog` " +
702
+ "after the LLM round-trip completes (typically 30–60 s).",
701
703
  inputSchema: {
702
704
  max_events: z.number().optional().describe("Maximum events to process"),
703
705
  },
@@ -706,27 +708,21 @@ export function buildReadTools(client) {
706
708
  call: async (params) => {
707
709
  analytics.track("tool.invoked", { tool: "consolidate" });
708
710
  try {
709
- const result = await client.triggerConsolidation({
711
+ const result = await client.triggerConsolidationAsync({
710
712
  repo: "",
711
713
  trigger: "manual",
712
714
  max_events: params.max_events,
713
715
  });
714
716
  const lines = [
715
- "## Consolidation Complete",
717
+ "## Consolidation Started",
716
718
  "",
717
719
  `**Run ID:** ${result.run_id}`,
718
- `**Events processed:** ${result.events_processed}`,
719
- `**New learnings:** ${result.new_learnings}`,
720
- `**Reinforced:** ${result.reinforced}`,
721
- `**Contradicted:** ${result.contradicted}`,
722
- `**Backlog items generated:** ${result.backlog_items_generated}`,
720
+ `**Status:** ${result.status}`,
721
+ "",
722
+ "The pipeline is running in the background and typically " +
723
+ "completes in 30–60 seconds. Re-run `learnings`, `patterns`, " +
724
+ "or `backlog` shortly to see the new output.",
723
725
  ];
724
- if (result.model_id) {
725
- lines.push(`**Model:** ${result.model_id}`);
726
- }
727
- if (result.input_tokens) {
728
- lines.push(`**Tokens:** ${result.input_tokens} in / ${result.output_tokens} out`);
729
- }
730
726
  return {
731
727
  content: [{ type: "text", text: lines.join("\n") }],
732
728
  };
@@ -740,7 +736,7 @@ export function buildReadTools(client) {
740
736
  content: [
741
737
  {
742
738
  type: "text",
743
- text: `Consolidation failed: ${toUserMessage(error)}`,
739
+ text: `Consolidation failed to start: ${toUserMessage(error)}`,
744
740
  },
745
741
  ],
746
742
  isError: true,
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAehF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CA2T5D;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAE7E"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAehF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CAgU5D;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAE7E"}
@@ -209,11 +209,16 @@ export function buildWriteTools(client) {
209
209
  "architecture",
210
210
  "bug_pattern",
211
211
  "convention",
212
+ "decision",
212
213
  "performance",
213
214
  "security",
214
215
  "workflow",
216
+ "domain_knowledge",
215
217
  "dependency",
216
218
  "code_quality",
219
+ "testing",
220
+ "api_design",
221
+ "infrastructure",
217
222
  "other",
218
223
  ])
219
224
  .describe("Category of the observation"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oka-core/reason",
3
- "version": "0.2.19",
3
+ "version": "0.2.22",
4
4
  "description": "MCP server for institutional knowledge capture, semantic search, and consolidation",
5
5
  "private": false,
6
6
  "publishConfig": {