@cellarnode/ui 0.201.1 → 0.203.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/composer.d.ts +6 -1
- package/dist/agent/composer.d.ts.map +1 -1
- package/dist/agent/composer.js +43 -9
- package/dist/agent/composer.js.map +1 -1
- package/dist/agent/conversation.d.ts +20 -2
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/conversation.js +39 -5
- package/dist/agent/conversation.js.map +1 -1
- package/dist/agent/copy.d.ts +7 -0
- package/dist/agent/copy.d.ts.map +1 -1
- package/dist/agent/copy.js +9 -0
- package/dist/agent/copy.js.map +1 -1
- package/dist/agent/fixtures.d.ts +34 -0
- package/dist/agent/fixtures.d.ts.map +1 -1
- package/dist/agent/fixtures.js +83 -0
- package/dist/agent/fixtures.js.map +1 -1
- package/dist/agent/index.d.ts +18 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +18 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/markdown.d.ts +64 -0
- package/dist/agent/markdown.d.ts.map +1 -0
- package/dist/agent/markdown.js +338 -0
- package/dist/agent/markdown.js.map +1 -0
- package/dist/agent/masked-value.d.ts +1 -0
- package/dist/agent/masked-value.d.ts.map +1 -1
- package/dist/agent/masked-value.js +4 -1
- package/dist/agent/masked-value.js.map +1 -1
- package/dist/agent/message.d.ts +26 -6
- package/dist/agent/message.d.ts.map +1 -1
- package/dist/agent/message.js +47 -11
- package/dist/agent/message.js.map +1 -1
- package/dist/agent/panel-frame.js +1 -1
- package/dist/agent/panel-frame.js.map +1 -1
- package/dist/agent/role-cards/card-kit.d.ts +111 -0
- package/dist/agent/role-cards/card-kit.d.ts.map +1 -0
- package/dist/agent/role-cards/card-kit.js +68 -0
- package/dist/agent/role-cards/card-kit.js.map +1 -0
- package/dist/agent/role-cards/data-table-card.d.ts +80 -0
- package/dist/agent/role-cards/data-table-card.d.ts.map +1 -0
- package/dist/agent/role-cards/data-table-card.js +214 -0
- package/dist/agent/role-cards/data-table-card.js.map +1 -0
- package/dist/agent/role-cards/fixtures.d.ts +124 -0
- package/dist/agent/role-cards/fixtures.d.ts.map +1 -0
- package/dist/agent/role-cards/fixtures.js +401 -0
- package/dist/agent/role-cards/fixtures.js.map +1 -0
- package/dist/agent/role-cards/host-contract.d.ts +214 -0
- package/dist/agent/role-cards/host-contract.d.ts.map +1 -0
- package/dist/agent/role-cards/host-contract.js +348 -0
- package/dist/agent/role-cards/host-contract.js.map +1 -0
- package/dist/agent/role-cards/inspector-drawer.d.ts +42 -0
- package/dist/agent/role-cards/inspector-drawer.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-drawer.js +68 -0
- package/dist/agent/role-cards/inspector-drawer.js.map +1 -0
- package/dist/agent/role-cards/inspector-fixtures.d.ts +84 -0
- package/dist/agent/role-cards/inspector-fixtures.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-fixtures.js +162 -0
- package/dist/agent/role-cards/inspector-fixtures.js.map +1 -0
- package/dist/agent/role-cards/inspector-record.d.ts +109 -0
- package/dist/agent/role-cards/inspector-record.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-record.js +346 -0
- package/dist/agent/role-cards/inspector-record.js.map +1 -0
- package/dist/agent/role-cards/inspector-view.d.ts +137 -0
- package/dist/agent/role-cards/inspector-view.d.ts.map +1 -0
- package/dist/agent/role-cards/inspector-view.js +261 -0
- package/dist/agent/role-cards/inspector-view.js.map +1 -0
- package/dist/agent/role-cards/match-card.d.ts +21 -0
- package/dist/agent/role-cards/match-card.d.ts.map +1 -0
- package/dist/agent/role-cards/match-card.js +30 -0
- package/dist/agent/role-cards/match-card.js.map +1 -0
- package/dist/agent/role-cards/offer-card.d.ts +27 -0
- package/dist/agent/role-cards/offer-card.d.ts.map +1 -0
- package/dist/agent/role-cards/offer-card.js +68 -0
- package/dist/agent/role-cards/offer-card.js.map +1 -0
- package/dist/agent/role-cards/opportunity-card.d.ts +26 -0
- package/dist/agent/role-cards/opportunity-card.d.ts.map +1 -0
- package/dist/agent/role-cards/opportunity-card.js +50 -0
- package/dist/agent/role-cards/opportunity-card.js.map +1 -0
- package/dist/agent/role-cards/product-card.d.ts +32 -0
- package/dist/agent/role-cards/product-card.d.ts.map +1 -0
- package/dist/agent/role-cards/product-card.js +50 -0
- package/dist/agent/role-cards/product-card.js.map +1 -0
- package/dist/agent/role-cards/proposal-diff.d.ts +38 -0
- package/dist/agent/role-cards/proposal-diff.d.ts.map +1 -0
- package/dist/agent/role-cards/proposal-diff.js +74 -0
- package/dist/agent/role-cards/proposal-diff.js.map +1 -0
- package/dist/agent/role-cards/registry.d.ts +43 -0
- package/dist/agent/role-cards/registry.d.ts.map +1 -0
- package/dist/agent/role-cards/registry.js +46 -0
- package/dist/agent/role-cards/registry.js.map +1 -0
- package/dist/agent/role-cards/score-meter.d.ts +12 -0
- package/dist/agent/role-cards/score-meter.d.ts.map +1 -0
- package/dist/agent/role-cards/score-meter.js +17 -0
- package/dist/agent/role-cards/score-meter.js.map +1 -0
- package/dist/agent/role-cards/surface-links.d.ts +54 -0
- package/dist/agent/role-cards/surface-links.d.ts.map +1 -0
- package/dist/agent/role-cards/surface-links.js +149 -0
- package/dist/agent/role-cards/surface-links.js.map +1 -0
- package/dist/agent/role-cards/text-safety.d.ts +27 -0
- package/dist/agent/role-cards/text-safety.d.ts.map +1 -0
- package/dist/agent/role-cards/text-safety.js +77 -0
- package/dist/agent/role-cards/text-safety.js.map +1 -0
- package/dist/agent/schema.d.ts +10 -0
- package/dist/agent/schema.d.ts.map +1 -1
- package/dist/agent/schema.js +31 -3
- package/dist/agent/schema.js.map +1 -1
- package/dist/agent/states.d.ts +1 -0
- package/dist/agent/states.d.ts.map +1 -1
- package/dist/agent/states.js +1 -1
- package/dist/agent/states.js.map +1 -1
- package/dist/agent/thinking.d.ts +13 -4
- package/dist/agent/thinking.d.ts.map +1 -1
- package/dist/agent/thinking.js +15 -6
- package/dist/agent/thinking.js.map +1 -1
- package/dist/agent/thread-list.d.ts +45 -2
- package/dist/agent/thread-list.d.ts.map +1 -1
- package/dist/agent/thread-list.js +175 -8
- package/dist/agent/thread-list.js.map +1 -1
- package/dist/agent/thread-title.d.ts +46 -0
- package/dist/agent/thread-title.d.ts.map +1 -0
- package/dist/agent/thread-title.js +99 -0
- package/dist/agent/thread-title.js.map +1 -0
- package/dist/agent/tool-activity-model.d.ts +136 -0
- package/dist/agent/tool-activity-model.d.ts.map +1 -0
- package/dist/agent/tool-activity-model.js +288 -0
- package/dist/agent/tool-activity-model.js.map +1 -0
- package/dist/agent/tool-activity.d.ts +61 -0
- package/dist/agent/tool-activity.d.ts.map +1 -0
- package/dist/agent/tool-activity.js +199 -0
- package/dist/agent/tool-activity.js.map +1 -0
- package/dist/agent/tool-call-card.d.ts +11 -1
- package/dist/agent/tool-call-card.d.ts.map +1 -1
- package/dist/agent/tool-call-card.js +19 -4
- package/dist/agent/tool-call-card.js.map +1 -1
- package/dist/agent/ui.js +1 -1
- package/dist/agent/ui.js.map +1 -1
- package/dist/agent/use-motion.d.ts +15 -0
- package/dist/agent/use-motion.d.ts.map +1 -0
- package/dist/agent/use-motion.js +52 -0
- package/dist/agent/use-motion.js.map +1 -0
- package/dist/chat/use-stick-to-bottom.d.ts +5 -0
- package/dist/chat/use-stick-to-bottom.d.ts.map +1 -1
- package/dist/chat/use-stick-to-bottom.js +11 -1
- package/dist/chat/use-stick-to-bottom.js.map +1 -1
- package/dist/components/sheet.d.ts +3 -1
- package/dist/components/sheet.d.ts.map +1 -1
- package/dist/components/sheet.js +2 -2
- package/dist/components/sheet.js.map +1 -1
- package/dist/portfolio-import/import-job-panels.d.ts +6 -0
- package/dist/portfolio-import/import-job-panels.d.ts.map +1 -1
- package/dist/portfolio-import/import-job-panels.js +11 -4
- package/dist/portfolio-import/import-job-panels.js.map +1 -1
- package/dist/portfolio-import/job-error-copy.d.ts +62 -0
- package/dist/portfolio-import/job-error-copy.d.ts.map +1 -0
- package/dist/portfolio-import/job-error-copy.js +78 -0
- package/dist/portfolio-import/job-error-copy.js.map +1 -0
- package/dist/realtime/organisation-events/schemas.d.ts +2 -2
- package/package.json +4 -1
- package/src/theme/tokens.css +66 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { LINK_MAX_LENGTH, LINK_PATTERN } from "@cellarnode/agent-cards/zod4";
|
|
2
|
+
/**
|
|
3
|
+
* Per surface, the routes the agents emit.
|
|
4
|
+
* - producer: an offer and what hangs off it, the organisation profile (where a registration or compliance document opens), the
|
|
5
|
+
* portfolio list and a product's pages;
|
|
6
|
+
* - importer: a producer's page, an offer, and the organisation profile (where the importer's own registration or compliance
|
|
7
|
+
* document opens: `get_org_document_link` emits it for an importer too);
|
|
8
|
+
* - e-label: everything under `/app` (its producer area), the app's own root included.
|
|
9
|
+
*/
|
|
10
|
+
const SURFACE_RULES = {
|
|
11
|
+
producer: [
|
|
12
|
+
{ prefix: "/offers", below: true },
|
|
13
|
+
{ prefix: "/organisation/profile", self: true },
|
|
14
|
+
{ prefix: "/portfolio", self: true, below: true },
|
|
15
|
+
],
|
|
16
|
+
importer: [
|
|
17
|
+
{ prefix: "/producers", below: true },
|
|
18
|
+
{ prefix: "/offers", below: true },
|
|
19
|
+
{ prefix: "/organisation/profile", self: true },
|
|
20
|
+
],
|
|
21
|
+
elabel: [{ prefix: "/app", self: true, below: true }],
|
|
22
|
+
};
|
|
23
|
+
/** Printable ASCII only (U+0021 to U+007E): no control character, no space, nothing beyond ASCII. */
|
|
24
|
+
function isPrintableAscii(text) {
|
|
25
|
+
for (let i = 0; i < text.length; i++) {
|
|
26
|
+
const code = text.charCodeAt(i);
|
|
27
|
+
if (code < 0x21 || code > 0x7e)
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
/** One path segment: not a dot segment, and nothing an encoding could use to climb out or to smuggle a separator. */
|
|
33
|
+
function safeSegment(segment) {
|
|
34
|
+
if (segment === "")
|
|
35
|
+
return false;
|
|
36
|
+
let decoded;
|
|
37
|
+
try {
|
|
38
|
+
decoded = decodeURIComponent(segment);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false; // a malformed escape
|
|
42
|
+
}
|
|
43
|
+
// A dot segment, raw or percent-encoded (`%2e%2e` decodes to `..`).
|
|
44
|
+
if (decoded === "." || decoded === "..")
|
|
45
|
+
return false;
|
|
46
|
+
if (/[/\\#?]/.test(decoded) || !isPrintableAscii(decoded))
|
|
47
|
+
return false;
|
|
48
|
+
// Still encoded after one round: a double encoding is never a plain id.
|
|
49
|
+
return !decoded.includes("%");
|
|
50
|
+
}
|
|
51
|
+
/** The segments of a clean internal path, or `null` when the path is not one (see the rules at the top of the file). */
|
|
52
|
+
function cleanSegments(path) {
|
|
53
|
+
if (typeof path !== "string" || path.length > LINK_MAX_LENGTH)
|
|
54
|
+
return null;
|
|
55
|
+
if (!LINK_PATTERN.test(path) || path.includes("?"))
|
|
56
|
+
return null;
|
|
57
|
+
const segments = path.slice(1).split("/");
|
|
58
|
+
return segments.every(safeSegment) ? segments : null;
|
|
59
|
+
}
|
|
60
|
+
const splitPrefix = (prefix) => prefix.slice(1).split("/");
|
|
61
|
+
function matches(segments, rule) {
|
|
62
|
+
const base = splitPrefix(rule.prefix);
|
|
63
|
+
if (segments.length < base.length || !base.every((seg, i) => segments[i] === seg))
|
|
64
|
+
return false;
|
|
65
|
+
return segments.length === base.length ? rule.self === true : rule.below === true;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* `allowLink` for a host surface: true only for a clean internal path that is one of the routes the agents emit for that app, or
|
|
69
|
+
* sits at or below one of `extraPrefixes` (the host's own routes, e.g. `["/opportunities", "/matches"]`). A prefix matches on a
|
|
70
|
+
* whole segment: `/app` accepts `/app/portfolio` and not `/application`.
|
|
71
|
+
*
|
|
72
|
+
* Throws on an extra prefix that is not a clean path with at least one segment: that is a host bug, and a prefix like `/` would
|
|
73
|
+
* quietly allow every link.
|
|
74
|
+
*/
|
|
75
|
+
export function createSurfaceAllowLink(surface, extraPrefixes = []) {
|
|
76
|
+
const own = Object.hasOwn(SURFACE_RULES, surface) ? SURFACE_RULES[surface] : undefined;
|
|
77
|
+
const extra = extraPrefixes.map((prefix) => {
|
|
78
|
+
if (cleanSegments(prefix) === null)
|
|
79
|
+
throw new Error(`Not a clean route prefix: ${prefix}`);
|
|
80
|
+
return { prefix, self: true, below: true };
|
|
81
|
+
});
|
|
82
|
+
// An unknown surface (a cast, a surface added later) has no routes of its own: it links to nothing but what the host adds.
|
|
83
|
+
const rules = [...(own ?? []), ...extra];
|
|
84
|
+
return (path) => {
|
|
85
|
+
const segments = cleanSegments(path);
|
|
86
|
+
return segments !== null && rules.some((rule) => matches(segments, rule));
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** The portfolio routes (`portfolio`, `portfolio/<id>`, `portfolio/<id>/products/<id>[/gallery]`), the same in the producer and the e-label app. */
|
|
90
|
+
function portfolioKind(segments) {
|
|
91
|
+
if (segments[2] !== "products" || segments.length < 4)
|
|
92
|
+
return "portfolio";
|
|
93
|
+
return segments[4] === "gallery" ? "productGallery" : "product";
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The kind of page a clean internal path opens, or `undefined` for a path that is not clean or not one of the routes the agents
|
|
97
|
+
* emit (a route the host added through `extraPrefixes`). Reads only the path, so it names a link the same way on every surface.
|
|
98
|
+
* Under `/app` (the e-label app) the page is named by the segment after it: `/app/portfolio/...` is a portfolio page, `/app/labels/...`
|
|
99
|
+
* a label, `/app/imports/...` an import, `/app` itself the app's home, and anything else just "a page of the e-label app".
|
|
100
|
+
*/
|
|
101
|
+
export function agentLinkKind(path) {
|
|
102
|
+
const segments = cleanSegments(path);
|
|
103
|
+
if (segments === null)
|
|
104
|
+
return undefined;
|
|
105
|
+
switch (segments[0]) {
|
|
106
|
+
case "app": {
|
|
107
|
+
const inner = segments.slice(1);
|
|
108
|
+
switch (inner[0]) {
|
|
109
|
+
case undefined:
|
|
110
|
+
return "elabelHome";
|
|
111
|
+
case "portfolio":
|
|
112
|
+
return portfolioKind(inner);
|
|
113
|
+
case "labels":
|
|
114
|
+
return "labels";
|
|
115
|
+
case "imports":
|
|
116
|
+
return "imports";
|
|
117
|
+
default:
|
|
118
|
+
return "elabel";
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
case "offers":
|
|
122
|
+
return "offer";
|
|
123
|
+
case "producers":
|
|
124
|
+
return "producer";
|
|
125
|
+
case "portfolio":
|
|
126
|
+
return portfolioKind(segments);
|
|
127
|
+
case "organisation":
|
|
128
|
+
return segments.length === 2 && segments[1] === "profile" ? "organisation" : undefined;
|
|
129
|
+
default:
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const SURFACE_THIRD_PARTY_COLUMNS = {
|
|
134
|
+
producer: ["counterpartyFile"],
|
|
135
|
+
importer: ["counterpartyFile", "producerFile", "producerBeverage"],
|
|
136
|
+
elabel: [],
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Per surface, the `DataTable` column keys whose text someone else wrote, as the cellarnode-mcp agents name them: the key says who
|
|
140
|
+
* wrote the column. `counterpartyFile` is the other side's offer file, `producerFile` and `producerBeverage` are a producer's public
|
|
141
|
+
* documents and beverages as an importer sees them; `file` is the caller's own document or attachment and is not listed. Pass the
|
|
142
|
+
* result as `thirdPartyColumns` (`DEFAULT_THIRD_PARTY_COLUMNS` already quotes these keys on every surface). An unknown surface gets none.
|
|
143
|
+
*/
|
|
144
|
+
export function surfaceThirdPartyColumns(surface) {
|
|
145
|
+
return Object.hasOwn(SURFACE_THIRD_PARTY_COLUMNS, surface)
|
|
146
|
+
? SURFACE_THIRD_PARTY_COLUMNS[surface]
|
|
147
|
+
: [];
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=surface-links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-links.js","sourceRoot":"","sources":["../../../src/agent/role-cards/surface-links.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal Text from a record or a card is untrusted: it may carry bidi overrides, zero-width characters or control characters
|
|
3
|
+
* that reorder, hide or split what a person reads, and it may be arbitrarily long. These are the one place that cleans and
|
|
4
|
+
* bounds it (CEL-2445 host contract, CEL-2487).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Code points that may reorder, hide or split what a person reads: C0/DEL controls, line/paragraph separators, the Arabic letter
|
|
8
|
+
* mark (U+061C), zero-width and direction marks (U+200B-200F), bidi embeddings and overrides (U+202A-202E), word joiner,
|
|
9
|
+
* invisible operators, bidi isolates and the deprecated format characters (U+2060-206F), interlinear annotation marks
|
|
10
|
+
* (U+FFF9-FFFB), the BOM, and the invisible "tag" characters (U+E0000-E007F) that can carry a hidden message through a copy and paste.
|
|
11
|
+
*/
|
|
12
|
+
export declare const isUnsafeChar: (code: number) => boolean;
|
|
13
|
+
/** `text` without its bidirectional controls (see above). Nothing else is touched: a joiner inside an emoji or a Persian word stays. */
|
|
14
|
+
export declare const stripBidi: (text: string) => string;
|
|
15
|
+
export declare const stripBidiRuns: (text: string) => string;
|
|
16
|
+
/** Every unsafe character becomes a space (so nothing is silently joined into a different word). Walks by code point. */
|
|
17
|
+
export declare function replaceUnsafe(raw: string): string;
|
|
18
|
+
/** The first `max` code points of `text`, never splitting a surrogate pair; `ellipsis` marks a cut. Linear in `max`, not in the text. */
|
|
19
|
+
export declare function clipCodePoints(text: string, max: number, ellipsis?: boolean): string;
|
|
20
|
+
/**
|
|
21
|
+
* Short, single-line text (a label, a title): unsafe characters out, whitespace collapsed, clipped to `max` code points.
|
|
22
|
+
* `undefined` when nothing readable is left.
|
|
23
|
+
*/
|
|
24
|
+
export declare function cleanInline(raw: unknown, max: number, ellipsis?: boolean): string | undefined;
|
|
25
|
+
/** A value shown as body text: unsafe characters out, clipped to `max` code points with an ellipsis. */
|
|
26
|
+
export declare function cleanValue(raw: string, max: number): string;
|
|
27
|
+
//# sourceMappingURL=text-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-safety.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/text-safety.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,OAWN,CAAC;AAUvC,wIAAwI;AACxI,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAyC,CAAC;AAQnF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAA6C,CAAC;AAE3F,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,yIAAyI;AACzI,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAWlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,GAAG,SAAS,CAO3F;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal Text from a record or a card is untrusted: it may carry bidi overrides, zero-width characters or control characters
|
|
3
|
+
* that reorder, hide or split what a person reads, and it may be arbitrarily long. These are the one place that cleans and
|
|
4
|
+
* bounds it (CEL-2445 host contract, CEL-2487).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Code points that may reorder, hide or split what a person reads: C0/DEL controls, line/paragraph separators, the Arabic letter
|
|
8
|
+
* mark (U+061C), zero-width and direction marks (U+200B-200F), bidi embeddings and overrides (U+202A-202E), word joiner,
|
|
9
|
+
* invisible operators, bidi isolates and the deprecated format characters (U+2060-206F), interlinear annotation marks
|
|
10
|
+
* (U+FFF9-FFFB), the BOM, and the invisible "tag" characters (U+E0000-E007F) that can carry a hidden message through a copy and paste.
|
|
11
|
+
*/
|
|
12
|
+
export const isUnsafeChar = (code) => code < 32 ||
|
|
13
|
+
code === 127 ||
|
|
14
|
+
code === 0x061c ||
|
|
15
|
+
(code >= 0x200b && code <= 0x200f) ||
|
|
16
|
+
code === 0x2028 ||
|
|
17
|
+
code === 0x2029 ||
|
|
18
|
+
(code >= 0x202a && code <= 0x202e) ||
|
|
19
|
+
(code >= 0x2060 && code <= 0x206f) ||
|
|
20
|
+
code === 0xfeff ||
|
|
21
|
+
(code >= 0xfff9 && code <= 0xfffb) ||
|
|
22
|
+
(code >= 0xe0000 && code <= 0xe007f);
|
|
23
|
+
/**
|
|
24
|
+
* Bidirectional controls: the Arabic letter mark (U+061C), the left-to-right and right-to-left marks (U+200E, U+200F), the
|
|
25
|
+
* embeddings and overrides (U+202A-202E) and the isolates (U+2066-2069). One of these in a label can reverse or reorder it, and
|
|
26
|
+
* an override left open (U+202E) carries on into whatever is drawn after it, so a label shown beside text of the lib's own
|
|
27
|
+
* (a link's host) is stripped of them.
|
|
28
|
+
*/
|
|
29
|
+
const BIDI_CONTROLS = /[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/g;
|
|
30
|
+
/** `text` without its bidirectional controls (see above). Nothing else is touched: a joiner inside an emoji or a Persian word stays. */
|
|
31
|
+
export const stripBidi = (text) => text.replace(BIDI_CONTROLS, "");
|
|
32
|
+
/**
|
|
33
|
+
* The embeddings, overrides and isolates only (U+202A to U+202E, U+2066 to U+2069): the controls that open a run whose direction
|
|
34
|
+
* outlasts the character, so one in plain text can reorder everything drawn after it. The marks (U+200E, U+200F, U+061C) are
|
|
35
|
+
* weak: they cannot reorder a run, and right-to-left prose needs them, so a paragraph keeps them.
|
|
36
|
+
*/
|
|
37
|
+
const BIDI_RUN_CONTROLS = /[\u202A-\u202E\u2066-\u2069]/g;
|
|
38
|
+
export const stripBidiRuns = (text) => text.replace(BIDI_RUN_CONTROLS, "");
|
|
39
|
+
/** Every unsafe character becomes a space (so nothing is silently joined into a different word). Walks by code point. */
|
|
40
|
+
export function replaceUnsafe(raw) {
|
|
41
|
+
return Array.from(raw, (ch) => (isUnsafeChar(ch.codePointAt(0) ?? 0) ? " " : ch)).join("");
|
|
42
|
+
}
|
|
43
|
+
/** The first `max` code points of `text`, never splitting a surrogate pair; `ellipsis` marks a cut. Linear in `max`, not in the text. */
|
|
44
|
+
export function clipCodePoints(text, max, ellipsis = false) {
|
|
45
|
+
if (text.length <= max)
|
|
46
|
+
return text;
|
|
47
|
+
let units = 0;
|
|
48
|
+
let count = 0;
|
|
49
|
+
for (const ch of text) {
|
|
50
|
+
if (count === max)
|
|
51
|
+
break;
|
|
52
|
+
units += ch.length;
|
|
53
|
+
count += 1;
|
|
54
|
+
}
|
|
55
|
+
if (units >= text.length)
|
|
56
|
+
return text;
|
|
57
|
+
return ellipsis ? `${text.slice(0, units)}…` : text.slice(0, units);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Short, single-line text (a label, a title): unsafe characters out, whitespace collapsed, clipped to `max` code points.
|
|
61
|
+
* `undefined` when nothing readable is left.
|
|
62
|
+
*/
|
|
63
|
+
export function cleanInline(raw, max, ellipsis = false) {
|
|
64
|
+
if (typeof raw !== "string")
|
|
65
|
+
return undefined;
|
|
66
|
+
// Bound the work first: a megabyte of text must not cost a megabyte of cleaning to show 80 characters of it.
|
|
67
|
+
const clean = replaceUnsafe(clipCodePoints(raw, max * 4))
|
|
68
|
+
.replace(/\s+/g, " ")
|
|
69
|
+
.trim();
|
|
70
|
+
return clean === "" ? undefined : clipCodePoints(clean, max, ellipsis);
|
|
71
|
+
}
|
|
72
|
+
/** A value shown as body text: unsafe characters out, clipped to `max` code points with an ellipsis. */
|
|
73
|
+
export function cleanValue(raw, max) {
|
|
74
|
+
const clipped = clipCodePoints(raw, max, true);
|
|
75
|
+
return replaceUnsafe(clipped);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=text-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-safety.js","sourceRoot":"","sources":["../../../src/agent/role-cards/text-safety.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/schema.d.ts
CHANGED
|
@@ -127,6 +127,7 @@ export declare const ToolCallSchema: z.ZodObject<{
|
|
|
127
127
|
failed: "failed";
|
|
128
128
|
succeeded: "succeeded";
|
|
129
129
|
retrying: "retrying";
|
|
130
|
+
cancelled: "cancelled";
|
|
130
131
|
}>;
|
|
131
132
|
args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
|
|
132
133
|
masked: z.ZodLiteral<true>;
|
|
@@ -134,6 +135,7 @@ export declare const ToolCallSchema: z.ZodObject<{
|
|
|
134
135
|
}, z.core.$strip>]>>>;
|
|
135
136
|
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
136
137
|
resultSummary: z.ZodOptional<z.ZodString>;
|
|
138
|
+
result: z.ZodOptional<z.ZodUnknown>;
|
|
137
139
|
error: z.ZodOptional<z.ZodString>;
|
|
138
140
|
}, z.core.$strip>;
|
|
139
141
|
export type AgentToolCall = z.infer<typeof ToolCallSchema>;
|
|
@@ -154,6 +156,7 @@ export declare const MessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
154
156
|
failed: "failed";
|
|
155
157
|
succeeded: "succeeded";
|
|
156
158
|
retrying: "retrying";
|
|
159
|
+
cancelled: "cancelled";
|
|
157
160
|
}>;
|
|
158
161
|
args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
|
|
159
162
|
masked: z.ZodLiteral<true>;
|
|
@@ -161,6 +164,7 @@ export declare const MessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
161
164
|
}, z.core.$strip>]>>>;
|
|
162
165
|
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
163
166
|
resultSummary: z.ZodOptional<z.ZodString>;
|
|
167
|
+
result: z.ZodOptional<z.ZodUnknown>;
|
|
164
168
|
error: z.ZodOptional<z.ZodString>;
|
|
165
169
|
}, z.core.$strip>;
|
|
166
170
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -222,6 +226,7 @@ export declare const MessagePartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
222
226
|
type: z.ZodLiteral<"card">;
|
|
223
227
|
cardType: z.ZodString;
|
|
224
228
|
data: z.ZodUnknown;
|
|
229
|
+
forCallId: z.ZodOptional<z.ZodString>;
|
|
225
230
|
}, z.core.$strip>], "type">;
|
|
226
231
|
export type AgentMessagePart = z.infer<typeof MessagePartSchema>;
|
|
227
232
|
export declare const MessageSchema: z.ZodObject<{
|
|
@@ -247,6 +252,7 @@ export declare const MessageSchema: z.ZodObject<{
|
|
|
247
252
|
failed: "failed";
|
|
248
253
|
succeeded: "succeeded";
|
|
249
254
|
retrying: "retrying";
|
|
255
|
+
cancelled: "cancelled";
|
|
250
256
|
}>;
|
|
251
257
|
args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodObject<{
|
|
252
258
|
masked: z.ZodLiteral<true>;
|
|
@@ -254,6 +260,7 @@ export declare const MessageSchema: z.ZodObject<{
|
|
|
254
260
|
}, z.core.$strip>]>>>;
|
|
255
261
|
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
256
262
|
resultSummary: z.ZodOptional<z.ZodString>;
|
|
263
|
+
result: z.ZodOptional<z.ZodUnknown>;
|
|
257
264
|
error: z.ZodOptional<z.ZodString>;
|
|
258
265
|
}, z.core.$strip>;
|
|
259
266
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -315,6 +322,7 @@ export declare const MessageSchema: z.ZodObject<{
|
|
|
315
322
|
type: z.ZodLiteral<"card">;
|
|
316
323
|
cardType: z.ZodString;
|
|
317
324
|
data: z.ZodUnknown;
|
|
325
|
+
forCallId: z.ZodOptional<z.ZodString>;
|
|
318
326
|
}, z.core.$strip>], "type">>;
|
|
319
327
|
streaming: z.ZodOptional<z.ZodBoolean>;
|
|
320
328
|
stopped: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -337,6 +345,8 @@ export declare const ThreadSchema: z.ZodObject<{
|
|
|
337
345
|
title: z.ZodString;
|
|
338
346
|
updatedAt: z.ZodString;
|
|
339
347
|
preview: z.ZodOptional<z.ZodString>;
|
|
348
|
+
firstMessage: z.ZodOptional<z.ZodString>;
|
|
349
|
+
titlePending: z.ZodOptional<z.ZodBoolean>;
|
|
340
350
|
}, z.core.$strip>;
|
|
341
351
|
export type AgentThread = z.infer<typeof ThreadSchema>;
|
|
342
352
|
export declare const ReadinessGapSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,yGAAyG;AACzG,eAAO,MAAM,YAAY;;;iBAA6D,CAAC;AACvF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe;;;mBAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA2C,CAAC;AAEvF,eAAO,MAAM,UAAU;;;;;EAA0D,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe;;;;;;;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;iBAMrB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,yGAAyG;AACzG,eAAO,MAAM,YAAY;;;iBAA6D,CAAC;AACvF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe;;;mBAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,MAA2C,CAAC;AAEvF,eAAO,MAAM,UAAU;;;;;EAA0D,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe;;;;;;;;;;iBAI1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;iBAMrB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;iBAuBzB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAgB5B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOxB,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE7D,eAAO,MAAM,wBAAwB;;;;;;;;;EASnC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,YAAY;;;;;;;iBAUvB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ1B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dist/agent/schema.js
CHANGED
|
@@ -77,11 +77,25 @@ export const StepSchema = z.object({
|
|
|
77
77
|
export const ToolCallSchema = z.object({
|
|
78
78
|
id: z.string(),
|
|
79
79
|
name: z.string(),
|
|
80
|
-
|
|
80
|
+
/**
|
|
81
|
+
* `cancelled` is ONLY a call the user stopped (they pressed Stop). Anything else that left a call unfinished (a broken stream, a run error,
|
|
82
|
+
* a timeout) stays `failed`, because the detail line for `cancelled` is fixed copy and would call a real failure a calm Stop. It is the opposite of `failed`, a call that
|
|
83
|
+
* errored: it is shown as stopped in a neutral tone, never as an error, and has no Retry.
|
|
84
|
+
*/
|
|
85
|
+
status: z.enum(["pending", "running", "succeeded", "failed", "retrying", "cancelled"]),
|
|
81
86
|
/** Already redacted by the BFF. Masked entries are marked. */
|
|
82
87
|
args: z.record(z.string(), CellValueSchema).optional(),
|
|
83
88
|
durationMs: z.number().optional(),
|
|
84
89
|
resultSummary: z.string().optional(),
|
|
90
|
+
/**
|
|
91
|
+
* The call's result for the activity row's preview: parsed JSON, or text. Shown as given (at most 20,000 characters), so the
|
|
92
|
+
* host REDACTS it exactly as it redacts `args`: a masked cell is `{ masked: true, display }`, never the raw value. The
|
|
93
|
+
* model-facing envelope (`{"untrusted":true,"source":"...","data":...}`) is unwrapped before display (only when it says
|
|
94
|
+
* `untrusted: true`), so the host can pass the tool output as it received it, once redacted. Bounded by the host: the row shows
|
|
95
|
+
* 20 lines and a "show all". When absent the preview falls back to `resultSummary`, which hosts usually truncate, so a long
|
|
96
|
+
* result is only readable with `result`.
|
|
97
|
+
*/
|
|
98
|
+
result: z.unknown().optional(),
|
|
85
99
|
error: z.string().optional(),
|
|
86
100
|
});
|
|
87
101
|
export const MessagePartSchema = z.discriminatedUnion("type", [
|
|
@@ -89,8 +103,17 @@ export const MessagePartSchema = z.discriminatedUnion("type", [
|
|
|
89
103
|
z.object({ type: z.literal("thinking"), summary: z.string() }),
|
|
90
104
|
z.object({ type: z.literal("toolCall"), call: ToolCallSchema }),
|
|
91
105
|
z.object({ type: z.literal("approval"), approval: ApprovalSchema }),
|
|
92
|
-
/**
|
|
93
|
-
|
|
106
|
+
/**
|
|
107
|
+
* A host-rendered domain card (admin OrgCard etc.). The host owns `cardType`. `forCallId` names the tool call whose
|
|
108
|
+
* data the card shows; the activity row then marks that step "shown below" and collapses its preview. Without it the
|
|
109
|
+
* row assumes a card shows the successful calls before it in the same message (`cardCoversCall` overrides).
|
|
110
|
+
*/
|
|
111
|
+
z.object({
|
|
112
|
+
type: z.literal("card"),
|
|
113
|
+
cardType: z.string(),
|
|
114
|
+
data: z.unknown(),
|
|
115
|
+
forCallId: z.string().optional(),
|
|
116
|
+
}),
|
|
94
117
|
]);
|
|
95
118
|
export const MessageSchema = z.object({
|
|
96
119
|
id: z.string(),
|
|
@@ -112,9 +135,14 @@ export const ConversationStatusSchema = z.enum([
|
|
|
112
135
|
]);
|
|
113
136
|
export const ThreadSchema = z.object({
|
|
114
137
|
id: z.string(),
|
|
138
|
+
/** May be empty: a conversation is named by the service after its first reply, or by the user. */
|
|
115
139
|
title: z.string(),
|
|
116
140
|
updatedAt: z.string(),
|
|
117
141
|
preview: z.string().optional(),
|
|
142
|
+
/** The first thing the user asked. With no `title` the list shows its first words as the conversation's name. */
|
|
143
|
+
firstMessage: z.string().optional(),
|
|
144
|
+
/** The first run just finished and the service is still choosing a title: the row shows a "Naming…" placeholder. */
|
|
145
|
+
titlePending: z.boolean().optional(),
|
|
118
146
|
});
|
|
119
147
|
export const ReadinessGapSchema = z.object({
|
|
120
148
|
path: z.string(),
|
package/dist/agent/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AAEH,yGAAyG;AACzG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAGvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IACrC,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,IAAI,EAAE;IACR,YAAY;CACb,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAEvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGlF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,SAAS;IACT,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,2FAA2F;IAC3F,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAC5C,2DAA2D;IAC3D,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,UAAU;IAChB;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnE;;;;;OAKG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrF,gFAAgF;IAChF,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3C,+EAA+E;IAC/E,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3C,qGAAqG;IACrG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,MAAM,EAAE,oBAAoB;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/agent/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/states.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export interface AgentErrorCopy {
|
|
|
32
32
|
refetch: string;
|
|
33
33
|
signIn: string;
|
|
34
34
|
}
|
|
35
|
+
export declare const ERROR_COPY: AgentErrorCopy;
|
|
35
36
|
export interface AgentErrorProps {
|
|
36
37
|
kind: AgentErrorKind;
|
|
37
38
|
/** Action for the kind: retry (generic/unavailable), refetch (interrupted), sign in (authExpired). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../src/agent/states.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AASD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACrC,kCAAkC;IAClC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrC;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,EAC9B,OAAqB,EACrB,WAAgB,EAChB,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,2CAmCtB;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,aAAa,GACb,aAAa,GACb,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../src/agent/states.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AASD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACrC,kCAAkC;IAClC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrC;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,EAC9B,OAAqB,EACrB,WAAgB,EAChB,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,2CAmCtB;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,aAAa,GACb,aAAa,GACb,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,eAAO,MAAM,UAAU,EAAE,cAiBxB,CAAC;AAoBF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,eAAe,2CAqC9E"}
|
package/dist/agent/states.js
CHANGED
|
@@ -17,7 +17,7 @@ export function AgentEmptyState({ variant = "first-run", suggestions = [], onSug
|
|
|
17
17
|
const noThreads = variant === "no-threads";
|
|
18
18
|
return (_jsx(EmptyState, { tone: "brand", icon: _jsx(MessageSquareText, { "aria-hidden": true, className: "size-5" }), headline: noThreads ? c.noThreadsHeadline : c.headline, description: noThreads ? c.noThreadsDescription : c.description, entranceMotion: false, actions: !noThreads && suggestions.length > 0 ? (_jsx("div", { role: "group", "aria-label": c.suggestionsLabel, className: "flex flex-wrap justify-center gap-2", children: suggestions.map((s) => (_jsx("button", { type: "button", onClick: () => onSuggestion?.(s), className: cn("rounded-full bg-muted px-3 py-1.5 text-sm/5 text-foreground transition-colors duration-[var(--duration-micro)] hover:bg-muted/70", focusRing), children: s }, s))) })) : undefined }));
|
|
19
19
|
}
|
|
20
|
-
const ERROR_COPY = {
|
|
20
|
+
export const ERROR_COPY = {
|
|
21
21
|
genericTitle: "Something went wrong",
|
|
22
22
|
genericBody: "The request did not complete. Nothing was changed.",
|
|
23
23
|
interruptedTitle: "Run interrupted",
|
package/dist/agent/states.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.js","sourceRoot":"","sources":["../../src/agent/states.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,aAAa,EACb,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,OAAO,EACP,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAS9C,MAAM,UAAU,GAAwB;IACtC,QAAQ,EAAE,wBAAwB;IAClC,WAAW,EAAE,6DAA6D;IAC1E,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,sBAAsB;IACzC,oBAAoB,EAAE,qEAAqE;CAC5F,CAAC;AAUF,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,GAAG,WAAW,EACrB,WAAW,GAAG,EAAE,EAChB,YAAY,EACZ,IAAI,GACiB;IACrB,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,KAAK,YAAY,CAAC;IAC3C,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,KAAC,iBAAiB,yBAAa,SAAS,EAAC,QAAQ,GAAG,EAC1D,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EACtD,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAC/D,cAAc,EAAE,KAAK,EACrB,OAAO,EACL,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrC,cACE,IAAI,EAAC,OAAO,gBACA,CAAC,CAAC,gBAAgB,EAC9B,SAAS,EAAC,qCAAqC,YAE9C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACtB,iBAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,EAAE,CACX,kIAAkI,EAClI,SAAS,CACV,YAEA,CAAC,IARG,CAAC,CASC,CACV,CAAC,GACE,CACP,CAAC,CAAC,CAAC,SAAS,GAEf,CACH,CAAC;AACJ,CAAC;AA2BD,MAAM,UAAU,GAAmB;
|
|
1
|
+
{"version":3,"file":"states.js","sourceRoot":"","sources":["../../src/agent/states.tsx"],"names":[],"mappings":"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"}
|
package/dist/agent/thinking.d.ts
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
|
+
import { type AgentToolNaming } from "./tool-activity-model.js";
|
|
1
2
|
export interface AgentThinkingCopy {
|
|
2
3
|
working: string;
|
|
4
|
+
/** The seconds so far, with its separator: `{seconds}` ("· 3s"). Hidden from assistive tech. */
|
|
3
5
|
elapsed: string;
|
|
4
6
|
}
|
|
5
|
-
export interface AgentThinkingProps {
|
|
6
|
-
/**
|
|
7
|
+
export interface AgentThinkingProps extends AgentToolNaming {
|
|
8
|
+
/**
|
|
9
|
+
* One-line summary of what the agent is doing. Raw model reasoning is never shown. A tool name
|
|
10
|
+
* (`admin_get_mcp_overview`) is shown in words ("Checking MCP overview").
|
|
11
|
+
*/
|
|
7
12
|
label?: string;
|
|
13
|
+
/** Host clock. Without it the indicator counts the seconds itself, from when it appeared. */
|
|
8
14
|
elapsedMs?: number;
|
|
9
15
|
copy?: Partial<AgentThinkingCopy>;
|
|
10
16
|
className?: string;
|
|
11
17
|
}
|
|
12
|
-
/**
|
|
13
|
-
|
|
18
|
+
/**
|
|
19
|
+
* @internal Status line: the orb as the single ambient mark, a one-line summary and the seconds so far ("Thinking · 3s"). The
|
|
20
|
+
* count is hidden from assistive tech, so the live region says the label once rather than every second.
|
|
21
|
+
*/
|
|
22
|
+
export declare function AgentThinking({ label, elapsedMs, toolLabels, formatToolLabel, cardLabels, toolWording, copy, className, }: AgentThinkingProps): import("react/jsx-runtime").JSX.Element;
|
|
14
23
|
//# sourceMappingURL=thinking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking.d.ts","sourceRoot":"","sources":["../../src/agent/thinking.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"thinking.d.ts","sourceRoot":"","sources":["../../src/agent/thinking.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG9E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,IAAI,EACJ,SAAS,GACV,EAAE,kBAAkB,2CAuBpB"}
|
package/dist/agent/thinking.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
2
3
|
import { AgenticOrb } from "../agentic-orb/index.js";
|
|
3
4
|
import { cn } from "../lib/utils.js";
|
|
4
|
-
import { useCopy } from "./copy.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { fmt, useCopy } from "./copy.js";
|
|
6
|
+
import { createToolNamer } from "./tool-activity-model.js";
|
|
7
|
+
import { useElapsedSeconds } from "./use-motion.js";
|
|
8
|
+
const DEFAULT_COPY = { working: "Thinking", elapsed: "· {seconds}s" };
|
|
9
|
+
/**
|
|
10
|
+
* @internal Status line: the orb as the single ambient mark, a one-line summary and the seconds so far ("Thinking · 3s"). The
|
|
11
|
+
* count is hidden from assistive tech, so the live region says the label once rather than every second.
|
|
12
|
+
*/
|
|
13
|
+
export function AgentThinking({ label, elapsedMs, toolLabels, formatToolLabel, cardLabels, toolWording, copy, className, }) {
|
|
8
14
|
const c = useCopy(DEFAULT_COPY, copy);
|
|
9
|
-
const
|
|
10
|
-
|
|
15
|
+
const namer = useMemo(() => createToolNamer({ toolLabels, formatToolLabel, cardLabels, toolWording }), [toolLabels, formatToolLabel, cardLabels, toolWording]);
|
|
16
|
+
const ticked = useElapsedSeconds(elapsedMs === undefined);
|
|
17
|
+
const seconds = elapsedMs === undefined ? ticked : Math.floor(elapsedMs / 1000);
|
|
18
|
+
const text = label ? namer.tool(label, "active") : c.working;
|
|
19
|
+
return (_jsxs("div", { role: "status", className: cn("flex items-center gap-2 text-sm/5 text-muted-foreground", className), children: [_jsx(AgenticOrb, { state: "thinking", size: 28, label: "" }), _jsx("span", { children: text }), seconds > 0 && (_jsx("span", { "aria-hidden": true, className: "text-xs/4 tabular-nums", children: fmt(c.elapsed, { seconds }) }))] }));
|
|
11
20
|
}
|
|
12
21
|
//# sourceMappingURL=thinking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking.js","sourceRoot":"","sources":["../../src/agent/thinking.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"thinking.js","sourceRoot":"","sources":["../../src/agent/thinking.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAOjD,MAAM,YAAY,GAAsB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AAczF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,IAAI,EACJ,SAAS,GACU;IACnB,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAC/E,CAAC,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC,CACvD,CAAC;IACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,aAEnF,KAAC,UAAU,IAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,EAAE,GAAG,EAClD,yBAAO,IAAI,GAAQ,EAClB,OAAO,GAAG,CAAC,IAAI,CACd,oCAAkB,SAAS,EAAC,wBAAwB,YACjD,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,GACvB,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
|