perttool 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +56 -1
  2. package/README.md +113 -33
  3. package/dist/application/advance-history.d.ts +2 -0
  4. package/dist/application/advance-history.d.ts.map +1 -1
  5. package/dist/application/advance-history.js +21 -12
  6. package/dist/application/advance-history.js.map +1 -1
  7. package/dist/application/contract7-assurance.d.ts +57 -0
  8. package/dist/application/contract7-assurance.d.ts.map +1 -0
  9. package/dist/application/contract7-assurance.js +248 -0
  10. package/dist/application/contract7-assurance.js.map +1 -0
  11. package/dist/application/contract7-mermaid.d.ts +9 -0
  12. package/dist/application/contract7-mermaid.d.ts.map +1 -0
  13. package/dist/application/contract7-mermaid.js +73 -0
  14. package/dist/application/contract7-mermaid.js.map +1 -0
  15. package/dist/application/contract7-mutation.d.ts +21 -0
  16. package/dist/application/contract7-mutation.d.ts.map +1 -0
  17. package/dist/application/contract7-mutation.js +181 -0
  18. package/dist/application/contract7-mutation.js.map +1 -0
  19. package/dist/application/contract7-project.d.ts +10 -0
  20. package/dist/application/contract7-project.d.ts.map +1 -0
  21. package/dist/application/contract7-project.js +29 -0
  22. package/dist/application/contract7-project.js.map +1 -0
  23. package/dist/application/contract7-projection.d.ts +9 -0
  24. package/dist/application/contract7-projection.d.ts.map +1 -0
  25. package/dist/application/contract7-projection.js +100 -0
  26. package/dist/application/contract7-projection.js.map +1 -0
  27. package/dist/application/contract7-source.d.ts +24 -0
  28. package/dist/application/contract7-source.d.ts.map +1 -0
  29. package/dist/application/contract7-source.js +54 -0
  30. package/dist/application/contract7-source.js.map +1 -0
  31. package/dist/application/contract7-unit-migration.d.ts +13 -0
  32. package/dist/application/contract7-unit-migration.d.ts.map +1 -0
  33. package/dist/application/contract7-unit-migration.js +13 -0
  34. package/dist/application/contract7-unit-migration.js.map +1 -0
  35. package/dist/application/init.d.ts +1 -1
  36. package/dist/application/init.js +3 -3
  37. package/dist/application/mutate.d.ts +5 -1
  38. package/dist/application/mutate.d.ts.map +1 -1
  39. package/dist/application/mutate.js +2 -2
  40. package/dist/application/mutate.js.map +1 -1
  41. package/dist/application/target-actuals-analysis.d.ts +5 -4
  42. package/dist/application/target-actuals-analysis.d.ts.map +1 -1
  43. package/dist/application/target-actuals-analysis.js +18 -11
  44. package/dist/application/target-actuals-analysis.js.map +1 -1
  45. package/dist/application/target-actuals-mutation.d.ts +5 -3
  46. package/dist/application/target-actuals-mutation.d.ts.map +1 -1
  47. package/dist/application/target-actuals-mutation.js +16 -8
  48. package/dist/application/target-actuals-mutation.js.map +1 -1
  49. package/dist/application/target-assurance-advance-history.d.ts +19 -0
  50. package/dist/application/target-assurance-advance-history.d.ts.map +1 -0
  51. package/dist/application/target-assurance-advance-history.js +61 -0
  52. package/dist/application/target-assurance-advance-history.js.map +1 -0
  53. package/dist/application/target-assurance-analysis.d.ts +34 -0
  54. package/dist/application/target-assurance-analysis.d.ts.map +1 -0
  55. package/dist/application/target-assurance-analysis.js +103 -0
  56. package/dist/application/target-assurance-analysis.js.map +1 -0
  57. package/dist/application/target-assurance-inspection.d.ts +38 -0
  58. package/dist/application/target-assurance-inspection.d.ts.map +1 -0
  59. package/dist/application/target-assurance-inspection.js +356 -0
  60. package/dist/application/target-assurance-inspection.js.map +1 -0
  61. package/dist/application/target-assurance-write.d.ts +22 -0
  62. package/dist/application/target-assurance-write.d.ts.map +1 -0
  63. package/dist/application/target-assurance-write.js +73 -0
  64. package/dist/application/target-assurance-write.js.map +1 -0
  65. package/dist/application/target-governance-init.d.ts +3 -3
  66. package/dist/application/target-governance-init.d.ts.map +1 -1
  67. package/dist/application/target-governance-init.js +14 -10
  68. package/dist/application/target-governance-init.js.map +1 -1
  69. package/dist/application/target-governance-project.d.ts +6 -4
  70. package/dist/application/target-governance-project.d.ts.map +1 -1
  71. package/dist/application/target-governance-project.js +18 -4
  72. package/dist/application/target-governance-project.js.map +1 -1
  73. package/dist/application/target-mutate.d.ts +7 -1
  74. package/dist/application/target-mutate.d.ts.map +1 -1
  75. package/dist/application/target-mutate.js +50 -3
  76. package/dist/application/target-mutate.js.map +1 -1
  77. package/dist/application/target-project-history.d.ts +4 -4
  78. package/dist/application/target-project-history.d.ts.map +1 -1
  79. package/dist/application/target-project-history.js +2 -2
  80. package/dist/application/target-project-history.js.map +1 -1
  81. package/dist/application/target-unit-migration-candidate.d.ts +29 -6
  82. package/dist/application/target-unit-migration-candidate.d.ts.map +1 -1
  83. package/dist/application/target-unit-migration-candidate.js +204 -3
  84. package/dist/application/target-unit-migration-candidate.js.map +1 -1
  85. package/dist/application/target-unit-migration-result.d.ts +2 -2
  86. package/dist/application/target-unit-migration-result.d.ts.map +1 -1
  87. package/dist/application/target-unit-migration-result.js +4 -2
  88. package/dist/application/target-unit-migration-result.js.map +1 -1
  89. package/dist/application/target-velocity-observation.d.ts +1 -1
  90. package/dist/application/target-velocity-observation.js +1 -1
  91. package/dist/assurance/advance.d.ts +45 -0
  92. package/dist/assurance/advance.d.ts.map +1 -0
  93. package/dist/assurance/advance.js +507 -0
  94. package/dist/assurance/advance.js.map +1 -0
  95. package/dist/assurance/authority.d.ts +86 -0
  96. package/dist/assurance/authority.d.ts.map +1 -0
  97. package/dist/assurance/authority.js +269 -0
  98. package/dist/assurance/authority.js.map +1 -0
  99. package/dist/assurance/canonical.d.ts +13 -0
  100. package/dist/assurance/canonical.d.ts.map +1 -0
  101. package/dist/assurance/canonical.js +320 -0
  102. package/dist/assurance/canonical.js.map +1 -0
  103. package/dist/assurance/compatibility.d.ts +62 -0
  104. package/dist/assurance/compatibility.d.ts.map +1 -0
  105. package/dist/assurance/compatibility.js +163 -0
  106. package/dist/assurance/compatibility.js.map +1 -0
  107. package/dist/assurance/evaluate.d.ts +4 -0
  108. package/dist/assurance/evaluate.d.ts.map +1 -0
  109. package/dist/assurance/evaluate.js +631 -0
  110. package/dist/assurance/evaluate.js.map +1 -0
  111. package/dist/assurance/governance.d.ts +42 -0
  112. package/dist/assurance/governance.d.ts.map +1 -0
  113. package/dist/assurance/governance.js +95 -0
  114. package/dist/assurance/governance.js.map +1 -0
  115. package/dist/assurance/mermaid.d.ts +40 -0
  116. package/dist/assurance/mermaid.d.ts.map +1 -0
  117. package/dist/assurance/mermaid.js +401 -0
  118. package/dist/assurance/mermaid.js.map +1 -0
  119. package/dist/assurance/mutation.d.ts +96 -0
  120. package/dist/assurance/mutation.d.ts.map +1 -0
  121. package/dist/assurance/mutation.js +757 -0
  122. package/dist/assurance/mutation.js.map +1 -0
  123. package/dist/assurance/source.d.ts +20 -0
  124. package/dist/assurance/source.d.ts.map +1 -0
  125. package/dist/assurance/source.js +313 -0
  126. package/dist/assurance/source.js.map +1 -0
  127. package/dist/assurance/types.d.ts +166 -0
  128. package/dist/assurance/types.d.ts.map +1 -0
  129. package/dist/assurance/types.js +3 -0
  130. package/dist/assurance/types.js.map +1 -0
  131. package/dist/cli.js +356 -60
  132. package/dist/cli.js.map +1 -1
  133. package/dist/command/assurance-discovery.d.ts +17 -0
  134. package/dist/command/assurance-discovery.d.ts.map +1 -0
  135. package/dist/command/assurance-discovery.js +297 -0
  136. package/dist/command/assurance-discovery.js.map +1 -0
  137. package/dist/command/assurance-usage.d.ts +20 -0
  138. package/dist/command/assurance-usage.d.ts.map +1 -0
  139. package/dist/command/assurance-usage.js +66 -0
  140. package/dist/command/assurance-usage.js.map +1 -0
  141. package/dist/conversion/mermaid.d.ts +2 -1
  142. package/dist/conversion/mermaid.d.ts.map +1 -1
  143. package/dist/conversion/mermaid.js +2 -2
  144. package/dist/conversion/mermaid.js.map +1 -1
  145. package/dist/formatter/source-formatter.d.ts +1 -1
  146. package/dist/formatter/source-formatter.d.ts.map +1 -1
  147. package/dist/formatter/source-formatter.js +56 -4
  148. package/dist/formatter/source-formatter.js.map +1 -1
  149. package/dist/formatter/target-source-formatter.d.ts +2 -1
  150. package/dist/formatter/target-source-formatter.d.ts.map +1 -1
  151. package/dist/formatter/target-source-formatter.js +18 -2
  152. package/dist/formatter/target-source-formatter.js.map +1 -1
  153. package/dist/help/assurance-guide.d.ts +10 -0
  154. package/dist/help/assurance-guide.d.ts.map +1 -0
  155. package/dist/help/assurance-guide.js +227 -0
  156. package/dist/help/assurance-guide.js.map +1 -0
  157. package/dist/help/guide.d.ts +1 -1
  158. package/dist/help/guide.d.ts.map +1 -1
  159. package/dist/history/advance-history.d.ts +4 -2
  160. package/dist/history/advance-history.d.ts.map +1 -1
  161. package/dist/history/advance-history.js +47 -1
  162. package/dist/history/advance-history.js.map +1 -1
  163. package/dist/history/project-history.d.ts +14 -5
  164. package/dist/history/project-history.d.ts.map +1 -1
  165. package/dist/history/project-history.js +27 -20
  166. package/dist/history/project-history.js.map +1 -1
  167. package/dist/history/velocity-observation.js +1 -1
  168. package/dist/history/velocity-observation.js.map +1 -1
  169. package/dist/index.d.ts +31 -27
  170. package/dist/index.d.ts.map +1 -1
  171. package/dist/index.js +12 -15
  172. package/dist/index.js.map +1 -1
  173. package/dist/io/target-safe-write.d.ts +4 -1
  174. package/dist/io/target-safe-write.d.ts.map +1 -1
  175. package/dist/io/target-safe-write.js +19 -1
  176. package/dist/io/target-safe-write.js.map +1 -1
  177. package/dist/migration/grammar-boundary.d.ts +1 -1
  178. package/dist/migration/grammar-boundary.d.ts.map +1 -1
  179. package/dist/migration/grammar-boundary.js +7 -3
  180. package/dist/migration/grammar-boundary.js.map +1 -1
  181. package/dist/model/declaration-fields.d.ts +12 -0
  182. package/dist/model/declaration-fields.d.ts.map +1 -1
  183. package/dist/model/declaration-fields.js +45 -0
  184. package/dist/model/declaration-fields.js.map +1 -1
  185. package/dist/model/syntax.d.ts +17 -1
  186. package/dist/model/syntax.d.ts.map +1 -1
  187. package/dist/model/syntax.js.map +1 -1
  188. package/dist/mutation/actuals.js +1 -1
  189. package/dist/mutation/actuals.js.map +1 -1
  190. package/dist/mutation/advance.d.ts +18 -1
  191. package/dist/mutation/advance.d.ts.map +1 -1
  192. package/dist/mutation/advance.js +20 -0
  193. package/dist/mutation/advance.js.map +1 -1
  194. package/dist/mutation/project.d.ts +2 -1
  195. package/dist/mutation/project.d.ts.map +1 -1
  196. package/dist/mutation/project.js +21 -0
  197. package/dist/mutation/project.js.map +1 -1
  198. package/dist/parser/document-parser.d.ts +7 -0
  199. package/dist/parser/document-parser.d.ts.map +1 -1
  200. package/dist/parser/document-parser.js +227 -12
  201. package/dist/parser/document-parser.js.map +1 -1
  202. package/dist/recommendation/override-types.d.ts +2 -2
  203. package/dist/recommendation/override.d.ts +2 -2
  204. package/dist/recommendation/override.d.ts.map +1 -1
  205. package/dist/recommendation/override.js +13 -5
  206. package/dist/recommendation/override.js.map +1 -1
  207. package/dist/schema/registry.d.ts +1 -1
  208. package/dist/schema/registry.d.ts.map +1 -1
  209. package/dist/schema/registry.js +8 -7
  210. package/dist/schema/registry.js.map +1 -1
  211. package/dist/semantic/target-validator.d.ts +12 -1
  212. package/dist/semantic/target-validator.d.ts.map +1 -1
  213. package/dist/semantic/target-validator.js +47 -2
  214. package/dist/semantic/target-validator.js.map +1 -1
  215. package/dist/semantic/validator.d.ts +1 -0
  216. package/dist/semantic/validator.d.ts.map +1 -1
  217. package/dist/semantic/validator.js +304 -0
  218. package/dist/semantic/validator.js.map +1 -1
  219. package/dist/version.d.ts +1 -1
  220. package/dist/version.js +1 -1
  221. package/package.json +1 -1
  222. package/schemas/{Perttool.AdvanceResult.v1.schema.json → Perttool.AdvanceResult.v2.schema.json} +85 -5
  223. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
  224. package/schemas/{Perttool.AnalysisResult.v4.schema.json → Perttool.AnalysisResult.v5.schema.json} +10 -6
  225. package/schemas/{Perttool.CheckResult.v3.schema.json → Perttool.CheckResult.v4.schema.json} +14 -6
  226. package/schemas/Perttool.CliError.v1.schema.json +1 -1
  227. package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
  228. package/schemas/Perttool.Common.v1.schema.json +300 -4
  229. package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
  230. package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
  231. package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
  232. package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
  233. package/schemas/Perttool.InitResult.v1.schema.json +1 -1
  234. package/schemas/{Perttool.MutationResult.v3.schema.json → Perttool.MutationResult.v4.schema.json} +16 -5
  235. package/schemas/{Perttool.NextResult.v5.schema.json → Perttool.NextResult.v6.schema.json} +53 -8
  236. package/schemas/Perttool.OverrideDecision.v1.schema.json +1 -1
  237. package/schemas/Perttool.PlanAssuranceResult.v1.schema.json +77 -0
  238. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
  239. package/schemas/{Perttool.ProjectResult.v3.schema.json → Perttool.ProjectResult.v4.schema.json} +15 -7
  240. package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
  241. package/schemas/Perttool.UnitMigrationResult.v3.schema.json +5 -3
  242. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
@@ -0,0 +1,507 @@
1
+ import { createHash } from "node:crypto";
2
+ import { validateStoredLifecycleState } from "../actuals/lifecycle.js";
3
+ import { createUnifiedDiff } from "../editing/unified-diff.js";
4
+ import { classifyGovernanceScopes } from "../governance/authority.js";
5
+ import { governanceMetadataFromDocument } from "../governance/source.js";
6
+ import { compareStableStrings, limitDiagnostics, normalizeMaxDiagnostics, sortDiagnostics, } from "../model/diagnostics.js";
7
+ import { fieldNamed } from "../model/syntax.js";
8
+ import { planValidatedAdvance, } from "../mutation/advance.js";
9
+ import { EntityEditor } from "../mutation/entity-editor.js";
10
+ import { appendDeclarationEdit, contentTextEndOffset, leadingCommentStart, majorLineEnding, splitPhysicalLines, } from "../mutation/source.js";
11
+ import { validateTargetGrammar6Document, } from "../semantic/target-validator.js";
12
+ import { hashFrontierAssuranceReceipt, isSha256Digest, } from "./canonical.js";
13
+ import { evaluatePlanAssurance } from "./evaluate.js";
14
+ import { evaluatePlanAssuranceGovernance, normalizePlanAssuranceGovernanceRequest, planAssuranceGovernanceDiagnostics, } from "./governance.js";
15
+ import { projectPlanAssuranceInput } from "./source.js";
16
+ export const PLAN_ASSURANCE_ADVANCE_RESULT_SCHEMA_VERSION = "Perttool.AdvanceResult.v2";
17
+ const receiptFieldOrder = [
18
+ "model",
19
+ "receipt_hash",
20
+ "producer",
21
+ "producer_contract_hash",
22
+ "producer_assurance_hash",
23
+ "outcome",
24
+ "source_milestone",
25
+ "consumers",
26
+ ];
27
+ function digest(text) {
28
+ return `sha256:${createHash("sha256").update(text, "utf8").digest("hex")}`;
29
+ }
30
+ function assuranceAdvanceDiagnostic(message, entityId, cause, data = {}) {
31
+ return Object.freeze({
32
+ code: "PTASSURE-306",
33
+ severity: "error",
34
+ message,
35
+ ...(entityId === null ? {} : { entityId }),
36
+ helpTopic: "plan-assurance",
37
+ data: Object.freeze({ cause, ...data }),
38
+ });
39
+ }
40
+ function grammar6AdvanceValidator(capability) {
41
+ return (text, maxDiagnostics) => {
42
+ const checked = validateTargetGrammar6Document(text, capability, { maxDiagnostics });
43
+ const lifecycleDiagnostics = checked.validatedDocument === null
44
+ ? []
45
+ : validateStoredLifecycleState(checked.validatedDocument);
46
+ const diagnostics = sortDiagnostics([
47
+ ...checked.diagnostics,
48
+ ...lifecycleDiagnostics,
49
+ ]);
50
+ return {
51
+ ok: checked.ok && lifecycleDiagnostics.length === 0,
52
+ document: checked.document,
53
+ documentId: checked.documentId,
54
+ diagnostics,
55
+ diagnosticsTruncated: checked.diagnosticsTruncated,
56
+ };
57
+ };
58
+ }
59
+ function requiredString(declaration, name) {
60
+ const value = fieldNamed(declaration, name)?.value;
61
+ if (typeof value !== "string") {
62
+ throw new Error(`validated ${declaration.kind} ${declaration.id} lost ${name}`);
63
+ }
64
+ return value;
65
+ }
66
+ function receiptContract(declaration, consumers) {
67
+ const values = consumers ?? fieldNamed(declaration, "consumers")?.value;
68
+ return {
69
+ model: "Perttool.FrontierAssuranceReceipt.v1",
70
+ producerTaskId: requiredString(declaration, "producer"),
71
+ producerTaskContractHash: requiredString(declaration, "producer_contract_hash"),
72
+ producerAssuranceHash: requiredString(declaration, "producer_assurance_hash"),
73
+ outcome: requiredString(declaration, "outcome"),
74
+ consumers: values.map((consumer) => ({
75
+ consumerTaskId: consumer.consumerTaskId,
76
+ relationMode: consumer.relationMode,
77
+ })),
78
+ sourceMilestoneId: fieldNamed(declaration, "source_milestone")?.value ??
79
+ null,
80
+ };
81
+ }
82
+ function serializeConsumers(consumers, lineEnding) {
83
+ return [
84
+ " consumers:",
85
+ ...consumers.map(({ consumerTaskId, relationMode }) => ` ${consumerTaskId} ${relationMode}`),
86
+ ].join(lineEnding);
87
+ }
88
+ function serializeReceipt(receipt, lineEnding) {
89
+ const { contract } = receipt;
90
+ return [
91
+ `assurance_receipt ${receipt.id}:`,
92
+ " model 1",
93
+ ` receipt_hash ${receipt.hash}`,
94
+ ` producer ${contract.producerTaskId}`,
95
+ ` producer_contract_hash ${contract.producerTaskContractHash}`,
96
+ ` producer_assurance_hash ${contract.producerAssuranceHash}`,
97
+ ` outcome ${contract.outcome}`,
98
+ ...(contract.sourceMilestoneId === null
99
+ ? []
100
+ : [` source_milestone ${contract.sourceMilestoneId}`]),
101
+ serializeConsumers(contract.consumers, lineEnding),
102
+ ].join(lineEnding);
103
+ }
104
+ function allocateReceiptId(producerTaskId, reserved) {
105
+ const base = `AR_${producerTaskId}`;
106
+ if (!reserved.has(base)) {
107
+ reserved.add(base);
108
+ return base;
109
+ }
110
+ for (let suffix = 2;; suffix += 1) {
111
+ const candidate = `${base}_${suffix}`;
112
+ if (!reserved.has(candidate)) {
113
+ reserved.add(candidate);
114
+ return candidate;
115
+ }
116
+ }
117
+ }
118
+ function receiptInsertions(text, document, removed, receipts) {
119
+ if (receipts.length === 0)
120
+ return [];
121
+ const lineEnding = majorLineEnding(text);
122
+ const lines = splitPhysicalLines(text);
123
+ const retainedReceipts = document.declarations
124
+ .filter((declaration) => declaration.kind === "assurance_receipt" && !removed.has(declaration))
125
+ .sort((left, right) => compareStableStrings(left.id, right.id));
126
+ const firstRetainedEvent = document.declarations.find((declaration) => declaration.kind === "work_event" && !removed.has(declaration));
127
+ const groups = new Map();
128
+ for (const receipt of [...receipts].sort((left, right) => compareStableStrings(left.id, right.id))) {
129
+ const later = retainedReceipts.find((candidate) => compareStableStrings(candidate.id, receipt.id) > 0);
130
+ const target = later ?? firstRetainedEvent;
131
+ const offset = target === undefined
132
+ ? text.length
133
+ : leadingCommentStart(lines, target.headerSpan.start.offset, 0);
134
+ groups.set(offset, [...(groups.get(offset) ?? []), receipt]);
135
+ }
136
+ return [...groups.entries()]
137
+ .sort(([left], [right]) => left - right)
138
+ .map(([offset, values]) => {
139
+ const serialized = values
140
+ .sort((left, right) => compareStableStrings(left.id, right.id))
141
+ .map((receipt) => serializeReceipt(receipt, lineEnding))
142
+ .join(`${lineEnding}${lineEnding}`);
143
+ if (offset === text.length) {
144
+ return appendDeclarationEdit(text, serialized, lineEnding);
145
+ }
146
+ return {
147
+ startOffset: offset,
148
+ endOffset: offset,
149
+ replacement: `${serialized}${lineEnding}${lineEnding}`,
150
+ };
151
+ });
152
+ }
153
+ function receiptUpdateEdits(text, declaration, contract) {
154
+ const editor = new EntityEditor(text, declaration, receiptFieldOrder);
155
+ editor.setScalar("receipt_hash", hashFrontierAssuranceReceipt(contract));
156
+ const consumers = fieldNamed(declaration, "consumers");
157
+ if (consumers === undefined) {
158
+ throw new Error("validated assurance receipt lost consumers");
159
+ }
160
+ return [
161
+ ...editor.finish(),
162
+ {
163
+ startOffset: consumers.span.start.offset,
164
+ endOffset: contentTextEndOffset(consumers, splitPhysicalLines(text)),
165
+ replacement: serializeConsumers(contract.consumers, editor.lineEnding),
166
+ },
167
+ ];
168
+ }
169
+ function extensionFor(capability, summary) {
170
+ let captured = false;
171
+ return (text, document, context) => {
172
+ const checked = validateTargetGrammar6Document(text, capability);
173
+ if (!checked.ok || checked.validatedDocument === null) {
174
+ throw new Error("validated assurance advance source lost Grammar 6 validation");
175
+ }
176
+ const input = projectPlanAssuranceInput(checked.validatedDocument);
177
+ if (input.modelVersion === null && input.hashModelVersion === null)
178
+ return {};
179
+ const evaluation = evaluatePlanAssurance(input);
180
+ if (!evaluation.ok) {
181
+ return {
182
+ diagnostics: evaluation.diagnostics.map((item) => assuranceAdvanceDiagnostic(item.message, item.entityId, "crossing_commitment_unavailable", item.data)),
183
+ };
184
+ }
185
+ const removedTaskIds = new Set(context.removedTasks.map(({ id }) => id));
186
+ const keptTaskIds = new Set(context.keptTasks.map(({ id }) => id));
187
+ const removedDeclarations = [];
188
+ for (const declaration of document.declarations) {
189
+ if (declaration.kind === "task_relation" &&
190
+ (removedTaskIds.has(declaration.from) || removedTaskIds.has(declaration.to)))
191
+ removedDeclarations.push(declaration);
192
+ if (declaration.kind === "plan_seal" && removedTaskIds.has(declaration.id)) {
193
+ removedDeclarations.push(declaration);
194
+ }
195
+ if (declaration.kind === "task_outcome" &&
196
+ removedTaskIds.has(fieldNamed(declaration, "task")?.value))
197
+ removedDeclarations.push(declaration);
198
+ }
199
+ const edits = [];
200
+ const retainedReceiptIds = new Set();
201
+ for (const receipt of document.declarations.filter((declaration) => declaration.kind === "assurance_receipt")) {
202
+ const originalConsumers = fieldNamed(receipt, "consumers")
203
+ .value;
204
+ const consumers = originalConsumers.filter(({ consumerTaskId }) => keptTaskIds.has(consumerTaskId));
205
+ if (consumers.length === 0) {
206
+ removedDeclarations.push(receipt);
207
+ continue;
208
+ }
209
+ retainedReceiptIds.add(receipt.id);
210
+ const contract = receiptContract(receipt, consumers);
211
+ const storedHash = requiredString(receipt, "receipt_hash");
212
+ if (fieldNamed(receipt, "model")?.value !== 1 ||
213
+ !isSha256Digest(storedHash) ||
214
+ hashFrontierAssuranceReceipt(receiptContract(receipt)) !== storedHash) {
215
+ return {
216
+ diagnostics: [assuranceAdvanceDiagnostic(`retained assurance receipt ${receipt.id} is unavailable`, receipt.id, "retained_receipt_unavailable")],
217
+ };
218
+ }
219
+ if (consumers.length !== originalConsumers.length) {
220
+ edits.push(...receiptUpdateEdits(text, receipt, contract));
221
+ }
222
+ }
223
+ const crossings = evaluation.effectiveDependencies.filter((relation) => removedTaskIds.has(relation.predecessorTaskId) &&
224
+ keptTaskIds.has(relation.successorTaskId) &&
225
+ relation.mode !== "execution_only");
226
+ const byProducer = new Map();
227
+ for (const crossing of crossings) {
228
+ byProducer.set(crossing.predecessorTaskId, [
229
+ ...(byProducer.get(crossing.predecessorTaskId) ?? []),
230
+ crossing,
231
+ ]);
232
+ }
233
+ const resultById = new Map(evaluation.taskResults.map((result) => [result.taskId, result]));
234
+ const inputById = new Map(input.tasks.map((task) => [task.contract.taskId, task]));
235
+ const taskById = new Map(document.declarations
236
+ .filter((declaration) => declaration.kind === "task")
237
+ .map((task) => [task.id, task]));
238
+ const baseRemoved = new Set([
239
+ ...context.removedTasks,
240
+ ...context.removedGates,
241
+ ...context.removedMilestones,
242
+ ...context.removedWorkEvents,
243
+ ...removedDeclarations,
244
+ ]);
245
+ const reserved = new Set(document.declarations
246
+ .filter((declaration) => declaration.kind !== "plan_seal")
247
+ .filter((declaration) => !baseRemoved.has(declaration))
248
+ .map(({ id }) => id));
249
+ const plannedReceipts = [];
250
+ const capture = (plannedReceipts = [], updatedReceiptIds = []) => {
251
+ if (captured)
252
+ return;
253
+ captured = true;
254
+ Object.assign(summary, {
255
+ crossingProducerTaskIds: Object.freeze([...byProducer.keys()].sort(compareStableStrings)),
256
+ createdReceiptIds: Object.freeze(plannedReceipts.map(({ id }) => id).sort(compareStableStrings)),
257
+ updatedReceiptIds: Object.freeze([...updatedReceiptIds].sort(compareStableStrings)),
258
+ removedReceiptIds: Object.freeze(removedDeclarations
259
+ .filter(({ kind }) => kind === "assurance_receipt")
260
+ .map(({ id }) => id)
261
+ .sort(compareStableStrings)),
262
+ removedAssuranceRecordIds: Object.freeze(removedDeclarations.map(({ id }) => id).sort(compareStableStrings)),
263
+ updatedAssuranceReceiptIds: Object.freeze([...updatedReceiptIds].sort(compareStableStrings)),
264
+ });
265
+ };
266
+ for (const producerTaskId of [...byProducer.keys()].sort(compareStableStrings)) {
267
+ const producer = resultById.get(producerTaskId);
268
+ const producerTask = taskById.get(producerTaskId);
269
+ if (producer === undefined ||
270
+ producerTask === undefined ||
271
+ producer.status !== "verified" ||
272
+ producer.contractHash === null ||
273
+ producer.exportedAssuranceHash === null ||
274
+ (producer.outcomeStatus !== "conformant" &&
275
+ producer.outcomeStatus !== "changed")) {
276
+ capture();
277
+ return {
278
+ diagnostics: [assuranceAdvanceDiagnostic(`cross-frontier producer ${producerTaskId} has no usable accepted commitment`, producerTaskId, "crossing_commitment_unavailable")],
279
+ };
280
+ }
281
+ const consumers = byProducer.get(producerTaskId)
282
+ .map((relation) => ({
283
+ consumerTaskId: relation.successorTaskId,
284
+ relationMode: relation.mode,
285
+ }))
286
+ .sort((left, right) => compareStableStrings(left.consumerTaskId, right.consumerTaskId));
287
+ if (producer.outcomeStatus === "changed") {
288
+ for (const consumer of consumers) {
289
+ const accepted = inputById.get(consumer.consumerTaskId)?.seal
290
+ ?.acceptedInputs.find((candidate) => candidate.predecessorTaskId === producerTaskId &&
291
+ candidate.relationMode === consumer.relationMode);
292
+ if (accepted?.assuranceHash !== producer.exportedAssuranceHash) {
293
+ capture();
294
+ return {
295
+ diagnostics: [assuranceAdvanceDiagnostic(`consumer ${consumer.consumerTaskId} has not accepted changed outcome commitment from ${producerTaskId}`, consumer.consumerTaskId, "changed_outcome_not_accepted", { producer_task_id: producerTaskId })],
296
+ };
297
+ }
298
+ }
299
+ }
300
+ const contract = {
301
+ model: "Perttool.FrontierAssuranceReceipt.v1",
302
+ producerTaskId,
303
+ producerTaskContractHash: producer.contractHash,
304
+ producerAssuranceHash: producer.exportedAssuranceHash,
305
+ outcome: producer.outcomeStatus,
306
+ consumers,
307
+ sourceMilestoneId: producerTask.to ?? null,
308
+ };
309
+ const id = allocateReceiptId(producerTaskId, reserved);
310
+ plannedReceipts.push({
311
+ id,
312
+ contract,
313
+ hash: hashFrontierAssuranceReceipt(contract),
314
+ });
315
+ }
316
+ edits.push(...receiptInsertions(text, document, baseRemoved, plannedReceipts));
317
+ const updatedReceiptIds = [...retainedReceiptIds].filter((id) => {
318
+ const declaration = document.declarations.find((item) => item.id === id);
319
+ const consumers = fieldNamed(declaration, "consumers")
320
+ .value;
321
+ return consumers.some(({ consumerTaskId }) => removedTaskIds.has(consumerTaskId));
322
+ });
323
+ capture(plannedReceipts, updatedReceiptIds);
324
+ return {
325
+ removedDeclarations: Object.freeze(removedDeclarations),
326
+ edits: Object.freeze(edits),
327
+ };
328
+ };
329
+ }
330
+ function failure(text, documentId, diagnostics, maximum, alreadyTruncated = false) {
331
+ const limited = limitDiagnostics(sortDiagnostics(diagnostics), maximum);
332
+ return Object.freeze({
333
+ schemaVersion: PLAN_ASSURANCE_ADVANCE_RESULT_SCHEMA_VERSION,
334
+ ok: false,
335
+ documentId,
336
+ changed: false,
337
+ originalDigest: digest(text),
338
+ updatedDigest: null,
339
+ updatedText: null,
340
+ diff: null,
341
+ edits: Object.freeze([]),
342
+ governance: null,
343
+ lifecycle: null,
344
+ assuranceGuard: null,
345
+ historyGuard: null,
346
+ advance: null,
347
+ diagnostics: limited.diagnostics,
348
+ diagnosticsTruncated: alreadyTruncated || limited.truncated,
349
+ });
350
+ }
351
+ function blockedCause(diagnostics) {
352
+ const value = diagnostics.find(({ code }) => code === "PTASSURE-306")
353
+ ?.data?.["cause"];
354
+ return typeof value === "string"
355
+ ? value
356
+ : "crossing_commitment_unavailable";
357
+ }
358
+ function receiptGuardSummary(summary) {
359
+ return {
360
+ crossingProducerTaskIds: summary.crossingProducerTaskIds,
361
+ createdReceiptIds: summary.createdReceiptIds,
362
+ updatedReceiptIds: summary.updatedReceiptIds,
363
+ removedReceiptIds: summary.removedReceiptIds,
364
+ };
365
+ }
366
+ function baseResult(base, assuranceGuard, summary) {
367
+ return Object.freeze({
368
+ ...base,
369
+ schemaVersion: PLAN_ASSURANCE_ADVANCE_RESULT_SCHEMA_VERSION,
370
+ governance: null,
371
+ lifecycle: null,
372
+ assuranceGuard,
373
+ historyGuard: null,
374
+ advance: base.advance === null
375
+ ? null
376
+ : {
377
+ ...base.advance,
378
+ removedAssuranceRecordIds: Object.freeze([
379
+ ...summary.removedAssuranceRecordIds,
380
+ ]),
381
+ updatedAssuranceReceiptIds: Object.freeze([
382
+ ...summary.updatedAssuranceReceiptIds,
383
+ ]),
384
+ },
385
+ });
386
+ }
387
+ export function planTargetPlanAssuranceAdvance(text, capability, options = {}) {
388
+ const maximum = normalizeMaxDiagnostics(options.maxDiagnostics);
389
+ const original = validateTargetGrammar6Document(text, capability, { maxDiagnostics: maximum });
390
+ if (!original.ok || original.validatedDocument === null) {
391
+ return failure(text, original.documentId, original.diagnostics, maximum, original.diagnosticsTruncated);
392
+ }
393
+ const normalized = normalizePlanAssuranceGovernanceRequest(options.governance);
394
+ if (!normalized.ok) {
395
+ return failure(text, original.documentId, [...original.diagnostics, ...normalized.diagnostics], maximum, original.diagnosticsTruncated);
396
+ }
397
+ const before = evaluatePlanAssurance(projectPlanAssuranceInput(original.validatedDocument));
398
+ const enabled = before.modelVersion !== null || before.hashModelVersion !== null;
399
+ const summary = {
400
+ crossingProducerTaskIds: Object.freeze([]),
401
+ createdReceiptIds: Object.freeze([]),
402
+ updatedReceiptIds: Object.freeze([]),
403
+ removedReceiptIds: Object.freeze([]),
404
+ removedAssuranceRecordIds: Object.freeze([]),
405
+ updatedAssuranceReceiptIds: Object.freeze([]),
406
+ };
407
+ const base = planValidatedAdvance(text, grammar6AdvanceValidator(capability), options, {
408
+ removeTaskOwnedWorkEvents: true,
409
+ extendPlan: extensionFor(capability, summary),
410
+ });
411
+ if (!base.ok || base.updatedText === null || base.advance === null) {
412
+ const guard = base.diagnostics.some(({ code }) => code === "PTASSURE-306")
413
+ ? Object.freeze({
414
+ modelVersion: 1,
415
+ status: "blocked",
416
+ cause: blockedCause(base.diagnostics),
417
+ ...receiptGuardSummary(summary),
418
+ retainedBasisChecks: Object.freeze([]),
419
+ })
420
+ : null;
421
+ return baseResult(base, guard, summary);
422
+ }
423
+ const candidate = validateTargetGrammar6Document(base.updatedText, capability, { maxDiagnostics: maximum });
424
+ if (!candidate.ok || candidate.validatedDocument === null) {
425
+ throw new Error("assurance advance candidate lost Grammar 6 validation");
426
+ }
427
+ const after = evaluatePlanAssurance(projectPlanAssuranceInput(candidate.validatedDocument));
428
+ const beforeById = new Map(before.taskResults.map((item) => [item.taskId, item]));
429
+ const retainedBasisChecks = after.taskResults.map((item) => {
430
+ const beforeBasisHash = beforeById.get(item.taskId)?.computedBasisHash ?? null;
431
+ return Object.freeze({
432
+ taskId: item.taskId,
433
+ beforeBasisHash,
434
+ afterBasisHash: item.computedBasisHash,
435
+ equal: beforeBasisHash === item.computedBasisHash,
436
+ });
437
+ });
438
+ const mismatch = retainedBasisChecks.find(({ equal }) => !equal);
439
+ if (enabled && mismatch !== undefined) {
440
+ const diagnostic = assuranceAdvanceDiagnostic(`advance changed retained planning basis for ${mismatch.taskId}`, mismatch.taskId, "retained_basis_changed", {
441
+ before_basis_hash: mismatch.beforeBasisHash,
442
+ after_basis_hash: mismatch.afterBasisHash,
443
+ });
444
+ const limited = limitDiagnostics(sortDiagnostics([...base.diagnostics, diagnostic]), maximum);
445
+ return Object.freeze({
446
+ ...baseResult(base, Object.freeze({
447
+ modelVersion: 1,
448
+ status: "blocked",
449
+ cause: "retained_basis_changed",
450
+ ...receiptGuardSummary(summary),
451
+ retainedBasisChecks: Object.freeze(retainedBasisChecks),
452
+ }), summary),
453
+ ok: false,
454
+ diagnostics: limited.diagnostics,
455
+ diagnosticsTruncated: base.diagnosticsTruncated || limited.truncated,
456
+ });
457
+ }
458
+ const metadata = governanceMetadataFromDocument(original.validatedDocument.document);
459
+ const ordinaryScopes = classifyGovernanceScopes(original.validatedDocument.document, candidate.validatedDocument.document);
460
+ const scopes = base.changed
461
+ ? Object.freeze([
462
+ ...ordinaryScopes,
463
+ ...(enabled ? ["plan_assurance"] : []),
464
+ ].filter((scope, index, values) => values.indexOf(scope) === index))
465
+ : Object.freeze([]);
466
+ const governance = evaluatePlanAssuranceGovernance({
467
+ sourceDigest: base.originalDigest,
468
+ goalOwner: metadata.effective.goalOwner,
469
+ goalDelegates: metadata.effective.goalDelegates,
470
+ dagOwner: metadata.effective.dagOwner,
471
+ dagDelegates: metadata.effective.dagDelegates,
472
+ }, scopes, normalized.request);
473
+ const assuranceGuard = Object.freeze({
474
+ modelVersion: 1,
475
+ status: enabled ? "passed" : "not_applicable",
476
+ cause: enabled
477
+ ? base.changed ? "basis_preserved" : "no_change"
478
+ : "not_enabled",
479
+ ...receiptGuardSummary(summary),
480
+ retainedBasisChecks: Object.freeze(retainedBasisChecks),
481
+ });
482
+ const diagnostics = [
483
+ ...base.diagnostics,
484
+ ...planAssuranceGovernanceDiagnostics(governance),
485
+ ];
486
+ const hasError = diagnostics.some(({ severity }) => severity === "error");
487
+ const warningFailure = options.warningsAsErrors === true &&
488
+ diagnostics.some(({ severity }) => severity === "warning");
489
+ const limited = limitDiagnostics(sortDiagnostics(diagnostics), maximum);
490
+ return Object.freeze({
491
+ ...base,
492
+ schemaVersion: PLAN_ASSURANCE_ADVANCE_RESULT_SCHEMA_VERSION,
493
+ ok: !hasError && !warningFailure,
494
+ governance,
495
+ lifecycle: null,
496
+ assuranceGuard,
497
+ historyGuard: null,
498
+ advance: baseResult(base, assuranceGuard, summary).advance,
499
+ diff: createUnifiedDiff(text, base.updatedText, {
500
+ originalLabel: options.originalLabel ?? "original",
501
+ updatedLabel: options.updatedLabel ?? "updated",
502
+ }),
503
+ diagnostics: limited.diagnostics,
504
+ diagnosticsTruncated: base.diagnosticsTruncated || candidate.diagnosticsTruncated || limited.truncated,
505
+ });
506
+ }
507
+ //# sourceMappingURL=advance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advance.js","sourceRoot":"","sources":["../../src/assurance/advance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { type Diagnostic } from "../model/diagnostics.js";
2
+ import type { PlanAssuranceEvaluationV1, PlanAssuranceOutcomeStatus, PlanAssuranceTaskResultV1, PlanAssuranceTaskStatus } from "./types.js";
3
+ export declare const PLAN_ASSURANCE_AUTHORITY_POLICY: "recommendation_v1_plus_release_gate_plus_plan_assurance_v1";
4
+ export type PlanAssuranceRequiredActionKind = "initial_seal" | "replan_and_reseal" | "restore_assurance_evidence";
5
+ export interface PlanAssuranceRequiredActionV1 {
6
+ readonly kind: PlanAssuranceRequiredActionKind;
7
+ readonly rootTaskIds: readonly string[];
8
+ readonly affectedTaskIds: readonly string[];
9
+ }
10
+ export interface PlanAssuranceProjectionV1 {
11
+ readonly modelVersion: number | null;
12
+ readonly hashModelVersion: number | null;
13
+ readonly coverage: PlanAssuranceEvaluationV1["coverage"];
14
+ readonly taskResults: readonly PlanAssuranceTaskResultV1[];
15
+ readonly directMismatchTaskIds: readonly string[];
16
+ readonly inheritedMismatchTaskIds: readonly string[];
17
+ readonly replanRequiredTaskIds: readonly string[];
18
+ readonly activeAttentionRequiredTaskIds: readonly string[];
19
+ readonly requiredActions: readonly PlanAssuranceRequiredActionV1[];
20
+ }
21
+ export interface PlanAssuranceStateCountsV1 {
22
+ readonly task: Readonly<Record<PlanAssuranceTaskStatus, number>>;
23
+ readonly outcome: Readonly<Record<PlanAssuranceOutcomeStatus, number>>;
24
+ }
25
+ export interface PlanAssuranceCheckCompositionV1 {
26
+ readonly ok: boolean;
27
+ readonly assurance: PlanAssuranceProjectionV1 | null;
28
+ readonly stateCounts: PlanAssuranceStateCountsV1;
29
+ readonly diagnostics: readonly Diagnostic[];
30
+ }
31
+ export interface PlanAssuranceAnalysisCompositionV1 {
32
+ readonly ok: boolean;
33
+ readonly assurance: PlanAssuranceProjectionV1 | null;
34
+ readonly diagnostics: readonly Diagnostic[];
35
+ }
36
+ export interface PlanAssuranceBaseAuthorityInputV1 {
37
+ readonly recommendationInterfaceVersion: number;
38
+ readonly rankingAlgorithm: {
39
+ readonly id: string;
40
+ readonly version: number;
41
+ };
42
+ readonly reasonTaxonomyVersion: string;
43
+ readonly explanationModelVersion: number;
44
+ readonly expressionVersion: number;
45
+ readonly descriptionRegistryVersion: number;
46
+ readonly descriptionLocale: string;
47
+ readonly temporalPolicy: string;
48
+ readonly traceComplete: boolean;
49
+ readonly diagnosticsTruncated: boolean;
50
+ readonly rawRecommendedTaskIds: readonly string[];
51
+ readonly temporalStartableRecommendedTaskIds: readonly string[];
52
+ }
53
+ export type PlanAssuranceAuthoritySafeStopReason = "unknown_recommendation_interface" | "unknown_ranking_algorithm" | "unknown_recommendation_contract" | "unknown_temporal_authority_policy" | "incomplete_recommendation_trace" | "invalid_recommendation_authority" | "invalid_assurance_evaluation" | "unknown_assurance_model" | "missing_assurance_task_result";
54
+ export interface PlanAssuranceStartAuthorityV1 {
55
+ readonly policy: typeof PLAN_ASSURANCE_AUTHORITY_POLICY;
56
+ readonly complete: boolean;
57
+ readonly recommendationAlgorithm: {
58
+ readonly id: string;
59
+ readonly version: number;
60
+ };
61
+ readonly rawRecommendedTaskIds: readonly string[];
62
+ readonly temporalStartableRecommendedTaskIds: readonly string[];
63
+ readonly assuranceEligibleTaskIds: readonly string[];
64
+ readonly startableRecommendedTaskIds: readonly string[];
65
+ readonly assuranceWithheldRecommendedTaskIds: readonly string[];
66
+ readonly assuranceUnavailableRecommendedTaskIds: readonly string[];
67
+ readonly safeStopReasons: readonly PlanAssuranceAuthoritySafeStopReason[];
68
+ }
69
+ export interface PlanAssuranceNextCompositionV1 {
70
+ readonly ok: boolean;
71
+ readonly assurance: PlanAssuranceProjectionV1 | null;
72
+ readonly authority: PlanAssuranceStartAuthorityV1;
73
+ readonly diagnostics: readonly Diagnostic[];
74
+ }
75
+ export interface PlanAssuranceMutationImpactCompositionV1 {
76
+ readonly modelVersion: 1;
77
+ readonly affectedTaskIds: readonly string[];
78
+ readonly before: PlanAssuranceProjectionV1 | null;
79
+ readonly after: PlanAssuranceProjectionV1 | null;
80
+ readonly diagnostics: readonly Diagnostic[];
81
+ }
82
+ export declare function projectPlanAssuranceCheck(evaluation: PlanAssuranceEvaluationV1, activeTaskIds?: readonly string[]): PlanAssuranceCheckCompositionV1;
83
+ export declare function projectPlanAssuranceAnalysis(evaluation: PlanAssuranceEvaluationV1, activeTaskIds?: readonly string[]): PlanAssuranceAnalysisCompositionV1;
84
+ export declare function composePlanAssuranceNextAuthority(evaluation: PlanAssuranceEvaluationV1, base: PlanAssuranceBaseAuthorityInputV1, activeTaskIds?: readonly string[]): PlanAssuranceNextCompositionV1;
85
+ export declare function composePlanAssuranceMutationImpact(affectedTaskIds: readonly string[], before: PlanAssuranceEvaluationV1, after: PlanAssuranceEvaluationV1, activeTaskIdsBefore?: readonly string[], activeTaskIdsAfter?: readonly string[]): PlanAssuranceMutationImpactCompositionV1;
86
+ //# sourceMappingURL=authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../../src/assurance/authority.ts"],"names":[],"mappings":"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"}