@akagilnc/pi-workflow-roles 0.1.6086 → 0.1.6094
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acp-host/production-host.js +50 -4
- package/dist/diarist-contracts.js +40 -2
- package/dist/headless-host/production-host.js +50 -4
- package/dist/migrate-book-topology.js +50 -4
- package/dist/public-cli/main.js +50 -4
- package/docs/adr/0057-schema-narrowing-cuts-the-required-set-not-the-declared-set.md +1 -1
- package/package.json +1 -1
- package/souls/diarist.md +2 -1
- package/src/diarist-contracts.ts +68 -2
|
@@ -2396,7 +2396,7 @@ function projectDiaristTicketSessions(value) {
|
|
|
2396
2396
|
}
|
|
2397
2397
|
return Array.from(perTicket, ([ticketNumber, sessions]) => ({ ticketNumber, sessions }));
|
|
2398
2398
|
}
|
|
2399
|
-
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, diaristOutputSchema;
|
|
2399
|
+
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, lastRecordedField, diaristSinceLastSchema, diaristOutputSchema;
|
|
2400
2400
|
var init_diarist_contracts = __esm({
|
|
2401
2401
|
"src/diarist-contracts.ts"() {
|
|
2402
2402
|
"use strict";
|
|
@@ -2407,7 +2407,51 @@ var init_diarist_contracts = __esm({
|
|
|
2407
2407
|
init_unknown_value();
|
|
2408
2408
|
DIARIST_OUTPUT_TOOL_NAME = "ak_diarist_output";
|
|
2409
2409
|
DIARIST_BOUND_ENDPOINTS = "\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id \u6216 line\uFF0C\u4E8C\u9009\u4E00\uFF1Aid\uFF1D\u4F1A\u8BDD\u5377\u91CC\u90A3\u4E00\u884C JSON \u7684 uuid \u5B57\u6BB5\u503C\uFF08\u6CA1\u6709 uuid \u53D6 id\uFF1B\u9876\u5C42\u90FD\u6CA1\u6709\u518D\u53D6 message \u6216 payload \u91CC\u7684 uuid / id\uFF09\uFF0C\u540C\u4E00 id \u51FA\u73B0\u591A\u6B21\u65F6\u53D6\u7B2C\u4E00\u6B21\u51FA\u73B0\u7684\u90A3\u4E00\u884C\uFF1Bline\uFF1D\u90A3\u4E00\u884C\u5728\u6587\u4EF6\u91CC\u4ECE 1 \u6570\u8D77\u7684\u884C\u53F7\u3002\u4E24\u7AEF\u90FD\u542B\u5728\u533A\u95F4\u5185\u3002";
|
|
2410
|
-
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
2410
|
+
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\u3001\u965B\u4E0B\u7528\u659C\u6760\u547D\u4EE4\u5E26\u7684\u53C2\u6570\uFF08\u547D\u4EE4\u540D\u662F\u673A\u5668\u7684\uFF0C\u53C2\u6570\u662F\u965B\u4E0B\u8BF4\u7684\u8BDD\uFF09\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
2411
|
+
lastRecordedField = Type13.String({
|
|
2412
|
+
description: "\u672C\u7968\u5DF2\u6709\u8D77\u5C45\u5F55\u91CC\u3001\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF1A\u7167\u8D77\u5C45\u5F55\u7AEF\u70B9\u5199 uuid \u6216 line"
|
|
2413
|
+
});
|
|
2414
|
+
diaristSinceLastSchema = Type13.Union(
|
|
2415
|
+
[
|
|
2416
|
+
Type13.Object(
|
|
2417
|
+
{
|
|
2418
|
+
lastRecorded: lastRecordedField,
|
|
2419
|
+
swept: Type13.Array(Type13.String(), {
|
|
2420
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\uFF0C\u965B\u4E0B\u8C08\u672C\u7968\u7684\u6BCF\u4E00\u884C\uFF0C\u4E00\u884C\u4E00\u6761\uFF0C\u7167\u8FB9\u754C\u7AEF\u70B9\u7684\u5199\u6CD5\uFF08uuid\uFF0C\u6CA1\u6709 uuid \u7684\u5199 line\uFF09\uFF1B\u8FD9\u4E9B\u884C\u90FD\u5DF2\u5212\u8FDB ranges"
|
|
2421
|
+
}),
|
|
2422
|
+
found: Type13.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u8C08\u8FC7\u672C\u7968\uFF0C\u5DF2\u5212\u8FDB ranges")
|
|
2423
|
+
},
|
|
2424
|
+
{ additionalProperties: true }
|
|
2425
|
+
),
|
|
2426
|
+
Type13.Object(
|
|
2427
|
+
{
|
|
2428
|
+
lastRecorded: lastRecordedField,
|
|
2429
|
+
swept: Type13.Null(),
|
|
2430
|
+
found: Type13.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u6CA1\u6709\u518D\u8C08\u672C\u7968")
|
|
2431
|
+
},
|
|
2432
|
+
{ additionalProperties: true }
|
|
2433
|
+
),
|
|
2434
|
+
Type13.Object(
|
|
2435
|
+
{
|
|
2436
|
+
lastRecorded: Type13.Null(),
|
|
2437
|
+
swept: Type13.Null(),
|
|
2438
|
+
found: Type13.Literal("\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF08\u672C\u7968\u6CA1\u6709\u8D77\u5C45\u5F55\uFF0C\u6216\u8D77\u5C45\u5F55\u91CC\u6CA1\u6709\u672C\u5377\uFF09\uFF0C\u672C\u8F6E\u4ECE\u672C\u5377\u5F00\u5934\u6536")
|
|
2439
|
+
},
|
|
2440
|
+
{ additionalProperties: true }
|
|
2441
|
+
),
|
|
2442
|
+
Type13.Object(
|
|
2443
|
+
{
|
|
2444
|
+
lastRecorded: Type13.Null(),
|
|
2445
|
+
swept: Type13.Null(),
|
|
2446
|
+
found: Type13.Literal("\u65E0\u6CD5\u626B\uFF1A\u8D77\u5C45\u5F55\u6216\u6E90\u5377\u8BFB\u4E0D\u51FA\uFF0C\u672C\u8F6E status \u53EA\u80FD\u662F escalate\uFF0Creason \u5199\u660E\u8BFB\u4E0D\u51FA\u4EC0\u4E48")
|
|
2447
|
+
},
|
|
2448
|
+
{ additionalProperties: true }
|
|
2449
|
+
)
|
|
2450
|
+
],
|
|
2451
|
+
{
|
|
2452
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u4EE5\u6765\u7684\u626B\u6BB5\uFF1A\u5148\u6253\u5F00\u672C\u7968\u5DF2\u6709\u7684\u8D77\u5C45\u5F55\uFF0C\u627E\u51FA\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF0C\u4ECE\u5B83\u7684\u4E0B\u4E00\u884C\u8D77\u4E00\u76F4\u626B\u5230\u672C\u8F6E\uFF08\u90A3\u4E00\u884C\u5DF2\u5728\u5F55\u91CC\uFF0C\u4E0D\u518D\u5212\uFF09\uFF0C\u965B\u4E0B\u5173\u4E8E\u672C\u7968\u8BF4\u8FC7\u7684\u6BCF\u4E00\u53E5\u90FD\u5212\u8FDB ranges\u2014\u2014\u4F20\u53EC\u70B9\u540D\u7684 uuid \u53EA\u662F\u8D77\u70B9\uFF0C\u4E0D\u662F\u5019\u9009\u96C6\u5408\u3002\u56DB\u79CD\u7B54\u6CD5\uFF1A\u8C08\u8FC7\uFF08\u9010\u884C\u5217 uuid \u6216 line\uFF09\uFF0F\u6CA1\u6709\u518D\u8C08\uFF0F\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF0F\u65E0\u6CD5\u626B\uFF08\u53EA\u914D status escalate\uFF0C\u4E0D\u5F97\u7528\u6765\u514D\u626B\uFF09\u3002\u591A\u7968\u5EAD\u8FD9\u91CC\u586B\u4E3B\u7968\uFF0C\u5176\u4F59\u5404\u7968\u7684\u626B\u6BB5\u5404\u5199\u8FDB ticketSessions \u90A3\u4E00\u7968\u7684 sinceLast\u3002"
|
|
2453
|
+
}
|
|
2454
|
+
);
|
|
2411
2455
|
diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
2412
2456
|
openToolObject(
|
|
2413
2457
|
Type13.Object({
|
|
@@ -2426,11 +2470,13 @@ var init_diarist_contracts = __esm({
|
|
|
2426
2470
|
description: `\u4EC5\u5355\u7968\u5EAD\u65F6\u586B\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002${DIARIST_SESSIONS_DESCRIPTION}`
|
|
2427
2471
|
})),
|
|
2428
2472
|
ticketSessions: Type13.Unknown({
|
|
2429
|
-
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\
|
|
2430
|
-
})
|
|
2473
|
+
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u3001sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u4E0E\u8BE5\u7968\u81EA\u5DF1\u7684 sinceLast\uFF08\u5F62\u72B6\u540C\u9876\u5C42 sinceLast\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002`
|
|
2474
|
+
}),
|
|
2475
|
+
sinceLast: diaristSinceLastSchema
|
|
2431
2476
|
})
|
|
2432
2477
|
)
|
|
2433
2478
|
);
|
|
2479
|
+
diaristOutputSchema.required = ["sinceLast"];
|
|
2434
2480
|
}
|
|
2435
2481
|
});
|
|
2436
2482
|
|
|
@@ -66,7 +66,42 @@ export function projectDiaristTicketSessions(value) {
|
|
|
66
66
|
* 声明只留字段名和语义说明,不留类型、嵌套、长度、必填。
|
|
67
67
|
*/
|
|
68
68
|
export const DIARIST_BOUND_ENDPOINTS = "起点与终点各写 id 或 line,二选一:id=会话卷里那一行 JSON 的 uuid 字段值(没有 uuid 取 id;顶层都没有再取 message 或 payload 里的 uuid / id),同一 id 出现多次时取第一次出现的那一行;line=那一行在文件里从 1 数起的行号。两端都含在区间内。";
|
|
69
|
-
const DIARIST_SESSIONS_DESCRIPTION = `对话边界。每卷含 path(会话卷绝对或可读路径)与 ranges(本卷本轮各区间)。每段区间含 from / to;${DIARIST_BOUND_ENDPOINTS}
|
|
69
|
+
const DIARIST_SESSIONS_DESCRIPTION = `对话边界。每卷含 path(会话卷绝对或可读路径)与 ranges(本卷本轮各区间)。每段区间含 from / to;${DIARIST_BOUND_ENDPOINTS}区间里只有说话人的原文进录:用户与助手消息里的文本、真人经队列的插话、陛下用斜杠命令带的参数(命令名是机器的,参数是陛下说的话);思考、工具调用、工具结果和机器通知不进录,区间可以直接跨过它们,不必拆段。每次交卷的边界照投影追加进本票起居录,不去重,也不改已有的录。空列表=本轮无对话可划。端点无法指名时走 reask,不中止。`;
|
|
70
|
+
/**
|
|
71
|
+
* 2026-10-30 (陛下: #1943 的起居录漏了整场 grill): the gap since the last recorded line is a required cell.
|
|
72
|
+
* Three shapes plus the escalate-only 无法扫: the owner spoke about this ticket in the gap (every such line listed and inside
|
|
73
|
+
* ranges), the owner did not, or this volume has no recorded line yet (new ticket or new volume). Generation-required under ADR 0057's exception;
|
|
74
|
+
* the package still records the receipt as-is.
|
|
75
|
+
*/
|
|
76
|
+
const lastRecordedField = Type.String({
|
|
77
|
+
description: "本票已有起居录里、本卷上次成录的最后一行:照起居录端点写 uuid 或 line",
|
|
78
|
+
});
|
|
79
|
+
export const diaristSinceLastSchema = Type.Union([
|
|
80
|
+
Type.Object({
|
|
81
|
+
lastRecorded: lastRecordedField,
|
|
82
|
+
swept: Type.Array(Type.String(), {
|
|
83
|
+
description: "上次成录末尾到本轮之间,陛下谈本票的每一行,一行一条,照边界端点的写法(uuid,没有 uuid 的写 line);这些行都已划进 ranges",
|
|
84
|
+
}),
|
|
85
|
+
found: Type.Literal("上次成录末尾到本轮之间陛下谈过本票,已划进 ranges"),
|
|
86
|
+
}, { additionalProperties: true }),
|
|
87
|
+
Type.Object({
|
|
88
|
+
lastRecorded: lastRecordedField,
|
|
89
|
+
swept: Type.Null(),
|
|
90
|
+
found: Type.Literal("上次成录末尾到本轮之间陛下没有再谈本票"),
|
|
91
|
+
}, { additionalProperties: true }),
|
|
92
|
+
Type.Object({
|
|
93
|
+
lastRecorded: Type.Null(),
|
|
94
|
+
swept: Type.Null(),
|
|
95
|
+
found: Type.Literal("本卷尚无成录(本票没有起居录,或起居录里没有本卷),本轮从本卷开头收"),
|
|
96
|
+
}, { additionalProperties: true }),
|
|
97
|
+
Type.Object({
|
|
98
|
+
lastRecorded: Type.Null(),
|
|
99
|
+
swept: Type.Null(),
|
|
100
|
+
found: Type.Literal("无法扫:起居录或源卷读不出,本轮 status 只能是 escalate,reason 写明读不出什么"),
|
|
101
|
+
}, { additionalProperties: true }),
|
|
102
|
+
], {
|
|
103
|
+
description: "上次成录以来的扫段:先打开本票已有的起居录,找出本卷上次成录的最后一行,从它的下一行起一直扫到本轮(那一行已在录里,不再划),陛下关于本票说过的每一句都划进 ranges——传召点名的 uuid 只是起点,不是候选集合。四种答法:谈过(逐行列 uuid 或 line)/没有再谈/本卷尚无成录/无法扫(只配 status escalate,不得用来免扫)。多票庭这里填主票,其余各票的扫段各写进 ticketSessions 那一票的 sinceLast。",
|
|
104
|
+
});
|
|
70
105
|
export const diaristOutputSchema = withTerminatingOutputDeclarations(openToolObject(Type.Object({
|
|
71
106
|
status: Type.Unknown({
|
|
72
107
|
description: "completed | escalate",
|
|
@@ -81,6 +116,9 @@ export const diaristOutputSchema = withTerminatingOutputDeclarations(openToolObj
|
|
|
81
116
|
description: `仅单票庭时填对话边界;没有就填 null。${DIARIST_SESSIONS_DESCRIPTION}`,
|
|
82
117
|
})),
|
|
83
118
|
ticketSessions: Type.Unknown({
|
|
84
|
-
description: `仅多票庭时填逐票对话边界;没有就填 null。每票含 ticketNumber
|
|
119
|
+
description: `仅多票庭时填逐票对话边界;没有就填 null。每票含 ticketNumber(本条边界所归票号,正整数)、sessions(${DIARIST_SESSIONS_DESCRIPTION})与该票自己的 sinceLast(形状同顶层 sinceLast)。一次交卷各票各自分录。`,
|
|
85
120
|
}),
|
|
121
|
+
sinceLast: diaristSinceLastSchema,
|
|
86
122
|
})));
|
|
123
|
+
// #1134 emptied the required set; sinceLast is the one generation-required cell (ADR 0057 exception; the package still records as-is).
|
|
124
|
+
diaristOutputSchema.required = ["sinceLast"];
|
|
@@ -2266,7 +2266,7 @@ function projectDiaristTicketSessions(value) {
|
|
|
2266
2266
|
}
|
|
2267
2267
|
return Array.from(perTicket, ([ticketNumber, sessions]) => ({ ticketNumber, sessions }));
|
|
2268
2268
|
}
|
|
2269
|
-
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, diaristOutputSchema;
|
|
2269
|
+
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, lastRecordedField, diaristSinceLastSchema, diaristOutputSchema;
|
|
2270
2270
|
var init_diarist_contracts = __esm({
|
|
2271
2271
|
"src/diarist-contracts.ts"() {
|
|
2272
2272
|
"use strict";
|
|
@@ -2277,7 +2277,51 @@ var init_diarist_contracts = __esm({
|
|
|
2277
2277
|
init_unknown_value();
|
|
2278
2278
|
DIARIST_OUTPUT_TOOL_NAME = "ak_diarist_output";
|
|
2279
2279
|
DIARIST_BOUND_ENDPOINTS = "\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id \u6216 line\uFF0C\u4E8C\u9009\u4E00\uFF1Aid\uFF1D\u4F1A\u8BDD\u5377\u91CC\u90A3\u4E00\u884C JSON \u7684 uuid \u5B57\u6BB5\u503C\uFF08\u6CA1\u6709 uuid \u53D6 id\uFF1B\u9876\u5C42\u90FD\u6CA1\u6709\u518D\u53D6 message \u6216 payload \u91CC\u7684 uuid / id\uFF09\uFF0C\u540C\u4E00 id \u51FA\u73B0\u591A\u6B21\u65F6\u53D6\u7B2C\u4E00\u6B21\u51FA\u73B0\u7684\u90A3\u4E00\u884C\uFF1Bline\uFF1D\u90A3\u4E00\u884C\u5728\u6587\u4EF6\u91CC\u4ECE 1 \u6570\u8D77\u7684\u884C\u53F7\u3002\u4E24\u7AEF\u90FD\u542B\u5728\u533A\u95F4\u5185\u3002";
|
|
2280
|
-
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
2280
|
+
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\u3001\u965B\u4E0B\u7528\u659C\u6760\u547D\u4EE4\u5E26\u7684\u53C2\u6570\uFF08\u547D\u4EE4\u540D\u662F\u673A\u5668\u7684\uFF0C\u53C2\u6570\u662F\u965B\u4E0B\u8BF4\u7684\u8BDD\uFF09\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
2281
|
+
lastRecordedField = Type13.String({
|
|
2282
|
+
description: "\u672C\u7968\u5DF2\u6709\u8D77\u5C45\u5F55\u91CC\u3001\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF1A\u7167\u8D77\u5C45\u5F55\u7AEF\u70B9\u5199 uuid \u6216 line"
|
|
2283
|
+
});
|
|
2284
|
+
diaristSinceLastSchema = Type13.Union(
|
|
2285
|
+
[
|
|
2286
|
+
Type13.Object(
|
|
2287
|
+
{
|
|
2288
|
+
lastRecorded: lastRecordedField,
|
|
2289
|
+
swept: Type13.Array(Type13.String(), {
|
|
2290
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\uFF0C\u965B\u4E0B\u8C08\u672C\u7968\u7684\u6BCF\u4E00\u884C\uFF0C\u4E00\u884C\u4E00\u6761\uFF0C\u7167\u8FB9\u754C\u7AEF\u70B9\u7684\u5199\u6CD5\uFF08uuid\uFF0C\u6CA1\u6709 uuid \u7684\u5199 line\uFF09\uFF1B\u8FD9\u4E9B\u884C\u90FD\u5DF2\u5212\u8FDB ranges"
|
|
2291
|
+
}),
|
|
2292
|
+
found: Type13.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u8C08\u8FC7\u672C\u7968\uFF0C\u5DF2\u5212\u8FDB ranges")
|
|
2293
|
+
},
|
|
2294
|
+
{ additionalProperties: true }
|
|
2295
|
+
),
|
|
2296
|
+
Type13.Object(
|
|
2297
|
+
{
|
|
2298
|
+
lastRecorded: lastRecordedField,
|
|
2299
|
+
swept: Type13.Null(),
|
|
2300
|
+
found: Type13.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u6CA1\u6709\u518D\u8C08\u672C\u7968")
|
|
2301
|
+
},
|
|
2302
|
+
{ additionalProperties: true }
|
|
2303
|
+
),
|
|
2304
|
+
Type13.Object(
|
|
2305
|
+
{
|
|
2306
|
+
lastRecorded: Type13.Null(),
|
|
2307
|
+
swept: Type13.Null(),
|
|
2308
|
+
found: Type13.Literal("\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF08\u672C\u7968\u6CA1\u6709\u8D77\u5C45\u5F55\uFF0C\u6216\u8D77\u5C45\u5F55\u91CC\u6CA1\u6709\u672C\u5377\uFF09\uFF0C\u672C\u8F6E\u4ECE\u672C\u5377\u5F00\u5934\u6536")
|
|
2309
|
+
},
|
|
2310
|
+
{ additionalProperties: true }
|
|
2311
|
+
),
|
|
2312
|
+
Type13.Object(
|
|
2313
|
+
{
|
|
2314
|
+
lastRecorded: Type13.Null(),
|
|
2315
|
+
swept: Type13.Null(),
|
|
2316
|
+
found: Type13.Literal("\u65E0\u6CD5\u626B\uFF1A\u8D77\u5C45\u5F55\u6216\u6E90\u5377\u8BFB\u4E0D\u51FA\uFF0C\u672C\u8F6E status \u53EA\u80FD\u662F escalate\uFF0Creason \u5199\u660E\u8BFB\u4E0D\u51FA\u4EC0\u4E48")
|
|
2317
|
+
},
|
|
2318
|
+
{ additionalProperties: true }
|
|
2319
|
+
)
|
|
2320
|
+
],
|
|
2321
|
+
{
|
|
2322
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u4EE5\u6765\u7684\u626B\u6BB5\uFF1A\u5148\u6253\u5F00\u672C\u7968\u5DF2\u6709\u7684\u8D77\u5C45\u5F55\uFF0C\u627E\u51FA\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF0C\u4ECE\u5B83\u7684\u4E0B\u4E00\u884C\u8D77\u4E00\u76F4\u626B\u5230\u672C\u8F6E\uFF08\u90A3\u4E00\u884C\u5DF2\u5728\u5F55\u91CC\uFF0C\u4E0D\u518D\u5212\uFF09\uFF0C\u965B\u4E0B\u5173\u4E8E\u672C\u7968\u8BF4\u8FC7\u7684\u6BCF\u4E00\u53E5\u90FD\u5212\u8FDB ranges\u2014\u2014\u4F20\u53EC\u70B9\u540D\u7684 uuid \u53EA\u662F\u8D77\u70B9\uFF0C\u4E0D\u662F\u5019\u9009\u96C6\u5408\u3002\u56DB\u79CD\u7B54\u6CD5\uFF1A\u8C08\u8FC7\uFF08\u9010\u884C\u5217 uuid \u6216 line\uFF09\uFF0F\u6CA1\u6709\u518D\u8C08\uFF0F\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF0F\u65E0\u6CD5\u626B\uFF08\u53EA\u914D status escalate\uFF0C\u4E0D\u5F97\u7528\u6765\u514D\u626B\uFF09\u3002\u591A\u7968\u5EAD\u8FD9\u91CC\u586B\u4E3B\u7968\uFF0C\u5176\u4F59\u5404\u7968\u7684\u626B\u6BB5\u5404\u5199\u8FDB ticketSessions \u90A3\u4E00\u7968\u7684 sinceLast\u3002"
|
|
2323
|
+
}
|
|
2324
|
+
);
|
|
2281
2325
|
diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
2282
2326
|
openToolObject(
|
|
2283
2327
|
Type13.Object({
|
|
@@ -2296,11 +2340,13 @@ var init_diarist_contracts = __esm({
|
|
|
2296
2340
|
description: `\u4EC5\u5355\u7968\u5EAD\u65F6\u586B\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002${DIARIST_SESSIONS_DESCRIPTION}`
|
|
2297
2341
|
})),
|
|
2298
2342
|
ticketSessions: Type13.Unknown({
|
|
2299
|
-
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\
|
|
2300
|
-
})
|
|
2343
|
+
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u3001sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u4E0E\u8BE5\u7968\u81EA\u5DF1\u7684 sinceLast\uFF08\u5F62\u72B6\u540C\u9876\u5C42 sinceLast\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002`
|
|
2344
|
+
}),
|
|
2345
|
+
sinceLast: diaristSinceLastSchema
|
|
2301
2346
|
})
|
|
2302
2347
|
)
|
|
2303
2348
|
);
|
|
2349
|
+
diaristOutputSchema.required = ["sinceLast"];
|
|
2304
2350
|
}
|
|
2305
2351
|
});
|
|
2306
2352
|
|
|
@@ -9285,7 +9285,7 @@ var init_ticket_provenance_contracts = __esm({
|
|
|
9285
9285
|
});
|
|
9286
9286
|
|
|
9287
9287
|
// src/diarist-contracts.ts
|
|
9288
|
-
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, diaristOutputSchema;
|
|
9288
|
+
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, lastRecordedField, diaristSinceLastSchema, diaristOutputSchema;
|
|
9289
9289
|
var init_diarist_contracts = __esm({
|
|
9290
9290
|
"src/diarist-contracts.ts"() {
|
|
9291
9291
|
"use strict";
|
|
@@ -9297,7 +9297,51 @@ var init_diarist_contracts = __esm({
|
|
|
9297
9297
|
init_unknown_value();
|
|
9298
9298
|
DIARIST_OUTPUT_TOOL_NAME = "ak_diarist_output";
|
|
9299
9299
|
DIARIST_BOUND_ENDPOINTS = "\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id \u6216 line\uFF0C\u4E8C\u9009\u4E00\uFF1Aid\uFF1D\u4F1A\u8BDD\u5377\u91CC\u90A3\u4E00\u884C JSON \u7684 uuid \u5B57\u6BB5\u503C\uFF08\u6CA1\u6709 uuid \u53D6 id\uFF1B\u9876\u5C42\u90FD\u6CA1\u6709\u518D\u53D6 message \u6216 payload \u91CC\u7684 uuid / id\uFF09\uFF0C\u540C\u4E00 id \u51FA\u73B0\u591A\u6B21\u65F6\u53D6\u7B2C\u4E00\u6B21\u51FA\u73B0\u7684\u90A3\u4E00\u884C\uFF1Bline\uFF1D\u90A3\u4E00\u884C\u5728\u6587\u4EF6\u91CC\u4ECE 1 \u6570\u8D77\u7684\u884C\u53F7\u3002\u4E24\u7AEF\u90FD\u542B\u5728\u533A\u95F4\u5185\u3002";
|
|
9300
|
-
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
9300
|
+
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\u3001\u965B\u4E0B\u7528\u659C\u6760\u547D\u4EE4\u5E26\u7684\u53C2\u6570\uFF08\u547D\u4EE4\u540D\u662F\u673A\u5668\u7684\uFF0C\u53C2\u6570\u662F\u965B\u4E0B\u8BF4\u7684\u8BDD\uFF09\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
9301
|
+
lastRecordedField = typebox_exports.String({
|
|
9302
|
+
description: "\u672C\u7968\u5DF2\u6709\u8D77\u5C45\u5F55\u91CC\u3001\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF1A\u7167\u8D77\u5C45\u5F55\u7AEF\u70B9\u5199 uuid \u6216 line"
|
|
9303
|
+
});
|
|
9304
|
+
diaristSinceLastSchema = typebox_exports.Union(
|
|
9305
|
+
[
|
|
9306
|
+
typebox_exports.Object(
|
|
9307
|
+
{
|
|
9308
|
+
lastRecorded: lastRecordedField,
|
|
9309
|
+
swept: typebox_exports.Array(typebox_exports.String(), {
|
|
9310
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\uFF0C\u965B\u4E0B\u8C08\u672C\u7968\u7684\u6BCF\u4E00\u884C\uFF0C\u4E00\u884C\u4E00\u6761\uFF0C\u7167\u8FB9\u754C\u7AEF\u70B9\u7684\u5199\u6CD5\uFF08uuid\uFF0C\u6CA1\u6709 uuid \u7684\u5199 line\uFF09\uFF1B\u8FD9\u4E9B\u884C\u90FD\u5DF2\u5212\u8FDB ranges"
|
|
9311
|
+
}),
|
|
9312
|
+
found: typebox_exports.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u8C08\u8FC7\u672C\u7968\uFF0C\u5DF2\u5212\u8FDB ranges")
|
|
9313
|
+
},
|
|
9314
|
+
{ additionalProperties: true }
|
|
9315
|
+
),
|
|
9316
|
+
typebox_exports.Object(
|
|
9317
|
+
{
|
|
9318
|
+
lastRecorded: lastRecordedField,
|
|
9319
|
+
swept: typebox_exports.Null(),
|
|
9320
|
+
found: typebox_exports.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u6CA1\u6709\u518D\u8C08\u672C\u7968")
|
|
9321
|
+
},
|
|
9322
|
+
{ additionalProperties: true }
|
|
9323
|
+
),
|
|
9324
|
+
typebox_exports.Object(
|
|
9325
|
+
{
|
|
9326
|
+
lastRecorded: typebox_exports.Null(),
|
|
9327
|
+
swept: typebox_exports.Null(),
|
|
9328
|
+
found: typebox_exports.Literal("\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF08\u672C\u7968\u6CA1\u6709\u8D77\u5C45\u5F55\uFF0C\u6216\u8D77\u5C45\u5F55\u91CC\u6CA1\u6709\u672C\u5377\uFF09\uFF0C\u672C\u8F6E\u4ECE\u672C\u5377\u5F00\u5934\u6536")
|
|
9329
|
+
},
|
|
9330
|
+
{ additionalProperties: true }
|
|
9331
|
+
),
|
|
9332
|
+
typebox_exports.Object(
|
|
9333
|
+
{
|
|
9334
|
+
lastRecorded: typebox_exports.Null(),
|
|
9335
|
+
swept: typebox_exports.Null(),
|
|
9336
|
+
found: typebox_exports.Literal("\u65E0\u6CD5\u626B\uFF1A\u8D77\u5C45\u5F55\u6216\u6E90\u5377\u8BFB\u4E0D\u51FA\uFF0C\u672C\u8F6E status \u53EA\u80FD\u662F escalate\uFF0Creason \u5199\u660E\u8BFB\u4E0D\u51FA\u4EC0\u4E48")
|
|
9337
|
+
},
|
|
9338
|
+
{ additionalProperties: true }
|
|
9339
|
+
)
|
|
9340
|
+
],
|
|
9341
|
+
{
|
|
9342
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u4EE5\u6765\u7684\u626B\u6BB5\uFF1A\u5148\u6253\u5F00\u672C\u7968\u5DF2\u6709\u7684\u8D77\u5C45\u5F55\uFF0C\u627E\u51FA\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF0C\u4ECE\u5B83\u7684\u4E0B\u4E00\u884C\u8D77\u4E00\u76F4\u626B\u5230\u672C\u8F6E\uFF08\u90A3\u4E00\u884C\u5DF2\u5728\u5F55\u91CC\uFF0C\u4E0D\u518D\u5212\uFF09\uFF0C\u965B\u4E0B\u5173\u4E8E\u672C\u7968\u8BF4\u8FC7\u7684\u6BCF\u4E00\u53E5\u90FD\u5212\u8FDB ranges\u2014\u2014\u4F20\u53EC\u70B9\u540D\u7684 uuid \u53EA\u662F\u8D77\u70B9\uFF0C\u4E0D\u662F\u5019\u9009\u96C6\u5408\u3002\u56DB\u79CD\u7B54\u6CD5\uFF1A\u8C08\u8FC7\uFF08\u9010\u884C\u5217 uuid \u6216 line\uFF09\uFF0F\u6CA1\u6709\u518D\u8C08\uFF0F\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF0F\u65E0\u6CD5\u626B\uFF08\u53EA\u914D status escalate\uFF0C\u4E0D\u5F97\u7528\u6765\u514D\u626B\uFF09\u3002\u591A\u7968\u5EAD\u8FD9\u91CC\u586B\u4E3B\u7968\uFF0C\u5176\u4F59\u5404\u7968\u7684\u626B\u6BB5\u5404\u5199\u8FDB ticketSessions \u90A3\u4E00\u7968\u7684 sinceLast\u3002"
|
|
9343
|
+
}
|
|
9344
|
+
);
|
|
9301
9345
|
diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
9302
9346
|
openToolObject(
|
|
9303
9347
|
typebox_exports.Object({
|
|
@@ -9316,11 +9360,13 @@ var init_diarist_contracts = __esm({
|
|
|
9316
9360
|
description: `\u4EC5\u5355\u7968\u5EAD\u65F6\u586B\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002${DIARIST_SESSIONS_DESCRIPTION}`
|
|
9317
9361
|
})),
|
|
9318
9362
|
ticketSessions: typebox_exports.Unknown({
|
|
9319
|
-
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\
|
|
9320
|
-
})
|
|
9363
|
+
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u3001sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u4E0E\u8BE5\u7968\u81EA\u5DF1\u7684 sinceLast\uFF08\u5F62\u72B6\u540C\u9876\u5C42 sinceLast\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002`
|
|
9364
|
+
}),
|
|
9365
|
+
sinceLast: diaristSinceLastSchema
|
|
9321
9366
|
})
|
|
9322
9367
|
)
|
|
9323
9368
|
);
|
|
9369
|
+
diaristOutputSchema.required = ["sinceLast"];
|
|
9324
9370
|
}
|
|
9325
9371
|
});
|
|
9326
9372
|
|
package/dist/public-cli/main.js
CHANGED
|
@@ -9771,7 +9771,7 @@ var init_ticket_provenance_contracts = __esm({
|
|
|
9771
9771
|
});
|
|
9772
9772
|
|
|
9773
9773
|
// src/diarist-contracts.ts
|
|
9774
|
-
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, diaristOutputSchema;
|
|
9774
|
+
var DIARIST_OUTPUT_TOOL_NAME, DIARIST_BOUND_ENDPOINTS, DIARIST_SESSIONS_DESCRIPTION, lastRecordedField, diaristSinceLastSchema, diaristOutputSchema;
|
|
9775
9775
|
var init_diarist_contracts = __esm({
|
|
9776
9776
|
"src/diarist-contracts.ts"() {
|
|
9777
9777
|
"use strict";
|
|
@@ -9783,7 +9783,51 @@ var init_diarist_contracts = __esm({
|
|
|
9783
9783
|
init_unknown_value();
|
|
9784
9784
|
DIARIST_OUTPUT_TOOL_NAME = "ak_diarist_output";
|
|
9785
9785
|
DIARIST_BOUND_ENDPOINTS = "\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id \u6216 line\uFF0C\u4E8C\u9009\u4E00\uFF1Aid\uFF1D\u4F1A\u8BDD\u5377\u91CC\u90A3\u4E00\u884C JSON \u7684 uuid \u5B57\u6BB5\u503C\uFF08\u6CA1\u6709 uuid \u53D6 id\uFF1B\u9876\u5C42\u90FD\u6CA1\u6709\u518D\u53D6 message \u6216 payload \u91CC\u7684 uuid / id\uFF09\uFF0C\u540C\u4E00 id \u51FA\u73B0\u591A\u6B21\u65F6\u53D6\u7B2C\u4E00\u6B21\u51FA\u73B0\u7684\u90A3\u4E00\u884C\uFF1Bline\uFF1D\u90A3\u4E00\u884C\u5728\u6587\u4EF6\u91CC\u4ECE 1 \u6570\u8D77\u7684\u884C\u53F7\u3002\u4E24\u7AEF\u90FD\u542B\u5728\u533A\u95F4\u5185\u3002";
|
|
9786
|
-
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
9786
|
+
DIARIST_SESSIONS_DESCRIPTION = `\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B${DIARIST_BOUND_ENDPOINTS}\u533A\u95F4\u91CC\u53EA\u6709\u8BF4\u8BDD\u4EBA\u7684\u539F\u6587\u8FDB\u5F55\uFF1A\u7528\u6237\u4E0E\u52A9\u624B\u6D88\u606F\u91CC\u7684\u6587\u672C\u3001\u771F\u4EBA\u7ECF\u961F\u5217\u7684\u63D2\u8BDD\u3001\u965B\u4E0B\u7528\u659C\u6760\u547D\u4EE4\u5E26\u7684\u53C2\u6570\uFF08\u547D\u4EE4\u540D\u662F\u673A\u5668\u7684\uFF0C\u53C2\u6570\u662F\u965B\u4E0B\u8BF4\u7684\u8BDD\uFF09\uFF1B\u601D\u8003\u3001\u5DE5\u5177\u8C03\u7528\u3001\u5DE5\u5177\u7ED3\u679C\u548C\u673A\u5668\u901A\u77E5\u4E0D\u8FDB\u5F55\uFF0C\u533A\u95F4\u53EF\u4EE5\u76F4\u63A5\u8DE8\u8FC7\u5B83\u4EEC\uFF0C\u4E0D\u5FC5\u62C6\u6BB5\u3002\u6BCF\u6B21\u4EA4\u5377\u7684\u8FB9\u754C\u7167\u6295\u5F71\u8FFD\u52A0\u8FDB\u672C\u7968\u8D77\u5C45\u5F55\uFF0C\u4E0D\u53BB\u91CD\uFF0C\u4E5F\u4E0D\u6539\u5DF2\u6709\u7684\u5F55\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002`;
|
|
9787
|
+
lastRecordedField = typebox_exports.String({
|
|
9788
|
+
description: "\u672C\u7968\u5DF2\u6709\u8D77\u5C45\u5F55\u91CC\u3001\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF1A\u7167\u8D77\u5C45\u5F55\u7AEF\u70B9\u5199 uuid \u6216 line"
|
|
9789
|
+
});
|
|
9790
|
+
diaristSinceLastSchema = typebox_exports.Union(
|
|
9791
|
+
[
|
|
9792
|
+
typebox_exports.Object(
|
|
9793
|
+
{
|
|
9794
|
+
lastRecorded: lastRecordedField,
|
|
9795
|
+
swept: typebox_exports.Array(typebox_exports.String(), {
|
|
9796
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\uFF0C\u965B\u4E0B\u8C08\u672C\u7968\u7684\u6BCF\u4E00\u884C\uFF0C\u4E00\u884C\u4E00\u6761\uFF0C\u7167\u8FB9\u754C\u7AEF\u70B9\u7684\u5199\u6CD5\uFF08uuid\uFF0C\u6CA1\u6709 uuid \u7684\u5199 line\uFF09\uFF1B\u8FD9\u4E9B\u884C\u90FD\u5DF2\u5212\u8FDB ranges"
|
|
9797
|
+
}),
|
|
9798
|
+
found: typebox_exports.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u8C08\u8FC7\u672C\u7968\uFF0C\u5DF2\u5212\u8FDB ranges")
|
|
9799
|
+
},
|
|
9800
|
+
{ additionalProperties: true }
|
|
9801
|
+
),
|
|
9802
|
+
typebox_exports.Object(
|
|
9803
|
+
{
|
|
9804
|
+
lastRecorded: lastRecordedField,
|
|
9805
|
+
swept: typebox_exports.Null(),
|
|
9806
|
+
found: typebox_exports.Literal("\u4E0A\u6B21\u6210\u5F55\u672B\u5C3E\u5230\u672C\u8F6E\u4E4B\u95F4\u965B\u4E0B\u6CA1\u6709\u518D\u8C08\u672C\u7968")
|
|
9807
|
+
},
|
|
9808
|
+
{ additionalProperties: true }
|
|
9809
|
+
),
|
|
9810
|
+
typebox_exports.Object(
|
|
9811
|
+
{
|
|
9812
|
+
lastRecorded: typebox_exports.Null(),
|
|
9813
|
+
swept: typebox_exports.Null(),
|
|
9814
|
+
found: typebox_exports.Literal("\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF08\u672C\u7968\u6CA1\u6709\u8D77\u5C45\u5F55\uFF0C\u6216\u8D77\u5C45\u5F55\u91CC\u6CA1\u6709\u672C\u5377\uFF09\uFF0C\u672C\u8F6E\u4ECE\u672C\u5377\u5F00\u5934\u6536")
|
|
9815
|
+
},
|
|
9816
|
+
{ additionalProperties: true }
|
|
9817
|
+
),
|
|
9818
|
+
typebox_exports.Object(
|
|
9819
|
+
{
|
|
9820
|
+
lastRecorded: typebox_exports.Null(),
|
|
9821
|
+
swept: typebox_exports.Null(),
|
|
9822
|
+
found: typebox_exports.Literal("\u65E0\u6CD5\u626B\uFF1A\u8D77\u5C45\u5F55\u6216\u6E90\u5377\u8BFB\u4E0D\u51FA\uFF0C\u672C\u8F6E status \u53EA\u80FD\u662F escalate\uFF0Creason \u5199\u660E\u8BFB\u4E0D\u51FA\u4EC0\u4E48")
|
|
9823
|
+
},
|
|
9824
|
+
{ additionalProperties: true }
|
|
9825
|
+
)
|
|
9826
|
+
],
|
|
9827
|
+
{
|
|
9828
|
+
description: "\u4E0A\u6B21\u6210\u5F55\u4EE5\u6765\u7684\u626B\u6BB5\uFF1A\u5148\u6253\u5F00\u672C\u7968\u5DF2\u6709\u7684\u8D77\u5C45\u5F55\uFF0C\u627E\u51FA\u672C\u5377\u4E0A\u6B21\u6210\u5F55\u7684\u6700\u540E\u4E00\u884C\uFF0C\u4ECE\u5B83\u7684\u4E0B\u4E00\u884C\u8D77\u4E00\u76F4\u626B\u5230\u672C\u8F6E\uFF08\u90A3\u4E00\u884C\u5DF2\u5728\u5F55\u91CC\uFF0C\u4E0D\u518D\u5212\uFF09\uFF0C\u965B\u4E0B\u5173\u4E8E\u672C\u7968\u8BF4\u8FC7\u7684\u6BCF\u4E00\u53E5\u90FD\u5212\u8FDB ranges\u2014\u2014\u4F20\u53EC\u70B9\u540D\u7684 uuid \u53EA\u662F\u8D77\u70B9\uFF0C\u4E0D\u662F\u5019\u9009\u96C6\u5408\u3002\u56DB\u79CD\u7B54\u6CD5\uFF1A\u8C08\u8FC7\uFF08\u9010\u884C\u5217 uuid \u6216 line\uFF09\uFF0F\u6CA1\u6709\u518D\u8C08\uFF0F\u672C\u5377\u5C1A\u65E0\u6210\u5F55\uFF0F\u65E0\u6CD5\u626B\uFF08\u53EA\u914D status escalate\uFF0C\u4E0D\u5F97\u7528\u6765\u514D\u626B\uFF09\u3002\u591A\u7968\u5EAD\u8FD9\u91CC\u586B\u4E3B\u7968\uFF0C\u5176\u4F59\u5404\u7968\u7684\u626B\u6BB5\u5404\u5199\u8FDB ticketSessions \u90A3\u4E00\u7968\u7684 sinceLast\u3002"
|
|
9829
|
+
}
|
|
9830
|
+
);
|
|
9787
9831
|
diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
9788
9832
|
openToolObject(
|
|
9789
9833
|
typebox_exports.Object({
|
|
@@ -9802,11 +9846,13 @@ var init_diarist_contracts = __esm({
|
|
|
9802
9846
|
description: `\u4EC5\u5355\u7968\u5EAD\u65F6\u586B\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002${DIARIST_SESSIONS_DESCRIPTION}`
|
|
9803
9847
|
})),
|
|
9804
9848
|
ticketSessions: typebox_exports.Unknown({
|
|
9805
|
-
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\
|
|
9806
|
-
})
|
|
9849
|
+
description: `\u4EC5\u591A\u7968\u5EAD\u65F6\u586B\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6CA1\u6709\u5C31\u586B null\u3002\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u3001sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u4E0E\u8BE5\u7968\u81EA\u5DF1\u7684 sinceLast\uFF08\u5F62\u72B6\u540C\u9876\u5C42 sinceLast\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002`
|
|
9850
|
+
}),
|
|
9851
|
+
sinceLast: diaristSinceLastSchema
|
|
9807
9852
|
})
|
|
9808
9853
|
)
|
|
9809
9854
|
);
|
|
9855
|
+
diaristOutputSchema.required = ["sinceLast"];
|
|
9810
9856
|
}
|
|
9811
9857
|
});
|
|
9812
9858
|
|
|
@@ -4,7 +4,7 @@ Status: accepted
|
|
|
4
4
|
|
|
5
5
|
交卷工具 schema 保留字段声明与 description;非审核席维持零 required(含记账位)、顶层开放额外属性的原决定。审核席的判别字段 status 则为三态枚举且必填,没有省略 status 的失败例外。审核席仍能交卷、而完成审核所需的外部依赖发生真实基础设施失败时,status 取上呈值,失败细节写入既有 infrastructureFailure;这不是放行或封驳。执行或宿主已失败、审核席无法交卷时,仍由宿主如实失败终局。
|
|
6
6
|
|
|
7
|
-
例外一处(2026-10-29 陛下拍,PR #1285):各席的核旨表与存废尺表是生成必填的——符宝郎 clauses(#1195 起)与 adr(ADR 落处表,#1286
|
|
7
|
+
例外一处(2026-10-29 陛下拍,PR #1285):各席的核旨表与存废尺表是生成必填的——符宝郎 clauses(#1195 起)与 adr(ADR 落处表,#1286 起)、起居郎 sinceLast(上次成录以来的扫段)、台院 ticketComplexity/mechanisms、审刑院 mechanisms/runtime、大理寺 mechanisms、给事中与中书省 existence;中书省虽非三态审核席,这张表同样必填。必填只作用于宿主生成端,包侧仍照本条只记录、不拒收。
|
|
8
8
|
|
|
9
9
|
包侧收卷:审核席除判别字段外,其余字段不必填、不限制,允许额外属性;声明不是包侧校验授权,包不因格式拒收或判死;判别字段没填或读不出时只说读不出并附收到的值,不在重交提示里另写一套状态名。key 名字不必逐字相同,合不合格由审刑院按是否读得懂来判。
|
|
10
10
|
|
package/package.json
CHANGED
package/souls/diarist.md
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
你为本案找齐并整理决策依据,收进本票已有的起居录。你只记录已经作出的决定,不立法、不批准设计、不指挥施工。
|
|
4
4
|
|
|
5
5
|
- 相关性由你裁决:不把票面已列出的材料当完整候选集合,也不以票号、引语或关键词未命中作为排除依据。
|
|
6
|
-
-
|
|
6
|
+
- 本票已有起居录的,先打开它,找出本卷上次成录的最后一行,从它的下一行起一直扫到本轮(那一行本身已在录里,不再划):陛下关于本票说过的每一句都划进 ranges,不论本轮传召点名的是哪几句——点名的 uuid 只是起点,不是候选集合。本卷尚无成录的(本票没有起居录,或起居录里没有这一卷)从本卷开头收。扫过的这段写进 sinceLast(多票庭每票各写一份);起居录或源卷读不出,sinceLast 写无法扫并上呈,不编一个「没有再谈」。
|
|
7
|
+
- 分清身份:陛下(owner)的决定、助手的提议、正式裁决、你自己的整理解释,四者不得混同;建议不得写成授权。看说话的人,不看包装:陛下用斜杠命令带的参数、经队列插的话,都是陛下的话。
|
|
7
8
|
- 导航而非重写:已有设计与法源以原件指针加简短关系说明引用,不复制成第二份规范。
|
|
8
9
|
- 分清现行与历史:被修订替代的决定保留出处,但不与当前方向并列。
|
|
9
10
|
- 缺录、不可读、引用无法核实时如实说明,不猜成事实,不以缺失充当"没有问题"。
|
package/src/diarist-contracts.ts
CHANGED
|
@@ -39,14 +39,25 @@ export type DiaristOutput =
|
|
|
39
39
|
readonly ticketSessions?: readonly {
|
|
40
40
|
readonly ticketNumber: number;
|
|
41
41
|
readonly sessions: readonly TicketProvenanceSession[];
|
|
42
|
+
readonly sinceLast?: DiaristSinceLast;
|
|
42
43
|
}[];
|
|
44
|
+
/** 2026-10-30: the sweep since the last recorded line (generation-required; the package records as-is, so typed as optional). */
|
|
45
|
+
readonly sinceLast?: DiaristSinceLast;
|
|
43
46
|
}
|
|
44
47
|
| {
|
|
45
48
|
/** LLM cannot sign this round normally (Soul) — escalate, never wash into 无录. */
|
|
46
49
|
readonly status: "escalate";
|
|
47
50
|
readonly reason: string;
|
|
51
|
+
/** On the escalate path the honest shape is 无法扫 (or whatever was actually swept before the failure). */
|
|
52
|
+
readonly sinceLast?: DiaristSinceLast;
|
|
48
53
|
};
|
|
49
54
|
|
|
55
|
+
export type DiaristSinceLast =
|
|
56
|
+
| { readonly lastRecorded: string; readonly swept: readonly string[]; readonly found: "上次成录末尾到本轮之间陛下谈过本票,已划进 ranges" }
|
|
57
|
+
| { readonly lastRecorded: string; readonly swept: null; readonly found: "上次成录末尾到本轮之间陛下没有再谈本票" }
|
|
58
|
+
| { readonly lastRecorded: null; readonly swept: null; readonly found: "本卷尚无成录(本票没有起居录,或起居录里没有本卷),本轮从本卷开头收" }
|
|
59
|
+
| { readonly lastRecorded: null; readonly swept: null; readonly found: "无法扫:起居录或源卷读不出,本轮 status 只能是 escalate,reason 写明读不出什么" };
|
|
60
|
+
|
|
50
61
|
export function validateRecordedDiaristOutput(value: unknown): DiaristOutput {
|
|
51
62
|
if (!isRecord(value)) {
|
|
52
63
|
throw new Error("Diarist output has no execution discriminator");
|
|
@@ -104,7 +115,59 @@ export const DIARIST_BOUND_ENDPOINTS =
|
|
|
104
115
|
"起点与终点各写 id 或 line,二选一:id=会话卷里那一行 JSON 的 uuid 字段值(没有 uuid 取 id;顶层都没有再取 message 或 payload 里的 uuid / id),同一 id 出现多次时取第一次出现的那一行;line=那一行在文件里从 1 数起的行号。两端都含在区间内。" as const;
|
|
105
116
|
|
|
106
117
|
const DIARIST_SESSIONS_DESCRIPTION =
|
|
107
|
-
`对话边界。每卷含 path(会话卷绝对或可读路径)与 ranges(本卷本轮各区间)。每段区间含 from / to;${DIARIST_BOUND_ENDPOINTS}
|
|
118
|
+
`对话边界。每卷含 path(会话卷绝对或可读路径)与 ranges(本卷本轮各区间)。每段区间含 from / to;${DIARIST_BOUND_ENDPOINTS}区间里只有说话人的原文进录:用户与助手消息里的文本、真人经队列的插话、陛下用斜杠命令带的参数(命令名是机器的,参数是陛下说的话);思考、工具调用、工具结果和机器通知不进录,区间可以直接跨过它们,不必拆段。每次交卷的边界照投影追加进本票起居录,不去重,也不改已有的录。空列表=本轮无对话可划。端点无法指名时走 reask,不中止。` as const;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* 2026-10-30 (陛下: #1943 的起居录漏了整场 grill): the gap since the last recorded line is a required cell.
|
|
122
|
+
* Three shapes plus the escalate-only 无法扫: the owner spoke about this ticket in the gap (every such line listed and inside
|
|
123
|
+
* ranges), the owner did not, or this volume has no recorded line yet (new ticket or new volume). Generation-required under ADR 0057's exception;
|
|
124
|
+
* the package still records the receipt as-is.
|
|
125
|
+
*/
|
|
126
|
+
const lastRecordedField = Type.String({
|
|
127
|
+
description: "本票已有起居录里、本卷上次成录的最后一行:照起居录端点写 uuid 或 line",
|
|
128
|
+
});
|
|
129
|
+
export const diaristSinceLastSchema = Type.Union(
|
|
130
|
+
[
|
|
131
|
+
Type.Object(
|
|
132
|
+
{
|
|
133
|
+
lastRecorded: lastRecordedField,
|
|
134
|
+
swept: Type.Array(Type.String(), {
|
|
135
|
+
description: "上次成录末尾到本轮之间,陛下谈本票的每一行,一行一条,照边界端点的写法(uuid,没有 uuid 的写 line);这些行都已划进 ranges",
|
|
136
|
+
}),
|
|
137
|
+
found: Type.Literal("上次成录末尾到本轮之间陛下谈过本票,已划进 ranges"),
|
|
138
|
+
},
|
|
139
|
+
{ additionalProperties: true },
|
|
140
|
+
),
|
|
141
|
+
Type.Object(
|
|
142
|
+
{
|
|
143
|
+
lastRecorded: lastRecordedField,
|
|
144
|
+
swept: Type.Null(),
|
|
145
|
+
found: Type.Literal("上次成录末尾到本轮之间陛下没有再谈本票"),
|
|
146
|
+
},
|
|
147
|
+
{ additionalProperties: true },
|
|
148
|
+
),
|
|
149
|
+
Type.Object(
|
|
150
|
+
{
|
|
151
|
+
lastRecorded: Type.Null(),
|
|
152
|
+
swept: Type.Null(),
|
|
153
|
+
found: Type.Literal("本卷尚无成录(本票没有起居录,或起居录里没有本卷),本轮从本卷开头收"),
|
|
154
|
+
},
|
|
155
|
+
{ additionalProperties: true },
|
|
156
|
+
),
|
|
157
|
+
Type.Object(
|
|
158
|
+
{
|
|
159
|
+
lastRecorded: Type.Null(),
|
|
160
|
+
swept: Type.Null(),
|
|
161
|
+
found: Type.Literal("无法扫:起居录或源卷读不出,本轮 status 只能是 escalate,reason 写明读不出什么"),
|
|
162
|
+
},
|
|
163
|
+
{ additionalProperties: true },
|
|
164
|
+
),
|
|
165
|
+
],
|
|
166
|
+
{
|
|
167
|
+
description:
|
|
168
|
+
"上次成录以来的扫段:先打开本票已有的起居录,找出本卷上次成录的最后一行,从它的下一行起一直扫到本轮(那一行已在录里,不再划),陛下关于本票说过的每一句都划进 ranges——传召点名的 uuid 只是起点,不是候选集合。四种答法:谈过(逐行列 uuid 或 line)/没有再谈/本卷尚无成录/无法扫(只配 status escalate,不得用来免扫)。多票庭这里填主票,其余各票的扫段各写进 ticketSessions 那一票的 sinceLast。",
|
|
169
|
+
},
|
|
170
|
+
);
|
|
108
171
|
|
|
109
172
|
export const diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
110
173
|
openToolObject(
|
|
@@ -125,8 +188,11 @@ export const diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
|
125
188
|
description: `仅单票庭时填对话边界;没有就填 null。${DIARIST_SESSIONS_DESCRIPTION}`,
|
|
126
189
|
})),
|
|
127
190
|
ticketSessions: Type.Unknown({
|
|
128
|
-
description: `仅多票庭时填逐票对话边界;没有就填 null。每票含 ticketNumber
|
|
191
|
+
description: `仅多票庭时填逐票对话边界;没有就填 null。每票含 ticketNumber(本条边界所归票号,正整数)、sessions(${DIARIST_SESSIONS_DESCRIPTION})与该票自己的 sinceLast(形状同顶层 sinceLast)。一次交卷各票各自分录。`,
|
|
129
192
|
}),
|
|
193
|
+
sinceLast: diaristSinceLastSchema,
|
|
130
194
|
}),
|
|
131
195
|
),
|
|
132
196
|
);
|
|
197
|
+
// #1134 emptied the required set; sinceLast is the one generation-required cell (ADR 0057 exception; the package still records as-is).
|
|
198
|
+
(diaristOutputSchema as unknown as { required: string[] }).required = ["sinceLast"];
|