perttool 0.7.1 → 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 (229) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/README.md +94 -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.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 +62 -2
  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 +78 -0
  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 +2 -2
  159. package/dist/history/project-history.js.map +1 -1
  160. package/dist/index.d.ts +2 -0
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +1 -0
  163. package/dist/index.js.map +1 -1
  164. package/dist/io/document-file.js +2 -2
  165. package/dist/io/document-file.js.map +1 -1
  166. package/dist/io/safe-write.js +1 -1
  167. package/dist/io/safe-write.js.map +1 -1
  168. package/dist/model/sha256.d.ts +5 -0
  169. package/dist/model/sha256.d.ts.map +1 -0
  170. package/dist/model/sha256.js +105 -0
  171. package/dist/model/sha256.js.map +1 -0
  172. package/dist/mutation/advance.js +3 -3
  173. package/dist/mutation/advance.js.map +1 -1
  174. package/dist/mutation/diagnostics.d.ts +2 -2
  175. package/dist/mutation/diagnostics.d.ts.map +1 -1
  176. package/dist/mutation/diagnostics.js.map +1 -1
  177. package/dist/mutation/planner.d.ts +27 -0
  178. package/dist/mutation/planner.d.ts.map +1 -0
  179. package/dist/mutation/planner.js +206 -0
  180. package/dist/mutation/planner.js.map +1 -0
  181. package/dist/mutation/source.d.ts +2 -1
  182. package/dist/mutation/source.d.ts.map +1 -1
  183. package/dist/mutation/source.js +14 -0
  184. package/dist/mutation/source.js.map +1 -1
  185. package/dist/mutation/target-planner.d.ts +18 -0
  186. package/dist/mutation/target-planner.d.ts.map +1 -0
  187. package/dist/mutation/target-planner.js +160 -0
  188. package/dist/mutation/target-planner.js.map +1 -0
  189. package/dist/mutation/task.d.ts.map +1 -1
  190. package/dist/mutation/task.js +19 -11
  191. package/dist/mutation/task.js.map +1 -1
  192. package/dist/mutation/types.d.ts +1 -1
  193. package/dist/mutation/types.d.ts.map +1 -1
  194. package/dist/node/historical-host.d.ts +6 -0
  195. package/dist/node/historical-host.d.ts.map +1 -0
  196. package/dist/node/historical-host.js +8 -0
  197. package/dist/node/historical-host.js.map +1 -0
  198. package/dist/node/host.d.ts +3 -0
  199. package/dist/node/host.d.ts.map +1 -0
  200. package/dist/node/host.js +48 -0
  201. package/dist/node/host.js.map +1 -0
  202. package/dist/node/index.d.ts +2 -0
  203. package/dist/node/index.d.ts.map +1 -0
  204. package/dist/node/index.js +2 -0
  205. package/dist/node/index.js.map +1 -0
  206. package/dist/perttool-vscode-private-0.0.0-d1578b9.vsix +0 -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,37 @@ 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.0] - 2026-08-07
8
+
9
+ Additive Grammar 6 and CLI Contract 7 beta minor. This version publishes the
10
+ adapter-platform library boundary, read-only historical DAG reconstruction,
11
+ and the declaration-identity correction.
12
+
13
+ ### Added
14
+
15
+ - Added the read-only `dag history` command with bounded inclusive Git revision
16
+ inputs, explicit first-parent scope, snapshot, proved-lineage, and timeline
17
+ views, optional single-checkpoint analysis, immutable source bindings,
18
+ `Perttool.HistoricalGraphResult.v1`, and the `historical-dag` Guide topic.
19
+ Three-way ancestry remains fail-closed and release selection remains
20
+ separate.
21
+ - Added source-package `perttool/core` and `perttool/node` subpath exports.
22
+ Core provides a closed platform-neutral Grammar 6 source, graph-analysis,
23
+ exact-arithmetic, diagnostic, Help, Guide, and projection surface; Node is
24
+ reference-identical to the 122-name package-root facade.
25
+
26
+ ### Changed
27
+
28
+ - Increased the Contract 7 registry from 44 to 45 commands, the root schema
29
+ catalog from 20 to 21 identities, and the root facade from 121 to 122 runtime
30
+ exports without changing Grammar or CLI Contract versions.
31
+
32
+ ### Fixed
33
+
34
+ - Made task insertion, mutation, lifecycle, and LSP definition distinguish a
35
+ task declaration from its same-ID `plan_seal` while preserving existing
36
+ valid noncanonical source order.
37
+
7
38
  ## [0.7.1] - 2026-08-05
8
39
 
9
40
  Compatible Grammar 6 and CLI Contract 7 beta patch. This version corrects
@@ -388,7 +419,8 @@ First public development preview. Intended to evaluate the DSL and CLI, read-onl
388
419
  - Not published to the npm registry; use the GitHub Release asset
389
420
  - Requires Node.js 24 or later
390
421
 
391
- [Unreleased]: https://github.com/mako10k/perttool/compare/v0.7.1...HEAD
422
+ [Unreleased]: https://github.com/mako10k/perttool/compare/v0.8.0...HEAD
423
+ [0.8.0]: https://github.com/mako10k/perttool/compare/v0.7.1...v0.8.0
392
424
  [0.7.1]: https://github.com/mako10k/perttool/compare/v0.7.0...v0.7.1
393
425
  [0.7.0]: https://github.com/mako10k/perttool/compare/v0.6.0...v0.7.0
394
426
  [0.6.0]: https://github.com/mako10k/perttool/compare/v0.5.5...v0.6.0
package/README.md CHANGED
@@ -33,32 +33,51 @@ 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 moves only npm `beta` and leaves independently managed
50
+ `latest=0.7.1`; use `0.7.1` as the exact rollback pin.
51
+ The repository-only VSIX also adds separately negotiated historical snapshot,
52
+ proved-lineage, and timeline views for trusted local Git workspaces plus
53
+ verified read-only immutable source navigation. Those adapter results are not
54
+ CLI schemas or public package exports, and no public VSIX release is selected.
55
+ The private DAG presentation additionally bundles a deterministic left-to-right
56
+ Dagre layout, one-step historical defaults, bounded zoom/fit/scroll/pan, and a
57
+ separately negotiated exact current-frontier and NextResult v6 start-authority
58
+ focus result. Compact `Mnn`/`Tnn`/`Gnn` graph labels link to original-identity
59
+ details, and exact residual, resource-remaining, and task-time summaries keep
60
+ qualified Point forecasts distinct. Layout never becomes project semantics.
61
+
43
62
  ## Run without installing
44
63
 
45
64
  After beta publication, use `npx` for an occasional Contract 7 invocation and
46
65
  select the version explicitly:
47
66
 
48
67
  ```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
68
+ npx --yes --package=perttool@0.8.0 -- perttool --version
69
+ npx --yes --package=perttool@0.8.0 -- perttool document check PLAN.pert
70
+ npx --yes --package=perttool@0.8.0 -- perttool dag next PLAN.pert --format json
71
+ npx --yes --package=perttool@0.8.0 -- perttool dag history PLAN.pert --rev HEAD --format json
53
72
  ```
54
73
 
55
74
  The equivalent explicit `npm exec` form is:
56
75
 
57
76
  ```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
77
+ npm exec --yes --package=perttool@0.8.0 -- perttool --version
78
+ npm exec --yes --package=perttool@0.8.0 -- perttool document check PLAN.pert
79
+ npm exec --yes --package=perttool@0.8.0 -- perttool dag analyze PLAN.pert
80
+ npm exec --yes --package=perttool@0.8.0 -- perttool plan-assurance hash PLAN.pert WORK --kind contract
62
81
  ```
63
82
 
64
83
  `npx` and `npm exec` may download the selected package version into the npm
@@ -68,18 +87,19 @@ Contract 3.
68
87
 
69
88
  ## Install
70
89
 
71
- Install the corrected Contract 7 CLI globally by exact version when it is used
90
+ Install the additive Contract 7 CLI globally by exact version when it is used
72
91
  regularly:
73
92
 
74
93
  ```sh
75
- npm install --global perttool@0.7.1
94
+ npm install --global perttool@0.8.0
76
95
  perttool --version
77
96
  ```
78
97
 
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`.
98
+ The `0.8.0` release procedure publishes only npm `beta` and leaves the
99
+ independently managed `latest` tag at `0.7.1`. Select `0.8.0` explicitly for
100
+ the new public subpaths and historical DAG command; an unqualified install
101
+ continues to select `0.7.1` unless a later operation separately promotes
102
+ `latest`.
83
103
  Contract 6 remains available by exact pinning `perttool@0.6.0`; the pre-schema
84
104
  Contract 6 artifact remains available as
85
105
  `perttool@0.5.0`. Contract 5,
@@ -88,6 +108,44 @@ Contract 4, and Contract 3 remain available as exact pins
88
108
  preview remains installable only as the exact pin
89
109
  `perttool@0.1.0-alpha.2`.
90
110
 
111
+ ## Library subpaths in `0.8.0`
112
+
113
+ Version `0.8.0` provides two additive library boundaries:
114
+
115
+ ```js
116
+ import {
117
+ analyzeDocumentSnapshot,
118
+ createDocumentSession,
119
+ createDocumentSnapshot,
120
+ documentOffsetToPosition,
121
+ documentPositionToOffset,
122
+ formatDocument,
123
+ getGuide,
124
+ parseDocument,
125
+ validateDocument,
126
+ } from "perttool/core";
127
+ import {
128
+ getJsonSchemaCatalog,
129
+ readDocumentFile,
130
+ } from "perttool/node";
131
+ ```
132
+
133
+ `perttool/core` is the closed platform-neutral Grammar 6 source, graph,
134
+ exact-arithmetic, diagnostic, Help, Guide, projection, and document-session
135
+ surface. Immutable snapshots and sessions bind exact URI, generation, version,
136
+ text digest, parse/semantic state, UTF-16 positions, analysis options, and
137
+ cancellation-safe caches without filesystem or editor access. The caller
138
+ supplies the SHA-256 function. Its runtime closure has no Node builtin or
139
+ external package. `perttool/node` exposes the same 122 runtime values as the
140
+ existing `perttool` root, including file, schema, Git, hashing, and safe-write
141
+ APIs that still require Node.js 22 or later. Bundled JSON artifacts remain
142
+ available through `perttool/schemas/<schema-id>.schema.json`.
143
+
144
+ These subpaths are absent from the `0.7.1` rollback package. See the
145
+ [Shared Library Boundary](docs/specs/shared-library.md).
146
+ The protocol-neutral state contract is the
147
+ [Document Session Core](docs/specs/document-session.md).
148
+
91
149
  ## Plan files
92
150
 
93
151
  A `.pert` file is the source of truth and is intended to remain directly
@@ -396,6 +454,7 @@ new-start authority from unsealed, review-required, or unavailable plans.
396
454
  | Analyze schedules | `perttool dag analyze <file>` |
397
455
  | Select next work | `perttool dag next <file>` |
398
456
  | Remove completed history | `perttool dag advance <file>` |
457
+ | Reconstruct committed DAG history | `perttool dag history <file> ...` |
399
458
  | Inspect plan assurance | `perttool plan-assurance show|hash <file> ...` |
400
459
  | Seal or reseal reviewed plans | `perttool plan-assurance seal|reseal <file> ...` |
401
460
  | Maintain planning dependencies | `perttool plan-dependency add|set|remove` |
@@ -415,10 +474,12 @@ domain concepts. Both run without a document:
415
474
  ```sh
416
475
  perttool task set --help
417
476
  perttool help dag next --format json
477
+ perttool help dag history --format json
418
478
  perttool schema --format json
419
479
  perttool schema Perttool.NextResult.v6 --format json
420
480
  perttool schema Perttool.NextResult.v6 --view outline --format json
421
481
  perttool guide editing --level detail --format json
482
+ perttool guide historical-dag --level detail --format json
422
483
  ```
423
484
 
424
485
  ### JSON Schema artifacts
@@ -448,12 +509,13 @@ against the bundled `Perttool.Common.v1.schema.json`. The stable `$id` is an
448
509
  identifier only: validation does not require network access. Consumers must
449
510
  select compatibility from each result's `schema_version`, not from
450
511
  `tool_version`. See the
451
- [JSON Schema Artifact Contract](docs/specs/json-schema.md) for the complete
452
- 20-root inventory and versioning rules.
512
+ [JSON Schema Artifact Contract](docs/specs/json-schema.md) for the current
513
+ 21-root source inventory and versioning rules.
453
514
 
454
515
  ## LLM and automation use
455
516
 
456
- Use `--format json` for machine consumers. Versions `0.7.0` and `0.7.1` require
517
+ Use `--format json` for machine consumers. Versions `0.7.0`, `0.7.1`, and
518
+ `0.8.0` require
457
519
  `cli_contract_version == 7`. Published `0.6.0`, `0.5.5`, `0.5.4`, `0.5.3`,
458
520
  `0.5.2`, `0.5.1`, and `0.5.0` consumers must check
459
521
  `cli_contract_version == 6`;
@@ -474,6 +536,9 @@ assurance-aware result identities; see the
474
536
  [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md).
475
537
  In every case, check the result-specific `schema_version` before reading the
476
538
  rest of a result.
539
+ Version `0.8.0` adds `dag history`, `Perttool.HistoricalGraphResult.v1`, and
540
+ the Core and Node subpaths without changing CLI Contract 7; see the
541
+ [`0.7.1` to `0.8.0` migration](docs/process/0.7.1-to-0.8.0-migration.md).
477
542
  A complete, known, non-truncated `Perttool.NextResult.v6` with policy
478
543
  `recommendation_v1_plus_release_gate_plus_plan_assurance_v1` is required for
479
544
  the current source. Start only task IDs in
@@ -503,7 +568,17 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
503
568
  - [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md)
504
569
  - [`v0.7.0` release procedure](docs/process/0.7.0-release.md)
505
570
  - [`v0.7.1` Help and Guide consistency patch procedure](docs/process/0.7.1-release.md)
571
+ - [`0.7.1` to `0.8.0` migration](docs/process/0.7.1-to-0.8.0-migration.md)
572
+ - [`v0.8.0` release procedure](docs/process/0.8.0-release.md)
506
573
  - [Conditional Plan Assurance interface acceptance](docs/process/plan-assurance-interface-acceptance.md)
574
+ - [Shared Library Boundary](docs/specs/shared-library.md)
575
+ - [Editor Protocol Contract](docs/specs/editor-protocol.md)
576
+ - [Historical Editor Protocol Contract](docs/specs/historical-editor-protocol.md)
577
+ - [DAG Presentation and Focus Contract](docs/specs/dag-presentation.md)
578
+ - [DAG presentation and focus acceptance](docs/process/dag-presentation-acceptance.md)
579
+ - [DAG Compact Labels and Exact Time Summary Contract](docs/specs/dag-compact-presentation.md)
580
+ - [DAG compact presentation acceptance](docs/process/dag-compact-presentation-acceptance.md)
581
+ - [Document Session Core](docs/specs/document-session.md)
507
582
  - [Conditional Plan Assurance internal hash Core acceptance](docs/process/plan-assurance-hash-core-acceptance.md)
508
583
  - [Conditional Plan Assurance internal source Core acceptance](docs/process/plan-assurance-source-core-acceptance.md)
509
584
  - [Conditional Plan Assurance internal mutation Core acceptance](docs/process/plan-assurance-mutation-core-acceptance.md)
@@ -516,6 +591,7 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
516
591
  - [Help and Guide consistency correction](docs/specs/help-guide-consistency.md)
517
592
  - [Help and Guide consistency implementation plan](plans/help-guide-consistency.pert)
518
593
  - [`v0.7.1` release plan](plans/release-0.7.1.pert)
594
+ - [`v0.8.0` release plan](plans/release-0.8.0.pert)
519
595
  - [JSON Schema Artifact Contract](docs/specs/json-schema.md)
520
596
  - [JSON Schema source acceptance](docs/process/json-schema-acceptance.md)
521
597
  - [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":"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"}
@@ -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"}