@rasensio/aidlc 1.14.0 → 1.14.2
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/commands/transition.d.ts +23 -0
- package/dist/commands/transition.d.ts.map +1 -1
- package/dist/commands/transition.js +70 -24
- package/dist/commands/transition.js.map +1 -1
- package/dist/core/lifecycle.js +7 -0
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/types.d.ts +16 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/doctor/migrations/index.d.ts.map +1 -1
- package/dist/doctor/migrations/index.js +12 -0
- package/dist/doctor/migrations/index.js.map +1 -1
- package/dist/doctor/migrations/instance-completion.d.ts +85 -0
- package/dist/doctor/migrations/instance-completion.d.ts.map +1 -0
- package/dist/doctor/migrations/instance-completion.js +163 -0
- package/dist/doctor/migrations/instance-completion.js.map +1 -0
- package/dist/doctor/migrations/roadmap-item-titles.d.ts +61 -0
- package/dist/doctor/migrations/roadmap-item-titles.d.ts.map +1 -0
- package/dist/doctor/migrations/roadmap-item-titles.js +121 -0
- package/dist/doctor/migrations/roadmap-item-titles.js.map +1 -0
- package/dist/doctor/migrations/roadmap-layout.d.ts.map +1 -1
- package/dist/doctor/migrations/roadmap-layout.js +7 -1
- package/dist/doctor/migrations/roadmap-layout.js.map +1 -1
- package/dist/events/event-bus.d.ts.map +1 -1
- package/dist/events/event-bus.js +12 -1
- package/dist/events/event-bus.js.map +1 -1
- package/dist/roadmap/paths.d.ts +48 -0
- package/dist/roadmap/paths.d.ts.map +1 -1
- package/dist/roadmap/paths.js +107 -0
- package/dist/roadmap/paths.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* instance-completion migration (instance-complete-never-fires AC-9..AC-13,
|
|
3
|
+
* AC-16, AC-19, safe tier): stamp `completed_at` on instances that have already
|
|
4
|
+
* reached their completion moment, and move any roadmap item whose
|
|
5
|
+
* `promoted_to` names one of them into `done/`.
|
|
6
|
+
*
|
|
7
|
+
* Exists because `on-instance-complete` was suppressed for the whole time the
|
|
8
|
+
* old fired-once guard read `retrospective.md` — see that instance's
|
|
9
|
+
* `reproduction.md`. Two consequences have to be repaired, and they are the two
|
|
10
|
+
* halves of this migration:
|
|
11
|
+
*
|
|
12
|
+
* - **The guard's new key is unpopulated.** Nothing wrote `completed_at`
|
|
13
|
+
* before this change, so every already-completed instance would look
|
|
14
|
+
* un-fired to the new guard and re-emit on its next `aidlc transition`.
|
|
15
|
+
* Stamping them is a *prerequisite* of the guard change, not a tidy-up
|
|
16
|
+
* (AC-16). The value written is the completion timestamp `completionInfo`
|
|
17
|
+
* derives from phase state, never `now` — a backfill that stamped today
|
|
18
|
+
* would claim work finished when it was repaired.
|
|
19
|
+
* - **Roadmap items were left behind.** `roadmap-done` never ran, so items sit
|
|
20
|
+
* outside `done/` for instances that shipped (AC-9, AC-11).
|
|
21
|
+
*
|
|
22
|
+
* Safe tier, not confirm. `roadmap-layout` is confirm because it rewrites
|
|
23
|
+
* frontmatter it has to *interpret*; this one moves a file whose destination is
|
|
24
|
+
* already stated by data — the item names its instance, and the instance has
|
|
25
|
+
* demonstrably completed. There is no judgement to confirm, and putting it in
|
|
26
|
+
* the confirm tier would make `aidlc doctor` exit 1 until someone answered,
|
|
27
|
+
* which is the kind of soft gate this project's guidance says to avoid.
|
|
28
|
+
*
|
|
29
|
+
* Completion is answered by `completionInfo`, never by a local "is the last
|
|
30
|
+
* phase complete?" test (AC-19): that naive form is wrong for
|
|
31
|
+
* maintenance-terminal templates, which complete on maintenance *entry*.
|
|
32
|
+
* `roadmap-layout` depends on the same helper for the same reason, so the
|
|
33
|
+
* migration and `aidlc transition` cannot disagree.
|
|
34
|
+
*
|
|
35
|
+
* It never emits `on-instance-complete`. Re-delivering a weeks-old event has no
|
|
36
|
+
* consumer left, and would re-ask for retrospectives that already exist. The
|
|
37
|
+
* observable effects are repaired directly instead.
|
|
38
|
+
*
|
|
39
|
+
* Nothing here routes through `aidlc transition`, so the ownership gate cannot
|
|
40
|
+
* block it (AC-13) — the recorded phase owner of a completed instance is
|
|
41
|
+
* typically an agent session that no longer exists.
|
|
42
|
+
*/
|
|
43
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
44
|
+
import { join } from 'node:path';
|
|
45
|
+
import { completionInfo, loadAllTemplates, loadInstance } from '../../metrics/report.js';
|
|
46
|
+
import { saveSnapshot } from '../../state/snapshot-store.js';
|
|
47
|
+
import { findByPromotedTo, isoDate, moveItem, unparseableItems, } from '../../roadmap/paths.js';
|
|
48
|
+
/**
|
|
49
|
+
* Everything the migration would do, computed without writing.
|
|
50
|
+
*
|
|
51
|
+
* The single source of pending-ness, shared verbatim by dry-run and real runs —
|
|
52
|
+
* the rule stated in `../types.ts`. Instances are walked in sorted order so the
|
|
53
|
+
* plan never depends on directory read order.
|
|
54
|
+
*/
|
|
55
|
+
export function planInstanceCompletion(ctx) {
|
|
56
|
+
const stateDir = join(ctx.projectRoot, '.aidlc', 'state');
|
|
57
|
+
const unparseable = unparseableItems(ctx.projectRoot);
|
|
58
|
+
if (!existsSync(stateDir))
|
|
59
|
+
return { stamps: [], stranded: [], unparseable };
|
|
60
|
+
const templates = loadAllTemplates(ctx.projectRoot);
|
|
61
|
+
const stamps = [];
|
|
62
|
+
const stranded = [];
|
|
63
|
+
let names;
|
|
64
|
+
try {
|
|
65
|
+
names = readdirSync(stateDir, { withFileTypes: true })
|
|
66
|
+
.filter((e) => e.isDirectory())
|
|
67
|
+
.map((e) => e.name)
|
|
68
|
+
.sort();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return { stamps: [], stranded: [], unparseable };
|
|
72
|
+
}
|
|
73
|
+
for (const name of names) {
|
|
74
|
+
const inst = loadInstance(ctx.projectRoot, name);
|
|
75
|
+
if (inst === null)
|
|
76
|
+
continue;
|
|
77
|
+
const { completed, completedAt } = completionInfo(inst, templates);
|
|
78
|
+
if (!completed)
|
|
79
|
+
continue;
|
|
80
|
+
// A hand-written `completed_at` is left exactly as it is. It records what
|
|
81
|
+
// somebody observed at the time, and this migration has no better source.
|
|
82
|
+
if (!inst.state.completed_at && completedAt) {
|
|
83
|
+
stamps.push({ instance: name, completedAt });
|
|
84
|
+
}
|
|
85
|
+
const item = findByPromotedTo(ctx.projectRoot, name);
|
|
86
|
+
if (item !== null && item.status !== 'done') {
|
|
87
|
+
stranded.push({ item, instance: name });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return { stamps, stranded, unparseable };
|
|
91
|
+
}
|
|
92
|
+
/** One-line summary of a plan, shared by `check` and `apply`. */
|
|
93
|
+
function describe(plan, verb) {
|
|
94
|
+
const parts = [];
|
|
95
|
+
if (plan.stamps.length > 0) {
|
|
96
|
+
parts.push(`${verb} completed_at on ${plan.stamps.length} instance(s)`);
|
|
97
|
+
}
|
|
98
|
+
if (plan.stranded.length > 0) {
|
|
99
|
+
const moved = verb === 'would stamp' ? 'would move' : 'moved';
|
|
100
|
+
parts.push(`${moved} ${plan.stranded.length} roadmap item(s) to done/: ${plan.stranded
|
|
101
|
+
.map((s) => s.item.filename)
|
|
102
|
+
.join(', ')}`);
|
|
103
|
+
}
|
|
104
|
+
if (plan.unparseable.length > 0) {
|
|
105
|
+
parts.push(`${plan.unparseable.length} roadmap item(s) have unreadable frontmatter and are invisible to every roadmap lookup — a human must fix them: ${plan.unparseable.map((u) => u.label).join(', ')}`);
|
|
106
|
+
}
|
|
107
|
+
return parts.join('; ');
|
|
108
|
+
}
|
|
109
|
+
export const instanceCompletion = {
|
|
110
|
+
id: 'instance-completion',
|
|
111
|
+
tier: 'safe',
|
|
112
|
+
check(ctx) {
|
|
113
|
+
const plan = planInstanceCompletion(ctx);
|
|
114
|
+
// Ordered after the plan, not before it: a repo can hold roadmap items with
|
|
115
|
+
// no state directory, and reporting "no .aidlc/state" first would swallow
|
|
116
|
+
// the unparseable-item warning — the same silence this migration surfaces.
|
|
117
|
+
const stateDir = join(ctx.projectRoot, '.aidlc', 'state');
|
|
118
|
+
if (!existsSync(stateDir) && plan.unparseable.length === 0) {
|
|
119
|
+
return { applicable: false, reason: 'no .aidlc/state directory' };
|
|
120
|
+
}
|
|
121
|
+
if (plan.stamps.length === 0 && plan.stranded.length === 0) {
|
|
122
|
+
// Unparseable items are reported as NOT APPLICABLE, never as pending —
|
|
123
|
+
// the reasoning `roadmap-layout` records for the same case. `apply` will
|
|
124
|
+
// never fix them, so calling them pending would leave doctor reporting
|
|
125
|
+
// outstanding work that no run can ever clear, which trains people to
|
|
126
|
+
// ignore its output. The detail still prints.
|
|
127
|
+
if (plan.unparseable.length > 0) {
|
|
128
|
+
return { applicable: false, reason: describe(plan, 'would stamp') };
|
|
129
|
+
}
|
|
130
|
+
return { applicable: true, pending: false };
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
applicable: true,
|
|
134
|
+
pending: true,
|
|
135
|
+
description: describe(plan, 'would stamp'),
|
|
136
|
+
};
|
|
137
|
+
},
|
|
138
|
+
apply(ctx) {
|
|
139
|
+
const plan = planInstanceCompletion(ctx);
|
|
140
|
+
const stateDir = join(ctx.projectRoot, '.aidlc', 'state');
|
|
141
|
+
for (const stamp of plan.stamps) {
|
|
142
|
+
// Re-read rather than reusing the planned object: `apply` runs after
|
|
143
|
+
// `check`, and re-loading keeps the write against current state.
|
|
144
|
+
const inst = loadInstance(ctx.projectRoot, stamp.instance);
|
|
145
|
+
if (inst === null || inst.state.completed_at)
|
|
146
|
+
continue;
|
|
147
|
+
inst.state.status = 'complete';
|
|
148
|
+
inst.state.completed_at = stamp.completedAt;
|
|
149
|
+
saveSnapshot(stateDir, stamp.instance, 'instance.yaml', inst.state);
|
|
150
|
+
}
|
|
151
|
+
for (const { item } of plan.stranded) {
|
|
152
|
+
// Guard the move: `check` may have run before another process moved it.
|
|
153
|
+
if (!existsSync(item.file))
|
|
154
|
+
continue;
|
|
155
|
+
moveItem(item, ctx.projectRoot, 'done', isoDate(ctx.now));
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
changed: plan.stamps.length > 0 || plan.stranded.length > 0,
|
|
159
|
+
summary: describe(plan, 'stamped') || 'nothing to repair',
|
|
160
|
+
};
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=instance-completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-completion.js","sourceRoot":"","sources":["../../../src/doctor/migrations/instance-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* roadmap-item-titles migration (confirm tier): quote an item title that YAML
|
|
3
|
+
* will not parse, so the item stops being invisible.
|
|
4
|
+
*
|
|
5
|
+
* The defect this repairs is silence, not breakage. `readItem` returns null for
|
|
6
|
+
* "unreadable" and "absent" alike and `listStatus` skips nulls, so one malformed
|
|
7
|
+
* frontmatter block removes an item from browse, from promotion lookup, from the
|
|
8
|
+
* `roadmap-done` action and from `aidlc doctor` — with no message anywhere saying
|
|
9
|
+
* a file was skipped. Absence is indistinguishable from never having written it.
|
|
10
|
+
* Five of this project's first 49 items sat invisible for up to ten days.
|
|
11
|
+
*
|
|
12
|
+
* The trigger is always the same: YAML reserves `` ` `` as an indicator
|
|
13
|
+
* character, so a plain scalar may not begin with one, and the natural way to
|
|
14
|
+
* name a code defect is `` title: `readItem` returns null ``. Agents write these
|
|
15
|
+
* titles — every affected item carried `source: agent` or `source: import`.
|
|
16
|
+
*
|
|
17
|
+
* Two halves, and the order matters. The *cause* is fixed in the capture
|
|
18
|
+
* instructions, which now say to quote the title unconditionally
|
|
19
|
+
* (`packages/content/skills/04-roadmap.md` and the portable `roadmap-item`
|
|
20
|
+
* skill); those are what stop new ones appearing. This migration is the
|
|
21
|
+
* *detector*, for the items already on disk and for any writer that ignores the
|
|
22
|
+
* instruction.
|
|
23
|
+
*
|
|
24
|
+
* Confirm tier, because this edits the user's own content — the reason
|
|
25
|
+
* `roadmap-layout` is confirm tier too. `check` and `apply` both derive
|
|
26
|
+
* everything from `planTitleQuoting` and nothing else computes pending-ness, the
|
|
27
|
+
* rule stated in `../types.ts`, so a dry run and a real run cannot disagree.
|
|
28
|
+
*
|
|
29
|
+
* Files broken any other way are reported as NOT APPLICABLE rather than pending,
|
|
30
|
+
* following `roadmap-layout` exactly: `apply` will never fix them, only a human
|
|
31
|
+
* can, and `aidlc doctor` exits 1 on pending confirm work — so calling them
|
|
32
|
+
* pending would fail doctor forever on a repo holding one malformed file, which
|
|
33
|
+
* trains people to ignore doctor output. `not-applicable` still prints the
|
|
34
|
+
* detail, which is the entire point: any error at all turns a ten-day mystery
|
|
35
|
+
* into a one-minute fix.
|
|
36
|
+
*/
|
|
37
|
+
import type { Migration } from '../types.js';
|
|
38
|
+
import type { DoctorContext } from '../types.js';
|
|
39
|
+
import { type UnparseableItem } from '../../roadmap/paths.js';
|
|
40
|
+
/** One item whose title can be quoted back into validity. */
|
|
41
|
+
export interface TitleRepair {
|
|
42
|
+
item: UnparseableItem;
|
|
43
|
+
/** Full repaired file contents. */
|
|
44
|
+
contents: string;
|
|
45
|
+
}
|
|
46
|
+
export interface TitlePlan {
|
|
47
|
+
/** Mechanically repairable by quoting the title. */
|
|
48
|
+
repairs: TitleRepair[];
|
|
49
|
+
/** Unparseable for some other reason; a human must look. */
|
|
50
|
+
manual: UnparseableItem[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Everything the migration would do, computed without writing.
|
|
54
|
+
*
|
|
55
|
+
* The single source of pending-ness. Sorted by `unparseableItems`, which walks
|
|
56
|
+
* statuses in lifecycle order and filenames in sorted order, so the plan never
|
|
57
|
+
* depends on directory read order.
|
|
58
|
+
*/
|
|
59
|
+
export declare function planTitleQuoting(ctx: DoctorContext): TitlePlan;
|
|
60
|
+
export declare const roadmapItemTitles: Migration;
|
|
61
|
+
//# sourceMappingURL=roadmap-item-titles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmap-item-titles.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/roadmap-item-titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,4DAA4D;IAC5D,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAiB9D;AA0BD,eAAO,MAAM,iBAAiB,EAAE,SAuC/B,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* roadmap-item-titles migration (confirm tier): quote an item title that YAML
|
|
3
|
+
* will not parse, so the item stops being invisible.
|
|
4
|
+
*
|
|
5
|
+
* The defect this repairs is silence, not breakage. `readItem` returns null for
|
|
6
|
+
* "unreadable" and "absent" alike and `listStatus` skips nulls, so one malformed
|
|
7
|
+
* frontmatter block removes an item from browse, from promotion lookup, from the
|
|
8
|
+
* `roadmap-done` action and from `aidlc doctor` — with no message anywhere saying
|
|
9
|
+
* a file was skipped. Absence is indistinguishable from never having written it.
|
|
10
|
+
* Five of this project's first 49 items sat invisible for up to ten days.
|
|
11
|
+
*
|
|
12
|
+
* The trigger is always the same: YAML reserves `` ` `` as an indicator
|
|
13
|
+
* character, so a plain scalar may not begin with one, and the natural way to
|
|
14
|
+
* name a code defect is `` title: `readItem` returns null ``. Agents write these
|
|
15
|
+
* titles — every affected item carried `source: agent` or `source: import`.
|
|
16
|
+
*
|
|
17
|
+
* Two halves, and the order matters. The *cause* is fixed in the capture
|
|
18
|
+
* instructions, which now say to quote the title unconditionally
|
|
19
|
+
* (`packages/content/skills/04-roadmap.md` and the portable `roadmap-item`
|
|
20
|
+
* skill); those are what stop new ones appearing. This migration is the
|
|
21
|
+
* *detector*, for the items already on disk and for any writer that ignores the
|
|
22
|
+
* instruction.
|
|
23
|
+
*
|
|
24
|
+
* Confirm tier, because this edits the user's own content — the reason
|
|
25
|
+
* `roadmap-layout` is confirm tier too. `check` and `apply` both derive
|
|
26
|
+
* everything from `planTitleQuoting` and nothing else computes pending-ness, the
|
|
27
|
+
* rule stated in `../types.ts`, so a dry run and a real run cannot disagree.
|
|
28
|
+
*
|
|
29
|
+
* Files broken any other way are reported as NOT APPLICABLE rather than pending,
|
|
30
|
+
* following `roadmap-layout` exactly: `apply` will never fix them, only a human
|
|
31
|
+
* can, and `aidlc doctor` exits 1 on pending confirm work — so calling them
|
|
32
|
+
* pending would fail doctor forever on a repo holding one malformed file, which
|
|
33
|
+
* trains people to ignore doctor output. `not-applicable` still prints the
|
|
34
|
+
* detail, which is the entire point: any error at all turns a ten-day mystery
|
|
35
|
+
* into a one-minute fix.
|
|
36
|
+
*/
|
|
37
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
38
|
+
import { relative } from 'node:path';
|
|
39
|
+
import { quoteItemTitle, unparseableItems, } from '../../roadmap/paths.js';
|
|
40
|
+
/**
|
|
41
|
+
* Everything the migration would do, computed without writing.
|
|
42
|
+
*
|
|
43
|
+
* The single source of pending-ness. Sorted by `unparseableItems`, which walks
|
|
44
|
+
* statuses in lifecycle order and filenames in sorted order, so the plan never
|
|
45
|
+
* depends on directory read order.
|
|
46
|
+
*/
|
|
47
|
+
export function planTitleQuoting(ctx) {
|
|
48
|
+
const repairs = [];
|
|
49
|
+
const manual = [];
|
|
50
|
+
for (const item of unparseableItems(ctx.projectRoot)) {
|
|
51
|
+
// Only `invalid-yaml` can be a quoting problem. An unreadable file or a
|
|
52
|
+
// missing/unterminated `---` fence is a different defect, and guessing at a
|
|
53
|
+
// repair for it would be the confident-wrong-fix this guard exists to avoid.
|
|
54
|
+
const repaired = item.reason === 'invalid-yaml' ? quoteItemTitle(readOrNull(item)) : null;
|
|
55
|
+
if (repaired === null) {
|
|
56
|
+
manual.push(item);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
repairs.push({ item, contents: repaired });
|
|
60
|
+
}
|
|
61
|
+
return { repairs, manual };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Read one item, tolerating the race where it vanished between the directory
|
|
65
|
+
* walk and here. `unparseableItems` has already classified an unreadable file as
|
|
66
|
+
* `unreadable`, so reaching this with an I/O error means the file changed under
|
|
67
|
+
* us — a re-run picks it up, and treating it as "not repairable now" is correct.
|
|
68
|
+
*/
|
|
69
|
+
function readOrNull(item) {
|
|
70
|
+
try {
|
|
71
|
+
return readFileSync(item.file, 'utf8');
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** One-line summary shared by `check` and `apply`. */
|
|
78
|
+
function describe(plan, verb) {
|
|
79
|
+
const names = plan.repairs.map((r) => r.item.label).join(', ');
|
|
80
|
+
const suffix = plan.manual.length > 0
|
|
81
|
+
? `; ${plan.manual.length} other unparseable item(s) need a human: ${plan.manual.map((m) => m.label).join(', ')}`
|
|
82
|
+
: '';
|
|
83
|
+
return `${verb} the title in ${plan.repairs.length} roadmap item(s) so they parse: ${names}${suffix}`;
|
|
84
|
+
}
|
|
85
|
+
export const roadmapItemTitles = {
|
|
86
|
+
id: 'roadmap-item-titles',
|
|
87
|
+
tier: 'confirm',
|
|
88
|
+
check(ctx) {
|
|
89
|
+
const plan = planTitleQuoting(ctx);
|
|
90
|
+
if (plan.repairs.length === 0) {
|
|
91
|
+
if (plan.manual.length > 0) {
|
|
92
|
+
return {
|
|
93
|
+
applicable: false,
|
|
94
|
+
reason: `${plan.manual.length} roadmap item(s) have unparseable frontmatter that quoting the title will not fix, so they are invisible to every roadmap lookup until a human edits them: ${plan.manual
|
|
95
|
+
.map((m) => (m.detail ? `${m.label} (${m.detail})` : `${m.label} [${m.reason}]`))
|
|
96
|
+
.join('; ')}`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return { applicable: true, pending: false };
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
applicable: true,
|
|
103
|
+
pending: true,
|
|
104
|
+
description: describe(plan, 'would quote'),
|
|
105
|
+
// No shell equivalent: this is an in-place text edit of one line, not a
|
|
106
|
+
// move. Listing the files is the honest version of "the exact commands".
|
|
107
|
+
commands: plan.repairs.map((r) => `edit ${relative(ctx.projectRoot, r.item.file)} — quote the title: value`),
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
apply(ctx) {
|
|
111
|
+
const plan = planTitleQuoting(ctx);
|
|
112
|
+
for (const repair of plan.repairs) {
|
|
113
|
+
writeFileSync(repair.item.file, repair.contents, 'utf8');
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
changed: plan.repairs.length > 0,
|
|
117
|
+
summary: plan.repairs.length > 0 ? describe(plan, 'quoted') : 'no titles to quote',
|
|
118
|
+
};
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=roadmap-item-titles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmap-item-titles.js","sourceRoot":"","sources":["../../../src/doctor/migrations/roadmap-item-titles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap-layout.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/roadmap-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yEAAyE;IACzE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"roadmap-layout.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/roadmap-layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yEAAyE;IACzE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoDzC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CAmEhE;AASD,eAAO,MAAM,aAAa,EAAE,SA8G3B,CAAC"}
|
|
@@ -92,7 +92,13 @@ export function rewriteFrontmatter(raw, filename, status) {
|
|
|
92
92
|
const lines = [
|
|
93
93
|
'---',
|
|
94
94
|
`id: ${id}`,
|
|
95
|
-
|
|
95
|
+
// Always quoted, never conditionally. This line used to quote only when the
|
|
96
|
+
// title contained `': '`, which is the shape of the defect it was guarding
|
|
97
|
+
// against: `': '` is one of several sequences a plain scalar cannot carry,
|
|
98
|
+
// and a leading backtick — how any agent names a code identifier — is
|
|
99
|
+
// another. Conditional quoting has to enumerate YAML's indicator characters
|
|
100
|
+
// correctly to be right; quoting always does not.
|
|
101
|
+
`title: ${JSON.stringify(title)}`,
|
|
96
102
|
`created_at: ${createdAt}`,
|
|
97
103
|
'source: import',
|
|
98
104
|
`promoted_to: ${promotedTo === null ? 'null' : promotedTo}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap-layout.js","sourceRoot":"","sources":["../../../src/doctor/migrations/roadmap-layout.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"roadmap-layout.js","sourceRoot":"","sources":["../../../src/doctor/migrations/roadmap-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAkDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAMD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACxC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAkDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAMD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACxC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAuH1C;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE3E;AA0ED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,cAAc,CA6ChB"}
|
package/dist/events/event-bus.js
CHANGED
|
@@ -146,10 +146,21 @@ const builtInHandlers = {
|
|
|
146
146
|
* retro-pending: Mark an instance as awaiting its retrospective
|
|
147
147
|
* (feedback-loop AC-23). Cross-platform Node fs — the shipped
|
|
148
148
|
* on-instance-complete action cannot be a shell script (design F3).
|
|
149
|
+
*
|
|
150
|
+
* No-ops when `retrospective.md` already exists
|
|
151
|
+
* (instance-complete-never-fires AC-7). The documented completion order
|
|
152
|
+
* writes the retrospective *before* firing this event, so without the check
|
|
153
|
+
* every correct completion would ask for a retrospective it already has —
|
|
154
|
+
* and the entry-point skill would offer a menu entry for finished work.
|
|
155
|
+
* Silent rather than announced: nothing is owed, so there is nothing to say.
|
|
149
156
|
*/
|
|
150
157
|
'retro-pending': (event) => {
|
|
151
158
|
try {
|
|
152
|
-
const
|
|
159
|
+
const projectRoot = resolveProjectRoot();
|
|
160
|
+
if (existsSync(join(projectRoot, '.aidlc', 'state', event.instance, 'retrospective.md'))) {
|
|
161
|
+
return { success: true };
|
|
162
|
+
}
|
|
163
|
+
const marker = retroPendingPath(projectRoot, event.instance);
|
|
153
164
|
mkdirSync(dirname(marker), { recursive: true });
|
|
154
165
|
writeFileSync(marker, `${new Date().toISOString()}\n`, 'utf8');
|
|
155
166
|
process.stdout.write(`retro pending for ${event.instance}: run the aidlc-retrospective skill\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"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"}
|
package/dist/roadmap/paths.d.ts
CHANGED
|
@@ -51,6 +51,54 @@ export interface RoadmapItem {
|
|
|
51
51
|
}
|
|
52
52
|
/** Read one item. Returns null when the file is unreadable or has no frontmatter. */
|
|
53
53
|
export declare function readItem(file: string, status: RoadmapStatus): RoadmapItem | null;
|
|
54
|
+
/** Why one item file will not yield frontmatter. */
|
|
55
|
+
export type ItemParseFailure = 'unreadable' | 'no-frontmatter' | 'unterminated-frontmatter' | 'invalid-yaml';
|
|
56
|
+
/** One item that cannot be read, with everything a reporter or repairer needs. */
|
|
57
|
+
export interface UnparseableItem {
|
|
58
|
+
status: RoadmapStatus;
|
|
59
|
+
filename: string;
|
|
60
|
+
/** Absolute path on disk. */
|
|
61
|
+
file: string;
|
|
62
|
+
/** `<status>/<filename>` — the form used in doctor output. */
|
|
63
|
+
label: string;
|
|
64
|
+
reason: ItemParseFailure;
|
|
65
|
+
/** Parser message for `invalid-yaml`, else null. */
|
|
66
|
+
detail: string | null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Every roadmap item whose frontmatter will not parse, across all statuses.
|
|
70
|
+
*
|
|
71
|
+
* This is the *shared* detection the two reporting callers need. It deliberately
|
|
72
|
+
* re-reads and re-parses rather than going through `readItem`, whose `null`
|
|
73
|
+
* return cannot distinguish "unparseable" from "absent" — and that conflation is
|
|
74
|
+
* the whole defect: `listStatus` skips nulls, so a malformed item is missing from
|
|
75
|
+
* browse, from `findByPromotedTo`, from the `roadmap-done` action and from
|
|
76
|
+
* `aidlc doctor`, with nothing anywhere saying so. Five of this project's first 49
|
|
77
|
+
* items were invisible for up to ten days, every one a backtick-initial title.
|
|
78
|
+
*
|
|
79
|
+
* `readItem`'s signature is left alone on purpose. Widening it to
|
|
80
|
+
* `ok | reason` would touch every caller to buy reporting that only two of them
|
|
81
|
+
* want; naming the failures once, here, buys the same reporting for the price of
|
|
82
|
+
* one function. Items are walked in sorted order so output never depends on
|
|
83
|
+
* directory read order.
|
|
84
|
+
*/
|
|
85
|
+
export declare function unparseableItems(cwd: string): UnparseableItem[];
|
|
86
|
+
/**
|
|
87
|
+
* Quote an item's unquoted `title:` value, or null when that is not the problem.
|
|
88
|
+
*
|
|
89
|
+
* The only mechanical repair worth having, because it is the only failure the
|
|
90
|
+
* capture flow actually produces: agents name a code defect the natural way, with
|
|
91
|
+
* the identifier in backticks, and YAML reserves `` ` `` as an indicator so a
|
|
92
|
+
* plain scalar cannot start with one. The line is rewritten as text rather than
|
|
93
|
+
* round-tripped through the parser — the document does not parse, so there is
|
|
94
|
+
* nothing to round-trip, and rebuilding it would rewrite fields this has no
|
|
95
|
+
* business touching.
|
|
96
|
+
*
|
|
97
|
+
* Returns null unless quoting the title makes the whole block parse. That check
|
|
98
|
+
* is the guard against a confident wrong repair: a file broken somewhere else,
|
|
99
|
+
* or broken in the title *and* elsewhere, is left for a human and reported.
|
|
100
|
+
*/
|
|
101
|
+
export declare function quoteItemTitle(raw: string): string | null;
|
|
54
102
|
/**
|
|
55
103
|
* Every item in one status directory, sorted by filename.
|
|
56
104
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/roadmap/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,8DAA+D,CAAC;AAE7F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,kCAAkC;AAClC,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAEpE;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;CACb;AAuBD,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,IAAI,CAwBhF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,EAAE,CAU5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAOlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAUlG;AAED,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAEtD"}
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/roadmap/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,8DAA+D,CAAC;AAE7F,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,kCAAkC;AAClC,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAEpE;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;CACb;AAuBD,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,IAAI,CAwBhF;AAED,oDAAoD;AACpD,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,gBAAgB,GAChB,0BAA0B,GAC1B,cAAc,CAAC;AAEnB,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,oDAAoD;IACpD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CA8C/D;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBzD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,EAAE,CAU5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAOlF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAUlG;AAED,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAEtD"}
|