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.
- package/CHANGELOG.md +47 -1
- package/README.md +98 -18
- package/dist/actuals/lifecycle.d.ts +6 -20
- package/dist/actuals/lifecycle.d.ts.map +1 -1
- package/dist/actuals/lifecycle.js +5 -176
- package/dist/actuals/lifecycle.js.map +1 -1
- package/dist/actuals/reduction.d.ts +20 -0
- package/dist/actuals/reduction.d.ts.map +1 -0
- package/dist/actuals/reduction.js +175 -0
- package/dist/actuals/reduction.js.map +1 -0
- package/dist/analysis/service.d.ts +33 -0
- package/dist/analysis/service.d.ts.map +1 -0
- package/dist/analysis/service.js +153 -0
- package/dist/analysis/service.js.map +1 -0
- package/dist/analysis/target-temporal-input.d.ts +88 -0
- package/dist/analysis/target-temporal-input.d.ts.map +1 -0
- package/dist/analysis/target-temporal-input.js +249 -0
- package/dist/analysis/target-temporal-input.js.map +1 -0
- package/dist/analysis/temporal-deadline.d.ts +1 -1
- package/dist/analysis/temporal-deadline.d.ts.map +1 -1
- package/dist/analysis/temporal-precedence.d.ts +1 -1
- package/dist/analysis/temporal-precedence.d.ts.map +1 -1
- package/dist/analysis/temporal-precedence.js +1 -1
- package/dist/analysis/temporal-precedence.js.map +1 -1
- package/dist/analysis/temporal-resource.d.ts +1 -1
- package/dist/analysis/temporal-resource.d.ts.map +1 -1
- package/dist/analysis/temporal-resource.js +1 -1
- package/dist/analysis/temporal-resource.js.map +1 -1
- package/dist/application/advance-history.d.ts +2 -1
- package/dist/application/advance-history.d.ts.map +1 -1
- package/dist/application/advance-history.js +1 -1
- package/dist/application/advance-history.js.map +1 -1
- package/dist/application/analyze.d.ts +1 -32
- package/dist/application/analyze.d.ts.map +1 -1
- package/dist/application/analyze.js +1 -152
- package/dist/application/analyze.js.map +1 -1
- package/dist/application/check.d.ts +1 -42
- package/dist/application/check.d.ts.map +1 -1
- package/dist/application/check.js +1 -109
- package/dist/application/check.js.map +1 -1
- package/dist/application/cli-facade.d.ts +85 -0
- package/dist/application/cli-facade.d.ts.map +1 -0
- package/dist/application/cli-facade.js +108 -0
- package/dist/application/cli-facade.js.map +1 -0
- package/dist/application/contract6-mutation.js +2 -2
- package/dist/application/contract6-mutation.js.map +1 -1
- package/dist/application/contract7-mermaid.d.ts.map +1 -1
- package/dist/application/contract7-mermaid.js +3 -3
- package/dist/application/contract7-mermaid.js.map +1 -1
- package/dist/application/contract7-source.d.ts +1 -7
- package/dist/application/contract7-source.d.ts.map +1 -1
- package/dist/application/contract7-source.js +4 -12
- package/dist/application/contract7-source.js.map +1 -1
- package/dist/application/editor-dag-focus.d.ts +52 -0
- package/dist/application/editor-dag-focus.d.ts.map +1 -0
- package/dist/application/editor-dag-focus.js +132 -0
- package/dist/application/editor-dag-focus.js.map +1 -0
- package/dist/application/format.js +2 -2
- package/dist/application/format.js.map +1 -1
- package/dist/application/mutate.d.ts +1 -26
- package/dist/application/mutate.d.ts.map +1 -1
- package/dist/application/mutate.js +1 -205
- package/dist/application/mutate.js.map +1 -1
- package/dist/application/next.js +2 -2
- package/dist/application/next.js.map +1 -1
- package/dist/application/target-actuals-advance.js +2 -2
- package/dist/application/target-actuals-advance.js.map +1 -1
- package/dist/application/target-actuals-analysis.js +2 -2
- package/dist/application/target-actuals-analysis.js.map +1 -1
- package/dist/application/target-actuals-mutation.d.ts.map +1 -1
- package/dist/application/target-actuals-mutation.js +6 -5
- package/dist/application/target-actuals-mutation.js.map +1 -1
- package/dist/application/target-assurance-analysis.js +2 -2
- package/dist/application/target-assurance-analysis.js.map +1 -1
- package/dist/application/target-assurance-write.d.ts +2 -1
- package/dist/application/target-assurance-write.d.ts.map +1 -1
- package/dist/application/target-assurance-write.js +36 -12
- package/dist/application/target-assurance-write.js.map +1 -1
- package/dist/application/target-governance-mutation.js +2 -2
- package/dist/application/target-governance-mutation.js.map +1 -1
- package/dist/application/target-historical-graph.d.ts +124 -0
- package/dist/application/target-historical-graph.d.ts.map +1 -0
- package/dist/application/target-historical-graph.js +547 -0
- package/dist/application/target-historical-graph.js.map +1 -0
- package/dist/application/target-mutate.d.ts +1 -17
- package/dist/application/target-mutate.d.ts.map +1 -1
- package/dist/application/target-mutate.js +1 -159
- package/dist/application/target-mutate.js.map +1 -1
- package/dist/application/target-project-history.d.ts +2 -1
- package/dist/application/target-project-history.d.ts.map +1 -1
- package/dist/application/target-project-history.js +3 -3
- package/dist/application/target-project-history.js.map +1 -1
- package/dist/application/target-temporal-analysis.js +2 -2
- package/dist/application/target-temporal-analysis.js.map +1 -1
- package/dist/application/target-temporal-input.d.ts +1 -87
- package/dist/application/target-temporal-input.d.ts.map +1 -1
- package/dist/application/target-temporal-input.js +1 -248
- package/dist/application/target-temporal-input.js.map +1 -1
- package/dist/application/target-unit-migration-candidate.js +2 -2
- package/dist/application/target-unit-migration-candidate.js.map +1 -1
- package/dist/assurance/advance.d.ts.map +1 -1
- package/dist/assurance/advance.js +15 -5
- package/dist/assurance/advance.js.map +1 -1
- package/dist/assurance/canonical.js +2 -2
- package/dist/assurance/canonical.js.map +1 -1
- package/dist/assurance/compatibility.js +2 -2
- package/dist/assurance/compatibility.js.map +1 -1
- package/dist/assurance/mermaid.d.ts +4 -2
- package/dist/assurance/mermaid.d.ts.map +1 -1
- package/dist/assurance/mermaid.js +11 -7
- package/dist/assurance/mermaid.js.map +1 -1
- package/dist/assurance/mutation.d.ts.map +1 -1
- package/dist/assurance/mutation.js +9 -23
- package/dist/assurance/mutation.js.map +1 -1
- package/dist/cli.js +66 -26
- package/dist/cli.js.map +1 -1
- package/dist/command/assurance-discovery.d.ts.map +1 -1
- package/dist/command/assurance-discovery.js +62 -2
- package/dist/command/assurance-discovery.js.map +1 -1
- package/dist/command/assurance-usage.d.ts.map +1 -1
- package/dist/command/assurance-usage.js +11 -0
- package/dist/command/assurance-usage.js.map +1 -1
- package/dist/conversion/mermaid-import.js +3 -3
- package/dist/conversion/mermaid-import.js.map +1 -1
- package/dist/conversion/mermaid.d.ts +1 -1
- package/dist/conversion/mermaid.d.ts.map +1 -1
- package/dist/conversion/mermaid.js +4 -4
- package/dist/conversion/mermaid.js.map +1 -1
- package/dist/core/index.d.ts +33 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/source.d.ts +8 -0
- package/dist/core/source.d.ts.map +1 -0
- package/dist/core/source.js +11 -0
- package/dist/core/source.js.map +1 -0
- package/dist/formatter/source-formatter.d.ts +1 -1
- package/dist/formatter/source-formatter.d.ts.map +1 -1
- package/dist/formatter/source-formatter.js +1 -1
- package/dist/formatter/source-formatter.js.map +1 -1
- package/dist/guidance/validator.js +2 -2
- package/dist/guidance/validator.js.map +1 -1
- package/dist/help/assurance-guide.d.ts.map +1 -1
- package/dist/help/assurance-guide.js +78 -0
- package/dist/help/assurance-guide.js.map +1 -1
- package/dist/history/git-probe.d.ts +71 -0
- package/dist/history/git-probe.d.ts.map +1 -1
- package/dist/history/git-probe.js +517 -0
- package/dist/history/git-probe.js.map +1 -1
- package/dist/history/historical-graph.d.ts +174 -0
- package/dist/history/historical-graph.d.ts.map +1 -0
- package/dist/history/historical-graph.js +870 -0
- package/dist/history/historical-graph.js.map +1 -0
- package/dist/history/historical-transition.d.ts +311 -0
- package/dist/history/historical-transition.d.ts.map +1 -0
- package/dist/history/historical-transition.js +998 -0
- package/dist/history/historical-transition.js.map +1 -0
- package/dist/history/project-history.d.ts.map +1 -1
- package/dist/history/project-history.js +2 -2
- package/dist/history/project-history.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/io/document-file.js +2 -2
- package/dist/io/document-file.js.map +1 -1
- package/dist/io/safe-write.js +1 -1
- package/dist/io/safe-write.js.map +1 -1
- package/dist/model/sha256.d.ts +5 -0
- package/dist/model/sha256.d.ts.map +1 -0
- package/dist/model/sha256.js +105 -0
- package/dist/model/sha256.js.map +1 -0
- package/dist/mutation/advance.js +3 -3
- package/dist/mutation/advance.js.map +1 -1
- package/dist/mutation/diagnostics.d.ts +2 -2
- package/dist/mutation/diagnostics.d.ts.map +1 -1
- package/dist/mutation/diagnostics.js.map +1 -1
- package/dist/mutation/planner.d.ts +27 -0
- package/dist/mutation/planner.d.ts.map +1 -0
- package/dist/mutation/planner.js +206 -0
- package/dist/mutation/planner.js.map +1 -0
- package/dist/mutation/source.d.ts +2 -1
- package/dist/mutation/source.d.ts.map +1 -1
- package/dist/mutation/source.js +14 -0
- package/dist/mutation/source.js.map +1 -1
- package/dist/mutation/target-planner.d.ts +18 -0
- package/dist/mutation/target-planner.d.ts.map +1 -0
- package/dist/mutation/target-planner.js +160 -0
- package/dist/mutation/target-planner.js.map +1 -0
- package/dist/mutation/task.d.ts.map +1 -1
- package/dist/mutation/task.js +19 -11
- package/dist/mutation/task.js.map +1 -1
- package/dist/mutation/types.d.ts +1 -1
- package/dist/mutation/types.d.ts.map +1 -1
- package/dist/node/historical-host.d.ts +6 -0
- package/dist/node/historical-host.d.ts.map +1 -0
- package/dist/node/historical-host.js +8 -0
- package/dist/node/historical-host.js.map +1 -0
- package/dist/node/host.d.ts +3 -0
- package/dist/node/host.d.ts.map +1 -0
- package/dist/node/host.js +48 -0
- package/dist/node/host.js.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +2 -0
- package/dist/node/index.js.map +1 -0
- package/dist/ports/node-host.d.ts +41 -0
- package/dist/ports/node-host.d.ts.map +1 -0
- package/dist/ports/node-host.js +2 -0
- package/dist/ports/node-host.js.map +1 -0
- package/dist/recommendation/override.d.ts +40 -2
- package/dist/recommendation/override.d.ts.map +1 -1
- package/dist/recommendation/override.js +5 -6
- package/dist/recommendation/override.js.map +1 -1
- package/dist/schema/registry.d.ts.map +1 -1
- package/dist/schema/registry.js +1 -0
- package/dist/schema/registry.js.map +1 -1
- package/dist/semantic/check.d.ts +43 -0
- package/dist/semantic/check.d.ts.map +1 -0
- package/dist/semantic/check.js +110 -0
- package/dist/semantic/check.js.map +1 -0
- package/dist/session/document-session.d.ts +109 -0
- package/dist/session/document-session.d.ts.map +1 -0
- package/dist/session/document-session.js +432 -0
- package/dist/session/document-session.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +18 -4
- 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.
|
|
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`;
|
|
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.
|
|
50
|
-
npx --yes --package=perttool@0.
|
|
51
|
-
npx --yes --package=perttool@0.
|
|
52
|
-
npx --yes --package=perttool@0.
|
|
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.
|
|
59
|
-
npm exec --yes --package=perttool@0.
|
|
60
|
-
npm exec --yes --package=perttool@0.
|
|
61
|
-
npm exec --yes --package=perttool@0.
|
|
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
|
|
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.
|
|
100
|
+
npm install --global perttool@0.8.1
|
|
76
101
|
perttool --version
|
|
77
102
|
```
|
|
78
103
|
|
|
79
|
-
The `0.
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
452
|
-
|
|
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
|
|
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
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export type
|
|
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":"
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/actuals/lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,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;AAC7B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE9D,UAAU,4BAA4B;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,kCAAkC,GAC1C;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,GAAG;QAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;CACH,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;CAC9C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,4BAA4B,GAAG;QAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;CACH,CAAC;AAEN,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAClD,kCAAkC,EAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,CACxC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,OAAO,CACjD,kCAAkC,EAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAChC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,OAAO,CACnD,kCAAkC,EAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAClC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAClD,kCAAkC,EAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CACjC,CAAC;AAEF,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,kCAAkC,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAsBD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CAKR;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,OAAO,GACb,qCAAqC,CAgJvC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,iCAAiC,CAoBnC"}
|
|
@@ -1,30 +1,11 @@
|
|
|
1
|
-
import {
|
|
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 {
|
|
8
|
-
|
|
9
|
-
|
|
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-${
|
|
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"}
|