perttool 0.10.6 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/README.md +274 -609
  3. package/dist/application/cli-facade.d.ts +4 -10
  4. package/dist/application/cli-facade.d.ts.map +1 -1
  5. package/dist/application/cli-facade.js +1 -1
  6. package/dist/application/cli-facade.js.map +1 -1
  7. package/dist/application/contract10-candidate.d.ts +33 -0
  8. package/dist/application/contract10-candidate.d.ts.map +1 -0
  9. package/dist/application/contract10-candidate.js +38 -0
  10. package/dist/application/contract10-candidate.js.map +1 -0
  11. package/dist/application/contract10-planning-history.d.ts +4 -0
  12. package/dist/application/contract10-planning-history.d.ts.map +1 -0
  13. package/dist/application/contract10-planning-history.js +28 -0
  14. package/dist/application/contract10-planning-history.js.map +1 -0
  15. package/dist/application/contract10-planning.d.ts +61 -0
  16. package/dist/application/contract10-planning.d.ts.map +1 -0
  17. package/dist/application/contract10-planning.js +165 -0
  18. package/dist/application/contract10-planning.js.map +1 -0
  19. package/dist/application/contract10-runtime.d.ts +185 -0
  20. package/dist/application/contract10-runtime.d.ts.map +1 -0
  21. package/dist/application/contract10-runtime.js +236 -0
  22. package/dist/application/contract10-runtime.js.map +1 -0
  23. package/dist/application/contract8-milestone-acceptance.d.ts +6 -22
  24. package/dist/application/contract8-milestone-acceptance.d.ts.map +1 -1
  25. package/dist/application/contract8-milestone-acceptance.js +21 -99
  26. package/dist/application/contract8-milestone-acceptance.js.map +1 -1
  27. package/dist/application/contract8-milestone-read.d.ts +25 -0
  28. package/dist/application/contract8-milestone-read.d.ts.map +1 -0
  29. package/dist/application/contract8-milestone-read.js +111 -0
  30. package/dist/application/contract8-milestone-read.js.map +1 -0
  31. package/dist/application/contract9-assurance-evaluate.d.ts +3 -0
  32. package/dist/application/contract9-assurance-evaluate.d.ts.map +1 -0
  33. package/dist/application/contract9-assurance-evaluate.js +75 -0
  34. package/dist/application/contract9-assurance-evaluate.js.map +1 -0
  35. package/dist/application/contract9-assurance.d.ts +1 -2
  36. package/dist/application/contract9-assurance.d.ts.map +1 -1
  37. package/dist/application/contract9-assurance.js +2 -56
  38. package/dist/application/contract9-assurance.js.map +1 -1
  39. package/dist/application/contract9-candidate.d.ts +8 -0
  40. package/dist/application/contract9-candidate.d.ts.map +1 -1
  41. package/dist/application/contract9-candidate.js +36 -11
  42. package/dist/application/contract9-candidate.js.map +1 -1
  43. package/dist/application/contract9-mixed-mutation.d.ts +3 -0
  44. package/dist/application/contract9-mixed-mutation.d.ts.map +1 -1
  45. package/dist/application/contract9-mixed-mutation.js +5 -4
  46. package/dist/application/contract9-mixed-mutation.js.map +1 -1
  47. package/dist/application/contract9-temporal.js +1 -1
  48. package/dist/application/contract9-temporal.js.map +1 -1
  49. package/dist/application/target-actuals-analysis.d.ts.map +1 -1
  50. package/dist/application/target-actuals-analysis.js +10 -6
  51. package/dist/application/target-actuals-analysis.js.map +1 -1
  52. package/dist/application/target-temporal-analysis.d.ts +1 -0
  53. package/dist/application/target-temporal-analysis.d.ts.map +1 -1
  54. package/dist/application/target-temporal-analysis.js +5 -1
  55. package/dist/application/target-temporal-analysis.js.map +1 -1
  56. package/dist/cli.js +761 -87
  57. package/dist/cli.js.map +1 -1
  58. package/dist/command/contract10-discovery.d.ts +17 -0
  59. package/dist/command/contract10-discovery.d.ts.map +1 -0
  60. package/dist/command/contract10-discovery.js +304 -0
  61. package/dist/command/contract10-discovery.js.map +1 -0
  62. package/dist/command/contract10-usage.d.ts +24 -0
  63. package/dist/command/contract10-usage.d.ts.map +1 -0
  64. package/dist/command/contract10-usage.js +49 -0
  65. package/dist/command/contract10-usage.js.map +1 -0
  66. package/dist/core/index.d.ts +11 -2
  67. package/dist/core/index.d.ts.map +1 -1
  68. package/dist/core/index.js +3 -1
  69. package/dist/core/index.js.map +1 -1
  70. package/dist/help/assurance-guide.js +1 -1
  71. package/dist/help/assurance-guide.js.map +1 -1
  72. package/dist/help/contract10-guide.d.ts +10 -0
  73. package/dist/help/contract10-guide.d.ts.map +1 -0
  74. package/dist/help/contract10-guide.js +244 -0
  75. package/dist/help/contract10-guide.js.map +1 -0
  76. package/dist/index.d.ts +18 -8
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +8 -5
  79. package/dist/index.js.map +1 -1
  80. package/dist/milestone-acceptance/advance.d.ts +9 -0
  81. package/dist/milestone-acceptance/advance.d.ts.map +1 -1
  82. package/dist/milestone-acceptance/advance.js +29 -2
  83. package/dist/milestone-acceptance/advance.js.map +1 -1
  84. package/dist/milestone-acceptance/mutation.d.ts +2 -0
  85. package/dist/milestone-acceptance/mutation.d.ts.map +1 -1
  86. package/dist/milestone-acceptance/mutation.js +48 -12
  87. package/dist/milestone-acceptance/mutation.js.map +1 -1
  88. package/dist/model/source-result.d.ts +12 -0
  89. package/dist/model/source-result.d.ts.map +1 -0
  90. package/dist/model/source-result.js +16 -0
  91. package/dist/model/source-result.js.map +1 -0
  92. package/dist/mutation/advance-deletion.d.ts +1 -0
  93. package/dist/mutation/advance-deletion.d.ts.map +1 -1
  94. package/dist/mutation/advance-deletion.js +4 -1
  95. package/dist/mutation/advance-deletion.js.map +1 -1
  96. package/dist/mutation/validated-source.d.ts +30 -0
  97. package/dist/mutation/validated-source.d.ts.map +1 -0
  98. package/dist/mutation/validated-source.js +58 -0
  99. package/dist/mutation/validated-source.js.map +1 -0
  100. package/dist/node/planning-token-store.d.ts +3 -0
  101. package/dist/node/planning-token-store.d.ts.map +1 -0
  102. package/dist/node/planning-token-store.js +90 -0
  103. package/dist/node/planning-token-store.js.map +1 -0
  104. package/dist/parser/document-parser.d.ts +1 -0
  105. package/dist/parser/document-parser.d.ts.map +1 -1
  106. package/dist/parser/document-parser.js +1 -1
  107. package/dist/parser/document-parser.js.map +1 -1
  108. package/dist/perttool-vscode-private-0.0.0-d1578b9.vsix +0 -0
  109. package/dist/planning-pool/advance.d.ts +10 -0
  110. package/dist/planning-pool/advance.d.ts.map +1 -0
  111. package/dist/planning-pool/advance.js +158 -0
  112. package/dist/planning-pool/advance.js.map +1 -0
  113. package/dist/planning-pool/format.d.ts +12 -0
  114. package/dist/planning-pool/format.d.ts.map +1 -0
  115. package/dist/planning-pool/format.js +199 -0
  116. package/dist/planning-pool/format.js.map +1 -0
  117. package/dist/planning-pool/history-guard.d.ts +19 -0
  118. package/dist/planning-pool/history-guard.d.ts.map +1 -0
  119. package/dist/planning-pool/history-guard.js +123 -0
  120. package/dist/planning-pool/history-guard.js.map +1 -0
  121. package/dist/planning-pool/history-types.d.ts +174 -0
  122. package/dist/planning-pool/history-types.d.ts.map +1 -0
  123. package/dist/planning-pool/history-types.js +2 -0
  124. package/dist/planning-pool/history-types.js.map +1 -0
  125. package/dist/planning-pool/history.d.ts +11 -0
  126. package/dist/planning-pool/history.d.ts.map +1 -0
  127. package/dist/planning-pool/history.js +977 -0
  128. package/dist/planning-pool/history.js.map +1 -0
  129. package/dist/planning-pool/human.d.ts +9 -0
  130. package/dist/planning-pool/human.d.ts.map +1 -0
  131. package/dist/planning-pool/human.js +305 -0
  132. package/dist/planning-pool/human.js.map +1 -0
  133. package/dist/planning-pool/intent-types.d.ts +76 -0
  134. package/dist/planning-pool/intent-types.d.ts.map +1 -0
  135. package/dist/planning-pool/intent-types.js +2 -0
  136. package/dist/planning-pool/intent-types.js.map +1 -0
  137. package/dist/planning-pool/intent.d.ts +7 -0
  138. package/dist/planning-pool/intent.d.ts.map +1 -0
  139. package/dist/planning-pool/intent.js +590 -0
  140. package/dist/planning-pool/intent.js.map +1 -0
  141. package/dist/planning-pool/observation-types.d.ts +143 -0
  142. package/dist/planning-pool/observation-types.d.ts.map +1 -0
  143. package/dist/planning-pool/observation-types.js +2 -0
  144. package/dist/planning-pool/observation-types.js.map +1 -0
  145. package/dist/planning-pool/observation.d.ts +8 -0
  146. package/dist/planning-pool/observation.d.ts.map +1 -0
  147. package/dist/planning-pool/observation.js +582 -0
  148. package/dist/planning-pool/observation.js.map +1 -0
  149. package/dist/planning-pool/projection.d.ts +28 -0
  150. package/dist/planning-pool/projection.d.ts.map +1 -0
  151. package/dist/planning-pool/projection.js +148 -0
  152. package/dist/planning-pool/projection.js.map +1 -0
  153. package/dist/planning-pool/public-core.d.ts +32 -0
  154. package/dist/planning-pool/public-core.d.ts.map +1 -0
  155. package/dist/planning-pool/public-core.js +122 -0
  156. package/dist/planning-pool/public-core.js.map +1 -0
  157. package/dist/planning-pool/reshape-normalize.d.ts +15 -0
  158. package/dist/planning-pool/reshape-normalize.d.ts.map +1 -0
  159. package/dist/planning-pool/reshape-normalize.js +688 -0
  160. package/dist/planning-pool/reshape-normalize.js.map +1 -0
  161. package/dist/planning-pool/reshape-token.d.ts +20 -0
  162. package/dist/planning-pool/reshape-token.d.ts.map +1 -0
  163. package/dist/planning-pool/reshape-token.js +193 -0
  164. package/dist/planning-pool/reshape-token.js.map +1 -0
  165. package/dist/planning-pool/reshape-types.d.ts +183 -0
  166. package/dist/planning-pool/reshape-types.d.ts.map +1 -0
  167. package/dist/planning-pool/reshape-types.js +2 -0
  168. package/dist/planning-pool/reshape-types.js.map +1 -0
  169. package/dist/planning-pool/reshape.d.ts +13 -0
  170. package/dist/planning-pool/reshape.d.ts.map +1 -0
  171. package/dist/planning-pool/reshape.js +1434 -0
  172. package/dist/planning-pool/reshape.js.map +1 -0
  173. package/dist/planning-pool/source-lexical.d.ts +30 -0
  174. package/dist/planning-pool/source-lexical.d.ts.map +1 -0
  175. package/dist/planning-pool/source-lexical.js +158 -0
  176. package/dist/planning-pool/source-lexical.js.map +1 -0
  177. package/dist/planning-pool/source-types.d.ts +169 -0
  178. package/dist/planning-pool/source-types.d.ts.map +1 -0
  179. package/dist/planning-pool/source-types.js +2 -0
  180. package/dist/planning-pool/source-types.js.map +1 -0
  181. package/dist/planning-pool/source-values.d.ts +16 -0
  182. package/dist/planning-pool/source-values.d.ts.map +1 -0
  183. package/dist/planning-pool/source-values.js +120 -0
  184. package/dist/planning-pool/source-values.js.map +1 -0
  185. package/dist/planning-pool/source.d.ts +18 -0
  186. package/dist/planning-pool/source.d.ts.map +1 -0
  187. package/dist/planning-pool/source.js +811 -0
  188. package/dist/planning-pool/source.js.map +1 -0
  189. package/dist/planning-pool/window-types.d.ts +133 -0
  190. package/dist/planning-pool/window-types.d.ts.map +1 -0
  191. package/dist/planning-pool/window-types.js +2 -0
  192. package/dist/planning-pool/window-types.js.map +1 -0
  193. package/dist/planning-pool/window.d.ts +6 -0
  194. package/dist/planning-pool/window.d.ts.map +1 -0
  195. package/dist/planning-pool/window.js +625 -0
  196. package/dist/planning-pool/window.js.map +1 -0
  197. package/dist/schema/registry.d.ts +1 -1
  198. package/dist/schema/registry.d.ts.map +1 -1
  199. package/dist/schema/registry.js +17 -3
  200. package/dist/schema/registry.js.map +1 -1
  201. package/dist/temporal-schedule/format.d.ts.map +1 -1
  202. package/dist/temporal-schedule/format.js +4 -54
  203. package/dist/temporal-schedule/format.js.map +1 -1
  204. package/dist/temporal-schedule/source-lexical.d.ts +9 -0
  205. package/dist/temporal-schedule/source-lexical.d.ts.map +1 -1
  206. package/dist/temporal-schedule/source-lexical.js +21 -10
  207. package/dist/temporal-schedule/source-lexical.js.map +1 -1
  208. package/dist/temporal-schedule/source.d.ts.map +1 -1
  209. package/dist/temporal-schedule/source.js +3 -13
  210. package/dist/temporal-schedule/source.js.map +1 -1
  211. package/dist/version.d.ts +1 -1
  212. package/dist/version.js +1 -1
  213. package/package.json +1 -1
  214. package/schemas/{Perttool.AdvanceResult.v3.schema.json → Perttool.AdvanceResult.v4.schema.json} +42 -4
  215. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
  216. package/schemas/Perttool.AnalysisResult.v7.schema.json +1 -1
  217. package/schemas/Perttool.CheckResult.v6.schema.json +1 -1
  218. package/schemas/Perttool.CliError.v1.schema.json +1 -1
  219. package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
  220. package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
  221. package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
  222. package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
  223. package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +1 -1
  224. package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
  225. package/schemas/Perttool.InitResult.v1.schema.json +1 -1
  226. package/schemas/Perttool.MilestoneAcceptanceMigrationResult.v1.schema.json +1 -1
  227. package/schemas/Perttool.MilestoneAcceptanceResult.v1.schema.json +1 -1
  228. package/schemas/Perttool.MutationResult.v6.schema.json +1 -1
  229. package/schemas/Perttool.NextResult.v8.schema.json +7 -4
  230. package/schemas/Perttool.PlanAssuranceResult.v2.schema.json +1 -1
  231. package/schemas/Perttool.PlanningMutationResult.v1.schema.json +567 -0
  232. package/schemas/Perttool.PlanningObservationRequest.v1.schema.json +6 -0
  233. package/schemas/Perttool.PlanningPoolResult.v1.schema.json +469 -0
  234. package/schemas/Perttool.PlanningReshapePreflightResult.v1.schema.json +906 -0
  235. package/schemas/Perttool.PlanningReshapeRequest.v1.schema.json +19 -0
  236. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
  237. package/schemas/Perttool.ProjectResult.v5.schema.json +1 -1
  238. package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
  239. package/schemas/{Perttool.UnitMigrationResult.v4.schema.json → Perttool.UnitMigrationResult.v5.schema.json} +42 -17
  240. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
  241. package/schemas/Perttool.WindowMutationRequest.v1.schema.json +6 -0
@@ -0,0 +1,906 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/mako10k/perttool/schemas/Perttool.PlanningReshapePreflightResult.v1.schema.json",
4
+ "title": "Perttool.PlanningReshapePreflightResult.v1",
5
+ "$defs": {
6
+ "createdWork": {
7
+ "type": "object",
8
+ "required": [
9
+ "work_id",
10
+ "title",
11
+ "insert_after_work_id"
12
+ ],
13
+ "properties": {
14
+ "work_id": {
15
+ "type": "string"
16
+ },
17
+ "title": {
18
+ "type": "string"
19
+ },
20
+ "insert_after_work_id": {
21
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
22
+ }
23
+ },
24
+ "additionalProperties": false
25
+ },
26
+ "existingOrigin": {
27
+ "type": "object",
28
+ "required": [
29
+ "kind",
30
+ "work_id",
31
+ "start_utf16",
32
+ "end_utf16",
33
+ "source_text"
34
+ ],
35
+ "properties": {
36
+ "kind": {
37
+ "const": "existing"
38
+ },
39
+ "work_id": {
40
+ "type": "string"
41
+ },
42
+ "start_utf16": {
43
+ "type": "integer",
44
+ "minimum": 0
45
+ },
46
+ "end_utf16": {
47
+ "type": "integer",
48
+ "minimum": 0
49
+ },
50
+ "source_text": {
51
+ "type": "string"
52
+ }
53
+ },
54
+ "additionalProperties": false
55
+ },
56
+ "createdOrigin": {
57
+ "type": "object",
58
+ "required": [
59
+ "kind",
60
+ "source_text",
61
+ "asserted_new_meaning"
62
+ ],
63
+ "properties": {
64
+ "kind": {
65
+ "const": "created"
66
+ },
67
+ "source_text": {
68
+ "type": "string"
69
+ },
70
+ "asserted_new_meaning": {
71
+ "const": true
72
+ }
73
+ },
74
+ "additionalProperties": false
75
+ },
76
+ "elementOrigin": {
77
+ "oneOf": [
78
+ {
79
+ "$ref": "#/$defs/existingOrigin"
80
+ },
81
+ {
82
+ "$ref": "#/$defs/createdOrigin"
83
+ }
84
+ ]
85
+ },
86
+ "workDestination": {
87
+ "type": "object",
88
+ "required": [
89
+ "kind",
90
+ "work_id",
91
+ "position",
92
+ "text"
93
+ ],
94
+ "properties": {
95
+ "kind": {
96
+ "const": "work"
97
+ },
98
+ "work_id": {
99
+ "type": "string"
100
+ },
101
+ "position": {
102
+ "type": "integer",
103
+ "minimum": 0
104
+ },
105
+ "text": {
106
+ "type": "string"
107
+ }
108
+ },
109
+ "additionalProperties": false
110
+ },
111
+ "discardDestination": {
112
+ "type": "object",
113
+ "required": [
114
+ "kind"
115
+ ],
116
+ "properties": {
117
+ "kind": {
118
+ "const": "discard"
119
+ },
120
+ "reason": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ "additionalProperties": false
125
+ },
126
+ "elementDestination": {
127
+ "oneOf": [
128
+ {
129
+ "$ref": "#/$defs/workDestination"
130
+ },
131
+ {
132
+ "$ref": "#/$defs/discardDestination"
133
+ }
134
+ ]
135
+ },
136
+ "semanticElement": {
137
+ "type": "object",
138
+ "required": [
139
+ "element_id",
140
+ "origin",
141
+ "destination"
142
+ ],
143
+ "properties": {
144
+ "element_id": {
145
+ "type": "string"
146
+ },
147
+ "origin": {
148
+ "$ref": "#/$defs/elementOrigin"
149
+ },
150
+ "destination": {
151
+ "$ref": "#/$defs/elementDestination"
152
+ }
153
+ },
154
+ "additionalProperties": false
155
+ },
156
+ "entityDisposition": {
157
+ "type": "object",
158
+ "required": [
159
+ "entity_kind",
160
+ "entity_id",
161
+ "action"
162
+ ],
163
+ "properties": {
164
+ "entity_kind": {
165
+ "enum": [
166
+ "event",
167
+ "activity"
168
+ ]
169
+ },
170
+ "entity_id": {
171
+ "type": "string"
172
+ },
173
+ "action": {
174
+ "enum": [
175
+ "retain",
176
+ "create",
177
+ "project",
178
+ "defer",
179
+ "discard"
180
+ ]
181
+ },
182
+ "reason": {
183
+ "type": "string"
184
+ }
185
+ },
186
+ "additionalProperties": false
187
+ },
188
+ "associationDisposition": {
189
+ "type": "object",
190
+ "required": [
191
+ "entity_kind",
192
+ "entity_id",
193
+ "origin_work_id",
194
+ "destination_work_id"
195
+ ],
196
+ "properties": {
197
+ "entity_kind": {
198
+ "enum": [
199
+ "event",
200
+ "activity"
201
+ ]
202
+ },
203
+ "entity_id": {
204
+ "type": "string"
205
+ },
206
+ "origin_work_id": {
207
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
208
+ },
209
+ "destination_work_id": {
210
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
211
+ }
212
+ },
213
+ "additionalProperties": false
214
+ },
215
+ "projectionLinkDisposition": {
216
+ "type": "object",
217
+ "required": [
218
+ "strict_kind",
219
+ "strict_id",
220
+ "origin_work_id",
221
+ "destination_work_id"
222
+ ],
223
+ "properties": {
224
+ "strict_kind": {
225
+ "enum": [
226
+ "milestone",
227
+ "task"
228
+ ]
229
+ },
230
+ "strict_id": {
231
+ "type": "string"
232
+ },
233
+ "origin_work_id": {
234
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
235
+ },
236
+ "destination_work_id": {
237
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
238
+ }
239
+ },
240
+ "additionalProperties": false
241
+ },
242
+ "dependencyDisposition": {
243
+ "type": "object",
244
+ "required": [
245
+ "dependent_work_id",
246
+ "prerequisite_work_id",
247
+ "action"
248
+ ],
249
+ "properties": {
250
+ "dependent_work_id": {
251
+ "type": "string"
252
+ },
253
+ "prerequisite_work_id": {
254
+ "type": "string"
255
+ },
256
+ "action": {
257
+ "enum": [
258
+ "retain",
259
+ "create",
260
+ "rebind",
261
+ "represented",
262
+ "no_longer_required"
263
+ ]
264
+ },
265
+ "final_dependent_work_id": {
266
+ "type": "string"
267
+ },
268
+ "final_prerequisite_work_id": {
269
+ "type": "string"
270
+ },
271
+ "represented_by": {
272
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
273
+ },
274
+ "reason": {
275
+ "type": "string"
276
+ }
277
+ },
278
+ "additionalProperties": false
279
+ },
280
+ "membershipDisposition": {
281
+ "type": "object",
282
+ "required": [
283
+ "window_id",
284
+ "origin_work_id",
285
+ "destination_work_id"
286
+ ],
287
+ "properties": {
288
+ "window_id": {
289
+ "type": "string"
290
+ },
291
+ "origin_work_id": {
292
+ "type": "string"
293
+ },
294
+ "destination_work_id": {
295
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
296
+ }
297
+ },
298
+ "additionalProperties": false
299
+ },
300
+ "residualDescription": {
301
+ "type": "object",
302
+ "required": [
303
+ "work_id",
304
+ "text"
305
+ ],
306
+ "properties": {
307
+ "work_id": {
308
+ "type": "string"
309
+ },
310
+ "text": {
311
+ "type": "string"
312
+ }
313
+ },
314
+ "additionalProperties": false
315
+ },
316
+ "projectFragment": {
317
+ "type": "object",
318
+ "required": [
319
+ "kind",
320
+ "event_ids",
321
+ "activity_ids"
322
+ ],
323
+ "properties": {
324
+ "kind": {
325
+ "const": "project"
326
+ },
327
+ "event_ids": {
328
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
329
+ },
330
+ "activity_ids": {
331
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
332
+ }
333
+ },
334
+ "additionalProperties": false
335
+ },
336
+ "deferFragment": {
337
+ "type": "object",
338
+ "required": [
339
+ "kind",
340
+ "task_ids",
341
+ "milestone_ids"
342
+ ],
343
+ "properties": {
344
+ "kind": {
345
+ "const": "defer"
346
+ },
347
+ "task_ids": {
348
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
349
+ },
350
+ "milestone_ids": {
351
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
352
+ }
353
+ },
354
+ "additionalProperties": false
355
+ },
356
+ "strictFragment": {
357
+ "oneOf": [
358
+ {
359
+ "oneOf": [
360
+ {
361
+ "$ref": "#/$defs/projectFragment"
362
+ },
363
+ {
364
+ "$ref": "#/$defs/deferFragment"
365
+ }
366
+ ]
367
+ },
368
+ {
369
+ "type": "null"
370
+ }
371
+ ]
372
+ },
373
+ "existingCarryTarget": {
374
+ "type": "object",
375
+ "required": [
376
+ "kind",
377
+ "window_id"
378
+ ],
379
+ "properties": {
380
+ "kind": {
381
+ "const": "existing"
382
+ },
383
+ "window_id": {
384
+ "type": "string"
385
+ }
386
+ },
387
+ "additionalProperties": false
388
+ },
389
+ "newCarryTarget": {
390
+ "type": "object",
391
+ "required": [
392
+ "kind",
393
+ "window_id",
394
+ "title",
395
+ "objective",
396
+ "start",
397
+ "end"
398
+ ],
399
+ "properties": {
400
+ "kind": {
401
+ "const": "new"
402
+ },
403
+ "window_id": {
404
+ "type": "string"
405
+ },
406
+ "title": {
407
+ "type": "string"
408
+ },
409
+ "objective": {
410
+ "type": "string"
411
+ },
412
+ "start": {
413
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
414
+ },
415
+ "end": {
416
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
417
+ }
418
+ },
419
+ "additionalProperties": false
420
+ },
421
+ "carryTarget": {
422
+ "oneOf": [
423
+ {
424
+ "oneOf": [
425
+ {
426
+ "$ref": "#/$defs/existingCarryTarget"
427
+ },
428
+ {
429
+ "$ref": "#/$defs/newCarryTarget"
430
+ }
431
+ ]
432
+ },
433
+ {
434
+ "type": "null"
435
+ }
436
+ ]
437
+ },
438
+ "windowCloseIntent": {
439
+ "type": "object",
440
+ "required": [
441
+ "window_id",
442
+ "objective_disposition",
443
+ "carry_over_work_ids",
444
+ "carry_over_target"
445
+ ],
446
+ "properties": {
447
+ "window_id": {
448
+ "type": "string"
449
+ },
450
+ "objective_disposition": {
451
+ "const": "discard"
452
+ },
453
+ "carry_over_work_ids": {
454
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
455
+ },
456
+ "carry_over_target": {
457
+ "$ref": "#/$defs/carryTarget"
458
+ }
459
+ },
460
+ "additionalProperties": false
461
+ },
462
+ "normalizedRequest": {
463
+ "type": "object",
464
+ "required": [
465
+ "request_schema_version",
466
+ "normalization_contract",
467
+ "source_digest",
468
+ "intent",
469
+ "affected_work_ids",
470
+ "created_works",
471
+ "removed_work_ids",
472
+ "semantic_elements",
473
+ "planning_entity_dispositions",
474
+ "association_dispositions",
475
+ "projection_link_dispositions",
476
+ "dependency_dispositions",
477
+ "window_membership_dispositions",
478
+ "final_work_order",
479
+ "add_residual_description",
480
+ "strict_fragment",
481
+ "window_close"
482
+ ],
483
+ "properties": {
484
+ "request_schema_version": {
485
+ "enum": [
486
+ "Perttool.PlanningReshapeRequest.v1",
487
+ "Perttool.PlanningReshapeRequest.v2"
488
+ ]
489
+ },
490
+ "normalization_contract": {
491
+ "enum": [
492
+ "perttool.planning-reshape-normalization@1",
493
+ "perttool.planning-reshape-normalization@2"
494
+ ]
495
+ },
496
+ "source_digest": {
497
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/digest"
498
+ },
499
+ "intent": {
500
+ "enum": [
501
+ "reshape",
502
+ "project",
503
+ "defer",
504
+ "archive",
505
+ "composite"
506
+ ]
507
+ },
508
+ "affected_work_ids": {
509
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
510
+ },
511
+ "created_works": {
512
+ "type": "array",
513
+ "items": {
514
+ "$ref": "#/$defs/createdWork"
515
+ }
516
+ },
517
+ "work_title_dispositions": {
518
+ "type": "array",
519
+ "items": {
520
+ "type": "object",
521
+ "required": [
522
+ "work_id",
523
+ "title"
524
+ ],
525
+ "properties": {
526
+ "work_id": {
527
+ "type": "string"
528
+ },
529
+ "title": {
530
+ "type": "string",
531
+ "minLength": 1
532
+ }
533
+ },
534
+ "additionalProperties": false
535
+ }
536
+ },
537
+ "removed_work_ids": {
538
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
539
+ },
540
+ "semantic_elements": {
541
+ "type": "array",
542
+ "items": {
543
+ "$ref": "#/$defs/semanticElement"
544
+ }
545
+ },
546
+ "planning_entity_dispositions": {
547
+ "type": "array",
548
+ "items": {
549
+ "$ref": "#/$defs/entityDisposition"
550
+ }
551
+ },
552
+ "association_dispositions": {
553
+ "type": "array",
554
+ "items": {
555
+ "$ref": "#/$defs/associationDisposition"
556
+ }
557
+ },
558
+ "projection_link_dispositions": {
559
+ "type": "array",
560
+ "items": {
561
+ "$ref": "#/$defs/projectionLinkDisposition"
562
+ }
563
+ },
564
+ "dependency_dispositions": {
565
+ "type": "array",
566
+ "items": {
567
+ "$ref": "#/$defs/dependencyDisposition"
568
+ }
569
+ },
570
+ "window_membership_dispositions": {
571
+ "type": "array",
572
+ "items": {
573
+ "$ref": "#/$defs/membershipDisposition"
574
+ }
575
+ },
576
+ "final_work_order": {
577
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
578
+ },
579
+ "add_residual_description": {
580
+ "type": "array",
581
+ "items": {
582
+ "$ref": "#/$defs/residualDescription"
583
+ }
584
+ },
585
+ "strict_fragment": {
586
+ "$ref": "#/$defs/strictFragment"
587
+ },
588
+ "window_close": {
589
+ "oneOf": [
590
+ {
591
+ "$ref": "#/$defs/windowCloseIntent"
592
+ },
593
+ {
594
+ "type": "null"
595
+ }
596
+ ]
597
+ }
598
+ },
599
+ "additionalProperties": false,
600
+ "allOf": [
601
+ {
602
+ "if": {
603
+ "properties": {
604
+ "request_schema_version": {
605
+ "const": "Perttool.PlanningReshapeRequest.v1"
606
+ }
607
+ }
608
+ },
609
+ "then": {
610
+ "properties": {
611
+ "normalization_contract": {
612
+ "const": "perttool.planning-reshape-normalization@1"
613
+ },
614
+ "work_title_dispositions": false
615
+ }
616
+ }
617
+ },
618
+ {
619
+ "if": {
620
+ "properties": {
621
+ "request_schema_version": {
622
+ "const": "Perttool.PlanningReshapeRequest.v2"
623
+ }
624
+ }
625
+ },
626
+ "then": {
627
+ "required": [
628
+ "work_title_dispositions"
629
+ ],
630
+ "properties": {
631
+ "normalization_contract": {
632
+ "const": "perttool.planning-reshape-normalization@2"
633
+ }
634
+ }
635
+ }
636
+ }
637
+ ]
638
+ },
639
+ "nullableNormalizedRequest": {
640
+ "oneOf": [
641
+ {
642
+ "$ref": "#/$defs/normalizedRequest"
643
+ },
644
+ {
645
+ "type": "null"
646
+ }
647
+ ]
648
+ },
649
+ "descriptionRow": {
650
+ "type": "object",
651
+ "required": [
652
+ "work_id",
653
+ "description",
654
+ "element_ids"
655
+ ],
656
+ "properties": {
657
+ "work_id": {
658
+ "type": "string"
659
+ },
660
+ "description": {
661
+ "type": "string"
662
+ },
663
+ "element_ids": {
664
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
665
+ }
666
+ },
667
+ "additionalProperties": false
668
+ },
669
+ "windowSnapshot": {
670
+ "type": "object",
671
+ "required": [
672
+ "kind",
673
+ "qualified_id",
674
+ "title",
675
+ "objective",
676
+ "start",
677
+ "end",
678
+ "work_ids"
679
+ ],
680
+ "properties": {
681
+ "kind": {
682
+ "enum": [
683
+ "persisted",
684
+ "ad_hoc"
685
+ ]
686
+ },
687
+ "qualified_id": {
688
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
689
+ },
690
+ "title": {
691
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
692
+ },
693
+ "objective": {
694
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
695
+ },
696
+ "start": {
697
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
698
+ },
699
+ "end": {
700
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
701
+ },
702
+ "work_ids": {
703
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/stringArray"
704
+ }
705
+ },
706
+ "additionalProperties": false
707
+ },
708
+ "carryOverRecord": {
709
+ "type": "object",
710
+ "required": [
711
+ "work_id",
712
+ "target_window_id",
713
+ "status"
714
+ ],
715
+ "properties": {
716
+ "work_id": {
717
+ "type": "string"
718
+ },
719
+ "target_window_id": {
720
+ "type": "string"
721
+ },
722
+ "status": {
723
+ "enum": [
724
+ "selected",
725
+ "already_selected"
726
+ ]
727
+ }
728
+ },
729
+ "additionalProperties": false
730
+ },
731
+ "windowCloseReport": {
732
+ "type": "object",
733
+ "required": [
734
+ "removed_window",
735
+ "objective_disposition",
736
+ "carry_over",
737
+ "target_created"
738
+ ],
739
+ "properties": {
740
+ "removed_window": {
741
+ "$ref": "#/$defs/windowSnapshot"
742
+ },
743
+ "objective_disposition": {
744
+ "const": "discard"
745
+ },
746
+ "carry_over": {
747
+ "type": "array",
748
+ "items": {
749
+ "$ref": "#/$defs/carryOverRecord"
750
+ }
751
+ },
752
+ "target_created": {
753
+ "type": "boolean"
754
+ }
755
+ },
756
+ "additionalProperties": false
757
+ },
758
+ "nullableWindowCloseReport": {
759
+ "oneOf": [
760
+ {
761
+ "$ref": "#/$defs/windowCloseReport"
762
+ },
763
+ {
764
+ "type": "null"
765
+ }
766
+ ]
767
+ },
768
+ "authorityImpact": {
769
+ "type": "object",
770
+ "required": [
771
+ "affected_scopes",
772
+ "required_owner",
773
+ "user_response_required"
774
+ ],
775
+ "properties": {
776
+ "affected_scopes": {
777
+ "type": "array",
778
+ "items": {
779
+ "const": "dag"
780
+ },
781
+ "maxItems": 1
782
+ },
783
+ "required_owner": {
784
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
785
+ },
786
+ "user_response_required": {
787
+ "type": "boolean"
788
+ }
789
+ },
790
+ "additionalProperties": false
791
+ },
792
+ "nullableAuthorityImpact": {
793
+ "oneOf": [
794
+ {
795
+ "$ref": "#/$defs/authorityImpact"
796
+ },
797
+ {
798
+ "type": "null"
799
+ }
800
+ ]
801
+ }
802
+ },
803
+ "type": "object",
804
+ "required": [
805
+ "schema_version",
806
+ "cli_contract_version",
807
+ "tool_version",
808
+ "operation",
809
+ "ok",
810
+ "document_id",
811
+ "source",
812
+ "source_digest",
813
+ "normalized_request",
814
+ "canonical_request_utf8",
815
+ "preflight_hash",
816
+ "candidate_digest",
817
+ "candidate_text",
818
+ "changed",
819
+ "edits",
820
+ "before_descriptions",
821
+ "after_descriptions",
822
+ "window_close_report",
823
+ "preflight_token",
824
+ "token_expires_at",
825
+ "authority_impact",
826
+ "diagnostics"
827
+ ],
828
+ "properties": {
829
+ "schema_version": {
830
+ "const": "Perttool.PlanningReshapePreflightResult.v1"
831
+ },
832
+ "cli_contract_version": {
833
+ "const": 10
834
+ },
835
+ "tool_version": {
836
+ "type": "string"
837
+ },
838
+ "operation": {
839
+ "const": "work.reshape.preflight"
840
+ },
841
+ "ok": {
842
+ "type": "boolean"
843
+ },
844
+ "document_id": {
845
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
846
+ },
847
+ "source": {
848
+ "type": "string"
849
+ },
850
+ "source_digest": {
851
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/digest"
852
+ },
853
+ "normalized_request": {
854
+ "$ref": "#/$defs/nullableNormalizedRequest"
855
+ },
856
+ "canonical_request_utf8": {
857
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
858
+ },
859
+ "preflight_hash": {
860
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableDigest"
861
+ },
862
+ "candidate_digest": {
863
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableDigest"
864
+ },
865
+ "candidate_text": {
866
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
867
+ },
868
+ "changed": {
869
+ "type": "boolean"
870
+ },
871
+ "edits": {
872
+ "type": "array",
873
+ "items": {
874
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/edit"
875
+ }
876
+ },
877
+ "before_descriptions": {
878
+ "type": "array",
879
+ "items": {
880
+ "$ref": "#/$defs/descriptionRow"
881
+ }
882
+ },
883
+ "after_descriptions": {
884
+ "type": "array",
885
+ "items": {
886
+ "$ref": "#/$defs/descriptionRow"
887
+ }
888
+ },
889
+ "window_close_report": {
890
+ "$ref": "#/$defs/nullableWindowCloseReport"
891
+ },
892
+ "preflight_token": {
893
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
894
+ },
895
+ "token_expires_at": {
896
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/nullableString"
897
+ },
898
+ "authority_impact": {
899
+ "$ref": "#/$defs/nullableAuthorityImpact"
900
+ },
901
+ "diagnostics": {
902
+ "$ref": "Perttool.Common.v1.schema.json#/$defs/diagnostics"
903
+ }
904
+ },
905
+ "additionalProperties": false
906
+ }