@j0hanz/cortex-mcp 1.2.1 → 1.3.0
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 +2 -2
- package/dist/engine/config.d.ts +2 -1
- package/dist/engine/config.d.ts.map +1 -1
- package/dist/engine/config.js +7 -3
- package/dist/engine/config.js.map +1 -1
- package/dist/engine/context.d.ts +4 -4
- package/dist/engine/context.d.ts.map +1 -1
- package/dist/engine/context.js +3 -0
- package/dist/engine/context.js.map +1 -1
- package/dist/engine/events.d.ts +8 -9
- package/dist/engine/events.d.ts.map +1 -1
- package/dist/engine/events.js +6 -3
- package/dist/engine/events.js.map +1 -1
- package/dist/engine/reasoner.d.ts.map +1 -1
- package/dist/engine/reasoner.js +62 -33
- package/dist/engine/reasoner.js.map +1 -1
- package/dist/engine/session-store.d.ts +12 -1
- package/dist/engine/session-store.d.ts.map +1 -1
- package/dist/engine/session-store.js +109 -78
- package/dist/engine/session-store.js.map +1 -1
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/dist/instructions.md +12 -11
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +16 -7
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/formatting.d.ts.map +1 -1
- package/dist/lib/formatting.js +32 -24
- package/dist/lib/formatting.js.map +1 -1
- package/dist/lib/instructions.d.ts.map +1 -1
- package/dist/lib/instructions.js +20 -4
- package/dist/lib/instructions.js.map +1 -1
- package/dist/lib/text.d.ts.map +1 -1
- package/dist/lib/text.js +23 -17
- package/dist/lib/text.js.map +1 -1
- package/dist/lib/tool-response.d.ts.map +1 -1
- package/dist/lib/tool-response.js +9 -6
- package/dist/lib/tool-response.js.map +1 -1
- package/dist/lib/types.d.ts +22 -12
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +12 -10
- package/dist/lib/validators.js.map +1 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +49 -75
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +66 -65
- package/dist/resources/index.js.map +1 -1
- package/dist/schemas/inputs.d.ts.map +1 -1
- package/dist/schemas/inputs.js +26 -47
- package/dist/schemas/inputs.js.map +1 -1
- package/dist/schemas/outputs.d.ts.map +1 -1
- package/dist/schemas/outputs.js +46 -24
- package/dist/schemas/outputs.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +69 -53
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts +0 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/reasoning-think.d.ts.map +1 -1
- package/dist/tools/reasoning-think.js +105 -77
- package/dist/tools/reasoning-think.js.map +1 -1
- package/package.json +10 -7
package/README.md
CHANGED
|
@@ -98,7 +98,7 @@ Add to `~/.cursor/mcp.json`:
|
|
|
98
98
|
|
|
99
99
|
### Tools
|
|
100
100
|
|
|
101
|
-
#### `
|
|
101
|
+
#### `reasoning_think`
|
|
102
102
|
|
|
103
103
|
Perform multi-step reasoning on a query with a selected depth level.
|
|
104
104
|
|
|
@@ -137,7 +137,7 @@ Perform multi-step reasoning on a query with a selected depth level.
|
|
|
137
137
|
|
|
138
138
|
### Tasks
|
|
139
139
|
|
|
140
|
-
Task-augmented tool calls are supported for `
|
|
140
|
+
Task-augmented tool calls are supported for `reasoning_think`. Use `tools/call` with task support to run long-running reasoning sessions asynchronously.
|
|
141
141
|
|
|
142
142
|
## Configuration
|
|
143
143
|
|
package/dist/engine/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReasoningLevel } from '../lib/types.js';
|
|
1
|
+
import type { LevelConfig, ReasoningLevel } from '../lib/types.js';
|
|
2
2
|
export declare const LEVEL_CONFIGS: {
|
|
3
3
|
readonly basic: {
|
|
4
4
|
readonly minThoughts: 3;
|
|
@@ -16,5 +16,6 @@ export declare const LEVEL_CONFIGS: {
|
|
|
16
16
|
readonly tokenBudget: 32768;
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
+
export declare function getLevelConfig(level: ReasoningLevel): LevelConfig;
|
|
19
20
|
export declare function assertTargetThoughtsInRange(level: ReasoningLevel, targetThoughts: number): void;
|
|
20
21
|
//# 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,
|
|
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;;;;;;;;;;;;;;;;CAI8B,CAAC;AAEzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAEjE;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM,GACrB,IAAI,CAON"}
|
package/dist/engine/config.js
CHANGED
|
@@ -4,10 +4,14 @@ export const LEVEL_CONFIGS = {
|
|
|
4
4
|
normal: { minThoughts: 6, maxThoughts: 10, tokenBudget: 8192 },
|
|
5
5
|
high: { minThoughts: 15, maxThoughts: 25, tokenBudget: 32768 },
|
|
6
6
|
};
|
|
7
|
+
export function getLevelConfig(level) {
|
|
8
|
+
return LEVEL_CONFIGS[level];
|
|
9
|
+
}
|
|
7
10
|
export function assertTargetThoughtsInRange(level, targetThoughts) {
|
|
8
|
-
const
|
|
9
|
-
if (
|
|
10
|
-
|
|
11
|
+
const errorMessage = getTargetThoughtsError(level, targetThoughts);
|
|
12
|
+
if (!errorMessage) {
|
|
13
|
+
return;
|
|
11
14
|
}
|
|
15
|
+
throw new Error(errorMessage);
|
|
12
16
|
}
|
|
13
17
|
//# sourceMappingURL=config.js.map
|
|
@@ -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,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,
|
|
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,cAAc,CAAC,KAAqB;IAClD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAqB,EACrB,cAAsB;IAEtB,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/engine/context.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
interface EngineContext {
|
|
2
|
-
sessionId: string;
|
|
3
|
-
abortSignal?: AbortSignal;
|
|
1
|
+
export interface EngineContext {
|
|
2
|
+
readonly sessionId: string;
|
|
3
|
+
readonly abortSignal?: AbortSignal;
|
|
4
4
|
}
|
|
5
5
|
export declare function runWithContext<T>(ctx: EngineContext, fn: () => T): T;
|
|
6
|
-
export
|
|
6
|
+
export declare function getContext(): EngineContext | undefined;
|
|
7
7
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAID,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEpE;AAED,wBAAgB,UAAU,IAAI,aAAa,GAAG,SAAS,CAEtD"}
|
package/dist/engine/context.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAEvD,MAAM,UAAU,cAAc,CAAI,GAAkB,EAAE,EAAW;IAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAEvD,MAAM,UAAU,cAAc,CAAI,GAAkB,EAAE,EAAW;IAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/engine/events.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import type { ReasoningLevel } from '../lib/types.js';
|
|
3
|
+
interface ThoughtBudgetExhaustedPayload {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
tokensUsed: number;
|
|
6
|
+
tokenBudget: number;
|
|
7
|
+
generatedThoughts: number;
|
|
8
|
+
requestedThoughts: number;
|
|
9
|
+
}
|
|
3
10
|
interface EngineEvents {
|
|
4
11
|
'thought:added': [{
|
|
5
12
|
sessionId: string;
|
|
@@ -14,15 +21,7 @@ interface EngineEvents {
|
|
|
14
21
|
revision: number;
|
|
15
22
|
}
|
|
16
23
|
];
|
|
17
|
-
'thought:budget-exhausted': [
|
|
18
|
-
{
|
|
19
|
-
sessionId: string;
|
|
20
|
-
tokensUsed: number;
|
|
21
|
-
tokenBudget: number;
|
|
22
|
-
generatedThoughts: number;
|
|
23
|
-
requestedThoughts: number;
|
|
24
|
-
}
|
|
25
|
-
];
|
|
24
|
+
'thought:budget-exhausted': [ThoughtBudgetExhaustedPayload];
|
|
26
25
|
'session:created': [{
|
|
27
26
|
sessionId: string;
|
|
28
27
|
level: ReasoningLevel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKtD,UAAU,6BAA6B;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,YAAY;IACpB,eAAe,EAAE,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,iBAAiB,EAAE;QACjB;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE;KACxE,CAAC;IACF,0BAA0B,EAAE,CAAC,6BAA6B,CAAC,CAAC;IAC5D,iBAAiB,EAAE,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAClE,iBAAiB,EAAE,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,iBAAiB,EAAE,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,iBAAiB,EAAE,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,mBAAmB,EAAE,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;CAClB;AAED,UAAU,YAAY,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IACzE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAClB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GACjE,IAAI,CAAC;IACR,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EACnB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GACjE,IAAI,CAAC;IACR,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EACpB,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAC7C,OAAO,CAAC;CACZ;AAED,eAAO,MAAM,YAAY,EAEnB,YAAY,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/engine/events.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import { getErrorMessage } from '../lib/errors.js';
|
|
3
|
+
const ENGINE_ERROR_LOG_PREFIX = '[engine]';
|
|
4
|
+
const ENGINE_ERROR_PREFIX_WITH_SPACE = `${ENGINE_ERROR_LOG_PREFIX} `;
|
|
3
5
|
export const engineEvents = new EventEmitter({
|
|
4
6
|
captureRejections: true,
|
|
5
7
|
});
|
|
6
|
-
|
|
7
|
-
process.stderr.write(
|
|
8
|
-
}
|
|
8
|
+
function logEngineError(err) {
|
|
9
|
+
process.stderr.write(`${ENGINE_ERROR_PREFIX_WITH_SPACE}${getErrorMessage(err)}\n`);
|
|
10
|
+
}
|
|
11
|
+
engineEvents.on('error', logEngineError);
|
|
9
12
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAC3C,MAAM,8BAA8B,GAAG,GAAG,uBAAuB,GAAG,CAAC;AAwCrE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;IAC3C,iBAAiB,EAAE,IAAI;CACxB,CAA+B,CAAC;AAEjC,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,8BAA8B,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAC7D,CAAC;AACJ,CAAC;AAED,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasoner.d.ts","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
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;AAK5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,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;AAED,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CA6D5B"}
|
package/dist/engine/reasoner.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
2
|
import { createSegmenter } from '../lib/text.js';
|
|
3
|
-
import { assertTargetThoughtsInRange,
|
|
3
|
+
import { assertTargetThoughtsInRange, getLevelConfig } 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
7
|
const DEFAULT_SESSION_TTL_MS = 30 * 60 * 1000;
|
|
8
8
|
const DEFAULT_MAX_SESSIONS = 100;
|
|
9
9
|
const DEFAULT_MAX_TOTAL_TOKENS = 500_000;
|
|
10
|
+
const NON_WHITESPACE = /\S/u;
|
|
11
|
+
const COMPLEXITY_KEYWORDS = /\b(compare|analy[sz]e|trade[- ]?off|design|plan|critique|evaluate|review|architecture)\b/i;
|
|
10
12
|
function parsePositiveIntEnv(name, fallback, minimum = 1) {
|
|
11
13
|
const raw = process.env[name];
|
|
12
14
|
if (raw === undefined) {
|
|
@@ -28,42 +30,36 @@ export async function reason(query, level, options) {
|
|
|
28
30
|
}
|
|
29
31
|
const { sessionId, targetThoughts, thought, abortSignal, onProgress } = options;
|
|
30
32
|
const session = resolveSession(level, sessionId, query, targetThoughts);
|
|
31
|
-
const config =
|
|
33
|
+
const config = getLevelConfig(session.level);
|
|
32
34
|
const { totalThoughts } = session;
|
|
33
35
|
return runWithContext({ sessionId: session.id, ...(abortSignal ? { abortSignal } : {}) }, () => withSessionLock(session.id, async () => {
|
|
34
36
|
throwIfReasoningAborted(abortSignal);
|
|
35
37
|
const current = getSessionOrThrow(session.id);
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
requestedThoughts: totalThoughts,
|
|
43
|
-
});
|
|
38
|
+
if (emitBudgetExhaustedIfNeeded({
|
|
39
|
+
session: current,
|
|
40
|
+
tokenBudget: config.tokenBudget,
|
|
41
|
+
generatedThoughts: 0,
|
|
42
|
+
requestedThoughts: totalThoughts,
|
|
43
|
+
})) {
|
|
44
44
|
return current;
|
|
45
45
|
}
|
|
46
46
|
const nextIndex = current.thoughts.length;
|
|
47
47
|
if (nextIndex >= totalThoughts) {
|
|
48
48
|
return current;
|
|
49
49
|
}
|
|
50
|
-
const
|
|
51
|
-
const addedThought = sessionStore.addThought(session.id, stepContent);
|
|
50
|
+
const addedThought = sessionStore.addThought(session.id, thought);
|
|
52
51
|
engineEvents.emit('thought:added', {
|
|
53
52
|
sessionId: session.id,
|
|
54
53
|
index: addedThought.index,
|
|
55
54
|
content: addedThought.content,
|
|
56
55
|
});
|
|
57
56
|
const updated = getSessionOrThrow(session.id);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
requestedThoughts: totalThoughts,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
57
|
+
emitBudgetExhaustedIfNeeded({
|
|
58
|
+
session: updated,
|
|
59
|
+
tokenBudget: config.tokenBudget,
|
|
60
|
+
generatedThoughts: addedThought.index + 1,
|
|
61
|
+
requestedThoughts: totalThoughts,
|
|
62
|
+
});
|
|
67
63
|
if (updated.thoughts.length >= totalThoughts) {
|
|
68
64
|
sessionStore.markCompleted(session.id);
|
|
69
65
|
}
|
|
@@ -103,25 +99,46 @@ function getSessionOrThrow(sessionId) {
|
|
|
103
99
|
function emitBudgetExhausted(data) {
|
|
104
100
|
engineEvents.emit('thought:budget-exhausted', data);
|
|
105
101
|
}
|
|
102
|
+
function createBudgetExhaustedPayload(args) {
|
|
103
|
+
const { session, tokenBudget, generatedThoughts, requestedThoughts } = args;
|
|
104
|
+
return {
|
|
105
|
+
sessionId: session.id,
|
|
106
|
+
tokensUsed: session.tokensUsed,
|
|
107
|
+
tokenBudget,
|
|
108
|
+
generatedThoughts,
|
|
109
|
+
requestedThoughts,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function emitBudgetExhaustedIfNeeded(args) {
|
|
113
|
+
const { session, tokenBudget } = args;
|
|
114
|
+
if (session.tokensUsed < tokenBudget) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
emitBudgetExhausted(createBudgetExhaustedPayload(args));
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
function assertExistingSessionConstraints(existing, level, targetThoughts) {
|
|
121
|
+
if (level !== undefined && existing.level !== level) {
|
|
122
|
+
// Warning: ignoring provided level in favor of session level
|
|
123
|
+
}
|
|
124
|
+
if (targetThoughts !== undefined &&
|
|
125
|
+
targetThoughts !== existing.totalThoughts) {
|
|
126
|
+
throw new Error(`Cannot change targetThoughts on an existing session (current: ${String(existing.totalThoughts)}). Omit targetThoughts or pass ${String(existing.totalThoughts)}.`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
106
129
|
function resolveSession(level, sessionId, query, targetThoughts) {
|
|
107
130
|
if (sessionId) {
|
|
108
131
|
const existing = sessionStore.get(sessionId);
|
|
109
132
|
if (!existing) {
|
|
110
133
|
throw new Error(`Session not found: ${sessionId}`);
|
|
111
134
|
}
|
|
112
|
-
|
|
113
|
-
// Warning: ignoring provided level in favor of session level
|
|
114
|
-
}
|
|
115
|
-
if (targetThoughts !== undefined &&
|
|
116
|
-
targetThoughts !== existing.totalThoughts) {
|
|
117
|
-
throw new Error(`Cannot change targetThoughts on an existing session (current: ${String(existing.totalThoughts)}). Omit targetThoughts or pass ${String(existing.totalThoughts)}.`);
|
|
118
|
-
}
|
|
135
|
+
assertExistingSessionConstraints(existing, level, targetThoughts);
|
|
119
136
|
return existing;
|
|
120
137
|
}
|
|
121
138
|
if (level === undefined) {
|
|
122
139
|
throw new Error('level is required for new sessions');
|
|
123
140
|
}
|
|
124
|
-
const config =
|
|
141
|
+
const config = getLevelConfig(level);
|
|
125
142
|
const totalThoughts = resolveThoughtCount(level, query, config, targetThoughts);
|
|
126
143
|
const session = sessionStore.create(level, totalThoughts);
|
|
127
144
|
engineEvents.emit('session:created', {
|
|
@@ -143,8 +160,7 @@ function resolveThoughtCount(level, query, config, targetThoughts) {
|
|
|
143
160
|
const queryByteLength = Buffer.byteLength(queryText, 'utf8');
|
|
144
161
|
const lengthScore = Math.min(1, queryByteLength / 400);
|
|
145
162
|
const structureScore = Math.min(0.4, getStructureDensityScore(queryText));
|
|
146
|
-
const
|
|
147
|
-
const keywordScore = keywords.test(queryText) ? 0.25 : 0;
|
|
163
|
+
const keywordScore = COMPLEXITY_KEYWORDS.test(queryText) ? 0.25 : 0;
|
|
148
164
|
const score = Math.min(1, lengthScore + structureScore + keywordScore);
|
|
149
165
|
return config.minThoughts + Math.round(span * score);
|
|
150
166
|
}
|
|
@@ -154,7 +170,7 @@ function countSentences(queryText) {
|
|
|
154
170
|
}
|
|
155
171
|
let count = 0;
|
|
156
172
|
for (const sentence of sentenceSegmenter.segment(queryText)) {
|
|
157
|
-
if (sentence.segment
|
|
173
|
+
if (NON_WHITESPACE.test(sentence.segment)) {
|
|
158
174
|
count++;
|
|
159
175
|
}
|
|
160
176
|
}
|
|
@@ -165,7 +181,20 @@ function getStructureDensityScore(queryText) {
|
|
|
165
181
|
if (sentenceCount > 1) {
|
|
166
182
|
return (sentenceCount - 1) * 0.08;
|
|
167
183
|
}
|
|
168
|
-
|
|
184
|
+
let markerMatches = 0;
|
|
185
|
+
for (let index = 0; index < queryText.length; index++) {
|
|
186
|
+
switch (queryText.charCodeAt(index)) {
|
|
187
|
+
case 63: // ?
|
|
188
|
+
case 58: // :
|
|
189
|
+
case 59: // ;
|
|
190
|
+
case 44: // ,
|
|
191
|
+
case 10: // \n
|
|
192
|
+
markerMatches += 1;
|
|
193
|
+
break;
|
|
194
|
+
default:
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
169
198
|
return markerMatches * 0.05;
|
|
170
199
|
}
|
|
171
200
|
function throwIfReasoningAborted(signal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../src/engine/reasoner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReasoningLevel, Session, Thought } from '../lib/types.js';
|
|
1
|
+
import type { ReasoningLevel, Session, SessionSummary, Thought } from '../lib/types.js';
|
|
2
2
|
export declare class SessionStore {
|
|
3
3
|
private readonly sessions;
|
|
4
4
|
private readonly sessionOrder;
|
|
@@ -13,7 +13,10 @@ export declare class SessionStore {
|
|
|
13
13
|
constructor(ttlMs?: number, maxSessions?: number, maxTotalTokens?: number);
|
|
14
14
|
create(level: ReasoningLevel, totalThoughts?: number): Readonly<Session>;
|
|
15
15
|
get(id: string): Readonly<Session> | undefined;
|
|
16
|
+
getSummary(id: string): Readonly<SessionSummary> | undefined;
|
|
16
17
|
list(): Readonly<Session>[];
|
|
18
|
+
listSessionIds(): readonly string[];
|
|
19
|
+
listSummaries(): readonly SessionSummary[];
|
|
17
20
|
getTtlMs(): number;
|
|
18
21
|
getExpiresAt(sessionId: string): number | undefined;
|
|
19
22
|
getTotalTokensUsed(): number;
|
|
@@ -22,6 +25,7 @@ export declare class SessionStore {
|
|
|
22
25
|
reviseThought(sessionId: string, thoughtIndex: number, content: string): Thought;
|
|
23
26
|
markCompleted(sessionId: string): void;
|
|
24
27
|
markCancelled(sessionId: string): void;
|
|
28
|
+
private updateSessionStatus;
|
|
25
29
|
private evictIfAtCapacity;
|
|
26
30
|
private evictForTokenHeadroom;
|
|
27
31
|
private findOldestSession;
|
|
@@ -30,11 +34,18 @@ export declare class SessionStore {
|
|
|
30
34
|
private addToOrder;
|
|
31
35
|
private touchOrder;
|
|
32
36
|
private removeFromOrder;
|
|
37
|
+
private setNextId;
|
|
38
|
+
private setPrevId;
|
|
33
39
|
private deleteSessionInternal;
|
|
40
|
+
private markSessionTouched;
|
|
41
|
+
private getSessionIdsForIteration;
|
|
34
42
|
private snapshotThought;
|
|
35
43
|
private snapshotSession;
|
|
44
|
+
private snapshotSessionSummary;
|
|
36
45
|
private emitSessionsListChanged;
|
|
37
46
|
private emitSessionsResourceUpdated;
|
|
47
|
+
private emitSessionsCollectionUpdated;
|
|
48
|
+
private emitSessionEvicted;
|
|
38
49
|
private emitSessionResourcesUpdated;
|
|
39
50
|
}
|
|
40
51
|
//# 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;
|
|
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,cAAc,EACd,OAAO,EACR,MAAM,iBAAiB,CAAC;AAsCzB,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,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,SAAS;IAK5D,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;IAW3B,cAAc,IAAI,SAAS,MAAM,EAAE;IAKnC,aAAa,IAAI,SAAS,cAAc,EAAE;IAW1C,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;IAmBvD,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO;IA6BV,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAItC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAItC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,KAAK;IA2Bb,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,UAAU;IAkClB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,2BAA2B;CAMpC"}
|