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.
- package/CHANGELOG.md +56 -1
- package/README.md +113 -33
- package/dist/application/advance-history.d.ts +2 -0
- package/dist/application/advance-history.d.ts.map +1 -1
- package/dist/application/advance-history.js +21 -12
- package/dist/application/advance-history.js.map +1 -1
- package/dist/application/contract7-assurance.d.ts +57 -0
- package/dist/application/contract7-assurance.d.ts.map +1 -0
- package/dist/application/contract7-assurance.js +248 -0
- package/dist/application/contract7-assurance.js.map +1 -0
- package/dist/application/contract7-mermaid.d.ts +9 -0
- package/dist/application/contract7-mermaid.d.ts.map +1 -0
- package/dist/application/contract7-mermaid.js +73 -0
- package/dist/application/contract7-mermaid.js.map +1 -0
- package/dist/application/contract7-mutation.d.ts +21 -0
- package/dist/application/contract7-mutation.d.ts.map +1 -0
- package/dist/application/contract7-mutation.js +181 -0
- package/dist/application/contract7-mutation.js.map +1 -0
- package/dist/application/contract7-project.d.ts +10 -0
- package/dist/application/contract7-project.d.ts.map +1 -0
- package/dist/application/contract7-project.js +29 -0
- package/dist/application/contract7-project.js.map +1 -0
- package/dist/application/contract7-projection.d.ts +9 -0
- package/dist/application/contract7-projection.d.ts.map +1 -0
- package/dist/application/contract7-projection.js +100 -0
- package/dist/application/contract7-projection.js.map +1 -0
- package/dist/application/contract7-source.d.ts +24 -0
- package/dist/application/contract7-source.d.ts.map +1 -0
- package/dist/application/contract7-source.js +54 -0
- package/dist/application/contract7-source.js.map +1 -0
- package/dist/application/contract7-unit-migration.d.ts +13 -0
- package/dist/application/contract7-unit-migration.d.ts.map +1 -0
- package/dist/application/contract7-unit-migration.js +13 -0
- package/dist/application/contract7-unit-migration.js.map +1 -0
- package/dist/application/init.d.ts +1 -1
- package/dist/application/init.js +3 -3
- package/dist/application/mutate.d.ts +5 -1
- package/dist/application/mutate.d.ts.map +1 -1
- package/dist/application/mutate.js +2 -2
- package/dist/application/mutate.js.map +1 -1
- package/dist/application/target-actuals-analysis.d.ts +5 -4
- package/dist/application/target-actuals-analysis.d.ts.map +1 -1
- package/dist/application/target-actuals-analysis.js +18 -11
- package/dist/application/target-actuals-analysis.js.map +1 -1
- package/dist/application/target-actuals-mutation.d.ts +5 -3
- package/dist/application/target-actuals-mutation.d.ts.map +1 -1
- package/dist/application/target-actuals-mutation.js +16 -8
- package/dist/application/target-actuals-mutation.js.map +1 -1
- package/dist/application/target-assurance-advance-history.d.ts +19 -0
- package/dist/application/target-assurance-advance-history.d.ts.map +1 -0
- package/dist/application/target-assurance-advance-history.js +61 -0
- package/dist/application/target-assurance-advance-history.js.map +1 -0
- package/dist/application/target-assurance-analysis.d.ts +34 -0
- package/dist/application/target-assurance-analysis.d.ts.map +1 -0
- package/dist/application/target-assurance-analysis.js +103 -0
- package/dist/application/target-assurance-analysis.js.map +1 -0
- package/dist/application/target-assurance-inspection.d.ts +38 -0
- package/dist/application/target-assurance-inspection.d.ts.map +1 -0
- package/dist/application/target-assurance-inspection.js +356 -0
- package/dist/application/target-assurance-inspection.js.map +1 -0
- package/dist/application/target-assurance-write.d.ts +22 -0
- package/dist/application/target-assurance-write.d.ts.map +1 -0
- package/dist/application/target-assurance-write.js +73 -0
- package/dist/application/target-assurance-write.js.map +1 -0
- package/dist/application/target-governance-init.d.ts +3 -3
- package/dist/application/target-governance-init.d.ts.map +1 -1
- package/dist/application/target-governance-init.js +14 -10
- package/dist/application/target-governance-init.js.map +1 -1
- package/dist/application/target-governance-project.d.ts +6 -4
- package/dist/application/target-governance-project.d.ts.map +1 -1
- package/dist/application/target-governance-project.js +18 -4
- package/dist/application/target-governance-project.js.map +1 -1
- package/dist/application/target-mutate.d.ts +7 -1
- package/dist/application/target-mutate.d.ts.map +1 -1
- package/dist/application/target-mutate.js +50 -3
- package/dist/application/target-mutate.js.map +1 -1
- package/dist/application/target-project-history.d.ts +4 -4
- package/dist/application/target-project-history.d.ts.map +1 -1
- package/dist/application/target-project-history.js +2 -2
- package/dist/application/target-project-history.js.map +1 -1
- package/dist/application/target-unit-migration-candidate.d.ts +29 -6
- package/dist/application/target-unit-migration-candidate.d.ts.map +1 -1
- package/dist/application/target-unit-migration-candidate.js +204 -3
- package/dist/application/target-unit-migration-candidate.js.map +1 -1
- package/dist/application/target-unit-migration-result.d.ts +2 -2
- package/dist/application/target-unit-migration-result.d.ts.map +1 -1
- package/dist/application/target-unit-migration-result.js +4 -2
- package/dist/application/target-unit-migration-result.js.map +1 -1
- package/dist/application/target-velocity-observation.d.ts +1 -1
- package/dist/application/target-velocity-observation.js +1 -1
- package/dist/assurance/advance.d.ts +45 -0
- package/dist/assurance/advance.d.ts.map +1 -0
- package/dist/assurance/advance.js +507 -0
- package/dist/assurance/advance.js.map +1 -0
- package/dist/assurance/authority.d.ts +86 -0
- package/dist/assurance/authority.d.ts.map +1 -0
- package/dist/assurance/authority.js +269 -0
- package/dist/assurance/authority.js.map +1 -0
- package/dist/assurance/canonical.d.ts +13 -0
- package/dist/assurance/canonical.d.ts.map +1 -0
- package/dist/assurance/canonical.js +320 -0
- package/dist/assurance/canonical.js.map +1 -0
- package/dist/assurance/compatibility.d.ts +62 -0
- package/dist/assurance/compatibility.d.ts.map +1 -0
- package/dist/assurance/compatibility.js +163 -0
- package/dist/assurance/compatibility.js.map +1 -0
- package/dist/assurance/evaluate.d.ts +4 -0
- package/dist/assurance/evaluate.d.ts.map +1 -0
- package/dist/assurance/evaluate.js +631 -0
- package/dist/assurance/evaluate.js.map +1 -0
- package/dist/assurance/governance.d.ts +42 -0
- package/dist/assurance/governance.d.ts.map +1 -0
- package/dist/assurance/governance.js +95 -0
- package/dist/assurance/governance.js.map +1 -0
- package/dist/assurance/mermaid.d.ts +40 -0
- package/dist/assurance/mermaid.d.ts.map +1 -0
- package/dist/assurance/mermaid.js +401 -0
- package/dist/assurance/mermaid.js.map +1 -0
- package/dist/assurance/mutation.d.ts +96 -0
- package/dist/assurance/mutation.d.ts.map +1 -0
- package/dist/assurance/mutation.js +757 -0
- package/dist/assurance/mutation.js.map +1 -0
- package/dist/assurance/source.d.ts +20 -0
- package/dist/assurance/source.d.ts.map +1 -0
- package/dist/assurance/source.js +313 -0
- package/dist/assurance/source.js.map +1 -0
- package/dist/assurance/types.d.ts +166 -0
- package/dist/assurance/types.d.ts.map +1 -0
- package/dist/assurance/types.js +3 -0
- package/dist/assurance/types.js.map +1 -0
- package/dist/cli.js +356 -60
- package/dist/cli.js.map +1 -1
- package/dist/command/assurance-discovery.d.ts +17 -0
- package/dist/command/assurance-discovery.d.ts.map +1 -0
- package/dist/command/assurance-discovery.js +297 -0
- package/dist/command/assurance-discovery.js.map +1 -0
- package/dist/command/assurance-usage.d.ts +20 -0
- package/dist/command/assurance-usage.d.ts.map +1 -0
- package/dist/command/assurance-usage.js +66 -0
- package/dist/command/assurance-usage.js.map +1 -0
- package/dist/conversion/mermaid.d.ts +2 -1
- package/dist/conversion/mermaid.d.ts.map +1 -1
- package/dist/conversion/mermaid.js +2 -2
- package/dist/conversion/mermaid.js.map +1 -1
- package/dist/formatter/source-formatter.d.ts +1 -1
- package/dist/formatter/source-formatter.d.ts.map +1 -1
- package/dist/formatter/source-formatter.js +56 -4
- package/dist/formatter/source-formatter.js.map +1 -1
- package/dist/formatter/target-source-formatter.d.ts +2 -1
- package/dist/formatter/target-source-formatter.d.ts.map +1 -1
- package/dist/formatter/target-source-formatter.js +18 -2
- package/dist/formatter/target-source-formatter.js.map +1 -1
- package/dist/help/assurance-guide.d.ts +10 -0
- package/dist/help/assurance-guide.d.ts.map +1 -0
- package/dist/help/assurance-guide.js +227 -0
- package/dist/help/assurance-guide.js.map +1 -0
- package/dist/help/guide.d.ts +1 -1
- package/dist/help/guide.d.ts.map +1 -1
- package/dist/history/advance-history.d.ts +4 -2
- package/dist/history/advance-history.d.ts.map +1 -1
- package/dist/history/advance-history.js +47 -1
- package/dist/history/advance-history.js.map +1 -1
- package/dist/history/project-history.d.ts +14 -5
- package/dist/history/project-history.d.ts.map +1 -1
- package/dist/history/project-history.js +27 -20
- package/dist/history/project-history.js.map +1 -1
- package/dist/history/velocity-observation.js +1 -1
- package/dist/history/velocity-observation.js.map +1 -1
- package/dist/index.d.ts +31 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -15
- package/dist/index.js.map +1 -1
- package/dist/io/target-safe-write.d.ts +4 -1
- package/dist/io/target-safe-write.d.ts.map +1 -1
- package/dist/io/target-safe-write.js +19 -1
- package/dist/io/target-safe-write.js.map +1 -1
- package/dist/migration/grammar-boundary.d.ts +1 -1
- package/dist/migration/grammar-boundary.d.ts.map +1 -1
- package/dist/migration/grammar-boundary.js +7 -3
- package/dist/migration/grammar-boundary.js.map +1 -1
- package/dist/model/declaration-fields.d.ts +12 -0
- package/dist/model/declaration-fields.d.ts.map +1 -1
- package/dist/model/declaration-fields.js +45 -0
- package/dist/model/declaration-fields.js.map +1 -1
- package/dist/model/syntax.d.ts +17 -1
- package/dist/model/syntax.d.ts.map +1 -1
- package/dist/model/syntax.js.map +1 -1
- package/dist/mutation/actuals.js +1 -1
- package/dist/mutation/actuals.js.map +1 -1
- package/dist/mutation/advance.d.ts +18 -1
- package/dist/mutation/advance.d.ts.map +1 -1
- package/dist/mutation/advance.js +20 -0
- package/dist/mutation/advance.js.map +1 -1
- package/dist/mutation/project.d.ts +2 -1
- package/dist/mutation/project.d.ts.map +1 -1
- package/dist/mutation/project.js +21 -0
- package/dist/mutation/project.js.map +1 -1
- package/dist/parser/document-parser.d.ts +7 -0
- package/dist/parser/document-parser.d.ts.map +1 -1
- package/dist/parser/document-parser.js +227 -12
- package/dist/parser/document-parser.js.map +1 -1
- package/dist/recommendation/override-types.d.ts +2 -2
- package/dist/recommendation/override.d.ts +2 -2
- package/dist/recommendation/override.d.ts.map +1 -1
- package/dist/recommendation/override.js +13 -5
- package/dist/recommendation/override.js.map +1 -1
- package/dist/schema/registry.d.ts +1 -1
- package/dist/schema/registry.d.ts.map +1 -1
- package/dist/schema/registry.js +8 -7
- package/dist/schema/registry.js.map +1 -1
- package/dist/semantic/target-validator.d.ts +12 -1
- package/dist/semantic/target-validator.d.ts.map +1 -1
- package/dist/semantic/target-validator.js +47 -2
- package/dist/semantic/target-validator.js.map +1 -1
- package/dist/semantic/validator.d.ts +1 -0
- package/dist/semantic/validator.d.ts.map +1 -1
- package/dist/semantic/validator.js +304 -0
- package/dist/semantic/validator.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/schemas/{Perttool.AdvanceResult.v1.schema.json → Perttool.AdvanceResult.v2.schema.json} +85 -5
- package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
- package/schemas/{Perttool.AnalysisResult.v4.schema.json → Perttool.AnalysisResult.v5.schema.json} +10 -6
- package/schemas/{Perttool.CheckResult.v3.schema.json → Perttool.CheckResult.v4.schema.json} +14 -6
- package/schemas/Perttool.CliError.v1.schema.json +1 -1
- package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
- package/schemas/Perttool.Common.v1.schema.json +300 -4
- package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
- package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
- package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
- package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
- package/schemas/Perttool.InitResult.v1.schema.json +1 -1
- package/schemas/{Perttool.MutationResult.v3.schema.json → Perttool.MutationResult.v4.schema.json} +16 -5
- package/schemas/{Perttool.NextResult.v5.schema.json → Perttool.NextResult.v6.schema.json} +53 -8
- package/schemas/Perttool.OverrideDecision.v1.schema.json +1 -1
- package/schemas/Perttool.PlanAssuranceResult.v1.schema.json +77 -0
- package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
- package/schemas/{Perttool.ProjectResult.v3.schema.json → Perttool.ProjectResult.v4.schema.json} +15 -7
- package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
- package/schemas/Perttool.UnitMigrationResult.v3.schema.json +5 -3
- 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"}
|