@rsaglobaltech/specgate 1.0.0-rc.1 → 1.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/packages/core/src/domain/Approvals.js +19 -4
- package/dist/packages/core/src/domain/Approvals.js.map +1 -1
- package/dist/packages/core/src/domain/ChangeLayers.js +6 -2
- package/dist/packages/core/src/domain/ChangeLayers.js.map +1 -1
- package/dist/packages/core/src/domain/WorkspaceStory.js +259 -0
- package/dist/packages/core/src/domain/WorkspaceStory.js.map +1 -0
- package/dist/scripts/change/instructions.js +8 -0
- package/dist/scripts/change/instructions.js.map +1 -1
- package/dist/scripts/cli/commands/change/ChangeCommand.js +62 -3
- package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
- package/dist/scripts/cli/commands/harness/RunCommand.js +5 -4
- package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -1
- package/dist/scripts/cli/commands/project/InitProjectCommand.js +9 -14
- package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/DoneCommand.js +22 -0
- package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/StatusCommand.js +73 -0
- package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -1
- package/dist/scripts/cli/commands/spec/StudioCommand.js +6 -6
- package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -1
- package/dist/scripts/cli/commands/workspace/WorkspaceCommand.js +252 -42
- package/dist/scripts/cli/commands/workspace/WorkspaceCommand.js.map +1 -1
- package/dist/scripts/draft/confined-agent.js +2 -1
- package/dist/scripts/draft/confined-agent.js.map +1 -1
- package/dist/scripts/harness/prompt.js +50 -1
- package/dist/scripts/harness/prompt.js.map +1 -1
- package/dist/scripts/lib/story-part.js +73 -0
- package/dist/scripts/lib/story-part.js.map +1 -0
- package/dist/scripts/lib/surface.js +1 -1
- package/dist/scripts/lib/surface.js.map +1 -1
- package/dist/scripts/lib/temp-file.js +72 -0
- package/dist/scripts/lib/temp-file.js.map +1 -0
- package/dist/scripts/lib/workspace-draft.js +224 -0
- package/dist/scripts/lib/workspace-draft.js.map +1 -0
- package/dist/scripts/lib/workspace-live.js +9 -26
- package/dist/scripts/lib/workspace-live.js.map +1 -1
- package/dist/scripts/lib/workspace.js +325 -6
- package/dist/scripts/lib/workspace.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,43 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [1.0.0-rc.3] — 2026-10-30
|
|
13
|
+
|
|
14
|
+
After the second microservices run of truck-flote: a tick in tasks.md no longer withdraws an approval, so a change is built past its first requirement; the workspace's agent proposes the stories, a story says which criteria each repository answers and keeps its questions, the agents that write a sub-change see the whole story, and the story is built only as far as its dependencies are delivered.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **A delivered requirement no longer un-approves its change** (REQ-370, REQ-371): delivering a requirement ticks its task in `tasks.md` (REQ-353), and the tick changed the hash the tasks' approval was bound to, so the harness refused the change's second requirement as "not approved: tasks". A layer is now hashed with every task box read as open: a tick, by the harness or a person, keeps the approval, and any other edit still asks for it again. Approvals recorded by 1.0.0-rc.1 and rc.2 keep counting.
|
|
19
|
+
- **A prompt file Windows still holds never fails the command** (REQ-372): four `change author` runs side by side ended in `EBUSY … unlink` after their agents had written their layers. Removing a prompt file now retries briefly and then leaves it to the system — in `change author`, the drafting agents and the harness.
|
|
20
|
+
- **An agent proposes the brief's stories** (REQ-360): `workspace draft --agent` with no story named ran no agent and said nothing; the agent now fills the front matter's `stories:`, writing only `docs/brief.md`, and the client's text is put back if it moved. With stories named, `--agent` without a story id is refused.
|
|
21
|
+
- **Each criterion names its repositories** (REQ-361, REQ-362): a story's `## Repositories` lists the criteria each answers (`- fleet: AC-1, AC-2`); each Discover says which are its own and which the others', and `workspace check` warns about a criterion no repository answers or two claim.
|
|
22
|
+
- **A story's questions wait for their answers** (REQ-363): they go in `docs/stories/<id>/questions.md`; `workspace propose` refuses while one is open, unless `--allow-open-questions`.
|
|
23
|
+
- **A drafted story keeps none of its form's hints** (REQ-364).
|
|
24
|
+
- **The Discover stays business** (REQ-365, REQ-344): the guidance on `depends=` and `api=` that tripped `layer_discover_technical` in every repository moves to the sub-change's `design.md`.
|
|
25
|
+
- **`change author` hears of the story** (REQ-366): `story.json` in each sub-change names its workspace, and the prompt for any layer carries the story's other parts and their requirements.
|
|
26
|
+
- **A requirement waits for what it depends on** (REQ-367): `workspace harness run --story` starts only the requirements whose dependencies are delivered, names the others waiting, and exits 1.
|
|
27
|
+
|
|
28
|
+
## [1.0.0-rc.2] — 2026-10-30
|
|
29
|
+
|
|
30
|
+
After the first microservices run of truck-flote (five repositories, one story across three of them, nine requirements delivered in parallel): the workspace takes the client's brief and drafts its stories, a story's intent and criteria reach every repository, the story is built in the order of its dependencies, and `init --yes` adopts the folder it is run in.
|
|
31
|
+
|
|
32
|
+
### Breaking
|
|
33
|
+
|
|
34
|
+
- **`specgate init --yes` adopts a folder that already has code** (REQ-249, modified): it scaffolded a separate project inside it (`my-spec-driven-app/`), so a scripted `init` in a repository made a second one. `--yes` now only skips the questions; `--new`, `--out`, `--config`, `--multi-stack` and `--forja` still scaffold.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **`change validate` reports what `change approve` refuses** (REQ-350): a layered change validated, then approval refused it for requirements with no kind. Validation now fails with `change_not_approvable` for each finding approval would block on.
|
|
39
|
+
- **The agent writing a change's requirements is told what they need** (REQ-351): `kind=`, `actor=`, and a feature file of its own.
|
|
40
|
+
- **Two requirements naming one feature file are reported** (REQ-352): `change validate` and `change archive` refuse with `change_feature_shared`; archiving would have kept only one's scenarios.
|
|
41
|
+
- **A delivered requirement ticks its tasks** (REQ-353): `done`, which the harness runs, ticks the tasks of the open change that name the requirement.
|
|
42
|
+
- **`change --help` describes the three layers** (REQ-354), and docs/migrating-to-1.0.md says how to install a candidate just published (`--prefer-online`) and how to move a forja project to it.
|
|
43
|
+
- **The workspace takes the client's brief** (REQ-339..341): `specgate workspace draft` puts a root `brief.md` below a front matter that names the brief's stories and their repositories, `workspace draft <story> --agent "<cmd>"` drafts a story's intent and criteria from the brief, confined to the story, and `specgate status` in a workspace repository shows the workspace and the next step instead of failing on a missing matrix.
|
|
44
|
+
- **Every repository receives the story** (REQ-342..344): `workspace propose` takes a drafted story, copies its intent and criteria into each sub-change's `discover.md` and names the story's other repositories and how to write `depends=` and `api=`; `workspace check` warns `workspace_story_diverged` when a repository's criteria are not the story's; each harness is told the story's other parts.
|
|
45
|
+
- **A story is built in dependency order** (REQ-345): `workspace harness run --story` starts a repository whose part waits on another's undelivered requirement after that repository has finished; the dry run shows the levels.
|
|
46
|
+
- **The live view and the story's cost** (REQ-346, REQ-347): every JSON document of the studio says `charset=utf-8`, and a story's cost counts its archived parts.
|
|
47
|
+
- **Short repository names, and the logs ignored** (REQ-348, REQ-349): `workspace init` names `truck-flote-fleet` as `fleet`, prints name, path and role in their own columns, and ignores `.specgate/workspace-runs/`.
|
|
48
|
+
|
|
12
49
|
## [1.0.0-rc.1] — 2026-10-30
|
|
13
50
|
|
|
14
51
|
The first candidate of the 1.0 line, for teams of several repositories and roles: a change in three layers with their owners, a workspace of repositories with stories across them and its own live view, approvals per layer and harness packages per role, the backlog following the phases, the two gaps measured, principles, drift and API contracts checked, and `specgate migrate 1.0` to move a 0.27 project. Published under the npm dist-tag `next`; `latest` stays 0.27. See [Migrating to 1.0](docs/migrating-to-1.0.md).
|
|
@@ -11,6 +11,7 @@ exports.readApprovalSettings = readApprovalSettings;
|
|
|
11
11
|
exports.holdsRole = holdsRole;
|
|
12
12
|
exports.rolesHeld = rolesHeld;
|
|
13
13
|
exports.contentHash = contentHash;
|
|
14
|
+
exports.rawContentHash = rawContentHash;
|
|
14
15
|
exports.layerApprovals = layerApprovals;
|
|
15
16
|
exports.approvalsRequired = approvalsRequired;
|
|
16
17
|
exports.changeApproved = changeApproved;
|
|
@@ -76,20 +77,34 @@ function rolesHeld(settings, who) {
|
|
|
76
77
|
const roles = new Set([...ChangeLayers_1.LAYERS.map((l) => l.owner), ...Object.keys(settings.roles)]);
|
|
77
78
|
return [...roles].filter((r) => holdsRole(settings, r, who)).sort();
|
|
78
79
|
}
|
|
79
|
-
|
|
80
|
+
const sha = (text) => `sha256:${(0, node_crypto_1.createHash)("sha256").update(text.replace(/\r\n/g, "\n")).digest("hex")}`;
|
|
81
|
+
/**
|
|
82
|
+
* The hash an approval is of: line endings do not count, the text does, and a
|
|
83
|
+
* task box counts as open whether it is ticked or not (REQ-370). Delivering a
|
|
84
|
+
* requirement ticks its task (REQ-353); hashing the tick made the harness
|
|
85
|
+
* refuse a change's second requirement as "not approved: tasks" (truck-flote,
|
|
86
|
+
* MS2-8). Any other edit still changes the hash (REQ-314).
|
|
87
|
+
*/
|
|
80
88
|
function contentHash(text) {
|
|
81
|
-
return
|
|
89
|
+
return sha(text.replace(/^(\s*[-*+]\s*)\[[xX]\]/gm, "$1[ ]"));
|
|
90
|
+
}
|
|
91
|
+
/** The hash of the text as written: what 1.0.0-rc.1 and rc.2 recorded (REQ-371). */
|
|
92
|
+
function rawContentHash(text) {
|
|
93
|
+
return sha(text);
|
|
82
94
|
}
|
|
83
95
|
const personKey = (who) => norm(who.email || who.name);
|
|
84
96
|
/** What each layer's approvals are worth against its current text. */
|
|
85
97
|
function layerApprovals(layers, records, settings) {
|
|
86
98
|
return layers.map((l) => {
|
|
87
99
|
const hash = l.text === null ? "" : contentHash(l.text);
|
|
100
|
+
// REQ-371: a record of an earlier candidate hashed the text as written.
|
|
101
|
+
const raw = l.text === null ? "" : rawContentHash(l.text);
|
|
102
|
+
const matches = (r) => r.hash === hash || r.hash === raw;
|
|
88
103
|
const mine = records.filter((r) => r.layer === l.id);
|
|
89
104
|
const current = [];
|
|
90
105
|
const seen = new Set();
|
|
91
106
|
for (const r of mine) {
|
|
92
|
-
if (r
|
|
107
|
+
if (!matches(r))
|
|
93
108
|
continue;
|
|
94
109
|
const key = personKey(r.by);
|
|
95
110
|
if (seen.has(key))
|
|
@@ -97,7 +112,7 @@ function layerApprovals(layers, records, settings) {
|
|
|
97
112
|
seen.add(key);
|
|
98
113
|
current.push(r);
|
|
99
114
|
}
|
|
100
|
-
const stale = mine.filter((r) => r
|
|
115
|
+
const stale = mine.filter((r) => !matches(r));
|
|
101
116
|
const quorum = settings.quorum[l.id] || 1;
|
|
102
117
|
return {
|
|
103
118
|
layer: l.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Approvals.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/Approvals.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA+CH,oDA+BC;AAWD,8BAIC;AAGD,8BAGC;
|
|
1
|
+
{"version":3,"file":"Approvals.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/Approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -190,8 +190,12 @@ function acceptanceCriteria(discover) {
|
|
|
190
190
|
}
|
|
191
191
|
return out;
|
|
192
192
|
}
|
|
193
|
-
/**
|
|
194
|
-
|
|
193
|
+
/**
|
|
194
|
+
* Words of how, in a layer about what: the brief's list plus the architecture's.
|
|
195
|
+
* Not "table": a client reads "a table of their shipments"; storage is caught
|
|
196
|
+
* by database, SQL and the brief's own list.
|
|
197
|
+
*/
|
|
198
|
+
const DISCOVER_TECHNICAL = new RegExp(`${BriefCards_1.TECHNICAL.source}|\\b(api|apis|endpoints?|database|base de datos|sql|http|json|microservices?|microservicios?|queue|cola de mensajes|controllers?)\\b`, "i");
|
|
195
199
|
/** REST in capitals only: "the rest of the week" is plain English. */
|
|
196
200
|
const DISCOVER_REST = /\bREST(?:ful)?\b/;
|
|
197
201
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeLayers.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/ChangeLayers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AA+CH,4CAmBC;AAED,sDAsBC;AAED,oDAeC;AAOD,gDAMC;AAKD,4CASC;AAOD,gDAsBC;AA6BD,gDASC;
|
|
1
|
+
{"version":3,"file":"ChangeLayers.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/ChangeLayers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* A workspace story as text: the stories a workspace brief names, the
|
|
4
|
+
* sections of a `story.md`, and the names a workspace gives its repositories
|
|
5
|
+
* (REQ-339..348). Pure; reading and writing the files is `scripts/lib`.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.CRITERIA = exports.INTENT = void 0;
|
|
9
|
+
exports.briefFrontMatter = briefFrontMatter;
|
|
10
|
+
exports.briefText = briefText;
|
|
11
|
+
exports.briefStories = briefStories;
|
|
12
|
+
exports.workspaceBriefTemplate = workspaceBriefTemplate;
|
|
13
|
+
exports.section = section;
|
|
14
|
+
exports.criteriaLines = criteriaLines;
|
|
15
|
+
exports.criterionIds = criterionIds;
|
|
16
|
+
exports.storyCriteria = storyCriteria;
|
|
17
|
+
exports.storyQuestionsTemplate = storyQuestionsTemplate;
|
|
18
|
+
exports.withoutFilledHints = withoutFilledHints;
|
|
19
|
+
exports.storyTemplate = storyTemplate;
|
|
20
|
+
exports.shortNames = shortNames;
|
|
21
|
+
const FRONT = /^---\r?\n([\s\S]*?)\r?\n---[ \t]*(?:\r?\n|$)/;
|
|
22
|
+
/** The YAML between a brief's leading `---` lines, or null. */
|
|
23
|
+
function briefFrontMatter(text) {
|
|
24
|
+
const m = FRONT.exec(text);
|
|
25
|
+
return m ? m[1] : null;
|
|
26
|
+
}
|
|
27
|
+
/** Everything after the front matter. */
|
|
28
|
+
function briefText(text) {
|
|
29
|
+
const m = FRONT.exec(text);
|
|
30
|
+
return (m ? text.slice(m[0].length) : text).replace(/^(?:[ \t]*\r?\n)+/, "");
|
|
31
|
+
}
|
|
32
|
+
/** `a, b, [c, d]` split on the commas outside brackets. */
|
|
33
|
+
function topLevel(s) {
|
|
34
|
+
const out = [];
|
|
35
|
+
let depth = 0;
|
|
36
|
+
let cur = "";
|
|
37
|
+
for (const ch of s) {
|
|
38
|
+
if (ch === "[")
|
|
39
|
+
depth += 1;
|
|
40
|
+
if (ch === "]")
|
|
41
|
+
depth -= 1;
|
|
42
|
+
if (ch === "," && depth === 0) {
|
|
43
|
+
out.push(cur);
|
|
44
|
+
cur = "";
|
|
45
|
+
}
|
|
46
|
+
else
|
|
47
|
+
cur += ch;
|
|
48
|
+
}
|
|
49
|
+
if (cur.trim())
|
|
50
|
+
out.push(cur);
|
|
51
|
+
return out.map((x) => x.trim()).filter(Boolean);
|
|
52
|
+
}
|
|
53
|
+
const unquote = (s) => s.trim().replace(/^(["'])(.*)\1$/, "$2");
|
|
54
|
+
/**
|
|
55
|
+
* The stories of a workspace brief's front matter (REQ-339):
|
|
56
|
+
*
|
|
57
|
+
* stories:
|
|
58
|
+
* - { id: follow-shipment, title: El cliente sigue su envío, repos: [fleet, tracking] }
|
|
59
|
+
*/
|
|
60
|
+
function briefStories(frontMatter) {
|
|
61
|
+
if (!frontMatter)
|
|
62
|
+
return [];
|
|
63
|
+
const lines = frontMatter.split(/\r?\n/);
|
|
64
|
+
const start = lines.findIndex((l) => /^stories:/.test(l));
|
|
65
|
+
if (start < 0)
|
|
66
|
+
return [];
|
|
67
|
+
const out = [];
|
|
68
|
+
for (const line of lines.slice(start + 1)) {
|
|
69
|
+
if (/^\S/.test(line))
|
|
70
|
+
break;
|
|
71
|
+
const m = /^\s*-\s*\{(.*)\}\s*$/.exec(line);
|
|
72
|
+
if (!m)
|
|
73
|
+
continue;
|
|
74
|
+
const fields = {};
|
|
75
|
+
for (const part of topLevel(m[1])) {
|
|
76
|
+
const kv = /^([a-z_]+)\s*:\s*(.*)$/.exec(part);
|
|
77
|
+
if (kv)
|
|
78
|
+
fields[kv[1]] = kv[2].trim();
|
|
79
|
+
}
|
|
80
|
+
const id = unquote(fields.id || "");
|
|
81
|
+
if (!/^[a-z0-9][a-z0-9-]*$/.test(id))
|
|
82
|
+
continue;
|
|
83
|
+
const repos = /^\[(.*)\]$/.exec(fields.repos || "");
|
|
84
|
+
out.push({
|
|
85
|
+
id,
|
|
86
|
+
title: unquote(fields.title || "") || id.replace(/-/g, " "),
|
|
87
|
+
repos: repos
|
|
88
|
+
? repos[1]
|
|
89
|
+
.split(",")
|
|
90
|
+
.map((r) => unquote(r))
|
|
91
|
+
.filter(Boolean)
|
|
92
|
+
: [],
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
97
|
+
/** The front matter `workspace draft` writes above a client's brief. */
|
|
98
|
+
function workspaceBriefTemplate(product, repos) {
|
|
99
|
+
return [
|
|
100
|
+
"---",
|
|
101
|
+
`product: ${product}`,
|
|
102
|
+
"# The business stories of the brief, each split across the repositories it",
|
|
103
|
+
"# touches: `specgate workspace draft <id>` drafts one, `workspace propose <id>`",
|
|
104
|
+
"# opens its change in each repository (REQ-339).",
|
|
105
|
+
`# e.g. - { id: follow-shipment, title: The client follows a shipment, repos: [${repos.slice(0, 2).join(", ")}] }`,
|
|
106
|
+
"stories: []",
|
|
107
|
+
"---",
|
|
108
|
+
"",
|
|
109
|
+
].join("\n");
|
|
110
|
+
}
|
|
111
|
+
/** A `##` section of a Markdown text, without its comments, or "". */
|
|
112
|
+
function section(md, heading) {
|
|
113
|
+
const lines = md.split(/\r?\n/);
|
|
114
|
+
const at = lines.findIndex((l) => /^##\s/.test(l) && heading.test(l));
|
|
115
|
+
if (at < 0)
|
|
116
|
+
return "";
|
|
117
|
+
const body = [];
|
|
118
|
+
for (const l of lines.slice(at + 1)) {
|
|
119
|
+
if (/^##\s/.test(l))
|
|
120
|
+
break;
|
|
121
|
+
body.push(l);
|
|
122
|
+
}
|
|
123
|
+
return body
|
|
124
|
+
.join("\n")
|
|
125
|
+
.replace(/<!--[\s\S]*?-->/g, "")
|
|
126
|
+
.trim();
|
|
127
|
+
}
|
|
128
|
+
exports.INTENT = /intent|intenci[oó]n|context/i;
|
|
129
|
+
exports.CRITERIA = /acceptance criteria|criterios de aceptaci[oó]n|akzeptanzkriterien/i;
|
|
130
|
+
/** A story's (or a Discover's) `AC-n` lines, as written. */
|
|
131
|
+
function criteriaLines(md) {
|
|
132
|
+
return section(md, exports.CRITERIA)
|
|
133
|
+
.split(/\r?\n/)
|
|
134
|
+
.map((l) => l.trim())
|
|
135
|
+
.filter((l) => /^[-*]\s*AC-\d+\s*[:—–-]\s*\S/.test(l))
|
|
136
|
+
.map((l) => l.replace(/^[-*]\s*/, "").replace(/\s+/g, " "));
|
|
137
|
+
}
|
|
138
|
+
/** The `AC-n` ids of a story's criteria, in order. */
|
|
139
|
+
function criterionIds(md) {
|
|
140
|
+
return criteriaLines(md)
|
|
141
|
+
.map((l) => (/^(AC-\d+)/.exec(l) || [])[1])
|
|
142
|
+
.filter((x) => Boolean(x));
|
|
143
|
+
}
|
|
144
|
+
/** `AC-1, AC-3..AC-5` (or `AC-3–AC-5`) as the ids it names. */
|
|
145
|
+
function idsIn(text) {
|
|
146
|
+
const out = [];
|
|
147
|
+
for (const m of text.matchAll(/AC-(\d+)(?:\s*(?:\.\.|–|—|-|to|a)\s*(?:AC-)?(\d+))?/g)) {
|
|
148
|
+
const from = Number(m[1]);
|
|
149
|
+
const to = m[2] ? Number(m[2]) : from;
|
|
150
|
+
for (let n = Math.min(from, to); n <= Math.max(from, to); n += 1)
|
|
151
|
+
out.push(`AC-${n}`);
|
|
152
|
+
}
|
|
153
|
+
return [...new Set(out)];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* REQ-361: which criteria each repository answers, from the story's
|
|
157
|
+
* `## Repositories` section — `` - `fleet`: AC-1, AC-2 ``. A repository listed
|
|
158
|
+
* with no criteria answers none yet; an empty map means the story maps nothing.
|
|
159
|
+
*/
|
|
160
|
+
function storyCriteria(md) {
|
|
161
|
+
const out = {};
|
|
162
|
+
for (const line of section(md, /repositor/i).split(/\r?\n/)) {
|
|
163
|
+
const m = /^\s*[-*]\s*`?([a-z][a-z0-9-]*)`?\s*(?::|—|–|-)?\s*(.*)$/.exec(line);
|
|
164
|
+
if (!m)
|
|
165
|
+
continue;
|
|
166
|
+
const ids = idsIn(m[2]);
|
|
167
|
+
if (ids.length)
|
|
168
|
+
out[m[1]] = ids;
|
|
169
|
+
}
|
|
170
|
+
return out;
|
|
171
|
+
}
|
|
172
|
+
/** REQ-363: a story's questions for the client, in a draft's format (D7). */
|
|
173
|
+
function storyQuestionsTemplate(id) {
|
|
174
|
+
return [
|
|
175
|
+
`# Questions — ${id}`,
|
|
176
|
+
"",
|
|
177
|
+
"What only the client can decide. The story is not split across its",
|
|
178
|
+
"repositories while one is open (`workspace propose --allow-open-questions`",
|
|
179
|
+
"to split it anyway).",
|
|
180
|
+
"",
|
|
181
|
+
"| # | Question | Blocks | Answer |",
|
|
182
|
+
"|---|---|---|---|",
|
|
183
|
+
"",
|
|
184
|
+
].join("\n");
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* REQ-364: the form's `<!-- … -->` hint of every `##` section that now holds
|
|
188
|
+
* text, removed; a section still empty keeps its hint.
|
|
189
|
+
*/
|
|
190
|
+
function withoutFilledHints(md) {
|
|
191
|
+
const lines = md.replace(/\r\n/g, "\n").split("\n");
|
|
192
|
+
const out = [];
|
|
193
|
+
let i = 0;
|
|
194
|
+
while (i < lines.length) {
|
|
195
|
+
if (!/^##\s/.test(lines[i])) {
|
|
196
|
+
out.push(lines[i]);
|
|
197
|
+
i += 1;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
let end = i + 1;
|
|
201
|
+
while (end < lines.length && !/^##\s/.test(lines[end]))
|
|
202
|
+
end += 1;
|
|
203
|
+
const body = lines.slice(i + 1, end).join("\n");
|
|
204
|
+
const filled = body
|
|
205
|
+
.replace(/<!--[\s\S]*?-->/g, "")
|
|
206
|
+
.split("\n")
|
|
207
|
+
.some((l) => l.trim() && !/^[-*]\s*AC-\d+\s*:?\s*$/.test(l.trim()));
|
|
208
|
+
const kept = filled
|
|
209
|
+
? body.replace(/[ \t]*<!--[\s\S]*?-->[ \t]*\n?/g, "").replace(/^\n{2,}/, "\n")
|
|
210
|
+
: body;
|
|
211
|
+
out.push(lines[i], ...kept.split("\n"));
|
|
212
|
+
i = end;
|
|
213
|
+
}
|
|
214
|
+
return out.join("\n").replace(/\n{3,}/g, "\n\n");
|
|
215
|
+
}
|
|
216
|
+
/** The `story.md` `workspace draft <id>` writes for a person, or an agent, to fill. */
|
|
217
|
+
function storyTemplate(title, repos) {
|
|
218
|
+
return [
|
|
219
|
+
`# Story: ${title}`,
|
|
220
|
+
"",
|
|
221
|
+
"## Intent",
|
|
222
|
+
"",
|
|
223
|
+
"<!-- The business story, in the words of whoever asked for it: who needs what, and why. It stays as it is while each repository's change works out the how. -->",
|
|
224
|
+
"",
|
|
225
|
+
"## Acceptance criteria",
|
|
226
|
+
"",
|
|
227
|
+
"<!-- One line each, numbered: every repository's design answers the ones it touches. -->",
|
|
228
|
+
"- AC-1:",
|
|
229
|
+
"",
|
|
230
|
+
"## Repositories",
|
|
231
|
+
"",
|
|
232
|
+
"<!-- Each repository with the criteria it answers: - `fleet`: AC-1, AC-2 (REQ-361). -->",
|
|
233
|
+
...repos.map((r) => `- \`${r}\`:`),
|
|
234
|
+
"",
|
|
235
|
+
].join("\n");
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* The names a workspace gives sibling folders: without the prefix they all
|
|
239
|
+
* share (`truck-flote-fleet`, `truck-flote-web` → `fleet`, `web`), so ids read
|
|
240
|
+
* `fleet:REQ-012` (REQ-348). Unchanged when stripping would leave a name empty
|
|
241
|
+
* or two names equal.
|
|
242
|
+
*/
|
|
243
|
+
function shortNames(names) {
|
|
244
|
+
if (names.length < 2)
|
|
245
|
+
return names;
|
|
246
|
+
let prefix = names[0];
|
|
247
|
+
for (const n of names.slice(1)) {
|
|
248
|
+
while (prefix && !n.startsWith(prefix))
|
|
249
|
+
prefix = prefix.slice(0, -1);
|
|
250
|
+
}
|
|
251
|
+
const cut = prefix.lastIndexOf("-");
|
|
252
|
+
if (cut < 0)
|
|
253
|
+
return names;
|
|
254
|
+
const keep = prefix.slice(0, cut + 1);
|
|
255
|
+
const short = names.map((n) => n.slice(keep.length));
|
|
256
|
+
const valid = short.every((s) => /^[a-z][a-z0-9-]*$/.test(s));
|
|
257
|
+
return valid && new Set(short).size === short.length ? short : names;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=WorkspaceStory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceStory.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/WorkspaceStory.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,8 +109,16 @@ const ARTIFACT_RULES = {
|
|
|
109
109
|
design: DESIGN_RULES,
|
|
110
110
|
tasks: TASKS_RULES,
|
|
111
111
|
};
|
|
112
|
+
// REQ-351: what approval and the harness will ask of each requirement, said
|
|
113
|
+
// to whoever writes them — an agent left them out (truck-flote, MS-10, MS-9).
|
|
114
|
+
const LAYERED_DELTA_RULES = [
|
|
115
|
+
...exports.DELTA_RULES,
|
|
116
|
+
"Every requirement's `<!-- specgate:trace … -->` carries `kind=` (functional, non-functional or business-rule) and `actor=` (who uses it): `change approve` refuses a requirement without them, and `change validate` says so (`change_not_approvable`).",
|
|
117
|
+
"Give each requirement a feature file of its own (`feature=features/<capability>/<REQ-NNN>.feature`): one feature file per requirement, or archiving replaces one's scenarios with another's (`change_feature_shared`).",
|
|
118
|
+
];
|
|
112
119
|
/** A layered change's own rules and templates for the layers it shares with 0.27. */
|
|
113
120
|
const LAYERED_RULES = {
|
|
121
|
+
specs: LAYERED_DELTA_RULES,
|
|
114
122
|
design: LAYERED_DESIGN_RULES,
|
|
115
123
|
tasks: LAYERED_TASKS_RULES,
|
|
116
124
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../scripts/change/instructions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../scripts/change/instructions.ts"],"names":[],"mappings":";;AACA,mFAAmF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2KnF,gCAIC;AAqDD,8CA0DC;AAYD,4BAEC;AAaD,oBAoGC;AA3ZD;;;;;;;;;;;GAWG;AAEH,8EAKqD;AACrD,4CAA8B;AAC9B,gDAAkC;AAElC,sDAAwD;AACxD,oDAAyD;AACzD,wCAAiE;AACjE,4FAMgE;AAEhE,2CAAqE;AACrE,iDAA8C;AAiC9C;;;;GAIG;AACU,QAAA,WAAW,GAAG;IACzB,6DAA6D;IAC7D,qHAAqH;IACrH,2FAA2F;IAC3F,8HAA8H;IAC9H,uJAAuJ;IACvJ,gDAAgD;IAChD,wLAAwL;CACzL,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,oHAAoH;IACpH,wFAAwF;CACzF,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,kGAAkG;IAClG,iEAAiE;CAClE,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,6EAA6E;IAC7E,wIAAwI;CACzI,CAAC;AAEF,mEAAmE;AACnE,MAAM,cAAc,GAAG;IACrB,2GAA2G;IAC3G,qGAAqG;IACrG,yGAAyG;IACzG,4GAA4G;CAC7G,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,iFAAiF;IACjF,yIAAyI;CAC1I,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC1B,kGAAkG;IAClG,8FAA8F;CAC/F,CAAC;AAEF,MAAM,cAAc,GAA6B;IAC/C,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,mBAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,mBAAmB,GAAG;IAC1B,GAAG,mBAAW;IACd,yPAAyP;IACzP,wNAAwN;CACzN,CAAC;AAEF,qFAAqF;AACrF,MAAM,aAAa,GAA6B;IAC9C,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,mBAAmB;CAC3B,CAAC;AACF,MAAM,eAAe,GAAiD;IACpE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,+BAAgB,EAAC,EAAE,CAAC;IACtC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,oCAAqB,EAAC,EAAE,CAAC;IACzC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAoB,GAAE;CACpC,CAAC;AAEF,qEAAqE;AACxD,QAAA,MAAM,GAA0B;IAC3C,KAAK,EAAE;QACL,OAAO,EAAE,6DAA6D;QACtE,KAAK,EAAE;YACL,iEAAiE;YACjE,yFAAyF;YACzF,8FAA8F;YAC9F,iHAAiH;YACjH,4HAA4H;SAC7H;QACD,WAAW,EAAE,gBAAgB;KAC9B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,wEAAwE;QACjF,KAAK,EAAE;YACL,0HAA0H;YAC1H,8EAA8E;YAC9E,6GAA6G;YAC7G,0FAA0F;SAC3F;QACD,WAAW,EAAE,iCAAiC;KAC/C;CACF,CAAC;AAEF,wFAAwF;AACxF,SAAgB,UAAU,CAAC,UAAkB,EAAE,SAAqC;IAClF,OAAO,CAAC,SAAS,IAAI,qBAAS,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAeD,qEAAqE;AACrE,SAAS,cAAc,CAAC,UAAkB;IACxC,mFAAmF;IACnF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,IAAI,KAAK,EAAE,CAAC;QACV,sEAAsE;QACtE,wEAAwE;QACxE,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,wBAAwB,IAAI,wBAAwB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5F,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QACvC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7D,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kCAAgB,CAAC,CAAC;IAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,oBAAoB,GAAG,EAAE;aAC9B,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,SAA2C;IAE3C,MAAM,CAAC,GAAG,IAAA,uBAAK,EAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,cAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAA,4BAAU,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,wBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAa,EAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAuB,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;IACtE,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,QAAQ,GACZ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7D,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,6BAAc,CAAC;IACjD,OAAO,CAAC,aAAa,GAAG,IAAA,4BAAU,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC;IAEhE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,QAAQ;YACR,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO;YACP,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,QAAQ;QACR,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACrC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;QACxC,QAAQ,EACN,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC;YAClC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACnB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC3C,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7E,OAAO;QACP,WAAW,EAAE,4BAA4B,QAAQ,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,+EAA+E;AAClE,QAAA,KAAK,GAAG,CAAC,GAAG,qBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,CAAC,CAAC;AAE7E,yEAAyE;AACzE,MAAM,SAAS,GAAG;IAChB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,GAAG,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC;CACvB,CAAC;AAEF,0EAA0E;AAC1E,SAAgB,QAAQ,CAAC,UAAkB,EAAE,MAAoB;IAC/D,OAAO,CAAC,GAAG,IAAA,wBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU;QACR,mCAAmC,aAAK,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B;QAChF,0EAA0E;QAC1E,wEAAwE;QACxE,6EAA6E;QAC7E,mCAAmC,CACtC,CAAC;AACJ,CAAC;AAED,SAAgB,IAAI,CAAC,IAAc,EAAE,SAA2C;IAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAChD,MAAM,EAAE,GAAY,IAAA,eAAO,EAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE1C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,YAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,KAAK,EAAE,CAAC;QACtB,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACnB,IAAA,mBAAK,EAAC,mBAAmB,EAAE,8CAA8C,EAAE;gBACzE,GAAG,EAAE,eAAe,aAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACxC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACnB,IAAA,mBAAK,EAAC,kBAAkB,EAAE,qBAAqB,QAAQ,GAAG,EAAE;gBAC1D,MAAM,EAAE,QAAQ;gBAChB,GAAG,EAAE,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC5C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,aAAa,GAAG,GAAG,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC;IACf,IAAI,CAAC;QACH,UAAU,GAAG,IAAA,gCAAiB,EAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACnB,IAAA,mBAAK,EAAC,mBAAmB,EAAE,IAAA,0BAAY,EAAC,GAAG,CAAC,EAAE;gBAC5C,GAAG,EAAE,+DAA+D;aACrE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,+BAAa,EAAC,UAAU,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAA,mBAAK,EACH,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAC1D,GAAG,CAAC,MAAM,KAAK,CAAC;gBACd,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,mDAAmD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACxE;gBACE,GAAG,EACD,GAAG,CAAC,MAAM,KAAK,CAAC;oBACd,CAAC,CAAC,uCAAuC;oBACzC,CAAC,CAAC,gCAAgC,QAAQ,cAAc;aAC7D,CACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAA,mBAAK,EAAC,kBAAkB,EAAE,WAAW,QAAQ,mBAAmB,EAAE;gBAChE,MAAM,EAAE,QAAQ;gBAChB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;aAC3F,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,IAAA,4BAAU,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;YACnB,IAAA,mBAAK,EAAC,kBAAkB,EAAE,qBAAqB,QAAQ,GAAG,EAAE;gBAC1D,MAAM,EAAE,QAAQ;gBAChB,GAAG,EAAE,4BAA4B,IAAA,4BAAU,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,MAAM,IAAI,aAAa,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACtI,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClF,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,YAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,GAAiB;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAClD,IAAI,GAAG,CAAC,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,UAAU;QAAE,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,UAAU,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9E,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzF,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,CACN,GAAG,CAAC,QAAQ;aACT,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|