@j0hanz/cortex-mcp 1.1.0 → 1.1.2

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.
@@ -30,7 +30,10 @@ function buildSessionSummary(sessionId) {
30
30
  id: session.id,
31
31
  level: session.level,
32
32
  status: session.status,
33
- totalThoughts: session.thoughts.length,
33
+ generatedThoughts: session.thoughts.length,
34
+ remainingThoughts: Math.max(0, session.totalThoughts - session.thoughts.length),
35
+ plannedThoughts: session.totalThoughts,
36
+ totalThoughts: session.totalThoughts,
34
37
  tokenBudget: session.tokenBudget,
35
38
  tokensUsed: session.tokensUsed,
36
39
  createdAt: session.createdAt,
@@ -59,6 +62,7 @@ function serializeJson(data) {
59
62
  }
60
63
  const COMPLETION_CACHE_TTL_MS = 1000;
61
64
  const COMPLETION_CACHE_MAX_ENTRIES = 512;
65
+ const MAX_COMPLETION_RESULTS = 20;
62
66
  const completionCache = new Map();
63
67
  function pruneCompletionCache(now) {
64
68
  for (const [cacheKey, entry] of completionCache.entries()) {
@@ -74,6 +78,51 @@ function pruneCompletionCache(now) {
74
78
  completionCache.delete(oldestKey);
75
79
  }
76
80
  }
81
+ function completeSessionIds(value) {
82
+ const now = Date.now();
83
+ pruneCompletionCache(now);
84
+ const cacheKey = `sessionId:${value}`;
85
+ const cached = completionCache.get(cacheKey);
86
+ if (cached && now - cached.timestamp < COMPLETION_CACHE_TTL_MS) {
87
+ return cached.results;
88
+ }
89
+ const results = [];
90
+ for (const session of sessionStore.list()) {
91
+ if (!session.id.startsWith(value)) {
92
+ continue;
93
+ }
94
+ results.push(session.id);
95
+ if (results.length >= MAX_COMPLETION_RESULTS) {
96
+ break;
97
+ }
98
+ }
99
+ completionCache.set(cacheKey, { results, timestamp: now });
100
+ pruneCompletionCache(now);
101
+ return results;
102
+ }
103
+ function completeThoughtNames(value, sessionId) {
104
+ const session = sessionStore.get(sessionId);
105
+ if (!session) {
106
+ return [];
107
+ }
108
+ const results = [];
109
+ for (const thought of session.thoughts) {
110
+ const base = `Thought-${String(thought.index + 1)}`;
111
+ if (base.startsWith(value)) {
112
+ results.push(base);
113
+ }
114
+ if (thought.revision > 0) {
115
+ const revised = `${base}-Revised`;
116
+ if (revised.startsWith(value)) {
117
+ results.push(revised);
118
+ }
119
+ }
120
+ if (results.length >= MAX_COMPLETION_RESULTS) {
121
+ break;
122
+ }
123
+ }
124
+ return results;
125
+ }
77
126
  export function registerAllResources(server, iconMeta) {
78
127
  const instructions = loadInstructions();
79
128
  server.registerResource('server-instructions', 'internal://instructions', {
@@ -136,6 +185,9 @@ export function registerAllResources(server, iconMeta) {
136
185
  // Template for full trace
137
186
  server.registerResource('reasoning.trace', new ResourceTemplate('file:///cortex/sessions/{sessionId}/trace.md', {
138
187
  list: undefined,
188
+ complete: {
189
+ sessionId: completeSessionIds,
190
+ },
139
191
  }), {
140
192
  title: 'Reasoning Trace',
141
193
  description: 'Markdown trace of a reasoning session (full content).',
@@ -161,6 +213,16 @@ export function registerAllResources(server, iconMeta) {
161
213
  // Template for individual thoughts
162
214
  server.registerResource('reasoning.thought', new ResourceTemplate('file:///cortex/sessions/{sessionId}/{thoughtName}.md', {
163
215
  list: undefined,
216
+ complete: {
217
+ sessionId: completeSessionIds,
218
+ thoughtName: (value, context) => {
219
+ const sessionId = context?.arguments?.sessionId;
220
+ if (typeof sessionId !== 'string' || sessionId.length === 0) {
221
+ return [];
222
+ }
223
+ return completeThoughtNames(value, sessionId);
224
+ },
225
+ },
164
226
  }), {
165
227
  title: 'Reasoning Thought',
166
228
  description: 'Markdown content of a single thought (e.g. Thought-1.md).',
@@ -198,7 +260,7 @@ export function registerAllResources(server, iconMeta) {
198
260
  uri: `reasoning://sessions/${session.id}`,
199
261
  name: `session-${session.id.slice(0, 8)}`,
200
262
  title: `Reasoning Session ${session.id.slice(0, 8)}`,
201
- description: `${session.level} session with ${String(session.thoughts.length)} thought(s).`,
263
+ description: `${session.level} session with ${String(session.thoughts.length)}/${String(session.totalThoughts)} thought(s).`,
202
264
  mimeType: 'application/json',
203
265
  annotations: {
204
266
  audience: ['assistant', 'user'],
@@ -208,29 +270,7 @@ export function registerAllResources(server, iconMeta) {
208
270
  })),
209
271
  }),
210
272
  complete: {
211
- sessionId: (value) => {
212
- const now = Date.now();
213
- pruneCompletionCache(now);
214
- const cacheKey = `sessionId:${value}`;
215
- const cached = completionCache.get(cacheKey);
216
- // Cache for 1 second to reduce repeated completion scans.
217
- if (cached && now - cached.timestamp < COMPLETION_CACHE_TTL_MS) {
218
- return cached.results;
219
- }
220
- const results = [];
221
- for (const session of sessionStore.list()) {
222
- if (!session.id.startsWith(value)) {
223
- continue;
224
- }
225
- results.push(session.id);
226
- if (results.length >= 20) {
227
- break;
228
- }
229
- }
230
- completionCache.set(cacheKey, { results, timestamp: now });
231
- pruneCompletionCache(now);
232
- return results;
233
- },
273
+ sessionId: completeSessionIds,
234
274
  },
235
275
  });
236
276
  server.registerResource('reasoning.session', sessionTemplate, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  export declare const ReasoningThinkInputSchema: z.ZodObject<{
3
- query: z.ZodString;
3
+ query: z.ZodOptional<z.ZodString>;
4
4
  level: z.ZodEnum<{
5
5
  basic: "basic";
6
6
  normal: "normal";
@@ -8,6 +8,12 @@ export declare const ReasoningThinkInputSchema: z.ZodObject<{
8
8
  }>;
9
9
  targetThoughts: z.ZodOptional<z.ZodNumber>;
10
10
  sessionId: z.ZodOptional<z.ZodString>;
11
+ runMode: z.ZodOptional<z.ZodEnum<{
12
+ step: "step";
13
+ run_to_completion: "run_to_completion";
14
+ }>>;
15
+ thought: z.ZodString;
16
+ thoughts: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
17
  }, z.core.$strict>;
12
18
  export type ReasoningThinkInput = z.infer<typeof ReasoningThinkInputSchema>;
13
19
  //# sourceMappingURL=inputs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;;;;;;;;kBAsClC,CAAC;AAEL,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;kBA4FlC,CAAC;AAEL,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -6,6 +6,7 @@ export const ReasoningThinkInputSchema = z
6
6
  .string()
7
7
  .min(1)
8
8
  .max(10000)
9
+ .optional()
9
10
  .describe('The question or problem to reason about'),
10
11
  level: z
11
12
  .enum(['basic', 'normal', 'high'])
@@ -22,8 +23,48 @@ export const ReasoningThinkInputSchema = z
22
23
  .max(128)
23
24
  .optional()
24
25
  .describe('Optional session ID to continue a previous reasoning session'),
26
+ runMode: z
27
+ .enum(['step', 'run_to_completion'])
28
+ .optional()
29
+ .describe('Execution mode. "step" appends a single thought. "run_to_completion" consumes all supplied thought inputs in one request.'),
30
+ thought: z
31
+ .string()
32
+ .min(1)
33
+ .max(100000)
34
+ .describe('Your full reasoning content for this step. ' +
35
+ 'The server stores this text verbatim as the thought in the session trace. ' +
36
+ 'Write your complete analysis, observations, and conclusions here — this is what appears in trace.md.'),
37
+ thoughts: z
38
+ .array(z.string().min(1).max(100000))
39
+ .max(25)
40
+ .optional()
41
+ .describe('Optional additional thought inputs consumed in order when runMode is "run_to_completion".'),
25
42
  })
26
43
  .superRefine((data, ctx) => {
44
+ const runMode = data.runMode ?? 'step';
45
+ if (data.sessionId === undefined && data.query === undefined) {
46
+ ctx.addIssue({
47
+ code: 'custom',
48
+ message: 'query is required when sessionId is not provided',
49
+ path: ['query'],
50
+ });
51
+ }
52
+ if (runMode === 'run_to_completion' &&
53
+ data.sessionId === undefined &&
54
+ data.targetThoughts === undefined) {
55
+ ctx.addIssue({
56
+ code: 'custom',
57
+ message: 'targetThoughts is required for run_to_completion when sessionId is not provided',
58
+ path: ['targetThoughts'],
59
+ });
60
+ }
61
+ if (runMode === 'step' && data.thoughts !== undefined) {
62
+ ctx.addIssue({
63
+ code: 'custom',
64
+ message: 'thoughts is only allowed when runMode is "run_to_completion"',
65
+ path: ['thoughts'],
66
+ });
67
+ }
27
68
  if (data.targetThoughts === undefined) {
28
69
  return;
29
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,YAAY,CAAC;IACZ,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,KAAK,CAAC;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACtD,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjC,QAAQ,CAAC,uBAAuB,CAAC;IACpC,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,qEAAqE,CACtE;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACtE,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,gBAAgB,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning-think.d.ts","sourceRoot":"","sources":["../../src/tools/reasoning-think.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,iBAAiB,CAAC;AAgezE,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CA4EN"}
1
+ {"version":3,"file":"reasoning-think.d.ts","sourceRoot":"","sources":["../../src/tools/reasoning-think.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,OAAO,KAAK,EACV,QAAQ,EAIT,MAAM,iBAAiB,CAAC;AA6rBzB,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwFN"}
@@ -4,6 +4,36 @@ import { ReasoningThinkToolOutputSchema } from '../schemas/outputs.js';
4
4
  import { createErrorResponse, getErrorMessage } from '../lib/errors.js';
5
5
  import { formatThoughtsToMarkdown } from '../lib/formatting.js';
6
6
  import { createToolResponse } from '../lib/tool-response.js';
7
+ const DEFAULT_MAX_ACTIVE_REASONING_TASKS = 32;
8
+ const TASK_OVERLOAD_MESSAGE = 'Server busy: too many active reasoning tasks';
9
+ function parsePositiveInt(rawValue, fallbackValue) {
10
+ if (rawValue === undefined) {
11
+ return fallbackValue;
12
+ }
13
+ const parsed = Number.parseInt(rawValue, 10);
14
+ if (!Number.isInteger(parsed) || parsed < 1) {
15
+ return fallbackValue;
16
+ }
17
+ return parsed;
18
+ }
19
+ function createTaskLimiter(maxActiveTasks) {
20
+ let activeTasks = 0;
21
+ return {
22
+ tryAcquire() {
23
+ if (activeTasks >= maxActiveTasks) {
24
+ return false;
25
+ }
26
+ activeTasks += 1;
27
+ return true;
28
+ },
29
+ release() {
30
+ if (activeTasks > 0) {
31
+ activeTasks -= 1;
32
+ }
33
+ },
34
+ };
35
+ }
36
+ const reasoningTaskLimiter = createTaskLimiter(parsePositiveInt(process.env.CORTEX_MAX_ACTIVE_REASONING_TASKS, DEFAULT_MAX_ACTIVE_REASONING_TASKS));
7
37
  function isObjectRecord(value) {
8
38
  return typeof value === 'object' && value !== null;
9
39
  }
@@ -63,8 +93,32 @@ function parseReasoningTaskExtra(rawExtra) {
63
93
  }
64
94
  return rawExtra;
65
95
  }
66
- function assertCallToolResult(value) {
96
+ function isContentBlockLike(value) {
97
+ if (!isObjectRecord(value) || typeof value.type !== 'string') {
98
+ return false;
99
+ }
100
+ if (value.type === 'text') {
101
+ return typeof value.text === 'string';
102
+ }
103
+ if (value.type === 'resource') {
104
+ return isObjectRecord(value.resource);
105
+ }
106
+ return true;
107
+ }
108
+ function isCallToolResult(value) {
67
109
  if (!isObjectRecord(value) || !Array.isArray(value.content)) {
110
+ return false;
111
+ }
112
+ if (!value.content.every((entry) => isContentBlockLike(entry))) {
113
+ return false;
114
+ }
115
+ if (value.isError !== undefined && typeof value.isError !== 'boolean') {
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ function assertCallToolResult(value) {
121
+ if (!isCallToolResult(value)) {
68
122
  throw new Error('Stored task result is not a valid CallToolResult.');
69
123
  }
70
124
  }
@@ -82,6 +136,15 @@ function mapReasoningErrorCode(message) {
82
136
  if (message.startsWith('Session level mismatch:')) {
83
137
  return 'E_SESSION_LEVEL_MISMATCH';
84
138
  }
139
+ if (message.startsWith('run_to_completion requires at least')) {
140
+ return 'E_INSUFFICIENT_THOUGHTS';
141
+ }
142
+ if (message.startsWith('targetThoughts is required for run_to_completion when sessionId is not provided')) {
143
+ return 'E_INVALID_RUN_MODE_ARGS';
144
+ }
145
+ if (message === TASK_OVERLOAD_MESSAGE) {
146
+ return 'E_SERVER_BUSY';
147
+ }
85
148
  return 'E_REASONING';
86
149
  }
87
150
  function shouldEmitProgress(progress, total, level) {
@@ -90,6 +153,52 @@ function shouldEmitProgress(progress, total, level) {
90
153
  }
91
154
  return progress % 2 === 0;
92
155
  }
156
+ function resolveRunMode(params) {
157
+ return params.runMode ?? 'step';
158
+ }
159
+ function buildThoughtInputs(params) {
160
+ return [params.thought, ...(params.thoughts ?? [])];
161
+ }
162
+ function getStartingThoughtCount(sessionId) {
163
+ if (sessionId === undefined) {
164
+ return 0;
165
+ }
166
+ return sessionStore.get(sessionId)?.thoughts.length ?? 0;
167
+ }
168
+ function shouldStopReasoningLoop(session, runMode) {
169
+ return (runMode === 'step' ||
170
+ session.status !== 'active' ||
171
+ session.thoughts.length >= session.totalThoughts ||
172
+ session.tokensUsed >= session.tokenBudget);
173
+ }
174
+ async function executeReasoningSteps(args) {
175
+ const { taskStore, taskId, controller, queryText, level, sessionId, targetThoughts, runMode, thoughtInputs, onProgress, } = args;
176
+ let activeSessionId = sessionId;
177
+ let session;
178
+ const maxSteps = runMode === 'step' ? 1 : thoughtInputs.length;
179
+ for (let index = 0; index < maxSteps; index++) {
180
+ await ensureTaskIsActive(taskStore, taskId, controller);
181
+ const inputThought = thoughtInputs[index];
182
+ if (inputThought === undefined) {
183
+ break;
184
+ }
185
+ session = await reason(queryText, level, {
186
+ ...(activeSessionId !== undefined ? { sessionId: activeSessionId } : {}),
187
+ ...(targetThoughts !== undefined ? { targetThoughts } : {}),
188
+ thought: inputThought,
189
+ abortSignal: controller.signal,
190
+ onProgress,
191
+ });
192
+ activeSessionId = session.id;
193
+ if (shouldStopReasoningLoop(session, runMode)) {
194
+ break;
195
+ }
196
+ }
197
+ if (!session) {
198
+ throw new Error('No reasoning step was executed.');
199
+ }
200
+ return session;
201
+ }
93
202
  function buildStructuredResult(session, generatedThoughts, targetThoughts) {
94
203
  const ttlMs = sessionStore.getTtlMs();
95
204
  const expiresAt = sessionStore.getExpiresAt(session.id) ?? session.updatedAt + ttlMs;
@@ -100,11 +209,7 @@ function buildStructuredResult(session, generatedThoughts, targetThoughts) {
100
209
  sessionId: session.id,
101
210
  level: session.level,
102
211
  status: session.status,
103
- thoughts: session.thoughts.map((thought) => ({
104
- index: thought.index,
105
- content: thought.content,
106
- revision: thought.revision,
107
- })),
212
+ thoughts: session.thoughts,
108
213
  generatedThoughts,
109
214
  requestedThoughts,
110
215
  totalThoughts: session.totalThoughts,
@@ -183,6 +288,31 @@ async function storeTaskFailure(taskStore, taskId, response) {
183
288
  // No-op if the task has already reached a terminal state.
184
289
  }
185
290
  }
291
+ async function setTaskFailureStatusMessage(taskStore, taskId, statusMessage) {
292
+ try {
293
+ await taskStore.updateTaskStatus(taskId, 'working', statusMessage);
294
+ }
295
+ catch {
296
+ // No-op if task is already terminal.
297
+ }
298
+ }
299
+ function assertRunToCompletionInputCount(params, thoughtInputs) {
300
+ const { sessionId, targetThoughts } = params;
301
+ if (sessionId === undefined && targetThoughts === undefined) {
302
+ throw new Error('targetThoughts is required for run_to_completion when sessionId is not provided');
303
+ }
304
+ let requiredInputs = targetThoughts ?? 0;
305
+ if (sessionId !== undefined) {
306
+ const existing = sessionStore.get(sessionId);
307
+ if (!existing) {
308
+ throw new Error(`Session not found: ${sessionId}`);
309
+ }
310
+ requiredInputs = Math.max(0, existing.totalThoughts - existing.thoughts.length);
311
+ }
312
+ if (thoughtInputs.length < requiredInputs) {
313
+ throw new Error(`run_to_completion requires at least ${String(requiredInputs)} thought inputs; received ${String(thoughtInputs.length)}`);
314
+ }
315
+ }
186
316
  async function handleTaskFailure(args) {
187
317
  const { server, taskStore, taskId, sessionId, error } = args;
188
318
  const message = getErrorMessage(error);
@@ -191,18 +321,13 @@ async function handleTaskFailure(args) {
191
321
  await emitLog(server, 'notice', { event: 'task_cancelled', taskId, reason: message }, sessionId);
192
322
  return;
193
323
  }
324
+ await setTaskFailureStatusMessage(taskStore, taskId, message);
194
325
  if (errorCode === 'E_ABORTED') {
195
326
  if (sessionId) {
196
327
  sessionStore.markCancelled(sessionId);
197
328
  }
198
329
  await storeTaskFailure(taskStore, taskId, createErrorResponse(errorCode, message));
199
- try {
200
- await taskStore.updateTaskStatus(taskId, 'cancelled', 'Task cancelled by request.');
201
- }
202
- catch {
203
- // No-op if already terminal.
204
- }
205
- await emitLog(server, 'notice', { event: 'task_cancelled', taskId, reason: message }, sessionId);
330
+ await emitLog(server, 'notice', { event: 'task_aborted', taskId, reason: message }, sessionId);
206
331
  return;
207
332
  }
208
333
  await storeTaskFailure(taskStore, taskId, createErrorResponse(errorCode, message));
@@ -211,17 +336,23 @@ async function handleTaskFailure(args) {
211
336
  async function runReasoningTask(args) {
212
337
  const { server, taskStore, taskId, params, progressToken, controller, sessionId, } = args;
213
338
  const { query, level, targetThoughts } = params;
339
+ const runMode = resolveRunMode(params);
340
+ const thoughtInputs = buildThoughtInputs(params);
341
+ const queryText = query ?? '';
214
342
  await emitLog(server, 'info', {
215
343
  event: 'task_started',
216
344
  taskId,
217
345
  level,
346
+ runMode,
218
347
  hasSessionId: params.sessionId !== undefined,
219
348
  targetThoughts: targetThoughts ?? null,
349
+ thoughtInputs: thoughtInputs.length,
220
350
  }, sessionId);
221
351
  try {
222
- const startingCount = params.sessionId !== undefined
223
- ? (sessionStore.get(params.sessionId)?.thoughts.length ?? 0)
224
- : 0;
352
+ if (runMode === 'run_to_completion') {
353
+ assertRunToCompletionInputCount(params, thoughtInputs);
354
+ }
355
+ const startingCount = getStartingThoughtCount(params.sessionId);
225
356
  const progressArgs = {
226
357
  server,
227
358
  taskStore,
@@ -230,11 +361,20 @@ async function runReasoningTask(args) {
230
361
  controller,
231
362
  ...(progressToken !== undefined ? { progressToken } : {}),
232
363
  };
233
- const session = await reason(query, level, {
234
- ...(params.sessionId ? { sessionId: params.sessionId } : {}),
364
+ const onProgress = createProgressHandler(progressArgs);
365
+ const session = await executeReasoningSteps({
366
+ taskStore,
367
+ taskId,
368
+ controller,
369
+ queryText,
370
+ level,
371
+ ...(params.sessionId !== undefined
372
+ ? { sessionId: params.sessionId }
373
+ : {}),
235
374
  ...(targetThoughts !== undefined ? { targetThoughts } : {}),
236
- abortSignal: controller.signal,
237
- onProgress: createProgressHandler(progressArgs),
375
+ runMode,
376
+ thoughtInputs,
377
+ onProgress,
238
378
  });
239
379
  if (await isTaskCancelled(taskStore, taskId)) {
240
380
  await emitLog(server, 'notice', { event: 'task_cancelled_before_result', taskId }, sessionId);
@@ -278,11 +418,12 @@ const TOOL_NAME = 'reasoning.think';
278
418
  export function registerReasoningThinkTool(server, iconMeta) {
279
419
  server.experimental.tasks.registerToolTask(TOOL_NAME, {
280
420
  title: 'Reasoning Think',
281
- description: 'Perform multi-level reasoning on a query. Use this tool when you need to break down complex problems into structured thought chains. ' +
421
+ description: 'Perform multi-level reasoning on a query. Provide your full reasoning content in the `thought` parameter it is stored verbatim in the session trace. ' +
282
422
  'Supports three depth levels: basic (3–5 thoughts, 2K token budget), normal (6–10 thoughts, 8K budget), and high (15–25 thoughts, 32K budget). ' +
283
- 'Features context-aware templates (Code, Design, Analysis) and automated critique phases for robust problem solving. ' +
423
+ 'Default `runMode="step"` appends one thought to the session per call. `runMode="run_to_completion"` consumes `thought` + `thoughts[]` in one request. ' +
424
+ 'When continuing an existing session, `query` is optional. Repeat calls with the same sessionId and your next thought until totalThoughts is reached. ' +
284
425
  'Returns a session with accumulated thoughts, token usage, and TTL metadata. ' +
285
- 'Continue an existing session by providing sessionId. Supports task-augmented execution for long-running high-level reasoning.',
426
+ 'Supports task-augmented execution for multi-step high-level reasoning.',
286
427
  inputSchema: ReasoningThinkInputSchema,
287
428
  outputSchema: ReasoningThinkToolOutputSchema,
288
429
  annotations: {
@@ -313,19 +454,30 @@ export function registerReasoningThinkTool(server, iconMeta) {
313
454
  ttl: extra.taskRequestedTtl ?? null,
314
455
  pollInterval: 500,
315
456
  });
316
- const controller = createCancellationController(extra.signal);
317
- const taskArgs = {
318
- server,
319
- taskStore: extra.taskStore,
320
- taskId: task.taskId,
321
- params,
322
- controller,
323
- ...(progressToken !== undefined ? { progressToken } : {}),
324
- ...(extra.sessionId !== undefined
325
- ? { sessionId: extra.sessionId }
326
- : {}),
327
- };
328
- void runReasoningTask(taskArgs);
457
+ if (!reasoningTaskLimiter.tryAcquire()) {
458
+ throw new Error(TASK_OVERLOAD_MESSAGE);
459
+ }
460
+ try {
461
+ const controller = createCancellationController(extra.signal);
462
+ const taskArgs = {
463
+ server,
464
+ taskStore: extra.taskStore,
465
+ taskId: task.taskId,
466
+ params,
467
+ controller,
468
+ ...(progressToken !== undefined ? { progressToken } : {}),
469
+ ...(extra.sessionId !== undefined
470
+ ? { sessionId: extra.sessionId }
471
+ : {}),
472
+ };
473
+ void runReasoningTask(taskArgs).finally(() => {
474
+ reasoningTaskLimiter.release();
475
+ });
476
+ }
477
+ catch (error) {
478
+ reasoningTaskLimiter.release();
479
+ throw error;
480
+ }
329
481
  return { task };
330
482
  },
331
483
  getTask(_params, rawExtra) {