@salsita-ai/sdk 0.50.0-develop.db8514eccf → 0.50.0-develop.dbf0122072
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/{phoenix/application-spec → application-spec/assistant}/generate-assistant-prompt.d.ts +2 -2
- package/dist/{phoenix/application-spec → application-spec/assistant}/generate-assistant-prompt.js +1 -1
- package/dist/application-spec/assistant/index.d.ts +1 -0
- package/dist/application-spec/assistant/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec.js +4 -4
- package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
- package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
- package/dist/application-spec/index.d.ts +1 -0
- package/dist/application-spec/index.js +1 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +1 -1
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +15 -3
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
- package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
- package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
- package/dist/configurator/ui/assistant/tool-chip.js +1 -1
- package/dist/docs/index.json +1 -1
- package/dist/domain/application/application-config.d.ts +2 -62
- package/dist/domain/application/assistant/assistant-manifest.d.ts +61 -0
- package/dist/domain/application/assistant/assistant-manifest.js +1 -0
- package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
- package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
- package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
- package/dist/domain/application/assistant/assistant-value-type.js +1 -0
- package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
- package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
- package/dist/domain/application/assistant/index.d.ts +3 -0
- package/dist/domain/application/assistant/index.js +1 -0
- package/dist/domain/application/assistant-field-options.d.ts +1 -1
- package/dist/domain/application/assistant-mutations.d.ts +1 -1
- package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
- package/dist/domain/application/configurator-builder.d.ts +4 -3
- package/dist/domain/application/index.d.ts +2 -1
- package/dist/domain/application/index.js +1 -1
- package/dist/domain/domain-runtime/domain-runtime.d.ts +4 -4
- package/dist/domain/domain-runtime/spec/selectors.d.ts +2 -2
- package/dist/domain/domain-runtime/spec/selectors.js +1 -1
- package/dist/domain/domain-runtime/spec/types.d.ts +3 -3
- package/dist/domain/mocks/create-mock-domain-runtime.d.ts +2 -2
- package/dist/i18n/locales/cs/messages.js +1 -1
- package/dist/i18n/locales/da/messages.js +1 -1
- package/dist/i18n/locales/de/messages.js +1 -1
- package/dist/i18n/locales/de-AT/messages.js +1 -1
- package/dist/i18n/locales/en/messages.js +1 -1
- package/dist/i18n/locales/en-AU/messages.js +1 -1
- package/dist/i18n/locales/en-GB/messages.js +1 -1
- package/dist/i18n/locales/es/messages.js +1 -1
- package/dist/i18n/locales/fr/messages.js +1 -1
- package/dist/i18n/locales/hu/messages.js +1 -1
- package/dist/i18n/locales/it/messages.js +1 -1
- package/dist/i18n/locales/nl/messages.js +1 -1
- package/dist/i18n/locales/pl/messages.js +1 -1
- package/dist/i18n/locales/pt/messages.js +1 -1
- package/dist/i18n/locales/ro/messages.js +1 -1
- package/dist/i18n/locales/sk/messages.js +1 -1
- package/dist/i18n/locales/tr/messages.js +1 -1
- package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
- package/dist/phoenix/services/variant-file-session.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +4 -4
- package/package.json +3 -3
|
@@ -10,6 +10,7 @@ import type { DomainComponentOptic } from '../components/domain-component-optic.
|
|
|
10
10
|
import type { $DomainEntity, DomainEntity, DomainFactory, ProductPreset, SystemComponentTypeConstraint } from '../core/index.js';
|
|
11
11
|
import type { AnalyticsSystem, DomainContextSystems, TransformerFactory, Transformers } from '../domain-context/index.js';
|
|
12
12
|
import type { RegistrableTransformer } from '../domain-context/transformers/index.js';
|
|
13
|
+
import type { AssistantResolvedManifest } from './assistant/index.js';
|
|
13
14
|
import type { ElementRegistration } from './element-registration.js';
|
|
14
15
|
import type { HandlerRegistration } from './handler-registration.js';
|
|
15
16
|
import type { WebComponentEventDescriptor } from './web-component-event.js';
|
|
@@ -64,67 +65,6 @@ export type DataSpec = {
|
|
|
64
65
|
export type ChunksSpec = Readonly<Record<string, {
|
|
65
66
|
readonly scope: string;
|
|
66
67
|
}>>;
|
|
67
|
-
/**
|
|
68
|
-
* Where one exposed assistant GraphQL field reads its value on the `$` entity: a stored field name,
|
|
69
|
-
* or an expression name including its `$`. `localized` marks a localizable value that resolves to a
|
|
70
|
-
* string in the current locale.
|
|
71
|
-
*/
|
|
72
|
-
export interface AssistantFieldSource {
|
|
73
|
-
readonly source: string;
|
|
74
|
-
readonly localized?: true;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* One recipe group the assistant manifest exposes on an entity type: a `childEntityRecipes` instance
|
|
78
|
-
* under `childRecipes`, a `replaceEntityRecipes` instance under `replaceRecipes`. `groupId` is the
|
|
79
|
-
* name the agent addresses the group by, `instanceName` the component instance it reads,
|
|
80
|
-
* `description` the manifest's text replacing the component's group description, and `dryRuns`
|
|
81
|
-
* whether the recipes of the group can be dry-run.
|
|
82
|
-
*/
|
|
83
|
-
export interface AssistantRecipeGroup {
|
|
84
|
-
readonly groupId: string;
|
|
85
|
-
readonly instanceName: string;
|
|
86
|
-
readonly description?: string;
|
|
87
|
-
readonly dryRuns: boolean;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* The options edge of one writable field the assistant manifest links to its component. `field` is
|
|
91
|
-
* the delta field of `modify<Type>` the choices are for, `edgeName` the field of `<Type>Meta` that
|
|
92
|
-
* lists them, `componentType` and `instanceName` the component instance they are read from, and
|
|
93
|
-
* `validate` whether `modify<Type>` rejects a value that is not among them, and `dryRuns` whether
|
|
94
|
-
* the choices can be dry-run.
|
|
95
|
-
*/
|
|
96
|
-
export interface AssistantFieldOptions {
|
|
97
|
-
readonly field: string;
|
|
98
|
-
readonly edgeName: string;
|
|
99
|
-
readonly componentType: 'materialSwatch' | 'attributeSelection' | 'distanceDimensionSelect';
|
|
100
|
-
readonly instanceName: string;
|
|
101
|
-
readonly validate: boolean;
|
|
102
|
-
readonly dryRuns: boolean;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Experimental assistant manifest generated from the application spec `assistant` section. `sdl` is
|
|
106
|
-
* the GraphQL schema text prepared at parse time; `fields` maps each GraphQL object type's exposed
|
|
107
|
-
* fields (type name → GraphQL field name) to the stored field or expression its resolvers read;
|
|
108
|
-
* `deletableTypes` lists the entity types the `deleteEntity` mutation may delete, with aliases
|
|
109
|
-
* already expanded, and absent means none; `writableFields` maps, per entity type with a
|
|
110
|
-
* `modify<Type>` mutation, each field of its delta input to the stored property it writes, and
|
|
111
|
-
* absent means no entity type is writable; `childRecipes` lists, per entity type with a `meta` field,
|
|
112
|
-
* the recipe groups `meta { childRecipes }` and `addChild` expose, in manifest order, and absent
|
|
113
|
-
* means none; `replaceRecipes` lists the same for `meta { replaceRecipes }` and `replaceEntity`;
|
|
114
|
-
* `fieldOptions` lists, per entity type, the options edges `meta` exposes for its
|
|
115
|
-
* writable fields, and absent means none; `actions` maps each custom `Mutation` field to the
|
|
116
|
-
* declared action it runs, and absent means none. Consumed by the configurator GraphQL system.
|
|
117
|
-
*/
|
|
118
|
-
export interface AssistantManifest {
|
|
119
|
-
readonly sdl: string;
|
|
120
|
-
readonly fields: Readonly<Record<string, Readonly<Record<string, AssistantFieldSource>>>>;
|
|
121
|
-
readonly deletableTypes?: readonly string[];
|
|
122
|
-
readonly writableFields?: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
123
|
-
readonly childRecipes?: Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
|
|
124
|
-
readonly replaceRecipes?: Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
|
|
125
|
-
readonly fieldOptions?: Readonly<Record<string, readonly AssistantFieldOptions[]>>;
|
|
126
|
-
readonly actions?: Readonly<Record<string, string>>;
|
|
127
|
-
}
|
|
128
68
|
export type AdminPagesSpec = {
|
|
129
69
|
readonly presets?: boolean | {
|
|
130
70
|
readonly categoryNavigationState?: string;
|
|
@@ -352,7 +292,7 @@ export interface ApplicationConfig<ENTITIES extends DomainEntity<string>, ALLOWE
|
|
|
352
292
|
readonly chunks?: ChunksSpec;
|
|
353
293
|
readonly dataSpec?: DataSpec;
|
|
354
294
|
readonly publishedDataHash?: string;
|
|
355
|
-
readonly assistant?:
|
|
295
|
+
readonly assistant?: AssistantResolvedManifest | null;
|
|
356
296
|
/**
|
|
357
297
|
* Factory for transformers that will be registered in the store system and called on any update.
|
|
358
298
|
*/
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where one exposed assistant GraphQL field reads its value on the `$` entity: a stored field name,
|
|
3
|
+
* or an expression name including its `$`. `localized` marks a localizable value that resolves to a
|
|
4
|
+
* string in the current locale.
|
|
5
|
+
*/
|
|
6
|
+
export interface AssistantFieldSource {
|
|
7
|
+
readonly source: string;
|
|
8
|
+
readonly localized?: true;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* One recipe group the assistant manifest exposes on an entity type: a `childEntityRecipes` instance
|
|
12
|
+
* under `childRecipes`, a `replaceEntityRecipes` instance under `replaceRecipes`. `groupId` is the
|
|
13
|
+
* name the agent addresses the group by, `instanceName` the component instance it reads,
|
|
14
|
+
* `description` the manifest's text replacing the component's group description, and `dryRuns`
|
|
15
|
+
* whether the recipes of the group can be dry-run.
|
|
16
|
+
*/
|
|
17
|
+
export interface AssistantRecipeGroup {
|
|
18
|
+
readonly groupId: string;
|
|
19
|
+
readonly instanceName: string;
|
|
20
|
+
readonly description?: string;
|
|
21
|
+
readonly dryRuns: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The options edge of one writable field the assistant manifest links to its component. `field` is
|
|
25
|
+
* the delta field of `modify<Type>` the choices are for, `edgeName` the field of `<Type>Meta` that
|
|
26
|
+
* lists them, `componentType` and `instanceName` the component instance they are read from, and
|
|
27
|
+
* `validate` whether `modify<Type>` rejects a value that is not among them, and `dryRuns` whether
|
|
28
|
+
* the choices can be dry-run.
|
|
29
|
+
*/
|
|
30
|
+
export interface AssistantFieldOptions {
|
|
31
|
+
readonly field: string;
|
|
32
|
+
readonly edgeName: string;
|
|
33
|
+
readonly componentType: 'materialSwatch' | 'attributeSelection' | 'distanceDimensionSelect';
|
|
34
|
+
readonly instanceName: string;
|
|
35
|
+
readonly validate: boolean;
|
|
36
|
+
readonly dryRuns: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Experimental assistant manifest generated from the application spec `assistant` section. `sdl` is
|
|
40
|
+
* the GraphQL schema text rebuilt from the resolved manifest; `fields` maps each GraphQL object type's exposed
|
|
41
|
+
* fields (type name → GraphQL field name) to the stored field or expression its resolvers read;
|
|
42
|
+
* `deletableTypes` lists the entity types the `deleteEntity` mutation may delete, with aliases
|
|
43
|
+
* already expanded, and absent means none; `writableFields` maps, per entity type with a
|
|
44
|
+
* `modify<Type>` mutation, each field of its delta input to the stored property it writes, and
|
|
45
|
+
* absent means no entity type is writable; `childRecipes` lists, per entity type with a `meta` field,
|
|
46
|
+
* the recipe groups `meta { childRecipes }` and `addChild` expose, in manifest order, and absent
|
|
47
|
+
* means none; `replaceRecipes` lists the same for `meta { replaceRecipes }` and `replaceEntity`;
|
|
48
|
+
* `fieldOptions` lists, per entity type, the options edges `meta` exposes for its
|
|
49
|
+
* writable fields, and absent means none; `actions` maps each custom `Mutation` field to the
|
|
50
|
+
* declared action it runs, and absent means none. Consumed by the configurator GraphQL system.
|
|
51
|
+
*/
|
|
52
|
+
export interface AssistantManifest {
|
|
53
|
+
readonly sdl: string;
|
|
54
|
+
readonly fields: Readonly<Record<string, Readonly<Record<string, AssistantFieldSource>>>>;
|
|
55
|
+
readonly deletableTypes?: readonly string[];
|
|
56
|
+
readonly writableFields?: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
57
|
+
readonly childRecipes?: Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
|
|
58
|
+
readonly replaceRecipes?: Readonly<Record<string, readonly AssistantRecipeGroup[]>>;
|
|
59
|
+
readonly fieldOptions?: Readonly<Record<string, readonly AssistantFieldOptions[]>>;
|
|
60
|
+
readonly actions?: Readonly<Record<string, string>>;
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { AssistantFieldOptions, AssistantRecipeGroup } from './assistant-manifest.js';
|
|
2
|
+
/** JSON description of a scalar or recursively nested list, including nullability at each level. */
|
|
3
|
+
export type AssistantValueType = {
|
|
4
|
+
readonly kind: 'scalar';
|
|
5
|
+
readonly name: 'Int' | 'Float' | 'String' | 'Boolean' | 'ID' | 'JSON';
|
|
6
|
+
readonly nonNull: boolean;
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: 'list';
|
|
9
|
+
readonly item: AssistantValueType;
|
|
10
|
+
readonly nonNull: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** A relation edge resolved against the model at parse time, linked to GraphQL types only during building. */
|
|
13
|
+
export interface AssistantRelationType {
|
|
14
|
+
readonly kind: 'edge';
|
|
15
|
+
readonly target: string;
|
|
16
|
+
readonly cardinality: '1-1' | '0-1' | '0-N' | '1-N';
|
|
17
|
+
}
|
|
18
|
+
/** A field's source and resolved type, carried in the application bundle without GraphQL instances. */
|
|
19
|
+
export interface AssistantResolvedField {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly source: string;
|
|
22
|
+
readonly type: {
|
|
23
|
+
readonly kind: 'value';
|
|
24
|
+
readonly type: AssistantValueType;
|
|
25
|
+
} | AssistantRelationType;
|
|
26
|
+
readonly localized: boolean;
|
|
27
|
+
readonly description?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Declared UI state values used to describe the navigation query. */
|
|
30
|
+
export interface AssistantStates {
|
|
31
|
+
readonly navigationStates: readonly string[];
|
|
32
|
+
readonly viewStates: readonly string[];
|
|
33
|
+
readonly toolStates: readonly string[];
|
|
34
|
+
}
|
|
35
|
+
/** Serializable resolved whitelist from which the browser or backend constructs the assistant schema. */
|
|
36
|
+
export interface AssistantResolvedManifest {
|
|
37
|
+
readonly entityTypes: readonly string[];
|
|
38
|
+
readonly aliases: Readonly<Record<string, readonly string[]>>;
|
|
39
|
+
readonly exampleType?: string;
|
|
40
|
+
readonly fields: Readonly<Record<string, readonly AssistantResolvedField[]>>;
|
|
41
|
+
readonly states: AssistantStates;
|
|
42
|
+
readonly deletableTypes: readonly string[];
|
|
43
|
+
readonly writableTypes: readonly AssistantWritableType[];
|
|
44
|
+
readonly childRecipes: Readonly<Record<string, AssistantResolvedRecipes>>;
|
|
45
|
+
readonly replaceRecipes: Readonly<Record<string, AssistantResolvedRecipes>>;
|
|
46
|
+
readonly optionsEdges: Readonly<Record<string, readonly AssistantResolvedOptionsEdge[]>>;
|
|
47
|
+
readonly actionFields: readonly AssistantResolvedAction[];
|
|
48
|
+
}
|
|
49
|
+
/** Optional mutation input for one stored field, using its exposed name. */
|
|
50
|
+
export interface AssistantWritableField {
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly property: string;
|
|
53
|
+
readonly type: AssistantValueType;
|
|
54
|
+
readonly description?: string;
|
|
55
|
+
}
|
|
56
|
+
/** One entity type's writable fields, in manifest order. */
|
|
57
|
+
export interface AssistantWritableType {
|
|
58
|
+
readonly entityType: string;
|
|
59
|
+
readonly fields: readonly AssistantWritableField[];
|
|
60
|
+
}
|
|
61
|
+
/** Description hints resolved from recipe/option entries; no parse context is retained. */
|
|
62
|
+
export type AssistantResolvedHint = 'sameForAllInstances' | 'constantDuringSession';
|
|
63
|
+
/** Recipe groups and their description hints for one entity type. */
|
|
64
|
+
export interface AssistantResolvedRecipes {
|
|
65
|
+
readonly groups: readonly AssistantRecipeGroup[];
|
|
66
|
+
readonly hints: readonly AssistantResolvedHint[];
|
|
67
|
+
}
|
|
68
|
+
/** One options edge, carrying the write-validation contract and schema description hints. */
|
|
69
|
+
export interface AssistantResolvedOptionsEdge {
|
|
70
|
+
readonly options: AssistantFieldOptions;
|
|
71
|
+
readonly hints: readonly AssistantResolvedHint[];
|
|
72
|
+
}
|
|
73
|
+
/** An action result field, either an entity edge or a plain JSON-described value. */
|
|
74
|
+
export type AssistantResolvedActionResult = {
|
|
75
|
+
readonly kind: 'edge';
|
|
76
|
+
readonly target: string;
|
|
77
|
+
readonly list: boolean;
|
|
78
|
+
readonly nullable: boolean;
|
|
79
|
+
readonly description?: string;
|
|
80
|
+
} | {
|
|
81
|
+
readonly kind: 'value';
|
|
82
|
+
readonly type: AssistantValueType;
|
|
83
|
+
readonly description?: string;
|
|
84
|
+
};
|
|
85
|
+
/** A custom mutation resolved against the declared action, independent of its implementation. */
|
|
86
|
+
export interface AssistantResolvedAction {
|
|
87
|
+
readonly fieldName: string;
|
|
88
|
+
readonly actionName: string;
|
|
89
|
+
readonly description?: string;
|
|
90
|
+
readonly args: Readonly<Record<string, {
|
|
91
|
+
readonly type: AssistantValueType;
|
|
92
|
+
readonly description?: string;
|
|
93
|
+
}>>;
|
|
94
|
+
readonly result: Readonly<Record<string, AssistantResolvedActionResult>>;
|
|
95
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type GraphQLInputType, type GraphQLOutputType, GraphQLScalarType } from 'graphql';
|
|
2
|
+
import type { AssistantValueType } from './assistant-resolved-manifest.js';
|
|
3
|
+
/**
|
|
4
|
+
* Opaque scalar for values the assistant schema does not type: objects, custom TypeScript types and
|
|
5
|
+
* loose unions. A value is plain serializable data and passes through unchanged.
|
|
6
|
+
*/
|
|
7
|
+
export declare const GraphQLJSON: GraphQLScalarType<unknown, unknown>;
|
|
8
|
+
/** Recreates a GraphQL value type from the JSON descriptor, preserving every list and nullability layer. */
|
|
9
|
+
export declare const createAssistantValueType: (descriptor: AssistantValueType) => GraphQLInputType & GraphQLOutputType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{GraphQLBoolean as e,GraphQLFloat as t,GraphQLID as a,GraphQLInt as n,GraphQLList as r,GraphQLNonNull as l,GraphQLScalarType as s,GraphQLString as i}from"graphql";export const GraphQLJSON=new s({name:"JSON",description:"Any JSON value, returned as stored. Always plain serializable data."});let o={Int:n,Float:t,String:i,Boolean:e,ID:a,JSON:GraphQLJSON};export const createAssistantValueType=e=>{let t="list"===e.kind?new r(createAssistantValueType(e.item)):o[e.name];return e.nonNull?new l(t):t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AssistantManifest } from './assistant-manifest.js';
|
|
2
|
+
import type { AssistantResolvedManifest } from './assistant-resolved-manifest.js';
|
|
3
|
+
/** Constructs the schema and runtime sources exclusively from serializable resolved data. */
|
|
4
|
+
export declare const buildAssistantManifest: (resolved: AssistantResolvedManifest) => Required<AssistantManifest>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{GraphQLBoolean as e,GraphQLID as t,GraphQLInputObjectType as n,GraphQLInterfaceType as i,GraphQLList as o,GraphQLNonNull as r,GraphQLObjectType as s,GraphQLSchema as a,GraphQLString as p,printSchema as d,validateSchema as h}from"graphql";import{GraphQLJSON as c,createAssistantValueType as l}from"./assistant-value-type.js";let y="AnyDomainEntity",u="RootEntity",f={section:"childRecipes",mutation:"addChild"},g={section:"replaceRecipes",mutation:"replaceEntity"},w=(e,t)=>Object.entries(e).find(([e])=>e===t)?.[1],m=(e,t)=>{if(!t||0===t.length)return e;let n=`One of: ${t.map(e=>`"${e}"`).join(", ")}.`;return e?/[.!?]$/.test(e)?`${e} ${n}`:`${e}. ${n}`:n},b=({target:e,cardinality:t},n)=>{let i=n(e);switch(t){case"1-1":return new r(i);case"0-1":return i;case"0-N":case"1-N":return new r(new o(new r(i)))}},v=(e,n,i)=>{let o={id:{type:new r(t),description:i?`Unique id of the entity, e.g. "${i}-1".`:void 0},type:{type:new r(p),description:i?`Entity type name, e.g. "${i}".`:void 0}};for(let t of e)o[t.name]={type:"edge"===t.type.kind?b(t.type,n):l(t.type.type),description:t.description};return o},$=e=>Object.fromEntries(e.map(({name:e,source:t,localized:n})=>[e,n?{source:t,localized:!0}:{source:t}])),j={sameForAllInstances:e=>`All ${e} instances have the same recipe groups and recipes.`,constantDuringSession:()=>"They do not change during the session."},O={sameForAllInstances:e=>`All ${e} instances have the same options.`,constantDuringSession:()=>"The options do not change during the session."},E=(e,t,n)=>e.map(e=>` ${t[e](n)}`).join(""),R=({section:e},{groups:t,hints:n},{entityType:i,purpose:s,recipeGroup:a})=>{let p=t.filter(({dryRuns:e})=>!e).map(({groupId:e})=>e);return 0===t.length?{}:{[e]:{type:new r(new o(new r(a))),description:`The recipe groups for ${s} this ${i}: ${t.map(({groupId:e})=>e).join(", ")}. A group is listed only while the configurator offers it on the entity.${p.length>0?` Recipes of these groups cannot be dry-run: ${p.join(", ")}.`:""}${E(n,j,i)}`}}},k=({entityType:e,childRecipes:t,replaceRecipes:n,optionsEdges:i},{recipeGroup:a,fieldOption:p})=>new s({name:`${e}Meta`,fields:Object.assign(R(f,t,{entityType:e,purpose:"adding children to",recipeGroup:a}),R(g,n,{entityType:e,purpose:"replacing",recipeGroup:a}),...i.map(({options:{edgeName:t,field:n,validate:i,dryRuns:s},hints:a})=>({[t]:{type:new o(new r(p)),description:`The values "${n}" of this ${e} can take, as the configurator offers them in the current state of the entity. Null when the configurator does not offer a choice on this entity. ${i?`modify${e} rejects a "${n}" value that is not in the list.`:`modify${e} does not check "${n}" against the list.`}${s?"":" Its options cannot be dry-run."}${E(a,O,e)}`}})))}),I=e=>Object.entries(e).map(([e,t])=>`${e} (${t.map(({groupId:e})=>e).join(", ")})`);export const buildAssistantManifest=b=>{var j,O,E,R,T;let A,N,D,M,{entityTypes:S,aliases:q,exampleType:W,fields:C,states:G,deletableTypes:K,writableTypes:U,actionFields:F,optionsEdges:x}=b,z=Object.fromEntries(Object.entries(b.childRecipes).map(([e,t])=>[e,t.groups])),Q=Object.fromEntries(Object.entries(b.replaceRecipes).map(([e,t])=>[e,t.groups])),B=new Map,H=new Map,J=new Map,L=e=>{let[t,...n]=Object.entries(q).find(([t])=>t===e)?.[1]??[];return(t&&0===n.length?H.get(t):void 0)??J.get(e)??V},P=e=>H.get(e)??L(e),V=new i({name:y,description:"Every domain entity.",fields:()=>v(C[y]??[],P,W)});for(let e of(J.set(y,V),Object.keys(q)))e!==y&&J.set(e,new i({name:e,interfaces:[V],fields:()=>v(C[e]??[],P)}));let X={};for(let e of S){let t=[y,...Object.entries(q).filter(([t,n])=>t!==y&&n.includes(e)).map(([e])=>e)],n=C[e]??[];X[e]=$(n),H.set(e,new s({name:e,interfaces:t.flatMap(e=>J.get(e)??[]),fields:()=>{let t=B.get(e);return{...v(n,P),...t?{meta:{type:new r(t),description:"What the configurator offers on this entity besides its fields."}}:{}}}}))}let Y=(j=()=>L(J.has(u)?u:y),O=()=>L(y),A=new s({name:"DryRunError",description:"One reason a change cannot be made right now.",fields:{type:{type:new r(p),description:'Kind of the problem, or "uncaught".'},entityId:{type:t,description:"The entity the problem is on, when it is on one."},message:{type:p,description:"The problem as the configurator words it for the user."}}}),new s({name:"DryRun",description:"What using a recipe or writing an option would do, tried out on the configuration the query reads. Nothing is changed.",fields:()=>({ok:{type:new r(e),description:"Whether the change would succeed on the configuration the query reads."},root:{type:j(),description:"The root entity of the configuration as it would be after the change; null when ok is false. Everything selected under it reads that configuration."},changedEntities:{type:new r(new o(new r(O()))),description:"Every entity the change would add or modify, read from that configuration; empty when ok is false. An entity whose id the configuration does not have yet would be added, and its id may differ in the real mutation. An entity that is written to is listed even when it gets the values it already has."},deletedEntityIds:{type:new r(new o(new r(t))),description:"The ids of the entities the change would remove; empty when ok is false."},sideEffects:{type:new r(new o(new r(p))),description:"What the configurator would do beyond the change itself, such as parts it would add or replace, in its own words; empty when ok is false."},errors:{type:new r(new o(new r(A))),description:"Why the change cannot be made; empty when ok is true."}})})),Z={recipeGroup:(E=[...Object.keys(z).length>0?[f.mutation]:[],...Object.keys(Q).length>0?[g.mutation]:[]],N=E.join(" or "),D=new s({name:"Recipe",description:"One recipe of a recipe group: something that can be added to the entity, or something the entity can be replaced with, depending on the edge the group is listed under.",fields:{key:{type:new r(p),description:`Identifies the recipe within its group; pass it to ${N} as recipeKey. Keys can change with the configuration and with the language, so read them from the listing rather than remembering them.`},name:{type:new r(p),description:"Name shown to the user."},description:{type:p},imageUrl:{type:p,description:"Thumbnail shown to the user."},dryRun:{type:Y,description:"Tries the recipe out. Each selected dry-run costs a full recalculation, so select it only on the recipes you are deciding between. Null for a group whose recipes cannot be dry-run."}}}),new s({name:"RecipeGroup",description:"A group of recipes of an entity, as the configurator offers them to the user.",fields:{groupId:{type:new r(p),description:`Identifies the group on its entity; pass it to ${N} as recipeGroupId.`},name:{type:new r(p),description:"Name shown to the user."},description:{type:p},recipes:{type:new r(new o(new r(D)))}}})),fieldOption:new s({name:"FieldOption",description:"One choice of a field, as the configurator offers it to the user.",fields:{value:{type:new r(c),description:"The value to write to the field."},name:{type:p,description:"Name shown to the user."},description:{type:p},imageUrl:{type:p,description:"Image shown to the user."},color:{type:p,description:'Color shown to the user, as "#rrggbb".'},dryRun:{type:Y,description:"Tries writing the value to the field. Each selected dry-run costs a full recalculation, so select it only on the options you are deciding between. Null for a field whose options cannot be dry-run."}}})};for(let e of S){let t=w(b.childRecipes,e)??{groups:[],hints:[]},n=w(b.replaceRecipes,e)??{groups:[],hints:[]},i=w(x,e)??[];(t.groups.length>0||n.groups.length>0||i.length>0)&&B.set(e,k({entityType:e,childRecipes:t,replaceRecipes:n,optionsEdges:i},Z))}let _=new a({query:(R=L(J.has(u)?u:y),T=L(y),M=(e=>{let t={};for(let[n,i,o]of[["navigationState","Active navigation state.",e.navigationStates],["viewState","Active view state.",e.viewStates],["toolState","Active tool state.",e.toolStates]])o.length>1&&(t[n]={type:new r(p),description:m(i,o)});if(0!==Object.keys(t).length)return new s({name:"Navigation",description:"The active UI states of the configurator.",fields:t})})(G),new s({name:"Query",fields:{root:{type:new r(R),description:"The root entity of the configuration."},entities:{type:new r(new o(T)),args:{ids:{type:new o(new r(t))}},description:`Every entity of the configuration, or, when ids are given, those entities in the same order with null for an unknown id. Ids have the form "<Type>-<number>"${W?`, e.g. "${W}-1"`:""}; any other id is an error.`},selectedEntity:{type:new r(T),description:"The selected entity, or the root entity when nothing is selected."},...M?{navigation:{type:new r(M)}}:{}}})),mutation:(({deletableTypes:e,writableTypes:i,childRecipes:a,replaceRecipes:d,actionFields:h,objectTypes:c,anyDomainEntity:y,targetOutputType:u})=>{let f,g;if(0!==e.length||0!==i.length||0!==Object.keys(a).length||0!==Object.keys(d).length||0!==h.length)return new s({name:"Mutation",fields:Object.assign(0===e.length?{}:{deleteEntity:{type:new r(new o(new r(t))),args:{id:{type:new r(t)}},description:`Deletes the entity with the given id, together with the entities composed into it, and returns the ids of every entity the deletion removed, the given one first. Deletable entity types: ${e.join(", ")}. Nothing can be read from removed entities afterwards, so query what you need from them before deleting.`}},0===(f=I(a)).length?{}:{addChild:{type:new r(new o(new r(y))),args:{parentId:{type:new r(t)},recipeGroupId:{type:new r(p)},recipeKey:{type:new r(p)}},description:`Adds a child to the entity with the id parentId by one recipe of one of its recipe groups. Entity types with recipe groups: ${f.join("; ")}. Read the groupId and the recipe key from "meta { childRecipes }" of the parent. Returns every entity the change added, the recipe's own first and then whatever the configurator added in response, such as a part the new child needs; the list is empty when the configurator removed them again.`}},0===(g=I(d)).length?{}:{replaceEntity:{type:new r(new o(new r(y))),args:{entityId:{type:new r(t)},recipeGroupId:{type:new r(p)},recipeKey:{type:new r(p)}},description:`Replaces the entity with the id entityId by one recipe of one of its replace recipe groups. Entity types with replace recipe groups: ${g.join("; ")}. Read the groupId and the recipe key from "meta { replaceRecipes }" of the entity. The replacement is a new entity with a new id: the id passed in no longer exists afterwards, and the replacement has the field values of its recipe, not those of the entity it replaces. Returns every entity the change added, the replacement first and then whatever the configurator added in response, such as a part the replacement needs; the list is empty when the configurator removed them again.`}},...i.flatMap(e=>{let i=c.get(e.entityType);return i?[(({entityType:e,fields:i},o)=>{let s=Object.fromEntries(i.map(({name:e,type:t,description:n})=>[e,{type:l(t),description:n}]));return{[`modify${e}`]:{type:o,args:{id:{type:new r(t)},delta:{type:new r(new n({name:`${e}Delta`,fields:s}))}},description:`Changes writable fields of the one ${e} with the given id: ${i.map(({name:e})=>e).join(", ")}. The delta sets only the fields it names and needs at least one; values are in stored units, as the field descriptions say. Returns the entity as it is after the change, including what the configurator adjusted in response, or null when the change caused the entity to be removed.`}}})(e,i)]:[]}),Object.fromEntries(h.map(e=>{var t;return[e.fieldName,{type:new r(new s({name:(t=e.fieldName,`${t.charAt(0).toUpperCase()+t.slice(1)}Result`),description:`What ${e.fieldName} returns, read from the configuration after the change.`,fields:()=>Object.fromEntries(Object.entries(e.result).map(([e,t])=>[e,{type:"edge"===t.kind?(({target:e,list:t,nullable:n},i)=>{let s=t?new o(new r(i(e))):i(e);return n?s:new r(s)})(t,u):l(t.type),description:t.description}]))})),args:Object.fromEntries(Object.entries(e.args).map(([e,t])=>[e,{type:l(t.type),description:t.description}])),description:e.description}]})))})})({deletableTypes:K,writableTypes:U,childRecipes:z,replaceRecipes:Q,actionFields:F,objectTypes:H,anyDomainEntity:L(y),targetOutputType:P}),types:[...J.values(),...H.values()]}),ee=h(_);if(ee.length>0)throw Error(ee.map(e=>e.message).join(" "));return{sdl:d(_),fields:X,deletableTypes:K,writableFields:Object.fromEntries(U.map(({entityType:e,fields:t})=>[e,Object.fromEntries(t.map(({name:e,property:t})=>[e,t]))])),childRecipes:z,replaceRecipes:Q,fieldOptions:Object.fromEntries(S.flatMap(e=>{let t=w(x,e);return t?[[e,t.map(({options:e})=>e)]]:[]})),actions:Object.fromEntries(F.map(({fieldName:e,actionName:t})=>[e,t]))}};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { AssistantResolvedManifest, AssistantResolvedField, AssistantValueType, AssistantRelationType, AssistantStates, AssistantWritableType, AssistantWritableField, AssistantResolvedHint, AssistantResolvedRecipes, AssistantResolvedOptionsEdge, AssistantResolvedAction, AssistantResolvedActionResult, } from './assistant-resolved-manifest.js';
|
|
2
|
+
export { buildAssistantManifest } from './build-assistant-manifest.js';
|
|
3
|
+
export type { AssistantFieldSource, AssistantRecipeGroup, AssistantFieldOptions, AssistantManifest, } from './assistant-manifest.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{buildAssistantManifest}from"./build-assistant-manifest.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DomainEntity, DomainEntityId } from '../core/model.js';
|
|
2
2
|
import type { DomainState } from '../core/state.js';
|
|
3
|
-
import type { AssistantFieldOptions, AssistantManifest } from './application-config.js';
|
|
4
3
|
import type { AssistantRecipeContext } from './assistant-recipe-groups.js';
|
|
4
|
+
import type { AssistantFieldOptions, AssistantManifest } from './assistant/index.js';
|
|
5
5
|
type AnyDomainState = DomainState<DomainEntity<string>>;
|
|
6
6
|
/**
|
|
7
7
|
* One choice of a writable field as the assistant reads it, whatever component holds it: the value
|
|
@@ -3,7 +3,7 @@ import { type StateUpdate } from '../components/updates.js';
|
|
|
3
3
|
import type { AnyActionContext } from '../core/action.js';
|
|
4
4
|
import { type DomainEntity } from '../core/model.js';
|
|
5
5
|
import type { DomainState } from '../core/state.js';
|
|
6
|
-
import type { AssistantManifest } from './
|
|
6
|
+
import type { AssistantManifest } from './assistant/index.js';
|
|
7
7
|
type AnyDomainState = DomainState<DomainEntity<string>>;
|
|
8
8
|
/**
|
|
9
9
|
* Update tag of user-intended entity deletions, from the configurator's delete controls and the
|
|
@@ -11,7 +11,7 @@ import type { RecipeListItem } from '../system-components/common/recipes.js';
|
|
|
11
11
|
import type { DistanceDimensionSelectComponent } from '../system-components/distance-dimension-select.js';
|
|
12
12
|
import type { MaterialSwatchComponent } from '../system-components/material-swatch.js';
|
|
13
13
|
import { type ReplaceEntityRecipesComponent } from '../system-components/replace-entity-recipes.js';
|
|
14
|
-
import type { AssistantManifest, AssistantRecipeGroup } from './
|
|
14
|
+
import type { AssistantManifest, AssistantRecipeGroup } from './assistant/index.js';
|
|
15
15
|
type AnyDomainState = DomainState<DomainEntity<string>>;
|
|
16
16
|
/** An update a recipe cooks to: the creation of an entity, or the replacement of the entity a replace recipe is for. */
|
|
17
17
|
type AnyRecipeUpdate = DomainEntityCreation<DomainEntity<string>, DomainEntity<string>> | DomainEntityReplacement<DomainEntity<string>>;
|
|
@@ -5,7 +5,8 @@ import type { FinalizeTaskResource } from '@salsita-ai/contracts/webhook';
|
|
|
5
5
|
import type { DomainComponentOptic } from '../components/domain-component-optic.js';
|
|
6
6
|
import type { $DomainEntity, DomainEntity, DomainFactory, EnumLike, ProductPreset, SchemaOfObject, SystemComponentTypeConstraint } from '../core/index.js';
|
|
7
7
|
import type { DomainContextSystems, Transformers } from '../domain-context/index.js';
|
|
8
|
-
import type { AclConfig, ApplicationConfig,
|
|
8
|
+
import type { AclConfig, ApplicationConfig, DataSpec, DefaultEnvs, ImportedTransformer, ResourcesConfig, SpecTransformer, UserInterfaceConfig } from './application-config.js';
|
|
9
|
+
import type { AssistantResolvedManifest } from './assistant/index.js';
|
|
9
10
|
import type { ElementRegistration } from './element-registration.js';
|
|
10
11
|
import type { HandlerRegistration } from './handler-registration.js';
|
|
11
12
|
interface ConfiguratorBuilderContext<ENTITIES extends DomainEntity<string> = never, ALLOWED_ROOT_ENTITIES extends ENTITIES = never, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>> = never, NAVIGATION_STATES extends string = never, VIEW_STATES extends string = never, TOOL_STATES extends string = never, EXPORT_STATES extends string = never, PUBLISHED_DATA extends Record<string, unknown> = never, SESSION_DATA extends Record<string, unknown> = never, FRONTEND_DATA extends Record<string, unknown> = never, ADMIN_ENTITIES extends DomainEntity<string> = never, ADMIN_ALLOWED_ROOT_ENTITIES extends ADMIN_ENTITIES = never, ADMIN_$MAP extends Record<ADMIN_ENTITIES['type'], $DomainEntity<ADMIN_ENTITIES>> = never, ADMIN_NAVIGATION_STATES extends string = never, ADMIN_VIEW_STATES extends string = never, FINALIZE_DATA extends Record<string, unknown> = never, PREFETCHED_FINALIZE_DATA extends Record<string, unknown> = never, FINALIZE_RESULT extends Record<string, unknown> = never, CALLBACK_DATA extends Record<string, unknown> = never, RESOURCE extends string = never> {
|
|
@@ -41,7 +42,7 @@ interface ConfiguratorBuilderContext<ENTITIES extends DomainEntity<string> = nev
|
|
|
41
42
|
readonly scope: string;
|
|
42
43
|
}>>;
|
|
43
44
|
publishedDataHash?: string;
|
|
44
|
-
assistant?:
|
|
45
|
+
assistant?: AssistantResolvedManifest | null;
|
|
45
46
|
theme?: ThemeOptions;
|
|
46
47
|
tagName?: string;
|
|
47
48
|
handlers?: ReadonlyArray<HandlerRegistration<any, any>>;
|
|
@@ -61,7 +62,7 @@ export declare class ConfiguratorBuilder<ENTITIES extends DomainEntity<string> =
|
|
|
61
62
|
readonly scope: string;
|
|
62
63
|
}>>): ConfiguratorBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
|
|
63
64
|
withPublishedDataHash(publishedDataHash: string): ConfiguratorBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
|
|
64
|
-
withAssistant(assistant:
|
|
65
|
+
withAssistant(assistant: AssistantResolvedManifest | null): ConfiguratorBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
|
|
65
66
|
withTheme(theme: ThemeOptions): ConfiguratorBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
|
|
66
67
|
withDomainFactory<NEW_ENTITIES extends DomainEntity<string>, NEW_ALLOWED_ROOT_ENTITIES extends NEW_ENTITIES, NEW_MAP extends Record<NEW_ENTITIES['type'], $DomainEntity<NEW_ENTITIES>>, NEW_PUBLISHED_DATA extends Record<string, unknown>, NEW_SESSION_DATA extends Record<string, unknown>, NEW_FRONTEND_DATA extends Record<string, unknown>>(domainFactory: DomainFactory<NEW_ENTITIES, NEW_ALLOWED_ROOT_ENTITIES, NEW_MAP, NEW_PUBLISHED_DATA, NEW_SESSION_DATA, NEW_FRONTEND_DATA>): ConfiguratorBuilder<NEW_ENTITIES, NEW_ALLOWED_ROOT_ENTITIES, NEW_MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, NEW_PUBLISHED_DATA, NEW_SESSION_DATA, FRONTEND_DATA, ADMIN_ENTITIES, ADMIN_ALLOWED_ROOT_ENTITIES, ADMIN_$MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
|
|
67
68
|
withAdminDomainFactory<NEW_ADMIN_ENTITIES extends DomainEntity<string>, NEW_ADMIN_ALLOWED_ROOT_ENTITIES extends NEW_ADMIN_ENTITIES, NEW_ADMIN_MAP extends Record<NEW_ADMIN_ENTITIES['type'], $DomainEntity<NEW_ADMIN_ENTITIES>>>(adminDomainFactory: DomainFactory<NEW_ADMIN_ENTITIES, NEW_ADMIN_ALLOWED_ROOT_ENTITIES, NEW_ADMIN_MAP, any, any, any>): ConfiguratorBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, NEW_ADMIN_ENTITIES, NEW_ADMIN_ALLOWED_ROOT_ENTITIES, NEW_ADMIN_MAP, ADMIN_NAVIGATION_STATES, ADMIN_VIEW_STATES, FINALIZE_DATA, PREFETCHED_FINALIZE_DATA, FINALIZE_RESULT, CALLBACK_DATA, RESOURCE>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type DomainConfig, type NavigationConfig, type ISessionService, type Session, type ResourcesConfig, type ApplicationConfig, type UserInterfaceConfig, type MountConfig, type WebComponentOptions, type SessionState, type AuthenticationErrorCode, type DataCellValue, type DataSchema, type DataSchemaArrayField, type DataSchemaField, type DataSchemaFieldObject, type DataSpec, type DataSpecEntry, type SwatchSpecEntry, type ChunksSpec, type
|
|
1
|
+
export { type DomainConfig, type NavigationConfig, type ISessionService, type Session, type ResourcesConfig, type ApplicationConfig, type UserInterfaceConfig, type MountConfig, type WebComponentOptions, type SessionState, type AuthenticationErrorCode, type DataCellValue, type DataSchema, type DataSchemaArrayField, type DataSchemaField, type DataSchemaFieldObject, type DataSpec, type DataSpecEntry, type SwatchSpecEntry, type ChunksSpec, type ImportedTransformer, type SpecTransformer, type AdminPagesSpec, type AnyApplicationConfig, type DefaultEnvs, } from './application-config.js';
|
|
2
2
|
export { type AssistantFieldOption, findAssistantFieldOptions, readAssistantFieldOptions, } from './assistant-field-options.js';
|
|
3
3
|
export { deleteEntityUpdateTag, findAssistantMutation, modifyEntityUpdateTag } from './assistant-mutations.js';
|
|
4
4
|
export { type AssistantRecipe, type AssistantRecipeContext, type AssistantRecipeGroupSnapshot, type AssistantRecipeKind, assistantAddedEntityIds, findAssistantRecipeGroups, prepareAssistantRecipeUpdates, readAssistantRecipeGroup, } from './assistant-recipe-groups.js';
|
|
@@ -28,3 +28,4 @@ export { createMapPublishedRevisionDataHandler, createMapPublishedRevisionDataHa
|
|
|
28
28
|
export { createMapPublishedChunkedDataHandler, createMapPublishedChunkedDataHandlerFactory, isMapPublishedChunkedDataHandler, type CreateMapPublishedChunkedDataHandler, type MapPublishedChunkedDataHandlerProps, type MapPublishedChunkedDataResult, type TypedCreateMapPublishedChunkedDataHandler, } from './published-data/MapPublishedChunkedDataHandler.js';
|
|
29
29
|
export { type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, } from './handler-registration.js';
|
|
30
30
|
export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, } from './element-registration.js';
|
|
31
|
+
export * from './assistant/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{findAssistantFieldOptions,readAssistantFieldOptions}from"./assistant-field-options.js";export{deleteEntityUpdateTag,findAssistantMutation,modifyEntityUpdateTag}from"./assistant-mutations.js";export{assistantAddedEntityIds,findAssistantRecipeGroups,prepareAssistantRecipeUpdates,readAssistantRecipeGroup}from"./assistant-recipe-groups.js";export{ConfiguratorBuilder}from"./configurator-builder.js";export*from"./admin-page-factories.js";export{createInitialPublishedData}from"./create-initial-published-data.js";export{resolveImportedTransformers}from"./resolve-imported-transformers.js";export{webComponentAttributeParsers,createWebComponentPropertyDescriptor}from"./web-component-property.js";export{createWebComponentEventDescriptor}from"./web-component-event.js";export{standardWebComponentProperties}from"./standard-properties.js";export{standardWebComponentEvents}from"./standard-events.js";export{ResourceBuilder}from"./resource-builder.js";export{createGetApplicationWrapperHandler,isGetApplicationWrapperHandler}from"./GetApplicationWrapperHandler.js";export{createGetThemeHandler,GetThemeHandlerName,isGetThemeHandler}from"./GetThemeHandler.js";export{createGetWebComponentOptionsHandler,isGetWebComponentOptionsHandler}from"./GetWebComponentOptions.js";export{createFinalizeAdminDomain}from"./published-data/create-finalize-admin-domain.js";export{FilterPublishedChunksHandlerName,isFilterPublishedChunksHandler}from"./published-data/FilterPublishedChunksHandler.js";export{mapPublishedData}from"./published-data/map-published-data.js";export{flattenTabData,mapDefaultValuesToRecords,mapPublishedChunkedData,SYSTEM_CHUNK_KEY,SYSTEM_CHUNK_SCOPE,SWATCH_DEFINITION}from"./published-data/map-published-chunked-data.js";export{buildLegendRows}from"./published-data/build-legend-data.js";export{formatFieldType,getFieldDescription}from"./published-data/format-field-type.js";export{mapDataToSheet}from"./published-data/map-data-to-sheet.js";export{validateRows}from"./published-data/validate-sheet-data.js";export{createDataRowValidatorHandler,DataRowValidatorHandlerName,isDataRowValidatorHandler}from"./published-data/DataRowValidatorHandler.js";export{createSheetValidatorHandler,SheetValidatorHandlerName,isSheetValidatorHandler}from"./published-data/SheetValidatorHandler.js";export{createMapPublishedRevisionDataHandler,createMapPublishedRevisionDataHandlerFactory,isMapPublishedRevisionDataHandler}from"./published-data/MapPublishedRevisionDataHandler.js";export{createMapPublishedChunkedDataHandler,createMapPublishedChunkedDataHandlerFactory,isMapPublishedChunkedDataHandler}from"./published-data/MapPublishedChunkedDataHandler.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler}from"./handler-registration.js";export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement}from"./element-registration.js";
|
|
1
|
+
export{findAssistantFieldOptions,readAssistantFieldOptions}from"./assistant-field-options.js";export{deleteEntityUpdateTag,findAssistantMutation,modifyEntityUpdateTag}from"./assistant-mutations.js";export{assistantAddedEntityIds,findAssistantRecipeGroups,prepareAssistantRecipeUpdates,readAssistantRecipeGroup}from"./assistant-recipe-groups.js";export{ConfiguratorBuilder}from"./configurator-builder.js";export*from"./admin-page-factories.js";export{createInitialPublishedData}from"./create-initial-published-data.js";export{resolveImportedTransformers}from"./resolve-imported-transformers.js";export{webComponentAttributeParsers,createWebComponentPropertyDescriptor}from"./web-component-property.js";export{createWebComponentEventDescriptor}from"./web-component-event.js";export{standardWebComponentProperties}from"./standard-properties.js";export{standardWebComponentEvents}from"./standard-events.js";export{ResourceBuilder}from"./resource-builder.js";export{createGetApplicationWrapperHandler,isGetApplicationWrapperHandler}from"./GetApplicationWrapperHandler.js";export{createGetThemeHandler,GetThemeHandlerName,isGetThemeHandler}from"./GetThemeHandler.js";export{createGetWebComponentOptionsHandler,isGetWebComponentOptionsHandler}from"./GetWebComponentOptions.js";export{createFinalizeAdminDomain}from"./published-data/create-finalize-admin-domain.js";export{FilterPublishedChunksHandlerName,isFilterPublishedChunksHandler}from"./published-data/FilterPublishedChunksHandler.js";export{mapPublishedData}from"./published-data/map-published-data.js";export{flattenTabData,mapDefaultValuesToRecords,mapPublishedChunkedData,SYSTEM_CHUNK_KEY,SYSTEM_CHUNK_SCOPE,SWATCH_DEFINITION}from"./published-data/map-published-chunked-data.js";export{buildLegendRows}from"./published-data/build-legend-data.js";export{formatFieldType,getFieldDescription}from"./published-data/format-field-type.js";export{mapDataToSheet}from"./published-data/map-data-to-sheet.js";export{validateRows}from"./published-data/validate-sheet-data.js";export{createDataRowValidatorHandler,DataRowValidatorHandlerName,isDataRowValidatorHandler}from"./published-data/DataRowValidatorHandler.js";export{createSheetValidatorHandler,SheetValidatorHandlerName,isSheetValidatorHandler}from"./published-data/SheetValidatorHandler.js";export{createMapPublishedRevisionDataHandler,createMapPublishedRevisionDataHandlerFactory,isMapPublishedRevisionDataHandler}from"./published-data/MapPublishedRevisionDataHandler.js";export{createMapPublishedChunkedDataHandler,createMapPublishedChunkedDataHandlerFactory,isMapPublishedChunkedDataHandler}from"./published-data/MapPublishedChunkedDataHandler.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler}from"./handler-registration.js";export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement}from"./element-registration.js";export*from"./assistant/index.js";
|
|
@@ -61,7 +61,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
|
|
|
61
61
|
selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
|
|
62
62
|
selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, number>;
|
|
63
63
|
selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
|
|
64
|
-
selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
|
|
64
|
+
selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
|
|
65
65
|
selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
|
|
66
66
|
selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
|
|
67
67
|
selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
|
|
@@ -104,7 +104,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
|
|
|
104
104
|
getAdminPreset: () => import("../index.js").AnyProductPreset;
|
|
105
105
|
getAdminModelVersion: () => number;
|
|
106
106
|
getThemeOptions: () => import("@mui/material").ThemeOptions;
|
|
107
|
-
getAssistant: () => import("../index.js").AssistantManifest | null;
|
|
107
|
+
getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
|
|
108
108
|
getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
|
|
109
109
|
getAdminFactory: () => import("../index.js").AnyDomainFactory;
|
|
110
110
|
getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
|
|
@@ -651,7 +651,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
|
|
|
651
651
|
selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
|
|
652
652
|
selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, number>;
|
|
653
653
|
selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
|
|
654
|
-
selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
|
|
654
|
+
selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
|
|
655
655
|
selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
|
|
656
656
|
selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
|
|
657
657
|
selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
|
|
@@ -694,7 +694,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
|
|
|
694
694
|
getAdminPreset: () => import("../index.js").AnyProductPreset;
|
|
695
695
|
getAdminModelVersion: () => number;
|
|
696
696
|
getThemeOptions: () => import("@mui/material").ThemeOptions;
|
|
697
|
-
getAssistant: () => import("../index.js").AssistantManifest | null;
|
|
697
|
+
getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
|
|
698
698
|
getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
|
|
699
699
|
getAdminFactory: () => import("../index.js").AnyDomainFactory;
|
|
700
700
|
getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
|
|
@@ -22,7 +22,7 @@ export declare const createSpecSelectors: (context: Context) => {
|
|
|
22
22
|
selectAdminPreset: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AnyProductPreset>;
|
|
23
23
|
selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<SpecSelectorState, number>;
|
|
24
24
|
selectThemeOptions: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("@mui/material").ThemeOptions>;
|
|
25
|
-
selectAssistant: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AssistantManifest | null>;
|
|
25
|
+
selectAssistant: import("@salsita-ai/common/utils").Selector<SpecSelectorState, Required<import("../../index.js").AssistantManifest> | null>;
|
|
26
26
|
selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AnyDomainFactory>;
|
|
27
27
|
selectAdminFactory: import("@salsita-ai/common/utils").Selector<SpecSelectorState, import("../../index.js").AnyDomainFactory>;
|
|
28
28
|
selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<SpecSelectorState, readonly import("../../index.js").AnyDomainComponentOptic[]>;
|
|
@@ -65,7 +65,7 @@ export declare const createSpecSelectors: (context: Context) => {
|
|
|
65
65
|
getAdminPreset: () => import("../../index.js").AnyProductPreset;
|
|
66
66
|
getAdminModelVersion: () => number;
|
|
67
67
|
getThemeOptions: () => import("@mui/material").ThemeOptions;
|
|
68
|
-
getAssistant: () => import("../../index.js").AssistantManifest | null;
|
|
68
|
+
getAssistant: () => Required<import("../../index.js").AssistantManifest> | null;
|
|
69
69
|
getConfiguratorFactory: () => import("../../index.js").AnyDomainFactory;
|
|
70
70
|
getAdminFactory: () => import("../../index.js").AnyDomainFactory;
|
|
71
71
|
getConfiguratorComponentOptics: () => readonly import("../../index.js").AnyDomainComponentOptic[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSelector as e}from"@salsita-ai/common/utils";import{
|
|
1
|
+
import{createSelector as e}from"@salsita-ai/common/utils";import{buildAssistantManifest as t}from"../../application/assistant/index.js";import{systemElementRegistry as n}from"../../application/element-registration.js";export const createSpecSelectors=a=>{let{getState:s}=a,r=e.withTypes(),o=r([r.leaf(e=>e.spec)],e=>e),l=r([o],e=>e.version),i=r([o],e=>e.baseResourcesUrl),m=r([o],e=>e.configurator),g=r([o],e=>e.dataConfig),p=r([o],e=>e.chunks),d=r([o],e=>e.publishedDataHash),c=r([o],e=>e.initialPublishedData),u=r([o],e=>e.canCreate),y=r([o],e=>e.enableAdminRelease),h=r([o],e=>e.textLanguages),f=r([m],e=>e.modelVersion),C=r([o],e=>e.admin),A=r([C],e=>e.preset),E=r([C],e=>e.modelVersion),b=r([m],e=>e.theme),x=r([m],e=>e.assistant),H=r([x],e=>e?t(e):null),D=r([m],e=>e.factory),P=r([C],e=>e.factory),S=r([m],e=>e.componentOptics),w=r([C],e=>e.componentOptics),O=r([m],e=>e.appLoader),T=r([m],e=>e.preview),V=r([m],e=>e.alwaysExpand),L=r([m],e=>e.presets),R=r([m],e=>e.deploymentQueryDisabled),U=r([m],e=>e.prefetchTextureUrls),v=r([m],e=>e.handlerHashes),j=r([m],e=>e.handlers),k=r([j,v],(e,t)=>({...(e=>{let t={},n={},a={};for(let s of e)"phoenix"===s.type&&(t[s.name]=s.handler),"system"===s.type&&(n[s.name]=s.handler),"system-async"===s.type&&(a[s.name]=s.handler);return{handlers:t,systemHandlers:n,systemAsyncHandlers:a}})(e),hashes:t})),F=r([m],e=>e.elementHashes),M=r([m],e=>e.elements),Q=r([M,F],(e,t)=>({...(e=>{let t={},a={};for(let n of e)"layout"===n.type&&(t[n.name]=n.element),"entity"===n.type&&(a[n.name]=n.element);return{entityElements:{...n.entityElements,...a},layoutElements:{...n.layoutElements,...t}}})(e),hashes:t}));return{selectSpec:o,selectVersion:l,selectBaseResourcesUrl:i,selectConfiguratorSpec:m,selectConfiguratorModelVersion:f,selectAdminSpec:C,selectAdminPreset:A,selectAdminModelVersion:E,selectThemeOptions:b,selectAssistant:H,selectConfiguratorFactory:D,selectAdminFactory:P,selectConfiguratorComponentOptics:S,selectAdminComponentOptics:w,selectAppLoader:O,selectPreview:T,selectAlwaysExpand:V,selectPresetSeed:L,selectDeploymentQueryDisabled:R,selectPrefetchTextureUrls:U,selectTextLanguages:h,selectHandlerHashes:v,selectHandlers:j,selectHandlerSlots:k,selectElementHashes:F,selectElements:M,selectElementSlots:Q,selectDataConfig:g,selectChunks:p,selectPublishedDataHash:d,selectInitialPublishedData:c,selectCanCreate:u,selectEnableAdminRelease:y,getVersion:()=>l(s()),getBaseResourcesUrl:()=>i(s()),getConfiguratorSpec:()=>m(s()),getConfiguratorModelVersion:()=>f(s()),getAdminSpec:()=>C(s()),getAdminPreset:()=>A(s()),getAdminModelVersion:()=>E(s()),getThemeOptions:()=>b(s()),getAssistant:()=>H(s()),getConfiguratorFactory:()=>D(s()),getAdminFactory:()=>P(s()),getConfiguratorComponentOptics:()=>S(s()),getAdminComponentOptics:()=>w(s()),getAppLoader:()=>O(s()),getPreview:()=>T(s()),getAlwaysExpand:()=>V(s()),getPresetSeed:()=>L(s()),getDeploymentQueryDisabled:()=>R(s()),getPrefetchTextureUrls:()=>U(s()),getTextLanguages:()=>h(s()),getHandlerHashes:()=>v(s()),getHandlers:()=>j(s()),getHandlerSlots:()=>k(s()),getElementHashes:()=>F(s()),getElements:()=>M(s()),getElementSlots:()=>Q(s()),getDataConfig:()=>g(s()),getChunks:()=>p(s()),getPublishedDataHash:()=>d(s()),getInitialPublishedData:()=>c(s()),getCanCreate:()=>u(s()),getEnableAdminRelease:()=>y(s())}};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ThemeOptions } from '@mui/material';
|
|
2
2
|
import type { SessionRole } from '@salsita-ai/contracts/api';
|
|
3
|
-
import type {
|
|
3
|
+
import type { AssistantResolvedManifest, ChunksSpec, DataSpec, ElementRegistration, HandlerRegistration } from '../../application/index.js';
|
|
4
4
|
import type { AnyDomainComponentOptic } from '../../components/index.js';
|
|
5
5
|
import type { ActionDefinitions, Any$EntityReflections, AnyActionImplementations, AnyAliasMap, AnyAllowedRootEntityTypes, AnyDomainFactory, AnyEntityReflections, AnyExpressions, AnyProductPreset, DomainEntity, MigrateFunction } from '../../core/index.js';
|
|
6
6
|
import type { AnyCreateTransformersFactory } from '../../domain-context/store-system/store-system.js';
|
|
@@ -46,10 +46,10 @@ export interface ApplicationConfiguratorSpec {
|
|
|
46
46
|
readonly alwaysExpand: boolean;
|
|
47
47
|
readonly theme: ThemeOptions;
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* Resolved assistant manifest used to rebuild GraphQL SDL, or `null` when the application
|
|
50
50
|
* spec declares no `assistant` section. Replaced by editor hot reload when the section changes.
|
|
51
51
|
*/
|
|
52
|
-
readonly assistant:
|
|
52
|
+
readonly assistant: AssistantResolvedManifest | null;
|
|
53
53
|
/**
|
|
54
54
|
* When true, resource urls are not suffixed with the `?did=<deploymentId>` cache-busting
|
|
55
55
|
* query — useful for demos serving local blob urls.
|
|
@@ -57,7 +57,7 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
|
|
|
57
57
|
selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
|
|
58
58
|
selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, number>;
|
|
59
59
|
selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
|
|
60
|
-
selectAssistant: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
|
|
60
|
+
selectAssistant: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
|
|
61
61
|
selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
|
|
62
62
|
selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
|
|
63
63
|
selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("../index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
|
|
@@ -100,7 +100,7 @@ export declare const createMockDomainRuntime: <ENTITIES extends DomainEntity<str
|
|
|
100
100
|
getAdminPreset: () => import("../index.js").AnyProductPreset;
|
|
101
101
|
getAdminModelVersion: () => number;
|
|
102
102
|
getThemeOptions: () => import("@mui/material").ThemeOptions;
|
|
103
|
-
getAssistant: () => import("../index.js").AssistantManifest | null;
|
|
103
|
+
getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
|
|
104
104
|
getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
|
|
105
105
|
getAdminFactory: () => import("../index.js").AnyDomainFactory;
|
|
106
106
|
getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
|