@tansr/serve 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -1
- package/dist/index.d.ts +602 -514
- package/dist/index.js +136 -140
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -13,12 +13,12 @@ import { z, ZodIssue } from 'zod';
|
|
|
13
13
|
import { IncomingMessage, ServerResponse } from 'node:http';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* IR(Internal Representation)消息模型
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
21
|
-
* -
|
|
18
|
+
* 双协议网关与内核共用的中间表示。设计要点:
|
|
19
|
+
* - 内容块 + 类型化流事件基底;
|
|
20
|
+
* - opaque thinking 密文透传对策:reasoning 块保留 provider 原样载荷;
|
|
21
|
+
* - visibility 显式化,不用难组合的布尔标志位。
|
|
22
22
|
*
|
|
23
23
|
* 铁律:providers 依赖本包类型,本包不得反向依赖 providers/kernel。
|
|
24
24
|
*/
|
|
@@ -26,7 +26,7 @@ import { IncomingMessage, ServerResponse } from 'node:http';
|
|
|
26
26
|
/**
|
|
27
27
|
* 内容块。`thinking` 携带可选 `signature`(Anthropic 多轮需原样回传);
|
|
28
28
|
* `opaque` 用于无法明文还原、必须整体透传的推理载荷(OpenAI Responses reasoning item、
|
|
29
|
-
* DeepSeek/Kimi 的 provider 私有块)
|
|
29
|
+
* DeepSeek/Kimi 的 provider 私有块)——部分厂商要求原样回传 thinking 块,否则 400。
|
|
30
30
|
*/
|
|
31
31
|
declare const IRBlockSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
32
32
|
t: z.ZodLiteral<"text">;
|
|
@@ -141,6 +141,7 @@ declare const IRBlockSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
|
141
141
|
mime: string;
|
|
142
142
|
data: string;
|
|
143
143
|
}>]>;
|
|
144
|
+
/** 消息内容块:text / thinking / opaque / tool_call / tool_result / image(IRBlockSchema 推导)。 */
|
|
144
145
|
type IRBlock = z.infer<typeof IRBlockSchema>;
|
|
145
146
|
declare const IRMessageSchema: z.ZodObject<{
|
|
146
147
|
role: z.ZodEnum<["user", "assistant"]>;
|
|
@@ -260,9 +261,9 @@ declare const IRMessageSchema: z.ZodObject<{
|
|
|
260
261
|
/** 结构化元数据(contract-v0.15,RFC-CTX12-4;语义见 IRMessageMetaSchema) */
|
|
261
262
|
meta: z.ZodOptional<z.ZodObject<{
|
|
262
263
|
/**
|
|
263
|
-
* 消息种类标记。首值 'compaction_summary' = 压缩摘要消息(
|
|
264
|
-
*
|
|
265
|
-
*
|
|
264
|
+
* 消息种类标记。首值 'compaction_summary' = 压缩摘要消息(防碰撞
|
|
265
|
+
* 文本哨兵的结构化替代);候选扩值 'pinned'/'synthetic' 随
|
|
266
|
+
* 对应消费方另行契约评审(先冻结已验证形态)。
|
|
266
267
|
*/
|
|
267
268
|
kind: z.ZodOptional<z.ZodEnum<["compaction_summary"]>>;
|
|
268
269
|
/** 产生本消息的压缩执行 id(RFC-CTX12-2 compactionId 同源;审计链互指) */
|
|
@@ -353,15 +354,16 @@ declare const IRMessageSchema: z.ZodObject<{
|
|
|
353
354
|
compactionId?: string | undefined;
|
|
354
355
|
} | undefined;
|
|
355
356
|
}>;
|
|
357
|
+
/** IR 消息:角色 + 内容块数组 + 可选结构化元数据(IRMessageSchema 推导)。 */
|
|
356
358
|
type IRMessage = z.infer<typeof IRMessageSchema>;
|
|
357
|
-
/** 系统提示分段:稳定前缀在前,便于两家 provider 的缓存机制利用
|
|
359
|
+
/** 系统提示分段:稳定前缀在前,便于两家 provider 的缓存机制利用 */
|
|
358
360
|
declare const IRSystemSegmentSchema: z.ZodObject<{
|
|
359
361
|
text: z.ZodString;
|
|
360
|
-
/** 缓存断点提示——忽略方无害
|
|
362
|
+
/** 缓存断点提示——忽略方无害 */
|
|
361
363
|
cacheable: z.ZodOptional<z.ZodBoolean>;
|
|
362
364
|
/**
|
|
363
|
-
* 段语义标签(contract-v0.1
|
|
364
|
-
*
|
|
365
|
+
* 段语义标签(contract-v0.1):'base'/'tools'/'env'/'memory' 等,
|
|
366
|
+
* 供上下文压缩按语义识别可替换段;消费方忽略无害。
|
|
365
367
|
*/
|
|
366
368
|
label: z.ZodOptional<z.ZodString>;
|
|
367
369
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -373,6 +375,7 @@ declare const IRSystemSegmentSchema: z.ZodObject<{
|
|
|
373
375
|
cacheable?: boolean | undefined;
|
|
374
376
|
label?: string | undefined;
|
|
375
377
|
}>;
|
|
378
|
+
/** 系统提示分段(IRSystemSegmentSchema 推导)。 */
|
|
376
379
|
type IRSystemSegment = z.infer<typeof IRSystemSegmentSchema>;
|
|
377
380
|
/** 工具定义:内部统一 JSON Schema(各协议在适配器内映射到各自字段) */
|
|
378
381
|
declare const IRToolDefSchema: z.ZodObject<{
|
|
@@ -388,7 +391,9 @@ declare const IRToolDefSchema: z.ZodObject<{
|
|
|
388
391
|
description: string;
|
|
389
392
|
inputSchema: Record<string, unknown>;
|
|
390
393
|
}>;
|
|
394
|
+
/** 工具定义(IRToolDefSchema 推导)。 */
|
|
391
395
|
type IRToolDef = z.infer<typeof IRToolDefSchema>;
|
|
396
|
+
/** 已解析的模型定位:provider id + 该 provider 下的具体模型名(别名已解析)。 */
|
|
392
397
|
declare const ResolvedModelSchema: z.ZodObject<{
|
|
393
398
|
/** provider registry 内的 id,如 "anthropic" / "aliyun-maas" */
|
|
394
399
|
provider: z.ZodString;
|
|
@@ -401,15 +406,17 @@ declare const ResolvedModelSchema: z.ZodObject<{
|
|
|
401
406
|
provider: string;
|
|
402
407
|
model: string;
|
|
403
408
|
}>;
|
|
409
|
+
/** 已解析的模型定位(ResolvedModelSchema 推导)。 */
|
|
404
410
|
type ResolvedModel = z.infer<typeof ResolvedModelSchema>;
|
|
411
|
+
/** 一次模型调用的完整请求:系统分段、消息、工具定义、目标模型与采样 / 思考 / 缓存控制位。 */
|
|
405
412
|
declare const IRRequestSchema: z.ZodObject<{
|
|
406
413
|
system: z.ZodArray<z.ZodObject<{
|
|
407
414
|
text: z.ZodString;
|
|
408
|
-
/** 缓存断点提示——忽略方无害
|
|
415
|
+
/** 缓存断点提示——忽略方无害 */
|
|
409
416
|
cacheable: z.ZodOptional<z.ZodBoolean>;
|
|
410
417
|
/**
|
|
411
|
-
* 段语义标签(contract-v0.1
|
|
412
|
-
*
|
|
418
|
+
* 段语义标签(contract-v0.1):'base'/'tools'/'env'/'memory' 等,
|
|
419
|
+
* 供上下文压缩按语义识别可替换段;消费方忽略无害。
|
|
413
420
|
*/
|
|
414
421
|
label: z.ZodOptional<z.ZodString>;
|
|
415
422
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -539,9 +546,9 @@ declare const IRRequestSchema: z.ZodObject<{
|
|
|
539
546
|
/** 结构化元数据(contract-v0.15,RFC-CTX12-4;语义见 IRMessageMetaSchema) */
|
|
540
547
|
meta: z.ZodOptional<z.ZodObject<{
|
|
541
548
|
/**
|
|
542
|
-
* 消息种类标记。首值 'compaction_summary' = 压缩摘要消息(
|
|
543
|
-
*
|
|
544
|
-
*
|
|
549
|
+
* 消息种类标记。首值 'compaction_summary' = 压缩摘要消息(防碰撞
|
|
550
|
+
* 文本哨兵的结构化替代);候选扩值 'pinned'/'synthetic' 随
|
|
551
|
+
* 对应消费方另行契约评审(先冻结已验证形态)。
|
|
545
552
|
*/
|
|
546
553
|
kind: z.ZodOptional<z.ZodEnum<["compaction_summary"]>>;
|
|
547
554
|
/** 产生本消息的压缩执行 id(RFC-CTX12-2 compactionId 同源;审计链互指) */
|
|
@@ -660,8 +667,8 @@ declare const IRRequestSchema: z.ZodObject<{
|
|
|
660
667
|
maxTokens: z.ZodNumber;
|
|
661
668
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
662
669
|
/**
|
|
663
|
-
* thinking 能力位控制;适配器按 provider capability
|
|
664
|
-
*
|
|
670
|
+
* thinking 能力位控制;适配器按 provider capability 改写。
|
|
671
|
+
* `off` 位 = 显式思考关断(fast 形态载体)——
|
|
665
672
|
* 与「缺席」语义不同:缺席 = 上游缺省(openai 兼容面思考模型缺省仍开思考,
|
|
666
673
|
* UCloud 实证),off = 适配器按方言显式关(twp → params.reasoning='off';
|
|
667
674
|
* openai 直连 → enable_thinking:false;anthropic → 不发 thinking 参数)。
|
|
@@ -679,14 +686,14 @@ declare const IRRequestSchema: z.ZodObject<{
|
|
|
679
686
|
}>>;
|
|
680
687
|
stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
681
688
|
/**
|
|
682
|
-
* 请求级缓存写抑制(contract-v0.8
|
|
689
|
+
* 请求级缓存写抑制(contract-v0.8):true 时显式缓存适配器
|
|
683
690
|
* 不在消息尾落 cache_control 断点(system/工具面断点不受影响)。签发方为
|
|
684
|
-
* 一次性辅助请求(
|
|
691
|
+
* 一次性辅助请求(上下文压缩/标题生成)——其消息尾不会被复读,
|
|
685
692
|
* 写缓存纯付费无收益。implicit/ignored 缓存模式的适配器忽略本键。
|
|
686
693
|
*/
|
|
687
694
|
skipCacheWrite: z.ZodOptional<z.ZodBoolean>;
|
|
688
695
|
/**
|
|
689
|
-
* 端侧预估的 prompt 侧 token 总量(
|
|
696
|
+
* 端侧预估的 prompt 侧 token 总量(贴窗防御;加法可选)。
|
|
690
697
|
* 语义:请求面(system+messages+tools)装配定格后、发出前的估算值,
|
|
691
698
|
* 整数 ≥1(向上取整;api TwpParamsSchema.promptTokensEstimate 同下限)。
|
|
692
699
|
* 消费方 = twp 适配器(落 params.promptTokensEstimate,网关侧贴窗拦截,
|
|
@@ -823,8 +830,9 @@ declare const IRRequestSchema: z.ZodObject<{
|
|
|
823
830
|
skipCacheWrite?: boolean | undefined;
|
|
824
831
|
promptTokensEstimate?: number | undefined;
|
|
825
832
|
}>;
|
|
833
|
+
/** 模型调用请求(IRRequestSchema 推导)。 */
|
|
826
834
|
type IRRequest = z.infer<typeof IRRequestSchema>;
|
|
827
|
-
/** 五路用量归一化(
|
|
835
|
+
/** 五路用量归一化(input/output + 缓存读/写细分 + 推理输出)。
|
|
828
836
|
* inputTokens 为 exclusive 口径(规范语义,见字段注释)。 */
|
|
829
837
|
declare const IRUsageSchema: z.ZodObject<{
|
|
830
838
|
/**
|
|
@@ -832,7 +840,7 @@ declare const IRUsageSchema: z.ZodObject<{
|
|
|
832
840
|
* 会签):不含 cacheReadInputTokens 与 cacheCreationInputTokens——三路
|
|
833
841
|
* 相加 = 请求输入总量。适配器出口恒为本口径:inclusive 端点(OpenAI 系
|
|
834
842
|
* prompt_tokens,cached ⊆ prompt)在适配器内减法归一,包含关系以 compat
|
|
835
|
-
* 实录核证(
|
|
843
|
+
* 实录核证(见 providers openai/wire.ts exclusiveInputTokens
|
|
836
844
|
* 注释)。消费方(上下文账本/CostTracker/状态栏)三路直加,不得再做
|
|
837
845
|
* inclusive 换算(防双重矫正)。限界注记:端点的缓存写入量不可见时
|
|
838
846
|
* (如 OpenAI Chat 协议无 cache_write 字段),写入量仍含在本键内
|
|
@@ -844,7 +852,7 @@ declare const IRUsageSchema: z.ZodObject<{
|
|
|
844
852
|
cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
|
|
845
853
|
reasoningOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
846
854
|
/**
|
|
847
|
-
* 缓存删除量(contract-v0.4
|
|
855
|
+
* 缓存删除量(contract-v0.4;cached microcompact):
|
|
848
856
|
* provider 报告的 cache_deleted_input_tokens——服务端缓存段被逐出/失效的
|
|
849
857
|
* 通知量,**非计费维度**(cost-tracker 不入账),上下文账本(context
|
|
850
858
|
* ledger)以此校正窗口水位。观测到该字段的适配器填入;缺省不落键。
|
|
@@ -890,14 +898,15 @@ declare const IRUsageSchema: z.ZodObject<{
|
|
|
890
898
|
dims?: Record<string, number> | undefined;
|
|
891
899
|
saved?: string | undefined;
|
|
892
900
|
}>;
|
|
901
|
+
/** 归一化用量(IRUsageSchema 推导)。 */
|
|
893
902
|
type IRUsage = z.infer<typeof IRUsageSchema>;
|
|
894
903
|
/**
|
|
895
|
-
*
|
|
896
|
-
* policy_denied
|
|
904
|
+
* 归一化错误类别。
|
|
905
|
+
* policy_denied:平台策略/账务拒绝(余额/配额/内容
|
|
897
906
|
* 安全/出网/许可证/围栏/价格护栏等用户可行动族)——fail-fast 零重试,
|
|
898
907
|
* 与 invalid_request(请求本身不合法)语义分离;原始码与 detail 经错误
|
|
899
|
-
* 文案(`code: message`)与 twp onPlatformError
|
|
900
|
-
*
|
|
908
|
+
* 文案(`code: message`)与 twp onPlatformError 旁路直达渲染层。
|
|
909
|
+
* 后增两类(contract 加法演进):
|
|
901
910
|
* - connect:连接建立失败/连接超时(本端建连闸、网关 upstream_connect/
|
|
902
911
|
* ttfb 归一码)——与 network(本地毫秒级失败)同路由「耐心档」重试,
|
|
903
912
|
* 分列是为观测与文案区分「等墙」与「本机网络故障」两种病灶;
|
|
@@ -906,9 +915,10 @@ type IRUsage = z.infer<typeof IRUsageSchema>;
|
|
|
906
915
|
* 消费方(重试路由/呈现)对枚举外值须按 recoverable 兜底,不做穷举断言。
|
|
907
916
|
*/
|
|
908
917
|
declare const IRErrorKindSchema: z.ZodEnum<["rate_limited", "context_overflow", "auth", "server", "network", "connect", "stream_interrupted", "invalid_request", "policy_denied"]>;
|
|
918
|
+
/** 归一化错误类别(IRErrorKindSchema 推导)。 */
|
|
909
919
|
type IRErrorKind = z.infer<typeof IRErrorKindSchema>;
|
|
910
920
|
/**
|
|
911
|
-
* 模型侧流事件,与内核 msg.*
|
|
921
|
+
* 模型侧流事件,与内核 msg.* 事件同构。
|
|
912
922
|
* 适配器把各协议 SSE/delta 解析为本联合;内核只消费本联合。
|
|
913
923
|
*/
|
|
914
924
|
declare const IRStreamEventSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
@@ -1184,7 +1194,7 @@ declare const IRStreamEventSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
|
1184
1194
|
* 会签):不含 cacheReadInputTokens 与 cacheCreationInputTokens——三路
|
|
1185
1195
|
* 相加 = 请求输入总量。适配器出口恒为本口径:inclusive 端点(OpenAI 系
|
|
1186
1196
|
* prompt_tokens,cached ⊆ prompt)在适配器内减法归一,包含关系以 compat
|
|
1187
|
-
* 实录核证(
|
|
1197
|
+
* 实录核证(见 providers openai/wire.ts exclusiveInputTokens
|
|
1188
1198
|
* 注释)。消费方(上下文账本/CostTracker/状态栏)三路直加,不得再做
|
|
1189
1199
|
* inclusive 换算(防双重矫正)。限界注记:端点的缓存写入量不可见时
|
|
1190
1200
|
* (如 OpenAI Chat 协议无 cache_write 字段),写入量仍含在本键内
|
|
@@ -1196,7 +1206,7 @@ declare const IRStreamEventSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
|
1196
1206
|
cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1197
1207
|
reasoningOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
1198
1208
|
/**
|
|
1199
|
-
* 缓存删除量(contract-v0.4
|
|
1209
|
+
* 缓存删除量(contract-v0.4;cached microcompact):
|
|
1200
1210
|
* provider 报告的 cache_deleted_input_tokens——服务端缓存段被逐出/失效的
|
|
1201
1211
|
* 通知量,**非计费维度**(cost-tracker 不入账),上下文账本(context
|
|
1202
1212
|
* ledger)以此校正窗口水位。观测到该字段的适配器填入;缺省不落键。
|
|
@@ -1294,12 +1304,12 @@ declare const IRStreamEventSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
|
1294
1304
|
elapsedMs: number;
|
|
1295
1305
|
}>>;
|
|
1296
1306
|
/**
|
|
1297
|
-
* 结构化事实位(contract-v0.26
|
|
1307
|
+
* 结构化事实位(contract-v0.26;加法可选):适配器把服务端
|
|
1298
1308
|
* 信封 `error.detail` 中**机器可判、不含身份 / 内部 id** 的事实原样带到归一错误上,
|
|
1299
1309
|
* kernel 透传进 `turn.error.detail`。首个签发方 = providers twp 归一层对平台套餐码
|
|
1300
1310
|
* (`plan_concurrency_exceeded` / `plan_end_users_exceeded` / `plan_required` /
|
|
1301
1311
|
* `plan_tier_insufficient`)落 `{ scope: 'plan' }`——端侧据此把「开发者套餐配额」与
|
|
1302
|
-
* 「模型限流」区分(HTTP
|
|
1312
|
+
* 「模型限流」区分(HTTP 面同键同值;事件流面此前分叉)。缺席 = 无附加事实。
|
|
1303
1313
|
*/
|
|
1304
1314
|
detail: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1305
1315
|
/**
|
|
@@ -1335,36 +1345,42 @@ declare const IRStreamEventSchema: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
|
|
|
1335
1345
|
detail?: Record<string, unknown> | undefined;
|
|
1336
1346
|
idempotencyConsumed?: boolean | undefined;
|
|
1337
1347
|
}>]>;
|
|
1348
|
+
/** 类型化流事件(IRStreamEventSchema 推导)。 */
|
|
1338
1349
|
type IRStreamEvent = z.infer<typeof IRStreamEventSchema>;
|
|
1339
1350
|
|
|
1340
1351
|
/**
|
|
1341
|
-
*
|
|
1352
|
+
* 内核事件协议(一份数据三用:UI 渲染 / 审计 / 编排)
|
|
1342
1353
|
*
|
|
1343
|
-
*
|
|
1344
|
-
* -
|
|
1345
|
-
* -
|
|
1346
|
-
* -
|
|
1354
|
+
* 设计要点:
|
|
1355
|
+
* - 事件族与包络分离;
|
|
1356
|
+
* - 一等 error 事件、tombstone→message.retracted;
|
|
1357
|
+
* - 审计 schema 的关联链字段:trace/span/prompt/agent。
|
|
1347
1358
|
*
|
|
1348
1359
|
* 兼容规则:消费端必须容忍未知事件 type(向前兼容),据包络 `v` 字段判断。
|
|
1349
1360
|
*/
|
|
1350
1361
|
|
|
1362
|
+
/** 一轮查询的终止原因词表:正常完成、各类上限触顶、模型错误、中断 / 超时 / 关停、hook 阻断等。 */
|
|
1351
1363
|
declare const TerminalReasonSchema: z.ZodEnum<["completed", "blocking_limit", "aborted_streaming", "aborted_tools", "model_error", "prompt_too_long", "max_turns", "max_tool_rounds", "injection_limit", "hook_stopped", "structured_output", "timeout", "shutdown", "budget_exceeded", "stop_hook_limit", "internal_error", "client_gone"]>;
|
|
1364
|
+
/** 一轮查询的终止原因(TerminalReasonSchema 推导)。 */
|
|
1352
1365
|
type TerminalReason = z.infer<typeof TerminalReasonSchema>;
|
|
1366
|
+
/** 权限决策三值:allow 放行 / deny 拒绝 / ask 交用户终审。 */
|
|
1353
1367
|
declare const PermissionDecisionSchema: z.ZodEnum<["allow", "deny", "ask"]>;
|
|
1368
|
+
/** 权限决策(PermissionDecisionSchema 推导)。 */
|
|
1354
1369
|
type PermissionDecision = z.infer<typeof PermissionDecisionSchema>;
|
|
1355
1370
|
/**
|
|
1356
|
-
*
|
|
1357
|
-
* contract-v0.3
|
|
1371
|
+
* 决策来源——全部落审计。
|
|
1372
|
+
* contract-v0.3:增 'hook'——PreToolUse hook 收紧(deny/升格 ask)
|
|
1358
1373
|
* 的专属归因;此前临时借记 'policy' 会损失「引擎策略 vs 外部执行体」的审计粒度。
|
|
1359
|
-
* contract-v0.7
|
|
1374
|
+
* contract-v0.7:增 'builtin'——内置安全基线(权限管线
|
|
1360
1375
|
* 4.5 段)命中的专属归因;此前临时借记 'rule' 会与用户/企业配置规则混淆审计来源。
|
|
1361
|
-
* contract-v0.8
|
|
1376
|
+
* contract-v0.8:增 'classifier'——LLM 权限分类器
|
|
1362
1377
|
* 裁决的专属归因(auto 模式放行/收紧,或 ask 决策的分类器收紧);借记
|
|
1363
1378
|
* 'policy'/'mode' 都会损失「机器裁决」这一审计维度。
|
|
1364
1379
|
*/
|
|
1365
1380
|
declare const DecisionSourceSchema: z.ZodEnum<["rule", "user", "mode", "policy", "hook", "builtin", "classifier"]>;
|
|
1381
|
+
/** 权限决策来源(DecisionSourceSchema 推导)。 */
|
|
1366
1382
|
type DecisionSource = z.infer<typeof DecisionSourceSchema>;
|
|
1367
|
-
/** 事件负载联合(不含包络)
|
|
1383
|
+
/** 事件负载联合(不含包络)。命名按 session/turn/msg/tool/agent/hook/cost/plan 分族。 */
|
|
1368
1384
|
declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
1369
1385
|
type: z.ZodLiteral<"session.created">;
|
|
1370
1386
|
cwd: z.ZodString;
|
|
@@ -1388,7 +1404,7 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
1388
1404
|
/** 被移除消息的 index 闭区间 [first, last](原数组坐标) */
|
|
1389
1405
|
removedRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
1390
1406
|
/**
|
|
1391
|
-
* 被移除消息的精确 index 清单(contract-v0.4
|
|
1407
|
+
* 被移除消息的精确 index 清单(contract-v0.4):pinned
|
|
1392
1408
|
* 挖洞时 removedRange 是外包络,重放/审计按本清单才能精确复原折叠面;
|
|
1393
1409
|
* 表面层折叠计数也应优先取本清单长度。升序;缺省时按 removedRange 连续。
|
|
1394
1410
|
*/
|
|
@@ -1612,9 +1628,9 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
1612
1628
|
*/
|
|
1613
1629
|
errorKind: z.ZodOptional<z.ZodString>;
|
|
1614
1630
|
/**
|
|
1615
|
-
* 结构化事实位(contract-v0.26
|
|
1631
|
+
* 结构化事实位(contract-v0.26;加法可选键):scope='model' 时
|
|
1616
1632
|
* = IR error 事件 `detail` 透传(providers 自服务端信封带出的机器可判事实;首个取值
|
|
1617
|
-
* `{ scope: 'plan' }` = 平台套餐配额拒绝,与 HTTP 面
|
|
1633
|
+
* `{ scope: 'plan' }` = 平台套餐配额拒绝,与 HTTP 面 `error.detail.scope`
|
|
1618
1634
|
* 同键同值)。三端 reducer 归约:`recoverable:true` → `SessionNotice.detail`,失败形 →
|
|
1619
1635
|
* `ErrorView.detail`;端侧 `ErrorEnvelope.scope` 取值器同一读法。缺席 = 无附加事实
|
|
1620
1636
|
* (既有事件体字节零变)。值恒不含 endUser 身份 / 令牌 / 内部 id。
|
|
@@ -1721,7 +1737,7 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
1721
1737
|
decision: z.ZodEnum<["allow", "deny", "ask"]>;
|
|
1722
1738
|
decisionSource: z.ZodEnum<["rule", "user", "mode", "policy", "hook", "builtin", "classifier"]>;
|
|
1723
1739
|
/**
|
|
1724
|
-
* 命中的规则原文(如 `Shell(git *)`;contract-v0.2
|
|
1740
|
+
* 命中的规则原文(如 `Shell(git *)`;contract-v0.2)。
|
|
1725
1741
|
* 审计链由此可答"哪条规则拒的";模式短路/兜底 ask 等无规则命中时不落键。
|
|
1726
1742
|
*/
|
|
1727
1743
|
matchedRule: z.ZodOptional<z.ZodString>;
|
|
@@ -1775,25 +1791,25 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
1775
1791
|
toolCallId: z.ZodString;
|
|
1776
1792
|
durationMs: z.ZodNumber;
|
|
1777
1793
|
/**
|
|
1778
|
-
* ToolResult.data 透传位(contract-v0.3
|
|
1794
|
+
* ToolResult.data 透传位(contract-v0.3):工具产出的结构化
|
|
1779
1795
|
* 渲染数据(AGENTS.md「工具只产出结构化数据」铁律的事件流出口)。
|
|
1780
1796
|
* 表面层按工具名注册渲染器消费;无 data 的工具不落键,消费方忽略无害。
|
|
1781
1797
|
*/
|
|
1782
1798
|
data: z.ZodOptional<z.ZodUnknown>;
|
|
1783
1799
|
/**
|
|
1784
|
-
* 模型可见文本投影(contract-v0.8
|
|
1800
|
+
* 模型可见文本投影(contract-v0.8):喂回模型的 tool_result
|
|
1785
1801
|
* 文本(截断后形态)。cc-compat stream-json 包络与 SDK 消费方由此拿到
|
|
1786
1802
|
* 与模型一致的结果文本,不必反推 data;与 data 正交(结构化渲染 vs
|
|
1787
|
-
* 模型文本)
|
|
1803
|
+
* 模型文本)。大结果按工具结果预算截断后的文本为准,不另存全量。
|
|
1788
1804
|
*/
|
|
1789
1805
|
content: z.ZodOptional<z.ZodString>;
|
|
1790
1806
|
/**
|
|
1791
|
-
* 工具结构化失败位(contract-v0.25
|
|
1807
|
+
* 工具结构化失败位(contract-v0.25):`ToolResult.isError`
|
|
1792
1808
|
* 透传。工具以 **return isError** 表达的业务级失败(非零退出 / 用户中断 / SSRF 拒 /
|
|
1793
1809
|
* 媒体错误形)与 throw 径的 `tool.failed` 在表面层归约为同一 failed 态——此前 TUI /
|
|
1794
|
-
* sdk /
|
|
1810
|
+
* sdk / 端侧对这类结果一律 ✓。缺席 = 旧签发方或成功完成(completed 语义不变);
|
|
1795
1811
|
* 消费方(TUI / sdk / Android / iOS reducer)只判 `isError === true → failed`。
|
|
1796
|
-
* 纯可选加法,包络 `v` 不 bump;端侧 vendored
|
|
1812
|
+
* 纯可选加法,包络 `v` 不 bump;端侧 vendored 同步另行跟进。
|
|
1797
1813
|
*/
|
|
1798
1814
|
isError: z.ZodOptional<z.ZodBoolean>;
|
|
1799
1815
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1990,7 +2006,7 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
1990
2006
|
}>;
|
|
1991
2007
|
costUsd: z.ZodOptional<z.ZodNumber>;
|
|
1992
2008
|
/**
|
|
1993
|
-
* 上下文窗口分母(contract-v0.3
|
|
2009
|
+
* 上下文窗口分母(contract-v0.3):签发方(查询环)从装配层
|
|
1994
2010
|
* 注入的 provider capability.maxContext 透传。状态栏水位 = 最近 prompt
|
|
1995
2011
|
* 规模 / 本值;缺省时表面层隐藏水位段(或回退装配注入的静态值)。
|
|
1996
2012
|
* 随 usage 更新携带——/model 热切换后分母随下一轮事件自动矫正。
|
|
@@ -2004,19 +2020,19 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
2004
2020
|
toolUseId: z.ZodOptional<z.ZodString>;
|
|
2005
2021
|
/**
|
|
2006
2022
|
* 用量目的:非对话主流的模型调用标注来源。词表:'compaction'(上下文
|
|
2007
|
-
*
|
|
2008
|
-
*
|
|
2009
|
-
*
|
|
2010
|
-
*
|
|
2023
|
+
* 压缩轮)/ 'title'(会话标题生成,contract-v0.8
|
|
2024
|
+
* 扩容;辅助任务降档的归因面)/ 'permission_classifier'(LLM 权限
|
|
2025
|
+
* 分类器调用)/ 'memory'(记忆四面 fork:提取/固化/晋升/召回
|
|
2026
|
+
* 选择;随本地记账闭环扩词)。新目的先扩词表再签发
|
|
2011
2027
|
* (自由文本仅兜底);缺省即对话主流。
|
|
2012
2028
|
*
|
|
2013
|
-
*
|
|
2029
|
+
* 词表分叉注记:同一分类器子系统在 request-
|
|
2014
2030
|
* measurement 观测面与 TWP 出线面用词 'classifier'(kernel context/
|
|
2015
2031
|
* request-measurement.ts RequestPurpose、providers twp/contract.ts
|
|
2016
|
-
* TWP_PURPOSE_VALUES
|
|
2032
|
+
* TWP_PURPOSE_VALUES——现为扁平单表,分版常量已退役),与本词表
|
|
2017
2033
|
* 'permission_classifier' 属两套近义词并存;且本词当前全仓零签发方
|
|
2018
2034
|
* (分类器 usage 走遥测与测量面,不落本地 cost 事件)。统一到单一词属
|
|
2019
|
-
*
|
|
2035
|
+
* 契约面决策,待定;届时 kernel cost/tracker.ts KNOWN_COST_PURPOSES
|
|
2020
2036
|
* 须同步,勿单侧改词。
|
|
2021
2037
|
*/
|
|
2022
2038
|
purpose: z.ZodOptional<z.ZodString>;
|
|
@@ -2347,6 +2363,7 @@ declare const EventBodySchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
|
2347
2363
|
content: string;
|
|
2348
2364
|
}[];
|
|
2349
2365
|
}>]>;
|
|
2366
|
+
/** 事件负载联合(EventBodySchema 推导)。 */
|
|
2350
2367
|
type EventBody = z.infer<typeof EventBodySchema>;
|
|
2351
2368
|
/** 完整事件 = 包络 + 负载 */
|
|
2352
2369
|
declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
@@ -2397,7 +2414,7 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
2397
2414
|
/** 被移除消息的 index 闭区间 [first, last](原数组坐标) */
|
|
2398
2415
|
removedRange: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
2399
2416
|
/**
|
|
2400
|
-
* 被移除消息的精确 index 清单(contract-v0.4
|
|
2417
|
+
* 被移除消息的精确 index 清单(contract-v0.4):pinned
|
|
2401
2418
|
* 挖洞时 removedRange 是外包络,重放/审计按本清单才能精确复原折叠面;
|
|
2402
2419
|
* 表面层折叠计数也应优先取本清单长度。升序;缺省时按 removedRange 连续。
|
|
2403
2420
|
*/
|
|
@@ -2621,9 +2638,9 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
2621
2638
|
*/
|
|
2622
2639
|
errorKind: z.ZodOptional<z.ZodString>;
|
|
2623
2640
|
/**
|
|
2624
|
-
* 结构化事实位(contract-v0.26
|
|
2641
|
+
* 结构化事实位(contract-v0.26;加法可选键):scope='model' 时
|
|
2625
2642
|
* = IR error 事件 `detail` 透传(providers 自服务端信封带出的机器可判事实;首个取值
|
|
2626
|
-
* `{ scope: 'plan' }` = 平台套餐配额拒绝,与 HTTP 面
|
|
2643
|
+
* `{ scope: 'plan' }` = 平台套餐配额拒绝,与 HTTP 面 `error.detail.scope`
|
|
2627
2644
|
* 同键同值)。三端 reducer 归约:`recoverable:true` → `SessionNotice.detail`,失败形 →
|
|
2628
2645
|
* `ErrorView.detail`;端侧 `ErrorEnvelope.scope` 取值器同一读法。缺席 = 无附加事实
|
|
2629
2646
|
* (既有事件体字节零变)。值恒不含 endUser 身份 / 令牌 / 内部 id。
|
|
@@ -2730,7 +2747,7 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
2730
2747
|
decision: z.ZodEnum<["allow", "deny", "ask"]>;
|
|
2731
2748
|
decisionSource: z.ZodEnum<["rule", "user", "mode", "policy", "hook", "builtin", "classifier"]>;
|
|
2732
2749
|
/**
|
|
2733
|
-
* 命中的规则原文(如 `Shell(git *)`;contract-v0.2
|
|
2750
|
+
* 命中的规则原文(如 `Shell(git *)`;contract-v0.2)。
|
|
2734
2751
|
* 审计链由此可答"哪条规则拒的";模式短路/兜底 ask 等无规则命中时不落键。
|
|
2735
2752
|
*/
|
|
2736
2753
|
matchedRule: z.ZodOptional<z.ZodString>;
|
|
@@ -2784,25 +2801,25 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
2784
2801
|
toolCallId: z.ZodString;
|
|
2785
2802
|
durationMs: z.ZodNumber;
|
|
2786
2803
|
/**
|
|
2787
|
-
* ToolResult.data 透传位(contract-v0.3
|
|
2804
|
+
* ToolResult.data 透传位(contract-v0.3):工具产出的结构化
|
|
2788
2805
|
* 渲染数据(AGENTS.md「工具只产出结构化数据」铁律的事件流出口)。
|
|
2789
2806
|
* 表面层按工具名注册渲染器消费;无 data 的工具不落键,消费方忽略无害。
|
|
2790
2807
|
*/
|
|
2791
2808
|
data: z.ZodOptional<z.ZodUnknown>;
|
|
2792
2809
|
/**
|
|
2793
|
-
* 模型可见文本投影(contract-v0.8
|
|
2810
|
+
* 模型可见文本投影(contract-v0.8):喂回模型的 tool_result
|
|
2794
2811
|
* 文本(截断后形态)。cc-compat stream-json 包络与 SDK 消费方由此拿到
|
|
2795
2812
|
* 与模型一致的结果文本,不必反推 data;与 data 正交(结构化渲染 vs
|
|
2796
|
-
* 模型文本)
|
|
2813
|
+
* 模型文本)。大结果按工具结果预算截断后的文本为准,不另存全量。
|
|
2797
2814
|
*/
|
|
2798
2815
|
content: z.ZodOptional<z.ZodString>;
|
|
2799
2816
|
/**
|
|
2800
|
-
* 工具结构化失败位(contract-v0.25
|
|
2817
|
+
* 工具结构化失败位(contract-v0.25):`ToolResult.isError`
|
|
2801
2818
|
* 透传。工具以 **return isError** 表达的业务级失败(非零退出 / 用户中断 / SSRF 拒 /
|
|
2802
2819
|
* 媒体错误形)与 throw 径的 `tool.failed` 在表面层归约为同一 failed 态——此前 TUI /
|
|
2803
|
-
* sdk /
|
|
2820
|
+
* sdk / 端侧对这类结果一律 ✓。缺席 = 旧签发方或成功完成(completed 语义不变);
|
|
2804
2821
|
* 消费方(TUI / sdk / Android / iOS reducer)只判 `isError === true → failed`。
|
|
2805
|
-
* 纯可选加法,包络 `v` 不 bump;端侧 vendored
|
|
2822
|
+
* 纯可选加法,包络 `v` 不 bump;端侧 vendored 同步另行跟进。
|
|
2806
2823
|
*/
|
|
2807
2824
|
isError: z.ZodOptional<z.ZodBoolean>;
|
|
2808
2825
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -2999,7 +3016,7 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
2999
3016
|
}>;
|
|
3000
3017
|
costUsd: z.ZodOptional<z.ZodNumber>;
|
|
3001
3018
|
/**
|
|
3002
|
-
* 上下文窗口分母(contract-v0.3
|
|
3019
|
+
* 上下文窗口分母(contract-v0.3):签发方(查询环)从装配层
|
|
3003
3020
|
* 注入的 provider capability.maxContext 透传。状态栏水位 = 最近 prompt
|
|
3004
3021
|
* 规模 / 本值;缺省时表面层隐藏水位段(或回退装配注入的静态值)。
|
|
3005
3022
|
* 随 usage 更新携带——/model 热切换后分母随下一轮事件自动矫正。
|
|
@@ -3013,19 +3030,19 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
3013
3030
|
toolUseId: z.ZodOptional<z.ZodString>;
|
|
3014
3031
|
/**
|
|
3015
3032
|
* 用量目的:非对话主流的模型调用标注来源。词表:'compaction'(上下文
|
|
3016
|
-
*
|
|
3017
|
-
*
|
|
3018
|
-
*
|
|
3019
|
-
*
|
|
3033
|
+
* 压缩轮)/ 'title'(会话标题生成,contract-v0.8
|
|
3034
|
+
* 扩容;辅助任务降档的归因面)/ 'permission_classifier'(LLM 权限
|
|
3035
|
+
* 分类器调用)/ 'memory'(记忆四面 fork:提取/固化/晋升/召回
|
|
3036
|
+
* 选择;随本地记账闭环扩词)。新目的先扩词表再签发
|
|
3020
3037
|
* (自由文本仅兜底);缺省即对话主流。
|
|
3021
3038
|
*
|
|
3022
|
-
*
|
|
3039
|
+
* 词表分叉注记:同一分类器子系统在 request-
|
|
3023
3040
|
* measurement 观测面与 TWP 出线面用词 'classifier'(kernel context/
|
|
3024
3041
|
* request-measurement.ts RequestPurpose、providers twp/contract.ts
|
|
3025
|
-
* TWP_PURPOSE_VALUES
|
|
3042
|
+
* TWP_PURPOSE_VALUES——现为扁平单表,分版常量已退役),与本词表
|
|
3026
3043
|
* 'permission_classifier' 属两套近义词并存;且本词当前全仓零签发方
|
|
3027
3044
|
* (分类器 usage 走遥测与测量面,不落本地 cost 事件)。统一到单一词属
|
|
3028
|
-
*
|
|
3045
|
+
* 契约面决策,待定;届时 kernel cost/tracker.ts KNOWN_COST_PURPOSES
|
|
3029
3046
|
* 须同步,勿单侧改词。
|
|
3030
3047
|
*/
|
|
3031
3048
|
purpose: z.ZodOptional<z.ZodString>;
|
|
@@ -3356,23 +3373,23 @@ declare const KernelEventSchema: z.ZodIntersection<z.ZodObject<{
|
|
|
3356
3373
|
content: string;
|
|
3357
3374
|
}[];
|
|
3358
3375
|
}>]>>;
|
|
3376
|
+
/** 完整内核事件:包络 + 负载(KernelEventSchema 推导)。 */
|
|
3359
3377
|
type KernelEvent = z.infer<typeof KernelEventSchema>;
|
|
3360
3378
|
|
|
3361
3379
|
/**
|
|
3362
|
-
*
|
|
3380
|
+
* 配置 schema(五层合并的目标结构)
|
|
3363
3381
|
*
|
|
3364
|
-
*
|
|
3365
|
-
* -
|
|
3366
|
-
* -
|
|
3382
|
+
* 设计要点:
|
|
3383
|
+
* - Provider Profile + capability + 别名三档 + fallback;
|
|
3384
|
+
* - 国内厂商 capability 增补:缓存三态 / thinking 改写器 / must_echo_back / modelModifiers / 峰谷计价。
|
|
3367
3385
|
*
|
|
3368
|
-
*
|
|
3386
|
+
* 五层合并顺序:managed > 项目 local > 项目 shared > 用户 > 内置。
|
|
3369
3387
|
*/
|
|
3370
3388
|
|
|
3371
3389
|
declare const CapabilitySchema: z.ZodObject<{
|
|
3372
3390
|
maxContext: z.ZodNumber;
|
|
3373
3391
|
/**
|
|
3374
|
-
* 实测质量拐点窗口(tokens
|
|
3375
|
-
* maxOutput/RFC-CTX12-3 同律形态)。可选且**无默认值**——undefined =
|
|
3392
|
+
* 实测质量拐点窗口(tokens;与 maxOutput 同律形态)。可选且**无默认值**——undefined =
|
|
3376
3393
|
* 未实证,消费方沿标称 maxContext(行为零变);声明时装配层窗口合成
|
|
3377
3394
|
* 取 min(maxContext, effectiveContext)(合成恒在装配层单点,kernel
|
|
3378
3395
|
* 冻结面不开位)。数据纪律与 maxOutput 同:手工回填须带公开评测出处,
|
|
@@ -3381,11 +3398,11 @@ declare const CapabilitySchema: z.ZodObject<{
|
|
|
3381
3398
|
effectiveContext: z.ZodOptional<z.ZodNumber>;
|
|
3382
3399
|
/**
|
|
3383
3400
|
* 单次响应输出上限(tokens;厂商 max_tokens / max_completion_tokens
|
|
3384
|
-
* 限额)。contract-v0.15
|
|
3385
|
-
* undefined = 未知/未实证,消费方自选保守值(压缩输出预算径回退 20K,
|
|
3386
|
-
*
|
|
3387
|
-
*
|
|
3388
|
-
*
|
|
3401
|
+
* 限额)。contract-v0.15:可选且**无默认值**——
|
|
3402
|
+
* undefined = 未知/未实证,消费方自选保守值(压缩输出预算径回退 20K),
|
|
3403
|
+
* 与显式数值(官方文档实证)区分,杜绝编造(hostedTools / quirks
|
|
3404
|
+
* 新键同先例)。数据纪律:内置表回填
|
|
3405
|
+
* 必须带官方出处与查证日期,拿不准的模型宁可不录。
|
|
3389
3406
|
*/
|
|
3390
3407
|
maxOutput: z.ZodOptional<z.ZodNumber>;
|
|
3391
3408
|
/**
|
|
@@ -3577,7 +3594,7 @@ declare const CapabilitySchema: z.ZodObject<{
|
|
|
3577
3594
|
/** 思考首 token 显著慢的建议超时下限(ms;适配器/重试 watchdog 消费) */
|
|
3578
3595
|
minTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
3579
3596
|
/** max_tokens 限额是否不含 reasoning 预算(doubao true 与 kimi/glm false
|
|
3580
|
-
*
|
|
3597
|
+
* 相反实证;成本预估与截断防御的消费点) */
|
|
3581
3598
|
maxTokensExcludesReasoning: z.ZodOptional<z.ZodBoolean>;
|
|
3582
3599
|
}, "strip", z.ZodTypeAny, {
|
|
3583
3600
|
unknownModelFallback: boolean;
|
|
@@ -3608,7 +3625,7 @@ declare const CapabilitySchema: z.ZodObject<{
|
|
|
3608
3625
|
*/
|
|
3609
3626
|
hostedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
3610
3627
|
/**
|
|
3611
|
-
* contract-v0.4
|
|
3628
|
+
* contract-v0.4:Responses `background:true` 异步任务能力位。
|
|
3612
3629
|
* 同上,可选且无默认值。
|
|
3613
3630
|
*/
|
|
3614
3631
|
background: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -3719,7 +3736,9 @@ declare const CapabilitySchema: z.ZodObject<{
|
|
|
3719
3736
|
hostedTools?: string[] | undefined;
|
|
3720
3737
|
background?: boolean | undefined;
|
|
3721
3738
|
}>;
|
|
3739
|
+
/** 模型能力位(CapabilitySchema 推导;经 schema parse 后默认值已填充)。 */
|
|
3722
3740
|
type Capability = z.infer<typeof CapabilitySchema>;
|
|
3741
|
+
/** 单模型价格表:每百万 token 的输入 / 缓存输入 / 输出价,可选峰谷倍率与阶梯计价。 */
|
|
3723
3742
|
declare const PricingSchema: z.ZodObject<{
|
|
3724
3743
|
/** ¥ 或 $ 每百万 token */
|
|
3725
3744
|
inputPerMillion: z.ZodNumber;
|
|
@@ -3728,7 +3747,7 @@ declare const PricingSchema: z.ZodObject<{
|
|
|
3728
3747
|
/** 峰谷时段倍率(DeepSeek 高峰翻倍) */
|
|
3729
3748
|
peakMultiplier: z.ZodOptional<z.ZodNumber>;
|
|
3730
3749
|
/**
|
|
3731
|
-
* contract-v0.5
|
|
3750
|
+
* contract-v0.5:阶梯计价。缺省 undefined = 扁平计价(现状零
|
|
3732
3751
|
* 迁移);声明 tiers 时顶层三价约定为**首档镜像**(文档约定不强 refine)——
|
|
3733
3752
|
* 向前兼容降级语义:无 tiers 感知的旧消费端仍按顶层价近似计费,不炸不偏零。
|
|
3734
3753
|
*/
|
|
@@ -3772,7 +3791,9 @@ declare const PricingSchema: z.ZodObject<{
|
|
|
3772
3791
|
cachedInputPerMillion?: number | undefined;
|
|
3773
3792
|
}[] | undefined;
|
|
3774
3793
|
}>;
|
|
3794
|
+
/** 单模型价格表(PricingSchema 推导)。 */
|
|
3775
3795
|
type Pricing = z.infer<typeof PricingSchema>;
|
|
3796
|
+
/** provider 档案:线协议、baseUrl、鉴权 env 变量名、角色别名表、能力位与逐模型价格表。 */
|
|
3776
3797
|
declare const ProviderProfileSchema: z.ZodObject<{
|
|
3777
3798
|
protocol: z.ZodEnum<["anthropic", "openai", "openai-responses", "twp"]>;
|
|
3778
3799
|
baseUrl: z.ZodString;
|
|
@@ -3788,8 +3809,7 @@ declare const ProviderProfileSchema: z.ZodObject<{
|
|
|
3788
3809
|
capability: z.ZodOptional<z.ZodObject<{
|
|
3789
3810
|
maxContext: z.ZodNumber;
|
|
3790
3811
|
/**
|
|
3791
|
-
* 实测质量拐点窗口(tokens
|
|
3792
|
-
* maxOutput/RFC-CTX12-3 同律形态)。可选且**无默认值**——undefined =
|
|
3812
|
+
* 实测质量拐点窗口(tokens;与 maxOutput 同律形态)。可选且**无默认值**——undefined =
|
|
3793
3813
|
* 未实证,消费方沿标称 maxContext(行为零变);声明时装配层窗口合成
|
|
3794
3814
|
* 取 min(maxContext, effectiveContext)(合成恒在装配层单点,kernel
|
|
3795
3815
|
* 冻结面不开位)。数据纪律与 maxOutput 同:手工回填须带公开评测出处,
|
|
@@ -3798,11 +3818,11 @@ declare const ProviderProfileSchema: z.ZodObject<{
|
|
|
3798
3818
|
effectiveContext: z.ZodOptional<z.ZodNumber>;
|
|
3799
3819
|
/**
|
|
3800
3820
|
* 单次响应输出上限(tokens;厂商 max_tokens / max_completion_tokens
|
|
3801
|
-
* 限额)。contract-v0.15
|
|
3802
|
-
* undefined = 未知/未实证,消费方自选保守值(压缩输出预算径回退 20K,
|
|
3803
|
-
*
|
|
3804
|
-
*
|
|
3805
|
-
*
|
|
3821
|
+
* 限额)。contract-v0.15:可选且**无默认值**——
|
|
3822
|
+
* undefined = 未知/未实证,消费方自选保守值(压缩输出预算径回退 20K),
|
|
3823
|
+
* 与显式数值(官方文档实证)区分,杜绝编造(hostedTools / quirks
|
|
3824
|
+
* 新键同先例)。数据纪律:内置表回填
|
|
3825
|
+
* 必须带官方出处与查证日期,拿不准的模型宁可不录。
|
|
3806
3826
|
*/
|
|
3807
3827
|
maxOutput: z.ZodOptional<z.ZodNumber>;
|
|
3808
3828
|
/**
|
|
@@ -3994,7 +4014,7 @@ declare const ProviderProfileSchema: z.ZodObject<{
|
|
|
3994
4014
|
/** 思考首 token 显著慢的建议超时下限(ms;适配器/重试 watchdog 消费) */
|
|
3995
4015
|
minTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
3996
4016
|
/** max_tokens 限额是否不含 reasoning 预算(doubao true 与 kimi/glm false
|
|
3997
|
-
*
|
|
4017
|
+
* 相反实证;成本预估与截断防御的消费点) */
|
|
3998
4018
|
maxTokensExcludesReasoning: z.ZodOptional<z.ZodBoolean>;
|
|
3999
4019
|
}, "strip", z.ZodTypeAny, {
|
|
4000
4020
|
unknownModelFallback: boolean;
|
|
@@ -4025,7 +4045,7 @@ declare const ProviderProfileSchema: z.ZodObject<{
|
|
|
4025
4045
|
*/
|
|
4026
4046
|
hostedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4027
4047
|
/**
|
|
4028
|
-
* contract-v0.4
|
|
4048
|
+
* contract-v0.4:Responses `background:true` 异步任务能力位。
|
|
4029
4049
|
* 同上,可选且无默认值。
|
|
4030
4050
|
*/
|
|
4031
4051
|
background: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -4144,7 +4164,7 @@ declare const ProviderProfileSchema: z.ZodObject<{
|
|
|
4144
4164
|
/** 峰谷时段倍率(DeepSeek 高峰翻倍) */
|
|
4145
4165
|
peakMultiplier: z.ZodOptional<z.ZodNumber>;
|
|
4146
4166
|
/**
|
|
4147
|
-
* contract-v0.5
|
|
4167
|
+
* contract-v0.5:阶梯计价。缺省 undefined = 扁平计价(现状零
|
|
4148
4168
|
* 迁移);声明 tiers 时顶层三价约定为**首档镜像**(文档约定不强 refine)——
|
|
4149
4169
|
* 向前兼容降级语义:无 tiers 感知的旧消费端仍按顶层价近似计费,不炸不偏零。
|
|
4150
4170
|
*/
|
|
@@ -4335,6 +4355,7 @@ declare const ProviderProfileSchema: z.ZodObject<{
|
|
|
4335
4355
|
}[] | undefined;
|
|
4336
4356
|
}> | undefined;
|
|
4337
4357
|
}>;
|
|
4358
|
+
/** provider 档案(ProviderProfileSchema 推导)。 */
|
|
4338
4359
|
type ProviderProfile = z.infer<typeof ProviderProfileSchema>;
|
|
4339
4360
|
declare const TansrConfigSchema: z.ZodObject<{
|
|
4340
4361
|
$schemaVersion: z.ZodDefault<z.ZodLiteral<1>>;
|
|
@@ -4353,8 +4374,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
4353
4374
|
capability: z.ZodOptional<z.ZodObject<{
|
|
4354
4375
|
maxContext: z.ZodNumber;
|
|
4355
4376
|
/**
|
|
4356
|
-
* 实测质量拐点窗口(tokens
|
|
4357
|
-
* maxOutput/RFC-CTX12-3 同律形态)。可选且**无默认值**——undefined =
|
|
4377
|
+
* 实测质量拐点窗口(tokens;与 maxOutput 同律形态)。可选且**无默认值**——undefined =
|
|
4358
4378
|
* 未实证,消费方沿标称 maxContext(行为零变);声明时装配层窗口合成
|
|
4359
4379
|
* 取 min(maxContext, effectiveContext)(合成恒在装配层单点,kernel
|
|
4360
4380
|
* 冻结面不开位)。数据纪律与 maxOutput 同:手工回填须带公开评测出处,
|
|
@@ -4363,11 +4383,11 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
4363
4383
|
effectiveContext: z.ZodOptional<z.ZodNumber>;
|
|
4364
4384
|
/**
|
|
4365
4385
|
* 单次响应输出上限(tokens;厂商 max_tokens / max_completion_tokens
|
|
4366
|
-
* 限额)。contract-v0.15
|
|
4367
|
-
* undefined = 未知/未实证,消费方自选保守值(压缩输出预算径回退 20K,
|
|
4368
|
-
*
|
|
4369
|
-
*
|
|
4370
|
-
*
|
|
4386
|
+
* 限额)。contract-v0.15:可选且**无默认值**——
|
|
4387
|
+
* undefined = 未知/未实证,消费方自选保守值(压缩输出预算径回退 20K),
|
|
4388
|
+
* 与显式数值(官方文档实证)区分,杜绝编造(hostedTools / quirks
|
|
4389
|
+
* 新键同先例)。数据纪律:内置表回填
|
|
4390
|
+
* 必须带官方出处与查证日期,拿不准的模型宁可不录。
|
|
4371
4391
|
*/
|
|
4372
4392
|
maxOutput: z.ZodOptional<z.ZodNumber>;
|
|
4373
4393
|
/**
|
|
@@ -4559,7 +4579,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
4559
4579
|
/** 思考首 token 显著慢的建议超时下限(ms;适配器/重试 watchdog 消费) */
|
|
4560
4580
|
minTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
4561
4581
|
/** max_tokens 限额是否不含 reasoning 预算(doubao true 与 kimi/glm false
|
|
4562
|
-
*
|
|
4582
|
+
* 相反实证;成本预估与截断防御的消费点) */
|
|
4563
4583
|
maxTokensExcludesReasoning: z.ZodOptional<z.ZodBoolean>;
|
|
4564
4584
|
}, "strip", z.ZodTypeAny, {
|
|
4565
4585
|
unknownModelFallback: boolean;
|
|
@@ -4590,7 +4610,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
4590
4610
|
*/
|
|
4591
4611
|
hostedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4592
4612
|
/**
|
|
4593
|
-
* contract-v0.4
|
|
4613
|
+
* contract-v0.4:Responses `background:true` 异步任务能力位。
|
|
4594
4614
|
* 同上,可选且无默认值。
|
|
4595
4615
|
*/
|
|
4596
4616
|
background: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -4709,7 +4729,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
4709
4729
|
/** 峰谷时段倍率(DeepSeek 高峰翻倍) */
|
|
4710
4730
|
peakMultiplier: z.ZodOptional<z.ZodNumber>;
|
|
4711
4731
|
/**
|
|
4712
|
-
* contract-v0.5
|
|
4732
|
+
* contract-v0.5:阶梯计价。缺省 undefined = 扁平计价(现状零
|
|
4713
4733
|
* 迁移);声明 tiers 时顶层三价约定为**首档镜像**(文档约定不强 refine)——
|
|
4714
4734
|
* 向前兼容降级语义:无 tiers 感知的旧消费端仍按顶层价近似计费,不炸不偏零。
|
|
4715
4735
|
*/
|
|
@@ -4917,7 +4937,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
4917
4937
|
fallbacks: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
|
|
4918
4938
|
locale: z.ZodOptional<z.ZodString>;
|
|
4919
4939
|
/**
|
|
4920
|
-
* 生命周期 hooks(contract-v0.3
|
|
4940
|
+
* 生命周期 hooks(contract-v0.3)。分层合并语义特殊:不走深合并,
|
|
4921
4941
|
* 由 kernel 逐层抽取(条目按层优先级稳定排序、跨层同构去重、managed 控制
|
|
4922
4942
|
* 位治理),详见 kernel hooks/config.ts。
|
|
4923
4943
|
*/
|
|
@@ -5283,11 +5303,11 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
5283
5303
|
})[] | undefined;
|
|
5284
5304
|
}>, "many">>;
|
|
5285
5305
|
/**
|
|
5286
|
-
* 权限扩展点两事件(contract-v0.13
|
|
5287
|
-
* 运行期 kernel HOOK_EVENTS
|
|
5306
|
+
* 权限扩展点两事件(contract-v0.13;
|
|
5307
|
+
* 运行期 kernel HOOK_EVENTS 已为八事件,此处规范性描述
|
|
5288
5308
|
* 补齐;词表一致性由 schema × HOOK_EVENTS 锁测试把守):
|
|
5289
5309
|
* - PermissionRequest:ask 终局呈现前的最后收紧缝(只收紧,allow 忽略+告警);
|
|
5290
|
-
* - PermissionDenied:deny 终局后的纯通知缝(
|
|
5310
|
+
* - PermissionDenied:deny 终局后的纯通知缝(结构化响应不消费)。
|
|
5291
5311
|
*/
|
|
5292
5312
|
PermissionRequest: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5293
5313
|
/** 触发过滤器(PreToolUse/PostToolUse 比对 tool 名等);缺省全匹配 */
|
|
@@ -5629,7 +5649,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
5629
5649
|
allowManagedHooksOnly?: boolean | undefined;
|
|
5630
5650
|
}>>;
|
|
5631
5651
|
/**
|
|
5632
|
-
* MCP 服务器清单(contract-v0.4
|
|
5652
|
+
* MCP 服务器清单(contract-v0.4)。分层合并语义特殊:不走深合并,
|
|
5633
5653
|
* 由 kernel 逐层抽取(跨层同名高层胜 + 信任门分层归因),详见 kernel
|
|
5634
5654
|
* tools/mcp/config.ts 与 cli assembly/mcp-trust.ts。
|
|
5635
5655
|
*/
|
|
@@ -5809,19 +5829,18 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
5809
5829
|
*/
|
|
5810
5830
|
disableBaselineProtection: z.ZodOptional<z.ZodBoolean>;
|
|
5811
5831
|
/**
|
|
5812
|
-
* LLM 权限分类器治理位(contract-v0.8 增 enabled
|
|
5813
|
-
* contract-v0.13 增 tightenOutsideAuto/callBudget 并放宽 enabled
|
|
5814
|
-
*
|
|
5832
|
+
* LLM 权限分类器治理位(contract-v0.8 增 enabled;
|
|
5833
|
+
* contract-v0.13 增 tightenOutsideAuto/callBudget 并放宽 enabled 为可选)。
|
|
5834
|
+
* 环境变量 TANSR_PERMISSION_CLASSIFIER /
|
|
5815
5835
|
* TANSR_CLASSIFIER_TIGHTEN_OUTSIDE_AUTO / TANSR_CLASSIFIER_BUDGET 保留为
|
|
5816
|
-
* 最高优先覆盖(逐键接管)。仅 user/managed 层被尊重(
|
|
5836
|
+
* 最高优先覆盖(逐键接管)。仅 user/managed 层被尊重(分类器属
|
|
5817
5837
|
* 用户/企业的信任与成本决策,项目层声明整段忽略+示警)。
|
|
5818
5838
|
* 史注:TANSR_CLASSIFIER_ALLOW_UNQUALIFIED(资格越过)曾刻意不进配置
|
|
5819
|
-
* (break-glass 性质恒 env-only)
|
|
5820
|
-
* 任命即授照后无「未达资格」可越)。
|
|
5839
|
+
* (break-glass 性质恒 env-only),已整体退役(任命即授照后无「未达资格」可越)。
|
|
5821
5840
|
*/
|
|
5822
5841
|
classifier: z.ZodOptional<z.ZodObject<{
|
|
5823
5842
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
5824
|
-
/** 非 auto 模式也咨询分类器(只收紧:unsafe→deny,safe 恒维持 ask
|
|
5843
|
+
/** 非 auto 模式也咨询分类器(只收紧:unsafe→deny,safe 恒维持 ask) */
|
|
5825
5844
|
tightenOutsideAuto: z.ZodOptional<z.ZodBoolean>;
|
|
5826
5845
|
/** 每会话咨询预算:≥1 改上限 / 'off' 不限;缺席用内核缺省 */
|
|
5827
5846
|
callBudget: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"off">]>>;
|
|
@@ -5835,14 +5854,14 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
5835
5854
|
callBudget?: number | "off" | undefined;
|
|
5836
5855
|
}>>;
|
|
5837
5856
|
/**
|
|
5838
|
-
* 出厂规则包装载开关(contract-v0.13
|
|
5857
|
+
* 出厂规则包装载开关(contract-v0.13;出厂包的契约形态)。
|
|
5839
5858
|
* 缺省 true(装载);false = 卸载。env TANSR_RECOMMENDED_RULES 保留为最高
|
|
5840
5859
|
* 优先覆盖(精确 '0' 卸载)。仅 user/managed 层被尊重(卸出厂 ask 包属
|
|
5841
5860
|
* 扩权向,项目层声明忽略+示警)。
|
|
5842
5861
|
*/
|
|
5843
5862
|
recommendedRules: z.ZodOptional<z.ZodBoolean>;
|
|
5844
5863
|
/**
|
|
5845
|
-
* 项目 ask 注意力预算(contract-v0.13
|
|
5864
|
+
* 项目 ask 注意力预算(contract-v0.13;kernel ask 预算的契约形态)。
|
|
5846
5865
|
* ≥1 = 每会话项目来源询问上限(缺省 10);'off' = 关闭(回到逐条询问)。
|
|
5847
5866
|
* env TANSR_PROJECT_ASK_BUDGET 保留为最高优先覆盖。仅 user/managed 层被
|
|
5848
5867
|
* 尊重(预算防的就是项目层提示风暴,项目自调即越界)。
|
|
@@ -5971,7 +5990,7 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
5971
5990
|
unsignedPolicy?: "reject" | "accept" | undefined;
|
|
5972
5991
|
} | undefined;
|
|
5973
5992
|
}>>;
|
|
5974
|
-
/** Shell 沙箱(contract-v0.8
|
|
5993
|
+
/** Shell 沙箱(contract-v0.8);kernel 合并前抽取:user / managed 被尊重,项目层忽略,env 对 managed 只收紧 */
|
|
5975
5994
|
sandbox: z.ZodOptional<z.ZodObject<{
|
|
5976
5995
|
/**
|
|
5977
5996
|
* 生效模式(词表对齐 kernel SandboxMode):off=不碰沙箱(缺省);
|
|
@@ -6613,40 +6632,43 @@ declare const TansrConfigSchema: z.ZodObject<{
|
|
|
6613
6632
|
enabled?: boolean | undefined;
|
|
6614
6633
|
} | undefined;
|
|
6615
6634
|
}>;
|
|
6635
|
+
/** 五层合并后的完整配置(TansrConfigSchema 推导)。 */
|
|
6616
6636
|
type TansrConfig = z.infer<typeof TansrConfigSchema>;
|
|
6617
6637
|
|
|
6618
6638
|
/**
|
|
6619
|
-
* ModelClient — 模型客户端接口(
|
|
6639
|
+
* ModelClient — 模型客户端接口(依赖倒置的关键缝)。
|
|
6620
6640
|
* providers 包实现本接口;kernel 只依赖本接口,经构造注入,绝不 import 具体适配器。
|
|
6621
6641
|
*/
|
|
6622
6642
|
|
|
6643
|
+
/** 单次模型调用的选项:取消信号与分层超时(总闸 / 建连闸 / 空闲闸)。 */
|
|
6623
6644
|
interface ModelCallOptions {
|
|
6624
6645
|
signal?: AbortSignal;
|
|
6625
6646
|
/**
|
|
6626
|
-
* 单次尝试总闸(毫秒)
|
|
6647
|
+
* 单次尝试总闸(毫秒)。分层超时落地后语义收敛为「总闸兼容位」:
|
|
6627
6648
|
* 消费分层超时的适配器(openai/openai-responses)把本值并入总闸
|
|
6628
6649
|
* (totalTimeoutMs 优先);未跟进的适配器沿用「单闸覆盖整次尝试」旧语义。
|
|
6629
6650
|
* 压缩路径恒传本位(90s 总闸,kernel context/compaction.ts)。
|
|
6630
6651
|
*/
|
|
6631
6652
|
timeoutMs?: number;
|
|
6632
6653
|
/**
|
|
6633
|
-
*
|
|
6654
|
+
* 建连/响应头到达闸(毫秒)。覆盖「发出请求 → 响应头到达」区间;
|
|
6634
6655
|
* 响应头到达后退场,交棒 idle 闸。缺席时消费方适配器用内建缺省
|
|
6635
6656
|
* (openai 系 15_000)。
|
|
6636
6657
|
*/
|
|
6637
6658
|
connectTimeoutMs?: number;
|
|
6638
6659
|
/**
|
|
6639
|
-
*
|
|
6660
|
+
* 流式分片间空闲闸(毫秒)。响应头到达后启用,每到一段字节重臂;
|
|
6640
6661
|
* 分片持续到达的健康慢长流恒不误杀。缺席时消费方适配器用内建缺省
|
|
6641
6662
|
* (openai 系 90_000)。
|
|
6642
6663
|
*/
|
|
6643
6664
|
idleTimeoutMs?: number;
|
|
6644
6665
|
/**
|
|
6645
|
-
*
|
|
6666
|
+
* 可选总闸(毫秒)。整次尝试(建连 + 流式读取)的绝对上限;
|
|
6646
6667
|
* 缺省关闭(与 timeoutMs 同给时本位优先)。
|
|
6647
6668
|
*/
|
|
6648
6669
|
totalTimeoutMs?: number;
|
|
6649
6670
|
}
|
|
6671
|
+
/** 模型客户端:把一次 IRRequest 变成 IRStreamEvent 流;providers 实现,kernel 经注入消费。 */
|
|
6650
6672
|
interface ModelClient {
|
|
6651
6673
|
/**
|
|
6652
6674
|
* 流式调用。实现必须把 wire 协议(SSE/delta)解析为 IRStreamEvent 序列;
|
|
@@ -7256,13 +7278,17 @@ interface AudioTtsConstraints {
|
|
|
7256
7278
|
formats: string[];
|
|
7257
7279
|
maxChars: number;
|
|
7258
7280
|
}
|
|
7281
|
+
/** 图片模型目录条目:通用描述符 + 图片受理约束。 */
|
|
7259
7282
|
type ImageModelDescriptor = MediaModelDescriptor<ImageModelConstraints>;
|
|
7283
|
+
/** 视频模型目录条目:通用描述符 + 视频受理约束。 */
|
|
7260
7284
|
type VideoModelDescriptor = MediaModelDescriptor<VideoModelConstraints>;
|
|
7285
|
+
/** 语音转文字模型目录条目:通用描述符 + ASR 受理约束。 */
|
|
7261
7286
|
type SpeechToTextModelDescriptor = MediaModelDescriptor<AudioAsrConstraints>;
|
|
7287
|
+
/** 文字转语音模型目录条目:通用描述符 + TTS 受理约束。 */
|
|
7262
7288
|
type TextToSpeechModelDescriptor = MediaModelDescriptor<AudioTtsConstraints>;
|
|
7263
7289
|
/**
|
|
7264
7290
|
* ImageGen 产物(表面层渲染用结构化数据;错误时携错误码、`images` 为空数组、`imageCount` 0)。
|
|
7265
|
-
* 端侧按形状识别:`images` 数组 → Images
|
|
7291
|
+
* 端侧按形状识别:`images` 数组 → Images 型产物。
|
|
7266
7292
|
*/
|
|
7267
7293
|
interface ImageGenData {
|
|
7268
7294
|
model: string;
|
|
@@ -7278,6 +7304,7 @@ interface ImageGenData {
|
|
|
7278
7304
|
*/
|
|
7279
7305
|
taskId?: string;
|
|
7280
7306
|
}
|
|
7307
|
+
/** ImageGenData 的 zod schema(passthrough 容未知键;消费方按需校验 ToolResult.data)。 */
|
|
7281
7308
|
declare const ImageGenDataSchema: z.ZodObject<{
|
|
7282
7309
|
model: z.ZodString;
|
|
7283
7310
|
images: z.ZodArray<z.ZodObject<{
|
|
@@ -7332,6 +7359,7 @@ interface VideoGenData {
|
|
|
7332
7359
|
/** 异步任务号(平台任务径在场时恒携;GET /t1/videogen/tasks/{taskId} 可找回)。 */
|
|
7333
7360
|
taskId?: string;
|
|
7334
7361
|
}
|
|
7362
|
+
/** VideoGenData 的 zod schema(passthrough 容未知键)。 */
|
|
7335
7363
|
declare const VideoGenDataSchema: z.ZodObject<{
|
|
7336
7364
|
model: z.ZodString;
|
|
7337
7365
|
videos: z.ZodArray<z.ZodObject<{
|
|
@@ -7372,7 +7400,7 @@ declare const VideoGenDataSchema: z.ZodObject<{
|
|
|
7372
7400
|
errorCode: z.ZodOptional<z.ZodString>;
|
|
7373
7401
|
taskId: z.ZodOptional<z.ZodString>;
|
|
7374
7402
|
}, z.ZodTypeAny, "passthrough">>;
|
|
7375
|
-
/** 转写分段(
|
|
7403
|
+
/** 转写分段(speaker 仅说话人分离家族在场) */
|
|
7376
7404
|
interface TranscriptSegment {
|
|
7377
7405
|
start: number;
|
|
7378
7406
|
end: number;
|
|
@@ -7380,8 +7408,8 @@ interface TranscriptSegment {
|
|
|
7380
7408
|
speaker?: string;
|
|
7381
7409
|
}
|
|
7382
7410
|
/**
|
|
7383
|
-
* SpeechToText 产物(
|
|
7384
|
-
* 识别:`text` + `model` 且无 images/videos/results/audio → Transcript
|
|
7411
|
+
* SpeechToText 产物(错误时携错误码、`text` 为空串)。端侧按形状
|
|
7412
|
+
* 识别:`text` + `model` 且无 images/videos/results/audio → Transcript 型产物。
|
|
7385
7413
|
* 空串 `text` 本身是合法转写(静音输入),不是零产物。
|
|
7386
7414
|
*/
|
|
7387
7415
|
interface TranscriptData {
|
|
@@ -7395,6 +7423,7 @@ interface TranscriptData {
|
|
|
7395
7423
|
/** 异步任务号(平台任务径在场时恒携;GET /t1/asr/tasks/{taskId} 可找回)。 */
|
|
7396
7424
|
taskId?: string;
|
|
7397
7425
|
}
|
|
7426
|
+
/** TranscriptData 的 zod schema(passthrough 容未知键)。 */
|
|
7398
7427
|
declare const TranscriptDataSchema: z.ZodObject<{
|
|
7399
7428
|
model: z.ZodString;
|
|
7400
7429
|
text: z.ZodString;
|
|
@@ -7466,8 +7495,8 @@ declare const TranscriptDataSchema: z.ZodObject<{
|
|
|
7466
7495
|
taskId: z.ZodOptional<z.ZodString>;
|
|
7467
7496
|
}, z.ZodTypeAny, "passthrough">>;
|
|
7468
7497
|
/**
|
|
7469
|
-
* 合成产物(
|
|
7470
|
-
* `path`
|
|
7498
|
+
* 合成产物(SpeechData.audio;`url` 与 `b64` 恒至少一个在场)。
|
|
7499
|
+
* `path` 为加法可选键:cli 内联产物落盘后的本地路径(kernel 工具 `artifactSink` 在场且
|
|
7471
7500
|
* `b64` 在场时写入);sdk / serve 恒不接 sink,径上恒缺席——端侧形状识别不受影响。
|
|
7472
7501
|
*/
|
|
7473
7502
|
interface SpeechAudio {
|
|
@@ -7479,12 +7508,12 @@ interface SpeechAudio {
|
|
|
7479
7508
|
format: string;
|
|
7480
7509
|
durationMs?: number;
|
|
7481
7510
|
sampleRate?: number;
|
|
7482
|
-
/** 本地落盘路径(
|
|
7511
|
+
/** 本地落盘路径(仅 cli artifactSink 径出现) */
|
|
7483
7512
|
path?: string;
|
|
7484
7513
|
}
|
|
7485
7514
|
/**
|
|
7486
|
-
* TextToSpeech
|
|
7487
|
-
*
|
|
7515
|
+
* TextToSpeech 产物。端侧按形状识别:`audio.mime` 在场 → Speech 型
|
|
7516
|
+
* 产物。**错误形 `audio` 缺席**(恒不伪造音频对象),`billedChars` 为 0。
|
|
7488
7517
|
*/
|
|
7489
7518
|
interface SpeechData {
|
|
7490
7519
|
model: string;
|
|
@@ -7496,6 +7525,7 @@ interface SpeechData {
|
|
|
7496
7525
|
/** 异步任务号(平台任务径在场时恒携;GET /t1/tts/tasks/{taskId} 可找回)。 */
|
|
7497
7526
|
taskId?: string;
|
|
7498
7527
|
}
|
|
7528
|
+
/** SpeechData 的 zod schema(passthrough 容未知键)。 */
|
|
7499
7529
|
declare const SpeechDataSchema: z.ZodObject<{
|
|
7500
7530
|
model: z.ZodString;
|
|
7501
7531
|
audio: z.ZodOptional<z.ZodObject<{
|
|
@@ -7602,26 +7632,25 @@ type MediaArtifact = {
|
|
|
7602
7632
|
data: SpeechData;
|
|
7603
7633
|
};
|
|
7604
7634
|
/**
|
|
7605
|
-
* `tool.completed.data` / `ToolResult.data` → 媒体产物判别(
|
|
7606
|
-
* Android `toolCardArtifact` / iOS `toolCardArtifact`
|
|
7635
|
+
* `tool.completed.data` / `ToolResult.data` → 媒体产物判别(**规则与判序逐字对齐
|
|
7636
|
+
* Android `toolCardArtifact` / iOS `toolCardArtifact` 现行实现**):
|
|
7607
7637
|
*
|
|
7608
7638
|
* - 非对象(含 null / 数组)→ null;
|
|
7609
|
-
* - `errorCode` 为字符串 → 恒 null(
|
|
7639
|
+
* - `errorCode` 为字符串 → 恒 null(错误响应不是产物,即使携空产物位);
|
|
7610
7640
|
* - 判序 image → video → speech → transcript(端侧同序:URL 集形 → 音频 → 排他的裸文本形);
|
|
7611
7641
|
* - image:`model` 为字符串,且 `images` 为数组并至少一条目携字符串 `url`(空数组 / 全坏条目 = 零产物 → 不判);
|
|
7612
7642
|
* - video:`model` 为字符串,且 `videos` 同上;
|
|
7613
7643
|
* - speech:`model` 为字符串,`audio` 为对象、`audio.mime` 为字符串,且 `audio.url` / `audio.b64` 至少一者为
|
|
7614
7644
|
* 非空字符串(皆缺 / 皆空 = 零产物 → 不判);
|
|
7615
7645
|
* - transcript:`text` 与 `model` 皆字符串,且无 `images` / `videos` / `results` / `audio` 键
|
|
7616
|
-
* (`results` 排 WebSearchData;三端同四键——tansr-android
|
|
7617
|
-
* 十王修案 FX-C-21 / E2-13 销注);
|
|
7646
|
+
* (`results` 排 WebSearchData;三端同四键——tansr-android 补 `audio` 后与 iOS / 本实现一致);
|
|
7618
7647
|
* - 其余 null。
|
|
7619
7648
|
*
|
|
7620
|
-
* 判序 image-first
|
|
7649
|
+
* 判序 image-first 以实现为准、三端一致。
|
|
7621
7650
|
* 只判形不校验(不经 zod 剥离未知键):返回的 data 是原对象的类型收窄视图,消费方按需再过
|
|
7622
7651
|
* 对应 *DataSchema。端侧两卷(Android `ToolCardArtifactsTest` / iOS `ToolCardArtifactsTests`)**既有 17 例**
|
|
7623
|
-
* 在本函数上同判(protocol `media.test.ts` ⑤ 镜像收录);空串 / errorCode
|
|
7624
|
-
*
|
|
7652
|
+
* 在本函数上同判(protocol `media.test.ts` ⑤ 镜像收录);空串 / errorCode 判型两类异形**已以四金样
|
|
7653
|
+
* 三端同源镜像**(`test/fixtures/golden/tool-card-artifact-*.json`;三端共享谓词 [isRenderableArtifact])。
|
|
7625
7654
|
*/
|
|
7626
7655
|
declare function parseMediaArtifact(data: unknown): MediaArtifact | null;
|
|
7627
7656
|
|
|
@@ -7676,14 +7705,14 @@ interface FsLike {
|
|
|
7676
7705
|
/** 读文件前 bytes 字节(BOM 探测;返回实际读到的字节,可短于请求) */
|
|
7677
7706
|
readFilePrefix(path: string, bytes: number): Promise<Buffer>;
|
|
7678
7707
|
/**
|
|
7679
|
-
*
|
|
7708
|
+
* 可选加法:读 [start, start+length) 区间字节(返回实际读到的
|
|
7680
7709
|
* 字节,EOF 时可短于请求;短于请求即 EOF)。Read 工具对超整读帽的分页读取据此
|
|
7681
7710
|
* 按块流式扫描,不把整文件装入内存。实现方缺席 → Read 回落整读(旧行为)。
|
|
7682
7711
|
*/
|
|
7683
7712
|
readFileRange?(path: string, start: number, length: number): Promise<Buffer>;
|
|
7684
7713
|
/**
|
|
7685
|
-
* 写全文。缺省世界(default-fs)为**同目录临时文件 + rename** 原子替换
|
|
7686
|
-
*
|
|
7714
|
+
* 写全文。缺省世界(default-fs)为**同目录临时文件 + rename** 原子替换
|
|
7715
|
+
* (半写不落到目标路径;rename 不可用时回落直写)——实现方语义要求只是
|
|
7687
7716
|
* 「完成后目标路径内容 = data」,原子性是缺省世界的强化承诺。
|
|
7688
7717
|
*/
|
|
7689
7718
|
writeFile(path: string, data: Buffer): Promise<void>;
|
|
@@ -7847,9 +7876,9 @@ interface ClassifierTargetFacts {
|
|
|
7847
7876
|
}
|
|
7848
7877
|
|
|
7849
7878
|
/**
|
|
7850
|
-
*
|
|
7879
|
+
* LLM 权限分类器注入缝(机制层)。
|
|
7851
7880
|
*
|
|
7852
|
-
* 接缝风格照
|
|
7881
|
+
* 接缝风格照 BundleSignatureVerifier:内核只定义接口与消费语义,
|
|
7853
7882
|
* 实现体(LLM 调用、prompt、模型选择)由装配层注入——内核零模型依赖。
|
|
7854
7883
|
* 姿态(block-list,「该不该拦」)与两阶段裁决(stage1 偏拦 → stage2 复审)
|
|
7855
7884
|
* 属实现体职责(装配层 permission-classifier.ts);内核消费的三值词表不变:
|
|
@@ -7857,7 +7886,7 @@ interface ClassifierTargetFacts {
|
|
|
7857
7886
|
*
|
|
7858
7887
|
* 消费语义(engine.consultClassifier;contract-v0.8 起含 auto 模式):
|
|
7859
7888
|
* - **仅当引擎裁决为 ask 时才咨询**;allow/deny 路径零开销直通,不咨询;
|
|
7860
|
-
* - **auto-only
|
|
7889
|
+
* - **auto-only 缺省**:仅 auto 模式咨询;其余模式同步直通 ask
|
|
7861
7890
|
* (询问面本就有人裁,不花模型钱)。`tightenOutsideAuto=true` 时其余
|
|
7862
7891
|
* 模式也咨询,但**只收紧**(unsafe→deny),safe 恒维持 ask;
|
|
7863
7892
|
* - 分类器 `unsafe` → 收紧(归因 'classifier',RFC-OPT18-3),在咨询发生的
|
|
@@ -7870,13 +7899,13 @@ interface ClassifierTargetFacts {
|
|
|
7870
7899
|
* 且须过引擎的资格守卫——可解析/非 UNC/基线复查,见 engine 注释);
|
|
7871
7900
|
* 其余模式 safe 恒维持 ask(**分类器绝不放行**的既有铁律);
|
|
7872
7901
|
* - `unsure`/超时/抛错 → 维持 ask;
|
|
7873
|
-
* -
|
|
7902
|
+
* - **熔断**:分类器 reject(unsafe)连续 3 次 → 熔断
|
|
7874
7903
|
* 30 分钟(冷却期满自动复位);会话累计 20 次 → 本会话停用。记账**按
|
|
7875
7904
|
* 裁决人 reject 计**,与 rejectEffect 落地形无关(doc/113:熔断保护的是
|
|
7876
7905
|
* 裁决人质量——'ask' 姿态下连续判危险同样跳闸)。熔断期间
|
|
7877
7906
|
* consultClassifier 同步原样返回 ask(交回询问面,headless 按既有语义降
|
|
7878
7907
|
* deny);跳闸经 onBreakerTrip 回调上报(装配层负责通知面,内核零 IO);
|
|
7879
|
-
* 人工恢复口 engine.resetClassifierBreaker(
|
|
7908
|
+
* 人工恢复口 engine.resetClassifierBreaker(批准即恢复:两档皆
|
|
7880
7909
|
* 复位、计数归零;仅交互面在用户显式批准后可调,无人值守入口无通道);
|
|
7881
7910
|
* - deny 规则与内置基线永不受分类器软化(deny 路径不进咨询口);
|
|
7882
7911
|
* - 机制默认关闭(不注入即无分类器路径;auto 未注入时 = 快路径 + 残余 ask)。
|
|
@@ -7895,7 +7924,7 @@ interface ClassifierTargetFacts {
|
|
|
7895
7924
|
*/
|
|
7896
7925
|
type ClassifierVerdict = 'safe' | 'unsafe' | 'unsure';
|
|
7897
7926
|
/**
|
|
7898
|
-
* 单阶段观测终态(
|
|
7927
|
+
* 单阶段观测终态(遥测命名记「观测到什么」,不猜原因——
|
|
7899
7928
|
* 「无事件」不得直称网络故障,「见 thinking」不证明 thinking 是唯一瓶颈):
|
|
7900
7929
|
* - completed:流正常收到 message_stop(产出是否可解析另由 reason 表达);
|
|
7901
7930
|
* - deadline_before_any_event:中止时未收到任何载荷事件(排队/连接/首推理均可能);
|
|
@@ -7904,19 +7933,19 @@ type ClassifierVerdict = 'safe' | 'unsafe' | 'unsure';
|
|
|
7904
7933
|
* - stream_ended_without_stop:流自然耗尽但无 message_stop(截断);
|
|
7905
7934
|
* - stream_error(<kind>):流内结构化 error 事件(kind 为 IR 归一化错误类)
|
|
7906
7935
|
* 或本地异常(kind=exception);
|
|
7907
|
-
* - completed_reason_truncated(协议 v4
|
|
7936
|
+
* - completed_reason_truncated(协议 v4 判词先结):截止
|
|
7908
7937
|
* 到来时判词 `<block>…</block>` 已可解析、理由未收口——判词有效交付,
|
|
7909
7938
|
* **不是可用性损耗**(不以 `deadline_` 开头,G5 谓词不计),单列以便统计
|
|
7910
7939
|
* 「理由被截」占比。
|
|
7911
7940
|
*/
|
|
7912
7941
|
type ClassifierStageOutcome = 'completed' | 'completed_reason_truncated' | 'deadline_before_any_event' | 'deadline_after_thinking_before_text' | 'deadline_after_text_before_stop' | 'stream_ended_without_stop' | `stream_error(${string})`;
|
|
7913
7942
|
/**
|
|
7914
|
-
*
|
|
7943
|
+
* 单阶段遥测:**只记计时/枚举/用量计数,不落 thinking 正文或
|
|
7915
7944
|
* prompt 内容**(脱敏纪律 INV-10 同向)。评估 harness 与装配层日志消费;
|
|
7916
7945
|
* 引擎不读取。
|
|
7917
7946
|
*/
|
|
7918
7947
|
interface ClassifierStageTelemetry {
|
|
7919
|
-
/** 两阶段协议的 stage1/stage2;'single' = 单阶段对照协议(
|
|
7948
|
+
/** 两阶段协议的 stage1/stage2;'single' = 单阶段对照协议(eval-only) */
|
|
7920
7949
|
stage: 'stage1' | 'stage2' | 'single';
|
|
7921
7950
|
outcome: ClassifierStageOutcome;
|
|
7922
7951
|
/** 阶段耗时(ms,本地时钟) */
|
|
@@ -7977,13 +8006,13 @@ interface ClassifierResult {
|
|
|
7977
8006
|
*/
|
|
7978
8007
|
escalatedByModel?: true;
|
|
7979
8008
|
/**
|
|
7980
|
-
* 逐阶段观测遥测(
|
|
8009
|
+
* 逐阶段观测遥测(可选):装配层实现按实际执行的阶段附带;
|
|
7981
8010
|
* 引擎裁决不消费本字段(纯观测面),评估 harness 落盘作续轮证据。
|
|
7982
8011
|
*/
|
|
7983
8012
|
telemetry?: readonly ClassifierStageTelemetry[];
|
|
7984
8013
|
}
|
|
7985
8014
|
/**
|
|
7986
|
-
* transcript
|
|
8015
|
+
* transcript 切片:**仅用户 prompt 文本**——助手文本与工具结果刻意
|
|
7987
8016
|
* 排除在外(注入防御:被污染的工具产出不得成为分类器的指令面);截断与
|
|
7988
8017
|
* 条数上限由装配层记录器负责。
|
|
7989
8018
|
*/
|
|
@@ -7991,16 +8020,16 @@ interface ClassifierTranscript {
|
|
|
7991
8020
|
userPrompts: readonly string[];
|
|
7992
8021
|
}
|
|
7993
8022
|
/**
|
|
7994
|
-
* 权限策略语境(协议 v2
|
|
7995
|
-
*
|
|
8023
|
+
* 权限策略语境(协议 v2):引擎在咨询时把「模型据以裁决
|
|
8024
|
+
* 的治理事实」随载荷注入——多轮漏放归因实证:考官(引擎)拿规则
|
|
7996
8025
|
* 算期望、考生(分类器)没拿到规则,deny 混淆变体/越界读/隐私面被模型按
|
|
7997
|
-
* 「通用危险性」世界观放行(CC 把 policy spec 喂进裁决 prompt
|
|
7998
|
-
*
|
|
8026
|
+
* 「通用危险性」世界观放行(对照 CC 把 policy spec 喂进裁决 prompt 的
|
|
8027
|
+
* 做法采纳)。字段全部来自引擎已有状态,零新 IO:
|
|
7999
8028
|
* - 规则列表 = **与本工具相关**(ruleMatchesTool)的生效规则原文,按层序;
|
|
8000
8029
|
* allow 取 auto 求值视图(宽 allow 丢弃后)——语境必须与判定语义一致;
|
|
8001
8030
|
* - 会话层授权缓存刻意不注入(其命中早于咨询口,到分类器的调用必然未中);
|
|
8002
8031
|
* - 每类条数截断(rulesTruncated 如实标注,渲染侧提示列表不全;不禁 safe
|
|
8003
|
-
*
|
|
8032
|
+
* ——规则超界是配置形态而非载荷截断,「截断禁 safe」语义不扩权)。
|
|
8004
8033
|
*/
|
|
8005
8034
|
interface ClassifierPolicyContext {
|
|
8006
8035
|
/** 咨询发生时的权限模式(引擎定格值;auto 之外 = tightenOutsideAuto 面) */
|
|
@@ -8045,7 +8074,7 @@ interface ClassifierInput {
|
|
|
8045
8074
|
args: unknown;
|
|
8046
8075
|
/** Shell 工具的命令结构树(逐段实体 + 注入痕迹);其余工具缺席 */
|
|
8047
8076
|
commandStructure?: CommandStructure;
|
|
8048
|
-
/** 当前轮用户请求切片(
|
|
8077
|
+
/** 当前轮用户请求切片(注入了 transcript 提供器且非空时附带) */
|
|
8049
8078
|
transcript?: ClassifierTranscript;
|
|
8050
8079
|
/** 权限策略语境(协议 v2;引擎注入,harness 从语料同形构造) */
|
|
8051
8080
|
policyContext?: ClassifierPolicyContext;
|
|
@@ -8072,28 +8101,28 @@ interface PermissionClassifierConfig {
|
|
|
8072
8101
|
/** 咨询超时(毫秒),缺省 DEFAULT_CLASSIFIER_TIMEOUT_MS;超时维持 ask */
|
|
8073
8102
|
timeoutMs?: number;
|
|
8074
8103
|
/**
|
|
8075
|
-
*
|
|
8104
|
+
* 三级资格档动态解析闭包:返回当前生效档
|
|
8076
8105
|
* (= min(授格档, 天花板, 会话覆盖),合成在装配层)。引擎**每次咨询
|
|
8077
8106
|
* 现算**(含窄缓存命中路径)——validUntil 会话中越期、天花板/覆盖变更
|
|
8078
|
-
*
|
|
8107
|
+
* 均即刻生效,无缓存陈旧窗口。软化谓词 =
|
|
8079
8108
|
* `mode==='auto' ∧ SOFTEN_RADIUS[resolveTier()][face] ∧ ¬explicitConfigAsk`
|
|
8080
8109
|
* + 既有 taint 豁免与 classifierAllowEligible 守卫。闭包抛错/返回词表外
|
|
8081
|
-
* 值按 'none' 处理(
|
|
8110
|
+
* 值按 'none' 处理(fail-closed);unsafe→deny 与 unsure→ask
|
|
8082
8111
|
* 不经本位,收紧方向不设资格门槛。
|
|
8083
8112
|
*/
|
|
8084
8113
|
resolveQualificationTier?: () => EffectiveQualificationTier;
|
|
8085
8114
|
/**
|
|
8086
|
-
* transcript
|
|
8115
|
+
* transcript 提供器:每次咨询时取当前轮用户 prompt 切片附进
|
|
8087
8116
|
* ClassifierInput;缺省或返回 undefined/空集不附。装配层典型实现为
|
|
8088
8117
|
* createClassifierTranscriptRecorder(入口在轮起跑时回填)。
|
|
8089
8118
|
*/
|
|
8090
8119
|
transcript?: () => ClassifierTranscript | undefined;
|
|
8091
|
-
/**
|
|
8120
|
+
/** 熔断跳闸回调:装配层接通知面;内核零 IO,不注入即静默 */
|
|
8092
8121
|
onBreakerTrip?: (trip: ClassifierBreakerTrip) => void;
|
|
8093
8122
|
/** 时钟注入(熔断冷却窗口计时;缺省 Date.now。测试用) */
|
|
8094
8123
|
now?: () => number;
|
|
8095
8124
|
/**
|
|
8096
|
-
* 非 auto
|
|
8125
|
+
* 非 auto 模式收紧开关:缺省 false = auto-only(其余模式不咨询,
|
|
8097
8126
|
* 询问面有人裁不花模型钱)。true 时其余模式的 ask 也咨询,但只允许
|
|
8098
8127
|
* unsafe 收紧(落地形按 rejectEffect:'deny' 收紧为 deny;'ask' 落为携
|
|
8099
8128
|
* 裁决理由的 ask——本就是 ask,等价于维持,只多了 source='classifier'
|
|
@@ -8116,7 +8145,7 @@ interface PermissionClassifierConfig {
|
|
|
8116
8145
|
*/
|
|
8117
8146
|
rejectEffect?: 'deny' | 'ask';
|
|
8118
8147
|
/**
|
|
8119
|
-
* 每会话咨询调用预算(
|
|
8148
|
+
* 每会话咨询调用预算(成本控制):计**实际发起的模型咨询**
|
|
8120
8149
|
* (缓存命中与各类直通不计)。耗尽后咨询口同步直通 ask(超限改询问,
|
|
8121
8150
|
* 方向安全);缺省 DEFAULT_CLASSIFIER_CALL_BUDGET,非有限值 = 不限。
|
|
8122
8151
|
*/
|
|
@@ -8124,9 +8153,9 @@ interface PermissionClassifierConfig {
|
|
|
8124
8153
|
/** 预算耗尽单次回调(装配层接通知面;内核零 IO) */
|
|
8125
8154
|
onBudgetExhausted?: () => void;
|
|
8126
8155
|
/**
|
|
8127
|
-
* 缓存版本标签(
|
|
8156
|
+
* 缓存版本标签(窄缓存「策略与模型/提示词版本」键分量):
|
|
8128
8157
|
* 装配层以协议指纹+stage 模型对构造;缺省空串。变更即全部缓存键失配。
|
|
8129
|
-
*
|
|
8158
|
+
* 另接受函数形——/model 切换后 stage 模型对活值贯通时,
|
|
8130
8159
|
* 标签必须随现值换代(否则旧模型时代的 safe 裁定会以同键命中回放到新
|
|
8131
8160
|
* 模型时代)。引擎每次构键现算;静态装配仍传字符串(零漂移)。
|
|
8132
8161
|
*/
|
|
@@ -8176,7 +8205,7 @@ interface AdjudicationOpinion {
|
|
|
8176
8205
|
* 契约:三个方法都返回非负整数;estimateMessage ≥ Σ estimateBlock(消息定额
|
|
8177
8206
|
* 不为负)——账本按块分路时用两者之差归入 overhead 路。
|
|
8178
8207
|
* profileId(可选):估算配置指纹(系数集哈希)——测量结果与埋点携带,
|
|
8179
|
-
*
|
|
8208
|
+
* 系数漂移可观测;自定义实现可缺省。
|
|
8180
8209
|
*/
|
|
8181
8210
|
interface TokenEstimator {
|
|
8182
8211
|
/** 估算配置指纹(可选;createDefaultEstimator 恒携带) */
|
|
@@ -8197,22 +8226,25 @@ interface RequestBasis {
|
|
|
8197
8226
|
readonly toolTokens: number;
|
|
8198
8227
|
}
|
|
8199
8228
|
|
|
8229
|
+
/** 等待资源收尾的选项:超时上限与只取消本次等待的信号。 */
|
|
8200
8230
|
interface ResourceSettleOptions {
|
|
8201
8231
|
/** 缺省30秒;0只观察,Infinity须显式给。超时不取消底层清理。 */
|
|
8202
8232
|
timeoutMs?: number;
|
|
8203
8233
|
/** 只取消此次等待,不abort查询、不影响其他等待者。 */
|
|
8204
8234
|
signal?: AbortSignal;
|
|
8205
8235
|
}
|
|
8236
|
+
/** 单条资源收尾失败:来源令牌、作用域、操作号、阶段与原抛值。 */
|
|
8206
8237
|
interface ResourceSettlementFailure {
|
|
8207
8238
|
/** 进程内稳定来源令牌;空对象只用于身份比较,不写协议/日志。 */
|
|
8208
8239
|
sourceId?: object;
|
|
8209
|
-
/**
|
|
8240
|
+
/** 合并查询/压缩结算结果时标明局部operationId的来源;单scope结算可缺省。 */
|
|
8210
8241
|
scope?: 'query' | 'compaction';
|
|
8211
8242
|
operationId: number;
|
|
8212
8243
|
phase: 'model_stream' | 'tool_executor';
|
|
8213
8244
|
/** 原抛值(包括undefined);调用方不得未经处理序列化到日志。 */
|
|
8214
8245
|
cause: unknown;
|
|
8215
8246
|
}
|
|
8247
|
+
/** 资源收尾结算结果:终态、仍在途的计数、失败窗口与累计失败数。 */
|
|
8216
8248
|
interface ResourceSettlementResult {
|
|
8217
8249
|
status: 'completed' | 'failed' | 'timeout' | 'cancelled';
|
|
8218
8250
|
pending: {
|
|
@@ -8224,7 +8256,7 @@ interface ResourceSettlementResult {
|
|
|
8224
8256
|
failures: readonly ResourceSettlementFailure[];
|
|
8225
8257
|
failureCount: number;
|
|
8226
8258
|
omittedFailures: number;
|
|
8227
|
-
/** 每个真实scope
|
|
8259
|
+
/** 每个真实scope的累计失败;旧第三方结算结果可缺席,由消费者提供稳定owner。 */
|
|
8228
8260
|
sources?: readonly ResourceSettlementSource[];
|
|
8229
8261
|
}
|
|
8230
8262
|
interface ResourceSettlementSource {
|
|
@@ -8306,13 +8338,13 @@ interface AttachmentRegistryOptions {
|
|
|
8306
8338
|
/** session 注入字节预算;默认 256 KiB */
|
|
8307
8339
|
sessionBudgetBytes?: number;
|
|
8308
8340
|
/**
|
|
8309
|
-
*
|
|
8341
|
+
* 注入内容的 tokens 估算缝(观测口径,不参与三态裁决)。
|
|
8310
8342
|
* manager 构造注册表时以自身估算器填充;缺席时快照不产 tokens 字段
|
|
8311
8343
|
* (不虚构数字)。
|
|
8312
8344
|
*/
|
|
8313
8345
|
estimateTokens?: (content: string) => number;
|
|
8314
8346
|
}
|
|
8315
|
-
/**
|
|
8347
|
+
/** 快照中的在场附件条目(TTL 内;/context 逐条行数据源) */
|
|
8316
8348
|
interface AttachmentActiveEntry {
|
|
8317
8349
|
type: string;
|
|
8318
8350
|
sourceIdentity: string;
|
|
@@ -8325,7 +8357,7 @@ interface AttachmentActiveEntry {
|
|
|
8325
8357
|
estimatedTokens?: number;
|
|
8326
8358
|
}
|
|
8327
8359
|
/**
|
|
8328
|
-
*
|
|
8360
|
+
* 注册表只读快照(/context 附件行真实化的数据源)。
|
|
8329
8361
|
* 语义注记:entries 只含 TTL 内在场者;injectedBytes 是 session 累计
|
|
8330
8362
|
* (含已过 TTL/已被压缩失效的历史注入,预算口径);estimatedTokens 为
|
|
8331
8363
|
* 在场条目合计,压缩成功清签名后归零(引用目标已被摘要替换,如实)。
|
|
@@ -8367,7 +8399,7 @@ interface BucketCalibrationState {
|
|
|
8367
8399
|
* tokenizer 词元密度的观测,换模型即失效)。
|
|
8368
8400
|
*/
|
|
8369
8401
|
interface CalibrationSnapshot {
|
|
8370
|
-
/** 门关(标量)路径的 EWMA 因子(
|
|
8402
|
+
/** 门关(标量)路径的 EWMA 因子(单标量校准现状态) */
|
|
8371
8403
|
factor: number;
|
|
8372
8404
|
/** 门开(分桶)路径的桶态(仅有观测的桶入快照) */
|
|
8373
8405
|
buckets: BucketCalibrationState[];
|
|
@@ -8391,19 +8423,19 @@ interface CompactionCalibrationDetail {
|
|
|
8391
8423
|
}
|
|
8392
8424
|
|
|
8393
8425
|
/**
|
|
8394
|
-
*
|
|
8426
|
+
* token 六路账本
|
|
8395
8427
|
*
|
|
8396
|
-
*
|
|
8428
|
+
* 分路规格:uncached / cacheRead / cacheWrite(cacheCreation)/
|
|
8397
8429
|
* cacheDeleted / output / 本地估算尾部,六路分列不得合并。
|
|
8398
8430
|
*
|
|
8399
|
-
*
|
|
8431
|
+
* 「当前上下文占用」口径:取最近 assistant round 的
|
|
8400
8432
|
* `input + cache_creation + cache_read`(provider 权威计量,**不含 output**)
|
|
8401
8433
|
* + 上次实发输入结束后消息的本地估算尾部(含上一 assistant)。无有效锚点
|
|
8402
8434
|
* (会话开头/锚点失效/刚压缩完)
|
|
8403
8435
|
* 时退化为全量本地估算,整体记入 estimatedTail 路。
|
|
8404
8436
|
*
|
|
8405
|
-
* cacheDeleted 路说明:contract-v0.4
|
|
8406
|
-
* cacheDeletedInputTokens(cached microcompact
|
|
8437
|
+
* cacheDeleted 路说明:contract-v0.4 起 IRUsage 原生携带可选
|
|
8438
|
+
* cacheDeletedInputTokens(cached microcompact),缺席恒 0。
|
|
8407
8439
|
* 语义验证(哪些 provider 真报该字段)未完成前,contextTokens 不做
|
|
8408
8440
|
* cacheDeleted 扣减(避免对未验证语义提前建模)。
|
|
8409
8441
|
*
|
|
@@ -8474,13 +8506,13 @@ interface ContextView {
|
|
|
8474
8506
|
interface TailDetail {
|
|
8475
8507
|
/** tool_result 块(工具结果路) */
|
|
8476
8508
|
toolResults: number;
|
|
8477
|
-
/** `<system-reminder>` 包裹的注入文本(系统注入路;
|
|
8509
|
+
/** `<system-reminder>` 包裹的注入文本(系统注入路;makeReminder 形态) */
|
|
8478
8510
|
systemInjected: number;
|
|
8479
8511
|
/** 其余块(用户输入文本/图片/锚点后 assistant 输出等) */
|
|
8480
8512
|
other: number;
|
|
8481
8513
|
/** system 段估算(仅无锚点全量估算时非零;有锚点时 system 已含在权威 input 内) */
|
|
8482
8514
|
systemSegments: number;
|
|
8483
|
-
/**
|
|
8515
|
+
/** 固定工具定义估算(有相容authority时为0)。 */
|
|
8484
8516
|
toolDefinitions?: number;
|
|
8485
8517
|
/** 消息定额合计(estimateMessage 与 Σ estimateBlock 之差,按契约非负) */
|
|
8486
8518
|
overhead: number;
|
|
@@ -8500,11 +8532,11 @@ interface ContextMeasurement {
|
|
|
8500
8532
|
/** 会话累计六路(压缩不清零——成本视角是会话生命周期累计) */
|
|
8501
8533
|
cumulative: CumulativeUsage;
|
|
8502
8534
|
/**
|
|
8503
|
-
*
|
|
8504
|
-
* 估算器未携带指纹时缺席)
|
|
8535
|
+
* 产出本测量的估算器配置指纹(TokenEstimator.profileId 透传;
|
|
8536
|
+
* 估算器未携带指纹时缺席)。压缩埋点与阈值漂移归因消费。
|
|
8505
8537
|
*/
|
|
8506
8538
|
estimatorProfileId?: string;
|
|
8507
|
-
/**
|
|
8539
|
+
/** 仅消息尾部的基础估算,不含system/tools或校准因子。 */
|
|
8508
8540
|
rawMessageTailTokens?: number;
|
|
8509
8541
|
/** CM14:固定面;供同屏障复用,不是已发送证据。 */
|
|
8510
8542
|
basis?: RequestBasis;
|
|
@@ -8638,10 +8670,10 @@ interface RequestMeasuredEvent {
|
|
|
8638
8670
|
durationMs: number;
|
|
8639
8671
|
/** provider 上报的首 token 延迟(message_stop.ttftMs 透传;在场才落) */
|
|
8640
8672
|
ttftMs?: number;
|
|
8641
|
-
/** terminal usage 五路原样(provider
|
|
8673
|
+
/** terminal usage 五路原样(provider 上报才在场;恒 exclusive 语义) */
|
|
8642
8674
|
usage?: IRUsage;
|
|
8643
8675
|
/**
|
|
8644
|
-
*
|
|
8676
|
+
* 输出侧本地估算(tokens;estimator 与输入侧特征同源):调用方在
|
|
8645
8677
|
* terminal 随 responseBlocks 提供响应材料时计算。上游缺报 usage 的请求
|
|
8646
8678
|
* (D4 客户端计量)以「features.estimatedTokens(输入)+ 本值(输出)」
|
|
8647
8679
|
* 构成估算对;terminal 无响应材料(error/aborted)时缺席。零原文不变量
|
|
@@ -8651,7 +8683,7 @@ interface RequestMeasuredEvent {
|
|
|
8651
8683
|
/** purpose='compaction' 时关联压缩生命周期事件(started/finished 同 id) */
|
|
8652
8684
|
compactionId?: string;
|
|
8653
8685
|
/**
|
|
8654
|
-
*
|
|
8686
|
+
* 子代理归因标识(与 CompactionStartedEvent.agentId 同语义):
|
|
8655
8687
|
* kernel 签发方恒不落本键;子代理运行器包装 compaction.observer 时对
|
|
8656
8688
|
* onRequestMeasured 一并注入(子代理压缩 fork 的配对行可与父会话区分)。
|
|
8657
8689
|
*/
|
|
@@ -8708,34 +8740,35 @@ interface CompactionSegmentSpillDetail {
|
|
|
8708
8740
|
chars: number;
|
|
8709
8741
|
deduplicated: boolean;
|
|
8710
8742
|
}
|
|
8743
|
+
/** 压缩失败的结构化原因词表(session.compaction_failed 事件与诊断消费)。 */
|
|
8711
8744
|
type CompactionFailureReason = 'nothing_to_compact' | 'model_error' | 'aborted' | 'empty_summary' | 'unexpected_tool_use'
|
|
8712
8745
|
/**
|
|
8713
|
-
*
|
|
8746
|
+
* 模型以 stopReason='max_tokens' 收尾 = 摘要被输出
|
|
8714
8747
|
* 预算截断。九段模板的尾部锚点段(用户原话/未竟事项/当前工作/下一步)
|
|
8715
8748
|
* 恰在末尾最先被切,截断摘要不得用于替换历史(静默截断即记忆损坏)。
|
|
8716
8749
|
*/
|
|
8717
8750
|
| 'summary_truncated'
|
|
8718
8751
|
/**
|
|
8719
|
-
*
|
|
8752
|
+
* 压缩调用独立超时(缺省 90s)触发。与 model_error
|
|
8720
8753
|
* 分立——超时是资源隔离守门的主动放弃,归因可分辨(表面层文案/熔断
|
|
8721
8754
|
* 遥测按此区分网络故障与压缩超时)。
|
|
8722
8755
|
*/
|
|
8723
8756
|
| 'timeout'
|
|
8724
8757
|
/**
|
|
8725
|
-
*
|
|
8758
|
+
* 摘要结构校验不达标(九段标题命中 < 阈值,或长度
|
|
8726
8759
|
* 低于下限)。结构崩坏的摘要(模型退化输出/答非所问)替换历史 = 记忆
|
|
8727
|
-
*
|
|
8728
|
-
* ≥6/9 段 + 500
|
|
8760
|
+
* 损坏,拒绝进入替换链路。阈值取弱校验起步值
|
|
8761
|
+
* (≥6/9 段 + 500 字符,误杀率随遥测再收紧)。
|
|
8729
8762
|
*/
|
|
8730
8763
|
| 'summary_malformed'
|
|
8731
8764
|
/**
|
|
8732
|
-
*
|
|
8765
|
+
* estimator(摘要消息) ≥ estimator(被移除区)——压缩
|
|
8733
8766
|
* 不减反增,替换只会劣化(占用不降 + 细节全丢),宁可不压(Gemini
|
|
8734
|
-
*
|
|
8767
|
+
* 门禁先例)。
|
|
8735
8768
|
*/
|
|
8736
8769
|
| 'summary_bloated'
|
|
8737
8770
|
/**
|
|
8738
|
-
*
|
|
8771
|
+
* CompactRequest.beforeCompact 钩子
|
|
8739
8772
|
* (装配层注入的压缩前快照落盘等)抛错——压缩尚未发出请求即放弃,历史
|
|
8740
8773
|
* 不变(快照写失败时不得让「无可恢复拷贝」的压缩继续)。manager 只调用
|
|
8741
8774
|
* 不知快照语义;归因可分辨(表面层文案/遥测与模型故障分立)。
|
|
@@ -8820,9 +8853,9 @@ interface CompactionRoundFailure {
|
|
|
8820
8853
|
rescue?: CompactionInputRescue;
|
|
8821
8854
|
}
|
|
8822
8855
|
/**
|
|
8823
|
-
*
|
|
8824
|
-
*
|
|
8825
|
-
*
|
|
8856
|
+
* 摘要质量校验配置(压缩成功前的替换门禁)。
|
|
8857
|
+
* 缺省阈值:九段标题命中 ≥6(弱校验起步,
|
|
8858
|
+
* 容忍模型措辞漂移,误杀率进遥测后再收紧)+ 长度下限 500 字符(防
|
|
8826
8859
|
* 退化输出);膨胀拒绝(rejectBloat)与模板结构无关,缺省恒开。
|
|
8827
8860
|
*/
|
|
8828
8861
|
interface SummaryValidationOptions {
|
|
@@ -8934,7 +8967,7 @@ interface ToolResultBudgetOptions {
|
|
|
8934
8967
|
* 存根——「换 content,不动结构」:消息数与块序完全不变,tool_use/tool_result
|
|
8935
8968
|
* 配对不变量天然保持。淘汰自旧向新,直到估算水位降回停止线或候选耗尽;
|
|
8936
8969
|
* 最近 keepRecent 条结果与小结果(< minChars)不参与(近场上下文是模型的
|
|
8937
|
-
* 工作记忆,淘汰它们得不偿失);pinned 消息豁免(
|
|
8970
|
+
* 工作记忆,淘汰它们得不偿失);pinned 消息豁免(见
|
|
8938
8971
|
* MicrocompactPlanOptions.isPinned 注释)。
|
|
8939
8972
|
*
|
|
8940
8973
|
* 与整体 compact 的分工(doc/07 §3.2 流水线序):result budget(入史 clamp)
|
|
@@ -9006,7 +9039,7 @@ interface ToolResultPruneOptions {
|
|
|
9006
9039
|
tailChars?: number;
|
|
9007
9040
|
/** 可再生工具白名单;默认 DEFAULT_PRUNABLE_TOOL_NAMES */
|
|
9008
9041
|
prunableToolNames?: ReadonlySet<string>;
|
|
9009
|
-
/** pinned 消息豁免(
|
|
9042
|
+
/** pinned 消息豁免(与 microcompact 同款:pin 承诺完整保留,剪枝掏空即违约) */
|
|
9010
9043
|
isPinned?: (message: IRMessage) => boolean;
|
|
9011
9044
|
/**
|
|
9012
9045
|
* CW13-N4 — 剪枝原文落盘(spill store 的 prune 命名空间)。在场时每条
|
|
@@ -9115,13 +9148,13 @@ interface ThresholdConfig {
|
|
|
9115
9148
|
blockingMargin?: number;
|
|
9116
9149
|
/**
|
|
9117
9150
|
* microcompact 触发余量(OPT-05);默认 40_000。
|
|
9118
|
-
*
|
|
9151
|
+
* 不变量:必须 > autoCompactMargin——否则
|
|
9119
9152
|
* 「原位淘汰先于整体 compact」的分层失效,resolveThresholds 违约 throw
|
|
9120
9153
|
* (此前静默失效:两档在同一屏障点相继触发,低成本先行档形同虚设)。
|
|
9121
9154
|
*/
|
|
9122
9155
|
microcompactMargin?: number;
|
|
9123
9156
|
/**
|
|
9124
|
-
* 自动压缩比例触发线(
|
|
9157
|
+
* 自动压缩比例触发线(相对 effectiveWindow 的占比,取值域
|
|
9125
9158
|
* (0, 1]);默认 DEFAULT_AUTO_COMPACT_RATIO(0.93,出处见该常量)。
|
|
9126
9159
|
* autoCompactAt = min(绝对余量线, ⌊effectiveWindow × ratio⌋) 取更早者;
|
|
9127
9160
|
* 传 1 即比例线恒不早于 effectiveWindow,等效关闭比例触发。
|
|
@@ -9250,10 +9283,10 @@ interface CompactionAnchorsDetail {
|
|
|
9250
9283
|
digestTokens: number;
|
|
9251
9284
|
}
|
|
9252
9285
|
/**
|
|
9253
|
-
*
|
|
9254
|
-
* 返回)。成功结局的 started/finished 事件由统一应用器据此签发(
|
|
9255
|
-
* 见 CompactionObserver 注释);compactionId 与摘要哨兵 uuid
|
|
9256
|
-
*
|
|
9286
|
+
* 单次压缩尝试的观测材料(manager.compact 恒产出,随 CompactOutcome
|
|
9287
|
+
* 返回)。成功结局的 started/finished 事件由统一应用器据此签发(签发权分布
|
|
9288
|
+
* 见 CompactionObserver 注释);compactionId 与摘要哨兵 uuid 同源,审计链
|
|
9289
|
+
* 可互相定位。
|
|
9257
9290
|
*/
|
|
9258
9291
|
interface CompactionObservation {
|
|
9259
9292
|
/** 单次压缩执行的关联 id(started/finished 配对;= 摘要哨兵 uuid) */
|
|
@@ -9263,22 +9296,21 @@ interface CompactionObservation {
|
|
|
9263
9296
|
/** 墙钟时长(ms;compact 入口到结局返回,观测口径不参与决策) */
|
|
9264
9297
|
durationMs: number;
|
|
9265
9298
|
/**
|
|
9266
|
-
*
|
|
9267
|
-
*
|
|
9268
|
-
*
|
|
9269
|
-
* (跨 runQuery 存续依赖会话级 manager 注入,⑤ §1.3C 已知限界)。
|
|
9299
|
+
* 重试链:上一次**失败**压缩(非 no-op)的 compactionId。任意压缩成功后
|
|
9300
|
+
* 链清空;nothing_to_compact 计划性 no-op 不推进也不打断(与熔断链同语义)。
|
|
9301
|
+
* manager 生命周期内有效(跨 runQuery 存续依赖会话级 manager 注入)。
|
|
9270
9302
|
*/
|
|
9271
9303
|
retryOf?: string;
|
|
9272
|
-
/** 会话级屏障单调序号(noteBarrier
|
|
9304
|
+
/** 会话级屏障单调序号(noteBarrier 计数;「3 个屏障内」重试窗口判定) */
|
|
9273
9305
|
barrierSeq: number;
|
|
9274
|
-
/** 压缩 fork 模型标识(
|
|
9306
|
+
/** 压缩 fork 模型标识(降档后如实归因) */
|
|
9275
9307
|
provider: string;
|
|
9276
9308
|
model: string;
|
|
9277
9309
|
/** 阈值快照(见 CompactionThresholdsDetail) */
|
|
9278
9310
|
thresholds: CompactionThresholdsDetail;
|
|
9279
9311
|
/** 计划明细(nothing_to_compact 时缺席) */
|
|
9280
9312
|
plan?: CompactionPlanDetail;
|
|
9281
|
-
/**
|
|
9313
|
+
/** 锚点层明细(anchorLayer 门启用且计划落定时在场;缺省缺席) */
|
|
9282
9314
|
anchors?: CompactionAnchorsDetail;
|
|
9283
9315
|
/**
|
|
9284
9316
|
* P-CTX4 K16:压缩时刻的分桶校准态(方案门 bucketedCalibration 启用时
|
|
@@ -9376,29 +9408,28 @@ interface CompactionDeferredEvent {
|
|
|
9376
9408
|
samples?: number;
|
|
9377
9409
|
/** K21:签发时刻的缓存命中率 EWMA(reason='cache_hot' 恒在场) */
|
|
9378
9410
|
cacheHitRatio?: number;
|
|
9379
|
-
/**
|
|
9411
|
+
/** 子代理归因标识(语义见 CompactionStartedEvent.agentId) */
|
|
9380
9412
|
agentId?: string;
|
|
9381
9413
|
}
|
|
9382
9414
|
/**
|
|
9383
|
-
*
|
|
9415
|
+
* 折叠机制标记:'breaker_fallback' = blocking×熔断保底
|
|
9384
9416
|
* 硬截断(无模型、无网络;GovernanceTransform.mechanism 经应用器透传)。
|
|
9385
9417
|
* 缺席 = 常规模型压缩。观测口径,不参与决策。
|
|
9386
9418
|
*/
|
|
9387
9419
|
type CompactionFoldMechanism = 'breaker_fallback';
|
|
9388
|
-
/**
|
|
9420
|
+
/** 压缩 started 事件载荷(非 manager 机制的最小面只有 compactionId / trigger 两项) */
|
|
9389
9421
|
interface CompactionStartedEvent {
|
|
9390
9422
|
compactionId: string;
|
|
9391
9423
|
trigger: CompactionTrigger;
|
|
9392
|
-
/**
|
|
9424
|
+
/** 折叠机制标记(缺席 = 常规模型压缩) */
|
|
9393
9425
|
mechanism?: CompactionFoldMechanism;
|
|
9394
9426
|
/** 压缩前估算占用(tokens;manager 机制在场) */
|
|
9395
9427
|
beforeTokens?: number;
|
|
9396
|
-
/** 压缩前六路分解
|
|
9428
|
+
/** 压缩前六路分解 */
|
|
9397
9429
|
beforeBreakdown?: LedgerBreakdown;
|
|
9398
9430
|
/**
|
|
9399
|
-
*
|
|
9400
|
-
*
|
|
9401
|
-
* 正式 localBefore/localAfter(同 estimator 含 tools)随 T-CTX15/16b。
|
|
9431
|
+
* 测量口径注记:true = 锚点权威 usage + 尾部估算,false = 全量本地估算。
|
|
9432
|
+
* 同口径压缩比只能取 anchored=false 样本。
|
|
9402
9433
|
*/
|
|
9403
9434
|
beforeAnchored?: boolean;
|
|
9404
9435
|
estimatorProfileId?: string;
|
|
@@ -9406,44 +9437,44 @@ interface CompactionStartedEvent {
|
|
|
9406
9437
|
startedAtMs?: number;
|
|
9407
9438
|
thresholds?: CompactionThresholdsDetail;
|
|
9408
9439
|
plan?: CompactionPlanDetail;
|
|
9409
|
-
/**
|
|
9440
|
+
/** 锚点层明细(anchorLayer 门启用时在场;语义见 CompactionAnchorsDetail) */
|
|
9410
9441
|
anchors?: CompactionAnchorsDetail;
|
|
9411
|
-
/**
|
|
9442
|
+
/** 分桶校准明细(bucketedCalibration 门启用时在场;语义见 CompactionCalibrationDetail) */
|
|
9412
9443
|
calibration?: CompactionCalibrationDetail;
|
|
9413
9444
|
provider?: string;
|
|
9414
9445
|
model?: string;
|
|
9415
9446
|
retryOf?: string;
|
|
9416
9447
|
barrierSeq?: number;
|
|
9417
9448
|
/**
|
|
9418
|
-
*
|
|
9449
|
+
* 子代理归因标识(agent:<agentId> 的 id 半边)。kernel 签发方
|
|
9419
9450
|
* 恒不落本键;子代理运行器以包装 observer 注入(与父会话事件区分),
|
|
9420
9451
|
* 缺席 = 父会话事件。四事件载荷同语义(下同)。
|
|
9421
9452
|
*/
|
|
9422
9453
|
agentId?: string;
|
|
9423
9454
|
}
|
|
9424
|
-
/**
|
|
9455
|
+
/** 压缩 finished 事件载荷(outcome 缺席 = 非 manager 折叠机制的最小面) */
|
|
9425
9456
|
interface CompactionFinishedEvent {
|
|
9426
9457
|
compactionId: string;
|
|
9427
9458
|
trigger: CompactionTrigger;
|
|
9428
|
-
/**
|
|
9459
|
+
/** 折叠机制标记(缺席 = 常规模型压缩) */
|
|
9429
9460
|
mechanism?: CompactionFoldMechanism;
|
|
9430
|
-
/** 结局明细(manager
|
|
9461
|
+
/** 结局明细(manager 机制在场;含 observation / atRisk 扩字段) */
|
|
9431
9462
|
outcome?: CompactOutcome;
|
|
9432
9463
|
/** 压缩 round 墙钟时长(ms;观测口径,不参与任何决策) */
|
|
9433
9464
|
durationMs?: number;
|
|
9434
9465
|
/** 非 manager 折叠机制(应用器最小观测面)的移除消息数 */
|
|
9435
9466
|
foldedRemovedCount?: number;
|
|
9436
|
-
/**
|
|
9467
|
+
/** 子代理归因标识(语义见 CompactionStartedEvent.agentId) */
|
|
9437
9468
|
agentId?: string;
|
|
9438
9469
|
}
|
|
9439
|
-
/**
|
|
9470
|
+
/** microcompact 应用事件载荷(cachePrefixInvalidated 恒 true:改写历史必然重建缓存前缀,即 cache epoch 边界) */
|
|
9440
9471
|
interface MicrocompactAppliedEvent extends MicrocompactObservation {
|
|
9441
9472
|
trigger: CompactionTrigger;
|
|
9442
9473
|
cachePrefixInvalidated: true;
|
|
9443
|
-
/**
|
|
9474
|
+
/** 子代理归因标识(语义见 CompactionStartedEvent.agentId) */
|
|
9444
9475
|
agentId?: string;
|
|
9445
9476
|
}
|
|
9446
|
-
/**
|
|
9477
|
+
/** 工具结果入史 clamp 事件载荷(50K 统一预算;批级聚合) */
|
|
9447
9478
|
interface ToolResultsClampedEvent {
|
|
9448
9479
|
/** 本批被收束的 tool_result 块数 */
|
|
9449
9480
|
clampedCount: number;
|
|
@@ -9455,13 +9486,13 @@ interface ToolResultsClampedEvent {
|
|
|
9455
9486
|
persistedCount: number;
|
|
9456
9487
|
/** 生效的单块内联预算(字符) */
|
|
9457
9488
|
budgetChars: number;
|
|
9458
|
-
/**
|
|
9489
|
+
/** 子代理归因标识(语义见 CompactionStartedEvent.agentId) */
|
|
9459
9490
|
agentId?: string;
|
|
9460
9491
|
}
|
|
9461
9492
|
/**
|
|
9462
|
-
*
|
|
9493
|
+
* 压缩生命周期只读观测缝(kernel 公共 API,非 protocol 事件)。
|
|
9463
9494
|
*
|
|
9464
|
-
*
|
|
9495
|
+
* 签发权分布:
|
|
9465
9496
|
* - **成功结局**:统一应用器(governance-applier)在折叠变换应用后签发
|
|
9466
9497
|
* started/finished——应用器是所有方案效果的必经之门,任何策略机制的
|
|
9467
9498
|
* 折叠都被同一观测面覆盖;manager.compact 直调方自行消费
|
|
@@ -9478,18 +9509,18 @@ interface ToolResultsClampedEvent {
|
|
|
9478
9509
|
interface CompactionObserver {
|
|
9479
9510
|
onCompactionStarted?(event: CompactionStartedEvent): void;
|
|
9480
9511
|
onCompactionFinished?(event: CompactionFinishedEvent): void;
|
|
9481
|
-
/**
|
|
9512
|
+
/** microcompact 存根化应用观测 */
|
|
9482
9513
|
onMicrocompactApplied?(event: MicrocompactAppliedEvent): void;
|
|
9483
|
-
/**
|
|
9514
|
+
/** 工具结果入史 clamp 计数观测 */
|
|
9484
9515
|
onToolResultsClamped?(event: ToolResultsClampedEvent): void;
|
|
9485
9516
|
/**
|
|
9486
|
-
*
|
|
9487
|
-
*
|
|
9488
|
-
*
|
|
9517
|
+
* 压缩延迟观测(纯追加可选回调):端点劣化时 baseline 策略跳过本屏障的
|
|
9518
|
+
* 模型压缩。签发方 = 策略 assess(同步);回调异常由签发方吞掉
|
|
9519
|
+
* (fail-open 同全家纪律)。
|
|
9489
9520
|
*/
|
|
9490
9521
|
onCompactionDeferred?(event: CompactionDeferredEvent): void;
|
|
9491
9522
|
/**
|
|
9492
|
-
*
|
|
9523
|
+
* 压缩 fork 请求的估算配对观测(purpose='compaction',
|
|
9493
9524
|
* compactionId 与本观测缝生命周期事件同 id 关联)。manager 经
|
|
9494
9525
|
* CompactionRoundRequest.requestMeasurement 包装透传执行器,fork 请求
|
|
9495
9526
|
* 构造后提取特征、terminal 后合并 usage 回调一次。
|
|
@@ -9502,10 +9533,9 @@ interface ContextManagerCompactionOptions {
|
|
|
9502
9533
|
/** 摘要消息前导句(注入缝);默认 DEFAULT_SUMMARY_PREAMBLE */
|
|
9503
9534
|
summaryPreamble?: string;
|
|
9504
9535
|
/**
|
|
9505
|
-
*
|
|
9506
|
-
*
|
|
9507
|
-
*
|
|
9508
|
-
* 语义(2026-08-13 进展感知修正):空闲闸——流无进展 timeoutMs 才判死;
|
|
9536
|
+
* 压缩 round 模型调用超时(ms)。缺省 90_000;独立于主查询超时——压缩是
|
|
9537
|
+
* 可失败的辅助调用,不得吃满主查询预算。
|
|
9538
|
+
* 语义(进展感知):空闲闸——流无进展 timeoutMs 才判死;
|
|
9509
9539
|
* 生成推进中受 × COMPACTION_PROGRESS_HARD_CAP_FACTOR 硬上限封顶,不再
|
|
9510
9540
|
* 以总时长误杀(出处见 DEFAULT_COMPACTION_TIMEOUT_MS 注释)。
|
|
9511
9541
|
*/
|
|
@@ -9513,23 +9543,23 @@ interface ContextManagerCompactionOptions {
|
|
|
9513
9543
|
/** 保留最近完整 round 数;默认 2 */
|
|
9514
9544
|
keepRecentRounds?: number;
|
|
9515
9545
|
/**
|
|
9516
|
-
* 首条用户消息(任务锚点)
|
|
9517
|
-
* 默认 false
|
|
9546
|
+
* 首条用户消息(任务锚点)恒保留不参与折叠。
|
|
9547
|
+
* 默认 false(直接构造的 manager 沿历史行为);查询环自建的 manager 默认开启。
|
|
9518
9548
|
*/
|
|
9519
9549
|
keepFirstUserMessage?: boolean;
|
|
9520
9550
|
/**
|
|
9521
|
-
*
|
|
9551
|
+
* 压缩生命周期观测缝(装配层注入,消费写 context-events.jsonl)。
|
|
9522
9552
|
* 缺省不观测,行为与未接缝逐字节一致。
|
|
9523
9553
|
*/
|
|
9524
9554
|
observer?: CompactionObserver;
|
|
9525
9555
|
/**
|
|
9526
|
-
*
|
|
9556
|
+
* 摘要质量校验(结构 + 膨胀;透传执行器)。缺省启用 v2 九段
|
|
9527
9557
|
* 规格;`false` 全关——注入自定义 instructionTemplate(非九段结构)时
|
|
9528
9558
|
* 的逃生门,默认模板下不应关闭。
|
|
9529
9559
|
*/
|
|
9530
9560
|
summaryValidation?: SummaryValidationOptions | false;
|
|
9531
9561
|
/**
|
|
9532
|
-
*
|
|
9562
|
+
* 转录回查路径提示——装配层传会话 journal 的磁盘
|
|
9533
9563
|
* 路径(字符串,或求值闭包:纪元轮换后 journal 目录随 sink.currentSessionId
|
|
9534
9564
|
* 变化,闭包形态使摘要恒指向压缩时刻的**当前**转录文件)。在场时摘要
|
|
9535
9565
|
* 消息尾部追加回查段(compaction.buildTranscriptLookbackSection);缺省/
|
|
@@ -9540,15 +9570,15 @@ interface ContextManagerCompactionOptions {
|
|
|
9540
9570
|
*/
|
|
9541
9571
|
transcriptHint?: string | (() => string | undefined);
|
|
9542
9572
|
/**
|
|
9543
|
-
*
|
|
9544
|
-
*
|
|
9573
|
+
* microcompact 选量策略(分级衰减)的灰度门。缺席/enabled=false =
|
|
9574
|
+
* 现状自旧向新选量,逐字节零漂移
|
|
9545
9575
|
* (baseline 方案恒缺席);启用后按三维衰减分(龄×体积×被取代)选序,
|
|
9546
9576
|
* 并以 hysteresisTokens 下探停止水位(摊薄缓存前缀重建频次)。
|
|
9547
9577
|
* 取值链:MicrocompactRequest.decay(请求级)> 本构造级配置。
|
|
9548
9578
|
*/
|
|
9549
9579
|
toolResultDecay?: ToolResultDecayConfig;
|
|
9550
9580
|
/**
|
|
9551
|
-
*
|
|
9581
|
+
* 熔断半开探测指数退避门。缺席/false =
|
|
9552
9582
|
* 现状固定间隔(AUTO_COMPACT_HALF_OPEN_BARRIERS,基线恒缺席零漂移);
|
|
9553
9583
|
* true 时探测间隔 = HALF_OPEN × 2^min(熔断后连败数, 指数硬帽)
|
|
9554
9584
|
* (3→6→12→24 屏障),防劣化端点每 3 屏障固定烧一次探测超时;探测
|
|
@@ -9556,7 +9586,7 @@ interface ContextManagerCompactionOptions {
|
|
|
9556
9586
|
*/
|
|
9557
9587
|
halfOpenBackoff?: boolean;
|
|
9558
9588
|
/**
|
|
9559
|
-
*
|
|
9589
|
+
* 锚点层灰度门。缺席/enabled=false
|
|
9560
9590
|
* = 现状(压缩请求不拼锚点摘要,逐字节零漂移;/pin 管理面在 manager API
|
|
9561
9591
|
* 上恒可用,但无消费)。启用后压缩计划落定时对将折叠区抽取锚点、拼
|
|
9562
9592
|
* digest 追加进摘要附加指令(锚点是摘要的「不得稀释」清单),预算超限
|
|
@@ -9567,13 +9597,13 @@ interface ContextManagerCompactionOptions {
|
|
|
9567
9597
|
budgetTokens?: number;
|
|
9568
9598
|
};
|
|
9569
9599
|
/**
|
|
9570
|
-
*
|
|
9571
|
-
* enabled=false =
|
|
9600
|
+
* 估算-校准闭环灰度门。缺席/
|
|
9601
|
+
* enabled=false = 现状单标量 EWMA(压缩后重置,逐字节零漂移)。
|
|
9572
9602
|
* 启用后三件事(细节见 calibration.ts 模块头):校准因子按尾部内容特征
|
|
9573
9603
|
* 分桶(CJK/JSON/混排/纯文本)、校准态跨压缩持久(压缩成功仅失效配对
|
|
9574
9604
|
* 基线)、水位评估按桶置信度加安全边际(低置信宁可早压;
|
|
9575
9605
|
* confidenceMarginRatio 缺省 DEFAULT_CONFIDENCE_MARGIN_RATIO=0.1)。
|
|
9576
|
-
*
|
|
9606
|
+
* 门开/关均仅训练固定面相容的相邻实发输入差分;首轮或固定面
|
|
9577
9607
|
* 变化后的全量估算不能把 system/tools 的误差训练成消息密度。
|
|
9578
9608
|
*/
|
|
9579
9609
|
bucketedCalibration?: {
|
|
@@ -9581,16 +9611,16 @@ interface ContextManagerCompactionOptions {
|
|
|
9581
9611
|
confidenceMarginRatio?: number;
|
|
9582
9612
|
};
|
|
9583
9613
|
/**
|
|
9584
|
-
*
|
|
9614
|
+
* 压缩段回查节门(fold 迁移证据保全的**模型可见半边**;新
|
|
9585
9615
|
* 行为开关化)。缺席/false = 摘要字节现状零漂移;true 且请求携 spill 且
|
|
9586
9616
|
* 段落盘成功时,摘要尾部追加回查节(buildSegmentLookbackSection,指向
|
|
9587
9617
|
* 被折叠段的落盘投影)。段落盘本身(非模型可见)不受本门控制——spill
|
|
9588
|
-
* 在场即执行(
|
|
9618
|
+
* 在场即执行(证据保全恒不挑时机)。
|
|
9589
9619
|
*/
|
|
9590
9620
|
segmentLookback?: boolean;
|
|
9591
9621
|
}
|
|
9592
9622
|
/**
|
|
9593
|
-
*
|
|
9623
|
+
* 压缩后派生态失效清单条目。压缩改变「模型已经看过
|
|
9594
9624
|
* 什么」这一全局事实,一切以此为前提的派生态(差分基线/校准态/签名缓存)
|
|
9595
9625
|
* 必须在压缩成功后同步失效,否则出现「模型引用它已看不见的内容」类幽灵
|
|
9596
9626
|
* bug。集中一份清单统一执行(而非散落各处),失效点可枚举、可锁测。
|
|
@@ -9637,48 +9667,48 @@ interface ContextAssessment {
|
|
|
9637
9667
|
/** manager 层压缩请求(round 粒度计划与执行参数由本类代算) */
|
|
9638
9668
|
interface CompactRequest {
|
|
9639
9669
|
view: ContextView;
|
|
9640
|
-
/**
|
|
9670
|
+
/** 已报摘要用量入辅助账后同步通知;取消等待方可保留已知费用。 */
|
|
9641
9671
|
onUsage?: (usage: IRUsage) => void;
|
|
9642
|
-
/** 压缩 fork
|
|
9672
|
+
/** 压缩 fork 缺省同模型;调用方可显式降档 */
|
|
9643
9673
|
model: ResolvedModel;
|
|
9644
9674
|
trigger: CompactionTrigger;
|
|
9645
9675
|
signal?: AbortSignal;
|
|
9646
9676
|
temperature?: number;
|
|
9647
|
-
/** fork 采样参数;与 IR 同形含 off 位(
|
|
9677
|
+
/** fork 采样参数;与 IR 同形含 off 位(显式思考关断须原样穿透) */
|
|
9648
9678
|
thinking?: {
|
|
9649
9679
|
budget?: number;
|
|
9650
9680
|
off?: boolean;
|
|
9651
9681
|
};
|
|
9652
9682
|
/**
|
|
9653
9683
|
* 覆盖压缩输出预算。缺省 = thresholds.compactOutputBudget;调用方应传
|
|
9654
|
-
* min(模型 maxOutput, compactOutputBudget)(
|
|
9655
|
-
*
|
|
9684
|
+
* min(模型 maxOutput, compactOutputBudget)(summaryReserve 语义——模型
|
|
9685
|
+
* 能力位在装配层,本类不感知 provider capability)。
|
|
9656
9686
|
*/
|
|
9657
9687
|
maxTokens?: number;
|
|
9658
9688
|
/** 用户附加摘要指令(/compact [instructions]);追加在模板后,只调焦点 */
|
|
9659
9689
|
instructions?: string;
|
|
9660
|
-
/**
|
|
9690
|
+
/** 本次压缩调用超时(ms);覆盖 compaction.timeoutMs 配置 */
|
|
9661
9691
|
timeoutMs?: number;
|
|
9662
9692
|
/**
|
|
9663
|
-
*
|
|
9664
|
-
* 构造级配置(取值链与 timeoutMs 同构)
|
|
9665
|
-
* QueryCompactionOptions.transcriptHint
|
|
9666
|
-
*
|
|
9693
|
+
* 本次压缩的转录回查路径提示;覆盖 compaction.transcriptHint
|
|
9694
|
+
* 构造级配置(取值链与 timeoutMs 同构)。装配层通常经
|
|
9695
|
+
* QueryCompactionOptions.transcriptHint 直达构造级配置,本请求级位
|
|
9696
|
+
* 保留给调用方显式覆盖。
|
|
9667
9697
|
*/
|
|
9668
9698
|
transcriptHint?: string | (() => string | undefined);
|
|
9669
9699
|
/**
|
|
9670
|
-
*
|
|
9700
|
+
* fold 迁移证据保全存储(spill kind='compaction-segment'
|
|
9671
9701
|
* 接线):在场时被折叠段的确定性渲染落 spill content 空间(microcompact
|
|
9672
|
-
* 请求的 spill 同源同store,baseline 会话透传)。缺席 =
|
|
9673
|
-
*
|
|
9702
|
+
* 请求的 spill 同源同store,baseline 会话透传)。缺席 = 不落盘。
|
|
9703
|
+
* 模型可见回查节另由构造级 segmentLookback 门控制。
|
|
9674
9704
|
*/
|
|
9675
9705
|
spill?: SpillStore;
|
|
9676
9706
|
/**
|
|
9677
|
-
*
|
|
9678
|
-
*
|
|
9707
|
+
* 压缩前钩子(装配层注入;典型 = 落 pre_compaction 上下文快照)。
|
|
9708
|
+
* 时机:计划落定(有可压内容)之后、压缩
|
|
9679
9709
|
* fork 请求发出之前——no-op 结局不调用(无可压不白落快照),PreCompact
|
|
9680
9710
|
* hook 阻断径亦不达此处。manager 只调用不知快照:返回值的 checkpointId
|
|
9681
|
-
* 原样冒泡到结局(
|
|
9711
|
+
* 原样冒泡到结局(成功/失败两形皆携,失败时已落快照保留);钩子抛错 →
|
|
9682
9712
|
* 失败结局 reason='before_compact_failed',请求不发出,历史不变。
|
|
9683
9713
|
*/
|
|
9684
9714
|
beforeCompact?: (view: ContextView) => Promise<{
|
|
@@ -9691,23 +9721,23 @@ interface CompactOutcomeSuccess extends CompactionRoundSuccess {
|
|
|
9691
9721
|
measurementBefore: ContextMeasurement;
|
|
9692
9722
|
measurementAfter: ContextMeasurement;
|
|
9693
9723
|
/**
|
|
9694
|
-
*
|
|
9724
|
+
* beforeCompact 钩子返回的快照 id(压缩前完整上下文的可恢复拷贝);
|
|
9695
9725
|
* 钩子缺席/未返回 id 时缺席。session.compacted 事件与 journal
|
|
9696
|
-
* compact_boundary 记录据此携 checkpointId
|
|
9726
|
+
* compact_boundary 记录据此携 checkpointId。
|
|
9697
9727
|
*/
|
|
9698
9728
|
checkpointId?: string;
|
|
9699
9729
|
/**
|
|
9700
|
-
* 压缩执行 id
|
|
9730
|
+
* 压缩执行 id 冒泡:与观测材料
|
|
9701
9731
|
* observation.compactionId、摘要哨兵 uuid、meta.compactionId 同源——
|
|
9702
9732
|
* `session.compacted` 事件与 journal `compact_boundary` 记录的关联键由此
|
|
9703
|
-
*
|
|
9704
|
-
* manager.compact 与 hardTrim
|
|
9733
|
+
* 冒给签发/写入方。类型层可选,防破字面量构造方(observation 同款纪律);
|
|
9734
|
+
* manager.compact 与 hardTrim 运行时恒产出。
|
|
9705
9735
|
*/
|
|
9706
9736
|
compactionId?: string;
|
|
9707
9737
|
/**
|
|
9708
|
-
*
|
|
9738
|
+
* 观测材料(类型层可选,防破字面量构造方;manager.compact 运行时
|
|
9709
9739
|
* 恒产出——CostBucketSnapshot.cacheMetrics 同款纪律)。成功结局的
|
|
9710
|
-
* started/finished
|
|
9740
|
+
* started/finished 事件由统一应用器据此签发。例外:hardTrim 结局
|
|
9711
9741
|
* **恒缺席**本字段(零模型投入,无 provider/model/durationMs 可归因),
|
|
9712
9742
|
* 观测走应用器最小面 + mechanism 标记。
|
|
9713
9743
|
*/
|
|
@@ -9718,13 +9748,13 @@ interface CompactOutcomeFailure extends CompactionRoundFailure {
|
|
|
9718
9748
|
measurementBefore: ContextMeasurement;
|
|
9719
9749
|
/**
|
|
9720
9750
|
* 本次失败后的连续自动失败计数。manual 失败不计入;nothing_to_compact
|
|
9721
|
-
* 是计划性 no-op
|
|
9751
|
+
* 是计划性 no-op,既不推进也不打断连续失败链。
|
|
9722
9752
|
*/
|
|
9723
9753
|
consecutiveAutoCompactFailures: number;
|
|
9724
|
-
/**
|
|
9754
|
+
/** 观测材料(可选性理由同 CompactOutcomeSuccess.observation) */
|
|
9725
9755
|
observation?: CompactionObservation;
|
|
9726
9756
|
/**
|
|
9727
|
-
*
|
|
9757
|
+
* beforeCompact 已落的快照 id——压缩失败不回滚已落的盘,
|
|
9728
9758
|
* 结局携 id 供调用方决定(before_compact_failed 时恒缺席:钩子未成功)。
|
|
9729
9759
|
*/
|
|
9730
9760
|
checkpointId?: string;
|
|
@@ -9826,51 +9856,51 @@ declare class ContextManager {
|
|
|
9826
9856
|
/** 解析后的阈值(只读;供状态栏/斜杠命令展示) */
|
|
9827
9857
|
get thresholds(): ResolvedThresholds;
|
|
9828
9858
|
/**
|
|
9829
|
-
* 附件注册表观测快照(只读;/context
|
|
9830
|
-
*
|
|
9859
|
+
* 附件注册表观测快照(只读;/context 展示与压缩诊断,不属于七接口)。
|
|
9860
|
+
* 完整快照(在场附件数/逐条 TTL 剩余/估算 tokens/预算),
|
|
9831
9861
|
* 旧形态 {round, injectedBytes} 是其结构子集,消费方零迁移。
|
|
9832
9862
|
*/
|
|
9833
9863
|
get attachmentStats(): AttachmentStats;
|
|
9834
|
-
/**
|
|
9864
|
+
/** nothing_to_compact no-op 累计(只读观测;压缩生命周期埋点消费) */
|
|
9835
9865
|
get noopCompactCount(): number;
|
|
9836
9866
|
/**
|
|
9837
|
-
*
|
|
9838
|
-
*
|
|
9867
|
+
* EWMA 校准因子(只读观测;1 = 未校准或刚重置)。
|
|
9868
|
+
* bucketedCalibration 门开时标量路径不更新(恒 1),分桶态看 calibrationState()。
|
|
9839
9869
|
*/
|
|
9840
9870
|
get calibrationFactor(): number;
|
|
9841
9871
|
/**
|
|
9842
|
-
*
|
|
9843
|
-
* 门关:buckets 恒空数组 + factor = 标量因子(
|
|
9872
|
+
* 校准态快照(只读观测;/context 展示与锁测消费)。
|
|
9873
|
+
* 门关:buckets 恒空数组 + factor = 标量因子(单标量 EWMA 现状态)。
|
|
9844
9874
|
*/
|
|
9845
9875
|
calibrationState(): CalibrationSnapshot;
|
|
9846
|
-
/**
|
|
9876
|
+
/** 跨 manager 重建搬运出口(driver 切方案携带;切模不携带) */
|
|
9847
9877
|
exportCalibration(): CalibrationSnapshot;
|
|
9848
9878
|
/**
|
|
9849
|
-
*
|
|
9850
|
-
*
|
|
9879
|
+
* 搬运入口:**仅门开时生效**(门关 no-op——基线标量路径的
|
|
9880
|
+
* 重建归零语义是既定行为,导入会构成漂移)。因子按钳制域收
|
|
9851
9881
|
* 口、观测数取非负整数(防手工快照越界);配对基线不搬(旧测量对旧
|
|
9852
9882
|
* 历史,新实例首次 measure 自然重建)。
|
|
9853
9883
|
*/
|
|
9854
9884
|
importCalibration(snapshot: CalibrationSnapshot): void;
|
|
9855
9885
|
/**
|
|
9856
|
-
*
|
|
9886
|
+
* 登记压缩后必须失效/重置的外部派生态(装配层调用;如
|
|
9857
9887
|
* reminder 首屏差分基线)。压缩成功后按「内置清单 → 登记序」统一执行;
|
|
9858
9888
|
* run 抛错被吞(fail-open),不影响压缩收尾与其余清单项。
|
|
9859
9889
|
*/
|
|
9860
9890
|
registerPostCompactInvalidation(entry: PostCompactInvalidation): void;
|
|
9861
|
-
/**
|
|
9891
|
+
/** 失效清单登记名快照(观测/锁测断言;含内置三件) */
|
|
9862
9892
|
get postCompactInvalidationIds(): readonly string[];
|
|
9863
9893
|
/**
|
|
9864
|
-
*
|
|
9894
|
+
* 派生态失效清单的公开执行入口(统一应用器消费:非 baseline
|
|
9865
9895
|
* 策略的历史折叠变换应用后,由应用器调用本方法统一失效锚点/附件签名/
|
|
9866
9896
|
* 校准态与外部登记项)。baseline 的 compact/microcompact 路径**不经**
|
|
9867
9897
|
* 本入口——manager 内建执行时序在 measurementAfter 之前(压缩后测量
|
|
9868
9898
|
* 必须基于失效后的干净状态),应用器侧重复执行会清空刚建立的校准配对
|
|
9869
|
-
* 基线(
|
|
9899
|
+
* 基线(校准链漂移),故 baseline 变换标记 invalidations='strategy'。
|
|
9870
9900
|
*/
|
|
9871
9901
|
runPostCompactInvalidations(): void;
|
|
9872
9902
|
/**
|
|
9873
|
-
*
|
|
9903
|
+
* 屏障点计时(半开熔断的时基):查询环每个压缩屏障点调用一次。
|
|
9874
9904
|
* 熔断压制期间每计满 AUTO_COMPACT_HALF_OPEN_BARRIERS 个屏障,assess 放行
|
|
9875
9905
|
* 一次探测压缩(成功清零熔断计数恢复正常,失败继续压制);任何 auto 压缩
|
|
9876
9906
|
* 尝试(含探测与 no-op)都会清零本计时,压制期的失败信息因此有界
|
|
@@ -9878,7 +9908,7 @@ declare class ContextManager {
|
|
|
9878
9908
|
*/
|
|
9879
9909
|
noteBarrier(): void;
|
|
9880
9910
|
/**
|
|
9881
|
-
*
|
|
9911
|
+
* 观测缝只读出口:查询环/空闲直压据此把 observer 交给统一
|
|
9882
9912
|
* 应用器(成功结局签发)与工具结果收束缝(clamp 计数)。外部注入 manager
|
|
9883
9913
|
* 形态下构造方持有的观测缝经此对查询环可达。
|
|
9884
9914
|
*/
|
|
@@ -9889,9 +9919,9 @@ declare class ContextManager {
|
|
|
9889
9919
|
* 校准读取 receipt 冻结的旧 authority,后来的测量/新锚点不会串用。
|
|
9890
9920
|
*/
|
|
9891
9921
|
recordUsage(entry: RoundUsageInput): void;
|
|
9892
|
-
/**
|
|
9922
|
+
/** 请求观测与固定面使用同一基础估算器,尤其外部注入manager时。 */
|
|
9893
9923
|
get requestEstimator(): TokenEstimator;
|
|
9894
|
-
/**
|
|
9924
|
+
/** 主模型/客户端绑定改变时旧tokenizer观测不能沿用。 */
|
|
9895
9925
|
bindRequestModel(model: ResolvedModel, client: ModelClient): void;
|
|
9896
9926
|
/** 在治理前捕获固定输入,后续压缩/输出预算/实际发送均使用同一副本。 */
|
|
9897
9927
|
prepareRequestBasis(view: ContextView): RequestBasis;
|
|
@@ -9906,7 +9936,7 @@ declare class ContextManager {
|
|
|
9906
9936
|
}): SentRequestReceipt;
|
|
9907
9937
|
discardSentRequest(receipt: SentRequestReceipt): void;
|
|
9908
9938
|
/**
|
|
9909
|
-
*
|
|
9939
|
+
* 请求固定输入(如 system 段)变化后,旧权威 usage 不再代表当前前缀。
|
|
9910
9940
|
* 只失效测量锚点和待配对校准基线,使下一次 measure 全量计入新 system;
|
|
9911
9941
|
* 已学习密度因子、累计用量、附件/TTL、历史 pin、压缩熔断均保留。
|
|
9912
9942
|
* 不等同历史压缩,不能运行 postCompact 失效清单;调用方须先判断实际输入已变化,
|
|
@@ -9914,21 +9944,21 @@ declare class ContextManager {
|
|
|
9914
9944
|
*/
|
|
9915
9945
|
invalidateRequestBasis(): void;
|
|
9916
9946
|
/**
|
|
9917
|
-
*
|
|
9947
|
+
* 当前缓存命中率 EWMA 只读出口(null = 尚无观测)。消费方:
|
|
9918
9948
|
* baseline 策略缓存感知门 + microcompact 观测材料。
|
|
9919
9949
|
*/
|
|
9920
9950
|
cacheHitRatio(): number | null;
|
|
9921
9951
|
/**
|
|
9922
|
-
* 测量当前上下文占用:锚点权威计量 +
|
|
9923
|
-
*
|
|
9952
|
+
* 测量当前上下文占用:锚点权威计量 + 本地估算尾部,六路分解。
|
|
9953
|
+
* 消息尾部经校准因子微调,system/tools 保持基础估算。
|
|
9924
9954
|
* 本次测量独立留基线,实际发送方 prepareSentRequest 后才可配对 usage。
|
|
9925
|
-
*
|
|
9955
|
+
* bucketedCalibration 门开:估算前按 ledger 同一锚点判定取尾部范围并归桶
|
|
9926
9956
|
* (classifyTailBucket),应用缝随之切到该桶因子;基线记录归桶与锚点
|
|
9927
9957
|
* 口径供观测入账。门关零触碰(#lastBucket 不更新,分桶 Map 恒空)。
|
|
9928
9958
|
*/
|
|
9929
9959
|
measure(view: ContextView): ContextMeasurement;
|
|
9930
9960
|
/**
|
|
9931
|
-
*
|
|
9961
|
+
* 请求装配后新增尾材料的只读计额。只比较受影响尾消息,
|
|
9932
9962
|
* 使用当前测量已选定的校准因子;不刷新桶/配对基线/锚点,也不全量 measure。
|
|
9933
9963
|
* before 缺席表示新增一条消息,按账本同口径包含消息定额。
|
|
9934
9964
|
*/
|
|
@@ -9939,19 +9969,19 @@ declare class ContextManager {
|
|
|
9939
9969
|
estimateRequestTailDelta(before: IRMessage | undefined, after: IRMessage, measurement?: ContextMeasurement): number;
|
|
9940
9970
|
/**
|
|
9941
9971
|
* 水位评估:测量 → 阈值代数 → 区带/触发建议;熔断中压制自动压缩建议。
|
|
9942
|
-
*
|
|
9972
|
+
* 半开探测:压制期间每隔 AUTO_COMPACT_HALF_OPEN_BARRIERS 个屏障点
|
|
9943
9973
|
* (noteBarrier 计时)放行一次探测压缩——探测成功由 compact 清零计数
|
|
9944
9974
|
* 恢复正常,失败继续压制。本方法只读(计时推进在 noteBarrier/compact)。
|
|
9945
9975
|
*/
|
|
9946
9976
|
assess(view: ContextView): ContextAssessment;
|
|
9947
9977
|
/**
|
|
9948
|
-
*
|
|
9978
|
+
* 以既有测量做阈值评估(不重新 measure):同一
|
|
9949
9979
|
* 屏障内 microcompact 之后的 compact 判定复用其 measurementAfter,消除
|
|
9950
9980
|
* 「同屏障二次全量估算」——第二次估算与淘汰选量投影可能相互矛盾,
|
|
9951
9981
|
* 淘汰刚回收完又立刻整体压缩的同屏障双压由此根治。熔断/半开语义与
|
|
9952
9982
|
* assess 完全一致(同为只读;计时推进在 noteBarrier/compact)。
|
|
9953
|
-
*
|
|
9954
|
-
* 「低置信留更大边际」——桶内观测不足时尾部估算加临时边际,宁可早压
|
|
9983
|
+
* bucketedCalibration 门开:水位判定按 contextTokens + 置信度安全边际
|
|
9984
|
+
* (「低置信留更大边际」——桶内观测不足时尾部估算加临时边际,宁可早压
|
|
9955
9985
|
* 不越界;观测饱和边际归零)。边际只进决策,measurement 如实不动;
|
|
9956
9986
|
* 明细随 assessment.calibration 在场。门关零漂移(边际恒缺席)。
|
|
9957
9987
|
*/
|
|
@@ -9999,16 +10029,15 @@ declare class ContextManager {
|
|
|
9999
10029
|
* 预算语义,恒不提醒;autoCompactAt < 启用下限(20K)同样恒不提醒——
|
|
10000
10030
|
* 提醒自身 ~100 tokens,极小预算下注入本身即可观挤兑(玩具窗实测把
|
|
10001
10031
|
* 水位推回压缩线引发压缩连锁),成本占比论证见 entry-budgets 常量注释。
|
|
10002
|
-
* 占用入参由查询环钳制点透传(同屏障同一测量,不新增 measure
|
|
10003
|
-
* T-CTX13-② 口径纪律)。
|
|
10032
|
+
* 占用入参由查询环钳制点透传(同屏障同一测量,不新增 measure 调用)。
|
|
10004
10033
|
*/
|
|
10005
10034
|
takeContextBudgetReminder(contextTokens: number): ContextBudgetPayload | undefined;
|
|
10006
10035
|
/**
|
|
10007
10036
|
* 标记消息为 pinned:压缩时其所在完整 round 整体保留(round 粒度,保配对)。
|
|
10008
10037
|
*
|
|
10009
|
-
*
|
|
10010
|
-
* 换新对象即丢标——microcompact 存根替换径已明文豁免 pinned(
|
|
10011
|
-
*
|
|
10038
|
+
* **对象身份契约**:pin 按消息对象引用标记(WeakSet),
|
|
10039
|
+
* 换新对象即丢标——microcompact 存根替换径已明文豁免 pinned(pin 承诺完整
|
|
10040
|
+
* 保留,见 #microcompact planOptions);但查询环 meta 合并径(run-query 末条
|
|
10012
10041
|
* user 消息整体换新对象)未防,**末条 user 消息的 pin 可能因 meta 合并
|
|
10013
10042
|
* 静默失效**。现状 pin()/unpin() 无生产调用方(全仓仅测试),按设计债
|
|
10014
10043
|
* 登记不改行为;若未来接线生产消费方,改法二选一:meta 合并改就地追加
|
|
@@ -10020,7 +10049,7 @@ declare class ContextManager {
|
|
|
10020
10049
|
/**
|
|
10021
10050
|
* 手动锚点登记(/pin <text>):过短/空文本返回 null;重复登记升级为
|
|
10022
10051
|
* 手动源(用户显式确认抽取锚点)并回报 duplicate=true。新鲜度取当前
|
|
10023
|
-
* 会话 round;估算用 base 估算器(
|
|
10052
|
+
* 会话 round;估算用 base 估算器(登记时一次性,与附件注册表同纪律)。
|
|
10024
10053
|
*/
|
|
10025
10054
|
pinAnchor(text: string): {
|
|
10026
10055
|
entry: AnchorEntry;
|
|
@@ -10080,15 +10109,15 @@ declare class ContextManager {
|
|
|
10080
10109
|
* 执行一次压缩:制定 round 粒度计划 → 注入的 ModelClient 打一轮完整
|
|
10081
10110
|
* API round → 产出摘要消息、压缩后消息数组与 session.compacted 所需数据。
|
|
10082
10111
|
* 成功后:测量锚点重置(旧 anchorIndex 失效)、附件签名清空(引用目标
|
|
10083
|
-
* 已被摘要替换)
|
|
10112
|
+
* 已被摘要替换)、自动熔断计数清零、校准态重置。失败(含无
|
|
10084
10113
|
* 可压缩)不改动任何输入。
|
|
10085
|
-
*
|
|
10114
|
+
* 观测缝:观测材料(CompactionObservation)恒随 outcome
|
|
10086
10115
|
* 返回;**成功结局的 started/finished 由统一应用器签发**(折叠效果的
|
|
10087
10116
|
* 必经之门),失败/no-op 结局不经应用器、保留本方法返回面签发(回调
|
|
10088
10117
|
* 异常吞掉,fail-open 不影响压缩主链)。直调本方法的消费方(不经应用器)
|
|
10089
10118
|
* 对成功结局自行消费 outcome.observation。
|
|
10090
10119
|
*
|
|
10091
|
-
*
|
|
10120
|
+
* **非重入契约**:compact/microcompact 的 await 窗口
|
|
10092
10121
|
* 无重入护栏——并发调用会交错破坏账本/校准基线/派生态失效清单的时序。
|
|
10093
10122
|
* 互斥责任在装配层:查询环屏障点单点调用、空闲直压与查询环互斥(driver
|
|
10094
10123
|
* 纪律),现状全部调用面守住。第三方直调本 API 须自行保证同一实例上
|
|
@@ -10157,16 +10186,16 @@ type EndpointHealthProbe = () => EndpointHealthSnapshot | undefined;
|
|
|
10157
10186
|
* 策略不直接持有消息数组可变引用,只产出变换数据;任何方案的效果必经
|
|
10158
10187
|
* 应用器落地(围栏 1「出口不可绕过」)。
|
|
10159
10188
|
*
|
|
10160
|
-
* TransformOp
|
|
10189
|
+
* TransformOp 封闭集定形记录:
|
|
10161
10190
|
* - `replaceWithSummary`:压缩折叠(消费方 = baseline compact);
|
|
10162
10191
|
* - `stubToolResult`:tool_result 原位存根化(消费方 = baseline microcompact);
|
|
10163
10192
|
* - `insertSyntheticPair`:合成 tool 对注入(消费方 = baseline 压缩后文件
|
|
10164
|
-
*
|
|
10193
|
+
* 重建);
|
|
10165
10194
|
* - `removeRange`:整消息区间移除(消费方 = trivial-trim 玩具策略;也是
|
|
10166
10195
|
* 时间型 microcompact/trim 类研究项机制的基础操作)。
|
|
10167
10196
|
* 初稿成员 `insertReminder` 裁掉:无真实消费方——reminder 注入走查询环
|
|
10168
|
-
*
|
|
10169
|
-
* 面(GovernanceDirective.instructions
|
|
10197
|
+
* 屏障缝(非治理变换);PreCompact hook 的指令注入走 directive 输入
|
|
10198
|
+
* 面(GovernanceDirective.instructions),不是消息变换。
|
|
10170
10199
|
* 枚举以 TRANSFORM_OP_KINDS 快照锁测封口,扩值走 kernel API 评审。
|
|
10171
10200
|
*/
|
|
10172
10201
|
|
|
@@ -10198,7 +10227,7 @@ interface ReplaceWithSummaryOp {
|
|
|
10198
10227
|
cutIndex: number;
|
|
10199
10228
|
/** 移除的消息 index(升序;非空) */
|
|
10200
10229
|
removedIndices: readonly number[];
|
|
10201
|
-
/** 单独保留前移的任务锚点 index(
|
|
10230
|
+
/** 单独保留前移的任务锚点 index(首条用户消息保留策略;缺席 = 无锚点提取) */
|
|
10202
10231
|
keptAnchorIndex?: number;
|
|
10203
10232
|
/** 整体保留前移的 pinned 消息 index(升序;可为空) */
|
|
10204
10233
|
keptPinnedIndices: readonly number[];
|
|
@@ -10210,7 +10239,7 @@ interface ReplaceWithSummaryOp {
|
|
|
10210
10239
|
* 结构」——replacement 必须与原块同 callId(配对不变量),消息数与块序
|
|
10211
10240
|
* 不变。被触碰的消息以新对象落位(copy-on-write),未触碰消息保持原引用。
|
|
10212
10241
|
*
|
|
10213
|
-
* pin
|
|
10242
|
+
* pin 契约注意:应用器没有 pin 视图(pin
|
|
10214
10243
|
* WeakSet 所有权在 ContextManager),不校验目标消息是否 pinned——copy-on-write
|
|
10215
10244
|
* 换新对象会使按旧引用登记的 pin 标记静默失效(压缩「整 round 保留」承诺
|
|
10216
10245
|
* 随之丢失)。策略产出本 op 前应自行豁免 pinned 消息(baseline 经
|
|
@@ -10224,7 +10253,7 @@ interface StubToolResultOp {
|
|
|
10224
10253
|
replacement: ToolResultBlock;
|
|
10225
10254
|
}
|
|
10226
10255
|
/**
|
|
10227
|
-
* 合成 tool 对注入(
|
|
10256
|
+
* 合成 tool 对注入(压缩后文件重建):在 index 处插入
|
|
10228
10257
|
* [call(assistant tool_call), result(user tool_result)] 两条消息。call 的
|
|
10229
10258
|
* tool_call id 序列必须与 result 的 tool_result callId 序列一致(对内自闭
|
|
10230
10259
|
* 配对,插入任何位置不破坏外部配对)。
|
|
@@ -10242,7 +10271,7 @@ interface InsertSyntheticPairOp {
|
|
|
10242
10271
|
*/
|
|
10243
10272
|
type TransformOp = RemoveRangeOp | ReplaceWithSummaryOp | StubToolResultOp | InsertSyntheticPairOp;
|
|
10244
10273
|
/**
|
|
10245
|
-
* 统一失败形态(
|
|
10274
|
+
* 统一失败形态(沿 CompactionFailureReason 枚举;
|
|
10246
10275
|
* auto 计熔断/manual 报错的归类由策略引擎内部完成,查询环只消费 message)。
|
|
10247
10276
|
*/
|
|
10248
10277
|
interface GovernanceFailure {
|
|
@@ -10254,7 +10283,7 @@ interface GovernanceFailure {
|
|
|
10254
10283
|
* ——以 `turn.error`(scope/message,recoverable=false)前置
|
|
10255
10284
|
* `turn.aborted`(reason)收口。现状词表:scope ∈ {'compaction',
|
|
10256
10285
|
* blockingFailFastScope('no_progress')},reason 恒 'prompt_too_long'
|
|
10257
|
-
* (
|
|
10286
|
+
* (无进展保护 / blocking 失败分型)。
|
|
10258
10287
|
*/
|
|
10259
10288
|
interface GovernanceVerdict {
|
|
10260
10289
|
scope: string;
|
|
@@ -10262,7 +10291,7 @@ interface GovernanceVerdict {
|
|
|
10262
10291
|
reason: TerminalReason;
|
|
10263
10292
|
}
|
|
10264
10293
|
/**
|
|
10265
|
-
* 治理变换(execute
|
|
10294
|
+
* 治理变换(execute 产物)。@experimental
|
|
10266
10295
|
*
|
|
10267
10296
|
* 失败(failure 在场)时 ops 必须为空(应用器拒绝混载);no-op(如
|
|
10268
10297
|
* microcompact 无候选)= ops 为空且无 failure。
|
|
@@ -10284,17 +10313,17 @@ interface GovernanceTransform {
|
|
|
10284
10313
|
/** 执行后处置建议(fail-fast;缺席 = 继续本轮) */
|
|
10285
10314
|
verdict?: GovernanceVerdict;
|
|
10286
10315
|
/**
|
|
10287
|
-
* 派生态失效清单(
|
|
10316
|
+
* 派生态失效清单(PostCompactInvalidation)的执行方:
|
|
10288
10317
|
* - 'applier'(缺省):统一应用器在 ops 应用后执行注入的失效闭包
|
|
10289
10318
|
* (查询环注入 manager.runPostCompactInvalidations);
|
|
10290
10319
|
* - 'strategy':策略引擎已在 execute 内部完成——baseline 经
|
|
10291
10320
|
* ContextManager.compact/microcompact 的内建清单执行(时序在
|
|
10292
10321
|
* measurementAfter 之前,应用器不得重复执行,否则校准配对基线被
|
|
10293
|
-
*
|
|
10322
|
+
* 二次清空,校准链漂移)。
|
|
10294
10323
|
*/
|
|
10295
10324
|
invalidations?: 'applier' | 'strategy';
|
|
10296
10325
|
/**
|
|
10297
|
-
*
|
|
10326
|
+
* microcompact 观测材料——产出 stubToolResult 变换
|
|
10298
10327
|
* 的策略随变换携带(baseline 自 MicrocompactOutcome 投影),统一应用器
|
|
10299
10328
|
* 在 stub 变换应用后据此签发 `onMicrocompactApplied`。缺席 = 不签发
|
|
10300
10329
|
* (非 microcompact 语义的 stub 机制不被冒名观测,如实)。
|
|
@@ -10317,10 +10346,10 @@ interface GovernanceSnapshot {
|
|
|
10317
10346
|
reactive: boolean;
|
|
10318
10347
|
}
|
|
10319
10348
|
/**
|
|
10320
|
-
* 治理指令(assess
|
|
10349
|
+
* 治理指令(assess 产物;词表 nothing | microcompact | compact
|
|
10321
10350
|
* | block)。compact 指令的 instructions 由查询环在 PreCompact hook 分发后
|
|
10322
|
-
* 注入(manual 用户指令在前、hook additionalContext
|
|
10323
|
-
* ——hook 指令注入位在 directive
|
|
10351
|
+
* 注入(manual 用户指令在前、hook additionalContext 在后
|
|
10352
|
+
* ——hook 指令注入位在 directive 输入面)。
|
|
10324
10353
|
*/
|
|
10325
10354
|
type GovernanceDirective = {
|
|
10326
10355
|
kind: 'nothing';
|
|
@@ -10330,17 +10359,17 @@ type GovernanceDirective = {
|
|
|
10330
10359
|
kind: 'compact';
|
|
10331
10360
|
trigger: CompactionTrigger;
|
|
10332
10361
|
/**
|
|
10333
|
-
*
|
|
10362
|
+
* blocking 末段闸门语境(auto 径已越阻塞线的强制压缩):
|
|
10334
10363
|
* execute 据此产出「成功但无进展 → fail-fast」verdict。
|
|
10335
10364
|
*/
|
|
10336
10365
|
blockingGate?: boolean;
|
|
10337
10366
|
/**
|
|
10338
|
-
*
|
|
10367
|
+
* 熔断保底标记:压缩熔断压制中由
|
|
10339
10368
|
* assess 置位,execute 据此**跳过模型压缩**、走无模型硬截断保底
|
|
10340
10369
|
* (manager.hardTrim)——不再每屏障硬等压缩超时。覆盖两径:
|
|
10341
|
-
* blockingGate
|
|
10342
|
-
*
|
|
10343
|
-
*
|
|
10370
|
+
* blockingGate 命中与 reactive 真溢出自救(压制期 fork 注定打向
|
|
10371
|
+
* 劣化端点,保底后主查询重试照常)。熔断闭合时恒缺席
|
|
10372
|
+
* (行为与现状逐字节一致)。
|
|
10344
10373
|
*/
|
|
10345
10374
|
breakerFallback?: boolean;
|
|
10346
10375
|
/**
|
|
@@ -10352,7 +10381,7 @@ type GovernanceDirective = {
|
|
|
10352
10381
|
/** 摘要附加指令(查询环合并 manual 用户指令与 PreCompact hook 注入后填充) */
|
|
10353
10382
|
instructions?: string;
|
|
10354
10383
|
/**
|
|
10355
|
-
*
|
|
10384
|
+
* 压缩前钩子(查询环自 QueryCompactionOptions.beforeCompact 组装
|
|
10356
10385
|
* 后经本输入面注入,与 instructions 同位;baseline 原样透传
|
|
10357
10386
|
* CompactRequest.beforeCompact,语义见彼处)。
|
|
10358
10387
|
*/
|
|
@@ -10364,10 +10393,10 @@ type GovernanceDirective = {
|
|
|
10364
10393
|
verdict: GovernanceVerdict;
|
|
10365
10394
|
};
|
|
10366
10395
|
/**
|
|
10367
|
-
* 生命周期事件(
|
|
10396
|
+
* 生命周期事件(生命周期行 + 屏障计时):
|
|
10368
10397
|
* - 'barrier':查询环每个压缩屏障点恰发一次(baseline 据此推进半开熔断
|
|
10369
10398
|
* 计时 noteBarrier,并失效同屏障 microcompact 复用缓存);
|
|
10370
|
-
* - setModel/preloadHistory/resetHistory/switchScheme
|
|
10399
|
+
* - setModel/preloadHistory/resetHistory/switchScheme:生命周期
|
|
10371
10400
|
* 事件表词表预留——现行装配层对这四径一律整实例重建 manager 与会话,
|
|
10372
10401
|
* 事件不经此面分发;跨会话存续型策略进场时启用。
|
|
10373
10402
|
*/
|
|
@@ -10388,9 +10417,9 @@ interface GovernanceTouchedFileEntry {
|
|
|
10388
10417
|
paths: readonly string[];
|
|
10389
10418
|
}
|
|
10390
10419
|
/**
|
|
10391
|
-
* 工具结果落地视图(
|
|
10392
|
-
* 进消息序列前(
|
|
10393
|
-
* touchedFiles
|
|
10420
|
+
* 工具结果落地视图(「工具结果落地」点位):一批 tool_result 回填
|
|
10421
|
+
* 进消息序列前(已过预算收束的入史形态)。baseline 消费
|
|
10422
|
+
* touchedFiles 维护文件触达台账;results 供未来工具结果治理类
|
|
10394
10423
|
* 机制观察,当前无消费方。
|
|
10395
10424
|
*/
|
|
10396
10425
|
interface GovernanceToolResultView {
|
|
@@ -10401,7 +10430,7 @@ interface GovernanceToolResultView {
|
|
|
10401
10430
|
interface GovernanceExecuteContext {
|
|
10402
10431
|
view: ContextView;
|
|
10403
10432
|
signal?: AbortSignal;
|
|
10404
|
-
/**
|
|
10433
|
+
/** 终帧已报的摘要费用;查询取消可先于 execute 返回,不得丢弃已知用量。 */
|
|
10405
10434
|
onUsage?: (usage: IRUsage) => void;
|
|
10406
10435
|
}
|
|
10407
10436
|
/**
|
|
@@ -10412,7 +10441,7 @@ interface GovernanceExecuteContext {
|
|
|
10412
10441
|
* 2. assess(snapshot) 第一问;
|
|
10413
10442
|
* 3. 得 microcompact 指令 → execute → 应用器落地 → assess **复问一次**
|
|
10414
10443
|
* (每屏障至多一次 microcompact;复问不得再产 microcompact——baseline
|
|
10415
|
-
* 以同屏障复用 measurementAfter
|
|
10444
|
+
* 以同屏障复用 measurementAfter 实现);
|
|
10416
10445
|
* 4. 得 compact 指令 → PreCompact hook(查询环)→ execute → 应用器落地
|
|
10417
10446
|
* → 事件/悬诺/PostCompact hook → verdict 消费;
|
|
10418
10447
|
* 5. 得 block 指令 → 查询环 fail-fast。
|
|
@@ -10427,10 +10456,10 @@ interface GovernanceSession {
|
|
|
10427
10456
|
/** 执行指令产出变换(只接受 microcompact/compact 指令) */
|
|
10428
10457
|
execute(directive: GovernanceDirective, context: GovernanceExecuteContext): Promise<GovernanceTransform>;
|
|
10429
10458
|
/**
|
|
10430
|
-
*
|
|
10459
|
+
* 本屏障内对**当前历史形态**的最近一次水位评估(可选)。
|
|
10431
10460
|
* 查询环输出预算钳制点(IR 构造前)复用其 measurement 计算窗口余量,
|
|
10432
|
-
* 避免同屏障多余的全量估算遍(
|
|
10433
|
-
*
|
|
10461
|
+
* 避免同屏障多余的全量估算遍(三遍结构锁的口径延伸)与
|
|
10462
|
+
* 校准配对基线被重复刷新。
|
|
10434
10463
|
* 契约:返回的评估必须对应 assess/execute 协议走完后的消息数组现状
|
|
10435
10464
|
* (microcompact 后 = measurementAfter 口径;compact 成功后 = 压缩后
|
|
10436
10465
|
* measurementAfter 口径);无该屏障评估(manual/reactive 语境零测量、
|
|
@@ -10674,24 +10703,25 @@ declare function renderOpenMetrics(input: MetricsRegistry | MetricsSnapshot | re
|
|
|
10674
10703
|
declare const OPENMETRICS_CONTENT_TYPE = "application/openmetrics-text; version=1.0.0; charset=utf-8";
|
|
10675
10704
|
|
|
10676
10705
|
/**
|
|
10677
|
-
*
|
|
10706
|
+
* 查询环显式状态机(显式状态 + while(true),非递归)。
|
|
10678
10707
|
*
|
|
10679
10708
|
* 七态语义:
|
|
10680
10709
|
* - idle: runQuery 已创建、事件流尚未开始消费;
|
|
10681
10710
|
* - assembling: 组装下一次模型请求(唯一注入屏障点:排队输入与上一轮
|
|
10682
|
-
* tool_result
|
|
10711
|
+
* tool_result 都只在进入本态时消费);
|
|
10683
10712
|
* - streaming: 模型流式调用进行中;
|
|
10684
10713
|
* - awaiting_permission:工具执行被权限询问挂起(由 ToolExecutor 信号驱动,
|
|
10685
|
-
* permission
|
|
10714
|
+
* permission 决策本身是调度器/权限引擎的职责);
|
|
10686
10715
|
* - executing_tools: 工具批执行中;
|
|
10687
|
-
* - compacting: 上下文压缩(
|
|
10716
|
+
* - compacting: 上下文压缩(轮间屏障点的阈值自动触发/
|
|
10688
10717
|
* compactNow 手动/真溢出 reactive 三路都经本态);
|
|
10689
10718
|
* - terminated: 终态,任何再迁移都是编程错误。
|
|
10690
10719
|
*/
|
|
10691
10720
|
declare const KERNEL_STATES: readonly ["idle", "assembling", "streaming", "awaiting_permission", "executing_tools", "compacting", "terminated"];
|
|
10721
|
+
/** 查询环状态机的状态取值(KERNEL_STATES 成员)。 */
|
|
10692
10722
|
type KernelState = (typeof KERNEL_STATES)[number];
|
|
10693
10723
|
|
|
10694
|
-
/**
|
|
10724
|
+
/** 预约式输入目标:绑定当前句柄;session/租户/historyEpoch 由宿主校验。 */
|
|
10695
10725
|
interface QueryInputTarget {
|
|
10696
10726
|
readonly turnId: string;
|
|
10697
10727
|
}
|
|
@@ -10718,7 +10748,7 @@ interface QueryInputReservation {
|
|
|
10718
10748
|
commit(): QueryInputReceipt;
|
|
10719
10749
|
/** 只取消尚未 commit 的 reservation;已接纳输入由本轮正常消费/终止裁定。 */
|
|
10720
10750
|
cancel(): QueryInputReceipt;
|
|
10721
|
-
/** consumed/closed/cancelled
|
|
10751
|
+
/** consumed/closed/cancelled 的最终凭据;不是整个查询的真实资源完成屏障。 */
|
|
10722
10752
|
readonly completion: Promise<QueryInputReceipt>;
|
|
10723
10753
|
}
|
|
10724
10754
|
type QueryInputReservationResult = {
|
|
@@ -10737,11 +10767,11 @@ type QueryInputReservationResult = {
|
|
|
10737
10767
|
};
|
|
10738
10768
|
|
|
10739
10769
|
/**
|
|
10740
|
-
*
|
|
10770
|
+
* 查询环对外类型:runQuery 选项/句柄、四计数、ToolExecutor 执行缝。
|
|
10741
10771
|
*
|
|
10742
|
-
*
|
|
10772
|
+
* 设计原则:client 与 executor 都是注入接口——查询环只负责
|
|
10743
10773
|
* "收集 tool_call 块 → 交给 executor → 拿回 tool_result 回填下一轮 messages";
|
|
10744
|
-
* 权限、并发、实际执行全部是 executor(
|
|
10774
|
+
* 权限、并发、实际执行全部是 executor(调度器)的职责。
|
|
10745
10775
|
*/
|
|
10746
10776
|
|
|
10747
10777
|
/** tool_result 块的窄化别名(executor 回填结果的元素类型) */
|
|
@@ -10766,7 +10796,7 @@ interface ProposedToolCall {
|
|
|
10766
10796
|
}
|
|
10767
10797
|
/** 执行器上下文:查询环传给 executor 的最小集合 */
|
|
10768
10798
|
interface ToolExecutionContext {
|
|
10769
|
-
/**
|
|
10799
|
+
/** 子查询实际收尾结算;先登记占位,业务事件结束后再兑现。不会等待在逻辑工具结果中。 */
|
|
10770
10800
|
registerResource?: (work: Promise<ResourceSettlementResult>) => void;
|
|
10771
10801
|
/** 工具/调度真实Promise;硬超时仅结束业务观察,不能摘除尚在飞的底层操作。 */
|
|
10772
10802
|
registerOperation?: (work: Promise<unknown>) => void;
|
|
@@ -10777,7 +10807,7 @@ interface ToolExecutionContext {
|
|
|
10777
10807
|
/** 当前工具轮次(1 起) */
|
|
10778
10808
|
toolRound: number;
|
|
10779
10809
|
/**
|
|
10780
|
-
* 当前查询消息的快照 getter
|
|
10810
|
+
* 当前查询消息的快照 getter:调用刻浅拷贝
|
|
10781
10811
|
* ——元素(IRMessage)不可变引用,数组本体与查询环解耦,后续轮次的
|
|
10782
10812
|
* push 不进快照。Task 工具在派生时点经 ToolContext 冻结「父上下文快照」
|
|
10783
10813
|
* 作裁决语境;嵌套派生天然各级自取(子查询环自己的消息)。可选——
|
|
@@ -10801,7 +10831,7 @@ type ToolExecutorYield = {
|
|
|
10801
10831
|
state: 'awaiting_permission' | 'executing_tools';
|
|
10802
10832
|
};
|
|
10803
10833
|
/**
|
|
10804
|
-
* 单次成功调用的文件触达清单(
|
|
10834
|
+
* 单次成功调用的文件触达清单(调度器按 Tool.touchedPathsOf /
|
|
10805
10835
|
* mutatedPathsOf 声明位采集,仅对非 isError 结果产出)。
|
|
10806
10836
|
*/
|
|
10807
10837
|
interface TouchedFileEntry {
|
|
@@ -10820,14 +10850,14 @@ interface ToolExecutionOutcome {
|
|
|
10820
10850
|
/** 执行器因 signal 主动提前收尾(查询环据此以 aborted_tools 终止) */
|
|
10821
10851
|
aborted?: boolean;
|
|
10822
10852
|
/**
|
|
10823
|
-
*
|
|
10853
|
+
* 本批**成功**调用的文件触达清单(查询环压缩后文件重建的台账
|
|
10824
10854
|
* 数据源)。可选能力位——第三方最小实现可缺省,查询环按台账为空处理
|
|
10825
10855
|
* (重建功能静默无候选,行为不变)。
|
|
10826
10856
|
*/
|
|
10827
10857
|
touchedFiles?: readonly TouchedFileEntry[];
|
|
10828
10858
|
}
|
|
10829
10859
|
/**
|
|
10830
|
-
* 工具执行缝(
|
|
10860
|
+
* 工具执行缝(调度器落地本接口;另有测试用 SequentialToolExecutor)。
|
|
10831
10861
|
* 契约:execute 对一批 calls 负责到底——permission 询问、并发调度、超时、
|
|
10832
10862
|
* discard 都在实现内;查询环只消费 yield 的事件/状态信号并等待最终 outcome。
|
|
10833
10863
|
*/
|
|
@@ -10835,7 +10865,7 @@ interface ToolExecutor {
|
|
|
10835
10865
|
execute(calls: ProposedToolCall[], ctx: ToolExecutionContext): AsyncGenerator<ToolExecutorYield, ToolExecutionOutcome, undefined>;
|
|
10836
10866
|
}
|
|
10837
10867
|
/**
|
|
10838
|
-
*
|
|
10868
|
+
* 查询环压缩接线选项(RunQueryOptions.compaction;提供即启用)。
|
|
10839
10869
|
*
|
|
10840
10870
|
* 两种注入形态:
|
|
10841
10871
|
* - `manager`:装配层持有的跨轮 ContextManager(账本锚点/附件签名/熔断计数
|
|
@@ -10868,7 +10898,7 @@ interface QueryCompactionOptions {
|
|
|
10868
10898
|
model?: ResolvedModel;
|
|
10869
10899
|
/**
|
|
10870
10900
|
* 自建路径:token 估算器注入缝。
|
|
10871
|
-
*
|
|
10901
|
+
* 例外注记:压缩后文件重建的预算估算(run-query 注入点)也消费
|
|
10872
10902
|
* 本字段,且**不受**「manager 在场忽略自建字段」通则约束——manager 内部
|
|
10873
10903
|
* 估算器为私有不可达,重建预算独立取本字段(缺省回退默认估算器);两者
|
|
10874
10904
|
* 口径偏差由 H2 帽(min(20K, 压缩回收量-1))兜底,方向安全。
|
|
@@ -10876,7 +10906,7 @@ interface QueryCompactionOptions {
|
|
|
10876
10906
|
estimator?: TokenEstimator;
|
|
10877
10907
|
/** 自建路径:保留最近 N 轮(round 粒度;单 round 超长时退化为折叠单元粒度);默认 2 */
|
|
10878
10908
|
keepRecentRounds?: number;
|
|
10879
|
-
/** 自建路径:首条用户消息(任务锚点)恒保留;默认 true
|
|
10909
|
+
/** 自建路径:首条用户消息(任务锚点)恒保留;默认 true */
|
|
10880
10910
|
keepFirstUserMessage?: boolean;
|
|
10881
10911
|
/** 自建路径:摘要指令模板/前导句注入缝 */
|
|
10882
10912
|
instructionTemplate?: string;
|
|
@@ -10887,22 +10917,22 @@ interface QueryCompactionOptions {
|
|
|
10887
10917
|
*/
|
|
10888
10918
|
auto?: boolean;
|
|
10889
10919
|
/**
|
|
10890
|
-
*
|
|
10891
|
-
* cli
|
|
10920
|
+
* 装配层注入的当前压缩模型 maxOutput 上限(来源 =
|
|
10921
|
+
* cli 侧静态侧表,官方值带出处)。
|
|
10892
10922
|
* 压缩输出预算 = min(maxOutputTokens ?? 20_000, thresholds.compactOutputBudget);
|
|
10893
|
-
* 不得再与会话 options.maxTokens 钳制(
|
|
10923
|
+
* 不得再与会话 options.maxTokens 钳制(否则摘要会被静默截断)。
|
|
10894
10924
|
*/
|
|
10895
10925
|
maxOutputTokens?: number;
|
|
10896
10926
|
/**
|
|
10897
|
-
*
|
|
10927
|
+
* 上下文治理只读观测缝(压缩生命周期 + microcompact 应用 +
|
|
10898
10928
|
* 入史 clamp 计数)。kernel 公共 API(非 protocol);装配层消费写
|
|
10899
|
-
* context-events.jsonl
|
|
10929
|
+
* context-events.jsonl。签发权分布见 CompactionObserver 注释
|
|
10900
10930
|
* (成功结局经统一应用器;失败/no-op 在 manager 返回面)。回调异常不得
|
|
10901
10931
|
* 影响压缩主链(fail-open,由消费侧自行捕获)。
|
|
10902
10932
|
*/
|
|
10903
10933
|
observer?: CompactionObserver;
|
|
10904
10934
|
/**
|
|
10905
|
-
*
|
|
10935
|
+
* 压缩前钩子(「compactNow 把选项传下」的注入面;装配层
|
|
10906
10936
|
* 落 pre_compaction 快照)。查询环在压缩屏障点组装为 CompactRequest.
|
|
10907
10937
|
* beforeCompact(经 GovernanceDirective 输入面,与 instructions 同位)交
|
|
10908
10938
|
* manager 调用;compactNow({ checkpoint }) 的选项经 context.checkpoint 抵达
|
|
@@ -10914,7 +10944,7 @@ interface QueryCompactionOptions {
|
|
|
10914
10944
|
*/
|
|
10915
10945
|
beforeCompact?: QueryBeforeCompactHook;
|
|
10916
10946
|
/**
|
|
10917
|
-
*
|
|
10947
|
+
* 压缩后文件重建的读文件闭包(kernel 零文件 IO,
|
|
10918
10948
|
* 装配层注入,与 toolResultBudget.persist 先例同构)。在场时查询环维护
|
|
10919
10949
|
* Read/Edit/Write 触达台账,压缩成功后把最近触达 top-3 文件以合成 tool
|
|
10920
10950
|
* 对 + `<system-reminder>` 注入摘要之后、保留尾段之前(预算:单文件 5K /
|
|
@@ -10922,20 +10952,20 @@ interface QueryCompactionOptions {
|
|
|
10922
10952
|
* 缺席 = 功能静默关闭(不记台账、不注入),行为与现状逐字节一致。
|
|
10923
10953
|
* 注意:本字段由查询环消费(非 manager 构造集)——`manager` 注入形态下
|
|
10924
10954
|
* 与自建形态同样生效,不受「manager 在场忽略自建字段」语义约束。
|
|
10925
|
-
*
|
|
10955
|
+
* 本闭包由内置 baseline 治理会话消费(台账与注入随策略),
|
|
10926
10956
|
* 注入语义与生命周期不变。
|
|
10927
10957
|
*/
|
|
10928
10958
|
restoreFileReader?: RestoreFileReader;
|
|
10929
10959
|
/**
|
|
10930
|
-
*
|
|
10960
|
+
* 自建路径的压缩 round 模型调用超时(ms)。映射为
|
|
10931
10961
|
* manager 构造级 timeoutMs(取值链:CompactRequest 请求级 > 本构造级 >
|
|
10932
|
-
* kernel 90s 缺省)——装配层方案 manager
|
|
10962
|
+
* kernel 90s 缺省)——装配层方案 manager 级参数自此不再需要
|
|
10933
10963
|
* compact 包装缝。quirk 下限换算(max(90s, minTimeoutMs))仍是装配层
|
|
10934
10964
|
* 注入前的责任。`manager` 注入形态下忽略(与其余自建字段同语义)。
|
|
10935
10965
|
*/
|
|
10936
10966
|
timeoutMs?: number;
|
|
10937
10967
|
/**
|
|
10938
|
-
*
|
|
10968
|
+
* 自建路径的转录回查路径提示(字符串或求值闭包;
|
|
10939
10969
|
* 语义见 ContextManagerCompactionOptions.transcriptHint)。映射为 manager
|
|
10940
10970
|
* 构造级配置(请求级覆盖仍胜出)。`manager` 注入形态下忽略。
|
|
10941
10971
|
*/
|
|
@@ -10965,11 +10995,11 @@ interface QueryCompactionOptions {
|
|
|
10965
10995
|
* Codex compact_model_reasoning_effort 同哲学——降配不换模);缺席/
|
|
10966
10996
|
* 'inherit' = 继承主请求 thinking(现状零漂移)。门判在查询环
|
|
10967
10997
|
* governance 组装点(run-query):'off' 的落线形态取决于下方
|
|
10968
|
-
* thinkingOffSupported
|
|
10998
|
+
* thinkingOffSupported 能力位。
|
|
10969
10999
|
*/
|
|
10970
11000
|
thinkingMode?: 'inherit' | 'off';
|
|
10971
11001
|
/**
|
|
10972
|
-
*
|
|
11002
|
+
* 压缩模型「思考可关」实证能力位(装配层随 maxOutputTokens
|
|
10973
11003
|
* 同通道穿入:压缩模型解析后 capability.reasoning===true 且
|
|
10974
11004
|
* thinkingOptional===true 的白名单实证,RFC-M3 B2 词表)。消费点 =
|
|
10975
11005
|
* thinkingMode='off' 的落线分派:
|
|
@@ -11026,7 +11056,7 @@ interface QueryCompactionOptions {
|
|
|
11026
11056
|
* P-CTX4 K16:估算-校准闭环门(doc/34 §3.4 机制 5;方案参数
|
|
11027
11057
|
* bucketedCalibration/confidenceMarginRatio 经策略展开落此位)。映射为
|
|
11028
11058
|
* manager 构造级配置(语义见 ContextManagerCompactionOptions.
|
|
11029
|
-
* bucketedCalibration)。缺席 = 关(
|
|
11059
|
+
* bucketedCalibration)。缺席 = 关(单标量校准语义零漂移);`manager`
|
|
11030
11060
|
* 注入形态下忽略(校准配置随外部 manager 构造)。
|
|
11031
11061
|
*/
|
|
11032
11062
|
bucketedCalibration?: {
|
|
@@ -11043,15 +11073,15 @@ interface QueryCompactionOptions {
|
|
|
11043
11073
|
enabled: boolean;
|
|
11044
11074
|
};
|
|
11045
11075
|
/**
|
|
11046
|
-
*
|
|
11076
|
+
* 治理策略会话注入缝(@experimental)。缺省 = 内置 baseline
|
|
11047
11077
|
* 策略包装本查询解析出的 ContextManager(行为与策略化前逐字节一致)。
|
|
11048
|
-
*
|
|
11078
|
+
* 注入时查询环五点位改经注入会话,ContextManager 仍作
|
|
11049
11079
|
* 账本/测量引擎由查询环持有(recordUsage/compactNow 守卫不变)。
|
|
11050
11080
|
* 注入面限装配层(围栏 3);会话生命周期由注入方管理。
|
|
11051
11081
|
*/
|
|
11052
11082
|
session?: GovernanceSession;
|
|
11053
11083
|
/**
|
|
11054
|
-
*
|
|
11084
|
+
* 自建路径的附件注册表参数(TTL 轮数/session 字节
|
|
11055
11085
|
* 预算)。附件三态裁决(注入/引用化/预算拒绝)的调用方:TUI @file 引用
|
|
11056
11086
|
* (装配层 session-driver)与查询环诊断类元注入(reminder 径)。
|
|
11057
11087
|
* `manager` 注入形态下忽略(与其余自建字段同语义——注册表随 manager
|
|
@@ -11107,7 +11137,7 @@ type CompactNowRejectReason =
|
|
|
11107
11137
|
*/
|
|
11108
11138
|
| 'empty_history'
|
|
11109
11139
|
/**
|
|
11110
|
-
*
|
|
11140
|
+
* PreCompact hook 阻断本次压缩(exit 2 / decision=deny|block)。
|
|
11111
11141
|
* 显式协议行为而非故障——hook 作者对压缩行使否决权,历史未改动。
|
|
11112
11142
|
*/
|
|
11113
11143
|
| 'hook_blocked';
|
|
@@ -11377,7 +11407,7 @@ interface QueryCounters {
|
|
|
11377
11407
|
toolRounds: number;
|
|
11378
11408
|
/** 连续可恢复错误数(任何一次成功流式响应清零) */
|
|
11379
11409
|
consecutiveErrors: number;
|
|
11380
|
-
/** 注入屏障已消费的旧 enqueue 输入条数;strict input
|
|
11410
|
+
/** 注入屏障已消费的旧 enqueue 输入条数;strict input 按凭据独立核对,避免宿主 slice 错位。 */
|
|
11381
11411
|
queueInjections: number;
|
|
11382
11412
|
/**
|
|
11383
11413
|
* CW11-W3(doc/58 W3 #7)— 触帽升档重试次数(遥测:每次废弃截断响应并
|
|
@@ -11573,7 +11603,7 @@ interface QueryHandle {
|
|
|
11573
11603
|
/** 事件流:protocol 完整事件(包络+负载),seq 单调 */
|
|
11574
11604
|
events: AsyncGenerator<KernelEvent, void, undefined>;
|
|
11575
11605
|
/**
|
|
11576
|
-
*
|
|
11606
|
+
* 等待已经启动的查询及模型/工具生成器真实收尾,不消费事件、不中止。
|
|
11577
11607
|
* 终态事件仅代表逻辑结束;timeout/cancelled保留实际在飞工作,可再次等待。
|
|
11578
11608
|
* runQuery恒提供;第三方旧句柄可缺席,此时调用方只能证明其既有迭代器合同。
|
|
11579
11609
|
*/
|
|
@@ -11583,7 +11613,7 @@ interface QueryHandle {
|
|
|
11583
11613
|
* 的屏障点消费;终态后调用为无害空操作(运行时竞态,非编程错误)。
|
|
11584
11614
|
*/
|
|
11585
11615
|
enqueueUserInput(text: string): void;
|
|
11586
|
-
/**
|
|
11616
|
+
/** 预约式输入(加法能力);旧句柄可缺席。目标为本轮,不隐式创建后续轮。 */
|
|
11587
11617
|
reserveUserInput?(input: QueryInputSubmission): QueryInputReservationResult;
|
|
11588
11618
|
inputReceipts?(): readonly QueryInputReceipt[];
|
|
11589
11619
|
inputTarget?(): QueryInputTarget & {
|
|
@@ -11608,7 +11638,7 @@ interface QueryHandle {
|
|
|
11608
11638
|
*/
|
|
11609
11639
|
messages(): IRMessage[];
|
|
11610
11640
|
/**
|
|
11611
|
-
* 手动压缩(/compact
|
|
11641
|
+
* 手动压缩(/compact 接线语义):请求排队到下一个轮间屏障点执行
|
|
11612
11642
|
* (运行中轮不可就地压缩——流式/工具期间历史正在生长,折叠边界无从落定),
|
|
11613
11643
|
* 返回的 promise 在屏障点执行后兑现;并发调用合流到同一次执行。
|
|
11614
11644
|
* 未接压缩缝立即拒绝 not_configured;已终态(或排队后直到终态未再经过
|
|
@@ -11623,10 +11653,10 @@ interface QueryHandle {
|
|
|
11623
11653
|
}
|
|
11624
11654
|
|
|
11625
11655
|
/**
|
|
11626
|
-
*
|
|
11656
|
+
* 权限缝最小接口。
|
|
11627
11657
|
*
|
|
11628
|
-
*
|
|
11629
|
-
*
|
|
11658
|
+
* 权限引擎与调度器分层开发,本目录不得 import permissions/;这里只定义调度器
|
|
11659
|
+
* 需要的最小决策接口,集成适配由装配层完成。语义:
|
|
11630
11660
|
* - decide 返回 allow → 直接执行;deny → 签发 tool.permission.decided 并产出
|
|
11631
11661
|
* isError tool_result;ask → 经 awaiting_permission 状态往返询问 askUser;
|
|
11632
11662
|
* - 未注入 askUser 时 ask 降级为 deny(headless 场景,source 记为 'policy');
|
|
@@ -11642,23 +11672,23 @@ interface GateDecision {
|
|
|
11642
11672
|
decision: PermissionDecision;
|
|
11643
11673
|
source: DecisionSource;
|
|
11644
11674
|
/**
|
|
11645
|
-
* 命中的规则原文(contract-v0.2
|
|
11675
|
+
* 命中的规则原文(contract-v0.2):引擎侧
|
|
11646
11676
|
* PermissionDecisionResult.matchedRule 的透传位,调度器原样落进
|
|
11647
11677
|
* tool.permission.decided 事件体;无规则命中(模式短路/兜底 ask)时缺省。
|
|
11648
11678
|
*/
|
|
11649
11679
|
matchedRule?: string;
|
|
11650
11680
|
/**
|
|
11651
|
-
* 入参替换(
|
|
11681
|
+
* 入参替换(PreToolUse hooks 的 updatedInput):
|
|
11652
11682
|
* 存在时调度器以此覆盖 call.args 执行(询问对话框同样展示替换后入参,
|
|
11653
11683
|
* 用户看到的即将执行的真实参数)。仅门面(L4 装配)可产出;引擎侧无此位。
|
|
11654
11684
|
*/
|
|
11655
11685
|
updatedArgs?: Record<string, unknown>;
|
|
11656
11686
|
/**
|
|
11657
11687
|
* 裁决理由(自由文本;恒不进 tool.permission.decided 事件,契约零改动)。
|
|
11658
|
-
* - **deny**(
|
|
11688
|
+
* - **deny**(deny-and-continue;source='classifier' 的收紧、hook 收紧、
|
|
11659
11689
|
* hard-safety 等):调度器把理由并入 isError tool_result 文本回喂模型——
|
|
11660
11690
|
* 模型据此调整路线继续本轮;
|
|
11661
|
-
* - **ask**(
|
|
11691
|
+
* - **ask**(姿态 rejectEffect='ask';source='classifier'):裁决人
|
|
11662
11692
|
* 判为危险但升到询问面——调度器把本决策整体作 askUser 第三参
|
|
11663
11693
|
* `decision` 透传,询问面据 `reason` 呈现「裁决人判为危险:…」供用户
|
|
11664
11694
|
* 终审;该 ask 终局为 deny(用户拒 / 无询问通道地板)时理由同样进
|
|
@@ -11668,20 +11698,20 @@ interface GateDecision {
|
|
|
11668
11698
|
*/
|
|
11669
11699
|
reason?: string;
|
|
11670
11700
|
/**
|
|
11671
|
-
* 命中规则所在层(
|
|
11701
|
+
* 命中规则所在层(归因;仅规则命中携带)。字面量联合与 kernel
|
|
11672
11702
|
* permissions/types.ts 的 RuleLayerName 逐字对齐——本目录不 import
|
|
11673
|
-
* permissions/(
|
|
11703
|
+
* permissions/(分层铁律),结构兼容由装配层保证。询问面据此
|
|
11674
11704
|
* 显示项目来源(仓库 deny/ask 即时生效,但用户须看见是谁在约束)。
|
|
11675
11705
|
*/
|
|
11676
11706
|
sourceLayer?: 'policy' | 'projectLocal' | 'projectShared' | 'user';
|
|
11677
11707
|
/**
|
|
11678
|
-
*
|
|
11708
|
+
* 派生裁决链语境:子代理 ask 经父裁决后
|
|
11679
11709
|
* endorse/escalate 上升到用户终审时,执行器把逐级裁决留痕挂在此位——
|
|
11680
11710
|
* 终审弹卡呈现完整责任链(「父 X 为子 Y 的操作 Z 担保,理由 W,责任人
|
|
11681
11711
|
* X」)。仅裁决链路径携带;主代理直接询问恒缺省。
|
|
11682
11712
|
*/
|
|
11683
11713
|
adjudication?: {
|
|
11684
|
-
/** 逐级裁决条目(
|
|
11714
|
+
/** 逐级裁决条目(单层派生恒一级;递归派生为多级) */
|
|
11685
11715
|
chain: readonly AdjudicationChainEntry[];
|
|
11686
11716
|
/** true = 父担保上报(endorse);false = 父不能决上升(escalate) */
|
|
11687
11717
|
endorsed: boolean;
|
|
@@ -11691,7 +11721,7 @@ interface GateDecision {
|
|
|
11691
11721
|
childDescription: string;
|
|
11692
11722
|
};
|
|
11693
11723
|
/**
|
|
11694
|
-
* 分类器裁决意见段(
|
|
11724
|
+
* 分类器裁决意见段(审计词表归一):引擎**真实模型
|
|
11695
11725
|
* 咨询**归一意见后经装配层网关透传至此(结构与 kernel permissions/
|
|
11696
11726
|
* types.ts 的 PermissionAdjudicationEntry 同构——本目录不 import
|
|
11697
11727
|
* permissions/,结构兼容由装配层保证,sourceLayer 同例)。执行器把本段
|
|
@@ -11704,24 +11734,24 @@ interface GateDecision {
|
|
|
11704
11734
|
* 询问回调:表面层(TUI/headless 编排)注入;resolve 为用户的最终选择。
|
|
11705
11735
|
* signal:调用方(调度器)的中断信号——回合 Esc/中止时表面层据此撤回
|
|
11706
11736
|
* 询问对话框(不撤回则残留幽灵对话框,堵塞后续对话框队列)。
|
|
11707
|
-
* decision:触发本次询问的门面决策(
|
|
11708
|
-
* 供对话框呈现「哪条规则、来自哪层」;
|
|
11737
|
+
* decision:触发本次询问的门面决策(归因展示;matchedRule/sourceLayer
|
|
11738
|
+
* 供对话框呈现「哪条规则、来自哪层」;'ask' 姿态下 source='classifier' +
|
|
11709
11739
|
* reason 供呈现「裁决人判为危险:…」)。旧实现忽略第三参数即向后兼容。
|
|
11710
11740
|
*/
|
|
11711
11741
|
type AskUserCallback = (call: ProposedToolCall, signal?: AbortSignal, decision?: GateDecision) => Promise<'allow' | 'deny'>;
|
|
11712
11742
|
|
|
11713
11743
|
/**
|
|
11714
|
-
*
|
|
11744
|
+
* 裁决路由器(AskRouter):ask 终局出口的单一路由策略。
|
|
11715
11745
|
*
|
|
11716
|
-
*
|
|
11746
|
+
* 背景:权限引擎产出 ask 终局后,出路
|
|
11717
11747
|
* 此前散落三处——主代理经 askUser 弹卡(TUI/K11 远程审批同为 askUser 的
|
|
11718
11748
|
* 装配变体)、子代理无通道降 deny、headless 无通道降 deny。本文件把
|
|
11719
11749
|
* 「往哪去」收敛为一个纯函数,调度器按目标执行:
|
|
11720
|
-
* - `parent-adjudication`:派生裁决链(
|
|
11750
|
+
* - `parent-adjudication`:派生裁决链(子代理执行器专属)——ask
|
|
11721
11751
|
* 先由「派生时点上下文中的父代理」裁决(reject/endorse/escalate);
|
|
11722
11752
|
* - `user-dialog`:本级询问通道(askUser 回调:TUI 弹卡 / K11 挑战投递 /
|
|
11723
11753
|
* ACP requestPermission);
|
|
11724
|
-
* - `floor-deny`:fail-closed
|
|
11754
|
+
* - `floor-deny`:fail-closed 地板——链的尽头无人时恒 deny,
|
|
11725
11755
|
* 永不 fail-open。
|
|
11726
11756
|
*
|
|
11727
11757
|
* 优先序即安全序:裁决器在场必先走链(链顶仍可能是 user-dialog 或地板);
|
|
@@ -11809,7 +11839,7 @@ interface MemoryWriteContext {
|
|
|
11809
11839
|
}
|
|
11810
11840
|
|
|
11811
11841
|
/**
|
|
11812
|
-
*
|
|
11842
|
+
* grep 轮次聚合埋点(一期统计 agent 单任务 grep
|
|
11813
11843
|
* 轮次,为二期「语义索引开启信号」提供数据支撑——开启信号词表:仓库
|
|
11814
11844
|
* >1000 文件 / 跨仓检索 / 概念性查询占比高 / grep 往返超阈值)。
|
|
11815
11845
|
*
|
|
@@ -11869,15 +11899,15 @@ declare class GrepRoundAggregator {
|
|
|
11869
11899
|
|
|
11870
11900
|
/**
|
|
11871
11901
|
* 工具运行时契约(kernel 内部,预先冻结供并行任务面向接口编程)。
|
|
11872
|
-
*
|
|
11873
|
-
*
|
|
11874
|
-
*
|
|
11902
|
+
* 设计要点:工具只产出结构化数据,渲染由表面层按事件类型注册;
|
|
11903
|
+
* isReadOnly/isConcurrencySafe 强制静态声明,供调度器与
|
|
11904
|
+
* 权限引擎使用,不允许运行期才暴露。
|
|
11875
11905
|
*/
|
|
11876
11906
|
|
|
11877
11907
|
/**
|
|
11878
|
-
*
|
|
11908
|
+
* Read 去重窗口:最近一次成功文本读取的请求与规模快照。
|
|
11879
11909
|
* 同键(offset/limit 归一后)+ mtime 未变的重复读 → 一句桩文本替代全文
|
|
11880
|
-
* 重发(
|
|
11910
|
+
* 重发(CC 实测 18% 的 Read 是重复读)。一次性语义:命中
|
|
11881
11911
|
* 即清除本窗口,紧接着的再次同读放行全文——防「早前结果已被 microcompact
|
|
11882
11912
|
* 淘汰时模型无路取回」死角(桩绝不连发)。
|
|
11883
11913
|
*/
|
|
@@ -11891,11 +11921,11 @@ interface ReadDedupWindow {
|
|
|
11891
11921
|
/** 实际返回的行区间(1 起含端点);未返回任何行时为 null */
|
|
11892
11922
|
returnedRange: [number, number] | null;
|
|
11893
11923
|
}
|
|
11894
|
-
/** Read 工具记录、Edit/Write 校验的跨调用文件状态(mtime
|
|
11924
|
+
/** Read 工具记录、Edit/Write 校验的跨调用文件状态(mtime 失效检测) */
|
|
11895
11925
|
interface FileReadState {
|
|
11896
11926
|
mtimeMs: number;
|
|
11897
11927
|
/**
|
|
11898
|
-
* 读取 / 写入时的内容快照哈希(sha256 hex
|
|
11928
|
+
* 读取 / 写入时的内容快照哈希(sha256 hex;写入点:Read 整读
|
|
11899
11929
|
* 与流式分页全流、Write / Edit 写后皆登记)。Write / Edit 写前在 mtime 律之外
|
|
11900
11930
|
* 再以全文哈希比对——mtime 未变而内容已变亦拒。缺席 = 该登记无全文可计(旧
|
|
11901
11931
|
* 登记 / 图片读),守卫只按 mtime。
|
|
@@ -11904,6 +11934,10 @@ interface FileReadState {
|
|
|
11904
11934
|
/** 最近一次成功文本读取的去重窗口(Write/Edit 登记与图片读取不携带) */
|
|
11905
11935
|
lastRead?: ReadDedupWindow;
|
|
11906
11936
|
}
|
|
11937
|
+
/**
|
|
11938
|
+
* 工具执行上下文:由调度器在每次 execute 前注入——工作目录、取消信号、事件发射口、
|
|
11939
|
+
* 会话级文件读取状态,以及若干可选的注入缝(fs 世界、检索聚合器、裁决语境、记忆写回)。
|
|
11940
|
+
*/
|
|
11907
11941
|
interface ToolContext {
|
|
11908
11942
|
/** Retain a nested query's actual cleanup; this does not delay its business result or cancel it. */
|
|
11909
11943
|
registerResource?: (work: Promise<ResourceSettlementResult>) => void;
|
|
@@ -11914,43 +11948,44 @@ interface ToolContext {
|
|
|
11914
11948
|
/** 会话级共享:path → 读取状态 */
|
|
11915
11949
|
fileReadState: Map<string, FileReadState>;
|
|
11916
11950
|
/**
|
|
11917
|
-
*
|
|
11951
|
+
* 执行世界 fs 缝:工具的一切文件系统副作用经此面(缺省
|
|
11918
11952
|
* defaultFs = node:fs/promises 直通薄壳,行为与直用逐字节一致)。可选——
|
|
11919
11953
|
* 直调/最小执行器缺省时工具以 fsOf(ctx) 落缺省世界;调度器恒注入。
|
|
11920
11954
|
* 权限判定不经此面(gate.decide 恒先于工具 execute,红线 3)。
|
|
11921
11955
|
*/
|
|
11922
11956
|
fs?: FsLike;
|
|
11923
11957
|
/**
|
|
11924
|
-
* 本次调用的 toolCallId(contract-v0.1 增补)
|
|
11958
|
+
* 本次调用的 toolCallId(contract-v0.1 增补):由调度器注入,
|
|
11925
11959
|
* 工具据此构造 tool.progress / tool.output.delta 负载。可选——直调场景可缺省。
|
|
11926
11960
|
*/
|
|
11927
11961
|
toolCallId?: string;
|
|
11928
11962
|
/**
|
|
11929
|
-
*
|
|
11963
|
+
* 检索轮次聚合器:调度器会话级注入,Grep 工具
|
|
11930
11964
|
* 逐调用记样本;可选——直调场景可缺省,埋点静默不记。
|
|
11931
11965
|
*/
|
|
11932
11966
|
searchAggregator?: GrepRoundAggregator;
|
|
11933
11967
|
/**
|
|
11934
|
-
* 当前查询消息的快照 getter
|
|
11968
|
+
* 当前查询消息的快照 getter:调度器从 ToolExecutionContext
|
|
11935
11969
|
* 透传;Task 工具在派生时点调用一次,冻结「父上下文快照」作派生裁决链
|
|
11936
|
-
*
|
|
11970
|
+
* 的裁决语境。可选——直调/最小执行器缺省时
|
|
11937
11971
|
* 裁决链静默不可用(escalate 语义不受影响,只是无从起裁决查询)。
|
|
11938
11972
|
*/
|
|
11939
11973
|
transcript?: () => readonly IRMessage[];
|
|
11940
11974
|
/**
|
|
11941
|
-
* 本执行器的裁决人链(
|
|
11975
|
+
* 本执行器的裁决人链(递归上升):子代理执行器在场时
|
|
11942
11976
|
* 由调度器注入([直接父, 祖父, …] 由近及远,各级持自己的派生时点快照)。
|
|
11943
11977
|
* Task 工具派生下一级时以 [本级新裁决器, ...本链] 延长——孙的 ask 经
|
|
11944
11978
|
* 子→主逐级上升。主执行器恒缺省(子链即单级)。
|
|
11945
11979
|
*/
|
|
11946
11980
|
adjudicationAncestors?: readonly ParentAdjudicator[];
|
|
11947
11981
|
/**
|
|
11948
|
-
*
|
|
11982
|
+
* 记忆写上下文:门开时调度器自
|
|
11949
11983
|
* 执行器选项透传——Write/Edit 据此触发真实目标含入复核、写前秘密扫描
|
|
11950
11984
|
* 与索引写后体检。缺省 = 门关,工具行为与现状逐字节一致。
|
|
11951
11985
|
*/
|
|
11952
11986
|
memoryWrite?: MemoryWriteContext;
|
|
11953
11987
|
}
|
|
11988
|
+
/** 工具结果的单个内容块:文本,或 base64 编码的图片。 */
|
|
11954
11989
|
type ToolResultContent = {
|
|
11955
11990
|
t: 'text';
|
|
11956
11991
|
text: string;
|
|
@@ -11959,6 +11994,7 @@ type ToolResultContent = {
|
|
|
11959
11994
|
mime: string;
|
|
11960
11995
|
data: string;
|
|
11961
11996
|
};
|
|
11997
|
+
/** 工具执行结果:回给模型的内容块、业务级失败标记与给表面层渲染器的结构化数据。 */
|
|
11962
11998
|
interface ToolResult {
|
|
11963
11999
|
/** 回给模型的内容 */
|
|
11964
12000
|
content: ToolResultContent[];
|
|
@@ -11969,13 +12005,17 @@ interface ToolResult {
|
|
|
11969
12005
|
/** 工具效应词表(应用协议 v1;冻结四值——「批量」是调用属性由参数判,不入表) */
|
|
11970
12006
|
declare const TOOL_EFFECTS: readonly ["irreversible", "financial", "external", "affects-others"];
|
|
11971
12007
|
type ToolEffect = (typeof TOOL_EFFECTS)[number];
|
|
12008
|
+
/**
|
|
12009
|
+
* 工具定义:名称、模型可见描述、zod 参数 schema、只读 / 并发安全等静态声明与 execute 实现。
|
|
12010
|
+
* 工具只产出结构化数据,渲染归表面层;权限判定由调度器在 execute 之前完成。
|
|
12011
|
+
*/
|
|
11972
12012
|
interface Tool<Args = unknown> {
|
|
11973
12013
|
/** 唯一名(进模型 prompt 与权限规则,如 "Read"/"Shell") */
|
|
11974
12014
|
name: string;
|
|
11975
12015
|
/** 模型可见描述(英文) */
|
|
11976
12016
|
description: string;
|
|
11977
12017
|
/**
|
|
11978
|
-
*
|
|
12018
|
+
* 模型可见短态描述(英文;一句话 + 参数签名要点)。可选
|
|
11979
12019
|
* 资产位:装配层分段预算分配器(cli assembly/section-budget.ts)在工具
|
|
11980
12020
|
* 段预算压力下以短态替换 description 进请求;缺席/门关恒用 description
|
|
11981
12021
|
* (请求字节与现状逐字节一致)。执行语义与本字段无关。
|
|
@@ -11986,7 +12026,7 @@ interface Tool<Args = unknown> {
|
|
|
11986
12026
|
/** 只读工具可并发、可在 plan 模式放行(声明即契约,调度器强制) */
|
|
11987
12027
|
isReadOnly: boolean;
|
|
11988
12028
|
/**
|
|
11989
|
-
* 效应声明(应用协议 v1
|
|
12029
|
+
* 效应声明(应用协议 v1):开发者对本工具副作用性质的
|
|
11990
12030
|
* 自述——`irreversible`(不可逆)/ `financial`(资金流动)/ `external`
|
|
11991
12031
|
* (触达外部系统或第三方)/ `affects-others`(影响其他用户或租户)。
|
|
11992
12032
|
* **信号不是闸门**:只进裁决人语境(`<tool>` 段)与遥测标签,不参与任何
|
|
@@ -12031,7 +12071,7 @@ interface Tool<Args = unknown> {
|
|
|
12031
12071
|
*/
|
|
12032
12072
|
mutatedPathsOf?(args: unknown): string[];
|
|
12033
12073
|
/**
|
|
12034
|
-
* 文件读取触达声明位(
|
|
12074
|
+
* 文件读取触达声明位(与 mutatedPathsOf 同构的只读侧):返回
|
|
12035
12075
|
* 本次调用将读取的文件绝对路径集。调度器在调用**成功**后采集(与
|
|
12036
12076
|
* mutatedPathsOf 合并)进 ToolExecutionOutcome.touchedFiles,作查询环
|
|
12037
12077
|
* 压缩后文件重建的触达台账数据源。约定同 mutatedPathsOf:args 畸形或
|
|
@@ -12098,10 +12138,12 @@ declare function runQuery(options: RunQueryOptions): QueryHandle;
|
|
|
12098
12138
|
*/
|
|
12099
12139
|
type SchemeManagerOptions = Pick<QueryCompactionOptions, 'thresholds' | 'keepRecentRounds' | 'keepFirstUserMessage' | 'auto' | 'timeoutMs' | 'thinkingMode' | 'toolResultDecay' | 'endpointAware' | 'cacheAwareRewrite' | 'budgetAwareness' | 'anchorLayer' | 'bucketedCalibration' | 'segmentLookback'>;
|
|
12100
12140
|
|
|
12141
|
+
/** 会话级输入的目标绑定:历史纪元 + 当前轮句柄,二者皆须与宿主现状一致。 */
|
|
12101
12142
|
interface SessionInputTarget {
|
|
12102
12143
|
readonly historyEpoch: string;
|
|
12103
12144
|
readonly turnId: string;
|
|
12104
12145
|
}
|
|
12146
|
+
/** 会话级输入内容:纯文本,或仅含 text 块的块数组(图片等不受理)。 */
|
|
12105
12147
|
type SessionInputContent = {
|
|
12106
12148
|
readonly text: string;
|
|
12107
12149
|
} | {
|
|
@@ -12110,18 +12152,22 @@ type SessionInputContent = {
|
|
|
12110
12152
|
readonly text: string;
|
|
12111
12153
|
}[];
|
|
12112
12154
|
};
|
|
12155
|
+
/** 一次会话级输入提交:幂等 inputId、目标绑定、内容与期望的确认级别。 */
|
|
12113
12156
|
interface SessionInputSubmission {
|
|
12114
12157
|
readonly inputId: string;
|
|
12115
12158
|
readonly target: SessionInputTarget;
|
|
12116
12159
|
readonly content: SessionInputContent;
|
|
12117
12160
|
readonly ack?: 'memory' | 'durable';
|
|
12118
12161
|
}
|
|
12162
|
+
/** 会话级输入凭据:在查询输入凭据之上附会话 id、历史纪元与耐久性级别(仅 memory)。 */
|
|
12119
12163
|
interface SessionInputReceipt extends QueryInputReceipt {
|
|
12120
12164
|
readonly sessionId: string;
|
|
12121
12165
|
readonly historyEpoch: string;
|
|
12122
12166
|
readonly durability: 'memory';
|
|
12123
12167
|
}
|
|
12168
|
+
/** 会话级输入的拒绝码:查询层拒绝码之外增纪元不符、不支持的确认级别 / 内容 / 输入形态。 */
|
|
12124
12169
|
type SessionInputRejectCode = QueryInputRejectCode | 'epoch_mismatch' | 'durable_unsupported' | 'content_unsupported' | 'input_unsupported';
|
|
12170
|
+
/** 会话级输入提交的结果:accepted 携凭据;closed / rejected 携拒绝码。 */
|
|
12125
12171
|
type SessionInputResult = {
|
|
12126
12172
|
readonly outcome: 'accepted';
|
|
12127
12173
|
readonly receipt: SessionInputReceipt;
|
|
@@ -12129,6 +12175,7 @@ type SessionInputResult = {
|
|
|
12129
12175
|
readonly outcome: 'closed' | 'rejected';
|
|
12130
12176
|
readonly code: SessionInputRejectCode;
|
|
12131
12177
|
};
|
|
12178
|
+
/** 会话级输入能力声明:宿主据此得知受理的内容形态、确认级别、凭据保留窗口与当前目标。 */
|
|
12132
12179
|
interface SessionInputCapabilities {
|
|
12133
12180
|
readonly version: 1;
|
|
12134
12181
|
readonly text: boolean;
|
|
@@ -12191,43 +12238,44 @@ interface KernelMetrics {
|
|
|
12191
12238
|
declare function kernelMetricsFor(registry?: MetricsRegistry): KernelMetrics;
|
|
12192
12239
|
|
|
12193
12240
|
/**
|
|
12194
|
-
*
|
|
12241
|
+
* 裁决姿态推导的**唯一**实现。
|
|
12195
12242
|
*
|
|
12196
|
-
* 不变量(
|
|
12243
|
+
* 不变量(「单点收敛」):「裁决人判危险的落地形(rejectEffect)」只有
|
|
12197
12244
|
* 一个推导函数,住 kernel;cli 四入口 / 两会话工厂、sdk 令牌档、serve /v2 平台内置形
|
|
12198
12245
|
* 三形只传**事实**(询问通道在场性、显式覆盖),不再各写字面表。此前三份副本:
|
|
12199
12246
|
* sdk `adjudication/assemble.ts` 与 server `v2/adjudication.ts` 逐字相同的三元式,
|
|
12200
12247
|
* cli 却按「入口表面」查静态表(TUI ask / headless·acp·serve deny)——而 askUser
|
|
12201
12248
|
* 在场性对 serve(/v2 权限桥 / K11 审批)与 acp(requestPermission)是**逐会话**事实,
|
|
12202
|
-
* 静态表把「接了通道的 serve 会话」一律判 deny
|
|
12249
|
+
* 静态表把「接了通道的 serve 会话」一律判 deny。
|
|
12203
12250
|
*
|
|
12204
|
-
* 姿态词表(
|
|
12251
|
+
* 姿态词表(表面属性,不是应用属性):
|
|
12205
12252
|
* - `human-in-loop`(A 人在环):裁决人判危险 → 升到询问面(rejectEffect 'ask',携理由
|
|
12206
12253
|
* 交用户终审;用户拒即 deny;机器恒不代批);
|
|
12207
12254
|
* - `headless`(B 无人环):判危险 → deny(deny-and-continue,理由回喂模型)。
|
|
12208
12255
|
*
|
|
12209
12256
|
* 本文件零 IO、零副作用(只引类型);显式 A × 无通道的 fail-fast 由调用方按各自文案裁
|
|
12210
|
-
* (sdk 既有 invalid_options 文案不变)
|
|
12257
|
+
* (sdk 既有 invalid_options 文案不变),推导函数不抛。另提供
|
|
12211
12258
|
* `modeUnderAdjudicator({ posture, tier })`——裁决人在场时的权限模式的**唯一**推导
|
|
12212
|
-
* (sdk `assembleTooling` / serve `platform-session-factory`
|
|
12259
|
+
* (sdk `assembleTooling` / serve `platform-session-factory` 同源)。
|
|
12213
12260
|
*/
|
|
12214
12261
|
|
|
12215
|
-
/** 裁决姿态词表
|
|
12262
|
+
/** 裁决姿态词表 */
|
|
12216
12263
|
declare const ADJUDICATION_POSTURES: readonly ["human-in-loop", "headless"];
|
|
12264
|
+
/** 裁决姿态:'human-in-loop' 危险判定升到询问面由用户终审;'headless' 危险判定直接 deny 并回喂模型。 */
|
|
12217
12265
|
type AdjudicationPosture = (typeof ADJUDICATION_POSTURES)[number];
|
|
12218
12266
|
|
|
12219
12267
|
/**
|
|
12220
|
-
*
|
|
12268
|
+
* 决策归因记录(INV-8):每个经权限门**终局解决**的工具调用产出
|
|
12221
12269
|
* 一条内部 DecisionRecord——含 allow(此前 allow 无事件不可见,是归因链的
|
|
12222
12270
|
* 主缺口);deny/ask 路径与既有 tool.permission.decided 事件并行产记录,
|
|
12223
|
-
* 事件面零改动(不动 protocol 词表;source
|
|
12271
|
+
* 事件面零改动(不动 protocol 词表;source 细化的事件流版本另走协议评审)。
|
|
12224
12272
|
*
|
|
12225
|
-
* 分层定位:本文件属 dispatch
|
|
12273
|
+
* 分层定位:本文件属 dispatch 目录,遵守分层铁律不 import permissions/;
|
|
12226
12274
|
* 记录携带的是门面(GateDecision)已有信息 + 调用身份 + 目标摘要投影。
|
|
12227
12275
|
* 落盘、脱敏(INV-10)、策略快照标识与模式富化由装配层写入器负责
|
|
12228
12276
|
* (cli/assembly/decision-records.ts)——内核只产结构,不做 IO。
|
|
12229
12277
|
*
|
|
12230
|
-
* 完整率口径(
|
|
12278
|
+
* 完整率口径(「归因完整率」):分母 = 经门判定且**终局解决**
|
|
12231
12279
|
* (allow/deny 落定)的调用;询问期间被中断(Esc/abort)的调用无终局,
|
|
12232
12280
|
* 不产记录、不进分母。gateDecision 与 decision 两字段并存可答「门面初判
|
|
12233
12281
|
* 是什么、最终谁拍板」:如 gateDecision='ask' + decision='allow' +
|
|
@@ -12249,16 +12297,16 @@ interface ToolDecisionRecord {
|
|
|
12249
12297
|
source: DecisionSource;
|
|
12250
12298
|
/** 门面初判(三态;与 decision 并存供归因分辨,见文件头) */
|
|
12251
12299
|
gateDecision: 'allow' | 'deny' | 'ask';
|
|
12252
|
-
/** 命中规则所在真实层(
|
|
12300
|
+
/** 命中规则所在真实层(透传;规则命中才有) */
|
|
12253
12301
|
sourceLayer?: 'policy' | 'projectLocal' | 'projectShared' | 'user';
|
|
12254
12302
|
/** 命中规则原文(含 baseline/protected-path/hard-safety 伪规则) */
|
|
12255
12303
|
matchedRule?: string;
|
|
12256
|
-
/** 分类器/门面理由(
|
|
12304
|
+
/** 分类器/门面理由(deny-and-continue 的 reason 透传) */
|
|
12257
12305
|
reason?: string;
|
|
12258
12306
|
/** 目标摘要(参数投影原文;**未脱敏**,写入器落盘前过 redactDeep) */
|
|
12259
12307
|
targetSummary?: string;
|
|
12260
12308
|
/**
|
|
12261
|
-
* 派生裁决链留痕(
|
|
12309
|
+
* 派生裁决链留痕(INV-D4):子代理 ask 经裁决链时逐级
|
|
12262
12310
|
* {adjudicator, verdict, reason, via, elapsedMs};reason **未脱敏**,
|
|
12263
12311
|
* 写入器落盘前过 redactDeep(同 targetSummary 纪律)。旧记录无此字段,
|
|
12264
12312
|
* 读侧(/explain、doctor)按缺省空态兼容。仅裁决链路径落键。
|
|
@@ -12323,10 +12371,10 @@ interface SessionStoreCoreWarning {
|
|
|
12323
12371
|
}
|
|
12324
12372
|
|
|
12325
12373
|
/**
|
|
12326
|
-
* 会话历史分层存储 · 调用契约(
|
|
12374
|
+
* 会话历史分层存储 · 调用契约(接口先冻)。
|
|
12327
12375
|
*
|
|
12328
12376
|
* 这里只有**运行时接口**;持久化数据契约(段条目 / 清单)在 protocol `storage.ts`
|
|
12329
|
-
* (contract-v0.22
|
|
12377
|
+
* (contract-v0.22)。分层核接在既有段层之上(journal/{writer,reader,manifest}.ts:
|
|
12330
12378
|
* 写侧 `onSegmentSealed` 钩子 → 上传不可变段;读侧 `segmentSource` 钩子 → 本地段缺席时回源),
|
|
12331
12379
|
* 热层本地盘恒为耐久性地板,冷层只承接封存后不可变的段 / 快照 / 附件。
|
|
12332
12380
|
*
|
|
@@ -12340,6 +12388,7 @@ interface SessionStoreCoreWarning {
|
|
|
12340
12388
|
*/
|
|
12341
12389
|
|
|
12342
12390
|
type StoreErrorKind = 'transient' | 'permanent' | 'not_found' | 'precondition_failed';
|
|
12391
|
+
/** 构造 StoreError 时的附加信息:原始异常与 transient 类的重试建议。 */
|
|
12343
12392
|
interface StoreErrorOptions {
|
|
12344
12393
|
cause?: unknown;
|
|
12345
12394
|
/** transient 时的重试建议(如 429 Retry-After 换算 ms) */
|
|
@@ -12358,6 +12407,7 @@ declare class StoreError extends Error {
|
|
|
12358
12407
|
}
|
|
12359
12408
|
/** 任意异常 → StoreError(非 StoreError 一律 transient) */
|
|
12360
12409
|
declare function toStoreError(error: unknown): StoreError;
|
|
12410
|
+
/** 字节对象的元数据:体积、内容类型、sha256 内容寻址与可选的生命周期 / 标签 / CAS 令牌。 */
|
|
12361
12411
|
interface BlobMeta {
|
|
12362
12412
|
bytes: number;
|
|
12363
12413
|
/** 'application/x-ndjson' | 'application/gzip' | 'application/zstd' | 'application/json' */
|
|
@@ -12369,7 +12419,7 @@ interface BlobMeta {
|
|
|
12369
12419
|
/** 如 { tenant, sessionId, kind:'segment'|'manifest'|'checkpoint'|'attachment' };引擎只写不读 */
|
|
12370
12420
|
tags?: Record<string, string>;
|
|
12371
12421
|
/**
|
|
12372
|
-
*
|
|
12422
|
+
* 条件写 CAS 令牌(与 PutResult.etag 同一口径,不透明)。`capabilities.conditionalPut:true`
|
|
12373
12423
|
* 的适配器须在 head / list 返回(引擎据此对既有清单 ifMatch);其他适配器可缺席。
|
|
12374
12424
|
*/
|
|
12375
12425
|
etag?: string;
|
|
@@ -12379,6 +12429,7 @@ interface ByteRange {
|
|
|
12379
12429
|
start: number;
|
|
12380
12430
|
end?: number;
|
|
12381
12431
|
}
|
|
12432
|
+
/** SegmentBlobStore.put 的选项:取消信号与条件写(ifNoneMatch / ifMatch)令牌。 */
|
|
12382
12433
|
interface PutOptions {
|
|
12383
12434
|
signal?: AbortSignal;
|
|
12384
12435
|
/** 仅 capabilities.conditionalPut 时引擎会传 */
|
|
@@ -12386,13 +12437,16 @@ interface PutOptions {
|
|
|
12386
12437
|
/** etag CAS(清单重写);仅 capabilities.conditionalPut 时引擎会传 */
|
|
12387
12438
|
ifMatch?: string;
|
|
12388
12439
|
}
|
|
12440
|
+
/** SegmentBlobStore.put 的结果;支持条件写的适配器回传新 etag。 */
|
|
12389
12441
|
interface PutResult {
|
|
12390
12442
|
etag?: string;
|
|
12391
12443
|
}
|
|
12444
|
+
/** SegmentBlobStore.list 的单条结果:键与元数据。 */
|
|
12392
12445
|
interface BlobListEntry {
|
|
12393
12446
|
key: string;
|
|
12394
12447
|
meta: BlobMeta;
|
|
12395
12448
|
}
|
|
12449
|
+
/** 字节对象存储适配器的能力声明;引擎据此决定一致性等待、条件写、分段阈值与批量删除。 */
|
|
12396
12450
|
interface BlobStoreCapabilities {
|
|
12397
12451
|
/** 写后立即 head/get/list 是否保证可见 */
|
|
12398
12452
|
consistency: 'strong' | 'eventual';
|
|
@@ -12405,6 +12459,11 @@ interface BlobStoreCapabilities {
|
|
|
12405
12459
|
/** 一次 delete 可接受的键数;缺省 1 */
|
|
12406
12460
|
batchDelete?: number;
|
|
12407
12461
|
}
|
|
12462
|
+
/**
|
|
12463
|
+
* 一级存储接口:字节对象的 put / get / head / list / delete。
|
|
12464
|
+
* S3 / OSS / COS / MinIO / GCS / Azure / GridFS / 文件系统皆此级;分段、编码、清单提交、
|
|
12465
|
+
* 热盘 LRU 与重试由引擎内置分层核完成,适配器只需守 StoreError 四类错误约定。
|
|
12466
|
+
*/
|
|
12408
12467
|
interface SegmentBlobStore {
|
|
12409
12468
|
readonly capabilities: BlobStoreCapabilities;
|
|
12410
12469
|
/** 至少一次、按 meta.sha256 幂等(同键同哈希重复 put 必须成功且无副作用) */
|
|
@@ -12418,6 +12477,7 @@ interface SegmentBlobStore {
|
|
|
12418
12477
|
/** 不存在不算错 */
|
|
12419
12478
|
delete(keys: readonly string[], signal?: AbortSignal): Promise<void>;
|
|
12420
12479
|
}
|
|
12480
|
+
/** 二级存储中一条会话的元数据(列表 / 索引条目)。 */
|
|
12421
12481
|
interface StoredSessionMeta$1 {
|
|
12422
12482
|
sessionId: string;
|
|
12423
12483
|
endUserKey: string;
|
|
@@ -12429,11 +12489,12 @@ interface StoredSessionMeta$1 {
|
|
|
12429
12489
|
title?: string;
|
|
12430
12490
|
platformSessionId?: string;
|
|
12431
12491
|
/**
|
|
12432
|
-
*
|
|
12492
|
+
* 一级冷层经 `SessionIndexStore` 提交时,现行冷清单对象的规范键(每次提交写唯一、
|
|
12433
12493
|
* 不可变的新对象,index 的 CAS 即提交点)。条件写路径 / 二级冷层缺席。实现方按不透明串存取。
|
|
12434
12494
|
*/
|
|
12435
12495
|
manifestKey?: string;
|
|
12436
12496
|
}
|
|
12497
|
+
/** SessionHistoryStore.store 的入参:新封存段(可空)与含本段后的新清单,附代际 CAS 期望值。 */
|
|
12437
12498
|
interface StoreInput {
|
|
12438
12499
|
sessionId: string;
|
|
12439
12500
|
endUserKey: string;
|
|
@@ -12449,6 +12510,7 @@ interface StoreInput {
|
|
|
12449
12510
|
expectedGeneration: number;
|
|
12450
12511
|
signal?: AbortSignal;
|
|
12451
12512
|
}
|
|
12513
|
+
/** SessionHistoryStore.load 的查询:会话定位与可选的 seq 区间。 */
|
|
12452
12514
|
interface LoadQuery {
|
|
12453
12515
|
sessionId: string;
|
|
12454
12516
|
endUserKey: string;
|
|
@@ -12456,6 +12518,7 @@ interface LoadQuery {
|
|
|
12456
12518
|
toSeq?: number;
|
|
12457
12519
|
signal?: AbortSignal;
|
|
12458
12520
|
}
|
|
12521
|
+
/** SessionHistoryStore.load 的结果:清单 + 惰性的段体迭代器。 */
|
|
12459
12522
|
interface LoadResult {
|
|
12460
12523
|
manifest: SegmentManifest;
|
|
12461
12524
|
/**
|
|
@@ -12467,6 +12530,10 @@ interface LoadResult {
|
|
|
12467
12530
|
body: ReadableStream<Uint8Array>;
|
|
12468
12531
|
}>;
|
|
12469
12532
|
}
|
|
12533
|
+
/**
|
|
12534
|
+
* 二级存储接口:自管布局(KV / 关系库)的会话历史存取。
|
|
12535
|
+
* 引擎只调 store / load / listSessions / remove,分段与清单由实现方自行落位。
|
|
12536
|
+
*/
|
|
12470
12537
|
interface SessionHistoryStore {
|
|
12471
12538
|
store(input: StoreInput): Promise<void>;
|
|
12472
12539
|
/** null = 不存在 */
|
|
@@ -12474,6 +12541,7 @@ interface SessionHistoryStore {
|
|
|
12474
12541
|
listSessions(endUserKey: string, cursor?: string, signal?: AbortSignal): AsyncIterable<StoredSessionMeta$1>;
|
|
12475
12542
|
remove(sessionId: string, endUserKey: string, signal?: AbortSignal): Promise<void>;
|
|
12476
12543
|
}
|
|
12544
|
+
/** 可选的会话索引存储:为多副本共享元数据,或为不支持条件写的对象存储提供 CAS 提交点。 */
|
|
12477
12545
|
interface SessionIndexStore {
|
|
12478
12546
|
/** expectedGeneration 不匹配须抛 precondition_failed */
|
|
12479
12547
|
upsert(meta: StoredSessionMeta$1, expectedGeneration?: number): Promise<void>;
|
|
@@ -12481,11 +12549,13 @@ interface SessionIndexStore {
|
|
|
12481
12549
|
list(endUserKey: string, cursor?: string): AsyncIterable<StoredSessionMeta$1>;
|
|
12482
12550
|
remove(endUserKey: string, sessionId: string): Promise<void>;
|
|
12483
12551
|
}
|
|
12552
|
+
/** 段体上传 / 下载前后的字节流变换挂点(加密、脱敏等由开发者自带)。 */
|
|
12484
12553
|
interface StreamTransform {
|
|
12485
12554
|
/** 开发者自带加密 / 脱敏;引擎不做密码学 */
|
|
12486
12555
|
encode(body: ReadableStream<Uint8Array>): ReadableStream<Uint8Array>;
|
|
12487
12556
|
decode(body: ReadableStream<Uint8Array>): ReadableStream<Uint8Array>;
|
|
12488
12557
|
}
|
|
12558
|
+
/** 分层存储策略:冷层编码、热盘保留、上传并发 / 重试预算、载入预取与流变换。 */
|
|
12489
12559
|
interface SegmentedStorePolicy {
|
|
12490
12560
|
/** 冷层封存段编码;缺省 'jsonl+gzip'(zstd 仅 Node ≥ 22.15 可用) */
|
|
12491
12561
|
codec?: SegmentCodec;
|
|
@@ -12532,24 +12602,29 @@ declare const SEGMENTED_STORE_DEFAULTS: {
|
|
|
12532
12602
|
/** 一级 / 二级判别(二级以 store/load 方法为准) */
|
|
12533
12603
|
declare function isSessionHistoryStore(cold: SegmentBlobStore | SessionHistoryStore): cold is SessionHistoryStore;
|
|
12534
12604
|
|
|
12605
|
+
/** 内存存储的构造选项:可选的能力自述覆写。 */
|
|
12535
12606
|
interface MemoryBlobStoreOptions {
|
|
12536
12607
|
/** 覆写能力自述(测试用,如模拟无条件写后端) */
|
|
12537
12608
|
capabilities?: Partial<BlobStoreCapabilities>;
|
|
12538
12609
|
}
|
|
12610
|
+
/** 创建纯内存的 SegmentBlobStore;附 size / keys() 供测试直读。 */
|
|
12539
12611
|
declare function createMemoryBlobStore(options?: MemoryBlobStoreOptions): SegmentBlobStore & {
|
|
12540
12612
|
/** 测试直读 */
|
|
12541
12613
|
readonly size: number;
|
|
12542
12614
|
keys(): string[];
|
|
12543
12615
|
};
|
|
12544
12616
|
|
|
12617
|
+
/** 文件系统冷层存储的构造选项:根目录与可选的能力自述覆写。 */
|
|
12545
12618
|
interface FsBlobStoreOptions {
|
|
12546
12619
|
/** 根目录(不存在则首次操作创建);只作冷层 */
|
|
12547
12620
|
dir: string;
|
|
12548
12621
|
/** 覆写能力自述(测试用,如模拟无条件写后端;行为不随之变——一致性测试套据此揭示「自述不实」) */
|
|
12549
12622
|
capabilities?: Partial<BlobStoreCapabilities>;
|
|
12550
12623
|
}
|
|
12624
|
+
/** 创建以本地目录为后端的 SegmentBlobStore(双树布局、原子条件写、原生 Range 读);只作冷层。 */
|
|
12551
12625
|
declare function createFsBlobStore(options: FsBlobStoreOptions): SegmentBlobStore;
|
|
12552
12626
|
|
|
12627
|
+
/** 一致性测试套的运行选项:体量 / 内存预算 / 最终一致窗口 / 隔离前缀 / 并发数 / 清理与取消。 */
|
|
12553
12628
|
interface StorageConformanceOptions {
|
|
12554
12629
|
/** 大对象体量;缺省 16 MiB(正式认证建议 1 GiB) */
|
|
12555
12630
|
largeObjectBytes?: number;
|
|
@@ -12565,6 +12640,7 @@ interface StorageConformanceOptions {
|
|
|
12565
12640
|
keepObjects?: boolean;
|
|
12566
12641
|
signal?: AbortSignal;
|
|
12567
12642
|
}
|
|
12643
|
+
/** 单个一致性用例的结果:id、是否通过、说明文本、是否因能力不适用而跳过、耗时。 */
|
|
12568
12644
|
interface StorageConformanceCase {
|
|
12569
12645
|
id: string;
|
|
12570
12646
|
passed: boolean;
|
|
@@ -12573,6 +12649,7 @@ interface StorageConformanceCase {
|
|
|
12573
12649
|
skipped?: boolean;
|
|
12574
12650
|
durationMs: number;
|
|
12575
12651
|
}
|
|
12652
|
+
/** 一致性测试套的整体报告:逐用例结果、总判定、被测存储的能力自述与起止信息。 */
|
|
12576
12653
|
interface StorageConformanceReport {
|
|
12577
12654
|
cases: StorageConformanceCase[];
|
|
12578
12655
|
/** 全部用例 passed */
|
|
@@ -12581,26 +12658,29 @@ interface StorageConformanceReport {
|
|
|
12581
12658
|
startedAt: string;
|
|
12582
12659
|
durationMs: number;
|
|
12583
12660
|
}
|
|
12661
|
+
/** 对一个 SegmentBlobStore 跑完十类一致性用例并返回报告;全部对象落在隔离前缀下,结束时尽力清理。 */
|
|
12584
12662
|
declare function runStorageConformance(store: SegmentBlobStore, options?: StorageConformanceOptions): Promise<StorageConformanceReport>;
|
|
12585
12663
|
|
|
12586
12664
|
/**
|
|
12587
|
-
* 混沌包装器 `createChaosBlobStore(inner, faults)
|
|
12588
|
-
* 会出故障的后端,供一致性测试套 /
|
|
12665
|
+
* 混沌包装器 `createChaosBlobStore(inner, faults)`——把任一 `SegmentBlobStore` 包成
|
|
12666
|
+
* 会出故障的后端,供一致性测试套 / 对抗验收注入:
|
|
12589
12667
|
*
|
|
12590
12668
|
* failPut put 立即失败(true / 按键谓词 / 前 N 次),kind = putErrorKind(缺省 transient)
|
|
12591
12669
|
* failPutAfterBytes put 消费体到 N 字节后失败(连接中断;体已部分读出,不得留半对象)
|
|
12592
12670
|
* putErrorKind 注入的 put 失败分类(transient | permanent | not_found | precondition_failed)
|
|
12593
12671
|
* eventualListLagMs list 对「最近 lag 毫秒内 put 的键」不可见(最终一致);capabilities.consistency 报 eventual
|
|
12594
12672
|
* dropListEntries list 丢项(按键谓词 / 概率 0–1)
|
|
12595
|
-
* corruptSegmentKeys get 对匹配键返回翻转首字节的体(
|
|
12596
|
-
* abortMidStream get 的流在首块之后以 transient 出错(
|
|
12673
|
+
* corruptSegmentKeys get 对匹配键返回翻转首字节的体(篡改)
|
|
12674
|
+
* abortMidStream get 的流在首块之后以 transient 出错(下载中断)
|
|
12597
12675
|
* latencyMs 每次调用前延迟(定值 / [min,max] 均匀)
|
|
12598
12676
|
*
|
|
12599
12677
|
* `faults` 对象**按引用持有**,测试可运行时翻转(如愈合 failPut 观察追平);`stats` 记各类注入次数。
|
|
12600
12678
|
* 不改语义的调用原样透传;内层错误原样上抛(不二次包装)。
|
|
12601
12679
|
*/
|
|
12602
12680
|
|
|
12681
|
+
/** 按键选择注入目标:布尔整体开关,或对键求值的谓词。 */
|
|
12603
12682
|
type KeyPredicate = boolean | ((key: string) => boolean);
|
|
12683
|
+
/** 混沌故障配置;对象按引用持有,测试可在运行时翻转各项。 */
|
|
12604
12684
|
interface ChaosFaults {
|
|
12605
12685
|
/** put 立即失败:true / 按键谓词 / 数字 = 前 N 次 put 失败 */
|
|
12606
12686
|
failPut?: KeyPredicate | number;
|
|
@@ -12624,6 +12704,7 @@ interface ChaosFaults {
|
|
|
12624
12704
|
max: number;
|
|
12625
12705
|
};
|
|
12626
12706
|
}
|
|
12707
|
+
/** 混沌包装器的注入计数与各操作调用次数。 */
|
|
12627
12708
|
interface ChaosStats {
|
|
12628
12709
|
putFailures: number;
|
|
12629
12710
|
putTruncated: number;
|
|
@@ -12633,11 +12714,13 @@ interface ChaosStats {
|
|
|
12633
12714
|
abortedGets: number;
|
|
12634
12715
|
calls: Record<'put' | 'get' | 'head' | 'list' | 'delete', number>;
|
|
12635
12716
|
}
|
|
12717
|
+
/** 被混沌包装后的存储:暴露故障配置、注入统计与内层存储。 */
|
|
12636
12718
|
interface ChaosBlobStore extends SegmentBlobStore {
|
|
12637
12719
|
readonly faults: ChaosFaults;
|
|
12638
12720
|
readonly stats: ChaosStats;
|
|
12639
12721
|
readonly inner: SegmentBlobStore;
|
|
12640
12722
|
}
|
|
12723
|
+
/** 把任一 SegmentBlobStore 包成按 faults 注入故障的存储;不改语义的调用原样透传,内层错误原样上抛。 */
|
|
12641
12724
|
declare function createChaosBlobStore(inner: SegmentBlobStore, faults?: ChaosFaults, now?: () => number): ChaosBlobStore;
|
|
12642
12725
|
|
|
12643
12726
|
/** 会话身份(冷层键形 `<tenant>/<endUserKey>/<sessionId>/<volumeId>/…` 与清单分域所需)+ 热层目录 */
|
|
@@ -12650,6 +12733,7 @@ interface ColdSessionRef {
|
|
|
12650
12733
|
}
|
|
12651
12734
|
/** 会话身份(不含热层目录;remove / gc 用) */
|
|
12652
12735
|
type ColdSessionId = Pick<ColdSessionRef, 'sessionId' | 'endUserKey'>;
|
|
12736
|
+
/** 冷层运行统计:上传积压、热盘占用、累计提交数与就绪位。 */
|
|
12653
12737
|
interface ColdTierStats {
|
|
12654
12738
|
/** 待上传 / 待提交段数与字节(积压;两条告警线之一) */
|
|
12655
12739
|
backlogSegments: number;
|
|
@@ -12662,7 +12746,7 @@ interface ColdTierStats {
|
|
|
12662
12746
|
ready: boolean;
|
|
12663
12747
|
}
|
|
12664
12748
|
/**
|
|
12665
|
-
* 结构化事件(
|
|
12749
|
+
* 结构化事件(可映射为 serve 日志事件 / onStoreError):
|
|
12666
12750
|
* - `store.segment_sealed`:收到封段通知,已入队(热层事实);
|
|
12667
12751
|
* - `store.segment_committed`:段 put 成功且冷清单 CAS 已提交(冷层事实;可逐出);
|
|
12668
12752
|
* - `store.commit_failed`:一次上传 / 提交失败(`gaveUp` = 重试预算耗尽或 permanent /
|
|
@@ -12707,6 +12791,7 @@ type ColdTierEvent = {
|
|
|
12707
12791
|
session: ColdSessionId;
|
|
12708
12792
|
deleted: string[];
|
|
12709
12793
|
};
|
|
12794
|
+
/** 冷层结构化事件的 type 取值集合。 */
|
|
12710
12795
|
type ColdTierEventType = ColdTierEvent['type'];
|
|
12711
12796
|
|
|
12712
12797
|
/** 快照头部(旁挂 .meta.json 的全部内容 = 快照体去掉 messages) */
|
|
@@ -13149,10 +13234,10 @@ interface CheckpointRetention {
|
|
|
13149
13234
|
}
|
|
13150
13235
|
|
|
13151
13236
|
/**
|
|
13152
|
-
*
|
|
13237
|
+
* 交互通道抽象:AskUser 工具与表面层之间的依赖注入缝。
|
|
13153
13238
|
*
|
|
13154
13239
|
* 设计要点:
|
|
13155
|
-
* - kernel 不知道"怎么问用户":TUI
|
|
13240
|
+
* - kernel 不知道"怎么问用户":TUI 注册对话框实现,headless
|
|
13156
13241
|
* 缺省注入 UnavailableChannel(工具据此产出"自行决策并继续"的降级文案);
|
|
13157
13242
|
* - `ask` 必须尊重 AbortSignal;即使实现忽略 signal,AskUser 工具侧也会兜底
|
|
13158
13243
|
* 竞争 abort(见 ask-tool.ts),保证取消链贯穿;
|
|
@@ -13163,6 +13248,7 @@ interface QuestionOption {
|
|
|
13163
13248
|
id: string;
|
|
13164
13249
|
label: string;
|
|
13165
13250
|
}
|
|
13251
|
+
/** AskUser 工具向用户提出的单个问题:提示语、至少两个可选项、是否允许多选。 */
|
|
13166
13252
|
interface Question {
|
|
13167
13253
|
id: string;
|
|
13168
13254
|
prompt: string;
|
|
@@ -13171,6 +13257,7 @@ interface Question {
|
|
|
13171
13257
|
/** true 允许多选;缺省单选 */
|
|
13172
13258
|
allowMultiple?: boolean;
|
|
13173
13259
|
}
|
|
13260
|
+
/** 用户对单个问题的回答:选中的选项 id 集合与可选的自由文本。 */
|
|
13174
13261
|
interface Answer {
|
|
13175
13262
|
questionId: string;
|
|
13176
13263
|
/** 选中的 option id 集合(单选题至多 1 个;可为空但需伴随 freeText) */
|
|
@@ -13178,6 +13265,7 @@ interface Answer {
|
|
|
13178
13265
|
/** 用户补充的自由文本(可与选项并存) */
|
|
13179
13266
|
freeText?: string;
|
|
13180
13267
|
}
|
|
13268
|
+
/** 交互通道:表面层实现「怎么问用户」,AskUser 工具经此提问;headless 场景注入不可用通道即降级。 */
|
|
13181
13269
|
interface PromptChannel {
|
|
13182
13270
|
/**
|
|
13183
13271
|
* 向用户提出一批问题,resolve 为对应答案。
|
|
@@ -13188,13 +13276,13 @@ interface PromptChannel {
|
|
|
13188
13276
|
}
|
|
13189
13277
|
|
|
13190
13278
|
/**
|
|
13191
|
-
*
|
|
13279
|
+
* 子代理机制公共类型与常量。
|
|
13192
13280
|
*
|
|
13193
|
-
*
|
|
13194
|
-
* -
|
|
13281
|
+
* 设计要点:
|
|
13282
|
+
* - 子代理 = 同一查询环的隔离实例(createSubagentContext 范式)——
|
|
13195
13283
|
* 隔离消息历史、独立 agentId、父 abort 传播到同步子代理、非交互(不向用户提问);
|
|
13196
|
-
* -
|
|
13197
|
-
*
|
|
13284
|
+
* - Amp 式命名专家子代理的分工心智:通用 Task 工具之上
|
|
13285
|
+
* 叠加 `.tansr/agents/*.md` 自定义定义;
|
|
13198
13286
|
* - protocol 冻结:事件走既有 agent.spawned/progress/completed;agentId 注入
|
|
13199
13287
|
* 事件包络的落点是自由字符串字段 `source`(形如 `agent:<agentId>`,对齐
|
|
13200
13288
|
* Claude Code `querySource: 'agent:...'`),不改包络 schema。
|
|
@@ -13207,12 +13295,12 @@ interface PromptChannel {
|
|
|
13207
13295
|
* 模型降档/覆写注入缝:kernel 不依赖 providers registry,由装配层(cli
|
|
13208
13296
|
* assembly)传入 别名 → ResolvedModel 的映射。别名可为三档 tier(Task 参数
|
|
13209
13297
|
* 面仍锁 SUBAGENT_MODEL_TIERS 枚举),也可为自定义代理定义声明的任意模型
|
|
13210
|
-
* 别名(
|
|
13298
|
+
* 别名(别名合法性由装配层解析器裁决)。未注入时别名请求被忽略
|
|
13211
13299
|
* (沿用父模型,结果 data 里以 modelTierIgnored 标注,不静默)。
|
|
13212
13300
|
*/
|
|
13213
13301
|
type SubagentModelResolver = (alias: string, parentModel: ResolvedModel) => ResolvedModel;
|
|
13214
13302
|
/**
|
|
13215
|
-
*
|
|
13303
|
+
* 子模型上下文窗口解析缝:kernel 不依赖 providers registry,由
|
|
13216
13304
|
* 装配层以 `registry.resolveAlias('<provider>/<model>').capability.maxContext`
|
|
13217
13305
|
* 类闭包实现。入参是**已解析的子模型**(可能经 tier 降档,与父不同);返回
|
|
13218
13306
|
* undefined = 窗口未知(运行器据此静默禁用子代理压缩装配,与四入口驱动
|
|
@@ -13221,7 +13309,7 @@ type SubagentModelResolver = (alias: string, parentModel: ResolvedModel) => Reso
|
|
|
13221
13309
|
type SubagentContextWindowResolver = (model: ResolvedModel) => number | undefined;
|
|
13222
13310
|
|
|
13223
13311
|
/**
|
|
13224
|
-
*
|
|
13312
|
+
* 成本感知子代理分派策略。
|
|
13225
13313
|
*
|
|
13226
13314
|
* 职责:Task 子代理**无显式模型请求**时的档位路由——「实时价 × 能力档」,
|
|
13227
13315
|
* 对标差异化:五家硬编码降档(CC→Haiku),tansr 按平台实时价目取经济档。
|
|
@@ -13234,7 +13322,7 @@ type SubagentContextWindowResolver = (model: ResolvedModel) => number | undefine
|
|
|
13234
13322
|
* 父会话模型;
|
|
13235
13323
|
* - **新增/未知类型缺省 'inherit'(fail-safe)**:映射表查无此名恒不降档;
|
|
13236
13324
|
* - 分类/裁决类辅助任务(权限分类器/裁决人/压缩/标题/记忆抽取)的 fast
|
|
13237
|
-
*
|
|
13325
|
+
* 纪律是**既有旁路装配**,不经本模块,恒不动。
|
|
13238
13326
|
*
|
|
13239
13327
|
* 优先级铁律(恒不覆写显式指定):
|
|
13240
13328
|
* 1. 调用参数 `model`(用户/父模型显式请求)——策略恒不适用;
|
|
@@ -13295,7 +13383,7 @@ interface SubagentDispatchPolicy {
|
|
|
13295
13383
|
}
|
|
13296
13384
|
|
|
13297
13385
|
/**
|
|
13298
|
-
*
|
|
13386
|
+
* 内核侧价格表:内置条目 + refreshPricing() 注入缝。
|
|
13299
13387
|
*
|
|
13300
13388
|
* 分层铁律(AGENTS.md):kernel(L2)不得 import providers(L1)实现。本表在
|
|
13301
13389
|
* kernel 侧独立内置,形态与 providers/src/registry/capability-defaults.ts 的
|
|
@@ -13328,7 +13416,7 @@ interface CostPricing extends Pricing {
|
|
|
13328
13416
|
cacheWriteInputPerMillion?: number;
|
|
13329
13417
|
}
|
|
13330
13418
|
/**
|
|
13331
|
-
* 币种词表 v1
|
|
13419
|
+
* 币种词表 v1:国内试点两币种,ISO 4217 代码。
|
|
13332
13420
|
* 扩词表走 RFC(与 tansrd budget.currency 同词表同节奏);金额聚合按币种
|
|
13333
13421
|
* 分桶(tracker.ts),严禁跨币种直加——归一呈现是报表层职责(记账汇率)。
|
|
13334
13422
|
*/
|
|
@@ -13346,8 +13434,8 @@ interface PricingEntry {
|
|
|
13346
13434
|
pricing?: CostPricing;
|
|
13347
13435
|
source: PricingSource;
|
|
13348
13436
|
/**
|
|
13349
|
-
*
|
|
13350
|
-
* 真实账单价;金额消费面须注记「含名义价」口径(
|
|
13437
|
+
* 名义价标注:true = 本条是内网/vLLM 端点的资源摊销价而非厂商
|
|
13438
|
+
* 真实账单价;金额消费面须注记「含名义价」口径(名义价
|
|
13351
13439
|
* 须在周报注明)。缺席 = 真实价。内置表恒为真实价,不落此键。
|
|
13352
13440
|
*/
|
|
13353
13441
|
nominal?: boolean;
|
|
@@ -13363,13 +13451,13 @@ interface PricingUpdate {
|
|
|
13363
13451
|
providerId: string;
|
|
13364
13452
|
modelName: string;
|
|
13365
13453
|
/**
|
|
13366
|
-
* 缺省 'CNY'——kernel 面「缺省 =
|
|
13367
|
-
*
|
|
13368
|
-
* 'USD'(其现状 = USD/百万 token 语义)
|
|
13454
|
+
* 缺省 'CNY'——kernel 面「缺省 = 现状语义零变化」:本表内置与
|
|
13455
|
+
* 注入缺省皆为人民币价,与 tansrd budget.pricing 的缺省
|
|
13456
|
+
* 'USD'(其现状 = USD/百万 token 语义)各自守现状,不互相迁就。
|
|
13369
13457
|
*/
|
|
13370
13458
|
currency?: PricingCurrency;
|
|
13371
13459
|
pricing?: CostPricing | null;
|
|
13372
|
-
/** 名义价标注(
|
|
13460
|
+
/** 名义价标注(语义见 PricingEntry.nominal);缺省 = 真实价 */
|
|
13373
13461
|
nominal?: boolean;
|
|
13374
13462
|
note?: string;
|
|
13375
13463
|
}
|
|
@@ -13399,7 +13487,7 @@ declare class PricingBook {
|
|
|
13399
13487
|
}
|
|
13400
13488
|
|
|
13401
13489
|
/**
|
|
13402
|
-
*
|
|
13490
|
+
* capability 合并器。
|
|
13403
13491
|
*
|
|
13404
13492
|
* 合并优先级(低 → 高):
|
|
13405
13493
|
* CapabilitySchema 字段默认值 < 内置默认表 (provider, model) 条目 < 用户配置 ProviderProfile.capability
|
|
@@ -13409,14 +13497,14 @@ declare class PricingBook {
|
|
|
13409
13497
|
* - 嵌套对象(promptCaching/thinking/sampling/quirks):逐键合并,用户未提的键保留内置值;
|
|
13410
13498
|
* - 合并结果必经 CapabilitySchema.parse 校验(非法值抛 ZodError,不静默吞掉)。
|
|
13411
13499
|
*
|
|
13412
|
-
*
|
|
13500
|
+
* 契约注记:protocol 冻结版的 ProviderProfileSchema.capability
|
|
13413
13501
|
* 是完整 CapabilitySchema——经 schema parse 后默认值被填充,无法区分「用户显式写的默认值」
|
|
13414
13502
|
* 与「schema 补的默认值」。本模块因此以 CapabilityOverride(深部分形态)为合并输入,
|
|
13415
13503
|
* 上游应传入未经 parse 默认填充的原始覆盖对象;完整 Capability 对象在类型上兼容本形态。
|
|
13416
13504
|
*
|
|
13417
|
-
*
|
|
13505
|
+
* 扩展位(hostedTools/background):contract-v0.4 起并入
|
|
13418
13506
|
* CapabilitySchema(可选、无默认值——缺省 undefined 即「未声明」,合并产物
|
|
13419
|
-
* 不多出键)
|
|
13507
|
+
* 不多出键),早先的 providers 侧过渡扩展 schema 退役。
|
|
13420
13508
|
*
|
|
13421
13509
|
* contract-v0.5 别名归一(本模块单点,逐层进行——保证高层显式声明压过低层):
|
|
13422
13510
|
* - vision ↔ inputModalities.image 双向同步(RFC-B3-1):层内声明了
|
|
@@ -13468,16 +13556,16 @@ interface CapabilityOverride {
|
|
|
13468
13556
|
modelModifiers?: string[];
|
|
13469
13557
|
defaultContextWithoutModifier?: number;
|
|
13470
13558
|
quirks?: Partial<Capability['quirks']>;
|
|
13471
|
-
/**
|
|
13559
|
+
/** 扩展位:hosted 工具单列(数组整体覆盖不拼接,与 modelModifiers 同语义) */
|
|
13472
13560
|
hostedTools?: string[];
|
|
13473
|
-
/**
|
|
13561
|
+
/** 扩展位:背景模式能力 */
|
|
13474
13562
|
background?: boolean;
|
|
13475
13563
|
}
|
|
13476
13564
|
|
|
13477
13565
|
/**
|
|
13478
|
-
*
|
|
13566
|
+
* 重试退避策略(纯函数,不含 IO/时钟/随机全局态)。
|
|
13479
13567
|
*
|
|
13480
|
-
*
|
|
13568
|
+
* 算法:
|
|
13481
13569
|
* - 指数退避:上界 = min(maxMs, baseMs · 2^attempt);
|
|
13482
13570
|
* - full jitter:延迟 = random() · 上界,均匀落在 [0, 上界](AWS 建议形态,
|
|
13483
13571
|
* 把并发重试的「羊群效应」打散);
|
|
@@ -13867,9 +13955,9 @@ declare function upstreamOriginOf(input: string | URL | Request): string;
|
|
|
13867
13955
|
declare function createUpstreamGovernor(options?: UpstreamGovernorOptions): UpstreamGovernor;
|
|
13868
13956
|
|
|
13869
13957
|
/**
|
|
13870
|
-
*
|
|
13958
|
+
* 别名/ref → (provider, model, capability, pricing) 解析(纯函数,不碰环境变量)。
|
|
13871
13959
|
*
|
|
13872
|
-
*
|
|
13960
|
+
* 解析顺序:
|
|
13873
13961
|
* 1. 输入含斜杠 → 按 ref(provider/modelOrRole)直接解析;
|
|
13874
13962
|
* 2. 否则按别名查 config.modelAliases(三档 main/fast/reasoning 或任意自定义键),
|
|
13875
13963
|
* 其值再按 ref 解析;
|
|
@@ -13888,7 +13976,7 @@ declare function createUpstreamGovernor(options?: UpstreamGovernorOptions): Upst
|
|
|
13888
13976
|
interface RegistryProviderProfile extends Omit<ProviderProfile, 'capability'> {
|
|
13889
13977
|
capability?: CapabilityOverride;
|
|
13890
13978
|
/**
|
|
13891
|
-
*
|
|
13979
|
+
* 逐模型能力覆盖(键 = 角色别名映射后的最终模型名):远程 bundle
|
|
13892
13980
|
* 的 models[].capabilities 落点(profile 级 capability 表达不了同 provider
|
|
13893
13981
|
* 下多模型差异)。合并序:内置默认 < profile.capability < 本表条目。
|
|
13894
13982
|
* 可选字段,存量配置(kernel 五层产物/env 通路)零改动即兼容。
|
|
@@ -13903,13 +13991,13 @@ interface RegistryProviderProfile extends Omit<ProviderProfile, 'capability'> {
|
|
|
13903
13991
|
interface RegistryConfig extends Omit<TansrConfig, 'providers' | 'hooks' | 'mcpServers'> {
|
|
13904
13992
|
providers: Record<string, RegistryProviderProfile>;
|
|
13905
13993
|
}
|
|
13906
|
-
/** resolveAlias / fallbacksFor 的输出单元(
|
|
13994
|
+
/** resolveAlias / fallbacksFor 的输出单元(重试/切换的输入) */
|
|
13907
13995
|
interface ResolvedProviderModel {
|
|
13908
13996
|
providerId: string;
|
|
13909
13997
|
providerProfile: RegistryProviderProfile;
|
|
13910
13998
|
/** 经 profile.models 角色别名映射后的最终模型名(送 wire 的值) */
|
|
13911
13999
|
modelName: string;
|
|
13912
|
-
/** 内置默认 < 用户配置 合并并经 schema 校验后的能力位(含
|
|
14000
|
+
/** 内置默认 < 用户配置 合并并经 schema 校验后的能力位(含 hostedTools/background 扩展位) */
|
|
13913
14001
|
capability: ProviderCapability;
|
|
13914
14002
|
/**
|
|
13915
14003
|
* P-CTX2 K8(G-A6,C-06)— 三层(内置默认 < profile.capability <
|
|
@@ -14022,19 +14110,19 @@ interface ProviderAttemptRecord extends ProviderAttemptEnd {
|
|
|
14022
14110
|
}
|
|
14023
14111
|
|
|
14024
14112
|
/**
|
|
14025
|
-
*
|
|
14113
|
+
* provider 数据边界(fail-closed)。
|
|
14026
14114
|
*
|
|
14027
14115
|
* 威胁模型:fallback 链在「未向下游放行内容」的失败(含 auth/invalid_request
|
|
14028
14116
|
* 工厂失败)后前进到下一 entry——若私有端点(如内网 vLLM)后面配置了公有
|
|
14029
14117
|
* provider,私有端点的认证/协议错误会把同一敏感请求原文送往公有 fallback。
|
|
14030
14118
|
*
|
|
14031
|
-
* 强制语义(契约承载位 = contract-v0.13
|
|
14119
|
+
* 强制语义(契约承载位 = contract-v0.13 的 Playbook 两字段):
|
|
14032
14120
|
* - `providerAllowlist` 在场(非空)→ 恒强制:目标 providerId ∉ 集合即在
|
|
14033
14121
|
* **选择时刻**被拒(不构造 client、零字节出站),与数据等级无关;
|
|
14034
|
-
* - allowlist 缺席时按数据等级:`dataClassification` 缺席按 internal
|
|
14035
|
-
*
|
|
14122
|
+
* - allowlist 缺席时按数据等级:`dataClassification` 缺席按 internal 兜底;
|
|
14123
|
+
* public/internal 不设限(现状回归);**sensitive 触发
|
|
14036
14124
|
* fail-closed——fallback 恒不得越出链首(首选)provider**(同 provider 的
|
|
14037
|
-
* 模型降档仍可;跨 provider 一律拒)
|
|
14125
|
+
* 模型降档仍可;跨 provider 一律拒)。裁决:sensitive+无 allowlist
|
|
14038
14126
|
* 取「拒绝越出首选」而非「拒绝启动」——单 provider 的敏感 Playbook 留在
|
|
14039
14127
|
* 自己声明的 provider 上没有边界风险,风险只在「离开」;不可验证目标的
|
|
14040
14128
|
* 「拒绝启动」语义由编排面(orchestrator agent 步预检)承担。
|
|
@@ -14059,9 +14147,9 @@ interface ProviderBoundaryDenial {
|
|
|
14059
14147
|
}
|
|
14060
14148
|
|
|
14061
14149
|
/**
|
|
14062
|
-
*
|
|
14150
|
+
* 单次尝试的事件泵:透传上游 ModelClient 流,同时做三件事——
|
|
14063
14151
|
*
|
|
14064
|
-
* 1. prelude 缓冲:message_start 不算「内容块」(
|
|
14152
|
+
* 1. prelude 缓冲:message_start 不算「内容块」(铁律:重试只允许发生在
|
|
14065
14153
|
* 未产出任何内容块之前)。把它缓冲到首个内容事件一起放行;尝试在未出内容时
|
|
14066
14154
|
* 失败则直接丢弃——下游要么恰好见到一次 message_start,要么见到裸 [error] 流
|
|
14067
14155
|
* (与适配器 HTTP 级错误的产出形态一致,见 anthropic/adapter.ts)。
|
|
@@ -14082,10 +14170,10 @@ type IRErrorEvent = Extract<IRStreamEvent, {
|
|
|
14082
14170
|
}>;
|
|
14083
14171
|
|
|
14084
14172
|
/**
|
|
14085
|
-
*
|
|
14173
|
+
* FallbackModelClient:按 fallback 链(expandFallbacks 的输出)逐个
|
|
14086
14174
|
* 尝试 provider 的 ModelClient 组合器。
|
|
14087
14175
|
*
|
|
14088
|
-
*
|
|
14176
|
+
* 切换语义:
|
|
14089
14177
|
* - 按 entries 顺序尝试;某 entry 在「未向下游放行任何内容」时最终失败
|
|
14090
14178
|
* (不可恢复错误,或经重试包裹耗尽 maxAttempts)→ 前进到下一 entry;
|
|
14091
14179
|
* - 一旦某 entry 已流出内容 → 提交(committed),之后不再切换(避免重复输出),
|
|
@@ -14119,7 +14207,7 @@ type IRErrorEvent = Extract<IRStreamEvent, {
|
|
|
14119
14207
|
* 先试主模型(与 Claude Code 的 fallback 语义一致);#clients 仅是实例
|
|
14120
14208
|
* 缓存,不构成位置状态。有测试锁定(fallback.test.ts「跨轮非粘滞」)。
|
|
14121
14209
|
*
|
|
14122
|
-
*
|
|
14210
|
+
* 数据边界:options.boundary 在场时,每个 entry 在选择时刻
|
|
14123
14211
|
* 过 evaluateProviderBoundary(boundary.ts)——越界目标不构造 client、零
|
|
14124
14212
|
* 字节出站,以 boundaryDenial 结构化轨迹计入 failures;全链无在界 entry
|
|
14125
14213
|
* 即以最后一条边界拒绝作为耗尽错误收束(不可恢复),绝不静默换供应商。
|
|
@@ -14133,7 +14221,7 @@ interface FallbackFailure {
|
|
|
14133
14221
|
index: number;
|
|
14134
14222
|
error: IRErrorEvent;
|
|
14135
14223
|
/**
|
|
14136
|
-
*
|
|
14224
|
+
* 该 entry 在选择时刻被数据边界拒绝(未构造 client、零字节出站)。
|
|
14137
14225
|
* 缺席 = 常规失败(重试耗尽/工厂失败)。审计消费位:原因/目标/数据等级。
|
|
14138
14226
|
*/
|
|
14139
14227
|
boundaryDenial?: ProviderBoundaryDenial;
|
|
@@ -14157,7 +14245,7 @@ interface FallbackSelection {
|
|
|
14157
14245
|
*/
|
|
14158
14246
|
failures: readonly FallbackFailure[];
|
|
14159
14247
|
/**
|
|
14160
|
-
*
|
|
14248
|
+
* boundary 选项在场时的生效数据等级(缺席声明已按 internal 兜底);
|
|
14161
14249
|
* 未配置 boundary 时不落键。上层审计「fallback 原因/目标/数据等级」取数位。
|
|
14162
14250
|
*/
|
|
14163
14251
|
dataClassification?: DataClassification;
|
|
@@ -18288,10 +18376,10 @@ interface AssembledSessionModel {
|
|
|
18288
18376
|
*/
|
|
18289
18377
|
platform?: AppPlatform | null;
|
|
18290
18378
|
/**
|
|
18291
|
-
*
|
|
18379
|
+
* 系统工具的平台提供方装配材料(WebSearch 平台后端 / ImageGen /
|
|
18292
18380
|
* VideoGen / SpeechToText / TextToSpeech 客户端):baseUrl + fetchImpl(令牌经其
|
|
18293
18381
|
* 覆写头自续,恒不落静态令牌到工厂)+ bundle 授权媒体集(S-G1 顺位取用;
|
|
18294
|
-
*
|
|
18382
|
+
* 音频能力在场时四键齐)。缺席 = 无平台提供方,对应系统媒体工具不装、音频直连端点
|
|
18295
18383
|
* 409 platform_unavailable(同一材料:直连代打亦经本 fetchImpl 覆写 app token)。
|
|
18296
18384
|
*/
|
|
18297
18385
|
platformTools?: {
|