@akagilnc/pi-workflow-roles 0.1.5858 → 0.1.5862
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 +107 -91
- package/dist/headless-host/production-host.js +107 -91
- package/dist/migrate-book-topology.js +18 -2
- package/dist/package-contracts/fixer-output.js +3 -1
- package/dist/package-contracts/self-review-fields.js +5 -0
- package/dist/package-contracts/worker-output.js +3 -1
- package/dist/public-cli/main.js +18 -2
- package/package.json +1 -1
- package/souls/coder-output-guide.md +1 -1
- package/souls/coder.md +1 -5
- package/souls/fixer-output-guide.md +1 -1
- package/souls/fixer.md +6 -3
- package/souls/quality-law.md +10 -0
- package/src/package-contracts/fixer-output.ts +4 -1
- package/src/package-contracts/self-review-fields.ts +8 -0
- package/src/package-contracts/worker-output.ts +2 -0
|
@@ -1800,8 +1800,20 @@ var init_reviewer_output = __esm({
|
|
|
1800
1800
|
}
|
|
1801
1801
|
});
|
|
1802
1802
|
|
|
1803
|
-
// src/package-contracts/
|
|
1803
|
+
// src/package-contracts/self-review-fields.ts
|
|
1804
1804
|
import { Type as Type7 } from "typebox";
|
|
1805
|
+
var diffItemsField;
|
|
1806
|
+
var init_self_review_fields = __esm({
|
|
1807
|
+
"src/package-contracts/self-review-fields.ts"() {
|
|
1808
|
+
"use strict";
|
|
1809
|
+
diffItemsField = Type7.Unknown({
|
|
1810
|
+
description: "commit \u524D\u81EA\u5BA1\u9010\u9879\u8868\uFF1A\u672C\u6B21\u65B0\u589E\u7684\u6BCF\u4E2A\u6D4B\u8BD5\u51FD\u6570\u3001\u6BCF\u4E2A\u751F\u4EA7\u51FD\u6570\u5404\u4E00\u884C { item: \u540D\u5B57, existing: \u4ED3\u91CC\u505A\u540C\u4E00\u4EF6\u4E8B\u7684\u73B0\u6210\u4EF6 path:line\uFF0C\u627E\u4E0D\u5230\u4E3A null, outcome: \u5DF2\u5E76\u5165 | \u4FDD\u7559 }\u3002"
|
|
1811
|
+
});
|
|
1812
|
+
}
|
|
1813
|
+
});
|
|
1814
|
+
|
|
1815
|
+
// src/package-contracts/fixer-output.ts
|
|
1816
|
+
import { Type as Type8 } from "typebox";
|
|
1805
1817
|
function validateFixerOutput(value, _phase) {
|
|
1806
1818
|
return value;
|
|
1807
1819
|
}
|
|
@@ -1811,25 +1823,27 @@ var init_fixer_output = __esm({
|
|
|
1811
1823
|
"use strict";
|
|
1812
1824
|
init_open_tool_schema();
|
|
1813
1825
|
init_terminating_infrastructure();
|
|
1826
|
+
init_self_review_fields();
|
|
1814
1827
|
FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
1815
1828
|
PARTIALLY_COMPLETED_DEFINITION = "partially_completed \u53EA\u80FD\u5728\u6709\u5408\u6CD5\u62D2\u7EDD\u9879\uFF08\u5B8C\u6210\u9879\u4E0E\u5408\u6CD5\u62D2\u7EDD\u9879\u5E76\u5B58\uFF09\u65F6\u7528\uFF0C\u522B\u7684\u60C5\u51B5\u4E0D\u51C6\u7528\u3002";
|
|
1816
1829
|
FIXER_STATUS_DESCRIPTION = `planned | completed | refused | unfinished | partially_completed\u3002unfinished \u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u65F6\u53EF\u7528\uFF0C\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
1817
|
-
fixerOutputObject =
|
|
1818
|
-
status:
|
|
1819
|
-
report:
|
|
1820
|
-
remainingScope:
|
|
1830
|
+
fixerOutputObject = Type8.Object({
|
|
1831
|
+
status: Type8.Unknown({ description: FIXER_STATUS_DESCRIPTION }),
|
|
1832
|
+
report: Type8.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
1833
|
+
remainingScope: Type8.Unknown({
|
|
1821
1834
|
description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C\uFF1B\u4F9D\u6CD5\u4E0D\u80FD\u5B8C\u6210\u7684\u8303\u56F4\u4E5F\u5199\u6B64\u5904\u3002"
|
|
1822
1835
|
}),
|
|
1823
|
-
blocker:
|
|
1836
|
+
blocker: Type8.Unknown({
|
|
1824
1837
|
description: "\u5408\u6CD5\u963B\u65AD\u5B8C\u6210\u7684 blocker\uFF0C\u539F\u6837\u7559\u5B58\u3002\u53EF\u5199 cause\uFF08authority_violation \u6216 prerequisite_unmet\uFF09\u3001evidence\uFF1Bprerequisite_unmet \u8FD8\u53EF\u5199 prerequisiteId\u3002"
|
|
1825
1838
|
}),
|
|
1826
|
-
reason:
|
|
1839
|
+
reason: Type8.Unknown({
|
|
1827
1840
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
1828
1841
|
}),
|
|
1829
|
-
classResults:
|
|
1830
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199
|
|
1842
|
+
classResults: Type8.Unknown({
|
|
1843
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
1831
1844
|
}),
|
|
1832
|
-
|
|
1845
|
+
diffItems: diffItemsField,
|
|
1846
|
+
testEvidence: Type8.Unknown({
|
|
1833
1847
|
description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
|
|
1834
1848
|
})
|
|
1835
1849
|
});
|
|
@@ -1840,7 +1854,7 @@ var init_fixer_output = __esm({
|
|
|
1840
1854
|
});
|
|
1841
1855
|
|
|
1842
1856
|
// src/package-contracts/worker-output.ts
|
|
1843
|
-
import { Type as
|
|
1857
|
+
import { Type as Type9 } from "typebox";
|
|
1844
1858
|
function validateAcceptedCoderDetails(output) {
|
|
1845
1859
|
return output;
|
|
1846
1860
|
}
|
|
@@ -1853,16 +1867,18 @@ var init_worker_output = __esm({
|
|
|
1853
1867
|
"use strict";
|
|
1854
1868
|
init_open_tool_schema();
|
|
1855
1869
|
init_fixer_output();
|
|
1870
|
+
init_self_review_fields();
|
|
1856
1871
|
init_terminating_infrastructure();
|
|
1857
1872
|
CODER_OUTPUT_TOOL_NAME = "ak_coder_output";
|
|
1858
1873
|
CODER_STATUS_DESCRIPTION = `planned | completed | refused | partially_completed | unfinished\u3002unfinished\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
1859
|
-
coderOutputObject =
|
|
1860
|
-
status:
|
|
1861
|
-
report:
|
|
1862
|
-
remainingScope:
|
|
1863
|
-
reason:
|
|
1874
|
+
coderOutputObject = Type9.Object({
|
|
1875
|
+
status: Type9.Unknown({ description: CODER_STATUS_DESCRIPTION }),
|
|
1876
|
+
report: Type9.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
1877
|
+
remainingScope: Type9.Unknown({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
1878
|
+
reason: Type9.Unknown({
|
|
1864
1879
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
1865
|
-
})
|
|
1880
|
+
}),
|
|
1881
|
+
diffItems: diffItemsField
|
|
1866
1882
|
});
|
|
1867
1883
|
coderOutputSchema = withTerminatingOutputDeclarations(
|
|
1868
1884
|
openToolObject(coderOutputObject)
|
|
@@ -1878,7 +1894,7 @@ var init_canonical_json = __esm({
|
|
|
1878
1894
|
});
|
|
1879
1895
|
|
|
1880
1896
|
// src/doctor-contracts.ts
|
|
1881
|
-
import { Type as
|
|
1897
|
+
import { Type as Type10 } from "typebox";
|
|
1882
1898
|
function validateDoctorSubmissionShape(value) {
|
|
1883
1899
|
return value;
|
|
1884
1900
|
}
|
|
@@ -1904,25 +1920,25 @@ var init_doctor_contracts = __esm({
|
|
|
1904
1920
|
biteNone = "noRealBite";
|
|
1905
1921
|
DOCTOR_BITE_KINDS = [biteActual, biteNone];
|
|
1906
1922
|
DOCTOR_STATUS_DESCRIPTION = "completed | refused\u3002completed \u5141\u8BB8\u7A7A findings\uFF1Brefused \u4EC5\u5F53\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u6848\u8BC1\u8BCD";
|
|
1907
|
-
doctorSubmissionObject =
|
|
1908
|
-
status:
|
|
1909
|
-
case:
|
|
1923
|
+
doctorSubmissionObject = Type10.Object({
|
|
1924
|
+
status: Type10.Unknown({ description: DOCTOR_STATUS_DESCRIPTION }),
|
|
1925
|
+
case: Type10.Unknown({
|
|
1910
1926
|
description: "\u7559\u5B58\u592A\u533B\u7F72\u6848\u8EAB\u4EFD\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982 issueNumber\u3001runsPath\uFF09\u3002\u673A\u68B0\u5C42\u53E6\u6309\u7ED1\u5B9A run \u6295\u5F71\u6848\u8EAB\u4EFD\uFF0C\u4E0D\u5728\u672C\u5B57\u6BB5\u91CD\u5224\u3002"
|
|
1911
1927
|
}),
|
|
1912
|
-
findings:
|
|
1928
|
+
findings: Type10.Unknown({
|
|
1913
1929
|
description: `\u9010\u6761\u8D44\u4EA7\u89C2\u5BDF\u4E0E\u5904\u65B9\uFF0C\u539F\u6837\u7559\u5B58\u3002\u4E00\u6761\u53EF\u542B targetKey\u3001targetKind\uFF08${DOCTOR_TARGET_KINDS.join(" | ")}\uFF09\u3001observation\u3001evidenceIds\u3001disposition\uFF08${DOCTOR_DISPOSITIONS.join(" | ")}\uFF09\u3001assetEvidence\uFF08targetKey\u3001targetKind\u3001evidenceId\uFF09\u3001guardrails\uFF08reproducibleFailure\u3001owningSeamOrInvariant\u3001deletionOrSimplificationSuffices\uFF0C\u5404\u9879\u53EF\u542B answer\u3001evidenceIds\u3001explanation\uFF09\u3001prescription\uFF08kind \u4E3A ${DOCTOR_PRESCRIPTION_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 recommendation\u3001necessityExplanation\uFF09\u3001lastRealBite\uFF08kind \u4E3A ${DOCTOR_BITE_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 targetKey\u3001evidenceId\u3001eligibleEvidenceIds\uFF09\u3002\u4E0D\u8981\u6C42\u4EFB\u4F55\u5904\u65B9\u6216\u53EF\u590D\u7528 finding\uFF1B\u7F3A\u53EF\u590D\u7528\u8D44\u4EA7\u6216 bounded-bite \u8BC1\u636E\u53EA\u6392\u9664\u5BF9\u5E94\u8D44\u4EA7\u5904\u65B9\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002`
|
|
1914
1930
|
}),
|
|
1915
|
-
reason:
|
|
1931
|
+
reason: Type10.Unknown({
|
|
1916
1932
|
description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u4EC5 refused \u65F6\u7528\u3002"
|
|
1917
1933
|
}),
|
|
1918
|
-
missingEvidence:
|
|
1934
|
+
missingEvidence: Type10.Unknown({
|
|
1919
1935
|
description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982\u6BCF\u9879 need\u3001targetKeys\uFF09\u3002"
|
|
1920
1936
|
})
|
|
1921
1937
|
});
|
|
1922
1938
|
doctorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
1923
1939
|
openToolObject(doctorSubmissionObject)
|
|
1924
1940
|
);
|
|
1925
|
-
doctorEvidenceReadSchema =
|
|
1941
|
+
doctorEvidenceReadSchema = Type10.Object({ evidenceId: Type10.String({ minLength: 1, description: "\u5F85\u8BFB\u7559\u5B58\u8BC1\u636E\u6807\u8BC6" }), offset: Type10.Optional(Type10.Integer({ minimum: 0, description: "\u8D77\u59CB\u5B57\u8282\u504F\u79FB\uFF08\u4ECE 0 \u8BA1\uFF09" })), limit: Type10.Optional(Type10.Integer({ minimum: 1, description: "\u8FD4\u56DE\u5B57\u8282\u6570\uFF08\u65E0\u4E0A\u9650\uFF09" })) }, { additionalProperties: true });
|
|
1926
1942
|
DoctorEvidenceStore = class {
|
|
1927
1943
|
constructor(patient) {
|
|
1928
1944
|
this.patient = patient;
|
|
@@ -1991,7 +2007,7 @@ var init_exact_utf8 = __esm({
|
|
|
1991
2007
|
});
|
|
1992
2008
|
|
|
1993
2009
|
// src/merger-contracts.ts
|
|
1994
|
-
import { Type as
|
|
2010
|
+
import { Type as Type11 } from "typebox";
|
|
1995
2011
|
function fail(message = "Merger input violates its exact contract") {
|
|
1996
2012
|
throw new MergerInputContractError(message);
|
|
1997
2013
|
}
|
|
@@ -2025,25 +2041,25 @@ var init_merger_contracts = __esm({
|
|
|
2025
2041
|
init_open_tool_schema();
|
|
2026
2042
|
init_terminating_infrastructure();
|
|
2027
2043
|
init_unknown_value();
|
|
2028
|
-
materialSchema =
|
|
2029
|
-
checkSchema =
|
|
2030
|
-
mergerInputSchema =
|
|
2031
|
-
attemptId:
|
|
2032
|
-
targetObjectId:
|
|
2033
|
-
sourceObjectId:
|
|
2044
|
+
materialSchema = Type11.Object({ bytesBase64: Type11.String(), sha256: Type11.String() });
|
|
2045
|
+
checkSchema = Type11.Object({ name: Type11.String({ minLength: 1 }), argv: Type11.Array(Type11.String({ minLength: 1 }), { minItems: 1 }) });
|
|
2046
|
+
mergerInputSchema = Type11.Object({
|
|
2047
|
+
attemptId: Type11.String({ minLength: 1, description: "\u5BF9\u8D26 attempt \u8EAB\u4EFD\uFF08transport\uFF09" }),
|
|
2048
|
+
targetObjectId: Type11.String({ description: "\u6750\u6599\uFF1Atarget parent OID\uFF1B\u53EF\u7A7A" }),
|
|
2049
|
+
sourceObjectId: Type11.String({ description: "\u6750\u6599\uFF1Asource parent OID\uFF1B\u53EF\u7A7A" }),
|
|
2034
2050
|
// #1168: task/authority dispatch copies removed; git-fact intents remain.
|
|
2035
|
-
materials:
|
|
2036
|
-
expectedConflictPaths:
|
|
2037
|
-
resolutionScope:
|
|
2038
|
-
authorizedChecks:
|
|
2051
|
+
materials: Type11.Object({ targetIntent: materialSchema, sourceIntent: materialSchema }),
|
|
2052
|
+
expectedConflictPaths: Type11.Array(Type11.String(), { description: "\u6750\u6599\uFF1A\u5F53\u524D\u672A\u5408\u5E76\u8DEF\u5F84\uFF1B\u53EF\u7A7A" }),
|
|
2053
|
+
resolutionScope: Type11.Array(Type11.String(), { description: "\u6750\u6599\uFF1A\u89E3\u6790\u8303\u56F4\u63D0\u793A\uFF1B\u53EF\u7A7A" }),
|
|
2054
|
+
authorizedChecks: Type11.Array(checkSchema)
|
|
2039
2055
|
});
|
|
2040
2056
|
MERGER_STATUS_DESCRIPTION = "completed | escalate";
|
|
2041
|
-
mergerOutputObject =
|
|
2042
|
-
status:
|
|
2043
|
-
attemptId:
|
|
2044
|
-
report:
|
|
2045
|
-
mergeCommitId:
|
|
2046
|
-
diagnosis:
|
|
2057
|
+
mergerOutputObject = Type11.Object({
|
|
2058
|
+
status: Type11.Unknown({ description: MERGER_STATUS_DESCRIPTION }),
|
|
2059
|
+
attemptId: Type11.Unknown({ description: "\u5DF2\u53D7\u7406\u5408\u5E76 attempt \u8EAB\u4EFD" }),
|
|
2060
|
+
report: Type11.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
2061
|
+
mergeCommitId: Type11.Unknown({ description: "\u5B8C\u6210\u5408\u5E76 commit object ID" }),
|
|
2062
|
+
diagnosis: Type11.Unknown({
|
|
2047
2063
|
description: "\u5408\u5E76\u65E0\u6CD5\u6216\u4E0D\u5E94\u7531\u672C\u5E2D\u5B8C\u6210\u7684\u539F\u56E0\uFF08\u542B\u65E0\u8FDB\u884C\u4E2D\u5408\u5E76\u3001\u65E0\u6D3B\u53EF\u5E72\u3001\u9700\u65B0\u7684\u4EA7\u54C1/\u6743\u529B\u51B3\u5B9A\uFF09"
|
|
2048
2064
|
})
|
|
2049
2065
|
});
|
|
@@ -2098,7 +2114,7 @@ var init_countersign_contracts = __esm({
|
|
|
2098
2114
|
});
|
|
2099
2115
|
|
|
2100
2116
|
// src/gleaner-left-contracts.ts
|
|
2101
|
-
import { Type as
|
|
2117
|
+
import { Type as Type12 } from "typebox";
|
|
2102
2118
|
var GLEANER_LEFT_OUTPUT_TOOL_NAME, gleanerLeftOutputSchema, GLEANER_LEFT_BASE_FLAG;
|
|
2103
2119
|
var init_gleaner_left_contracts = __esm({
|
|
2104
2120
|
"src/gleaner-left-contracts.ts"() {
|
|
@@ -2109,11 +2125,11 @@ var init_gleaner_left_contracts = __esm({
|
|
|
2109
2125
|
GLEANER_LEFT_OUTPUT_TOOL_NAME = "ak_gleaner_left_output";
|
|
2110
2126
|
gleanerLeftOutputSchema = withTerminatingOutputDeclarations(
|
|
2111
2127
|
openToolObject(
|
|
2112
|
-
|
|
2113
|
-
status:
|
|
2128
|
+
Type12.Object({
|
|
2129
|
+
status: Type12.Unknown({
|
|
2114
2130
|
description: "completed"
|
|
2115
2131
|
}),
|
|
2116
|
-
findings:
|
|
2132
|
+
findings: Type12.Unknown({
|
|
2117
2133
|
description: "\u5F39\u7AE0\u5217\u8868\uFF1B\u6BCF\u6761\u53EF\u542B pointer\uFF08\u6587\u4EF6/\u884C\u6307\u9488\uFF09\u4E0E statement\uFF08\u7591\u70B9\u9648\u8FF0\uFF09\uFF0C\u539F\u6837\u7559\u5B58\u3002\u7A7A\u5217\u8868\u5408\u6CD5\u5B8C\u5C40\uFF1B\u673A\u5668\u4E0D\u5224\u5F39\u7AE0\u662F\u5426\u6210\u7ACB\u3002"
|
|
2118
2134
|
})
|
|
2119
2135
|
})
|
|
@@ -2201,7 +2217,7 @@ var init_ticket_provenance_contracts = __esm({
|
|
|
2201
2217
|
});
|
|
2202
2218
|
|
|
2203
2219
|
// src/diarist-contracts.ts
|
|
2204
|
-
import { Type as
|
|
2220
|
+
import { Type as Type13 } from "typebox";
|
|
2205
2221
|
function projectDiaristSessions(value) {
|
|
2206
2222
|
const raw = value?.sessions;
|
|
2207
2223
|
if (raw === void 0) return [];
|
|
@@ -2234,20 +2250,20 @@ var init_diarist_contracts = __esm({
|
|
|
2234
2250
|
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\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id\uFF08\u539F\u751F id\uFF09\u6216 line\uFF08\u672C\u8F6E\u884C\u53F7\uFF09\uFF0C\u4E8C\u9009\u4E00\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";
|
|
2235
2251
|
diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
2236
2252
|
openToolObject(
|
|
2237
|
-
|
|
2238
|
-
status:
|
|
2253
|
+
Type13.Object({
|
|
2254
|
+
status: Type13.Unknown({
|
|
2239
2255
|
description: "completed | escalate"
|
|
2240
2256
|
}),
|
|
2241
|
-
ticketNumber:
|
|
2242
|
-
|
|
2257
|
+
ticketNumber: Type13.Optional(
|
|
2258
|
+
Type13.Unknown({
|
|
2243
2259
|
description: "\u672C\u5EAD\u5BF9\u8C61\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\u6216 null/\u7701\u7565\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
|
|
2244
2260
|
})
|
|
2245
2261
|
),
|
|
2246
|
-
reason:
|
|
2262
|
+
reason: Type13.Unknown({
|
|
2247
2263
|
description: "status \u4E3A escalate \u65F6\uFF1A\u8BA4\u4E0D\u51FA\u672C\u5EAD\u5BF9\u8C61\u7684\u539F\u56E0"
|
|
2248
2264
|
}),
|
|
2249
|
-
sessions:
|
|
2250
|
-
ticketSessions:
|
|
2265
|
+
sessions: Type13.Optional(Type13.Unknown({ description: DIARIST_SESSIONS_DESCRIPTION })),
|
|
2266
|
+
ticketSessions: Type13.Unknown({
|
|
2251
2267
|
description: `\u591A\u7968\u5EAD\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002\u4E0E\u5355\u7968 sessions \u4E8C\u9009\u4E00\u3002`
|
|
2252
2268
|
})
|
|
2253
2269
|
})
|
|
@@ -2257,7 +2273,7 @@ var init_diarist_contracts = __esm({
|
|
|
2257
2273
|
});
|
|
2258
2274
|
|
|
2259
2275
|
// src/secretariat-contracts.ts
|
|
2260
|
-
import { Type as
|
|
2276
|
+
import { Type as Type14 } from "typebox";
|
|
2261
2277
|
var SECRETARIAT_OUTPUT_TOOL_NAME, secretariatVerdictSchema;
|
|
2262
2278
|
var init_secretariat_contracts = __esm({
|
|
2263
2279
|
"src/secretariat-contracts.ts"() {
|
|
@@ -2265,19 +2281,19 @@ var init_secretariat_contracts = __esm({
|
|
|
2265
2281
|
init_terminating_infrastructure();
|
|
2266
2282
|
SECRETARIAT_OUTPUT_TOOL_NAME = "ak_secretariat_output";
|
|
2267
2283
|
secretariatVerdictSchema = withTerminatingOutputDeclarations(
|
|
2268
|
-
|
|
2284
|
+
Type14.Object(
|
|
2269
2285
|
{
|
|
2270
|
-
secretariatStatus:
|
|
2286
|
+
secretariatStatus: Type14.Unknown({
|
|
2271
2287
|
description: "converged | escalate"
|
|
2272
2288
|
}),
|
|
2273
|
-
ticketNumber:
|
|
2274
|
-
|
|
2289
|
+
ticketNumber: Type14.Optional(
|
|
2290
|
+
Type14.Unknown({ description: "\u672C\u7968\u53F7\uFF1B\u7F72\u65F6\u6307\u5411\u6700\u7EC8\u6B63\u6587\u6240\u5728\u7968" })
|
|
2275
2291
|
),
|
|
2276
|
-
note:
|
|
2292
|
+
note: Type14.Unknown({
|
|
2277
2293
|
description: "\u9644\u6CE8\uFF1B\u7F72\uFF08converged\uFF09\u65F6\u9010\u9898\u5217\u7B54\u6848\u3001\u4F9D\u636E\u4E0E\u843D\u5728\u54EA\u4E00\u53E5\uFF1B\u5C01\u8FD8\uFF08escalate\uFF09\u65F6\u9996\u5199\u300C\u5C01\u8FD8\u300D\u3002\u539F\u6837\u7559\u5B58\u3002"
|
|
2278
2294
|
}),
|
|
2279
|
-
evidence:
|
|
2280
|
-
decisionGate:
|
|
2295
|
+
evidence: Type14.Optional(Type14.Unknown({ description: "\u7559\u5B58\u8BC1\u636E" })),
|
|
2296
|
+
decisionGate: Type14.Unknown({
|
|
2281
2297
|
description: "\u672C\u8F6E\u9898\u76EE\uFF1A\u6BCF\u9898 question\u3001options\uFF08\u7A3F\u91CC\u505A\u6CD5\uFF0F\u53E6\u4E00\u505A\u6CD5\uFF09\u3001\u4E24\u8FB9\u4EE3\u4EF7\u3001\u5EFA\u8BAE\u3002\u539F\u6837\u7559\u5B58\u3002"
|
|
2282
2298
|
})
|
|
2283
2299
|
},
|
|
@@ -3060,7 +3076,7 @@ var init_submission_errors = __esm({
|
|
|
3060
3076
|
});
|
|
3061
3077
|
|
|
3062
3078
|
// src/collector-tool-schemas.ts
|
|
3063
|
-
import { Type as
|
|
3079
|
+
import { Type as Type15 } from "typebox";
|
|
3064
3080
|
var collectorOutputBaseSchema, collectorOutputArgsSchema;
|
|
3065
3081
|
var init_collector_tool_schemas = __esm({
|
|
3066
3082
|
"src/collector-tool-schemas.ts"() {
|
|
@@ -3068,11 +3084,11 @@ var init_collector_tool_schemas = __esm({
|
|
|
3068
3084
|
init_open_tool_schema();
|
|
3069
3085
|
init_terminating_infrastructure();
|
|
3070
3086
|
collectorOutputBaseSchema = openToolObject(
|
|
3071
|
-
|
|
3072
|
-
groups:
|
|
3087
|
+
Type15.Object({
|
|
3088
|
+
groups: Type15.Unsafe({
|
|
3073
3089
|
description: "\u6309\u673A\u5668\u8EAB\u4EFD\u5F52\u7EC4\u7684\u51FA\u5E2D\u3001\u6750\u6599\u4E0E\u9010\u6761 findings\uFF08LLM \u81EA\u884C\u4ECE\u5BBF\u4E3B CLI \u53D6\u8BC1\u6574\u7406\uFF1B\u4EE3\u7801\u4E0D\u4EE3\u6536\u4E0D\u5F52\u5E76\uFF09\u3002"
|
|
3074
3090
|
}),
|
|
3075
|
-
unfinishedReasons:
|
|
3091
|
+
unfinishedReasons: Type15.Unknown({
|
|
3076
3092
|
description: "\u672A\u5B8C\u6210\u539F\u56E0\uFF1B\u53D6\u8BC1\u53D7\u9650\u65F6\u5982\u5B9E\u62A5\u544A\u3002"
|
|
3077
3093
|
})
|
|
3078
3094
|
})
|
|
@@ -8097,7 +8113,7 @@ var init_invocation = __esm({
|
|
|
8097
8113
|
});
|
|
8098
8114
|
|
|
8099
8115
|
// src/report-ticket-tool.ts
|
|
8100
|
-
import { Type as
|
|
8116
|
+
import { Type as Type16 } from "typebox";
|
|
8101
8117
|
import { existsSync as existsSync4 } from "node:fs";
|
|
8102
8118
|
function pageString(page, key) {
|
|
8103
8119
|
const value = page?.[key];
|
|
@@ -8206,9 +8222,9 @@ var init_report_ticket_tool = __esm({
|
|
|
8206
8222
|
init_run_ticket_number();
|
|
8207
8223
|
init_unknown_value();
|
|
8208
8224
|
REPORT_TICKET_TOOL_NAME = "ak_report_ticket";
|
|
8209
|
-
reportTicketArgsSchema =
|
|
8225
|
+
reportTicketArgsSchema = Type16.Object(
|
|
8210
8226
|
{
|
|
8211
|
-
ticketNumber:
|
|
8227
|
+
ticketNumber: Type16.Unknown({
|
|
8212
8228
|
description: "\u672C\u7968\u53F7\uFF08\u6B63\u6574\u6570\u3001\u6570\u5B57\u4E32\u6216\u524D\u5BFC #N\uFF09\u3002\u5DF2\u77E5\u7968\u53F7\u65F6\u5F00\u5DE5\u5373\u62A5\uFF1B\u5C1A\u65E0\u7968\u53F7\u65F6\u4E0D\u8981\u8C03\u7528\u3002"
|
|
8213
8229
|
})
|
|
8214
8230
|
},
|
|
@@ -17814,7 +17830,7 @@ var init_analyst_model_groups = __esm({
|
|
|
17814
17830
|
|
|
17815
17831
|
// src/analyst-entry.ts
|
|
17816
17832
|
import { readFile as readFile12 } from "node:fs/promises";
|
|
17817
|
-
import { Type as
|
|
17833
|
+
import { Type as Type17 } from "typebox";
|
|
17818
17834
|
function cachedPageMatchesRequestedScope(page, input) {
|
|
17819
17835
|
if (page.bookKey !== input.bookKey) return false;
|
|
17820
17836
|
const requestedTicket = input.ticketNumber ?? input.issueNumber;
|
|
@@ -18019,16 +18035,16 @@ var init_analyst_entry = __esm({
|
|
|
18019
18035
|
}
|
|
18020
18036
|
}
|
|
18021
18037
|
};
|
|
18022
|
-
analystSweepModeInputSchema =
|
|
18038
|
+
analystSweepModeInputSchema = Type17.Object(
|
|
18023
18039
|
{
|
|
18024
|
-
mode:
|
|
18025
|
-
mergedPullRequests:
|
|
18026
|
-
|
|
18040
|
+
mode: Type17.Literal("sweep"),
|
|
18041
|
+
mergedPullRequests: Type17.Array(
|
|
18042
|
+
Type17.Object(
|
|
18027
18043
|
{
|
|
18028
|
-
projectRoot:
|
|
18044
|
+
projectRoot: Type17.String(),
|
|
18029
18045
|
/** 排除后改动行数 — omit or 0 → typed 空缺; finite ≥ 0 only. */
|
|
18030
|
-
changedLines:
|
|
18031
|
-
|
|
18046
|
+
changedLines: Type17.Optional(
|
|
18047
|
+
Type17.Number({ minimum: 0, maximum: Number.MAX_VALUE })
|
|
18032
18048
|
)
|
|
18033
18049
|
}
|
|
18034
18050
|
)
|
|
@@ -20972,18 +20988,18 @@ import { join as join30 } from "node:path";
|
|
|
20972
20988
|
import { Value as Value2 } from "typebox/value";
|
|
20973
20989
|
|
|
20974
20990
|
// src/activation-trace.ts
|
|
20975
|
-
import { Type as
|
|
20976
|
-
var causeSchema =
|
|
20977
|
-
identity:
|
|
20978
|
-
name:
|
|
20979
|
-
message:
|
|
20980
|
-
evidenceId:
|
|
20991
|
+
import { Type as Type18 } from "typebox";
|
|
20992
|
+
var causeSchema = Type18.Object({
|
|
20993
|
+
identity: Type18.String({ minLength: 1 }),
|
|
20994
|
+
name: Type18.String({ minLength: 1 }),
|
|
20995
|
+
message: Type18.String(),
|
|
20996
|
+
evidenceId: Type18.Optional(Type18.String({ minLength: 1 }))
|
|
20981
20997
|
}, { additionalProperties: false });
|
|
20982
|
-
var activationTraceRecordSchema =
|
|
20983
|
-
role:
|
|
20984
|
-
stageId:
|
|
20985
|
-
status:
|
|
20986
|
-
timestamp:
|
|
20998
|
+
var activationTraceRecordSchema = Type18.Object({
|
|
20999
|
+
role: Type18.String({ minLength: 1 }),
|
|
21000
|
+
stageId: Type18.String({ pattern: "^[a-z][a-z0-9-]*$" }),
|
|
21001
|
+
status: Type18.Literal("failed"),
|
|
21002
|
+
timestamp: Type18.String({ format: "date-time" }),
|
|
20987
21003
|
cause: causeSchema
|
|
20988
21004
|
}, { additionalProperties: false });
|
|
20989
21005
|
var activationCauseEvidence = 0;
|
|
@@ -21146,10 +21162,10 @@ init_engine_detour();
|
|
|
21146
21162
|
init_engine_detour_usage();
|
|
21147
21163
|
init_run_terminal_artifacts();
|
|
21148
21164
|
init_serialize_thrown_value();
|
|
21149
|
-
import { Type as
|
|
21150
|
-
var engineDetourArgsSchema =
|
|
21165
|
+
import { Type as Type19 } from "typebox";
|
|
21166
|
+
var engineDetourArgsSchema = Type19.Object(
|
|
21151
21167
|
{
|
|
21152
|
-
argv:
|
|
21168
|
+
argv: Type19.Array(Type19.String({ minLength: 1 }), {
|
|
21153
21169
|
minItems: 1,
|
|
21154
21170
|
description: "\u9996\u9879\u4E3A PATH \u4E2D\u7684\u53EF\u6267\u884C\u6587\u4EF6\uFF0C\u5176\u4F59\u9879\u4E3A\u53C2\u6570\u3002"
|
|
21155
21171
|
})
|
|
@@ -756,8 +756,20 @@ var init_navigator_output = __esm({
|
|
|
756
756
|
}
|
|
757
757
|
});
|
|
758
758
|
|
|
759
|
-
// src/package-contracts/
|
|
759
|
+
// src/package-contracts/self-review-fields.ts
|
|
760
760
|
import { Type as Type7 } from "typebox";
|
|
761
|
+
var diffItemsField;
|
|
762
|
+
var init_self_review_fields = __esm({
|
|
763
|
+
"src/package-contracts/self-review-fields.ts"() {
|
|
764
|
+
"use strict";
|
|
765
|
+
diffItemsField = Type7.Unknown({
|
|
766
|
+
description: "commit \u524D\u81EA\u5BA1\u9010\u9879\u8868\uFF1A\u672C\u6B21\u65B0\u589E\u7684\u6BCF\u4E2A\u6D4B\u8BD5\u51FD\u6570\u3001\u6BCF\u4E2A\u751F\u4EA7\u51FD\u6570\u5404\u4E00\u884C { item: \u540D\u5B57, existing: \u4ED3\u91CC\u505A\u540C\u4E00\u4EF6\u4E8B\u7684\u73B0\u6210\u4EF6 path:line\uFF0C\u627E\u4E0D\u5230\u4E3A null, outcome: \u5DF2\u5E76\u5165 | \u4FDD\u7559 }\u3002"
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
});
|
|
770
|
+
|
|
771
|
+
// src/package-contracts/fixer-output.ts
|
|
772
|
+
import { Type as Type8 } from "typebox";
|
|
761
773
|
function validateFixerOutput(value, _phase) {
|
|
762
774
|
return value;
|
|
763
775
|
}
|
|
@@ -767,25 +779,27 @@ var init_fixer_output = __esm({
|
|
|
767
779
|
"use strict";
|
|
768
780
|
init_open_tool_schema();
|
|
769
781
|
init_terminating_infrastructure();
|
|
782
|
+
init_self_review_fields();
|
|
770
783
|
FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
771
784
|
PARTIALLY_COMPLETED_DEFINITION = "partially_completed \u53EA\u80FD\u5728\u6709\u5408\u6CD5\u62D2\u7EDD\u9879\uFF08\u5B8C\u6210\u9879\u4E0E\u5408\u6CD5\u62D2\u7EDD\u9879\u5E76\u5B58\uFF09\u65F6\u7528\uFF0C\u522B\u7684\u60C5\u51B5\u4E0D\u51C6\u7528\u3002";
|
|
772
785
|
FIXER_STATUS_DESCRIPTION = `planned | completed | refused | unfinished | partially_completed\u3002unfinished \u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u65F6\u53EF\u7528\uFF0C\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
773
|
-
fixerOutputObject =
|
|
774
|
-
status:
|
|
775
|
-
report:
|
|
776
|
-
remainingScope:
|
|
786
|
+
fixerOutputObject = Type8.Object({
|
|
787
|
+
status: Type8.Unknown({ description: FIXER_STATUS_DESCRIPTION }),
|
|
788
|
+
report: Type8.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
789
|
+
remainingScope: Type8.Unknown({
|
|
777
790
|
description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C\uFF1B\u4F9D\u6CD5\u4E0D\u80FD\u5B8C\u6210\u7684\u8303\u56F4\u4E5F\u5199\u6B64\u5904\u3002"
|
|
778
791
|
}),
|
|
779
|
-
blocker:
|
|
792
|
+
blocker: Type8.Unknown({
|
|
780
793
|
description: "\u5408\u6CD5\u963B\u65AD\u5B8C\u6210\u7684 blocker\uFF0C\u539F\u6837\u7559\u5B58\u3002\u53EF\u5199 cause\uFF08authority_violation \u6216 prerequisite_unmet\uFF09\u3001evidence\uFF1Bprerequisite_unmet \u8FD8\u53EF\u5199 prerequisiteId\u3002"
|
|
781
794
|
}),
|
|
782
|
-
reason:
|
|
795
|
+
reason: Type8.Unknown({
|
|
783
796
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
784
797
|
}),
|
|
785
|
-
classResults:
|
|
786
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199
|
|
798
|
+
classResults: Type8.Unknown({
|
|
799
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
787
800
|
}),
|
|
788
|
-
|
|
801
|
+
diffItems: diffItemsField,
|
|
802
|
+
testEvidence: Type8.Unknown({
|
|
789
803
|
description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
|
|
790
804
|
})
|
|
791
805
|
});
|
|
@@ -796,7 +810,7 @@ var init_fixer_output = __esm({
|
|
|
796
810
|
});
|
|
797
811
|
|
|
798
812
|
// src/package-contracts/worker-output.ts
|
|
799
|
-
import { Type as
|
|
813
|
+
import { Type as Type9 } from "typebox";
|
|
800
814
|
function validateAcceptedCoderDetails(output) {
|
|
801
815
|
return output;
|
|
802
816
|
}
|
|
@@ -809,16 +823,18 @@ var init_worker_output = __esm({
|
|
|
809
823
|
"use strict";
|
|
810
824
|
init_open_tool_schema();
|
|
811
825
|
init_fixer_output();
|
|
826
|
+
init_self_review_fields();
|
|
812
827
|
init_terminating_infrastructure();
|
|
813
828
|
CODER_OUTPUT_TOOL_NAME = "ak_coder_output";
|
|
814
829
|
CODER_STATUS_DESCRIPTION = `planned | completed | refused | partially_completed | unfinished\u3002unfinished\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
815
|
-
coderOutputObject =
|
|
816
|
-
status:
|
|
817
|
-
report:
|
|
818
|
-
remainingScope:
|
|
819
|
-
reason:
|
|
830
|
+
coderOutputObject = Type9.Object({
|
|
831
|
+
status: Type9.Unknown({ description: CODER_STATUS_DESCRIPTION }),
|
|
832
|
+
report: Type9.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
833
|
+
remainingScope: Type9.Unknown({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
834
|
+
reason: Type9.Unknown({
|
|
820
835
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
821
|
-
})
|
|
836
|
+
}),
|
|
837
|
+
diffItems: diffItemsField
|
|
822
838
|
});
|
|
823
839
|
coderOutputSchema = withTerminatingOutputDeclarations(
|
|
824
840
|
openToolObject(coderOutputObject)
|
|
@@ -834,7 +850,7 @@ var init_canonical_json = __esm({
|
|
|
834
850
|
});
|
|
835
851
|
|
|
836
852
|
// src/doctor-contracts.ts
|
|
837
|
-
import { Type as
|
|
853
|
+
import { Type as Type10 } from "typebox";
|
|
838
854
|
function validateDoctorSubmissionShape(value) {
|
|
839
855
|
return value;
|
|
840
856
|
}
|
|
@@ -860,25 +876,25 @@ var init_doctor_contracts = __esm({
|
|
|
860
876
|
biteNone = "noRealBite";
|
|
861
877
|
DOCTOR_BITE_KINDS = [biteActual, biteNone];
|
|
862
878
|
DOCTOR_STATUS_DESCRIPTION = "completed | refused\u3002completed \u5141\u8BB8\u7A7A findings\uFF1Brefused \u4EC5\u5F53\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u6848\u8BC1\u8BCD";
|
|
863
|
-
doctorSubmissionObject =
|
|
864
|
-
status:
|
|
865
|
-
case:
|
|
879
|
+
doctorSubmissionObject = Type10.Object({
|
|
880
|
+
status: Type10.Unknown({ description: DOCTOR_STATUS_DESCRIPTION }),
|
|
881
|
+
case: Type10.Unknown({
|
|
866
882
|
description: "\u7559\u5B58\u592A\u533B\u7F72\u6848\u8EAB\u4EFD\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982 issueNumber\u3001runsPath\uFF09\u3002\u673A\u68B0\u5C42\u53E6\u6309\u7ED1\u5B9A run \u6295\u5F71\u6848\u8EAB\u4EFD\uFF0C\u4E0D\u5728\u672C\u5B57\u6BB5\u91CD\u5224\u3002"
|
|
867
883
|
}),
|
|
868
|
-
findings:
|
|
884
|
+
findings: Type10.Unknown({
|
|
869
885
|
description: `\u9010\u6761\u8D44\u4EA7\u89C2\u5BDF\u4E0E\u5904\u65B9\uFF0C\u539F\u6837\u7559\u5B58\u3002\u4E00\u6761\u53EF\u542B targetKey\u3001targetKind\uFF08${DOCTOR_TARGET_KINDS.join(" | ")}\uFF09\u3001observation\u3001evidenceIds\u3001disposition\uFF08${DOCTOR_DISPOSITIONS.join(" | ")}\uFF09\u3001assetEvidence\uFF08targetKey\u3001targetKind\u3001evidenceId\uFF09\u3001guardrails\uFF08reproducibleFailure\u3001owningSeamOrInvariant\u3001deletionOrSimplificationSuffices\uFF0C\u5404\u9879\u53EF\u542B answer\u3001evidenceIds\u3001explanation\uFF09\u3001prescription\uFF08kind \u4E3A ${DOCTOR_PRESCRIPTION_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 recommendation\u3001necessityExplanation\uFF09\u3001lastRealBite\uFF08kind \u4E3A ${DOCTOR_BITE_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 targetKey\u3001evidenceId\u3001eligibleEvidenceIds\uFF09\u3002\u4E0D\u8981\u6C42\u4EFB\u4F55\u5904\u65B9\u6216\u53EF\u590D\u7528 finding\uFF1B\u7F3A\u53EF\u590D\u7528\u8D44\u4EA7\u6216 bounded-bite \u8BC1\u636E\u53EA\u6392\u9664\u5BF9\u5E94\u8D44\u4EA7\u5904\u65B9\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002`
|
|
870
886
|
}),
|
|
871
|
-
reason:
|
|
887
|
+
reason: Type10.Unknown({
|
|
872
888
|
description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u4EC5 refused \u65F6\u7528\u3002"
|
|
873
889
|
}),
|
|
874
|
-
missingEvidence:
|
|
890
|
+
missingEvidence: Type10.Unknown({
|
|
875
891
|
description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982\u6BCF\u9879 need\u3001targetKeys\uFF09\u3002"
|
|
876
892
|
})
|
|
877
893
|
});
|
|
878
894
|
doctorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
879
895
|
openToolObject(doctorSubmissionObject)
|
|
880
896
|
);
|
|
881
|
-
doctorEvidenceReadSchema =
|
|
897
|
+
doctorEvidenceReadSchema = Type10.Object({ evidenceId: Type10.String({ minLength: 1, description: "\u5F85\u8BFB\u7559\u5B58\u8BC1\u636E\u6807\u8BC6" }), offset: Type10.Optional(Type10.Integer({ minimum: 0, description: "\u8D77\u59CB\u5B57\u8282\u504F\u79FB\uFF08\u4ECE 0 \u8BA1\uFF09" })), limit: Type10.Optional(Type10.Integer({ minimum: 1, description: "\u8FD4\u56DE\u5B57\u8282\u6570\uFF08\u65E0\u4E0A\u9650\uFF09" })) }, { additionalProperties: true });
|
|
882
898
|
DoctorEvidenceStore = class {
|
|
883
899
|
constructor(patient) {
|
|
884
900
|
this.patient = patient;
|
|
@@ -947,7 +963,7 @@ var init_exact_utf8 = __esm({
|
|
|
947
963
|
});
|
|
948
964
|
|
|
949
965
|
// src/merger-contracts.ts
|
|
950
|
-
import { Type as
|
|
966
|
+
import { Type as Type11 } from "typebox";
|
|
951
967
|
function fail(message = "Merger input violates its exact contract") {
|
|
952
968
|
throw new MergerInputContractError(message);
|
|
953
969
|
}
|
|
@@ -981,25 +997,25 @@ var init_merger_contracts = __esm({
|
|
|
981
997
|
init_open_tool_schema();
|
|
982
998
|
init_terminating_infrastructure();
|
|
983
999
|
init_unknown_value();
|
|
984
|
-
materialSchema =
|
|
985
|
-
checkSchema =
|
|
986
|
-
mergerInputSchema =
|
|
987
|
-
attemptId:
|
|
988
|
-
targetObjectId:
|
|
989
|
-
sourceObjectId:
|
|
1000
|
+
materialSchema = Type11.Object({ bytesBase64: Type11.String(), sha256: Type11.String() });
|
|
1001
|
+
checkSchema = Type11.Object({ name: Type11.String({ minLength: 1 }), argv: Type11.Array(Type11.String({ minLength: 1 }), { minItems: 1 }) });
|
|
1002
|
+
mergerInputSchema = Type11.Object({
|
|
1003
|
+
attemptId: Type11.String({ minLength: 1, description: "\u5BF9\u8D26 attempt \u8EAB\u4EFD\uFF08transport\uFF09" }),
|
|
1004
|
+
targetObjectId: Type11.String({ description: "\u6750\u6599\uFF1Atarget parent OID\uFF1B\u53EF\u7A7A" }),
|
|
1005
|
+
sourceObjectId: Type11.String({ description: "\u6750\u6599\uFF1Asource parent OID\uFF1B\u53EF\u7A7A" }),
|
|
990
1006
|
// #1168: task/authority dispatch copies removed; git-fact intents remain.
|
|
991
|
-
materials:
|
|
992
|
-
expectedConflictPaths:
|
|
993
|
-
resolutionScope:
|
|
994
|
-
authorizedChecks:
|
|
1007
|
+
materials: Type11.Object({ targetIntent: materialSchema, sourceIntent: materialSchema }),
|
|
1008
|
+
expectedConflictPaths: Type11.Array(Type11.String(), { description: "\u6750\u6599\uFF1A\u5F53\u524D\u672A\u5408\u5E76\u8DEF\u5F84\uFF1B\u53EF\u7A7A" }),
|
|
1009
|
+
resolutionScope: Type11.Array(Type11.String(), { description: "\u6750\u6599\uFF1A\u89E3\u6790\u8303\u56F4\u63D0\u793A\uFF1B\u53EF\u7A7A" }),
|
|
1010
|
+
authorizedChecks: Type11.Array(checkSchema)
|
|
995
1011
|
});
|
|
996
1012
|
MERGER_STATUS_DESCRIPTION = "completed | escalate";
|
|
997
|
-
mergerOutputObject =
|
|
998
|
-
status:
|
|
999
|
-
attemptId:
|
|
1000
|
-
report:
|
|
1001
|
-
mergeCommitId:
|
|
1002
|
-
diagnosis:
|
|
1013
|
+
mergerOutputObject = Type11.Object({
|
|
1014
|
+
status: Type11.Unknown({ description: MERGER_STATUS_DESCRIPTION }),
|
|
1015
|
+
attemptId: Type11.Unknown({ description: "\u5DF2\u53D7\u7406\u5408\u5E76 attempt \u8EAB\u4EFD" }),
|
|
1016
|
+
report: Type11.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
1017
|
+
mergeCommitId: Type11.Unknown({ description: "\u5B8C\u6210\u5408\u5E76 commit object ID" }),
|
|
1018
|
+
diagnosis: Type11.Unknown({
|
|
1003
1019
|
description: "\u5408\u5E76\u65E0\u6CD5\u6216\u4E0D\u5E94\u7531\u672C\u5E2D\u5B8C\u6210\u7684\u539F\u56E0\uFF08\u542B\u65E0\u8FDB\u884C\u4E2D\u5408\u5E76\u3001\u65E0\u6D3B\u53EF\u5E72\u3001\u9700\u65B0\u7684\u4EA7\u54C1/\u6743\u529B\u51B3\u5B9A\uFF09"
|
|
1004
1020
|
})
|
|
1005
1021
|
});
|
|
@@ -1054,7 +1070,7 @@ var init_countersign_contracts = __esm({
|
|
|
1054
1070
|
});
|
|
1055
1071
|
|
|
1056
1072
|
// src/gleaner-left-contracts.ts
|
|
1057
|
-
import { Type as
|
|
1073
|
+
import { Type as Type12 } from "typebox";
|
|
1058
1074
|
var GLEANER_LEFT_OUTPUT_TOOL_NAME, gleanerLeftOutputSchema, GLEANER_LEFT_BASE_FLAG;
|
|
1059
1075
|
var init_gleaner_left_contracts = __esm({
|
|
1060
1076
|
"src/gleaner-left-contracts.ts"() {
|
|
@@ -1065,11 +1081,11 @@ var init_gleaner_left_contracts = __esm({
|
|
|
1065
1081
|
GLEANER_LEFT_OUTPUT_TOOL_NAME = "ak_gleaner_left_output";
|
|
1066
1082
|
gleanerLeftOutputSchema = withTerminatingOutputDeclarations(
|
|
1067
1083
|
openToolObject(
|
|
1068
|
-
|
|
1069
|
-
status:
|
|
1084
|
+
Type12.Object({
|
|
1085
|
+
status: Type12.Unknown({
|
|
1070
1086
|
description: "completed"
|
|
1071
1087
|
}),
|
|
1072
|
-
findings:
|
|
1088
|
+
findings: Type12.Unknown({
|
|
1073
1089
|
description: "\u5F39\u7AE0\u5217\u8868\uFF1B\u6BCF\u6761\u53EF\u542B pointer\uFF08\u6587\u4EF6/\u884C\u6307\u9488\uFF09\u4E0E statement\uFF08\u7591\u70B9\u9648\u8FF0\uFF09\uFF0C\u539F\u6837\u7559\u5B58\u3002\u7A7A\u5217\u8868\u5408\u6CD5\u5B8C\u5C40\uFF1B\u673A\u5668\u4E0D\u5224\u5F39\u7AE0\u662F\u5426\u6210\u7ACB\u3002"
|
|
1074
1090
|
})
|
|
1075
1091
|
})
|
|
@@ -2071,7 +2087,7 @@ var init_ticket_provenance_contracts = __esm({
|
|
|
2071
2087
|
});
|
|
2072
2088
|
|
|
2073
2089
|
// src/diarist-contracts.ts
|
|
2074
|
-
import { Type as
|
|
2090
|
+
import { Type as Type13 } from "typebox";
|
|
2075
2091
|
function projectDiaristSessions(value) {
|
|
2076
2092
|
const raw = value?.sessions;
|
|
2077
2093
|
if (raw === void 0) return [];
|
|
@@ -2104,20 +2120,20 @@ var init_diarist_contracts = __esm({
|
|
|
2104
2120
|
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\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id\uFF08\u539F\u751F id\uFF09\u6216 line\uFF08\u672C\u8F6E\u884C\u53F7\uFF09\uFF0C\u4E8C\u9009\u4E00\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";
|
|
2105
2121
|
diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
2106
2122
|
openToolObject(
|
|
2107
|
-
|
|
2108
|
-
status:
|
|
2123
|
+
Type13.Object({
|
|
2124
|
+
status: Type13.Unknown({
|
|
2109
2125
|
description: "completed | escalate"
|
|
2110
2126
|
}),
|
|
2111
|
-
ticketNumber:
|
|
2112
|
-
|
|
2127
|
+
ticketNumber: Type13.Optional(
|
|
2128
|
+
Type13.Unknown({
|
|
2113
2129
|
description: "\u672C\u5EAD\u5BF9\u8C61\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\u6216 null/\u7701\u7565\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
|
|
2114
2130
|
})
|
|
2115
2131
|
),
|
|
2116
|
-
reason:
|
|
2132
|
+
reason: Type13.Unknown({
|
|
2117
2133
|
description: "status \u4E3A escalate \u65F6\uFF1A\u8BA4\u4E0D\u51FA\u672C\u5EAD\u5BF9\u8C61\u7684\u539F\u56E0"
|
|
2118
2134
|
}),
|
|
2119
|
-
sessions:
|
|
2120
|
-
ticketSessions:
|
|
2135
|
+
sessions: Type13.Optional(Type13.Unknown({ description: DIARIST_SESSIONS_DESCRIPTION })),
|
|
2136
|
+
ticketSessions: Type13.Unknown({
|
|
2121
2137
|
description: `\u591A\u7968\u5EAD\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002\u4E0E\u5355\u7968 sessions \u4E8C\u9009\u4E00\u3002`
|
|
2122
2138
|
})
|
|
2123
2139
|
})
|
|
@@ -2127,7 +2143,7 @@ var init_diarist_contracts = __esm({
|
|
|
2127
2143
|
});
|
|
2128
2144
|
|
|
2129
2145
|
// src/secretariat-contracts.ts
|
|
2130
|
-
import { Type as
|
|
2146
|
+
import { Type as Type14 } from "typebox";
|
|
2131
2147
|
var SECRETARIAT_OUTPUT_TOOL_NAME, secretariatVerdictSchema;
|
|
2132
2148
|
var init_secretariat_contracts = __esm({
|
|
2133
2149
|
"src/secretariat-contracts.ts"() {
|
|
@@ -2135,19 +2151,19 @@ var init_secretariat_contracts = __esm({
|
|
|
2135
2151
|
init_terminating_infrastructure();
|
|
2136
2152
|
SECRETARIAT_OUTPUT_TOOL_NAME = "ak_secretariat_output";
|
|
2137
2153
|
secretariatVerdictSchema = withTerminatingOutputDeclarations(
|
|
2138
|
-
|
|
2154
|
+
Type14.Object(
|
|
2139
2155
|
{
|
|
2140
|
-
secretariatStatus:
|
|
2156
|
+
secretariatStatus: Type14.Unknown({
|
|
2141
2157
|
description: "converged | escalate"
|
|
2142
2158
|
}),
|
|
2143
|
-
ticketNumber:
|
|
2144
|
-
|
|
2159
|
+
ticketNumber: Type14.Optional(
|
|
2160
|
+
Type14.Unknown({ description: "\u672C\u7968\u53F7\uFF1B\u7F72\u65F6\u6307\u5411\u6700\u7EC8\u6B63\u6587\u6240\u5728\u7968" })
|
|
2145
2161
|
),
|
|
2146
|
-
note:
|
|
2162
|
+
note: Type14.Unknown({
|
|
2147
2163
|
description: "\u9644\u6CE8\uFF1B\u7F72\uFF08converged\uFF09\u65F6\u9010\u9898\u5217\u7B54\u6848\u3001\u4F9D\u636E\u4E0E\u843D\u5728\u54EA\u4E00\u53E5\uFF1B\u5C01\u8FD8\uFF08escalate\uFF09\u65F6\u9996\u5199\u300C\u5C01\u8FD8\u300D\u3002\u539F\u6837\u7559\u5B58\u3002"
|
|
2148
2164
|
}),
|
|
2149
|
-
evidence:
|
|
2150
|
-
decisionGate:
|
|
2165
|
+
evidence: Type14.Optional(Type14.Unknown({ description: "\u7559\u5B58\u8BC1\u636E" })),
|
|
2166
|
+
decisionGate: Type14.Unknown({
|
|
2151
2167
|
description: "\u672C\u8F6E\u9898\u76EE\uFF1A\u6BCF\u9898 question\u3001options\uFF08\u7A3F\u91CC\u505A\u6CD5\uFF0F\u53E6\u4E00\u505A\u6CD5\uFF09\u3001\u4E24\u8FB9\u4EE3\u4EF7\u3001\u5EFA\u8BAE\u3002\u539F\u6837\u7559\u5B58\u3002"
|
|
2152
2168
|
})
|
|
2153
2169
|
},
|
|
@@ -4323,7 +4339,7 @@ var init_collector_config = __esm({
|
|
|
4323
4339
|
});
|
|
4324
4340
|
|
|
4325
4341
|
// src/collector-tool-schemas.ts
|
|
4326
|
-
import { Type as
|
|
4342
|
+
import { Type as Type15 } from "typebox";
|
|
4327
4343
|
var collectorOutputBaseSchema, collectorOutputArgsSchema;
|
|
4328
4344
|
var init_collector_tool_schemas = __esm({
|
|
4329
4345
|
"src/collector-tool-schemas.ts"() {
|
|
@@ -4331,11 +4347,11 @@ var init_collector_tool_schemas = __esm({
|
|
|
4331
4347
|
init_open_tool_schema();
|
|
4332
4348
|
init_terminating_infrastructure();
|
|
4333
4349
|
collectorOutputBaseSchema = openToolObject(
|
|
4334
|
-
|
|
4335
|
-
groups:
|
|
4350
|
+
Type15.Object({
|
|
4351
|
+
groups: Type15.Unsafe({
|
|
4336
4352
|
description: "\u6309\u673A\u5668\u8EAB\u4EFD\u5F52\u7EC4\u7684\u51FA\u5E2D\u3001\u6750\u6599\u4E0E\u9010\u6761 findings\uFF08LLM \u81EA\u884C\u4ECE\u5BBF\u4E3B CLI \u53D6\u8BC1\u6574\u7406\uFF1B\u4EE3\u7801\u4E0D\u4EE3\u6536\u4E0D\u5F52\u5E76\uFF09\u3002"
|
|
4337
4353
|
}),
|
|
4338
|
-
unfinishedReasons:
|
|
4354
|
+
unfinishedReasons: Type15.Unknown({
|
|
4339
4355
|
description: "\u672A\u5B8C\u6210\u539F\u56E0\uFF1B\u53D6\u8BC1\u53D7\u9650\u65F6\u5982\u5B9E\u62A5\u544A\u3002"
|
|
4340
4356
|
})
|
|
4341
4357
|
})
|
|
@@ -10325,7 +10341,7 @@ var init_run_lifecycle = __esm({
|
|
|
10325
10341
|
});
|
|
10326
10342
|
|
|
10327
10343
|
// src/report-ticket-tool.ts
|
|
10328
|
-
import { Type as
|
|
10344
|
+
import { Type as Type16 } from "typebox";
|
|
10329
10345
|
import { existsSync as existsSync6 } from "node:fs";
|
|
10330
10346
|
function pageString(page, key) {
|
|
10331
10347
|
const value = page?.[key];
|
|
@@ -10434,9 +10450,9 @@ var init_report_ticket_tool = __esm({
|
|
|
10434
10450
|
init_run_ticket_number();
|
|
10435
10451
|
init_unknown_value();
|
|
10436
10452
|
REPORT_TICKET_TOOL_NAME = "ak_report_ticket";
|
|
10437
|
-
reportTicketArgsSchema =
|
|
10453
|
+
reportTicketArgsSchema = Type16.Object(
|
|
10438
10454
|
{
|
|
10439
|
-
ticketNumber:
|
|
10455
|
+
ticketNumber: Type16.Unknown({
|
|
10440
10456
|
description: "\u672C\u7968\u53F7\uFF08\u6B63\u6574\u6570\u3001\u6570\u5B57\u4E32\u6216\u524D\u5BFC #N\uFF09\u3002\u5DF2\u77E5\u7968\u53F7\u65F6\u5F00\u5DE5\u5373\u62A5\uFF1B\u5C1A\u65E0\u7968\u53F7\u65F6\u4E0D\u8981\u8C03\u7528\u3002"
|
|
10441
10457
|
})
|
|
10442
10458
|
},
|
|
@@ -19161,7 +19177,7 @@ var init_analyst_model_groups = __esm({
|
|
|
19161
19177
|
|
|
19162
19178
|
// src/analyst-entry.ts
|
|
19163
19179
|
import { readFile as readFile13 } from "node:fs/promises";
|
|
19164
|
-
import { Type as
|
|
19180
|
+
import { Type as Type17 } from "typebox";
|
|
19165
19181
|
function cachedPageMatchesRequestedScope(page, input) {
|
|
19166
19182
|
if (page.bookKey !== input.bookKey) return false;
|
|
19167
19183
|
const requestedTicket = input.ticketNumber ?? input.issueNumber;
|
|
@@ -19366,16 +19382,16 @@ var init_analyst_entry = __esm({
|
|
|
19366
19382
|
}
|
|
19367
19383
|
}
|
|
19368
19384
|
};
|
|
19369
|
-
analystSweepModeInputSchema =
|
|
19385
|
+
analystSweepModeInputSchema = Type17.Object(
|
|
19370
19386
|
{
|
|
19371
|
-
mode:
|
|
19372
|
-
mergedPullRequests:
|
|
19373
|
-
|
|
19387
|
+
mode: Type17.Literal("sweep"),
|
|
19388
|
+
mergedPullRequests: Type17.Array(
|
|
19389
|
+
Type17.Object(
|
|
19374
19390
|
{
|
|
19375
|
-
projectRoot:
|
|
19391
|
+
projectRoot: Type17.String(),
|
|
19376
19392
|
/** 排除后改动行数 — omit or 0 → typed 空缺; finite ≥ 0 only. */
|
|
19377
|
-
changedLines:
|
|
19378
|
-
|
|
19393
|
+
changedLines: Type17.Optional(
|
|
19394
|
+
Type17.Number({ minimum: 0, maximum: Number.MAX_VALUE })
|
|
19379
19395
|
)
|
|
19380
19396
|
}
|
|
19381
19397
|
)
|
|
@@ -21118,18 +21134,18 @@ import { join as join30 } from "node:path";
|
|
|
21118
21134
|
import { Value as Value2 } from "typebox/value";
|
|
21119
21135
|
|
|
21120
21136
|
// src/activation-trace.ts
|
|
21121
|
-
import { Type as
|
|
21122
|
-
var causeSchema =
|
|
21123
|
-
identity:
|
|
21124
|
-
name:
|
|
21125
|
-
message:
|
|
21126
|
-
evidenceId:
|
|
21137
|
+
import { Type as Type18 } from "typebox";
|
|
21138
|
+
var causeSchema = Type18.Object({
|
|
21139
|
+
identity: Type18.String({ minLength: 1 }),
|
|
21140
|
+
name: Type18.String({ minLength: 1 }),
|
|
21141
|
+
message: Type18.String(),
|
|
21142
|
+
evidenceId: Type18.Optional(Type18.String({ minLength: 1 }))
|
|
21127
21143
|
}, { additionalProperties: false });
|
|
21128
|
-
var activationTraceRecordSchema =
|
|
21129
|
-
role:
|
|
21130
|
-
stageId:
|
|
21131
|
-
status:
|
|
21132
|
-
timestamp:
|
|
21144
|
+
var activationTraceRecordSchema = Type18.Object({
|
|
21145
|
+
role: Type18.String({ minLength: 1 }),
|
|
21146
|
+
stageId: Type18.String({ pattern: "^[a-z][a-z0-9-]*$" }),
|
|
21147
|
+
status: Type18.Literal("failed"),
|
|
21148
|
+
timestamp: Type18.String({ format: "date-time" }),
|
|
21133
21149
|
cause: causeSchema
|
|
21134
21150
|
}, { additionalProperties: false });
|
|
21135
21151
|
var activationCauseEvidence = 0;
|
|
@@ -21292,10 +21308,10 @@ init_engine_detour();
|
|
|
21292
21308
|
init_engine_detour_usage();
|
|
21293
21309
|
init_run_terminal_artifacts();
|
|
21294
21310
|
init_serialize_thrown_value();
|
|
21295
|
-
import { Type as
|
|
21296
|
-
var engineDetourArgsSchema =
|
|
21311
|
+
import { Type as Type19 } from "typebox";
|
|
21312
|
+
var engineDetourArgsSchema = Type19.Object(
|
|
21297
21313
|
{
|
|
21298
|
-
argv:
|
|
21314
|
+
argv: Type19.Array(Type19.String({ minLength: 1 }), {
|
|
21299
21315
|
minItems: 1,
|
|
21300
21316
|
description: "\u9996\u9879\u4E3A PATH \u4E2D\u7684\u53EF\u6267\u884C\u6587\u4EF6\uFF0C\u5176\u4F59\u9879\u4E3A\u53C2\u6570\u3002"
|
|
21301
21317
|
})
|
|
@@ -8826,6 +8826,18 @@ var init_reviewer_output = __esm({
|
|
|
8826
8826
|
}
|
|
8827
8827
|
});
|
|
8828
8828
|
|
|
8829
|
+
// src/package-contracts/self-review-fields.ts
|
|
8830
|
+
var diffItemsField;
|
|
8831
|
+
var init_self_review_fields = __esm({
|
|
8832
|
+
"src/package-contracts/self-review-fields.ts"() {
|
|
8833
|
+
"use strict";
|
|
8834
|
+
init_build();
|
|
8835
|
+
diffItemsField = typebox_exports.Unknown({
|
|
8836
|
+
description: "commit \u524D\u81EA\u5BA1\u9010\u9879\u8868\uFF1A\u672C\u6B21\u65B0\u589E\u7684\u6BCF\u4E2A\u6D4B\u8BD5\u51FD\u6570\u3001\u6BCF\u4E2A\u751F\u4EA7\u51FD\u6570\u5404\u4E00\u884C { item: \u540D\u5B57, existing: \u4ED3\u91CC\u505A\u540C\u4E00\u4EF6\u4E8B\u7684\u73B0\u6210\u4EF6 path:line\uFF0C\u627E\u4E0D\u5230\u4E3A null, outcome: \u5DF2\u5E76\u5165 | \u4FDD\u7559 }\u3002"
|
|
8837
|
+
});
|
|
8838
|
+
}
|
|
8839
|
+
});
|
|
8840
|
+
|
|
8829
8841
|
// src/package-contracts/fixer-output.ts
|
|
8830
8842
|
var FIXER_OUTPUT_TOOL_NAME, PARTIALLY_COMPLETED_DEFINITION, FIXER_STATUS_DESCRIPTION, fixerOutputObject, fixerOutputSchema;
|
|
8831
8843
|
var init_fixer_output = __esm({
|
|
@@ -8834,6 +8846,7 @@ var init_fixer_output = __esm({
|
|
|
8834
8846
|
init_build();
|
|
8835
8847
|
init_open_tool_schema();
|
|
8836
8848
|
init_terminating_infrastructure();
|
|
8849
|
+
init_self_review_fields();
|
|
8837
8850
|
FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
8838
8851
|
PARTIALLY_COMPLETED_DEFINITION = "partially_completed \u53EA\u80FD\u5728\u6709\u5408\u6CD5\u62D2\u7EDD\u9879\uFF08\u5B8C\u6210\u9879\u4E0E\u5408\u6CD5\u62D2\u7EDD\u9879\u5E76\u5B58\uFF09\u65F6\u7528\uFF0C\u522B\u7684\u60C5\u51B5\u4E0D\u51C6\u7528\u3002";
|
|
8839
8852
|
FIXER_STATUS_DESCRIPTION = `planned | completed | refused | unfinished | partially_completed\u3002unfinished \u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u65F6\u53EF\u7528\uFF0C\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
@@ -8850,8 +8863,9 @@ var init_fixer_output = __esm({
|
|
|
8850
8863
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
8851
8864
|
}),
|
|
8852
8865
|
classResults: typebox_exports.Unknown({
|
|
8853
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199
|
|
8866
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
8854
8867
|
}),
|
|
8868
|
+
diffItems: diffItemsField,
|
|
8855
8869
|
testEvidence: typebox_exports.Unknown({
|
|
8856
8870
|
description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
|
|
8857
8871
|
})
|
|
@@ -8870,6 +8884,7 @@ var init_worker_output = __esm({
|
|
|
8870
8884
|
init_build();
|
|
8871
8885
|
init_open_tool_schema();
|
|
8872
8886
|
init_fixer_output();
|
|
8887
|
+
init_self_review_fields();
|
|
8873
8888
|
init_terminating_infrastructure();
|
|
8874
8889
|
CODER_OUTPUT_TOOL_NAME = "ak_coder_output";
|
|
8875
8890
|
CODER_STATUS_DESCRIPTION = `planned | completed | refused | partially_completed | unfinished\u3002unfinished\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
@@ -8879,7 +8894,8 @@ var init_worker_output = __esm({
|
|
|
8879
8894
|
remainingScope: typebox_exports.Unknown({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
8880
8895
|
reason: typebox_exports.Unknown({
|
|
8881
8896
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
8882
|
-
})
|
|
8897
|
+
}),
|
|
8898
|
+
diffItems: diffItemsField
|
|
8883
8899
|
});
|
|
8884
8900
|
coderOutputSchema = withTerminatingOutputDeclarations(
|
|
8885
8901
|
openToolObject(coderOutputObject)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
2
|
import { openToolObject } from "../open-tool-schema.js";
|
|
3
3
|
import { withTerminatingOutputDeclarations } from "./terminating-infrastructure.js";
|
|
4
|
+
import { diffItemsField } from "./self-review-fields.js";
|
|
4
5
|
const FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
5
6
|
const PARTIALLY_COMPLETED_DEFINITION = "partially_completed \u53EA\u80FD\u5728\u6709\u5408\u6CD5\u62D2\u7EDD\u9879\uFF08\u5B8C\u6210\u9879\u4E0E\u5408\u6CD5\u62D2\u7EDD\u9879\u5E76\u5B58\uFF09\u65F6\u7528\uFF0C\u522B\u7684\u60C5\u51B5\u4E0D\u51C6\u7528\u3002";
|
|
6
7
|
const FIXER_STATUS_DESCRIPTION = `planned | completed | refused | unfinished | partially_completed\u3002unfinished \u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u65F6\u53EF\u7528\uFF0C\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
@@ -17,8 +18,9 @@ const fixerOutputObject = Type.Object({
|
|
|
17
18
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
18
19
|
}),
|
|
19
20
|
classResults: Type.Unknown({
|
|
20
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199
|
|
21
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
21
22
|
}),
|
|
23
|
+
diffItems: diffItemsField,
|
|
22
24
|
testEvidence: Type.Unknown({
|
|
23
25
|
description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
|
|
24
26
|
})
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Builder-seat self-review table shared by the Coder and Fixer submissions (souls/quality-law.md「交卷前自审」). */
|
|
2
|
+
import { Type } from "typebox";
|
|
3
|
+
export const diffItemsField = Type.Unknown({
|
|
4
|
+
description: "commit 前自审逐项表:本次新增的每个测试函数、每个生产函数各一行 { item: 名字, existing: 仓里做同一件事的现成件 path:line,找不到为 null, outcome: 已并入 | 保留 }。",
|
|
5
|
+
});
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
PARTIALLY_COMPLETED_DEFINITION,
|
|
7
7
|
validateFixerOutput
|
|
8
8
|
} from "./fixer-output.js";
|
|
9
|
+
import { diffItemsField } from "./self-review-fields.js";
|
|
9
10
|
import { withTerminatingOutputDeclarations } from "./terminating-infrastructure.js";
|
|
10
11
|
const CODER_OUTPUT_TOOL_NAME = "ak_coder_output";
|
|
11
12
|
function validateAcceptedCoderDetails(output) {
|
|
@@ -21,7 +22,8 @@ const coderOutputObject = Type.Object({
|
|
|
21
22
|
remainingScope: Type.Unknown({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
22
23
|
reason: Type.Unknown({
|
|
23
24
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
24
|
-
})
|
|
25
|
+
}),
|
|
26
|
+
diffItems: diffItemsField
|
|
25
27
|
});
|
|
26
28
|
const coderOutputSchema = withTerminatingOutputDeclarations(
|
|
27
29
|
openToolObject(coderOutputObject)
|
package/dist/public-cli/main.js
CHANGED
|
@@ -9316,6 +9316,18 @@ var init_reviewer_output = __esm({
|
|
|
9316
9316
|
}
|
|
9317
9317
|
});
|
|
9318
9318
|
|
|
9319
|
+
// src/package-contracts/self-review-fields.ts
|
|
9320
|
+
var diffItemsField;
|
|
9321
|
+
var init_self_review_fields = __esm({
|
|
9322
|
+
"src/package-contracts/self-review-fields.ts"() {
|
|
9323
|
+
"use strict";
|
|
9324
|
+
init_build();
|
|
9325
|
+
diffItemsField = typebox_exports.Unknown({
|
|
9326
|
+
description: "commit \u524D\u81EA\u5BA1\u9010\u9879\u8868\uFF1A\u672C\u6B21\u65B0\u589E\u7684\u6BCF\u4E2A\u6D4B\u8BD5\u51FD\u6570\u3001\u6BCF\u4E2A\u751F\u4EA7\u51FD\u6570\u5404\u4E00\u884C { item: \u540D\u5B57, existing: \u4ED3\u91CC\u505A\u540C\u4E00\u4EF6\u4E8B\u7684\u73B0\u6210\u4EF6 path:line\uFF0C\u627E\u4E0D\u5230\u4E3A null, outcome: \u5DF2\u5E76\u5165 | \u4FDD\u7559 }\u3002"
|
|
9327
|
+
});
|
|
9328
|
+
}
|
|
9329
|
+
});
|
|
9330
|
+
|
|
9319
9331
|
// src/package-contracts/fixer-output.ts
|
|
9320
9332
|
var FIXER_OUTPUT_TOOL_NAME, PARTIALLY_COMPLETED_DEFINITION, FIXER_STATUS_DESCRIPTION, fixerOutputObject, fixerOutputSchema;
|
|
9321
9333
|
var init_fixer_output = __esm({
|
|
@@ -9324,6 +9336,7 @@ var init_fixer_output = __esm({
|
|
|
9324
9336
|
init_build();
|
|
9325
9337
|
init_open_tool_schema();
|
|
9326
9338
|
init_terminating_infrastructure();
|
|
9339
|
+
init_self_review_fields();
|
|
9327
9340
|
FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
9328
9341
|
PARTIALLY_COMPLETED_DEFINITION = "partially_completed \u53EA\u80FD\u5728\u6709\u5408\u6CD5\u62D2\u7EDD\u9879\uFF08\u5B8C\u6210\u9879\u4E0E\u5408\u6CD5\u62D2\u7EDD\u9879\u5E76\u5B58\uFF09\u65F6\u7528\uFF0C\u522B\u7684\u60C5\u51B5\u4E0D\u51C6\u7528\u3002";
|
|
9329
9342
|
FIXER_STATUS_DESCRIPTION = `planned | completed | refused | unfinished | partially_completed\u3002unfinished \u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u65F6\u53EF\u7528\uFF0C\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
@@ -9340,8 +9353,9 @@ var init_fixer_output = __esm({
|
|
|
9340
9353
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
9341
9354
|
}),
|
|
9342
9355
|
classResults: typebox_exports.Unknown({
|
|
9343
|
-
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199
|
|
9356
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u6BCF\u7C7B\u5199 name\u3001shape\uFF08\u9519\u8BEF\u5F62\u72B6\u4E00\u53E5\uFF09\u3002\u6309\u4EE3\u7801\u5F62\u72B6\u8BA4\u7684\u7C7B\u5199 search\uFF08\u5B9E\u9645\u8DD1\u7684\u641C\u7D22\u547D\u4EE4\uFF0C\u539F\u6837\uFF09\u3001hits\uFF08\u547D\u4EE4\u8F93\u51FA\u7684\u6BCF\u4E2A\u547D\u4E2D\u4E00\u884C { where: path:line, outcome: \u5DF2\u4FEE | \u4E0D\u540C\u7C7B\uFF1A\u7406\u7531 }\uFF09\uFF1B\u6309\u60C5\u5F62\u8BA4\u7684\u7C7B\u5199 cases\uFF08\u6BCF\u79CD\u524D\u5E8F\u7ECF\u5386\u4E00\u884C { case: \u5BF9\u8C61\u5148\u7ECF\u5386\u4E86\u4EC0\u4E48, entry: \u4ECE\u771F\u5B9E\u5165\u53E3\u600E\u4E48\u8D70\u5230\u5B83, before: \u4FEE\u524D\u7ED3\u679C, after: \u4FEE\u540E\u7ED3\u679C }\uFF09\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 remainingScope\u3001blocker\u3002"
|
|
9344
9357
|
}),
|
|
9358
|
+
diffItems: diffItemsField,
|
|
9345
9359
|
testEvidence: typebox_exports.Unknown({
|
|
9346
9360
|
description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
|
|
9347
9361
|
})
|
|
@@ -9360,6 +9374,7 @@ var init_worker_output = __esm({
|
|
|
9360
9374
|
init_build();
|
|
9361
9375
|
init_open_tool_schema();
|
|
9362
9376
|
init_fixer_output();
|
|
9377
|
+
init_self_review_fields();
|
|
9363
9378
|
init_terminating_infrastructure();
|
|
9364
9379
|
CODER_OUTPUT_TOOL_NAME = "ak_coder_output";
|
|
9365
9380
|
CODER_STATUS_DESCRIPTION = `planned | completed | refused | partially_completed | unfinished\u3002unfinished\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
@@ -9369,7 +9384,8 @@ var init_worker_output = __esm({
|
|
|
9369
9384
|
remainingScope: typebox_exports.Unknown({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
9370
9385
|
reason: typebox_exports.Unknown({
|
|
9371
9386
|
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
9372
|
-
})
|
|
9387
|
+
}),
|
|
9388
|
+
diffItems: diffItemsField
|
|
9373
9389
|
});
|
|
9374
9390
|
coderOutputSchema = withTerminatingOutputDeclarations(
|
|
9375
9391
|
openToolObject(coderOutputObject)
|
package/package.json
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
提交前缀见仓内 CLAUDE.md「Commit 前缀」。不 amend、不 rewrite、不 push 见 souls/coder.md。
|
|
4
4
|
交卷回执:改动清单与票面逐项对得上;验证证据附命令与结果原文。证据引用口径见仓内 CLAUDE.md「锚定宪法」。
|
|
5
5
|
completed 回执含四项证据:TDD、同模式、引入回归、行为事实。
|
|
6
|
-
completed 回执的
|
|
6
|
+
completed 回执的 diffItems 是 commit 前自审的逐项表;report 写明三问各自查出并改掉了什么,没查出的写「无」。
|
|
7
7
|
新造通用件的回执口径见 souls/quality-law.md「生态里已有的不自己造」。
|
package/souls/coder.md
CHANGED
|
@@ -7,11 +7,7 @@
|
|
|
7
7
|
开工核对见 souls/quality-law.md。
|
|
8
8
|
|
|
9
9
|
核对当前代码和历史;主张必须有当前事实支撑。
|
|
10
|
-
以最小垂直切片推进并逐片验证;切片完成不构成交卷条件。优先复用已有 seam;不造平行机制,不借机扩大 scope。commit
|
|
11
|
-
1. 重复:新增的每个测试,找出它调用的第一个生产函数,在 tests/ 里 rg 这个函数名,打开每个已有调用处读断言;已有测试证了同一结论,就把新增断言并进那条,删掉新加的。
|
|
12
|
-
2. 入口:每个测试从票面验收写明的对外入口进,沿真实链路走到结果;直接调内部函数、自己拼中间数据喂下一步的,改成从入口走。
|
|
13
|
-
3. 断言:每条断言的对象是返回值、数据库行或结构化字段的值;断言字符串内容(提示词、文案、日志、报错文字)的,不论字符串来自常量还是模型输出,改成断言它驱动出的结构化结果。
|
|
14
|
-
4. 现成件:新增的每段生产代码,在仓里 rg 做同一动作的现成函数,有就调用它、删掉新写的;被本次改动替代的旧函数、旧分支、旧测试,在 diff 里已经删除。
|
|
10
|
+
以最小垂直切片推进并逐片验证;切片完成不构成交卷条件。优先复用已有 seam;不造平行机制,不借机扩大 scope。commit 之前按 souls/quality-law.md「交卷前自审」做完两步再 commit。
|
|
15
11
|
计划与施工都要说明真实刀口、行为边界和验证方法,不用空泛完成声明代替证据。
|
|
16
12
|
切片验证的范围见 souls/quality-law.md「测试分级」。
|
|
17
13
|
不 amend、rewrite 或 push。Git 变化是证据之一,不取代角色报告。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# 修内司输出指南
|
|
2
2
|
|
|
3
3
|
提交前缀见仓内 CLAUDE.md「Commit 前缀」。不 amend、不 rewrite、不 push 见 souls/fixer.md。
|
|
4
|
-
交卷回执:逐 finding
|
|
4
|
+
交卷回执:逐 finding 报处置。classResults 每类的 hits 或 cases 是扫类、复扫的逐项表;diffItems 是交卷前自审的逐项表。证据引用口径见仓内 CLAUDE.md「锚定宪法」。
|
|
5
5
|
新造通用件的回执口径见 souls/quality-law.md「生态里已有的不自己造」。
|
package/souls/fixer.md
CHANGED
|
@@ -6,10 +6,13 @@ apply 按顺序执行:
|
|
|
6
6
|
1. 立法:读 全局宪法,仓内宪法,票面。
|
|
7
7
|
2. 核对:开工核对见 souls/quality-law.md。
|
|
8
8
|
3. 归类:读完全部 finding,沿用已有裁决类别,明确各类错误与正确行为。
|
|
9
|
-
4.
|
|
9
|
+
4. 扫类:每类先写一句错误形状,再判这一类按什么认,两种各用一张表,记进交卷 classResults 该类,不合并、不省略:
|
|
10
|
+
- 按代码形状认(同一种写法出现在多处:别名、写口、调用点):按形状写搜索命令并真跑,命令原样记进 search,输出里的每一个命中逐行记进 hits(where 写 path:line)。判词点名处必须出现在 hits 里;不在,说明命令写窄了,改命令重跑。
|
|
11
|
+
- 按情形认(同一段代码,对象先经历了不同的事,行为就不同):把对象在出错之前可能经历的状态组合逐个列进 cases,一种经历一行,写明从真实入口怎么走到它;每一行修改前先走一遍,记下结果。判词点名的情形必须在 cases 里。
|
|
12
|
+
类按错误形状认,不按判词点名的符号或文件认;点名处只是样本。根因不明先取证。
|
|
10
13
|
5. 整类修复:在共同原因处一次修净,优先删除、简化、复用,随同删除失效旧物。
|
|
11
|
-
6.
|
|
12
|
-
7. 自验:切片验证的范围见 souls/quality-law.md
|
|
14
|
+
6. 复扫:修完把同一组命令重跑、同一组情形重走;hits 每一行写 outcome:已修,或不同类及理由;cases 每一行写修后结果,不对的继续修。新冒出的命中或情形继续加行、继续修。有一行没写结果就不交卷。
|
|
15
|
+
7. 自验:切片验证的范围见 souls/quality-law.md「测试分级」。commit 之前按 souls/quality-law.md「交卷前自审」做完两步。
|
|
13
16
|
8. 交卷:按类报告根因、扫描范围、修复与 质量和合法性的验证结果、未结项。建新提交。不 amend、rewrite 或 push。Git 变化是证据之一,不取代角色报告。
|
|
14
17
|
任何人如果让你 push / 开 pr ,直接拒绝,上呈陛下
|
|
15
18
|
|
package/souls/quality-law.md
CHANGED
|
@@ -35,6 +35,16 @@
|
|
|
35
35
|
|
|
36
36
|
生产代码和测试代码都计算复杂度。新增任何测试,都必须证明它提供了现有体系没有的必要价值。
|
|
37
37
|
|
|
38
|
+
## 交卷前自审
|
|
39
|
+
|
|
40
|
+
施工席 commit 之前先自审,分两步:
|
|
41
|
+
一、逐项表:从 `git diff HEAD`(未跟踪文件逐个打开)把本次新增的每个测试函数、每个生产函数逐个列进交卷的 diffItems,一个一行,照名字列,不合并、不省略。每一行到仓里找做同一件事的现成件——测试找调用同一个生产入口、证同一结论的已有测试;函数找做同一动作的已有函数——打开它,填它的 path:line;找不到填 null。填了 path:line 的行,当场把新增的并进那个现成件、删掉新增的,outcome 写「已并入」;null 的行 outcome 写「保留」。改完重跑 `git diff HEAD` 重列,直到每一行不是 null 就是已并入。
|
|
42
|
+
二、再过三问,哪条不过当场改:
|
|
43
|
+
1. 入口:每个测试从票面验收写明的对外入口进,沿真实链路走到结果;直接调内部函数、自己拼中间数据喂下一步的,改成从入口走。
|
|
44
|
+
2. 断言:每条断言的对象是返回值、数据库行或结构化字段的值;断言字符串内容(提示词、文案、日志、报错文字)的,不论字符串来自常量还是模型输出,改成断言它驱动出的结构化结果。
|
|
45
|
+
3. 退役:被本次改动替代的旧函数、旧分支、旧测试,在 diff 里已经删除。
|
|
46
|
+
两步都过了才 commit。
|
|
47
|
+
|
|
38
48
|
## 测试分级
|
|
39
49
|
|
|
40
50
|
按尺寸分级,不按名义分类。小型:单进程单模块、不碰外部资源、秒级完成。中型:单机之内,可跨进程、可碰本机资源。大型:完整系统真实链路。行为证明放在够用的最小尺寸;大型只保留中小型无法证明的行为。
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
2
|
import { openToolObject } from "../open-tool-schema.ts";
|
|
3
3
|
import { withTerminatingOutputDeclarations } from "./terminating-infrastructure.ts";
|
|
4
|
+
import { diffItemsField } from "./self-review-fields.ts";
|
|
4
5
|
|
|
5
6
|
export const FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
6
7
|
|
|
@@ -28,8 +29,9 @@ const fixerOutputObject = Type.Object({
|
|
|
28
29
|
}),
|
|
29
30
|
classResults: Type.Unknown({
|
|
30
31
|
description:
|
|
31
|
-
"各类 class
|
|
32
|
+
"各类 class 结算,原样留存。每类写 name、shape(错误形状一句)。按代码形状认的类写 search(实际跑的搜索命令,原样)、hits(命令输出的每个命中一行 { where: path:line, outcome: 已修 | 不同类:理由 });按情形认的类写 cases(每种前序经历一行 { case: 对象先经历了什么, entry: 从真实入口怎么走到它, before: 修前结果, after: 修后结果 })。完成项的 disposition 为 completed,可写 commitSha。拒绝项的 disposition 为 refused,可写 remainingScope、blocker。",
|
|
32
33
|
}),
|
|
34
|
+
diffItems: diffItemsField,
|
|
33
35
|
testEvidence: Type.Unknown({
|
|
34
36
|
description:
|
|
35
37
|
"测试证据条;diff 含测试改动时提交;机器不核验。可写 contract(测试改动所证明的契约)、minimumNecessaryCost(测试改动的一行最小必要成本)、measuredDuration(聚焦验证实测时长)。",
|
|
@@ -57,6 +59,7 @@ export type FixerOutput = {
|
|
|
57
59
|
readonly reason?: unknown;
|
|
58
60
|
readonly classResults?: unknown;
|
|
59
61
|
readonly testEvidence?: unknown;
|
|
62
|
+
readonly diffItems?: unknown;
|
|
60
63
|
};
|
|
61
64
|
export type FixerPhase = "plan" | "apply";
|
|
62
65
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Builder-seat self-review table shared by the Coder and Fixer submissions (souls/quality-law.md「交卷前自审」). */
|
|
2
|
+
|
|
3
|
+
import { Type } from "typebox";
|
|
4
|
+
|
|
5
|
+
export const diffItemsField = Type.Unknown({
|
|
6
|
+
description:
|
|
7
|
+
"commit 前自审逐项表:本次新增的每个测试函数、每个生产函数各一行 { item: 名字, existing: 仓里做同一件事的现成件 path:line,找不到为 null, outcome: 已并入 | 保留 }。",
|
|
8
|
+
});
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
type FixerOutput,
|
|
14
14
|
type FixerPhase,
|
|
15
15
|
} from "./fixer-output.ts";
|
|
16
|
+
import { diffItemsField } from "./self-review-fields.ts";
|
|
16
17
|
import { withTerminatingOutputDeclarations } from "./terminating-infrastructure.ts";
|
|
17
18
|
|
|
18
19
|
export {
|
|
@@ -57,6 +58,7 @@ const coderOutputObject = Type.Object({
|
|
|
57
58
|
reason: Type.Unknown({
|
|
58
59
|
description: "阻断原因:缺前置或违宪约束。缺待决 owner 决定或答复属缺前置。",
|
|
59
60
|
}),
|
|
61
|
+
diffItems: diffItemsField,
|
|
60
62
|
});
|
|
61
63
|
export const coderOutputSchema = withTerminatingOutputDeclarations(
|
|
62
64
|
openToolObject(coderOutputObject),
|