perttool 0.9.4 → 0.10.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.
- package/CHANGELOG.md +29 -1
- package/README.md +38 -17
- package/dist/application/cli-facade.d.ts +33 -8
- package/dist/application/cli-facade.d.ts.map +1 -1
- package/dist/application/cli-facade.js +1 -2
- package/dist/application/cli-facade.js.map +1 -1
- package/dist/application/contract9-assurance-mutation.d.ts +35 -0
- package/dist/application/contract9-assurance-mutation.d.ts.map +1 -0
- package/dist/application/contract9-assurance-mutation.js +146 -0
- package/dist/application/contract9-assurance-mutation.js.map +1 -0
- package/dist/application/contract9-assurance.d.ts +23 -0
- package/dist/application/contract9-assurance.d.ts.map +1 -0
- package/dist/application/contract9-assurance.js +114 -0
- package/dist/application/contract9-assurance.js.map +1 -0
- package/dist/application/contract9-candidate.d.ts +33 -0
- package/dist/application/contract9-candidate.d.ts.map +1 -0
- package/dist/application/contract9-candidate.js +39 -0
- package/dist/application/contract9-candidate.js.map +1 -0
- package/dist/application/contract9-format-migration.d.ts +22 -0
- package/dist/application/contract9-format-migration.d.ts.map +1 -0
- package/dist/application/contract9-format-migration.js +52 -0
- package/dist/application/contract9-format-migration.js.map +1 -0
- package/dist/application/contract9-mixed-mutation.d.ts +14 -0
- package/dist/application/contract9-mixed-mutation.d.ts.map +1 -0
- package/dist/application/contract9-mixed-mutation.js +88 -0
- package/dist/application/contract9-mixed-mutation.js.map +1 -0
- package/dist/application/contract9-project.d.ts +15 -0
- package/dist/application/contract9-project.d.ts.map +1 -0
- package/dist/application/contract9-project.js +24 -0
- package/dist/application/contract9-project.js.map +1 -0
- package/dist/application/contract9-projection.d.ts +23 -0
- package/dist/application/contract9-projection.d.ts.map +1 -0
- package/dist/application/contract9-projection.js +89 -0
- package/dist/application/contract9-projection.js.map +1 -0
- package/dist/application/contract9-runtime.d.ts +43 -0
- package/dist/application/contract9-runtime.d.ts.map +1 -0
- package/dist/application/contract9-runtime.js +36 -0
- package/dist/application/contract9-runtime.js.map +1 -0
- package/dist/application/contract9-temporal-context.d.ts +15 -0
- package/dist/application/contract9-temporal-context.d.ts.map +1 -0
- package/dist/application/contract9-temporal-context.js +127 -0
- package/dist/application/contract9-temporal-context.js.map +1 -0
- package/dist/application/contract9-temporal-mutation.d.ts +20 -0
- package/dist/application/contract9-temporal-mutation.d.ts.map +1 -0
- package/dist/application/contract9-temporal-mutation.js +78 -0
- package/dist/application/contract9-temporal-mutation.js.map +1 -0
- package/dist/application/contract9-temporal.d.ts +17 -0
- package/dist/application/contract9-temporal.d.ts.map +1 -0
- package/dist/application/contract9-temporal.js +65 -0
- package/dist/application/contract9-temporal.js.map +1 -0
- package/dist/application/contract9-write.d.ts +28 -0
- package/dist/application/contract9-write.d.ts.map +1 -0
- package/dist/application/contract9-write.js +25 -0
- package/dist/application/contract9-write.js.map +1 -0
- package/dist/application/editor-milestone-acceptance.d.ts +4 -0
- package/dist/application/editor-milestone-acceptance.d.ts.map +1 -1
- package/dist/application/editor-milestone-acceptance.js +90 -0
- package/dist/application/editor-milestone-acceptance.js.map +1 -1
- package/dist/application/editor-repair.d.ts +12 -0
- package/dist/application/editor-repair.d.ts.map +1 -0
- package/dist/application/editor-repair.js +74 -0
- package/dist/application/editor-repair.js.map +1 -0
- package/dist/application/target-postdue-analysis.d.ts +18 -0
- package/dist/application/target-postdue-analysis.d.ts.map +1 -0
- package/dist/application/target-postdue-analysis.js +26 -0
- package/dist/application/target-postdue-analysis.js.map +1 -0
- package/dist/application/target-postdue-check.d.ts +10 -0
- package/dist/application/target-postdue-check.d.ts.map +1 -0
- package/dist/application/target-postdue-check.js +18 -0
- package/dist/application/target-postdue-check.js.map +1 -0
- package/dist/application/target-postdue-next.d.ts +10 -0
- package/dist/application/target-postdue-next.d.ts.map +1 -0
- package/dist/application/target-postdue-next.js +13 -0
- package/dist/application/target-postdue-next.js.map +1 -0
- package/dist/application/target-postdue-projection.d.ts +11 -0
- package/dist/application/target-postdue-projection.d.ts.map +1 -0
- package/dist/application/target-postdue-projection.js +17 -0
- package/dist/application/target-postdue-projection.js.map +1 -0
- package/dist/assurance/canonical.d.ts +3 -3
- package/dist/assurance/canonical.d.ts.map +1 -1
- package/dist/assurance/canonical.js +19 -6
- package/dist/assurance/canonical.js.map +1 -1
- package/dist/assurance/evaluate.d.ts.map +1 -1
- package/dist/assurance/evaluate.js +10 -2
- package/dist/assurance/evaluate.js.map +1 -1
- package/dist/assurance/types.d.ts +11 -1
- package/dist/assurance/types.d.ts.map +1 -1
- package/dist/cli.js +184 -85
- package/dist/cli.js.map +1 -1
- package/dist/command/contract9-discovery.d.ts +17 -0
- package/dist/command/contract9-discovery.d.ts.map +1 -0
- package/dist/command/contract9-discovery.js +126 -0
- package/dist/command/contract9-discovery.js.map +1 -0
- package/dist/command/contract9-usage.d.ts +24 -0
- package/dist/command/contract9-usage.d.ts.map +1 -0
- package/dist/command/contract9-usage.js +23 -0
- package/dist/command/contract9-usage.js.map +1 -0
- package/dist/core/index.d.ts +4 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/editor/repair.d.ts +95 -0
- package/dist/editor/repair.d.ts.map +1 -0
- package/dist/editor/repair.js +232 -0
- package/dist/editor/repair.js.map +1 -0
- package/dist/editor/semantic-fingerprint.d.ts +8 -0
- package/dist/editor/semantic-fingerprint.d.ts.map +1 -0
- package/dist/editor/semantic-fingerprint.js +177 -0
- package/dist/editor/semantic-fingerprint.js.map +1 -0
- package/dist/help/assurance-guide.js +7 -7
- package/dist/help/assurance-guide.js.map +1 -1
- package/dist/help/contract9-guide.d.ts +10 -0
- package/dist/help/contract9-guide.d.ts.map +1 -0
- package/dist/help/contract9-guide.js +32 -0
- package/dist/help/contract9-guide.js.map +1 -0
- package/dist/help/guide.d.ts +1 -1
- package/dist/help/guide.d.ts.map +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/mutation/advance.d.ts.map +1 -1
- package/dist/mutation/advance.js.map +1 -1
- package/dist/perttool-vscode-private-0.0.0-d1578b9.vsix +0 -0
- package/dist/recommendation/override-types.d.ts +2 -2
- package/dist/recommendation/override.js +2 -2
- package/dist/schema/registry.d.ts +1 -1
- package/dist/schema/registry.js +8 -8
- package/dist/session/document-session.d.ts +23 -0
- package/dist/session/document-session.d.ts.map +1 -1
- package/dist/session/document-session.js +104 -2
- package/dist/session/document-session.js.map +1 -1
- package/dist/temporal-schedule/alert-types.d.ts +109 -0
- package/dist/temporal-schedule/alert-types.d.ts.map +1 -0
- package/dist/temporal-schedule/alert-types.js +2 -0
- package/dist/temporal-schedule/alert-types.js.map +1 -0
- package/dist/temporal-schedule/alert.d.ts +4 -0
- package/dist/temporal-schedule/alert.d.ts.map +1 -0
- package/dist/temporal-schedule/alert.js +214 -0
- package/dist/temporal-schedule/alert.js.map +1 -0
- package/dist/temporal-schedule/calendar-mutation.d.ts +11 -0
- package/dist/temporal-schedule/calendar-mutation.d.ts.map +1 -0
- package/dist/temporal-schedule/calendar-mutation.js +59 -0
- package/dist/temporal-schedule/calendar-mutation.js.map +1 -0
- package/dist/temporal-schedule/calendar.d.ts +16 -0
- package/dist/temporal-schedule/calendar.d.ts.map +1 -0
- package/dist/temporal-schedule/calendar.js +179 -0
- package/dist/temporal-schedule/calendar.js.map +1 -0
- package/dist/temporal-schedule/constraint-types.d.ts +47 -0
- package/dist/temporal-schedule/constraint-types.d.ts.map +1 -0
- package/dist/temporal-schedule/constraint-types.js +2 -0
- package/dist/temporal-schedule/constraint-types.js.map +1 -0
- package/dist/temporal-schedule/constraint.d.ts +7 -0
- package/dist/temporal-schedule/constraint.d.ts.map +1 -0
- package/dist/temporal-schedule/constraint.js +224 -0
- package/dist/temporal-schedule/constraint.js.map +1 -0
- package/dist/temporal-schedule/entity-mutation.d.ts +31 -0
- package/dist/temporal-schedule/entity-mutation.d.ts.map +1 -0
- package/dist/temporal-schedule/entity-mutation.js +107 -0
- package/dist/temporal-schedule/entity-mutation.js.map +1 -0
- package/dist/temporal-schedule/format.d.ts +9 -0
- package/dist/temporal-schedule/format.d.ts.map +1 -0
- package/dist/temporal-schedule/format.js +183 -0
- package/dist/temporal-schedule/format.js.map +1 -0
- package/dist/temporal-schedule/required-types.d.ts +68 -0
- package/dist/temporal-schedule/required-types.d.ts.map +1 -0
- package/dist/temporal-schedule/required-types.js +2 -0
- package/dist/temporal-schedule/required-types.js.map +1 -0
- package/dist/temporal-schedule/required.d.ts +5 -0
- package/dist/temporal-schedule/required.d.ts.map +1 -0
- package/dist/temporal-schedule/required.js +183 -0
- package/dist/temporal-schedule/required.js.map +1 -0
- package/dist/temporal-schedule/schedule-graph.d.ts +8 -0
- package/dist/temporal-schedule/schedule-graph.d.ts.map +1 -0
- package/dist/temporal-schedule/schedule-graph.js +33 -0
- package/dist/temporal-schedule/schedule-graph.js.map +1 -0
- package/dist/temporal-schedule/scheduler-types.d.ts +115 -0
- package/dist/temporal-schedule/scheduler-types.d.ts.map +1 -0
- package/dist/temporal-schedule/scheduler-types.js +2 -0
- package/dist/temporal-schedule/scheduler-types.js.map +1 -0
- package/dist/temporal-schedule/scheduler.d.ts +12 -0
- package/dist/temporal-schedule/scheduler.d.ts.map +1 -0
- package/dist/temporal-schedule/scheduler.js +584 -0
- package/dist/temporal-schedule/scheduler.js.map +1 -0
- package/dist/temporal-schedule/source-lexical.d.ts +30 -0
- package/dist/temporal-schedule/source-lexical.d.ts.map +1 -0
- package/dist/temporal-schedule/source-lexical.js +166 -0
- package/dist/temporal-schedule/source-lexical.js.map +1 -0
- package/dist/temporal-schedule/source-types.d.ts +124 -0
- package/dist/temporal-schedule/source-types.d.ts.map +1 -0
- package/dist/temporal-schedule/source-types.js +2 -0
- package/dist/temporal-schedule/source-types.js.map +1 -0
- package/dist/temporal-schedule/source-values.d.ts +17 -0
- package/dist/temporal-schedule/source-values.d.ts.map +1 -0
- package/dist/temporal-schedule/source-values.js +138 -0
- package/dist/temporal-schedule/source-values.js.map +1 -0
- package/dist/temporal-schedule/source.d.ts +17 -0
- package/dist/temporal-schedule/source.d.ts.map +1 -0
- package/dist/temporal-schedule/source.js +520 -0
- package/dist/temporal-schedule/source.js.map +1 -0
- package/dist/temporal-schedule/tzdb-2026c.d.ts +7 -0
- package/dist/temporal-schedule/tzdb-2026c.d.ts.map +1 -0
- package/dist/temporal-schedule/tzdb-2026c.js +611 -0
- package/dist/temporal-schedule/tzdb-2026c.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/schemas/Perttool.AdvanceResult.v3.schema.json +1 -1
- package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
- package/schemas/{Perttool.AnalysisResult.v6.schema.json → Perttool.AnalysisResult.v7.schema.json} +178 -6
- package/schemas/{Perttool.CheckResult.v5.schema.json → Perttool.CheckResult.v6.schema.json} +10 -6
- package/schemas/Perttool.CliError.v1.schema.json +1 -1
- package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
- package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
- package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
- package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
- package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +1 -1
- package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
- package/schemas/Perttool.InitResult.v1.schema.json +1 -1
- package/schemas/Perttool.MilestoneAcceptanceMigrationResult.v1.schema.json +1 -1
- package/schemas/Perttool.MilestoneAcceptanceResult.v1.schema.json +1 -1
- package/schemas/{Perttool.MutationResult.v5.schema.json → Perttool.MutationResult.v6.schema.json} +4 -4
- package/schemas/{Perttool.NextResult.v7.schema.json → Perttool.NextResult.v8.schema.json} +10 -6
- package/schemas/Perttool.OverrideDecision.v1.schema.json +1 -1
- package/schemas/{Perttool.PlanAssuranceResult.v1.schema.json → Perttool.PlanAssuranceResult.v2.schema.json} +5 -5
- package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
- package/schemas/{Perttool.ProjectResult.v4.schema.json → Perttool.ProjectResult.v5.schema.json} +70 -7
- package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
- package/schemas/{Perttool.UnitMigrationResult.v3.schema.json → Perttool.UnitMigrationResult.v4.schema.json} +5 -5
- package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ This project records its notable changes here. The format is based on [Keep a Ch
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.10.0] - 2026-08-18
|
|
8
|
+
|
|
9
|
+
Breaking Grammar 8 and CLI Contract 9 beta minor. This version publishes
|
|
10
|
+
calendar-aware temporal scheduling across the public CLI and package surfaces.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Added reusable weekly calendars, capacity exceptions, generic resource
|
|
15
|
+
availability, event-bound task constraints, pinned zone-data validation,
|
|
16
|
+
and source-preserving maintenance commands.
|
|
17
|
+
- Added forward and backward-required calendar schedules, signed slack,
|
|
18
|
+
infeasibility evidence, and current and forecast POSTDUE projections.
|
|
19
|
+
- Added three calendar command paths and the `temporal-schedule` Guide topic.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Activated Grammar 8 and CLI Contract 9 with
|
|
24
|
+
`Perttool.ProjectResult.v5`, `Perttool.CheckResult.v6`,
|
|
25
|
+
`Perttool.AnalysisResult.v7`, `Perttool.NextResult.v8`,
|
|
26
|
+
`Perttool.MutationResult.v6`, `Perttool.PlanAssuranceResult.v2`, and
|
|
27
|
+
`Perttool.UnitMigrationResult.v4`.
|
|
28
|
+
- Retained 23 active command-result root schemas by replacing seven Contract 8
|
|
29
|
+
roots, retained 129 root and Node exports and 45 Core exports, and kept
|
|
30
|
+
`Perttool.AdvanceResult.v3` unchanged.
|
|
31
|
+
- Added source-preserving Grammar 7 to Grammar 8 migration while retaining
|
|
32
|
+
Grammar 1 through 7 reads and existing authorization and persistence guards.
|
|
33
|
+
|
|
7
34
|
## [0.9.4] - 2026-08-14
|
|
8
35
|
|
|
9
36
|
Backward-compatible Grammar 7 and CLI Contract 8 emergency beta patch. This
|
|
@@ -516,7 +543,8 @@ First public development preview. Intended to evaluate the DSL and CLI, read-onl
|
|
|
516
543
|
- Not published to the npm registry; use the GitHub Release asset
|
|
517
544
|
- Requires Node.js 24 or later
|
|
518
545
|
|
|
519
|
-
[Unreleased]: https://github.com/mako10k/perttool/compare/v0.
|
|
546
|
+
[Unreleased]: https://github.com/mako10k/perttool/compare/v0.10.0...HEAD
|
|
547
|
+
[0.10.0]: https://github.com/mako10k/perttool/compare/v0.9.4...v0.10.0
|
|
520
548
|
[0.9.4]: https://github.com/mako10k/perttool/compare/v0.9.3...v0.9.4
|
|
521
549
|
[0.9.3]: https://github.com/mako10k/perttool/compare/v0.9.2...v0.9.3
|
|
522
550
|
[0.9.2]: https://github.com/mako10k/perttool/compare/v0.9.1...v0.9.2
|
package/README.md
CHANGED
|
@@ -75,23 +75,25 @@ commands, 23 root schemas, 129 root and Node runtime exports,
|
|
|
75
75
|
criterion-set replacement, caller-asserted receipts, and acceptance-aware
|
|
76
76
|
canonical advance. Its accepted release commit, annotated tag, GitHub
|
|
77
77
|
prerelease, and npm artifact agree, and npm currently reports
|
|
78
|
-
`latest=0.9.0`, `beta=0.9.
|
|
78
|
+
`latest=0.9.0`, `beta=0.9.4`, and no `alpha`. Source is prepared for the
|
|
79
|
+
unpublished `0.10.0` Grammar 8 and CLI Contract 9 beta candidate. Version `0.8.1` remains the
|
|
79
80
|
exact Grammar 6 and CLI Contract 7 rollback pin.
|
|
80
81
|
|
|
81
|
-
Version `0.9.1` is the
|
|
82
|
-
GitHub Issue #8. It makes declared velocity observation use the
|
|
83
|
-
operand, including a just-written uncommitted finish, while
|
|
84
|
-
Git-recorded evidence bound to the selected first-parent revision. It
|
|
85
|
-
all 53 commands, 23 root schemas, 129 root and Node exports, 45 Core
|
|
86
|
-
result and schema identities, and authority.
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
`
|
|
82
|
+
Version `0.9.1` is the durably accepted compatible Contract 8 patch for
|
|
83
|
+
`ACT-003` and GitHub Issue #8. It makes declared velocity observation use the
|
|
84
|
+
exact current operand, including a just-written uncommitted finish, while
|
|
85
|
+
keeping Git-recorded evidence bound to the selected first-parent revision. It
|
|
86
|
+
retains all 53 commands, 23 root schemas, 129 root and Node exports, 45 Core
|
|
87
|
+
exports, result and schema identities, and authority. Release commit, peeled
|
|
88
|
+
tag, GitHub prerelease, npm artifact, and installed regression agree; Issue #8
|
|
89
|
+
is closed.
|
|
90
|
+
|
|
91
|
+
Version `0.9.2` is the durably accepted compatible Contract 8 emergency patch
|
|
92
|
+
for `ANALYSIS-001` and GitHub Issue #15. It keeps valid Point plans without a
|
|
91
93
|
declared velocity Point-valued through `dag analyze` and `dag next`, leaves
|
|
92
94
|
velocity forecasts null, and reports calendar conversion as unavailable
|
|
93
|
-
without inventing a rate. It retains all public identities and authority
|
|
94
|
-
remains the exact rollback pin for `0.9.3`.
|
|
95
|
+
without inventing a rate. It retains all public identities and authority;
|
|
96
|
+
Issue #15 is closed, and `0.9.2` remains the exact rollback pin for `0.9.3`.
|
|
95
97
|
|
|
96
98
|
Version `0.9.3` is the published compatible Contract 8 emergency patch for
|
|
97
99
|
GitHub Issues #14, #16, and #17. It restores Grammar 7 `plan-assurance
|
|
@@ -99,19 +101,26 @@ show|hash`, composes acceptance-aware terminal deletions without weakening the
|
|
|
99
101
|
shared edit guard, and preserves complete criterion-set/receipt evidence for
|
|
100
102
|
retained reached milestones. It retains all public identities and authority.
|
|
101
103
|
The accepted release commit, annotated tag, GitHub prerelease, and npm
|
|
102
|
-
artifact agree; npm
|
|
104
|
+
artifact agree; at its publication npm reported `beta=0.9.3`,
|
|
105
|
+
`latest=0.9.0`, and no `alpha`.
|
|
103
106
|
Issues #14, #16, and #17 are closed with release evidence. Plan advance,
|
|
104
107
|
public VSIX publication, and unrelated work remain separate.
|
|
105
108
|
|
|
106
109
|
Version `0.9.4` is the compatible Contract 8 emergency patch for GitHub Issue
|
|
107
|
-
#19. It preserves criterion sets and receipts for every milestone retained by
|
|
110
|
+
#19. It is published and preserves criterion sets and receipts for every milestone retained by
|
|
108
111
|
`dag advance`, validates the complete final candidate before history or
|
|
109
112
|
persistence decisions, and projects deterministic candidate diagnostics. It
|
|
110
113
|
also makes pinned jscpd duplicate and Lizard complexity ratchets part of the
|
|
111
114
|
repository and CI static-analysis gate. Grammar 7, CLI Contract 8, all 53
|
|
112
115
|
commands, 23 root schemas, 129 root and Node exports, 45 Core exports, public
|
|
113
|
-
authority, and force semantics remain unchanged.
|
|
114
|
-
|
|
116
|
+
authority, and force semantics remain unchanged. Its release commit, peeled
|
|
117
|
+
tag, Node.js 22 and 24 CI, GitHub prerelease, npm artifact, and common
|
|
118
|
+
SHA-256 `63a12ddf...d6fe53b` agree. npm reports `beta=0.9.4`,
|
|
119
|
+
`latest=0.9.0`, and no `alpha`; Issue #19 is closed with release evidence.
|
|
120
|
+
The completed release plan was migrated with committed provenance, given six
|
|
121
|
+
artifact-bound criteria and receipts, and canonically advanced. Its residual
|
|
122
|
+
retains only accepted reached `RELEASE_094_ACCEPTED` and has no diagnostic or
|
|
123
|
+
task. Version `0.9.3` is the exact rollback pin.
|
|
115
124
|
|
|
116
125
|
The private adapters now project that same Contract 8 acceptance model without
|
|
117
126
|
adding write authority. The LSP negotiates a separate version-bound milestone
|
|
@@ -661,8 +670,13 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
|
|
|
661
670
|
- [`0.8.1` to `0.9.0` migration](docs/process/0.8.1-to-0.9.0-migration.md)
|
|
662
671
|
- [`v0.9.0` release procedure](docs/process/0.9.0-release.md)
|
|
663
672
|
- [`v0.9.1` release procedure](docs/process/0.9.1-release.md)
|
|
673
|
+
- [`v0.9.1` durable release acceptance](docs/process/0.9.1-release-acceptance.md)
|
|
664
674
|
- [`v0.9.2` release procedure](docs/process/0.9.2-release.md)
|
|
675
|
+
- [`v0.9.2` durable release acceptance](docs/process/0.9.2-release-acceptance.md)
|
|
665
676
|
- [`v0.9.3` release procedure](docs/process/0.9.3-release.md)
|
|
677
|
+
- [`v0.9.3` publication record](docs/process/0.9.3-publish.md)
|
|
678
|
+
- [`v0.9.3` durable release acceptance](docs/process/0.9.3-release-acceptance.md)
|
|
679
|
+
- [`v0.9.4` release procedure](docs/process/0.9.4-release.md)
|
|
666
680
|
- [Conditional Plan Assurance interface acceptance](docs/process/plan-assurance-interface-acceptance.md)
|
|
667
681
|
- [Shared Library Boundary](docs/specs/shared-library.md)
|
|
668
682
|
- [Editor Protocol Contract](docs/specs/editor-protocol.md)
|
|
@@ -689,6 +703,7 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
|
|
|
689
703
|
- [`v0.9.1` release plan](plans/release-0.9.1.pert)
|
|
690
704
|
- [`v0.9.2` release plan](plans/release-0.9.2.pert)
|
|
691
705
|
- [`v0.9.3` release plan](plans/release-0.9.3.pert)
|
|
706
|
+
- [`v0.9.4` release plan](plans/release-0.9.4.pert)
|
|
692
707
|
- [JSON Schema Artifact Contract](docs/specs/json-schema.md)
|
|
693
708
|
- [JSON Schema source acceptance](docs/process/json-schema-acceptance.md)
|
|
694
709
|
- [Contract 5-to-6 migration](docs/process/cli-contract-6-migration.md)
|
|
@@ -709,3 +724,9 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
|
|
|
709
724
|
Report vulnerabilities privately according to [SECURITY.md](SECURITY.md).
|
|
710
725
|
perttool is released under the [MIT License](LICENSE). See
|
|
711
726
|
[CHANGELOG.md](CHANGELOG.md) for release changes and known limitations.
|
|
727
|
+
The current repository source identifies `0.10.0` and activates Grammar 8,
|
|
728
|
+
CLI Contract 9, 56 commands, and the seven replacement result identities. It
|
|
729
|
+
is preparation state only: no `v0.10.0` tag, GitHub Release, or npm package is
|
|
730
|
+
claimed until candidate acceptance and separately authorized PUBLISH succeed.
|
|
731
|
+
Migration guidance is in
|
|
732
|
+
[`0.9.4-to-0.10.0-migration.md`](docs/process/0.9.4-to-0.10.0-migration.md).
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { CreateDocumentOptions, DocumentWriteResult, ReplaceDocumentOptions } from "../io/safe-write.js";
|
|
2
2
|
import type { TargetGrammar6Capability } from "../parser/document-parser.js";
|
|
3
3
|
import type { NodeHostPorts } from "../ports/node-host.js";
|
|
4
|
-
import { analyzeDocument, checkDocument, getProjectMetadata,
|
|
4
|
+
import { analyzeDocument, checkDocument, getProjectMetadata, planFormat, inspectPlanAssurance, selectNextTasks, withUnitMigrationWrite } from "./contract9-runtime.js";
|
|
5
5
|
import { planAdvance } from "./contract7-mutation.js";
|
|
6
6
|
import { contract7ProjectResultToJson, renderContract7ProjectText } from "./contract7-project.js";
|
|
7
7
|
import { contract7InspectionResultToJson, contract7MutationResultToJson, contract7SnakeJson } from "./contract7-projection.js";
|
|
8
|
-
import { withUnitMigrationWrite } from "./contract7-unit-migration.js";
|
|
9
8
|
import { contract6WorkEventToJson } from "./contract6-projection.js";
|
|
10
9
|
import { getAgentHelp } from "./agent-help.js";
|
|
11
10
|
import { renderAdvanceHistoryGuard, withAdvanceHistoryRace } from "./advance-history.js";
|
|
@@ -31,17 +30,43 @@ export declare function createCliApplicationFacade(host: NodeHostPorts, historic
|
|
|
31
30
|
projectInitResultToJson: typeof projectInitResultToJson;
|
|
32
31
|
renderProjectInitResult: typeof renderProjectInitResult;
|
|
33
32
|
withProjectInitOutput: typeof withProjectInitOutput;
|
|
34
|
-
planUnitMigration:
|
|
33
|
+
planUnitMigration: (text: string, request: import("../index.js").UnitMigrationRequest, options?: import("./target-unit-migration-candidate.js").TargetUnitMigrationCandidateOptions | undefined) => Omit<import("./target-unit-migration-result.js").TargetUnitMigrationResult, "schemaVersion" | "unitMigration"> & {
|
|
34
|
+
readonly schemaVersion: "Perttool.UnitMigrationResult.v4";
|
|
35
|
+
readonly unitMigration: {
|
|
36
|
+
readonly id: "perttool.unit-migration";
|
|
37
|
+
readonly version: 4;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
35
40
|
withUnitMigrationWrite: typeof withUnitMigrationWrite;
|
|
36
41
|
getProjectMetadata: typeof getProjectMetadata;
|
|
37
42
|
contract7ProjectResultToJson: typeof contract7ProjectResultToJson;
|
|
38
43
|
renderContract7ProjectText: typeof renderContract7ProjectText;
|
|
39
44
|
planAdvance: typeof planAdvance;
|
|
40
|
-
planAssuranceMutation:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
planAssuranceMutation: (text: string, mutation: import("../index.js").PlanAssuranceMutation, options?: import("../index.js").PlanAssuranceMutationOptions | undefined) => Omit<Omit<import("../assurance/mutation.js").TargetPlanAssuranceMutationResultV4, "schemaVersion"> & {
|
|
46
|
+
readonly schemaVersion: "Perttool.MutationResult.v5";
|
|
47
|
+
}, "schemaVersion"> & {
|
|
48
|
+
readonly schemaVersion: "Perttool.MutationResult.v6";
|
|
49
|
+
};
|
|
50
|
+
planBatchMutation: (text: string, mutation: import("../index.js").BatchMutation | import("../assurance/mutation.js").PlanAssuranceBatchMutation, options?: import("../index.js").PlanAssuranceMutationOptions | undefined) => Omit<Omit<import("../assurance/mutation.js").TargetPlanAssuranceMutationResultV4, "schemaVersion"> & {
|
|
51
|
+
readonly schemaVersion: "Perttool.MutationResult.v5";
|
|
52
|
+
}, "schemaVersion"> & {
|
|
53
|
+
readonly schemaVersion: "Perttool.MutationResult.v6";
|
|
54
|
+
};
|
|
55
|
+
planFinishActuals: (text: string, mutation: import("../index.js").FinishActualsMutation, options?: import("./contract7-mutation.js").Contract7LifecycleOptions | undefined) => Omit<Omit<import("./contract7-mutation.js").LifecycleResultV4, "schemaVersion"> & {
|
|
56
|
+
readonly schemaVersion: "Perttool.MutationResult.v5";
|
|
57
|
+
}, "schemaVersion"> & {
|
|
58
|
+
readonly schemaVersion: "Perttool.MutationResult.v6";
|
|
59
|
+
};
|
|
60
|
+
planLifecycle: (text: string, mutation: import("../index.js").LifecycleMutation, options?: import("./contract7-mutation.js").Contract7LifecycleOptions | undefined) => Omit<Omit<import("./contract7-mutation.js").LifecycleResultV4, "schemaVersion"> & {
|
|
61
|
+
readonly schemaVersion: "Perttool.MutationResult.v5";
|
|
62
|
+
}, "schemaVersion"> & {
|
|
63
|
+
readonly schemaVersion: "Perttool.MutationResult.v6";
|
|
64
|
+
};
|
|
65
|
+
planMutation: (text: string, mutation: import("../index.js").Mutation, options?: import("../index.js").PlanAssuranceMutationOptions | undefined) => Omit<Omit<import("../assurance/mutation.js").TargetPlanAssuranceMutationResultV4, "schemaVersion"> & {
|
|
66
|
+
readonly schemaVersion: "Perttool.MutationResult.v5";
|
|
67
|
+
}, "schemaVersion"> & {
|
|
68
|
+
readonly schemaVersion: "Perttool.MutationResult.v6";
|
|
69
|
+
};
|
|
45
70
|
renderTargetGovernanceDecision: typeof renderTargetGovernanceDecision;
|
|
46
71
|
contract7InspectionResultToJson: typeof contract7InspectionResultToJson;
|
|
47
72
|
contract7MutationResultToJson: typeof contract7MutationResultToJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-facade.d.ts","sourceRoot":"","sources":["../../src/application/cli-facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cli-facade.d.ts","sourceRoot":"","sources":["../../src/application/cli-facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAIlB,UAAU,EACV,oBAAoB,EAIpB,eAAe,EACf,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,wCAAwC,EACxC,yCAAyC,EACzC,KAAK,wCAAwC,EAC7C,KAAK,6CAA6C,EACnD,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,KAAK,qCAAqC,EAC1C,KAAK,iCAAiC,EACvC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kCAAkC,EAElC,8BAA8B,EAC9B,gCAAgC,EAChC,KAAK,+BAA+B,EACrC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,qCAAqC,EACtC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,+BAA+B,EAC/B,iCAAiC,EACjC,KAAK,gCAAgC,EACrC,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAsBtC;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,aAAa,EACnB,qBAAqB,CAAC,EAAE,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAoChD,MAAM,UACJ,UAAU,CAAC,OAAO,wCAAwC,CAAC,CAAC,CAAC,CAAC,cAC1D,wBAAwB,WAC3B,wCAAwC;;;;+CAiBzC,iCAAiC,cAC7B,wBAAwB,WAC3B,qCAAqC;;;+CA/BrC,+BAA+B,cAC5B,wBAAwB;;;;;;gDAsC3B,wBAAwB;;;;sCAmDC,UAAU;;;;;gCAnHL,MAAM;;;;;;;;;;+CAGrC,MAAM,iBACC,MAAM,cACT,wBAAwB,YAC3B,qBAAqB,KAC7B,OAAO,CAAC,mBAAmB,CAAC;gDAOrB,MAAM,iBACC,MAAM,cACT,wBAAwB,WAC3B,sBAAsB,KAC9B,OAAO,CAAC,mBAAmB,CAAC;;GA6GhC;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,0BAA0B,CAClC,CAAC;AAEF,YAAY,EACV,6CAA6C,GAC9C,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { validateTargetGrammar6Document, } from "../semantic/target-validator.js";
|
|
2
|
-
import { analyzeDocument, checkDocument, getProjectMetadata, planAssuranceMutation, planBatchMutation, planFinishActuals, planFormat, inspectPlanAssurance, planLifecycle, planMutation, planUnitMigration, selectNextTasks, } from "./
|
|
2
|
+
import { analyzeDocument, checkDocument, getProjectMetadata, planAssuranceMutation, planBatchMutation, planFinishActuals, planFormat, inspectPlanAssurance, planLifecycle, planMutation, planUnitMigration, selectNextTasks, withUnitMigrationWrite, } from "./contract9-runtime.js";
|
|
3
3
|
import { planAdvance, } from "./contract7-mutation.js";
|
|
4
4
|
import { contract7ProjectResultToJson, renderContract7ProjectText, } from "./contract7-project.js";
|
|
5
5
|
import { contract7InspectionResultToJson, contract7MutationResultToJson, contract7SnakeJson, } from "./contract7-projection.js";
|
|
6
|
-
import { withUnitMigrationWrite, } from "./contract7-unit-migration.js";
|
|
7
6
|
import { contract6WorkEventToJson, } from "./contract6-projection.js";
|
|
8
7
|
import { getAgentHelp, } from "./agent-help.js";
|
|
9
8
|
import { prepareAdvanceHistory as prepareGenericAdvanceHistory, renderAdvanceHistoryGuard, withAdvanceHistoryRace, } from "./advance-history.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-facade.js","sourceRoot":"","sources":["../../src/application/cli-facade.ts"],"names":[],"mappings":"AASA,OAAO,EACL,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"cli-facade.js","sourceRoot":"","sources":["../../src/application/cli-facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PlanAssuranceEvaluationV1 } from "../assurance/types.js";
|
|
2
|
+
import type { Diagnostic } from "../model/diagnostics.js";
|
|
3
|
+
import { type TextEdit } from "../mutation/text-edits.js";
|
|
4
|
+
import { type PlanAssuranceGovernanceDecisionV2 } from "../assurance/governance.js";
|
|
5
|
+
import type { GovernanceRequestInput } from "../governance/types.js";
|
|
6
|
+
export type Contract9SealMutation = {
|
|
7
|
+
readonly kind: "plan_assurance.seal";
|
|
8
|
+
readonly reason: string;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: "plan_assurance.reseal";
|
|
11
|
+
readonly taskIds: readonly string[];
|
|
12
|
+
readonly reason: string;
|
|
13
|
+
};
|
|
14
|
+
export interface Contract9AssuranceMutationResultV6 {
|
|
15
|
+
readonly schemaVersion: "Perttool.MutationResult.v6";
|
|
16
|
+
readonly ok: boolean;
|
|
17
|
+
readonly documentId: string | null;
|
|
18
|
+
readonly changed: boolean;
|
|
19
|
+
readonly originalDigest: string;
|
|
20
|
+
readonly updatedDigest: string | null;
|
|
21
|
+
readonly updatedText: string | null;
|
|
22
|
+
readonly diff: string | null;
|
|
23
|
+
readonly edits: readonly TextEdit[];
|
|
24
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
25
|
+
readonly diagnosticsTruncated: false;
|
|
26
|
+
readonly assuranceImpact: Readonly<{
|
|
27
|
+
before: PlanAssuranceEvaluationV1;
|
|
28
|
+
after: PlanAssuranceEvaluationV1;
|
|
29
|
+
}> | null;
|
|
30
|
+
readonly governance: PlanAssuranceGovernanceDecisionV2 | null;
|
|
31
|
+
}
|
|
32
|
+
export declare function planContract9AssuranceSealMutation(text: string, mutation: Contract9SealMutation, options?: Readonly<{
|
|
33
|
+
governance?: GovernanceRequestInput;
|
|
34
|
+
}>): Contract9AssuranceMutationResultV6;
|
|
35
|
+
//# sourceMappingURL=contract9-assurance-mutation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract9-assurance-mutation.d.ts","sourceRoot":"","sources":["../../src/application/contract9-assurance-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAA6B,MAAM,uBAAuB,CAAC;AAGlG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQ9F,OAAO,EAC+B,KAAK,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AACjH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,aAAa,EAAE,4BAA4B,CAAC;IACrD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,yBAAyB,CAAC;QAAC,KAAK,EAAE,yBAAyB,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACnH,QAAQ,CAAC,UAAU,EAAE,iCAAiC,GAAG,IAAI,CAAC;CAC/D;AAyDD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,EAC9F,OAAO,GAAE,QAAQ,CAAC;IAAE,UAAU,CAAC,EAAE,sBAAsB,CAAA;CAAE,CAAM,GAAG,kCAAkC,CAwErG"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { createUnifiedDiff } from "../editing/unified-diff.js";
|
|
2
|
+
import { sha256DigestUtf8 } from "../model/sha256.js";
|
|
3
|
+
import { applyTextEdits, normalizeTextEdits } from "../mutation/text-edits.js";
|
|
4
|
+
import { scanTemporalDeclarationBlocks, temporalScheduleBaseText } from "../temporal-schedule/source-lexical.js";
|
|
5
|
+
import { parseTemporalScheduleSource, TEMPORAL_SCHEDULE_SOURCE_CAPABILITY } from "../temporal-schedule/source.js";
|
|
6
|
+
import { evaluateContract9PlanAssurance } from "./contract9-assurance.js";
|
|
7
|
+
import { milestoneAcceptanceBaseText } from "../milestone-acceptance/source.js";
|
|
8
|
+
import { validateTargetGrammar6Document } from "../semantic/target-validator.js";
|
|
9
|
+
import { TARGET_GRAMMAR_6_CAPABILITY } from "../parser/document-parser.js";
|
|
10
|
+
import { governanceMetadataFromDocument } from "../governance/source.js";
|
|
11
|
+
import { evaluatePlanAssuranceGovernance, normalizePlanAssuranceGovernanceRequest, planAssuranceGovernanceDiagnostics } from "../assurance/governance.js";
|
|
12
|
+
function ending(text) { return text.includes("\r\n") ? "\r\n" : "\n"; }
|
|
13
|
+
function failure(text, documentId, code, message, entityId) {
|
|
14
|
+
return Object.freeze({ schemaVersion: "Perttool.MutationResult.v6", ok: false, documentId, changed: false,
|
|
15
|
+
originalDigest: sha256DigestUtf8(text), updatedDigest: null, updatedText: null, diff: null, edits: Object.freeze([]),
|
|
16
|
+
diagnostics: Object.freeze([Object.freeze({ code, severity: "error", message, ...(entityId === undefined ? {} : { entityId }) })]),
|
|
17
|
+
diagnosticsTruncated: false, assuranceImpact: null, governance: null });
|
|
18
|
+
}
|
|
19
|
+
function sealText(result, reason, lineEnding) {
|
|
20
|
+
if (result.contractHash === null || result.computedBasisHash === null || result.exportedAssuranceHash === null)
|
|
21
|
+
throw new Error(`task ${result.taskId} has no sealable model-2 basis`);
|
|
22
|
+
return [`plan_seal ${result.taskId}:`, ` accepted_contract ${result.contractHash}`, ` accepted_basis ${result.computedBasisHash}`,
|
|
23
|
+
...(result.computedInputs.length === 0 ? [] : [" accepted_inputs:", ...result.computedInputs.map((input) => ` ${input.predecessorTaskId} ${input.relationMode} ${input.assuranceHash}`)]),
|
|
24
|
+
` reason ${JSON.stringify(reason)}`].join(lineEnding);
|
|
25
|
+
}
|
|
26
|
+
function enablementEdit(text, project) {
|
|
27
|
+
const before = project.lines.find(({ text: line }) => /^ (?:critical_epsilon|target_duration|time_zone|tzdb|calendar|workday) /u.test(line));
|
|
28
|
+
const offset = before?.start ?? project.lines.at(-1)?.end ?? project.header.end;
|
|
29
|
+
const eol = ending(text);
|
|
30
|
+
return Object.freeze({ startOffset: offset, endOffset: offset,
|
|
31
|
+
replacement: ` plan_assurance_model 1${eol} plan_assurance_hash_model 2${eol}` });
|
|
32
|
+
}
|
|
33
|
+
function declarationInsertion(text, blocks, records) {
|
|
34
|
+
const later = blocks.find(({ header }) => /^(?:task_outcome|assurance_receipt|work_event) /u.test(header.text));
|
|
35
|
+
const offset = later?.header.start ?? text.length;
|
|
36
|
+
const eol = ending(text);
|
|
37
|
+
const prefix = offset > 0 && !text.slice(0, offset).endsWith(`${eol}${eol}`) ? eol : "";
|
|
38
|
+
return Object.freeze({ startOffset: offset, endOffset: offset, replacement: `${prefix}${records.join(`${eol}${eol}`)}${eol}${eol}` });
|
|
39
|
+
}
|
|
40
|
+
function sealRecordEdits(block, result, reason, text) {
|
|
41
|
+
if (result.contractHash === null || result.computedBasisHash === null)
|
|
42
|
+
throw new Error(`task ${result.taskId} has no resealable model-2 basis`);
|
|
43
|
+
const field = (name) => block.lines.find(({ text: line }) => line.startsWith(` ${name} `));
|
|
44
|
+
const scalar = (line, replacement) => Object.freeze({ startOffset: line.start, endOffset: line.contentEnd, replacement });
|
|
45
|
+
const contract = field("accepted_contract");
|
|
46
|
+
const basis = field("accepted_basis");
|
|
47
|
+
const reasonLine = field("reason");
|
|
48
|
+
const edits = [scalar(contract, ` accepted_contract ${result.contractHash}`),
|
|
49
|
+
scalar(basis, ` accepted_basis ${result.computedBasisHash}`), scalar(reasonLine, ` reason ${JSON.stringify(reason)}`)];
|
|
50
|
+
const inputHeader = block.lines.find(({ text: line }) => line === " accepted_inputs:");
|
|
51
|
+
const nested = inputHeader === undefined ? [] : block.lines.filter((line) => line.start > inputHeader.start && line.start < reasonLine.start && line.text.startsWith(" "));
|
|
52
|
+
const inputText = result.computedInputs.length === 0 ? "" : [" accepted_inputs:", ...result.computedInputs.map((input) => ` ${input.predecessorTaskId} ${input.relationMode} ${input.assuranceHash}`)].join(ending(text)) + ending(text);
|
|
53
|
+
if (inputHeader === undefined && inputText !== "")
|
|
54
|
+
edits.push(Object.freeze({ startOffset: reasonLine.start, endOffset: reasonLine.start, replacement: inputText }));
|
|
55
|
+
if (inputHeader !== undefined)
|
|
56
|
+
edits.push(Object.freeze({ startOffset: inputHeader.start,
|
|
57
|
+
endOffset: nested.at(-1)?.end ?? inputHeader.end, replacement: inputText }));
|
|
58
|
+
return Object.freeze(edits);
|
|
59
|
+
}
|
|
60
|
+
export function planContract9AssuranceSealMutation(text, mutation, options = {}) {
|
|
61
|
+
const source = parseTemporalScheduleSource(text, TEMPORAL_SCHEDULE_SOURCE_CAPABILITY);
|
|
62
|
+
if (!source.ok || source.model === null || source.grammarVersion !== 8)
|
|
63
|
+
return failure(text, source.documentId, "PTASSURE-301", "model-2 assurance mutation requires valid Grammar 8 source");
|
|
64
|
+
if (mutation.reason.length === 0)
|
|
65
|
+
return failure(text, source.documentId, "PTASSURE-301", "seal mutation requires a nonempty reason");
|
|
66
|
+
if (mutation.kind === "plan_assurance.reseal" &&
|
|
67
|
+
(mutation.taskIds.length === 0 || new Set(mutation.taskIds).size !== mutation.taskIds.length))
|
|
68
|
+
return failure(text, source.documentId, "PTASSURE-301", "reseal requires unique task IDs");
|
|
69
|
+
const blocks = scanTemporalDeclarationBlocks(text);
|
|
70
|
+
let preparedText = text;
|
|
71
|
+
const preEdits = [];
|
|
72
|
+
const before = evaluateContract9PlanAssurance(text);
|
|
73
|
+
if (before === null)
|
|
74
|
+
return failure(text, source.documentId, "PTASSURE-303", "model-2 assurance basis is unavailable");
|
|
75
|
+
if (before.modelVersion === null && before.hashModelVersion === null) {
|
|
76
|
+
const project = blocks.find(({ kind }) => kind === "project");
|
|
77
|
+
preEdits.push(enablementEdit(text, project));
|
|
78
|
+
preparedText = applyTextEdits(text, preEdits);
|
|
79
|
+
}
|
|
80
|
+
else if (before.modelVersion !== 1 || before.hashModelVersion !== 2) {
|
|
81
|
+
return failure(text, source.documentId, "PTASSURE-303", "Grammar 8 assurance mutation requires model 1 and hash model 2");
|
|
82
|
+
}
|
|
83
|
+
const evaluated = evaluateContract9PlanAssurance(preparedText);
|
|
84
|
+
if (evaluated === null || !evaluated.ok)
|
|
85
|
+
return failure(text, source.documentId, "PTASSURE-303", "model-2 assurance basis is unavailable");
|
|
86
|
+
const selectedIds = mutation.kind === "plan_assurance.seal"
|
|
87
|
+
? evaluated.taskResults.filter(({ acceptedBasisHash }) => acceptedBasisHash === null).map(({ taskId }) => taskId)
|
|
88
|
+
: [...mutation.taskIds];
|
|
89
|
+
if (selectedIds.length === 0)
|
|
90
|
+
return failure(text, source.documentId, "PTASSURE-304", "seal mutation selects no task");
|
|
91
|
+
const byId = new Map(evaluated.taskResults.map((result) => [result.taskId, result]));
|
|
92
|
+
const preparedBlocks = scanTemporalDeclarationBlocks(preparedText);
|
|
93
|
+
const recordEdits = [];
|
|
94
|
+
const additions = [];
|
|
95
|
+
try {
|
|
96
|
+
for (const taskId of selectedIds) {
|
|
97
|
+
const result = byId.get(taskId);
|
|
98
|
+
if (result === undefined)
|
|
99
|
+
return failure(text, source.documentId, "PTASSURE-304", `task ${taskId} has no sealable current basis`, taskId);
|
|
100
|
+
const serialized = sealText(result, mutation.reason, ending(text));
|
|
101
|
+
const current = preparedBlocks.find(({ header, id }) => id === taskId && header.text.startsWith("plan_seal "));
|
|
102
|
+
if (mutation.kind === "plan_assurance.reseal" && current === undefined)
|
|
103
|
+
return failure(text, source.documentId, "PTASSURE-304", `task ${taskId} has no existing seal`, taskId);
|
|
104
|
+
if (current === undefined)
|
|
105
|
+
additions.push(serialized);
|
|
106
|
+
else
|
|
107
|
+
recordEdits.push(...sealRecordEdits(current, result, mutation.reason, preparedText));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
return failure(text, source.documentId, "PTASSURE-304", error instanceof Error ? error.message : "model-2 seal is unavailable");
|
|
112
|
+
}
|
|
113
|
+
if (additions.length > 0)
|
|
114
|
+
recordEdits.push(declarationInsertion(preparedText, preparedBlocks, additions));
|
|
115
|
+
const second = normalizeTextEdits(preparedText, recordEdits, "Contract 9 assurance seal mutation");
|
|
116
|
+
const candidate = applyTextEdits(preparedText, second);
|
|
117
|
+
const checked = parseTemporalScheduleSource(candidate, TEMPORAL_SCHEDULE_SOURCE_CAPABILITY);
|
|
118
|
+
const after = evaluateContract9PlanAssurance(candidate);
|
|
119
|
+
if (!checked.ok || checked.model === null || after === null || !after.ok)
|
|
120
|
+
return failure(text, source.documentId, "PTASSURE-304", "model-2 seal candidate failed complete Grammar 8 validation");
|
|
121
|
+
const edits = normalizeTextEdits(text, [...preEdits, ...second.map((edit) => preEdits.length === 0 ? edit : Object.freeze({
|
|
122
|
+
...edit, startOffset: edit.startOffset - preEdits[0].replacement.length * Number(edit.startOffset > preEdits[0].startOffset),
|
|
123
|
+
endOffset: edit.endOffset - preEdits[0].replacement.length * Number(edit.endOffset > preEdits[0].startOffset),
|
|
124
|
+
}))], "Contract 9 complete assurance seal mutation");
|
|
125
|
+
const updatedText = applyTextEdits(text, edits);
|
|
126
|
+
if (updatedText !== candidate)
|
|
127
|
+
throw new Error("Contract 9 seal edit composition changed candidate bytes");
|
|
128
|
+
const base = milestoneAcceptanceBaseText(temporalScheduleBaseText(text, blocks));
|
|
129
|
+
const validated = validateTargetGrammar6Document(base, TARGET_GRAMMAR_6_CAPABILITY).validatedDocument;
|
|
130
|
+
if (validated === null)
|
|
131
|
+
throw new Error("validated Grammar 8 base lost governance metadata");
|
|
132
|
+
const metadata = governanceMetadataFromDocument(validated.document);
|
|
133
|
+
const normalized = normalizePlanAssuranceGovernanceRequest(options.governance);
|
|
134
|
+
if (!normalized.ok)
|
|
135
|
+
return failure(text, source.documentId, "PTGOV-101", "invalid governance request");
|
|
136
|
+
const governance = evaluatePlanAssuranceGovernance({ sourceDigest: sha256DigestUtf8(text),
|
|
137
|
+
goalOwner: metadata.effective.goalOwner, goalDelegates: metadata.effective.goalDelegates,
|
|
138
|
+
dagOwner: metadata.effective.dagOwner, dagDelegates: metadata.effective.dagDelegates }, ["plan_assurance"], normalized.request);
|
|
139
|
+
const governanceDiagnostics = planAssuranceGovernanceDiagnostics(governance);
|
|
140
|
+
return Object.freeze({ schemaVersion: "Perttool.MutationResult.v6", ok: !governanceDiagnostics.some(({ severity }) => severity === "error"), documentId: source.documentId, changed: true,
|
|
141
|
+
originalDigest: sha256DigestUtf8(text), updatedDigest: sha256DigestUtf8(candidate), updatedText: candidate,
|
|
142
|
+
diff: createUnifiedDiff(text, candidate, { originalLabel: "original", updatedLabel: "candidate" }), edits,
|
|
143
|
+
diagnostics: governanceDiagnostics, diagnosticsTruncated: false,
|
|
144
|
+
assuranceImpact: Object.freeze({ before, after }), governance });
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=contract9-assurance-mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract9-assurance-mutation.js","sourceRoot":"","sources":["../../src/application/contract9-assurance-mutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { PlanAssuranceEvaluationV1 } from "../assurance/types.js";
|
|
2
|
+
import type { PlanAssuranceProjectionV1 } from "../assurance/authority.js";
|
|
3
|
+
import type { Diagnostic } from "../model/diagnostics.js";
|
|
4
|
+
import type { PlanAssuranceHashKind, PlanAssuranceInspectionRequest } from "./target-assurance-inspection.js";
|
|
5
|
+
export declare function evaluateContract9PlanAssurance(text: string): PlanAssuranceEvaluationV1 | null;
|
|
6
|
+
export interface Contract9PlanAssuranceResultV2 {
|
|
7
|
+
readonly schemaVersion: "Perttool.PlanAssuranceResult.v2";
|
|
8
|
+
readonly cliContractVersion: 9;
|
|
9
|
+
readonly operation: PlanAssuranceInspectionRequest["operation"];
|
|
10
|
+
readonly ok: boolean;
|
|
11
|
+
readonly documentId: string | null;
|
|
12
|
+
readonly grammarVersion: number | null;
|
|
13
|
+
readonly sourceDigest: string;
|
|
14
|
+
readonly selectedTaskIds: readonly string[];
|
|
15
|
+
readonly taskId: string | null;
|
|
16
|
+
readonly kind: PlanAssuranceHashKind | null;
|
|
17
|
+
readonly selectedHash: string | null;
|
|
18
|
+
readonly assurance: PlanAssuranceProjectionV1 | null;
|
|
19
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
20
|
+
readonly diagnosticsTruncated: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function inspectContract9PlanAssurance(text: string, request: PlanAssuranceInspectionRequest): Contract9PlanAssuranceResultV2;
|
|
23
|
+
//# sourceMappingURL=contract9-assurance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract9-assurance.d.ts","sourceRoot":"","sources":["../../src/application/contract9-assurance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA4B,yBAAyB,EAA0C,MAAM,uBAAuB,CAAC;AACzI,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AA+C9G,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAW7F;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,aAAa,EAAE,iCAAiC,CAAC;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAChE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC;AAqBD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,GAAG,8BAA8B,CA+BnI"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { evaluatePlanAssurance } from "../assurance/evaluate.js";
|
|
2
|
+
import { projectPlanAssuranceAnalysis } from "../assurance/authority.js";
|
|
3
|
+
import { projectPlanAssuranceInput } from "../assurance/source.js";
|
|
4
|
+
import { sha256DigestUtf8 } from "../model/sha256.js";
|
|
5
|
+
import { inspectPlanAssurance as inspectContract8PlanAssurance } from "./contract8-milestone-acceptance.js";
|
|
6
|
+
import { milestoneAcceptanceBaseText } from "../milestone-acceptance/source.js";
|
|
7
|
+
import { TARGET_GRAMMAR_6_CAPABILITY } from "../parser/document-parser.js";
|
|
8
|
+
import { validateTargetGrammar6Document } from "../semantic/target-validator.js";
|
|
9
|
+
import { scanTemporalDeclarationBlocks, temporalScheduleBaseText } from "../temporal-schedule/source-lexical.js";
|
|
10
|
+
import { parseTemporalScheduleSource, TEMPORAL_SCHEDULE_SOURCE_CAPABILITY } from "../temporal-schedule/source.js";
|
|
11
|
+
function gcd(left, right) {
|
|
12
|
+
let a = left;
|
|
13
|
+
let b = right;
|
|
14
|
+
while (b !== 0n)
|
|
15
|
+
[a, b] = [b, a % b];
|
|
16
|
+
return a;
|
|
17
|
+
}
|
|
18
|
+
function calendar(value) {
|
|
19
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|[+-]\d{2}:\d{2})$/u.exec(value.sourceText);
|
|
20
|
+
if (match === null)
|
|
21
|
+
throw new Error("validated Grammar 8 task bound is not canonical date-time source");
|
|
22
|
+
const secondText = match[6];
|
|
23
|
+
const [whole, fraction = ""] = secondText.split(".");
|
|
24
|
+
const denominator = 10n ** BigInt(fraction.length);
|
|
25
|
+
const rawNumerator = BigInt(whole) * denominator + BigInt(fraction || "0");
|
|
26
|
+
const divisor = gcd(rawNumerator, denominator);
|
|
27
|
+
const numerator = rawNumerator / divisor;
|
|
28
|
+
const reducedDenominator = denominator / divisor;
|
|
29
|
+
const offset = match[7] === "Z" ? 0 : (match[7].startsWith("-") ? -1 : 1) *
|
|
30
|
+
(Number(match[7].slice(1, 3)) * 60 + Number(match[7].slice(4, 6)));
|
|
31
|
+
return Object.freeze({ kind: "date_time", year: Number(match[1]), month: Number(match[2]), day: Number(match[3]),
|
|
32
|
+
hour: Number(match[4]), minute: Number(match[5]), second: Object.freeze({ numerator: numerator.toString(), denominator: reducedDenominator.toString() }),
|
|
33
|
+
offsetMinutes: offset });
|
|
34
|
+
}
|
|
35
|
+
function bound(bounds, taskId, event, direction) {
|
|
36
|
+
const value = bounds.find((item) => item.entityId === taskId && item.event === event && item.direction === direction);
|
|
37
|
+
return value === undefined ? null : calendar(value.value);
|
|
38
|
+
}
|
|
39
|
+
function contractV2(contract, bounds) {
|
|
40
|
+
const { notBefore: _notBefore, ...retained } = contract;
|
|
41
|
+
return Object.freeze({ ...retained, model: "Perttool.TaskPlanContract.v2", when: Object.freeze({
|
|
42
|
+
startEarliest: bound(bounds, contract.taskId, "start", "earliest"),
|
|
43
|
+
startLatest: bound(bounds, contract.taskId, "start", "latest"),
|
|
44
|
+
finishEarliest: bound(bounds, contract.taskId, "finish", "earliest"),
|
|
45
|
+
finishLatest: bound(bounds, contract.taskId, "finish", "latest"),
|
|
46
|
+
}) });
|
|
47
|
+
}
|
|
48
|
+
export function evaluateContract9PlanAssurance(text) {
|
|
49
|
+
const temporal = parseTemporalScheduleSource(text, TEMPORAL_SCHEDULE_SOURCE_CAPABILITY);
|
|
50
|
+
if (!temporal.ok || temporal.model === null || temporal.grammarVersion !== 8)
|
|
51
|
+
return null;
|
|
52
|
+
const grammar7 = temporalScheduleBaseText(text, scanTemporalDeclarationBlocks(text));
|
|
53
|
+
const grammar6 = milestoneAcceptanceBaseText(grammar7);
|
|
54
|
+
const checked = validateTargetGrammar6Document(grammar6, TARGET_GRAMMAR_6_CAPABILITY);
|
|
55
|
+
if (!checked.ok || checked.validatedDocument === null)
|
|
56
|
+
return null;
|
|
57
|
+
const input = projectPlanAssuranceInput(checked.validatedDocument);
|
|
58
|
+
const tasks = input.tasks.map((task) => Object.freeze({ ...task,
|
|
59
|
+
contract: contractV2(task.contract, temporal.model.taskBounds) }));
|
|
60
|
+
return evaluatePlanAssurance(Object.freeze({ ...input, tasks: Object.freeze(tasks) }));
|
|
61
|
+
}
|
|
62
|
+
function selectedProjection(value, ids) {
|
|
63
|
+
if (ids.length === 0)
|
|
64
|
+
return value;
|
|
65
|
+
const selected = new Set(ids);
|
|
66
|
+
const filter = (values) => Object.freeze(values.filter((id) => selected.has(id)));
|
|
67
|
+
const actions = Object.freeze(value.requiredActions.flatMap((action) => {
|
|
68
|
+
const affectedTaskIds = filter(action.affectedTaskIds);
|
|
69
|
+
return affectedTaskIds.length === 0 ? [] : [Object.freeze({ ...action, affectedTaskIds })];
|
|
70
|
+
}));
|
|
71
|
+
return Object.freeze({ ...value, taskResults: Object.freeze(value.taskResults.filter(({ taskId }) => selected.has(taskId))),
|
|
72
|
+
directMismatchTaskIds: filter(value.directMismatchTaskIds), inheritedMismatchTaskIds: filter(value.inheritedMismatchTaskIds),
|
|
73
|
+
replanRequiredTaskIds: filter(value.replanRequiredTaskIds), activeAttentionRequiredTaskIds: filter(value.activeAttentionRequiredTaskIds),
|
|
74
|
+
requiredActions: actions });
|
|
75
|
+
}
|
|
76
|
+
function inspectionDiagnostic(code, message, taskId) {
|
|
77
|
+
return Object.freeze({ code, severity: "error", message, entityId: taskId,
|
|
78
|
+
helpTopic: "plan-assurance", data: Object.freeze({ task_id: taskId }) });
|
|
79
|
+
}
|
|
80
|
+
export function inspectContract9PlanAssurance(text, request) {
|
|
81
|
+
const temporal = parseTemporalScheduleSource(text, TEMPORAL_SCHEDULE_SOURCE_CAPABILITY);
|
|
82
|
+
if (temporal.grammarVersion !== 8) {
|
|
83
|
+
const legacy = inspectContract8PlanAssurance(text, request, TARGET_GRAMMAR_6_CAPABILITY);
|
|
84
|
+
return Object.freeze({ ...legacy, schemaVersion: "Perttool.PlanAssuranceResult.v2", cliContractVersion: 9 });
|
|
85
|
+
}
|
|
86
|
+
const evaluation = evaluateContract9PlanAssurance(text);
|
|
87
|
+
const common = { schemaVersion: "Perttool.PlanAssuranceResult.v2", cliContractVersion: 9,
|
|
88
|
+
operation: request.operation, documentId: temporal.documentId, grammarVersion: 8, sourceDigest: sha256DigestUtf8(text) };
|
|
89
|
+
if (evaluation === null)
|
|
90
|
+
return Object.freeze({ ...common, ok: false, selectedTaskIds: Object.freeze([]), taskId: null,
|
|
91
|
+
kind: null, selectedHash: null, assurance: null, diagnostics: Object.freeze(temporal.diagnostics),
|
|
92
|
+
diagnosticsTruncated: temporal.diagnosticsTruncated });
|
|
93
|
+
const projected = projectPlanAssuranceAnalysis(evaluation, []).assurance;
|
|
94
|
+
const requestedIds = request.operation === "plan-assurance.show" ? [...new Set(request.taskIds ?? [])] : [request.taskId];
|
|
95
|
+
const known = new Set(projected.taskResults.map(({ taskId }) => taskId));
|
|
96
|
+
const unknown = requestedIds.find((id) => !known.has(id));
|
|
97
|
+
if (unknown !== undefined)
|
|
98
|
+
return Object.freeze({ ...common, ok: false, selectedTaskIds: Object.freeze(requestedIds),
|
|
99
|
+
taskId: request.operation === "plan-assurance.hash" ? request.taskId : null,
|
|
100
|
+
kind: request.operation === "plan-assurance.hash" ? request.kind : null, selectedHash: null, assurance: null,
|
|
101
|
+
diagnostics: Object.freeze([inspectionDiagnostic("PTASSURE-302", `task ${unknown} does not exist`, unknown)]), diagnosticsTruncated: false });
|
|
102
|
+
const selectedTaskIds = Object.freeze(projected.taskResults.filter(({ taskId }) => requestedIds.length === 0 || requestedIds.includes(taskId)).map(({ taskId }) => taskId));
|
|
103
|
+
const assurance = selectedProjection(projected, selectedTaskIds);
|
|
104
|
+
if (request.operation === "plan-assurance.show")
|
|
105
|
+
return Object.freeze({ ...common, ok: evaluation.ok, selectedTaskIds,
|
|
106
|
+
taskId: null, kind: null, selectedHash: null, assurance, diagnostics: Object.freeze([]), diagnosticsTruncated: false });
|
|
107
|
+
const task = assurance.taskResults[0];
|
|
108
|
+
const selectedHash = request.kind === "contract" ? task.contractHash
|
|
109
|
+
: request.kind === "computed-basis" ? task.computedBasisHash : task.exportedAssuranceHash;
|
|
110
|
+
const diagnostics = selectedHash === null ? Object.freeze([inspectionDiagnostic("PTASSURE-203", `task ${request.taskId} has no available ${request.kind} hash`, request.taskId)]) : Object.freeze([]);
|
|
111
|
+
return Object.freeze({ ...common, ok: selectedHash !== null, selectedTaskIds, taskId: request.taskId,
|
|
112
|
+
kind: request.kind, selectedHash, assurance, diagnostics, diagnosticsTruncated: false });
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=contract9-assurance.js.map
|