@slope-dev/slope 1.63.0 → 1.64.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +57 -1
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +43 -14
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +3 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/now.d.ts.map +1 -1
- package/dist/cli/commands/now.js +5 -2
- package/dist/cli/commands/now.js.map +1 -1
- package/dist/cli/commands/pr.d.ts +10 -3
- package/dist/cli/commands/pr.d.ts.map +1 -1
- package/dist/cli/commands/pr.js +45 -5
- package/dist/cli/commands/pr.js.map +1 -1
- package/dist/cli/commands/retro.d.ts.map +1 -1
- package/dist/cli/commands/retro.js +31 -4
- package/dist/cli/commands/retro.js.map +1 -1
- package/dist/cli/commands/review.d.ts +13 -1
- package/dist/cli/commands/review.d.ts.map +1 -1
- package/dist/cli/commands/review.js +99 -8
- package/dist/cli/commands/review.js.map +1 -1
- package/dist/cli/commands/roadmap.d.ts.map +1 -1
- package/dist/cli/commands/roadmap.js +75 -22
- package/dist/cli/commands/roadmap.js.map +1 -1
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +81 -15
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/commands/sprint.d.ts.map +1 -1
- package/dist/cli/commands/sprint.js +24 -6
- package/dist/cli/commands/sprint.js.map +1 -1
- package/dist/cli/commands/standup.d.ts.map +1 -1
- package/dist/cli/commands/standup.js +68 -0
- package/dist/cli/commands/standup.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +25 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/transcript.d.ts.map +1 -1
- package/dist/cli/commands/transcript.js +15 -4
- package/dist/cli/commands/transcript.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +11 -0
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +45 -5
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/guards/claim-area.d.ts +27 -0
- package/dist/cli/guards/claim-area.d.ts.map +1 -0
- package/dist/cli/guards/claim-area.js +44 -0
- package/dist/cli/guards/claim-area.js.map +1 -0
- package/dist/cli/guards/claim-required.d.ts.map +1 -1
- package/dist/cli/guards/claim-required.js +41 -14
- package/dist/cli/guards/claim-required.js.map +1 -1
- package/dist/cli/guards/docs.d.ts.map +1 -1
- package/dist/cli/guards/docs.js +7 -0
- package/dist/cli/guards/docs.js.map +1 -1
- package/dist/cli/guards/phase-boundary.d.ts.map +1 -1
- package/dist/cli/guards/phase-boundary.js +34 -1
- package/dist/cli/guards/phase-boundary.js.map +1 -1
- package/dist/cli/guards/plan-analysis.d.ts +2 -2
- package/dist/cli/guards/plan-analysis.d.ts.map +1 -1
- package/dist/cli/guards/plan-analysis.js +16 -2
- package/dist/cli/guards/plan-analysis.js.map +1 -1
- package/dist/cli/guards/pr-review.d.ts +0 -8
- package/dist/cli/guards/pr-review.d.ts.map +1 -1
- package/dist/cli/guards/pr-review.js +31 -0
- package/dist/cli/guards/pr-review.js.map +1 -1
- package/dist/cli/guards/scope-drift.d.ts.map +1 -1
- package/dist/cli/guards/scope-drift.js +2 -4
- package/dist/cli/guards/scope-drift.js.map +1 -1
- package/dist/cli/guards/shell-write.d.ts +23 -0
- package/dist/cli/guards/shell-write.d.ts.map +1 -0
- package/dist/cli/guards/shell-write.js +81 -0
- package/dist/cli/guards/shell-write.js.map +1 -0
- package/dist/cli/guards/sprint-completion.js +11 -5
- package/dist/cli/guards/sprint-completion.js.map +1 -1
- package/dist/cli/guards/workflow-step-gate.d.ts.map +1 -1
- package/dist/cli/guards/workflow-step-gate.js +28 -3
- package/dist/cli/guards/workflow-step-gate.js.map +1 -1
- package/dist/cli/guards/worktree-check.d.ts.map +1 -1
- package/dist/cli/guards/worktree-check.js +86 -52
- package/dist/cli/guards/worktree-check.js.map +1 -1
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/loop/workflow-adapter.d.ts.map +1 -1
- package/dist/cli/loop/workflow-adapter.js +3 -0
- package/dist/cli/loop/workflow-adapter.js.map +1 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli/roadmap-source-store.d.ts +27 -1
- package/dist/cli/roadmap-source-store.d.ts.map +1 -1
- package/dist/cli/roadmap-source-store.js +213 -22
- package/dist/cli/roadmap-source-store.js.map +1 -1
- package/dist/cli/session-scope.d.ts +35 -0
- package/dist/cli/session-scope.d.ts.map +1 -0
- package/dist/cli/session-scope.js +79 -0
- package/dist/cli/session-scope.js.map +1 -0
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +5 -2
- package/dist/cli/session-state.js.map +1 -1
- package/dist/cli/sprint-rollover.d.ts +17 -2
- package/dist/cli/sprint-rollover.d.ts.map +1 -1
- package/dist/cli/sprint-rollover.js +163 -40
- package/dist/cli/sprint-rollover.js.map +1 -1
- package/dist/cli/sprint-state.d.ts +18 -0
- package/dist/cli/sprint-state.d.ts.map +1 -1
- package/dist/cli/sprint-state.js +26 -0
- package/dist/cli/sprint-state.js.map +1 -1
- package/dist/cli/template-generator.d.ts.map +1 -1
- package/dist/cli/template-generator.js +1 -0
- package/dist/cli/template-generator.js.map +1 -1
- package/dist/cli/workflow-resync.d.ts +5 -2
- package/dist/cli/workflow-resync.d.ts.map +1 -1
- package/dist/cli/workflow-resync.js +28 -0
- package/dist/cli/workflow-resync.js.map +1 -1
- package/dist/core/config.d.ts +3 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/formatter.js +4 -4
- package/dist/core/formatter.js.map +1 -1
- package/dist/core/guard.d.ts +1 -1
- package/dist/core/guard.d.ts.map +1 -1
- package/dist/core/guard.js +9 -0
- package/dist/core/guard.js.map +1 -1
- package/dist/core/index.d.ts +7 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/roadmap-source-patch.d.ts +26 -0
- package/dist/core/roadmap-source-patch.d.ts.map +1 -0
- package/dist/core/roadmap-source-patch.js +172 -0
- package/dist/core/roadmap-source-patch.js.map +1 -0
- package/dist/core/roadmap-sources.d.ts +44 -0
- package/dist/core/roadmap-sources.d.ts.map +1 -1
- package/dist/core/roadmap-sources.js +235 -37
- package/dist/core/roadmap-sources.js.map +1 -1
- package/dist/core/roadmap.d.ts +50 -1
- package/dist/core/roadmap.d.ts.map +1 -1
- package/dist/core/roadmap.js +72 -6
- package/dist/core/roadmap.js.map +1 -1
- package/dist/core/sprint-id.d.ts +29 -0
- package/dist/core/sprint-id.d.ts.map +1 -0
- package/dist/core/sprint-id.js +86 -0
- package/dist/core/sprint-id.js.map +1 -0
- package/dist/core/standup.d.ts +18 -0
- package/dist/core/standup.d.ts.map +1 -1
- package/dist/core/standup.js +23 -1
- package/dist/core/standup.js.map +1 -1
- package/package.json +4 -2
- package/templates/claude-code/commands/wrap-session.md +36 -0
- package/templates/codex/plugins/slope/.codex-plugin/plugin.json +1 -1
- package/templates/pi/skills/wrap-session.md +41 -0
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { isAbsolute, posix } from 'node:path';
|
|
2
2
|
import { parseDocument } from 'yaml';
|
|
3
3
|
import { castRoadmapStructure, getRoadmapTicketKey, validateRoadmap } from './roadmap.js';
|
|
4
|
-
import { compareRoadmapSprintIds,
|
|
4
|
+
import { compareRoadmapSprintIds, describeSprintIdAmbiguity, roadmapSprintKey } from './roadmap.js';
|
|
5
|
+
import { sprintIdKey } from './sprint-id.js';
|
|
5
6
|
export class RoadmapSourceError extends Error {
|
|
6
7
|
sourcePath;
|
|
8
|
+
/**
|
|
9
|
+
* True when the failure is a refusal to discard authored content that exists
|
|
10
|
+
* only in the generated projection. Callers must treat this as fatal rather
|
|
11
|
+
* than downgrading it to a warning — reporting success while planning work is
|
|
12
|
+
* destroyed is the whole defect (GH #637).
|
|
13
|
+
*/
|
|
14
|
+
projectionContentLoss;
|
|
7
15
|
constructor(message, sourcePath) {
|
|
8
16
|
super(sourcePath ? `${normalizeDiagnosticPath(sourcePath)}: ${message}` : message);
|
|
9
17
|
this.sourcePath = sourcePath;
|
|
@@ -118,7 +126,46 @@ export function parseRoadmapSourceProject(yaml, sourcePath = 'docs/roadmap/proje
|
|
|
118
126
|
sources,
|
|
119
127
|
};
|
|
120
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Reject sprint ids written with a trailing zero in the fraction before YAML
|
|
131
|
+
* parsing collapses them.
|
|
132
|
+
*
|
|
133
|
+
* `458.10` parses to the number 458.1, so by the time any validator sees the
|
|
134
|
+
* document the id has already silently become an existing sprint — the text is the
|
|
135
|
+
* only place the ambiguity is still visible (GH #635).
|
|
136
|
+
*
|
|
137
|
+
* Scans only the two positions a sprint id is written: a `- <number>` item under
|
|
138
|
+
* `phase.sprints`, and an `id: <number>` key on a sprint mapping. Other decimals in
|
|
139
|
+
* the file (par, slope, version) are left alone.
|
|
140
|
+
*/
|
|
141
|
+
function assertNoAmbiguousWrittenSprintIds(yaml, sourcePath) {
|
|
142
|
+
const lines = yaml.split(/\r?\n/);
|
|
143
|
+
let inPhaseSprints = false;
|
|
144
|
+
for (const [index, line] of lines.entries()) {
|
|
145
|
+
if (/^\s*sprints:\s*$/.test(line)) {
|
|
146
|
+
// `phase.sprints` is indented; the top-level `sprints:` list is not.
|
|
147
|
+
inPhaseSprints = /^\s+sprints:\s*$/.test(line);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const idMatch = line.match(/^\s*-?\s*id:\s*([0-9]+\.[0-9]+)\s*(?:#.*)?$/);
|
|
151
|
+
const itemMatch = inPhaseSprints
|
|
152
|
+
? line.match(/^\s*-\s*([0-9]+\.[0-9]+)\s*(?:#.*)?$/)
|
|
153
|
+
: null;
|
|
154
|
+
const written = idMatch?.[1] ?? itemMatch?.[1];
|
|
155
|
+
if (!written) {
|
|
156
|
+
// Any non-list, non-blank line ends the phase.sprints block.
|
|
157
|
+
if (inPhaseSprints && line.trim() && !/^\s*-/.test(line))
|
|
158
|
+
inPhaseSprints = false;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const problem = describeSprintIdAmbiguity(written);
|
|
162
|
+
if (problem) {
|
|
163
|
+
throw new RoadmapSourceError(`line ${index + 1}: ${problem}`, sourcePath);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
121
167
|
export function parseRoadmapSourceDocument(yaml, sourcePath) {
|
|
168
|
+
assertNoAmbiguousWrittenSprintIds(yaml, sourcePath);
|
|
122
169
|
const raw = parseYamlMapping(yaml, sourcePath);
|
|
123
170
|
const version = parseVersion(raw.version, sourcePath);
|
|
124
171
|
if (!raw.phase || typeof raw.phase !== 'object' || Array.isArray(raw.phase)) {
|
|
@@ -133,10 +180,25 @@ export function parseRoadmapSourceDocument(yaml, sourcePath) {
|
|
|
133
180
|
throw new RoadmapSourceError(`phase.${field} must be a string when present`, sourcePath);
|
|
134
181
|
}
|
|
135
182
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
183
|
+
// Accept string-authored membership ids (e.g. "458.10") alongside numbers.
|
|
184
|
+
// Record the canonical keys and coerce the numeric mirror (GH #635).
|
|
185
|
+
if (!Array.isArray(phase.sprints)) {
|
|
186
|
+
throw new RoadmapSourceError('phase.sprints must be a sequence of sprint IDs', sourcePath);
|
|
187
|
+
}
|
|
188
|
+
const memberKeys = [];
|
|
189
|
+
let anyStringMember = false;
|
|
190
|
+
for (const [i, member] of phase.sprints.entries()) {
|
|
191
|
+
if (typeof member === 'string')
|
|
192
|
+
anyStringMember = true;
|
|
193
|
+
const key = typeof member === 'number' || typeof member === 'string' ? sprintIdKey(member) : null;
|
|
194
|
+
if (key === null) {
|
|
195
|
+
throw new RoadmapSourceError(`phase.sprints[${i}] is not a valid sprint id`, sourcePath);
|
|
196
|
+
}
|
|
197
|
+
memberKeys.push(key);
|
|
198
|
+
phase.sprints[i] = Number(key);
|
|
139
199
|
}
|
|
200
|
+
if (anyStringMember)
|
|
201
|
+
phase.sprint_keys = memberKeys;
|
|
140
202
|
if (!Array.isArray(raw.sprints)) {
|
|
141
203
|
throw new RoadmapSourceError('sprints must be a sequence', sourcePath);
|
|
142
204
|
}
|
|
@@ -157,8 +219,19 @@ export function parseRoadmapSourceDocument(yaml, sourcePath) {
|
|
|
157
219
|
throw new RoadmapSourceError(`sprints[${sprintIndex}] must be a mapping`, sourcePath);
|
|
158
220
|
}
|
|
159
221
|
const sprint = value;
|
|
160
|
-
|
|
161
|
-
|
|
222
|
+
// Accept a string-authored id to preserve an exact suffix a number cannot
|
|
223
|
+
// hold (e.g. "458.10"). Record the canonical id_key and coerce id to its
|
|
224
|
+
// numeric mirror for ordering and the store (GH #635).
|
|
225
|
+
if (typeof sprint.id === 'string') {
|
|
226
|
+
const key = sprintIdKey(sprint.id);
|
|
227
|
+
if (key === null) {
|
|
228
|
+
throw new RoadmapSourceError(`sprints[${sprintIndex}].id is not a valid sprint id: ${sprint.id}`, sourcePath);
|
|
229
|
+
}
|
|
230
|
+
sprint.id_key = key;
|
|
231
|
+
sprint.id = Number(key);
|
|
232
|
+
}
|
|
233
|
+
else if (typeof sprint.id !== 'number' || !Number.isFinite(sprint.id) || sprint.id <= 0) {
|
|
234
|
+
throw new RoadmapSourceError(`sprints[${sprintIndex}].id must be a positive number or a quoted sprint id`, sourcePath);
|
|
162
235
|
}
|
|
163
236
|
if (typeof sprint.theme !== 'string' || !sprint.theme.trim()) {
|
|
164
237
|
throw new RoadmapSourceError(`sprints[${sprintIndex}].theme must be a non-empty string`, sourcePath);
|
|
@@ -172,10 +245,20 @@ export function parseRoadmapSourceDocument(yaml, sourcePath) {
|
|
|
172
245
|
if (typeof sprint.type !== 'string' || !sprint.type.trim()) {
|
|
173
246
|
throw new RoadmapSourceError(`sprints[${sprintIndex}].type must be a non-empty string`, sourcePath);
|
|
174
247
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
248
|
+
// depends_on may reference a canonical string id (e.g. "458.10"); coerce to
|
|
249
|
+
// the numeric mirror. Distinctness between coexisting 458.1 and 458.10 in a
|
|
250
|
+
// dependency uses the numeric mirror, the same boundary as the store (GH #635).
|
|
251
|
+
if (sprint.depends_on != null) {
|
|
252
|
+
if (!Array.isArray(sprint.depends_on)) {
|
|
253
|
+
throw new RoadmapSourceError(`sprints[${sprintIndex}].depends_on must be a sequence of sprint IDs`, sourcePath);
|
|
254
|
+
}
|
|
255
|
+
for (const [i, dep] of sprint.depends_on.entries()) {
|
|
256
|
+
const key = typeof dep === 'number' || typeof dep === 'string' ? sprintIdKey(dep) : null;
|
|
257
|
+
if (key === null) {
|
|
258
|
+
throw new RoadmapSourceError(`sprints[${sprintIndex}].depends_on[${i}] is not a valid sprint id`, sourcePath);
|
|
259
|
+
}
|
|
260
|
+
sprint.depends_on[i] = Number(key);
|
|
261
|
+
}
|
|
179
262
|
}
|
|
180
263
|
for (const field of ['status', 'note', 'outcome', 'phase', 'wave']) {
|
|
181
264
|
if (sprint[field] != null && typeof sprint[field] !== 'string') {
|
|
@@ -327,6 +410,111 @@ export function compileRoadmapSources(project, sources) {
|
|
|
327
410
|
export function serializeRoadmapProjection(roadmap) {
|
|
328
411
|
return `${JSON.stringify(roadmap, null, 2)}\n`;
|
|
329
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Key of the generated-file marker written into the compiled projection.
|
|
415
|
+
*
|
|
416
|
+
* The marker exists only in the bytes on disk. `serializeRoadmapProjection`
|
|
417
|
+
* stays canonical and marker-free, because projection bytes are compared in four
|
|
418
|
+
* places — compile write, closeout reconciliation, archive planning, and the
|
|
419
|
+
* migration planner/applier `expected_projection_sha256` pair. Stamping the
|
|
420
|
+
* marker into those canonical bytes broke migration receipt binding (seven
|
|
421
|
+
* tests), so it is applied at the write boundary and stripped again on read
|
|
422
|
+
* (GH #644, deferred from #637).
|
|
423
|
+
*/
|
|
424
|
+
export const ROADMAP_PROJECTION_MARKER_KEY = '_generated';
|
|
425
|
+
/** Add the generated-file marker to projection bytes about to be written. */
|
|
426
|
+
export function withRoadmapProjectionMarker(projection, sourcePath) {
|
|
427
|
+
let parsed;
|
|
428
|
+
try {
|
|
429
|
+
parsed = JSON.parse(projection);
|
|
430
|
+
}
|
|
431
|
+
catch {
|
|
432
|
+
return projection;
|
|
433
|
+
}
|
|
434
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
435
|
+
return projection;
|
|
436
|
+
const marked = {
|
|
437
|
+
[ROADMAP_PROJECTION_MARKER_KEY]: {
|
|
438
|
+
by: 'slope roadmap compile',
|
|
439
|
+
source: sourcePath,
|
|
440
|
+
warning: `GENERATED FILE — do not edit. Edit the modular sources under docs/roadmap/ and re-run \`slope roadmap compile\`. Edits here are refused or discarded.`,
|
|
441
|
+
},
|
|
442
|
+
...parsed,
|
|
443
|
+
};
|
|
444
|
+
return `${JSON.stringify(marked, null, 2)}\n`;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Remove the generated-file marker so on-disk bytes can be compared against
|
|
448
|
+
* canonical projection bytes. Returns the input unchanged when no marker exists,
|
|
449
|
+
* so projections written before this change still compare correctly.
|
|
450
|
+
*/
|
|
451
|
+
export function stripRoadmapProjectionMarker(projection) {
|
|
452
|
+
if (!projection.includes(`"${ROADMAP_PROJECTION_MARKER_KEY}"`))
|
|
453
|
+
return projection;
|
|
454
|
+
let parsed;
|
|
455
|
+
try {
|
|
456
|
+
parsed = JSON.parse(projection);
|
|
457
|
+
}
|
|
458
|
+
catch {
|
|
459
|
+
return projection;
|
|
460
|
+
}
|
|
461
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
462
|
+
return projection;
|
|
463
|
+
const rest = { ...parsed };
|
|
464
|
+
if (!(ROADMAP_PROJECTION_MARKER_KEY in rest))
|
|
465
|
+
return projection;
|
|
466
|
+
delete rest[ROADMAP_PROJECTION_MARKER_KEY];
|
|
467
|
+
return `${JSON.stringify(rest, null, 2)}\n`;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Find content that exists only in the checked-out projection.
|
|
471
|
+
*
|
|
472
|
+
* A projection that merely lags its sources contains nothing the sources do not
|
|
473
|
+
* produce, so it is safe to overwrite. Content present *only* on disk is
|
|
474
|
+
* authored planning work that a blind rewrite would destroy — which is exactly
|
|
475
|
+
* how a phase, six sprints and 26 tickets were lost on a success exit (GH #637).
|
|
476
|
+
*
|
|
477
|
+
* Returns null when nothing would be lost.
|
|
478
|
+
*/
|
|
479
|
+
export function findRoadmapProjectionDivergence(existing, compiled) {
|
|
480
|
+
let parsed;
|
|
481
|
+
try {
|
|
482
|
+
parsed = JSON.parse(existing);
|
|
483
|
+
}
|
|
484
|
+
catch {
|
|
485
|
+
// Unparseable projections carry no recoverable authored content.
|
|
486
|
+
return null;
|
|
487
|
+
}
|
|
488
|
+
if (!parsed || typeof parsed !== 'object')
|
|
489
|
+
return null;
|
|
490
|
+
const disk = parsed;
|
|
491
|
+
const compiledSprints = new Set((compiled.sprints ?? []).map(sprint => String(sprint.id)));
|
|
492
|
+
const diskSprints = Array.isArray(disk.sprints) ? disk.sprints : [];
|
|
493
|
+
const sprints = diskSprints
|
|
494
|
+
.map(sprint => (sprint && typeof sprint === 'object' ? sprint.id : undefined))
|
|
495
|
+
.filter(id => id != null)
|
|
496
|
+
.map(id => String(id))
|
|
497
|
+
.filter(id => !compiledSprints.has(id));
|
|
498
|
+
const compiledPhases = new Set((compiled.phases ?? []).map(phase => phase.name));
|
|
499
|
+
const diskPhases = Array.isArray(disk.phases) ? disk.phases : [];
|
|
500
|
+
const phases = diskPhases
|
|
501
|
+
.filter((phase) => !!phase && typeof phase === 'object')
|
|
502
|
+
.filter(phase => typeof phase.name === 'string' && !compiledPhases.has(phase.name))
|
|
503
|
+
// A phase whose sprints all still compile was renamed or reorganised, not
|
|
504
|
+
// lost. Reporting it as content loss made every phase rename look destructive
|
|
505
|
+
// and blocked the compile — the original #637 case lost the phase *and* its
|
|
506
|
+
// six sprints, so requiring an orphaned sprint keeps that caught.
|
|
507
|
+
.filter(phase => {
|
|
508
|
+
const ids = Array.isArray(phase.sprints) ? phase.sprints : [];
|
|
509
|
+
if (ids.length === 0)
|
|
510
|
+
return true;
|
|
511
|
+
return ids.some(id => id != null && !compiledSprints.has(String(id)));
|
|
512
|
+
})
|
|
513
|
+
.map(phase => phase.name);
|
|
514
|
+
if (sprints.length === 0 && phases.length === 0)
|
|
515
|
+
return null;
|
|
516
|
+
return { sprints: [...new Set(sprints)], phases: [...new Set(phases)] };
|
|
517
|
+
}
|
|
330
518
|
function sourceLabel(source) {
|
|
331
519
|
return normalizeDiagnosticPath(source.entry.path);
|
|
332
520
|
}
|
|
@@ -361,6 +549,12 @@ export function validateRoadmapSourceFederation(project, sources) {
|
|
|
361
549
|
const sprintDefinitions = new Map();
|
|
362
550
|
const sprintMemberships = new Map();
|
|
363
551
|
const ticketDefinitions = new Map();
|
|
552
|
+
// Identity is the canonical key so 458.10 and 458.1 stay distinct through the
|
|
553
|
+
// uniqueness and membership checks (GH #635). No roadmap-aware legacy decode is
|
|
554
|
+
// needed here — within a source, id_key is set for string-authored ids and a
|
|
555
|
+
// numeric id is its own consistent key.
|
|
556
|
+
const defKey = (sprint) => sprint.id_key ?? String(sprint.id);
|
|
557
|
+
const membershipKeys = (phase) => phase.sprint_keys ?? phase.sprints.map(String);
|
|
364
558
|
for (const source of sources) {
|
|
365
559
|
const label = sourceLabel(source);
|
|
366
560
|
const priorPhase = phaseNames.get(source.document.phase.name);
|
|
@@ -374,30 +568,30 @@ export function validateRoadmapSourceFederation(project, sources) {
|
|
|
374
568
|
else {
|
|
375
569
|
phaseNames.set(source.document.phase.name, label);
|
|
376
570
|
}
|
|
377
|
-
const localMembership = source.document.phase
|
|
378
|
-
const localDefinitions = source.document.sprints.map(
|
|
571
|
+
const localMembership = membershipKeys(source.document.phase);
|
|
572
|
+
const localDefinitions = source.document.sprints.map(defKey);
|
|
379
573
|
const membershipSet = new Set(localMembership);
|
|
380
574
|
const definitionSet = new Set(localDefinitions);
|
|
381
|
-
for (const
|
|
382
|
-
const memberships = sprintMemberships.get(
|
|
575
|
+
for (const key of localMembership) {
|
|
576
|
+
const memberships = sprintMemberships.get(key) ?? [];
|
|
383
577
|
memberships.push(label);
|
|
384
|
-
sprintMemberships.set(
|
|
385
|
-
if (!definitionSet.has(
|
|
578
|
+
sprintMemberships.set(key, memberships);
|
|
579
|
+
if (!definitionSet.has(key)) {
|
|
386
580
|
errors.push({
|
|
387
581
|
code: 'missing_sprint_definition',
|
|
388
582
|
source: label,
|
|
389
|
-
sprint:
|
|
390
|
-
message: `Phase membership S${
|
|
583
|
+
sprint: Number(key),
|
|
584
|
+
message: `Phase membership S${key} has no sprint definition in the same bundle.`,
|
|
391
585
|
});
|
|
392
586
|
}
|
|
393
587
|
}
|
|
394
|
-
for (const
|
|
395
|
-
if (!membershipSet.has(
|
|
588
|
+
for (const key of localDefinitions) {
|
|
589
|
+
if (!membershipSet.has(key)) {
|
|
396
590
|
errors.push({
|
|
397
591
|
code: 'orphan_sprint_definition',
|
|
398
592
|
source: label,
|
|
399
|
-
sprint:
|
|
400
|
-
message: `Sprint S${
|
|
593
|
+
sprint: Number(key),
|
|
594
|
+
message: `Sprint S${key} is defined but missing from phase.sprints in the same bundle.`,
|
|
401
595
|
});
|
|
402
596
|
}
|
|
403
597
|
}
|
|
@@ -408,17 +602,18 @@ export function validateRoadmapSourceFederation(project, sources) {
|
|
|
408
602
|
errors.push({ code: 'duplicate_local_sprint', source: label, message: 'Bundle contains duplicate sprint definitions.' });
|
|
409
603
|
}
|
|
410
604
|
for (const sprint of source.document.sprints) {
|
|
411
|
-
const
|
|
605
|
+
const key = defKey(sprint);
|
|
606
|
+
const priorSprint = sprintDefinitions.get(key);
|
|
412
607
|
if (priorSprint) {
|
|
413
608
|
errors.push({
|
|
414
609
|
code: 'duplicate_sprint',
|
|
415
610
|
source: label,
|
|
416
611
|
sprint: sprint.id,
|
|
417
|
-
message: `Sprint S${
|
|
612
|
+
message: `Sprint S${key} is also defined in ${priorSprint}.`,
|
|
418
613
|
});
|
|
419
614
|
}
|
|
420
615
|
else {
|
|
421
|
-
sprintDefinitions.set(
|
|
616
|
+
sprintDefinitions.set(key, label);
|
|
422
617
|
}
|
|
423
618
|
for (const ticket of sprint.tickets) {
|
|
424
619
|
const key = getRoadmapTicketKey(ticket);
|
|
@@ -440,29 +635,32 @@ export function validateRoadmapSourceFederation(project, sources) {
|
|
|
440
635
|
}
|
|
441
636
|
}
|
|
442
637
|
}
|
|
443
|
-
for (const [
|
|
638
|
+
for (const [key, memberships] of sprintMemberships) {
|
|
444
639
|
if (memberships.length > 1) {
|
|
445
640
|
errors.push({
|
|
446
641
|
code: 'multiple_phase_membership',
|
|
447
|
-
sprint,
|
|
448
|
-
message: `Sprint S${
|
|
642
|
+
sprint: Number(key),
|
|
643
|
+
message: `Sprint S${key} belongs to multiple phase bundles: ${memberships.join(', ')}.`,
|
|
449
644
|
});
|
|
450
645
|
}
|
|
451
646
|
}
|
|
452
|
-
|
|
647
|
+
// Collision is by canonical identity, not the float order value: 458.1 and
|
|
648
|
+
// 458.10 are legitimately distinct (their id_keys differ), while a legacy 435
|
|
649
|
+
// and an explicit 43.5 still resolve to the same key "43.5" and collide (GH #635).
|
|
650
|
+
const canonicalIds = new Map();
|
|
453
651
|
for (const sprint of roadmap.sprints) {
|
|
454
|
-
const
|
|
455
|
-
const prior =
|
|
456
|
-
if (prior
|
|
652
|
+
const key = roadmapSprintKey(roadmap, sprint);
|
|
653
|
+
const prior = canonicalIds.get(key);
|
|
654
|
+
if (prior) {
|
|
457
655
|
errors.push({
|
|
458
656
|
code: 'logical_sprint_collision',
|
|
459
|
-
source: sprintDefinitions.get(sprint
|
|
657
|
+
source: sprintDefinitions.get(defKey(sprint)),
|
|
460
658
|
sprint: sprint.id,
|
|
461
|
-
message: `Sprint S${
|
|
659
|
+
message: `Sprint S${key} and Sprint S${prior.key} resolve to the same roadmap identity (${key}); first defined in ${prior.source ?? 'unknown source'}.`,
|
|
462
660
|
});
|
|
463
661
|
}
|
|
464
662
|
else {
|
|
465
|
-
|
|
663
|
+
canonicalIds.set(key, { key, source: sprintDefinitions.get(defKey(sprint)) });
|
|
466
664
|
}
|
|
467
665
|
}
|
|
468
666
|
const roadmapValidation = validateRoadmap(roadmap);
|
|
@@ -470,7 +668,7 @@ export function validateRoadmapSourceFederation(project, sources) {
|
|
|
470
668
|
errors.push({
|
|
471
669
|
code: 'roadmap_validation',
|
|
472
670
|
message: issue.message,
|
|
473
|
-
...(issue.sprint != null ? { sprint: issue.sprint, source: sprintDefinitions.get(issue.sprint) } : {}),
|
|
671
|
+
...(issue.sprint != null ? { sprint: issue.sprint, source: sprintDefinitions.get(String(issue.sprint)) } : {}),
|
|
474
672
|
...(issue.ticket ? { ticket: issue.ticket } : {}),
|
|
475
673
|
});
|
|
476
674
|
}
|
|
@@ -478,7 +676,7 @@ export function validateRoadmapSourceFederation(project, sources) {
|
|
|
478
676
|
warnings.push({
|
|
479
677
|
code: 'roadmap_validation',
|
|
480
678
|
message: issue.message,
|
|
481
|
-
...(issue.sprint != null ? { sprint: issue.sprint, source: sprintDefinitions.get(issue.sprint) } : {}),
|
|
679
|
+
...(issue.sprint != null ? { sprint: issue.sprint, source: sprintDefinitions.get(String(issue.sprint)) } : {}),
|
|
482
680
|
...(issue.ticket ? { ticket: issue.ticket } : {}),
|
|
483
681
|
});
|
|
484
682
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap-sources.js","sourceRoot":"","sources":["../../src/core/roadmap-sources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roadmap-sources.js","sourceRoot":"","sources":["../../src/core/roadmap-sources.ts"],"names":[],"mappings":"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"}
|
package/dist/core/roadmap.d.ts
CHANGED
|
@@ -17,6 +17,13 @@ export interface RoadmapTicket {
|
|
|
17
17
|
/** A sprint within the roadmap */
|
|
18
18
|
export interface RoadmapSprint {
|
|
19
19
|
id: number;
|
|
20
|
+
/**
|
|
21
|
+
* Canonical string id, present only when authored as a string to preserve an
|
|
22
|
+
* exact suffix a number cannot hold (e.g. "458.10", distinct from 458.1). When
|
|
23
|
+
* absent, identity derives from `id` via the roadmap-aware helpers. `id` remains
|
|
24
|
+
* the numeric mirror used for ordering arithmetic and the store (GH #635).
|
|
25
|
+
*/
|
|
26
|
+
id_key?: string;
|
|
20
27
|
theme: string;
|
|
21
28
|
par: 3 | 4 | 5;
|
|
22
29
|
slope: number;
|
|
@@ -36,6 +43,13 @@ export interface RoadmapSprint {
|
|
|
36
43
|
export interface RoadmapPhase {
|
|
37
44
|
name: string;
|
|
38
45
|
sprints: number[];
|
|
46
|
+
/**
|
|
47
|
+
* Canonical membership keys, present when any member was authored as a string
|
|
48
|
+
* to preserve an exact suffix (e.g. "458.10" alongside "458.1"). When present,
|
|
49
|
+
* this is the authoritative membership; `sprints` is the numeric mirror, which
|
|
50
|
+
* cannot distinguish 458.10 from 458.1 (GH #635).
|
|
51
|
+
*/
|
|
52
|
+
sprint_keys?: string[];
|
|
39
53
|
description?: string;
|
|
40
54
|
status?: string;
|
|
41
55
|
note?: string;
|
|
@@ -78,15 +92,43 @@ export declare function sprintOrderValue(id: number): number;
|
|
|
78
92
|
export declare function formatSprintNumber(id: number): string;
|
|
79
93
|
/** Format a full sprint label, e.g. S95 or S43.5. */
|
|
80
94
|
export declare function formatSprintLabel(id: number): string;
|
|
95
|
+
/**
|
|
96
|
+
* Describe why a written sprint id cannot round-trip, or null when it is fine.
|
|
97
|
+
*
|
|
98
|
+
* Sprint ids are stored as JSON/YAML numbers, so a decimal whose fraction ends in
|
|
99
|
+
* a zero loses that zero and silently becomes a different — usually existing —
|
|
100
|
+
* sprint: `458.10` reads back as `458.1`, and `458.0` as `458`. That corrupts
|
|
101
|
+
* dependencies, focused context, evidence lookup and scorecard identity, and it is
|
|
102
|
+
* why a phase had to be renumbered to whole sprints (GH #635).
|
|
103
|
+
*
|
|
104
|
+
* Takes a **string** deliberately. By the time such an id has been parsed into a
|
|
105
|
+
* number the trailing zero is already gone, so the ambiguity is only detectable in
|
|
106
|
+
* the text as written.
|
|
107
|
+
*
|
|
108
|
+
* Rejecting these is a stopgap; the durable fix is canonical string ids.
|
|
109
|
+
*/
|
|
110
|
+
export declare function describeSprintIdAmbiguity(written: string): string | null;
|
|
81
111
|
/** Parse human-entered sprint ids such as "114", "114.5", or "S114.5". */
|
|
82
112
|
export declare function parseSprintNumber(value: string | number): number | null;
|
|
83
113
|
export declare function compareSprintIds(a: number, b: number): number;
|
|
84
114
|
/** Return the next canonical sprint id after a completed sprint/inserted sprint. */
|
|
85
115
|
export declare function nextCanonicalSprintId(id: number): number;
|
|
86
116
|
export declare const ROADMAP_TERMINAL_STATUSES: Set<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Statuses that are not durably terminal but are intentionally not offered as
|
|
119
|
+
* the next sprint to work on. A deferred sprint is postponed by choice — it is
|
|
120
|
+
* neither done (so not terminal) nor queued work (so not selectable). It becomes
|
|
121
|
+
* selectable again once its status is edited back to planned/active (GH #660).
|
|
122
|
+
*/
|
|
123
|
+
export declare const ROADMAP_DEFERRED_STATUSES: Set<string>;
|
|
87
124
|
/** Return true when a roadmap sprint has a durable terminal disposition. */
|
|
88
125
|
export declare function isRoadmapSprintTerminal(sprint: RoadmapSprint): boolean;
|
|
89
|
-
/**
|
|
126
|
+
/**
|
|
127
|
+
* Return true when a roadmap sprint should still be considered selectable work —
|
|
128
|
+
* the pool the "next sprint" pickers, rollover target, and current-sprint
|
|
129
|
+
* inference draw from. Excludes both terminal statuses and deferred (a
|
|
130
|
+
* deliberately postponed sprint must not be surfaced as the next thing to do).
|
|
131
|
+
*/
|
|
90
132
|
export declare function isRoadmapSprintPending(sprint: RoadmapSprint): boolean;
|
|
91
133
|
type RoadmapTicketInput = Partial<RoadmapTicket> & {
|
|
92
134
|
id?: unknown;
|
|
@@ -98,6 +140,13 @@ export declare function isEncodedInsertedSprintInRoadmap(roadmap: RoadmapDefinit
|
|
|
98
140
|
export declare function roadmapSprintOrderValue(roadmap: RoadmapDefinition, id: number): number;
|
|
99
141
|
export declare function compareRoadmapSprintIds(roadmap: RoadmapDefinition, a: number, b: number): number;
|
|
100
142
|
export declare function formatRoadmapSprintLabel(roadmap: RoadmapDefinition, id: number): string;
|
|
143
|
+
/**
|
|
144
|
+
* Canonical string identity for a sprint: the authored `id_key` when present
|
|
145
|
+
* (preserving an exact suffix), else derived from the numeric `id` with the same
|
|
146
|
+
* roadmap-aware legacy decode as the label. This is THE identity for a sprint —
|
|
147
|
+
* use it wherever `458.10` must stay distinct from `458.1` (GH #635).
|
|
148
|
+
*/
|
|
149
|
+
export declare function roadmapSprintKey(roadmap: RoadmapDefinition, sprint: RoadmapSprint): string;
|
|
101
150
|
/** Validate a roadmap definition for structural correctness.
|
|
102
151
|
* Optionally cross-check sprint status against scorecards and/or shipped
|
|
103
152
|
* sprint commits on main when provided. Caller is responsible for collecting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/core/roadmap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/core/roadmap.ts"],"names":[],"mappings":"AAKA,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErF,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,OAAO,GACP,UAAU,GACV,UAAU,GACV,eAAe,GACf,eAAe,GACf,OAAO,CAAC;AAEZ,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,uBAAuB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAID,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAexE;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CA0BvE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,eAAO,MAAM,yBAAyB,aAOpC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,aAAwB,CAAC;AAE/D,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGrE;AAED,KAAK,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAQ7E;AAiBD,8EAA8E;AAC9E,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAehG;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAK1F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,CAAC,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EAAE,EACxC,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,uBAAuB,CA6MzB;AAgDD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,CA6ClF;AAwCD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE,CAsBrF;AAyBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAO5E;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,uBAAuB,CAAA;CAAE,CA+BtH;AAID,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAmDvE;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAmDf;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,MAAM,GACpB,aAAa,GAAG,IAAI,CAoBtB"}
|