@cellarnode/ui 0.201.0 → 0.202.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 +37 -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 +77 -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 +220 -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 +24 -0
- package/dist/agent/role-cards/text-safety.d.ts.map +1 -0
- package/dist/agent/role-cards/text-safety.js +61 -0
- package/dist/agent/role-cards/text-safety.js.map +1 -0
- package/dist/agent/schema.d.ts +7 -0
- package/dist/agent/schema.d.ts.map +1 -1
- package/dist/agent/schema.js +25 -2
- 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 +33 -2
- package/dist/agent/thread-list.d.ts.map +1 -1
- package/dist/agent/thread-list.js +158 -8
- package/dist/agent/thread-list.js.map +1 -1
- 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 +55 -0
- package/dist/agent/tool-activity.d.ts.map +1 -0
- package/dist/agent/tool-activity.js +159 -0
- package/dist/agent/tool-activity.js.map +1 -0
- package/dist/agent/tool-call-card.d.ts +9 -1
- package/dist/agent/tool-call-card.d.ts.map +1 -1
- package/dist/agent/tool-call-card.js +7 -1
- 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/chat-composer.d.ts.map +1 -1
- package/dist/chat/chat-composer.js +1 -1
- package/dist/chat/chat-composer.js.map +1 -1
- 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,124 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { DataTableData, MatchCardData, OfferCardData, OpportunityCardData, ProductCardData } from "@cellarnode/agent-cards/zod4";
|
|
3
|
+
export declare const offerFull: OfferCardData;
|
|
4
|
+
export declare const offerMinimal: OfferCardData;
|
|
5
|
+
export declare const offerMasked: OfferCardData;
|
|
6
|
+
export declare const offerAccepted: OfferCardData;
|
|
7
|
+
export declare const offerRejected: OfferCardData;
|
|
8
|
+
export declare const offerLongText: OfferCardData;
|
|
9
|
+
export declare const offerProposal: OfferCardData;
|
|
10
|
+
export declare const productFull: ProductCardData;
|
|
11
|
+
export declare const productReady: ProductCardData;
|
|
12
|
+
export declare const productMinimal: ProductCardData;
|
|
13
|
+
export declare const productProposal: ProductCardData;
|
|
14
|
+
export declare const opportunityOpen: OpportunityCardData;
|
|
15
|
+
export declare const opportunityExpired: OpportunityCardData;
|
|
16
|
+
export declare const opportunityMinimal: OpportunityCardData;
|
|
17
|
+
export declare const matchStrong: MatchCardData;
|
|
18
|
+
export declare const matchWeak: MatchCardData;
|
|
19
|
+
export declare const matchMid: MatchCardData;
|
|
20
|
+
export declare const matchDeclined: MatchCardData;
|
|
21
|
+
export declare const matchMasked: MatchCardData;
|
|
22
|
+
export declare const matchMinimal: MatchCardData;
|
|
23
|
+
/** `get_offer_file_link`: the offer page, where the file opens. The file came from the other side of the offer. */
|
|
24
|
+
export declare const tableOfferFile: DataTableData;
|
|
25
|
+
/** `get_org_document_link`, as the producer's agent draws it. The caller's own document. */
|
|
26
|
+
export declare const tableOrgDocument: DataTableData;
|
|
27
|
+
/** `get_org_document_link`, as the importer's agent draws it: the importer has the same organisation profile page. */
|
|
28
|
+
export declare const tableImporterOrgDocument: DataTableData;
|
|
29
|
+
/** `get_attachment_link`, as the producer's agent draws it: where the file is shown (a product gallery). */
|
|
30
|
+
export declare const tableAttachment: DataTableData;
|
|
31
|
+
/** `list_producer_documents`, as the importer's agent draws it: three columns and the row that says the list was cut short. */
|
|
32
|
+
export declare const tableProducerDocuments: DataTableData;
|
|
33
|
+
/** `get_producer_showcase`, as the importer's agent draws it: a version count at the tool's cap on a cut list reads "20+". */
|
|
34
|
+
export declare const tableProducerShowcase: DataTableData;
|
|
35
|
+
/** An e-label producer's attachment: the e-label app keeps its producer area under `/app`. */
|
|
36
|
+
export declare const tableElabelAttachment: DataTableData;
|
|
37
|
+
export declare const tableEmpty: DataTableData;
|
|
38
|
+
/** A file name that fills the card: it wraps inside its cell, and a table wider than the card scrolls inside the card. */
|
|
39
|
+
export declare const tableLongText: DataTableData;
|
|
40
|
+
/** A masked column, a masked cell in an open column, and a plain value the server forgot to mask. */
|
|
41
|
+
export declare const tableMasked: DataTableData;
|
|
42
|
+
/** Paths the story and test hosts accept. */
|
|
43
|
+
export declare const allowFixtureLink: (path: string) => boolean;
|
|
44
|
+
/** A host tool catalog for stories and tests. Tiers, titles and target kinds live HERE, never on a card. */
|
|
45
|
+
export declare const fixtureCatalog: {
|
|
46
|
+
readonly counter_received_offer: {
|
|
47
|
+
readonly name: "counter_received_offer";
|
|
48
|
+
readonly title: "Counter the received offer";
|
|
49
|
+
readonly tier: "reversible";
|
|
50
|
+
readonly inputSchema: z.ZodObject<{
|
|
51
|
+
offerId: z.ZodString;
|
|
52
|
+
price: z.ZodOptional<z.ZodString>;
|
|
53
|
+
paymentTerms: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
readonly targetArg: "offerId";
|
|
56
|
+
readonly targetKind: "offer";
|
|
57
|
+
readonly argsFromChanges: (changes: {
|
|
58
|
+
path: string;
|
|
59
|
+
after: unknown;
|
|
60
|
+
}[], id: string) => {
|
|
61
|
+
[x: string]: unknown;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
readonly update_variant: {
|
|
65
|
+
readonly name: "update_variant";
|
|
66
|
+
readonly title: "Update product version";
|
|
67
|
+
readonly tier: "reversible";
|
|
68
|
+
readonly inputSchema: z.ZodObject<{
|
|
69
|
+
variantId: z.ZodString;
|
|
70
|
+
abv: z.ZodOptional<z.ZodString>;
|
|
71
|
+
productionVolume: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
readonly targetArg: "variantId";
|
|
74
|
+
readonly targetKind: "variant";
|
|
75
|
+
readonly argsFromChanges: (changes: {
|
|
76
|
+
path: string;
|
|
77
|
+
after: unknown;
|
|
78
|
+
}[], id: string) => {
|
|
79
|
+
[x: string]: unknown;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
readonly mark_match_interested: {
|
|
83
|
+
readonly name: "mark_match_interested";
|
|
84
|
+
readonly title: "Mark the match as interested";
|
|
85
|
+
readonly tier: "reversible";
|
|
86
|
+
readonly inputSchema: z.ZodObject<{
|
|
87
|
+
matchId: z.ZodString;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
readonly targetArg: "matchId";
|
|
90
|
+
readonly targetKind: "match";
|
|
91
|
+
};
|
|
92
|
+
readonly discard_offer: {
|
|
93
|
+
readonly name: "discard_offer";
|
|
94
|
+
readonly title: "Discard the offer";
|
|
95
|
+
readonly tier: "destructive";
|
|
96
|
+
readonly inputSchema: z.ZodObject<{
|
|
97
|
+
offerId: z.ZodString;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
readonly targetArg: "offerId";
|
|
100
|
+
readonly targetKind: "offer";
|
|
101
|
+
};
|
|
102
|
+
readonly delete_product: {
|
|
103
|
+
readonly name: "delete_product";
|
|
104
|
+
readonly title: "Delete the product";
|
|
105
|
+
readonly tier: "destructive";
|
|
106
|
+
readonly inputSchema: z.ZodObject<{
|
|
107
|
+
productId: z.ZodString;
|
|
108
|
+
}, z.core.$strip>;
|
|
109
|
+
readonly targetArg: "productId";
|
|
110
|
+
readonly targetKind: "product";
|
|
111
|
+
};
|
|
112
|
+
readonly get_offer: {
|
|
113
|
+
readonly name: "get_offer";
|
|
114
|
+
readonly title: "Read an offer";
|
|
115
|
+
readonly tier: "read";
|
|
116
|
+
readonly inputSchema: z.ZodObject<{
|
|
117
|
+
offerId: z.ZodString;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
/** The records a story host would fetch for a proposal's Apply, keyed `kind:id`. */
|
|
122
|
+
export declare const fixtureRecords: Record<string, unknown>;
|
|
123
|
+
export declare const fixtureFetchRecord: (kind: string, id: string) => Promise<unknown>;
|
|
124
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/agent/role-cards/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAKtC,eAAO,MAAM,SAAS,EAAE,aAqCvB,CAAC;AACF,eAAO,MAAM,YAAY,EAAE,aAAmD,CAAC;AAC/E,eAAO,MAAM,WAAW,EAAE,aAMzB,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,aAa3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAgCzB,CAAC;AACF,eAAO,MAAM,YAAY,EAAE,eAK1B,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,eAAmC,CAAC;AACjE,eAAO,MAAM,eAAe,EAAE,eAa7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,mBAuB7B,CAAC;AACF,eAAO,MAAM,kBAAkB,EAAE,mBAMhC,CAAC;AACF,eAAO,MAAM,kBAAkB,EAAE,mBAAwC,CAAC;AAE1E,eAAO,MAAM,WAAW,EAAE,aA6BzB,CAAC;AACF,eAAO,MAAM,SAAS,EAAE,aAMvB,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,aAKtB,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,aAI3B,CAAC;AACF,eAAO,MAAM,WAAW,EAAE,aAIzB,CAAC;AACF,eAAO,MAAM,YAAY,EAAE,aAA4C,CAAC;AAexE,mHAAmH;AACnH,eAAO,MAAM,cAAc,EAAE,aAI5B,CAAC;AACF,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,EAAE,aAI9B,CAAC;AACF,sHAAsH;AACtH,eAAO,MAAM,wBAAwB,EAAE,aAItC,CAAC;AACF,4GAA4G;AAC5G,eAAO,MAAM,eAAe,EAAE,aAI7B,CAAC;AACF,+HAA+H;AAC/H,eAAO,MAAM,sBAAsB,EAAE,aASpC,CAAC;AACF,8HAA8H;AAC9H,eAAO,MAAM,qBAAqB,EAAE,aAmBnC,CAAC;AACF,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,EAAE,aAInC,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,aAIxB,CAAC;AACF,0HAA0H;AAC1H,eAAO,MAAM,aAAa,EAAE,aAW3B,CAAC;AACF,qGAAqG;AACrG,eAAO,MAAM,WAAW,EAAE,aAczB,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,OACgB,CAAC;AAWjE,4GAA4G;AAC5G,eAAO,MAAM,cAAc;;;;;;;;;;;;4CAYI;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;4CAc9C;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCnE,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAMlD,CAAC;AACF,eAAO,MAAM,kBAAkB,GAAU,MAAM,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAC1C,CAAC"}
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** @internal Story and test fixtures for the role cards. Plain data, no behaviour. */
|
|
3
|
+
const MASKED = { masked: true, display: "b***@buyer.example" };
|
|
4
|
+
export const offerFull = {
|
|
5
|
+
offerId: "11111111-1111-4111-8111-111111111111",
|
|
6
|
+
status: "in_negotiation",
|
|
7
|
+
viewerRole: "producer",
|
|
8
|
+
product: "Riesling Spatlese 2022",
|
|
9
|
+
opportunity: "Nordic red wine tender, autumn 2026",
|
|
10
|
+
counterparty: "Nordic Wine Imports AB",
|
|
11
|
+
price: "9.40",
|
|
12
|
+
priceType: "per bottle",
|
|
13
|
+
currency: "EUR",
|
|
14
|
+
volume: "6,000 bottles",
|
|
15
|
+
validThrough: "2026-12-01",
|
|
16
|
+
round: 2,
|
|
17
|
+
awaiting: "you",
|
|
18
|
+
counts: { messages: 14, attachments: 2 },
|
|
19
|
+
link: "/offers/11111111-1111-4111-8111-111111111111",
|
|
20
|
+
detail: {
|
|
21
|
+
kind: "offer",
|
|
22
|
+
id: "11111111-1111-4111-8111-111111111111",
|
|
23
|
+
focus: ["terms.price"],
|
|
24
|
+
},
|
|
25
|
+
actions: [
|
|
26
|
+
{
|
|
27
|
+
id: "open-thread",
|
|
28
|
+
label: "Open the thread",
|
|
29
|
+
kind: "navigate",
|
|
30
|
+
href: "/offers/11111111-1111-4111-8111-111111111111/chat",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "counter",
|
|
34
|
+
label: "Counter this offer",
|
|
35
|
+
kind: "propose",
|
|
36
|
+
tool: "counter_received_offer",
|
|
37
|
+
args: { offerId: "11111111-1111-4111-8111-111111111111" },
|
|
38
|
+
tier: "reversible",
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
export const offerMinimal = { offerId: "o-2", status: "draft" };
|
|
43
|
+
export const offerMasked = {
|
|
44
|
+
...offerFull,
|
|
45
|
+
counterparty: MASKED,
|
|
46
|
+
status: "awaiting_counterparty_acceptance",
|
|
47
|
+
awaiting: "counterparty",
|
|
48
|
+
actions: undefined,
|
|
49
|
+
};
|
|
50
|
+
export const offerAccepted = {
|
|
51
|
+
...offerFull,
|
|
52
|
+
status: "accepted",
|
|
53
|
+
awaiting: "none",
|
|
54
|
+
actions: undefined,
|
|
55
|
+
};
|
|
56
|
+
export const offerRejected = {
|
|
57
|
+
...offerFull,
|
|
58
|
+
status: "rejected",
|
|
59
|
+
awaiting: "none",
|
|
60
|
+
actions: undefined,
|
|
61
|
+
};
|
|
62
|
+
export const offerLongText = {
|
|
63
|
+
...offerFull,
|
|
64
|
+
product: "Gewurztraminer Grand Cru Vendanges Tardives Cuvee Reserve de la Famille 2019 magnum in individual wooden gift box",
|
|
65
|
+
counterparty: "Internationale Weinhandelsgesellschaft fur Spezialitaten und Raritaten mbH & Co. KG",
|
|
66
|
+
};
|
|
67
|
+
export const offerProposal = {
|
|
68
|
+
...offerFull,
|
|
69
|
+
actions: undefined,
|
|
70
|
+
proposal: {
|
|
71
|
+
kind: "offer",
|
|
72
|
+
id: "11111111-1111-4111-8111-111111111111",
|
|
73
|
+
changes: [
|
|
74
|
+
{ path: "terms.price", before: "9.40", after: "9.10" },
|
|
75
|
+
{ path: "terms.paymentTerms", before: null, after: "30 days" },
|
|
76
|
+
],
|
|
77
|
+
tool: "counter_received_offer",
|
|
78
|
+
tier: "reversible",
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
export const productFull = {
|
|
82
|
+
name: "Riesling Spatlese",
|
|
83
|
+
producer: "Weingut Sonnenhang",
|
|
84
|
+
category: "wine",
|
|
85
|
+
subtype: "white",
|
|
86
|
+
vintage: 2022,
|
|
87
|
+
abv: "12.5%",
|
|
88
|
+
volume: "750 ml",
|
|
89
|
+
packaging: "bottle",
|
|
90
|
+
certifications: ["organic", "sustainable"],
|
|
91
|
+
variantCount: 3,
|
|
92
|
+
matchCount: 2,
|
|
93
|
+
validation: "pending_review",
|
|
94
|
+
readiness: {
|
|
95
|
+
percent: 80,
|
|
96
|
+
canApprove: false,
|
|
97
|
+
blockers: 1,
|
|
98
|
+
recommendations: 2,
|
|
99
|
+
acknowledgements: 1,
|
|
100
|
+
},
|
|
101
|
+
link: "/portfolio/p1",
|
|
102
|
+
detail: { kind: "variant", id: "v1", focus: ["readiness.blockers"] },
|
|
103
|
+
actions: [
|
|
104
|
+
{
|
|
105
|
+
id: "fix",
|
|
106
|
+
label: "Fix what is missing",
|
|
107
|
+
kind: "edit",
|
|
108
|
+
tool: "update_variant",
|
|
109
|
+
args: { variantId: "v1" },
|
|
110
|
+
tier: "reversible",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
export const productReady = {
|
|
115
|
+
...productFull,
|
|
116
|
+
validation: "approved",
|
|
117
|
+
readiness: { percent: 100, canApprove: true },
|
|
118
|
+
actions: undefined,
|
|
119
|
+
};
|
|
120
|
+
export const productMinimal = { name: "Lager" };
|
|
121
|
+
export const productProposal = {
|
|
122
|
+
...productFull,
|
|
123
|
+
actions: undefined,
|
|
124
|
+
proposal: {
|
|
125
|
+
kind: "variant",
|
|
126
|
+
id: "v1",
|
|
127
|
+
changes: [
|
|
128
|
+
{ path: "abv", before: "12.5", after: "13" },
|
|
129
|
+
{ path: "productionVolume", before: null, after: 12000 },
|
|
130
|
+
],
|
|
131
|
+
tool: "update_variant",
|
|
132
|
+
tier: "reversible",
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
export const opportunityOpen = {
|
|
136
|
+
name: "Red wine for the Nordic monopoly, autumn 2026",
|
|
137
|
+
buyer: MASKED,
|
|
138
|
+
market: "Sweden",
|
|
139
|
+
country: "SE",
|
|
140
|
+
category: "wine",
|
|
141
|
+
subtype: "red",
|
|
142
|
+
volume: "20,000 bottles",
|
|
143
|
+
priceRange: "8 to 11 EUR",
|
|
144
|
+
deadline: "2026-11-30",
|
|
145
|
+
daysRemaining: 49,
|
|
146
|
+
status: "open",
|
|
147
|
+
requirements: ["organic", "screw cap", "750 ml", "vintage 2023 or newer"],
|
|
148
|
+
link: "/opportunities/o1",
|
|
149
|
+
detail: { kind: "opportunity", id: "o1" },
|
|
150
|
+
actions: [
|
|
151
|
+
{
|
|
152
|
+
id: "match",
|
|
153
|
+
label: "See my matches",
|
|
154
|
+
kind: "navigate",
|
|
155
|
+
href: "/matches",
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
export const opportunityExpired = {
|
|
160
|
+
...opportunityOpen,
|
|
161
|
+
buyer: "Systembolaget",
|
|
162
|
+
status: "expired",
|
|
163
|
+
daysRemaining: -3,
|
|
164
|
+
actions: undefined,
|
|
165
|
+
};
|
|
166
|
+
export const opportunityMinimal = { name: "Tender" };
|
|
167
|
+
export const matchStrong = {
|
|
168
|
+
matchId: "m-1",
|
|
169
|
+
score: 4.5,
|
|
170
|
+
label: "Strong fit",
|
|
171
|
+
product: { name: "Riesling Spatlese 2022", link: "/portfolio/p1" },
|
|
172
|
+
opportunity: {
|
|
173
|
+
name: "Nordic red wine tender",
|
|
174
|
+
buyer: "Buyer AB",
|
|
175
|
+
country: "SE",
|
|
176
|
+
link: "/opportunities/o1",
|
|
177
|
+
},
|
|
178
|
+
explanation: "Category, volume and price all sit inside what the buyer asked for; the organic certificate is on file.",
|
|
179
|
+
volume: "6,000 bottles",
|
|
180
|
+
price: "9 EUR",
|
|
181
|
+
deadline: "2026-11-30",
|
|
182
|
+
daysRemaining: 49,
|
|
183
|
+
link: "/matches/m-1",
|
|
184
|
+
detail: { kind: "match", id: "m-1" },
|
|
185
|
+
actions: [
|
|
186
|
+
{
|
|
187
|
+
id: "interested",
|
|
188
|
+
label: "Mark interested",
|
|
189
|
+
kind: "propose",
|
|
190
|
+
tool: "mark_match_interested",
|
|
191
|
+
args: { matchId: "m-1" },
|
|
192
|
+
tier: "reversible",
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
};
|
|
196
|
+
export const matchWeak = {
|
|
197
|
+
...matchStrong,
|
|
198
|
+
score: 1.8,
|
|
199
|
+
label: "Weak fit",
|
|
200
|
+
explanation: "Price is above the buyer's range.",
|
|
201
|
+
actions: undefined,
|
|
202
|
+
};
|
|
203
|
+
export const matchMid = {
|
|
204
|
+
...matchStrong,
|
|
205
|
+
score: 3,
|
|
206
|
+
label: "Possible fit",
|
|
207
|
+
actions: undefined,
|
|
208
|
+
};
|
|
209
|
+
export const matchDeclined = {
|
|
210
|
+
...matchStrong,
|
|
211
|
+
declined: true,
|
|
212
|
+
actions: undefined,
|
|
213
|
+
};
|
|
214
|
+
export const matchMasked = {
|
|
215
|
+
...matchStrong,
|
|
216
|
+
opportunity: { name: "Private tender", buyer: MASKED },
|
|
217
|
+
actions: undefined,
|
|
218
|
+
};
|
|
219
|
+
export const matchMinimal = { matchId: "m-3", score: 0 };
|
|
220
|
+
/**
|
|
221
|
+
* The tables the cellarnode-mcp agents emit for the link tools (`agents/src/role-result-cards.ts`, CEL-2447), as they shape them:
|
|
222
|
+
* a `link` that is the surface's own internal path, null for a field the tool did not have, a last row that says a list was cut
|
|
223
|
+
* short, and a file column keyed by who wrote it (`counterpartyFile`: the other side's offer file; `producerFile` and
|
|
224
|
+
* `producerBeverage`: a producer's public documents and beverages as an importer sees them; `file`: the caller's own).
|
|
225
|
+
*/
|
|
226
|
+
const fileColumns = (fileKey) => [
|
|
227
|
+
{ key: fileKey, label: "File" },
|
|
228
|
+
{ key: "type", label: "Type" },
|
|
229
|
+
];
|
|
230
|
+
const OFFER_ID = "11111111-1111-4111-8111-111111111111";
|
|
231
|
+
const ORG_ID = "22222222-2222-4222-8222-222222222222";
|
|
232
|
+
/** `get_offer_file_link`: the offer page, where the file opens. The file came from the other side of the offer. */
|
|
233
|
+
export const tableOfferFile = {
|
|
234
|
+
columns: fileColumns("counterpartyFile"),
|
|
235
|
+
rows: [{ counterpartyFile: "Spec sheet Riesling 2022.pdf", type: "application/pdf" }],
|
|
236
|
+
link: `/offers/${OFFER_ID}`,
|
|
237
|
+
};
|
|
238
|
+
/** `get_org_document_link`, as the producer's agent draws it. The caller's own document. */
|
|
239
|
+
export const tableOrgDocument = {
|
|
240
|
+
columns: fileColumns("file"),
|
|
241
|
+
rows: [{ file: "Certificate of registration", type: "registration" }],
|
|
242
|
+
link: "/organisation/profile",
|
|
243
|
+
};
|
|
244
|
+
/** `get_org_document_link`, as the importer's agent draws it: the importer has the same organisation profile page. */
|
|
245
|
+
export const tableImporterOrgDocument = {
|
|
246
|
+
columns: fileColumns("file"),
|
|
247
|
+
rows: [{ file: "Company registration extract.pdf", type: "registration" }],
|
|
248
|
+
link: "/organisation/profile",
|
|
249
|
+
};
|
|
250
|
+
/** `get_attachment_link`, as the producer's agent draws it: where the file is shown (a product gallery). */
|
|
251
|
+
export const tableAttachment = {
|
|
252
|
+
columns: fileColumns("file"),
|
|
253
|
+
rows: [{ file: "Front label.png", type: null }],
|
|
254
|
+
link: "/portfolio/p1/products/v1/gallery",
|
|
255
|
+
};
|
|
256
|
+
/** `list_producer_documents`, as the importer's agent draws it: three columns and the row that says the list was cut short. */
|
|
257
|
+
export const tableProducerDocuments = {
|
|
258
|
+
columns: [...fileColumns("producerFile"), { key: "uploaded", label: "Uploaded" }],
|
|
259
|
+
rows: [
|
|
260
|
+
{ producerFile: "Organic certificate 2026.pdf", type: "certificate", uploaded: "2026-08-02" },
|
|
261
|
+
{ producerFile: "Price list autumn.xlsx", type: "price_list", uploaded: "2026-09-14" },
|
|
262
|
+
{ producerFile: "Tasting notes.pdf", type: null, uploaded: null },
|
|
263
|
+
{ producerFile: "More documents not shown", type: null, uploaded: null },
|
|
264
|
+
],
|
|
265
|
+
link: `/producers/${ORG_ID}`,
|
|
266
|
+
};
|
|
267
|
+
/** `get_producer_showcase`, as the importer's agent draws it: a version count at the tool's cap on a cut list reads "20+". */
|
|
268
|
+
export const tableProducerShowcase = {
|
|
269
|
+
columns: [
|
|
270
|
+
{ key: "producerBeverage", label: "Beverage" },
|
|
271
|
+
{ key: "category", label: "Category" },
|
|
272
|
+
{ key: "country", label: "Country" },
|
|
273
|
+
{ key: "versions", label: "Versions" },
|
|
274
|
+
],
|
|
275
|
+
rows: [
|
|
276
|
+
{ producerBeverage: "Riesling Spatlese", category: "wine", country: "DE", versions: 3 },
|
|
277
|
+
{ producerBeverage: "Pinot Noir Reserve", category: "wine", country: "DE", versions: "20+" },
|
|
278
|
+
{ producerBeverage: "Apfelschorle", category: null, country: "DE", versions: 1 },
|
|
279
|
+
{
|
|
280
|
+
producerBeverage: "More beverages or versions not shown",
|
|
281
|
+
category: null,
|
|
282
|
+
country: null,
|
|
283
|
+
versions: null,
|
|
284
|
+
},
|
|
285
|
+
],
|
|
286
|
+
link: `/producers/${ORG_ID}`,
|
|
287
|
+
};
|
|
288
|
+
/** An e-label producer's attachment: the e-label app keeps its producer area under `/app`. */
|
|
289
|
+
export const tableElabelAttachment = {
|
|
290
|
+
columns: fileColumns("file"),
|
|
291
|
+
rows: [{ file: "Lab report 2026-03.pdf", type: "lab_report" }],
|
|
292
|
+
link: "/app/portfolio/p1/products/v1",
|
|
293
|
+
};
|
|
294
|
+
export const tableEmpty = {
|
|
295
|
+
columns: fileColumns("file"),
|
|
296
|
+
rows: [],
|
|
297
|
+
link: "/offers/o1",
|
|
298
|
+
};
|
|
299
|
+
/** A file name that fills the card: it wraps inside its cell, and a table wider than the card scrolls inside the card. */
|
|
300
|
+
export const tableLongText = {
|
|
301
|
+
columns: [...fileColumns("counterpartyFile"), { key: "uploaded", label: "Uploaded" }],
|
|
302
|
+
rows: [
|
|
303
|
+
{
|
|
304
|
+
counterpartyFile: "Gewurztraminer_Grand_Cru_Vendanges_Tardives_Cuvee_Reserve_de_la_Famille_2019_magnum_in_individual_wooden_gift_box_final_approved_v7.pdf",
|
|
305
|
+
type: "A very long description of what kind of document this is, written by the other side and run on well past any sensible length for a table cell",
|
|
306
|
+
uploaded: "2026-09-14",
|
|
307
|
+
},
|
|
308
|
+
],
|
|
309
|
+
link: `/offers/${OFFER_ID}`,
|
|
310
|
+
};
|
|
311
|
+
/** A masked column, a masked cell in an open column, and a plain value the server forgot to mask. */
|
|
312
|
+
export const tableMasked = {
|
|
313
|
+
columns: [
|
|
314
|
+
{ key: "name", label: "Contact" },
|
|
315
|
+
{ key: "email", label: "Email", masked: true },
|
|
316
|
+
{ key: "phone", label: "Phone" },
|
|
317
|
+
],
|
|
318
|
+
rows: [
|
|
319
|
+
{
|
|
320
|
+
name: "Anna Berg",
|
|
321
|
+
email: { masked: true, display: "a***@buyer.example" },
|
|
322
|
+
phone: { masked: true, display: "+46 ** *** 12" },
|
|
323
|
+
},
|
|
324
|
+
{ name: "Karl Holm", email: "karl.holm@buyer.example", phone: null },
|
|
325
|
+
],
|
|
326
|
+
};
|
|
327
|
+
/** Paths the story and test hosts accept. */
|
|
328
|
+
export const allowFixtureLink = (path) => /^\/(offers|portfolio|opportunities|matches)(\/|$)/.test(path);
|
|
329
|
+
const argsByLastSegment = (changes, id, idArg) => ({
|
|
330
|
+
[idArg]: id,
|
|
331
|
+
...Object.fromEntries(changes.map((c) => [c.path.split(".").pop(), c.after])),
|
|
332
|
+
});
|
|
333
|
+
/** A host tool catalog for stories and tests. Tiers, titles and target kinds live HERE, never on a card. */
|
|
334
|
+
export const fixtureCatalog = {
|
|
335
|
+
counter_received_offer: {
|
|
336
|
+
name: "counter_received_offer",
|
|
337
|
+
title: "Counter the received offer",
|
|
338
|
+
tier: "reversible",
|
|
339
|
+
inputSchema: z.object({
|
|
340
|
+
offerId: z.string().min(1),
|
|
341
|
+
price: z.string().optional(),
|
|
342
|
+
paymentTerms: z.string().optional(),
|
|
343
|
+
}),
|
|
344
|
+
targetArg: "offerId",
|
|
345
|
+
targetKind: "offer",
|
|
346
|
+
argsFromChanges: (changes, id) => argsByLastSegment(changes, id, "offerId"),
|
|
347
|
+
},
|
|
348
|
+
update_variant: {
|
|
349
|
+
name: "update_variant",
|
|
350
|
+
title: "Update product version",
|
|
351
|
+
tier: "reversible",
|
|
352
|
+
inputSchema: z.object({
|
|
353
|
+
variantId: z.string(),
|
|
354
|
+
abv: z.string().optional(),
|
|
355
|
+
productionVolume: z.number().optional(),
|
|
356
|
+
}),
|
|
357
|
+
targetArg: "variantId",
|
|
358
|
+
targetKind: "variant",
|
|
359
|
+
argsFromChanges: (changes, id) => argsByLastSegment(changes, id, "variantId"),
|
|
360
|
+
},
|
|
361
|
+
mark_match_interested: {
|
|
362
|
+
name: "mark_match_interested",
|
|
363
|
+
title: "Mark the match as interested",
|
|
364
|
+
tier: "reversible",
|
|
365
|
+
inputSchema: z.object({ matchId: z.string() }),
|
|
366
|
+
targetArg: "matchId",
|
|
367
|
+
targetKind: "match",
|
|
368
|
+
},
|
|
369
|
+
discard_offer: {
|
|
370
|
+
name: "discard_offer",
|
|
371
|
+
title: "Discard the offer",
|
|
372
|
+
tier: "destructive",
|
|
373
|
+
inputSchema: z.object({ offerId: z.string() }),
|
|
374
|
+
targetArg: "offerId",
|
|
375
|
+
targetKind: "offer",
|
|
376
|
+
},
|
|
377
|
+
delete_product: {
|
|
378
|
+
name: "delete_product",
|
|
379
|
+
title: "Delete the product",
|
|
380
|
+
tier: "destructive",
|
|
381
|
+
inputSchema: z.object({ productId: z.string() }),
|
|
382
|
+
targetArg: "productId",
|
|
383
|
+
targetKind: "product",
|
|
384
|
+
},
|
|
385
|
+
get_offer: {
|
|
386
|
+
name: "get_offer",
|
|
387
|
+
title: "Read an offer",
|
|
388
|
+
tier: "read",
|
|
389
|
+
inputSchema: z.object({ offerId: z.string() }),
|
|
390
|
+
},
|
|
391
|
+
};
|
|
392
|
+
/** The records a story host would fetch for a proposal's Apply, keyed `kind:id`. */
|
|
393
|
+
export const fixtureRecords = {
|
|
394
|
+
"offer:11111111-1111-4111-8111-111111111111": {
|
|
395
|
+
name: "Riesling Spatlese 2022 for Nordic Wine Imports",
|
|
396
|
+
terms: { price: "9.40", paymentTerms: null },
|
|
397
|
+
},
|
|
398
|
+
"variant:v1": { name: "Riesling Spatlese 2022", abv: "12.5", productionVolume: null },
|
|
399
|
+
};
|
|
400
|
+
export const fixtureFetchRecord = async (kind, id) => fixtureRecords[`${kind}:${id}`] ?? null;
|
|
401
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/agent/role-cards/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,sFAAsF;AACtF,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAW,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC,OAAO,EAAE,sCAAsC;IAC/C,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,wBAAwB;IACjC,WAAW,EAAE,qCAAqC;IAClD,YAAY,EAAE,wBAAwB;IACtC,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,eAAe;IACvB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;IACxC,IAAI,EAAE,8CAA8C;IACpD,MAAM,EAAE;QACN,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,sCAAsC;QAC1C,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD,OAAO,EAAE;QACP;YACE,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,mDAAmD;SAC1D;QACD;YACE,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE;YACzD,IAAI,EAAE,YAAY;SACnB;KACF;CACF,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,GAAG,SAAS;IACZ,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,kCAAkC;IAC1C,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,SAAS;IACZ,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,SAAS;IACZ,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,SAAS;IACZ,OAAO,EACL,mHAAmH;IACrH,YAAY,EACV,qFAAqF;CACxF,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,SAAS;IACZ,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,sCAAsC;QAC1C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACtD,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;SAC/D;QACD,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,YAAY;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,QAAQ;IACnB,cAAc,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1C,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE;QACT,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;KACpB;IACD,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,oBAAoB,CAAC,EAAE;IACpE,OAAO,EAAE;QACP;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,qBAAqB;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YACzB,IAAI,EAAE,YAAY;SACnB;KACF;CACF,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,GAAG,WAAW;IACd,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;IAC7C,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACjE,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,GAAG,WAAW;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SACzD;QACD,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,YAAY;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAwB;IAClD,IAAI,EAAE,+CAA+C;IACrD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,EAAE;IACjB,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,CAAC;IACzE,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE;QACP;YACE,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;SACjB;KACF;CACF,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAwB;IACrD,GAAG,eAAe;IAClB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAE1E,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,EAAE;IAClE,WAAW,EAAE;QACX,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,mBAAmB;KAC1B;IACD,WAAW,EACT,yGAAyG;IAC3G,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,EAAE;IACjB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;IACpC,OAAO,EAAE;QACP;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACxB,IAAI,EAAE,YAAY;SACnB;KACF;CACF,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAkB;IACtC,GAAG,WAAW;IACd,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,mCAAmC;IAChD,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,GAAG,WAAW;IACd,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,WAAW;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,GAAG,WAAW;IACd,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE;IACtD,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC;IACvC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/B,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CAC/B,CAAC;AACF,MAAM,QAAQ,GAAG,sCAAsC,CAAC;AACxD,MAAM,MAAM,GAAG,sCAAsC,CAAC;AAEtD,mHAAmH;AACnH,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IACrF,IAAI,EAAE,WAAW,QAAQ,EAAE;CAC5B,CAAC;AACF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACrE,IAAI,EAAE,uBAAuB;CAC9B,CAAC;AACF,sHAAsH;AACtH,MAAM,CAAC,MAAM,wBAAwB,GAAkB;IACrD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAC1E,IAAI,EAAE,uBAAuB;CAC9B,CAAC;AACF,4GAA4G;AAC5G,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,EAAE,mCAAmC;CAC1C,CAAC;AACF,+HAA+H;AAC/H,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACjF,IAAI,EAAE;QACJ,EAAE,YAAY,EAAE,8BAA8B,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QAC7F,EAAE,YAAY,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE;QACtF,EAAE,YAAY,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjE,EAAE,YAAY,EAAE,0BAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzE;IACD,IAAI,EAAE,cAAc,MAAM,EAAE;CAC7B,CAAC;AACF,8HAA8H;AAC9H,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,OAAO,EAAE;QACP,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE;QAC9C,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QACtC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;QACpC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KACvC;IACD,IAAI,EAAE;QACJ,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;QACvF,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC5F,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE;QAChF;YACE,gBAAgB,EAAE,sCAAsC;YACxD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf;KACF;IACD,IAAI,EAAE,cAAc,MAAM,EAAE;CAC7B,CAAC;AACF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC9D,IAAI,EAAE,+BAA+B;CACtC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,YAAY;CACnB,CAAC;AACF,0HAA0H;AAC1H,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACrF,IAAI,EAAE;QACJ;YACE,gBAAgB,EACd,yIAAyI;YAC3I,IAAI,EAAE,+IAA+I;YACrJ,QAAQ,EAAE,YAAY;SACvB;KACF;IACD,IAAI,EAAE,WAAW,QAAQ,EAAE;CAC5B,CAAC;AACF,qGAAqG;AACrG,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE;QACP,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;QACjC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAC9C,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;KACjC;IACD,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE;YACtD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE;SAClD;QACD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE;KACrE;CACF,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAW,EAAE,CACxD,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CACxB,OAA2C,EAC3C,EAAU,EACV,KAAa,EACb,EAAE,CAAC,CAAC;IACJ,CAAC,KAAK,CAAC,EAAE,EAAE;IACX,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAC/E,CAAC,CAAC;AAEH,4GAA4G;AAC5G,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,sBAAsB,EAAE;QACtB,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC,CAAC;QACF,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,OAAO;QACnB,eAAe,EAAE,CAAC,OAA2C,EAAE,EAAU,EAAE,EAAE,CAC3E,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;KAC5C;IACD,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,wBAAwB;QAC/B,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACxC,CAAC;QACF,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,SAAS;QACrB,eAAe,EAAE,CAAC,OAA2C,EAAE,EAAU,EAAE,EAAE,CAC3E,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,CAAC;KAC9C;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,8BAA8B;QACrC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,OAAO;KACpB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,OAAO;KACpB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,SAAS;KACtB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;KAC/C;CACO,CAAC;AAEX,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,4CAA4C,EAAE;QAC5C,IAAI,EAAE,gDAAgD;QACtD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE;KAC7C;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE;CACtF,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAU,EAAoB,EAAE,CACrF,cAAc,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC"}
|