perttool 0.7.1 → 0.8.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 (229) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/README.md +98 -18
  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 +3 -3
  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 +2 -2
  100. package/dist/application/target-unit-migration-candidate.js.map +1 -1
  101. package/dist/assurance/advance.d.ts.map +1 -1
  102. package/dist/assurance/advance.js +15 -5
  103. package/dist/assurance/advance.js.map +1 -1
  104. package/dist/assurance/canonical.js +2 -2
  105. package/dist/assurance/canonical.js.map +1 -1
  106. package/dist/assurance/compatibility.js +2 -2
  107. package/dist/assurance/compatibility.js.map +1 -1
  108. package/dist/assurance/mermaid.d.ts +4 -2
  109. package/dist/assurance/mermaid.d.ts.map +1 -1
  110. package/dist/assurance/mermaid.js +11 -7
  111. package/dist/assurance/mermaid.js.map +1 -1
  112. package/dist/assurance/mutation.d.ts.map +1 -1
  113. package/dist/assurance/mutation.js +9 -23
  114. package/dist/assurance/mutation.js.map +1 -1
  115. package/dist/cli.js +66 -26
  116. package/dist/cli.js.map +1 -1
  117. package/dist/command/assurance-discovery.d.ts.map +1 -1
  118. package/dist/command/assurance-discovery.js +62 -2
  119. package/dist/command/assurance-discovery.js.map +1 -1
  120. package/dist/command/assurance-usage.d.ts.map +1 -1
  121. package/dist/command/assurance-usage.js +11 -0
  122. package/dist/command/assurance-usage.js.map +1 -1
  123. package/dist/conversion/mermaid-import.js +3 -3
  124. package/dist/conversion/mermaid-import.js.map +1 -1
  125. package/dist/conversion/mermaid.d.ts +1 -1
  126. package/dist/conversion/mermaid.d.ts.map +1 -1
  127. package/dist/conversion/mermaid.js +4 -4
  128. package/dist/conversion/mermaid.js.map +1 -1
  129. package/dist/core/index.d.ts +33 -0
  130. package/dist/core/index.d.ts.map +1 -0
  131. package/dist/core/index.js +13 -0
  132. package/dist/core/index.js.map +1 -0
  133. package/dist/core/source.d.ts +8 -0
  134. package/dist/core/source.d.ts.map +1 -0
  135. package/dist/core/source.js +11 -0
  136. package/dist/core/source.js.map +1 -0
  137. package/dist/formatter/source-formatter.d.ts +1 -1
  138. package/dist/formatter/source-formatter.d.ts.map +1 -1
  139. package/dist/formatter/source-formatter.js +1 -1
  140. package/dist/formatter/source-formatter.js.map +1 -1
  141. package/dist/guidance/validator.js +2 -2
  142. package/dist/guidance/validator.js.map +1 -1
  143. package/dist/help/assurance-guide.d.ts.map +1 -1
  144. package/dist/help/assurance-guide.js +78 -0
  145. package/dist/help/assurance-guide.js.map +1 -1
  146. package/dist/history/git-probe.d.ts +71 -0
  147. package/dist/history/git-probe.d.ts.map +1 -1
  148. package/dist/history/git-probe.js +517 -0
  149. package/dist/history/git-probe.js.map +1 -1
  150. package/dist/history/historical-graph.d.ts +174 -0
  151. package/dist/history/historical-graph.d.ts.map +1 -0
  152. package/dist/history/historical-graph.js +870 -0
  153. package/dist/history/historical-graph.js.map +1 -0
  154. package/dist/history/historical-transition.d.ts +311 -0
  155. package/dist/history/historical-transition.d.ts.map +1 -0
  156. package/dist/history/historical-transition.js +998 -0
  157. package/dist/history/historical-transition.js.map +1 -0
  158. package/dist/history/project-history.d.ts.map +1 -1
  159. package/dist/history/project-history.js +2 -2
  160. package/dist/history/project-history.js.map +1 -1
  161. package/dist/index.d.ts +2 -0
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +1 -0
  164. package/dist/index.js.map +1 -1
  165. package/dist/io/document-file.js +2 -2
  166. package/dist/io/document-file.js.map +1 -1
  167. package/dist/io/safe-write.js +1 -1
  168. package/dist/io/safe-write.js.map +1 -1
  169. package/dist/model/sha256.d.ts +5 -0
  170. package/dist/model/sha256.d.ts.map +1 -0
  171. package/dist/model/sha256.js +105 -0
  172. package/dist/model/sha256.js.map +1 -0
  173. package/dist/mutation/advance.js +3 -3
  174. package/dist/mutation/advance.js.map +1 -1
  175. package/dist/mutation/diagnostics.d.ts +2 -2
  176. package/dist/mutation/diagnostics.d.ts.map +1 -1
  177. package/dist/mutation/diagnostics.js.map +1 -1
  178. package/dist/mutation/planner.d.ts +27 -0
  179. package/dist/mutation/planner.d.ts.map +1 -0
  180. package/dist/mutation/planner.js +206 -0
  181. package/dist/mutation/planner.js.map +1 -0
  182. package/dist/mutation/source.d.ts +2 -1
  183. package/dist/mutation/source.d.ts.map +1 -1
  184. package/dist/mutation/source.js +14 -0
  185. package/dist/mutation/source.js.map +1 -1
  186. package/dist/mutation/target-planner.d.ts +18 -0
  187. package/dist/mutation/target-planner.d.ts.map +1 -0
  188. package/dist/mutation/target-planner.js +160 -0
  189. package/dist/mutation/target-planner.js.map +1 -0
  190. package/dist/mutation/task.d.ts.map +1 -1
  191. package/dist/mutation/task.js +19 -11
  192. package/dist/mutation/task.js.map +1 -1
  193. package/dist/mutation/types.d.ts +1 -1
  194. package/dist/mutation/types.d.ts.map +1 -1
  195. package/dist/node/historical-host.d.ts +6 -0
  196. package/dist/node/historical-host.d.ts.map +1 -0
  197. package/dist/node/historical-host.js +8 -0
  198. package/dist/node/historical-host.js.map +1 -0
  199. package/dist/node/host.d.ts +3 -0
  200. package/dist/node/host.d.ts.map +1 -0
  201. package/dist/node/host.js +48 -0
  202. package/dist/node/host.js.map +1 -0
  203. package/dist/node/index.d.ts +2 -0
  204. package/dist/node/index.d.ts.map +1 -0
  205. package/dist/node/index.js +2 -0
  206. package/dist/node/index.js.map +1 -0
  207. package/dist/ports/node-host.d.ts +41 -0
  208. package/dist/ports/node-host.d.ts.map +1 -0
  209. package/dist/ports/node-host.js +2 -0
  210. package/dist/ports/node-host.js.map +1 -0
  211. package/dist/recommendation/override.d.ts +40 -2
  212. package/dist/recommendation/override.d.ts.map +1 -1
  213. package/dist/recommendation/override.js +5 -6
  214. package/dist/recommendation/override.js.map +1 -1
  215. package/dist/schema/registry.d.ts.map +1 -1
  216. package/dist/schema/registry.js +1 -0
  217. package/dist/schema/registry.js.map +1 -1
  218. package/dist/semantic/check.d.ts +43 -0
  219. package/dist/semantic/check.d.ts.map +1 -0
  220. package/dist/semantic/check.js +110 -0
  221. package/dist/semantic/check.js.map +1 -0
  222. package/dist/session/document-session.d.ts +109 -0
  223. package/dist/session/document-session.d.ts.map +1 -0
  224. package/dist/session/document-session.js +432 -0
  225. package/dist/session/document-session.js.map +1 -0
  226. package/dist/version.d.ts +1 -1
  227. package/dist/version.js +1 -1
  228. package/package.json +18 -4
  229. package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +654 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,50 @@ This project records its notable changes here. The format is based on [Keep a Ch
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.8.1] - 2026-08-12
8
+
9
+ Compatible Grammar 6 and CLI Contract 7 beta patch. This version corrects a
10
+ `dag advance` mutation-planning overlap without changing commands, schemas,
11
+ result identities, payload meanings, or authority.
12
+
13
+ ### Fixed
14
+
15
+ - Made assurance frontier-receipt creation use the beginning of an
16
+ advance-owned terminal declaration suffix when every terminal `work_event`
17
+ is removed. Preview, separate output, and in-place write now produce the
18
+ same valid candidate instead of failing with `PTCLI-070`.
19
+
20
+ ## [0.8.0] - 2026-08-07
21
+
22
+ Additive Grammar 6 and CLI Contract 7 beta minor. This version publishes the
23
+ adapter-platform library boundary, read-only historical DAG reconstruction,
24
+ and the declaration-identity correction.
25
+
26
+ ### Added
27
+
28
+ - Added the read-only `dag history` command with bounded inclusive Git revision
29
+ inputs, explicit first-parent scope, snapshot, proved-lineage, and timeline
30
+ views, optional single-checkpoint analysis, immutable source bindings,
31
+ `Perttool.HistoricalGraphResult.v1`, and the `historical-dag` Guide topic.
32
+ Three-way ancestry remains fail-closed and release selection remains
33
+ separate.
34
+ - Added source-package `perttool/core` and `perttool/node` subpath exports.
35
+ Core provides a closed platform-neutral Grammar 6 source, graph-analysis,
36
+ exact-arithmetic, diagnostic, Help, Guide, and projection surface; Node is
37
+ reference-identical to the 122-name package-root facade.
38
+
39
+ ### Changed
40
+
41
+ - Increased the Contract 7 registry from 44 to 45 commands, the root schema
42
+ catalog from 20 to 21 identities, and the root facade from 121 to 122 runtime
43
+ exports without changing Grammar or CLI Contract versions.
44
+
45
+ ### Fixed
46
+
47
+ - Made task insertion, mutation, lifecycle, and LSP definition distinguish a
48
+ task declaration from its same-ID `plan_seal` while preserving existing
49
+ valid noncanonical source order.
50
+
7
51
  ## [0.7.1] - 2026-08-05
8
52
 
9
53
  Compatible Grammar 6 and CLI Contract 7 beta patch. This version corrects
@@ -388,7 +432,9 @@ First public development preview. Intended to evaluate the DSL and CLI, read-onl
388
432
  - Not published to the npm registry; use the GitHub Release asset
389
433
  - Requires Node.js 24 or later
390
434
 
391
- [Unreleased]: https://github.com/mako10k/perttool/compare/v0.7.1...HEAD
435
+ [Unreleased]: https://github.com/mako10k/perttool/compare/v0.8.1...HEAD
436
+ [0.8.1]: https://github.com/mako10k/perttool/compare/v0.8.0...v0.8.1
437
+ [0.8.0]: https://github.com/mako10k/perttool/compare/v0.7.1...v0.8.0
392
438
  [0.7.1]: https://github.com/mako10k/perttool/compare/v0.7.0...v0.7.1
393
439
  [0.7.0]: https://github.com/mako10k/perttool/compare/v0.6.0...v0.7.0
394
440
  [0.6.0]: https://github.com/mako10k/perttool/compare/v0.5.5...v0.6.0
package/README.md CHANGED
@@ -33,32 +33,57 @@ Version `0.7.1` is a backward-compatible Contract 7 patch that corrects the
33
33
  installed Guide, command Help examples, and diagnostic navigation. It retains
34
34
  all 44 command paths, 20 root schemas, result and payload identities,
35
35
  package-root exports, and authority policies. Its beta publication does not
36
- move npm `latest`; `0.7.0` remains the exact rollback pin.
36
+ move npm `latest`; one separately authorized post-publication operation later
37
+ made `beta=latest=0.7.1`. Version `0.7.0` remains the exact rollback pin.
37
38
  The complete-schema Contract 6 artifact remains available by pinning `0.5.2`,
38
39
  and the first machine-schema Contract 6 artifact remains available by pinning
39
40
  `0.5.1`; Contract 5, Contract 4, and Contract 3 remain available by pinning
40
41
  `0.4.0`, `0.3.0`, and `0.2.0`, respectively. npm has no maintained `alpha`
41
42
  dist-tag; historical `0.1.0-alpha.2` remains available by exact pin.
42
43
 
44
+ Version `0.8.0` adds the public `perttool/core` and `perttool/node` subpaths,
45
+ the read-only `dag history` command, `Perttool.HistoricalGraphResult.v1`, and
46
+ the declaration-identity correction without changing Grammar 6 or CLI
47
+ Contract 7. It exposes 45 commands, 21 root schemas, 122 reference-identical
48
+ root and Node runtime exports, and 45 portable Core runtime exports. Its beta
49
+ publication moved only npm `beta` and left independently managed
50
+ `latest=0.7.1`; one separately authorized post-acceptance operation later made
51
+ `beta=latest=0.8.0`. Use `0.7.1` as the exact rollback pin.
52
+ The repository-only VSIX also adds separately negotiated historical snapshot,
53
+ proved-lineage, and timeline views for trusted local Git workspaces plus
54
+ verified read-only immutable source navigation. Those adapter results are not
55
+ CLI schemas or public package exports, and no public VSIX release is selected.
56
+ The private DAG presentation additionally bundles a deterministic left-to-right
57
+ Dagre layout, one-step historical defaults, bounded zoom/fit/scroll/pan, and a
58
+ separately negotiated exact current-frontier and NextResult v6 start-authority
59
+ focus result. Compact `Mnn`/`Tnn`/`Gnn` graph labels link to original-identity
60
+ details, and exact residual, resource-remaining, and task-time summaries keep
61
+ qualified Point forecasts distinct. Layout never becomes project semantics.
62
+
63
+ Version `0.8.1` is a backward-compatible Contract 7 patch for `dag advance`.
64
+ It preserves assurance frontier receipts when all terminal work events belong
65
+ to removed tasks, while retaining the `0.8.0` command, schema, package-export,
66
+ and authority boundaries. Use `0.8.0` as the exact rollback pin.
67
+
43
68
  ## Run without installing
44
69
 
45
70
  After beta publication, use `npx` for an occasional Contract 7 invocation and
46
71
  select the version explicitly:
47
72
 
48
73
  ```sh
49
- npx --yes --package=perttool@0.7.1 -- perttool --version
50
- npx --yes --package=perttool@0.7.1 -- perttool document check PLAN.pert
51
- npx --yes --package=perttool@0.7.1 -- perttool dag next PLAN.pert --format json
52
- npx --yes --package=perttool@0.7.1 -- perttool plan-assurance show PLAN.pert --format json
74
+ npx --yes --package=perttool@0.8.1 -- perttool --version
75
+ npx --yes --package=perttool@0.8.1 -- perttool document check PLAN.pert
76
+ npx --yes --package=perttool@0.8.1 -- perttool dag next PLAN.pert --format json
77
+ npx --yes --package=perttool@0.8.1 -- perttool dag history PLAN.pert --rev HEAD --format json
53
78
  ```
54
79
 
55
80
  The equivalent explicit `npm exec` form is:
56
81
 
57
82
  ```sh
58
- npm exec --yes --package=perttool@0.7.1 -- perttool --version
59
- npm exec --yes --package=perttool@0.7.1 -- perttool document check PLAN.pert
60
- npm exec --yes --package=perttool@0.7.1 -- perttool dag analyze PLAN.pert
61
- npm exec --yes --package=perttool@0.7.1 -- perttool plan-assurance hash PLAN.pert WORK --kind contract
83
+ npm exec --yes --package=perttool@0.8.1 -- perttool --version
84
+ npm exec --yes --package=perttool@0.8.1 -- perttool document check PLAN.pert
85
+ npm exec --yes --package=perttool@0.8.1 -- perttool dag analyze PLAN.pert
86
+ npm exec --yes --package=perttool@0.8.1 -- perttool plan-assurance hash PLAN.pert WORK --kind contract
62
87
  ```
63
88
 
64
89
  `npx` and `npm exec` may download the selected package version into the npm
@@ -68,18 +93,17 @@ Contract 3.
68
93
 
69
94
  ## Install
70
95
 
71
- Install the corrected Contract 7 CLI globally by exact version when it is used
96
+ Install the additive Contract 7 CLI globally by exact version when it is used
72
97
  regularly:
73
98
 
74
99
  ```sh
75
- npm install --global perttool@0.7.1
100
+ npm install --global perttool@0.8.1
76
101
  perttool --version
77
102
  ```
78
103
 
79
- The `0.7.1` release procedure publishes only npm `beta` and leaves the
80
- independently managed `latest` tag at `0.7.0`. Use the exact `0.7.1` pin for
81
- the corrected Guide and Help behavior; an unqualified installation remains on
82
- `0.7.0` unless a later, separately authorized promotion changes `latest`.
104
+ The `0.8.1` release publishes the compatible correction to npm `beta` and
105
+ `latest`. The exact pin remains the reproducible form for the public subpaths,
106
+ historical DAG command, and corrected advance behavior.
83
107
  Contract 6 remains available by exact pinning `perttool@0.6.0`; the pre-schema
84
108
  Contract 6 artifact remains available as
85
109
  `perttool@0.5.0`. Contract 5,
@@ -88,6 +112,44 @@ Contract 4, and Contract 3 remain available as exact pins
88
112
  preview remains installable only as the exact pin
89
113
  `perttool@0.1.0-alpha.2`.
90
114
 
115
+ ## Library subpaths in `0.8.0`
116
+
117
+ Version `0.8.0` provides two additive library boundaries:
118
+
119
+ ```js
120
+ import {
121
+ analyzeDocumentSnapshot,
122
+ createDocumentSession,
123
+ createDocumentSnapshot,
124
+ documentOffsetToPosition,
125
+ documentPositionToOffset,
126
+ formatDocument,
127
+ getGuide,
128
+ parseDocument,
129
+ validateDocument,
130
+ } from "perttool/core";
131
+ import {
132
+ getJsonSchemaCatalog,
133
+ readDocumentFile,
134
+ } from "perttool/node";
135
+ ```
136
+
137
+ `perttool/core` is the closed platform-neutral Grammar 6 source, graph,
138
+ exact-arithmetic, diagnostic, Help, Guide, projection, and document-session
139
+ surface. Immutable snapshots and sessions bind exact URI, generation, version,
140
+ text digest, parse/semantic state, UTF-16 positions, analysis options, and
141
+ cancellation-safe caches without filesystem or editor access. The caller
142
+ supplies the SHA-256 function. Its runtime closure has no Node builtin or
143
+ external package. `perttool/node` exposes the same 122 runtime values as the
144
+ existing `perttool` root, including file, schema, Git, hashing, and safe-write
145
+ APIs that still require Node.js 22 or later. Bundled JSON artifacts remain
146
+ available through `perttool/schemas/<schema-id>.schema.json`.
147
+
148
+ These subpaths are absent from the `0.7.1` rollback package. See the
149
+ [Shared Library Boundary](docs/specs/shared-library.md).
150
+ The protocol-neutral state contract is the
151
+ [Document Session Core](docs/specs/document-session.md).
152
+
91
153
  ## Plan files
92
154
 
93
155
  A `.pert` file is the source of truth and is intended to remain directly
@@ -396,6 +458,7 @@ new-start authority from unsealed, review-required, or unavailable plans.
396
458
  | Analyze schedules | `perttool dag analyze <file>` |
397
459
  | Select next work | `perttool dag next <file>` |
398
460
  | Remove completed history | `perttool dag advance <file>` |
461
+ | Reconstruct committed DAG history | `perttool dag history <file> ...` |
399
462
  | Inspect plan assurance | `perttool plan-assurance show|hash <file> ...` |
400
463
  | Seal or reseal reviewed plans | `perttool plan-assurance seal|reseal <file> ...` |
401
464
  | Maintain planning dependencies | `perttool plan-dependency add|set|remove` |
@@ -415,10 +478,12 @@ domain concepts. Both run without a document:
415
478
  ```sh
416
479
  perttool task set --help
417
480
  perttool help dag next --format json
481
+ perttool help dag history --format json
418
482
  perttool schema --format json
419
483
  perttool schema Perttool.NextResult.v6 --format json
420
484
  perttool schema Perttool.NextResult.v6 --view outline --format json
421
485
  perttool guide editing --level detail --format json
486
+ perttool guide historical-dag --level detail --format json
422
487
  ```
423
488
 
424
489
  ### JSON Schema artifacts
@@ -448,12 +513,13 @@ against the bundled `Perttool.Common.v1.schema.json`. The stable `$id` is an
448
513
  identifier only: validation does not require network access. Consumers must
449
514
  select compatibility from each result's `schema_version`, not from
450
515
  `tool_version`. See the
451
- [JSON Schema Artifact Contract](docs/specs/json-schema.md) for the complete
452
- 20-root inventory and versioning rules.
516
+ [JSON Schema Artifact Contract](docs/specs/json-schema.md) for the current
517
+ 21-root source inventory and versioning rules.
453
518
 
454
519
  ## LLM and automation use
455
520
 
456
- Use `--format json` for machine consumers. Versions `0.7.0` and `0.7.1` require
521
+ Use `--format json` for machine consumers. Versions `0.7.0`, `0.7.1`, and
522
+ `0.8.0` require
457
523
  `cli_contract_version == 7`. Published `0.6.0`, `0.5.5`, `0.5.4`, `0.5.3`,
458
524
  `0.5.2`, `0.5.1`, and `0.5.0` consumers must check
459
525
  `cli_contract_version == 6`;
@@ -474,6 +540,9 @@ assurance-aware result identities; see the
474
540
  [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md).
475
541
  In every case, check the result-specific `schema_version` before reading the
476
542
  rest of a result.
543
+ Version `0.8.0` adds `dag history`, `Perttool.HistoricalGraphResult.v1`, and
544
+ the Core and Node subpaths without changing CLI Contract 7; see the
545
+ [`0.7.1` to `0.8.0` migration](docs/process/0.7.1-to-0.8.0-migration.md).
477
546
  A complete, known, non-truncated `Perttool.NextResult.v6` with policy
478
547
  `recommendation_v1_plus_release_gate_plus_plan_assurance_v1` is required for
479
548
  the current source. Start only task IDs in
@@ -503,7 +572,17 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
503
572
  - [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md)
504
573
  - [`v0.7.0` release procedure](docs/process/0.7.0-release.md)
505
574
  - [`v0.7.1` Help and Guide consistency patch procedure](docs/process/0.7.1-release.md)
575
+ - [`0.7.1` to `0.8.0` migration](docs/process/0.7.1-to-0.8.0-migration.md)
576
+ - [`v0.8.0` release procedure](docs/process/0.8.0-release.md)
506
577
  - [Conditional Plan Assurance interface acceptance](docs/process/plan-assurance-interface-acceptance.md)
578
+ - [Shared Library Boundary](docs/specs/shared-library.md)
579
+ - [Editor Protocol Contract](docs/specs/editor-protocol.md)
580
+ - [Historical Editor Protocol Contract](docs/specs/historical-editor-protocol.md)
581
+ - [DAG Presentation and Focus Contract](docs/specs/dag-presentation.md)
582
+ - [DAG presentation and focus acceptance](docs/process/dag-presentation-acceptance.md)
583
+ - [DAG Compact Labels and Exact Time Summary Contract](docs/specs/dag-compact-presentation.md)
584
+ - [DAG compact presentation acceptance](docs/process/dag-compact-presentation-acceptance.md)
585
+ - [Document Session Core](docs/specs/document-session.md)
507
586
  - [Conditional Plan Assurance internal hash Core acceptance](docs/process/plan-assurance-hash-core-acceptance.md)
508
587
  - [Conditional Plan Assurance internal source Core acceptance](docs/process/plan-assurance-source-core-acceptance.md)
509
588
  - [Conditional Plan Assurance internal mutation Core acceptance](docs/process/plan-assurance-mutation-core-acceptance.md)
@@ -516,6 +595,7 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
516
595
  - [Help and Guide consistency correction](docs/specs/help-guide-consistency.md)
517
596
  - [Help and Guide consistency implementation plan](plans/help-guide-consistency.pert)
518
597
  - [`v0.7.1` release plan](plans/release-0.7.1.pert)
598
+ - [`v0.8.0` release plan](plans/release-0.8.0.pert)
519
599
  - [JSON Schema Artifact Contract](docs/specs/json-schema.md)
520
600
  - [JSON Schema source acceptance](docs/process/json-schema-acceptance.md)
521
601
  - [Contract 5-to-6 migration](docs/process/cli-contract-6-migration.md)
@@ -1,10 +1,9 @@
1
- import type { Diagnostic, SourceSpan } from "../model/diagnostics.js";
2
- import { type Rational } from "../model/rational.js";
3
- import type { DeclarationNode, TargetDeclarationKind, WorkEventKind } from "../model/syntax.js";
4
- import { type ActualWorkEvent } from "./source.js";
5
- import type { TargetGrammar5ValidatedDocument } from "../semantic/target-validator.js";
6
- export type TaskLifecycleState = "planned" | "active" | "blocked" | "suspended" | "done";
7
- export type ActualsCoverage = "complete" | "open" | "finish_only" | "unrecorded" | "unavailable";
1
+ import type { Diagnostic } from "../model/diagnostics.js";
2
+ import type { WorkEventKind } from "../model/syntax.js";
3
+ import { actualsDiagnostic } from "./reduction.js";
4
+ export { reduceTaskLifecycle, taskStatus, taskStatusSpan, validateStoredLifecycleState, } from "./reduction.js";
5
+ export { actualsDiagnostic };
6
+ export type { ActualsCoverage, LifecycleReduction, TaskLifecycleState, } from "./reduction.js";
8
7
  export interface LifecycleEventInput {
9
8
  readonly id?: string;
10
9
  readonly occurredAt: string;
@@ -82,20 +81,7 @@ export interface FinishActualsRequestNormalization {
82
81
  readonly request: NormalizedFinishActualsRequest | null;
83
82
  readonly diagnostics: readonly Diagnostic[];
84
83
  }
85
- export interface LifecycleReduction {
86
- readonly ok: boolean;
87
- readonly coverage: ActualsCoverage;
88
- readonly state: "active" | "suspended" | "done" | null;
89
- readonly derivedActiveTime: Rational | null;
90
- readonly diagnostics: readonly Diagnostic[];
91
- }
92
- export declare function actualsDiagnostic(code: "PTACT-104" | "PTACT-105" | "PTACT-106" | "PTACT-107" | "PTACT-108", message: string, cause: string, entityId: string | null, span?: SourceSpan, data?: Readonly<Record<string, unknown>>): Diagnostic;
93
84
  export declare function deriveWorkEventId(taskId: string, kind: WorkEventKind, canonicalOccurredAt: string): string;
94
85
  export declare function normalizeLifecycleMutationRequest(input: unknown): LifecycleMutationRequestNormalization;
95
86
  export declare function normalizeFinishActualsRequest(input: unknown): FinishActualsRequestNormalization;
96
- export declare function reduceTaskLifecycle(events: readonly ActualWorkEvent[]): LifecycleReduction;
97
- export declare function taskStatus(task: DeclarationNode<TargetDeclarationKind>): TaskLifecycleState;
98
- export declare function taskStatusSpan(task: DeclarationNode<TargetDeclarationKind>): SourceSpan;
99
- export declare function validateStoredLifecycleState(validated: TargetGrammar5ValidatedDocument): readonly Diagnostic[];
100
- export {};
101
87
  //# sourceMappingURL=lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/actuals/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/actuals/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,11 @@
1
- import { createHash } from "node:crypto";
1
+ import { sha256HexUtf8 } from "../model/sha256.js";
2
2
  import { canonicalizeEventDateTimeSourceToken, } from "../model/calendar.js";
3
- import { instantKey } from "../model/calendar-arithmetic.js";
4
- import { compareStableStrings } from "../model/diagnostics.js";
5
3
  import { canonicalizeExactDurationSourceToken } from "../model/exact-duration-source.js";
6
4
  import { canonicalizeExactPersonHoursSourceToken } from "../model/exact-person-hours-source.js";
7
- import { add, compare, divide, rational, subtract, ZERO, } from "../model/rational.js";
8
- import { fieldNamed } from "../model/syntax.js";
9
- import { projectActualsSourceModel, workEventsForTask, } from "./source.js";
5
+ import { actualsDiagnostic } from "./reduction.js";
6
+ export { reduceTaskLifecycle, taskStatus, taskStatusSpan, validateStoredLifecycleState, } from "./reduction.js";
7
+ export { actualsDiagnostic };
10
8
  const identifierPattern = /^[A-Za-z][A-Za-z0-9_-]*$/;
11
- const eventKindOrder = Object.freeze({
12
- start: 0,
13
- suspend: 1,
14
- resume: 2,
15
- finish: 3,
16
- });
17
- export function actualsDiagnostic(code, message, cause, entityId, span, data = {}) {
18
- return Object.freeze({
19
- code,
20
- severity: "error",
21
- message,
22
- ...(entityId === null ? {} : { entityId }),
23
- ...(span === undefined ? {} : { span }),
24
- helpTopic: "syntax.work-event",
25
- data: Object.freeze({ cause, ...data }),
26
- });
27
- }
28
9
  function invalidRequest(taskId, detail) {
29
10
  return Object.freeze({
30
11
  ok: false,
@@ -37,7 +18,7 @@ function invalidRequest(taskId, detail) {
37
18
  export function deriveWorkEventId(taskId, kind, canonicalOccurredAt) {
38
19
  const payload = `perttool.work-event-id.v1\u0000${taskId}\u0000${kind}` +
39
20
  `\u0000${canonicalOccurredAt}`;
40
- return `WE-${createHash("sha256").update(payload, "utf8").digest("hex")}`;
21
+ return `WE-${sha256HexUtf8(payload)}`;
41
22
  }
42
23
  export function normalizeLifecycleMutationRequest(input) {
43
24
  if (input === null || typeof input !== "object" || Array.isArray(input)) {
@@ -174,156 +155,4 @@ export function normalizeFinishActualsRequest(input) {
174
155
  }
175
156
  return normalized;
176
157
  }
177
- function eventInstant(event) {
178
- return instantKey(event.occurredAt);
179
- }
180
- function compareEvents(left, right) {
181
- const instantOrder = compare(eventInstant(left), eventInstant(right));
182
- if (instantOrder !== 0)
183
- return instantOrder;
184
- const kindOrder = eventKindOrder[left.kind] - eventKindOrder[right.kind];
185
- return kindOrder !== 0
186
- ? kindOrder
187
- : compareStableStrings(left.id, right.id);
188
- }
189
- function sequenceFailure(event, cause) {
190
- return Object.freeze({
191
- ok: false,
192
- coverage: "unavailable",
193
- state: null,
194
- derivedActiveTime: null,
195
- diagnostics: Object.freeze([
196
- actualsDiagnostic("PTACT-104", "invalid work-event lifecycle sequence", cause, event.id, event.idSpan),
197
- ]),
198
- });
199
- }
200
- export function reduceTaskLifecycle(events) {
201
- if (events.length === 0) {
202
- return Object.freeze({
203
- ok: true,
204
- coverage: "unrecorded",
205
- state: null,
206
- derivedActiveTime: null,
207
- diagnostics: Object.freeze([]),
208
- });
209
- }
210
- const ordered = [...events].sort(compareEvents);
211
- for (let index = 1; index < ordered.length; index += 1) {
212
- const previous = ordered[index - 1];
213
- const current = ordered[index];
214
- if (compare(eventInstant(previous), eventInstant(current)) === 0 &&
215
- previous.kind === current.kind) {
216
- return sequenceFailure(current, "duplicate_kind_at_instant");
217
- }
218
- }
219
- let state = null;
220
- let coverage = "open";
221
- let activeIntervalStart = null;
222
- let derivedActiveTime = ZERO;
223
- for (const [index, event] of ordered.entries()) {
224
- const instant = eventInstant(event);
225
- if (state === "done")
226
- return sequenceFailure(event, "event_after_finish");
227
- switch (event.kind) {
228
- case "start":
229
- if (index !== 0 || state !== null) {
230
- return sequenceFailure(event, "invalid_transition");
231
- }
232
- state = "active";
233
- activeIntervalStart = instant;
234
- break;
235
- case "suspend":
236
- if (state !== "active" || activeIntervalStart === null) {
237
- return sequenceFailure(event, "invalid_transition");
238
- }
239
- derivedActiveTime = add(derivedActiveTime, subtract(instant, activeIntervalStart));
240
- if (derivedActiveTime.numerator < 0n) {
241
- return sequenceFailure(event, "invalid_transition");
242
- }
243
- state = "suspended";
244
- activeIntervalStart = null;
245
- break;
246
- case "resume":
247
- if (state !== "suspended") {
248
- return sequenceFailure(event, "invalid_transition");
249
- }
250
- state = "active";
251
- activeIntervalStart = instant;
252
- break;
253
- case "finish":
254
- if (index === 0 && state === null) {
255
- state = "done";
256
- coverage = "finish_only";
257
- break;
258
- }
259
- if (state !== "active" && state !== "suspended") {
260
- return sequenceFailure(event, "invalid_transition");
261
- }
262
- if (state === "active" && activeIntervalStart !== null) {
263
- derivedActiveTime = add(derivedActiveTime, subtract(instant, activeIntervalStart));
264
- if (derivedActiveTime.numerator < 0n) {
265
- return sequenceFailure(event, "invalid_transition");
266
- }
267
- }
268
- state = "done";
269
- activeIntervalStart = null;
270
- coverage = "complete";
271
- break;
272
- }
273
- }
274
- return Object.freeze({
275
- ok: true,
276
- coverage,
277
- state,
278
- derivedActiveTime: coverage === "complete"
279
- ? divide(derivedActiveTime, rational(3600n))
280
- : null,
281
- diagnostics: Object.freeze([]),
282
- });
283
- }
284
- export function taskStatus(task) {
285
- return (fieldNamed(task, "status")?.value ?? "planned");
286
- }
287
- export function taskStatusSpan(task) {
288
- return fieldNamed(task, "status")?.valueSpan ?? task.idSpan;
289
- }
290
- export function validateStoredLifecycleState(validated) {
291
- const model = projectActualsSourceModel(validated);
292
- const diagnostics = [];
293
- for (const task of validated.document.declarations) {
294
- if (task.kind !== "task")
295
- continue;
296
- const events = workEventsForTask(model, task.id);
297
- const reduction = reduceTaskLifecycle(events);
298
- if (!reduction.ok) {
299
- diagnostics.push(...reduction.diagnostics);
300
- continue;
301
- }
302
- if (reduction.coverage === "unrecorded")
303
- continue;
304
- const stored = taskStatus(task);
305
- if (reduction.state !== stored) {
306
- diagnostics.push(actualsDiagnostic("PTACT-104", "invalid work-event lifecycle sequence", "state_event_mismatch", task.id, taskStatusSpan(task), {
307
- stored_state: stored,
308
- event_state: reduction.state,
309
- }));
310
- continue;
311
- }
312
- if (reduction.coverage !== "complete")
313
- continue;
314
- const finish = events.find(({ kind }) => kind === "finish");
315
- if (finish?.activeTime !== null &&
316
- finish?.activeTime !== undefined &&
317
- reduction.derivedActiveTime !== null &&
318
- compare(finish.activeTime.value, reduction.derivedActiveTime) !== 0) {
319
- diagnostics.push(actualsDiagnostic("PTACT-107", "explicit active time differs from the event-derived active time", "active_time_mismatch", finish.id, finish.activeTime.valueSpan, {
320
- explicit_numerator: finish.activeTime.value.numerator.toString(),
321
- explicit_denominator: finish.activeTime.value.denominator.toString(),
322
- derived_numerator: reduction.derivedActiveTime.numerator.toString(),
323
- derived_denominator: reduction.derivedActiveTime.denominator.toString(),
324
- }));
325
- }
326
- }
327
- return Object.freeze(diagnostics);
328
- }
329
158
  //# sourceMappingURL=lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/actuals/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/actuals/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,uCAAuC,EAAE,MAAM,uCAAuC,CAAC;AAEhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAO7B,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAyGrD,SAAS,cAAc,CACrB,MAAqB,EACrB,MAAc;IAEd,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,iBAAiB,CACf,WAAW,EACX,oCAAoC,EACpC,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,EAAE,MAAM,EAAE,CACX;SACF,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,IAAmB,EACnB,mBAA2B;IAE3B,MAAM,OAAO,GACX,kCAAkC,MAAM,SAAS,IAAI,EAAE;QACvD,SAAS,mBAAmB,EAAE,CAAC;IACjC,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAc;IAEd,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,cAAc,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACtD;QACD,CACE,MAAM,CAAC,MAAM,CAAC,KAAK,YAAY;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,cAAc;YACjC,MAAM,CAAC,MAAM,CAAC,KAAK,aAAa;YAChC,MAAM,CAAC,MAAM,CAAC,KAAK,oBAAoB,CACxC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACpC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EACzC,CAAC;QACD,OAAO,cAAc,CACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAC9D,uBAAuB,CACxB,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,cAAc,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,WAAW,GAAG,KAAgC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAA0B,CAAC;IACrD,MAAM,eAAe,GAGhB;QACH,YAAY,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC3C,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACvD,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC5C,oBAAoB,EAAE,IAAI,GAAG,CAAC;YAC5B,IAAI;YACJ,YAAY;YACZ,YAAY;YACZ,QAAQ;SACT,CAAC;KACH,CAAC;IACF,IACE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAC3C,EACD,CAAC;QACD,OAAO,cAAc,CACnB,MAAM,EACN,IAAI,KAAK,oBAAoB;YAC3B,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CACzD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,cAAc,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,UAAU,GAAG,oCAAoC,CACrD,WAAW,CAAC,YAAY,CAAC,CAC1B,CAAC;IACF,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,IACE,WAAW,KAAK,SAAS;QACzB,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EACzE,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,SAAS,GACb,IAAI,KAAK,oBAAoB;QAC3B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAqC,CAAC;IACrE,MAAM,EAAE,GAAG,WAAW,IAAI,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3E,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrB,IAAI;gBACJ,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;oBACnB,EAAE;oBACF,UAAU;oBACV,MAAM,EAAE,MAAM,IAAI,IAAI;iBACvB,CAAC;aACH,CAAC;YACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrB,IAAI;gBACJ,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;aACzC,CAAC;YACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS;QAC1C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,oCAAoC,CAAC,WAAW,CAAC,CAAC;IACtD,IACE,WAAW,KAAK,SAAS;QACzB,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACnD,CAAC;QACD,OAAO,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,KAAK,SAAS;QACtC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,uCAAuC,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI;YACJ,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,EAAE;gBACF,UAAU;gBACV,UAAU,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI;gBACrC,MAAM;aACP,CAAC;SACH,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAc;IAEd,MAAM,UAAU,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC5D,IACE,CAAC,UAAU,CAAC,EAAE;QACd,UAAU,CAAC,OAAO,KAAK,IAAI;QAC3B,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,EAChD,CAAC;QACD,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjD,OAAO,cAAc,CACnB,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,uBAAuB,CACa,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAA+C,CAAC;AACzD,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Diagnostic, SourceSpan } from "../model/diagnostics.js";
2
+ import { type Rational } from "../model/rational.js";
3
+ import type { DeclarationNode, TargetDeclarationKind } from "../model/syntax.js";
4
+ import type { TargetGrammar5ValidatedDocument } from "../semantic/target-validator.js";
5
+ import { type ActualWorkEvent } from "./source.js";
6
+ export type TaskLifecycleState = "planned" | "active" | "blocked" | "suspended" | "done";
7
+ export type ActualsCoverage = "complete" | "open" | "finish_only" | "unrecorded" | "unavailable";
8
+ export interface LifecycleReduction {
9
+ readonly ok: boolean;
10
+ readonly coverage: ActualsCoverage;
11
+ readonly state: "active" | "suspended" | "done" | null;
12
+ readonly derivedActiveTime: Rational | null;
13
+ readonly diagnostics: readonly Diagnostic[];
14
+ }
15
+ export declare function actualsDiagnostic(code: "PTACT-104" | "PTACT-105" | "PTACT-106" | "PTACT-107" | "PTACT-108", message: string, cause: string, entityId: string | null, span?: SourceSpan, data?: Readonly<Record<string, unknown>>): Diagnostic;
16
+ export declare function reduceTaskLifecycle(events: readonly ActualWorkEvent[]): LifecycleReduction;
17
+ export declare function taskStatus(task: DeclarationNode<TargetDeclarationKind>): TaskLifecycleState;
18
+ export declare function taskStatusSpan(task: DeclarationNode<TargetDeclarationKind>): SourceSpan;
19
+ export declare function validateStoredLifecycleState(validated: TargetGrammar5ValidatedDocument): readonly Diagnostic[];
20
+ //# sourceMappingURL=reduction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduction.d.ts","sourceRoot":"","sources":["../../src/actuals/reduction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAOL,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AASrB,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,CAAC;AAEX,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,aAAa,GACb,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EACA,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,CAAC,EAAE,UAAU,EACjB,IAAI,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GAC3C,UAAU,CAUZ;AAoCD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,kBAAkB,CA4FpB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAC3C,kBAAkB,CAEpB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAC3C,UAAU,CAEZ;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,+BAA+B,GACzC,SAAS,UAAU,EAAE,CAwDvB"}