@endge/core 6.0.0 → 7.0.1

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 (41) hide show
  1. package/dist/core.js +20554 -19375
  2. package/dist/features/core/kernel/config/modules.config.d.ts +1 -1
  3. package/dist/features/core/kernel/endge.d.ts +10 -4
  4. package/dist/features/core/modules/EndgeRuntimeDebugger_Module.d.ts +2 -0
  5. package/dist/features/core/modules/auth/EndgeAuth_Module.d.ts +3 -1
  6. package/dist/features/core/modules/configuration/EndgeConfiguration_Module.d.ts +2 -0
  7. package/dist/features/core/modules/configuration/domain/types/configuration.type.d.ts +13 -1
  8. package/dist/features/core/modules/context/EndgeContext_Module.d.ts +13 -0
  9. package/dist/features/core/modules/context/domain/context-state.types.d.ts +12 -0
  10. package/dist/features/core/modules/context/persistence/context-state.d.ts +7 -0
  11. package/dist/features/core/modules/diagnostics/EndgeDiagnosticsSnapshots_Module.d.ts +55 -0
  12. package/dist/features/core/modules/diagnostics/EndgeDiagnostics_Module.d.ts +10 -16
  13. package/dist/features/core/modules/diagnostics/adapters/BrowserDiagnosticsSnapshot_Adapter.d.ts +9 -0
  14. package/dist/features/core/modules/diagnostics/domain/diagnostics-snapshot.d.ts +7 -0
  15. package/dist/features/core/modules/diagnostics/domain/types/diagnostics-snapshot-runtime-adapter.type.d.ts +15 -0
  16. package/dist/features/core/modules/diagnostics/domain/types/diagnostics.types.d.ts +60 -3
  17. package/dist/features/core/modules/domain/EndgeDomain_Module.d.ts +3 -3
  18. package/dist/features/core/modules/domain/component/component-sfc-edit-trigger.d.ts +32 -1
  19. package/dist/features/core/modules/domain/types/component/sfc/dependencies.types.d.ts +11 -1
  20. package/dist/features/core/modules/domain/types/component/sfc/ir.types.d.ts +31 -0
  21. package/dist/features/core/modules/implementations/EndgeImplementations_Module.d.ts +2 -0
  22. package/dist/features/core/modules/program/EndgeProgram_Module.d.ts +3 -3
  23. package/dist/features/core/modules/runtime/EndgeRuntime_Module.d.ts +13 -4
  24. package/dist/features/core/modules/runtime/domain/runtime-host.types.d.ts +6 -0
  25. package/dist/features/core/modules/runtime/domain/runtime.types.d.ts +12 -0
  26. package/dist/features/core/modules/runtime/hosts/ComponentSFCRuntimeHost.d.ts +10 -1
  27. package/dist/features/core/modules/runtime/hosts/CompositionRuntimeHost.d.ts +1 -0
  28. package/dist/features/core/modules/runtime/hosts/StoreRuntimeHost.d.ts +4 -0
  29. package/dist/features/core/modules/runtime/operation/EndgeOperations_Module.d.ts +2 -0
  30. package/dist/features/core/modules/source/domain/types/composition-source.types.d.ts +9 -0
  31. package/dist/features/core/modules/source/domain/types/source-expression.types.d.ts +1 -1
  32. package/dist/features/core/modules/source/domain/types/update-source.types.d.ts +7 -0
  33. package/dist/features/core/modules/ui/EndgeUI_Module.d.ts +10 -13
  34. package/dist/features/core/modules/ui/ui-composition.config.d.ts +10 -10
  35. package/dist/features/federation/EndgeFederation.d.ts +69 -41
  36. package/dist/features/federation/EndgeModule.d.ts +7 -0
  37. package/dist/features/federation/tools/sort-endge-modules.d.ts +7 -0
  38. package/dist/features/federation/types/endge-modules.types.d.ts +2 -5
  39. package/dist/features/federation/types/federation.types.d.ts +91 -2
  40. package/dist/main.d.ts +5 -0
  41. package/package.json +3 -2
@@ -59,7 +59,7 @@ export declare const ENDGE_CORE_MODULES: readonly [{
59
59
  readonly after: readonly ["workspace", "domain", "context", "configurationSchema"];
60
60
  }, {
61
61
  readonly key: "diagnostics";
62
- readonly create: () => EndgeDiagnostics_Module;
62
+ readonly create: ({ createDiagnosticsSnapshot, getModule }: import('../../../federation/types/endge-modules.types').EndgeModuleFactoryContext) => EndgeDiagnostics_Module;
63
63
  readonly after: "configuration";
64
64
  }, {
65
65
  readonly key: "source";
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Единая статическая федерация Endge Core.
3
- * Lifecycle context и readonly accessors выводятся из деклараций её Modules.
3
+ * Lifecycle context и readonly accessors выводятся из деклараций её graph.
4
4
  */
5
- export declare const Endge: import('../../federation/EndgeFederation').DefinedEndgeFederation<readonly [{
5
+ declare const EndgeCore: import('../../federation/EndgeFederation').DefinedEndgeFederation<readonly [{
6
6
  readonly key: "context";
7
7
  readonly create: () => import('../modules/context/EndgeContext_Module').EndgeContext_Module;
8
8
  }, {
@@ -35,7 +35,7 @@ export declare const Endge: import('../../federation/EndgeFederation').DefinedEn
35
35
  readonly after: readonly ["workspace", "domain", "context", "configurationSchema"];
36
36
  }, {
37
37
  readonly key: "diagnostics";
38
- readonly create: () => import('../modules/diagnostics/EndgeDiagnostics_Module').EndgeDiagnostics_Module;
38
+ readonly create: ({ createDiagnosticsSnapshot, getModule }: import('../../../main').EndgeModuleFactoryContext) => import('../modules/diagnostics/EndgeDiagnostics_Module').EndgeDiagnostics_Module;
39
39
  readonly after: "configuration";
40
40
  }, {
41
41
  readonly key: "source";
@@ -109,4 +109,10 @@ export declare const Endge: import('../../federation/EndgeFederation').DefinedEn
109
109
  readonly key: "styles";
110
110
  readonly create: () => import('../modules/styles/EndgeStyles_Module').EndgeStyles_Module;
111
111
  readonly after: readonly ["ui", "domain", "program", "compiler"];
112
- }], import('../../../main').EndgeFederationContext & import('./types/bootstrap.types').EndgeBootContext>;
112
+ }], readonly [], import('../../../main').EndgeFederationContext & import('./types/bootstrap.types').EndgeBootContext>;
113
+ /** Типизированные accessors, которые внешние packages добавляют через module augmentation. */
114
+ export interface EndgeExtensions {
115
+ }
116
+ /** Единый facade Core и всех зарегистрированных до boot расширений. */
117
+ export declare const Endge: typeof EndgeCore & Readonly<EndgeExtensions>;
118
+ export {};
@@ -36,6 +36,8 @@ export declare class EndgeRuntimeDebugger_Module extends EndgeModule {
36
36
  * Возвращает накопленные результаты анализа для вкладки.
37
37
  */
38
38
  getAnalysis(tabId: string): string[];
39
+ /** Возвращает безопасную диагностическую проекцию известных debug-вкладок. */
40
+ createDiagnosticsSnapshot(): unknown;
39
41
  /**
40
42
  * Отправить команду во все подключённые вкладки.
41
43
  * Используется админкой для запуска анализа по текущей вкладке.
@@ -1,6 +1,6 @@
1
1
  import { EndgeBootContext } from '../../kernel/types/bootstrap.types';
2
2
  import { AuthInteractionRequiredError } from './domain/AuthInteractionRequiredError';
3
- import { AuthProfileSchema, OidcBrowserSessionOptions } from './domain/types/auth-profile.types';
3
+ import { AuthProfileSchema, EndgeAuthContext, OidcBrowserSessionOptions } from './domain/types/auth-profile.types';
4
4
  import { OidcBrowserSession_Adapter } from './adapters/OidcBrowserSession_Adapter';
5
5
  import { AuthAdapterRegistry } from './services/AuthAdapterRegistry';
6
6
  import { AuthProfileRegistry } from './services/AuthProfileRegistry';
@@ -25,6 +25,8 @@ export declare class EndgeAuth_Module extends EndgeModule<EndgeBootContext> {
25
25
  constructor();
26
26
  /** Подписывает host-приложение на запросы, требующие интерактивного OIDC flow. */
27
27
  onInteractionRequired(listener: AuthInteractionRequiredListener): () => void;
28
+ /** Возвращает безопасный auth context без tokens, claims и userinfo. */
29
+ createDiagnosticsSnapshot(): EndgeAuthContext;
28
30
  /** Подключает storage namespace и безопасные context providers. */
29
31
  setup(ctx: EndgeBootContext): void;
30
32
  /** Валидирует Domain profiles и восстанавливает session default runtime profile. */
@@ -9,6 +9,8 @@ export declare class EndgeConfiguration_Module extends EndgeModule<EndgeBootCont
9
9
  build(ctx: EndgeBootContext): void;
10
10
  /** Очищает effective configuration перед следующим boot. */
11
11
  reset(): void;
12
+ /** Включает effective configuration текущего build в диагностическое дерево. */
13
+ createDiagnosticsSnapshot(): EndgeConfiguration;
12
14
  /** Возвращает effective configuration текущего build. */
13
15
  get current(): EndgeConfiguration;
14
16
  /** Возвращает immutable compiler input текущего build. */
@@ -1,5 +1,5 @@
1
1
  import { DiagnosticsSeverityNumber, DiagnosticsSignal, EndgeDiagnosticsConfiguration, EndgeDiagnosticsOutputConfiguration, EndgeDiagnosticsRoute } from '../../../diagnostics/domain/types/diagnostics.types';
2
- import { ComponentSFCInteractionKeyboardCondition, ComponentSFCInteractionTrigger } from '../../../domain/types/component/sfc/ir.types';
2
+ import { ComponentSFCInteractionKeyboardCondition, ComponentSFCInteractionTrigger, ComponentSFCInteractionTriggerActivation } from '../../../domain/types/component/sfc/ir.types';
3
3
  import { EndgeExecutionContext } from '../../../runtime/domain/execution-context.types';
4
4
  import { EndgeJSONValue } from '../../../source/domain/types/configuration-source.types';
5
5
  export type EndgeConfigurationValues = Record<string, Record<string, EndgeJSONValue>>;
@@ -130,6 +130,12 @@ export interface EndgeDiagnosticsSnapshotContentPatch {
130
130
  telemetry?: EndgeValueOverride<boolean>;
131
131
  problems?: EndgeValueOverride<boolean>;
132
132
  configuration?: EndgeValueOverride<boolean>;
133
+ effectiveConfiguration?: EndgeValueOverride<boolean>;
134
+ domain?: EndgeValueOverride<boolean>;
135
+ program?: EndgeValueOverride<boolean>;
136
+ runtime?: EndgeValueOverride<boolean>;
137
+ raphData?: EndgeValueOverride<boolean>;
138
+ raphGraph?: EndgeValueOverride<boolean>;
133
139
  }
134
140
  /** Patch условий автоматического snapshot. */
135
141
  export interface EndgeDiagnosticsAutomaticSnapshotPatch {
@@ -139,9 +145,15 @@ export interface EndgeDiagnosticsAutomaticSnapshotPatch {
139
145
  cooldownSeconds?: EndgeValueOverride<number>;
140
146
  outputIds?: EndgeCollectionPatch<string>;
141
147
  }
148
+ /** Patch snapshot, скачиваемого глобальной комбинацией клавиш. */
149
+ export interface EndgeDiagnosticsShortcutSnapshotPatch {
150
+ triggerSet?: EndgeValueOverride<ComponentSFCInteractionTriggerActivation>;
151
+ content?: EndgeDiagnosticsSnapshotContentPatch;
152
+ }
142
153
  /** Patch snapshots configuration текущего cascade layer. */
143
154
  export interface EndgeDiagnosticsSnapshotsPatch {
144
155
  content?: EndgeDiagnosticsSnapshotContentPatch;
156
+ shortcut?: EndgeDiagnosticsShortcutSnapshotPatch;
145
157
  automatic?: EndgeDiagnosticsAutomaticSnapshotPatch;
146
158
  }
147
159
  /** Patch diagnostics configuration текущего cascade layer. */
@@ -1,6 +1,7 @@
1
1
  import { EndgeBootContext } from '../../kernel/types/bootstrap.types';
2
2
  import { EndgeConfiguration } from '../configuration/domain/types/configuration.type';
3
3
  import { EndgeContextPersistenceConfig, EndgeContextSnapshot, EndgeKeyboardContextSnapshot, EndgePersistenceScope, EndgeRuntimeContextSnapshot, EndgeSessionIdentityProvider, EndgeStorageAdapter } from './domain/context-persistence.types';
4
+ import { EndgeContextStateListener, EndgeContextStateTransform } from './domain/context-state.types';
4
5
  import { EndgePersistenceInput } from './persistence/EndgeStorageAdapterRegistry';
5
6
  import { EndgeExecutionContext, EndgeExecutionContextResolutionInput } from '../runtime/domain/execution-context.types';
6
7
  import { EndgeDataMode } from '../workspace/domain/workspace.types';
@@ -13,6 +14,7 @@ import { EndgeModule } from '../../../federation/EndgeModule';
13
14
  export declare class EndgeContext_Module extends EndgeModule<EndgeBootContext> {
14
15
  private readonly _adapters;
15
16
  private readonly _runtimeControllers;
17
+ private readonly _stateListeners;
16
18
  private _contextPersistence;
17
19
  private _currentWorkspace;
18
20
  private _currentTenant;
@@ -47,6 +49,7 @@ export declare class EndgeContext_Module extends EndgeModule<EndgeBootContext> {
47
49
  /** Показывает, что Tenant принудительно задан authenticated session provider. */
48
50
  get isTenantLockedBySession(): boolean;
49
51
  /** Сериализует текущий execution scope в snapshot. */
52
+ createDiagnosticsSnapshot(): Record<string, unknown>;
50
53
  serialize(): EndgeContextSnapshot;
51
54
  /** Возвращает полный доступный SFC контекст без добавления временных значений в persistence. */
52
55
  runtimeSnapshot(): EndgeRuntimeContextSnapshot;
@@ -64,6 +67,14 @@ export declare class EndgeContext_Module extends EndgeModule<EndgeBootContext> {
64
67
  loadFromStorage(): EndgeContextSnapshot | undefined;
65
68
  /** Возвращает полный persistence scope текущей сессии. */
66
69
  getPersistenceScope(): EndgePersistenceScope;
70
+ /** Возвращает dynamic state текущего полного context scope. */
71
+ getState<T>(key: string, transform?: EndgeContextStateTransform<T>): T | undefined;
72
+ /** Сохраняет dynamic state в scope текущих workspace/tenant/project/environment/user. */
73
+ setState<T>(key: string, state: T, transform?: EndgeContextStateTransform<T>): void;
74
+ /** Удаляет dynamic state только из текущего полного context scope. */
75
+ removeState(key: string): void;
76
+ /** Подписывает потребителя на изменения одного dynamic state key. */
77
+ subscribeState(key: string, listener: EndgeContextStateListener): () => void;
67
78
  /** Создаёт или возвращает controller runtime-состояния по runtime id. */
68
79
  createRuntimeStateController(input: {
69
80
  runtimeId: string;
@@ -143,6 +154,8 @@ export declare class EndgeContext_Module extends EndgeModule<EndgeBootContext> {
143
154
  private _serializeForPersistence;
144
155
  /** Выбирает storage adapter для заданной persistence policy. */
145
156
  private _resolveAdapter;
157
+ private _notifyState;
158
+ private _warnStateFailure;
146
159
  private _syncPersistentContextToRaph;
147
160
  private _setRaphValueIfChanged;
148
161
  /** Возвращает identity активного workspace для persistence scope. */
@@ -0,0 +1,12 @@
1
+ import { ClassConstructor } from 'class-transformer';
2
+ /** Ручное преобразование между runtime-состоянием и JSON-compatible представлением. */
3
+ export interface EndgeContextStateCodec<T> {
4
+ serialize: (state: T) => unknown;
5
+ deserialize: (value: unknown) => T;
6
+ }
7
+ /**
8
+ * Способ преобразования dynamic state: class-transformer constructor либо ручной codec.
9
+ * Без transform значение сохраняется как обычное JSON-compatible значение.
10
+ */
11
+ export type EndgeContextStateTransform<T> = ClassConstructor<T> | EndgeContextStateCodec<T>;
12
+ export type EndgeContextStateListener = () => void;
@@ -0,0 +1,7 @@
1
+ import { EndgePersistenceScope } from '../domain/context-persistence.types';
2
+ import { EndgeContextStateTransform } from '../domain/context-state.types';
3
+ /** Строит изолированный ключ dynamic state из полного context scope и ключа потребителя. */
4
+ export declare function buildContextStateStorageKey(scope: EndgePersistenceScope, key: string): string;
5
+ export declare function normalizeContextStateKey(value: unknown): string;
6
+ export declare function serializeContextState<T>(state: T, transform?: EndgeContextStateTransform<T>): unknown;
7
+ export declare function deserializeContextState<T>(value: unknown, transform?: EndgeContextStateTransform<T>): T;
@@ -0,0 +1,55 @@
1
+ import { EndgeBootContext } from '../../kernel/types/bootstrap.types';
2
+ import { DiagnosticsSnapshotRuntimeAdapter } from './domain/types/diagnostics-snapshot-runtime-adapter.type';
3
+ import { DiagnosticsSnapshot, DiagnosticsSnapshotOptions, DiagnosticsSnapshotProviders } from './domain/types/diagnostics.types';
4
+ import { EndgeProblems_Module } from './EndgeProblems_Module';
5
+ import { EndgeTelemetry_Module } from './EndgeTelemetry_Module';
6
+ import { EndgeModule } from '../../../federation/EndgeModule';
7
+ /** Владелец создания, доставки, скачивания и trigger policies диагностических snapshots. */
8
+ export declare class EndgeDiagnosticsSnapshots_Module extends EndgeModule<EndgeBootContext> {
9
+ private readonly _telemetry;
10
+ private readonly _problems;
11
+ private readonly _providers;
12
+ private readonly _runtimeAdapter;
13
+ private _automaticErrorTimestamps;
14
+ private _automaticCooldownUntil;
15
+ private _unsubscribeAutomaticRecords;
16
+ private _unsubscribeShortcut;
17
+ private _shortcutMatcher;
18
+ private _started;
19
+ /** Создаёт snapshots owner поверх telemetry, problems и platform adapter. */
20
+ constructor(_telemetry: EndgeTelemetry_Module, _problems: EndgeProblems_Module, _providers?: DiagnosticsSnapshotProviders, _runtimeAdapter?: DiagnosticsSnapshotRuntimeAdapter);
21
+ /** Восстанавливает internal policy subscriptions после telemetry build/reset. */
22
+ build(_ctx: EndgeBootContext): void;
23
+ /** Включает глобальную shortcut subscription только в live lifecycle. */
24
+ start(_ctx: EndgeBootContext): void;
25
+ /** Освобождает live subscriptions и transient policy state. */
26
+ reset(): void;
27
+ /** Синхронизирует subscriptions после применения новой effective configuration. */
28
+ configure(): void;
29
+ /** Возвращает JSON-safe snapshot выбранных частей текущего состояния Core. */
30
+ snapshot(options?: DiagnosticsSnapshotOptions): DiagnosticsSnapshot;
31
+ /** Создаёт snapshot и доставляет его в выбранные configured outputs. */
32
+ sendSnapshot(outputIds?: readonly string[], options?: DiagnosticsSnapshotOptions): DiagnosticsSnapshot;
33
+ /** Создаёт snapshot и сохраняет его platform adapter-ом в JSON-файл. */
34
+ downloadSnapshot(options?: DiagnosticsSnapshotOptions): DiagnosticsSnapshot;
35
+ /** Восстанавливает внутреннюю подписку на ERROR/FATAL records после configure. */
36
+ private _subscribeAutomaticSnapshots;
37
+ /** Пересоздаёт live shortcut subscription по effective trigger activation. */
38
+ private _syncShortcutSubscription;
39
+ /** Читает одну часть snapshot из её state owner и локализует возможный сбой. */
40
+ private _captureSection;
41
+ /** Сохраняет прежние top-level поля, получая их из нового дерева владельцев. */
42
+ private _federationOwnerSections;
43
+ /** Поддерживает независимое использование Diagnostics без владеющей Federation. */
44
+ private _legacyOwnerSections;
45
+ /** Применяет существующие content toggles к тяжёлым Core Modules до чтения их состояния. */
46
+ private _federationOptions;
47
+ /** Переносит snapshot Core Module в совместимое top-level поле без повторного сбора. */
48
+ private _takeModuleSnapshot;
49
+ /** Показывает, что состояние Diagnostics Module представлено корневыми полями файла. */
50
+ private _referenceDiagnosticsModule;
51
+ /** Применяет sliding window и cooldown политики автоматического snapshot. */
52
+ private _handleAutomaticSnapshotRecord;
53
+ /** Переводит persisted content policy в публичные snapshot options. */
54
+ private _snapshotOptions;
55
+ }
@@ -1,13 +1,14 @@
1
1
  import { EndgeBootContext } from '../../kernel/types/bootstrap.types';
2
2
  import { DiagnosticsAdapter, DiagnosticsAdapterFactory, DiagnosticsFlushResult } from './domain/types/diagnostics-adapter.type';
3
- import { DiagnosticsContextProvider, DiagnosticsExceptionOptions, DiagnosticsFilter, DiagnosticsListener, DiagnosticsLogInput, DiagnosticsLogOptions, DiagnosticsLogRecord, DiagnosticsRecord, DiagnosticsResource, DiagnosticsSnapshot, DiagnosticsSnapshotOptions, DiagnosticsSpanHandle, DiagnosticsSpanOptions, DiagnosticsSpanRecord, DiagnosticsSubscribeOptions, EndgeDiagnosticsConfiguration } from './domain/types/diagnostics.types';
3
+ import { DiagnosticsContextProvider, DiagnosticsExceptionOptions, DiagnosticsFilter, DiagnosticsListener, DiagnosticsLogInput, DiagnosticsLogOptions, DiagnosticsLogRecord, DiagnosticsRecord, DiagnosticsResource, DiagnosticsSnapshot, DiagnosticsSnapshotOptions, DiagnosticsSnapshotProviders, DiagnosticsSpanHandle, DiagnosticsSpanOptions, DiagnosticsSpanRecord, DiagnosticsSubscribeOptions, EndgeDiagnosticsConfiguration } from './domain/types/diagnostics.types';
4
4
  import { DiagnosticsAdapterRegistry } from './adapters/DiagnosticsAdapterRegistry';
5
+ import { EndgeDiagnosticsSnapshots_Module } from './EndgeDiagnosticsSnapshots_Module';
5
6
  import { EndgeProblems_Module } from './EndgeProblems_Module';
6
7
  import { EndgeTelemetry_Module } from './EndgeTelemetry_Module';
7
8
  import { EndgeModule } from '../../../federation/EndgeModule';
8
9
  /**
9
10
  * Родительский diagnostics-модуль ядра.
10
- * Объединяет append-only telemetry history и replaceable registry актуальных problems.
11
+ * Объединяет telemetry history, актуальные problems и lifecycle snapshots policy.
11
12
  */
12
13
  export declare class EndgeDiagnostics_Module extends EndgeModule<EndgeBootContext> {
13
14
  /** Registry системных и внешних adapter factories. */
@@ -16,17 +17,15 @@ export declare class EndgeDiagnostics_Module extends EndgeModule<EndgeBootContex
16
17
  readonly telemetry: EndgeTelemetry_Module;
17
18
  /** Подмодуль актуальных authoring/build/runtime problems. */
18
19
  readonly problems: EndgeProblems_Module;
19
- /** Состояние automatic snapshot policy и её внутренней подписки. */
20
- private _automaticErrorTimestamps;
21
- private _automaticCooldownUntil;
22
- private _unsubscribeAutomaticRecords;
20
+ /** Подмодуль создания, доставки и browser download диагностических snapshots. */
21
+ readonly snapshots: EndgeDiagnosticsSnapshots_Module;
23
22
  /**
24
23
  * ----------------------------------------
25
24
  * PUBLIC
26
25
  * ----------------------------------------
27
26
  */
28
27
  /** Связывает независимые уведомления подмодулей с родительским diagnostics-модулем. */
29
- constructor();
28
+ constructor(snapshotProviders?: DiagnosticsSnapshotProviders);
30
29
  /** Передаёт setup lifecycle подмодулям в порядке их зависимостей. */
31
30
  setup(ctx: EndgeBootContext): Promise<void>;
32
31
  /** Передаёт load lifecycle подмодулям в порядке их зависимостей. */
@@ -67,8 +66,12 @@ export declare class EndgeDiagnostics_Module extends EndgeModule<EndgeBootContex
67
66
  query(filter?: DiagnosticsFilter): readonly DiagnosticsRecord[];
68
67
  /** Возвращает JSON-safe snapshot telemetry, problems и optional configuration. */
69
68
  snapshot(options?: DiagnosticsSnapshotOptions): DiagnosticsSnapshot;
69
+ /** Включает snapshots собственных submodules без рекурсивного запуска общего сборщика. */
70
+ createDiagnosticsSnapshot(): unknown;
70
71
  /** Создаёт snapshot и доставляет его в выбранные configured outputs. */
71
72
  sendSnapshot(outputIds?: readonly string[], options?: DiagnosticsSnapshotOptions): DiagnosticsSnapshot;
73
+ /** Создаёт snapshot и сохраняет его в JSON-файл через platform adapter. */
74
+ downloadSnapshot(options?: DiagnosticsSnapshotOptions): DiagnosticsSnapshot;
72
75
  /** Возвращает telemetry counters текущей session. */
73
76
  getCounters(): ReturnType<EndgeTelemetry_Module['getCounters']>;
74
77
  /** Очищает только telemetry history, не затрагивая актуальные problems. */
@@ -85,15 +88,6 @@ export declare class EndgeDiagnostics_Module extends EndgeModule<EndgeBootContex
85
88
  unregisterAdapter(adapterId: string): Promise<void>;
86
89
  /** Выполняет best-effort flush всех telemetry adapters. */
87
90
  flush(): Promise<DiagnosticsFlushResult>;
88
- /**
89
- * ----------------------------------------
90
- * PRIVATE
91
- * ----------------------------------------
92
- */
93
- /** Восстанавливает внутреннюю подписку на ERROR/FATAL records после reset. */
94
- private _subscribeAutomaticSnapshots;
95
- /** Применяет sliding window и cooldown политики автоматического snapshot. */
96
- private _handleAutomaticSnapshotRecord;
97
91
  /**
98
92
  * ----------------------------------------
99
93
  * ACCESS
@@ -0,0 +1,9 @@
1
+ import { DiagnosticsSnapshotRuntimeAdapter, DiagnosticsSnapshotShortcutEvent } from '../domain/types/diagnostics-snapshot-runtime-adapter.type';
2
+ import { DiagnosticsSnapshot } from '../domain/types/diagnostics.types';
3
+ /** Browser implementation platform boundary диагностических snapshots. */
4
+ export declare class BrowserDiagnosticsSnapshot_Adapter implements DiagnosticsSnapshotRuntimeAdapter {
5
+ /** Подписывает Core на глобальные keyboard events текущего document. */
6
+ subscribeShortcut(listener: (event: DiagnosticsSnapshotShortcutEvent) => void): () => void;
7
+ /** Сохраняет JSON-safe snapshot в файл средствами browser platform. */
8
+ downloadJson(snapshot: DiagnosticsSnapshot): void;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { DiagnosticsJsonValue } from './types/diagnostics.types';
2
+ export interface DiagnosticsJsonSerializationResult {
3
+ value: DiagnosticsJsonValue;
4
+ redactedFields: number;
5
+ }
6
+ /** Преобразует произвольное состояние в JSON-safe диагностическую проекцию с редактированием секретов. */
7
+ export declare function serializeDiagnosticsJson(input: unknown): DiagnosticsJsonSerializationResult;
@@ -0,0 +1,15 @@
1
+ import { DiagnosticsSnapshot } from './diagnostics.types';
2
+ import { ComponentSFCInteractionTriggerEvent, ComponentSFCInteractionTriggerPlatform } from '../../../domain/types/component/sfc/ir.types';
3
+ /** Keyboard event, приведённое platform adapter к общему TriggerSet contract. */
4
+ export interface DiagnosticsSnapshotShortcutEvent {
5
+ type: 'keydown' | 'keyup';
6
+ occurrence: ComponentSFCInteractionTriggerEvent;
7
+ platform: ComponentSFCInteractionTriggerPlatform;
8
+ preventDefault: () => void;
9
+ stopPropagation: () => void;
10
+ }
11
+ /** Platform boundary подписки на shortcut и сохранения snapshot-файла. */
12
+ export interface DiagnosticsSnapshotRuntimeAdapter {
13
+ subscribeShortcut: (listener: (event: DiagnosticsSnapshotShortcutEvent) => void) => () => void;
14
+ downloadJson: (snapshot: DiagnosticsSnapshot) => void;
15
+ }
@@ -1,3 +1,5 @@
1
+ import { ComponentSFCInteractionTriggerActivation } from '../../../domain/types/component/sfc/ir.types';
2
+ import { EndgeFederationDiagnosticsSnapshot, EndgeFederationDiagnosticsSnapshotOptions } from '../../../../../federation/types/federation.types';
1
3
  /** Сигналы, которые поддерживает первая версия модуля диагностики. */
2
4
  export type DiagnosticsSignal = 'log' | 'span';
3
5
  /** Фаза жизненного цикла, в которой создана диагностическая запись. */
@@ -133,6 +135,10 @@ export interface EndgeDiagnosticsCollectionConfiguration {
133
135
  export type DiagnosticsAdapterOptionValue = string | number | boolean | null | DiagnosticsAdapterOptionValue[] | {
134
136
  [key: string]: DiagnosticsAdapterOptionValue;
135
137
  };
138
+ /** Рекурсивное JSON-safe значение диагностического snapshot. */
139
+ export type DiagnosticsJsonValue = string | number | boolean | null | DiagnosticsJsonValue[] | {
140
+ [key: string]: DiagnosticsJsonValue;
141
+ };
136
142
  /** Именованный канал вывода, создаваемый через adapter registry. */
137
143
  export interface EndgeDiagnosticsOutputConfiguration {
138
144
  id: string;
@@ -174,6 +180,12 @@ export interface EndgeDiagnosticsSnapshotContentConfiguration {
174
180
  telemetry: boolean;
175
181
  problems: boolean;
176
182
  configuration: boolean;
183
+ effectiveConfiguration?: boolean;
184
+ domain?: boolean;
185
+ program?: boolean;
186
+ runtime?: boolean;
187
+ raphData?: boolean;
188
+ raphGraph?: boolean;
177
189
  }
178
190
  /** Условия автоматического snapshot по ERROR/FATAL records. */
179
191
  export interface EndgeDiagnosticsAutomaticSnapshotConfiguration {
@@ -183,9 +195,16 @@ export interface EndgeDiagnosticsAutomaticSnapshotConfiguration {
183
195
  cooldownSeconds: number;
184
196
  outputIds: string[];
185
197
  }
186
- /** Effective configuration ручных и автоматических snapshots. */
198
+ /** Настройки snapshot, скачиваемого глобальной комбинацией клавиш. */
199
+ export interface EndgeDiagnosticsShortcutSnapshotConfiguration {
200
+ /** Legacy TriggerSet либо sequence-объект; массив сохраняется без миграции persisted документов. */
201
+ triggerSet: ComponentSFCInteractionTriggerActivation;
202
+ content: EndgeDiagnosticsSnapshotContentConfiguration;
203
+ }
204
+ /** Effective configuration ручных, shortcut и автоматических snapshots. */
187
205
  export interface EndgeDiagnosticsSnapshotsConfiguration {
188
206
  content: EndgeDiagnosticsSnapshotContentConfiguration;
207
+ shortcut: EndgeDiagnosticsShortcutSnapshotConfiguration;
189
208
  automatic: EndgeDiagnosticsAutomaticSnapshotConfiguration;
190
209
  }
191
210
  /** Полная effective configuration модуля диагностики. */
@@ -264,12 +283,37 @@ export interface DiagnosticsCounters {
264
283
  }
265
284
  /** Параметры создания JSON-safe snapshot. */
266
285
  export interface DiagnosticsSnapshotOptions {
267
- trigger?: 'manual' | 'automatic';
286
+ trigger?: 'manual' | 'shortcut' | 'automatic';
268
287
  includeTelemetry?: boolean;
269
288
  includeProblems?: boolean;
270
289
  includeConfiguration?: boolean;
290
+ includeEffectiveConfiguration?: boolean;
291
+ includeDomain?: boolean;
292
+ includeProgram?: boolean;
293
+ includeRuntime?: boolean;
294
+ includeRaphData?: boolean;
295
+ includeRaphGraph?: boolean;
271
296
  filter?: DiagnosticsFilter;
272
297
  }
298
+ /** Параметры диагностической проекции Raph, принадлежащей runtime-модулю. */
299
+ export interface DiagnosticsRaphSnapshotOptions {
300
+ includeData: boolean;
301
+ includeGraph: boolean;
302
+ }
303
+ /** Lazy providers state owners, подключаемые composition root ядра. */
304
+ export interface DiagnosticsSnapshotProviders {
305
+ federation?: (options: EndgeFederationDiagnosticsSnapshotOptions) => EndgeFederationDiagnosticsSnapshot;
306
+ effectiveConfiguration?: () => unknown;
307
+ domain?: () => unknown;
308
+ program?: () => unknown;
309
+ runtime?: () => unknown;
310
+ raph?: (options: DiagnosticsRaphSnapshotOptions) => unknown;
311
+ }
312
+ /** Ошибка чтения одной запрошенной части snapshot без отмены остальных частей. */
313
+ export interface DiagnosticsSnapshotCaptureError {
314
+ section: 'federation' | 'effectiveConfiguration' | 'domain' | 'program' | 'runtime' | 'raph';
315
+ message: string;
316
+ }
273
317
  /** Telemetry-часть диагностического snapshot. */
274
318
  export interface DiagnosticsTelemetrySnapshot {
275
319
  sessionId: string;
@@ -279,11 +323,24 @@ export interface DiagnosticsTelemetrySnapshot {
279
323
  }
280
324
  /** JSON-safe snapshot текущего состояния diagnostics-модуля. */
281
325
  export interface DiagnosticsSnapshot {
326
+ format?: 'endge-diagnostics-snapshot';
327
+ version?: 1 | 2;
282
328
  generatedAt: number;
283
- trigger: 'manual' | 'automatic';
329
+ trigger: 'manual' | 'shortcut' | 'automatic';
284
330
  telemetry?: DiagnosticsTelemetrySnapshot;
285
331
  problems?: DiagnosticsProblemsSnapshot;
286
332
  configuration?: EndgeDiagnosticsConfiguration;
333
+ effectiveConfiguration?: DiagnosticsJsonValue;
334
+ domain?: DiagnosticsJsonValue;
335
+ program?: DiagnosticsJsonValue;
336
+ runtime?: DiagnosticsJsonValue;
337
+ raph?: DiagnosticsJsonValue;
338
+ federation?: DiagnosticsJsonValue;
339
+ captureErrors?: DiagnosticsSnapshotCaptureError[];
340
+ redaction?: {
341
+ applied: true;
342
+ fields: number;
343
+ };
287
344
  }
288
345
  /** Обработчик одной принятой диагностической записи. */
289
346
  export type DiagnosticsListener = (record: DiagnosticsRecord) => void;
@@ -1239,9 +1239,9 @@ export declare class EndgeDomain_Module extends EndgeModule<EndgeBootContext> {
1239
1239
  * Проверяет наличие Version по id или identity.
1240
1240
  */
1241
1241
  hasVersion(identity: string): boolean;
1242
- /**
1243
- * Преобразует EndgeDomain_Module в JSON-объект.
1244
- */
1242
+ /** Возвращает полный persisted Domain для диагностического дерева. */
1243
+ createDiagnosticsSnapshot(): EndgeDomainPlain;
1244
+ /** Преобразует EndgeDomain_Module в JSON-объект. */
1245
1245
  toPlain(): EndgeDomainPlain;
1246
1246
  /**
1247
1247
  * Нормализует блоки областей страницы: из формата Payload (entity: { relationTo, value }) в entityType/entityIdentity.
@@ -1,6 +1,37 @@
1
- import { ComponentSFCInteractionKeyboardCondition, ComponentSFCInteractionTrigger, ComponentSFCInteractionTriggerEvent, ComponentSFCInteractionTriggerHeldKeys, ComponentSFCInteractionTriggerModifiers, ComponentSFCInteractionTriggerPlatform } from '../types/component/sfc/ir.types';
1
+ import { ComponentSFCInteractionKeyboardCondition, ComponentSFCInteractionTrigger, ComponentSFCInteractionTriggerActivation, ComponentSFCInteractionTriggerEvent, ComponentSFCInteractionTriggerHeldKeys, ComponentSFCInteractionTriggerModifiers, ComponentSFCInteractionTriggerPlatform } from '../types/component/sfc/ir.types';
2
+ export declare const DEFAULT_COMPONENT_SFC_INTERACTION_SEQUENCE_INTERVAL_MS = 1000;
3
+ export type ComponentSFCInteractionTriggerActivationMatch = {
4
+ status: 'none';
5
+ } | {
6
+ status: 'progress' | 'complete';
7
+ trigger: ComponentSFCInteractionTrigger;
8
+ stepIndex: number;
9
+ triggerIndex: number;
10
+ };
2
11
  /** Нормализует общее значение trigger `edit-on` или `on`. */
3
12
  export declare function normalizeComponentSFCInteractionTriggers(value: unknown): ComponentSFCInteractionTrigger[];
13
+ /** Нормализует legacy TriggerSet или последовательность, не меняя форму обычного набора. */
14
+ export declare function normalizeComponentSFCInteractionTriggerActivation(value: unknown): ComponentSFCInteractionTriggerActivation;
15
+ /** Проверяет, содержит ли активация хотя бы один исполнимый TriggerSet. */
16
+ export declare function hasComponentSFCInteractionTriggerActivation(activation: ComponentSFCInteractionTriggerActivation): boolean;
17
+ /** Stateful matcher последовательностей, общий для runtime-владельцев и platform adapters. */
18
+ export declare class ComponentSFCInteractionTriggerActivationMatcher {
19
+ private readonly _activation;
20
+ private readonly _onceTriggered;
21
+ private _matchedOnce;
22
+ private _nextStepIndex;
23
+ private _deadline;
24
+ constructor(value: unknown);
25
+ /** Принимает очередное событие и возвращает прогресс либо завершение активации. */
26
+ match(eventName: string, event: ComponentSFCInteractionTriggerEvent, platform: ComponentSFCInteractionTriggerPlatform, occurredAt?: number): ComponentSFCInteractionTriggerActivationMatch;
27
+ /** Сбрасывает transient progress и once-состояние при lifecycle/configuration reset. */
28
+ reset(): void;
29
+ private _matchSequence;
30
+ private _matchSet;
31
+ private _shouldResetSequence;
32
+ private _resetProgress;
33
+ private _onceKey;
34
+ }
4
35
  /** Проверяет один нормализованный trigger без зависимости от DOM и конкретного renderer-а. */
5
36
  export declare function matchesComponentSFCInteractionTrigger(trigger: ComponentSFCInteractionTrigger, event: ComponentSFCInteractionTriggerEvent, platform: ComponentSFCInteractionTriggerPlatform): boolean;
6
37
  /** Приводит browser platform label к стабильным значениям edit-on контракта. */
@@ -1,4 +1,4 @@
1
- import { RComponentSFC_IR_Read } from './ir.types';
1
+ import { RComponentSFC_IR_DataMetaReference, RComponentSFC_IR_Read } from './ir.types';
2
2
  /** Источник runtime-зависимости SFC v1. */
3
3
  export type RComponentSFC_RuntimeDependencySource = 'props' | 'context';
4
4
  /** Runtime-зависимость SFC template от входного prop. */
@@ -63,6 +63,14 @@ export interface RComponentSFC_RuntimeVocabDependency {
63
63
  /** Исходное выражение для diagnostics/debug. */
64
64
  raw: string;
65
65
  }
66
+ /** Реактивное чтение Meta-plane, разрешаемое через provenance входного prop. */
67
+ export interface RComponentSFC_RuntimeMetaDependency {
68
+ reference: RComponentSFC_IR_DataMetaReference;
69
+ /** Table boundary для row-reference; null для обычного prop. */
70
+ boundaryId: string | null;
71
+ namespace: string | null;
72
+ raw: string;
73
+ }
66
74
  /** Набор runtime-зависимостей SFC artifact. */
67
75
  export interface RComponentSFC_RuntimeDependencies {
68
76
  /** Зависимости от props, которые можно связать с внешним input source. */
@@ -73,6 +81,8 @@ export interface RComponentSFC_RuntimeDependencies {
73
81
  boundaries: RComponentSFC_RuntimeBoundaryDependency[];
74
82
  /** Vocab aliases, которые должен предоставить ближайший Composition scope. */
75
83
  vocabs?: RComponentSFC_RuntimeVocabDependency[];
84
+ /** Read-only зависимости `$data.metaOf(...)`. */
85
+ meta?: RComponentSFC_RuntimeMetaDependency[];
76
86
  }
77
87
  /** Создает пустой dependency artifact SFC runtime. */
78
88
  export declare function createEmptyComponentSFCRuntimeDependencies(): RComponentSFC_RuntimeDependencies;
@@ -105,6 +105,20 @@ export interface ComponentSFCInteractionTrigger extends ComponentSFCInteractionK
105
105
  capture?: boolean;
106
106
  passive?: boolean;
107
107
  }
108
+ /** Альтернативные trigger-условия, любое из которых завершает один шаг активации. */
109
+ export type ComponentSFCInteractionTriggerSet = ComponentSFCInteractionTrigger[];
110
+ /** Один шаг последовательной активации и допустимая пауза после предыдущего шага. */
111
+ export interface ComponentSFCInteractionTriggerSequenceStep {
112
+ triggerSet: ComponentSFCInteractionTriggerSet;
113
+ maxIntervalMs?: number;
114
+ }
115
+ /** Последовательность TriggerSet-шагов; каждый следующий шаг ожидается в пределах своего интервала. */
116
+ export interface ComponentSFCInteractionTriggerSequence {
117
+ mode: 'sequence';
118
+ steps: ComponentSFCInteractionTriggerSequenceStep[];
119
+ }
120
+ /** Универсальная активация: legacy TriggerSet либо последовательность таких наборов. */
121
+ export type ComponentSFCInteractionTriggerActivation = ComponentSFCInteractionTriggerSet | ComponentSFCInteractionTriggerSequence;
108
122
  export type ComponentSFCInteractionTriggerPlatform = 'macos' | 'windows' | 'linux' | 'unknown';
109
123
  /** Renderer-neutral snapshot нативного события для проверки edit trigger. */
110
124
  export interface ComponentSFCInteractionTriggerEvent {
@@ -315,6 +329,23 @@ export interface RComponentSFC_IR_ExpressionValue {
315
329
  reads: RComponentSFC_IR_Read[];
316
330
  /** Статические обращения к Vocab aliases текущего Composition scope. */
317
331
  vocabReads?: RComponentSFC_IR_VocabRead[];
332
+ /** Статические read-only обращения `$data.metaOf(reference[, namespace])`. */
333
+ dataMetaReads?: RComponentSFC_IR_DataMetaRead[];
334
+ }
335
+ /** Ссылка на business value, метаданные которого читает Component SFC. */
336
+ export type RComponentSFC_IR_DataMetaReference = {
337
+ kind: 'prop';
338
+ prop: string;
339
+ path: string[];
340
+ } | {
341
+ kind: 'table-row';
342
+ path: string[];
343
+ };
344
+ /** Статическое обращение к Raph Meta-plane без публикации DataPath в props. */
345
+ export interface RComponentSFC_IR_DataMetaRead {
346
+ reference: RComponentSFC_IR_DataMetaReference;
347
+ namespace: string | null;
348
+ raw: string;
318
349
  }
319
350
  /** Статическое обращение `vocab(alias, mapping?)` внутри SFC expression. */
320
351
  export interface RComponentSFC_IR_VocabRead {
@@ -20,6 +20,8 @@ export declare class EndgeImplementations_Module extends EndgeModule {
20
20
  resolveOptional(request: ImplementationResolutionRequest): ResolvedImplementation | null;
21
21
  /** Вычисляет и выполняет один вызов через его фактический provider. */
22
22
  execute<TResult = unknown>(request: ImplementationResolutionRequest, invocation: ImplementationInvocation): Promise<TResult>;
23
+ /** Включает безопасную проекцию implementations в диагностическое дерево. */
24
+ createDiagnosticsSnapshot(): ImplementationSnapshot;
23
25
  /** Возвращает сериализуемый snapshot инспекции без функций. */
24
26
  snapshot(): ImplementationSnapshot;
25
27
  /** Освобождает providers и bindings после зависимых execution Modules. */
@@ -100,9 +100,9 @@ export declare class EndgeProgram_Module extends EndgeModule {
100
100
  * Сбрасывает program при reset federation.
101
101
  */
102
102
  reset(): void;
103
- /**
104
- * Формирует summary snapshot для диагностики compiled program.
105
- */
103
+ /** Включает summary compiled program в диагностическое дерево Module. */
104
+ createDiagnosticsSnapshot(): EndgeProgramSnapshot;
105
+ /** Формирует summary snapshot для диагностики compiled program. */
106
106
  snapshot(): EndgeProgramSnapshot;
107
107
  /**
108
108
  * Внутренний helper модуля: key For.