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
@@ -45,30 +45,42 @@ const grammar1ValidationProfile = {
45
45
  unsupportedVersionMessage: "Only grammar version 1 is supported",
46
46
  temporalAnchorGrammarVersions: new Set(),
47
47
  workEvents: false,
48
+ assuranceRecords: false,
48
49
  };
49
50
  const targetValidationProfile = {
50
51
  supportedGrammarVersions: new Set([1, 2]),
51
52
  unsupportedVersionMessage: "Only grammar versions 1 and 2 are supported",
52
53
  temporalAnchorGrammarVersions: new Set([2]),
53
54
  workEvents: false,
55
+ assuranceRecords: false,
54
56
  };
55
57
  const targetGrammar3ValidationProfile = {
56
58
  supportedGrammarVersions: new Set([1, 2, 3]),
57
59
  unsupportedVersionMessage: "Only grammar versions 1, 2, and 3 are supported",
58
60
  temporalAnchorGrammarVersions: new Set([2, 3]),
59
61
  workEvents: false,
62
+ assuranceRecords: false,
60
63
  };
61
64
  const targetGrammar4ValidationProfile = {
62
65
  supportedGrammarVersions: new Set([1, 2, 3, 4]),
63
66
  unsupportedVersionMessage: "Only grammar versions 1, 2, 3, and 4 are supported",
64
67
  temporalAnchorGrammarVersions: new Set([2, 3, 4]),
65
68
  workEvents: false,
69
+ assuranceRecords: false,
66
70
  };
67
71
  const targetGrammar5ValidationProfile = {
68
72
  supportedGrammarVersions: new Set([1, 2, 3, 4, 5]),
69
73
  unsupportedVersionMessage: "Only grammar versions 1, 2, 3, 4, and 5 are supported",
70
74
  temporalAnchorGrammarVersions: new Set([2, 3, 4, 5]),
71
75
  workEvents: true,
76
+ assuranceRecords: false,
77
+ };
78
+ const targetGrammar6ValidationProfile = {
79
+ supportedGrammarVersions: new Set([1, 2, 3, 4, 5, 6]),
80
+ unsupportedVersionMessage: "Only grammar versions 1, 2, 3, 4, 5, and 6 are supported",
81
+ temporalAnchorGrammarVersions: new Set([2, 3, 4, 5, 6]),
82
+ workEvents: true,
83
+ assuranceRecords: true,
72
84
  };
73
85
  function makeDiagnostic(code, severity, message, diagnosticSpan, helpTopic, entityId, related, data) {
74
86
  return {
@@ -469,9 +481,295 @@ function validateWorkEvents(document, diagnostics) {
469
481
  }
470
482
  }
471
483
  }
484
+ function assuranceDiagnostic(code, message, declaration, diagnosticSpan = declaration.idSpan, data) {
485
+ return makeDiagnostic(code, "error", message, diagnosticSpan, "syntax.plan-assurance", declaration.id, undefined, data);
486
+ }
487
+ function requiredAssuranceField(declaration, name, diagnostics) {
488
+ const field = fieldNamed(declaration, name);
489
+ if (field === undefined) {
490
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `${declaration.kind} ${declaration.id} is missing required field ${name}`, declaration));
491
+ }
492
+ return field;
493
+ }
494
+ function taskPairKey(predecessorTaskId, successorTaskId) {
495
+ return `${predecessorTaskId}\u0000${successorTaskId}`;
496
+ }
497
+ function validatePlanAssuranceSource(document, diagnostics) {
498
+ const project = document.declarations.find((declaration) => declaration.kind === "project");
499
+ if (project === undefined)
500
+ return;
501
+ const model = fieldNamed(project, "plan_assurance_model");
502
+ const hashModel = fieldNamed(project, "plan_assurance_hash_model");
503
+ if ((model === undefined) !== (hashModel === undefined)) {
504
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "project assurance model and hash model must be declared together", project, (model ?? hashModel).valueSpan));
505
+ }
506
+ for (const field of [model, hashModel]) {
507
+ if (field !== undefined &&
508
+ (typeof field.value !== "number" || field.value <= 0)) {
509
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `${field.name} must be a positive integer`, project, field.valueSpan));
510
+ }
511
+ }
512
+ const assuranceDeclarations = document.declarations.filter((declaration) => declaration.kind === "task_relation" ||
513
+ declaration.kind === "plan_seal" ||
514
+ declaration.kind === "task_outcome" ||
515
+ declaration.kind === "assurance_receipt");
516
+ if (assuranceDeclarations.length > 0 &&
517
+ (model === undefined || hashModel === undefined)) {
518
+ for (const declaration of assuranceDeclarations) {
519
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `${declaration.kind} requires both project assurance model fields`, declaration));
520
+ }
521
+ return;
522
+ }
523
+ const tasks = document.declarations.filter((declaration) => declaration.kind === "task");
524
+ const tasksById = new Map(tasks.map((task) => [task.id, task]));
525
+ const gates = document.declarations.filter((declaration) => declaration.kind === "gate");
526
+ const gateTargets = new Map();
527
+ for (const gate of gates) {
528
+ const targets = gateTargets.get(gate.from) ?? [];
529
+ targets.push(gate.to);
530
+ gateTargets.set(gate.from, targets);
531
+ }
532
+ for (const targets of gateTargets.values())
533
+ targets.sort(compareStableStrings);
534
+ const gateOnlyReachable = (source, target) => {
535
+ if (source === target)
536
+ return true;
537
+ const pending = [source];
538
+ const seen = new Set(pending);
539
+ while (pending.length > 0) {
540
+ const current = pending.shift();
541
+ for (const next of gateTargets.get(current) ?? []) {
542
+ if (next === target)
543
+ return true;
544
+ if (!seen.has(next)) {
545
+ seen.add(next);
546
+ pending.push(next);
547
+ }
548
+ }
549
+ }
550
+ return false;
551
+ };
552
+ const executionPairs = new Set();
553
+ for (const predecessor of tasks) {
554
+ for (const successor of tasks) {
555
+ if (predecessor !== successor &&
556
+ gateOnlyReachable(predecessor.to, successor.from)) {
557
+ executionPairs.add(taskPairKey(predecessor.id, successor.id));
558
+ }
559
+ }
560
+ }
561
+ const explicitByPair = new Map();
562
+ for (const relation of document.declarations.filter((declaration) => declaration.kind === "task_relation")) {
563
+ const modeField = requiredAssuranceField(relation, "mode", diagnostics);
564
+ const mode = modeField?.value;
565
+ const reason = fieldNamed(relation, "reason");
566
+ const predecessor = tasksById.get(relation.from);
567
+ const successor = tasksById.get(relation.to);
568
+ const key = taskPairKey(relation.from, relation.to);
569
+ if (predecessor === undefined ||
570
+ successor === undefined ||
571
+ predecessor === successor) {
572
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `task_relation ${relation.id} endpoints must be distinct current tasks`, relation, relation.arrowSpan));
573
+ }
574
+ const first = explicitByPair.get(key);
575
+ if (first !== undefined) {
576
+ diagnostics.push(makeDiagnostic("PTASSURE-101", "error", `Planning dependency ${relation.from} -> ${relation.to} is duplicated`, relation.arrowSpan, "syntax.plan-assurance", relation.id, [{ message: "First relation", span: first.arrowSpan }]));
577
+ }
578
+ else {
579
+ explicitByPair.set(key, relation);
580
+ }
581
+ const directExecution = executionPairs.has(key);
582
+ if ((mode === "both" || mode === "execution_only") &&
583
+ !directExecution) {
584
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `${String(mode)} relation requires a direct projected execution dependency`, relation, modeField?.valueSpan));
585
+ }
586
+ if (mode === "planning_only" && directExecution) {
587
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "planning_only relation must not duplicate a direct projected execution dependency", relation, modeField?.valueSpan));
588
+ }
589
+ if ((mode === "execution_only" || mode === "planning_only") &&
590
+ (reason === undefined ||
591
+ typeof reason.value !== "string" ||
592
+ reason.value.length === 0)) {
593
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `${String(mode)} relation requires a nonempty reason`, relation, reason?.valueSpan));
594
+ }
595
+ if (mode === "both" &&
596
+ reason !== undefined &&
597
+ (typeof reason.value !== "string" || reason.value.length === 0)) {
598
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "both relation reason must be nonempty when present", relation, reason.valueSpan));
599
+ }
600
+ }
601
+ const sealsByTask = new Map();
602
+ for (const seal of document.declarations.filter((declaration) => declaration.kind === "plan_seal")) {
603
+ const task = tasksById.get(seal.id);
604
+ if (task === undefined) {
605
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `plan_seal ${seal.id} must refer to a current task`, seal));
606
+ }
607
+ const first = sealsByTask.get(seal.id);
608
+ if (first !== undefined) {
609
+ diagnostics.push(makeDiagnostic("PTASSURE-101", "error", `Task ${seal.id} has more than one plan seal`, seal.idSpan, "syntax.plan-assurance", seal.id, [{ message: "First seal", span: first.idSpan }]));
610
+ }
611
+ else {
612
+ sealsByTask.set(seal.id, seal);
613
+ }
614
+ requiredAssuranceField(seal, "accepted_contract", diagnostics);
615
+ requiredAssuranceField(seal, "accepted_basis", diagnostics);
616
+ const reason = requiredAssuranceField(seal, "reason", diagnostics);
617
+ if (reason !== undefined &&
618
+ (typeof reason.value !== "string" || reason.value.length === 0)) {
619
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `plan_seal ${seal.id} requires a nonempty reason`, seal, reason.valueSpan));
620
+ }
621
+ const acceptedInputs = fieldNamed(seal, "accepted_inputs");
622
+ if (acceptedInputs === undefined)
623
+ continue;
624
+ const values = acceptedInputs.value;
625
+ if (values.length === 0) {
626
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "accepted_inputs must be omitted when the accepted input set is empty", seal, acceptedInputs.valueSpan));
627
+ }
628
+ for (let index = 1; index < values.length; index += 1) {
629
+ if (compareStableStrings(values[index - 1].predecessorTaskId, values[index].predecessorTaskId) >= 0) {
630
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "accepted_inputs must have unique predecessor IDs in ascending order", seal, values[index].predecessorSpan));
631
+ }
632
+ }
633
+ }
634
+ const outcomesByTask = new Map();
635
+ for (const outcome of document.declarations.filter((declaration) => declaration.kind === "task_outcome")) {
636
+ const modelField = requiredAssuranceField(outcome, "model", diagnostics);
637
+ const taskField = requiredAssuranceField(outcome, "task", diagnostics);
638
+ requiredAssuranceField(outcome, "against_basis", diagnostics);
639
+ const statusField = requiredAssuranceField(outcome, "status", diagnostics);
640
+ const reason = requiredAssuranceField(outcome, "reason", diagnostics);
641
+ if (modelField !== undefined &&
642
+ (typeof modelField.value !== "number" || modelField.value <= 0)) {
643
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "task outcome model must be a positive integer", outcome, modelField.valueSpan));
644
+ }
645
+ const taskId = typeof taskField?.value === "string" ? taskField.value : "";
646
+ if (!tasksById.has(taskId)) {
647
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `task_outcome ${outcome.id} must refer to a current task`, outcome, taskField?.valueSpan));
648
+ }
649
+ else {
650
+ const task = tasksById.get(taskId);
651
+ if ((fieldNamed(task, "status")?.value ?? "planned") !== "done") {
652
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `task_outcome ${outcome.id} requires a completed task`, outcome, taskField?.valueSpan));
653
+ }
654
+ const first = outcomesByTask.get(taskId);
655
+ if (first !== undefined) {
656
+ diagnostics.push(makeDiagnostic("PTASSURE-101", "error", `Task ${taskId} has more than one outcome record`, taskField.valueSpan, "syntax.plan-assurance", outcome.id, [{ message: "First outcome", span: first.idSpan }]));
657
+ }
658
+ else {
659
+ outcomesByTask.set(taskId, outcome);
660
+ }
661
+ }
662
+ if (reason !== undefined &&
663
+ (typeof reason.value !== "string" || reason.value.length === 0)) {
664
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `task_outcome ${outcome.id} requires a nonempty reason`, outcome, reason.valueSpan));
665
+ }
666
+ const summary = fieldNamed(outcome, "summary");
667
+ if (statusField?.value === "changed" &&
668
+ (summary === undefined ||
669
+ typeof summary.value !== "string" ||
670
+ summary.value.length === 0)) {
671
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `changed task_outcome ${outcome.id} requires a nonempty summary`, outcome, summary?.valueSpan));
672
+ }
673
+ if (statusField?.value === "conformant" && summary !== undefined) {
674
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `conformant task_outcome ${outcome.id} forbids summary`, outcome, summary.valueSpan));
675
+ }
676
+ }
677
+ const frontierPairs = new Map();
678
+ for (const receipt of document.declarations.filter((declaration) => declaration.kind === "assurance_receipt")) {
679
+ const modelField = requiredAssuranceField(receipt, "model", diagnostics);
680
+ requiredAssuranceField(receipt, "receipt_hash", diagnostics);
681
+ const producerField = requiredAssuranceField(receipt, "producer", diagnostics);
682
+ requiredAssuranceField(receipt, "producer_contract_hash", diagnostics);
683
+ requiredAssuranceField(receipt, "producer_assurance_hash", diagnostics);
684
+ requiredAssuranceField(receipt, "outcome", diagnostics);
685
+ const consumersField = requiredAssuranceField(receipt, "consumers", diagnostics);
686
+ if (modelField !== undefined &&
687
+ (typeof modelField.value !== "number" || modelField.value <= 0)) {
688
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "assurance receipt model must be a positive integer", receipt, modelField.valueSpan));
689
+ }
690
+ const producer = typeof producerField?.value === "string"
691
+ ? producerField.value
692
+ : "";
693
+ if (tasksById.has(producer)) {
694
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `Assurance receipt producer ${producer} must be historical, not a current task`, receipt, producerField?.valueSpan));
695
+ }
696
+ if (consumersField === undefined)
697
+ continue;
698
+ const consumers = consumersField.value;
699
+ if (consumers.length === 0) {
700
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "assurance receipt consumers must not be empty", receipt, consumersField.valueSpan));
701
+ }
702
+ for (let index = 0; index < consumers.length; index += 1) {
703
+ const consumer = consumers[index];
704
+ if (!tasksById.has(consumer.consumerTaskId)) {
705
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", `Assurance consumer ${consumer.consumerTaskId} is not a current task`, receipt, consumer.consumerSpan));
706
+ }
707
+ const pair = taskPairKey(producer, consumer.consumerTaskId);
708
+ const first = frontierPairs.get(pair);
709
+ if (first !== undefined) {
710
+ diagnostics.push(makeDiagnostic("PTASSURE-101", "error", `Frontier planning input ${producer} -> ${consumer.consumerTaskId} is duplicated`, consumer.consumerSpan, "syntax.plan-assurance", receipt.id, [{ message: "First receipt", span: first.idSpan }]));
711
+ }
712
+ else {
713
+ frontierPairs.set(pair, receipt);
714
+ }
715
+ if (index > 0 &&
716
+ compareStableStrings(consumers[index - 1].consumerTaskId, consumer.consumerTaskId) >= 0) {
717
+ diagnostics.push(assuranceDiagnostic("PTASSURE-101", "assurance receipt consumers must have unique task IDs in ascending order", receipt, consumer.consumerSpan));
718
+ }
719
+ }
720
+ }
721
+ if (hasErrors(diagnostics))
722
+ return;
723
+ const successors = new Map(tasks.map((task) => [task.id, []]));
724
+ for (const key of executionPairs) {
725
+ const [predecessorTaskId, successorTaskId] = key.split("\u0000");
726
+ const explicit = explicitByPair.get(key);
727
+ if (explicit !== undefined &&
728
+ fieldNamed(explicit, "mode")?.value === "execution_only")
729
+ continue;
730
+ successors.get(predecessorTaskId).push(successorTaskId);
731
+ }
732
+ for (const [key, relation] of explicitByPair) {
733
+ if (fieldNamed(relation, "mode")?.value !== "planning_only")
734
+ continue;
735
+ const [predecessorTaskId, successorTaskId] = key.split("\u0000");
736
+ successors.get(predecessorTaskId).push(successorTaskId);
737
+ }
738
+ for (const values of successors.values())
739
+ values.sort(compareStableStrings);
740
+ const state = new Map();
741
+ const stack = [];
742
+ let witness = null;
743
+ const visit = (taskId) => {
744
+ if (witness !== null)
745
+ return;
746
+ state.set(taskId, "visiting");
747
+ stack.push(taskId);
748
+ for (const successor of successors.get(taskId) ?? []) {
749
+ if (state.get(successor) === "visiting") {
750
+ witness = [...stack.slice(stack.indexOf(successor)), successor];
751
+ return;
752
+ }
753
+ if (state.get(successor) === undefined)
754
+ visit(successor);
755
+ }
756
+ stack.pop();
757
+ state.set(taskId, "visited");
758
+ };
759
+ for (const taskId of [...tasksById.keys()].sort(compareStableStrings)) {
760
+ if (state.get(taskId) === undefined)
761
+ visit(taskId);
762
+ }
763
+ const cycleWitness = witness;
764
+ if (cycleWitness !== null) {
765
+ diagnostics.push(assuranceDiagnostic("PTASSURE-102", `Effective planning dependency cycle: ${cycleWitness.join(" -> ")}`, project, project.idSpan, { cycle_task_ids: cycleWitness }));
766
+ }
767
+ }
472
768
  function validateGraph(document, diagnostics, profile) {
473
769
  const firstById = new Map();
474
770
  for (const declaration of document.declarations) {
771
+ if (declaration.kind === "plan_seal")
772
+ continue;
475
773
  if (reservedWords.has(declaration.id)) {
476
774
  diagnostics.push(makeDiagnostic("PTSEM-202", "error", `Reserved word ${declaration.id} cannot be used as an entity ID`, declaration.idSpan, "syntax", declaration.id));
477
775
  }
@@ -692,6 +990,9 @@ function validateDocumentWithProfile(document, parseDiagnostics, profile) {
692
990
  }
693
991
  if (!hasErrors(diagnostics))
694
992
  validateGraph(document, diagnostics, profile);
993
+ if (!hasErrors(diagnostics) && profile.assuranceRecords) {
994
+ validatePlanAssuranceSource(document, diagnostics);
995
+ }
695
996
  return sortDiagnostics(diagnostics);
696
997
  }
697
998
  export function validateTargetDocumentSemantics(document, parseDiagnostics = []) {
@@ -706,4 +1007,7 @@ export function validateTargetGrammar4DocumentSemantics(document, parseDiagnosti
706
1007
  export function validateTargetGrammar5DocumentSemantics(document, parseDiagnostics = []) {
707
1008
  return validateDocumentWithProfile(document, parseDiagnostics, targetGrammar5ValidationProfile);
708
1009
  }
1010
+ export function validateTargetGrammar6DocumentSemantics(document, parseDiagnostics = []) {
1011
+ return validateDocumentWithProfile(document, parseDiagnostics, targetGrammar6ValidationProfile);
1012
+ }
709
1013
  //# sourceMappingURL=validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/semantic/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/semantic/validator.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const TOOL_VERSION = "0.6.0";
1
+ export declare const TOOL_VERSION = "0.7.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const TOOL_VERSION = "0.6.0";
1
+ export const TOOL_VERSION = "0.7.1";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "perttool",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Document-based PERT/CPM and resource scheduling CLI",
5
5
  "keywords": [
6
6
  "pert",