@acornly/ui 0.1.0 → 0.3.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 (64) hide show
  1. package/README.md +122 -4
  2. package/dist/brand.d.ts +50 -0
  3. package/dist/brand.d.ts.map +1 -0
  4. package/dist/brand.js +84 -0
  5. package/dist/brand.js.map +1 -0
  6. package/dist/card.d.ts +24 -1
  7. package/dist/card.d.ts.map +1 -1
  8. package/dist/card.js +49 -9
  9. package/dist/card.js.map +1 -1
  10. package/dist/chat-model.d.ts +165 -0
  11. package/dist/chat-model.d.ts.map +1 -0
  12. package/dist/chat-model.js +576 -0
  13. package/dist/chat-model.js.map +1 -0
  14. package/dist/chat-panel.d.ts +36 -0
  15. package/dist/chat-panel.d.ts.map +1 -0
  16. package/dist/chat-panel.js +760 -0
  17. package/dist/chat-panel.js.map +1 -0
  18. package/dist/chat-picker.d.ts +56 -0
  19. package/dist/chat-picker.d.ts.map +1 -0
  20. package/dist/chat-picker.js +284 -0
  21. package/dist/chat-picker.js.map +1 -0
  22. package/dist/chat-protocol.d.ts +151 -0
  23. package/dist/chat-protocol.d.ts.map +1 -0
  24. package/dist/chat-protocol.js +113 -0
  25. package/dist/chat-protocol.js.map +1 -0
  26. package/dist/chat-speech.d.ts +61 -0
  27. package/dist/chat-speech.d.ts.map +1 -0
  28. package/dist/chat-speech.js +119 -0
  29. package/dist/chat-speech.js.map +1 -0
  30. package/dist/chat.d.ts +148 -0
  31. package/dist/chat.d.ts.map +1 -0
  32. package/dist/chat.js +119 -0
  33. package/dist/chat.js.map +1 -0
  34. package/dist/compose.d.ts +1 -1
  35. package/dist/compose.d.ts.map +1 -1
  36. package/dist/compose.js.map +1 -1
  37. package/dist/composer.d.ts +26 -1
  38. package/dist/composer.d.ts.map +1 -1
  39. package/dist/composer.js +73 -5
  40. package/dist/composer.js.map +1 -1
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/media.d.ts.map +1 -1
  45. package/dist/media.js +0 -1
  46. package/dist/media.js.map +1 -1
  47. package/dist/painter.d.ts +20 -2
  48. package/dist/painter.d.ts.map +1 -1
  49. package/dist/painter.js +41 -6
  50. package/dist/painter.js.map +1 -1
  51. package/dist/panel.js +5 -5
  52. package/dist/parts.d.ts +2 -0
  53. package/dist/parts.d.ts.map +1 -1
  54. package/dist/parts.js +2 -0
  55. package/dist/parts.js.map +1 -1
  56. package/dist/pins.d.ts.map +1 -1
  57. package/dist/pins.js +14 -9
  58. package/dist/pins.js.map +1 -1
  59. package/dist/theme.d.ts +1 -1
  60. package/dist/theme.d.ts.map +1 -1
  61. package/dist/theme.js +14 -34
  62. package/dist/theme.js.map +1 -1
  63. package/dist/toolbar.js +3 -3
  64. package/package.json +11 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-panel.js","sourceRoot":"","sources":["../src/chat-panel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * "Change" on the chat's chip: picking what to ask about, by clicking an outlined item on the page
3
+ * or from the text tree (design doc, section 6). Part of the chat's lazy chunk.
4
+ */
5
+ import type { ContextSnapshot, Rect } from "./chat-protocol.js";
6
+ /** The attribute an app marks an item's element with. */
7
+ export declare const CONTEXT_ATTRIBUTE = "data-acornly-context";
8
+ /**
9
+ * Where each pickable item is on screen, in viewport pixels: one rectangle per line an element
10
+ * takes (a verse that wraps over three lines is three), clipped to the scrolling boxes it sits in,
11
+ * so nothing is outlined where it cannot be seen. An item may be on several elements.
12
+ */
13
+ export declare function collectMarks(doc: Document, snapshot: ContextSnapshot, rect?: (id: string) => Rect | null): Map<string, Rect[]>;
14
+ export interface PickOutlines {
15
+ close(): void;
16
+ }
17
+ /**
18
+ * Shows every marked item over the page, quietly: a light tint on each line it takes, and a thin
19
+ * frame for an item that holds others (a card around its rows). The item under the pointer lights
20
+ * up in full, every line of it together, with its name beside it. Smaller boxes sit above larger
21
+ * ones, so a click picks the innermost item. Escape, or a click outside every box, ends picking
22
+ * with nothing picked.
23
+ */
24
+ export declare function outlineItems(options: {
25
+ layer: HTMLElement;
26
+ snapshot: ContextSnapshot;
27
+ marks: Map<string, Rect[]>;
28
+ focus: readonly string[];
29
+ labels: {
30
+ hint: string;
31
+ list: string;
32
+ cancel: string;
33
+ };
34
+ onPick(id: string): void;
35
+ onList(): void;
36
+ onCancel(): void;
37
+ }): PickOutlines;
38
+ export interface TextTreeLabels {
39
+ tree: string;
40
+ inFocus: string;
41
+ onScreen: string;
42
+ }
43
+ /**
44
+ * The text tree: every item, indented by its parent, as an ARIA tree. Arrow keys move (Right to
45
+ * the first child, Left to the parent), Home and End jump, typing jumps to a label, Enter or Space
46
+ * picks. It opens with the current focus selected.
47
+ */
48
+ export declare function textTree(options: {
49
+ doc: Document;
50
+ snapshot: ContextSnapshot;
51
+ focus: readonly string[];
52
+ onScreen: ReadonlySet<string>;
53
+ labels: TextTreeLabels;
54
+ onPick(id: string): void;
55
+ }): HTMLElement;
56
+ //# sourceMappingURL=chat-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-picker.d.ts","sourceRoot":"","sources":["../src/chat-picker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAIhE,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAIxD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,eAAe,EACzB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,GACjC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CA2BrB;AA0DD,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,IAAI,IAAI,CAAC;CAClB,GAAG,YAAY,CAsFf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAChC,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,WAAW,CA4Fd"}
@@ -0,0 +1,284 @@
1
+ import { treeRows } from "./chat-protocol.js";
2
+ import { h, styleElement } from "./dom.js";
3
+ /** The attribute an app marks an item's element with. */
4
+ export const CONTEXT_ATTRIBUTE = "data-acornly-context";
5
+ /** Notes' stable key, which counts as a mark when its value is an item's id. */
6
+ const ANCHOR_ATTRIBUTE = "data-ctx-anchor";
7
+ /**
8
+ * Where each pickable item is on screen, in viewport pixels: one rectangle per line an element
9
+ * takes (a verse that wraps over three lines is three), clipped to the scrolling boxes it sits in,
10
+ * so nothing is outlined where it cannot be seen. An item may be on several elements.
11
+ */
12
+ export function collectMarks(doc, snapshot, rect) {
13
+ const pickable = new Set(snapshot.items.filter((item) => item.pick !== "tree-only").map((item) => item.id));
14
+ const view = doc.defaultView;
15
+ const screen = { x: 0, y: 0, width: view?.innerWidth ?? 0, height: view?.innerHeight ?? 0 };
16
+ const marks = new Map();
17
+ const add = (id, r) => {
18
+ if (!r || r.width <= 0 || r.height <= 0)
19
+ return;
20
+ marks.set(id, [...(marks.get(id) ?? []), r]);
21
+ };
22
+ for (const el of doc.querySelectorAll(`[${CONTEXT_ATTRIBUTE}], [${ANCHOR_ATTRIBUTE}]`)) {
23
+ const id = el.getAttribute(CONTEXT_ATTRIBUTE) ?? el.getAttribute(ANCHOR_ATTRIBUTE) ?? "";
24
+ if (!pickable.has(id))
25
+ continue;
26
+ const area = visibleArea(el, view ? screen : null);
27
+ for (const line of el.getClientRects()) {
28
+ const r = clip({ x: line.left, y: line.top, width: line.width, height: line.height }, area);
29
+ if (r && !covered(doc, el, r))
30
+ add(id, r);
31
+ }
32
+ }
33
+ if (rect) {
34
+ for (const id of pickable) {
35
+ if (marks.has(id))
36
+ continue;
37
+ add(id, clip(rect(id), view ? screen : null));
38
+ }
39
+ }
40
+ return marks;
41
+ }
42
+ /** The part of the screen an element can show in: the viewport, cut by every box that scrolls or clips it. */
43
+ function visibleArea(el, screen) {
44
+ let area = screen;
45
+ const view = el.ownerDocument.defaultView;
46
+ if (!view)
47
+ return area;
48
+ for (let p = el.parentElement; p; p = p.parentElement) {
49
+ const style = view.getComputedStyle(p);
50
+ if (!/auto|scroll|hidden|clip/.test(style.overflowX + style.overflowY))
51
+ continue;
52
+ const box = p.getBoundingClientRect();
53
+ area = clip({ x: box.left, y: box.top, width: box.width, height: box.height }, area);
54
+ if (!area)
55
+ return { x: 0, y: 0, width: 0, height: 0 };
56
+ }
57
+ return area;
58
+ }
59
+ /**
60
+ * Whether something else is drawn over the middle of `r` (a sheet or a panel over the page), so
61
+ * the line cannot be seen or clicked there.
62
+ */
63
+ function covered(doc, el, r) {
64
+ const hit = doc.elementFromPoint?.(r.x + r.width / 2, r.y + r.height / 2);
65
+ return hit != null && hit !== el && !el.contains(hit) && !hit.contains(el);
66
+ }
67
+ /** `r` cut to `area`; null when nothing of it is left. */
68
+ function clip(r, area) {
69
+ if (!r || !area)
70
+ return r;
71
+ const x = Math.max(r.x, area.x);
72
+ const y = Math.max(r.y, area.y);
73
+ const right = Math.min(r.x + r.width, area.x + area.width);
74
+ const bottom = Math.min(r.y + r.height, area.y + area.height);
75
+ return right > x && bottom > y ? { x, y, width: right - x, height: bottom - y } : null;
76
+ }
77
+ /** Whether `outer` holds all of `inner`. */
78
+ const holds = (outer, inner) => inner.x >= outer.x &&
79
+ inner.y >= outer.y &&
80
+ inner.x + inner.width <= outer.x + outer.width &&
81
+ inner.y + inner.height <= outer.y + outer.height;
82
+ const PICKER_CSS = `
83
+ .ctx-pick-layer { position: fixed; inset: 0; z-index: 2; cursor: crosshair; }
84
+ .ctx-pick-box { all: unset; position: fixed; box-sizing: border-box; border-radius: 4px; cursor: pointer;
85
+ background: color-mix(in srgb, var(--_accent) 9%, transparent);
86
+ box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--_accent) 45%, transparent); }
87
+ .ctx-pick-box[data-holder] { background: none; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--_accent) 35%, transparent); }
88
+ .ctx-pick-box[data-focus] { background: color-mix(in srgb, var(--_accent) 18%, transparent); }
89
+ .ctx-pick-box[data-hot], .ctx-pick-box:focus-visible { background: color-mix(in srgb, var(--_accent) 26%, transparent);
90
+ box-shadow: 0 0 0 2px var(--_accent); }
91
+ .ctx-pick-tag { position: fixed; padding: 2px 8px; border-radius: 6px; background: var(--_accent); color: var(--_background);
92
+ font-size: 0.8em; line-height: 1.5; white-space: nowrap; pointer-events: none; }
93
+ .ctx-pick-hint { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 24px); box-sizing: border-box; padding: 6px 14px; border-radius: 999px; background: var(--_foreground); color: var(--_background); font-size: 0.86em; }
94
+ .ctx-pick-hint button { all: unset; margin-left: 10px; text-decoration: underline; cursor: pointer; }
95
+ `;
96
+ /**
97
+ * Shows every marked item over the page, quietly: a light tint on each line it takes, and a thin
98
+ * frame for an item that holds others (a card around its rows). The item under the pointer lights
99
+ * up in full, every line of it together, with its name beside it. Smaller boxes sit above larger
100
+ * ones, so a click picks the innermost item. Escape, or a click outside every box, ends picking
101
+ * with nothing picked.
102
+ */
103
+ export function outlineItems(options) {
104
+ const doc = options.layer.ownerDocument;
105
+ const itemOf = new Map(options.snapshot.items.map((item) => [item.id, item]));
106
+ const boxes = [...options.marks]
107
+ .flatMap(([id, rects]) => rects.map((r) => ({ id, r })))
108
+ .sort((a, b) => b.r.width * b.r.height - a.r.width * a.r.height);
109
+ const overlay = h(doc, "div", { class: "ctx-pick-layer" }, styleElement(doc, PICKER_CSS));
110
+ const tag = h(doc, "div", { class: "ctx-pick-tag", hidden: "" });
111
+ const byId = new Map();
112
+ const light = (id, at) => {
113
+ for (const el of overlay.querySelectorAll("[data-hot]"))
114
+ el.removeAttribute("data-hot");
115
+ if (id === null || !at) {
116
+ tag.hidden = true;
117
+ return;
118
+ }
119
+ for (const el of byId.get(id) ?? [])
120
+ el.setAttribute("data-hot", "");
121
+ const item = itemOf.get(id);
122
+ tag.textContent = [item?.label ?? id, item?.kind].filter(Boolean).join(" · ");
123
+ tag.hidden = false;
124
+ Object.assign(tag.style, {
125
+ left: `${Math.max(4, at.x)}px`,
126
+ top: `${at.y > 28 ? at.y - 26 : at.y + at.height + 4}px`,
127
+ });
128
+ };
129
+ for (const { id, r } of boxes) {
130
+ const holder = boxes.some((o) => o.id !== id && o.r !== r && holds(r, o.r));
131
+ const box = h(doc, "button", {
132
+ class: "ctx-pick-box",
133
+ type: "button",
134
+ "aria-label": itemOf.get(id)?.label ?? id,
135
+ "data-id": id,
136
+ "data-focus": options.focus.includes(id) ? "" : undefined,
137
+ "data-holder": holder ? "" : undefined,
138
+ });
139
+ Object.assign(box.style, {
140
+ left: `${r.x - 2}px`,
141
+ top: `${r.y - 1}px`,
142
+ width: `${r.width + 4}px`,
143
+ height: `${r.height + 2}px`,
144
+ });
145
+ byId.set(id, [...(byId.get(id) ?? []), box]);
146
+ const first = options.marks.get(id)[0];
147
+ box.addEventListener("pointerenter", () => light(id, first));
148
+ box.addEventListener("focus", () => light(id, first));
149
+ box.addEventListener("pointerleave", () => light(null));
150
+ box.addEventListener("click", (event) => {
151
+ event.stopPropagation();
152
+ finish();
153
+ options.onPick(id);
154
+ });
155
+ overlay.append(box);
156
+ }
157
+ overlay.append(tag);
158
+ const list = h(doc, "button", { type: "button" }, options.labels.list);
159
+ list.addEventListener("click", (event) => {
160
+ event.stopPropagation();
161
+ finish();
162
+ options.onList();
163
+ });
164
+ const cancel = h(doc, "button", { type: "button" }, options.labels.cancel);
165
+ cancel.addEventListener("click", (event) => {
166
+ event.stopPropagation();
167
+ finish();
168
+ options.onCancel();
169
+ });
170
+ overlay.append(h(doc, "div", { class: "ctx-pick-hint" }, options.labels.hint, list, cancel));
171
+ overlay.addEventListener("click", () => {
172
+ finish();
173
+ options.onCancel();
174
+ });
175
+ const onKey = (event) => {
176
+ if (event.key !== "Escape")
177
+ return;
178
+ event.preventDefault();
179
+ finish();
180
+ options.onCancel();
181
+ };
182
+ doc.addEventListener("keydown", onKey, true);
183
+ options.layer.append(overlay);
184
+ let done = false;
185
+ function finish() {
186
+ if (done)
187
+ return;
188
+ done = true;
189
+ doc.removeEventListener("keydown", onKey, true);
190
+ overlay.remove();
191
+ }
192
+ return { close: finish };
193
+ }
194
+ /**
195
+ * The text tree: every item, indented by its parent, as an ARIA tree. Arrow keys move (Right to
196
+ * the first child, Left to the parent), Home and End jump, typing jumps to a label, Enter or Space
197
+ * picks. It opens with the current focus selected.
198
+ */
199
+ export function textTree(options) {
200
+ const { doc, snapshot, focus, onScreen, labels } = options;
201
+ const rows = treeRows(snapshot);
202
+ const parents = new Set(snapshot.items.map((item) => item.parent).filter(Boolean));
203
+ const tree = h(doc, "ul", { role: "tree", "aria-label": labels.tree, class: "ctx-chat-tree" });
204
+ const nodes = rows.map(({ item, depth }) => {
205
+ const states = [
206
+ focus.includes(item.id) ? labels.inFocus : "",
207
+ onScreen.has(item.id) ? labels.onScreen : "",
208
+ ].filter(Boolean);
209
+ const node = h(doc, "li", {
210
+ role: "treeitem",
211
+ "aria-level": String(depth + 1),
212
+ "aria-selected": focus.includes(item.id) ? "true" : "false",
213
+ "aria-expanded": parents.has(item.id) ? "true" : undefined,
214
+ tabindex: "-1",
215
+ "data-id": item.id,
216
+ }, [item.label, item.kind ?? "", ...states].filter(Boolean).join(", "));
217
+ node.style.paddingInlineStart = `${8 + depth * 14}px`;
218
+ node.addEventListener("click", () => options.onPick(item.id));
219
+ return node;
220
+ });
221
+ tree.append(...nodes);
222
+ const start = Math.max(0, rows.findIndex(({ item }) => focus.includes(item.id)));
223
+ nodes[start]?.setAttribute("tabindex", "0");
224
+ let typed = "";
225
+ let typedAt = 0;
226
+ const move = (from, to) => {
227
+ if (!to)
228
+ return;
229
+ from.setAttribute("tabindex", "-1");
230
+ to.setAttribute("tabindex", "0");
231
+ to.focus();
232
+ };
233
+ tree.addEventListener("keydown", (event) => {
234
+ const current = event.target;
235
+ const i = nodes.indexOf(current);
236
+ if (i < 0)
237
+ return;
238
+ const { item, depth } = rows[i];
239
+ let handled = true;
240
+ switch (event.key) {
241
+ case "ArrowDown":
242
+ move(current, nodes[i + 1]);
243
+ break;
244
+ case "ArrowUp":
245
+ move(current, nodes[i - 1]);
246
+ break;
247
+ case "Home":
248
+ move(current, nodes[0]);
249
+ break;
250
+ case "End":
251
+ move(current, nodes[nodes.length - 1]);
252
+ break;
253
+ case "ArrowRight":
254
+ if (rows[i + 1]?.depth === depth + 1)
255
+ move(current, nodes[i + 1]);
256
+ break;
257
+ case "ArrowLeft":
258
+ move(current, nodes[rows.findIndex(({ item: parent }) => parent.id === item.parent)] ?? undefined);
259
+ break;
260
+ case "Enter":
261
+ case " ":
262
+ options.onPick(item.id);
263
+ break;
264
+ default:
265
+ handled = false;
266
+ if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
267
+ const now = Date.now();
268
+ typed = now - typedAt > 700 ? event.key : typed + event.key;
269
+ typedAt = now;
270
+ const lower = typed.toLowerCase();
271
+ // One letter moves on to the next match; more letters refine, so the current row counts.
272
+ const from = typed.length > 1 ? i : i + 1;
273
+ const at = [...rows.slice(from), ...rows.slice(0, from)].find(({ item: row }) => row.label.toLowerCase().startsWith(lower));
274
+ if (at)
275
+ move(current, nodes[rows.indexOf(at)]);
276
+ handled = true;
277
+ }
278
+ }
279
+ if (handled)
280
+ event.preventDefault();
281
+ });
282
+ return tree;
283
+ }
284
+ //# sourceMappingURL=chat-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-picker.js","sourceRoot":"","sources":["../src/chat-picker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3C,yDAAyD;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AACxD,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAa,EACb,QAAyB,EACzB,IAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAClF,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC;IAC7B,MAAM,MAAM,GAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC;IAClG,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,CAAc,EAAE,EAAE;QACzC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO;QAChD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,OAAO,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACvF,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC5B,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8GAA8G;AAC9G,SAAS,WAAW,CAAC,EAAW,EAAE,MAAmB;IACnD,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAAE,SAAS;QACjF,MAAM,GAAG,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACtC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,GAAa,EAAE,EAAW,EAAE,CAAO;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,0DAA0D;AAC1D,SAAS,IAAI,CAAC,CAAc,EAAE,IAAiB;IAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzF,CAAC;AAED,4CAA4C;AAC5C,MAAM,KAAK,GAAG,CAAC,KAAW,EAAE,KAAW,EAAE,EAAE,CACzC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;IAC9C,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AAEnD,MAAM,UAAU,GAAG;;;;;;;;;;;;;CAalB,CAAC;AAMF;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAS5B;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;SAC7B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,EAAiB,EAAE,EAAS,EAAE,EAAE;QAC7C,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACxF,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;YAClB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACvB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;YAC9B,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI;SACzD,CAAC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;YACzC,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACzD,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;SACvC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACvB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI;YACpB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI;YACnB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI;YACzB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC,CAAE,CAAC;QACzC,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACvC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO;QACnC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC;IACF,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,SAAS,MAAM;QACb,IAAI,IAAI;YAAE,OAAO;QACjB,IAAI,GAAG,IAAI,CAAC;QACZ,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAOxB;IACC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG;YACb,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC7C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SAC7C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,CAAC,CACZ,GAAG,EACH,IAAI,EACJ;YACE,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YAC/B,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC3D,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1D,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI,CAAC,EAAE;SACnB,EACD,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpE,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,IAAI,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,EACD,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACtD,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,IAAiB,EAAE,EAA2B,EAAE,EAAE;QAC9D,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACpC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACjC,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC;IACF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO;QAClB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC;oBAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CACF,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CACpF,CAAC;gBACF,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,GAAG;gBACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM;YACR;gBACE,OAAO,GAAG,KAAK,CAAC;gBAChB,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAChF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;oBAC5D,OAAO,GAAG,GAAG,CAAC;oBACd,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBAClC,yFAAyF;oBACzF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC1C,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAC9E,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAC1C,CAAC;oBACF,IAAI,EAAE;wBAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;QACL,CAAC;QACD,IAAI,OAAO;YAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * The app context protocol, version 0.1: what an app tells the in-app chat about where the person
3
+ * is (docs/design/app-context-protocol.md). Experimental: it ships with the chat in
4
+ * `@acornly/ui/chat` and moves to `@acornly/core` once the chat's checks pass.
5
+ */
6
+ export declare const PROTOCOL_VERSION = "0.1";
7
+ /** Limits on one snapshot and one turn (design doc, sections 3 and 10). */
8
+ export declare const CHAT_LIMITS: {
9
+ readonly items: 500;
10
+ readonly around: 50;
11
+ /** Characters of text parts sent with one turn. */
12
+ readonly textChars: 64000;
13
+ readonly images: 4;
14
+ readonly imageBytes: 2000000;
15
+ readonly loadsPerTurn: 10;
16
+ readonly roundsPerTurn: 3;
17
+ readonly turns: 20;
18
+ /** Input tokens a conversation may reach, estimated at four characters a token. */
19
+ readonly conversationTokens: 100000;
20
+ readonly replyTokens: 1024;
21
+ };
22
+ export interface Rect {
23
+ x: number;
24
+ y: number;
25
+ width: number;
26
+ height: number;
27
+ }
28
+ /** Whether a part goes to the model (`send`) or only its item's label does (`label-only`). */
29
+ export type PartUse = "send" | "label-only";
30
+ export type ContentPart = ({
31
+ type: "text";
32
+ text: string;
33
+ format?: "plain" | "markdown" | "latex";
34
+ lang?: string;
35
+ } | {
36
+ type: "image";
37
+ url?: string;
38
+ data?: Blob;
39
+ alt: string;
40
+ region?: Rect;
41
+ } | {
42
+ type: "audio";
43
+ url: string;
44
+ transcript?: string;
45
+ at?: {
46
+ start: number;
47
+ end?: number;
48
+ };
49
+ } | {
50
+ type: "video";
51
+ url: string;
52
+ transcript?: string;
53
+ at?: {
54
+ start: number;
55
+ end?: number;
56
+ };
57
+ } | {
58
+ type: "data";
59
+ schema: string;
60
+ value: unknown;
61
+ summary: string;
62
+ }) & {
63
+ use?: PartUse;
64
+ };
65
+ export interface ContextItem {
66
+ /** Stable for the item's life, unique in the snapshot. */
67
+ id: string;
68
+ /** The parent item's id; none for a root. */
69
+ parent?: string;
70
+ /** What a person calls it, short: "Step 2", "John 3:16". */
71
+ label: string;
72
+ /** The app's word for what it is: "step", "verse", "place". */
73
+ kind?: string;
74
+ content?: ContentPart[];
75
+ /** True until `load(id)` fills `content`. */
76
+ lazy?: boolean;
77
+ /** Where acorns about it anchor. Omitted: it cannot be kept against. */
78
+ anchor?: {
79
+ source: string;
80
+ quote?: string;
81
+ };
82
+ /** Namespaced concept keys: `wikidata:Q…`, `scholeo:concept/…`. */
83
+ about?: string[];
84
+ /** Default language of its text parts. */
85
+ lang?: string;
86
+ /** How "Change" offers it: outlined on screen (the default) or in the text tree only. */
87
+ pick?: "outline" | "tree-only";
88
+ }
89
+ export interface AroundLink {
90
+ /** An item id `load(id)` can return. */
91
+ id: string;
92
+ /** parent, child, next, prev, related, concept, source. */
93
+ rel: string;
94
+ /** The item it relates to; the focus when omitted. */
95
+ from?: string;
96
+ label: string;
97
+ kind?: string;
98
+ }
99
+ export interface ContextRules {
100
+ never?: string[];
101
+ prefer?: string[];
102
+ /** Hand-back ids offered instead of a refused answer. */
103
+ insteadOffer?: string[];
104
+ guard?: "none" | "callback" | "relay";
105
+ }
106
+ export interface HandBack {
107
+ id: string;
108
+ label: string;
109
+ /** When the model should offer it, for the model only. */
110
+ when: string;
111
+ /** Item kinds it applies to; any item when omitted. */
112
+ kinds?: string[];
113
+ }
114
+ export interface ContextSnapshot {
115
+ protocol: typeof PROTOCOL_VERSION;
116
+ items: ContextItem[];
117
+ focus: string[];
118
+ around?: AroundLink[];
119
+ rules?: ContextRules;
120
+ handBacks?: HandBack[];
121
+ lang?: string;
122
+ }
123
+ /** A snapshot the chat can use, and what was dropped from it, in words for the chip's details. */
124
+ export interface CheckedSnapshot {
125
+ snapshot: ContextSnapshot;
126
+ dropped: string[];
127
+ }
128
+ /**
129
+ * Checks a snapshot against the protocol and its limits: items beyond the limit, repeated ids,
130
+ * parents listed after their children, focus ids not in the items, and links beyond the limit
131
+ * are dropped, each named in `dropped`. A snapshot with no usable item throws.
132
+ */
133
+ export declare function checkSnapshot(input: ContextSnapshot): CheckedSnapshot;
134
+ /** One row of the text tree: an item and how deep it sits. */
135
+ export interface TreeRow {
136
+ item: ContextItem;
137
+ depth: number;
138
+ }
139
+ /** The items in tree order, each with its depth, for the text tree and the model's outline. */
140
+ export declare function treeRows(snapshot: ContextSnapshot): TreeRow[];
141
+ /** The item and its ancestors, nearest first. */
142
+ export declare function lineage(snapshot: ContextSnapshot, id: string): ContextItem[];
143
+ /** The chip's words for a focus: one label, or the first and last joined ("John 3:16 – 3:18"). */
144
+ export declare function focusLabel(snapshot: ContextSnapshot, focus: readonly string[]): string;
145
+ /** Parts that may go to the model. */
146
+ export declare function sendableParts(parts: readonly ContentPart[] | undefined): ContentPart[];
147
+ /** Whether an item has a part kept from the model, so the model is told it is withheld. */
148
+ export declare function hasWithheld(parts: readonly ContentPart[] | undefined): boolean;
149
+ /** The hand-backs that apply to an item, by its kind. */
150
+ export declare function handBacksFor(snapshot: ContextSnapshot, item: ContextItem | undefined): HandBack[];
151
+ //# sourceMappingURL=chat-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-protocol.d.ts","sourceRoot":"","sources":["../src/chat-protocol.ts"],"names":[],"mappings":"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"}