@nac3/forge-cli 1.0.80 → 1.0.82
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/chat/claude.d.ts +2 -0
- package/dist/chat/claude.d.ts.map +1 -1
- package/dist/chat/claude.js +3 -2
- package/dist/chat/claude.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +126 -16
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +64 -4
- package/dist/chat/server.js.map +1 -1
- package/dist/core/brain_behaviour.d.ts +46 -0
- package/dist/core/brain_behaviour.d.ts.map +1 -0
- package/dist/core/brain_behaviour.js +112 -0
- package/dist/core/brain_behaviour.js.map +1 -0
- package/dist/core/desktop_open.d.ts +3 -0
- package/dist/core/desktop_open.d.ts.map +1 -1
- package/dist/core/desktop_open.js +17 -0
- package/dist/core/desktop_open.js.map +1 -1
- package/dist/core/limits_config.d.ts +5 -0
- package/dist/core/limits_config.d.ts.map +1 -1
- package/dist/core/limits_config.js +10 -0
- package/dist/core/limits_config.js.map +1 -1
- package/dist/llm/context_compaction.d.ts +35 -0
- package/dist/llm/context_compaction.d.ts.map +1 -0
- package/dist/llm/context_compaction.js +45 -0
- package/dist/llm/context_compaction.js.map +1 -0
- package/dist/llm/deepseek_client.d.ts.map +1 -1
- package/dist/llm/deepseek_client.js +60 -11
- package/dist/llm/deepseek_client.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/i18n/catalogs/ar.json +3 -0
- package/src/i18n/catalogs/de.json +3 -0
- package/src/i18n/catalogs/en.json +3 -0
- package/src/i18n/catalogs/es.json +3 -0
- package/src/i18n/catalogs/fr.json +3 -0
- package/src/i18n/catalogs/hi.json +3 -0
- package/src/i18n/catalogs/it.json +3 -0
- package/src/i18n/catalogs/ja.json +3 -0
- package/src/i18n/catalogs/pt.json +3 -0
- package/src/i18n/catalogs/zh.json +3 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { BrainProvider } from './brain_config.js';
|
|
2
|
+
export interface CompactionConfig {
|
|
3
|
+
/** Master switch. */
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
/** Keep the N most recent tool results in FULL; older ones are compacted to
|
|
6
|
+
* a short marker. Lower = more aggressive. */
|
|
7
|
+
keep_recent_tool_results: number;
|
|
8
|
+
/** Do not compact until the turn has done at least this many rounds (so
|
|
9
|
+
* short turns are never touched). */
|
|
10
|
+
trigger_after_rounds: number;
|
|
11
|
+
}
|
|
12
|
+
export interface BrainBehaviour {
|
|
13
|
+
compaction: CompactionConfig;
|
|
14
|
+
/** A single serialized tool result larger than this (bytes) is capped
|
|
15
|
+
* before it enters the conversation. */
|
|
16
|
+
tool_result_max_bytes: number;
|
|
17
|
+
/** How to cap: 'head' keeps the first tool_result_max_bytes + a marker (the
|
|
18
|
+
* model still SEES the data -- fixes "reports data missing"); 'stub' hides
|
|
19
|
+
* it behind a {_truncated} placeholder (legacy, blind). */
|
|
20
|
+
tool_result_mode: 'head' | 'stub';
|
|
21
|
+
}
|
|
22
|
+
/** Capability tier that drives the behaviour default. */
|
|
23
|
+
export type CapabilityTier = 'large' | 'medium';
|
|
24
|
+
/** Large-context, long-turn-tolerant brains vs. the rest. Conservative: an
|
|
25
|
+
* unknown model on a known big-context provider still gets 'large'; unknown
|
|
26
|
+
* providers default to 'medium' (safer -- more compaction). */
|
|
27
|
+
export declare function capabilityTier(provider: BrainProvider, model: string): CapabilityTier;
|
|
28
|
+
/** The capability-derived default for a (provider, model) -- no overrides. */
|
|
29
|
+
export declare function defaultBehaviourFor(provider: BrainProvider, model: string): BrainBehaviour;
|
|
30
|
+
export interface BrainBehaviourOverrides {
|
|
31
|
+
/** Per-provider partial overrides applied on top of the capability default. */
|
|
32
|
+
by_provider: Partial<Record<BrainProvider, DeepPartialBehaviour>>;
|
|
33
|
+
}
|
|
34
|
+
export interface DeepPartialBehaviour {
|
|
35
|
+
compaction?: Partial<CompactionConfig>;
|
|
36
|
+
tool_result_max_bytes?: number;
|
|
37
|
+
tool_result_mode?: 'head' | 'stub';
|
|
38
|
+
}
|
|
39
|
+
export declare function readBrainBehaviourOverrides(): Promise<BrainBehaviourOverrides>;
|
|
40
|
+
export declare function writeBrainBehaviourOverrides(o: BrainBehaviourOverrides): Promise<void>;
|
|
41
|
+
/** Merge a partial override onto a base, clamping to safe ranges. */
|
|
42
|
+
export declare function mergeBehaviour(base: BrainBehaviour, ov: DeepPartialBehaviour | undefined): BrainBehaviour;
|
|
43
|
+
/** The effective behaviour for a (provider, model): capability default merged
|
|
44
|
+
* with the saved per-provider override. */
|
|
45
|
+
export declare function resolveBrainBehaviour(provider: BrainProvider, model: string): Promise<BrainBehaviour>;
|
|
46
|
+
//# sourceMappingURL=brain_behaviour.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain_behaviour.d.ts","sourceRoot":"","sources":["../../src/core/brain_behaviour.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB;mDAC+C;IAC/C,wBAAwB,EAAE,MAAM,CAAC;IACjC;0CACsC;IACtC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B;6CACyC;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;gEAE4D;IAC5D,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD;;gEAEgE;AAChE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAarF;AAiBD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAE1F;AAID,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAQD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CASpF;AAED,wBAAsB,4BAA4B,CAAC,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5F;AAOD,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,oBAAoB,GAAG,SAAS,GAAG,cAAc,CAmBzG;AAED;4CAC4C;AAC5C,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAI3G"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brain behaviour -- per-brain runtime tuning (PND-156).
|
|
3
|
+
*
|
|
4
|
+
* Different brains have very different context budgets and tolerance for long,
|
|
5
|
+
* tool-heavy turns. Claude 4.x / Gemini 1.5+ have huge context and reason well
|
|
6
|
+
* over a big accumulated history, so they need little compaction and can carry
|
|
7
|
+
* large tool results. DeepSeek / Mistral / GLM have a smaller effective window
|
|
8
|
+
* and degrade fast as the messages array grows (RSS to ~1GB, event-loop
|
|
9
|
+
* stalls, context loss -- seen live in rpa-osde's journald). This module is the
|
|
10
|
+
* single source of truth for HOW AGGRESSIVELY to compact the conversation and
|
|
11
|
+
* how big a single tool result may be before it is capped -- a capability-
|
|
12
|
+
* derived DEFAULT per brain, plus a manual override the operator can save.
|
|
13
|
+
*
|
|
14
|
+
* Persistence: $YF_CONFIG_DIR/brain_behaviour.json (or ~/.yujin-forge/...).
|
|
15
|
+
* The file holds ONLY the overrides; the defaults are computed from capability
|
|
16
|
+
* so a new supported brain gets a sane baseline for free.
|
|
17
|
+
*
|
|
18
|
+
* ASCII-only.
|
|
19
|
+
*/
|
|
20
|
+
import { promises as fs } from 'node:fs';
|
|
21
|
+
import path from 'node:path';
|
|
22
|
+
import os from 'node:os';
|
|
23
|
+
/** Large-context, long-turn-tolerant brains vs. the rest. Conservative: an
|
|
24
|
+
* unknown model on a known big-context provider still gets 'large'; unknown
|
|
25
|
+
* providers default to 'medium' (safer -- more compaction). */
|
|
26
|
+
export function capabilityTier(provider, model) {
|
|
27
|
+
const m = (model || '').toLowerCase();
|
|
28
|
+
switch (provider) {
|
|
29
|
+
case 'anthropic': return 'large'; /* Claude 3.5/4.x: 200K ctx */
|
|
30
|
+
case 'google_ai': return 'large'; /* Gemini 1.5/2.x: up to 1M ctx */
|
|
31
|
+
case 'yujin_managed': return 'large'; /* proxy routes to a capable model */
|
|
32
|
+
case 'openai':
|
|
33
|
+
/* gpt-4.1 / gpt-4o / o-series = large; older/mini text = medium. */
|
|
34
|
+
return /gpt-4\.1|gpt-4o|o[134]/.test(m) ? 'large' : 'medium';
|
|
35
|
+
default:
|
|
36
|
+
/* deepseek, mistral, zai/GLM, qwen, cohere, xai, ollama, ... */
|
|
37
|
+
return 'medium';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const LARGE = {
|
|
41
|
+
compaction: { enabled: false, keep_recent_tool_results: 40, trigger_after_rounds: 30 },
|
|
42
|
+
tool_result_max_bytes: 1_000_000,
|
|
43
|
+
tool_result_mode: 'head',
|
|
44
|
+
};
|
|
45
|
+
const MEDIUM = {
|
|
46
|
+
compaction: { enabled: true, keep_recent_tool_results: 8, trigger_after_rounds: 4 },
|
|
47
|
+
tool_result_max_bytes: 200_000,
|
|
48
|
+
tool_result_mode: 'head',
|
|
49
|
+
};
|
|
50
|
+
function clone(b) {
|
|
51
|
+
return { compaction: { ...b.compaction }, tool_result_max_bytes: b.tool_result_max_bytes, tool_result_mode: b.tool_result_mode };
|
|
52
|
+
}
|
|
53
|
+
/** The capability-derived default for a (provider, model) -- no overrides. */
|
|
54
|
+
export function defaultBehaviourFor(provider, model) {
|
|
55
|
+
return clone(capabilityTier(provider, model) === 'large' ? LARGE : MEDIUM);
|
|
56
|
+
}
|
|
57
|
+
function configPath() {
|
|
58
|
+
const base = process.env.YF_CONFIG_DIR
|
|
59
|
+
|| path.join(process.env.HOME || process.env.USERPROFILE || os.homedir(), '.yujin-forge');
|
|
60
|
+
return path.join(base, 'brain_behaviour.json');
|
|
61
|
+
}
|
|
62
|
+
export async function readBrainBehaviourOverrides() {
|
|
63
|
+
try {
|
|
64
|
+
const raw = await fs.readFile(configPath(), 'utf-8');
|
|
65
|
+
const j = JSON.parse(raw);
|
|
66
|
+
if (j && typeof j === 'object' && j.by_provider && typeof j.by_provider === 'object') {
|
|
67
|
+
return { by_provider: j.by_provider };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch { /* absent / unreadable -> no overrides */ }
|
|
71
|
+
return { by_provider: {} };
|
|
72
|
+
}
|
|
73
|
+
export async function writeBrainBehaviourOverrides(o) {
|
|
74
|
+
const p = configPath();
|
|
75
|
+
await fs.mkdir(path.dirname(p), { recursive: true });
|
|
76
|
+
await fs.writeFile(p, JSON.stringify({ by_provider: o.by_provider || {} }, null, 2) + '\n', 'utf-8');
|
|
77
|
+
}
|
|
78
|
+
function clampInt(v, lo, hi, dflt) {
|
|
79
|
+
const n = typeof v === 'number' && Number.isFinite(v) ? Math.round(v) : dflt;
|
|
80
|
+
return Math.max(lo, Math.min(hi, n));
|
|
81
|
+
}
|
|
82
|
+
/** Merge a partial override onto a base, clamping to safe ranges. */
|
|
83
|
+
export function mergeBehaviour(base, ov) {
|
|
84
|
+
const out = clone(base);
|
|
85
|
+
if (!ov)
|
|
86
|
+
return out;
|
|
87
|
+
if (ov.compaction) {
|
|
88
|
+
if (typeof ov.compaction.enabled === 'boolean')
|
|
89
|
+
out.compaction.enabled = ov.compaction.enabled;
|
|
90
|
+
if (ov.compaction.keep_recent_tool_results !== undefined) {
|
|
91
|
+
out.compaction.keep_recent_tool_results = clampInt(ov.compaction.keep_recent_tool_results, 1, 200, base.compaction.keep_recent_tool_results);
|
|
92
|
+
}
|
|
93
|
+
if (ov.compaction.trigger_after_rounds !== undefined) {
|
|
94
|
+
out.compaction.trigger_after_rounds = clampInt(ov.compaction.trigger_after_rounds, 0, 200, base.compaction.trigger_after_rounds);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (ov.tool_result_max_bytes !== undefined) {
|
|
98
|
+
out.tool_result_max_bytes = clampInt(ov.tool_result_max_bytes, 4_000, 8_000_000, base.tool_result_max_bytes);
|
|
99
|
+
}
|
|
100
|
+
if (ov.tool_result_mode === 'head' || ov.tool_result_mode === 'stub') {
|
|
101
|
+
out.tool_result_mode = ov.tool_result_mode;
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
/** The effective behaviour for a (provider, model): capability default merged
|
|
106
|
+
* with the saved per-provider override. */
|
|
107
|
+
export async function resolveBrainBehaviour(provider, model) {
|
|
108
|
+
const base = defaultBehaviourFor(provider, model);
|
|
109
|
+
const ov = await readBrainBehaviourOverrides();
|
|
110
|
+
return mergeBehaviour(base, ov.by_provider[provider]);
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=brain_behaviour.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain_behaviour.js","sourceRoot":"","sources":["../../src/core/brain_behaviour.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,9 @@ export interface DesktopOpenResult {
|
|
|
7
7
|
app_hint?: string;
|
|
8
8
|
error?: string;
|
|
9
9
|
}
|
|
10
|
+
/** A headless Linux server (no X/Wayland) has no `xdg-open` target -- trying
|
|
11
|
+
* to launch it threw repeated uncaughtException on rpa-osde (PND-156). */
|
|
12
|
+
export declare function isHeadless(): boolean;
|
|
10
13
|
/** Launcher type -- injectable so tests can assert WHAT would be
|
|
11
14
|
* opened without actually spawning a GUI app. */
|
|
12
15
|
export type Launcher = (target: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop_open.d.ts","sourceRoot":"","sources":["../../src/core/desktop_open.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"desktop_open.d.ts","sourceRoot":"","sources":["../../src/core/desktop_open.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoCD;2EAC2E;AAC3E,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAWD;kDACkD;AAClD,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAchD;qEACqE;AACrE,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB,GAC/D,OAAO,CAAC,iBAAiB,CAAC,CA4C5B"}
|
|
@@ -54,9 +54,18 @@ function shellOpen(target) {
|
|
|
54
54
|
}
|
|
55
55
|
return { command: 'xdg-open', args: [target] };
|
|
56
56
|
}
|
|
57
|
+
/** A headless Linux server (no X/Wayland) has no `xdg-open` target -- trying
|
|
58
|
+
* to launch it threw repeated uncaughtException on rpa-osde (PND-156). */
|
|
59
|
+
export function isHeadless() {
|
|
60
|
+
return process.platform === 'linux'
|
|
61
|
+
&& !process.env.DISPLAY && !process.env.WAYLAND_DISPLAY;
|
|
62
|
+
}
|
|
57
63
|
function launch(target) {
|
|
58
64
|
const { command, args } = shellOpen(target);
|
|
59
65
|
const child = spawn(command, args, { detached: true, stdio: 'ignore', windowsHide: false });
|
|
66
|
+
/* CRITICAL: a missing launcher (xdg-open absent on a headless server) fires
|
|
67
|
+
* an 'error' event -- unhandled it becomes an uncaughtException. Swallow it. */
|
|
68
|
+
child.on('error', () => { });
|
|
60
69
|
child.unref();
|
|
61
70
|
}
|
|
62
71
|
/** Resolve a Google Drive shortcut file (.gsheet/.gdoc/.gslides), which
|
|
@@ -79,6 +88,14 @@ export async function openNative(target, projectRoot, launchFn = launch) {
|
|
|
79
88
|
const t = String(target ?? '').trim();
|
|
80
89
|
if (!t)
|
|
81
90
|
return { ok: false, error: 'target is required' };
|
|
91
|
+
/* Headless server: there is no graphical viewer to open into. Refuse
|
|
92
|
+
* clearly (instead of spawning a missing xdg-open) so the brain reads a
|
|
93
|
+
* useful message and reaches for a reader tool instead. Only when using the
|
|
94
|
+
* real launcher -- an injected launchFn (tests) still runs. */
|
|
95
|
+
if (launchFn === launch && isHeadless()) {
|
|
96
|
+
return { ok: false, error: 'headless: no hay entorno grafico en este server para abrir "' + t
|
|
97
|
+
+ '". Si es un office/imagen/pdf, leelo con office.excel.read / office.word.read / office.pdf.read o descargalo.' };
|
|
98
|
+
}
|
|
82
99
|
/* URL -> browser. Only http(s) (no file://, javascript:, etc.). */
|
|
83
100
|
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(t) || /^[a-z]+:/i.test(t)) {
|
|
84
101
|
if (!/^https?:\/\//i.test(t)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop_open.js","sourceRoot":"","sources":["../../src/core/desktop_open.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"desktop_open.js","sourceRoot":"","sources":["../../src/core/desktop_open.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,10 @@ export interface MultiagentConfig {
|
|
|
52
52
|
* explicit opt-in. */
|
|
53
53
|
enabled: boolean;
|
|
54
54
|
}
|
|
55
|
+
export interface FilesTabConfig {
|
|
56
|
+
max_nodes: number;
|
|
57
|
+
max_depth: number;
|
|
58
|
+
}
|
|
55
59
|
export interface LimitsConfig {
|
|
56
60
|
version: 1;
|
|
57
61
|
max_tool_rounds: MaxToolRoundsConfig;
|
|
@@ -73,6 +77,7 @@ export interface LimitsConfig {
|
|
|
73
77
|
danger_zone: DangerZoneConfig;
|
|
74
78
|
bridge: BridgeConfig;
|
|
75
79
|
multiagent: MultiagentConfig;
|
|
80
|
+
files_tab: FilesTabConfig;
|
|
76
81
|
}
|
|
77
82
|
export declare function defaultLimitsConfig(): LimitsConfig;
|
|
78
83
|
/** Read the active config. Cached for ~3 seconds to avoid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits_config.d.ts","sourceRoot":"","sources":["../../src/core/limits_config.ts"],"names":[],"mappings":"AAqDA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAE/F,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB;;;qCAGiC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB;mCAC+B;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB;;oCAEgC;IAChC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAGD,MAAM,WAAW,gBAAgB;IAC/B;;gCAE4B;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAGD,MAAM,WAAW,YAAY;IAC3B;;;;0CAIsC;IACtC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,gBAAgB;IAC/B;;;;;2BAKuB;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,eAAe,EAAE,mBAAmB,CAAC;IACrC,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;IACpC;;;;kDAI8C;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;+BAG2B;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"limits_config.d.ts","sourceRoot":"","sources":["../../src/core/limits_config.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,10 @@ export function defaultLimitsConfig() {
|
|
|
85
85
|
multiagent: {
|
|
86
86
|
enabled: false,
|
|
87
87
|
},
|
|
88
|
+
files_tab: {
|
|
89
|
+
max_nodes: 5000,
|
|
90
|
+
max_depth: 6,
|
|
91
|
+
},
|
|
88
92
|
};
|
|
89
93
|
}
|
|
90
94
|
function limitsConfigPath() {
|
|
@@ -161,6 +165,10 @@ function normaliseLimitsConfig(raw) {
|
|
|
161
165
|
? j.multiagent.enabled
|
|
162
166
|
: def.multiagent.enabled,
|
|
163
167
|
},
|
|
168
|
+
files_tab: {
|
|
169
|
+
max_nodes: clamp(j.files_tab?.max_nodes, 200, 200000, def.files_tab.max_nodes),
|
|
170
|
+
max_depth: clamp(j.files_tab?.max_depth, 1, 12, def.files_tab.max_depth),
|
|
171
|
+
},
|
|
164
172
|
};
|
|
165
173
|
}
|
|
166
174
|
let _cache = null;
|
|
@@ -268,6 +276,8 @@ export const LIMITS_FIELD_PATHS = [
|
|
|
268
276
|
'shell.timeout_ms_default',
|
|
269
277
|
'shell.timeout_ms_max',
|
|
270
278
|
'shell.max_output_bytes',
|
|
279
|
+
'files_tab.max_nodes',
|
|
280
|
+
'files_tab.max_depth',
|
|
271
281
|
];
|
|
272
282
|
export function isLimitsFieldPath(p) {
|
|
273
283
|
return LIMITS_FIELD_PATHS.includes(p);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits_config.js","sourceRoot":"","sources":["../../src/core/limits_config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"limits_config.js","sourceRoot":"","sources":["../../src/core/limits_config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAmGzB,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,eAAe,EAAE;YACf,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,UAAU,EAAE,EAAE;SACf;QACD,kBAAkB,EAAE;YAClB,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,KAAK;SACnB;QACD,qBAAqB,EAAE,IAAI;QAC3B,2BAA2B,EAAE,IAAI;QACjC,mBAAmB,EAAE,IAAI;QACzB,qBAAqB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrC,KAAK,EAAE;YACL,kBAAkB,EAAE,KAAK;YACzB,cAAc,EAAM,MAAM;YAC1B,gBAAgB,EAAI,OAAO;YAC3B,mBAAmB,EAAE,IAAI;SAC1B;QACD,WAAW,EAAE;YACX,gBAAgB,EAAE,KAAK;SACxB;QACD,MAAM,EAAE;YACN,eAAe,EAAE,IAAI;SACtB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;SACf;QACD,SAAS,EAAE;YACT,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,CAAC;SACb;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,KAAK,CAAC,CAAU,EAAE,GAAW,EAAE,GAAW,EAAE,QAAgB;IACnE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClE,IAAI,CAAC,GAAG,GAAG;QAAE,OAAO,GAAG,CAAC;IACxB,IAAI,CAAC,GAAG,GAAG;QAAE,OAAO,GAAG,CAAC;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;+CAE+C;AAC/C,SAAS,qBAAqB,CAAC,GAAY;IACzC,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAChD,MAAM,CAAC,GAAG,GAA4B,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,eAAe,EAAE;YACf,OAAO,EAAS,KAAK,CAAE,MAA8B,CAAC,OAAO,EAAS,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;YAC1G,aAAa,EAAG,KAAK,CAAE,MAA8B,CAAC,aAAa,EAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC;YAChH,aAAa,EAAG,KAAK,CAAE,MAA8B,CAAC,aAAa,EAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC;YAChH,aAAa,EAAG,KAAK,CAAE,MAA8B,CAAC,aAAa,EAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC;YAChH,UAAU,EAAM,KAAK,CAAE,MAA8B,CAAC,UAAU,EAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC;SAC9G;QACD,kBAAkB,EAAE;YAClB,aAAa,EAAG,KAAK,CAAE,QAAkC,CAAC,aAAa,EAAG,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,aAAa,CAAC;YAC7H,cAAc,EAAE,KAAK,CAAE,QAAkC,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,cAAc,CAAC;YAC9H,WAAW,EAAK,KAAK,CAAE,QAAkC,CAAC,WAAW,EAAK,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;YAC3H,WAAW,EAAK,KAAK,CAAE,QAAkC,CAAC,WAAW,EAAK,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;SAC5H;QACD,qBAAqB,EAAQ,KAAK,CAAC,CAAC,CAAC,qBAAqB,EAAQ,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,qBAAqB,CAAC;QACxG,2BAA2B,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B,EAAE,EAAE,EAAG,KAAK,EAAE,GAAG,CAAC,2BAA2B,CAAC;QAC9G;;;+DAGuD;QACvD,mBAAmB,EAAE,KAAK,CACvB,CAAuC,CAAC,mBAAmB,IAAI,CAAC,CAAC,2BAA2B,EAC7F,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,mBAAmB,CAAC;QACtC;6DACqD;QACrD,qBAAqB,EAAQ,KAAK,CAAC,CAAC,CAAC,qBAAqB,EAAQ,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,qBAAqB,CAAC;QACvH,KAAK,EAAE;YACL,kBAAkB,EAAE,KAAK,CAAE,KAA2B,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACtH,cAAc,EAAM,KAAK,CAAE,KAA2B,CAAC,cAAc,EAAM,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;YAClH,gBAAgB,EAAI,KAAK,CAAE,KAA2B,CAAC,gBAAgB,EAAI,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC9H,mBAAmB,EAAE,OAAQ,KAA2B,CAAC,mBAAmB,KAAK,SAAS;gBACxF,CAAC,CAAE,KAA2B,CAAC,mBAAmB;gBAClD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB;SAClC;QACD,WAAW,EAAE;YACX,gBAAgB,EAAE,OAAQ,MAA2B,CAAC,gBAAgB,KAAK,SAAS;gBAClF,CAAC,CAAE,MAA2B,CAAC,gBAAgB;gBAC/C,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,gBAAgB;SACrC;QACD,MAAM,EAAE;YACN,eAAe,EAAE,OAAQ,CAAC,CAAC,MAAmC,EAAE,eAAe,KAAK,SAAS;gBAC3F,CAAC,CAAE,CAAC,CAAC,MAAuB,CAAC,eAAe;gBAC5C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe;SAC/B;QACD,UAAU,EAAE;YACV,OAAO,EAAE,OAAQ,CAAC,CAAC,UAA2C,EAAE,OAAO,KAAK,SAAS;gBACnF,CAAC,CAAE,CAAC,CAAC,UAA+B,CAAC,OAAO;gBAC5C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO;SAC3B;QACD,SAAS,EAAE;YACT,SAAS,EAAE,KAAK,CAAE,CAAC,CAAC,SAAwC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;YAC9G,SAAS,EAAE,KAAK,CAAE,CAAC,CAAC,SAAwC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;SACzG;KACF,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,GAAwB,IAAI,CAAC;AACvC,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB;;uCAEuC;AACvC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAY,GAAG,KAAK;IACzD,IAAI,CAAC,YAAY,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACjC,CAAC;IACD,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAiB;IACvD,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;IACvB,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxB,MAAM,GAAG,UAAU,CAAC;IACpB,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,IAAI,CAAC;IACd,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,iEAAiE;AAEjE,MAAM,oBAAoB,GAAsB;IAC9C,4FAA4F;IAC5F,mBAAmB;IACnB,qBAAqB;CACtB,CAAC;AAEF,MAAM,oBAAoB,GAAsB;IAC9C,yBAAyB;IACzB,kBAAkB;IAClB,qBAAqB;CACtB,CAAC;AAEF,MAAM,oBAAoB,GAAsB;IAC9C,oBAAoB;IACpB,qBAAqB;CACtB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,oBAAoB;QAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,eAAe,CAAC;IACjF,KAAK,MAAM,CAAC,IAAI,oBAAoB;QAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,eAAe,CAAC;IACjF,KAAK,MAAM,CAAC,IAAI,oBAAoB;QAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,eAAe,CAAC;IACjF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAwB,EACxB,MAAwB;IAExB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,eAAe,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,CAAC;QAC/C,KAAK,eAAe,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,CAAC;QAC/C,KAAK,eAAe,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,CAAC;QAC/C,KAAK,SAAS,CAAC,CAAO,OAAO,GAAG,CAAC,OAAO,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE;mCACmC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,yBAAyB;IACzB,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,4BAA4B;IAC5B,kCAAkC;IAClC,mCAAmC;IACnC,gCAAgC;IAChC,gCAAgC;IAChC,uBAAuB;IACvB,6BAA6B;IAC7B,qBAAqB;IACrB,uBAAuB;IACvB,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,CAAS;IACzC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;6BAC6B;AAC7B,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,2BAA2B;IAC3B,8BAA8B;IAC9B,wBAAwB;IACxB,oBAAoB;CACrB,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,CAAS;IAChD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAa,EAAE,KAAc;IACvE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAI,GAA0D,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;4CAC4C;AAC5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,KAAa;IAC/D,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,KAAK,GAAG,gDAAgD,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,GAA0C,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAChE,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAI,GAA0D,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context compaction (PND-156) -- keep long, tool-heavy turns from choking the
|
|
3
|
+
* process. On rpa-osde's journald a single deepseek-reasoner session grew the
|
|
4
|
+
* RSS to ~1GB and blocked the event loop for 3-10s at a time, because every
|
|
5
|
+
* round re-sends (and re-serializes) the ENTIRE accumulated messages array
|
|
6
|
+
* including every big tool result. These helpers cap each tool result and
|
|
7
|
+
* compact OLD tool results down to a short marker, driven by the per-brain
|
|
8
|
+
* BrainBehaviour (large-context brains compact little / never; smaller ones
|
|
9
|
+
* compact aggressively).
|
|
10
|
+
*
|
|
11
|
+
* OpenAI wire format (deepseek / openai / mistral / xai / qwen / GLM): tool
|
|
12
|
+
* results are role='tool' messages. Anthropic's shape differs and is handled
|
|
13
|
+
* separately by its own client.
|
|
14
|
+
*
|
|
15
|
+
* ASCII-only.
|
|
16
|
+
*/
|
|
17
|
+
import type { BrainBehaviour } from '../core/brain_behaviour.js';
|
|
18
|
+
/** Cap one serialized tool result before it enters the conversation. 'head'
|
|
19
|
+
* keeps the first N bytes + a marker (the model still SEES the data); 'stub'
|
|
20
|
+
* hides it entirely (legacy blind behaviour). */
|
|
21
|
+
export declare function capToolResult(resultStr: string, b: BrainBehaviour): string;
|
|
22
|
+
interface OpenAiMsg {
|
|
23
|
+
role: string;
|
|
24
|
+
content?: unknown;
|
|
25
|
+
tool_calls?: unknown;
|
|
26
|
+
tool_call_id?: unknown;
|
|
27
|
+
}
|
|
28
|
+
/** Compact OLD tool-result messages IN PLACE: keep the `keep_recent` most
|
|
29
|
+
* recent role='tool' messages in full, replace the content of older ones with
|
|
30
|
+
* a short marker. Bounds both the RSS and the per-round payload. No-op when
|
|
31
|
+
* disabled or before the round trigger. Returns the number compacted (for
|
|
32
|
+
* telemetry/tests). */
|
|
33
|
+
export declare function compactOldToolResults(messages: OpenAiMsg[], b: BrainBehaviour, round: number): number;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=context_compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context_compaction.d.ts","sourceRoot":"","sources":["../../src/llm/context_compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,CAS1E;AAED,UAAU,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE;AAErG;;;;wBAIwB;AACxB,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBrG"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Cap one serialized tool result before it enters the conversation. 'head'
|
|
2
|
+
* keeps the first N bytes + a marker (the model still SEES the data); 'stub'
|
|
3
|
+
* hides it entirely (legacy blind behaviour). */
|
|
4
|
+
export function capToolResult(resultStr, b) {
|
|
5
|
+
const max = Math.max(1000, b.tool_result_max_bytes | 0);
|
|
6
|
+
if (resultStr.length <= max)
|
|
7
|
+
return resultStr;
|
|
8
|
+
if (b.tool_result_mode === 'stub') {
|
|
9
|
+
return JSON.stringify({ _truncated: true, _bytes: resultStr.length });
|
|
10
|
+
}
|
|
11
|
+
return resultStr.slice(0, max)
|
|
12
|
+
+ '\n[...truncado: ' + resultStr.length + ' bytes en total; se muestran los primeros '
|
|
13
|
+
+ max + '. Pedi un rango/paginado o filtra la consulta si necesitas mas.]';
|
|
14
|
+
}
|
|
15
|
+
/** Compact OLD tool-result messages IN PLACE: keep the `keep_recent` most
|
|
16
|
+
* recent role='tool' messages in full, replace the content of older ones with
|
|
17
|
+
* a short marker. Bounds both the RSS and the per-round payload. No-op when
|
|
18
|
+
* disabled or before the round trigger. Returns the number compacted (for
|
|
19
|
+
* telemetry/tests). */
|
|
20
|
+
export function compactOldToolResults(messages, b, round) {
|
|
21
|
+
if (!b.compaction.enabled)
|
|
22
|
+
return 0;
|
|
23
|
+
if (round < b.compaction.trigger_after_rounds)
|
|
24
|
+
return 0;
|
|
25
|
+
const keep = Math.max(1, b.compaction.keep_recent_tool_results | 0);
|
|
26
|
+
const toolIdx = [];
|
|
27
|
+
for (let i = 0; i < messages.length; i++)
|
|
28
|
+
if (messages[i].role === 'tool')
|
|
29
|
+
toolIdx.push(i);
|
|
30
|
+
if (toolIdx.length <= keep)
|
|
31
|
+
return 0;
|
|
32
|
+
const stale = toolIdx.slice(0, toolIdx.length - keep);
|
|
33
|
+
let compacted = 0;
|
|
34
|
+
for (const i of stale) {
|
|
35
|
+
const m = messages[i];
|
|
36
|
+
const c = typeof m.content === 'string' ? m.content : '';
|
|
37
|
+
if (c.length <= 400 || c.startsWith('[resultado previo compactado'))
|
|
38
|
+
continue; /* already tiny/done */
|
|
39
|
+
m.content = '[resultado previo compactado -- ' + c.length
|
|
40
|
+
+ ' bytes; volve a consultar esa fuente si lo necesitas de nuevo]';
|
|
41
|
+
compacted++;
|
|
42
|
+
}
|
|
43
|
+
return compacted;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=context_compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context_compaction.js","sourceRoot":"","sources":["../../src/llm/context_compaction.ts"],"names":[],"mappings":"AAkBA;;kDAEkD;AAClD,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,CAAiB;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,SAAS,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,CAAC,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;UAC1B,kBAAkB,GAAG,SAAS,CAAC,MAAM,GAAG,4CAA4C;UACpF,GAAG,GAAG,kEAAkE,CAAC;AAC/E,CAAC;AAID;;;;wBAIwB;AACxB,MAAM,UAAU,qBAAqB,CAAC,QAAqB,EAAE,CAAiB,EAAE,KAAa;IAC3F,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,oBAAoB;QAAE,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5F,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,8BAA8B,CAAC;YAAE,SAAS,CAAG,uBAAuB;QACxG,CAAC,CAAC,OAAO,GAAG,kCAAkC,GAAG,CAAC,CAAC,MAAM;cACrD,gEAAgE,CAAC;QACrE,SAAS,EAAE,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek_client.d.ts","sourceRoot":"","sources":["../../src/llm/deepseek_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"deepseek_client.d.ts","sourceRoot":"","sources":["../../src/llm/deepseek_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAejD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA6BD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,qBAAqB;IASjC,IAAI,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA6NpE"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
import { isTransientNetworkError, describeNetError } from '../chat/claude.js';
|
|
2
|
+
import { resolveBrainBehaviour } from '../core/brain_behaviour.js';
|
|
3
|
+
import { capToolResult, compactOldToolResults } from './context_compaction.js';
|
|
1
4
|
const DEEPSEEK_BASE = 'https://api.deepseek.com/chat/completions';
|
|
2
5
|
const DEFAULT_DEEPSEEK_MODEL = 'deepseek-chat';
|
|
3
6
|
const DEFAULT_MAX_TOOL_ROUNDS = 5;
|
|
7
|
+
/* A reasoning model (deepseek-reasoner) on a heavy task can take minutes.
|
|
8
|
+
* A hung socket must still eventually fail so the retry can fire, but the
|
|
9
|
+
* budget has to be generous or we kill valid long reasoning. Overridable. */
|
|
10
|
+
const REQUEST_TIMEOUT_MS = (() => {
|
|
11
|
+
const v = parseInt(process.env.YF_DEEPSEEK_TIMEOUT_MS || '', 10);
|
|
12
|
+
return Number.isFinite(v) && v > 0 ? v : 600_000; /* 10 min default */
|
|
13
|
+
})();
|
|
4
14
|
export class DeepSeekApiError extends Error {
|
|
5
15
|
status;
|
|
6
16
|
constructor(message, status) {
|
|
@@ -62,6 +72,10 @@ export class DeepSeekClient {
|
|
|
62
72
|
let totalOut = 0;
|
|
63
73
|
let serverModel = model;
|
|
64
74
|
const toolRounds = [];
|
|
75
|
+
/* PND-156 -- per-brain behaviour: how big a single tool result may be and
|
|
76
|
+
* how aggressively to compact old ones as the turn grows. DeepSeek is a
|
|
77
|
+
* 'medium' brain, so compaction is on by default; overridable in config. */
|
|
78
|
+
const behaviour = await resolveBrainBehaviour('deepseek', model);
|
|
65
79
|
for (let round = 0; round < maxRounds; round++) {
|
|
66
80
|
void round;
|
|
67
81
|
void DEFAULT_MAX_TOOL_ROUNDS;
|
|
@@ -81,14 +95,45 @@ export class DeepSeekClient {
|
|
|
81
95
|
body.stream = true;
|
|
82
96
|
body.stream_options = { include_usage: true };
|
|
83
97
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
98
|
+
/* A transient network blip (ECONNRESET / socket hang up / undici
|
|
99
|
+
* "fetch failed") on the DeepSeek call used to surface verbatim to the
|
|
100
|
+
* user and abort the whole turn -- especially on demanding tasks where
|
|
101
|
+
* deepseek-reasoner runs long (Pablo 2026-07-13). Mirror the Claude
|
|
102
|
+
* client: retry twice with backoff + a generous per-request timeout,
|
|
103
|
+
* and raise a clear message on final failure instead of "fetch failed". */
|
|
104
|
+
let res;
|
|
105
|
+
let netAttempt = 0;
|
|
106
|
+
for (;;) {
|
|
107
|
+
const ctrl = new AbortController();
|
|
108
|
+
const timer = setTimeout(() => ctrl.abort(), REQUEST_TIMEOUT_MS);
|
|
109
|
+
try {
|
|
110
|
+
res = await this.fetchImpl(DEEPSEEK_BASE, {
|
|
111
|
+
method: 'POST',
|
|
112
|
+
headers: {
|
|
113
|
+
'content-type': 'application/json',
|
|
114
|
+
'authorization': 'Bearer ' + this.apiKey,
|
|
115
|
+
},
|
|
116
|
+
body: JSON.stringify(body),
|
|
117
|
+
signal: ctrl.signal,
|
|
118
|
+
});
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
const timedOut = ctrl.signal.aborted;
|
|
123
|
+
if (netAttempt < 2 && (timedOut || isTransientNetworkError(e))) {
|
|
124
|
+
netAttempt++;
|
|
125
|
+
await new Promise((r) => setTimeout(r, netAttempt === 1 ? 600 : 1500));
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
throw new DeepSeekApiError('No pude conectar con DeepSeek (' + (timedOut ? 'timeout' : describeNetError(e))
|
|
129
|
+
+ '). En tareas muy grandes conviene reintentar o pedir el informe por partes.', 0);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
clearTimeout(timer);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (!res)
|
|
136
|
+
throw new DeepSeekApiError('DeepSeek: sin respuesta del proveedor', 502);
|
|
92
137
|
let json;
|
|
93
138
|
if (wantStream && res.ok && res.body) {
|
|
94
139
|
const { readOpenAiStream } = await import('./sse_stream.js');
|
|
@@ -183,15 +228,19 @@ export class DeepSeekClient {
|
|
|
183
228
|
catch {
|
|
184
229
|
resultStr = String(result);
|
|
185
230
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
231
|
+
/* PND-156 -- configurable cap (was a blind 200KB stub). Default 'head'
|
|
232
|
+
* keeps the first N bytes so the model still sees the data. */
|
|
233
|
+
resultStr = capToolResult(resultStr, behaviour);
|
|
189
234
|
messages.push({
|
|
190
235
|
role: 'tool',
|
|
191
236
|
tool_call_id: tc.id,
|
|
192
237
|
content: resultStr,
|
|
193
238
|
});
|
|
194
239
|
}
|
|
240
|
+
/* PND-156 -- compact OLD tool results once the turn is long, so we stop
|
|
241
|
+
* re-sending (and re-serializing) the whole growing history every round
|
|
242
|
+
* (the ~1GB RSS + event-loop stalls seen in rpa-osde's journald). */
|
|
243
|
+
compactOldToolResults(messages, behaviour, round + 1);
|
|
195
244
|
}
|
|
196
245
|
return {
|
|
197
246
|
text: '[Alcance el limite de rondas (' + maxRounds + '/' + maxRounds +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek_client.js","sourceRoot":"","sources":["../../src/llm/deepseek_client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deepseek_client.js","sourceRoot":"","sources":["../../src/llm/deepseek_client.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Yujin Forge CLI version. Kept in sync with package.json by the npm
|
|
3
3
|
* "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
|
|
4
4
|
*/
|
|
5
|
-
export declare const VERSION = "1.0.
|
|
5
|
+
export declare const VERSION = "1.0.82";
|
|
6
6
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED