oh-my-opencode-cohub 1.18.1 → 1.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +1 -1
- package/dist/config/loader.test.d.ts +2 -0
- package/dist/config/loader.test.d.ts.map +1 -0
- package/dist/context/diag-log.d.ts +50 -0
- package/dist/context/diag-log.d.ts.map +1 -1
- package/dist/context/diag-log.test.d.ts +2 -0
- package/dist/context/diag-log.test.d.ts.map +1 -0
- package/dist/context/engine.d.ts +18 -0
- package/dist/context/engine.d.ts.map +1 -1
- package/dist/context/prompt-budget.d.ts +45 -0
- package/dist/context/prompt-budget.d.ts.map +1 -0
- package/dist/context/prompt-budget.test.d.ts +2 -0
- package/dist/context/prompt-budget.test.d.ts.map +1 -0
- package/dist/context/types.d.ts +6 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +937 -191
- package/dist/orchestration/engine.d.ts +19 -2
- package/dist/orchestration/engine.d.ts.map +1 -1
- package/dist/orchestration/rate-limit.d.ts +19 -0
- package/dist/orchestration/rate-limit.d.ts.map +1 -0
- package/dist/orchestration/rate-limit.test.d.ts +21 -0
- package/dist/orchestration/rate-limit.test.d.ts.map +1 -0
- package/dist/orchestration/types.d.ts +12 -0
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/prompts/oracle.d.ts +1 -1
- package/dist/prompts/oracle.d.ts.map +1 -1
- package/dist/prompts/orchestrator.d.ts +1 -1
- package/dist/prompts/orchestrator.d.ts.map +1 -1
- package/dist/prompts/planner.d.ts +1 -1
- package/dist/prompts/planner.d.ts.map +1 -1
- package/dist/task-manager/tracker.d.ts +149 -13
- package/dist/task-manager/tracker.d.ts.map +1 -1
- package/dist/task-manager/types.d.ts +15 -0
- package/dist/task-manager/types.d.ts.map +1 -1
- package/dist/tools/job-control.d.ts +11 -4
- package/dist/tools/job-control.d.ts.map +1 -1
- package/dist/tools/job-control.test.d.ts +2 -0
- package/dist/tools/job-control.test.d.ts.map +1 -0
- package/dist/tui.js +121 -0
- package/dist/utils/log.d.ts +12 -0
- package/dist/utils/log.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.test.d.ts","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":""}
|
|
@@ -18,7 +18,14 @@
|
|
|
18
18
|
* 仅在「自上次压缩以来累计写入 > MAX_BYTES」时触发一次压缩,且压缩**只读文件尾部窗口**
|
|
19
19
|
* (不读全文),压缩后计数器归零 → 需要再累积 MAX_BYTES 才会再次压缩,循环被消除。
|
|
20
20
|
* - 文件创建时使用 mode 0o600(POSIX 收紧权限;Windows 上为 no-op)。
|
|
21
|
+
*
|
|
22
|
+
* 任务生命周期诊断(Wave3 扩展):
|
|
23
|
+
* - 新增 `appendTaskDiag(record, filePath)`:最小 task 诊断 record(白名单收窄,
|
|
24
|
+
* 支持 call 关联 / event / duration / lastActivityAt / 宿主 retry / 限流 kind /
|
|
25
|
+
* 注入预算估算),复用本文件同一异步串行队列与压缩/权限机制,不另建日志系统。
|
|
26
|
+
* - 关闭路径零新增 I/O:调用方须用 `ctxDiag.enabled` 门控(与 appendCtxDiag 一致)。
|
|
21
27
|
*/
|
|
28
|
+
import type { RateLimitKind } from '../orchestration/rate-limit';
|
|
22
29
|
/** 诊断日志配置(全部可选,缺省即安全) */
|
|
23
30
|
export interface CtxDiagConfig {
|
|
24
31
|
/** 是否开启上下文注入诊断日志(默认 false) */
|
|
@@ -59,4 +66,47 @@ export declare const CTX_DIAG_LIMITS: {
|
|
|
59
66
|
};
|
|
60
67
|
/** 诊断日志目录(供排查指引使用) */
|
|
61
68
|
export declare function ctxDiagDir(filePath?: string): string;
|
|
69
|
+
/** 建议的任务生命周期事件值(record 白名单以字段为准,值仅作约定) */
|
|
70
|
+
export type TaskDiagEvent = 'task_started' | 'task_completed' | 'task_failed' | 'task_cancelled' | 'retry_scheduled' | 'rate_limit_detected' | 'state_changed';
|
|
71
|
+
/**
|
|
72
|
+
* 任务诊断最小 record(白名单字段;调用方只允许传这些键,
|
|
73
|
+
* 未知字段会在 sanitize 时被丢弃——天然阻断 apiKey/body/headers 等敏感内容)。
|
|
74
|
+
*/
|
|
75
|
+
export interface TaskDiagRecord {
|
|
76
|
+
/** 记录类型标记:task 诊断(区别于上下文注入诊断) */
|
|
77
|
+
t: 'task';
|
|
78
|
+
/** 调用关联标识(如 `(parentSessionID, callID)` 组合串) */
|
|
79
|
+
callID?: string;
|
|
80
|
+
/** 会话 ID(建议调用方传入截断值) */
|
|
81
|
+
session?: string;
|
|
82
|
+
/** 任务 alias */
|
|
83
|
+
alias?: string;
|
|
84
|
+
/** 生命周期事件(见 TaskDiagEvent 约定值) */
|
|
85
|
+
event?: string;
|
|
86
|
+
/** 引擎侧任务状态 */
|
|
87
|
+
status?: string;
|
|
88
|
+
/** 任务耗时(毫秒) */
|
|
89
|
+
durationMs?: number;
|
|
90
|
+
/** 最近活动时间戳(调用方传 Date.now(),不新增轮询 timer) */
|
|
91
|
+
lastActivityAt?: number;
|
|
92
|
+
/** 宿主重试尝试次数 */
|
|
93
|
+
retryAttempt?: number;
|
|
94
|
+
/** 宿主计划下次重试的等待毫秒 */
|
|
95
|
+
retryNextMs?: number;
|
|
96
|
+
/** 限流分类(classifyRateLimit 的 kind) */
|
|
97
|
+
rateLimitKind?: RateLimitKind;
|
|
98
|
+
/** 服务端 Retry-After 毫秒 */
|
|
99
|
+
retryAfterMs?: number;
|
|
100
|
+
/** 注入预算估算(字符数,仅必要元数据) */
|
|
101
|
+
budgetChars?: number;
|
|
102
|
+
/** 注入预算估算(token 数,仅必要元数据) */
|
|
103
|
+
budgetTokens?: number;
|
|
104
|
+
}
|
|
105
|
+
/** 白名单收窄:只保留允许字段并做类型/长度校验;非对象输入返回 null */
|
|
106
|
+
export declare function sanitizeTaskDiagRecord(input: unknown): TaskDiagRecord | null;
|
|
107
|
+
/**
|
|
108
|
+
* 追加一条任务生命周期诊断(异步串行,失败静默,复用 ctxDiag 队列)。
|
|
109
|
+
* 调用方须先判断 `settings.enabled`;无效输入直接返回(零 I/O)。
|
|
110
|
+
*/
|
|
111
|
+
export declare function appendTaskDiag(record: unknown, filePath: string): void;
|
|
62
112
|
//# sourceMappingURL=diag-log.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diag-log.d.ts","sourceRoot":"","sources":["../../src/context/diag-log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"diag-log.d.ts","sourceRoot":"","sources":["../../src/context/diag-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAWjE,yBAAyB;AACzB,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2BAA2B;AAC3B,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAEzE,CAAC;AAEF,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ9F;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,MAAM,CAIjF;AAED,6CAA6C;AAC7C,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,EACtC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,eAAe,CAKjB;AA8CD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgBrE;AAED,qBAAqB;AACrB,wBAAgB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5C;AAED,oBAAoB;AACpB,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,kBAAkB;AAClB,eAAO,MAAM,eAAe;;;;CAAkD,CAAC;AAE/E,sBAAsB;AACtB,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpD;AA2BD,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,qBAAqB,GACrB,eAAe,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgBD,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAqB5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAItE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diag-log.test.d.ts","sourceRoot":"","sources":["../../src/context/diag-log.test.ts"],"names":[],"mappings":""}
|
package/dist/context/engine.d.ts
CHANGED
|
@@ -39,8 +39,26 @@ export declare class ContextEngine {
|
|
|
39
39
|
/**
|
|
40
40
|
* summary 策略:读取相关文件正文并按 token 预算截断。
|
|
41
41
|
* 预算按文件数均摊,总注入不超过 summarizeMaxTokens;读取失败的文件保留 summary 回退。
|
|
42
|
+
*
|
|
43
|
+
* 读取模式(config.summaryReadMode,缺省 'bounded'):
|
|
44
|
+
* - 'bounded'(默认):按预算推导字节上限(见 prompt-budget.ts,默认 2000 tokens → 16KB),
|
|
45
|
+
* open/read/close 部分读取 + 4 字节 lookahead 判定「是否超出读取上限」+ UTF-8 边界修正,
|
|
46
|
+
* 再 truncateByTokens。ASCII/CJK 常规场景注入结果与旧全量读+截断**等价**;
|
|
47
|
+
* 当文件超出读取上限且预算未触发 token 截断时(如纯 emoji 恰停在预算边界、或预算触发 1MiB 硬 cap),
|
|
48
|
+
* 附加诚实读取截断标记「… [正文已按读取上限截断]」,不再宣称逐字节等价;
|
|
49
|
+
* 与旧 truncateByTokens 的差异仅源于修复其在 4 字节非 CJK 字符边界切出孤立 surrogate 的缺陷。
|
|
50
|
+
* - 'full':保留旧行为——全量 readFileSync 后再按预算截断(保守选项,关闭激进裁剪)。
|
|
42
51
|
*/
|
|
43
52
|
private attachTruncatedBodies;
|
|
53
|
+
/**
|
|
54
|
+
* 按字节上限有界读取 UTF-8 文本(默认 summary 模式使用)。
|
|
55
|
+
* 读取 min(size, byteLimit + SUMMARY_READ_LOOKAHEAD_BYTES) 字节:
|
|
56
|
+
* - 实际读到的字节数 > byteLimit → 文件超出读取上限(lookahead 判定,比 fstat size 更诚实,
|
|
57
|
+
* 覆盖读取期间文件被修改等边缘);
|
|
58
|
+
* - 返回文本始终先 utf8TrimIncomplete 修正字符边界(避免 U+FFFD 与末尾未配对 surrogate)。
|
|
59
|
+
* fd 在正常与异常路径都会关闭(try/finally);open 失败由调用方 catch 兜底。
|
|
60
|
+
*/
|
|
61
|
+
private readBoundedUtf8;
|
|
44
62
|
/**
|
|
45
63
|
* Phase B: 消费标记文本。
|
|
46
64
|
* 从消息文本中提取 contextId → 查 registry → 替换标记为格式化上下文。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/context/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAe,aAAa,EAAkC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/context/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAe,aAAa,EAAkC,MAAM,SAAS,CAAC;AAM3G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAKzD,qBAAa,aAAa;IACxB,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAkC;IAClD;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IACtD,sBAAsB;IACtB,OAAO,CAAC,eAAe,CAAuC;IAC9D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAgG;IAChH,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAU9D;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAatD;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE;QAAE,QAAQ,EAAE,eAAe,CAAA;KAAE,GAClC,OAAO,CAAC,IAAI,CAAC;IA8DhB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAqBvB;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAmBxD;;;OAGG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAmE/C;;;;;OAKG;IACG,aAAa,CACjB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAqDpG;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIvC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAI/C;;OAEG;IACH,wBAAwB,CAAC,QAAQ,GAAE,MAAuB,GAAG,IAAI;IASjE,oCAAoC;IACpC,OAAO,CAAC,KAAK;IAIb;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKvC;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,QAAQ,GAAE,MAAuB,GAAG,MAAM;IAmB/D,iCAAiC;IACjC,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 单文件有界读取的字节硬上限(每文件 1 MiB)。
|
|
3
|
+
* 目的:防止 tokenBudgetToByteLimit 对极大预算(如 1e9)返回与文件全量同量级的 byteLimit,
|
|
4
|
+
* 导致 Buffer.allocUnsafe 整文件级分配。正常预算(默认 2000 → 16000 字节)远低于此上限,
|
|
5
|
+
* 不受影响;触发 cap 时读取窗口可能不足「预算对应的全部内容」,注入会附加诚实截断标记
|
|
6
|
+
* (见 engine.ts attachTruncatedBodies),并可在配置中改用 summaryReadMode:'full' 恢复旧行为。
|
|
7
|
+
*/
|
|
8
|
+
export declare const SUMMARY_READ_MAX_BYTES_PER_FILE: number;
|
|
9
|
+
/**
|
|
10
|
+
* 有界读取的 lookahead 字节数(至少 4 字节,等于 UTF-8 单字符最大字节序列)。
|
|
11
|
+
* 用途:一次性多读 4 字节,用于「判定文件是否超出读取上限」——
|
|
12
|
+
* 若实际读到的字节数 > byteLimit,说明 byteLimit 之后仍有内容,需要诚实提示截断;
|
|
13
|
+
* 同时保证窗口边界处 UTF-8 序列(最长 4 字节)能被完整判定与回退,避免 U+FFFD 与孤立代理项。
|
|
14
|
+
*/
|
|
15
|
+
export declare const SUMMARY_READ_LOOKAHEAD_BYTES = 4;
|
|
16
|
+
/**
|
|
17
|
+
* 由 token 预算推导可读字节上限。
|
|
18
|
+
*
|
|
19
|
+
* 推导依据(与 shared/token-estimator.ts 的 estimateTokens 对齐,仅只读依赖):
|
|
20
|
+
* - 非 CJK 按 0.25 token/codeunit → 每 token 至多 4 codeunit(最宽字符率,保证截断点覆盖任何语言);
|
|
21
|
+
* - UTF-8 单字符 1~4 字节,取平均覆盖 2 字节/codeunit(ASCII 1B、CJK 3B 均被覆盖,ASCII 有 2 倍冗余)。
|
|
22
|
+
* 因此:byteLimit ≈ budgetTokens × 4 codeunit/token × 2 字节/codeunit。
|
|
23
|
+
*
|
|
24
|
+
* 兼容边界(诚实说明,不宣称逐字节等价):
|
|
25
|
+
* - ASCII / CJK 常规场景:窗口必然覆盖「按预算截断的截断点」,注入结果与旧全量读+截断**等价**;
|
|
26
|
+
* - 纯 emoji 等 4 字节非 CJK 字符:估算为 2 codeunit/token → 1 token = 8 字节,窗口恰好停在预算边界,
|
|
27
|
+
* 不会触发 token 截断(estimate == budget),此时若文件超出上限会附加**读取截断标记**(诚实提示),
|
|
28
|
+
* 且不产生旧 truncateByTokens 在边界切出的孤立 surrogate——这是对旧截断缺陷的修复差异;
|
|
29
|
+
* - 预算极大触发 SUMMARY_READ_MAX_BYTES_PER_FILE 时同样附加读取截断标记,不再宣称与旧行为等价。
|
|
30
|
+
*
|
|
31
|
+
* 数值边界:NaN / ±Infinity / 0 / 负数 → 返回下限 4 字节(安全,不发生不安全 int / Buffer alloc)。
|
|
32
|
+
*
|
|
33
|
+
* @param budgetTokens 单文件 token 预算(调用方已做 max(1, floor(summarizeMaxTokens / files.length)) 均摊)
|
|
34
|
+
* @returns 应读取的字节数上限(至少 4 字节,至多 SUMMARY_READ_MAX_BYTES_PER_FILE)
|
|
35
|
+
*/
|
|
36
|
+
export declare function tokenBudgetToByteLimit(budgetTokens: number): number;
|
|
37
|
+
/**
|
|
38
|
+
* 截断 Buffer 到 UTF-8 字符边界:丢弃末尾不完整的多字节序列。
|
|
39
|
+
*
|
|
40
|
+
* 原因:Buffer.toString('utf-8') 会把窗口末尾被切断的多字节序列替换为 U+FFFD(乱码),
|
|
41
|
+
* 有界读取按字节窗口切分后必须先修正边界再解码。
|
|
42
|
+
* 本函数只回退「最后一个可能不完整的序列」,对窗口内部的完整内容不做任何改动。
|
|
43
|
+
*/
|
|
44
|
+
export declare function utf8TrimIncomplete(buf: Buffer): Buffer;
|
|
45
|
+
//# sourceMappingURL=prompt-budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-budget.d.ts","sourceRoot":"","sources":["../../src/context/prompt-budget.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,QAAc,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-budget.test.d.ts","sourceRoot":"","sources":["../../src/context/prompt-budget.test.ts"],"names":[],"mappings":""}
|
package/dist/context/types.d.ts
CHANGED
|
@@ -39,6 +39,12 @@ export interface ContextConfig {
|
|
|
39
39
|
dependencyPropagation: boolean;
|
|
40
40
|
/** LLM 摘要最大 token 数 */
|
|
41
41
|
summarizeMaxTokens: number;
|
|
42
|
+
/**
|
|
43
|
+
* summary 文件正文读取模式(可选,缺省即 'bounded'):
|
|
44
|
+
* - 'bounded':按 token 预算推导字节上限有界读取(默认,注入结果与全量读+截断等价,读取成本大幅下降);
|
|
45
|
+
* - 'full':保留旧行为——全量 readFileSync 后再按预算截断(保守选项,可关闭激进裁剪)。
|
|
46
|
+
*/
|
|
47
|
+
summaryReadMode?: 'bounded' | 'full';
|
|
42
48
|
/** 从父 session 中扫描最近多少条消息 */
|
|
43
49
|
relevantMessageWindow: number;
|
|
44
50
|
/** 错误列表总字符上限 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvE,eAAe;AACf,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iBAAiB;AACjB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,cAAc;AACd,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC1C,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,WAAW;AACX,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvE,eAAe;AACf,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iBAAiB;AACjB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,cAAc;AACd,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC1C,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,4BAA4B;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,WAAW;AACX,eAAO,MAAM,sBAAsB,EAAE,aAwBpC,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAsIlD,QAAA,MAAM,WAAW,EAAE,MA8hClB,CAAC;AAEF,eAAO,MAAM,MAAM,QAAc,CAAC;AAClC,eAAe,WAAW,CAAC"}
|