koneck 2.25.44 → 2.25.46
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/ask-queue.d.ts +42 -0
- package/dist/ask-queue.d.ts.map +1 -0
- package/dist/ask-queue.js +54 -0
- package/dist/ask-queue.js.map +1 -0
- package/dist/compressor.d.ts +15 -1
- package/dist/compressor.d.ts.map +1 -1
- package/dist/compressor.js +9 -3
- package/dist/compressor.js.map +1 -1
- package/dist/config-store.d.ts +1 -0
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +5 -1
- package/dist/config-store.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/context-limit.d.ts +45 -0
- package/dist/context-limit.d.ts.map +1 -0
- package/dist/context-limit.js +107 -0
- package/dist/context-limit.js.map +1 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +80 -7
- package/dist/engine.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/ink-chat.d.ts.map +1 -1
- package/dist/ink-chat.js +41 -16
- package/dist/ink-chat.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission questions waiting for an answer, oldest first.
|
|
3
|
+
*
|
|
4
|
+
* Sub-agents run concurrently and can each need an answer at the same moment. Holding the current
|
|
5
|
+
* question in a single slot meant the second overwrote the first, whose promise then never
|
|
6
|
+
* settled: that agent waited forever, the pool waiting on it never finished, and the turn hung
|
|
7
|
+
* with nothing on screen to explain why.
|
|
8
|
+
*
|
|
9
|
+
* A queue rather than a set of simultaneous prompts, because a permission question is only
|
|
10
|
+
* answerable if you can read it, and two at once on a terminal is neither.
|
|
11
|
+
*/
|
|
12
|
+
export interface AskRequest<T> {
|
|
13
|
+
tool: string;
|
|
14
|
+
args: string;
|
|
15
|
+
prefix: string;
|
|
16
|
+
resolve: (answer: T) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare class AskQueue<T> {
|
|
19
|
+
private readonly waiting;
|
|
20
|
+
/** Adds a question. Returns true when it is the one now on screen. */
|
|
21
|
+
add(request: AskRequest<T>): boolean;
|
|
22
|
+
/** The question that should be shown, or undefined when there are none. */
|
|
23
|
+
current(): AskRequest<T> | undefined;
|
|
24
|
+
/** How many are behind the current one. */
|
|
25
|
+
get pending(): number;
|
|
26
|
+
get size(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Answers the current question and returns the next.
|
|
29
|
+
*
|
|
30
|
+
* Every exit from the panel goes through here, so no promise is left unsettled — one that is
|
|
31
|
+
* stalls the agent waiting on it, and anything waiting on that agent, indefinitely.
|
|
32
|
+
*/
|
|
33
|
+
answer(value: T): AskRequest<T> | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Answers everything still waiting with the same value.
|
|
36
|
+
*
|
|
37
|
+
* For a cancelled turn: the agents are going away, and leaving their promises hanging would
|
|
38
|
+
* keep the pool alive after the work it was doing had been abandoned.
|
|
39
|
+
*/
|
|
40
|
+
drain(value: T): number;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=ask-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-queue.d.ts","sourceRoot":"","sources":["../src/ask-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;CAC9B;AAED,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,sEAAsE;IACtE,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAKpC,2EAA2E;IAC3E,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAIpC,2CAA2C;IAC3C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAM3C;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM;CAKxB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission questions waiting for an answer, oldest first.
|
|
3
|
+
*
|
|
4
|
+
* Sub-agents run concurrently and can each need an answer at the same moment. Holding the current
|
|
5
|
+
* question in a single slot meant the second overwrote the first, whose promise then never
|
|
6
|
+
* settled: that agent waited forever, the pool waiting on it never finished, and the turn hung
|
|
7
|
+
* with nothing on screen to explain why.
|
|
8
|
+
*
|
|
9
|
+
* A queue rather than a set of simultaneous prompts, because a permission question is only
|
|
10
|
+
* answerable if you can read it, and two at once on a terminal is neither.
|
|
11
|
+
*/
|
|
12
|
+
export class AskQueue {
|
|
13
|
+
waiting = [];
|
|
14
|
+
/** Adds a question. Returns true when it is the one now on screen. */
|
|
15
|
+
add(request) {
|
|
16
|
+
this.waiting.push(request);
|
|
17
|
+
return this.waiting.length === 1;
|
|
18
|
+
}
|
|
19
|
+
/** The question that should be shown, or undefined when there are none. */
|
|
20
|
+
current() {
|
|
21
|
+
return this.waiting[0];
|
|
22
|
+
}
|
|
23
|
+
/** How many are behind the current one. */
|
|
24
|
+
get pending() {
|
|
25
|
+
return Math.max(0, this.waiting.length - 1);
|
|
26
|
+
}
|
|
27
|
+
get size() {
|
|
28
|
+
return this.waiting.length;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Answers the current question and returns the next.
|
|
32
|
+
*
|
|
33
|
+
* Every exit from the panel goes through here, so no promise is left unsettled — one that is
|
|
34
|
+
* stalls the agent waiting on it, and anything waiting on that agent, indefinitely.
|
|
35
|
+
*/
|
|
36
|
+
answer(value) {
|
|
37
|
+
const current = this.waiting.shift();
|
|
38
|
+
current?.resolve(value);
|
|
39
|
+
return this.waiting[0];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Answers everything still waiting with the same value.
|
|
43
|
+
*
|
|
44
|
+
* For a cancelled turn: the agents are going away, and leaving their promises hanging would
|
|
45
|
+
* keep the pool alive after the work it was doing had been abandoned.
|
|
46
|
+
*/
|
|
47
|
+
drain(value) {
|
|
48
|
+
const count = this.waiting.length;
|
|
49
|
+
while (this.waiting.length)
|
|
50
|
+
this.waiting.shift()?.resolve(value);
|
|
51
|
+
return count;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ask-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-queue.js","sourceRoot":"","sources":["../src/ask-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,MAAM,OAAO,QAAQ;IACF,OAAO,GAAyB,EAAE,CAAC;IAEpD,sEAAsE;IACtE,GAAG,CAAC,OAAsB;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,2EAA2E;IAC3E,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,2CAA2C;IAC3C,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAQ;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAQ;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
package/dist/compressor.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import type OpenAI from 'openai';
|
|
2
2
|
import type { Message } from './types.js';
|
|
3
3
|
declare function estimateTokens(messages: Message[]): number;
|
|
4
|
-
export
|
|
4
|
+
export interface CompressOptions {
|
|
5
|
+
/** The model's context window, so compaction happens before the model overflows rather than
|
|
6
|
+
* at a number chosen without reference to it. */
|
|
7
|
+
limit: number;
|
|
8
|
+
/**
|
|
9
|
+
* The prompt size the provider last reported.
|
|
10
|
+
*
|
|
11
|
+
* Preferred over counting characters, which is a guess that ran three times low against real
|
|
12
|
+
* Ollama. The estimate remains for the first turn, before any figure has come back.
|
|
13
|
+
*/
|
|
14
|
+
promptTokens?: number;
|
|
15
|
+
/** Forced by an overflow the model has already refused: the size no longer matters. */
|
|
16
|
+
force?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function compressIfNeeded(messages: Message[], client: OpenAI, model: string, options?: CompressOptions): Promise<{
|
|
5
19
|
messages: Message[];
|
|
6
20
|
compressed: boolean;
|
|
7
21
|
}>;
|
package/dist/compressor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,iBAAS,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAenD;AA0BD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,iBAAS,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAenD;AA0BD,MAAM,WAAW,eAAe;IAC9B;sDACkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAGb,OAAO,GAAE,eAAkD,GAC1D,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAsDvD;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/compressor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { shouldCompact, DEFAULT_CONTEXT_LIMIT } from './context-limit.js';
|
|
1
2
|
const CHARS_PER_TOKEN = 4;
|
|
2
|
-
const COMPRESSION_THRESHOLD = 80_000;
|
|
3
3
|
const KEEP_RECENT_MESSAGES = 12;
|
|
4
4
|
function estimateTokens(messages) {
|
|
5
5
|
return messages.reduce((total, msg) => {
|
|
@@ -40,8 +40,14 @@ function turnBoundaryAtOrBefore(messages, from, min = 2) {
|
|
|
40
40
|
i--;
|
|
41
41
|
return Math.max(i, min);
|
|
42
42
|
}
|
|
43
|
-
export async function compressIfNeeded(messages, client, model
|
|
44
|
-
|
|
43
|
+
export async function compressIfNeeded(messages, client, model,
|
|
44
|
+
// Defaulted rather than required: a caller that forgets should compact conservatively, not
|
|
45
|
+
// throw. The engine always passes the real window.
|
|
46
|
+
options = { limit: DEFAULT_CONTEXT_LIMIT }) {
|
|
47
|
+
const size = options.promptTokens && options.promptTokens > 0
|
|
48
|
+
? options.promptTokens
|
|
49
|
+
: estimateTokens(messages);
|
|
50
|
+
if (!options.force && !shouldCompact(size, options.limit)) {
|
|
45
51
|
return { messages, compressed: false };
|
|
46
52
|
}
|
|
47
53
|
// Always keep: system prompt + first user message + the last N messages.
|
package/dist/compressor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,SAAS,cAAc,CAAC,QAAmB;IACzC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,IAAI,GAAG,GAAG,CAAC,OAAO;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACpF,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,IAAI,YAAY,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAmB;IAC3C,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GACX,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAC3B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,IAAI,MAAM,OAAO,EAAE,CAAC;IACjC,CAAC,CAAC;SACD,IAAI,CAAC,SAAS,CAAC,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,QAAmB,EAAE,IAAY,EAAE,GAAG,GAAG,CAAC;IACxE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM;QAAE,CAAC,EAAE,CAAC;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAmB,EACnB,MAAc,EACd,KAAa;AACb,2FAA2F;AAC3F,mDAAmD;AACnD,UAA2B,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAE3D,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;QAC3D,CAAC,CAAC,OAAO,CAAC,YAAY;QACtB,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,yEAAyE;IACzE,EAAE;IACF,8FAA8F;IAC9F,+FAA+F;IAC/F,2FAA2F;IAC3F,4FAA4F;IAC5F,0FAA0F;IAC1F,wCAAwC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EACL,uEAAuE;wBACvE,6EAA6E;wBAC7E,WAAW;iBACd;aACF;YACD,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,eAAe,CAAC;QACzE,MAAM,UAAU,GAAY;YAC1B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,yBAAyB,MAAM,CAAC,MAAM,eAAe,OAAO,EAAE;SACxE,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/config-store.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,WAAW,QAAuC,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAQ,MAAM,CAAC;IACxB,KAAK,CAAC,EAAW,MAAM,CAAC;IACxB,OAAO,CAAC,EAAS,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAQ,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,WAAW,CAAC,EAAK,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAQ,MAAM,CAAC;IACxB,SAAS,CAAC,EAAO,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,WAAW,QAAuC,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAQ,MAAM,CAAC;IACxB,KAAK,CAAC,EAAW,MAAM,CAAC;IACxB,OAAO,CAAC,EAAS,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAQ,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,WAAW,CAAC,EAAK,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAQ,MAAM,CAAC;IACxB,SAAS,CAAC,EAAO,OAAO,CAAC;IACzB,aAAa,CAAC,EAAG,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyBD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAM9D;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBvG;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9D;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,sFAAsF;IACtF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EA0B/C,CAAC;AAEF,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAY1F;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAInD"}
|
package/dist/config-store.js
CHANGED
|
@@ -6,7 +6,7 @@ const CONFIG_DIR = path.join(os.homedir(), '.koneck');
|
|
|
6
6
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
7
7
|
const ALLOWED_KEYS = [
|
|
8
8
|
'provider', 'model', 'baseURL', 'requireApproval', 'maxTurns', 'effort', 'personality', 'budget',
|
|
9
|
-
'maxWidth', 'altScreen',
|
|
9
|
+
'maxWidth', 'altScreen', 'contextTokens',
|
|
10
10
|
'agentConcurrency',
|
|
11
11
|
];
|
|
12
12
|
const KEY_DESCRIPTIONS = {
|
|
@@ -15,6 +15,8 @@ const KEY_DESCRIPTIONS = {
|
|
|
15
15
|
baseURL: 'Custom API base URL',
|
|
16
16
|
requireApproval: 'Require approval before tool calls (true/false)',
|
|
17
17
|
maxTurns: 'Turn limit per task; unset or 0 means no limit (number)',
|
|
18
|
+
contextTokens: 'The model\'s context window, when you know it better than KONECK does. ' +
|
|
19
|
+
'Compaction happens at three quarters of this (number)',
|
|
18
20
|
altScreen: 'Own the terminal screen and pin the prompt to the last row; history is then ' +
|
|
19
21
|
'scrolled inside KONECK rather than by the terminal (true/false)',
|
|
20
22
|
maxWidth: 'Cap the UI width in columns; unset fills the terminal (number)',
|
|
@@ -88,6 +90,8 @@ export const CONFIG_SCHEMA = [
|
|
|
88
90
|
type: { kind: 'number', min: 1, max: 8 }, clearable: true },
|
|
89
91
|
{ key: 'altScreen', label: 'Alt screen', description: KEY_DESCRIPTIONS['altScreen'],
|
|
90
92
|
type: { kind: 'boolean' }, clearable: true },
|
|
93
|
+
{ key: 'contextTokens', label: 'Context window', description: KEY_DESCRIPTIONS['contextTokens'],
|
|
94
|
+
type: { kind: 'number', min: 1_000, max: 10_000_000 }, clearable: true },
|
|
91
95
|
{ key: 'maxWidth', label: 'UI width cap', description: KEY_DESCRIPTIONS['maxWidth'],
|
|
92
96
|
type: { kind: 'number', min: 40, max: 400 }, clearable: true },
|
|
93
97
|
{ key: 'budget', label: 'Budget per session', description: KEY_DESCRIPTIONS['budget'],
|
package/dist/config-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,UAAU,GAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config-store.js","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface KoneckFileConfig {
|
|
|
8
8
|
apiKey?: string;
|
|
9
9
|
agentConcurrency?: number;
|
|
10
10
|
altScreen?: boolean;
|
|
11
|
+
contextTokens?: number;
|
|
11
12
|
}
|
|
12
13
|
export declare function globalConfigPath(): string;
|
|
13
14
|
export declare function loadGlobalConfig(): Promise<KoneckFileConfig>;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAOlE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYnF;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmB5E"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAexB,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;AAE/E,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAqB;IAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAqB,CAAC;YAC9F,CAAC;YAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC5B,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAElC,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,MAAM;QACxB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,kCAAkC;IAClC,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much context a model will actually accept, and what to do when that is exceeded.
|
|
3
|
+
*
|
|
4
|
+
* Compaction used to fire at a fixed 80,000 tokens whatever the model was. qwen2.5-coder through
|
|
5
|
+
* Ollama accepts 32,768, so the threshold was never reached before the model overflowed — and
|
|
6
|
+
* Ollama does not refuse an over-long prompt, it silently drops the front of it. The agent then
|
|
7
|
+
* carries on with the beginning of its own conversation missing, which from outside looks exactly
|
|
8
|
+
* like a model that has forgotten what it was doing. It was never given the chance to remember.
|
|
9
|
+
*
|
|
10
|
+
* Two mechanisms, because neither alone is enough. A table of known limits is a guess that is
|
|
11
|
+
* usually right and occasionally wrong; an overflow error is the truth but arrives too late to
|
|
12
|
+
* prevent one. So the table drives early compaction, and the error teaches the real number for
|
|
13
|
+
* the rest of the session.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* What to assume when the model is not recognised.
|
|
17
|
+
*
|
|
18
|
+
* Deliberately not generous. Compacting a little early costs one summarisation; compacting too
|
|
19
|
+
* late costs the front of the conversation without saying so, which is the failure this exists
|
|
20
|
+
* to prevent. A hosted model that turns out to be larger corrects itself the first time real
|
|
21
|
+
* usage figures come back under the limit.
|
|
22
|
+
*/
|
|
23
|
+
export declare const DEFAULT_CONTEXT_LIMIT = 32768;
|
|
24
|
+
/** The window for a model, by name. */
|
|
25
|
+
export declare function contextLimitFor(model: string, configured?: number): number;
|
|
26
|
+
/**
|
|
27
|
+
* The share of the window to stay under.
|
|
28
|
+
*
|
|
29
|
+
* The prompt is not the whole story: the reply needs room too, and the next turn's tool results
|
|
30
|
+
* arrive before compaction can run again. Three quarters leaves space for both without
|
|
31
|
+
* summarising away a conversation that had plenty of room left.
|
|
32
|
+
*/
|
|
33
|
+
export declare const COMPACT_AT = 0.75;
|
|
34
|
+
export declare function shouldCompact(promptTokens: number, limit: number): boolean;
|
|
35
|
+
/** Whether a provider error is "your prompt is too long" rather than anything else. */
|
|
36
|
+
export declare function looksLikeContextOverflow(err: unknown): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The real limit, when the provider names it in the complaint.
|
|
39
|
+
*
|
|
40
|
+
* Worth reading rather than guessing again: "maximum context length is 32768 tokens" is the
|
|
41
|
+
* number, and taking it means the rest of the session compacts at the right point instead of
|
|
42
|
+
* repeating the same failure.
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseContextLimit(err: unknown): number | null;
|
|
45
|
+
//# sourceMappingURL=context-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-limit.d.ts","sourceRoot":"","sources":["../src/context-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA6BH;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAS1E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAI9D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgB7D"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much context a model will actually accept, and what to do when that is exceeded.
|
|
3
|
+
*
|
|
4
|
+
* Compaction used to fire at a fixed 80,000 tokens whatever the model was. qwen2.5-coder through
|
|
5
|
+
* Ollama accepts 32,768, so the threshold was never reached before the model overflowed — and
|
|
6
|
+
* Ollama does not refuse an over-long prompt, it silently drops the front of it. The agent then
|
|
7
|
+
* carries on with the beginning of its own conversation missing, which from outside looks exactly
|
|
8
|
+
* like a model that has forgotten what it was doing. It was never given the chance to remember.
|
|
9
|
+
*
|
|
10
|
+
* Two mechanisms, because neither alone is enough. A table of known limits is a guess that is
|
|
11
|
+
* usually right and occasionally wrong; an overflow error is the truth but arrives too late to
|
|
12
|
+
* prevent one. So the table drives early compaction, and the error teaches the real number for
|
|
13
|
+
* the rest of the session.
|
|
14
|
+
*/
|
|
15
|
+
/** Context windows by model-name fragment, longest fragment winning. */
|
|
16
|
+
const KNOWN_LIMITS = [
|
|
17
|
+
['qwen2.5-coder', 32_768],
|
|
18
|
+
['qwen3-coder', 32_768],
|
|
19
|
+
['qwen', 32_768],
|
|
20
|
+
['deepseek-r1', 65_536],
|
|
21
|
+
['deepseek', 65_536],
|
|
22
|
+
['gemma3', 8_192],
|
|
23
|
+
['gemma', 8_192],
|
|
24
|
+
['codellama', 16_384],
|
|
25
|
+
['llama3', 8_192],
|
|
26
|
+
['mistral', 32_768],
|
|
27
|
+
['phi', 16_384],
|
|
28
|
+
['gpt-4o', 128_000],
|
|
29
|
+
['gpt-4', 128_000],
|
|
30
|
+
['gpt-5', 400_000],
|
|
31
|
+
['o1', 200_000],
|
|
32
|
+
['o3', 200_000],
|
|
33
|
+
['claude-sonnet-4', 200_000],
|
|
34
|
+
['claude-sonnet-5', 200_000],
|
|
35
|
+
['claude-haiku', 200_000],
|
|
36
|
+
['claude-opus', 200_000],
|
|
37
|
+
['claude', 200_000],
|
|
38
|
+
['gemini', 1_000_000],
|
|
39
|
+
['grok', 131_072],
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* What to assume when the model is not recognised.
|
|
43
|
+
*
|
|
44
|
+
* Deliberately not generous. Compacting a little early costs one summarisation; compacting too
|
|
45
|
+
* late costs the front of the conversation without saying so, which is the failure this exists
|
|
46
|
+
* to prevent. A hosted model that turns out to be larger corrects itself the first time real
|
|
47
|
+
* usage figures come back under the limit.
|
|
48
|
+
*/
|
|
49
|
+
export const DEFAULT_CONTEXT_LIMIT = 32_768;
|
|
50
|
+
/** The window for a model, by name. */
|
|
51
|
+
export function contextLimitFor(model, configured) {
|
|
52
|
+
if (configured && Number.isFinite(configured) && configured > 0)
|
|
53
|
+
return Math.floor(configured);
|
|
54
|
+
const name = model.toLowerCase();
|
|
55
|
+
let best = null;
|
|
56
|
+
for (const [fragment, limit] of KNOWN_LIMITS) {
|
|
57
|
+
if (!name.includes(fragment))
|
|
58
|
+
continue;
|
|
59
|
+
if (!best || fragment.length > best.fragment.length)
|
|
60
|
+
best = { fragment, limit };
|
|
61
|
+
}
|
|
62
|
+
return best?.limit ?? DEFAULT_CONTEXT_LIMIT;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The share of the window to stay under.
|
|
66
|
+
*
|
|
67
|
+
* The prompt is not the whole story: the reply needs room too, and the next turn's tool results
|
|
68
|
+
* arrive before compaction can run again. Three quarters leaves space for both without
|
|
69
|
+
* summarising away a conversation that had plenty of room left.
|
|
70
|
+
*/
|
|
71
|
+
export const COMPACT_AT = 0.75;
|
|
72
|
+
export function shouldCompact(promptTokens, limit) {
|
|
73
|
+
return promptTokens > 0 && promptTokens >= limit * COMPACT_AT;
|
|
74
|
+
}
|
|
75
|
+
/** Whether a provider error is "your prompt is too long" rather than anything else. */
|
|
76
|
+
export function looksLikeContextOverflow(err) {
|
|
77
|
+
const text = String(err?.message ?? err ?? '').toLowerCase();
|
|
78
|
+
return /context length|context window|too many tokens|maximum context|prompt is too long|reduce the length|context_length_exceeded/
|
|
79
|
+
.test(text);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The real limit, when the provider names it in the complaint.
|
|
83
|
+
*
|
|
84
|
+
* Worth reading rather than guessing again: "maximum context length is 32768 tokens" is the
|
|
85
|
+
* number, and taking it means the rest of the session compacts at the right point instead of
|
|
86
|
+
* repeating the same failure.
|
|
87
|
+
*/
|
|
88
|
+
export function parseContextLimit(err) {
|
|
89
|
+
const text = String(err?.message ?? err ?? '');
|
|
90
|
+
const patterns = [
|
|
91
|
+
/maximum context length is (\d[\d,_]*)/i,
|
|
92
|
+
/context length of (\d[\d,_]*)/i,
|
|
93
|
+
/context window (?:of |is )?(\d[\d,_]*)/i,
|
|
94
|
+
/(\d[\d,_]*) tokens? (?:maximum|max|limit)/i,
|
|
95
|
+
];
|
|
96
|
+
for (const pattern of patterns) {
|
|
97
|
+
const found = pattern.exec(text)?.[1];
|
|
98
|
+
if (!found)
|
|
99
|
+
continue;
|
|
100
|
+
const value = Number(found.replace(/[,_]/g, ''));
|
|
101
|
+
// A four-figure floor rejects matches on a token count that is not a limit at all.
|
|
102
|
+
if (Number.isFinite(value) && value >= 1_000)
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=context-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-limit.js","sourceRoot":"","sources":["../src/context-limit.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|