@knpkv/herdr-work 0.5.3 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +103 -0
  2. package/dist/display-state.d.ts +10 -0
  3. package/dist/display-state.d.ts.map +1 -0
  4. package/dist/display-state.js +5 -0
  5. package/dist/display-state.js.map +1 -0
  6. package/dist/errors.d.ts +21 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +12 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/internal/legacy-lane-claim.d.ts +74 -0
  15. package/dist/internal/legacy-lane-claim.d.ts.map +1 -0
  16. package/dist/internal/legacy-lane-claim.js +81 -0
  17. package/dist/internal/legacy-lane-claim.js.map +1 -0
  18. package/dist/internal/session-index.d.ts +18 -0
  19. package/dist/internal/session-index.d.ts.map +1 -0
  20. package/dist/internal/session-index.js +23 -0
  21. package/dist/internal/session-index.js.map +1 -0
  22. package/dist/internal/terminal-reconcile.d.ts +31 -0
  23. package/dist/internal/terminal-reconcile.d.ts.map +1 -0
  24. package/dist/internal/terminal-reconcile.js +89 -0
  25. package/dist/internal/terminal-reconcile.js.map +1 -0
  26. package/dist/model.d.ts +939 -29
  27. package/dist/model.d.ts.map +1 -1
  28. package/dist/model.js +256 -7
  29. package/dist/model.js.map +1 -1
  30. package/dist/observed.d.ts +77 -0
  31. package/dist/observed.d.ts.map +1 -0
  32. package/dist/observed.js +240 -0
  33. package/dist/observed.js.map +1 -0
  34. package/dist/projection.d.ts +192 -12
  35. package/dist/projection.d.ts.map +1 -1
  36. package/dist/service.d.ts +121 -992
  37. package/dist/service.d.ts.map +1 -1
  38. package/dist/service.js +13 -3
  39. package/dist/service.js.map +1 -1
  40. package/dist/sql.d.ts.map +1 -1
  41. package/dist/sql.js +76 -3
  42. package/dist/sql.js.map +1 -1
  43. package/dist/store.d.ts +193 -11
  44. package/dist/store.d.ts.map +1 -1
  45. package/dist/store.js +768 -37
  46. package/dist/store.js.map +1 -1
  47. package/dist/view.d.ts.map +1 -1
  48. package/dist/view.js +169 -103
  49. package/dist/view.js.map +1 -1
  50. package/dist/work-triage.d.ts +72 -0
  51. package/dist/work-triage.d.ts.map +1 -0
  52. package/dist/work-triage.js +114 -0
  53. package/dist/work-triage.js.map +1 -0
  54. package/package.json +3 -3
  55. package/src/styles.css +229 -237
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EASV,aAAa,EACb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AAwJnB,eAAO,MAAM,SAAS,2EAMnB;IACD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;CACrH,KAAG,YAwmBH,CAAA"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EASV,aAAa,EACb,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AAoYnB,eAAO,MAAM,SAAS,2EAMnB;IACD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,KAAK,MAAM,CAAA;CACrH,KAAG,YA2UH,CAAA"}
package/dist/view.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Divider, StateLabel, Surface, Text } from "@knpkv/rly/primitives";
3
- import { StageRail } from "@knpkv/rly/patterns";
2
+ import { Button, StateLabel, Text } from "@knpkv/rly/primitives";
3
+ import { Hero, Region, StageRail, TimelineRow } from "@knpkv/rly/patterns";
4
4
  import { useEffect, useRef, useState } from "react";
5
5
  import { decodeWorkBoardNavigationGoal, encodeWorkBoardNavigationGoal } from "./navigation.js";
6
+ import { workTriage, workTriageGroups, workTriageGroupTitle, workTriageSentence } from "./work-triage.js";
6
7
  const windows = ["now", "day", "week", "month"];
7
8
  const stageOrder = ["local", "review", "pull_request", "merged", "deployed"];
8
9
  const initialVisibleGoalCount = 10;
@@ -13,7 +14,8 @@ const goalStates = [
13
14
  "blocked",
14
15
  "review",
15
16
  "deployed",
16
- "completed"
17
+ "completed",
18
+ "abandoned"
17
19
  ];
18
20
  const statusFilters = ["all", ...goalStates];
19
21
  const windowLabel = {
@@ -28,7 +30,8 @@ const statePresentation = {
28
30
  blocked: { label: "Blocked", tone: "critical" },
29
31
  review: { label: "In review", tone: "caution" },
30
32
  deployed: { label: "Deployed", tone: "positive" },
31
- completed: { label: "Completed", tone: "positive" }
33
+ completed: { label: "Completed", tone: "positive" },
34
+ abandoned: { label: "Abandoned", tone: "neutral" }
32
35
  };
33
36
  const deliveryLabel = {
34
37
  local: "Local",
@@ -73,28 +76,87 @@ const hierarchyLabel = (goal) => {
73
76
  return `${hierarchy.agent.host} / ${hierarchy.agent.name}`;
74
77
  };
75
78
  /** Renders the persisted approval deep link after its origin is bound at ingress. */
76
- const exactLink = (target, label) => (_jsxs("a", { className: "work-exact-link", href: target.url, children: [label, " \u2192"] }));
79
+ const exactLink = (target, label) => (_jsx("a", { className: "work-exact-link", href: target.url, children: label }));
77
80
  /** Renders the persisted review destination without rewriting its credential-free URL. */
78
- const reviewLink = (url) => (_jsx("a", { className: "work-exact-link", href: url, children: "Open review \u2192" }));
81
+ const reviewLink = (url) => (_jsx("a", { className: "work-exact-link", href: url, children: "Open review" }));
79
82
  const reviewLabel = (review) => {
80
83
  if (review === undefined || review === null) {
81
84
  return _jsx(Text, { tone: "secondary", children: "No review recorded." });
82
85
  }
83
86
  return (_jsx(StateLabel, { label: reviewPresentation[review.state].label, size: "compact", tone: reviewPresentation[review.state].tone }));
84
87
  };
88
+ /** Delivery as words: past stages are done, the current one is "now" in the goal's state ink. */
85
89
  const stagesFor = (goal) => {
86
90
  const current = stageOrder.indexOf(goal.delivery);
87
- return stageOrder.map((stage, index) => {
88
- const presentation = {
89
- id: `${goal.id}-${stage}`,
90
- name: deliveryLabel[stage],
91
- state: index < current ? "Complete" : index === current ? deliveryLabel[stage] : "Not started",
92
- tone: index < current ? "positive" : index === current ? statePresentation[goal.state].tone : "neutral"
91
+ return stageOrder.map((stage, index) => ({
92
+ id: `${goal.id}-${stage}`,
93
+ name: deliveryLabel[stage],
94
+ state: index < current ? "done" : index === current ? "now" : "not yet",
95
+ tone: index === current ? statePresentation[goal.state].tone : "neutral"
96
+ }));
97
+ };
98
+ const rowCaption = (goal) => {
99
+ const open = requestsFor(goal).filter(({ state }) => state === "open");
100
+ if (open.length > 0) {
101
+ return {
102
+ blocking: false,
103
+ text: open.length === 1 ? `Needs approval: ${open[0]?.summary ?? ""}` : `${open.length} requests need approval`
93
104
  };
94
- return index === current ? { ...presentation, reason: goal.detail } : presentation;
95
- });
105
+ }
106
+ const blockers = blockersFor(goal);
107
+ if (blockers.length > 0)
108
+ return { blocking: true, text: blockers[0]?.summary ?? "Blocked" };
109
+ const latest = activityFor(goal).toSorted((a, b) => b.occurredAt - a.occurredAt)[0];
110
+ if (latest !== undefined)
111
+ return { blocking: false, text: `${latest.summary}, ${formatTimestamp(latest.occurredAt)}` };
112
+ return { blocking: false, text: `${goal.owner.name}, ${deliveryLabel[goal.delivery].toLowerCase()}` };
113
+ };
114
+ /** The caption under the hero: the request waiting longest, or the latest change. */
115
+ const summaryCaption = (summary, tense) => {
116
+ switch (summary._tag) {
117
+ case "Attention":
118
+ return summary.oldestRequest === null
119
+ ? undefined
120
+ : `${tense === "present" ? "Waiting longest" : "Waiting longest then"}: ${summary.oldestRequest.request.summary} on ${summary.oldestRequest.goal.title}, requested ${formatTimestamp(summary.oldestRequest.request.requestedAt)}.`;
121
+ case "Clear":
122
+ return summary.latest === null
123
+ ? undefined
124
+ : `${summary.moving} moving. Last change: ${summary.latest.title}, ${formatTimestamp(summary.latest.updatedAt)}.`;
125
+ case "Empty":
126
+ return "A goal appears once an agent's work is admitted.";
127
+ }
128
+ };
129
+ /** Everything about one goal, in reading order: what it is, where it is, what blocks it, what happened. */
130
+ const GoalDetail = ({ externalLinks, goal, snapshot }) => {
131
+ const family = familyForGoal(snapshot, goal.id);
132
+ const activity = activityFor(goal).toSorted((a, b) => b.occurredAt - a.occurredAt);
133
+ // A goal-level approval target (older checkpoints carry one without requests); skipped when a
134
+ // request already links the same approval.
135
+ const goalApproval = goal.approvalTarget === undefined ||
136
+ goal.approvalTarget === null ||
137
+ requestsFor(goal).some(({ approvalTarget }) => approvalTarget?.url === goal.approvalTarget?.url)
138
+ ? null
139
+ : goal.approvalTarget;
140
+ return (_jsxs("div", { className: "work-detail", children: [_jsx(Text, { tone: "secondary", children: goal.detail }), _jsx(StageRail, { heading: `Delivery of ${goal.title}`, size: "words", stages: stagesFor(goal) }), _jsxs("dl", { className: "work-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "State" }), _jsx("dd", { children: statePresentation[goal.state].label })] }), _jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: goal.owner.name })] }), _jsxs("div", { children: [_jsx("dt", { children: "Agent" }), _jsxs("dd", { children: [hierarchyLabel(goal), goal.agentHierarchy?.agent.relationship === undefined || goal.agentHierarchy === null
141
+ ? null
142
+ : `, ${goal.agentHierarchy.agent.relationship.relation} from ${goal.agentHierarchy.agent.relationship.parentAgentId}`] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Repository" }), _jsxs("dd", { children: [goal.repository.repository, ", ", _jsx("code", { children: goal.repository.branch })] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Review" }), _jsxs("dd", { children: [reviewLabel(goal.review), goal.review?.url === null || goal.review?.url === undefined ? null : externalLinks ===
143
+ "disabled" ? null : (_jsxs(_Fragment, { children: [" ", reviewLink(goal.review.url)] })), goal.review?.summary === null || goal.review?.summary === undefined ? null : (_jsx(Text, { tone: "secondary", variant: "meta", children: goal.review.summary }))] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Spend" }), _jsx("dd", { children: formatSpend(goal) })] })] }), blockersFor(goal).map((blocker) => (_jsxs("p", { className: "work-note", "data-tone": "blocked", children: [_jsx("b", { children: "Blocked" }), " since ", formatTimestamp(blocker.since), ": ", blocker.summary] }, `${blocker.since}-${blocker.summary}`))), _jsxs("section", { "aria-labelledby": "work-requests-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-requests-title", children: "Requests" }), requestsFor(goal).length === 0 ? (_jsx(Text, { tone: "secondary", children: goal.requests === undefined ? "No requests recorded." : "No outstanding requests." })) : (_jsx("ul", { className: "work-detail-list", children: requestsFor(goal).map((request) => (_jsxs("li", { children: [_jsxs("span", { className: "work-request-heading", children: [_jsx(Text, { children: request.summary }), _jsx("span", { className: "work-row-state", "data-tone": requestPresentation[request.state].tone, children: requestPresentation[request.state].label })] }), request.state !== "open" ? null : request.approvalTarget === null ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "No approval link recorded." })) : externalLinks === "disabled" ? (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Approve this on the hub (", request.approvalTarget.host, ")."] })) : (exactLink(request.approvalTarget, `Approve on ${request.approvalTarget.host}`))] }, request.id))) }))] }), _jsxs("section", { "aria-labelledby": "work-activity-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-activity-title", children: "Activity" }), activity.length === 0 ? (_jsx(Text, { tone: "secondary", children: goal.activity === undefined ? "No activity recorded." : "Activity is clear." })) : (_jsx("ol", { "aria-label": `Activity on ${goal.title}`, className: "work-activity", children: activity.map((entry, index) => (_jsx(TimelineRow, { continued: index < activity.length - 1, event: {
144
+ actorKind: "system",
145
+ dateTime: new Date(entry.occurredAt).toISOString(),
146
+ detail: activityKindLabel[entry.kind],
147
+ id: entry.id,
148
+ time: formatTimestamp(entry.occurredAt),
149
+ title: entry.summary
150
+ } }, entry.id))) }))] }), family === null ? null : (_jsxs("section", { "aria-labelledby": "work-family-title", className: "work-detail-section", children: [_jsx("h3", { className: "work-group-title", id: "work-family-title", children: "Superseded history" }), _jsxs("details", { className: "work-family-history", children: [_jsxs("summary", { children: ["Show ", family.superseded.length, " superseded"] }), _jsx("ul", { className: "work-detail-list", children: family.superseded.map((entry) => (_jsxs("li", { children: [_jsxs("span", { className: "work-request-heading", children: [_jsx(Text, { children: entry.title }), _jsx("span", { className: "work-row-state", "data-tone": statePresentation[entry.state].tone, children: statePresentation[entry.state].label })] }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [entry.summary, ", ", formatTimestamp(entry.updatedAt)] }), blockersFor(entry).map((blocker) => (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Blocked since ", formatTimestamp(blocker.since), ": ", blocker.summary] }, `${blocker.since}-${blocker.summary}`))), entry.review === undefined || entry.review === null ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Review ", reviewPresentation[entry.review.state].label.toLowerCase(), entry.review.summary === null ? "" : `: ${entry.review.summary}`] }))] }, entry.id))) })] })] })), _jsxs("div", { className: "work-links", children: [goal.connectTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact Connect target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Connect target recorded." })) : (_jsx("a", { className: "work-connect-link", href: goal.connectTarget.url, children: "Open the agent in Connect" })), goalApproval === null ? null : externalLinks === "disabled" ? (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Approval target recorded on ", goalApproval.host, "."] })) : (exactLink(goalApproval, `Open ${goalApproval.host} approval`))] })] }));
151
+ };
152
+ const activityKindLabel = {
153
+ note: "Note",
154
+ status: "Status",
155
+ blocker: "Blocker",
156
+ request: "Request",
157
+ review: "Review",
158
+ shipment: "Shipment"
96
159
  };
97
- const SummaryCell = ({ label, value }) => (_jsxs(Surface, { className: "work-summary-cell", padding: "compact", tone: "secondary", children: [_jsx(Text, { tone: "secondary", variant: "meta", children: label }), _jsx(Text, { as: "span", variant: "card-title", children: value })] }));
98
160
  const snapshotFor = (snapshots, window) => snapshots[window];
99
161
  const familyForGoal = (snapshot, goalId) => (snapshot.families ?? []).find((group) => group.canonicalGoalId === goalId) ?? null;
100
162
  const familyLabelForGoal = (snapshot, goal) => {
@@ -130,21 +192,27 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
130
192
  const detailsRef = useRef(null);
131
193
  const selectedLinkRowRef = useRef(null);
132
194
  const selectedRowRef = useRef(null);
133
- const filteredGoals = statusFilter === "all" ? snapshot.goals : snapshot.goals.filter(({ state }) => state === statusFilter);
195
+ const triage = workTriage(snapshot);
196
+ // A historical window is the state as of its time; say so, never in the present tense.
197
+ const tense = window === "now" ? "present" : "past";
198
+ const sentence = workTriageSentence(triage.summary, tense);
199
+ const heroFact = tense === "present"
200
+ ? sentence
201
+ : `As of ${formatTimestamp(snapshot.asOf)}, ${sentence.charAt(0).toLowerCase()}${sentence.slice(1)}`;
202
+ const groupById = new Map(triage.rows.map((row) => [row.goal.id, row.group]));
203
+ const ordered = triage.rows.map((row) => row.goal);
204
+ const filteredGoals = statusFilter === "all" ? ordered : ordered.filter(({ state }) => state === statusFilter);
134
205
  const selectedFilteredGoalIndex = filteredGoals.findIndex(({ id }) => id === selectedId);
135
206
  const selected = filteredGoals.find(({ id }) => id === selectedId) ?? null;
136
207
  const visibleGoalStart = selectedFilteredGoalIndex < visibleGoalCount ? 0 : selectedFilteredGoalIndex - visibleGoalCount + 1;
137
208
  const visibleGoals = filteredGoals.slice(visibleGoalStart, visibleGoalStart + visibleGoalCount);
138
- const counts = {
139
- blocked: snapshot.goals.filter(({ state }) => state === "blocked").length,
140
- deployed: snapshot.goals.filter(({ state }) => state === "deployed").length,
141
- openRequests: snapshot.goals.reduce((count, goal) => count + requestsFor(goal).filter(({ state }) => state === "open").length, 0),
142
- review: snapshot.goals.filter(({ state }) => state === "review").length,
143
- working: snapshot.goals.filter(({ state }) => state === "working").length
144
- };
209
+ const visibleGroups = workTriageGroups
210
+ .map((group) => ({ group, goals: visibleGoals.filter(({ id }) => groupById.get(id) === group) }))
211
+ .filter(({ goals }) => goals.length > 0);
212
+ // Opening a goal moves focus to its heading, so the detail is announced by name.
145
213
  useEffect(() => {
146
214
  if (detailsOpen)
147
- detailsRef.current?.focus();
215
+ detailsRef.current?.querySelector("h2")?.focus();
148
216
  }, [detailsOpen, selectedId]);
149
217
  useEffect(() => {
150
218
  if (navigation !== undefined &&
@@ -161,66 +229,70 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
161
229
  setSelectedId(null);
162
230
  setVisibleGoalCount(initialVisibleGoalCount);
163
231
  }, [selectedFilteredGoalIndex, selectedId]);
164
- return (_jsxs("section", { className: "work-page", "aria-labelledby": "work-board-title", children: [_jsxs("header", { className: "work-page-intro", children: [_jsxs("div", { children: [_jsx(Text, { as: "h1", id: "work-board-title", variant: "page-title", children: "Daily fleet Work" }), _jsx(Text, { tone: "secondary", variant: "body-large", children: "One durable view of who owns the work, what is blocked, and what ships next." })] }), _jsxs("div", { className: "work-snapshot-stamp", children: [_jsx(Text, { tone: "secondary", variant: "meta", children: "Durable snapshot" }), _jsx(Text, { variant: "code", children: formatTimestamp(snapshot.asOf) })] })] }), _jsxs(Surface, { className: "work-time-travel", padding: "compact", tone: "secondary", children: [_jsxs("div", { className: "work-time-heading", children: [_jsxs("div", { children: [_jsx(Text, { as: "h2", variant: "card-title", children: "Time travel" }), _jsx(Text, { tone: "secondary", variant: "meta", children: "Checkpoint events only. Missing history stays absent." })] }), _jsx(StateLabel, { label: window === "now" ? "Live" : "Historical", tone: window === "now" ? "positive" : "neutral" })] }), _jsx("div", { "aria-label": "Choose work snapshot", className: "work-time-controls", role: "group", children: windows.map((option) => {
165
- if (navigation === undefined) {
166
- return (_jsx(Button, { "aria-pressed": window === option, onClick: () => {
167
- const selectedAtOption = snapshotFor(snapshots, option).goals.find(({ id }) => id === selectedId);
168
- if (selectedAtOption === undefined ||
169
- (statusFilter !== "all" && selectedAtOption.state !== statusFilter)) {
170
- setDetailsOpen(false);
171
- }
172
- setVisibleGoalCount(initialVisibleGoalCount);
173
- setWindow(option);
174
- }, variant: window === option ? "primary" : "secondary", children: windowLabel[option] }, option));
175
- }
176
- const selectedAtOption = snapshotFor(snapshots, option).goals.find(({ id }) => id === selectedId);
177
- const hasBoardState = selectedId !== null || statusFilter !== "all" || visibleGoalCount !== initialVisibleGoalCount;
178
- return (_jsx("a", { "aria-current": window === option ? "page" : undefined, className: "work-time-link", href: navigation({
179
- goalId: hasBoardState
180
- ? encodeWorkBoardNavigationGoal({
181
- detailsOpen: detailsOpen &&
182
- selectedAtOption !== undefined &&
183
- (statusFilter === "all" || selectedAtOption.state === statusFilter),
184
- goalId: selectedId,
185
- statusFilter,
186
- visibleGoalCount: initialVisibleGoalCount
187
- })
188
- : null,
189
- window: option
190
- }), children: windowLabel[option] }, option));
191
- }) })] }), _jsxs("div", { className: "work-summary-grid", "aria-label": "Work summary", children: [_jsx(SummaryCell, { label: "Goals", value: String(snapshot.goals.length) }), _jsx(SummaryCell, { label: "Working", value: String(counts.working) }), _jsx(SummaryCell, { label: "Blocked", value: String(counts.blocked) }), _jsx(SummaryCell, { label: "Open requests", value: String(counts.openRequests) }), _jsx(SummaryCell, { label: "In review", value: String(counts.review) }), _jsx(SummaryCell, { label: "Deployed", value: String(counts.deployed) })] }), snapshot.goals.length === 0 ? (_jsxs(Surface, { padding: "spacious", tone: "secondary", children: [_jsx(Text, { as: "h2", variant: "card-title", children: "No goals at this checkpoint" }), _jsx(Text, { tone: "secondary", children: "Record a WorkGoalCheckpoint to add durable work state." })] })) : (_jsxs("div", { className: "work-board-layout", children: [_jsxs("div", { className: "work-board-list", children: [_jsxs("div", { className: "work-board-toolbar", children: [_jsx("div", { "aria-label": "Filter goals by status", className: "work-status-filters", role: "group", children: statusFilters.map((state) => {
192
- const label = state === "all" ? "All" : statePresentation[state].label;
193
- return navigation === undefined ? (_jsx("button", { "aria-pressed": statusFilter === state, className: "work-status-filter", onClick: () => {
194
- setDetailsOpen(false);
195
- setSelectedId(null);
196
- setStatusFilter(state);
197
- setVisibleGoalCount(initialVisibleGoalCount);
198
- }, type: "button", children: label }, state)) : (_jsx("a", { "aria-current": statusFilter === state ? "page" : undefined, className: "work-status-filter", href: navigation({
199
- goalId: encodeWorkBoardNavigationGoal({
200
- detailsOpen: false,
201
- goalId: null,
202
- statusFilter: state,
203
- visibleGoalCount: initialVisibleGoalCount
204
- }),
205
- window
206
- }), children: label }, state));
207
- }) }), _jsxs(Text, { "aria-live": "polite", tone: "secondary", variant: "meta", children: ["Showing ", visibleGoals.length, " of ", filteredGoals.length, " goals"] })] }), _jsxs(Surface, { className: "work-departure-board", padding: "none", tone: "secondary", children: [_jsxs("div", { className: "work-board-head", "aria-hidden": "true", children: [_jsx("span", { children: "Status" }), _jsx("span", { children: "Work" }), _jsx("span", { children: "Owner" }), _jsx("span", { children: "Agent / host" }), _jsx("span", { children: "Repository" }), _jsx("span", { children: "Shipment" }), _jsx("span", { children: "Spend" })] }), filteredGoals.length === 0 ? (_jsx("div", { className: "work-empty-filter", children: _jsx(Text, { tone: "secondary", children: "No goals match this status." }) })) : null, visibleGoals.map((goal) => {
208
- const row = (_jsxs(_Fragment, { children: [_jsx(StateLabel, { label: statePresentation[goal.state].label, size: "compact", tone: statePresentation[goal.state].tone }), _jsxs("span", { className: "work-board-copy", children: [_jsx(Text, { as: "strong", variant: "label", children: goal.title }), _jsx(Text, { tone: "secondary", variant: "meta", children: goal.summary }), familyLabelForGoal(snapshot, goal) === null ? null : (_jsx(Text, { tone: "secondary", variant: "meta", children: familyLabelForGoal(snapshot, goal) }))] }), _jsx(Text, { "data-label": "Owner", children: goal.owner.name }), _jsxs("span", { className: "work-board-copy", "data-label": "Agent / host", children: [_jsx(Text, { children: hierarchyLabel(goal) }), goal.agentHierarchy?.agent.relationship === undefined ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: [goal.agentHierarchy.agent.relationship.relation, " \u00B7", " ", goal.agentHierarchy.agent.relationship.parentAgentId] }))] }), _jsxs("span", { className: "work-board-copy", "data-label": "Repository", children: [_jsx(Text, { variant: "code", children: goal.repository.repository }), _jsx(Text, { tone: "secondary", variant: "meta", children: goal.repository.branch })] }), _jsx(Text, { "data-label": "Shipment", children: deliveryLabel[goal.delivery] }), _jsx(Text, { "data-label": "Spend", variant: "code", children: formatSpend(goal) })] }));
209
- return navigation === undefined ? (_jsx("button", { "aria-controls": detailsOpen && selected?.id === goal.id ? "work-goal-details" : undefined, "aria-expanded": detailsOpen && selected?.id === goal.id, "aria-pressed": selected?.id === goal.id, className: "work-board-row", id: selected?.id === goal.id ? selectedGoalFragment : undefined, onClick: () => {
210
- setDetailsOpen(true);
211
- setSelectedId(goal.id);
212
- }, ref: selected?.id === goal.id ? selectedRowRef : undefined, type: "button", children: row }, goal.id)) : (_jsx("a", { "aria-current": selected?.id === goal.id ? "true" : undefined, className: "work-board-row", href: navigation({
213
- goalId: statusFilter === "all" && visibleGoalCount === initialVisibleGoalCount
214
- ? goal.id
215
- : encodeWorkBoardNavigationGoal({
216
- detailsOpen: true,
217
- goalId: goal.id,
218
- statusFilter,
219
- visibleGoalCount
220
- }),
221
- window
222
- }), id: selected?.id === goal.id ? selectedGoalFragment : undefined, ref: selected?.id === goal.id ? selectedLinkRowRef : undefined, children: row }, goal.id));
223
- })] }), visibleGoals.length < filteredGoals.length ? (navigation === undefined ? (_jsx(Button, { onClick: () => setVisibleGoalCount((count) => Math.min(count + initialVisibleGoalCount, filteredGoals.length)), children: "Load 10 more" })) : (_jsx("a", { className: "work-load-more-link", href: navigation({
232
+ const goalRow = (goal) => {
233
+ const caption = rowCaption(goal);
234
+ const content = (_jsxs(_Fragment, { children: [_jsxs("span", { className: "work-row-title", children: [_jsxs("span", { className: "work-row-meta", children: [goal.repository.repository, ", ", _jsx("code", { children: goal.repository.branch })] }), goal.title] }), _jsx("span", { className: "work-row-state", "data-tone": statePresentation[goal.state].tone, children: statePresentation[goal.state].label }), _jsxs("span", { className: "work-row-caption", "data-blocking": caption.blocking, children: [caption.text, familyLabelForGoal(snapshot, goal) === null ? null : `, ${familyLabelForGoal(snapshot, goal)}`] })] }));
235
+ return navigation === undefined ? (_jsx("button", { "aria-controls": detailsOpen && selected?.id === goal.id ? "work-goal-details" : undefined, "aria-expanded": detailsOpen && selected?.id === goal.id, "aria-pressed": selected?.id === goal.id, className: "work-board-row", id: selected?.id === goal.id ? selectedGoalFragment : undefined, onClick: () => {
236
+ setDetailsOpen(true);
237
+ setSelectedId(goal.id);
238
+ }, ref: selected?.id === goal.id ? selectedRowRef : undefined, type: "button", children: content })) : (_jsx("a", { "aria-current": selected?.id === goal.id ? "true" : undefined, className: "work-board-row", href: navigation({
239
+ goalId: statusFilter === "all" && visibleGoalCount === initialVisibleGoalCount
240
+ ? goal.id
241
+ : encodeWorkBoardNavigationGoal({
242
+ detailsOpen: true,
243
+ goalId: goal.id,
244
+ statusFilter,
245
+ visibleGoalCount
246
+ }),
247
+ window
248
+ }), id: selected?.id === goal.id ? selectedGoalFragment : undefined, ref: selected?.id === goal.id ? selectedLinkRowRef : undefined, children: content }));
249
+ };
250
+ const timeTravel = (_jsx("div", { "aria-label": "Choose work snapshot", className: "work-time-controls", role: "group", children: windows.map((option) => {
251
+ if (navigation === undefined) {
252
+ return (_jsx("button", { "aria-pressed": window === option, className: "work-time-option", onClick: () => {
253
+ const selectedAtOption = snapshotFor(snapshots, option).goals.find(({ id }) => id === selectedId);
254
+ if (selectedAtOption === undefined ||
255
+ (statusFilter !== "all" && selectedAtOption.state !== statusFilter)) {
256
+ setDetailsOpen(false);
257
+ }
258
+ setVisibleGoalCount(initialVisibleGoalCount);
259
+ setWindow(option);
260
+ }, type: "button", children: windowLabel[option] }, option));
261
+ }
262
+ const selectedAtOption = snapshotFor(snapshots, option).goals.find(({ id }) => id === selectedId);
263
+ const hasBoardState = selectedId !== null || statusFilter !== "all" || visibleGoalCount !== initialVisibleGoalCount;
264
+ return (_jsx("a", { "aria-current": window === option ? "page" : undefined, className: "work-time-option", href: navigation({
265
+ goalId: hasBoardState
266
+ ? encodeWorkBoardNavigationGoal({
267
+ detailsOpen: detailsOpen &&
268
+ selectedAtOption !== undefined &&
269
+ (statusFilter === "all" || selectedAtOption.state === statusFilter),
270
+ goalId: selectedId,
271
+ statusFilter,
272
+ visibleGoalCount: initialVisibleGoalCount
273
+ })
274
+ : null,
275
+ window: option
276
+ }), children: windowLabel[option] }, option));
277
+ }) }));
278
+ const statusFilterControls = (_jsx("div", { "aria-label": "Filter goals by status", className: "work-status-filters", role: "group", children: statusFilters.map((state) => {
279
+ const label = state === "all" ? "All" : statePresentation[state].label;
280
+ return navigation === undefined ? (_jsx("button", { "aria-pressed": statusFilter === state, className: "work-status-filter", onClick: () => {
281
+ setDetailsOpen(false);
282
+ setSelectedId(null);
283
+ setStatusFilter(state);
284
+ setVisibleGoalCount(initialVisibleGoalCount);
285
+ }, type: "button", children: label }, state)) : (_jsx("a", { "aria-current": statusFilter === state ? "page" : undefined, className: "work-status-filter", href: navigation({
286
+ goalId: encodeWorkBoardNavigationGoal({
287
+ detailsOpen: false,
288
+ goalId: null,
289
+ statusFilter: state,
290
+ visibleGoalCount: initialVisibleGoalCount
291
+ }),
292
+ window
293
+ }), children: label }, state));
294
+ }) }));
295
+ return (_jsxs("section", { className: "work-page", "aria-labelledby": "work-board-title", children: [_jsxs("header", { className: "work-page-intro", children: [_jsx(Text, { as: "h1", id: "work-board-title", variant: "card-title", children: "Work" }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [window === "now" ? "Live" : windowLabel[window], ", as of ", formatTimestamp(snapshot.asOf)] })] }), _jsx(Hero, { caption: summaryCaption(triage.summary, tense), fact: heroFact, label: "Work summary" }), timeTravel, snapshot.goals.length === 0 ? (_jsx(Region, { title: "Goals", children: _jsx(Text, { tone: "secondary", children: "No goals at this checkpoint. A goal appears once an agent's work is admitted." }) })) : (_jsxs("div", { className: "work-board-layout", "data-has-detail": selected !== null && detailsOpen, children: [_jsxs(Region, { actions: statusFilterControls, className: "work-board-list", count: filteredGoals.length, title: "Goals", children: [_jsxs(Text, { "aria-live": "polite", tone: "secondary", variant: "meta", children: ["Showing ", visibleGoals.length, " of ", filteredGoals.length, " goals"] }), filteredGoals.length === 0 ? _jsx(Text, { tone: "secondary", children: "No goals match this status." }) : null, visibleGroups.map(({ goals, group }) => (_jsxs("section", { "aria-labelledby": `work-group-${group}`, className: "work-group", children: [_jsxs("h3", { className: "work-group-title", id: `work-group-${group}`, children: [workTriageGroupTitle[group], " ", _jsxs("span", { className: "work-group-count", children: ["(", goals.length, ")"] })] }), _jsx("ul", { className: "work-rows", children: goals.map((goal) => (_jsx("li", { children: goalRow(goal) }, goal.id))) })] }, group))), visibleGoals.length < filteredGoals.length ? (navigation === undefined ? (_jsx(Button, { onClick: () => setVisibleGoalCount((count) => Math.min(count + initialVisibleGoalCount, filteredGoals.length)), children: "Load 10 more" })) : (_jsx("a", { className: "work-load-more-link", href: navigation({
224
296
  goalId: encodeWorkBoardNavigationGoal({
225
297
  detailsOpen,
226
298
  goalId: selectedId,
@@ -228,24 +300,18 @@ export const WorkBoard = ({ externalLinks = "enabled", initialGoalId, initialWin
228
300
  visibleGoalCount: Math.min(visibleGoalCount + initialVisibleGoalCount, filteredGoals.length)
229
301
  }),
230
302
  window
231
- }), children: "Load 10 more" }))) : null] }), selected === null || !detailsOpen ? null : (_jsxs(Surface, { "aria-label": "Goal details", as: "aside", className: "work-inspector", id: "work-goal-details", padding: "spacious", ref: detailsRef, tabIndex: -1, children: [_jsxs("div", { className: "work-inspector-heading", children: [_jsx(StateLabel, { label: statePresentation[selected.state].label, tone: statePresentation[selected.state].tone }), navigation === undefined ? (_jsx(Button, { onClick: () => {
232
- setDetailsOpen(false);
233
- const selectedRow = selectedRowRef.current ?? selectedLinkRowRef.current;
234
- selectedRow?.focus();
235
- }, variant: "secondary", children: "Close details" })) : (_jsx("a", { className: "work-exact-link", href: withFragment(navigation({
236
- goalId: encodeWorkBoardNavigationGoal({
237
- detailsOpen: false,
238
- goalId: selectedId,
239
- statusFilter,
240
- visibleGoalCount
241
- }),
242
- window
243
- }), selectedGoalFragment), children: "Close details" }))] }), _jsx(Text, { as: "h2", variant: "section-title", children: selected.title }), _jsx(Text, { tone: "secondary", children: selected.detail }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Agent hierarchy" }), selected.agentHierarchy === undefined || selected.agentHierarchy === null ? (_jsx(Text, { tone: "secondary", children: "No authoritative agent assignment recorded." })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [selected.agentHierarchy.agent.host, " / ", selected.agentHierarchy.agent.name] }), _jsx(Text, { tone: "secondary", variant: "code", children: selected.agentHierarchy.agent.agentId }), selected.agentHierarchy.agent.relationship === undefined ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Fleet root agent" })) : (_jsxs(Text, { tone: "secondary", variant: "meta", children: [selected.agentHierarchy.agent.relationship.relation, " from", " ", selected.agentHierarchy.agent.relationship.parentAgentId] }))] }))] }), _jsx(Divider, {}), _jsxs("dl", { className: "work-facts", children: [_jsxs("div", { children: [_jsx("dt", { children: "Owner" }), _jsx("dd", { children: selected.owner.name })] }), _jsxs("div", { children: [_jsx("dt", { children: "Repository" }), _jsx("dd", { children: selected.repository.repository })] }), _jsxs("div", { children: [_jsx("dt", { children: "Branch" }), _jsx("dd", { children: selected.repository.branch })] }), _jsxs("div", { children: [_jsx("dt", { children: "Shipment stage" }), _jsx("dd", { children: deliveryLabel[selected.delivery] })] }), _jsxs("div", { children: [_jsx("dt", { children: "Spend" }), _jsx("dd", { children: formatSpend(selected) })] })] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Blockers" }), blockersFor(selected).length === 0 ? (_jsx(Text, { tone: "secondary", children: "No blockers recorded." })) : (blockersFor(selected).map((blocker) => (_jsxs(Surface, { padding: "compact", tone: "secondary", children: [_jsxs(Text, { variant: "meta", tone: "secondary", children: ["Since ", formatTimestamp(blocker.since)] }), _jsx(Text, { children: blocker.summary })] }, `${blocker.since}-${blocker.summary}`))))] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Activity" }), selected.activity === undefined ? (_jsx(Text, { tone: "secondary", children: "No activity recorded." })) : activityFor(selected).length === 0 ? (_jsx(Text, { tone: "secondary", children: "Activity is clear." })) : (_jsx("ul", { className: "work-detail-list", children: activityFor(selected).map((entry) => (_jsxs("li", { children: [_jsxs(Text, { variant: "meta", tone: "secondary", children: [entry.kind, " \u00B7 ", formatTimestamp(entry.occurredAt)] }), _jsx(Text, { children: entry.summary })] }, entry.id))) }))] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Requests" }), selected.requests === undefined ? (_jsx(Text, { tone: "secondary", children: "No requests recorded." })) : requestsFor(selected).length === 0 ? (_jsx(Text, { tone: "secondary", children: "No outstanding requests." })) : (_jsx("ul", { className: "work-detail-list", children: requestsFor(selected).map((request) => (_jsxs("li", { children: [_jsxs("div", { className: "work-request-heading", children: [_jsx(Text, { children: request.summary }), _jsx(StateLabel, { label: requestPresentation[request.state].label, size: "compact", tone: requestPresentation[request.state].tone })] }), request.approvalTarget === null ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "No approval link recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Approval target recorded." })) : (exactLink(request.approvalTarget, `Open ${request.approvalTarget.host} approval`))] }, request.id))) }))] }), _jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Review" }), _jsxs("div", { className: "work-review-heading", children: [reviewLabel(selected.review), selected.review?.url === null || selected.review?.url === undefined ? null : externalLinks ===
244
- "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Review target recorded." })) : (reviewLink(selected.review.url))] }), selected.review?.summary === null || selected.review?.summary === undefined ? null : (_jsx(Text, { tone: "secondary", children: selected.review.summary }))] }), (() => {
245
- const group = familyForGoal(snapshot, selected.id);
246
- if (group === null)
247
- return null;
248
- return (_jsxs("div", { className: "work-inspector-section", children: [_jsx(Text, { as: "h3", variant: "label", children: "Superseded history" }), _jsxs(Text, { tone: "secondary", variant: "meta", children: ["Canonical ", group.canonicalGoalId, " \u00B7 ", group.superseded.length, " superseded preserved"] }), _jsxs("details", { className: "work-family-history", children: [_jsxs("summary", { children: ["Show ", group.superseded.length, " superseded"] }), _jsx("ul", { className: "work-detail-list", children: group.superseded.map((entry) => (_jsxs("li", { children: [_jsxs("div", { className: "work-request-heading", children: [_jsx(Text, { children: entry.title }), _jsx(StateLabel, { label: statePresentation[entry.state].label, size: "compact", tone: statePresentation[entry.state].tone })] }), _jsxs(Text, { tone: "secondary", variant: "meta", children: [entry.summary, " \u00B7 ", formatTimestamp(entry.updatedAt)] }), blockersFor(entry).length === 0 ? null : (_jsx("ul", { className: "work-detail-list", children: blockersFor(entry).map((blocker) => (_jsx("li", { children: _jsxs(Text, { tone: "secondary", variant: "meta", children: ["Blocker: ", blocker.summary, " \u00B7 ", formatTimestamp(blocker.since)] }) }, `${blocker.since}-${blocker.summary}`))) })), entry.review === undefined || entry.review === null ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Review ", reviewPresentation[entry.review.state].label, entry.review.summary === null ? "" : ` · ${entry.review.summary}`] })), entry.activity === undefined || entry.activity.length === 0 ? null : (_jsxs(Text, { tone: "secondary", variant: "meta", children: ["Activity ", entry.activity.length, " checkpoint", entry.activity.length === 1 ? "" : "s"] }))] }, entry.id))) })] })] }));
249
- })(), selected.connectTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact Connect target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Connect target recorded." })) : (_jsx("a", { className: "work-connect-link", href: selected.connectTarget.url, children: "Open exact agent in Connect \u2192" })), selected.approvalTarget === undefined || selected.approvalTarget === null ? (_jsx(Text, { tone: "secondary", children: "No exact approval target recorded." })) : externalLinks === "disabled" ? (_jsx(Text, { tone: "secondary", variant: "meta", children: "Approval target recorded." })) : (exactLink(selected.approvalTarget, `Open ${selected.approvalTarget.host} approval`))] }))] })), selected === null || !detailsOpen ? null : (_jsx(Surface, { className: "work-delivery-evidence", padding: "spacious", children: _jsx(StageRail, { heading: `Shipment path · ${selected.title}`, stages: stagesFor(selected) }) }))] }));
303
+ }), children: "Load 10 more" }))) : null] }), selected === null || !detailsOpen ? null : (_jsx(Region, { actions: navigation === undefined ? (_jsx(Button, { onClick: () => {
304
+ setDetailsOpen(false);
305
+ const selectedRow = selectedRowRef.current ?? selectedLinkRowRef.current;
306
+ selectedRow?.focus();
307
+ }, variant: "secondary", children: "Close details" })) : (_jsx("a", { className: "work-exact-link", href: withFragment(navigation({
308
+ goalId: encodeWorkBoardNavigationGoal({
309
+ detailsOpen: false,
310
+ goalId: selectedId,
311
+ statusFilter,
312
+ visibleGoalCount
313
+ }),
314
+ window
315
+ }), selectedGoalFragment), children: "Close details" })), "aria-label": "Goal details", className: "work-inspector", headingId: "work-goal-details-title", id: "work-goal-details", ref: detailsRef, title: selected.title, children: _jsx(GoalDetail, { externalLinks: externalLinks, goal: selected, snapshot: snapshot }) }))] }))] }));
250
316
  };
251
317
  //# sourceMappingURL=view.js.map
package/dist/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAqB,MAAM,uBAAuB,CAAA;AACrG,OAAO,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAA;AActE,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAA;AAE9F,MAAM,OAAO,GAAsC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAClF,MAAM,UAAU,GAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC1G,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAClC,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AACjD,MAAM,UAAU,GAAqC;IACnD,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,WAAW;CACZ,CAAA;AACD,MAAM,aAAa,GAA6C,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,CAAA;AAEtF,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;CACkC,CAAA;AAExD,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IAC/C,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/C,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;CACmD,CAAA;AAExG,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CAC6B,CAAA;AAEnD,MAAM,kBAAkB,GAAG;IACzB,aAAa,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1D,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IAClD,iBAAiB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE;IACnE,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;CACoE,CAAA;AAEvH,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACjD,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;CACsD,CAAA;AAE3G,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE,CACpD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;IAC/B,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAEtB,MAAM,WAAW,GAAG,CAAC,IAAc,EAAU,EAAE,CAC7C,IAAI,CAAC,KAAK,KAAK,IAAI;IACjB,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QAC1B,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;KAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAA;AAE5C,MAAM,WAAW,GAAG,CAAC,IAAc,EAA8B,EAAE;IACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACrD,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAc,EAA+B,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;AAExF,MAAM,WAAW,GAAG,CAAC,IAAc,EAA8B,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;AAEvF,MAAM,cAAc,GAAG,CAAC,IAAc,EAAU,EAAE;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAA;IACrC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,6BAA6B,CAAA;IACvF,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAC5D,CAAC,CAAA;AAED,qFAAqF;AACrF,MAAM,SAAS,GAAG,CAAC,MAA0B,EAAE,KAAa,EAAgB,EAAE,CAAC,CAC7E,aAAG,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,GAAG,aAC5C,KAAK,eACJ,CACL,CAAA;AAED,0FAA0F;AAC1F,MAAM,UAAU,GAAG,CAAC,GAAW,EAAgB,EAAE,CAAC,CAChD,YAAG,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,GAAG,mCAEpC,CACL,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,MAAqC,EAAgB,EAAE;IAC1E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,oCAA2B,CAAA;IAC1D,CAAC;IACD,OAAO,CACL,KAAC,UAAU,IACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAC7C,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,GAC3C,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,IAAc,EAA2B,EAAE;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG;YACnB,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE;YACzB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;YAC1B,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa;YAC9F,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACrF,CAAA;QACpB,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;IACpF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAsD,EAAgB,EAAE,CAAC,CAC1G,MAAC,OAAO,IAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,aACvE,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,KAAK,GACD,EACP,KAAC,IAAI,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,YACjC,KAAK,GACD,IACC,CACX,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,SAAwB,EAAE,MAA0B,EAAgB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAE7G,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAE,MAAc,EAA8B,EAAE,CAC3F,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,KAAK,MAAM,CAAC,IAAI,IAAI,CAAA;AAErF,MAAM,kBAAkB,GAAG,CAAC,QAAsB,EAAE,IAAc,EAAiB,EAAE;IACnF,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IACrC,OAAO,GAAG,KAAK,aAAa,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAU,EAAE;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,OAAO,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,QAAQ,EAAE,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,aAAa,GAAG,SAAS,EACzB,aAAa,EACb,aAAa,GAAG,KAAK,EACrB,UAAU,EACV,SAAS,EAOV,EAAgB,EAAE;IACjB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,aAAa,CAAC,CAAA;IACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,aAAa,CAAC,CAAA;IAC/E,MAAM,eAAe,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACrH,MAAM,0BAA0B,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAA;IAC9G,MAAM,mBAAmB,GAAG,eAAe,EAAE,YAAY,IAAI,KAAK,CAAA;IAClE,MAAM,4BAA4B,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,0BAA0B,CAAC,CAAA;IACvG,MAAM,mBAAmB,GACvB,4BAA4B,KAAK,SAAS;QAC1C,CAAC,mBAAmB,KAAK,KAAK,IAAI,4BAA4B,CAAC,KAAK,KAAK,mBAAmB,CAAC;QAC3F,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,iBAAiB,GAAG,mBAAmB,EAAE,EAAE,IAAI,IAAI,CAAA;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,iBAAiB,CAAC,CAAA;IAC9E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,mBAAmB,KAAK,SAAS;QAC/B,CAAC,mBAAmB,KAAK,KAAK,IAAI,mBAAmB,CAAC,KAAK,KAAK,mBAAmB,CAAC;QACpF,CAAC,eAAe,EAAE,WAAW,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAC5F,CAAA;IACD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA4B,mBAAmB,CAAC,CAAA;IAChG,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,gBAAgB,IAAI,uBAAuB,CAAC,CAAA;IACtH,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAA;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAA;IACjE,MAAM,cAAc,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAA;IAC7D,MAAM,aAAa,GACjB,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,YAAY,CAAC,CAAA;IACxG,MAAM,yBAAyB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;IACxF,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,IAAI,CAAA;IAC1E,MAAM,gBAAgB,GACpB,yBAAyB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,GAAG,gBAAgB,GAAG,CAAC,CAAA;IACrG,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAAA;IAC/F,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM;QACzE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM;QAC3E,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CACjC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,EACzF,CAAC,CACF;QACD,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM;QACvE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM;KAC1E,CAAA;IACD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IAC9C,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IACE,UAAU,KAAK,SAAS;YACxB,CAAC,WAAW;YACZ,UAAU,KAAK,IAAI;YACnB,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,oBAAoB,EAAE,EACrD,CAAC;YACD,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,IAAI,IAAI,yBAAyB,KAAK,CAAC,CAAC;YAAE,OAAM;QACnE,cAAc,CAAC,KAAK,CAAC,CAAA;QACrB,aAAa,CAAC,IAAI,CAAC,CAAA;QACnB,mBAAmB,CAAC,uBAAuB,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC,CAAA;IAC3C,OAAO,CACL,mBAAS,SAAS,EAAC,WAAW,qBAAiB,kBAAkB,aAC/D,kBAAQ,SAAS,EAAC,iBAAiB,aACjC,0BACE,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,kBAAkB,EAAC,OAAO,EAAC,YAAY,iCAEjD,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,YAAY,6FAEpC,IACH,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,iCAE9B,EACP,KAAC,IAAI,IAAC,OAAO,EAAC,MAAM,YAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAQ,IACxD,IACC,EACT,MAAC,OAAO,IAAC,SAAS,EAAC,kBAAkB,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,aACtE,eAAK,SAAS,EAAC,mBAAmB,aAChC,0BACE,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,YAAY,4BAE3B,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,sEAE9B,IACH,EACN,KAAC,UAAU,IACT,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,EAC/C,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,GAC/C,IACE,EACN,4BAAgB,sBAAsB,EAAC,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,OAAO,YAC/E,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;4BACtB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gCAC7B,OAAO,CACL,KAAC,MAAM,oBACS,MAAM,KAAK,MAAM,EAE/B,OAAO,EAAE,GAAG,EAAE;wCACZ,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;wCACjG,IACE,gBAAgB,KAAK,SAAS;4CAC9B,CAAC,YAAY,KAAK,KAAK,IAAI,gBAAgB,CAAC,KAAK,KAAK,YAAY,CAAC,EACnE,CAAC;4CACD,cAAc,CAAC,KAAK,CAAC,CAAA;wCACvB,CAAC;wCACD,mBAAmB,CAAC,uBAAuB,CAAC,CAAA;wCAC5C,SAAS,CAAC,MAAM,CAAC,CAAA;oCACnB,CAAC,EACD,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,YAEnD,WAAW,CAAC,MAAM,CAAC,IAdf,MAAM,CAeJ,CACV,CAAA;4BACH,CAAC;4BACD,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAA;4BACjG,MAAM,aAAa,GACjB,UAAU,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,IAAI,gBAAgB,KAAK,uBAAuB,CAAA;4BAC/F,OAAO,CACL,4BACgB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpD,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,UAAU,CAAC;oCACf,MAAM,EAAE,aAAa;wCACnB,CAAC,CAAC,6BAA6B,CAAC;4CAC5B,WAAW,EACT,WAAW;gDACX,gBAAgB,KAAK,SAAS;gDAC9B,CAAC,YAAY,KAAK,KAAK,IAAI,gBAAgB,CAAC,KAAK,KAAK,YAAY,CAAC;4CACrE,MAAM,EAAE,UAAU;4CAClB,YAAY;4CACZ,gBAAgB,EAAE,uBAAuB;yCAC1C,CAAC;wCACJ,CAAC,CAAC,IAAI;oCACR,MAAM,EAAE,MAAM;iCACf,CAAC,YAGD,WAAW,CAAC,MAAM,CAAC,IAFf,MAAM,CAGT,CACL,CAAA;wBACH,CAAC,CAAC,GACE,IACE,EACV,eAAK,SAAS,EAAC,mBAAmB,gBAAY,cAAc,aAC1D,KAAC,WAAW,IAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAI,EACnE,KAAC,WAAW,IAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAI,EAC9D,KAAC,WAAW,IAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAI,EAC9D,KAAC,WAAW,IAAC,KAAK,EAAC,eAAe,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAI,EACzE,KAAC,WAAW,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAI,EAC/D,KAAC,WAAW,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAI,IAC5D,EACL,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC7B,MAAC,OAAO,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,WAAW,aAC1C,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,YAAY,4CAE3B,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,uEAA8D,IAC5E,CACX,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,mBAAmB,aAChC,eAAK,SAAS,EAAC,iBAAiB,aAC9B,eAAK,SAAS,EAAC,oBAAoB,aACjC,4BAAgB,wBAAwB,EAAC,SAAS,EAAC,qBAAqB,EAAC,IAAI,EAAC,OAAO,YAClF,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4CAC3B,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAA;4CACtE,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,iCACgB,YAAY,KAAK,KAAK,EACpC,SAAS,EAAC,oBAAoB,EAE9B,OAAO,EAAE,GAAG,EAAE;oDACZ,cAAc,CAAC,KAAK,CAAC,CAAA;oDACrB,aAAa,CAAC,IAAI,CAAC,CAAA;oDACnB,eAAe,CAAC,KAAK,CAAC,CAAA;oDACtB,mBAAmB,CAAC,uBAAuB,CAAC,CAAA;gDAC9C,CAAC,EACD,IAAI,EAAC,QAAQ,YAEZ,KAAK,IATD,KAAK,CAUH,CACV,CAAC,CAAC,CAAC,CACF,4BACgB,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACzD,SAAS,EAAC,oBAAoB,EAC9B,IAAI,EAAE,UAAU,CAAC;oDACf,MAAM,EAAE,6BAA6B,CAAC;wDACpC,WAAW,EAAE,KAAK;wDAClB,MAAM,EAAE,IAAI;wDACZ,YAAY,EAAE,KAAK;wDACnB,gBAAgB,EAAE,uBAAuB;qDAC1C,CAAC;oDACF,MAAM;iDACP,CAAC,YAGD,KAAK,IAFD,KAAK,CAGR,CACL,CAAA;wCACH,CAAC,CAAC,GACE,EACN,MAAC,IAAI,iBAAW,QAAQ,EAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,yBAC7C,YAAY,CAAC,MAAM,UAAM,aAAa,CAAC,MAAM,cACjD,IACH,EACN,MAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,WAAW,aACvE,eAAK,SAAS,EAAC,iBAAiB,iBAAa,MAAM,aACjD,oCAAmB,EACnB,kCAAiB,EACjB,mCAAkB,EAClB,0CAAyB,EACzB,wCAAuB,EACvB,sCAAqB,EACrB,mCAAkB,IACd,EACL,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5B,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,4CAAmC,GACrD,CACP,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wCACzB,MAAM,GAAG,GAAG,CACV,8BACE,KAAC,UAAU,IACT,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAC1C,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GACxC,EACF,gBAAM,SAAS,EAAC,iBAAiB,aAC/B,KAAC,IAAI,IAAC,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,YAC9B,IAAI,CAAC,KAAK,GACN,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,IAAI,CAAC,OAAO,GACR,EACN,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpD,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC9B,CACR,IACI,EACP,KAAC,IAAI,kBAAY,OAAO,YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAQ,EACjD,gBAAM,SAAS,EAAC,iBAAiB,gBAAY,cAAc,aACzD,KAAC,IAAI,cAAE,cAAc,CAAC,IAAI,CAAC,GAAQ,EAClC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9D,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,aAClC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,aAAI,GAAG,EACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,IAChD,CACR,IACI,EACP,gBAAM,SAAS,EAAC,iBAAiB,gBAAY,YAAY,aACvD,KAAC,IAAI,IAAC,OAAO,EAAC,MAAM,YAAE,IAAI,CAAC,UAAU,CAAC,UAAU,GAAQ,EACxD,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,IAAI,CAAC,UAAU,CAAC,MAAM,GAClB,IACF,EACP,KAAC,IAAI,kBAAY,UAAU,YAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAQ,EACjE,KAAC,IAAI,kBAAY,OAAO,EAAC,OAAO,EAAC,MAAM,YACpC,WAAW,CAAC,IAAI,CAAC,GACb,IACN,CACJ,CAAA;wCACD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,kCACiB,WAAW,IAAI,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,mBACzE,WAAW,IAAI,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,kBACxC,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACtC,SAAS,EAAC,gBAAgB,EAC1B,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAE/D,OAAO,EAAE,GAAG,EAAE;gDACZ,cAAc,CAAC,IAAI,CAAC,CAAA;gDACpB,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;4CACxB,CAAC,EACD,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAC1D,IAAI,EAAC,QAAQ,YAEZ,GAAG,IARC,IAAI,CAAC,EAAE,CASL,CACV,CAAC,CAAC,CAAC,CACF,4BACgB,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,UAAU,CAAC;gDACf,MAAM,EACJ,YAAY,KAAK,KAAK,IAAI,gBAAgB,KAAK,uBAAuB;oDACpE,CAAC,CAAC,IAAI,CAAC,EAAE;oDACT,CAAC,CAAC,6BAA6B,CAAC;wDAC5B,WAAW,EAAE,IAAI;wDACjB,MAAM,EAAE,IAAI,CAAC,EAAE;wDACf,YAAY;wDACZ,gBAAgB;qDACjB,CAAC;gDACR,MAAM;6CACP,CAAC,EAEF,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAC/D,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,YAE7D,GAAG,IAJC,IAAI,CAAC,EAAE,CAKV,CACL,CAAA;oCACH,CAAC,CAAC,IACM,EACT,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC5C,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CACZ,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,6BAI1F,CACV,CAAC,CAAC,CAAC,CACF,YACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAE,UAAU,CAAC;oCACf,MAAM,EAAE,6BAA6B,CAAC;wCACpC,WAAW;wCACX,MAAM,EAAE,UAAU;wCAClB,YAAY;wCACZ,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC;qCAC7F,CAAC;oCACF,MAAM;iCACP,CAAC,6BAGA,CACL,CACF,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,QAAQ,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1C,MAAC,OAAO,kBACK,cAAc,EACzB,EAAE,EAAC,OAAO,EACV,SAAS,EAAC,gBAAgB,EAC1B,EAAE,EAAC,mBAAmB,EACtB,OAAO,EAAC,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,CAAC,CAAC,aAEZ,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,UAAU,IACT,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAC9C,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,GAC5C,EACD,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1B,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;4CACZ,cAAc,CAAC,KAAK,CAAC,CAAA;4CACrB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAA;4CACxE,WAAW,EAAE,KAAK,EAAE,CAAA;wCACtB,CAAC,EACD,OAAO,EAAC,WAAW,8BAGZ,CACV,CAAC,CAAC,CAAC,CACF,YACE,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAE,YAAY,CAChB,UAAU,CAAC;4CACT,MAAM,EAAE,6BAA6B,CAAC;gDACpC,WAAW,EAAE,KAAK;gDAClB,MAAM,EAAE,UAAU;gDAClB,YAAY;gDACZ,gBAAgB;6CACjB,CAAC;4CACF,MAAM;yCACP,CAAC,EACF,oBAAoB,CACrB,8BAGC,CACL,IACG,EACN,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,eAAe,YAClC,QAAQ,CAAC,KAAK,GACV,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAAE,QAAQ,CAAC,MAAM,GAAQ,EAC/C,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,gCAEtB,EACN,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAC3E,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,4DAAmD,CAC1E,CAAC,CAAC,CAAC,CACF,8BACE,MAAC,IAAI,eACF,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,SAAK,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IACrE,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,YAClC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GACjC,EACN,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1D,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,iCAE9B,CACR,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,aAClC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,WAAO,GAAG,EAC7D,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,IACpD,CACR,IACA,CACJ,IACG,EACN,KAAC,OAAO,KAAG,EACX,cAAI,SAAS,EAAC,YAAY,aACxB,0BACE,iCAAc,EACd,uBAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAM,IAC1B,EACN,0BACE,sCAAmB,EACnB,uBAAK,QAAQ,CAAC,UAAU,CAAC,UAAU,GAAM,IACrC,EACN,0BACE,kCAAe,EACf,uBAAK,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAM,IACjC,EACN,0BACE,0CAAuB,EACvB,uBAAK,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAM,IACvC,EACN,0BACE,iCAAc,EACd,uBAAK,WAAW,CAAC,QAAQ,CAAC,GAAM,IAC5B,IACH,EACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,yBAEtB,EACN,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,sCAA6B,CACpD,CAAC,CAAC,CAAC,CACF,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACrC,MAAC,OAAO,IAA6C,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,aACrF,MAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,WAAW,uBAC5B,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,IAChC,EACP,KAAC,IAAI,cAAE,OAAO,CAAC,OAAO,GAAQ,KAJlB,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAKzC,CACX,CAAC,CACH,IACG,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,yBAEtB,EACN,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,sCAA6B,CACpD,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,mCAA0B,CACjD,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,kBAAkB,YAC7B,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpC,yBACE,MAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,WAAW,aAClC,KAAK,CAAC,IAAI,cAAK,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,IAC5C,EACP,KAAC,IAAI,cAAE,KAAK,CAAC,OAAO,GAAQ,KAJrB,KAAK,CAAC,EAAE,CAKZ,CACN,CAAC,GACC,CACN,IACG,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,yBAEtB,EACN,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,sCAA6B,CACpD,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,yCAAgC,CACvD,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,kBAAkB,YAC7B,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACtC,yBACE,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,IAAI,cAAE,OAAO,CAAC,OAAO,GAAQ,EAC9B,KAAC,UAAU,IACT,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAC/C,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,GAC7C,IACE,EACL,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,2CAE9B,CACR,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,0CAE9B,CACR,CAAC,CAAC,CAAC,CACF,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,OAAO,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,CAClF,KAnBM,OAAO,CAAC,EAAE,CAoBd,CACN,CAAC,GACC,CACN,IACG,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,uBAEtB,EACP,eAAK,SAAS,EAAC,qBAAqB,aACjC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa;gDACzF,UAAU,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,wCAE9B,CACR,CAAC,CAAC,CAAC,CACF,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAChC,IACG,EACL,QAAQ,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpF,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAQ,CACxD,IACG,EACL,CAAC,GAAG,EAAE;gCACL,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;gCAClD,IAAI,KAAK,KAAK,IAAI;oCAAE,OAAO,IAAI,CAAA;gCAC/B,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,mCAEtB,EACP,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,2BACxB,KAAK,CAAC,eAAe,cAAK,KAAK,CAAC,UAAU,CAAC,MAAM,6BACvD,EACP,mBAAS,SAAS,EAAC,qBAAqB,aACtC,uCAAe,KAAK,CAAC,UAAU,CAAC,MAAM,mBAAsB,EAC5D,aAAI,SAAS,EAAC,kBAAkB,YAC7B,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/B,yBACE,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,IAAI,cAAE,KAAK,CAAC,KAAK,GAAQ,EAC1B,KAAC,UAAU,IACT,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAC3C,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GACzC,IACE,EACN,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,aAClC,KAAK,CAAC,OAAO,cAAK,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAC9C,EACN,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxC,aAAI,SAAS,EAAC,kBAAkB,YAC7B,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACnC,uBACE,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,0BACzB,OAAO,CAAC,OAAO,cAAK,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,IACvD,IAHA,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAIzC,CACN,CAAC,GACC,CACN,EACA,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,wBAC3B,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EACnD,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAC7D,CACR,EACA,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpE,MAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,0BACzB,KAAK,CAAC,QAAQ,CAAC,MAAM,iBAC9B,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAClC,CACR,KAlCM,KAAK,CAAC,EAAE,CAmCZ,CACN,CAAC,GACC,IACG,IACN,CACP,CAAA;4BACH,CAAC,CAAC,EAAE,EACH,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,kDAAyC,CAChE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,yCAE9B,CACR,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,mDAE7D,CACL,EACA,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAC3E,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,mDAA0C,CACjE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,CACjC,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,0CAE9B,CACR,CAAC,CAAC,CAAC,CACF,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,CACpF,IACO,CACX,IACG,CACP,EACA,QAAQ,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1C,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAC,UAAU,YAC5D,KAAC,SAAS,IAAC,OAAO,EAAE,mBAAmB,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAI,GAChF,CACX,IACO,CACX,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The Work tab's triage: which goals need the viewer, which are blocked, which are moving, and
3
+ * which finished in the last 24 hours, plus the one-sentence summary above them.
4
+ *
5
+ * Pure: callers pass one snapshot. View-only derivation lives here; the goal model, its
6
+ * projection and observed facts stay in `model.ts`/`projection.ts`.
7
+ *
8
+ * A goal needs the viewer when it has an open request: someone asked for an approval only a
9
+ * person can give. Blocked follows the goal's recorded state. Done counts terminal goals updated
10
+ * within 24 hours of the snapshot, labelled as such, never as "since you looked"; older terminal
11
+ * goals stay listed last, as "Finished earlier", so a status filter still finds them.
12
+ */
13
+ import type { WorkGoal, WorkRequest, WorkSnapshot } from "./model.js";
14
+ /** How long a finished goal stays in the "Done in the last 24 hours" group. */
15
+ export declare const workTriageDoneWindowMs = 86400000;
16
+ /** The groups, in reading order. */
17
+ export type WorkTriageGroup = "needs-you" | "blocked" | "moving" | "done" | "earlier";
18
+ export declare const workTriageGroups: ReadonlyArray<WorkTriageGroup>;
19
+ export interface WorkTriageRow {
20
+ readonly goal: WorkGoal;
21
+ readonly group: WorkTriageGroup;
22
+ /** Position in the snapshot, the projection's own order; ties fall back to it. */
23
+ readonly index: number;
24
+ /** Open requests on this goal, oldest first. */
25
+ readonly openRequests: ReadonlyArray<WorkRequest>;
26
+ }
27
+ /** The sentence above the groups. */
28
+ export type WorkTriageSummary = {
29
+ readonly _tag: "Attention";
30
+ readonly needsYou: number;
31
+ readonly blocked: number;
32
+ /** The request waiting longest, when one is open. */
33
+ readonly oldestRequest: {
34
+ readonly goal: WorkGoal;
35
+ readonly request: WorkRequest;
36
+ } | null;
37
+ } | {
38
+ readonly _tag: "Clear";
39
+ readonly moving: number;
40
+ readonly latest: WorkGoal | null;
41
+ } | {
42
+ readonly _tag: "Empty";
43
+ };
44
+ export interface WorkTriage {
45
+ readonly rows: ReadonlyArray<WorkTriageRow>;
46
+ readonly summary: WorkTriageSummary;
47
+ }
48
+ /**
49
+ * Sorts one snapshot's goals into the triage groups and states the summary. The snapshot holds
50
+ * every goal (the model rejects a snapshot over `workSnapshotMaxGoals` rather than truncating it),
51
+ * so a zero here is a real zero.
52
+ */
53
+ export declare const workTriage: (snapshot: Pick<WorkSnapshot, "asOf" | "goals">) => WorkTriage;
54
+ /**
55
+ * `present` for the live snapshot; `past` for a historical window, which is the state as of its
56
+ * time, not now: requests answered since still count there, and newer ones are missing.
57
+ */
58
+ export type WorkTriageTense = "present" | "past";
59
+ /**
60
+ * The summary as its one sentence: "3 goals need you, 2 blocked", "Nothing needs you", "No goals
61
+ * yet"; in the past tense "3 goals needed you, 2 blocked", "Nothing needed you", "No goals".
62
+ */
63
+ export declare const workTriageSentence: (summary: WorkTriageSummary, tense?: WorkTriageTense) => string;
64
+ /** Group titles as the tab shows them. */
65
+ export declare const workTriageGroupTitle: {
66
+ "needs-you": string;
67
+ blocked: string;
68
+ moving: string;
69
+ done: string;
70
+ earlier: string;
71
+ };
72
+ //# sourceMappingURL=work-triage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-triage.d.ts","sourceRoot":"","sources":["../src/work-triage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAa,MAAM,YAAY,CAAA;AAIhF,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,WAAS,CAAA;AAE5C,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;AAErF,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,eAAe,CAAyD,CAAA;AAErH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAClD;AAED,qCAAqC;AACrC,MAAM,MAAM,iBAAiB,GACzB;IACA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,QAAQ,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAA;CAC1F,GACC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAE9B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CACpC;AAmDD;;;;GAIG;AACH,eAAO,MAAM,UAAU,aAAc,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAG,UAyB3E,CAAA;AAID;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAa,iBAAiB,UAAS,eAAe,KAAe,MAenG,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB;;;;;;CAMoB,CAAA"}