@endge/core 7.1.0 → 8.0.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.
Files changed (61) hide show
  1. package/dist/core.js +25945 -24550
  2. package/dist/features/core/kernel/config/modules.config.d.ts +4 -4
  3. package/dist/features/core/kernel/endge.d.ts +3 -3
  4. package/dist/features/core/kernel/types/bootstrap.types.d.ts +7 -0
  5. package/dist/features/core/modules/EndgeVocabs_Module.d.ts +15 -4
  6. package/dist/features/core/modules/actions/EndgeActions_Module.d.ts +2 -0
  7. package/dist/features/core/modules/actions/services/ActionProgramExecutor.d.ts +9 -2
  8. package/dist/features/core/modules/auth/services/AuthSessionManager.d.ts +7 -1
  9. package/dist/features/core/modules/bridge/EndgeBridge_Module.d.ts +55 -0
  10. package/dist/features/core/modules/bridge/adapters/BrowserBridge_Adapter.d.ts +15 -0
  11. package/dist/features/core/modules/bridge/config/bridge.config.d.ts +14 -0
  12. package/dist/features/core/modules/bridge/configurator/EndgeBridgeConfigurator_Module.d.ts +26 -0
  13. package/dist/features/core/modules/bridge/debug/EndgeBridgeDebug_Module.d.ts +69 -0
  14. package/dist/features/core/modules/bridge/domain/bridge.type.d.ts +82 -0
  15. package/dist/features/core/modules/bridge/services/BridgeConnection_Service.d.ts +31 -0
  16. package/dist/features/core/modules/compiler/EndgeCompiler_Module.d.ts +13 -0
  17. package/dist/features/core/modules/computations/model/ComputationResourceRegistry.d.ts +2 -0
  18. package/dist/features/core/modules/context/EndgeContext_Module.d.ts +2 -0
  19. package/dist/features/core/modules/document-import/EndgeDocumentImport_Module.d.ts +1 -1
  20. package/dist/features/core/modules/domain/EndgeDomain_Module.d.ts +13 -0
  21. package/dist/features/core/modules/domain/documents/domain-document-descriptors.d.ts +3 -1
  22. package/dist/features/core/modules/domain/documents/service-document-serializer.d.ts +0 -1
  23. package/dist/features/core/modules/domain/entities/RComposition.d.ts +1 -1
  24. package/dist/features/core/modules/domain/entities/RProject.d.ts +3 -2
  25. package/dist/features/core/modules/domain/entities/RSimulation.d.ts +8 -0
  26. package/dist/features/core/modules/domain/types/document/document.types.d.ts +4 -2
  27. package/dist/features/core/modules/domain/types/document/domain-export.type.d.ts +2 -0
  28. package/dist/features/core/modules/domain/types/document/domain-provider.type.d.ts +1 -1
  29. package/dist/features/core/modules/domain-repository/EndgeDomainRepository_Module.d.ts +7 -0
  30. package/dist/features/core/modules/i18n/services/composition-i18n-catalog-projection.d.ts +2 -0
  31. package/dist/features/core/modules/program/EndgeProgram_Module.d.ts +7 -1
  32. package/dist/features/core/modules/program/domain/types/program.types.d.ts +1 -1
  33. package/dist/features/core/modules/runtime/EndgeRuntimeScopes_Module.d.ts +1 -0
  34. package/dist/features/core/modules/runtime/EndgeRuntime_Module.d.ts +8 -2
  35. package/dist/features/core/modules/runtime/RuntimeAppScope.d.ts +3 -0
  36. package/dist/features/core/modules/runtime/RuntimeHostFactory.d.ts +2 -1
  37. package/dist/features/core/modules/runtime/RuntimeScope.d.ts +2 -0
  38. package/dist/features/core/modules/runtime/domain/runtime-project-session.types.d.ts +1 -6
  39. package/dist/features/core/modules/runtime/domain/runtime-scope.types.d.ts +1 -1
  40. package/dist/features/core/modules/runtime/execution/endge-project.d.ts +2 -2
  41. package/dist/features/core/modules/runtime/hosts/ComponentSFCRuntimeHost.d.ts +2 -0
  42. package/dist/features/core/modules/runtime/hosts/CompositionRuntimeHost.d.ts +19 -4
  43. package/dist/features/core/modules/runtime/hosts/FilterViewRuntimeHost.d.ts +1 -0
  44. package/dist/features/core/modules/runtime/hosts/ProjectRuntimeHost.d.ts +9 -10
  45. package/dist/features/core/modules/runtime/hosts/StreamRuntimeHost.d.ts +8 -0
  46. package/dist/features/core/modules/runtime/operation/operation-history.d.ts +8 -1
  47. package/dist/features/core/modules/runtime/services/strategies/CompositionRuntimeStrategy.d.ts +1 -1
  48. package/dist/features/core/modules/runtime/services/strategies/ProjectRuntimeStrategy.d.ts +2 -1
  49. package/dist/features/core/modules/source/EndgeSource_Module.d.ts +2 -0
  50. package/dist/features/core/modules/source/domain/types/composition-source.types.d.ts +1 -1
  51. package/dist/features/core/modules/source/domain/types/simulation-source.types.d.ts +53 -0
  52. package/dist/features/core/modules/source/domain/types/source-engine.types.d.ts +2 -2
  53. package/dist/features/core/modules/source/services/SimulationSourceResolver.d.ts +33 -0
  54. package/dist/features/core/modules/source/services/compilers/simulation-source-compile.d.ts +3 -0
  55. package/dist/features/core/modules/source/services/strategies/SimulationSourceEngineStrategy.d.ts +10 -0
  56. package/dist/features/core/modules/source/services/strategies/SimulationSourceLanguageStrategy.d.ts +14 -0
  57. package/dist/features/core/modules/source/templates/project.default.source.d.ts +2 -0
  58. package/dist/features/core/modules/source/templates/simulation.default.source.d.ts +2 -0
  59. package/dist/main.d.ts +5 -0
  60. package/package.json +5 -4
  61. package/dist/features/core/modules/EndgeRuntimeDebugger_Module.d.ts +0 -86
@@ -27,6 +27,7 @@ import { RParameter } from '../entities/RParameter';
27
27
  import { RPolicy } from '../entities/RPolicy';
28
28
  import { RProject } from '../entities/RProject';
29
29
  import { RQuery } from '../entities/RQuery';
30
+ import { RSimulation } from '../entities/RSimulation';
30
31
  import { RStore } from '../entities/RStore';
31
32
  import { RStream } from '../entities/RStream';
32
33
  import { RStyle } from '../entities/RStyle';
@@ -35,7 +36,7 @@ import { RType } from '../entities/RType';
35
36
  import { RUpdate } from '../entities/RUpdate';
36
37
  import { RVocabs } from '../entities/RVocabs';
37
38
  import { RWorkspace } from '../entities/RWorkspace';
38
- export type DomainCollectionKey = 'projects' | 'types' | 'queries' | 'dataViews' | 'compositions' | 'stores' | 'streams' | 'updates' | 'mocks' | 'componentSFCs' | 'actions' | 'filters' | 'converters' | 'computations' | 'environments' | 'tenants' | 'styles' | 'configurations' | 'vocabs' | 'authProfiles' | 'i18nBundles' | 'navigations';
39
+ export type DomainCollectionKey = 'projects' | 'types' | 'queries' | 'dataViews' | 'compositions' | 'stores' | 'streams' | 'simulations' | 'updates' | 'mocks' | 'componentSFCs' | 'actions' | 'filters' | 'converters' | 'computations' | 'environments' | 'tenants' | 'styles' | 'configurations' | 'vocabs' | 'authProfiles' | 'i18nBundles' | 'navigations';
39
40
  /** Точное соответствие document type конкретной Domain-модели. */
40
41
  export interface DomainDocumentModelMap {
41
42
  'primitive': RType;
@@ -47,6 +48,7 @@ export interface DomainDocumentModelMap {
47
48
  'composition': RComposition;
48
49
  'store': RStore;
49
50
  'stream': RStream;
51
+ 'simulation': RSimulation;
50
52
  'update': RUpdate;
51
53
  'mock': RMock;
52
54
  'integration': RIntegration;
@@ -2,7 +2,6 @@ import { DomainDocumentType } from '../types/document/document.types';
2
2
  /** Явные Domain lookup-зависимости чистой сериализации persisted-документа. */
3
3
  export interface DocumentSerializationContext {
4
4
  resolveFolderIdentity: (value: string | number) => string | null;
5
- resolveNavigationIdentity: (value: string | number) => string | null;
6
5
  resolveEnvironmentIdentity: (value: string | number) => string | null;
7
6
  }
8
7
  /** Преобразует persisted-модель Core в строгий write DTO service-backend. */
@@ -1,5 +1,5 @@
1
1
  import { DuplicateOptions, REntity } from './REntity';
2
- export declare const R_COMPOSITION_KINDS: readonly ["library", "query", "workspace", "tenant", "project", "environment"];
2
+ export declare const R_COMPOSITION_KINDS: readonly ["library", "query", "workspace", "tenant", "environment"];
3
3
  export type RCompositionKind = typeof R_COMPOSITION_KINDS[number];
4
4
  export declare function normalizeRCompositionKind(value: unknown): RCompositionKind;
5
5
  export declare function normalizeRCompositionKindIdentity(value: unknown): string | null;
@@ -14,6 +14,9 @@ import { REntity } from './REntity';
14
14
  * - createdAt, updatedAt, deletedAt, author, active
15
15
  */
16
16
  export declare class RProject extends REntity {
17
+ /** Source единственного корневого графа принадлежит документу проекта. */
18
+ source: string;
19
+ sourceVersion: number;
17
20
  /** Project-level contribution к effective configuration. */
18
21
  configuration: EndgeConfigurationContribution;
19
22
  /** Описание проекта */
@@ -22,8 +25,6 @@ export declare class RProject extends REntity {
22
25
  slug?: string | null;
23
26
  /** Порядок сортировки в списке */
24
27
  order?: number | null;
25
- /** Id навигации (relationship - navigations) */
26
- navigationId?: number | null;
27
28
  /** Список разрешённых окружений проекта (relationship[] - environments). */
28
29
  allowedEnvironmentIds: number[];
29
30
  /**
@@ -0,0 +1,8 @@
1
+ import { DuplicateOptions, REntity } from './REntity';
2
+ /** Сохранённое source-first определение симуляции без runtime execution. */
3
+ export declare class RSimulation extends REntity {
4
+ readonly type: "simulation";
5
+ source: string;
6
+ sourceVersion: number;
7
+ duplicate(options: DuplicateOptions): RSimulation;
8
+ }
@@ -18,6 +18,7 @@ import { RParameter } from '../../entities/RParameter';
18
18
  import { RPolicy } from '../../entities/RPolicy';
19
19
  import { RProject } from '../../entities/RProject';
20
20
  import { RQuery } from '../../entities/RQuery';
21
+ import { RSimulation } from '../../entities/RSimulation';
21
22
  import { RStore } from '../../entities/RStore';
22
23
  import { RStream } from '../../entities/RStream';
23
24
  import { RStyle } from '../../entities/RStyle';
@@ -64,6 +65,7 @@ export declare enum DomainSectionType {
64
65
  Query = "query",
65
66
  DataView = "data-view",
66
67
  Composition = "composition",
68
+ Simulation = "simulation",
67
69
  Store = "store",
68
70
  Mock = "mock",
69
71
  Action = "action",
@@ -88,7 +90,7 @@ export declare enum DomainSectionType {
88
90
  Project = "project"
89
91
  }
90
92
  /** Канонический исчерпывающий список типов документов Domain. */
91
- export declare const DOMAIN_DOCUMENT_TYPES: readonly ["primitive", "type", "action", "converter", "computation", "data-view", "composition", "store", "stream", "update", "mock", "integration", "page-template", "page", "navigation", "environment", "policy", "style", "configuration", "vocabs", "i18n-bundles", "auth-profile", "tenant", "project", "workspace", ComponentType.DSL, ComponentType.Table, ComponentType.SFC, QueryType.Custom, QueryType.GraphQL, QueryType.REST, ParameterType, FilterType];
93
+ export declare const DOMAIN_DOCUMENT_TYPES: readonly ["primitive", "type", "action", "converter", "computation", "data-view", "composition", "store", "stream", "simulation", "update", "mock", "integration", "page-template", "page", "navigation", "environment", "policy", "style", "configuration", "vocabs", "i18n-bundles", "auth-profile", "tenant", "project", "workspace", ComponentType.DSL, ComponentType.Table, ComponentType.SFC, QueryType.Custom, QueryType.GraphQL, QueryType.REST, ParameterType, FilterType];
92
94
  /** Все возможные типы документов. */
93
95
  export type DomainDocumentType = (typeof DOMAIN_DOCUMENT_TYPES)[number];
94
96
  /**
@@ -102,4 +104,4 @@ export interface Document {
102
104
  /**
103
105
  * Описывает любой документ рефлекцию
104
106
  */
105
- export type RDocument = RComponent | RComponentSFC | RQuery | RDataView | RComposition | RStore | RStream | RUpdate | RMock | RAction | RConverter | RComputation | RIntegration | RParameter | RFilter | RPolicy | RStyle | RConfiguration | RType | RVocabs | RI18nBundle | RAuthProfile | RWorkspace | RTenant | RProject | REnvironment | RPageTemplate | RPage | RNavigation;
107
+ export type RDocument = RComponent | RComponentSFC | RQuery | RDataView | RComposition | RStore | RStream | RSimulation | RUpdate | RMock | RAction | RConverter | RComputation | RIntegration | RParameter | RFilter | RPolicy | RStyle | RConfiguration | RType | RVocabs | RI18nBundle | RAuthProfile | RWorkspace | RTenant | RProject | REnvironment | RPageTemplate | RPage | RNavigation;
@@ -10,6 +10,7 @@ export interface EndgeDomainPlain {
10
10
  compositions: unknown[];
11
11
  stores: unknown[];
12
12
  streams: unknown[];
13
+ simulations: unknown[];
13
14
  updates: unknown[];
14
15
  mocks: unknown[];
15
16
  components: unknown[];
@@ -45,6 +46,7 @@ export interface EndgePortableDocuments {
45
46
  'compositions': unknown[];
46
47
  'stores': unknown[];
47
48
  'streams': unknown[];
49
+ 'simulations': unknown[];
48
50
  'updates': unknown[];
49
51
  'mocks': unknown[];
50
52
  'components': unknown[];
@@ -1,6 +1,6 @@
1
1
  import { EndgeLiveDomainDocument, EndgeLiveDomainSnapshot, EndgeWorkspaceServerState } from './domain-snapshot.type';
2
2
  /** Канонические коллекции persisted-домена нового backend. */
3
- export type EndgeDomainCollection = 'projects' | 'tenants' | 'environments' | 'folders' | 'types' | 'queries' | 'data-views' | 'compositions' | 'stores' | 'streams' | 'updates' | 'mocks' | 'components' | 'actions' | 'filters' | 'converters' | 'computations' | 'vocabs' | 'i18n-bundles' | 'auth-profiles' | 'navigations' | 'styles' | 'configurations';
3
+ export type EndgeDomainCollection = 'projects' | 'tenants' | 'environments' | 'folders' | 'types' | 'queries' | 'data-views' | 'compositions' | 'stores' | 'streams' | 'simulations' | 'updates' | 'mocks' | 'components' | 'actions' | 'filters' | 'converters' | 'computations' | 'vocabs' | 'i18n-bundles' | 'auth-profiles' | 'navigations' | 'styles' | 'configurations';
4
4
  /** Возможности выбранного источника домена. */
5
5
  export interface EndgeDomainProviderCapabilities {
6
6
  snapshot: true;
@@ -12,12 +12,17 @@ export declare class EndgeDomainRepositoryReadOnlyError extends Error {
12
12
  }
13
13
  /** Граница persistence для live service-backend и локальных источников только для чтения. */
14
14
  export declare class EndgeDomainRepository_Module extends EndgeModule<EndgeBootContext> {
15
+ private _generation;
16
+ private _snapshotSequence;
17
+ private _abortController;
15
18
  private _loadedSnapshot;
16
19
  private _domainProvider;
17
20
  private _domainETag;
18
21
  private _documentServerState;
19
22
  private _workspaceServerState;
20
23
  private _capabilities;
24
+ /** Версия контекста persistence для составных операций, включая импорт. */
25
+ get generation(): number;
21
26
  get capabilities(): EndgeDomainRepositoryCapabilities;
22
27
  get domainETag(): string | null;
23
28
  get isHealthy(): boolean;
@@ -43,6 +48,8 @@ export declare class EndgeDomainRepository_Module extends EndgeModule<EndgeBootC
43
48
  deleteFolder(folderIdentity: string): Promise<void>;
44
49
  restoreFolder(folderIdentity: string): Promise<void>;
45
50
  toJSON(): Record<string, unknown>;
51
+ /** Не позволяет позднему ответу предыдущего контекста изменить новый Domain. */
52
+ private _captureGeneration;
46
53
  private _indexSnapshotServerState;
47
54
  private _serverStateKey;
48
55
  private _requireDocumentServerState;
@@ -10,6 +10,8 @@ export interface CompositionI18nCatalogProjectionOccurrence {
10
10
  export interface CompositionI18nCatalogProjectionInput {
11
11
  artifacts: RuntimeArtifactReader;
12
12
  rootIdentities: readonly string[];
13
+ rootEntityType?: 'composition' | 'project';
14
+ targetEntityType?: 'composition' | 'project';
13
15
  targetIdentity: string;
14
16
  }
15
17
  /**
@@ -1,6 +1,7 @@
1
1
  import { ActionProgramPayload, ComponentSFCTagRegistryEntry, ComputationProgramPayload, DataViewProgramPayload, EndgeProgramSnapshot, EndgeStyleProgramPayload, ProgramArtifact, ProgramArtifactRef, ProgramArtifactStatus, ProgramDiagnostic, ProgramEntityType, QueryProgramPayload } from './domain/types/program.types';
2
2
  import { CompositionProgramPayload } from '../source/domain/types/composition-source.types';
3
3
  import { FilterProgramPayload } from '../source/domain/types/filter-source.types';
4
+ import { SimulationSourceArtifact } from '../source/domain/types/simulation-source.types';
4
5
  import { StoreSourceArtifact } from '../source/domain/types/store-source.types';
5
6
  import { StreamSourceArtifact } from '../source/domain/types/stream-source.types';
6
7
  import { TypeProgramCatalogEntry, TypeProgramPayload } from '../source/domain/types/type-source.types';
@@ -12,6 +13,8 @@ import { EndgeModule } from '../../../federation/EndgeModule';
12
13
  */
13
14
  export declare class EndgeProgram_Module extends EndgeModule {
14
15
  private _artifacts;
16
+ private readonly _freshnessChecks;
17
+ private readonly _validating;
15
18
  private _indexByIdentity;
16
19
  private _componentIdentityByTag;
17
20
  private _status;
@@ -37,7 +40,7 @@ export declare class EndgeProgram_Module extends EndgeModule {
37
40
  /**
38
41
  * Добавляет compiled artifact и индексирует его по id и identity.
39
42
  */
40
- addArtifact<TPayload>(artifact: ProgramArtifact<TPayload>): ProgramArtifact<TPayload>;
43
+ addArtifact<TPayload>(artifact: ProgramArtifact<TPayload>, isCurrent?: () => boolean): ProgramArtifact<TPayload>;
41
44
  /** Заменяет build-derived registry пользовательских SFC tags. */
42
45
  setComponentTags(entries: readonly ComponentSFCTagRegistryEntry[]): void;
43
46
  /** Разрешает пользовательский SFC tag в persisted identity компонента. */
@@ -69,6 +72,8 @@ export declare class EndgeProgram_Module extends EndgeModule {
69
72
  getStoreArtifact(idOrIdentity: string | number): ProgramArtifact<StoreSourceArtifact> | null;
70
73
  /** Возвращает compiled Stream artifact по id или identity. */
71
74
  getStreamArtifact(idOrIdentity: string | number): ProgramArtifact<StreamSourceArtifact> | null;
75
+ /** Возвращает compiled Simulation artifact по id или identity. */
76
+ getSimulationArtifact(idOrIdentity: string | number): ProgramArtifact<SimulationSourceArtifact> | null;
72
77
  /** Возвращает compiled Update artifact по id или identity. */
73
78
  getUpdateArtifact(idOrIdentity: string | number): ProgramArtifact<UpdateSourceArtifact> | null;
74
79
  /** Возвращает compiled Filter artifact по id или identity. */
@@ -107,5 +112,6 @@ export declare class EndgeProgram_Module extends EndgeModule {
107
112
  /**
108
113
  * Внутренний helper модуля: key For.
109
114
  */
115
+ private _markStale;
110
116
  private _keyFor;
111
117
  }
@@ -14,7 +14,7 @@ export type { ActionProgramPayload } from './action-program.types';
14
14
  export type { ConfigurationProgramPayload } from '../../../source/domain/types/configuration-source.types';
15
15
  export type ProgramArtifactKey = string;
16
16
  /** Тип доменной сущности, для которой compiler может построить program artifact. */
17
- export type ProgramEntityType = 'type' | 'component-sfc' | 'computation' | 'action' | 'query' | 'vocab' | 'data-view' | 'store' | 'stream' | 'update' | 'filter' | 'composition' | 'style' | 'configuration';
17
+ export type ProgramEntityType = 'type' | 'component-sfc' | 'computation' | 'action' | 'query' | 'vocab' | 'data-view' | 'store' | 'stream' | 'simulation' | 'update' | 'filter' | 'composition' | 'project' | 'style' | 'configuration';
18
18
  /** Итоговый статус artifact после компиляции и валидации. */
19
19
  export type ProgramArtifactStatus = 'valid' | 'warning' | 'error';
20
20
  /** Возможность, которую artifact предоставляет runtime/render слоям. */
@@ -28,5 +28,6 @@ export declare class EndgeRuntimeScopes_Module extends EndgeModule {
28
28
  * PRIVATE
29
29
  * ----------------------------------------
30
30
  */
31
+ private _removeScope;
31
32
  private _changed;
32
33
  }
@@ -31,7 +31,10 @@ export declare class EndgeRuntime_Module extends EndgeModule {
31
31
  private _unsubscribeWorkspace;
32
32
  private _unsubscribeContext;
33
33
  private _destroyedSnapshotLeases;
34
- private _destroyingRuntimeIds;
34
+ private _destroyingRuntimes;
35
+ private _destroyingTrees;
36
+ private _generation;
37
+ private _executions;
35
38
  /** Сохраняет только ограниченные лёгкие описатели для явного inspector. */
36
39
  acquireDestroyedHostSnapshots(limit: number): RuntimeInspectionLease;
37
40
  /** Создаёт default app scope и регистрирует runtime strategies. */
@@ -48,6 +51,8 @@ export declare class EndgeRuntime_Module extends EndgeModule {
48
51
  * Создаёт runtime-host для переданной доменной модели.
49
52
  */
50
53
  execute(model: RuntimeExecutableModel, options?: RuntimeExecuteOptions): AnyRuntimeHost | null;
54
+ /** Awaits teardown before reusing a root address; serializes competing replacements. */
55
+ executeAsync(model: RuntimeExecutableModel, options?: RuntimeExecuteOptions): Promise<AnyRuntimeHost | null>;
51
56
  /** Разрешает data mode по ближайшему Composition override с fallback на общий Endge context. */
52
57
  resolveDataMode(host: RuntimeHost<any, any> | null | undefined): EndgeDataMode;
53
58
  /**
@@ -113,7 +118,7 @@ export declare class EndgeRuntime_Module extends EndgeModule {
113
118
  * Корректно разрушает runtime-host и всех его дочерних host.
114
119
  */
115
120
  destroyRuntimeTree(runtimeId: string): void;
116
- /** Корректно разрушает runtime tree и ждёт завершения всего teardown. */
121
+ /** Concurrent callers await the same tree, including every child's async cleanup. */
117
122
  destroyRuntimeTreeAsync(runtimeId: string): Promise<void>;
118
123
  /**
119
124
  * Корректно разрушает все зарегистрированные runtime-host.
@@ -129,6 +134,7 @@ export declare class EndgeRuntime_Module extends EndgeModule {
129
134
  * Внутренний destroy для host с контролем уведомления подписчиков.
130
135
  */
131
136
  private _destroyRuntimeInternal;
137
+ private _disposeHost;
132
138
  private _syncDestroyedSnapshotLimit;
133
139
  private _createDestroyedSnapshot;
134
140
  /** Регистрирует host, подключает infrastructure и только затем активирует его. */
@@ -19,6 +19,7 @@ export interface RuntimeAppScopeAddress {
19
19
  runtimePath: string;
20
20
  }
21
21
  interface RuntimeAppScopeOwner {
22
+ executeAsync: (model: RuntimeExecutableModel, options?: RuntimeExecuteOptions) => Promise<AnyRuntimeHost | null>;
22
23
  execute: (model: RuntimeExecutableModel, options?: RuntimeExecuteOptions) => AnyRuntimeHost | null;
23
24
  getRuntimeHostsByEntity: (entityType: RuntimeEntityType, entityIdentity: string, appScopeId?: string) => AnyRuntimeHost[];
24
25
  destroyRuntimeTree: (runtimeId: string) => void;
@@ -41,6 +42,8 @@ export declare class RuntimeAppScope {
41
42
  constructor(owner: RuntimeAppScopeOwner, options: RuntimeAppScopeOptions);
42
43
  /** Запускает entity в этом AppScope; root определяется отсутствием parent. */
43
44
  execute(model: RuntimeExecutableModel, options?: RuntimeAppScopeExecuteOptions): AnyRuntimeHost | null;
45
+ /** Запускает entity, ожидая завершения teardown при collisionPolicy: replace. */
46
+ executeAsync(model: RuntimeExecutableModel, options?: RuntimeAppScopeExecuteOptions): Promise<AnyRuntimeHost | null>;
44
47
  /** Возвращает активный root runtime entity по domain identity. */
45
48
  resolve<T = AnyRuntimeHost>(entityType: RuntimeEntityType, identity: string): T | null;
46
49
  /** Удаляет runtime tree entity из этого scope. */
@@ -1,5 +1,5 @@
1
1
  import { RuntimeEntityModelMap, RuntimeEntityType } from './domain/runtime-entity-map.types';
2
- import { RuntimeHost } from './domain/runtime-host.types';
2
+ import { RuntimeArtifactReader, RuntimeHost } from './domain/runtime-host.types';
3
3
  export interface RuntimeHostFactoryInput<TType extends RuntimeEntityType> {
4
4
  id: string;
5
5
  entityType: TType;
@@ -7,6 +7,7 @@ export interface RuntimeHostFactoryInput<TType extends RuntimeEntityType> {
7
7
  entityIdentity: string;
8
8
  title?: string;
9
9
  meta?: Record<string, unknown>;
10
+ artifactReader?: RuntimeArtifactReader;
10
11
  }
11
12
  export type RuntimeHostFactoryAnyInput = RuntimeHostFactoryInput<RuntimeEntityType>;
12
13
  /**
@@ -23,6 +23,7 @@ export declare class RuntimeScope implements RuntimeScopeHandle {
23
23
  private readonly _members;
24
24
  private _transition;
25
25
  private _generation;
26
+ private _cancellationVersion;
26
27
  private _abortController;
27
28
  private _updateGateOpen;
28
29
  private _stale;
@@ -31,6 +32,7 @@ export declare class RuntimeScope implements RuntimeScopeHandle {
31
32
  private readonly _listeners;
32
33
  constructor(options: RuntimeScopeOptions);
33
34
  get generation(): number;
35
+ get signal(): AbortSignal | null;
34
36
  get updateGateOpen(): boolean;
35
37
  get stale(): boolean;
36
38
  subscribe(listener: () => void): () => void;
@@ -1,11 +1,6 @@
1
1
  import { RuntimeArtifactReader } from './runtime-host.types';
2
2
  import { RuntimeScopeHandle } from './runtime-scope.types';
3
3
  import { CompositionPublicOutputHandle, CompositionRuntimeHostHandle, CompositionSession } from '../../source/domain/types/composition-source.types';
4
- export interface ProjectCompositionRegistry<THost extends CompositionRuntimeHostHandle = CompositionRuntimeHostHandle> {
5
- get: (identity: string) => ProjectCompositionHandle<THost> | null;
6
- require: (identity: string) => ProjectCompositionHandle<THost>;
7
- getAll: () => ProjectCompositionHandle<THost>[];
8
- }
9
4
  export interface ProjectCompositionHandle<THost extends CompositionRuntimeHostHandle = CompositionRuntimeHostHandle> {
10
5
  readonly identity: string;
11
6
  readonly state: 'inactive' | 'active' | 'paused' | 'disposed';
@@ -26,7 +21,7 @@ export interface ProjectRuntimeMountOptions {
26
21
  }
27
22
  export interface ProjectRuntimeSession<THost extends CompositionRuntimeHostHandle = CompositionRuntimeHostHandle> {
28
23
  readonly id: string;
29
- readonly compositions: ProjectCompositionRegistry<THost>;
24
+ readonly composition: ProjectCompositionHandle<THost>;
30
25
  switchScope: (options: {
31
26
  from?: RuntimeScopeHandle | null;
32
27
  to: RuntimeScopeHandle;
@@ -33,7 +33,7 @@ export interface RuntimeScopeHandle {
33
33
  export interface RuntimeScopeLifecycleHooks {
34
34
  activate?: (signal: AbortSignal, generation: number) => Promise<void> | void;
35
35
  pause?: () => Promise<void> | void;
36
- resume?: () => Promise<void> | void;
36
+ resume?: (signal: AbortSignal, generation: number) => Promise<void> | void;
37
37
  reconcile?: () => Promise<void> | void;
38
38
  deactivate?: () => Promise<void> | void;
39
39
  dispose?: () => Promise<void> | void;
@@ -1,6 +1,6 @@
1
1
  import { ProjectRuntimeMountOptions, ProjectRuntimeSession } from '../domain/runtime-project-session.types';
2
- import { CompositionRuntimeHost } from '../hosts/CompositionRuntimeHost';
2
+ import { ProjectRuntimeHost } from '../hosts/ProjectRuntimeHost';
3
3
  /** Монтирует один project в изолированную runtime-сессию. */
4
4
  export declare class EndgeProject {
5
- mount(identity: string, options?: ProjectRuntimeMountOptions): Promise<ProjectRuntimeSession<CompositionRuntimeHost>>;
5
+ mount(identity: string, options?: ProjectRuntimeMountOptions): Promise<ProjectRuntimeSession<ProjectRuntimeHost>>;
6
6
  }
@@ -96,6 +96,8 @@ export declare class ComponentSFCRuntimeHost extends RuntimeHostBase<'component-
96
96
  cancelEditSession(key?: string): void;
97
97
  /** Возвращает один ресурс вычислений, принадлежащий host и изолированный scope потребителя renderer. */
98
98
  getComputationResource(identity: string, input: unknown, consumerKey: string, portName?: string): ComputationResource;
99
+ /** Завершает ресурсы исчезнувших renderer consumers; host сохраняет остальных. */
100
+ releaseComputationResources(consumerScope: string, keep?: (key: string) => boolean): void;
99
101
  /** Обновляет input source и пересобирает Raph subscriptions host-а. */
100
102
  setInputSource(input: RuntimeHostInputSource | null | undefined): void;
101
103
  /** Возвращает текущий input source host-а. */
@@ -1,5 +1,6 @@
1
1
  import { RComposition } from '../../domain/entities/RComposition';
2
2
  import { I18nRuntimeCatalog } from '../../i18n/domain/i18n.types';
3
+ import { RuntimeEntityModelMap } from '../domain/runtime-entity-map.types';
3
4
  import { RuntimeArtifactReader, RuntimeHost, RuntimeHostContext, RuntimeHostInputSource, RuntimeHostUpdateContext } from '../domain/runtime-host.types';
4
5
  import { VocabRuntimeCatalog } from '../domain/vocab-cache.types';
5
6
  import { FilterViewRuntimeHost } from './FilterViewRuntimeHost';
@@ -8,7 +9,9 @@ import { StoreMutationPlan } from '../../source/domain/types/update-source.types
8
9
  import { RuntimeHostBase } from '../RuntimeHostBase';
9
10
  import { RuntimeScope } from '../RuntimeScope';
10
11
  /** Runtime orchestration host: children, bindings, hooks и public handles. */
11
- export declare class CompositionRuntimeHost extends RuntimeHostBase<'composition', RuntimeHostContext<'composition'>, CompositionProgramPayload> {
12
+ export declare class CompositionRuntimeHost<TType extends 'composition' | 'project' = 'composition'> extends RuntimeHostBase<TType, RuntimeHostContext<'composition'> & RuntimeHostContext<'project'>, CompositionProgramPayload> {
13
+ private _mountPromise;
14
+ private _destroyPromise;
12
15
  private _children;
13
16
  private _childDescriptors;
14
17
  private _publicOutputs;
@@ -20,8 +23,9 @@ export declare class CompositionRuntimeHost extends RuntimeHostBase<'composition
20
23
  private _hookDisposers;
21
24
  private _publicationDisposers;
22
25
  private _disposers;
26
+ private readonly _dispatchDisposers;
23
27
  private _bridgePaths;
24
- private _bindingDerivedHandles;
28
+ private readonly _runtimeDisposers;
25
29
  private _dataPaths;
26
30
  private _storeRuntimeIds;
27
31
  private _storeProviderRuntimeIds;
@@ -29,14 +33,16 @@ export declare class CompositionRuntimeHost extends RuntimeHostBase<'composition
29
33
  private _compositionInputBindings;
30
34
  private _i18nCatalogs;
31
35
  private _vocabCatalogs;
36
+ private readonly _vocabDataModes;
32
37
  private _orchestratedQueries;
33
38
  private _orchestratedSuccesses;
34
39
  private _streamBatches;
35
40
  private _streamBatchTimers;
36
- private _mounted;
41
+ private _mountCancelled;
37
42
  constructor(input: {
38
43
  id: string;
39
- model: RComposition;
44
+ model: RuntimeEntityModelMap[TType];
45
+ entityType?: TType;
40
46
  parent?: RuntimeHost<any, any> | null;
41
47
  meta?: Record<string, unknown>;
42
48
  artifactReader: RuntimeArtifactReader;
@@ -50,6 +56,8 @@ export declare class CompositionRuntimeHost extends RuntimeHostBase<'composition
50
56
  }): CompositionRuntimeHost | null;
51
57
  /** Создает children, bindings и hooks. Повторный mount является no-op. */
52
58
  mountGraph(): Promise<void>;
59
+ private _mountGraph;
60
+ private _assertMountCurrent;
53
61
  getChild(name: string): RuntimeHost<any, any> | null;
54
62
  getChildren(): CompositionRuntimeChildHandle[];
55
63
  getFilterFieldsSlice(runtimeName: string, fieldKeys: string[]): CompositionFilterFieldsSlice | null;
@@ -91,10 +99,13 @@ export declare class CompositionRuntimeHost extends RuntimeHostBase<'composition
91
99
  private _disconnectRuntimeOutputs;
92
100
  quiesce(): void;
93
101
  destroy(): Promise<void>;
102
+ private _destroyOwnedResources;
94
103
  /** Строит effective catalogs по той же иерархии, что и lifecycle scopes. */
95
104
  private _buildI18nCatalogs;
96
105
  /** Строит nearest-scope catalog публичных Vocab aliases поверх shared cache paths. */
97
106
  private _buildVocabCatalogs;
107
+ /** Дожидается cache текущего режима, включая его смену во время acquisition. */
108
+ private _acquireScopeVocabs;
98
109
  /** Регистрирует shared Vocab paths и разрешает Store aliases через explicit, ancestor или local provider. */
99
110
  private _mountData;
100
111
  /** Находит ближайший Store provider только среди Composition ancestors. */
@@ -127,6 +138,10 @@ export declare class CompositionRuntimeHost extends RuntimeHostBase<'composition
127
138
  /** Материализует authored bindings в единый runtime input source child Composition. */
128
139
  private _makeInputSource;
129
140
  private _makeMetaSourceInputBinding;
141
+ /** Подписки и materializations живут столько же, сколько их child runtime. */
142
+ private _addRuntimeDisposer;
143
+ private _disposeRuntimeBindings;
144
+ private _ownBindingPath;
130
145
  private _subscribeBinding;
131
146
  private _bindingPath;
132
147
  private _materializeBinding;
@@ -15,6 +15,7 @@ export declare class FilterViewRuntimeHost extends RuntimeHostBase<'filter', Run
15
15
  private readonly _onSourceChange;
16
16
  private readonly _disposeSourceWatch;
17
17
  private readonly _disposeVocabWatch;
18
+ private readonly _disposeContextWatch;
18
19
  private _props;
19
20
  constructor(input: {
20
21
  id: string;
@@ -1,22 +1,21 @@
1
1
  import { RProject } from '../../domain/entities/RProject';
2
- import { RuntimeHost } from '../domain/runtime-host.types';
3
- import { RuntimeHostBase } from '../RuntimeHostBase';
4
- export declare class ProjectRuntimeHost extends RuntimeHostBase<'project'> {
2
+ import { RuntimeArtifactReader, RuntimeHost } from '../domain/runtime-host.types';
3
+ import { CompositionRuntimeHost } from './CompositionRuntimeHost';
4
+ /** Исполняет собственный корневой граф проекта через общий механизм Composition. */
5
+ export declare class ProjectRuntimeHost extends CompositionRuntimeHost<'project'> {
5
6
  constructor(input: {
6
7
  id: string;
7
8
  model: RProject;
8
- entityIdentity: string;
9
9
  parent?: RuntimeHost<any, any> | null;
10
- title?: string;
11
10
  meta?: Record<string, unknown>;
11
+ artifactReader: RuntimeArtifactReader;
12
12
  });
13
- /**
14
- * LIFECYCLE
15
- */
16
- static createRuntime(input: {
13
+ /** Создаёт host только из валидного артефакта проекта; старые композиции не участвуют. */
14
+ static createProjectRuntime(input: {
17
15
  id: string;
18
16
  model: RProject;
19
17
  meta?: Record<string, any>;
20
18
  parent?: RuntimeHost<any, any> | null;
21
- }): RuntimeHost<'project'>;
19
+ artifacts: RuntimeArtifactReader;
20
+ }): ProjectRuntimeHost | null;
22
21
  }
@@ -6,6 +6,9 @@ import { RuntimeHostBase } from '../RuntimeHostBase';
6
6
  /** Владелец lifecycle runtime для одного скомпилированного транспорта Stream. */
7
7
  export declare class StreamRuntimeHost extends RuntimeHostBase<'stream', RuntimeHostContext<'stream'>, StreamSourceArtifact> {
8
8
  private _connection;
9
+ private _generation;
10
+ private _contextOff;
11
+ private _dataMode;
9
12
  constructor(input: {
10
13
  id: string;
11
14
  model: RStream;
@@ -24,8 +27,13 @@ export declare class StreamRuntimeHost extends RuntimeHostBase<'stream', Runtime
24
27
  transportFactory: StreamTransportFactory;
25
28
  }): StreamRuntimeHost | null;
26
29
  start(): void;
30
+ /** Пауза закрывает transport и инвалидирует уже поставленные callbacks. */
31
+ pause(): void;
32
+ /** Возобновляет transport только после восстановления host lifecycle. */
33
+ resume(): void;
27
34
  stop(): void;
28
35
  quiesce(): void;
29
36
  destroy(): void;
37
+ private _closeConnection;
30
38
  private _receive;
31
39
  }
@@ -28,6 +28,7 @@ export declare class OperationHistory implements RuntimeOwnedResource {
28
28
  private _paused;
29
29
  private _disposed;
30
30
  private _queue;
31
+ private _pending;
31
32
  private _limit;
32
33
  constructor(_options: OperationHistoryOptions);
33
34
  get limit(): number;
@@ -36,7 +37,13 @@ export declare class OperationHistory implements RuntimeOwnedResource {
36
37
  canUndo(): boolean;
37
38
  canRedo(): boolean;
38
39
  setLimit(value: number): void;
39
- commit(entry: OperationHistoryEntry): void;
40
+ commit(entry: OperationHistoryEntry): Promise<void>;
41
+ /** Serializes the data mutation and its history entry with undo/redo. */
42
+ execute<T>(operation: () => Promise<{
43
+ result: T;
44
+ entry: OperationHistoryEntry;
45
+ }>): Promise<T>;
46
+ private _commit;
40
47
  undo(): Promise<unknown>;
41
48
  redo(): Promise<unknown>;
42
49
  pause(): void;
@@ -5,5 +5,5 @@ export declare class CompositionRuntimeStrategy implements RuntimeStrategy<RComp
5
5
  readonly id = "runtime:composition";
6
6
  readonly entityType: "composition";
7
7
  supports(model: unknown): model is RComposition;
8
- create(ctx: Parameters<RuntimeStrategy<RComposition, CompositionRuntimeHost>['create']>[0]): CompositionRuntimeHost | null;
8
+ create(ctx: Parameters<RuntimeStrategy<RComposition, CompositionRuntimeHost>['create']>[0]): CompositionRuntimeHost<"composition"> | null;
9
9
  }
@@ -1,8 +1,9 @@
1
1
  import { RuntimeStrategy } from '../../domain/runtime-strategy.types';
2
2
  import { RProject } from '../../../domain/entities/RProject';
3
+ import { ProjectRuntimeHost } from '../../hosts/ProjectRuntimeHost';
3
4
  export declare class ProjectRuntimeStrategy implements RuntimeStrategy<RProject> {
4
5
  readonly id = "runtime:project";
5
6
  readonly entityType = "project";
6
7
  supports(model: unknown): model is RProject;
7
- create(ctx: Parameters<RuntimeStrategy<RProject>['create']>[0]): import('../../domain/runtime-host.types').RuntimeHost<"project", import('../../domain/runtime-host.types').ProjectRuntimeHostContext, unknown>;
8
+ create(ctx: Parameters<RuntimeStrategy<RProject>['create']>[0]): ProjectRuntimeHost | null;
8
9
  }
@@ -48,6 +48,8 @@ export declare class EndgeSource_Module extends EndgeModule {
48
48
  semanticHighlights(sourceKind: SourceKind | string, context: SourceLanguageContext): SourceLanguageSemanticHighlight[];
49
49
  /** Возвращает renderer-neutral inline annotations для source-документа. */
50
50
  inlineHints(sourceKind: SourceKind | string, context: SourceLanguageContext): SourceLanguageInlineHint[];
51
+ /** Source owner передаёт strategies только актуальные read-only authoring inputs. */
52
+ private _simulationCatalog;
51
53
  /** Регистрирует встроенные strategies ядра. */
52
54
  private _registerDefaultStrategies;
53
55
  /** Возвращает strategy или бросает явную ошибку для некорректного source-kind. */
@@ -375,7 +375,7 @@ export interface CompositionRuntimeOutputHandle {
375
375
  output?: string;
376
376
  }
377
377
  /** Публичный контракт Composition host без зависимости Domain от concrete Model runtime. */
378
- export interface CompositionRuntimeHostHandle extends RuntimeHost<'composition', any, CompositionProgramPayload> {
378
+ export interface CompositionRuntimeHostHandle<TType extends 'composition' | 'project' = 'composition' | 'project'> extends RuntimeHost<TType, any, CompositionProgramPayload> {
379
379
  mountGraph: () => Promise<void>;
380
380
  getChild: (name: string) => RuntimeHost<any, any> | null;
381
381
  getChildren: () => CompositionRuntimeChildHandle[];