@akagilnc/pi-workflow-roles 0.1.6063 → 0.1.6071
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.zh-CN.md +1 -1
- package/dist/acp-host/production-host.js +34 -10
- package/dist/headless-host/production-host.js +34 -10
- package/dist/migrate-book-topology.js +34 -10
- package/dist/public-cli/main.js +34 -10
- package/dist/review-submission.js +25 -8
- package/dist/role-submission-declarations.js +3 -3
- package/package.json +1 -1
- package/souls/countersign.md +1 -1
- package/src/review-submission.ts +48 -8
- package/src/role-submission-declarations.ts +3 -3
package/README.zh-CN.md
CHANGED
|
@@ -140,7 +140,7 @@ ak-role --model <provider/model[:thinking]> resume <runId> "<裁定>"
|
|
|
140
140
|
|
|
141
141
|
## 班子(唐宋官署命名)
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
名号与本厂术语的正名见 [GLOSSARY.md](GLOSSARY.md);名号判据、朝廷对应与机器键边界见 [ADR 0051](https://github.com/Akagilnc/ak-pi-workflow-roles/blob/main/docs/adr/0051-roles-are-named-after-tang-song-offices.md)。下表为名号索引。
|
|
144
144
|
|
|
145
145
|
| 名号 | 席位 | 职掌 |
|
|
146
146
|
| --- | --- | --- |
|
|
@@ -1682,7 +1682,7 @@ var init_navigator_output = __esm({
|
|
|
1682
1682
|
|
|
1683
1683
|
// src/review-submission.ts
|
|
1684
1684
|
import { Type as Type5 } from "typebox";
|
|
1685
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
1685
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, existenceRowUnion, MECHANISM_LABELS, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, clauseRowBase, CLAUSE_LABELS, clauseExistenceRowSchema, countersignSubmissionSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
1686
1686
|
var init_review_submission = __esm({
|
|
1687
1687
|
"src/review-submission.ts"() {
|
|
1688
1688
|
"use strict";
|
|
@@ -1779,39 +1779,63 @@ var init_review_submission = __esm({
|
|
|
1779
1779
|
layer: Type5.Integer({ description: "\u4ECE\u672C\u7968\u8D77\u70B9\u5230 HEAD\uFF0C\u8FD9\u662F\u7B2C\u51E0\u5904\u8FD9\u6837\u7684\u65B0\u589E\uFF08\u542B\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\uFF09" })
|
|
1780
1780
|
};
|
|
1781
1781
|
MECHANISM_FRAMEWORK_RULE = "\u6846\u67B6\u662F\u4ED3\u5E93 ADR \u6216\u7968\u9762\u70B9\u540D\u7684\u90A3\u4E00\u4E2A\uFF08\u8BFB\u5199\u6A21\u578B\u3001Web\u3001\u6D4B\u8BD5\u7B49\u6846\u67B6\uFF09\uFF0C\u4E0D\u662F\u5E2D\u4F4D\u81EA\u9009\uFF1B\u5B9E\u73B0\u8FD9\u4E00\u5C42\u6240\u7528\u7684\u5E93\uFF08ORM\u3001\u7F13\u5B58\u5E93\u3001\u89E3\u6790\u5E93\uFF09\u4E0D\u662F\u6846\u67B6\uFF0C\u5B83\u7684 API \u9875\u6216\u793A\u4F8B\u586B\u4E0D\u8FDB\u8FD9\u683C\u2014\u2014\u90A3\u7B54\u7684\u662F\u300C\u8FD9\u5C42\u600E\u4E48\u505A\u300D\uFF0C\u8FD9\u683C\u95EE\u7684\u662F\u300C\u793A\u8303\u4E0D\u5E26\u8FD9\u5C42\u600E\u4E48\u529E\u300D";
|
|
1782
|
-
|
|
1782
|
+
existenceRowUnion = (base, labels, extra = {}) => Type5.Union(
|
|
1783
1783
|
[
|
|
1784
1784
|
Type5.Object(
|
|
1785
1785
|
{
|
|
1786
|
-
...
|
|
1786
|
+
...base,
|
|
1787
1787
|
official: Type5.String({
|
|
1788
1788
|
description: `\u8FD9\u6BB5\u4EE3\u7801\u6240\u5C5E\u5E94\u7528\u6846\u67B6\u7684\u5B98\u65B9\u793A\u8303\u91CC\uFF0C\u4E0D\u5E26\u8FD9\u4E00\u5C42\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\uFF1A\u5148\u5199\u6846\u67B6\u540D\uFF0C\u518D\u94FE\u63A5\uFF0B\u539F\u53E5\uFF08\u793A\u8303\u91CC\u76F4\u63A5\u8BFB\u3001\u76F4\u63A5\u67E5\u3001\u4EA4\u7ED9\u6846\u67B6\u54EA\u9879\u8BBE\u7F6E\uFF09\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
1789
1789
|
}),
|
|
1790
|
-
disposition: Type5.Literal(
|
|
1790
|
+
disposition: Type5.Literal(labels.without, { description: "official \u586B\u4E86\u5B57\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
1791
1791
|
...extra
|
|
1792
1792
|
},
|
|
1793
1793
|
{ additionalProperties: true }
|
|
1794
1794
|
),
|
|
1795
1795
|
Type5.Object(
|
|
1796
1796
|
{
|
|
1797
|
-
...
|
|
1797
|
+
...base,
|
|
1798
1798
|
official: Type5.Null({
|
|
1799
|
-
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728
|
|
1799
|
+
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728 ${labels.evidenceField} \u672B\u5C3E\u5199\u6846\u67B6\u540D\u4E0E\u793A\u8303\u91CC\u90A3\u4E00\u5904\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
1800
1800
|
}),
|
|
1801
|
-
disposition: Type5.Literal(
|
|
1801
|
+
disposition: Type5.Literal(labels.carries, { description: "official \u4E3A null\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
1802
1802
|
...extra
|
|
1803
1803
|
},
|
|
1804
1804
|
{ additionalProperties: true }
|
|
1805
1805
|
)
|
|
1806
1806
|
],
|
|
1807
|
-
{ description:
|
|
1807
|
+
{ description: `\u4E24\u79CD\u884C\u5F62\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86\uFF08official \u586B\u5B57\uFF0C${labels.without.split("\uFF1A")[0]}\uFF09\uFF1B\u793A\u8303\u672C\u8EAB\u5C31\u5E26\u540C\u6837\u7684\u5C42\uFF08official null\uFF0C${labels.carries.split("\uFF1A")[0]}\uFF09` }
|
|
1808
1808
|
);
|
|
1809
|
+
MECHANISM_LABELS = { without: "\u5220\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u7559\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "keeps" };
|
|
1810
|
+
mechanismRowUnion = (extra = {}) => existenceRowUnion(mechanismRowBase, MECHANISM_LABELS, extra);
|
|
1809
1811
|
mechanismRowSchema = mechanismRowUnion();
|
|
1810
1812
|
auditorMechanismRowSchema = mechanismRowUnion({
|
|
1811
1813
|
judgeSaid: Type5.Union([Type5.String(), Type5.Null()], {
|
|
1812
1814
|
description: "\u5927\u7406\u5BFA\u5224\u8BCD\u91CC\u88C1\u5230\u8FD9\u4E00\u5C42\u7684\u90A3\u53E5\u539F\u6587\uFF08\u7167\u6284\uFF09\uFF1B\u5224\u8BCD\u6CA1\u63D0\u8FD9\u4E00\u5C42\uFF0C\u586B null"
|
|
1813
1815
|
})
|
|
1814
1816
|
});
|
|
1817
|
+
clauseRowBase = {
|
|
1818
|
+
clause: Type5.String({ description: "\u73B0\u884C\u7968\u9762\u91CC\u8BA9\u67D0\u4E2A\u673A\u5236\u5B58\u5728\u7684\u90A3\u6761\u6761\u6B3E\u539F\u6587\uFF08\u7167\u6284\uFF0C\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09" }),
|
|
1819
|
+
kind: Type5.Union(
|
|
1820
|
+
[Type5.Literal("\u660E\u5199\u673A\u5236\uFF1A\u6761\u6B3E\u81EA\u5DF1\u70B9\u540D\u4E86\u72B6\u6001\u3001\u8868\u3001\u7F13\u5B58\u3001\u9501\u3001\u4F9D\u8D56"), Type5.Literal("\u53EA\u5199\u7ED3\u679C\uFF1A\u6761\u6B3E\u53EA\u63D0\u8981\u6C42\uFF0C\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\uFF0C\u5F97\u957F\u51FA\u673A\u5236\u624D\u505A\u5F97\u5230")],
|
|
1821
|
+
{ description: "\u4E24\u7C7B\u90FD\u8981\u5217\u3002\u7B2C\u4E8C\u7C7B\u6700\u5BB9\u6613\u6F0F\uFF1A\u96F6\u91CD\u590D\u3001\u8DE8\u63D0\u4EA4\u4E0D\u91CD\u8BFB\u3001\u4E0D\u5EFA\u8C41\u514D\u3001\u6BCF X \u53EA\u505A\u4E00\u6B21\u3001\u6C38\u4E0D Y\u2014\u2014\u8FD9\u79CD\u53E5\u5B50\u6CA1\u5199\u673A\u5236\u4E24\u4E2A\u5B57\uFF0C\u5374\u53EA\u80FD\u9760\u65B0\u72B6\u6001\u3001\u7F13\u5B58\u3001\u5931\u6548\u89C4\u5219\u6EE1\u8DB3\uFF1B\u5148\u6253\u5F00\u73B0\u72B6\u4EE3\u7801\u6838\u4E00\u904D\u5B83\u505A\u4E0D\u505A\u5F97\u5230\uFF0C\u505A\u4E0D\u5230\u5C31\u662F\u8FD9\u7C7B" }
|
|
1822
|
+
),
|
|
1823
|
+
makes: Type5.String({ description: "\u8FD9\u6761\u6761\u6B3E\u843D\u5B9E\u540E\u4F1A\u8BA9\u4EC0\u4E48\u4E1C\u897F\u5B58\u5728\uFF1A\u8DE8\u8C03\u7528\u4FDD\u5B58\u7684\u72B6\u6001\u3001\u7F13\u5B58\u3001\u9501\u3001\u5931\u6548\u89C4\u5219\u3001\u9884\u8BA1\u7B97\u3001\u65B0\u4F9D\u8D56\uFF1B\u5199\u51FA\u5B83\u7684\u5F62\u72B6\u3002\u53EA\u5199\u7ED3\u679C\u7684\u6761\u6B3E\uFF0C\u5199\u6EE1\u8DB3\u5B83\u5FC5\u987B\u957F\u51FA\u7684\u90A3\u6837\u4E1C\u897F" })
|
|
1824
|
+
};
|
|
1825
|
+
CLAUSE_LABELS = { without: "\u4E0D\u8981\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u8981\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "makes" };
|
|
1826
|
+
clauseExistenceRowSchema = existenceRowUnion(clauseRowBase, CLAUSE_LABELS);
|
|
1827
|
+
countersignSubmissionSchema = withTerminatingOutputDeclarations(
|
|
1828
|
+
Type5.Object(
|
|
1829
|
+
{
|
|
1830
|
+
status: reviewStatusField,
|
|
1831
|
+
...reviewNarrativeFields,
|
|
1832
|
+
existence: Type5.Array(clauseExistenceRowSchema, {
|
|
1833
|
+
description: "\u5B58\u5E9F\u5C3A\uFF1A\u73B0\u884C\u7968\u9762\u6BCF\u6761\u8BA9\u673A\u5236\u5B58\u5728\u7684\u6761\u6B3E\u5404\u4E00\u884C\u2014\u2014\u660E\u5199\u673A\u5236\u7684\uFF0C\u548C\u53EA\u5199\u7ED3\u679C\u8981\u6C42\u3001\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\u7684\uFF0C\u4E24\u7C7B\u90FD\u7B97\u2014\u2014\u5230 ADR\uFF0F\u7968\u9762\u70B9\u540D\u7684\u5E94\u7528\u6846\u67B6\u5B98\u65B9\u793A\u8303\u91CC\u770B\u4E0D\u5E26\u5B83\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\u3002\u6709\u300C\u4E0D\u8981\u300D\u884C\u5728\uFF0C\u4E0D\u5F97\u7F72\uFF0C\u5C01\u9A73\u6216\u4E0A\u5448\u5E76\u70B9\u540D\u90A3\u6761\u3002\u7968\u9762\u5DF2\u5199\u3001\u524D\u8F6E\u5224\u8BCD\u8981\u6C42\u8FC7\u3001\u7B7E\u53D1\u65B9\u7B54\u8FC7\u3001\u965B\u4E0B\u5BF9\u522B\u7684\u9898\u70B9\u8FC7\u5934\uFF0C\u90FD\u4E0D\u662F\u300C\u8981\u300D\u7684\u7406\u7531\uFF1B\u300C\u8981\u300D\u53EA\u8BA4\u793A\u8303\u91CC\u5E26\u540C\u6837\u7684\u5C42\u3002\u4E00\u6761\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\u3002"
|
|
1834
|
+
})
|
|
1835
|
+
},
|
|
1836
|
+
{ additionalProperties: true }
|
|
1837
|
+
)
|
|
1838
|
+
);
|
|
1815
1839
|
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
1816
1840
|
Type5.Object(
|
|
1817
1841
|
{
|
|
@@ -3272,9 +3296,9 @@ var init_role_submission_declarations = __esm({
|
|
|
3272
3296
|
},
|
|
3273
3297
|
countersign: {
|
|
3274
3298
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
3275
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
3299
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\uFF08\u542B\u73B0\u884C\u7968\u9762\u6761\u6B3E\u7684\u5B58\u5E9F\u5C3A existence\uFF09\u3002",
|
|
3276
3300
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
3277
|
-
parameters:
|
|
3301
|
+
parameters: countersignSubmissionSchema
|
|
3278
3302
|
},
|
|
3279
3303
|
secretariat: {
|
|
3280
3304
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
|
@@ -481,7 +481,7 @@ var init_terminating_infrastructure = __esm({
|
|
|
481
481
|
|
|
482
482
|
// src/review-submission.ts
|
|
483
483
|
import { Type as Type2 } from "typebox";
|
|
484
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
484
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, existenceRowUnion, MECHANISM_LABELS, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, clauseRowBase, CLAUSE_LABELS, clauseExistenceRowSchema, countersignSubmissionSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
485
485
|
var init_review_submission = __esm({
|
|
486
486
|
"src/review-submission.ts"() {
|
|
487
487
|
"use strict";
|
|
@@ -578,39 +578,63 @@ var init_review_submission = __esm({
|
|
|
578
578
|
layer: Type2.Integer({ description: "\u4ECE\u672C\u7968\u8D77\u70B9\u5230 HEAD\uFF0C\u8FD9\u662F\u7B2C\u51E0\u5904\u8FD9\u6837\u7684\u65B0\u589E\uFF08\u542B\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\uFF09" })
|
|
579
579
|
};
|
|
580
580
|
MECHANISM_FRAMEWORK_RULE = "\u6846\u67B6\u662F\u4ED3\u5E93 ADR \u6216\u7968\u9762\u70B9\u540D\u7684\u90A3\u4E00\u4E2A\uFF08\u8BFB\u5199\u6A21\u578B\u3001Web\u3001\u6D4B\u8BD5\u7B49\u6846\u67B6\uFF09\uFF0C\u4E0D\u662F\u5E2D\u4F4D\u81EA\u9009\uFF1B\u5B9E\u73B0\u8FD9\u4E00\u5C42\u6240\u7528\u7684\u5E93\uFF08ORM\u3001\u7F13\u5B58\u5E93\u3001\u89E3\u6790\u5E93\uFF09\u4E0D\u662F\u6846\u67B6\uFF0C\u5B83\u7684 API \u9875\u6216\u793A\u4F8B\u586B\u4E0D\u8FDB\u8FD9\u683C\u2014\u2014\u90A3\u7B54\u7684\u662F\u300C\u8FD9\u5C42\u600E\u4E48\u505A\u300D\uFF0C\u8FD9\u683C\u95EE\u7684\u662F\u300C\u793A\u8303\u4E0D\u5E26\u8FD9\u5C42\u600E\u4E48\u529E\u300D";
|
|
581
|
-
|
|
581
|
+
existenceRowUnion = (base, labels, extra = {}) => Type2.Union(
|
|
582
582
|
[
|
|
583
583
|
Type2.Object(
|
|
584
584
|
{
|
|
585
|
-
...
|
|
585
|
+
...base,
|
|
586
586
|
official: Type2.String({
|
|
587
587
|
description: `\u8FD9\u6BB5\u4EE3\u7801\u6240\u5C5E\u5E94\u7528\u6846\u67B6\u7684\u5B98\u65B9\u793A\u8303\u91CC\uFF0C\u4E0D\u5E26\u8FD9\u4E00\u5C42\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\uFF1A\u5148\u5199\u6846\u67B6\u540D\uFF0C\u518D\u94FE\u63A5\uFF0B\u539F\u53E5\uFF08\u793A\u8303\u91CC\u76F4\u63A5\u8BFB\u3001\u76F4\u63A5\u67E5\u3001\u4EA4\u7ED9\u6846\u67B6\u54EA\u9879\u8BBE\u7F6E\uFF09\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
588
588
|
}),
|
|
589
|
-
disposition: Type2.Literal(
|
|
589
|
+
disposition: Type2.Literal(labels.without, { description: "official \u586B\u4E86\u5B57\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
590
590
|
...extra
|
|
591
591
|
},
|
|
592
592
|
{ additionalProperties: true }
|
|
593
593
|
),
|
|
594
594
|
Type2.Object(
|
|
595
595
|
{
|
|
596
|
-
...
|
|
596
|
+
...base,
|
|
597
597
|
official: Type2.Null({
|
|
598
|
-
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728
|
|
598
|
+
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728 ${labels.evidenceField} \u672B\u5C3E\u5199\u6846\u67B6\u540D\u4E0E\u793A\u8303\u91CC\u90A3\u4E00\u5904\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
599
599
|
}),
|
|
600
|
-
disposition: Type2.Literal(
|
|
600
|
+
disposition: Type2.Literal(labels.carries, { description: "official \u4E3A null\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
601
601
|
...extra
|
|
602
602
|
},
|
|
603
603
|
{ additionalProperties: true }
|
|
604
604
|
)
|
|
605
605
|
],
|
|
606
|
-
{ description:
|
|
606
|
+
{ description: `\u4E24\u79CD\u884C\u5F62\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86\uFF08official \u586B\u5B57\uFF0C${labels.without.split("\uFF1A")[0]}\uFF09\uFF1B\u793A\u8303\u672C\u8EAB\u5C31\u5E26\u540C\u6837\u7684\u5C42\uFF08official null\uFF0C${labels.carries.split("\uFF1A")[0]}\uFF09` }
|
|
607
607
|
);
|
|
608
|
+
MECHANISM_LABELS = { without: "\u5220\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u7559\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "keeps" };
|
|
609
|
+
mechanismRowUnion = (extra = {}) => existenceRowUnion(mechanismRowBase, MECHANISM_LABELS, extra);
|
|
608
610
|
mechanismRowSchema = mechanismRowUnion();
|
|
609
611
|
auditorMechanismRowSchema = mechanismRowUnion({
|
|
610
612
|
judgeSaid: Type2.Union([Type2.String(), Type2.Null()], {
|
|
611
613
|
description: "\u5927\u7406\u5BFA\u5224\u8BCD\u91CC\u88C1\u5230\u8FD9\u4E00\u5C42\u7684\u90A3\u53E5\u539F\u6587\uFF08\u7167\u6284\uFF09\uFF1B\u5224\u8BCD\u6CA1\u63D0\u8FD9\u4E00\u5C42\uFF0C\u586B null"
|
|
612
614
|
})
|
|
613
615
|
});
|
|
616
|
+
clauseRowBase = {
|
|
617
|
+
clause: Type2.String({ description: "\u73B0\u884C\u7968\u9762\u91CC\u8BA9\u67D0\u4E2A\u673A\u5236\u5B58\u5728\u7684\u90A3\u6761\u6761\u6B3E\u539F\u6587\uFF08\u7167\u6284\uFF0C\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09" }),
|
|
618
|
+
kind: Type2.Union(
|
|
619
|
+
[Type2.Literal("\u660E\u5199\u673A\u5236\uFF1A\u6761\u6B3E\u81EA\u5DF1\u70B9\u540D\u4E86\u72B6\u6001\u3001\u8868\u3001\u7F13\u5B58\u3001\u9501\u3001\u4F9D\u8D56"), Type2.Literal("\u53EA\u5199\u7ED3\u679C\uFF1A\u6761\u6B3E\u53EA\u63D0\u8981\u6C42\uFF0C\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\uFF0C\u5F97\u957F\u51FA\u673A\u5236\u624D\u505A\u5F97\u5230")],
|
|
620
|
+
{ description: "\u4E24\u7C7B\u90FD\u8981\u5217\u3002\u7B2C\u4E8C\u7C7B\u6700\u5BB9\u6613\u6F0F\uFF1A\u96F6\u91CD\u590D\u3001\u8DE8\u63D0\u4EA4\u4E0D\u91CD\u8BFB\u3001\u4E0D\u5EFA\u8C41\u514D\u3001\u6BCF X \u53EA\u505A\u4E00\u6B21\u3001\u6C38\u4E0D Y\u2014\u2014\u8FD9\u79CD\u53E5\u5B50\u6CA1\u5199\u673A\u5236\u4E24\u4E2A\u5B57\uFF0C\u5374\u53EA\u80FD\u9760\u65B0\u72B6\u6001\u3001\u7F13\u5B58\u3001\u5931\u6548\u89C4\u5219\u6EE1\u8DB3\uFF1B\u5148\u6253\u5F00\u73B0\u72B6\u4EE3\u7801\u6838\u4E00\u904D\u5B83\u505A\u4E0D\u505A\u5F97\u5230\uFF0C\u505A\u4E0D\u5230\u5C31\u662F\u8FD9\u7C7B" }
|
|
621
|
+
),
|
|
622
|
+
makes: Type2.String({ description: "\u8FD9\u6761\u6761\u6B3E\u843D\u5B9E\u540E\u4F1A\u8BA9\u4EC0\u4E48\u4E1C\u897F\u5B58\u5728\uFF1A\u8DE8\u8C03\u7528\u4FDD\u5B58\u7684\u72B6\u6001\u3001\u7F13\u5B58\u3001\u9501\u3001\u5931\u6548\u89C4\u5219\u3001\u9884\u8BA1\u7B97\u3001\u65B0\u4F9D\u8D56\uFF1B\u5199\u51FA\u5B83\u7684\u5F62\u72B6\u3002\u53EA\u5199\u7ED3\u679C\u7684\u6761\u6B3E\uFF0C\u5199\u6EE1\u8DB3\u5B83\u5FC5\u987B\u957F\u51FA\u7684\u90A3\u6837\u4E1C\u897F" })
|
|
623
|
+
};
|
|
624
|
+
CLAUSE_LABELS = { without: "\u4E0D\u8981\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u8981\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "makes" };
|
|
625
|
+
clauseExistenceRowSchema = existenceRowUnion(clauseRowBase, CLAUSE_LABELS);
|
|
626
|
+
countersignSubmissionSchema = withTerminatingOutputDeclarations(
|
|
627
|
+
Type2.Object(
|
|
628
|
+
{
|
|
629
|
+
status: reviewStatusField,
|
|
630
|
+
...reviewNarrativeFields,
|
|
631
|
+
existence: Type2.Array(clauseExistenceRowSchema, {
|
|
632
|
+
description: "\u5B58\u5E9F\u5C3A\uFF1A\u73B0\u884C\u7968\u9762\u6BCF\u6761\u8BA9\u673A\u5236\u5B58\u5728\u7684\u6761\u6B3E\u5404\u4E00\u884C\u2014\u2014\u660E\u5199\u673A\u5236\u7684\uFF0C\u548C\u53EA\u5199\u7ED3\u679C\u8981\u6C42\u3001\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\u7684\uFF0C\u4E24\u7C7B\u90FD\u7B97\u2014\u2014\u5230 ADR\uFF0F\u7968\u9762\u70B9\u540D\u7684\u5E94\u7528\u6846\u67B6\u5B98\u65B9\u793A\u8303\u91CC\u770B\u4E0D\u5E26\u5B83\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\u3002\u6709\u300C\u4E0D\u8981\u300D\u884C\u5728\uFF0C\u4E0D\u5F97\u7F72\uFF0C\u5C01\u9A73\u6216\u4E0A\u5448\u5E76\u70B9\u540D\u90A3\u6761\u3002\u7968\u9762\u5DF2\u5199\u3001\u524D\u8F6E\u5224\u8BCD\u8981\u6C42\u8FC7\u3001\u7B7E\u53D1\u65B9\u7B54\u8FC7\u3001\u965B\u4E0B\u5BF9\u522B\u7684\u9898\u70B9\u8FC7\u5934\uFF0C\u90FD\u4E0D\u662F\u300C\u8981\u300D\u7684\u7406\u7531\uFF1B\u300C\u8981\u300D\u53EA\u8BA4\u793A\u8303\u91CC\u5E26\u540C\u6837\u7684\u5C42\u3002\u4E00\u6761\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\u3002"
|
|
633
|
+
})
|
|
634
|
+
},
|
|
635
|
+
{ additionalProperties: true }
|
|
636
|
+
)
|
|
637
|
+
);
|
|
614
638
|
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
615
639
|
Type2.Object(
|
|
616
640
|
{
|
|
@@ -4594,9 +4618,9 @@ var init_role_submission_declarations = __esm({
|
|
|
4594
4618
|
},
|
|
4595
4619
|
countersign: {
|
|
4596
4620
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
4597
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
4621
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\uFF08\u542B\u73B0\u884C\u7968\u9762\u6761\u6B3E\u7684\u5B58\u5E9F\u5C3A existence\uFF09\u3002",
|
|
4598
4622
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
4599
|
-
parameters:
|
|
4623
|
+
parameters: countersignSubmissionSchema
|
|
4600
4624
|
},
|
|
4601
4625
|
secretariat: {
|
|
4602
4626
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
|
@@ -8707,7 +8707,7 @@ var init_navigator_output = __esm({
|
|
|
8707
8707
|
});
|
|
8708
8708
|
|
|
8709
8709
|
// src/review-submission.ts
|
|
8710
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
8710
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, existenceRowUnion, MECHANISM_LABELS, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, clauseRowBase, CLAUSE_LABELS, clauseExistenceRowSchema, countersignSubmissionSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
8711
8711
|
var init_review_submission = __esm({
|
|
8712
8712
|
"src/review-submission.ts"() {
|
|
8713
8713
|
"use strict";
|
|
@@ -8805,39 +8805,63 @@ var init_review_submission = __esm({
|
|
|
8805
8805
|
layer: typebox_exports.Integer({ description: "\u4ECE\u672C\u7968\u8D77\u70B9\u5230 HEAD\uFF0C\u8FD9\u662F\u7B2C\u51E0\u5904\u8FD9\u6837\u7684\u65B0\u589E\uFF08\u542B\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\uFF09" })
|
|
8806
8806
|
};
|
|
8807
8807
|
MECHANISM_FRAMEWORK_RULE = "\u6846\u67B6\u662F\u4ED3\u5E93 ADR \u6216\u7968\u9762\u70B9\u540D\u7684\u90A3\u4E00\u4E2A\uFF08\u8BFB\u5199\u6A21\u578B\u3001Web\u3001\u6D4B\u8BD5\u7B49\u6846\u67B6\uFF09\uFF0C\u4E0D\u662F\u5E2D\u4F4D\u81EA\u9009\uFF1B\u5B9E\u73B0\u8FD9\u4E00\u5C42\u6240\u7528\u7684\u5E93\uFF08ORM\u3001\u7F13\u5B58\u5E93\u3001\u89E3\u6790\u5E93\uFF09\u4E0D\u662F\u6846\u67B6\uFF0C\u5B83\u7684 API \u9875\u6216\u793A\u4F8B\u586B\u4E0D\u8FDB\u8FD9\u683C\u2014\u2014\u90A3\u7B54\u7684\u662F\u300C\u8FD9\u5C42\u600E\u4E48\u505A\u300D\uFF0C\u8FD9\u683C\u95EE\u7684\u662F\u300C\u793A\u8303\u4E0D\u5E26\u8FD9\u5C42\u600E\u4E48\u529E\u300D";
|
|
8808
|
-
|
|
8808
|
+
existenceRowUnion = (base, labels, extra = {}) => typebox_exports.Union(
|
|
8809
8809
|
[
|
|
8810
8810
|
typebox_exports.Object(
|
|
8811
8811
|
{
|
|
8812
|
-
...
|
|
8812
|
+
...base,
|
|
8813
8813
|
official: typebox_exports.String({
|
|
8814
8814
|
description: `\u8FD9\u6BB5\u4EE3\u7801\u6240\u5C5E\u5E94\u7528\u6846\u67B6\u7684\u5B98\u65B9\u793A\u8303\u91CC\uFF0C\u4E0D\u5E26\u8FD9\u4E00\u5C42\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\uFF1A\u5148\u5199\u6846\u67B6\u540D\uFF0C\u518D\u94FE\u63A5\uFF0B\u539F\u53E5\uFF08\u793A\u8303\u91CC\u76F4\u63A5\u8BFB\u3001\u76F4\u63A5\u67E5\u3001\u4EA4\u7ED9\u6846\u67B6\u54EA\u9879\u8BBE\u7F6E\uFF09\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
8815
8815
|
}),
|
|
8816
|
-
disposition: typebox_exports.Literal(
|
|
8816
|
+
disposition: typebox_exports.Literal(labels.without, { description: "official \u586B\u4E86\u5B57\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
8817
8817
|
...extra
|
|
8818
8818
|
},
|
|
8819
8819
|
{ additionalProperties: true }
|
|
8820
8820
|
),
|
|
8821
8821
|
typebox_exports.Object(
|
|
8822
8822
|
{
|
|
8823
|
-
...
|
|
8823
|
+
...base,
|
|
8824
8824
|
official: typebox_exports.Null({
|
|
8825
|
-
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728
|
|
8825
|
+
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728 ${labels.evidenceField} \u672B\u5C3E\u5199\u6846\u67B6\u540D\u4E0E\u793A\u8303\u91CC\u90A3\u4E00\u5904\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
8826
8826
|
}),
|
|
8827
|
-
disposition: typebox_exports.Literal(
|
|
8827
|
+
disposition: typebox_exports.Literal(labels.carries, { description: "official \u4E3A null\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
8828
8828
|
...extra
|
|
8829
8829
|
},
|
|
8830
8830
|
{ additionalProperties: true }
|
|
8831
8831
|
)
|
|
8832
8832
|
],
|
|
8833
|
-
{ description:
|
|
8833
|
+
{ description: `\u4E24\u79CD\u884C\u5F62\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86\uFF08official \u586B\u5B57\uFF0C${labels.without.split("\uFF1A")[0]}\uFF09\uFF1B\u793A\u8303\u672C\u8EAB\u5C31\u5E26\u540C\u6837\u7684\u5C42\uFF08official null\uFF0C${labels.carries.split("\uFF1A")[0]}\uFF09` }
|
|
8834
8834
|
);
|
|
8835
|
+
MECHANISM_LABELS = { without: "\u5220\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u7559\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "keeps" };
|
|
8836
|
+
mechanismRowUnion = (extra = {}) => existenceRowUnion(mechanismRowBase, MECHANISM_LABELS, extra);
|
|
8835
8837
|
mechanismRowSchema = mechanismRowUnion();
|
|
8836
8838
|
auditorMechanismRowSchema = mechanismRowUnion({
|
|
8837
8839
|
judgeSaid: typebox_exports.Union([typebox_exports.String(), typebox_exports.Null()], {
|
|
8838
8840
|
description: "\u5927\u7406\u5BFA\u5224\u8BCD\u91CC\u88C1\u5230\u8FD9\u4E00\u5C42\u7684\u90A3\u53E5\u539F\u6587\uFF08\u7167\u6284\uFF09\uFF1B\u5224\u8BCD\u6CA1\u63D0\u8FD9\u4E00\u5C42\uFF0C\u586B null"
|
|
8839
8841
|
})
|
|
8840
8842
|
});
|
|
8843
|
+
clauseRowBase = {
|
|
8844
|
+
clause: typebox_exports.String({ description: "\u73B0\u884C\u7968\u9762\u91CC\u8BA9\u67D0\u4E2A\u673A\u5236\u5B58\u5728\u7684\u90A3\u6761\u6761\u6B3E\u539F\u6587\uFF08\u7167\u6284\uFF0C\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09" }),
|
|
8845
|
+
kind: typebox_exports.Union(
|
|
8846
|
+
[typebox_exports.Literal("\u660E\u5199\u673A\u5236\uFF1A\u6761\u6B3E\u81EA\u5DF1\u70B9\u540D\u4E86\u72B6\u6001\u3001\u8868\u3001\u7F13\u5B58\u3001\u9501\u3001\u4F9D\u8D56"), typebox_exports.Literal("\u53EA\u5199\u7ED3\u679C\uFF1A\u6761\u6B3E\u53EA\u63D0\u8981\u6C42\uFF0C\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\uFF0C\u5F97\u957F\u51FA\u673A\u5236\u624D\u505A\u5F97\u5230")],
|
|
8847
|
+
{ description: "\u4E24\u7C7B\u90FD\u8981\u5217\u3002\u7B2C\u4E8C\u7C7B\u6700\u5BB9\u6613\u6F0F\uFF1A\u96F6\u91CD\u590D\u3001\u8DE8\u63D0\u4EA4\u4E0D\u91CD\u8BFB\u3001\u4E0D\u5EFA\u8C41\u514D\u3001\u6BCF X \u53EA\u505A\u4E00\u6B21\u3001\u6C38\u4E0D Y\u2014\u2014\u8FD9\u79CD\u53E5\u5B50\u6CA1\u5199\u673A\u5236\u4E24\u4E2A\u5B57\uFF0C\u5374\u53EA\u80FD\u9760\u65B0\u72B6\u6001\u3001\u7F13\u5B58\u3001\u5931\u6548\u89C4\u5219\u6EE1\u8DB3\uFF1B\u5148\u6253\u5F00\u73B0\u72B6\u4EE3\u7801\u6838\u4E00\u904D\u5B83\u505A\u4E0D\u505A\u5F97\u5230\uFF0C\u505A\u4E0D\u5230\u5C31\u662F\u8FD9\u7C7B" }
|
|
8848
|
+
),
|
|
8849
|
+
makes: typebox_exports.String({ description: "\u8FD9\u6761\u6761\u6B3E\u843D\u5B9E\u540E\u4F1A\u8BA9\u4EC0\u4E48\u4E1C\u897F\u5B58\u5728\uFF1A\u8DE8\u8C03\u7528\u4FDD\u5B58\u7684\u72B6\u6001\u3001\u7F13\u5B58\u3001\u9501\u3001\u5931\u6548\u89C4\u5219\u3001\u9884\u8BA1\u7B97\u3001\u65B0\u4F9D\u8D56\uFF1B\u5199\u51FA\u5B83\u7684\u5F62\u72B6\u3002\u53EA\u5199\u7ED3\u679C\u7684\u6761\u6B3E\uFF0C\u5199\u6EE1\u8DB3\u5B83\u5FC5\u987B\u957F\u51FA\u7684\u90A3\u6837\u4E1C\u897F" })
|
|
8850
|
+
};
|
|
8851
|
+
CLAUSE_LABELS = { without: "\u4E0D\u8981\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u8981\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "makes" };
|
|
8852
|
+
clauseExistenceRowSchema = existenceRowUnion(clauseRowBase, CLAUSE_LABELS);
|
|
8853
|
+
countersignSubmissionSchema = withTerminatingOutputDeclarations(
|
|
8854
|
+
typebox_exports.Object(
|
|
8855
|
+
{
|
|
8856
|
+
status: reviewStatusField,
|
|
8857
|
+
...reviewNarrativeFields,
|
|
8858
|
+
existence: typebox_exports.Array(clauseExistenceRowSchema, {
|
|
8859
|
+
description: "\u5B58\u5E9F\u5C3A\uFF1A\u73B0\u884C\u7968\u9762\u6BCF\u6761\u8BA9\u673A\u5236\u5B58\u5728\u7684\u6761\u6B3E\u5404\u4E00\u884C\u2014\u2014\u660E\u5199\u673A\u5236\u7684\uFF0C\u548C\u53EA\u5199\u7ED3\u679C\u8981\u6C42\u3001\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\u7684\uFF0C\u4E24\u7C7B\u90FD\u7B97\u2014\u2014\u5230 ADR\uFF0F\u7968\u9762\u70B9\u540D\u7684\u5E94\u7528\u6846\u67B6\u5B98\u65B9\u793A\u8303\u91CC\u770B\u4E0D\u5E26\u5B83\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\u3002\u6709\u300C\u4E0D\u8981\u300D\u884C\u5728\uFF0C\u4E0D\u5F97\u7F72\uFF0C\u5C01\u9A73\u6216\u4E0A\u5448\u5E76\u70B9\u540D\u90A3\u6761\u3002\u7968\u9762\u5DF2\u5199\u3001\u524D\u8F6E\u5224\u8BCD\u8981\u6C42\u8FC7\u3001\u7B7E\u53D1\u65B9\u7B54\u8FC7\u3001\u965B\u4E0B\u5BF9\u522B\u7684\u9898\u70B9\u8FC7\u5934\uFF0C\u90FD\u4E0D\u662F\u300C\u8981\u300D\u7684\u7406\u7531\uFF1B\u300C\u8981\u300D\u53EA\u8BA4\u793A\u8303\u91CC\u5E26\u540C\u6837\u7684\u5C42\u3002\u4E00\u6761\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\u3002"
|
|
8860
|
+
})
|
|
8861
|
+
},
|
|
8862
|
+
{ additionalProperties: true }
|
|
8863
|
+
)
|
|
8864
|
+
);
|
|
8841
8865
|
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
8842
8866
|
typebox_exports.Object(
|
|
8843
8867
|
{
|
|
@@ -9890,9 +9914,9 @@ var init_role_submission_declarations = __esm({
|
|
|
9890
9914
|
},
|
|
9891
9915
|
countersign: {
|
|
9892
9916
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
9893
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
9917
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\uFF08\u542B\u73B0\u884C\u7968\u9762\u6761\u6B3E\u7684\u5B58\u5E9F\u5C3A existence\uFF09\u3002",
|
|
9894
9918
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
9895
|
-
parameters:
|
|
9919
|
+
parameters: countersignSubmissionSchema
|
|
9896
9920
|
},
|
|
9897
9921
|
secretariat: {
|
|
9898
9922
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
package/dist/public-cli/main.js
CHANGED
|
@@ -9197,7 +9197,7 @@ var init_navigator_output = __esm({
|
|
|
9197
9197
|
});
|
|
9198
9198
|
|
|
9199
9199
|
// src/review-submission.ts
|
|
9200
|
-
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
9200
|
+
var REVIEW_SUBMISSION_OUTPUT_TOOL_NAME, REVIEW_QUEUE_WORDS, REVIEW_QUEUE_STATUSES, reviewStatusField, reviewNarrativeFields, reviewSubmissionSchema, notaryClauseItemSchema, notaryClausesField, notaryReviewSubmissionSchema, ticketComplexityRowSchema, mechanismRowBase, MECHANISM_FRAMEWORK_RULE, existenceRowUnion, MECHANISM_LABELS, mechanismRowUnion, mechanismRowSchema, auditorMechanismRowSchema, clauseRowBase, CLAUSE_LABELS, clauseExistenceRowSchema, countersignSubmissionSchema, inspectorSubmissionSchema, auditorSubmissionSchema;
|
|
9201
9201
|
var init_review_submission = __esm({
|
|
9202
9202
|
"src/review-submission.ts"() {
|
|
9203
9203
|
"use strict";
|
|
@@ -9295,39 +9295,63 @@ var init_review_submission = __esm({
|
|
|
9295
9295
|
layer: typebox_exports.Integer({ description: "\u4ECE\u672C\u7968\u8D77\u70B9\u5230 HEAD\uFF0C\u8FD9\u662F\u7B2C\u51E0\u5904\u8FD9\u6837\u7684\u65B0\u589E\uFF08\u542B\u524D\u51E0\u8F6E\u5DF2\u7F72\u8FC7\u7684\uFF09" })
|
|
9296
9296
|
};
|
|
9297
9297
|
MECHANISM_FRAMEWORK_RULE = "\u6846\u67B6\u662F\u4ED3\u5E93 ADR \u6216\u7968\u9762\u70B9\u540D\u7684\u90A3\u4E00\u4E2A\uFF08\u8BFB\u5199\u6A21\u578B\u3001Web\u3001\u6D4B\u8BD5\u7B49\u6846\u67B6\uFF09\uFF0C\u4E0D\u662F\u5E2D\u4F4D\u81EA\u9009\uFF1B\u5B9E\u73B0\u8FD9\u4E00\u5C42\u6240\u7528\u7684\u5E93\uFF08ORM\u3001\u7F13\u5B58\u5E93\u3001\u89E3\u6790\u5E93\uFF09\u4E0D\u662F\u6846\u67B6\uFF0C\u5B83\u7684 API \u9875\u6216\u793A\u4F8B\u586B\u4E0D\u8FDB\u8FD9\u683C\u2014\u2014\u90A3\u7B54\u7684\u662F\u300C\u8FD9\u5C42\u600E\u4E48\u505A\u300D\uFF0C\u8FD9\u683C\u95EE\u7684\u662F\u300C\u793A\u8303\u4E0D\u5E26\u8FD9\u5C42\u600E\u4E48\u529E\u300D";
|
|
9298
|
-
|
|
9298
|
+
existenceRowUnion = (base, labels, extra = {}) => typebox_exports.Union(
|
|
9299
9299
|
[
|
|
9300
9300
|
typebox_exports.Object(
|
|
9301
9301
|
{
|
|
9302
|
-
...
|
|
9302
|
+
...base,
|
|
9303
9303
|
official: typebox_exports.String({
|
|
9304
9304
|
description: `\u8FD9\u6BB5\u4EE3\u7801\u6240\u5C5E\u5E94\u7528\u6846\u67B6\u7684\u5B98\u65B9\u793A\u8303\u91CC\uFF0C\u4E0D\u5E26\u8FD9\u4E00\u5C42\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\uFF1A\u5148\u5199\u6846\u67B6\u540D\uFF0C\u518D\u94FE\u63A5\uFF0B\u539F\u53E5\uFF08\u793A\u8303\u91CC\u76F4\u63A5\u8BFB\u3001\u76F4\u63A5\u67E5\u3001\u4EA4\u7ED9\u6846\u67B6\u54EA\u9879\u8BBE\u7F6E\uFF09\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
9305
9305
|
}),
|
|
9306
|
-
disposition: typebox_exports.Literal(
|
|
9306
|
+
disposition: typebox_exports.Literal(labels.without, { description: "official \u586B\u4E86\u5B57\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
9307
9307
|
...extra
|
|
9308
9308
|
},
|
|
9309
9309
|
{ additionalProperties: true }
|
|
9310
9310
|
),
|
|
9311
9311
|
typebox_exports.Object(
|
|
9312
9312
|
{
|
|
9313
|
-
...
|
|
9313
|
+
...base,
|
|
9314
9314
|
official: typebox_exports.Null({
|
|
9315
|
-
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728
|
|
9315
|
+
description: `\u793A\u8303\u4EE3\u7801\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u72B6\u6001\u3001\u9501\u3001\u7F13\u5B58\u6216\u4F9D\u8D56\uFF1A\u586B null\uFF0C\u5E76\u5728 ${labels.evidenceField} \u672B\u5C3E\u5199\u6846\u67B6\u540D\u4E0E\u793A\u8303\u91CC\u90A3\u4E00\u5904\u3002${MECHANISM_FRAMEWORK_RULE}`
|
|
9316
9316
|
}),
|
|
9317
|
-
disposition: typebox_exports.Literal(
|
|
9317
|
+
disposition: typebox_exports.Literal(labels.carries, { description: "official \u4E3A null\uFF0C\u8FD9\u4E00\u884C\u53EA\u80FD\u662F\u8FD9\u4E2A\u5904\u7F6E" }),
|
|
9318
9318
|
...extra
|
|
9319
9319
|
},
|
|
9320
9320
|
{ additionalProperties: true }
|
|
9321
9321
|
)
|
|
9322
9322
|
],
|
|
9323
|
-
{ description:
|
|
9323
|
+
{ description: `\u4E24\u79CD\u884C\u5F62\uFF0C\u6CA1\u6709\u7B2C\u4E09\u79CD\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86\uFF08official \u586B\u5B57\uFF0C${labels.without.split("\uFF1A")[0]}\uFF09\uFF1B\u793A\u8303\u672C\u8EAB\u5C31\u5E26\u540C\u6837\u7684\u5C42\uFF08official null\uFF0C${labels.carries.split("\uFF1A")[0]}\uFF09` }
|
|
9324
9324
|
);
|
|
9325
|
+
MECHANISM_LABELS = { without: "\u5220\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u7559\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "keeps" };
|
|
9326
|
+
mechanismRowUnion = (extra = {}) => existenceRowUnion(mechanismRowBase, MECHANISM_LABELS, extra);
|
|
9325
9327
|
mechanismRowSchema = mechanismRowUnion();
|
|
9326
9328
|
auditorMechanismRowSchema = mechanismRowUnion({
|
|
9327
9329
|
judgeSaid: typebox_exports.Union([typebox_exports.String(), typebox_exports.Null()], {
|
|
9328
9330
|
description: "\u5927\u7406\u5BFA\u5224\u8BCD\u91CC\u88C1\u5230\u8FD9\u4E00\u5C42\u7684\u90A3\u53E5\u539F\u6587\uFF08\u7167\u6284\uFF09\uFF1B\u5224\u8BCD\u6CA1\u63D0\u8FD9\u4E00\u5C42\uFF0C\u586B null"
|
|
9329
9331
|
})
|
|
9330
9332
|
});
|
|
9333
|
+
clauseRowBase = {
|
|
9334
|
+
clause: typebox_exports.String({ description: "\u73B0\u884C\u7968\u9762\u91CC\u8BA9\u67D0\u4E2A\u673A\u5236\u5B58\u5728\u7684\u90A3\u6761\u6761\u6B3E\u539F\u6587\uFF08\u7167\u6284\uFF0C\u4E0D\u5408\u5E76\u3001\u4E0D\u6539\u5199\uFF09" }),
|
|
9335
|
+
kind: typebox_exports.Union(
|
|
9336
|
+
[typebox_exports.Literal("\u660E\u5199\u673A\u5236\uFF1A\u6761\u6B3E\u81EA\u5DF1\u70B9\u540D\u4E86\u72B6\u6001\u3001\u8868\u3001\u7F13\u5B58\u3001\u9501\u3001\u4F9D\u8D56"), typebox_exports.Literal("\u53EA\u5199\u7ED3\u679C\uFF1A\u6761\u6B3E\u53EA\u63D0\u8981\u6C42\uFF0C\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\uFF0C\u5F97\u957F\u51FA\u673A\u5236\u624D\u505A\u5F97\u5230")],
|
|
9337
|
+
{ description: "\u4E24\u7C7B\u90FD\u8981\u5217\u3002\u7B2C\u4E8C\u7C7B\u6700\u5BB9\u6613\u6F0F\uFF1A\u96F6\u91CD\u590D\u3001\u8DE8\u63D0\u4EA4\u4E0D\u91CD\u8BFB\u3001\u4E0D\u5EFA\u8C41\u514D\u3001\u6BCF X \u53EA\u505A\u4E00\u6B21\u3001\u6C38\u4E0D Y\u2014\u2014\u8FD9\u79CD\u53E5\u5B50\u6CA1\u5199\u673A\u5236\u4E24\u4E2A\u5B57\uFF0C\u5374\u53EA\u80FD\u9760\u65B0\u72B6\u6001\u3001\u7F13\u5B58\u3001\u5931\u6548\u89C4\u5219\u6EE1\u8DB3\uFF1B\u5148\u6253\u5F00\u73B0\u72B6\u4EE3\u7801\u6838\u4E00\u904D\u5B83\u505A\u4E0D\u505A\u5F97\u5230\uFF0C\u505A\u4E0D\u5230\u5C31\u662F\u8FD9\u7C7B" }
|
|
9338
|
+
),
|
|
9339
|
+
makes: typebox_exports.String({ description: "\u8FD9\u6761\u6761\u6B3E\u843D\u5B9E\u540E\u4F1A\u8BA9\u4EC0\u4E48\u4E1C\u897F\u5B58\u5728\uFF1A\u8DE8\u8C03\u7528\u4FDD\u5B58\u7684\u72B6\u6001\u3001\u7F13\u5B58\u3001\u9501\u3001\u5931\u6548\u89C4\u5219\u3001\u9884\u8BA1\u7B97\u3001\u65B0\u4F9D\u8D56\uFF1B\u5199\u51FA\u5B83\u7684\u5F62\u72B6\u3002\u53EA\u5199\u7ED3\u679C\u7684\u6761\u6B3E\uFF0C\u5199\u6EE1\u8DB3\u5B83\u5FC5\u987B\u957F\u51FA\u7684\u90A3\u6837\u4E1C\u897F" })
|
|
9340
|
+
};
|
|
9341
|
+
CLAUSE_LABELS = { without: "\u4E0D\u8981\uFF1A\u793A\u8303\u4E0D\u5E26\u8FD9\u4E00\u5C42\u4E5F\u5904\u7406\u5F97\u4E86", carries: "\u8981\uFF1A\u793A\u8303\u672C\u8EAB\u5C31\u4E3A\u540C\u4E00\u5173\u5207\u5E26\u540C\u6837\u7684\u5C42", evidenceField: "makes" };
|
|
9342
|
+
clauseExistenceRowSchema = existenceRowUnion(clauseRowBase, CLAUSE_LABELS);
|
|
9343
|
+
countersignSubmissionSchema = withTerminatingOutputDeclarations(
|
|
9344
|
+
typebox_exports.Object(
|
|
9345
|
+
{
|
|
9346
|
+
status: reviewStatusField,
|
|
9347
|
+
...reviewNarrativeFields,
|
|
9348
|
+
existence: typebox_exports.Array(clauseExistenceRowSchema, {
|
|
9349
|
+
description: "\u5B58\u5E9F\u5C3A\uFF1A\u73B0\u884C\u7968\u9762\u6BCF\u6761\u8BA9\u673A\u5236\u5B58\u5728\u7684\u6761\u6B3E\u5404\u4E00\u884C\u2014\u2014\u660E\u5199\u673A\u5236\u7684\uFF0C\u548C\u53EA\u5199\u7ED3\u679C\u8981\u6C42\u3001\u73B0\u72B6\u4EE3\u7801\u6EE1\u8DB3\u4E0D\u4E86\u7684\uFF0C\u4E24\u7C7B\u90FD\u7B97\u2014\u2014\u5230 ADR\uFF0F\u7968\u9762\u70B9\u540D\u7684\u5E94\u7528\u6846\u67B6\u5B98\u65B9\u793A\u8303\u91CC\u770B\u4E0D\u5E26\u5B83\u65F6\u540C\u4E00\u5173\u5207\u600E\u4E48\u5904\u7406\u3002\u6709\u300C\u4E0D\u8981\u300D\u884C\u5728\uFF0C\u4E0D\u5F97\u7F72\uFF0C\u5C01\u9A73\u6216\u4E0A\u5448\u5E76\u70B9\u540D\u90A3\u6761\u3002\u7968\u9762\u5DF2\u5199\u3001\u524D\u8F6E\u5224\u8BCD\u8981\u6C42\u8FC7\u3001\u7B7E\u53D1\u65B9\u7B54\u8FC7\u3001\u965B\u4E0B\u5BF9\u522B\u7684\u9898\u70B9\u8FC7\u5934\uFF0C\u90FD\u4E0D\u662F\u300C\u8981\u300D\u7684\u7406\u7531\uFF1B\u300C\u8981\u300D\u53EA\u8BA4\u793A\u8303\u91CC\u5E26\u540C\u6837\u7684\u5C42\u3002\u4E00\u6761\u6CA1\u6709\u4E3A\u7A7A\u6570\u7EC4\u3002"
|
|
9350
|
+
})
|
|
9351
|
+
},
|
|
9352
|
+
{ additionalProperties: true }
|
|
9353
|
+
)
|
|
9354
|
+
);
|
|
9331
9355
|
inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
9332
9356
|
typebox_exports.Object(
|
|
9333
9357
|
{
|
|
@@ -11630,9 +11654,9 @@ var init_role_submission_declarations = __esm({
|
|
|
11630
11654
|
},
|
|
11631
11655
|
countersign: {
|
|
11632
11656
|
label: "\u7ED9\u4E8B\u4E2D\u8F93\u51FA",
|
|
11633
|
-
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\u3002",
|
|
11657
|
+
description: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE\uFF08\u542B\u73B0\u884C\u7968\u9762\u6761\u6B3E\u7684\u5B58\u5E9F\u5C3A existence\uFF09\u3002",
|
|
11634
11658
|
promptSnippet: "\u7ED9\u4E8B\u4E2D\u51B3\u8BAE",
|
|
11635
|
-
parameters:
|
|
11659
|
+
parameters: countersignSubmissionSchema
|
|
11636
11660
|
},
|
|
11637
11661
|
secretariat: {
|
|
11638
11662
|
label: "\u4E2D\u4E66\u7701\u8F93\u51FA",
|
|
@@ -94,25 +94,26 @@ const mechanismRowBase = {
|
|
|
94
94
|
layer: Type.Integer({ description: "从本票起点到 HEAD,这是第几处这样的新增(含前几轮已署过的)" }),
|
|
95
95
|
};
|
|
96
96
|
const MECHANISM_FRAMEWORK_RULE = "框架是仓库 ADR 或票面点名的那一个(读写模型、Web、测试等框架),不是席位自选;实现这一层所用的库(ORM、缓存库、解析库)不是框架,它的 API 页或示例填不进这格——那答的是「这层怎么做」,这格问的是「示范不带这层怎么办」";
|
|
97
|
-
|
|
98
|
-
const mechanismRowUnion = (extra = {}) => Type.Union([
|
|
97
|
+
const existenceRowUnion = (base, labels, extra = {}) => Type.Union([
|
|
99
98
|
Type.Object({
|
|
100
|
-
...
|
|
99
|
+
...base,
|
|
101
100
|
official: Type.String({
|
|
102
101
|
description: `这段代码所属应用框架的官方示范里,不带这一层时同一关切怎么处理:先写框架名,再链接+原句(示范里直接读、直接查、交给框架哪项设置)。${MECHANISM_FRAMEWORK_RULE}`,
|
|
103
102
|
}),
|
|
104
|
-
disposition: Type.Literal(
|
|
103
|
+
disposition: Type.Literal(labels.without, { description: "official 填了字,这一行只能是这个处置" }),
|
|
105
104
|
...extra,
|
|
106
105
|
}, { additionalProperties: true }),
|
|
107
106
|
Type.Object({
|
|
108
|
-
...
|
|
107
|
+
...base,
|
|
109
108
|
official: Type.Null({
|
|
110
|
-
description: `示范代码本身就为同一关切带同样的状态、锁、缓存或依赖:填 null,并在
|
|
109
|
+
description: `示范代码本身就为同一关切带同样的状态、锁、缓存或依赖:填 null,并在 ${labels.evidenceField} 末尾写框架名与示范里那一处。${MECHANISM_FRAMEWORK_RULE}`,
|
|
111
110
|
}),
|
|
112
|
-
disposition: Type.Literal(
|
|
111
|
+
disposition: Type.Literal(labels.carries, { description: "official 为 null,这一行只能是这个处置" }),
|
|
113
112
|
...extra,
|
|
114
113
|
}, { additionalProperties: true }),
|
|
115
|
-
], { description:
|
|
114
|
+
], { description: `两种行形,没有第三种:示范不带这一层也处理得了(official 填字,${labels.without.split(":")[0]});示范本身就带同样的层(official null,${labels.carries.split(":")[0]})` });
|
|
115
|
+
const MECHANISM_LABELS = { without: "删:示范不带这一层也处理得了", carries: "留:示范本身就为同一关切带同样的层", evidenceField: "keeps" };
|
|
116
|
+
const mechanismRowUnion = (extra = {}) => existenceRowUnion(mechanismRowBase, MECHANISM_LABELS, extra);
|
|
116
117
|
export const mechanismRowSchema = mechanismRowUnion();
|
|
117
118
|
/** Auditor row: the inspector row plus what the judge's verdict said about this layer, verbatim, or null when the verdict never touched it. */
|
|
118
119
|
export const auditorMechanismRowSchema = mechanismRowUnion({
|
|
@@ -120,6 +121,22 @@ export const auditorMechanismRowSchema = mechanismRowUnion({
|
|
|
120
121
|
description: "大理寺判词里裁到这一层的那句原文(照抄);判词没提这一层,填 null",
|
|
121
122
|
}),
|
|
122
123
|
});
|
|
124
|
+
/** 存废尺 row for a ticket clause: what the clause makes exist, against the framework's example. */
|
|
125
|
+
const clauseRowBase = {
|
|
126
|
+
clause: Type.String({ description: "现行票面里让某个机制存在的那条条款原文(照抄,不合并、不改写)" }),
|
|
127
|
+
kind: Type.Union([Type.Literal("明写机制:条款自己点名了状态、表、缓存、锁、依赖"), Type.Literal("只写结果:条款只提要求,现状代码满足不了,得长出机制才做得到")], { description: "两类都要列。第二类最容易漏:零重复、跨提交不重读、不建豁免、每 X 只做一次、永不 Y——这种句子没写机制两个字,却只能靠新状态、缓存、失效规则满足;先打开现状代码核一遍它做不做得到,做不到就是这类" }),
|
|
128
|
+
makes: Type.String({ description: "这条条款落实后会让什么东西存在:跨调用保存的状态、缓存、锁、失效规则、预计算、新依赖;写出它的形状。只写结果的条款,写满足它必须长出的那样东西" }),
|
|
129
|
+
};
|
|
130
|
+
const CLAUSE_LABELS = { without: "不要:示范不带这一层也处理得了", carries: "要:示范本身就为同一关切带同样的层", evidenceField: "makes" };
|
|
131
|
+
export const clauseExistenceRowSchema = existenceRowUnion(clauseRowBase, CLAUSE_LABELS);
|
|
132
|
+
/** Countersign generation schema: shared review face plus the 存废尺 over the current ticket's clauses (package records as-is). */
|
|
133
|
+
export const countersignSubmissionSchema = withTerminatingOutputDeclarations(Type.Object({
|
|
134
|
+
status: reviewStatusField,
|
|
135
|
+
...reviewNarrativeFields,
|
|
136
|
+
existence: Type.Array(clauseExistenceRowSchema, {
|
|
137
|
+
description: "存废尺:现行票面每条让机制存在的条款各一行——明写机制的,和只写结果要求、现状代码满足不了的,两类都算——到 ADR/票面点名的应用框架官方示范里看不带它时同一关切怎么处理。有「不要」行在,不得署,封驳或上呈并点名那条。票面已写、前轮判词要求过、签发方答过、陛下对别的题点过头,都不是「要」的理由;「要」只认示范里带同样的层。一条没有为空数组。",
|
|
138
|
+
}),
|
|
139
|
+
}, { additionalProperties: true }));
|
|
123
140
|
/** Inspector generation schema: shared review face plus the required whole-ticket complexity answer (package records as-is). */
|
|
124
141
|
export const inspectorSubmissionSchema = withTerminatingOutputDeclarations(Type.Object({
|
|
125
142
|
status: reviewStatusField,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Execute lives in filed-submission.ts.
|
|
6
6
|
*/
|
|
7
7
|
import { packagedRoleOutputTool } from "./packaged-role-registry.js";
|
|
8
|
-
import { auditorSubmissionSchema, notaryReviewSubmissionSchema, inspectorSubmissionSchema, reviewSubmissionSchema } from "./review-submission.js";
|
|
8
|
+
import { auditorSubmissionSchema, countersignSubmissionSchema, notaryReviewSubmissionSchema, inspectorSubmissionSchema, reviewSubmissionSchema } from "./review-submission.js";
|
|
9
9
|
import { collectorOutputArgsSchema } from "./collector-tool-schemas.js";
|
|
10
10
|
import { diaristOutputSchema } from "./diarist-contracts.js";
|
|
11
11
|
import { doctorSubmissionSchema, DOCTOR_OUTPUT_TOOL_DESCRIPTION } from "./doctor-contracts.js";
|
|
@@ -67,9 +67,9 @@ const SUBMISSION_FACE = {
|
|
|
67
67
|
},
|
|
68
68
|
countersign: {
|
|
69
69
|
label: "给事中输出",
|
|
70
|
-
description: "
|
|
70
|
+
description: "给事中决议(含现行票面条款的存废尺 existence)。",
|
|
71
71
|
promptSnippet: "给事中决议",
|
|
72
|
-
parameters:
|
|
72
|
+
parameters: countersignSubmissionSchema,
|
|
73
73
|
},
|
|
74
74
|
secretariat: {
|
|
75
75
|
label: "中书省输出",
|
package/package.json
CHANGED
package/souls/countersign.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
**四、缺失** 法源要求的,票面有没有漏:适用法只查两类:票面与某条 ADR 决定相抵的,和把某条决定留给别的票承接的,票面须写明该条与「由 #x 承接」;这两类之外的 ADR 没引不算缺失,不得为此封驳;验收面须覆盖票面每条主张;票面里每一条行为都须答得出《送庭前三问》第一问:起、停、续、终、接各归谁没写的行为,即缺失;给模型、入口或调用方定了读写范围、却没按《设计法·好设计稿》写明一次给多少的,即缺失,沿用父票或 ADR 的也一样;前置产物、决定、答复须在;承重主张的源头不存在、不支持、已过时,同为缺失。缺失列表在能力范围内一次扫完,尽量避免因缺失导致多轮往返。
|
|
26
26
|
|
|
27
|
-
**五、擅加**
|
|
27
|
+
**五、擅加** 票面有没有超出法源的机制、约束、验收、术语。票面按类各定一套行为或文案的,就是在要分类机制;陛下没点名要的,上呈,附单一做法。存废尺按条款过:票面每条让机制存在的条款各记一行进 existence——条款自己点名了状态、表、缓存、锁、依赖的是一类;只写结果要求(零重复、跨提交不重读、不建豁免、每 X 只做一次)而现状代码满足不了、得长出机制才做得到的是另一类,先打开现状代码核它做不做得到——到 ADR/票面点名的应用框架官方示范里看不带它时同一关切怎么处理;示范不带也处理得了的,这条不要,不得署。票面已写、前轮判词要求过、签发方答过、陛下对别的题点过头,都不是要它的理由——要,只认示范里本来就带同样的层。
|
|
28
28
|
|
|
29
29
|
各步取证按《审法·取证授权》:工具与方式不受限,读码、开卷、传召、下探针皆可;不得删除、覆写或移动 worktree 与临时目录之外的既存路径(《审法·取证边界》)。交付时候清理回原样
|
|
30
30
|
|
package/src/review-submission.ts
CHANGED
|
@@ -136,36 +136,49 @@ const mechanismRowBase = {
|
|
|
136
136
|
const MECHANISM_FRAMEWORK_RULE =
|
|
137
137
|
"框架是仓库 ADR 或票面点名的那一个(读写模型、Web、测试等框架),不是席位自选;实现这一层所用的库(ORM、缓存库、解析库)不是框架,它的 API 页或示例填不进这格——那答的是「这层怎么做」,这格问的是「示范不带这层怎么办」";
|
|
138
138
|
|
|
139
|
-
/**
|
|
140
|
-
|
|
139
|
+
/**
|
|
140
|
+
* The two row shapes of the 存废尺 (existence ruler), with any extra per-row fields a seat needs.
|
|
141
|
+
* `base` names the thing (a production line for 台院/大理寺/审刑院, a ticket clause for 中书省/给事中);
|
|
142
|
+
* `labels` are the two dispositions (删/留 for code, 不要/要 for clauses). The coupling is the same everywhere:
|
|
143
|
+
* official filled = the example manages without it; official null = the example carries the same layer.
|
|
144
|
+
*/
|
|
145
|
+
type RowFields = Record<string, ReturnType<typeof Type.String> | ReturnType<typeof Type.Integer> | ReturnType<typeof Type.Union>>;
|
|
146
|
+
const existenceRowUnion = (
|
|
147
|
+
base: RowFields,
|
|
148
|
+
labels: { readonly without: string; readonly carries: string; readonly evidenceField: string },
|
|
149
|
+
extra: RowFields = {},
|
|
150
|
+
) =>
|
|
141
151
|
Type.Union(
|
|
142
152
|
[
|
|
143
153
|
Type.Object(
|
|
144
154
|
{
|
|
145
|
-
...
|
|
155
|
+
...base,
|
|
146
156
|
official: Type.String({
|
|
147
157
|
description: `这段代码所属应用框架的官方示范里,不带这一层时同一关切怎么处理:先写框架名,再链接+原句(示范里直接读、直接查、交给框架哪项设置)。${MECHANISM_FRAMEWORK_RULE}`,
|
|
148
158
|
}),
|
|
149
|
-
disposition: Type.Literal(
|
|
159
|
+
disposition: Type.Literal(labels.without, { description: "official 填了字,这一行只能是这个处置" }),
|
|
150
160
|
...extra,
|
|
151
161
|
},
|
|
152
162
|
{ additionalProperties: true },
|
|
153
163
|
),
|
|
154
164
|
Type.Object(
|
|
155
165
|
{
|
|
156
|
-
...
|
|
166
|
+
...base,
|
|
157
167
|
official: Type.Null({
|
|
158
|
-
description: `示范代码本身就为同一关切带同样的状态、锁、缓存或依赖:填 null,并在
|
|
168
|
+
description: `示范代码本身就为同一关切带同样的状态、锁、缓存或依赖:填 null,并在 ${labels.evidenceField} 末尾写框架名与示范里那一处。${MECHANISM_FRAMEWORK_RULE}`,
|
|
159
169
|
}),
|
|
160
|
-
disposition: Type.Literal(
|
|
170
|
+
disposition: Type.Literal(labels.carries, { description: "official 为 null,这一行只能是这个处置" }),
|
|
161
171
|
...extra,
|
|
162
172
|
},
|
|
163
173
|
{ additionalProperties: true },
|
|
164
174
|
),
|
|
165
175
|
],
|
|
166
|
-
{ description:
|
|
176
|
+
{ description: `两种行形,没有第三种:示范不带这一层也处理得了(official 填字,${labels.without.split(":")[0]});示范本身就带同样的层(official null,${labels.carries.split(":")[0]})` },
|
|
167
177
|
);
|
|
168
178
|
|
|
179
|
+
const MECHANISM_LABELS = { without: "删:示范不带这一层也处理得了", carries: "留:示范本身就为同一关切带同样的层", evidenceField: "keeps" } as const;
|
|
180
|
+
const mechanismRowUnion = (extra: RowFields = {}) => existenceRowUnion(mechanismRowBase, MECHANISM_LABELS, extra);
|
|
181
|
+
|
|
169
182
|
export const mechanismRowSchema = mechanismRowUnion();
|
|
170
183
|
|
|
171
184
|
/** Auditor row: the inspector row plus what the judge's verdict said about this layer, verbatim, or null when the verdict never touched it. */
|
|
@@ -175,6 +188,33 @@ export const auditorMechanismRowSchema = mechanismRowUnion({
|
|
|
175
188
|
}),
|
|
176
189
|
});
|
|
177
190
|
|
|
191
|
+
/** 存废尺 row for a ticket clause: what the clause makes exist, against the framework's example. */
|
|
192
|
+
const clauseRowBase = {
|
|
193
|
+
clause: Type.String({ description: "现行票面里让某个机制存在的那条条款原文(照抄,不合并、不改写)" }),
|
|
194
|
+
kind: Type.Union(
|
|
195
|
+
[Type.Literal("明写机制:条款自己点名了状态、表、缓存、锁、依赖"), Type.Literal("只写结果:条款只提要求,现状代码满足不了,得长出机制才做得到")],
|
|
196
|
+
{ description: "两类都要列。第二类最容易漏:零重复、跨提交不重读、不建豁免、每 X 只做一次、永不 Y——这种句子没写机制两个字,却只能靠新状态、缓存、失效规则满足;先打开现状代码核一遍它做不做得到,做不到就是这类" },
|
|
197
|
+
),
|
|
198
|
+
makes: Type.String({ description: "这条条款落实后会让什么东西存在:跨调用保存的状态、缓存、锁、失效规则、预计算、新依赖;写出它的形状。只写结果的条款,写满足它必须长出的那样东西" }),
|
|
199
|
+
} as const;
|
|
200
|
+
const CLAUSE_LABELS = { without: "不要:示范不带这一层也处理得了", carries: "要:示范本身就为同一关切带同样的层", evidenceField: "makes" } as const;
|
|
201
|
+
export const clauseExistenceRowSchema = existenceRowUnion(clauseRowBase, CLAUSE_LABELS);
|
|
202
|
+
|
|
203
|
+
/** Countersign generation schema: shared review face plus the 存废尺 over the current ticket's clauses (package records as-is). */
|
|
204
|
+
export const countersignSubmissionSchema = withTerminatingOutputDeclarations(
|
|
205
|
+
Type.Object(
|
|
206
|
+
{
|
|
207
|
+
status: reviewStatusField,
|
|
208
|
+
...reviewNarrativeFields,
|
|
209
|
+
existence: Type.Array(clauseExistenceRowSchema, {
|
|
210
|
+
description:
|
|
211
|
+
"存废尺:现行票面每条让机制存在的条款各一行——明写机制的,和只写结果要求、现状代码满足不了的,两类都算——到 ADR/票面点名的应用框架官方示范里看不带它时同一关切怎么处理。有「不要」行在,不得署,封驳或上呈并点名那条。票面已写、前轮判词要求过、签发方答过、陛下对别的题点过头,都不是「要」的理由;「要」只认示范里带同样的层。一条没有为空数组。",
|
|
212
|
+
}),
|
|
213
|
+
},
|
|
214
|
+
{ additionalProperties: true },
|
|
215
|
+
),
|
|
216
|
+
);
|
|
217
|
+
|
|
178
218
|
/** Inspector generation schema: shared review face plus the required whole-ticket complexity answer (package records as-is). */
|
|
179
219
|
export const inspectorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
180
220
|
Type.Object(
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Execute lives in filed-submission.ts.
|
|
6
6
|
*/
|
|
7
7
|
import { packagedRoleOutputTool, type PackagedRole } from "./packaged-role-registry.ts";
|
|
8
|
-
import { auditorSubmissionSchema, notaryReviewSubmissionSchema, inspectorSubmissionSchema, reviewSubmissionSchema } from "./review-submission.ts";
|
|
8
|
+
import { auditorSubmissionSchema, countersignSubmissionSchema, notaryReviewSubmissionSchema, inspectorSubmissionSchema, reviewSubmissionSchema } from "./review-submission.ts";
|
|
9
9
|
import { collectorOutputArgsSchema } from "./collector-tool-schemas.ts";
|
|
10
10
|
import { diaristOutputSchema } from "./diarist-contracts.ts";
|
|
11
11
|
import { doctorSubmissionSchema, DOCTOR_OUTPUT_TOOL_DESCRIPTION } from "./doctor-contracts.ts";
|
|
@@ -79,9 +79,9 @@ const SUBMISSION_FACE = {
|
|
|
79
79
|
},
|
|
80
80
|
countersign: {
|
|
81
81
|
label: "给事中输出",
|
|
82
|
-
description: "
|
|
82
|
+
description: "给事中决议(含现行票面条款的存废尺 existence)。",
|
|
83
83
|
promptSnippet: "给事中决议",
|
|
84
|
-
parameters:
|
|
84
|
+
parameters: countersignSubmissionSchema,
|
|
85
85
|
},
|
|
86
86
|
secretariat: {
|
|
87
87
|
label: "中书省输出",
|