perttool 0.5.5 → 0.7.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 (265) hide show
  1. package/CHANGELOG.md +71 -1
  2. package/README.md +128 -30
  3. package/dist/application/advance-history.d.ts +48 -0
  4. package/dist/application/advance-history.d.ts.map +1 -0
  5. package/dist/application/advance-history.js +263 -0
  6. package/dist/application/advance-history.js.map +1 -0
  7. package/dist/application/contract6-mutation.d.ts +3 -2
  8. package/dist/application/contract6-mutation.d.ts.map +1 -1
  9. package/dist/application/contract6-mutation.js +2 -1
  10. package/dist/application/contract6-mutation.js.map +1 -1
  11. package/dist/application/contract6-projection.d.ts +2 -1
  12. package/dist/application/contract6-projection.d.ts.map +1 -1
  13. package/dist/application/contract6-projection.js +31 -1
  14. package/dist/application/contract6-projection.js.map +1 -1
  15. package/dist/application/contract7-assurance.d.ts +57 -0
  16. package/dist/application/contract7-assurance.d.ts.map +1 -0
  17. package/dist/application/contract7-assurance.js +248 -0
  18. package/dist/application/contract7-assurance.js.map +1 -0
  19. package/dist/application/contract7-mermaid.d.ts +9 -0
  20. package/dist/application/contract7-mermaid.d.ts.map +1 -0
  21. package/dist/application/contract7-mermaid.js +73 -0
  22. package/dist/application/contract7-mermaid.js.map +1 -0
  23. package/dist/application/contract7-mutation.d.ts +21 -0
  24. package/dist/application/contract7-mutation.d.ts.map +1 -0
  25. package/dist/application/contract7-mutation.js +181 -0
  26. package/dist/application/contract7-mutation.js.map +1 -0
  27. package/dist/application/contract7-project.d.ts +10 -0
  28. package/dist/application/contract7-project.d.ts.map +1 -0
  29. package/dist/application/contract7-project.js +29 -0
  30. package/dist/application/contract7-project.js.map +1 -0
  31. package/dist/application/contract7-projection.d.ts +9 -0
  32. package/dist/application/contract7-projection.d.ts.map +1 -0
  33. package/dist/application/contract7-projection.js +100 -0
  34. package/dist/application/contract7-projection.js.map +1 -0
  35. package/dist/application/contract7-source.d.ts +24 -0
  36. package/dist/application/contract7-source.d.ts.map +1 -0
  37. package/dist/application/contract7-source.js +54 -0
  38. package/dist/application/contract7-source.js.map +1 -0
  39. package/dist/application/contract7-unit-migration.d.ts +13 -0
  40. package/dist/application/contract7-unit-migration.d.ts.map +1 -0
  41. package/dist/application/contract7-unit-migration.js +13 -0
  42. package/dist/application/contract7-unit-migration.js.map +1 -0
  43. package/dist/application/init.d.ts +1 -1
  44. package/dist/application/init.js +3 -3
  45. package/dist/application/mutate.d.ts +5 -1
  46. package/dist/application/mutate.d.ts.map +1 -1
  47. package/dist/application/mutate.js +2 -2
  48. package/dist/application/mutate.js.map +1 -1
  49. package/dist/application/target-actuals-analysis.d.ts +5 -4
  50. package/dist/application/target-actuals-analysis.d.ts.map +1 -1
  51. package/dist/application/target-actuals-analysis.js +18 -11
  52. package/dist/application/target-actuals-analysis.js.map +1 -1
  53. package/dist/application/target-actuals-mutation.d.ts +5 -3
  54. package/dist/application/target-actuals-mutation.d.ts.map +1 -1
  55. package/dist/application/target-actuals-mutation.js +16 -8
  56. package/dist/application/target-actuals-mutation.js.map +1 -1
  57. package/dist/application/target-actuals-write.d.ts +2 -1
  58. package/dist/application/target-actuals-write.d.ts.map +1 -1
  59. package/dist/application/target-actuals-write.js.map +1 -1
  60. package/dist/application/target-assurance-advance-history.d.ts +19 -0
  61. package/dist/application/target-assurance-advance-history.d.ts.map +1 -0
  62. package/dist/application/target-assurance-advance-history.js +61 -0
  63. package/dist/application/target-assurance-advance-history.js.map +1 -0
  64. package/dist/application/target-assurance-analysis.d.ts +34 -0
  65. package/dist/application/target-assurance-analysis.d.ts.map +1 -0
  66. package/dist/application/target-assurance-analysis.js +103 -0
  67. package/dist/application/target-assurance-analysis.js.map +1 -0
  68. package/dist/application/target-assurance-inspection.d.ts +38 -0
  69. package/dist/application/target-assurance-inspection.d.ts.map +1 -0
  70. package/dist/application/target-assurance-inspection.js +356 -0
  71. package/dist/application/target-assurance-inspection.js.map +1 -0
  72. package/dist/application/target-assurance-write.d.ts +22 -0
  73. package/dist/application/target-assurance-write.d.ts.map +1 -0
  74. package/dist/application/target-assurance-write.js +73 -0
  75. package/dist/application/target-assurance-write.js.map +1 -0
  76. package/dist/application/target-governance-init.d.ts +3 -3
  77. package/dist/application/target-governance-init.d.ts.map +1 -1
  78. package/dist/application/target-governance-init.js +14 -10
  79. package/dist/application/target-governance-init.js.map +1 -1
  80. package/dist/application/target-governance-project.d.ts +6 -4
  81. package/dist/application/target-governance-project.d.ts.map +1 -1
  82. package/dist/application/target-governance-project.js +18 -4
  83. package/dist/application/target-governance-project.js.map +1 -1
  84. package/dist/application/target-mutate.d.ts +7 -1
  85. package/dist/application/target-mutate.d.ts.map +1 -1
  86. package/dist/application/target-mutate.js +50 -3
  87. package/dist/application/target-mutate.js.map +1 -1
  88. package/dist/application/target-project-history.d.ts +4 -4
  89. package/dist/application/target-project-history.d.ts.map +1 -1
  90. package/dist/application/target-project-history.js +1 -1
  91. package/dist/application/target-project-history.js.map +1 -1
  92. package/dist/application/target-unit-migration-candidate.d.ts +29 -6
  93. package/dist/application/target-unit-migration-candidate.d.ts.map +1 -1
  94. package/dist/application/target-unit-migration-candidate.js +204 -3
  95. package/dist/application/target-unit-migration-candidate.js.map +1 -1
  96. package/dist/application/target-unit-migration-result.d.ts +2 -2
  97. package/dist/application/target-unit-migration-result.d.ts.map +1 -1
  98. package/dist/application/target-unit-migration-result.js +4 -2
  99. package/dist/application/target-unit-migration-result.js.map +1 -1
  100. package/dist/application/target-velocity-observation.d.ts +1 -1
  101. package/dist/application/target-velocity-observation.js +1 -1
  102. package/dist/assurance/advance.d.ts +45 -0
  103. package/dist/assurance/advance.d.ts.map +1 -0
  104. package/dist/assurance/advance.js +507 -0
  105. package/dist/assurance/advance.js.map +1 -0
  106. package/dist/assurance/authority.d.ts +86 -0
  107. package/dist/assurance/authority.d.ts.map +1 -0
  108. package/dist/assurance/authority.js +269 -0
  109. package/dist/assurance/authority.js.map +1 -0
  110. package/dist/assurance/canonical.d.ts +13 -0
  111. package/dist/assurance/canonical.d.ts.map +1 -0
  112. package/dist/assurance/canonical.js +320 -0
  113. package/dist/assurance/canonical.js.map +1 -0
  114. package/dist/assurance/compatibility.d.ts +62 -0
  115. package/dist/assurance/compatibility.d.ts.map +1 -0
  116. package/dist/assurance/compatibility.js +163 -0
  117. package/dist/assurance/compatibility.js.map +1 -0
  118. package/dist/assurance/evaluate.d.ts +4 -0
  119. package/dist/assurance/evaluate.d.ts.map +1 -0
  120. package/dist/assurance/evaluate.js +631 -0
  121. package/dist/assurance/evaluate.js.map +1 -0
  122. package/dist/assurance/governance.d.ts +42 -0
  123. package/dist/assurance/governance.d.ts.map +1 -0
  124. package/dist/assurance/governance.js +95 -0
  125. package/dist/assurance/governance.js.map +1 -0
  126. package/dist/assurance/mermaid.d.ts +40 -0
  127. package/dist/assurance/mermaid.d.ts.map +1 -0
  128. package/dist/assurance/mermaid.js +401 -0
  129. package/dist/assurance/mermaid.js.map +1 -0
  130. package/dist/assurance/mutation.d.ts +96 -0
  131. package/dist/assurance/mutation.d.ts.map +1 -0
  132. package/dist/assurance/mutation.js +757 -0
  133. package/dist/assurance/mutation.js.map +1 -0
  134. package/dist/assurance/source.d.ts +20 -0
  135. package/dist/assurance/source.d.ts.map +1 -0
  136. package/dist/assurance/source.js +313 -0
  137. package/dist/assurance/source.js.map +1 -0
  138. package/dist/assurance/types.d.ts +166 -0
  139. package/dist/assurance/types.d.ts.map +1 -0
  140. package/dist/assurance/types.js +3 -0
  141. package/dist/assurance/types.js.map +1 -0
  142. package/dist/cli.js +431 -72
  143. package/dist/cli.js.map +1 -1
  144. package/dist/command/actuals-discovery.d.ts.map +1 -1
  145. package/dist/command/actuals-discovery.js +50 -4
  146. package/dist/command/actuals-discovery.js.map +1 -1
  147. package/dist/command/assurance-discovery.d.ts +17 -0
  148. package/dist/command/assurance-discovery.d.ts.map +1 -0
  149. package/dist/command/assurance-discovery.js +287 -0
  150. package/dist/command/assurance-discovery.js.map +1 -0
  151. package/dist/command/assurance-usage.d.ts +20 -0
  152. package/dist/command/assurance-usage.d.ts.map +1 -0
  153. package/dist/command/assurance-usage.js +66 -0
  154. package/dist/command/assurance-usage.js.map +1 -0
  155. package/dist/conversion/mermaid.d.ts +2 -1
  156. package/dist/conversion/mermaid.d.ts.map +1 -1
  157. package/dist/conversion/mermaid.js +2 -2
  158. package/dist/conversion/mermaid.js.map +1 -1
  159. package/dist/formatter/source-formatter.d.ts +1 -1
  160. package/dist/formatter/source-formatter.d.ts.map +1 -1
  161. package/dist/formatter/source-formatter.js +56 -4
  162. package/dist/formatter/source-formatter.js.map +1 -1
  163. package/dist/formatter/target-source-formatter.d.ts +2 -1
  164. package/dist/formatter/target-source-formatter.d.ts.map +1 -1
  165. package/dist/formatter/target-source-formatter.js +18 -2
  166. package/dist/formatter/target-source-formatter.js.map +1 -1
  167. package/dist/help/assurance-guide.d.ts +10 -0
  168. package/dist/help/assurance-guide.d.ts.map +1 -0
  169. package/dist/help/assurance-guide.js +115 -0
  170. package/dist/help/assurance-guide.js.map +1 -0
  171. package/dist/help/guide.d.ts +1 -1
  172. package/dist/help/guide.d.ts.map +1 -1
  173. package/dist/help/registry.d.ts.map +1 -1
  174. package/dist/help/registry.js +11 -1
  175. package/dist/help/registry.js.map +1 -1
  176. package/dist/history/advance-history.d.ts +46 -0
  177. package/dist/history/advance-history.d.ts.map +1 -0
  178. package/dist/history/advance-history.js +425 -0
  179. package/dist/history/advance-history.js.map +1 -0
  180. package/dist/history/git-probe.d.ts +40 -0
  181. package/dist/history/git-probe.d.ts.map +1 -1
  182. package/dist/history/git-probe.js +330 -0
  183. package/dist/history/git-probe.js.map +1 -1
  184. package/dist/history/project-history.d.ts +14 -5
  185. package/dist/history/project-history.d.ts.map +1 -1
  186. package/dist/history/project-history.js +25 -18
  187. package/dist/history/project-history.js.map +1 -1
  188. package/dist/index.d.ts +31 -25
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +12 -14
  191. package/dist/index.js.map +1 -1
  192. package/dist/io/target-safe-write.d.ts +4 -1
  193. package/dist/io/target-safe-write.d.ts.map +1 -1
  194. package/dist/io/target-safe-write.js +19 -1
  195. package/dist/io/target-safe-write.js.map +1 -1
  196. package/dist/migration/grammar-boundary.d.ts +1 -1
  197. package/dist/migration/grammar-boundary.d.ts.map +1 -1
  198. package/dist/migration/grammar-boundary.js +7 -3
  199. package/dist/migration/grammar-boundary.js.map +1 -1
  200. package/dist/model/declaration-fields.d.ts +12 -0
  201. package/dist/model/declaration-fields.d.ts.map +1 -1
  202. package/dist/model/declaration-fields.js +45 -0
  203. package/dist/model/declaration-fields.js.map +1 -1
  204. package/dist/model/syntax.d.ts +17 -1
  205. package/dist/model/syntax.d.ts.map +1 -1
  206. package/dist/model/syntax.js.map +1 -1
  207. package/dist/mutation/actuals.js +1 -1
  208. package/dist/mutation/actuals.js.map +1 -1
  209. package/dist/mutation/advance-deletion.d.ts +14 -0
  210. package/dist/mutation/advance-deletion.d.ts.map +1 -0
  211. package/dist/mutation/advance-deletion.js +53 -0
  212. package/dist/mutation/advance-deletion.js.map +1 -0
  213. package/dist/mutation/advance.d.ts +18 -1
  214. package/dist/mutation/advance.d.ts.map +1 -1
  215. package/dist/mutation/advance.js +28 -25
  216. package/dist/mutation/advance.js.map +1 -1
  217. package/dist/mutation/project.d.ts +2 -1
  218. package/dist/mutation/project.d.ts.map +1 -1
  219. package/dist/mutation/project.js +21 -0
  220. package/dist/mutation/project.js.map +1 -1
  221. package/dist/parser/document-parser.d.ts +7 -0
  222. package/dist/parser/document-parser.d.ts.map +1 -1
  223. package/dist/parser/document-parser.js +227 -12
  224. package/dist/parser/document-parser.js.map +1 -1
  225. package/dist/recommendation/override-types.d.ts +2 -2
  226. package/dist/recommendation/override.d.ts +2 -2
  227. package/dist/recommendation/override.d.ts.map +1 -1
  228. package/dist/recommendation/override.js +13 -5
  229. package/dist/recommendation/override.js.map +1 -1
  230. package/dist/schema/registry.d.ts +1 -1
  231. package/dist/schema/registry.d.ts.map +1 -1
  232. package/dist/schema/registry.js +8 -6
  233. package/dist/schema/registry.js.map +1 -1
  234. package/dist/semantic/target-validator.d.ts +12 -1
  235. package/dist/semantic/target-validator.d.ts.map +1 -1
  236. package/dist/semantic/target-validator.js +47 -2
  237. package/dist/semantic/target-validator.js.map +1 -1
  238. package/dist/semantic/validator.d.ts +1 -0
  239. package/dist/semantic/validator.d.ts.map +1 -1
  240. package/dist/semantic/validator.js +304 -0
  241. package/dist/semantic/validator.js.map +1 -1
  242. package/dist/version.d.ts +1 -1
  243. package/dist/version.js +1 -1
  244. package/package.json +1 -1
  245. package/schemas/Perttool.AdvanceResult.v2.schema.json +334 -0
  246. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
  247. package/schemas/{Perttool.AnalysisResult.v4.schema.json → Perttool.AnalysisResult.v5.schema.json} +10 -6
  248. package/schemas/{Perttool.CheckResult.v3.schema.json → Perttool.CheckResult.v4.schema.json} +14 -6
  249. package/schemas/Perttool.CliError.v1.schema.json +1 -1
  250. package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
  251. package/schemas/Perttool.Common.v1.schema.json +300 -4
  252. package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
  253. package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
  254. package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
  255. package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
  256. package/schemas/Perttool.InitResult.v1.schema.json +1 -1
  257. package/schemas/{Perttool.MutationResult.v3.schema.json → Perttool.MutationResult.v4.schema.json} +16 -5
  258. package/schemas/{Perttool.NextResult.v5.schema.json → Perttool.NextResult.v6.schema.json} +53 -8
  259. package/schemas/Perttool.OverrideDecision.v1.schema.json +1 -1
  260. package/schemas/Perttool.PlanAssuranceResult.v1.schema.json +77 -0
  261. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
  262. package/schemas/{Perttool.ProjectResult.v3.schema.json → Perttool.ProjectResult.v4.schema.json} +15 -7
  263. package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
  264. package/schemas/Perttool.UnitMigrationResult.v3.schema.json +5 -3
  265. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
@@ -4,6 +4,7 @@ import { lstat, open, realpath, } from "node:fs/promises";
4
4
  import { dirname, isAbsolute, relative, resolve, sep, } from "node:path";
5
5
  import { digestDocumentBytes } from "../io/document-file.js";
6
6
  export const GIT_HISTORY_PROBE_MODEL_VERSION = 1;
7
+ export const ADVANCE_HISTORY_BASELINE_MODEL_VERSION = 1;
7
8
  const gitTimeoutMilliseconds = 30_000;
8
9
  const gitMaxBufferBytes = 64 * 1024 * 1024;
9
10
  const availabilityOrder = new Map([
@@ -172,6 +173,8 @@ async function captureTarget(path) {
172
173
  digest: digestDocumentBytes(bytes),
173
174
  device: openedStat.dev,
174
175
  inode: openedStat.ino,
176
+ modifiedAt: new Date(Number(openedStat.mtimeNs / 1000000n)).toISOString(),
177
+ source: new Uint8Array(bytes),
175
178
  },
176
179
  };
177
180
  }
@@ -571,4 +574,331 @@ export async function probeGitHistory(request, dependencies = {}) {
571
574
  availability: allCauses,
572
575
  };
573
576
  }
577
+ function unavailableAdvanceBaseline(cause, operation, fields = {}) {
578
+ return {
579
+ ok: true,
580
+ modelVersion: ADVANCE_HISTORY_BASELINE_MODEL_VERSION,
581
+ status: "unavailable",
582
+ cause,
583
+ operation,
584
+ objectFormat: fields.objectFormat ?? null,
585
+ repositorySnapshotId: fields.repositorySnapshotId ?? null,
586
+ repositoryRelativePath: fields.repositoryRelativePath ?? null,
587
+ headCommitId: fields.headCommitId ?? null,
588
+ headBlobId: fields.headBlobId ?? null,
589
+ indexBlobId: fields.indexBlobId ?? null,
590
+ currentSourceDigest: fields.currentSourceDigest ?? null,
591
+ headSourceDigest: fields.headSourceDigest ?? null,
592
+ indexSourceDigest: fields.indexSourceDigest ?? null,
593
+ sourceModifiedAt: fields.sourceModifiedAt ?? null,
594
+ targetDevice: fields.targetDevice ?? null,
595
+ targetInode: fields.targetInode ?? null,
596
+ currentSource: fields.currentSource ?? null,
597
+ headSource: fields.headSource ?? null,
598
+ indexSource: fields.indexSource ?? null,
599
+ };
600
+ }
601
+ function baselineCommandCause(result, operation, fields) {
602
+ return unavailableAdvanceBaseline("git_unavailable", !result.ok && result.kind === "failure"
603
+ ? result.failure.operation
604
+ : operation, fields);
605
+ }
606
+ function parseTreeBlob(bytes, relativePath, objectFormat) {
607
+ if (bytes.length === 0)
608
+ return { kind: "missing" };
609
+ const tab = bytes.indexOf(0x09);
610
+ if (tab === -1 ||
611
+ !bytes.subarray(tab + 1).equals(Buffer.from(`${relativePath}\0`, "utf8"))) {
612
+ return { kind: "ambiguous" };
613
+ }
614
+ const header = bytes.subarray(0, tab).toString("ascii").split(" ");
615
+ if (header.length !== 3 ||
616
+ (header[0] !== "100644" && header[0] !== "100755") ||
617
+ header[1] !== "blob" ||
618
+ !commitId(header[2], objectFormat)) {
619
+ return { kind: "ambiguous" };
620
+ }
621
+ return { kind: "ok", blobId: header[2] };
622
+ }
623
+ function parseIndexBlob(bytes, relativePath, objectFormat) {
624
+ if (bytes.length === 0)
625
+ return { kind: "missing" };
626
+ const records = bytes.toString("latin1").split("\0");
627
+ if (records.at(-1) !== "")
628
+ return { kind: "ambiguous" };
629
+ records.pop();
630
+ if (records.length !== 1)
631
+ return { kind: "unmerged" };
632
+ const record = Buffer.from(records[0], "latin1");
633
+ const tab = record.indexOf(0x09);
634
+ if (tab === -1 ||
635
+ !record.subarray(tab + 1).equals(Buffer.from(relativePath, "utf8"))) {
636
+ return { kind: "ambiguous" };
637
+ }
638
+ const header = record.subarray(0, tab).toString("ascii").split(" ");
639
+ if (header.length !== 3)
640
+ return { kind: "ambiguous" };
641
+ if (header[2] !== "0")
642
+ return { kind: "unmerged" };
643
+ if ((header[0] !== "100644" && header[0] !== "100755") ||
644
+ !commitId(header[1], objectFormat)) {
645
+ return { kind: "ambiguous" };
646
+ }
647
+ return { kind: "ok", blobId: header[1] };
648
+ }
649
+ export async function captureAdvanceHistoryBaseline(request, dependencies = {}) {
650
+ const executable = dependencies.gitExecutable ?? "git";
651
+ const targetPath = resolve(request.targetPath);
652
+ const initialTarget = await captureTarget(targetPath);
653
+ if (!initialTarget.ok) {
654
+ return unavailableAdvanceBaseline("ambiguous" in initialTarget
655
+ ? "ambiguous_path"
656
+ : "baseline_read_failed", "ambiguous" in initialTarget
657
+ ? "target_capture"
658
+ : initialTarget.failure.operation);
659
+ }
660
+ const targetFields = {
661
+ currentSourceDigest: initialTarget.capture.digest,
662
+ sourceModifiedAt: initialTarget.capture.modifiedAt,
663
+ targetDevice: initialTarget.capture.device,
664
+ targetInode: initialTarget.capture.inode,
665
+ currentSource: initialTarget.capture.source,
666
+ };
667
+ if (request.expectedSourceDigest !== undefined &&
668
+ request.expectedSourceDigest !== initialTarget.capture.digest) {
669
+ return unavailableAdvanceBaseline("target_changed", "expected_source", targetFields);
670
+ }
671
+ const repositoryCommand = runGit(executable, dirname(initialTarget.capture.realPath), "advance_repository_root", ["rev-parse", "--path-format=absolute", "--show-toplevel"]);
672
+ if (!repositoryCommand.ok) {
673
+ if (repositoryCommand.kind === "exit") {
674
+ return unavailableAdvanceBaseline("no_repository", "advance_repository_root", targetFields);
675
+ }
676
+ return baselineCommandCause(repositoryCommand, "advance_repository_root", targetFields);
677
+ }
678
+ const repositoryText = stdoutText(repositoryCommand, "advance_repository_root");
679
+ if (typeof repositoryText !== "string") {
680
+ return unavailableAdvanceBaseline("git_unavailable", repositoryText.operation, targetFields);
681
+ }
682
+ let repositoryRoot;
683
+ try {
684
+ repositoryRoot = await realpath(repositoryText);
685
+ }
686
+ catch {
687
+ return unavailableAdvanceBaseline("baseline_read_failed", "advance_repository_root", targetFields);
688
+ }
689
+ const relativePath = normalizeRepositoryPath(repositoryRoot, initialTarget.capture.realPath);
690
+ if (relativePath === null) {
691
+ return unavailableAdvanceBaseline("ambiguous_path", "advance_repository_path", targetFields);
692
+ }
693
+ const pathFields = {
694
+ ...targetFields,
695
+ repositoryRelativePath: relativePath,
696
+ };
697
+ const headCommand = runGit(executable, repositoryRoot, "advance_resolve_head", ["rev-parse", "--verify", "--end-of-options", "HEAD^{commit}"]);
698
+ if (!headCommand.ok) {
699
+ if (headCommand.kind === "exit") {
700
+ return unavailableAdvanceBaseline("no_head", "advance_resolve_head", pathFields);
701
+ }
702
+ return baselineCommandCause(headCommand, "advance_resolve_head", pathFields);
703
+ }
704
+ const formatCommand = runGit(executable, repositoryRoot, "advance_object_format", ["rev-parse", "--show-object-format=storage"]);
705
+ if (!formatCommand.ok) {
706
+ return baselineCommandCause(formatCommand, "advance_object_format", pathFields);
707
+ }
708
+ const formatText = stdoutText(formatCommand, "advance_object_format");
709
+ if (typeof formatText !== "string" ||
710
+ (formatText !== "sha1" && formatText !== "sha256")) {
711
+ return unavailableAdvanceBaseline("git_unavailable", typeof formatText === "string"
712
+ ? "advance_object_format"
713
+ : formatText.operation, pathFields);
714
+ }
715
+ const objectFormat = formatText;
716
+ const headText = stdoutText(headCommand, "advance_resolve_head");
717
+ if (typeof headText !== "string" ||
718
+ !commitId(headText, objectFormat)) {
719
+ return unavailableAdvanceBaseline("git_unavailable", typeof headText === "string"
720
+ ? "advance_resolve_head"
721
+ : headText.operation, { ...pathFields, objectFormat });
722
+ }
723
+ const headCommitId = headText;
724
+ const headFields = {
725
+ ...pathFields,
726
+ objectFormat,
727
+ headCommitId,
728
+ };
729
+ const treeCommand = runGit(executable, repositoryRoot, "advance_head_entry", ["ls-tree", "-z", headCommitId, "--", relativePath]);
730
+ if (!treeCommand.ok) {
731
+ return baselineCommandCause(treeCommand, "advance_head_entry", headFields);
732
+ }
733
+ const treeBlob = parseTreeBlob(treeCommand.stdout, relativePath, objectFormat);
734
+ if (treeBlob.kind !== "ok") {
735
+ return unavailableAdvanceBaseline(treeBlob.kind === "missing"
736
+ ? "untracked_target"
737
+ : "ambiguous_path", "advance_head_entry", headFields);
738
+ }
739
+ const headBlobId = treeBlob.blobId;
740
+ const headBlobFields = {
741
+ ...headFields,
742
+ headBlobId,
743
+ };
744
+ const indexCommand = runGit(executable, repositoryRoot, "advance_index_entry", ["ls-files", "--stage", "-z", "--", relativePath]);
745
+ if (!indexCommand.ok) {
746
+ return baselineCommandCause(indexCommand, "advance_index_entry", headBlobFields);
747
+ }
748
+ const indexBlob = parseIndexBlob(indexCommand.stdout, relativePath, objectFormat);
749
+ if (indexBlob.kind !== "ok") {
750
+ return unavailableAdvanceBaseline(indexBlob.kind === "unmerged"
751
+ ? "unmerged_index"
752
+ : indexBlob.kind === "missing"
753
+ ? "correspondence_missing"
754
+ : "ambiguous_path", "advance_index_entry", headBlobFields);
755
+ }
756
+ const indexBlobId = indexBlob.blobId;
757
+ const blobFields = {
758
+ ...headBlobFields,
759
+ indexBlobId,
760
+ };
761
+ const headSourceCommand = runGit(executable, repositoryRoot, "advance_head_source", ["cat-file", "blob", headBlobId]);
762
+ if (!headSourceCommand.ok) {
763
+ return baselineCommandCause(headSourceCommand, "advance_head_source", blobFields);
764
+ }
765
+ const indexSourceCommand = runGit(executable, repositoryRoot, "advance_index_source", ["cat-file", "blob", indexBlobId]);
766
+ if (!indexSourceCommand.ok) {
767
+ return baselineCommandCause(indexSourceCommand, "advance_index_source", blobFields);
768
+ }
769
+ const headSource = new Uint8Array(headSourceCommand.stdout);
770
+ const indexSource = new Uint8Array(indexSourceCommand.stdout);
771
+ const headSourceDigest = digestDocumentBytes(headSource);
772
+ const indexSourceDigest = digestDocumentBytes(indexSource);
773
+ const repositorySnapshotId = `git:${objectFormat}:${headCommitId}:index:${indexBlobId}`;
774
+ const completeFields = {
775
+ ...blobFields,
776
+ repositorySnapshotId,
777
+ headSourceDigest,
778
+ indexSourceDigest,
779
+ headSource,
780
+ indexSource,
781
+ };
782
+ if (dependencies.afterCapture !== undefined) {
783
+ await dependencies.afterCapture();
784
+ }
785
+ const finalHeadCommand = runGit(executable, repositoryRoot, "advance_recheck_head", ["rev-parse", "--verify", "--end-of-options", "HEAD^{commit}"]);
786
+ if (!finalHeadCommand.ok) {
787
+ if (finalHeadCommand.kind === "failure") {
788
+ return baselineCommandCause(finalHeadCommand, "advance_recheck_head", completeFields);
789
+ }
790
+ return unavailableAdvanceBaseline("head_changed", "advance_recheck_head", completeFields);
791
+ }
792
+ const finalHeadText = stdoutText(finalHeadCommand, "advance_recheck_head");
793
+ if (typeof finalHeadText !== "string" ||
794
+ finalHeadText !== headCommitId) {
795
+ return unavailableAdvanceBaseline("head_changed", "advance_recheck_head", completeFields);
796
+ }
797
+ const finalIndexCommand = runGit(executable, repositoryRoot, "advance_recheck_index", ["ls-files", "--stage", "-z", "--", relativePath]);
798
+ if (!finalIndexCommand.ok) {
799
+ if (finalIndexCommand.kind === "failure") {
800
+ return baselineCommandCause(finalIndexCommand, "advance_recheck_index", completeFields);
801
+ }
802
+ return unavailableAdvanceBaseline("index_changed", "advance_recheck_index", completeFields);
803
+ }
804
+ const finalIndex = parseIndexBlob(finalIndexCommand.stdout, relativePath, objectFormat);
805
+ if (finalIndex.kind !== "ok" ||
806
+ finalIndex.blobId !== indexBlobId) {
807
+ return unavailableAdvanceBaseline("index_changed", "advance_recheck_index", completeFields);
808
+ }
809
+ const finalTarget = await captureTarget(targetPath);
810
+ if (!finalTarget.ok ||
811
+ !sameTarget(initialTarget.capture, finalTarget.capture)) {
812
+ return unavailableAdvanceBaseline("target_changed", "advance_recheck_target", completeFields);
813
+ }
814
+ return {
815
+ ok: true,
816
+ modelVersion: ADVANCE_HISTORY_BASELINE_MODEL_VERSION,
817
+ status: "complete",
818
+ cause: null,
819
+ operation: null,
820
+ objectFormat,
821
+ repositorySnapshotId,
822
+ repositoryRelativePath: relativePath,
823
+ headCommitId,
824
+ headBlobId,
825
+ indexBlobId,
826
+ currentSourceDigest: initialTarget.capture.digest,
827
+ headSourceDigest,
828
+ indexSourceDigest,
829
+ sourceModifiedAt: initialTarget.capture.modifiedAt,
830
+ targetDevice: initialTarget.capture.device,
831
+ targetInode: initialTarget.capture.inode,
832
+ currentSource: initialTarget.capture.source,
833
+ headSource,
834
+ indexSource,
835
+ };
836
+ }
837
+ export async function recheckAdvanceHistoryBaseline(baseline, targetPath, dependencies = {}) {
838
+ if (baseline.status !== "complete" ||
839
+ baseline.currentSourceDigest === null ||
840
+ baseline.objectFormat === null ||
841
+ baseline.repositorySnapshotId === null ||
842
+ baseline.repositoryRelativePath === null ||
843
+ baseline.headCommitId === null ||
844
+ baseline.headBlobId === null ||
845
+ baseline.indexBlobId === null ||
846
+ baseline.targetDevice === null ||
847
+ baseline.targetInode === null) {
848
+ return Object.freeze({
849
+ ok: false,
850
+ cause: "baseline_read_failed",
851
+ operation: "advance_recheck_baseline",
852
+ });
853
+ }
854
+ const current = await captureAdvanceHistoryBaseline({
855
+ targetPath,
856
+ expectedSourceDigest: baseline.currentSourceDigest,
857
+ }, dependencies);
858
+ if (current.status !== "complete") {
859
+ const cause = current.cause === "target_changed"
860
+ ? "target_changed"
861
+ : current.cause === "head_changed"
862
+ ? "head_changed"
863
+ : current.cause === "index_changed"
864
+ ? "index_changed"
865
+ : "baseline_read_failed";
866
+ return Object.freeze({
867
+ ok: false,
868
+ cause,
869
+ operation: current.operation,
870
+ });
871
+ }
872
+ if (current.targetDevice !== baseline.targetDevice ||
873
+ current.targetInode !== baseline.targetInode) {
874
+ return Object.freeze({
875
+ ok: false,
876
+ cause: "target_changed",
877
+ operation: "advance_recheck_target",
878
+ });
879
+ }
880
+ if (current.objectFormat !== baseline.objectFormat ||
881
+ current.repositoryRelativePath !== baseline.repositoryRelativePath ||
882
+ current.headCommitId !== baseline.headCommitId ||
883
+ current.headBlobId !== baseline.headBlobId) {
884
+ return Object.freeze({
885
+ ok: false,
886
+ cause: "head_changed",
887
+ operation: "advance_recheck_head",
888
+ });
889
+ }
890
+ if (current.repositorySnapshotId !== baseline.repositorySnapshotId ||
891
+ current.indexBlobId !== baseline.indexBlobId) {
892
+ return Object.freeze({
893
+ ok: false,
894
+ cause: "index_changed",
895
+ operation: "advance_recheck_index",
896
+ });
897
+ }
898
+ return Object.freeze({
899
+ ok: true,
900
+ cause: null,
901
+ operation: null,
902
+ });
903
+ }
574
904
  //# sourceMappingURL=git-probe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-probe.js","sourceRoot":"","sources":["../../src/history/git-probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-probe.js","sourceRoot":"","sources":["../../src/history/git-probe.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { type ActualsCoverage } from "../actuals/lifecycle.js";
2
2
  import { type Diagnostic } from "../model/diagnostics.js";
3
- import type { WorkEventKind } from "../model/syntax.js";
3
+ import type { DocumentNode, TargetDeclarationKind, WorkEventKind } from "../model/syntax.js";
4
4
  import { type TargetCalendarValue } from "../model/target-calendar.js";
5
5
  import type { GitHistoryProbeResult } from "./git-probe.js";
6
- import type { TargetGrammar5Capability } from "../parser/document-parser.js";
6
+ import type { TargetGrammar5Capability, TargetGrammar6Capability } from "../parser/document-parser.js";
7
7
  export declare const PROJECT_HISTORY_MODEL_VERSION: 1;
8
8
  export type ProjectHistoryStatus = "complete" | "incomplete" | "unavailable";
9
9
  export type ProjectHistoryCauseId = "no_repository" | "no_head" | "unknown_revision" | "untracked_target" | "ambiguous_path" | "shallow_boundary" | "unsupported_rename" | "unsupported_source_version" | "task_identity_replaced" | "event_payload_changed" | "duplicate_event_identity" | "head_changed" | "target_changed";
@@ -97,16 +97,25 @@ export interface ProjectHistoryMetadata {
97
97
  readonly inspectedCommitIds: readonly string[];
98
98
  readonly unavailableCauses: readonly ProjectHistoryCause[];
99
99
  }
100
- export interface ProjectHistoryCoreResult {
100
+ export interface ProjectHistoryCoreResultFor<GrammarVersion extends number> {
101
101
  readonly ok: boolean;
102
102
  readonly modelVersion: typeof PROJECT_HISTORY_MODEL_VERSION;
103
103
  readonly documentId: string | null;
104
- readonly grammarVersion: 1 | 2 | 3 | 4 | 5 | null;
104
+ readonly grammarVersion: GrammarVersion | null;
105
105
  readonly history: ProjectHistoryMetadata;
106
106
  readonly events: readonly WorkEventHistory[];
107
107
  readonly gitRecordedTransitions: readonly GitRecordedTransition[];
108
108
  readonly tasks: readonly TaskActualSummary[];
109
109
  readonly diagnostics: readonly Diagnostic[];
110
110
  }
111
- export declare function inspectProjectHistory(probe: GitHistoryProbeResult, request: HistoryRequest, capability: TargetGrammar5Capability): ProjectHistoryCoreResult;
111
+ export type ProjectHistoryCoreResult = ProjectHistoryCoreResultFor<1 | 2 | 3 | 4 | 5 | 6>;
112
+ export interface ProjectHistorySourceValidation<GrammarVersion extends number> {
113
+ readonly ok: boolean;
114
+ readonly documentId: string | null;
115
+ readonly grammarVersion: GrammarVersion | null;
116
+ readonly document: DocumentNode<TargetDeclarationKind>;
117
+ }
118
+ export type ProjectHistorySourceValidator<GrammarVersion extends number> = (text: string) => ProjectHistorySourceValidation<GrammarVersion>;
119
+ export declare function inspectProjectHistoryWithValidator<GrammarVersion extends number>(probe: GitHistoryProbeResult, request: HistoryRequest, validateSource: ProjectHistorySourceValidator<GrammarVersion>): ProjectHistoryCoreResultFor<GrammarVersion>;
120
+ export declare function inspectProjectHistory(probe: GitHistoryProbeResult, request: HistoryRequest, capability: TargetGrammar5Capability | TargetGrammar6Capability): ProjectHistoryCoreResult;
112
121
  //# sourceMappingURL=project-history.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-history.d.ts","sourceRoot":"","sources":["../../src/history/project-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-history.d.ts","sourceRoot":"","sources":["../../src/history/project-history.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { compareStableStrings, sortDiagnostics, } from "../model/diagnostics.js"
6
6
  import { add, divide, formatDecimal, multiply, rational, rationalFromDuration, subtract, } from "../model/rational.js";
7
7
  import { fieldNamed } from "../model/syntax.js";
8
8
  import { projectDeclaredCalendarValue, } from "../model/target-calendar.js";
9
- import { validateTargetGrammar5Document, } from "../semantic/target-validator.js";
9
+ import { validateTargetGrammar5Document, validateTargetGrammar6Document, } from "../semantic/target-validator.js";
10
10
  export const PROJECT_HISTORY_MODEL_VERSION = 1;
11
11
  const historyCauseOrder = [
12
12
  "no_repository",
@@ -238,7 +238,7 @@ function decodeSnapshot(snapshot) {
238
238
  return null;
239
239
  }
240
240
  }
241
- function parseSnapshot(snapshot, capability) {
241
+ function parseSnapshot(snapshot, validateSource) {
242
242
  if (snapshot.source === null) {
243
243
  return {
244
244
  parsed: {
@@ -258,11 +258,7 @@ function parseSnapshot(snapshot, capability) {
258
258
  causes: Object.freeze([unsupportedSnapshot(snapshot)]),
259
259
  };
260
260
  }
261
- const checked = validateTargetGrammar5Document(text, capability);
262
- const project = checked.document.declarations.find(({ kind }) => kind === "project");
263
- const declaredVersion = project === undefined
264
- ? null
265
- : fieldNamed(project, "version")?.value ?? 1;
261
+ const checked = validateSource(text);
266
262
  const duplicateIds = checked.document.declarations
267
263
  .filter(({ kind }) => kind === "work_event")
268
264
  .map(({ id }) => id)
@@ -279,19 +275,14 @@ function parseSnapshot(snapshot, capability) {
279
275
  };
280
276
  }
281
277
  if (!checked.ok ||
282
- checked.validatedDocument === null ||
283
- (declaredVersion !== 1 &&
284
- declaredVersion !== 2 &&
285
- declaredVersion !== 3 &&
286
- declaredVersion !== 4 &&
287
- declaredVersion !== 5)) {
278
+ checked.grammarVersion === null) {
288
279
  return {
289
280
  parsed: null,
290
281
  causes: Object.freeze([unsupportedSnapshot(snapshot)]),
291
282
  };
292
283
  }
293
284
  const tasks = new Map();
294
- for (const declaration of checked.validatedDocument.document.declarations) {
285
+ for (const declaration of checked.document.declarations) {
295
286
  if (declaration.kind !== "task")
296
287
  continue;
297
288
  tasks.set(declaration.id, {
@@ -304,9 +295,12 @@ function parseSnapshot(snapshot, capability) {
304
295
  parsed: {
305
296
  snapshot,
306
297
  documentId: checked.documentId,
307
- grammarVersion: checked.validatedDocument.grammarVersion,
298
+ grammarVersion: checked.grammarVersion,
308
299
  tasks,
309
- events: projectActualsSourceModel(checked.validatedDocument).events,
300
+ events: projectActualsSourceModel({
301
+ grammarVersion: checked.grammarVersion,
302
+ document: checked.document,
303
+ }).events,
310
304
  },
311
305
  causes: Object.freeze([]),
312
306
  };
@@ -585,7 +579,7 @@ function invalidRequestResult(probe, cause, taskId) {
585
579
  ]),
586
580
  });
587
581
  }
588
- export function inspectProjectHistory(probe, request, capability) {
582
+ export function inspectProjectHistoryWithValidator(probe, request, validateSource) {
589
583
  const adapterCauses = probe.availability.map(fromProbeAvailability);
590
584
  if (probe.status === "unavailable") {
591
585
  return emptyResult(probe, adapterCauses);
@@ -619,7 +613,7 @@ export function inspectProjectHistory(probe, request, capability) {
619
613
  let documentId = null;
620
614
  let grammarVersion = null;
621
615
  for (const snapshot of probe.snapshots) {
622
- const parsedSnapshot = parseSnapshot(snapshot, capability);
616
+ const parsedSnapshot = parseSnapshot(snapshot, validateSource);
623
617
  causes.push(...parsedSnapshot.causes);
624
618
  if (parsedSnapshot.parsed === null) {
625
619
  transitionContinuityKnown = false;
@@ -783,4 +777,17 @@ export function inspectProjectHistory(probe, request, capability) {
783
777
  diagnostics: Object.freeze(sortDiagnostics(sortedCauses.map(diagnostic))),
784
778
  });
785
779
  }
780
+ export function inspectProjectHistory(probe, request, capability) {
781
+ return inspectProjectHistoryWithValidator(probe, request, (text) => {
782
+ const checked = capability.grammarVersion === 6
783
+ ? validateTargetGrammar6Document(text, capability)
784
+ : validateTargetGrammar5Document(text, capability);
785
+ return {
786
+ ok: checked.ok && checked.validatedDocument !== null,
787
+ documentId: checked.documentId,
788
+ grammarVersion: checked.validatedDocument?.grammarVersion ?? null,
789
+ document: checked.validatedDocument?.document ?? checked.document,
790
+ };
791
+ });
792
+ }
786
793
  //# sourceMappingURL=project-history.js.map