@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":"prompt.js","sourceRoot":"","sources":["../../../../benchmark/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type Evidence, type Intent, type Verdict } from "./agents.ts";
|
|
2
|
+
import { type EditAttempt, type EditDeps } from "./edit-pass.ts";
|
|
3
|
+
import type { Extract, PropSpec, RunRow } from "./types.ts";
|
|
4
|
+
/** What mounting a candidate told us. */
|
|
5
|
+
export type RenderReport = {
|
|
6
|
+
/** Errors seen across the mount and the first frames — both what escapes to
|
|
7
|
+
* `window` and what an error boundary caught, since neither sees the other's.
|
|
8
|
+
* Empty means it ran. */
|
|
9
|
+
threw: string[];
|
|
10
|
+
/** The frame read for palette and shape, or null when it could not be
|
|
11
|
+
* photographed. Null is "no opinion", never "nothing is there". */
|
|
12
|
+
frame: Extract | null;
|
|
13
|
+
/** The same frame as an image, for a reviewer that can see. */
|
|
14
|
+
image?: string | null;
|
|
15
|
+
};
|
|
16
|
+
export type Review = (input: {
|
|
17
|
+
intent: Intent;
|
|
18
|
+
/** The diff, not the file — what is being judged is what moved. */
|
|
19
|
+
changed: string;
|
|
20
|
+
evidence: Evidence;
|
|
21
|
+
image?: string | null;
|
|
22
|
+
}) => Promise<Verdict | undefined>;
|
|
23
|
+
export type LoopDeps<C> = EditDeps<C> & {
|
|
24
|
+
render: (built: C, source: string) => Promise<RenderReport>;
|
|
25
|
+
/** Absent means no opinion is ever bought, and only a throw can retry. */
|
|
26
|
+
review?: Review;
|
|
27
|
+
};
|
|
28
|
+
export type RejectedAttempt = {
|
|
29
|
+
correction: string;
|
|
30
|
+
failed: string[];
|
|
31
|
+
cost: number | null;
|
|
32
|
+
};
|
|
33
|
+
export type LoopResult<C> = {
|
|
34
|
+
/** The attempt that stands. Never a retry that failed to compile — trading a
|
|
35
|
+
* working file for a broken one because a check disliked it is worse than
|
|
36
|
+
* the criticism. */
|
|
37
|
+
attempt: EditAttempt<C>;
|
|
38
|
+
/** Every call this loop made, summed. */
|
|
39
|
+
row: RunRow;
|
|
40
|
+
attempts: RejectedAttempt[];
|
|
41
|
+
verdict?: Verdict;
|
|
42
|
+
/** Whether the file that stands throws once it runs. */
|
|
43
|
+
threw: string[];
|
|
44
|
+
};
|
|
45
|
+
/** The props a rewrite declared that the session does not already have.
|
|
46
|
+
* Repaired into shape first, then validated — the repair fixes how the block
|
|
47
|
+
* was written, validation decides whether the specs are usable. */
|
|
48
|
+
export declare function freshSpecs(block: string | null | undefined, existing: Record<string, PropSpec>): Record<string, PropSpec>;
|
|
49
|
+
export declare function runEditLoop<C>(opts: {
|
|
50
|
+
/** The component's name, for the retry's prompt header. */
|
|
51
|
+
component: string;
|
|
52
|
+
intent: Intent;
|
|
53
|
+
/** The brief, which is what a retry is a correction to. */
|
|
54
|
+
instruction: string;
|
|
55
|
+
/** The file as it stood before this turn. */
|
|
56
|
+
source: string;
|
|
57
|
+
/** Follow-up turns: patch in place so earlier effects stay in the file. */
|
|
58
|
+
forceEdits?: boolean;
|
|
59
|
+
/** The schema the session already has, so "new prop" means new. */
|
|
60
|
+
existingProps: Record<string, PropSpec>;
|
|
61
|
+
/** The first attempt, already made — the caller pays for it either way. */
|
|
62
|
+
first: EditAttempt<C>;
|
|
63
|
+
/** A frame of the component before the turn, for the palette comparison. */
|
|
64
|
+
before: Extract | null;
|
|
65
|
+
needs?: string[];
|
|
66
|
+
/** Run the free code-shape checks. Defaults to whether a reviewer exists,
|
|
67
|
+
* because that is the pairing the page ships; they are cheap enough to
|
|
68
|
+
* turn on alone if a host wants them without the opinion. */
|
|
69
|
+
shapeChecks?: boolean;
|
|
70
|
+
/** Only used to word the trace honestly. */
|
|
71
|
+
reviewerCanSee?: boolean;
|
|
72
|
+
maxRetries?: number;
|
|
73
|
+
}, deps: LoopDeps<C>): Promise<LoopResult<C>>;
|
|
74
|
+
//# sourceMappingURL=run-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-loop.d.ts","sourceRoot":"","sources":["../../../../benchmark/run-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGnF,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmB5D,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG;IACzB;;8BAE0B;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;wEACoE;IACpE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IACtC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B;;yBAEqB;IACrB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;oEAEoE;AACpE,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GACjC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAS1B;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,IAAI,EAAE;IACJ,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,2EAA2E;IAC3E,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,4EAA4E;IAC5E,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;kEAE8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EACD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAoIxB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { changeSummary, compareFrames, faultIn, hardFail, improved, partialNesting, settingsBags, unwiredProps, withCorrection, } from "./agents.js";
|
|
2
|
+
import { addRow, editPass } from "./edit-pass.js";
|
|
3
|
+
import { repairPropsBlock } from "./prompt.js";
|
|
4
|
+
import { validateSchema } from "./schema.js";
|
|
5
|
+
/** The props a rewrite declared that the session does not already have.
|
|
6
|
+
* Repaired into shape first, then validated — the repair fixes how the block
|
|
7
|
+
* was written, validation decides whether the specs are usable. */
|
|
8
|
+
export function freshSpecs(block, existing) {
|
|
9
|
+
if (!block)
|
|
10
|
+
return {};
|
|
11
|
+
const repaired = repairPropsBlock(block);
|
|
12
|
+
if (!repaired.ok)
|
|
13
|
+
return {};
|
|
14
|
+
const parsed = validateSchema(repaired.json);
|
|
15
|
+
if (!parsed.ok)
|
|
16
|
+
return {};
|
|
17
|
+
return Object.fromEntries(Object.entries(parsed.props).filter(([k]) => !(k in existing)));
|
|
18
|
+
}
|
|
19
|
+
export async function runEditLoop(opts, deps) {
|
|
20
|
+
const { intent, instruction, source, existingProps, before, needs, reviewerCanSee = false, maxRetries = 2, } = opts;
|
|
21
|
+
const { render, review, report, cancelled } = deps;
|
|
22
|
+
const shapeChecks = opts.shapeChecks ?? !!review;
|
|
23
|
+
let attempt = opts.first;
|
|
24
|
+
let row = attempt.row;
|
|
25
|
+
let verdict;
|
|
26
|
+
let threw = [];
|
|
27
|
+
const attempts = [];
|
|
28
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
29
|
+
// Pinned before the awaits: `attempt` is reassigned by a retry, so a
|
|
30
|
+
// narrowed `attempt.built` does not survive the loop body.
|
|
31
|
+
const candidate = attempt.built;
|
|
32
|
+
const applied = attempt.patched;
|
|
33
|
+
if (!candidate.ok || !applied.ok)
|
|
34
|
+
break;
|
|
35
|
+
const declared = freshSpecs(attempt.declared, existingProps);
|
|
36
|
+
/* Three free, certain checks. Each was a turn that shipped looking correct:
|
|
37
|
+
* knobs declared and never wired, nine settings hidden in one json blob,
|
|
38
|
+
* and dot-paths that half-overwrite the object they nest into — which lands,
|
|
39
|
+
* is photographed, is approved, and then silently reverts. */
|
|
40
|
+
const dead = shapeChecks ? unwiredProps(applied.code, Object.keys(declared)) : [];
|
|
41
|
+
const bagged = shapeChecks ? settingsBags(declared) : [];
|
|
42
|
+
const partial = shapeChecks ? partialNesting(applied.code, Object.keys(declared)) : [];
|
|
43
|
+
/* Mount BEFORE judging. The evidence is a photograph of the stage, so a
|
|
44
|
+
* candidate that has not been mounted would be judged against a picture of
|
|
45
|
+
* the component it replaces — and every colour turn would come back "the
|
|
46
|
+
* colours did not change". It also means the user watches each attempt land
|
|
47
|
+
* rather than waiting out the loop on a stale preview. */
|
|
48
|
+
const endLook = report?.("checking it renders");
|
|
49
|
+
const seen = await render(candidate.Component, applied.code);
|
|
50
|
+
if (cancelled?.())
|
|
51
|
+
break;
|
|
52
|
+
threw = seen.threw;
|
|
53
|
+
const ev = compareFrames(before, seen.frame);
|
|
54
|
+
endLook?.({
|
|
55
|
+
status: threw.length ? "fail" : "ok",
|
|
56
|
+
detail: threw.length
|
|
57
|
+
? `it compiled and then threw — ${threw[0]}`
|
|
58
|
+
: seen.frame
|
|
59
|
+
? [
|
|
60
|
+
"renders",
|
|
61
|
+
ev.ok
|
|
62
|
+
? `palette ${ev.paletteChanged ? "changed" : "unchanged"} · ${ev.after.join(" ")}`
|
|
63
|
+
: null,
|
|
64
|
+
reviewerCanSee ? "the reviewer will see it" : null,
|
|
65
|
+
]
|
|
66
|
+
.filter(Boolean)
|
|
67
|
+
.join(" · ")
|
|
68
|
+
: "no canvas to photograph — nothing more can be checked here",
|
|
69
|
+
cost: 0,
|
|
70
|
+
});
|
|
71
|
+
/* A throw is the whole retry condition when there is no reviewer, and it
|
|
72
|
+
* takes priority over everything when there is: the picture is of a blank
|
|
73
|
+
* canvas and the criteria describe a component that never ran. */
|
|
74
|
+
const nothingToAsk = !threw.length && (!review || !intent.criteria.length) &&
|
|
75
|
+
!dead.length && !bagged.length && !partial.length;
|
|
76
|
+
if (nothingToAsk)
|
|
77
|
+
break;
|
|
78
|
+
const fault = faultIn({
|
|
79
|
+
threw, dead, partial, bagged, declared, code: applied.code,
|
|
80
|
+
});
|
|
81
|
+
const hard = fault?.correction ?? (review ? hardFail(intent, ev) : null);
|
|
82
|
+
const endJudge = report?.(fault?.label ??
|
|
83
|
+
(hard ? "checked against the frame" : "reviewing against the brief"));
|
|
84
|
+
const judged = hard
|
|
85
|
+
? {
|
|
86
|
+
pass: false,
|
|
87
|
+
met: [],
|
|
88
|
+
failed: fault?.failed ?? intent.criteria.map((c) => c.text),
|
|
89
|
+
correction: hard,
|
|
90
|
+
}
|
|
91
|
+
: review
|
|
92
|
+
? await review({
|
|
93
|
+
intent,
|
|
94
|
+
changed: changeSummary(source, applied.code),
|
|
95
|
+
evidence: ev,
|
|
96
|
+
image: seen.image,
|
|
97
|
+
})
|
|
98
|
+
: undefined;
|
|
99
|
+
if (cancelled?.())
|
|
100
|
+
break;
|
|
101
|
+
endJudge?.({
|
|
102
|
+
status: judged?.pass === false ? "fail" : "ok",
|
|
103
|
+
detail: !judged
|
|
104
|
+
? "the critic did not answer — accepting the result"
|
|
105
|
+
: judged.pass
|
|
106
|
+
? "every criterion met"
|
|
107
|
+
: (judged.failed[0] ?? judged.correction ?? "rejected"),
|
|
108
|
+
});
|
|
109
|
+
// No verdict means the reviewer failed or was not worth asking. Fail open:
|
|
110
|
+
// the compile step already accepted this answer.
|
|
111
|
+
if (!judged)
|
|
112
|
+
break;
|
|
113
|
+
const stalled = !improved(judged, verdict ?? null);
|
|
114
|
+
verdict = judged;
|
|
115
|
+
if (judged.pass || !judged.correction || stalled)
|
|
116
|
+
break;
|
|
117
|
+
attempts.push({
|
|
118
|
+
correction: judged.correction,
|
|
119
|
+
failed: judged.failed,
|
|
120
|
+
cost: attempt.row.cost ?? null,
|
|
121
|
+
});
|
|
122
|
+
const next = await editPass({
|
|
123
|
+
component: opts.component,
|
|
124
|
+
instruction: withCorrection(instruction, judged.correction),
|
|
125
|
+
source,
|
|
126
|
+
needs,
|
|
127
|
+
forceEdits: opts.forceEdits,
|
|
128
|
+
}, deps);
|
|
129
|
+
if (cancelled?.())
|
|
130
|
+
break;
|
|
131
|
+
row = addRow(row, next.row);
|
|
132
|
+
if (!next.built.ok)
|
|
133
|
+
break;
|
|
134
|
+
attempt = next;
|
|
135
|
+
}
|
|
136
|
+
return { attempt, row, attempts, verdict, threw };
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=run-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-loop.js","sourceRoot":"","sources":["../../../../benchmark/run-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PropSpec } from "./types.ts";
|
|
2
|
+
/** Reject a schema before it can silently corrupt a benchmark. A range that
|
|
3
|
+
* does not match the component's own clamp is worse than no schema at all:
|
|
4
|
+
* it scores a model invalid on a value that works, or valid on one that does
|
|
5
|
+
* not. */
|
|
6
|
+
export declare function validateSchema(raw: string): {
|
|
7
|
+
ok: true;
|
|
8
|
+
props: Record<string, PropSpec>;
|
|
9
|
+
} | {
|
|
10
|
+
ok: false;
|
|
11
|
+
error: string;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../benchmark/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgB3C;;;WAGW;AACX,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuCxH"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Whether a schema is one the rest of the system can trust.
|
|
3
|
+
*
|
|
4
|
+
* Lifted out of `custom.ts` — which transpiles TSX in a browser realm — because
|
|
5
|
+
* this is pure and the engine needs it. A rewrite that declares new props is
|
|
6
|
+
* only allowed to widen the session's schema if what it declared survives this,
|
|
7
|
+
* so it sits on the path of every code turn, not just a paste.
|
|
8
|
+
*
|
|
9
|
+
* The rule that earns its keep is the range check: a default outside its own
|
|
10
|
+
* min/max means every value a model is later asked for is measured against a
|
|
11
|
+
* range the component never honoured, and nothing downstream would notice.
|
|
12
|
+
*/
|
|
13
|
+
const TYPES = ["number", "enum", "boolean", "color", "string", "json"];
|
|
14
|
+
/** Reject a schema before it can silently corrupt a benchmark. A range that
|
|
15
|
+
* does not match the component's own clamp is worse than no schema at all:
|
|
16
|
+
* it scores a model invalid on a value that works, or valid on one that does
|
|
17
|
+
* not. */
|
|
18
|
+
export function validateSchema(raw) {
|
|
19
|
+
let parsed;
|
|
20
|
+
try {
|
|
21
|
+
parsed = JSON.parse(raw);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
return { ok: false, error: `Schema is not valid JSON: ${e.message}` };
|
|
25
|
+
}
|
|
26
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
27
|
+
return { ok: false, error: "Schema must be a JSON object of prop name -> spec." };
|
|
28
|
+
}
|
|
29
|
+
const entries = Object.entries(parsed);
|
|
30
|
+
if (!entries.length)
|
|
31
|
+
return { ok: false, error: "Schema has no props." };
|
|
32
|
+
for (const [k, v] of entries) {
|
|
33
|
+
if (typeof v !== "object" || v === null)
|
|
34
|
+
return { ok: false, error: `${k}: spec must be an object` };
|
|
35
|
+
const s = v;
|
|
36
|
+
if (typeof s.type !== "string" || !TYPES.includes(s.type)) {
|
|
37
|
+
return { ok: false, error: `${k}: type must be one of ${TYPES.join(", ")}` };
|
|
38
|
+
}
|
|
39
|
+
if (!("default" in s))
|
|
40
|
+
return { ok: false, error: `${k}: missing "default"` };
|
|
41
|
+
if (typeof s.desc !== "string" || !s.desc.trim()) {
|
|
42
|
+
return { ok: false, error: `${k}: missing "desc" — it is what the model reads` };
|
|
43
|
+
}
|
|
44
|
+
if (s.type === "number") {
|
|
45
|
+
if (typeof s.min !== "number" || typeof s.max !== "number") {
|
|
46
|
+
return { ok: false, error: `${k}: number needs numeric min and max` };
|
|
47
|
+
}
|
|
48
|
+
if (s.min > s.max)
|
|
49
|
+
return { ok: false, error: `${k}: min is above max` };
|
|
50
|
+
if (typeof s.default !== "number" || s.default < s.min || s.default > s.max) {
|
|
51
|
+
return { ok: false, error: `${k}: default ${JSON.stringify(s.default)} is outside ${s.min}..${s.max}` };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (s.type === "enum") {
|
|
55
|
+
if (!Array.isArray(s.values) || !s.values.length)
|
|
56
|
+
return { ok: false, error: `${k}: enum needs a non-empty "values"` };
|
|
57
|
+
if (!s.values.includes(s.default))
|
|
58
|
+
return { ok: false, error: `${k}: default is not in values` };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return { ok: true, props: parsed };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../benchmark/schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEvE;;;WAGW;AACX,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA8B,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAEzE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACrG,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,qBAAqB,EAAE,CAAC;QAC9E,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,+CAA+C,EAAE,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC3D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,oCAAoC,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,oBAAoB,EAAE,CAAC;YACzE,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC5E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1G,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,mCAAmC,EAAE,CAAC;YACvH,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,4BAA4B,EAAE,CAAC;QACnG,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAkC,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/** What the model is shown for one prop. Keep `desc` to one line — it is
|
|
2
|
+
* prompt tokens on every turn. */
|
|
3
|
+
export type PropSpec = {
|
|
4
|
+
type: "number";
|
|
5
|
+
min: number;
|
|
6
|
+
max: number;
|
|
7
|
+
default: number;
|
|
8
|
+
desc: string;
|
|
9
|
+
} | {
|
|
10
|
+
type: "enum";
|
|
11
|
+
values: string[];
|
|
12
|
+
default: string;
|
|
13
|
+
desc: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: "boolean";
|
|
16
|
+
default: boolean;
|
|
17
|
+
desc: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: "color";
|
|
20
|
+
default: string;
|
|
21
|
+
desc: string;
|
|
22
|
+
} | {
|
|
23
|
+
type: "string";
|
|
24
|
+
default: string;
|
|
25
|
+
desc: string;
|
|
26
|
+
} | {
|
|
27
|
+
type: "json";
|
|
28
|
+
default: unknown;
|
|
29
|
+
desc: string;
|
|
30
|
+
};
|
|
31
|
+
/** Keys may be dot-paths ("icon.size") — nested config flattened for the model,
|
|
32
|
+
* which handles a flat key list far better than nested JSON. `expand()` puts
|
|
33
|
+
* them back before the component is rendered. */
|
|
34
|
+
export type Schema = Record<string, PropSpec>;
|
|
35
|
+
/** The least a host must say about a component for the engine to work on it.
|
|
36
|
+
* `Entry` in the catalog satisfies this; so does a row from a database, or a
|
|
37
|
+
* file someone pasted. */
|
|
38
|
+
export type ComponentSpec = {
|
|
39
|
+
name: string;
|
|
40
|
+
props: Schema;
|
|
41
|
+
};
|
|
42
|
+
/** Flat, dot-path values as they stand right now. */
|
|
43
|
+
export type Values = Record<string, unknown>;
|
|
44
|
+
/** One model call, as measured. Cost is read back from the provider, never
|
|
45
|
+
* computed — see the note in `openrouter.ts`; if this number is derived the
|
|
46
|
+
* whole thing is worthless. */
|
|
47
|
+
export type RunRow = {
|
|
48
|
+
model: string;
|
|
49
|
+
/** Who actually served it, read off the stream — not the pin that was asked
|
|
50
|
+
* for. Two runs of one model can come from different hardware. */
|
|
51
|
+
provider: string | null;
|
|
52
|
+
ttftMs: number | null;
|
|
53
|
+
totalMs: number;
|
|
54
|
+
promptTokens: number | null;
|
|
55
|
+
completionTokens: number | null;
|
|
56
|
+
reasoningTokens: number | null;
|
|
57
|
+
cachedTokens: number | null;
|
|
58
|
+
cost: number | null;
|
|
59
|
+
inputCost: number | null;
|
|
60
|
+
outputCost: number | null;
|
|
61
|
+
/** "length" => truncated by maxTokens, not a model failure. */
|
|
62
|
+
finishReason: string | null;
|
|
63
|
+
raw: string;
|
|
64
|
+
error: string | null;
|
|
65
|
+
};
|
|
66
|
+
/** What one frame of a rendered component reads as. Produced in the browser;
|
|
67
|
+
* consumed by the engine's free checks, which is why the type lives here and
|
|
68
|
+
* the canvas code does not. */
|
|
69
|
+
export type Extract = {
|
|
70
|
+
background: string;
|
|
71
|
+
colors: string[];
|
|
72
|
+
/** Fitted radius as a fraction of min(w,h)/2. Null if there is no blob. */
|
|
73
|
+
radiusNorm: number | null;
|
|
74
|
+
ring: boolean;
|
|
75
|
+
count: number | null;
|
|
76
|
+
};
|
|
77
|
+
/** One stage of a turn, as it happens. The host draws these; the engine only
|
|
78
|
+
* says what it is doing and how it went. */
|
|
79
|
+
export type Step = {
|
|
80
|
+
label: string;
|
|
81
|
+
status: "running" | "ok" | "fail";
|
|
82
|
+
/** One line of what actually happened. The label says which stage; this says
|
|
83
|
+
* what it decided, which is the half worth reading. */
|
|
84
|
+
detail?: string;
|
|
85
|
+
ms?: number;
|
|
86
|
+
cost?: number | null;
|
|
87
|
+
};
|
|
88
|
+
/** Open a stage; the returned function closes it. Optional everywhere — a host
|
|
89
|
+
* that does not draw a trace passes nothing and the engine is unaffected. */
|
|
90
|
+
export type Report = (label: string) => (patch?: Partial<Step>) => void;
|
|
91
|
+
/** One request to a model. The host owns the key, the quota and the transport;
|
|
92
|
+
* either (system + user) or a full `messages` array. */
|
|
93
|
+
export type CallRequest = {
|
|
94
|
+
system?: string;
|
|
95
|
+
user?: string;
|
|
96
|
+
messages?: unknown[];
|
|
97
|
+
maxTokens?: number;
|
|
98
|
+
/** Data URI. Only reaches a model whose input modalities include images. */
|
|
99
|
+
image?: string | null;
|
|
100
|
+
};
|
|
101
|
+
export type Call = (req: CallRequest) => Promise<RunRow>;
|
|
102
|
+
/** Source turned into something that runs. Generic over the component type so
|
|
103
|
+
* the engine never has to name React. */
|
|
104
|
+
export type Compiled<C> = {
|
|
105
|
+
ok: true;
|
|
106
|
+
Component: C;
|
|
107
|
+
stubbed?: string[];
|
|
108
|
+
} | {
|
|
109
|
+
ok: false;
|
|
110
|
+
error: string;
|
|
111
|
+
};
|
|
112
|
+
export type CompileFn<C> = (source: string) => Promise<Compiled<C>>;
|
|
113
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../benchmark/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The vocabulary shared between the AI engine and everything that hosts it.
|
|
3
|
+
*
|
|
4
|
+
* This file exists so the engine has no React in it. `agents.ts`, `prompt.ts`
|
|
5
|
+
* and `domain.ts` are otherwise already pure — no DOM, no runtime imports —
|
|
6
|
+
* and their single tie to the browser was a type import reaching into
|
|
7
|
+
* `registry.tsx`, which pulls in every component in the catalog to describe two
|
|
8
|
+
* fields.
|
|
9
|
+
*
|
|
10
|
+
* And it is two fields: the prompts read `name` and `props` and nothing else.
|
|
11
|
+
* A host does not have to own an `Entry`, a preview frame, a zoom level or a
|
|
12
|
+
* React component to ask for an edit — it has to say what the component is
|
|
13
|
+
* called and what knobs it has. Keeping that surface honest is what lets the
|
|
14
|
+
* engine run in a Node route, in this app's harness, and in Originkit's studio
|
|
15
|
+
* without three versions of the truth.
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../benchmark/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { PropSpec, Schema, ComponentSpec, Values, RunRow, Extract, Step, Report, CallRequest, Call, Compiled, CompileFn, } from "../../benchmark/types.ts";
|
|
2
|
+
export { buildIntentSystem, parseIntent, intentToInstruction, withAnswer, promisesNothing, deniesExistence, type Intent, type Criterion, type Check, } from "../../benchmark/agents.ts";
|
|
3
|
+
export { buildPropSystem, movedOnly, pinnedAtLimit, adoptRedeclared, type Verdict, } from "../../benchmark/agents.ts";
|
|
4
|
+
export { faultIn, unwiredProps, settingsBags, partialNesting, wireUpCorrection, unbundleCorrection, completeNestingCorrection, runtimeErrorCorrection, withCorrection, improved, type Fault, type CandidateChecks, } from "../../benchmark/agents.ts";
|
|
5
|
+
export { compareFrames, hardFail, changeSummary, patchSummary, NO_EVIDENCE, type Evidence, } from "../../benchmark/agents.ts";
|
|
6
|
+
export { buildCriticSystem, buildCriticUser, parseVerdict, } from "../../benchmark/agents.ts";
|
|
7
|
+
export { editPass, addRow, type EditDeps, type EditAttempt } from "../../benchmark/edit-pass.ts";
|
|
8
|
+
export { runEditLoop, freshSpecs, type LoopDeps, type LoopResult, type RenderReport, type Review, } from "../../benchmark/run-loop.ts";
|
|
9
|
+
export { PROPS_MARKER, buildSystem, buildEditSystem, buildEditRepairUser, buildUser, validate, unfence, sourceFromAnswer, parseEdits, applyEdits, repairPropsBlock, repairJson, rewriteMaxTokens, seedVisibleNewProps, toJsx, type Validity, } from "../../benchmark/prompt.ts";
|
|
10
|
+
export { validateSchema } from "../../benchmark/schema.ts";
|
|
11
|
+
export { diffLines, type DiffResult } from "../../benchmark/diff.ts";
|
|
12
|
+
export { HOUSE_RULES, recipesFor } from "../../benchmark/domain.ts";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../index.ts"],"names":[],"mappings":"AAqBA,YAAY,EACV,QAAQ,EACR,MAAM,EACN,aAAa,EACb,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,eAAe,EACf,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,KAAK,GACX,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,EACf,KAAK,OAAO,GACb,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,KAAK,KAAK,EACV,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,WAAW,EACX,KAAK,QAAQ,GACd,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EACL,WAAW,EACX,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,MAAM,GACZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,EACL,KAAK,QAAQ,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The engine's public surface.
|
|
3
|
+
*
|
|
4
|
+
* A re-export rather than a move: the modules still live under `benchmark/`,
|
|
5
|
+
* where the harness at /chat exercises them on every turn. That harness is the
|
|
6
|
+
* only thing that can tell you a change to a prompt made results better rather
|
|
7
|
+
* than merely different, so the engine keeps living next to it, and this file
|
|
8
|
+
* is the door a host comes in through.
|
|
9
|
+
*
|
|
10
|
+
* WHAT A HOST HAS TO SUPPLY. Nothing in here reaches the network, the disk or a
|
|
11
|
+
* DOM. `call` is one model request — the host owns the key, the quota and the
|
|
12
|
+
* transport. `compile` turns source into something that runs. `render` mounts
|
|
13
|
+
* it and reports what happened. Everything else is a decision about what came
|
|
14
|
+
* back, and is shared by construction rather than by discipline.
|
|
15
|
+
*
|
|
16
|
+
* Deliberately NOT exported: `openrouter.ts` and `failover.ts`. They are one
|
|
17
|
+
* implementation of `call`, and a host that has its own key handling, quota and
|
|
18
|
+
* error policy should write its own rather than inherit this app's.
|
|
19
|
+
*/
|
|
20
|
+
// Agent 1 — what the user meant, and which route answers it.
|
|
21
|
+
export { buildIntentSystem, parseIntent, intentToInstruction, withAnswer, promisesNothing, deniesExistence, } from "../../benchmark/agents.js";
|
|
22
|
+
// Agent 2a — the prop editor, and what makes a patch real.
|
|
23
|
+
export { buildPropSystem, movedOnly, pinnedAtLimit, adoptRedeclared, } from "../../benchmark/agents.js";
|
|
24
|
+
// The checks that need no model, in the order they matter.
|
|
25
|
+
export { faultIn, unwiredProps, settingsBags, partialNesting, wireUpCorrection, unbundleCorrection, completeNestingCorrection, runtimeErrorCorrection, withCorrection, improved, } from "../../benchmark/agents.js";
|
|
26
|
+
// Free evidence from a rendered frame, when a host can produce one.
|
|
27
|
+
export { compareFrames, hardFail, changeSummary, patchSummary, NO_EVIDENCE, } from "../../benchmark/agents.js";
|
|
28
|
+
// Agent 3 — the opinion. Off by default in the harness; a host opts in.
|
|
29
|
+
export { buildCriticSystem, buildCriticUser, parseVerdict, } from "../../benchmark/agents.js";
|
|
30
|
+
// Agent 2b — the edit pass, and the loop around it.
|
|
31
|
+
export { editPass, addRow } from "../../benchmark/edit-pass.js";
|
|
32
|
+
export { runEditLoop, freshSpecs, } from "../../benchmark/run-loop.js";
|
|
33
|
+
// Prompts and validation, for a host that assembles its own turn.
|
|
34
|
+
export { PROPS_MARKER, buildSystem, buildEditSystem, buildEditRepairUser, buildUser, validate, unfence, sourceFromAnswer, parseEdits, applyEdits, repairPropsBlock, repairJson, rewriteMaxTokens, seedVisibleNewProps, toJsx, } from "../../benchmark/prompt.js";
|
|
35
|
+
export { validateSchema } from "../../benchmark/schema.js";
|
|
36
|
+
export { diffLines } from "../../benchmark/diff.js";
|
|
37
|
+
// What this catalog is, and the maths a request drags in with it.
|
|
38
|
+
export { HOUSE_RULES, recipesFor } from "../../benchmark/domain.js";
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkBH,6DAA6D;AAC7D,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,eAAe,GAIhB,MAAM,2BAA2B,CAAC;AAEnC,2DAA2D;AAC3D,OAAO,EACL,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,GAEhB,MAAM,2BAA2B,CAAC;AAEnC,2DAA2D;AAC3D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,QAAQ,GAGT,MAAM,2BAA2B,CAAC;AAEnC,oEAAoE;AACpE,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,WAAW,GAEZ,MAAM,2BAA2B,CAAC;AAEnC,wEAAwE;AACxE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,2BAA2B,CAAC;AAEnC,oDAAoD;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAmC,MAAM,8BAA8B,CAAC;AACjG,OAAO,EACL,WAAW,EACX,UAAU,GAKX,MAAM,6BAA6B,CAAC;AAErC,kEAAkE;AAClE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,GAEN,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAmB,MAAM,yBAAyB,CAAC;AAErE,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@originkit/ai-engine",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The component-editing pipeline: turns an instruction into a prop patch or an edited file.",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/packages/ai-engine/index.js",
|
|
8
|
+
"types": "./dist/packages/ai-engine/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/packages/ai-engine/index.d.ts",
|
|
12
|
+
"default": "./dist/packages/ai-engine/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc -p tsconfig.build.json",
|
|
21
|
+
"prepublishOnly": "rm -rf dist && tsc -p tsconfig.build.json"
|
|
22
|
+
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
}
|
|
26
|
+
}
|