@originkit/ai-engine 0.1.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/benchmark/agents.d.ts +162 -0
- package/dist/benchmark/agents.d.ts.map +1 -0
- package/dist/benchmark/agents.js +1187 -0
- package/dist/benchmark/agents.js.map +1 -0
- package/dist/benchmark/diff.d.ts +23 -0
- package/dist/benchmark/diff.d.ts.map +1 -0
- package/dist/benchmark/diff.js +117 -0
- package/dist/benchmark/diff.js.map +1 -0
- package/dist/benchmark/domain.d.ts +8 -0
- package/dist/benchmark/domain.d.ts.map +1 -0
- package/dist/benchmark/domain.js +322 -0
- package/dist/benchmark/domain.js.map +1 -0
- package/dist/benchmark/edit-pass.d.ts +38 -0
- package/dist/benchmark/edit-pass.d.ts.map +1 -0
- package/dist/benchmark/edit-pass.js +121 -0
- package/dist/benchmark/edit-pass.js.map +1 -0
- package/dist/benchmark/prompt.d.ts +128 -0
- package/dist/benchmark/prompt.d.ts.map +1 -0
- package/dist/benchmark/prompt.js +883 -0
- package/dist/benchmark/prompt.js.map +1 -0
- package/dist/benchmark/run-loop.d.ts +74 -0
- package/dist/benchmark/run-loop.d.ts.map +1 -0
- package/dist/benchmark/run-loop.js +138 -0
- package/dist/benchmark/run-loop.js.map +1 -0
- package/dist/benchmark/schema.d.ts +13 -0
- package/dist/benchmark/schema.d.ts.map +1 -0
- package/dist/benchmark/schema.js +63 -0
- package/dist/benchmark/schema.js.map +1 -0
- package/dist/benchmark/types.d.ts +113 -0
- package/dist/benchmark/types.d.ts.map +1 -0
- package/dist/benchmark/types.js +18 -0
- package/dist/benchmark/types.js.map +1 -0
- package/dist/packages/ai-engine/index.d.ts +13 -0
- package/dist/packages/ai-engine/index.d.ts.map +1 -0
- package/dist/packages/ai-engine/index.js +39 -0
- package/dist/packages/ai-engine/index.js.map +1 -0
- package/package.json +26 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../benchmark/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type DiffLine = {
|
|
2
|
+
t: " " | "-" | "+";
|
|
3
|
+
text: string;
|
|
4
|
+
/** 1-based line number in the original, when the line exists there. */
|
|
5
|
+
a?: number;
|
|
6
|
+
/** 1-based line number in the rewrite, when the line exists there. */
|
|
7
|
+
b?: number;
|
|
8
|
+
};
|
|
9
|
+
export type Hunk = {
|
|
10
|
+
aStart: number;
|
|
11
|
+
bStart: number;
|
|
12
|
+
lines: DiffLine[];
|
|
13
|
+
};
|
|
14
|
+
export type DiffResult = {
|
|
15
|
+
hunks: Hunk[];
|
|
16
|
+
added: number;
|
|
17
|
+
removed: number;
|
|
18
|
+
/** The changed region was too large to align line-by-line, so it is reported
|
|
19
|
+
* as one wholesale replacement rather than a misleading pseudo-alignment. */
|
|
20
|
+
coarse: boolean;
|
|
21
|
+
};
|
|
22
|
+
export declare function diffLines(before: string, after: string, context?: number): DiffResult;
|
|
23
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../benchmark/diff.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;kFAC8E;IAC9E,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAMF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,UAAU,CAmGhF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A unified line diff, for showing what a model changed in a rewritten file.
|
|
3
|
+
*
|
|
4
|
+
* The existing prop diff compares line N to line N, which is fine when both
|
|
5
|
+
* sides are generated from the same key order and stay aligned. Source does
|
|
6
|
+
* not: one inserted line shifts everything after it and every remaining line
|
|
7
|
+
* reads as changed. So this is a real longest-common-subsequence diff.
|
|
8
|
+
*
|
|
9
|
+
* Cost is handled by shrinking the problem before solving it. These files are
|
|
10
|
+
* ~1400 lines and a model usually touches a handful, so trimming the identical
|
|
11
|
+
* head and tail first leaves an LCS table of a few lines square instead of two
|
|
12
|
+
* million cells.
|
|
13
|
+
*/
|
|
14
|
+
/* An LCS table is width*height entries. Past this the table costs more memory
|
|
15
|
+
* than the answer is worth, and a diff that large is a rewrite, not an edit. */
|
|
16
|
+
const MAX_CELLS = 4_000_000;
|
|
17
|
+
export function diffLines(before, after, context = 3) {
|
|
18
|
+
const A = before.length ? before.split("\n") : [];
|
|
19
|
+
const B = after.length ? after.split("\n") : [];
|
|
20
|
+
// Identical head and tail, which is most of the file.
|
|
21
|
+
let p = 0;
|
|
22
|
+
while (p < A.length && p < B.length && A[p] === B[p])
|
|
23
|
+
p++;
|
|
24
|
+
let s = 0;
|
|
25
|
+
while (s < A.length - p && s < B.length - p && A[A.length - 1 - s] === B[B.length - 1 - s])
|
|
26
|
+
s++;
|
|
27
|
+
const midA = A.slice(p, A.length - s);
|
|
28
|
+
const midB = B.slice(p, B.length - s);
|
|
29
|
+
const ops = [];
|
|
30
|
+
const push = (t, text, ai, bi) => ops.push({ t, text, ...(t !== "+" && { a: ai + 1 }), ...(t !== "-" && { b: bi + 1 }) });
|
|
31
|
+
for (let i = 0; i < p; i++)
|
|
32
|
+
push(" ", A[i], i, i);
|
|
33
|
+
let coarse = false;
|
|
34
|
+
if (midA.length * midB.length > MAX_CELLS) {
|
|
35
|
+
coarse = true;
|
|
36
|
+
midA.forEach((l, i) => push("-", l, p + i, 0));
|
|
37
|
+
midB.forEach((l, i) => push("+", l, 0, p + i));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Classic LCS length table, then walk it back. Uint32Array keeps a
|
|
41
|
+
// 2000x2000 table at 16MB rather than an array of boxed numbers.
|
|
42
|
+
const n = midA.length;
|
|
43
|
+
const m = midB.length;
|
|
44
|
+
const w = m + 1;
|
|
45
|
+
const dp = new Uint32Array((n + 1) * w);
|
|
46
|
+
for (let i = n - 1; i >= 0; i--) {
|
|
47
|
+
for (let j = m - 1; j >= 0; j--) {
|
|
48
|
+
dp[i * w + j] =
|
|
49
|
+
midA[i] === midB[j]
|
|
50
|
+
? dp[(i + 1) * w + j + 1] + 1
|
|
51
|
+
: Math.max(dp[(i + 1) * w + j], dp[i * w + j + 1]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
let i = 0;
|
|
55
|
+
let j = 0;
|
|
56
|
+
while (i < n && j < m) {
|
|
57
|
+
if (midA[i] === midB[j]) {
|
|
58
|
+
push(" ", midA[i], p + i, p + j);
|
|
59
|
+
i++;
|
|
60
|
+
j++;
|
|
61
|
+
}
|
|
62
|
+
else if (dp[(i + 1) * w + j] >= dp[i * w + j + 1]) {
|
|
63
|
+
push("-", midA[i], p + i, 0);
|
|
64
|
+
i++;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
push("+", midB[j], 0, p + j);
|
|
68
|
+
j++;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
while (i < n)
|
|
72
|
+
push("-", midA[i], p + i++, 0);
|
|
73
|
+
while (j < m)
|
|
74
|
+
push("+", midB[j], 0, p + j++);
|
|
75
|
+
}
|
|
76
|
+
for (let k = 0; k < s; k++) {
|
|
77
|
+
push(" ", A[A.length - s + k], A.length - s + k, B.length - s + k);
|
|
78
|
+
}
|
|
79
|
+
const added = ops.filter((o) => o.t === "+").length;
|
|
80
|
+
const removed = ops.filter((o) => o.t === "-").length;
|
|
81
|
+
// Group changes into hunks, each padded with `context` unchanged lines.
|
|
82
|
+
// Runs of untouched code between hunks are dropped — that is the point.
|
|
83
|
+
const hunks = [];
|
|
84
|
+
let k = 0;
|
|
85
|
+
while (k < ops.length) {
|
|
86
|
+
if (ops[k].t === " ") {
|
|
87
|
+
k++;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
let start = k;
|
|
91
|
+
let taken = 0;
|
|
92
|
+
while (start > 0 && ops[start - 1].t === " " && taken < context) {
|
|
93
|
+
start--;
|
|
94
|
+
taken++;
|
|
95
|
+
}
|
|
96
|
+
let end = k;
|
|
97
|
+
// Extend while a change is within 2*context of the last one, so two nearby
|
|
98
|
+
// edits read as one hunk rather than two boxes sharing the same context.
|
|
99
|
+
let gap = 0;
|
|
100
|
+
while (end < ops.length && gap <= context * 2) {
|
|
101
|
+
if (ops[end].t === " ")
|
|
102
|
+
gap++;
|
|
103
|
+
else
|
|
104
|
+
gap = 0;
|
|
105
|
+
end++;
|
|
106
|
+
}
|
|
107
|
+
while (end > k && ops[end - 1].t === " " && end - 1 > k && gap-- > context)
|
|
108
|
+
end--;
|
|
109
|
+
const lines = ops.slice(start, end);
|
|
110
|
+
const first = lines.find((l) => l.a !== undefined);
|
|
111
|
+
const firstB = lines.find((l) => l.b !== undefined);
|
|
112
|
+
hunks.push({ aStart: first?.a ?? 0, bStart: firstB?.b ?? 0, lines });
|
|
113
|
+
k = end;
|
|
114
|
+
}
|
|
115
|
+
return { hunks, added, removed, coarse };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../benchmark/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Conventions ≥60% of the catalog already follows. */
|
|
2
|
+
export declare const HOUSE_RULES: string;
|
|
3
|
+
/**
|
|
4
|
+
* The recipes a given instruction earns. Usually none — most edits are colours
|
|
5
|
+
* and sizes, and an unmatched instruction pays nothing.
|
|
6
|
+
*/
|
|
7
|
+
export declare function recipesFor(instruction: string, source?: string): string;
|
|
8
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../benchmark/domain.ts"],"names":[],"mappings":"AAyBA,uDAAuD;AACvD,eAAO,MAAM,WAAW,QA6BZ,CAAC;AAkQb;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,CASnE"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* What this catalog is, and the maths it is made of.
|
|
3
|
+
*
|
|
4
|
+
* Every component here animates. The models are being asked to edit rAF loops,
|
|
5
|
+
* canvas draws, GLSL and spring transitions — and a general-purpose model has
|
|
6
|
+
* no idea what THIS catalog's conventions are, nor reliable recall of the
|
|
7
|
+
* formulae behind a request like "use a golden ratio curve".
|
|
8
|
+
*
|
|
9
|
+
* Two halves, and they are different kinds of thing:
|
|
10
|
+
*
|
|
11
|
+
* HOUSE — measured, not invented. Percentages below come from scanning all
|
|
12
|
+
* 260 published sources for the idiom. A rule that 75% of the
|
|
13
|
+
* catalog already follows is a convention; asserting one nobody
|
|
14
|
+
* follows would be inventing a house style and calling it a fact.
|
|
15
|
+
*
|
|
16
|
+
* RECIPES — maths the model would otherwise guess at, attached only when the
|
|
17
|
+
* instruction mentions it. The golden angle appears in exactly ONE
|
|
18
|
+
* of 260 components, which is precisely why "use golden ratio curve"
|
|
19
|
+
* came back as a spiral-shaped guess: there was nothing to imitate.
|
|
20
|
+
*
|
|
21
|
+
* Recipes go LAST in the prompt, after the source. They vary per instruction,
|
|
22
|
+
* and anything that varies has to sit behind everything stable or it
|
|
23
|
+
* invalidates the cacheable prefix on every turn.
|
|
24
|
+
*/
|
|
25
|
+
/** Conventions ≥60% of the catalog already follows. */
|
|
26
|
+
export const HOUSE_RULES = [
|
|
27
|
+
"HOW THIS CATALOG IS WRITTEN — match it:",
|
|
28
|
+
" - An animation loop is requestAnimationFrame, and the effect that starts",
|
|
29
|
+
" it cancels it on cleanup. 75% of components do both; a loop that",
|
|
30
|
+
" outlives its component is the one bug that compounds.",
|
|
31
|
+
" - Motion is driven by ELAPSED TIME, not by frame count (63%). Anything",
|
|
32
|
+
" stepped per frame runs at a different speed on a 120Hz display.",
|
|
33
|
+
" - Anything that resizes observes with ResizeObserver and disconnects it",
|
|
34
|
+
" (65% / 68%).",
|
|
35
|
+
" - Numeric inputs are clamped before use (72%). A prop outside its range",
|
|
36
|
+
" should pin, never distort the geometry.",
|
|
37
|
+
" - Canvas backing stores use devicePixelRatio capped at 2 — uncapped, a 3x",
|
|
38
|
+
" display quadruples the fill cost for no visible gain.",
|
|
39
|
+
" - ANYTHING THAT MOVES IS EASED, AND ITS EASING IS A PROP. A duration on",
|
|
40
|
+
" its own is a linear ramp: full speed on the first frame, dead stop on",
|
|
41
|
+
" the last — which is exactly why an added click, hover or reveal snaps in",
|
|
42
|
+
" and snaps out. Ease the 0..1 PROGRESS, never the elapsed time (easing",
|
|
43
|
+
" the clock gives back the same linear ramp), and expose the curve as an",
|
|
44
|
+
" enum prop `linear | ease-in | ease-out | ease-in-out` defaulting to",
|
|
45
|
+
" ease-out, beside a duration prop.",
|
|
46
|
+
" rAF form: t => 1 - Math.pow(1 - t, 3) (ease-out cubic)",
|
|
47
|
+
" one curve covers almost everything: cubic-bezier(0.22, 1, 0.36, 1)",
|
|
48
|
+
" durations: 40 / 80 / 150 / 250 / 350 / 400 / 500 ms",
|
|
49
|
+
" EXITS RUN ~A THIRD FASTER THAN ENTRANCES (open 250, close 150)",
|
|
50
|
+
" restraint is the tell: scale 0.96-0.99 not 0.8, move 4-12px not 50",
|
|
51
|
+
" - A continuous loop that pauses eases the SPEED and integrates it",
|
|
52
|
+
" (clock += dt * speed), never gates the clock (`if (moving) t += dt`) and",
|
|
53
|
+
" never eases the position — a gated clock snaps, and an eased position",
|
|
54
|
+
" slides backwards as the curve turns over, which reads as a glitch.",
|
|
55
|
+
].join("\n");
|
|
56
|
+
/*
|
|
57
|
+
* Keyword -> facts. Terse on purpose: this is reference, not teaching, and
|
|
58
|
+
* every line is paid for on the turn it appears.
|
|
59
|
+
*/
|
|
60
|
+
/*
|
|
61
|
+
* `match` reads the instruction; `source` reads the file being edited.
|
|
62
|
+
*
|
|
63
|
+
* Some facts are attached to what was ASKED — nobody needs the golden angle
|
|
64
|
+
* unless they mentioned a spiral. Others belong to what the file IS: a GLSL
|
|
65
|
+
* dialect matters on every edit to a shader component and on no edit to
|
|
66
|
+
* anything else, and the user will never say the word "shader". Matching the
|
|
67
|
+
* source is how those get attached without paying for them everywhere.
|
|
68
|
+
*/
|
|
69
|
+
const RECIPES = [
|
|
70
|
+
{
|
|
71
|
+
match: /golden|phyllotax|fibonacc|sunflower|φ|1\.618/i,
|
|
72
|
+
lines: [
|
|
73
|
+
"GOLDEN RATIO. φ = 1.6180339887. Two different things share the name:",
|
|
74
|
+
" - Golden SPIRAL (a curve): r = a * φ^(2θ/π) — grows by φ each quarter turn.",
|
|
75
|
+
" - Golden ANGLE distribution (points, e.g. sunflower seeds, Vogel's model):",
|
|
76
|
+
" angle = i * 137.50776405° (= i * π * (3 - sqrt(5)) radians)",
|
|
77
|
+
" radius = c * sqrt(i) — sqrt, or the centre crowds and the rim thins.",
|
|
78
|
+
" Laying out N items evenly across a disc is the ANGLE one, not the spiral.",
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
/* The timing block below is measured, not invented: it is the shape of the
|
|
82
|
+
* motion tokens published at transitions.dev (MIT, ~30 tuned UI transitions),
|
|
83
|
+
* cross-checked for the patterns that repeat across all of them — one
|
|
84
|
+
* dominant curve, exits faster than entrances, a small duration scale, and
|
|
85
|
+
* deliberately tiny scale/distance deltas. Values only; none of that
|
|
86
|
+
* project's CSS is used here, and none of it would apply, since these
|
|
87
|
+
* components animate in rAF rather than through CSS transitions. */
|
|
88
|
+
{
|
|
89
|
+
match: /spring|bounc|elastic|snap|overshoot|wobbl|jiggl|springi/i,
|
|
90
|
+
lines: [
|
|
91
|
+
"SPRINGS. framer-motion takes { type: 'spring', stiffness, damping, mass }.",
|
|
92
|
+
" Critically damped (no overshoot): damping ≈ 2 * sqrt(stiffness * mass).",
|
|
93
|
+
" Below that overshoots, above is sluggish. Typical UI: stiffness 200-400,",
|
|
94
|
+
" damping 20-30. Overshoot belongs to motion that followed a gesture; a",
|
|
95
|
+
" panel that merely appeared should settle without bouncing.",
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
/* Widened past the word "easing" on purpose.
|
|
100
|
+
*
|
|
101
|
+
* The recipe used to need the user to name it, so "add a click animation
|
|
102
|
+
* that sends out ripples" attracted nothing — and the answer was a linear
|
|
103
|
+
* ramp, which starts at full speed and stops dead. Anything that responds
|
|
104
|
+
* to a click, a hover or a state change needs a curve, and almost nobody
|
|
105
|
+
* asks for one by name. */
|
|
106
|
+
match: /eas(e|ing|ed)|cubic-bezier|tween|timing curve|accelerat|decelerat|click|tap\b|press|hover|transition|interaction|ripple|fade|reveal|expand|appear|disappear|enter|exit|dismiss|open|close/i,
|
|
107
|
+
lines: [
|
|
108
|
+
"EASING. A duration on its own is a LINEAR ramp: full speed from the first",
|
|
109
|
+
"frame, dead stop on the last. That is what makes a click or hover effect",
|
|
110
|
+
"feel broken, and it is the most common flaw in an added interaction.",
|
|
111
|
+
" In a rAF loop you need the function, not the bezier. t is",
|
|
112
|
+
" elapsed/duration clamped to 0..1:",
|
|
113
|
+
" ease-out t => 1 - Math.pow(1 - t, 3)",
|
|
114
|
+
" ease-in t => t * t * t",
|
|
115
|
+
" ease-in-out t => t < 0.5 ? 4*t*t*t : 1 - Math.pow(-2*t + 2, 3) / 2",
|
|
116
|
+
" overshoot t => 1 + 2.70158*Math.pow(t-1,3) + 1.70158*Math.pow(t-1,2)",
|
|
117
|
+
" Apply it to the PROGRESS, then use the eased value for radius, alpha or",
|
|
118
|
+
" offset — easing the elapsed time instead gives you the same linear ramp.",
|
|
119
|
+
" Entrances ease OUT (fast then settle); exits ease IN. A click response",
|
|
120
|
+
" is an entrance, so ease-out unless something says otherwise.",
|
|
121
|
+
" As CSS: ease-out cubic-bezier(0, 0, 0.58, 1); ease-in-out",
|
|
122
|
+
" cubic-bezier(0.42, 0, 0.58, 1).",
|
|
123
|
+
"",
|
|
124
|
+
"TIMING. Numbers, not taste — these are what tuned UI motion actually uses",
|
|
125
|
+
"and they are the difference between motion that reads as designed and",
|
|
126
|
+
"motion that reads as a default:",
|
|
127
|
+
" ONE CURVE COVERS ALMOST EVERYTHING: cubic-bezier(0.22, 1, 0.36, 1).",
|
|
128
|
+
" Open, close, resize, slide, reposition. Reach for it first.",
|
|
129
|
+
" In a rAF loop that curve is close to t => 1 - Math.pow(1 - t, 3).",
|
|
130
|
+
" EXITS ARE FASTER THAN ENTRANCES, always, by roughly a third:",
|
|
131
|
+
" modal 250 open / 150 close dropdown 250 / 150",
|
|
132
|
+
" panel 400 / 350 toast 350 / 250 tooltip 150 / 50",
|
|
133
|
+
" One duration for both directions is the commonest mistake — leaving",
|
|
134
|
+
" feels sluggish long before arriving does.",
|
|
135
|
+
" THE SCALE: 40ms stagger · 80 micro · 150 quick · 250 fast · 350 medium",
|
|
136
|
+
" · 400 slow · 500 for a moment that is meant to be noticed.",
|
|
137
|
+
" A POP OVERSHOOTS: cubic-bezier(0.34, 1.36, 0.64, 1) for a badge or a",
|
|
138
|
+
" toggle, up to (0.34, 1.96, 0.64, 1) for a like. y > 1 is the overshoot.",
|
|
139
|
+
" RESTRAINT IS THE TELL. Scale from 0.96-0.99, not 0.8. Move 4-12px, not",
|
|
140
|
+
" 50. And add a 2px blur to anything that moves or swaps — it is the one",
|
|
141
|
+
" cheap trick that separates expensive-feeling motion from cheap.",
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
match: /orbit|circul|circle|radial|polar|spiral|around|ring|arc\b/i,
|
|
146
|
+
lines: [
|
|
147
|
+
"POLAR -> CARTESIAN. x = cx + r*cos(θ), y = cy + r*sin(θ), θ in RADIANS.",
|
|
148
|
+
" N items evenly around a circle: θ_i = i * 2π/N.",
|
|
149
|
+
" Canvas and CSS angles both start at 3 o'clock and run clockwise",
|
|
150
|
+
" (y grows downward) — subtract π/2 to start at 12 o'clock.",
|
|
151
|
+
],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
match: /wav(e|y|ing)|rippl|oscillat|puls|breath|undulat|sway|bob\b/i,
|
|
155
|
+
lines: [
|
|
156
|
+
"OSCILLATION. value = centre + amplitude * sin(2π * freq * t + phase).",
|
|
157
|
+
" A travelling wave gives each element a phase from its position:",
|
|
158
|
+
" phase = index * spacing, so the crest moves along instead of pulsing",
|
|
159
|
+
" in unison. Decay: amplitude * exp(-t / tau).",
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
/*
|
|
164
|
+
* three.js chunk injection, attached by the FILE.
|
|
165
|
+
*
|
|
166
|
+
* `onBeforeCompile` hands you two shaders and they take different chunks.
|
|
167
|
+
* Measured: asked to make a wave grid rainbow, a model appended
|
|
168
|
+
* `.replace("#include <begin_vertex>", …)` to the FRAGMENT chain — a vertex
|
|
169
|
+
* chunk that does not appear in a fragment shader, so the replace silently
|
|
170
|
+
* did nothing. The varying it was meant to write was declared and read in
|
|
171
|
+
* the fragment and never assigned anywhere, which is a LINK error: a black
|
|
172
|
+
* canvas, while compile, export and render checks all pass because none of
|
|
173
|
+
* them run GLSL.
|
|
174
|
+
*
|
|
175
|
+
* A no-op `.replace` is the trap. It does not throw, it returns the string
|
|
176
|
+
* unchanged, so the only symptom is the picture.
|
|
177
|
+
*/
|
|
178
|
+
match: /shader|glsl|three|material|uniform|vertex|fragment/i,
|
|
179
|
+
source: /onBeforeCompile|MeshPhongMaterial|MeshStandardMaterial|#include\s*</,
|
|
180
|
+
lines: [
|
|
181
|
+
"THIS COMPONENT INJECTS THREE.JS SHADER CHUNKS. The vertex and fragment",
|
|
182
|
+
"shaders are separate strings and take DIFFERENT chunks — replacing a",
|
|
183
|
+
"chunk on the wrong one is a no-op that returns the string unchanged, so",
|
|
184
|
+
"it fails as a black canvas rather than an error.",
|
|
185
|
+
" vertex only: <begin_vertex> <beginnormal_vertex> <project_vertex>",
|
|
186
|
+
" fragment only: <color_fragment> <dithering_fragment> <output_fragment>",
|
|
187
|
+
" both: <common>",
|
|
188
|
+
"A varying must be DECLARED IN BOTH and ASSIGNED IN THE VERTEX shader.",
|
|
189
|
+
"Declaring it in the fragment alone links to nothing and draws black.",
|
|
190
|
+
"A UNIFORM NEEDS BOTH HALVES, AND THE GLSL ONE IS THE ONE THAT GETS",
|
|
191
|
+
"FORGOTTEN. Adding it to `shader.uniforms` only binds a value; the shader",
|
|
192
|
+
"still has to DECLARE it. Measured twice on the same component: new crest",
|
|
193
|
+
"colours were assigned into `shader.uniforms` and read in",
|
|
194
|
+
"<color_fragment>, with no `uniform vec3` line added to <common> — an",
|
|
195
|
+
"undeclared identifier, so the fragment shader fails to compile and the",
|
|
196
|
+
"canvas is black. If you read `uFoo` anywhere, add `uniform <type> uFoo;`",
|
|
197
|
+
"to the <common> block IN THE SAME EDIT.",
|
|
198
|
+
"If a helper already wraps the vertex shader (an `overrideVertex` or",
|
|
199
|
+
"similar), put vertex edits THERE, not on the fragment chain.",
|
|
200
|
+
],
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
/*
|
|
204
|
+
* Attached by the FILE, not the ask.
|
|
205
|
+
*
|
|
206
|
+
* Measured across the catalog's shader components: `getContext("webgl")`,
|
|
207
|
+
* `precision highp float;`, `gl_FragColor`, and not one `#version`
|
|
208
|
+
* directive — so every shader here is GLSL ES 1.00. A model reaching for
|
|
209
|
+
* `inverse()` writes something that compiles nowhere in this project and
|
|
210
|
+
* fails at shader-link time with "no matching overloaded function found",
|
|
211
|
+
* which is a runtime error on a black canvas rather than a compile error
|
|
212
|
+
* anyone can read.
|
|
213
|
+
*/
|
|
214
|
+
match: /shader|glsl|fragment shader|vertex shader|gl_frag|raymarch|\bsdf\b/i,
|
|
215
|
+
source: /gl_FragColor|precision\s+(?:highp|mediump|lowp)\s+float|attribute\s+vec|varying\s+vec/,
|
|
216
|
+
lines: [
|
|
217
|
+
"GLSL HERE IS ES 1.00 (WebGL1). No #version line. `precision highp float;`",
|
|
218
|
+
"at the top of the fragment shader, `attribute`/`varying` not `in`/`out`,",
|
|
219
|
+
"write to gl_FragColor, sample with texture2D.",
|
|
220
|
+
" NOT AVAILABLE — these are ES 3.00 and fail to link:",
|
|
221
|
+
" inverse() transpose() determinant() outerProduct()",
|
|
222
|
+
" round() trunc() sinh() cosh() tanh() textureLod()",
|
|
223
|
+
" bit operators, integer modulo, non-constant loop bounds.",
|
|
224
|
+
" Substitutes that do work:",
|
|
225
|
+
" round(x) floor(x + 0.5)",
|
|
226
|
+
" trunc(x) sign(x) * floor(abs(x))",
|
|
227
|
+
" a rotation's inverse is its transpose — build it with -angle instead:",
|
|
228
|
+
" mat2 rot(float a){ return mat2(cos(a), -sin(a), sin(a), cos(a)); }",
|
|
229
|
+
" rot(-a) is rot(a) inverted. You almost never need a real inverse.",
|
|
230
|
+
" mat2 inverse mat2(m[1][1], -m[0][1], -m[1][0], m[0][0]) / det,",
|
|
231
|
+
" det = m[0][0]*m[1][1] - m[0][1]*m[1][0]",
|
|
232
|
+
" Loops need constant bounds: `for (int i = 0; i < 8; i++)` is fine,",
|
|
233
|
+
" `i < uCount` is not — loop to a constant and `break` on the uniform.",
|
|
234
|
+
],
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
/*
|
|
238
|
+
* Its own recipe, not part of EASING, because knowing the curves does not
|
|
239
|
+
* help here. Measured: three consecutive attempts at "move for 3s, stop
|
|
240
|
+
* for 2s, loop, smoothly" all snapped, and the easing recipe HAD fired on
|
|
241
|
+
* the last one — the brief said "acceleration and deceleration". Easing a
|
|
242
|
+
* transition between two states and easing the rate of a continuous
|
|
243
|
+
* animation are different techniques, and only one of them was written
|
|
244
|
+
* down.
|
|
245
|
+
*/
|
|
246
|
+
match: /paus(?:e|es|ing)|resume|freeze|frozen|halt|stationary|intermitt|stop-and-go|no movement|stops? (?:for|after|and)|then stops?|rest(?:s|ing)? for|breathe|hold(?:s|ing)? (?:for|still)/i,
|
|
247
|
+
lines: [
|
|
248
|
+
"PAUSING AN ONGOING ANIMATION. Do not gate the clock. `if (moving) t +=",
|
|
249
|
+
"dt` is the obvious version and it is exactly what snaps in and out.",
|
|
250
|
+
"Ease the SPEED and integrate it into an accumulator:",
|
|
251
|
+
" const CYCLE = MOVE + HOLD; // e.g. 3 + 2 seconds",
|
|
252
|
+
" const ramp = 0.4; // accel/decel window, s",
|
|
253
|
+
" const smooth = x => x * x * (3 - 2 * x); // smoothstep",
|
|
254
|
+
" const p = elapsed % CYCLE;",
|
|
255
|
+
" let speed;",
|
|
256
|
+
" if (p < ramp) speed = smooth(p / ramp);",
|
|
257
|
+
" else if (p < MOVE - ramp) speed = 1;",
|
|
258
|
+
" else if (p < MOVE) speed = smooth((MOVE - p) / ramp);",
|
|
259
|
+
" else speed = 0; // the hold",
|
|
260
|
+
" clock += dt * speed; // <- the value the animation actually reads",
|
|
261
|
+
" THE ACCUMULATOR IS THE WHOLE POINT. `clock` only ever moves forward, so",
|
|
262
|
+
" easing the RATE can never rewind anything. Ease the POSITION instead —",
|
|
263
|
+
" the usual mistake — and the field slides backwards as the curve turns",
|
|
264
|
+
" over, which reads as a glitch rather than a pause.",
|
|
265
|
+
" Ramp 0.3-0.5s of a 3s move. Under 0.15s still reads as a snap, and over",
|
|
266
|
+
" half the moving phase never reaches full speed.",
|
|
267
|
+
" Expose MOVE, HOLD and ramp as props — the ramp is the one the user will",
|
|
268
|
+
" reach for the moment it feels wrong.",
|
|
269
|
+
],
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
match: /nois|organic|turbulen|smok|cloud|flow field|grain|wispy/i,
|
|
273
|
+
lines: [
|
|
274
|
+
"NOISE. fbm = sum of octaves: value += amplitude * noise(p); p *= 2;",
|
|
275
|
+
" amplitude *= 0.5 — 4-6 octaves is plenty. Rotating p between octaves",
|
|
276
|
+
" (p = rotate2d(0.45) * p) hides the grid axis of value noise.",
|
|
277
|
+
],
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
/* Not `/colou?r/` — "change the colour" is a prop patch, and this block
|
|
281
|
+
* told the model to lerp hex in HSL, which sent it hunting `parseColor`
|
|
282
|
+
* in the file. Only fire when the ask is actually about mixing stops. */
|
|
283
|
+
match: /gradient|lerp(?:ing)?\s+colou?r|interpolat\w*\s+(?:the\s+)?(?:hues?|colou?rs?)|hsl\b|oklch|oklab|between two (?:hues?|colou?rs?)/i,
|
|
284
|
+
lines: [
|
|
285
|
+
"COLOUR. Interpolating two hex values channel-by-channel in sRGB passes",
|
|
286
|
+
" through a dead grey mid-point. For a gradient BETWEEN two hues, either",
|
|
287
|
+
" interpolate hue in HSL, or add a mid-stop picked by eye. Perceived",
|
|
288
|
+
" lightness is not the hex value: #0000FF is far darker than #FFFF00.",
|
|
289
|
+
],
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
match: /stagger|cascad|sequenc|one by one|delay|ripple in|in turn/i,
|
|
293
|
+
lines: [
|
|
294
|
+
"STAGGER. delay_i = base + i * step. From the centre outward:",
|
|
295
|
+
" delay_i = base + |i - (n-1)/2| * step. Total run is base + (n-1)*step,",
|
|
296
|
+
" so keep step small as n grows or the last item arrives long after.",
|
|
297
|
+
],
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
match: /\b3d\b|perspectiv|rotat|tilt|depth|flip|parallax/i,
|
|
301
|
+
lines: [
|
|
302
|
+
"3D IN CSS. The parent needs `perspective` (600-1200px is typical); a",
|
|
303
|
+
" child's own transform does nothing without it. Order matters:",
|
|
304
|
+
" translate then rotate is not rotate then translate. transform-style:",
|
|
305
|
+
" preserve-3d for nested layers, and backface-visibility: hidden on flips.",
|
|
306
|
+
],
|
|
307
|
+
},
|
|
308
|
+
];
|
|
309
|
+
/**
|
|
310
|
+
* The recipes a given instruction earns. Usually none — most edits are colours
|
|
311
|
+
* and sizes, and an unmatched instruction pays nothing.
|
|
312
|
+
*/
|
|
313
|
+
export function recipesFor(instruction, source = "") {
|
|
314
|
+
const hit = RECIPES.filter((r) => r.match.test(instruction) || (!!source && !!r.source?.test(source)));
|
|
315
|
+
if (!hit.length)
|
|
316
|
+
return "";
|
|
317
|
+
return [
|
|
318
|
+
"REFERENCE — get these exactly right rather than approximating:",
|
|
319
|
+
...hit.flatMap((r) => r.lines),
|
|
320
|
+
].join("\n");
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../benchmark/domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,uDAAuD;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,yCAAyC;IACzC,4EAA4E;IAC5E,sEAAsE;IACtE,2DAA2D;IAC3D,0EAA0E;IAC1E,qEAAqE;IACrE,2EAA2E;IAC3E,kBAAkB;IAClB,2EAA2E;IAC3E,6CAA6C;IAC7C,6EAA6E;IAC7E,2DAA2D;IAC3D,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,uCAAuC;IACvC,gEAAgE;IAChE,0EAA0E;IAC1E,2DAA2D;IAC3D,sEAAsE;IACtE,0EAA0E;IAC1E,qEAAqE;IACrE,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;CACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH;;;;;;;;GAQG;AACH,MAAM,OAAO,GAA0D;IACrE;QACE,KAAK,EAAE,+CAA+C;QACtD,KAAK,EAAE;YACL,sEAAsE;YACtE,+EAA+E;YAC/E,8EAA8E;YAC9E,oEAAoE;YACpE,kFAAkF;YAClF,6EAA6E;SAC9E;KACF;IACD;;;;;;wEAMoE;IACpE;QACE,KAAK,EAAE,0DAA0D;QACjE,KAAK,EAAE;YACL,4EAA4E;YAC5E,2EAA2E;YAC3E,4EAA4E;YAC5E,yEAAyE;YACzE,8DAA8D;SAC/D;KACF;IACD;QACE;;;;;;mCAM2B;QAC3B,KAAK,EACH,4LAA4L;QAC9L,KAAK,EAAE;YACL,2EAA2E;YAC3E,0EAA0E;YAC1E,sEAAsE;YACtE,6DAA6D;YAC7D,qCAAqC;YACrC,+CAA+C;YAC/C,kCAAkC;YAClC,0EAA0E;YAC1E,8EAA8E;YAC9E,2EAA2E;YAC3E,4EAA4E;YAC5E,0EAA0E;YAC1E,gEAAgE;YAChE,6DAA6D;YAC7D,mCAAmC;YACnC,EAAE;YACF,2EAA2E;YAC3E,uEAAuE;YACvE,iCAAiC;YACjC,uEAAuE;YACvE,+DAA+D;YAC/D,qEAAqE;YACrE,gEAAgE;YAChE,qDAAqD;YACrD,qEAAqE;YACrE,uEAAuE;YACvE,6CAA6C;YAC7C,0EAA0E;YAC1E,8DAA8D;YAC9D,wEAAwE;YACxE,2EAA2E;YAC3E,0EAA0E;YAC1E,0EAA0E;YAC1E,mEAAmE;SACpE;KACF;IACD;QACE,KAAK,EAAE,4DAA4D;QACnE,KAAK,EAAE;YACL,yEAAyE;YACzE,mDAAmD;YACnD,mEAAmE;YACnE,6DAA6D;SAC9D;KACF;IACD;QACE,KAAK,EAAE,6DAA6D;QACpE,KAAK,EAAE;YACL,uEAAuE;YACvE,mEAAmE;YACnE,wEAAwE;YACxE,gDAAgD;SACjD;KACF;IACD;QACE;;;;;;;;;;;;;;WAcG;QACH,KAAK,EAAE,qDAAqD;QAC5D,MAAM,EAAE,qEAAqE;QAC7E,KAAK,EAAE;YACL,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,kDAAkD;YAClD,wEAAwE;YACxE,2EAA2E;YAC3E,4BAA4B;YAC5B,uEAAuE;YACvE,sEAAsE;YACtE,oEAAoE;YACpE,0EAA0E;YAC1E,0EAA0E;YAC1E,0DAA0D;YAC1D,sEAAsE;YACtE,wEAAwE;YACxE,0EAA0E;YAC1E,yCAAyC;YACzC,qEAAqE;YACrE,8DAA8D;SAC/D;KACF;IACD;QACE;;;;;;;;;;WAUG;QACH,KAAK,EAAE,qEAAqE;QAC5E,MAAM,EAAE,uFAAuF;QAC/F,KAAK,EAAE;YACL,2EAA2E;YAC3E,0EAA0E;YAC1E,+CAA+C;YAC/C,uDAAuD;YACvD,2DAA2D;YAC3D,4DAA4D;YAC5D,8DAA8D;YAC9D,6BAA6B;YAC7B,kCAAkC;YAClC,2CAA2C;YAC3C,2EAA2E;YAC3E,0EAA0E;YAC1E,yEAAyE;YACzE,uEAAuE;YACvE,6DAA6D;YAC7D,sEAAsE;YACtE,wEAAwE;SACzE;KACF;IACD;QACE;;;;;;;;WAQG;QACH,KAAK,EACH,uLAAuL;QACzL,KAAK,EAAE;YACL,wEAAwE;YACxE,qEAAqE;YACrE,sDAAsD;YACtD,oEAAoE;YACpE,uEAAuE;YACvE,4DAA4D;YAC5D,gCAAgC;YAChC,gBAAgB;YAChB,yDAAyD;YACzD,0CAA0C;YAC1C,kEAAkE;YAClE,yDAAyD;YACzD,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,yEAAyE;YACzE,sDAAsD;YACtD,2EAA2E;YAC3E,mDAAmD;YACnD,2EAA2E;YAC3E,wCAAwC;SACzC;KACF;IACD;QACE,KAAK,EAAE,0DAA0D;QACjE,KAAK,EAAE;YACL,qEAAqE;YACrE,wEAAwE;YACxE,gEAAgE;SACjE;KACF;IACD;QACE;;iFAEyE;QACzE,KAAK,EAAE,mIAAmI;QAC1I,KAAK,EAAE;YACL,wEAAwE;YACxE,0EAA0E;YAC1E,sEAAsE;YACtE,uEAAuE;SACxE;KACF;IACD;QACE,KAAK,EAAE,4DAA4D;QACnE,KAAK,EAAE;YACL,8DAA8D;YAC9D,0EAA0E;YAC1E,sEAAsE;SACvE;KACF;IACD;QACE,KAAK,EAAE,mDAAmD;QAC1D,KAAK,EAAE;YACL,sEAAsE;YACtE,iEAAiE;YACjE,wEAAwE;YACxE,4EAA4E;SAC7E;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB,EAAE,MAAM,GAAG,EAAE;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAC3E,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO;QACL,gEAAgE;QAChE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Call, CompileFn, Compiled, Report, RunRow } from "./types.ts";
|
|
2
|
+
import { type ApplyResult, type Edit } from "./prompt.ts";
|
|
3
|
+
export type EditDeps<C> = {
|
|
4
|
+
call: Call;
|
|
5
|
+
compile: CompileFn<C>;
|
|
6
|
+
/** True once the user has abandoned the turn. Checked before the repair, so
|
|
7
|
+
* a cancelled turn does not buy a second call. */
|
|
8
|
+
cancelled?: () => boolean;
|
|
9
|
+
/** Optional: `retryEdit` updates a turn that already has its trace, and
|
|
10
|
+
* re-tracing it would rewrite history. */
|
|
11
|
+
report?: Report;
|
|
12
|
+
};
|
|
13
|
+
export type EditAttempt<C> = {
|
|
14
|
+
/** Both calls summed when a repair ran — nothing downstream has to know a
|
|
15
|
+
* second call happened. */
|
|
16
|
+
row: RunRow;
|
|
17
|
+
edits: Edit[];
|
|
18
|
+
/** The `///NEW-PROPS` block, unparsed. */
|
|
19
|
+
declared: string | null;
|
|
20
|
+
patched: ApplyResult;
|
|
21
|
+
built: Compiled<C>;
|
|
22
|
+
};
|
|
23
|
+
/** Sum two calls into one row. Cost, tokens and time add; `ttftMs` stays the
|
|
24
|
+
* first call's, because time-to-first-token is a property of a request and
|
|
25
|
+
* adding two of them describes nothing. */
|
|
26
|
+
export declare function addRow(a: RunRow, b: RunRow): RunRow;
|
|
27
|
+
export declare function editPass<C>(opts: {
|
|
28
|
+
/** The component's name, for the prompt header. */
|
|
29
|
+
component: string;
|
|
30
|
+
/** The brief, not the user's sentence. */
|
|
31
|
+
instruction: string;
|
|
32
|
+
source: string;
|
|
33
|
+
/** What the props pass said was missing, when one ran and refused. */
|
|
34
|
+
needs?: string[];
|
|
35
|
+
/** Follow-up turns: patch in place so earlier effects stay in the file. */
|
|
36
|
+
forceEdits?: boolean;
|
|
37
|
+
}, deps: EditDeps<C>): Promise<EditAttempt<C>>;
|
|
38
|
+
//# sourceMappingURL=edit-pass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-pass.d.ts","sourceRoot":"","sources":["../../../../benchmark/edit-pass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAUL,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,aAAa,CAAC;AAoBrB,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB;uDACmD;IACnD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B;+CAC2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B;gCAC4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF;;4CAE4C;AAC5C,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE;IACJ,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,EACD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAiHzB"}
|