perttool 0.7.0 → 0.8.0

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 (231) hide show
  1. package/CHANGELOG.md +55 -1
  2. package/README.md +113 -22
  3. package/dist/actuals/lifecycle.d.ts +6 -20
  4. package/dist/actuals/lifecycle.d.ts.map +1 -1
  5. package/dist/actuals/lifecycle.js +5 -176
  6. package/dist/actuals/lifecycle.js.map +1 -1
  7. package/dist/actuals/reduction.d.ts +20 -0
  8. package/dist/actuals/reduction.d.ts.map +1 -0
  9. package/dist/actuals/reduction.js +175 -0
  10. package/dist/actuals/reduction.js.map +1 -0
  11. package/dist/analysis/service.d.ts +33 -0
  12. package/dist/analysis/service.d.ts.map +1 -0
  13. package/dist/analysis/service.js +153 -0
  14. package/dist/analysis/service.js.map +1 -0
  15. package/dist/analysis/target-temporal-input.d.ts +88 -0
  16. package/dist/analysis/target-temporal-input.d.ts.map +1 -0
  17. package/dist/analysis/target-temporal-input.js +249 -0
  18. package/dist/analysis/target-temporal-input.js.map +1 -0
  19. package/dist/analysis/temporal-deadline.d.ts +1 -1
  20. package/dist/analysis/temporal-deadline.d.ts.map +1 -1
  21. package/dist/analysis/temporal-precedence.d.ts +1 -1
  22. package/dist/analysis/temporal-precedence.d.ts.map +1 -1
  23. package/dist/analysis/temporal-precedence.js +1 -1
  24. package/dist/analysis/temporal-precedence.js.map +1 -1
  25. package/dist/analysis/temporal-resource.d.ts +1 -1
  26. package/dist/analysis/temporal-resource.d.ts.map +1 -1
  27. package/dist/analysis/temporal-resource.js +1 -1
  28. package/dist/analysis/temporal-resource.js.map +1 -1
  29. package/dist/application/advance-history.d.ts +2 -1
  30. package/dist/application/advance-history.d.ts.map +1 -1
  31. package/dist/application/advance-history.js +1 -1
  32. package/dist/application/advance-history.js.map +1 -1
  33. package/dist/application/analyze.d.ts +1 -32
  34. package/dist/application/analyze.d.ts.map +1 -1
  35. package/dist/application/analyze.js +1 -152
  36. package/dist/application/analyze.js.map +1 -1
  37. package/dist/application/check.d.ts +1 -42
  38. package/dist/application/check.d.ts.map +1 -1
  39. package/dist/application/check.js +1 -109
  40. package/dist/application/check.js.map +1 -1
  41. package/dist/application/cli-facade.d.ts +85 -0
  42. package/dist/application/cli-facade.d.ts.map +1 -0
  43. package/dist/application/cli-facade.js +108 -0
  44. package/dist/application/cli-facade.js.map +1 -0
  45. package/dist/application/contract6-mutation.js +2 -2
  46. package/dist/application/contract6-mutation.js.map +1 -1
  47. package/dist/application/contract7-mermaid.d.ts.map +1 -1
  48. package/dist/application/contract7-mermaid.js +3 -3
  49. package/dist/application/contract7-mermaid.js.map +1 -1
  50. package/dist/application/contract7-source.d.ts +1 -7
  51. package/dist/application/contract7-source.d.ts.map +1 -1
  52. package/dist/application/contract7-source.js +4 -12
  53. package/dist/application/contract7-source.js.map +1 -1
  54. package/dist/application/editor-dag-focus.d.ts +52 -0
  55. package/dist/application/editor-dag-focus.d.ts.map +1 -0
  56. package/dist/application/editor-dag-focus.js +132 -0
  57. package/dist/application/editor-dag-focus.js.map +1 -0
  58. package/dist/application/format.js +2 -2
  59. package/dist/application/format.js.map +1 -1
  60. package/dist/application/mutate.d.ts +1 -26
  61. package/dist/application/mutate.d.ts.map +1 -1
  62. package/dist/application/mutate.js +1 -205
  63. package/dist/application/mutate.js.map +1 -1
  64. package/dist/application/next.js +2 -2
  65. package/dist/application/next.js.map +1 -1
  66. package/dist/application/target-actuals-advance.js +2 -2
  67. package/dist/application/target-actuals-advance.js.map +1 -1
  68. package/dist/application/target-actuals-analysis.js +2 -2
  69. package/dist/application/target-actuals-analysis.js.map +1 -1
  70. package/dist/application/target-actuals-mutation.d.ts.map +1 -1
  71. package/dist/application/target-actuals-mutation.js +6 -5
  72. package/dist/application/target-actuals-mutation.js.map +1 -1
  73. package/dist/application/target-assurance-analysis.js +2 -2
  74. package/dist/application/target-assurance-analysis.js.map +1 -1
  75. package/dist/application/target-assurance-write.d.ts +2 -1
  76. package/dist/application/target-assurance-write.d.ts.map +1 -1
  77. package/dist/application/target-assurance-write.js +36 -12
  78. package/dist/application/target-assurance-write.js.map +1 -1
  79. package/dist/application/target-governance-mutation.js +2 -2
  80. package/dist/application/target-governance-mutation.js.map +1 -1
  81. package/dist/application/target-historical-graph.d.ts +124 -0
  82. package/dist/application/target-historical-graph.d.ts.map +1 -0
  83. package/dist/application/target-historical-graph.js +547 -0
  84. package/dist/application/target-historical-graph.js.map +1 -0
  85. package/dist/application/target-mutate.d.ts +1 -17
  86. package/dist/application/target-mutate.d.ts.map +1 -1
  87. package/dist/application/target-mutate.js +1 -159
  88. package/dist/application/target-mutate.js.map +1 -1
  89. package/dist/application/target-project-history.d.ts +2 -1
  90. package/dist/application/target-project-history.d.ts.map +1 -1
  91. package/dist/application/target-project-history.js +4 -4
  92. package/dist/application/target-project-history.js.map +1 -1
  93. package/dist/application/target-temporal-analysis.js +2 -2
  94. package/dist/application/target-temporal-analysis.js.map +1 -1
  95. package/dist/application/target-temporal-input.d.ts +1 -87
  96. package/dist/application/target-temporal-input.d.ts.map +1 -1
  97. package/dist/application/target-temporal-input.js +1 -248
  98. package/dist/application/target-temporal-input.js.map +1 -1
  99. package/dist/application/target-unit-migration-candidate.js +4 -4
  100. package/dist/application/target-unit-migration-candidate.js.map +1 -1
  101. package/dist/assurance/advance.js +2 -2
  102. package/dist/assurance/advance.js.map +1 -1
  103. package/dist/assurance/canonical.js +2 -2
  104. package/dist/assurance/canonical.js.map +1 -1
  105. package/dist/assurance/compatibility.js +2 -2
  106. package/dist/assurance/compatibility.js.map +1 -1
  107. package/dist/assurance/mermaid.d.ts +4 -2
  108. package/dist/assurance/mermaid.d.ts.map +1 -1
  109. package/dist/assurance/mermaid.js +11 -7
  110. package/dist/assurance/mermaid.js.map +1 -1
  111. package/dist/assurance/mutation.d.ts.map +1 -1
  112. package/dist/assurance/mutation.js +9 -23
  113. package/dist/assurance/mutation.js.map +1 -1
  114. package/dist/cli.js +66 -26
  115. package/dist/cli.js.map +1 -1
  116. package/dist/command/assurance-discovery.d.ts.map +1 -1
  117. package/dist/command/assurance-discovery.js +73 -3
  118. package/dist/command/assurance-discovery.js.map +1 -1
  119. package/dist/command/assurance-usage.d.ts.map +1 -1
  120. package/dist/command/assurance-usage.js +11 -0
  121. package/dist/command/assurance-usage.js.map +1 -1
  122. package/dist/conversion/mermaid-import.js +3 -3
  123. package/dist/conversion/mermaid-import.js.map +1 -1
  124. package/dist/conversion/mermaid.d.ts +1 -1
  125. package/dist/conversion/mermaid.d.ts.map +1 -1
  126. package/dist/conversion/mermaid.js +4 -4
  127. package/dist/conversion/mermaid.js.map +1 -1
  128. package/dist/core/index.d.ts +33 -0
  129. package/dist/core/index.d.ts.map +1 -0
  130. package/dist/core/index.js +13 -0
  131. package/dist/core/index.js.map +1 -0
  132. package/dist/core/source.d.ts +8 -0
  133. package/dist/core/source.d.ts.map +1 -0
  134. package/dist/core/source.js +11 -0
  135. package/dist/core/source.js.map +1 -0
  136. package/dist/formatter/source-formatter.d.ts +1 -1
  137. package/dist/formatter/source-formatter.d.ts.map +1 -1
  138. package/dist/formatter/source-formatter.js +1 -1
  139. package/dist/formatter/source-formatter.js.map +1 -1
  140. package/dist/guidance/validator.js +2 -2
  141. package/dist/guidance/validator.js.map +1 -1
  142. package/dist/help/assurance-guide.d.ts.map +1 -1
  143. package/dist/help/assurance-guide.js +209 -19
  144. package/dist/help/assurance-guide.js.map +1 -1
  145. package/dist/history/git-probe.d.ts +71 -0
  146. package/dist/history/git-probe.d.ts.map +1 -1
  147. package/dist/history/git-probe.js +517 -0
  148. package/dist/history/git-probe.js.map +1 -1
  149. package/dist/history/historical-graph.d.ts +174 -0
  150. package/dist/history/historical-graph.d.ts.map +1 -0
  151. package/dist/history/historical-graph.js +870 -0
  152. package/dist/history/historical-graph.js.map +1 -0
  153. package/dist/history/historical-transition.d.ts +311 -0
  154. package/dist/history/historical-transition.d.ts.map +1 -0
  155. package/dist/history/historical-transition.js +998 -0
  156. package/dist/history/historical-transition.js.map +1 -0
  157. package/dist/history/project-history.d.ts.map +1 -1
  158. package/dist/history/project-history.js +4 -4
  159. package/dist/history/project-history.js.map +1 -1
  160. package/dist/history/velocity-observation.js +1 -1
  161. package/dist/history/velocity-observation.js.map +1 -1
  162. package/dist/index.d.ts +2 -0
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js +1 -0
  165. package/dist/index.js.map +1 -1
  166. package/dist/io/document-file.js +2 -2
  167. package/dist/io/document-file.js.map +1 -1
  168. package/dist/io/safe-write.js +1 -1
  169. package/dist/io/safe-write.js.map +1 -1
  170. package/dist/model/sha256.d.ts +5 -0
  171. package/dist/model/sha256.d.ts.map +1 -0
  172. package/dist/model/sha256.js +105 -0
  173. package/dist/model/sha256.js.map +1 -0
  174. package/dist/mutation/advance.js +3 -3
  175. package/dist/mutation/advance.js.map +1 -1
  176. package/dist/mutation/diagnostics.d.ts +2 -2
  177. package/dist/mutation/diagnostics.d.ts.map +1 -1
  178. package/dist/mutation/diagnostics.js.map +1 -1
  179. package/dist/mutation/planner.d.ts +27 -0
  180. package/dist/mutation/planner.d.ts.map +1 -0
  181. package/dist/mutation/planner.js +206 -0
  182. package/dist/mutation/planner.js.map +1 -0
  183. package/dist/mutation/source.d.ts +2 -1
  184. package/dist/mutation/source.d.ts.map +1 -1
  185. package/dist/mutation/source.js +14 -0
  186. package/dist/mutation/source.js.map +1 -1
  187. package/dist/mutation/target-planner.d.ts +18 -0
  188. package/dist/mutation/target-planner.d.ts.map +1 -0
  189. package/dist/mutation/target-planner.js +160 -0
  190. package/dist/mutation/target-planner.js.map +1 -0
  191. package/dist/mutation/task.d.ts.map +1 -1
  192. package/dist/mutation/task.js +19 -11
  193. package/dist/mutation/task.js.map +1 -1
  194. package/dist/mutation/types.d.ts +1 -1
  195. package/dist/mutation/types.d.ts.map +1 -1
  196. package/dist/node/historical-host.d.ts +6 -0
  197. package/dist/node/historical-host.d.ts.map +1 -0
  198. package/dist/node/historical-host.js +8 -0
  199. package/dist/node/historical-host.js.map +1 -0
  200. package/dist/node/host.d.ts +3 -0
  201. package/dist/node/host.d.ts.map +1 -0
  202. package/dist/node/host.js +48 -0
  203. package/dist/node/host.js.map +1 -0
  204. package/dist/node/index.d.ts +2 -0
  205. package/dist/node/index.d.ts.map +1 -0
  206. package/dist/node/index.js +2 -0
  207. package/dist/node/index.js.map +1 -0
  208. package/dist/perttool-vscode-private-0.0.0-d1578b9.vsix +0 -0
  209. package/dist/ports/node-host.d.ts +41 -0
  210. package/dist/ports/node-host.d.ts.map +1 -0
  211. package/dist/ports/node-host.js +2 -0
  212. package/dist/ports/node-host.js.map +1 -0
  213. package/dist/recommendation/override.d.ts +40 -2
  214. package/dist/recommendation/override.d.ts.map +1 -1
  215. package/dist/recommendation/override.js +5 -6
  216. package/dist/recommendation/override.js.map +1 -1
  217. package/dist/schema/registry.d.ts.map +1 -1
  218. package/dist/schema/registry.js +1 -0
  219. package/dist/schema/registry.js.map +1 -1
  220. package/dist/semantic/check.d.ts +43 -0
  221. package/dist/semantic/check.d.ts.map +1 -0
  222. package/dist/semantic/check.js +110 -0
  223. package/dist/semantic/check.js.map +1 -0
  224. package/dist/session/document-session.d.ts +109 -0
  225. package/dist/session/document-session.d.ts.map +1 -0
  226. package/dist/session/document-session.js +432 -0
  227. package/dist/session/document-session.js.map +1 -0
  228. package/dist/version.d.ts +1 -1
  229. package/dist/version.js +1 -1
  230. package/package.json +18 -4
  231. package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +654 -0
package/dist/cli.js CHANGED
@@ -1,24 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { lstat, readFile } from "node:fs/promises";
2
+ import { lstat } from "node:fs/promises";
3
3
  import process from "node:process";
4
4
  import { TextDecoder } from "node:util";
5
- import { analyzeDocument, checkDocument, selectNextTasks, } from "./application/contract7-assurance.js";
6
- import { planFormat, } from "./application/contract7-source.js";
7
- import { planProjectInit, projectInitResultToJson, renderProjectInitResult, withProjectInitOutput, } from "./application/init.js";
8
- import { planUnitMigration, withUnitMigrationWrite, } from "./application/contract7-unit-migration.js";
9
- import { getProjectMetadata, } from "./application/contract7-project.js";
10
- import { planAdvance, planBatchMutation, planFinishActuals, planLifecycle, planMutation, planAssuranceMutation, } from "./application/contract7-mutation.js";
11
- import { renderTargetGovernanceDecision, } from "./application/target-governance-projection.js";
12
- import { contract7InspectionResultToJson, contract7MutationResultToJson, contract7SnakeJson, } from "./application/contract7-projection.js";
13
- import { contract7ProjectResultToJson, renderContract7ProjectText, } from "./application/contract7-project.js";
14
- import { contract6WorkEventToJson, } from "./application/contract6-projection.js";
15
- import { renderAdvanceHistoryGuard, } from "./application/advance-history.js";
16
- import { prepareTargetPlanAssuranceAdvanceHistory, withTargetPlanAssuranceAdvanceHistoryRace, } from "./application/target-assurance-advance-history.js";
17
- import { persistTargetPlanAssuranceResult, } from "./application/target-assurance-write.js";
18
- import { inspectTargetPlanAssurance, } from "./application/target-assurance-inspection.js";
19
- import { inspectTargetProjectHistoryFile, renderTargetProjectHistoryText, targetProjectHistoryResultToJson, } from "./application/target-project-history.js";
20
- import { observeTargetProjectVelocity, renderTargetVelocityObservationText, targetVelocityObservationResultToJson, } from "./application/target-velocity-observation.js";
21
- import { getAgentHelp } from "./application/agent-help.js";
5
+ import { createCliApplicationFacade, } from "./application/cli-facade.js";
6
+ import { createNodeHost } from "./node/host.js";
7
+ import { createHistoricalGraphGitEvidenceHost } from "./node/historical-host.js";
22
8
  import { exportMermaid, } from "./conversion/mermaid.js";
23
9
  import { importMermaid } from "./conversion/mermaid-import.js";
24
10
  import { getAssuranceGuide, renderAssuranceGuideResult, serializeAssuranceGuideResult, } from "./help/assurance-guide.js";
@@ -28,18 +14,16 @@ import { handlerCommandUsageError, } from "./command/usage.js";
28
14
  import { renderAssuranceCommandUsageError, serializeAssuranceCommandUsageError, validateAssuranceCommandInvocation, } from "./command/assurance-usage.js";
29
15
  import { agentGuidanceResultToJson } from "./guidance/projection.js";
30
16
  import { agentGuidanceExitCode, renderAgentGuidanceText, } from "./guidance/text.js";
31
- import { documentContentFromBytes, readDocumentFile, } from "./io/document-file.js";
32
- import { recheckAdvanceHistoryBaseline, } from "./history/git-probe.js";
33
- import { createArtifactFile, SafeWriteConflictError, SafeWriteVerificationError, } from "./io/safe-write.js";
17
+ import { SafeWriteConflictError, SafeWriteVerificationError, } from "./io/safe-write.js";
34
18
  import { formatDecimal } from "./model/rational.js";
35
19
  import { convertWithVelocity, durationSuffix } from "./model/units.js";
36
20
  import { recommendationInvariantExitCode } from "./recommendation/failure.js";
37
21
  import { recommendationAnalysisToJson } from "./recommendation/json.js";
38
22
  import { TARGET_GRAMMAR_6_CAPABILITY, } from "./parser/document-parser.js";
39
- import { createTargetGrammar6DocumentFile, replaceTargetGrammar6DocumentFile, } from "./io/target-safe-write.js";
40
23
  import { exportPlanAssuranceMermaid, importPlanAssuranceMermaid, } from "./assurance/mermaid.js";
41
24
  import { getJsonSchemaResult, renderJsonSchemaResult, serializeJsonSchemaResult, } from "./schema/registry.js";
42
25
  import { TOOL_VERSION } from "./version.js";
26
+ const { analyzeDocument, checkDocument, selectNextTasks, planFormat, planProjectInit, projectInitResultToJson, renderProjectInitResult, withProjectInitOutput, planUnitMigration, withUnitMigrationWrite, getProjectMetadata, contract7ProjectResultToJson, renderContract7ProjectText, planAdvance, planBatchMutation, planFinishActuals, planLifecycle, planMutation, planAssuranceMutation, renderTargetGovernanceDecision, contract7InspectionResultToJson, contract7MutationResultToJson, contract7SnakeJson, contract6WorkEventToJson, renderAdvanceHistoryGuard, prepareTargetPlanAssuranceAdvanceHistory, withTargetPlanAssuranceAdvanceHistoryRace, persistTargetPlanAssuranceResult, inspectTargetPlanAssurance, inspectTargetProjectHistoryFile, renderTargetProjectHistoryText, targetProjectHistoryResultToJson, observeTargetProjectVelocity, renderTargetVelocityObservationText, targetVelocityObservationResultToJson, getAgentHelp, documentContentFromBytes, readDocumentContent, readBytes, recheckAdvanceHistoryBaseline, createArtifactFile, createTargetGrammar6DocumentFile, replaceTargetGrammar6DocumentFile, inspectTargetHistoricalGraphFile, renderTargetHistoricalGraphText, targetHistoricalGraphResultToJson, } = createCliApplicationFacade(createNodeHost(), createHistoricalGraphGitEvidenceHost());
43
27
  class UsageError extends Error {
44
28
  code = "PTCLI-001";
45
29
  }
@@ -183,7 +167,7 @@ function renderDiagnostic(diagnostic, source, mode) {
183
167
  async function readDocument(source) {
184
168
  const content = source === "-"
185
169
  ? documentContentFromBytes(await readStdin())
186
- : await readDocumentFile(source);
170
+ : await readDocumentContent(source);
187
171
  let modifiedAt = null;
188
172
  if (source !== "-") {
189
173
  try {
@@ -1097,7 +1081,7 @@ function previewResultJson(result, exposeCandidate, writeRequest = { mode: "prev
1097
1081
  };
1098
1082
  }
1099
1083
  async function readMutationRequest(source) {
1100
- const bytes = source === "-" ? await readStdin() : await readFile(source);
1084
+ const bytes = source === "-" ? await readStdin() : await readBytes(source);
1101
1085
  const text = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
1102
1086
  try {
1103
1087
  return JSON.parse(text);
@@ -1517,6 +1501,60 @@ async function runProjectHistory(args) {
1517
1501
  }
1518
1502
  return ok ? 0 : 1;
1519
1503
  }
1504
+ async function runHistoricalGraph(args) {
1505
+ const parsed = parseCommandOptions("dag.history", args);
1506
+ if (parsed.positionals.length !== 1) {
1507
+ throw new UsageError("dag history requires exactly one <file>");
1508
+ }
1509
+ const source = parsed.positionals[0];
1510
+ if (source === "-") {
1511
+ throw new UsageError("dag history requires an on-disk file");
1512
+ }
1513
+ const format = outputFormat(parsed.values.get("format"));
1514
+ const color = colorMode(parsed.values.get("color"), format);
1515
+ const maxDiagnostics = boundedInteger(parsed.values.get("max-diagnostics"), "max-diagnostics", 100, 1, 1000);
1516
+ const ancestry = enumOption(parsed.values.get("history"), "history", new Set(["first-parent", "three-way"])) ?? "first-parent";
1517
+ const view = enumOption(parsed.values.get("view"), "view", new Set(["snapshot", "lineage", "timeline"])) ?? "lineage";
1518
+ const analysis = enumOption(parsed.values.get("analysis"), "analysis", new Set(["none", "precedence", "resource", "both"])) ?? "none";
1519
+ const ancestryProfile = ancestry === "first-parent" ? "first_parent" : "three_way";
1520
+ let result;
1521
+ try {
1522
+ result = await inspectTargetHistoricalGraphFile({
1523
+ targetPath: source,
1524
+ requestedEndpoint: parsed.values.get("rev") ?? "HEAD",
1525
+ ...(parsed.values.get("base") === undefined
1526
+ ? {}
1527
+ : { lowerBoundary: parsed.values.get("base") }),
1528
+ ancestryProfile,
1529
+ view,
1530
+ ...(parsed.values.get("snapshot") === undefined
1531
+ ? {}
1532
+ : { snapshotCommitId: parsed.values.get("snapshot") }),
1533
+ analysisMode: analysis,
1534
+ maxDiagnostics,
1535
+ });
1536
+ }
1537
+ catch (error) {
1538
+ return cliError(error instanceof Error ? error : new Error(String(error)), 3, "dag.history", format === "json");
1539
+ }
1540
+ const warningFailure = parsed.flags.has("warnings-as-errors") &&
1541
+ (result.diagnosticsTruncated || result.diagnostics.some(({ severity }) => severity === "warning"));
1542
+ const ok = result.ok && !warningFailure;
1543
+ if (format === "json") {
1544
+ writeJson(targetHistoricalGraphResultToJson(ok ? result : Object.freeze({ ...result, ok: false })));
1545
+ }
1546
+ else {
1547
+ if (ok)
1548
+ process.stdout.write(renderTargetHistoricalGraphText(result));
1549
+ for (const diagnostic of result.diagnostics) {
1550
+ process.stderr.write(`${renderDiagnostic(diagnostic, source, color)}\n`);
1551
+ }
1552
+ if (result.diagnosticsTruncated) {
1553
+ process.stderr.write(`DIAGNOSTICS_TRUNCATED true limit=${maxDiagnostics}\n`);
1554
+ }
1555
+ }
1556
+ return ok ? 0 : 1;
1557
+ }
1520
1558
  async function runProjectVelocityObservation(args) {
1521
1559
  const parsed = parseCommandOptions("project.observe-velocity", args);
1522
1560
  const format = outputFormat(parsed.values.get("format"));
@@ -2112,7 +2150,7 @@ async function runRender(args) {
2112
2150
  analysis,
2113
2151
  capacityOverrides: overrides,
2114
2152
  maxDiagnostics,
2115
- })
2153
+ }, analyzeDocument)
2116
2154
  : null;
2117
2155
  const legacyExport = grammar6
2118
2156
  ? null
@@ -2229,7 +2267,7 @@ async function runImport(args) {
2229
2267
  }
2230
2268
  const profile2 = input.text.startsWith("flowchart LR\n %% perttool:profile {\"schema_version\":\"Perttool.MermaidProfile.v2\"");
2231
2269
  const assuranceImport = profile2
2232
- ? importPlanAssuranceMermaid(input.text, TARGET_GRAMMAR_6_CAPABILITY)
2270
+ ? importPlanAssuranceMermaid(input.text, TARGET_GRAMMAR_6_CAPABILITY, analyzeDocument)
2233
2271
  : null;
2234
2272
  const legacyImport = profile2
2235
2273
  ? null
@@ -3003,6 +3041,8 @@ async function dispatchCommand(descriptor, args) {
3003
3041
  return runAdvance(args);
3004
3042
  case "dag.render":
3005
3043
  return runRender(args);
3044
+ case "dag.history":
3045
+ return runHistoricalGraph(args);
3006
3046
  case "dag.import":
3007
3047
  return runImport(args);
3008
3048
  case "task.start":