perttool 0.9.4 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/README.md +39 -17
  3. package/dist/application/cli-facade.d.ts +33 -8
  4. package/dist/application/cli-facade.d.ts.map +1 -1
  5. package/dist/application/cli-facade.js +1 -2
  6. package/dist/application/cli-facade.js.map +1 -1
  7. package/dist/application/contract9-assurance-mutation.d.ts +35 -0
  8. package/dist/application/contract9-assurance-mutation.d.ts.map +1 -0
  9. package/dist/application/contract9-assurance-mutation.js +146 -0
  10. package/dist/application/contract9-assurance-mutation.js.map +1 -0
  11. package/dist/application/contract9-assurance.d.ts +23 -0
  12. package/dist/application/contract9-assurance.d.ts.map +1 -0
  13. package/dist/application/contract9-assurance.js +114 -0
  14. package/dist/application/contract9-assurance.js.map +1 -0
  15. package/dist/application/contract9-candidate.d.ts +33 -0
  16. package/dist/application/contract9-candidate.d.ts.map +1 -0
  17. package/dist/application/contract9-candidate.js +39 -0
  18. package/dist/application/contract9-candidate.js.map +1 -0
  19. package/dist/application/contract9-format-migration.d.ts +22 -0
  20. package/dist/application/contract9-format-migration.d.ts.map +1 -0
  21. package/dist/application/contract9-format-migration.js +52 -0
  22. package/dist/application/contract9-format-migration.js.map +1 -0
  23. package/dist/application/contract9-mixed-mutation.d.ts +14 -0
  24. package/dist/application/contract9-mixed-mutation.d.ts.map +1 -0
  25. package/dist/application/contract9-mixed-mutation.js +88 -0
  26. package/dist/application/contract9-mixed-mutation.js.map +1 -0
  27. package/dist/application/contract9-project.d.ts +15 -0
  28. package/dist/application/contract9-project.d.ts.map +1 -0
  29. package/dist/application/contract9-project.js +24 -0
  30. package/dist/application/contract9-project.js.map +1 -0
  31. package/dist/application/contract9-projection.d.ts +23 -0
  32. package/dist/application/contract9-projection.d.ts.map +1 -0
  33. package/dist/application/contract9-projection.js +89 -0
  34. package/dist/application/contract9-projection.js.map +1 -0
  35. package/dist/application/contract9-runtime.d.ts +43 -0
  36. package/dist/application/contract9-runtime.d.ts.map +1 -0
  37. package/dist/application/contract9-runtime.js +36 -0
  38. package/dist/application/contract9-runtime.js.map +1 -0
  39. package/dist/application/contract9-temporal-context.d.ts +15 -0
  40. package/dist/application/contract9-temporal-context.d.ts.map +1 -0
  41. package/dist/application/contract9-temporal-context.js +127 -0
  42. package/dist/application/contract9-temporal-context.js.map +1 -0
  43. package/dist/application/contract9-temporal-mutation.d.ts +20 -0
  44. package/dist/application/contract9-temporal-mutation.d.ts.map +1 -0
  45. package/dist/application/contract9-temporal-mutation.js +78 -0
  46. package/dist/application/contract9-temporal-mutation.js.map +1 -0
  47. package/dist/application/contract9-temporal.d.ts +17 -0
  48. package/dist/application/contract9-temporal.d.ts.map +1 -0
  49. package/dist/application/contract9-temporal.js +65 -0
  50. package/dist/application/contract9-temporal.js.map +1 -0
  51. package/dist/application/contract9-write.d.ts +28 -0
  52. package/dist/application/contract9-write.d.ts.map +1 -0
  53. package/dist/application/contract9-write.js +25 -0
  54. package/dist/application/contract9-write.js.map +1 -0
  55. package/dist/application/editor-milestone-acceptance.d.ts +4 -0
  56. package/dist/application/editor-milestone-acceptance.d.ts.map +1 -1
  57. package/dist/application/editor-milestone-acceptance.js +90 -0
  58. package/dist/application/editor-milestone-acceptance.js.map +1 -1
  59. package/dist/application/editor-repair.d.ts +12 -0
  60. package/dist/application/editor-repair.d.ts.map +1 -0
  61. package/dist/application/editor-repair.js +74 -0
  62. package/dist/application/editor-repair.js.map +1 -0
  63. package/dist/application/target-postdue-analysis.d.ts +18 -0
  64. package/dist/application/target-postdue-analysis.d.ts.map +1 -0
  65. package/dist/application/target-postdue-analysis.js +26 -0
  66. package/dist/application/target-postdue-analysis.js.map +1 -0
  67. package/dist/application/target-postdue-check.d.ts +10 -0
  68. package/dist/application/target-postdue-check.d.ts.map +1 -0
  69. package/dist/application/target-postdue-check.js +18 -0
  70. package/dist/application/target-postdue-check.js.map +1 -0
  71. package/dist/application/target-postdue-next.d.ts +10 -0
  72. package/dist/application/target-postdue-next.d.ts.map +1 -0
  73. package/dist/application/target-postdue-next.js +13 -0
  74. package/dist/application/target-postdue-next.js.map +1 -0
  75. package/dist/application/target-postdue-projection.d.ts +11 -0
  76. package/dist/application/target-postdue-projection.d.ts.map +1 -0
  77. package/dist/application/target-postdue-projection.js +17 -0
  78. package/dist/application/target-postdue-projection.js.map +1 -0
  79. package/dist/assurance/canonical.d.ts +3 -3
  80. package/dist/assurance/canonical.d.ts.map +1 -1
  81. package/dist/assurance/canonical.js +19 -6
  82. package/dist/assurance/canonical.js.map +1 -1
  83. package/dist/assurance/evaluate.d.ts.map +1 -1
  84. package/dist/assurance/evaluate.js +10 -2
  85. package/dist/assurance/evaluate.js.map +1 -1
  86. package/dist/assurance/types.d.ts +11 -1
  87. package/dist/assurance/types.d.ts.map +1 -1
  88. package/dist/cli.js +184 -85
  89. package/dist/cli.js.map +1 -1
  90. package/dist/command/contract9-discovery.d.ts +17 -0
  91. package/dist/command/contract9-discovery.d.ts.map +1 -0
  92. package/dist/command/contract9-discovery.js +130 -0
  93. package/dist/command/contract9-discovery.js.map +1 -0
  94. package/dist/command/contract9-usage.d.ts +24 -0
  95. package/dist/command/contract9-usage.d.ts.map +1 -0
  96. package/dist/command/contract9-usage.js +23 -0
  97. package/dist/command/contract9-usage.js.map +1 -0
  98. package/dist/core/index.d.ts +4 -3
  99. package/dist/core/index.d.ts.map +1 -1
  100. package/dist/core/index.js +1 -1
  101. package/dist/editor/repair.d.ts +95 -0
  102. package/dist/editor/repair.d.ts.map +1 -0
  103. package/dist/editor/repair.js +232 -0
  104. package/dist/editor/repair.js.map +1 -0
  105. package/dist/editor/semantic-fingerprint.d.ts +8 -0
  106. package/dist/editor/semantic-fingerprint.d.ts.map +1 -0
  107. package/dist/editor/semantic-fingerprint.js +177 -0
  108. package/dist/editor/semantic-fingerprint.js.map +1 -0
  109. package/dist/help/assurance-guide.js +7 -7
  110. package/dist/help/assurance-guide.js.map +1 -1
  111. package/dist/help/contract9-guide.d.ts +10 -0
  112. package/dist/help/contract9-guide.d.ts.map +1 -0
  113. package/dist/help/contract9-guide.js +32 -0
  114. package/dist/help/contract9-guide.js.map +1 -0
  115. package/dist/help/guide.d.ts +1 -1
  116. package/dist/help/guide.d.ts.map +1 -1
  117. package/dist/index.d.ts +10 -8
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +4 -4
  120. package/dist/index.js.map +1 -1
  121. package/dist/mutation/advance.d.ts.map +1 -1
  122. package/dist/mutation/advance.js.map +1 -1
  123. package/dist/recommendation/override-types.d.ts +2 -2
  124. package/dist/recommendation/override.js +2 -2
  125. package/dist/schema/registry.d.ts +1 -1
  126. package/dist/schema/registry.js +8 -8
  127. package/dist/session/document-session.d.ts +23 -0
  128. package/dist/session/document-session.d.ts.map +1 -1
  129. package/dist/session/document-session.js +104 -2
  130. package/dist/session/document-session.js.map +1 -1
  131. package/dist/temporal-schedule/alert-types.d.ts +109 -0
  132. package/dist/temporal-schedule/alert-types.d.ts.map +1 -0
  133. package/dist/temporal-schedule/alert-types.js +2 -0
  134. package/dist/temporal-schedule/alert-types.js.map +1 -0
  135. package/dist/temporal-schedule/alert.d.ts +4 -0
  136. package/dist/temporal-schedule/alert.d.ts.map +1 -0
  137. package/dist/temporal-schedule/alert.js +214 -0
  138. package/dist/temporal-schedule/alert.js.map +1 -0
  139. package/dist/temporal-schedule/calendar-mutation.d.ts +11 -0
  140. package/dist/temporal-schedule/calendar-mutation.d.ts.map +1 -0
  141. package/dist/temporal-schedule/calendar-mutation.js +59 -0
  142. package/dist/temporal-schedule/calendar-mutation.js.map +1 -0
  143. package/dist/temporal-schedule/calendar.d.ts +16 -0
  144. package/dist/temporal-schedule/calendar.d.ts.map +1 -0
  145. package/dist/temporal-schedule/calendar.js +179 -0
  146. package/dist/temporal-schedule/calendar.js.map +1 -0
  147. package/dist/temporal-schedule/constraint-types.d.ts +47 -0
  148. package/dist/temporal-schedule/constraint-types.d.ts.map +1 -0
  149. package/dist/temporal-schedule/constraint-types.js +2 -0
  150. package/dist/temporal-schedule/constraint-types.js.map +1 -0
  151. package/dist/temporal-schedule/constraint.d.ts +7 -0
  152. package/dist/temporal-schedule/constraint.d.ts.map +1 -0
  153. package/dist/temporal-schedule/constraint.js +224 -0
  154. package/dist/temporal-schedule/constraint.js.map +1 -0
  155. package/dist/temporal-schedule/entity-mutation.d.ts +31 -0
  156. package/dist/temporal-schedule/entity-mutation.d.ts.map +1 -0
  157. package/dist/temporal-schedule/entity-mutation.js +107 -0
  158. package/dist/temporal-schedule/entity-mutation.js.map +1 -0
  159. package/dist/temporal-schedule/format.d.ts +9 -0
  160. package/dist/temporal-schedule/format.d.ts.map +1 -0
  161. package/dist/temporal-schedule/format.js +183 -0
  162. package/dist/temporal-schedule/format.js.map +1 -0
  163. package/dist/temporal-schedule/required-types.d.ts +68 -0
  164. package/dist/temporal-schedule/required-types.d.ts.map +1 -0
  165. package/dist/temporal-schedule/required-types.js +2 -0
  166. package/dist/temporal-schedule/required-types.js.map +1 -0
  167. package/dist/temporal-schedule/required.d.ts +5 -0
  168. package/dist/temporal-schedule/required.d.ts.map +1 -0
  169. package/dist/temporal-schedule/required.js +183 -0
  170. package/dist/temporal-schedule/required.js.map +1 -0
  171. package/dist/temporal-schedule/schedule-graph.d.ts +8 -0
  172. package/dist/temporal-schedule/schedule-graph.d.ts.map +1 -0
  173. package/dist/temporal-schedule/schedule-graph.js +33 -0
  174. package/dist/temporal-schedule/schedule-graph.js.map +1 -0
  175. package/dist/temporal-schedule/scheduler-types.d.ts +115 -0
  176. package/dist/temporal-schedule/scheduler-types.d.ts.map +1 -0
  177. package/dist/temporal-schedule/scheduler-types.js +2 -0
  178. package/dist/temporal-schedule/scheduler-types.js.map +1 -0
  179. package/dist/temporal-schedule/scheduler.d.ts +12 -0
  180. package/dist/temporal-schedule/scheduler.d.ts.map +1 -0
  181. package/dist/temporal-schedule/scheduler.js +584 -0
  182. package/dist/temporal-schedule/scheduler.js.map +1 -0
  183. package/dist/temporal-schedule/source-lexical.d.ts +30 -0
  184. package/dist/temporal-schedule/source-lexical.d.ts.map +1 -0
  185. package/dist/temporal-schedule/source-lexical.js +166 -0
  186. package/dist/temporal-schedule/source-lexical.js.map +1 -0
  187. package/dist/temporal-schedule/source-types.d.ts +124 -0
  188. package/dist/temporal-schedule/source-types.d.ts.map +1 -0
  189. package/dist/temporal-schedule/source-types.js +2 -0
  190. package/dist/temporal-schedule/source-types.js.map +1 -0
  191. package/dist/temporal-schedule/source-values.d.ts +17 -0
  192. package/dist/temporal-schedule/source-values.d.ts.map +1 -0
  193. package/dist/temporal-schedule/source-values.js +138 -0
  194. package/dist/temporal-schedule/source-values.js.map +1 -0
  195. package/dist/temporal-schedule/source.d.ts +17 -0
  196. package/dist/temporal-schedule/source.d.ts.map +1 -0
  197. package/dist/temporal-schedule/source.js +520 -0
  198. package/dist/temporal-schedule/source.js.map +1 -0
  199. package/dist/temporal-schedule/tzdb-2026c.d.ts +7 -0
  200. package/dist/temporal-schedule/tzdb-2026c.d.ts.map +1 -0
  201. package/dist/temporal-schedule/tzdb-2026c.js +611 -0
  202. package/dist/temporal-schedule/tzdb-2026c.js.map +1 -0
  203. package/dist/version.d.ts +1 -1
  204. package/dist/version.d.ts.map +1 -1
  205. package/dist/version.js +1 -1
  206. package/dist/version.js.map +1 -1
  207. package/package.json +1 -1
  208. package/schemas/Perttool.AdvanceResult.v3.schema.json +1 -1
  209. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
  210. package/schemas/{Perttool.AnalysisResult.v6.schema.json → Perttool.AnalysisResult.v7.schema.json} +178 -6
  211. package/schemas/{Perttool.CheckResult.v5.schema.json → Perttool.CheckResult.v6.schema.json} +10 -6
  212. package/schemas/Perttool.CliError.v1.schema.json +1 -1
  213. package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
  214. package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
  215. package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
  216. package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
  217. package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +1 -1
  218. package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
  219. package/schemas/Perttool.InitResult.v1.schema.json +1 -1
  220. package/schemas/Perttool.MilestoneAcceptanceMigrationResult.v1.schema.json +1 -1
  221. package/schemas/Perttool.MilestoneAcceptanceResult.v1.schema.json +1 -1
  222. package/schemas/{Perttool.MutationResult.v5.schema.json → Perttool.MutationResult.v6.schema.json} +4 -4
  223. package/schemas/{Perttool.NextResult.v7.schema.json → Perttool.NextResult.v8.schema.json} +10 -6
  224. package/schemas/Perttool.OverrideDecision.v1.schema.json +1 -1
  225. package/schemas/{Perttool.PlanAssuranceResult.v1.schema.json → Perttool.PlanAssuranceResult.v2.schema.json} +5 -5
  226. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
  227. package/schemas/{Perttool.ProjectResult.v4.schema.json → Perttool.ProjectResult.v5.schema.json} +70 -7
  228. package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
  229. package/schemas/{Perttool.UnitMigrationResult.v3.schema.json → Perttool.UnitMigrationResult.v4.schema.json} +5 -5
  230. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,45 @@ 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.1] - 2026-08-20
8
+
9
+ Compatible Grammar 8 and CLI Contract 9 patch for Issue #22.
10
+
11
+ ### Fixed
12
+
13
+ - Restored `document migrate --target-grammar 7` as the repository-bound route
14
+ required before milestone-acceptance `dag advance`.
15
+ - Made Contract 9 help and JSON discovery advertise target grammars 7 and 8
16
+ plus both applicable migration result schemas.
17
+ - Returned the active CLI Contract 9 envelope for Grammar 7 migration results.
18
+
19
+ ## [0.10.0] - 2026-08-18
20
+
21
+ Breaking Grammar 8 and CLI Contract 9 beta minor. This version publishes
22
+ calendar-aware temporal scheduling across the public CLI and package surfaces.
23
+
24
+ ### Added
25
+
26
+ - Added reusable weekly calendars, capacity exceptions, generic resource
27
+ availability, event-bound task constraints, pinned zone-data validation,
28
+ and source-preserving maintenance commands.
29
+ - Added forward and backward-required calendar schedules, signed slack,
30
+ infeasibility evidence, and current and forecast POSTDUE projections.
31
+ - Added three calendar command paths and the `temporal-schedule` Guide topic.
32
+
33
+ ### Changed
34
+
35
+ - Activated Grammar 8 and CLI Contract 9 with
36
+ `Perttool.ProjectResult.v5`, `Perttool.CheckResult.v6`,
37
+ `Perttool.AnalysisResult.v7`, `Perttool.NextResult.v8`,
38
+ `Perttool.MutationResult.v6`, `Perttool.PlanAssuranceResult.v2`, and
39
+ `Perttool.UnitMigrationResult.v4`.
40
+ - Retained 23 active command-result root schemas by replacing seven Contract 8
41
+ roots, retained 129 root and Node exports and 45 Core exports, and kept
42
+ `Perttool.AdvanceResult.v3` unchanged.
43
+ - Added source-preserving Grammar 7 to Grammar 8 migration while retaining
44
+ Grammar 1 through 7 reads and existing authorization and persistence guards.
45
+
7
46
  ## [0.9.4] - 2026-08-14
8
47
 
9
48
  Backward-compatible Grammar 7 and CLI Contract 8 emergency beta patch. This
@@ -516,7 +555,9 @@ First public development preview. Intended to evaluate the DSL and CLI, read-onl
516
555
  - Not published to the npm registry; use the GitHub Release asset
517
556
  - Requires Node.js 24 or later
518
557
 
519
- [Unreleased]: https://github.com/mako10k/perttool/compare/v0.9.4...HEAD
558
+ [Unreleased]: https://github.com/mako10k/perttool/compare/v0.10.1...HEAD
559
+ [0.10.1]: https://github.com/mako10k/perttool/compare/v0.10.0...v0.10.1
560
+ [0.10.0]: https://github.com/mako10k/perttool/compare/v0.9.4...v0.10.0
520
561
  [0.9.4]: https://github.com/mako10k/perttool/compare/v0.9.3...v0.9.4
521
562
  [0.9.3]: https://github.com/mako10k/perttool/compare/v0.9.2...v0.9.3
522
563
  [0.9.2]: https://github.com/mako10k/perttool/compare/v0.9.1...v0.9.2
package/README.md CHANGED
@@ -75,23 +75,26 @@ 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.3`, and no `alpha`. Version `0.8.1` remains the
78
+ `latest=beta=0.10.0` and no `alpha`. Version `0.10.0` is the published Grammar
79
+ 8 and CLI Contract 9 beta. Source is prepared for the compatible `0.10.1`
80
+ Issue #22 migration-path patch. Version `0.8.1` remains the
79
81
  exact Grammar 6 and CLI Contract 7 rollback pin.
80
82
 
81
- Version `0.9.1` is the published compatible Contract 8 patch for `ACT-003` and
82
- GitHub Issue #8. It makes declared velocity observation use the exact current
83
- operand, including a just-written uncommitted finish, while keeping
84
- Git-recorded evidence bound to the selected first-parent revision. It retains
85
- all 53 commands, 23 root schemas, 129 root and Node exports, 45 Core exports,
86
- result and schema identities, and authority. It remains available by exact
87
- pin while `latest` remains `0.9.0`.
88
-
89
- Version `0.9.2` is the published compatible Contract 8 emergency patch for
90
- `ANALYSIS-001` and GitHub Issue #15. It keeps valid Point plans without a
83
+ Version `0.9.1` is the durably accepted compatible Contract 8 patch for
84
+ `ACT-003` and GitHub Issue #8. It makes declared velocity observation use the
85
+ exact current operand, including a just-written uncommitted finish, while
86
+ keeping Git-recorded evidence bound to the selected first-parent revision. It
87
+ retains all 53 commands, 23 root schemas, 129 root and Node exports, 45 Core
88
+ exports, result and schema identities, and authority. Release commit, peeled
89
+ tag, GitHub prerelease, npm artifact, and installed regression agree; Issue #8
90
+ is closed.
91
+
92
+ Version `0.9.2` is the durably accepted compatible Contract 8 emergency patch
93
+ for `ANALYSIS-001` and GitHub Issue #15. It keeps valid Point plans without a
91
94
  declared velocity Point-valued through `dag analyze` and `dag next`, leaves
92
95
  velocity forecasts null, and reports calendar conversion as unavailable
93
- without inventing a rate. It retains all public identities and authority and
94
- remains the exact rollback pin for `0.9.3`.
96
+ without inventing a rate. It retains all public identities and authority;
97
+ Issue #15 is closed, and `0.9.2` remains the exact rollback pin for `0.9.3`.
95
98
 
96
99
  Version `0.9.3` is the published compatible Contract 8 emergency patch for
97
100
  GitHub Issues #14, #16, and #17. It restores Grammar 7 `plan-assurance
@@ -99,19 +102,26 @@ show|hash`, composes acceptance-aware terminal deletions without weakening the
99
102
  shared edit guard, and preserves complete criterion-set/receipt evidence for
100
103
  retained reached milestones. It retains all public identities and authority.
101
104
  The accepted release commit, annotated tag, GitHub prerelease, and npm
102
- artifact agree; npm reports `beta=0.9.3`, `latest=0.9.0`, and no `alpha`.
105
+ artifact agree; at its publication npm reported `beta=0.9.3`,
106
+ `latest=0.9.0`, and no `alpha`.
103
107
  Issues #14, #16, and #17 are closed with release evidence. Plan advance,
104
108
  public VSIX publication, and unrelated work remain separate.
105
109
 
106
110
  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
111
+ #19. It is published and preserves criterion sets and receipts for every milestone retained by
108
112
  `dag advance`, validates the complete final candidate before history or
109
113
  persistence decisions, and projects deterministic candidate diagnostics. It
110
114
  also makes pinned jscpd duplicate and Lizard complexity ratchets part of the
111
115
  repository and CI static-analysis gate. Grammar 7, CLI Contract 8, all 53
112
116
  commands, 23 root schemas, 129 root and Node exports, 45 Core exports, public
113
- authority, and force semantics remain unchanged. Version `0.9.3` is the exact
114
- rollback pin.
117
+ authority, and force semantics remain unchanged. Its release commit, peeled
118
+ tag, Node.js 22 and 24 CI, GitHub prerelease, npm artifact, and common
119
+ SHA-256 `63a12ddf...d6fe53b` agree. npm reports `beta=0.9.4`,
120
+ `latest=0.9.0`, and no `alpha`; Issue #19 is closed with release evidence.
121
+ The completed release plan was migrated with committed provenance, given six
122
+ artifact-bound criteria and receipts, and canonically advanced. Its residual
123
+ retains only accepted reached `RELEASE_094_ACCEPTED` and has no diagnostic or
124
+ task. Version `0.9.3` is the exact rollback pin.
115
125
 
116
126
  The private adapters now project that same Contract 8 acceptance model without
117
127
  adding write authority. The LSP negotiates a separate version-bound milestone
@@ -661,8 +671,13 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
661
671
  - [`0.8.1` to `0.9.0` migration](docs/process/0.8.1-to-0.9.0-migration.md)
662
672
  - [`v0.9.0` release procedure](docs/process/0.9.0-release.md)
663
673
  - [`v0.9.1` release procedure](docs/process/0.9.1-release.md)
674
+ - [`v0.9.1` durable release acceptance](docs/process/0.9.1-release-acceptance.md)
664
675
  - [`v0.9.2` release procedure](docs/process/0.9.2-release.md)
676
+ - [`v0.9.2` durable release acceptance](docs/process/0.9.2-release-acceptance.md)
665
677
  - [`v0.9.3` release procedure](docs/process/0.9.3-release.md)
678
+ - [`v0.9.3` publication record](docs/process/0.9.3-publish.md)
679
+ - [`v0.9.3` durable release acceptance](docs/process/0.9.3-release-acceptance.md)
680
+ - [`v0.9.4` release procedure](docs/process/0.9.4-release.md)
666
681
  - [Conditional Plan Assurance interface acceptance](docs/process/plan-assurance-interface-acceptance.md)
667
682
  - [Shared Library Boundary](docs/specs/shared-library.md)
668
683
  - [Editor Protocol Contract](docs/specs/editor-protocol.md)
@@ -689,6 +704,7 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
689
704
  - [`v0.9.1` release plan](plans/release-0.9.1.pert)
690
705
  - [`v0.9.2` release plan](plans/release-0.9.2.pert)
691
706
  - [`v0.9.3` release plan](plans/release-0.9.3.pert)
707
+ - [`v0.9.4` release plan](plans/release-0.9.4.pert)
692
708
  - [JSON Schema Artifact Contract](docs/specs/json-schema.md)
693
709
  - [JSON Schema source acceptance](docs/process/json-schema-acceptance.md)
694
710
  - [Contract 5-to-6 migration](docs/process/cli-contract-6-migration.md)
@@ -709,3 +725,9 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
709
725
  Report vulnerabilities privately according to [SECURITY.md](SECURITY.md).
710
726
  perttool is released under the [MIT License](LICENSE). See
711
727
  [CHANGELOG.md](CHANGELOG.md) for release changes and known limitations.
728
+ The current repository source identifies `0.10.1` and retains Grammar 8,
729
+ CLI Contract 9, 56 commands, and 23 root schemas. It restores the Contract 9
730
+ Grammar 7 migration route reported in Issue #22 while retaining Grammar 7 to 8
731
+ migration. Version `0.10.0` remains the exact rollback pin.
732
+ Migration guidance is in
733
+ [`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, planAssuranceMutation, planBatchMutation, planFinishActuals, planFormat, inspectPlanAssurance, planLifecycle, planMutation, planUnitMigration, selectNextTasks } from "./contract8-milestone-acceptance.js";
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: typeof 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: typeof planAssuranceMutation;
41
- planBatchMutation: typeof planBatchMutation;
42
- planFinishActuals: typeof planFinishActuals;
43
- planLifecycle: typeof planLifecycle;
44
- planMutation: typeof planMutation;
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,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAC7C,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,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AACvC,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
+ {"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 "./contract8-milestone-acceptance.js";
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":"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"}
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"}