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,248 @@
1
+ import { projectActualsSourceModel, } from "../actuals/source.js";
2
+ import { validateStoredLifecycleState } from "../actuals/lifecycle.js";
3
+ import { countDiagnostics, hasErrors, limitDiagnostics, normalizeMaxDiagnostics, sortDiagnostics, } from "../model/diagnostics.js";
4
+ import { fieldNamed } from "../model/syntax.js";
5
+ import { projectDeclaredCalendarValue, } from "../model/target-calendar.js";
6
+ import { TARGET_GRAMMAR_6_CAPABILITY, } from "../parser/document-parser.js";
7
+ import { validateTargetGrammar6Document, } from "../semantic/target-validator.js";
8
+ import { analyzeDocument as analyzeBaseDocument, } from "./analyze.js";
9
+ import { analyzeTargetActualsDocument, selectTargetActualsTasks, } from "./target-actuals-analysis.js";
10
+ import { analyzeTargetPlanAssuranceDocument, selectTargetPlanAssuranceAuthority, } from "./target-assurance-analysis.js";
11
+ import { selectNextTasks as selectBaseNextTasks, } from "./next.js";
12
+ export const CHECK_RESULT_V4 = "Perttool.CheckResult.v4";
13
+ export const ANALYSIS_RESULT_V5 = "Perttool.AnalysisResult.v5";
14
+ export const NEXT_RESULT_V6 = "Perttool.NextResult.v6";
15
+ function uniqueDiagnostics(values) {
16
+ const seen = new Set();
17
+ return Object.freeze(values.filter((diagnostic) => {
18
+ const key = [
19
+ diagnostic.code,
20
+ diagnostic.severity,
21
+ diagnostic.message,
22
+ diagnostic.entityId ?? "",
23
+ ].join("\u0000");
24
+ if (seen.has(key))
25
+ return false;
26
+ seen.add(key);
27
+ return true;
28
+ }));
29
+ }
30
+ function temporalInputs(document, parseFailed) {
31
+ if (parseFailed)
32
+ return null;
33
+ const project = document.declarations.find(({ kind }) => kind === "project");
34
+ const anchorField = project === undefined
35
+ ? undefined
36
+ : fieldNamed(project, "as_of");
37
+ const anchor = anchorField === undefined
38
+ ? null
39
+ : projectDeclaredCalendarValue(anchorField.value);
40
+ if (anchorField !== undefined && anchor === null)
41
+ return null;
42
+ const milestoneDeadlines = [];
43
+ const taskConstraints = [];
44
+ for (const declaration of document.declarations) {
45
+ if (declaration.kind === "milestone") {
46
+ const field = fieldNamed(declaration, "deadline");
47
+ if (field === undefined)
48
+ continue;
49
+ const deadline = projectDeclaredCalendarValue(field.value);
50
+ if (deadline === null)
51
+ return null;
52
+ milestoneDeadlines.push({ milestoneId: declaration.id, deadline });
53
+ continue;
54
+ }
55
+ if (declaration.kind !== "task")
56
+ continue;
57
+ const notBeforeField = fieldNamed(declaration, "not_before");
58
+ const deadlineField = fieldNamed(declaration, "deadline");
59
+ if (notBeforeField === undefined && deadlineField === undefined)
60
+ continue;
61
+ const notBefore = notBeforeField === undefined
62
+ ? null
63
+ : projectDeclaredCalendarValue(notBeforeField.value);
64
+ const deadline = deadlineField === undefined
65
+ ? null
66
+ : projectDeclaredCalendarValue(deadlineField.value);
67
+ if ((notBeforeField !== undefined && notBefore === null) ||
68
+ (deadlineField !== undefined && deadline === null))
69
+ return null;
70
+ taskConstraints.push({ taskId: declaration.id, notBefore, deadline });
71
+ }
72
+ return Object.freeze({
73
+ anchor,
74
+ milestoneDeadlines: Object.freeze(milestoneDeadlines),
75
+ taskConstraints: Object.freeze(taskConstraints),
76
+ });
77
+ }
78
+ const emptyStateCounts = Object.freeze({
79
+ task: Object.freeze({
80
+ not_applicable: 0,
81
+ unsealed: 0,
82
+ conditional: 0,
83
+ verified: 0,
84
+ review_required: 0,
85
+ unavailable: 0,
86
+ }),
87
+ outcome: Object.freeze({
88
+ unfinished: 0,
89
+ conformant: 0,
90
+ changed: 0,
91
+ unavailable: 0,
92
+ }),
93
+ });
94
+ export function checkDocument(text, options = {}) {
95
+ const maximum = normalizeMaxDiagnostics(options.maxDiagnostics);
96
+ const checked = validateTargetGrammar6Document(text, TARGET_GRAMMAR_6_CAPABILITY, { maxDiagnostics: maximum });
97
+ const lifecycle = checked.validatedDocument === null
98
+ ? Object.freeze([])
99
+ : validateStoredLifecycleState(checked.validatedDocument);
100
+ const assurance = analyzeTargetPlanAssuranceDocument(text, TARGET_GRAMMAR_6_CAPABILITY, { maxDiagnostics: maximum });
101
+ const allDiagnostics = uniqueDiagnostics(sortDiagnostics([
102
+ ...assurance.diagnostics,
103
+ ...lifecycle,
104
+ ]));
105
+ const limited = limitDiagnostics(allDiagnostics, maximum);
106
+ const parseFailed = checked.parseFailed;
107
+ const counts = parseFailed
108
+ ? checked.diagnosticCounts
109
+ : countDiagnostics(allDiagnostics);
110
+ const document = checked.document;
111
+ const summary = Object.freeze({
112
+ resources: parseFailed
113
+ ? 0
114
+ : document.declarations.filter(({ kind }) => kind === "resource").length,
115
+ milestones: parseFailed
116
+ ? 0
117
+ : document.declarations.filter(({ kind }) => kind === "milestone").length,
118
+ tasks: parseFailed
119
+ ? 0
120
+ : document.declarations.filter(({ kind }) => kind === "task").length,
121
+ gates: parseFailed
122
+ ? 0
123
+ : document.declarations.filter(({ kind }) => kind === "gate").length,
124
+ errors: counts.errors,
125
+ warnings: counts.warnings,
126
+ });
127
+ return Object.freeze({
128
+ schemaVersion: CHECK_RESULT_V4,
129
+ ok: checked.ok && assurance.evaluation !== null &&
130
+ assurance.evaluation.ok && !hasErrors(allDiagnostics),
131
+ document,
132
+ documentId: checked.documentId,
133
+ grammarVersion: checked.grammarVersion,
134
+ diagnostics: Object.freeze(limited.diagnostics),
135
+ diagnosticsTruncated: checked.diagnosticsTruncated || assurance.diagnosticsTruncated ||
136
+ limited.truncated,
137
+ summary,
138
+ temporalInputs: temporalInputs(document, parseFailed),
139
+ actualsInputs: checked.validatedDocument === null
140
+ ? null
141
+ : projectActualsSourceModel(checked.validatedDocument),
142
+ assurance: assurance.check?.assurance ?? null,
143
+ assuranceStateCounts: assurance.check?.stateCounts ?? emptyStateCounts,
144
+ });
145
+ }
146
+ export function analyzeDocument(text, options = {}) {
147
+ const actuals = analyzeTargetActualsDocument(text, TARGET_GRAMMAR_6_CAPABILITY, options);
148
+ const assurance = analyzeTargetPlanAssuranceDocument(text, TARGET_GRAMMAR_6_CAPABILITY, options);
149
+ const maximum = normalizeMaxDiagnostics(options.maxDiagnostics);
150
+ const limited = limitDiagnostics(uniqueDiagnostics(sortDiagnostics([
151
+ ...actuals.diagnostics,
152
+ ...assurance.diagnostics,
153
+ ])), maximum);
154
+ const base = actuals.ok && actuals.base !== null
155
+ ? actuals.base
156
+ : analyzeBaseDocument(text, options);
157
+ return Object.freeze({
158
+ ...base,
159
+ schemaVersion: ANALYSIS_RESULT_V5,
160
+ ok: actuals.ok && actuals.base !== null &&
161
+ assurance.analysis !== null && assurance.analysis.ok &&
162
+ !hasErrors(limited.diagnostics),
163
+ grammarVersion: actuals.grammarVersion,
164
+ taskActuals: actuals.ok ? actuals.taskActuals : Object.freeze([]),
165
+ precedence: actuals.ok ? actuals.precedence : null,
166
+ resource: actuals.ok ? actuals.resource : null,
167
+ temporal: actuals.ok ? actuals.temporal : null,
168
+ assurance: assurance.analysis?.assurance ?? null,
169
+ diagnostics: Object.freeze(limited.diagnostics),
170
+ diagnosticsTruncated: actuals.diagnosticsTruncated || assurance.diagnosticsTruncated ||
171
+ limited.truncated,
172
+ });
173
+ }
174
+ export function selectNextTasks(text, options = {}) {
175
+ const actuals = selectTargetActualsTasks(text, TARGET_GRAMMAR_6_CAPABILITY, options);
176
+ if (!("recommendation" in actuals) || actuals.recommendation === null) {
177
+ const base = selectBaseNextTasks(text, options);
178
+ return Object.freeze({
179
+ ...base,
180
+ schemaVersion: NEXT_RESULT_V6,
181
+ grammarVersion: actuals.grammarVersion,
182
+ groups: Object.freeze({
183
+ ...base.groups,
184
+ suspended: Object.freeze([]),
185
+ }),
186
+ temporal: null,
187
+ assurance: null,
188
+ diagnostics: actuals.diagnostics,
189
+ diagnosticsTruncated: actuals.diagnosticsTruncated,
190
+ });
191
+ }
192
+ const recommendation = actuals.recommendation;
193
+ const authority = selectTargetPlanAssuranceAuthority(text, TARGET_GRAMMAR_6_CAPABILITY, {
194
+ recommendationInterfaceVersion: 1,
195
+ rankingAlgorithm: recommendation.algorithm,
196
+ reasonTaxonomyVersion: recommendation.reasonTaxonomyVersion,
197
+ explanationModelVersion: recommendation.explanationModelVersion,
198
+ expressionVersion: recommendation.expressionVersion,
199
+ descriptionRegistryVersion: recommendation.descriptionRegistryVersion,
200
+ descriptionLocale: recommendation.descriptionLocale,
201
+ temporalPolicy: actuals.temporal.authority.policy,
202
+ traceComplete: recommendation.explanationStatus.complete &&
203
+ recommendation.explanationStatus.decisiveChainComplete &&
204
+ !recommendation.explanationStatus.truncated,
205
+ diagnosticsTruncated: actuals.diagnosticsTruncated,
206
+ rawRecommendedTaskIds: recommendation.recommendedTaskIds,
207
+ temporalStartableRecommendedTaskIds: actuals.temporal.authority.startableRecommendedTaskIds,
208
+ }, options);
209
+ if (authority.next === null) {
210
+ const base = selectBaseNextTasks(text, options);
211
+ return Object.freeze({
212
+ ...base,
213
+ schemaVersion: NEXT_RESULT_V6,
214
+ grammarVersion: actuals.grammarVersion,
215
+ ok: false,
216
+ groups: Object.freeze({
217
+ ...base.groups,
218
+ suspended: Object.freeze([]),
219
+ }),
220
+ temporal: null,
221
+ assurance: null,
222
+ diagnostics: authority.diagnostics,
223
+ diagnosticsTruncated: authority.diagnosticsTruncated,
224
+ });
225
+ }
226
+ const maximum = normalizeMaxDiagnostics(options.maxDiagnostics);
227
+ const limited = limitDiagnostics(uniqueDiagnostics(sortDiagnostics([
228
+ ...actuals.diagnostics,
229
+ ...authority.diagnostics,
230
+ ])), maximum);
231
+ return Object.freeze({
232
+ ...actuals,
233
+ schemaVersion: NEXT_RESULT_V6,
234
+ ok: actuals.ok && authority.ok && !hasErrors(limited.diagnostics),
235
+ assurance: authority.next.assurance,
236
+ temporal: Object.freeze({
237
+ ...actuals.temporal,
238
+ authority: Object.freeze({
239
+ ...actuals.temporal.authority,
240
+ ...authority.next.authority,
241
+ }),
242
+ }),
243
+ diagnostics: Object.freeze(limited.diagnostics),
244
+ diagnosticsTruncated: actuals.diagnosticsTruncated || authority.diagnosticsTruncated ||
245
+ limited.truncated,
246
+ });
247
+ }
248
+ //# sourceMappingURL=contract7-assurance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-assurance.js","sourceRoot":"","sources":["../../src/application/contract7-assurance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type MermaidAnalysisMode, type MermaidExportOptions, type MermaidExportResult } from "../conversion/mermaid.js";
2
+ import { type MermaidImportOptions, type MermaidImportResult } from "../conversion/mermaid-import.js";
3
+ export interface Contract7MermaidExportOptions extends MermaidExportOptions {
4
+ readonly allowLoss?: boolean;
5
+ }
6
+ export declare function exportMermaid(text: string, options?: Contract7MermaidExportOptions): MermaidExportResult;
7
+ export declare function importMermaid(text: string, options?: MermaidImportOptions): MermaidImportResult;
8
+ export type { MermaidAnalysisMode, MermaidExportResult, MermaidImportOptions, MermaidImportResult, };
9
+ //# sourceMappingURL=contract7-mermaid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-mermaid.d.ts","sourceRoot":"","sources":["../../src/application/contract7-mermaid.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,6BAAkC,GAC1C,mBAAmB,CAsCrB;AAQD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAyBrB;AAED,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { exportPlanAssuranceMermaid, importPlanAssuranceMermaid, } from "../assurance/mermaid.js";
2
+ import { exportMermaid as exportRetainedMermaid, } from "../conversion/mermaid.js";
3
+ import { importMermaid as importRetainedMermaid, } from "../conversion/mermaid-import.js";
4
+ import { TARGET_GRAMMAR_6_CAPABILITY } from "../parser/document-parser.js";
5
+ import { checkDocument } from "./contract7-assurance.js";
6
+ function grammar6(text, maxDiagnostics) {
7
+ return checkDocument(text, {
8
+ ...(maxDiagnostics === undefined ? {} : { maxDiagnostics }),
9
+ }).grammarVersion === 6;
10
+ }
11
+ export function exportMermaid(text, options = {}) {
12
+ if (!grammar6(text, options.maxDiagnostics)) {
13
+ return exportRetainedMermaid(text, options);
14
+ }
15
+ const profile = options.profile ?? "perttool";
16
+ const analysis = options.analysis ?? "none";
17
+ const capacityOverrides = options.capacityOverrides ?? new Map();
18
+ const checked = checkDocument(text, {
19
+ ...(options.maxDiagnostics === undefined
20
+ ? {}
21
+ : { maxDiagnostics: options.maxDiagnostics }),
22
+ });
23
+ const result = exportPlanAssuranceMermaid(text, TARGET_GRAMMAR_6_CAPABILITY, {
24
+ profile: profile === "perttool" ? 2 : "plain",
25
+ allowLoss: options.allowLoss ?? profile === "plain",
26
+ analysis,
27
+ capacityOverrides,
28
+ ...(options.maxDiagnostics === undefined
29
+ ? {}
30
+ : { maxDiagnostics: options.maxDiagnostics }),
31
+ });
32
+ return Object.freeze({
33
+ ok: result.ok,
34
+ document: checked.document,
35
+ documentId: result.documentId,
36
+ diagnostics: result.diagnostics,
37
+ diagnosticsTruncated: result.diagnosticsTruncated,
38
+ profile,
39
+ analysis,
40
+ capacityOverrides,
41
+ artifact: result.artifact,
42
+ artifactDigest: result.artifactDigest,
43
+ lossReport: result.lossReport,
44
+ });
45
+ }
46
+ function profile2Detected(text) {
47
+ return text.startsWith("flowchart LR\n %% perttool:profile {\"schema_version\":\"Perttool.MermaidProfile.v2\"");
48
+ }
49
+ export function importMermaid(text, options = {}) {
50
+ if (!profile2Detected(text))
51
+ return importRetainedMermaid(text, options);
52
+ const result = importPlanAssuranceMermaid(text, TARGET_GRAMMAR_6_CAPABILITY);
53
+ const checked = checkDocument(result.sourceText ?? "", {
54
+ ...(options.maxDiagnostics === undefined
55
+ ? {}
56
+ : { maxDiagnostics: options.maxDiagnostics }),
57
+ });
58
+ return Object.freeze({
59
+ ok: result.ok,
60
+ document: checked.document,
61
+ documentId: result.documentId,
62
+ diagnostics: result.diagnostics,
63
+ diagnosticsTruncated: result.diagnosticsTruncated,
64
+ profile: "perttool",
65
+ analysis: result.analysis,
66
+ capacityOverrides: result.capacityOverrides,
67
+ artifact: result.sourceText,
68
+ artifactDigest: result.sourceDigest,
69
+ lossReport: result.lossReport,
70
+ generatedIds: Object.freeze([]),
71
+ });
72
+ }
73
+ //# sourceMappingURL=contract7-mermaid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-mermaid.js","sourceRoot":"","sources":["../../src/application/contract7-mermaid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { FinishActualsMutation, LifecycleMutation } from "../actuals/lifecycle.js";
2
+ import { type PlanAssuranceBatchMutation, type PlanAssuranceImpactV1, type PlanAssuranceMutation, type PlanAssuranceMutationOptions, type TargetPlanAssuranceMutationResultV4 } from "../assurance/mutation.js";
3
+ import { type PlanAssuranceAdvanceOptions, type TargetPlanAssuranceAdvanceResultV2 } from "../assurance/advance.js";
4
+ import type { BatchMutation, Mutation } from "../mutation/types.js";
5
+ import { type ActualsLifecycleResult, type TargetActualsMutationOptions } from "./target-actuals-mutation.js";
6
+ export type MutationResultV4 = TargetPlanAssuranceMutationResultV4;
7
+ export type AdvanceResultV2 = TargetPlanAssuranceAdvanceResultV2;
8
+ export interface LifecycleResultV4 extends Omit<TargetPlanAssuranceMutationResultV4, "assuranceImpact"> {
9
+ readonly lifecycle: ActualsLifecycleResult | null;
10
+ readonly assuranceImpact: PlanAssuranceImpactV1 | null;
11
+ }
12
+ export interface Contract7LifecycleOptions extends TargetActualsMutationOptions {
13
+ readonly warningsAsErrors?: boolean;
14
+ }
15
+ export declare function planMutation(text: string, mutation: Mutation, options?: PlanAssuranceMutationOptions): MutationResultV4;
16
+ export declare function planBatchMutation(text: string, mutation: BatchMutation | PlanAssuranceBatchMutation, options?: PlanAssuranceMutationOptions): MutationResultV4;
17
+ export declare function planAssuranceMutation(text: string, mutation: PlanAssuranceMutation, options?: PlanAssuranceMutationOptions): MutationResultV4;
18
+ export declare function planAdvance(text: string, options?: PlanAssuranceAdvanceOptions): AdvanceResultV2;
19
+ export declare function planLifecycle(text: string, mutation: LifecycleMutation, options?: Contract7LifecycleOptions): LifecycleResultV4;
20
+ export declare function planFinishActuals(text: string, mutation: FinishActualsMutation, options?: Contract7LifecycleOptions): LifecycleResultV4;
21
+ //# sourceMappingURL=contract7-mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-mutation.d.ts","sourceRoot":"","sources":["../../src/application/contract7-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,mCAAmC,EACzC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACxC,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAClC,MAAM,8BAA8B,CAAC;AAUtC,MAAM,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAEjE,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,mCAAmC,EAAE,iBAAiB,CAAC;IACpE,QAAQ,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,yBACf,SAAQ,4BAA4B;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AA8JD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,4BAAiC,GACzC,gBAAgB,CAyClB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,GAAG,0BAA0B,EACpD,OAAO,GAAE,4BAAiC,GACzC,gBAAgB,CA+DlB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,GAAE,4BAAiC,GACzC,gBAAgB,CAOlB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,2BAAgC,GACxC,eAAe,CAMjB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,yBAA8B,GACtC,iBAAiB,CAWnB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,GAAE,yBAA8B,GACtC,iBAAiB,CAWnB"}
@@ -0,0 +1,181 @@
1
+ import { composePlanAssuranceMutationImpact } from "../assurance/authority.js";
2
+ import { evaluatePlanAssurance } from "../assurance/evaluate.js";
3
+ import { evaluatePlanAssuranceGovernance, normalizePlanAssuranceGovernanceRequest, planAssuranceGovernanceDiagnostics, } from "../assurance/governance.js";
4
+ import { planTargetPlanAssuranceMutation, } from "../assurance/mutation.js";
5
+ import { projectPlanAssuranceInput } from "../assurance/source.js";
6
+ import { planTargetPlanAssuranceAdvance, } from "../assurance/advance.js";
7
+ import { classifyGovernanceScopes } from "../governance/authority.js";
8
+ import { governanceMetadataFromDocument } from "../governance/source.js";
9
+ import { limitDiagnostics, normalizeMaxDiagnostics, sortDiagnostics, } from "../model/diagnostics.js";
10
+ import { fieldNamed } from "../model/syntax.js";
11
+ import { TARGET_GRAMMAR_6_CAPABILITY } from "../parser/document-parser.js";
12
+ import { validateTargetGrammar6Document } from "../semantic/target-validator.js";
13
+ import { planTargetFinishActualsMutation, planTargetLifecycleMutation, } from "./target-actuals-mutation.js";
14
+ import { planTargetGrammar6BatchMutation, planTargetGrammar6Mutation, } from "./target-mutate.js";
15
+ import { planBatchMutation as planContract6BatchMutation, planMutation as planContract6Mutation, } from "./contract6-mutation.js";
16
+ function usesRetainedGrammar(text) {
17
+ const checked = validateTargetGrammar6Document(text, TARGET_GRAMMAR_6_CAPABILITY);
18
+ const project = checked.document.declarations.find(({ kind }) => kind === "project");
19
+ const declared = project === undefined
20
+ ? null
21
+ : fieldNamed(project, "version")?.value;
22
+ return declared !== 6;
23
+ }
24
+ function retainedPreflightOptions(options) {
25
+ const { governance: _governance, warningsAsErrors: _warningsAsErrors, ...retained } = options;
26
+ return retained;
27
+ }
28
+ function retainedFailure(base) {
29
+ return Object.freeze({
30
+ ...base,
31
+ schemaVersion: "Perttool.MutationResult.v4",
32
+ governance: null,
33
+ assuranceImpact: null,
34
+ });
35
+ }
36
+ function activeTaskIds(document) {
37
+ return Object.freeze(document.declarations
38
+ .filter((declaration) => declaration.kind === "task" &&
39
+ fieldNamed(declaration, "status")?.value === "active")
40
+ .map(({ id }) => id));
41
+ }
42
+ function lifecycleResult(text, base, options) {
43
+ if (!base.ok || base.updatedText === null || base.updatedDigest === null) {
44
+ return Object.freeze({
45
+ ...base,
46
+ schemaVersion: "Perttool.MutationResult.v4",
47
+ governance: null,
48
+ assuranceImpact: null,
49
+ });
50
+ }
51
+ const maximum = normalizeMaxDiagnostics(options.maxDiagnostics);
52
+ const original = validateTargetGrammar6Document(text, TARGET_GRAMMAR_6_CAPABILITY, { maxDiagnostics: maximum });
53
+ const candidate = validateTargetGrammar6Document(base.updatedText, TARGET_GRAMMAR_6_CAPABILITY, { maxDiagnostics: maximum });
54
+ if (!original.ok || original.validatedDocument === null ||
55
+ !candidate.ok || candidate.validatedDocument === null) {
56
+ throw new Error("Contract 7 lifecycle candidate lost Grammar 6 validation");
57
+ }
58
+ const normalized = normalizePlanAssuranceGovernanceRequest(options.governance);
59
+ if (!normalized.ok) {
60
+ throw new Error("lifecycle governance request was not normalized");
61
+ }
62
+ const metadata = governanceMetadataFromDocument(original.validatedDocument.document);
63
+ const governance = evaluatePlanAssuranceGovernance({
64
+ sourceDigest: base.originalDigest,
65
+ goalOwner: metadata.effective.goalOwner,
66
+ goalDelegates: metadata.effective.goalDelegates,
67
+ dagOwner: metadata.effective.dagOwner,
68
+ dagDelegates: metadata.effective.dagDelegates,
69
+ }, classifyGovernanceScopes(original.validatedDocument.document, candidate.validatedDocument.document), normalized.request);
70
+ const before = evaluatePlanAssurance(projectPlanAssuranceInput(original.validatedDocument));
71
+ const after = evaluatePlanAssurance(projectPlanAssuranceInput(candidate.validatedDocument));
72
+ const affectedTaskIds = after.taskResults
73
+ .filter((result) => {
74
+ const previous = before.taskResults.find(({ taskId }) => taskId === result.taskId);
75
+ return previous === undefined ||
76
+ previous.status !== result.status ||
77
+ previous.contractHash !== result.contractHash ||
78
+ previous.computedBasisHash !== result.computedBasisHash ||
79
+ previous.acceptedBasisHash !== result.acceptedBasisHash ||
80
+ previous.exportedAssuranceHash !== result.exportedAssuranceHash;
81
+ })
82
+ .map(({ taskId }) => taskId);
83
+ const assuranceImpact = Object.freeze({
84
+ modelVersion: 1,
85
+ affectedTaskIds: Object.freeze(affectedTaskIds),
86
+ before,
87
+ after,
88
+ projection: composePlanAssuranceMutationImpact(affectedTaskIds, before, after, activeTaskIds(original.validatedDocument.document), activeTaskIds(candidate.validatedDocument.document)),
89
+ });
90
+ const diagnostics = sortDiagnostics([
91
+ ...candidate.diagnostics,
92
+ ...assuranceImpact.projection.diagnostics,
93
+ ...planAssuranceGovernanceDiagnostics(governance),
94
+ ]);
95
+ const warningFailure = options.warningsAsErrors === true &&
96
+ diagnostics.some(({ severity }) => severity === "warning");
97
+ const limited = limitDiagnostics(diagnostics, maximum);
98
+ return Object.freeze({
99
+ ...base,
100
+ schemaVersion: "Perttool.MutationResult.v4",
101
+ ok: !diagnostics.some(({ severity }) => severity === "error") &&
102
+ !warningFailure,
103
+ governance,
104
+ assuranceImpact,
105
+ diagnostics: limited.diagnostics,
106
+ diagnosticsTruncated: base.diagnosticsTruncated || candidate.diagnosticsTruncated ||
107
+ limited.truncated,
108
+ });
109
+ }
110
+ export function planMutation(text, mutation, options = {}) {
111
+ if (mutation?.kind === "batch") {
112
+ return planBatchMutation(text, mutation, options);
113
+ }
114
+ if (usesRetainedGrammar(text)) {
115
+ const retained = planContract6Mutation(text, mutation, retainedPreflightOptions(options));
116
+ if (!retained.ok)
117
+ return retainedFailure(retained);
118
+ }
119
+ const base = planTargetGrammar6Mutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options);
120
+ if (!base.ok) {
121
+ return Object.freeze({
122
+ ...base,
123
+ schemaVersion: "Perttool.MutationResult.v4",
124
+ governance: null,
125
+ assuranceImpact: null,
126
+ });
127
+ }
128
+ return planTargetPlanAssuranceMutation(text, {
129
+ kind: "batch",
130
+ mutations: Object.freeze([
131
+ mutation,
132
+ ]),
133
+ }, TARGET_GRAMMAR_6_CAPABILITY, options);
134
+ }
135
+ export function planBatchMutation(text, mutation, options = {}) {
136
+ if (usesRetainedGrammar(text)) {
137
+ const retained = planContract6BatchMutation(text, mutation, retainedPreflightOptions(options));
138
+ if (!retained.ok)
139
+ return retainedFailure(retained);
140
+ }
141
+ const mutationItems = mutation.mutations;
142
+ if (!Array.isArray(mutationItems)) {
143
+ const base = planTargetGrammar6BatchMutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options);
144
+ return Object.freeze({
145
+ ...base,
146
+ schemaVersion: "Perttool.MutationResult.v4",
147
+ governance: null,
148
+ assuranceImpact: null,
149
+ });
150
+ }
151
+ const mutations = mutationItems;
152
+ const assurance = mutations.some(({ kind }) => typeof kind === "string" &&
153
+ (kind.startsWith("plan_assurance.") ||
154
+ kind.startsWith("plan_dependency.") ||
155
+ kind.startsWith("task_outcome.")));
156
+ if (!assurance) {
157
+ const base = planTargetGrammar6BatchMutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options);
158
+ if (!base.ok) {
159
+ return Object.freeze({
160
+ ...base,
161
+ schemaVersion: "Perttool.MutationResult.v4",
162
+ governance: null,
163
+ assuranceImpact: null,
164
+ });
165
+ }
166
+ }
167
+ return planTargetPlanAssuranceMutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options);
168
+ }
169
+ export function planAssuranceMutation(text, mutation, options = {}) {
170
+ return planTargetPlanAssuranceMutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options);
171
+ }
172
+ export function planAdvance(text, options = {}) {
173
+ return planTargetPlanAssuranceAdvance(text, TARGET_GRAMMAR_6_CAPABILITY, options);
174
+ }
175
+ export function planLifecycle(text, mutation, options = {}) {
176
+ return lifecycleResult(text, planTargetLifecycleMutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options), options);
177
+ }
178
+ export function planFinishActuals(text, mutation, options = {}) {
179
+ return lifecycleResult(text, planTargetFinishActualsMutation(text, mutation, TARGET_GRAMMAR_6_CAPABILITY, options), options);
180
+ }
181
+ //# sourceMappingURL=contract7-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-mutation.js","sourceRoot":"","sources":["../../src/application/contract7-mutation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CheckOptions } from "./check.js";
2
+ import { type TargetGovernanceProjectMetadata, type TargetGovernanceProjectMetadataResult } from "./target-governance-project.js";
3
+ export declare const PROJECT_RESULT_V4: "Perttool.ProjectResult.v4";
4
+ export type ProjectMetadataDurationUnit = "day" | "hour" | "point";
5
+ export type ProjectMetadata = TargetGovernanceProjectMetadata;
6
+ export type ProjectMetadataResult = TargetGovernanceProjectMetadataResult;
7
+ export declare function getProjectMetadata(text: string, options?: CheckOptions): ProjectMetadataResult;
8
+ export declare function contract7ProjectResultToJson(result: TargetGovernanceProjectMetadataResult, source: string, sourceDigest: string, ok?: boolean): Readonly<Record<string, unknown>>;
9
+ export declare function renderContract7ProjectText(project: TargetGovernanceProjectMetadata): string;
10
+ //# sourceMappingURL=contract7-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-project.d.ts","sourceRoot":"","sources":["../../src/application/contract7-project.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,EAC3C,MAAM,gCAAgC,CAAC;AAMxC,eAAO,MAAM,iBAAiB,EAAG,2BAAoC,CAAC;AAEtE,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,qCAAqC,CAAC;AAE1E,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,qBAAqB,CAMvB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,qCAAqC,EAC7C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,EAAE,UAAY,GACb,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBnC;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,+BAA+B,GACvC,MAAM,CAQR"}
@@ -0,0 +1,29 @@
1
+ import { TARGET_GRAMMAR_6_CAPABILITY } from "../parser/document-parser.js";
2
+ import { getTargetGovernanceProjectMetadata, } from "./target-governance-project.js";
3
+ import { renderTargetGovernanceProjectText, targetGovernanceProjectResultToJson, } from "./target-governance-projection.js";
4
+ export const PROJECT_RESULT_V4 = "Perttool.ProjectResult.v4";
5
+ export function getProjectMetadata(text, options = {}) {
6
+ return getTargetGovernanceProjectMetadata(text, TARGET_GRAMMAR_6_CAPABILITY, options);
7
+ }
8
+ export function contract7ProjectResultToJson(result, source, sourceDigest, ok = result.ok) {
9
+ const base = targetGovernanceProjectResultToJson(result, source, sourceDigest, ok);
10
+ const project = base["project"];
11
+ return Object.freeze({
12
+ ...base,
13
+ schema_version: PROJECT_RESULT_V4,
14
+ cli_contract_version: 7,
15
+ project: project === null || result.project === null
16
+ ? null
17
+ : Object.freeze({
18
+ ...project,
19
+ plan_assurance_model: result.project.planAssuranceModel,
20
+ plan_assurance_hash_model: result.project.planAssuranceHashModel,
21
+ }),
22
+ });
23
+ }
24
+ export function renderContract7ProjectText(project) {
25
+ const lines = renderTargetGovernanceProjectText(project).trimEnd().split("\n");
26
+ lines.push(`PLAN_ASSURANCE_MODEL ${project.planAssuranceModel ?? "-"}`, `PLAN_ASSURANCE_HASH_MODEL ${project.planAssuranceHashModel ?? "-"}`, "");
27
+ return lines.join("\n");
28
+ }
29
+ //# sourceMappingURL=contract7-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract7-project.js","sourceRoot":"","sources":["../../src/application/contract7-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,OAAO,EACL,kCAAkC,GAGnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,2BAAoC,CAAC;AAMtE,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAO,GAAiB,EAAE;IAE1B,OAAO,kCAAkC,CACvC,IAAI,EACJ,2BAA2B,EAC3B,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAA6C,EAC7C,MAAc,EACd,YAAoB,EACpB,EAAE,GAAG,MAAM,CAAC,EAAE;IAEd,MAAM,IAAI,GAAG,mCAAmC,CAC9C,MAAM,EACN,MAAM,EACN,YAAY,EACZ,EAAE,CACH,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAA6C,CAAC;IAC5E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,IAAI;QACP,cAAc,EAAE,iBAAiB;QACjC,oBAAoB,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;YAClD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,GAAG,OAAO;gBACV,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB;gBACvD,yBAAyB,EAAE,MAAM,CAAC,OAAO,CAAC,sBAAsB;aACjE,CAAC;KACP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAwC;IAExC,MAAM,KAAK,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CACR,wBAAwB,OAAO,CAAC,kBAAkB,IAAI,GAAG,EAAE,EAC3D,6BAA6B,OAAO,CAAC,sBAAsB,IAAI,GAAG,EAAE,EACpE,EAAE,CACH,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}