@jevitate/cli 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anchor-baselines.d.ts +26 -0
- package/dist/anchor-baselines.js +25 -0
- package/dist/anchor-baselines.js.map +1 -0
- package/dist/approval-provenance.d.ts +32 -2
- package/dist/approval-provenance.js +92 -5
- package/dist/approval-provenance.js.map +1 -1
- package/dist/approved-demo.d.ts +86 -0
- package/dist/approved-demo.js +184 -0
- package/dist/approved-demo.js.map +1 -0
- package/dist/bin.js +13352 -7050
- package/dist/build-info.generated.js +2 -2
- package/dist/campaign-api.d.ts +15 -0
- package/dist/campaign-api.js +67 -6
- package/dist/campaign-api.js.map +1 -1
- package/dist/campaign-cli.js +7 -2
- package/dist/campaign-cli.js.map +1 -1
- package/dist/campaign-preflight.d.ts +76 -0
- package/dist/campaign-preflight.js +117 -0
- package/dist/campaign-preflight.js.map +1 -0
- package/dist/catalog-analysis.js +14 -0
- package/dist/catalog-analysis.js.map +1 -1
- package/dist/catalog-api.js +12 -4
- package/dist/catalog-api.js.map +1 -1
- package/dist/catalog-bundle-api.d.ts +83 -0
- package/dist/catalog-bundle-api.js +309 -0
- package/dist/catalog-bundle-api.js.map +1 -0
- package/dist/catalog-bundle-findings.d.ts +64 -0
- package/dist/catalog-bundle-findings.js +326 -0
- package/dist/catalog-bundle-findings.js.map +1 -0
- package/dist/catalog-bundle.d.ts +296 -0
- package/dist/catalog-bundle.js +777 -0
- package/dist/catalog-bundle.js.map +1 -0
- package/dist/catalog-cli.d.ts +6 -0
- package/dist/catalog-cli.js +181 -5
- package/dist/catalog-cli.js.map +1 -1
- package/dist/catalog-refs.d.ts +42 -0
- package/dist/catalog-refs.js +188 -0
- package/dist/catalog-refs.js.map +1 -0
- package/dist/catalog-review.d.ts +3 -1
- package/dist/catalog-review.js +61 -0
- package/dist/catalog-review.js.map +1 -1
- package/dist/catalog.d.ts +27 -3
- package/dist/catalog.js +46 -2
- package/dist/catalog.js.map +1 -1
- package/dist/check-api.js +180 -9
- package/dist/check-api.js.map +1 -1
- package/dist/check-cli.d.ts +2 -0
- package/dist/check-cli.js +96 -2
- package/dist/check-cli.js.map +1 -1
- package/dist/check-execute.d.ts +18 -0
- package/dist/check-execute.js +56 -3
- package/dist/check-execute.js.map +1 -1
- package/dist/check-types.d.ts +105 -0
- package/dist/check-types.js.map +1 -1
- package/dist/cli-output.d.ts +6 -0
- package/dist/cli-output.js +38 -1
- package/dist/cli-output.js.map +1 -1
- package/dist/cli-shared.d.ts +10 -0
- package/dist/cli-shared.js +0 -4
- package/dist/cli-shared.js.map +1 -1
- package/dist/cold-start-report.d.ts +32 -0
- package/dist/cold-start-report.js +31 -0
- package/dist/cold-start-report.js.map +1 -0
- package/dist/defect-evidence.js +10 -5
- package/dist/defect-evidence.js.map +1 -1
- package/dist/demo-aspect-api.d.ts +11 -0
- package/dist/demo-aspect-api.js +27 -2
- package/dist/demo-aspect-api.js.map +1 -1
- package/dist/demo-aspect-cli.js +5 -0
- package/dist/demo-aspect-cli.js.map +1 -1
- package/dist/demo-capture.d.ts +79 -2
- package/dist/demo-capture.js +504 -12
- package/dist/demo-capture.js.map +1 -1
- package/dist/environments.d.ts +8 -1
- package/dist/environments.js +14 -3
- package/dist/environments.js.map +1 -1
- package/dist/exit-codes.js +16 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/explore-adversarial.js +2 -2
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-shared.d.ts +11 -0
- package/dist/explore-shared.js +9 -0
- package/dist/explore-shared.js.map +1 -1
- package/dist/findings-filing.js +7 -3
- package/dist/findings-filing.js.map +1 -1
- package/dist/forge-verify.d.ts +224 -0
- package/dist/forge-verify.js +649 -0
- package/dist/forge-verify.js.map +1 -0
- package/dist/github-issue-filer.js +15 -9
- package/dist/github-issue-filer.js.map +1 -1
- package/dist/init-codeowners.d.ts +19 -0
- package/dist/init-codeowners.js +66 -0
- package/dist/init-codeowners.js.map +1 -1
- package/dist/job-draft-api.d.ts +52 -0
- package/dist/job-draft-api.js +110 -0
- package/dist/job-draft-api.js.map +1 -0
- package/dist/journeeze-api.d.ts +77 -0
- package/dist/journeeze-api.js +371 -0
- package/dist/journeeze-api.js.map +1 -0
- package/dist/journeeze-connect.d.ts +156 -0
- package/dist/journeeze-connect.js +357 -0
- package/dist/journeeze-connect.js.map +1 -0
- package/dist/journey-anchor-api.d.ts +37 -0
- package/dist/journey-anchor-api.js +58 -0
- package/dist/journey-anchor-api.js.map +1 -0
- package/dist/journey-anchor-cli.d.ts +17 -0
- package/dist/journey-anchor-cli.js +104 -0
- package/dist/journey-anchor-cli.js.map +1 -0
- package/dist/journey-anchor-gate.d.ts +52 -0
- package/dist/journey-anchor-gate.js +101 -0
- package/dist/journey-anchor-gate.js.map +1 -0
- package/dist/journey-api.d.ts +30 -1
- package/dist/journey-api.js +118 -16
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.js +93 -10
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-demo-api.d.ts +29 -0
- package/dist/journey-demo-api.js +29 -7
- package/dist/journey-demo-api.js.map +1 -1
- package/dist/journey-heal.js +1 -1
- package/dist/journey-heal.js.map +1 -1
- package/dist/journey-lint-sarif.d.ts +3 -2
- package/dist/journey-lint-sarif.js +11 -2
- package/dist/journey-lint-sarif.js.map +1 -1
- package/dist/journey-migrate-api.d.ts +54 -0
- package/dist/journey-migrate-api.js +64 -0
- package/dist/journey-migrate-api.js.map +1 -0
- package/dist/journey-network-checks.d.ts +11 -0
- package/dist/journey-network-checks.js +36 -13
- package/dist/journey-network-checks.js.map +1 -1
- package/dist/journey-proposal-store.d.ts +9 -0
- package/dist/journey-proposal-store.js +23 -0
- package/dist/journey-proposal-store.js.map +1 -1
- package/dist/journey-result-record.d.ts +2 -0
- package/dist/journey-result-record.js +5 -0
- package/dist/journey-result-record.js.map +1 -1
- package/dist/journey-review-api.js +9 -1
- package/dist/journey-review-api.js.map +1 -1
- package/dist/journey-review.d.ts +11 -1
- package/dist/journey-review.js +77 -5
- package/dist/journey-review.js.map +1 -1
- package/dist/journey-stale-api.d.ts +40 -0
- package/dist/journey-stale-api.js +57 -0
- package/dist/journey-stale-api.js.map +1 -0
- package/dist/load-api.js +4 -2
- package/dist/load-api.js.map +1 -1
- package/dist/locator-health-api.d.ts +101 -0
- package/dist/locator-health-api.js +203 -0
- package/dist/locator-health-api.js.map +1 -0
- package/dist/locator-health.d.ts +195 -0
- package/dist/locator-health.js +419 -0
- package/dist/locator-health.js.map +1 -0
- package/dist/mcp-api.d.ts +3 -1
- package/dist/mcp-api.js +21 -2
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +4 -1
- package/dist/mcp-cli-tools.js +82 -10
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/openrouter-call.d.ts +23 -10
- package/dist/openrouter-call.js +14 -11
- package/dist/openrouter-call.js.map +1 -1
- package/dist/png-pixels.d.ts +12 -0
- package/dist/png-pixels.js +96 -0
- package/dist/png-pixels.js.map +1 -0
- package/dist/project-config.d.ts +29 -0
- package/dist/project-config.js +76 -0
- package/dist/project-config.js.map +1 -0
- package/dist/regression-api.js +2 -1
- package/dist/regression-api.js.map +1 -1
- package/dist/server-log-verify.js +2 -1
- package/dist/server-log-verify.js.map +1 -1
- package/dist/signal-triage.js +7 -3
- package/dist/signal-triage.js.map +1 -1
- package/dist/source-run-api.js +2 -2
- package/dist/source-run-api.js.map +1 -1
- package/dist/verify-fix-api.d.ts +29 -0
- package/dist/verify-fix-api.js +43 -2
- package/dist/verify-fix-api.js.map +1 -1
- package/dist/verify-fix-cli.js +4 -0
- package/dist/verify-fix-cli.js.map +1 -1
- package/dist/zip-store.d.ts +15 -0
- package/dist/zip-store.js +93 -0
- package/dist/zip-store.js.map +1 -0
- package/package.json +12 -10
- package/skills/jevitate-ci-check/SKILL.md +16 -0
- package/skills/jevitate-demo/SKILL.md +4 -1
- package/skills/jevitate-getting-started/SKILL.md +7 -2
- package/skills/jevitate-run-journey/SKILL.md +15 -0
- package/skills/jevitate-test-campaign/SKILL.md +26 -0
- package/skills/jevitate-verify-fix/SKILL.md +5 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { BrokenJobRefsError, findJob, journeysForJob } from "./catalog.js";
|
|
2
|
+
/**
|
|
3
|
+
* #465 — the catalog's reference checks (jtbd-data-model §7.4, catalog-bundle-v1 §9.5). Within a
|
|
4
|
+
* job: step ids are unique, an outcome's `step` is a step of the job, outcome ids are unique, a
|
|
5
|
+
* metric's `from`/`to`/`at` is `job_start`/`job_end` or an anchor some Journey linked to the job
|
|
6
|
+
* declares, a target's unit fits its metric, and `parent` names a declared job with no cycle. On a
|
|
7
|
+
* Journey: `serves[]` names desired outcomes of its own job, and an anchor's `jobStep` a step of it.
|
|
8
|
+
*
|
|
9
|
+
* Severity (#466 ruling): a problem in the data as loaded is a `warning` — nothing here blocks a
|
|
10
|
+
* load, a run, `catalog status` or a review sheet. An approval enforces (`enforce: true`): the
|
|
11
|
+
* STRUCTURAL problems — the ones a catalog bundle refuses — become `error`s, and `job approve`
|
|
12
|
+
* refuses a job that has one (`assertJobRefs`, E_JOB_BROKEN_REF, exit 64). Gaps (an unmeasurable
|
|
13
|
+
* metric, a target unit that does not fit) stay warnings: the spec calls them gaps, not errors.
|
|
14
|
+
* A Journey linking an undeclared job is the dangling-link report's, not checked here.
|
|
15
|
+
*/
|
|
16
|
+
export { BrokenJobRefsError };
|
|
17
|
+
/** The anchors every job has: the start and the end of the job itself. */
|
|
18
|
+
export const RESERVED_ANCHORS = ["job_start", "job_end"];
|
|
19
|
+
/** The problems a catalog bundle refuses (catalog-bundle-v1 §9.5); the others are gaps. */
|
|
20
|
+
export const STRUCTURAL_REF_CODES = new Set([
|
|
21
|
+
"job.duplicate-step",
|
|
22
|
+
"job.unknown-outcome-step",
|
|
23
|
+
"job.duplicate-outcome",
|
|
24
|
+
"job.unknown-parent",
|
|
25
|
+
"job.parent-cycle",
|
|
26
|
+
"journey.unknown-serves",
|
|
27
|
+
"journey.serves-without-job",
|
|
28
|
+
"journey.unknown-job-step",
|
|
29
|
+
"journey.job-step-without-job",
|
|
30
|
+
]);
|
|
31
|
+
function issue(owner, path, code, message, fix, opts) {
|
|
32
|
+
const structural = STRUCTURAL_REF_CODES.has(code);
|
|
33
|
+
return { ...owner, path, code, structural, severity: structural && opts.enforce === true ? "error" : "warning", message, fix };
|
|
34
|
+
}
|
|
35
|
+
const list = (ids) => (ids.length === 0 ? "none" : ids.join(", "));
|
|
36
|
+
/** The units a target can have for a metric (a duration's percentile is seconds; a share is a percent). */
|
|
37
|
+
function unitsFor(m) {
|
|
38
|
+
if (m.kind === "duration")
|
|
39
|
+
return m.stat === "share_under" ? ["percent"] : ["s"];
|
|
40
|
+
if (m.kind === "error")
|
|
41
|
+
return ["count", "percent"];
|
|
42
|
+
return ["percent"];
|
|
43
|
+
}
|
|
44
|
+
function metricAnchors(m) {
|
|
45
|
+
if (m.kind === "duration" || m.kind === "completion")
|
|
46
|
+
return [["from", m.from], ["to", m.to]];
|
|
47
|
+
if (m.kind === "answer")
|
|
48
|
+
return [];
|
|
49
|
+
return [["at", m.at]];
|
|
50
|
+
}
|
|
51
|
+
/** The anchor names the Journeys linked to a job declare. */
|
|
52
|
+
export function jobAnchorNames(catalog, jobId) {
|
|
53
|
+
return new Set(journeysForJob(catalog, jobId).flatMap((j) => (j.journey.metadata.anchors ?? []).map((a) => a.name)));
|
|
54
|
+
}
|
|
55
|
+
function parentCycle(catalog, start) {
|
|
56
|
+
const seen = new Set([start.id]);
|
|
57
|
+
let next = start.job.parent;
|
|
58
|
+
while (next !== undefined) {
|
|
59
|
+
if (next === start.id)
|
|
60
|
+
return true;
|
|
61
|
+
if (seen.has(next))
|
|
62
|
+
return false; // a cycle further up, not through this job
|
|
63
|
+
seen.add(next);
|
|
64
|
+
next = findJob(catalog, next)?.job.parent;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
/** #465: the reference problems of one job (its own fields; a Journey's are `journeyRefIssues`). */
|
|
69
|
+
export function jobRefIssues(catalog, jobId, opts = {}) {
|
|
70
|
+
const cj = findJob(catalog, jobId);
|
|
71
|
+
if (cj === undefined)
|
|
72
|
+
return [];
|
|
73
|
+
const { job } = cj;
|
|
74
|
+
const owner = { jobId };
|
|
75
|
+
const out = [];
|
|
76
|
+
const steps = job.steps ?? [];
|
|
77
|
+
const stepIds = steps.map((s) => s.id);
|
|
78
|
+
steps.forEach((s, i) => {
|
|
79
|
+
if (stepIds.indexOf(s.id) !== i)
|
|
80
|
+
out.push(issue(owner, `steps[${i}].id`, "job.duplicate-step", `step id '${s.id}' is declared twice`, "give each step its own id", opts));
|
|
81
|
+
});
|
|
82
|
+
const outcomes = job.desiredOutcomes ?? [];
|
|
83
|
+
const outcomeIds = outcomes.map((o) => o.id);
|
|
84
|
+
const anchors = jobAnchorNames(catalog, jobId);
|
|
85
|
+
outcomes.forEach((o, i) => {
|
|
86
|
+
const at = `desiredOutcomes[${i}]`;
|
|
87
|
+
if (outcomeIds.indexOf(o.id) !== i)
|
|
88
|
+
out.push(issue(owner, `${at}.id`, "job.duplicate-outcome", `desired outcome id '${o.id}' is declared twice`, "give each desired outcome its own id", opts));
|
|
89
|
+
if (o.step !== undefined && !stepIds.includes(o.step)) {
|
|
90
|
+
out.push(issue(owner, `${at}.step`, "job.unknown-outcome-step", `desired outcome '${o.id}' names step '${o.step}', which is not a step of job '${jobId}' (steps: ${list(stepIds)})`, "name one of the job's step ids, or leave `step` out (the whole job)", opts));
|
|
91
|
+
}
|
|
92
|
+
if (o.metric === undefined)
|
|
93
|
+
return;
|
|
94
|
+
for (const [field, name] of metricAnchors(o.metric)) {
|
|
95
|
+
if (RESERVED_ANCHORS.includes(name) || anchors.has(name))
|
|
96
|
+
continue;
|
|
97
|
+
out.push(issue(owner, `${at}.metric.${field}`, "job.unmeasurable-metric", `desired outcome '${o.id}': metric ${field} '${name}' is an anchor no Journey of job '${jobId}' declares — unmeasurable until one does`, `add an anchor named '${name}' to a Journey linked to '${jobId}', or use job_start / job_end`, opts));
|
|
98
|
+
}
|
|
99
|
+
if (o.target !== undefined) {
|
|
100
|
+
const units = unitsFor(o.metric);
|
|
101
|
+
if (!units.includes(o.target.unit)) {
|
|
102
|
+
out.push(issue(owner, `${at}.target.unit`, "job.target-unit-mismatch", `desired outcome '${o.id}': a ${o.metric.kind} metric is measured in ${units.join(" or ")}, not ${o.target.unit}`, `set target.unit to ${units.join(" or ")}`, opts));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
if (job.parent !== undefined) {
|
|
107
|
+
if (findJob(catalog, job.parent) === undefined) {
|
|
108
|
+
out.push(issue(owner, "parent", "job.unknown-parent", `parent '${job.parent}' is not a declared job`, "name a job in jobs.json, or leave `parent` out", opts));
|
|
109
|
+
}
|
|
110
|
+
else if (parentCycle(catalog, cj)) {
|
|
111
|
+
out.push(issue(owner, "parent", "job.parent-cycle", `parent '${job.parent}' leads back to job '${jobId}' (a parent cycle)`, "break the cycle: a job cannot be its own ancestor", opts));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return out;
|
|
115
|
+
}
|
|
116
|
+
/** #465: the reference problems of one Journey (`serves`, anchors' `jobStep`). */
|
|
117
|
+
export function journeyRefIssues(catalog, j, opts = {}) {
|
|
118
|
+
const m = j.journey.metadata;
|
|
119
|
+
const owner = { journeyId: j.id };
|
|
120
|
+
const out = [];
|
|
121
|
+
const anchors = m.anchors ?? [];
|
|
122
|
+
if (j.job === undefined) {
|
|
123
|
+
if (m.serves !== undefined && m.serves.length > 0) {
|
|
124
|
+
out.push(issue(owner, "metadata.serves", "journey.serves-without-job", `serves ${list(m.serves)}, but the Journey links no job (metadata.job)`, "link the job whose outcomes it serves, or remove `serves`", opts));
|
|
125
|
+
}
|
|
126
|
+
anchors.forEach((a, i) => {
|
|
127
|
+
if (a.jobStep !== undefined) {
|
|
128
|
+
out.push(issue(owner, `metadata.anchors[${i}].jobStep`, "journey.job-step-without-job", `anchor '${a.name}' names job step '${a.jobStep}', but the Journey links no job`, "link the job (metadata.job), or remove the anchor's jobStep", opts));
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
133
|
+
const job = findJob(catalog, j.job);
|
|
134
|
+
if (job === undefined)
|
|
135
|
+
return out; // a dangling job link: `catalog status` reports it
|
|
136
|
+
const outcomeIds = (job.job.desiredOutcomes ?? []).map((o) => o.id);
|
|
137
|
+
const stepIds = (job.job.steps ?? []).map((s) => s.id);
|
|
138
|
+
(m.serves ?? []).forEach((id, i) => {
|
|
139
|
+
if (!outcomeIds.includes(id)) {
|
|
140
|
+
out.push(issue(owner, `metadata.serves[${i}]`, "journey.unknown-serves", `serves '${id}', which is not a desired outcome of job '${job.id}' (outcomes: ${list(outcomeIds)})`, "name one of the job's desired outcome ids", opts));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
anchors.forEach((a, i) => {
|
|
144
|
+
if (a.jobStep !== undefined && !stepIds.includes(a.jobStep)) {
|
|
145
|
+
out.push(issue(owner, `metadata.anchors[${i}].jobStep`, "journey.unknown-job-step", `anchor '${a.name}' names job step '${a.jobStep}', which is not a step of job '${job.id}' (steps: ${list(stepIds)})`, "name one of the job's step ids", opts));
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
150
|
+
/** #465: every reference problem in the catalog — the jobs' (in file order), then the Journeys'. */
|
|
151
|
+
export function catalogRefIssues(catalog, opts = {}) {
|
|
152
|
+
return [...catalog.jobs.flatMap((j) => jobRefIssues(catalog, j.id, opts)), ...catalog.journeys.flatMap((j) => journeyRefIssues(catalog, j, opts))];
|
|
153
|
+
}
|
|
154
|
+
/** #465: the problems a job review sheet shows — the job's own, then those of the Journeys linked to it. */
|
|
155
|
+
export function jobSheetRefIssues(catalog, jobId) {
|
|
156
|
+
return [...jobRefIssues(catalog, jobId), ...journeysForJob(catalog, jobId).flatMap((j) => journeyRefIssues(catalog, j))];
|
|
157
|
+
}
|
|
158
|
+
/** One issue as one line: `job invite · steps[2].id: step id 'send' is declared twice — fix: …`. */
|
|
159
|
+
export function describeRefIssue(i) {
|
|
160
|
+
const who = i.jobId !== undefined ? `job ${i.jobId}` : `journey ${i.journeyId ?? "?"}`;
|
|
161
|
+
return `${who} · ${i.path}: ${i.message}${i.fix === undefined ? "" : ` — fix: ${i.fix}`}`;
|
|
162
|
+
}
|
|
163
|
+
/** #465: refuses approving a job whose own references are structurally broken (gaps pass). */
|
|
164
|
+
export function assertJobRefs(catalog, jobId) {
|
|
165
|
+
const errors = jobRefIssues(catalog, jobId, { enforce: true }).filter((i) => i.severity === "error");
|
|
166
|
+
if (errors.length === 0)
|
|
167
|
+
return;
|
|
168
|
+
throw new BrokenJobRefsError(`job '${jobId}' has ${errors.length} broken reference(s), so it cannot be approved: ${errors.map(describeRefIssue).join("; ")} — fix the jobs file, then review it again (jevitate job review ${jobId})`, errors);
|
|
169
|
+
}
|
|
170
|
+
function characteristicOf(i) {
|
|
171
|
+
if (i.code === "job.unmeasurable-metric")
|
|
172
|
+
return "able to be validated";
|
|
173
|
+
return "consistent";
|
|
174
|
+
}
|
|
175
|
+
/** #465: reference problems as catalog-analysis findings (warnings; never an acknowledgment). */
|
|
176
|
+
export function refIssueFindings(issues, analyzer = "catalog-analysis") {
|
|
177
|
+
return issues.map((i) => ({
|
|
178
|
+
analyzer,
|
|
179
|
+
code: `ref.${i.code}:${i.jobId ?? i.journeyId ?? ""}:${i.path}`,
|
|
180
|
+
severity: "warn",
|
|
181
|
+
message: `${i.jobId !== undefined ? `job '${i.jobId}'` : `journey '${i.journeyId ?? ""}'`} ${i.path}: ${i.message}`,
|
|
182
|
+
...(i.fix === undefined ? {} : { fix: i.fix }),
|
|
183
|
+
requiresAcknowledgment: false,
|
|
184
|
+
items: [i.jobId !== undefined ? `job:${i.jobId}` : `journey:${i.journeyId ?? ""}`],
|
|
185
|
+
characteristic: characteristicOf(i),
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=catalog-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-refs.js","sourceRoot":"","sources":["../src/catalog-refs.ts"],"names":[],"mappings":"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"}
|
package/dist/catalog-review.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CatalogStatusReport, type Finding, type JobReview, type PersonaReview } from "@jevitate/journey";
|
|
1
|
+
import { type CatalogStatusReport, type DesiredOutcome, type Finding, type JobReview, type PersonaReview } from "@jevitate/journey";
|
|
2
2
|
import { type Catalog } from "./catalog.js";
|
|
3
3
|
import { type ApprovalAction } from "./pre-approval.js";
|
|
4
4
|
import { type JevSetup } from "./jev-advisor.js";
|
|
@@ -25,5 +25,7 @@ export declare function renderAnalysisGroups(findings: readonly Finding[], style
|
|
|
25
25
|
export declare function renderFindings(findings: readonly Finding[], style: Style): string[];
|
|
26
26
|
export declare function renderPersonaReview(r: PersonaReview, style: Style): string;
|
|
27
27
|
export declare function renderJobReview(r: JobReview, style: Style): string;
|
|
28
|
+
/** #465: a metric in words: `duration p50 from a to b`, `abandon at x`, `answer got_it_done = yes`. */
|
|
29
|
+
export declare function describeMetric(m: NonNullable<DesiredOutcome["metric"]>): string;
|
|
28
30
|
export declare function renderCatalogStatus(r: CatalogStatusReport): string;
|
|
29
31
|
export {};
|
package/dist/catalog-review.js
CHANGED
|
@@ -2,6 +2,7 @@ import { describeProvenance } from "./approval-provenance.js";
|
|
|
2
2
|
import { CatalogStatusSchema, GTWR_SET_CHARACTERISTICS, JobReviewSchema, PersonaReviewSchema, } from "@jevitate/journey";
|
|
3
3
|
import { journeyLinks, journeysForJob, journeysForPersona, personaLinkId, requireJob, requirePersona } from "./catalog.js";
|
|
4
4
|
import { preApprovalFindings } from "./pre-approval.js";
|
|
5
|
+
import { catalogRefIssues, describeRefIssue, jobSheetRefIssues } from "./catalog-refs.js";
|
|
5
6
|
import { jevLayerOf } from "./jev-advisor.js";
|
|
6
7
|
function sheetCtx(action, opts) {
|
|
7
8
|
return { action, ...(opts.readiness === true ? { readiness: true } : {}), ...(opts.jev === undefined ? {} : { jev: opts.jev }) };
|
|
@@ -64,8 +65,16 @@ export async function buildJobReview(catalog, id, action = "review", opts = {})
|
|
|
64
65
|
...(opts.jev === undefined ? {} : { jev: jevLayerOf(opts.jev) }),
|
|
65
66
|
...(job.approval === undefined ? {} : { approval: job.approval }),
|
|
66
67
|
contentHash: job.contentHash,
|
|
68
|
+
...jtbdFields(job.job),
|
|
69
|
+
refIssues: jobSheetRefIssues(catalog, id),
|
|
67
70
|
});
|
|
68
71
|
}
|
|
72
|
+
/** #465: the job's jtbd fields as written, each only when present. */
|
|
73
|
+
function jtbdFields(job) {
|
|
74
|
+
const { kind, parent, context, steps, desiredOutcomes, constraints, provenance, revision, lastValidated, extensions } = job;
|
|
75
|
+
const all = { kind, parent, context, steps, desiredOutcomes, constraints, provenance, revision, lastValidated, extensions };
|
|
76
|
+
return Object.fromEntries(Object.entries(all).filter(([, v]) => v !== undefined));
|
|
77
|
+
}
|
|
69
78
|
/** #433: `catalog status` — the jobs × personas matrix, gaps, unlinked Journeys, dangling links, stale approvals. */
|
|
70
79
|
export function buildCatalogStatus(catalog) {
|
|
71
80
|
const personaIds = catalog.personas.map((p) => p.id);
|
|
@@ -113,6 +122,7 @@ export function buildCatalogStatus(catalog) {
|
|
|
113
122
|
danglingLinks,
|
|
114
123
|
stale,
|
|
115
124
|
files: { personas: catalog.personasFile, jobs: catalog.jobsFile },
|
|
125
|
+
refIssues: catalogRefIssues(catalog),
|
|
116
126
|
});
|
|
117
127
|
}
|
|
118
128
|
function helpers(style) {
|
|
@@ -237,6 +247,7 @@ export function renderJobReview(r, style) {
|
|
|
237
247
|
li(`Outcome (so I can): ${r.outcome}`),
|
|
238
248
|
...(r.priority === undefined ? [] : [li(`Priority: ${r.priority}`)]),
|
|
239
249
|
"",
|
|
250
|
+
...renderJobMap(r, style),
|
|
240
251
|
h2("Personas"),
|
|
241
252
|
"",
|
|
242
253
|
...(r.personas.length === 0
|
|
@@ -253,6 +264,7 @@ export function renderJobReview(r, style) {
|
|
|
253
264
|
? [li(em("none"))]
|
|
254
265
|
: r.journeys.map((j) => li(`${code(j.id)} — ${j.name}${j.persona === undefined ? "" : ` as ${j.persona}`} (${j.promoted ? "promoted" : "not promoted"})${j.needsReReview ? " — needs re-review" : ""}`))),
|
|
255
266
|
"",
|
|
267
|
+
...renderRefIssues(r.refIssues, style, "approving refuses a job with a structural problem (E_JOB_BROKEN_REF); the others are gaps"),
|
|
256
268
|
...renderFindings(r.findings, style),
|
|
257
269
|
"",
|
|
258
270
|
h2("Approve"),
|
|
@@ -261,6 +273,54 @@ export function renderJobReview(r, style) {
|
|
|
261
273
|
];
|
|
262
274
|
return finish(out);
|
|
263
275
|
}
|
|
276
|
+
/** #465: a metric in words: `duration p50 from a to b`, `abandon at x`, `answer got_it_done = yes`. */
|
|
277
|
+
export function describeMetric(m) {
|
|
278
|
+
if (m.kind === "duration")
|
|
279
|
+
return `duration ${m.stat}${m.threshold === undefined ? "" : ` ${m.threshold}s`} from ${m.from} to ${m.to}`;
|
|
280
|
+
if (m.kind === "completion")
|
|
281
|
+
return `completion from ${m.from} to ${m.to}`;
|
|
282
|
+
if (m.kind === "answer")
|
|
283
|
+
return `answer ${m.question} = ${m.value}`;
|
|
284
|
+
return `${m.kind} at ${m.at}`;
|
|
285
|
+
}
|
|
286
|
+
function outcomeLine(o, code) {
|
|
287
|
+
return [
|
|
288
|
+
`${code(o.id)}${o.guardrail === true ? " GUARDRAIL (must never get worse)" : ""}: ${o.direction} ${o.measure} — ${o.object}`,
|
|
289
|
+
o.clarifier === undefined ? "" : ` (${o.clarifier})`,
|
|
290
|
+
o.step === undefined ? " · whole job" : ` · step ${code(o.step)}`,
|
|
291
|
+
o.metric === undefined ? " · no metric" : ` · metric: ${describeMetric(o.metric)}`,
|
|
292
|
+
o.target === undefined ? "" : ` · target ${o.target.op} ${o.target.value} ${o.target.unit}`,
|
|
293
|
+
o.gulf === undefined ? "" : ` · gulf: ${o.gulf}`,
|
|
294
|
+
o.priority === undefined ? "" : ` · priority: ${o.priority}`,
|
|
295
|
+
].join("");
|
|
296
|
+
}
|
|
297
|
+
/** #465: the job map — kind, parent, context, steps, desired outcomes, constraints, provenance, extensions (only what the job has). */
|
|
298
|
+
function renderJobMap(r, style) {
|
|
299
|
+
const { h2, li, code } = helpers(style);
|
|
300
|
+
const about = [
|
|
301
|
+
...(r.kind === undefined ? [] : [li(`Kind: ${r.kind}`)]),
|
|
302
|
+
...(r.parent === undefined ? [] : [li(`Parent job: ${code(r.parent)}`)]),
|
|
303
|
+
...(r.context === undefined ? [] : [li(`Context: ${r.context.join("; ")}`)]),
|
|
304
|
+
...(r.provenance === undefined ? [] : [li(`Provenance: ${r.provenance}`)]),
|
|
305
|
+
...(r.revision === undefined ? [] : [li(`Revision: ${r.revision}`)]),
|
|
306
|
+
...(r.lastValidated === undefined ? [] : [li(`Last validated: ${r.lastValidated}`)]),
|
|
307
|
+
];
|
|
308
|
+
const section = (title, lines) => (lines.length === 0 ? [] : [h2(title), "", ...lines, ""]);
|
|
309
|
+
return [
|
|
310
|
+
...section("About the job", about),
|
|
311
|
+
...section("Job steps", (r.steps ?? []).map((st) => li(`${code(st.id)} — ${st.name}${st.stage === undefined ? "" : ` (${st.stage})`}`))),
|
|
312
|
+
...section("Desired outcomes", (r.desiredOutcomes ?? []).map((o) => li(outcomeLine(o, code)))),
|
|
313
|
+
...section("Constraints", (r.constraints ?? []).map((c) => li(c))),
|
|
314
|
+
...section("Extensions", Object.entries(r.extensions ?? {}).map(([ns, v]) => li(`${ns}: ${JSON.stringify(v)}`))),
|
|
315
|
+
];
|
|
316
|
+
}
|
|
317
|
+
/** #465: the reference checks section (only when there are problems). */
|
|
318
|
+
function renderRefIssues(issues, style, note) {
|
|
319
|
+
const { h2, li } = helpers(style);
|
|
320
|
+
if (issues === undefined || issues.length === 0)
|
|
321
|
+
return [];
|
|
322
|
+
return [h2("Reference checks"), "", ...issues.map((i) => li(`${i.severity}${i.structural ? " (structural)" : " (gap)"} ${describeRefIssue(i)}`)), "", note, ""];
|
|
323
|
+
}
|
|
264
324
|
const CELL = { "n/a": "·", promoted: "✓", draft: "draft", missing: "MISSING" };
|
|
265
325
|
export function renderCatalogStatus(r) {
|
|
266
326
|
const out = ["Catalog status", "=============="];
|
|
@@ -285,6 +345,7 @@ export function renderCatalogStatus(r) {
|
|
|
285
345
|
section("Journeys linked to nothing", r.unlinkedJourneys);
|
|
286
346
|
section("Dangling links", r.danglingLinks.map((d) => `journey ${d.journey} → ${d.kind} '${d.id}' (not declared)`));
|
|
287
347
|
section("Stale approvals (needs re-review)", r.stale.map((s) => `${s.kind} ${s.id}: ${s.reason}`));
|
|
348
|
+
section("Reference checks (warnings; a structural one refuses job approve)", (r.refIssues ?? []).map(describeRefIssue));
|
|
288
349
|
return `${out.join("\n")}\n`;
|
|
289
350
|
}
|
|
290
351
|
//# sourceMappingURL=catalog-review.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-review.js","sourceRoot":"","sources":["../src/catalog-review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog-review.js","sourceRoot":"","sources":["../src/catalog-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,mBAAmB,GAQpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAqC,MAAM,cAAc,CAAC;AAC9J,OAAO,EAAE,mBAAmB,EAAuB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAU7D,SAAS,QAAQ,CAAC,MAAsB,EAAE,IAAkB;IAC1D,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;AACnI,CAAC;AAED;;;;GAIG;AAEH,SAAS,UAAU,CAAC,OAAgB,EAAE,CAAiB;IACrD,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgB,EAAE,EAAU,EAAE,SAAyB,QAAQ,EAAE,OAAqB,EAAE;IAC/H,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACrG,OAAO,mBAAmB,CAAC,KAAK,CAAC;QAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACtE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,aAAa,EAAE,CAAC,CAAC,MAAM,KAAK,OAAO;QACnC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtH,QAAQ,EAAE,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5E,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,EAAU,EAAE,SAAyB,QAAQ,EAAE,OAAqB,EAAE;IAC3H,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACvE,OAAO;YACL,EAAE,EAAE,GAAG;YACP,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,IAAK,SAAmB;YAClF,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,KAAK,CAAC;QAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;QACxB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU;QAC9B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;QACxB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO;QACrC,QAAQ;QACR,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC,CAAC;QACF,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjE,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QACtB,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,sEAAsE;AACtE,SAAS,UAAU,CAAC,GAAQ;IAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IAC5H,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5H,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAuB,CAAC;AAC1G,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACvH,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,eAAe,CAAC,CAAC;IACpD,MAAM,IAAI,GAAuC,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAA4F,EAAE,CAAC;QAC1G,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC5C,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAChG,IAAI,KAAK,KAAK,UAAU;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAiC;QAC1C,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACjJ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACzI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;YACnD,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC,CAAC;KACH,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvC,OAAO;YACL,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAc,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACpH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC,KAAK,CAAC;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjL,MAAM;QACN,kCAAkC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClK,IAAI;QACJ,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,aAAa;QACb,KAAK;QACL,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE;QACjE,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAMD,SAAS,OAAO,CAAC,KAAY;IAC3B,MAAM,EAAE,GAAG,KAAK,KAAK,UAAU,CAAC;IAChC,OAAO;QACL,EAAE;QACF,IAAI,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,EAAE,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1F,EAAE,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,EAAE,EAAE,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,EAAE,EAAE,CAAC,CAAS,EAAE,KAAK,GAAG,CAAC,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;KACrF,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,oDAAoD,EAAE,OAAO,EAAE,uCAAuC,EAAW,CAAC;AAErM,SAAS,WAAW,CAAC,CAAU,EAAE,IAA2B;IAC1D,OAAO,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;AACrU,CAAC;AAED,kIAAkI;AAClI,MAAM,UAAU,oBAAoB,CAAC,QAA4B,EAAE,KAAY;IAC7E,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,cAAc,IAAI,wBAAwB,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,wBAA8C,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;IACxH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnG,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+GAA+G;AAC/G,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAC/C,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAA4B,EAAE,KAAY;IACvE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,EAAE,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,kBAAkB,IAAI,CAAC,CAAC,QAAQ,KAAK,sBAAsB,IAAI,CAAC,CAAC,QAAQ,KAAK,yBAAyB,CAAC,CAAC;IAC5J,MAAM,KAAK,GAAG,CAAC,EAAsB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzH,OAAO;QACL,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,EAAE,CAAC,WAAW,CAAC;gBACf,EAAE;gBACF,EAAE,CAAC,mEAAmE,CAAC;gBACvE,EAAE;gBACF,GAAG,KAAK,CAAC,SAAS,CAAC;gBACnB,EAAE;gBACF,EAAE,CAAC,iEAAiE,CAAC;gBACrE,EAAE;gBACF,GAAG,KAAK,CAAC,GAAG,CAAC;gBACb,EAAE;aACH,CAAC;QACN,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oDAAoD,CAAC,EAAE,EAAE,EAAE,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1I,EAAE,CAAC,uBAAuB,CAAC;QAC3B,EAAE;QACF,GAAG,KAAK,CAAC,IAAI,CAAC;QACd,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,2HAA2H,CAAC,CAAC;KACxK,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,GAAa;IAC3B,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAgB,EAAE,KAAY;IAChE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG;QACV,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,EAAE;QACF,iBAAiB,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;QACtC,WAAW,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE;QACxJ,EAAE;QACF,EAAE,CAAC,KAAK,CAAC;QACT,EAAE;QACF,EAAE,CAAC,gBAAgB,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/I,EAAE;QACF,EAAE,CAAC,gBAAgB,CAAC;QACpB,EAAE;QACF,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9G,EAAE;QACF,EAAE,CAAC,uBAAuB,CAAC;QAC3B,EAAE;QACF,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpM,EAAE;QACF,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;QACpC,EAAE;QACF,EAAE,CAAC,SAAS,CAAC;QACb,EAAE;QACF,iCAAiC,IAAI,CAAC,4BAA4B,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE;KAC7G,CAAC;IACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAY,EAAE,KAAY;IACxD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG;QACV,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC;QACzB,EAAE;QACF,iBAAiB,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;QACtC,WAAW,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE;QACxJ,EAAE;QACF,EAAE,CAAC,WAAW,CAAC;QACf,EAAE;QACF,CAAC,CAAC,KAAK;QACP,EAAE;QACF,EAAE,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;QAClC,EAAE,CAAC,2BAA2B,CAAC,CAAC,UAAU,EAAE,CAAC;QAC7C,EAAE,CAAC,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC;QACtC,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpE,EAAE;QACF,GAAG,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC;QACzB,EAAE,CAAC,UAAU,CAAC;QACd,EAAE;QACF,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACzR,EAAE;QACF,EAAE,CAAC,MAAM,CAAC;QACV,EAAE;QACF,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,uDAAuD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,mCAAmC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClK,EAAE;QACF,EAAE,CAAC,UAAU,CAAC;QACd,EAAE;QACF,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3M,EAAE;QACF,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,2FAA2F,CAAC;QACnI,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;QACpC,EAAE;QACF,EAAE,CAAC,SAAS,CAAC;QACb,EAAE;QACF,iCAAiC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE;KACzG,CAAC;IACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,cAAc,CAAC,CAAwC;IACrE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;IACvI,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,mBAAmB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3E,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IACpE,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,CAAiB,EAAE,IAA2B;IACjE,OAAO;QACL,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE;QAC5H,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG;QACpD,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACjE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;QAClF,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAC3F,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;QAChD,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;KAC7D,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,uIAAuI;AACvI,SAAS,YAAY,CAAC,CAAY,EAAE,KAAY;IAC9C,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1E,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpE,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;KACrF,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,KAAe,EAAY,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACxH,OAAO;QACL,GAAG,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;QAClC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACxI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9F,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACjH,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,eAAe,CAAC,MAA8C,EAAE,KAAY,EAAE,IAAY;IACjG,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAClK,CAAC;AAED,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAW,CAAC;AAExF,MAAM,UAAU,mBAAmB,CAAC,CAAsB;IACxD,MAAM,GAAG,GAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClH,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,oGAAoG,CAAC,CAAC;IACrH,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1H,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1G,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtF,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,iGAAiG,CAAC,CAAC;QAChH,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,KAAwB,EAAQ,EAAE;QAChE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC;IACF,OAAO,CAAC,wCAAwC,EAAE,CAAC,CAAC,kCAAkC,CAAC,CAAC;IACxF,OAAO,CAAC,+CAA+C,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC1D,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACnH,OAAO,CAAC,mCAAmC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,mEAAmE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxH,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC"}
|
package/dist/catalog.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CatalogApproval, type CatalogItemStatus, type Job, type Journey, type JourneyApproval, type JourneyCatalogLinks } from "@jevitate/journey";
|
|
1
|
+
import { type CatalogApproval, type CatalogItemStatus, type CatalogRefIssue, type Job, type Journey, type JourneyApproval, type JourneyCatalogLinks } from "@jevitate/journey";
|
|
2
2
|
/**
|
|
3
3
|
* #433 — the catalog: personas, jobs and Journeys, with their ids, content hashes and approval
|
|
4
4
|
* state, loaded in one place (`CatalogLoader`) for every approval path, every review sheet and
|
|
@@ -23,7 +23,16 @@ export declare const JOBS_FILE = "jobs.json";
|
|
|
23
23
|
export declare const LEGACY_JOBS_FILE: string;
|
|
24
24
|
/** A catalog file that exists but is not a valid catalog — refused (exit 64), never skipped. */
|
|
25
25
|
export declare class CatalogInputError extends Error {
|
|
26
|
-
readonly code
|
|
26
|
+
readonly code: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* #465: `job approve` of a job with a structural reference problem (catalog-refs.ts `assertJobRefs`) —
|
|
30
|
+
* refused, exit 64 (fix the jobs file). A `CatalogInputError`, so every catalog command reports it.
|
|
31
|
+
*/
|
|
32
|
+
export declare class BrokenJobRefsError extends CatalogInputError {
|
|
33
|
+
readonly issues: readonly CatalogRefIssue[];
|
|
34
|
+
readonly code: string;
|
|
35
|
+
constructor(message: string, issues: readonly CatalogRefIssue[]);
|
|
27
36
|
}
|
|
28
37
|
/** `persona|job review|approve <id>`: no such item in the catalog. */
|
|
29
38
|
export declare class UnknownCatalogItemError extends Error {
|
|
@@ -80,7 +89,16 @@ export interface Catalog {
|
|
|
80
89
|
}
|
|
81
90
|
/** #433: a persona's content hash — its id and descriptive keys, without its approval or session settings. */
|
|
82
91
|
export declare function personaContentHash(id: string, fields: Readonly<Record<string, unknown>>): string;
|
|
83
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* #433/#465: a parsed job as the catalog holds it. Reference problems (catalog-refs.ts) never
|
|
94
|
+
* refuse a load: they are reported by `catalog status`/`analyze` and the review sheet, and an
|
|
95
|
+
* approval refuses only the structural ones of the job being approved.
|
|
96
|
+
*/
|
|
97
|
+
export declare function catalogJobOf(job: Job): CatalogJob;
|
|
98
|
+
/**
|
|
99
|
+
* #433: a job's content hash — the job without its approval. #465: every jtbd field counts
|
|
100
|
+
* (`extensions` included), so editing a step, an outcome, a target or an extension needs re-approval.
|
|
101
|
+
*/
|
|
84
102
|
export declare function jobContentHash(job: Job): string;
|
|
85
103
|
export declare function catalogJourney(journey: Journey): CatalogJourney;
|
|
86
104
|
export interface CatalogLoaderOptions {
|
|
@@ -131,3 +149,9 @@ export declare function journeyLinks(catalog: Catalog, j: CatalogJourney): Journ
|
|
|
131
149
|
export declare function writePersonaApproval(file: string, id: string, approval: CatalogApproval): Promise<void>;
|
|
132
150
|
/** #433: records a job's approval in its jobs file. */
|
|
133
151
|
export declare function writeJobApproval(file: string, id: string, approval: CatalogApproval): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* #469: the content hash of persona/job `id` in one version of its catalog file (`text`, e.g. the
|
|
154
|
+
* file at a commit, read through the forge) — the hash its approval binds to — or null when that
|
|
155
|
+
* version does not hold the entry or is not a valid catalog file.
|
|
156
|
+
*/
|
|
157
|
+
export declare function catalogEntryHash(kind: "persona" | "job", text: string | null, id: string): string | null;
|
package/dist/catalog.js
CHANGED
|
@@ -30,6 +30,18 @@ export const LEGACY_JOBS_FILE = join("campaign", "jobs.json");
|
|
|
30
30
|
export class CatalogInputError extends Error {
|
|
31
31
|
code = "E_CATALOG_INPUT";
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* #465: `job approve` of a job with a structural reference problem (catalog-refs.ts `assertJobRefs`) —
|
|
35
|
+
* refused, exit 64 (fix the jobs file). A `CatalogInputError`, so every catalog command reports it.
|
|
36
|
+
*/
|
|
37
|
+
export class BrokenJobRefsError extends CatalogInputError {
|
|
38
|
+
issues;
|
|
39
|
+
code = "E_JOB_BROKEN_REF";
|
|
40
|
+
constructor(message, issues) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.issues = issues;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
33
45
|
/** `persona|job review|approve <id>`: no such item in the catalog. */
|
|
34
46
|
export class UnknownCatalogItemError extends Error {
|
|
35
47
|
kind;
|
|
@@ -148,7 +160,14 @@ function catalogJob(entry, index, path) {
|
|
|
148
160
|
if (!parsed.success) {
|
|
149
161
|
throw new CatalogInputError(`${path}: ${where}: ${parsed.error.issues.map((i) => (i.path.length === 0 ? i.message : `${i.path.join(".")}: ${i.message}`)).join("; ")}`);
|
|
150
162
|
}
|
|
151
|
-
|
|
163
|
+
return catalogJobOf(parsed.data);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* #433/#465: a parsed job as the catalog holds it. Reference problems (catalog-refs.ts) never
|
|
167
|
+
* refuse a load: they are reported by `catalog status`/`analyze` and the review sheet, and an
|
|
168
|
+
* approval refuses only the structural ones of the job being approved.
|
|
169
|
+
*/
|
|
170
|
+
export function catalogJobOf(job) {
|
|
152
171
|
const hash = jobContentHash(job);
|
|
153
172
|
return {
|
|
154
173
|
id: job.id,
|
|
@@ -160,7 +179,10 @@ function catalogJob(entry, index, path) {
|
|
|
160
179
|
status: statusOf(job.approval, hash),
|
|
161
180
|
};
|
|
162
181
|
}
|
|
163
|
-
/**
|
|
182
|
+
/**
|
|
183
|
+
* #433: a job's content hash — the job without its approval. #465: every jtbd field counts
|
|
184
|
+
* (`extensions` included), so editing a step, an outcome, a target or an extension needs re-approval.
|
|
185
|
+
*/
|
|
164
186
|
export function jobContentHash(job) {
|
|
165
187
|
const { approval: _a, ...rest } = job;
|
|
166
188
|
return contentHash(rest);
|
|
@@ -349,4 +371,26 @@ export async function writeJobApproval(file, id, approval) {
|
|
|
349
371
|
catalogJob(list[index], index, file);
|
|
350
372
|
await writeJsonFile(file, Array.isArray(raw) ? list : { ...raw, jobs: list });
|
|
351
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* #469: the content hash of persona/job `id` in one version of its catalog file (`text`, e.g. the
|
|
376
|
+
* file at a commit, read through the forge) — the hash its approval binds to — or null when that
|
|
377
|
+
* version does not hold the entry or is not a valid catalog file.
|
|
378
|
+
*/
|
|
379
|
+
export function catalogEntryHash(kind, text, id) {
|
|
380
|
+
if (text === null)
|
|
381
|
+
return null;
|
|
382
|
+
try {
|
|
383
|
+
const raw = JSON.parse(text);
|
|
384
|
+
if (kind === "persona") {
|
|
385
|
+
const p = rawPersonas(raw, "(forge)").find((x) => x.id === id);
|
|
386
|
+
return p === undefined ? null : personaContentHash(p.id, p.fields);
|
|
387
|
+
}
|
|
388
|
+
const entry = jobList(raw, "(forge)").find((e) => isRecord(e) && e.id === id);
|
|
389
|
+
const parsed = JobSchema.safeParse(entry);
|
|
390
|
+
return parsed.success ? jobContentHash(parsed.data) : null;
|
|
391
|
+
}
|
|
392
|
+
catch {
|
|
393
|
+
return null; // not JSON / not a catalog file at that version: it does not hold the entry
|
|
394
|
+
}
|
|
395
|
+
}
|
|
352
396
|
//# sourceMappingURL=catalog.js.map
|