@vectoriox/iox-ui 5.54.0 → 5.55.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/fesm2022/vectoriox-iox-ui-generation-core.mjs +849 -44
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-harness-core.mjs +450 -30
- package/fesm2022/vectoriox-iox-ui-harness-core.mjs.map +1 -1
- package/generation-core/index.d.ts +302 -2
- package/harness-core/index.d.ts +297 -16
- package/package.json +1 -1
- package/src/generation-core/ai-run.ts +17 -2
- package/src/generation-core/json-schema.ts +97 -0
- package/src/generation-core/plan-edits.ts +428 -0
- package/src/generation-core/plan-words.ts +114 -0
- package/src/generation-core/public-api.ts +4 -0
- package/src/generation-core/site-plan-schema.ts +239 -0
- package/src/harness-core/generation-view.ts +115 -0
- package/src/harness-core/palette.ts +198 -0
- package/src/harness-core/public-api.ts +4 -0
- package/src/harness-core/reference-colour.ts +45 -0
- package/src/harness-core/site-analysis.ts +8 -29
- package/src/harness-core/site-reading.ts +214 -0
|
@@ -2331,6 +2331,52 @@ declare class PathIssueCollector<C extends string> {
|
|
|
2331
2331
|
unique(values: Array<string | null>, path: (i: number) => string, what: string): void;
|
|
2332
2332
|
}
|
|
2333
2333
|
|
|
2334
|
+
/**
|
|
2335
|
+
* The ONE set of builders every structured-output format is written with (AI plan §3c, M0-5 / M1-1 / M1-3 / M1-5):
|
|
2336
|
+
* the SiteAnalysis, the reading, the Site Plan and the plan edits. Each object is built FROM a documented shape table
|
|
2337
|
+
* (`shape-check`): its keys are the table's keys, the required ones are the table's required ones, each described in
|
|
2338
|
+
* the table's own words — and a builder handed a key list that disagrees with its table THROWS, so a shape that gains
|
|
2339
|
+
* a key cannot ship a format that silently lacks it. The subset is the strictest both providers' native strict modes
|
|
2340
|
+
* accept (Anthropic `output_config.format`, OpenRouter `json_schema` + `strict`): every object closed
|
|
2341
|
+
* (`additionalProperties: false`), unions as `anyOf`, single values as a one-entry `enum`, no length / count / number
|
|
2342
|
+
* bounds, no `$ref`. The format is a hint the provider enforces; the shared validator stays the gate.
|
|
2343
|
+
*/
|
|
2344
|
+
type JsonSchema = {
|
|
2345
|
+
[key: string]: unknown;
|
|
2346
|
+
};
|
|
2347
|
+
declare class JsonSchemaShapeError extends Error {
|
|
2348
|
+
}
|
|
2349
|
+
declare const jsonText: () => JsonSchema;
|
|
2350
|
+
declare const jsonBoolean: () => JsonSchema;
|
|
2351
|
+
declare const jsonInteger: () => JsonSchema;
|
|
2352
|
+
declare const jsonOneOf: (values: ReadonlyArray<string>) => JsonSchema;
|
|
2353
|
+
declare const jsonListOf: (items: JsonSchema) => JsonSchema;
|
|
2354
|
+
declare const jsonAnyOf: (options: ReadonlyArray<JsonSchema>) => JsonSchema;
|
|
2355
|
+
/** A closed object with exactly these properties. */
|
|
2356
|
+
declare function jsonClosedObject(properties: Record<string, JsonSchema>, required: ReadonlyArray<string>, description?: string): JsonSchema;
|
|
2357
|
+
/** The table's own words for a key (`key` or `key?`). */
|
|
2358
|
+
declare function describeShapeKey(entry: ShapeEntry, key: string): string;
|
|
2359
|
+
/** An entry's `[name]` keys (the object's own field names) written as ONE list on the wire — no strict mode can say
|
|
2360
|
+
* "any key", so the map travels as `[{ name, value }]` under `key` and the decoder turns it back. */
|
|
2361
|
+
interface DynamicKeysAsList {
|
|
2362
|
+
/** The wire key holding the list. */
|
|
2363
|
+
key: string;
|
|
2364
|
+
/** The list's schema. */
|
|
2365
|
+
schema: JsonSchema;
|
|
2366
|
+
}
|
|
2367
|
+
/**
|
|
2368
|
+
* An object of one shape-table entry: exactly its fixed keys, its required keys required, each described by the
|
|
2369
|
+
* table; an entry's `[name]` keys are not object keys — `dynamic` writes them as one list. Throws when the properties
|
|
2370
|
+
* given are not the table's keys.
|
|
2371
|
+
*/
|
|
2372
|
+
declare function jsonShapedObject(entry: ShapeEntry, properties: Record<string, JsonSchema>, name?: string, dynamic?: DynamicKeysAsList): JsonSchema;
|
|
2373
|
+
/** Every keyword a schema uses — what a spec checks against the strict subset. */
|
|
2374
|
+
declare function jsonSchemaKeywords(node: unknown, out?: Set<string>): Set<string>;
|
|
2375
|
+
/** The keywords the strict subset never uses. */
|
|
2376
|
+
declare const JSON_SCHEMA_BANNED_KEYWORDS: ReadonlyArray<string>;
|
|
2377
|
+
/** Every object node of a schema (through properties, items and anyOf). */
|
|
2378
|
+
declare function jsonSchemaObjects(node: unknown, out?: JsonSchema[]): JsonSchema[];
|
|
2379
|
+
|
|
2334
2380
|
/**
|
|
2335
2381
|
* The Site Plan validator — the gate in front of the composer. The wizard's plan and (later) the AI's
|
|
2336
2382
|
* plan go through the SAME checks: an unknown pattern, a slot the pattern does not declare, a source
|
|
@@ -3052,6 +3098,8 @@ declare enum AiStep {
|
|
|
3052
3098
|
NameStructures = "scanNaming"
|
|
3053
3099
|
}
|
|
3054
3100
|
declare const AI_STEPS: ReadonlyArray<AiStep>;
|
|
3101
|
+
/** Each step's name on the wire (the control plane's `label`, the console) — the screens translate their own. */
|
|
3102
|
+
declare const AI_STEP_LABELS: Readonly<Record<AiStep, string>>;
|
|
3055
3103
|
/** What a model must be able to do for a step to run on it. */
|
|
3056
3104
|
declare enum AiCapability {
|
|
3057
3105
|
StructuredOutput = "structuredOutputs",
|
|
@@ -3069,6 +3117,8 @@ interface AiTokenCounts {
|
|
|
3069
3117
|
cacheWrite: number;
|
|
3070
3118
|
/** Read from the prompt cache (priced well below input). */
|
|
3071
3119
|
cacheRead: number;
|
|
3120
|
+
/** Image tokens written (a picture step) — priced at `imageOutput`. */
|
|
3121
|
+
imageOutput?: number;
|
|
3072
3122
|
}
|
|
3073
3123
|
/** US dollars per million tokens, per class. A class without a price is priced as input. */
|
|
3074
3124
|
interface AiTokenPrice {
|
|
@@ -3076,6 +3126,8 @@ interface AiTokenPrice {
|
|
|
3076
3126
|
output: number;
|
|
3077
3127
|
cacheWrite?: number;
|
|
3078
3128
|
cacheRead?: number;
|
|
3129
|
+
/** Image-output tokens; a model without the price is priced at `output`. */
|
|
3130
|
+
imageOutput?: number;
|
|
3079
3131
|
}
|
|
3080
3132
|
/** A model of the vetted list (served by the control plane with the entitlements, §3n) — its price travels with it. */
|
|
3081
3133
|
interface AiModelEntry {
|
|
@@ -3173,5 +3225,253 @@ declare enum AiCallStatus {
|
|
|
3173
3225
|
Interrupted = "interrupted"
|
|
3174
3226
|
}
|
|
3175
3227
|
|
|
3176
|
-
|
|
3177
|
-
|
|
3228
|
+
/**
|
|
3229
|
+
* The structured-output format a model writes a Site Plan in (AI plan §3d step 4, M1-3) — built from the SAME shape
|
|
3230
|
+
* table `validateSitePlan` reads (`SPEC_SITE_PLAN_SHAPE`) and the SAME pattern library, so the plan a model is told
|
|
3231
|
+
* about is the plan the gate refuses. ONE source: a key the table gains breaks this builder until it is written here.
|
|
3232
|
+
*
|
|
3233
|
+
* Two maps of the shape are written as LISTS on the wire, because no strict mode can say "any key": a section's
|
|
3234
|
+
* `slots` (`[{ slot, text }]`, the slot names closed per pattern) and a seed's field values (`values: [{ field,
|
|
3235
|
+
* value }]`). `sitePlanFromWire` turns them back; nothing else differs. Every section is one `anyOf` branch per
|
|
3236
|
+
* pattern — its id, its declared slots, its optional parts, a binding only when it takes one — and the design, the
|
|
3237
|
+
* source and the version are PINNED to the owner's pick and this run (one-value enums), so the provider cannot let
|
|
3238
|
+
* a model change the look. The gate still checks both (`plan.design` deep-equals the pick).
|
|
3239
|
+
*/
|
|
3240
|
+
declare const SITE_PLAN_SCHEMA_NAME = "site_plan";
|
|
3241
|
+
/** The wire keys of the two maps written as lists. */
|
|
3242
|
+
declare enum SitePlanWireKey {
|
|
3243
|
+
SlotName = "slot",
|
|
3244
|
+
SlotText = "text",
|
|
3245
|
+
SeedValues = "values",
|
|
3246
|
+
SeedField = "field",
|
|
3247
|
+
SeedValue = "value"
|
|
3248
|
+
}
|
|
3249
|
+
interface SitePlanSchemaPin {
|
|
3250
|
+
/** The owner's pick, verbatim — every design key becomes a one-value enum. */
|
|
3251
|
+
design: DesignChoices;
|
|
3252
|
+
/** This generation. */
|
|
3253
|
+
source: SitePlanSource;
|
|
3254
|
+
}
|
|
3255
|
+
/** A content type's field. */
|
|
3256
|
+
declare function fieldJsonSchema(): JsonSchema;
|
|
3257
|
+
/** A content type, its seed's field values as a list (`values: [{ field, value }]`). */
|
|
3258
|
+
declare function contentTypeJsonSchema(): JsonSchema;
|
|
3259
|
+
/** A data source: a cms list / single item, or a relative one. */
|
|
3260
|
+
declare function dataSourceJsonSchema(): JsonSchema;
|
|
3261
|
+
/** The patterns a page section may use (every non-global one), in library order. */
|
|
3262
|
+
declare function sectionPatternIds(): string[];
|
|
3263
|
+
/** A page section: one branch per pattern. */
|
|
3264
|
+
declare function sectionJsonSchema(): JsonSchema;
|
|
3265
|
+
/** A page. */
|
|
3266
|
+
declare function pageJsonSchema(): JsonSchema;
|
|
3267
|
+
/** The Site Plan format, pinned to the owner's pick and this run. */
|
|
3268
|
+
declare function sitePlanJsonSchema(pin: SitePlanSchemaPin): JsonSchema;
|
|
3269
|
+
/** A section off the wire: its slots back to a map; a key the pattern has nothing for (`{}`) dropped. */
|
|
3270
|
+
declare function sectionFromWire(section: unknown): unknown;
|
|
3271
|
+
/** A content type off the wire: its seed's `values` list back to field keys. */
|
|
3272
|
+
declare function contentTypeFromWire(type: unknown): unknown;
|
|
3273
|
+
/**
|
|
3274
|
+
* A model's answer → a Site Plan: the two listed maps back to maps, nothing else touched. Never repairs — whatever the
|
|
3275
|
+
* answer got wrong is still wrong, for `validateSitePlan` to refuse with a path.
|
|
3276
|
+
*/
|
|
3277
|
+
declare function sitePlanFromWire(wire: unknown): SitePlan | unknown;
|
|
3278
|
+
/** The plan → the wire (what a re-ask shows the model, and what the plan edits' prompt carries). */
|
|
3279
|
+
declare function sitePlanToWire(plan: SitePlan): PlainObject;
|
|
3280
|
+
|
|
3281
|
+
/**
|
|
3282
|
+
* Changing a plan by sentence (AI plan §3d "The Plan prompt box", M1-5; reused by M2 after a build): the CLOSED list
|
|
3283
|
+
* of operations (N-D6) a model may write against the current plan, and the ONE pure `applyPlanEdits` that carries them
|
|
3284
|
+
* out. Nothing is written until Build, so an edit is a plan → plan function; the result goes through
|
|
3285
|
+
* `validateSitePlan` like any plan. Pages are named by `key`, sections by their index on the page. A set of edits is
|
|
3286
|
+
* applied whole or not at all: one edit that cannot apply refuses the set, with a path, and the plan is unchanged.
|
|
3287
|
+
*/
|
|
3288
|
+
declare enum PlanEditOp {
|
|
3289
|
+
AddPage = "addPage",
|
|
3290
|
+
RemovePage = "removePage",
|
|
3291
|
+
RenamePage = "renamePage",
|
|
3292
|
+
MergePages = "mergePages",
|
|
3293
|
+
/** Its place in the menu (the plan's page order). */
|
|
3294
|
+
MovePage = "movePage",
|
|
3295
|
+
AddSection = "addSection",
|
|
3296
|
+
RemoveSection = "removeSection",
|
|
3297
|
+
MoveSection = "moveSection",
|
|
3298
|
+
SwapPattern = "swapPattern",
|
|
3299
|
+
SetSlot = "setSlot",
|
|
3300
|
+
AddContentType = "addContentType",
|
|
3301
|
+
AddField = "addField",
|
|
3302
|
+
SetSectionData = "setSectionData"
|
|
3303
|
+
}
|
|
3304
|
+
type PlanEdit = {
|
|
3305
|
+
op: `${PlanEditOp.AddPage}`;
|
|
3306
|
+
page: PagePlan;
|
|
3307
|
+
after?: string;
|
|
3308
|
+
} | {
|
|
3309
|
+
op: `${PlanEditOp.RemovePage}`;
|
|
3310
|
+
page: string;
|
|
3311
|
+
} | {
|
|
3312
|
+
op: `${PlanEditOp.RenamePage}`;
|
|
3313
|
+
page: string;
|
|
3314
|
+
name?: string;
|
|
3315
|
+
route?: string;
|
|
3316
|
+
} | {
|
|
3317
|
+
op: `${PlanEditOp.MergePages}`;
|
|
3318
|
+
into: string;
|
|
3319
|
+
from: string;
|
|
3320
|
+
} | {
|
|
3321
|
+
op: `${PlanEditOp.MovePage}`;
|
|
3322
|
+
page: string;
|
|
3323
|
+
to: number;
|
|
3324
|
+
} | {
|
|
3325
|
+
op: `${PlanEditOp.AddSection}`;
|
|
3326
|
+
page: string;
|
|
3327
|
+
section: PageSectionPlan;
|
|
3328
|
+
at?: number;
|
|
3329
|
+
} | {
|
|
3330
|
+
op: `${PlanEditOp.RemoveSection}`;
|
|
3331
|
+
page: string;
|
|
3332
|
+
index: number;
|
|
3333
|
+
} | {
|
|
3334
|
+
op: `${PlanEditOp.MoveSection}`;
|
|
3335
|
+
page: string;
|
|
3336
|
+
from: number;
|
|
3337
|
+
to: number;
|
|
3338
|
+
} | {
|
|
3339
|
+
op: `${PlanEditOp.SwapPattern}`;
|
|
3340
|
+
page: string;
|
|
3341
|
+
index: number;
|
|
3342
|
+
pattern: string;
|
|
3343
|
+
} | {
|
|
3344
|
+
op: `${PlanEditOp.SetSlot}`;
|
|
3345
|
+
page: string;
|
|
3346
|
+
index: number;
|
|
3347
|
+
slot: string;
|
|
3348
|
+
text: string;
|
|
3349
|
+
} | {
|
|
3350
|
+
op: `${PlanEditOp.AddContentType}`;
|
|
3351
|
+
contentType: ContentTypePlan;
|
|
3352
|
+
dataSources?: DataSourcePlan[];
|
|
3353
|
+
} | {
|
|
3354
|
+
op: `${PlanEditOp.AddField}`;
|
|
3355
|
+
contentType: string;
|
|
3356
|
+
field: ContentFieldPlan;
|
|
3357
|
+
sample?: string | string[];
|
|
3358
|
+
} | {
|
|
3359
|
+
op: `${PlanEditOp.SetSectionData}`;
|
|
3360
|
+
page: string;
|
|
3361
|
+
index: number;
|
|
3362
|
+
binding: string;
|
|
3363
|
+
};
|
|
3364
|
+
/**
|
|
3365
|
+
* Every op's keys, explained — what the format is built from and what `validatePlanEdits` reads (`key?` optional).
|
|
3366
|
+
* A page is named by its `key`; a section by its 0-based `index` on that page.
|
|
3367
|
+
*/
|
|
3368
|
+
declare const PLAN_EDIT_SHAPE: Readonly<Record<`${PlanEditOp}`, ShapeEntry>>;
|
|
3369
|
+
declare enum PlanChangeKind {
|
|
3370
|
+
Page = "page",
|
|
3371
|
+
Section = "section",
|
|
3372
|
+
ContentType = "contentType",
|
|
3373
|
+
Field = "field",
|
|
3374
|
+
DataSource = "dataSource"
|
|
3375
|
+
}
|
|
3376
|
+
declare enum PlanChangeAction {
|
|
3377
|
+
Added = "added",
|
|
3378
|
+
Removed = "removed",
|
|
3379
|
+
Changed = "changed",
|
|
3380
|
+
Moved = "moved"
|
|
3381
|
+
}
|
|
3382
|
+
/** What an edit changed — the Plan map marks it. `index` is the section's index in the RESULT (or before, when removed). */
|
|
3383
|
+
interface PlanChange {
|
|
3384
|
+
kind: `${PlanChangeKind}`;
|
|
3385
|
+
action: `${PlanChangeAction}`;
|
|
3386
|
+
page?: string;
|
|
3387
|
+
index?: number;
|
|
3388
|
+
name?: string;
|
|
3389
|
+
}
|
|
3390
|
+
declare enum PlanEditIssueCode {
|
|
3391
|
+
Shape = "shape",
|
|
3392
|
+
UnknownKey = "unknown-key",
|
|
3393
|
+
Duplicate = "duplicate",
|
|
3394
|
+
UnknownOp = "unknown-op",
|
|
3395
|
+
UnknownPage = "unknown-page",
|
|
3396
|
+
UnknownSection = "unknown-section",
|
|
3397
|
+
UnknownPattern = "unknown-pattern",
|
|
3398
|
+
UnknownSlot = "unknown-slot",
|
|
3399
|
+
UnknownContentType = "unknown-content-type",
|
|
3400
|
+
UnknownDataSource = "unknown-data-source",
|
|
3401
|
+
/** The home page stays (a plan has exactly one). */
|
|
3402
|
+
HomePage = "home-page",
|
|
3403
|
+
/** A template page (one item per route) and a plain page cannot be merged. */
|
|
3404
|
+
MergeTemplate = "merge-template"
|
|
3405
|
+
}
|
|
3406
|
+
type PlanEditIssue = PathIssue<PlanEditIssueCode>;
|
|
3407
|
+
interface PlanEditResult {
|
|
3408
|
+
plan: SitePlan;
|
|
3409
|
+
changed: PlanChange[];
|
|
3410
|
+
/** Non-empty: nothing was applied (`plan` is the input). */
|
|
3411
|
+
issues: PlanEditIssue[];
|
|
3412
|
+
}
|
|
3413
|
+
/** The edits' structure: a known op, its keys (`PLAN_EDIT_SHAPE`), integers where an index is. Never repairs. */
|
|
3414
|
+
declare function validatePlanEdits(edits: unknown): {
|
|
3415
|
+
valid: boolean;
|
|
3416
|
+
issues: PlanEditIssue[];
|
|
3417
|
+
};
|
|
3418
|
+
/**
|
|
3419
|
+
* Apply a set of edits to a plan — all of them, or none (any issue refuses the set and returns the plan unchanged). The
|
|
3420
|
+
* sources only removed pages and sections read are dropped with them; sources nothing read before are kept.
|
|
3421
|
+
* The result still has to pass `validateSitePlan`.
|
|
3422
|
+
*/
|
|
3423
|
+
declare function applyPlanEdits(plan: SitePlan, edits: ReadonlyArray<PlanEdit>): PlanEditResult;
|
|
3424
|
+
declare const PLAN_EDITS_SCHEMA_NAME = "plan_edits";
|
|
3425
|
+
/** A sentence's answer: the edits, or why the ops cannot say it (one line, in the owner's language). */
|
|
3426
|
+
declare enum PlanEditsOutcome {
|
|
3427
|
+
Edits = "edits",
|
|
3428
|
+
Cannot = "cannot"
|
|
3429
|
+
}
|
|
3430
|
+
interface PlanEditsAnswer {
|
|
3431
|
+
outcome: `${PlanEditsOutcome}`;
|
|
3432
|
+
edits: PlanEdit[];
|
|
3433
|
+
/** `cannot`: the one line the owner reads. `edits`: empty. */
|
|
3434
|
+
reason: string;
|
|
3435
|
+
}
|
|
3436
|
+
/** The answer's own keys, explained. */
|
|
3437
|
+
declare const PLAN_EDITS_ANSWER_SHAPE: ShapeEntry;
|
|
3438
|
+
/** The format a sentence's answer is written in: the outcome, the edits (one `anyOf` branch per op), the reason. */
|
|
3439
|
+
declare function planEditsJsonSchema(): JsonSchema;
|
|
3440
|
+
/** A model's answer → edits (sections and content types off the wire); never repaired. */
|
|
3441
|
+
declare function planEditsFromWire(answer: unknown): PlanEditsAnswer | unknown;
|
|
3442
|
+
|
|
3443
|
+
/**
|
|
3444
|
+
* The plan stage's word checks (AI plan §3d / §3h, M1-3): every text a model WROTE into a plan — the tagline, page
|
|
3445
|
+
* names, section slots, content-type labels, sample values — scanned for the words the owner and their kind of
|
|
3446
|
+
* business must not use (`avoidWords`, the analysis's + the type's `words`), and for a fact the owner never gave
|
|
3447
|
+
* (an email, phone number, price or opening time that is not one of the owner's own facts). A finding is a refusal
|
|
3448
|
+
* with a path — the model rewrites; nothing here repairs a word. Pure.
|
|
3449
|
+
*/
|
|
3450
|
+
declare enum PlanWordIssueCode {
|
|
3451
|
+
/** A word the owner (or their kind of business) must not use. */
|
|
3452
|
+
AvoidWord = "avoid-word",
|
|
3453
|
+
/** Something that looks like a fact — an email, phone, price or time — that is not one of the owner's facts. */
|
|
3454
|
+
InventedFact = "invented-fact",
|
|
3455
|
+
/** `business.facts` holds a fact the owner did not give, or not in the owner's words. */
|
|
3456
|
+
FactNotTheOwners = "fact-not-the-owners"
|
|
3457
|
+
}
|
|
3458
|
+
type PlanWordIssue = PathIssue<PlanWordIssueCode>;
|
|
3459
|
+
interface PlanWordContext {
|
|
3460
|
+
avoidWords: ReadonlyArray<string>;
|
|
3461
|
+
/** The owner's own facts (the analysis's, as corrected) — the only ones a plan may carry. */
|
|
3462
|
+
facts: Readonly<Partial<Record<FactKey, string>>>;
|
|
3463
|
+
}
|
|
3464
|
+
/** A text a model wrote, and where. */
|
|
3465
|
+
interface WrittenText {
|
|
3466
|
+
path: string;
|
|
3467
|
+
text: string;
|
|
3468
|
+
}
|
|
3469
|
+
/** Every text in a plan a model writes (never ids, routes, field names or pattern ids). */
|
|
3470
|
+
declare function writtenTexts(plan: SitePlan): WrittenText[];
|
|
3471
|
+
/** A word (or phrase) as a whole-word pattern; Hebrew allows its one-letter prefixes. */
|
|
3472
|
+
declare function wordPattern(word: string): RegExp;
|
|
3473
|
+
/** The words to avoid and the facts never given, in every written text of the plan. */
|
|
3474
|
+
declare function planWordIssues(plan: SitePlan, ctx: PlanWordContext): PlanWordIssue[];
|
|
3475
|
+
|
|
3476
|
+
export { ACTIVE_BUILD_STATUSES, AI_REFUSAL_NEXT, AI_REFUSAL_STATUS, AI_STEPS, AI_STEP_LABELS, AI_STEP_NEEDS, AI_STEP_TYPICAL_TOKENS, AiCallStatus, AiCapability, AiGenerationStage, AiKeyMode, AiNextKind, AiProviderId, AiRefusalCode, AiStep, BAR_ITEMS_MAX, BAR_ITEMS_MIN, BASELINE_ROLES, BUILD_STEPS, BaselineRole, BindScope, BuildNoticeCode, BuildStep, CREDITS_PER_USD, CardBindTarget, ComposeError, ComposeIssueCode, ContentTypeAction, CreatedKind, DANGLING_LINK_CODES, DEFAULT_PHONE_MENU_BREAKPOINT, ENTRANCE_EASING, ENTRANCE_ORIGIN_LOOK, ENTRANCE_TRIGGER, EntrancePart, FACT_KEYS, FINAL_GENERATION_STAGES, GlobalSlot, JSON_SCHEMA_BANNED_KEYWORDS, JsonSchemaShapeError, KeptReason, NAV_PART_LABELS, NAV_SHAPE_COPY, NEUTRAL_STYLE_PROPS, NODE_BASELINES, NO_TOKENS, NavPagesSource, NavRole, NavShape, NavShapeError, PLAN_EDITS_ANSWER_SHAPE, PLAN_EDITS_SCHEMA_NAME, PLAN_EDIT_SHAPE, PRICING_PATTERN, PUBLISH_BLOCKING_PLACEHOLDERS, PageDataKind, PathIssueCollector, PatternDirective, PatternGlobalPosition, PatternOpens, PatternPlaceholder, PatternRecipe, PhoneMenuBreakpoint, PlaceholderKind, PlanChangeAction, PlanChangeKind, PlanDataSourceMode, PlanDataSourceType, PlanEditIssueCode, PlanEditOp, PlanEditsOutcome, PlanWordIssueCode, PreflightRefusalCode, RelativeOp, SAMPLE_IMAGE_REF, SITE_FACT_LABELS, SITE_HEADER_PATTERN, SITE_PATTERNS, SITE_PLAN_SCHEMA_NAME, SITE_PLAN_VERSION, SITE_TEMPLATES, SPEC_SITE_FACTS, SPEC_SITE_LIBRARY, SPEC_SITE_PATTERNS, SPEC_SITE_PLAN_SHAPE, SPEC_SITE_TEMPLATES, STUDIO_TEMPLATE, SiteBuildKind, SiteBuildStatus, SitePlanError, SitePlanIssueCode, SitePlanSourceKind, SitePlanWireKey, SiteTemplateError, SiteTemplateId, StepState, addBarItem, altSourceScopes, applyPlanEdits, assertStyleSlots, assertValidSitePlan, barIconForRoute, blocksPublish, buildKeys, buildStepFacts, builtHomePageId, composeNavHeader, composeSection, composeSite, contentTypeFromWire, contentTypeJsonSchema, costUsd, createSerializedNode, creditsOfUsd, dataSourceJsonSchema, describePlanData, describeShapeKey, entranceAction, entranceInteraction, estimateStepCredits, failedBuildStep, fieldJsonSchema, findNavRoot, isActiveBuild, isNonEmptyString, isPlainObject, jsonAnyOf, jsonBoolean, jsonClosedObject, jsonInteger, jsonListOf, jsonOneOf, jsonSchemaKeywords, jsonSchemaObjects, jsonShapedObject, jsonText, modelCanDo, moveBarItem, navPages, navShapeBreakpoint, navShapeOf, nextSourceOf, nodeBindPaths, pageJsonSchema, parseSampleImageRef, pathAt, patternById, patternNeedsBinding, patternNodes, patternOptionalParts, patternScopes, patternSlots, patternTakesBinding, phoneMenuPages, planEditsFromWire, planEditsJsonSchema, planFromTemplate, planNavShape, planWordIssues, releasedLayoutDefaults, removeBarItem, requiredShapeKeys, routeParams, sampleImageRef, sectionEntrances, sectionFromWire, sectionJsonSchema, sectionPatternIds, setStyleProps, shapeKeys, siteNavPages, sitePlanFromWire, sitePlanJsonSchema, sitePlanToWire, staggerDelay, validatePlanEdits, validateSitePlan, walkSerialized, wordPattern, writtenTexts };
|
|
3477
|
+
export type { AddBarItemResult, AiMeter, AiModelEntry, AiRefusal, AiTokenCounts, AiTokenPrice, BarItemsEditResult, BuildNotice, BuildStepError, BuildStepFacts, BuildStepRecord, CmsDataSourcePlan, ComposeContext, ComposeIssue, ComposedDataSource, ComposedItem, ComposedNavHeader, ComposedPage, ComposedPlaceholder, ComposedRoute, ComposedSection, ComposedSite, ContentFieldPlan, ContentSeedPlan, ContentTypePlan, CreateNodeOptions, CreatedRecord, DataSourcePlan, DynamicKeysAsList, EntranceAction, EntranceInteraction, EntranceSpec, FactKey, JsonSchema, NavHeaderInput, NavHeaderOptions, NavPage, NavShapeOptions, NavShapeResult, NodeBaseline, PageData, PageDataLine, PagePlan, PageSectionPlan, PathIssue, PatternNode, PlainObject, PlanChange, PlanEdit, PlanEditIssue, PlanEditResult, PlanEditsAnswer, PlanWordContext, PlanWordIssue, PreflightRefusal, RelativeDataSourcePlan, SectionEntrances, SectionInput, SectionOptions, SerializedBinding, SerializedNode, SerializedResponsive, ShapeEntry, ShapeIssueCodes, SiteBuildRun, SiteBusiness, SitePageRef, SitePattern, SitePlan, SitePlanIssue, SitePlanSchemaPin, SitePlanSource, SitePlanValidation, SiteTemplate, TemplatePlanInput, UndoKept, UndoPreview, UndoRecord, WrittenText };
|