@j0hanz/cortex-mcp 1.1.0 → 1.1.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.
package/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # Cortex MCP
2
2
 
3
- <!-- mcp-name: io.github.j0hanz/cortex-mcp -->
4
-
5
3
  [![npm version](https://img.shields.io/npm/v/@j0hanz/cortex-mcp?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@j0hanz/cortex-mcp) [![Release workflow](https://github.com/j0hanz/cortex-mcp/actions/workflows/release.yml/badge.svg)](https://github.com/j0hanz/cortex-mcp/actions/workflows/release.yml) [![Node.js >=24](https://img.shields.io/badge/Node.js->=24-339933?style=flat-square&logo=nodedotjs&logoColor=white)](https://nodejs.org) [![TypeScript 5.9+](https://img.shields.io/badge/TypeScript-5.9+-3178C6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org) [![MCP SDK 1.26+](https://img.shields.io/badge/MCP_SDK-1.26+-ff6600?style=flat-square)](https://modelcontextprotocol.io) [![License MIT](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](https://opensource.org/licenses/MIT)
6
4
 
7
5
  [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=cortex-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40j0hanz%2Fcortex-mcp%40latest%22%5D%7D) [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=cortex-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40j0hanz%2Fcortex-mcp%40latest%22%5D%7D&quality=insiders)
@@ -10,13 +8,15 @@
10
8
 
11
9
  Multi-level reasoning MCP server with configurable depth levels.
12
10
 
13
- Cortex MCP exposes a single `reasoning.think` tool over stdio, providing structured, multi-step reasoning with session continuity, resource views, and optional task execution for long-running runs.
11
+ Cortex MCP exposes a single `reasoning.think` tool over stdio, providing structured reasoning with session continuity, resource views, prompt/resource completions, and task execution for multi-step runs.
14
12
 
15
13
  ## Key Features
16
14
 
17
15
  - Multi-level reasoning (`basic`, `normal`, `high`) with configurable thought counts and token budgets.
18
- - Optional task execution with progress notifications for long-running requests.
19
- - Resource endpoints for session lists, session detail, and markdown traces.
16
+ - Optional task execution with progress notifications for multi-step requests.
17
+ - Dual execution modes: `step` (single thought) and `run_to_completion` (batched thoughts).
18
+ - Resource endpoints for session lists, session detail, markdown traces, and thought files.
19
+ - Prompt/resource argument completion for session IDs, levels, and thought names.
20
20
  - Prompt helpers for building correct tool calls.
21
21
 
22
22
  ## Requirements
@@ -39,9 +39,6 @@ Standard config (works in most MCP clients):
39
39
  }
40
40
  ```
41
41
 
42
- > [!TIP]
43
- > Use the standard config first, then add per-client configuration below if needed.
44
-
45
42
  ## Client Configuration
46
43
 
47
44
  <details>
@@ -64,9 +61,6 @@ Add to your user `settings.json`:
64
61
  }
65
62
  ```
66
63
 
67
- > [!NOTE]
68
- > Missing info: official VS Code MCP docs URL is not referenced in this repo.
69
-
70
64
  </details>
71
65
 
72
66
  <details>
@@ -89,9 +83,6 @@ Add to your user `settings.json`:
89
83
  }
90
84
  ```
91
85
 
92
- > [!NOTE]
93
- > Missing info: official VS Code Insiders MCP docs URL is not referenced in this repo.
94
-
95
86
  </details>
96
87
 
97
88
  <details>
@@ -112,9 +103,6 @@ Add to `~/.cursor/mcp.json`:
112
103
  }
113
104
  ```
114
105
 
115
- > [!NOTE]
116
- > Missing info: official Cursor MCP docs URL is not referenced in this repo.
117
-
118
106
  </details>
119
107
 
120
108
  <details>
@@ -133,9 +121,6 @@ Add to `claude_desktop_config.json`:
133
121
  }
134
122
  ```
135
123
 
136
- > [!NOTE]
137
- > Missing info: official Claude Desktop MCP docs URL is not referenced in this repo.
138
-
139
124
  </details>
140
125
 
141
126
  ## MCP Surface
@@ -146,12 +131,15 @@ Add to `claude_desktop_config.json`:
146
131
 
147
132
  Perform multi-step reasoning on a query with a selected depth level.
148
133
 
149
- | Name | Type | Required | Default | Description |
150
- | -------------- | ------ | -------- | ------- | ---------------------------------------------------------------- |
151
- | query | string | Yes | - | The question or problem to reason about (1-10,000 chars). |
152
- | level | enum | Yes | - | Reasoning depth level: `basic`, `normal`, `high`. |
153
- | targetThoughts | number | No | - | Optional explicit thought count within the selected level range. |
154
- | sessionId | string | No | - | Session ID to continue a previous reasoning session. |
134
+ | Name | Type | Required | Default | Description |
135
+ | -------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------- |
136
+ | query | string | No | - | Required for new sessions; optional when `sessionId` is provided. |
137
+ | level | enum | Yes | - | Reasoning depth level: `basic`, `normal`, `high`. |
138
+ | runMode | enum | No | `step` | `step` appends one thought; `run_to_completion` consumes `thought` + `thoughts[]`. |
139
+ | thought | string | Yes | - | Reasoning content for the next step (stored verbatim). |
140
+ | thoughts | array | No | - | Additional thought inputs consumed in order when `runMode=run_to_completion`. |
141
+ | targetThoughts | number | No | - | Optional explicit thought count within the selected level range. |
142
+ | sessionId | string | No | - | Session ID to continue a previous reasoning session. |
155
143
 
156
144
  Returns a structured result with session metadata, thoughts, and token usage:
157
145
 
@@ -179,24 +167,24 @@ Returns a structured result with session metadata, thoughts, and token usage:
179
167
 
180
168
  ### Resources
181
169
 
182
- | URI Pattern | Description | MIME Type |
183
- | ---------------------------------------------------- | ------------------------------------------------- | ---------------- |
184
- | internal://instructions | Usage instructions for the MCP server. | text/markdown |
185
- | reasoning://sessions | List of active reasoning sessions with summaries. | application/json |
186
- | reasoning://sessions/{sessionId} | Detailed view of a reasoning session. | application/json |
187
- | file:///cortex/sessions/{sessionId}/trace.md | Markdown trace of a reasoning session. | text/markdown |
188
- | file:///cortex/sessions/{sessionId}/{thoughtName}.md | Markdown content of a single thought. | text/markdown |
170
+ | URI Pattern | Description | MIME Type |
171
+ | ---------------------------------------------------- | ------------------------------------------------------------------------------ | ---------------- |
172
+ | internal://instructions | Usage instructions for the MCP server. | text/markdown |
173
+ | reasoning://sessions | List of active reasoning sessions with summaries. | application/json |
174
+ | reasoning://sessions/{sessionId} | Detailed view of a reasoning session. | application/json |
175
+ | file:///cortex/sessions/{sessionId}/trace.md | Markdown trace of a reasoning session (`sessionId` completion). | text/markdown |
176
+ | file:///cortex/sessions/{sessionId}/{thoughtName}.md | Markdown content of a single thought (`sessionId` + `thoughtName` completion). | text/markdown |
189
177
 
190
178
  ### Prompts
191
179
 
192
- | Name | Arguments | Description |
193
- | ------------------ | --------------------------------------- | ------------------------------------------------------- |
194
- | reasoning.basic | query, targetThoughts | Prepare a basic-depth reasoning request. |
195
- | reasoning.normal | query, targetThoughts | Prepare a normal-depth reasoning request. |
196
- | reasoning.high | query, targetThoughts | Prepare a high-depth reasoning request. |
197
- | reasoning.retry | query, level, targetThoughts | Retry a failed reasoning task with modified parameters. |
198
- | reasoning.continue | sessionId, query, level, targetThoughts | Continue an existing reasoning session. |
199
- | get-help | - | Return server usage instructions. |
180
+ | Name | Arguments | Description |
181
+ | ------------------ | ---------------------------------------- | ------------------------------------------------------- |
182
+ | reasoning.basic | query, targetThoughts | Prepare a basic-depth reasoning request. |
183
+ | reasoning.normal | query, targetThoughts | Prepare a normal-depth reasoning request. |
184
+ | reasoning.high | query, targetThoughts | Prepare a high-depth reasoning request. |
185
+ | reasoning.retry | query, level, targetThoughts | Retry a failed reasoning task with modified parameters. |
186
+ | reasoning.continue | sessionId, query?, level, targetThoughts | Continue an existing reasoning session. |
187
+ | get-help | - | Return server usage instructions. |
200
188
 
201
189
  ### Tasks
202
190
 
@@ -205,6 +193,7 @@ Task-augmented tool calls are supported for `reasoning.think` with `taskSupport:
205
193
  - Call the tool as a task to receive a task id.
206
194
  - Poll `tasks/get` and read results via `tasks/result`.
207
195
  - Cancel with `tasks/cancel`.
196
+ - Use `runMode: "run_to_completion"` to consume multiple thought inputs in one task.
208
197
 
209
198
  ## Configuration
210
199
 
@@ -214,10 +203,16 @@ Task-augmented tool calls are supported for `reasoning.think` with `taskSupport:
214
203
  | ----- | ----------------------------- |
215
204
  | stdio | The only supported transport. |
216
205
 
217
- ### Environment Variables
206
+ ### Session Store Limits
207
+
208
+ Environment variables:
218
209
 
219
- > [!NOTE]
220
- > Missing info: no environment variables are documented in this repo.
210
+ | Variable | Default | Description |
211
+ | ----------------------------------- | --------- | -------------------------------------------------------------- |
212
+ | `CORTEX_SESSION_TTL_MS` | `1800000` | Session TTL in milliseconds. |
213
+ | `CORTEX_MAX_SESSIONS` | `100` | Maximum in-memory sessions before LRU-style eviction. |
214
+ | `CORTEX_MAX_TOTAL_TOKENS` | `500000` | Maximum aggregate approximate token footprint across sessions. |
215
+ | `CORTEX_MAX_ACTIVE_REASONING_TASKS` | `32` | Maximum concurrently running background reasoning tasks. |
221
216
 
222
217
  ## Development
223
218
 
@@ -1,4 +1,20 @@
1
- import type { LevelConfig, ReasoningLevel } from '../lib/types.js';
2
- export declare const LEVEL_CONFIGS: Record<ReasoningLevel, LevelConfig>;
1
+ import type { ReasoningLevel } from '../lib/types.js';
2
+ export declare const LEVEL_CONFIGS: {
3
+ readonly basic: {
4
+ readonly minThoughts: 3;
5
+ readonly maxThoughts: 5;
6
+ readonly tokenBudget: 2048;
7
+ };
8
+ readonly normal: {
9
+ readonly minThoughts: 6;
10
+ readonly maxThoughts: 10;
11
+ readonly tokenBudget: 8192;
12
+ };
13
+ readonly high: {
14
+ readonly minThoughts: 15;
15
+ readonly maxThoughts: 25;
16
+ readonly tokenBudget: 32768;
17
+ };
18
+ };
3
19
  export declare function assertTargetThoughtsInRange(level: ReasoningLevel, targetThoughts: number): void;
4
20
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/engine/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,WAAW,CAI7D,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM,GACrB,IAAI,CAKN"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/engine/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGnE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAI8B,CAAC;AAEzD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM,GACrB,IAAI,CAKN"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/engine/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAwC;IAChE,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAC5D,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;IAC9D,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;CAC/D,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACzC,KAAqB,EACrB,cAAsB;IAEtB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/engine/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAC5D,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;IAC9D,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;CACR,CAAC;AAEzD,MAAM,UAAU,2BAA2B,CACzC,KAAqB,EACrB,cAAsB;IAEtB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -5,6 +5,7 @@ export { sessionStore };
5
5
  interface ReasonOptions {
6
6
  sessionId?: string;
7
7
  targetThoughts?: number;
8
+ thought: string;
8
9
  abortSignal?: AbortSignal;
9
10
  onProgress?: (progress: number, total: number) => void | Promise<void>;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reasoner.d.ts","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,QAAA,MAAM,YAAY,cAAqB,CAAC;AAMxC,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAQD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CA+E5B"}
1
+ {"version":3,"file":"reasoner.d.ts","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsBlD,QAAA,MAAM,YAAY,cAIjB,CAAC;AAKF,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAQD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAwE5B"}
@@ -1,16 +1,32 @@
1
1
  import { Buffer } from 'node:buffer';
2
- import { createSegmenter, truncate } from '../lib/text.js';
2
+ import { createSegmenter } from '../lib/text.js';
3
3
  import { assertTargetThoughtsInRange, LEVEL_CONFIGS } from './config.js';
4
4
  import { runWithContext } from './context.js';
5
5
  import { engineEvents } from './events.js';
6
6
  import { SessionStore } from './session-store.js';
7
- const sessionStore = new SessionStore();
8
- const graphemeSegmenter = createSegmenter('grapheme');
7
+ const DEFAULT_SESSION_TTL_MS = 30 * 60 * 1000;
8
+ const DEFAULT_MAX_SESSIONS = 100;
9
+ const DEFAULT_MAX_TOTAL_TOKENS = 500_000;
10
+ function parsePositiveIntEnv(name, fallback, minimum = 1) {
11
+ const raw = process.env[name];
12
+ if (raw === undefined) {
13
+ return fallback;
14
+ }
15
+ const parsed = Number.parseInt(raw, 10);
16
+ if (!Number.isInteger(parsed) || parsed < minimum) {
17
+ return fallback;
18
+ }
19
+ return parsed;
20
+ }
21
+ const sessionStore = new SessionStore(parsePositiveIntEnv('CORTEX_SESSION_TTL_MS', DEFAULT_SESSION_TTL_MS), parsePositiveIntEnv('CORTEX_MAX_SESSIONS', DEFAULT_MAX_SESSIONS), parsePositiveIntEnv('CORTEX_MAX_TOTAL_TOKENS', DEFAULT_MAX_TOTAL_TOKENS));
9
22
  const sentenceSegmenter = createSegmenter('sentence');
10
23
  const sessionLocks = new Map();
11
24
  export { sessionStore };
12
25
  export async function reason(query, level, options) {
13
- const { sessionId, targetThoughts, abortSignal, onProgress } = options ?? {};
26
+ if (!options?.thought) {
27
+ throw new Error('thought is required: provide your reasoning content');
28
+ }
29
+ const { sessionId, targetThoughts, thought, abortSignal, onProgress } = options;
14
30
  const config = LEVEL_CONFIGS[level];
15
31
  const session = resolveSession(level, sessionId, query, config, targetThoughts);
16
32
  const { totalThoughts } = session;
@@ -31,15 +47,12 @@ export async function reason(query, level, options) {
31
47
  if (nextIndex >= totalThoughts) {
32
48
  return current;
33
49
  }
34
- const stepContent = generateReasoningStep(query, nextIndex, totalThoughts);
35
- if (!stepContent) {
36
- throw new Error(`Step content missing at index ${String(nextIndex)}/${String(totalThoughts)}`);
37
- }
38
- const thought = sessionStore.addThought(session.id, stepContent);
50
+ const stepContent = thought;
51
+ const addedThought = sessionStore.addThought(session.id, stepContent);
39
52
  engineEvents.emit('thought:added', {
40
53
  sessionId: session.id,
41
- index: thought.index,
42
- content: thought.content,
54
+ index: addedThought.index,
55
+ content: addedThought.content,
43
56
  });
44
57
  const updated = getSessionOrThrow(session.id);
45
58
  if (updated.tokensUsed >= config.tokenBudget) {
@@ -47,7 +60,7 @@ export async function reason(query, level, options) {
47
60
  sessionId: session.id,
48
61
  tokensUsed: updated.tokensUsed,
49
62
  tokenBudget: config.tokenBudget,
50
- generatedThoughts: thought.index + 1,
63
+ generatedThoughts: addedThought.index + 1,
51
64
  requestedThoughts: totalThoughts,
52
65
  });
53
66
  }
@@ -55,7 +68,7 @@ export async function reason(query, level, options) {
55
68
  sessionStore.markCompleted(session.id);
56
69
  }
57
70
  if (onProgress) {
58
- await onProgress(thought.index + 1, totalThoughts);
71
+ await onProgress(addedThought.index + 1, totalThoughts);
59
72
  throwIfReasoningAborted(abortSignal);
60
73
  }
61
74
  return getSessionOrThrow(session.id);
@@ -162,115 +175,4 @@ function throwIfReasoningAborted(signal) {
162
175
  throw new Error('Reasoning aborted');
163
176
  }
164
177
  }
165
- const OPENING_TEMPLATE = 'Parsing the query and identifying the core problem';
166
- const CONCLUSION_TEMPLATE = 'Synthesizing the final answer with supporting evidence';
167
- const CRITIQUE_TEMPLATES = [
168
- 'Critiquing the proposed solution for potential weaknesses',
169
- 'Checking for missed edge cases or logical gaps',
170
- 'Verifying alignment with original constraints',
171
- 'Reviewing the reasoning path for redundant steps',
172
- 'Assessing the robustness of the solution',
173
- 'Identifying assumptions that require further verification',
174
- 'Evaluating the solution against counter-arguments',
175
- ];
176
- const DOMAIN_TEMPLATES = {
177
- CODE: [
178
- 'Analyzing implementation details and logic',
179
- 'Reviewing type safety and error handling',
180
- 'Tracing data flow through the system',
181
- 'Considering edge cases in input validation',
182
- 'Checking for performance bottlenecks',
183
- 'Validating against coding standards',
184
- 'Reviewing dependencies and external interactions',
185
- 'Assessing testability and maintainability',
186
- 'Checking for concurrency or race conditions',
187
- 'Verifying API contract compliance',
188
- ],
189
- DESIGN: [
190
- 'Mapping component interactions and dependencies',
191
- 'Evaluating architectural trade-offs',
192
- 'Considering scalability and maintainability',
193
- 'Checking system boundaries and interfaces',
194
- 'Reviewing data models and schema',
195
- 'Assessing failure modes and recovery',
196
- 'Analyzing security implications',
197
- 'Evaluating technology choices',
198
- 'Considering future extensibility',
199
- 'Reviewing compliance with design patterns',
200
- ],
201
- ANALYSIS: [
202
- 'Identifying key metrics and indicators',
203
- 'Comparing alternative approaches',
204
- 'Checking for bias or gaps in data',
205
- 'Validating assumptions against evidence',
206
- 'Exploring causal relationships',
207
- 'Synthesizing insights from multiple sources',
208
- 'Weighing short-term vs long-term impacts',
209
- 'Evaluating risks and mitigations',
210
- 'Contextualizing findings within the broader scope',
211
- 'Cross-checking conclusions for consistency',
212
- ],
213
- GENERAL: [
214
- 'Identifying key components and constraints',
215
- 'Breaking down the problem into sub-problems',
216
- 'Mapping relationships between identified components',
217
- 'Considering edge cases and boundary conditions',
218
- 'Surveying the problem space for hidden assumptions',
219
- 'Clarifying ambiguous terms and scoping the question',
220
- 'Evaluating potential approaches and methodologies',
221
- 'Selecting the most promising approach based on trade-offs',
222
- 'Developing the solution framework step by step',
223
- 'Checking logical consistency of intermediate conclusions',
224
- 'Exploring alternative perspectives on the problem',
225
- 'Assessing confidence levels in preliminary findings',
226
- 'Weighing trade-offs between competing solutions',
227
- 'Examining second-order effects and implications',
228
- 'Refining the analysis with additional considerations',
229
- 'Documenting key insights and decision points',
230
- ],
231
- };
232
- function detectDomain(query) {
233
- const text = query.toLowerCase();
234
- if (/\b(code|function|bug|error|impl|script|typescript|python|js|ts|java|c\+\+|rust|api|endpoint)\b/.test(text)) {
235
- return 'CODE';
236
- }
237
- if (/\b(design|architect|structure|pattern|system|component|module|interface|schema)\b/.test(text)) {
238
- return 'DESIGN';
239
- }
240
- if (/\b(analy|compare|evaluate|assess|review|audit|investigate|study|research)\b/.test(text)) {
241
- return 'ANALYSIS';
242
- }
243
- return 'GENERAL';
244
- }
245
- function generateReasoningStep(query, index, total) {
246
- if (total <= 0) {
247
- return '';
248
- }
249
- const step = index + 1;
250
- // Phase 1: Understanding (First Step)
251
- if (step === 1) {
252
- const truncatedQuery = truncate(query, 200, graphemeSegmenter);
253
- return formatStep(step, total, `${OPENING_TEMPLATE}: "${truncatedQuery}"`);
254
- }
255
- // Phase 4: Conclusion (Last Step)
256
- if (step === total) {
257
- return formatStep(step, total, CONCLUSION_TEMPLATE);
258
- }
259
- // Phase 3: Critique (Second-to-Last Step)
260
- if (total >= 4 && step === total - 1) {
261
- const critique = CRITIQUE_TEMPLATES[step % CRITIQUE_TEMPLATES.length] ??
262
- 'Critiquing the proposed solution for potential weaknesses';
263
- return formatStep(step, total, critique);
264
- }
265
- // Phase 2: Domain-Specific Analysis (Middle Steps)
266
- const domain = detectDomain(query);
267
- const templates = DOMAIN_TEMPLATES[domain];
268
- const template = templates[(step - 2) % templates.length] ??
269
- templates[0] ??
270
- 'Analyzing the problem';
271
- return formatStep(step, total, template);
272
- }
273
- function formatStep(step, total, description) {
274
- return `Step ${String(step)}/${String(total)}: ${description}`;
275
- }
276
178
  //# sourceMappingURL=reasoner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,16 @@ export declare class SessionStore {
4
4
  private readonly sessionOrder;
5
5
  private oldestSessionId;
6
6
  private newestSessionId;
7
- private sortedCache;
7
+ private sortedSessionIdsCache;
8
8
  private readonly cleanupInterval;
9
9
  private readonly ttlMs;
10
10
  private readonly maxSessions;
11
11
  private readonly maxTotalTokens;
12
12
  private totalTokens;
13
13
  constructor(ttlMs?: number, maxSessions?: number, maxTotalTokens?: number);
14
- create(level: ReasoningLevel, totalThoughts?: number): Session;
14
+ create(level: ReasoningLevel, totalThoughts?: number): Readonly<Session>;
15
15
  get(id: string): Readonly<Session> | undefined;
16
- list(): Session[];
16
+ list(): Readonly<Session>[];
17
17
  getTtlMs(): number;
18
18
  getExpiresAt(sessionId: string): number | undefined;
19
19
  getTotalTokensUsed(): number;
@@ -26,10 +26,15 @@ export declare class SessionStore {
26
26
  private evictForTokenHeadroom;
27
27
  private findOldestSession;
28
28
  private sweep;
29
- private buildSortedCache;
29
+ private buildSortedSessionIdsCache;
30
30
  private addToOrder;
31
31
  private touchOrder;
32
32
  private removeFromOrder;
33
33
  private deleteSessionInternal;
34
+ private snapshotThought;
35
+ private snapshotSession;
36
+ private emitSessionsListChanged;
37
+ private emitSessionsResourceUpdated;
38
+ private emitSessionResourcesUpdated;
34
39
  }
35
40
  //# sourceMappingURL=session-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/engine/session-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EACd,OAAO,EACP,OAAO,EACR,MAAM,iBAAiB,CAAC;AAmBzB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,WAAW,CAAK;gBAGtB,KAAK,GAAE,MAAuB,EAC9B,WAAW,GAAE,MAA6B,EAC1C,cAAc,GAAE,MAAiC;IAYnD,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO;IAsB9D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;IAI9C,IAAI,IAAI,OAAO,EAAE;IAKjB,QAAQ,IAAI,MAAM;IAIlB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQnD,kBAAkB,IAAI,MAAM;IAI5B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU3B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAwBvD,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO;IAkCV,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUtC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUtC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,KAAK;IAqBb,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,qBAAqB;CAY9B"}
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/engine/session-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EACd,OAAO,EACP,OAAO,EACR,MAAM,iBAAiB,CAAC;AA4BzB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,WAAW,CAAK;gBAGtB,KAAK,GAAE,MAAuB,EAC9B,WAAW,GAAE,MAA6B,EAC1C,cAAc,GAAE,MAAiC;IAYnD,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;IAuBxE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;IAK9C,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;IAY3B,QAAQ,IAAI,MAAM;IAIlB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQnD,kBAAkB,IAAI,MAAM;IAI5B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW3B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAsBvD,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO;IAgCV,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWtC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWtC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,KAAK;IAsBb,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,2BAA2B;CAMpC"}