@praxisui/page-builder 8.0.0-beta.2 → 8.0.0-beta.21

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/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { MatDialogRef, MatDialog } from '@angular/material/dialog';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { EventEmitter, OnInit, WritableSignal, InjectionToken, Provider, OnChanges, Type, SimpleChanges } from '@angular/core';
4
- import { ComponentDocMeta, ComponentMetadataRegistry, WidgetShellConfig, WidgetShellAction, SettingsValueProvider as SettingsValueProvider$1, WidgetPageDefinition, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog, WidgetInstance, WidgetPageStateInput, CompositionLink, DynamicWidgetPageComponent, SettingsPanelBridge } from '@praxisui/core';
4
+ import { ComponentDocMeta, ComponentMetadataRegistry, WidgetShellConfig, WidgetShellAction, EndpointRef, ComponentPortPathSegment, LinkIntent, CompositionLink, WidgetPageDefinition, TransformKind, SettingsValueProvider as SettingsValueProvider$1, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, WidgetPageCanvasLayout, WidgetPageStateInput, WidgetInstance, ComponentAuthoringManifest, DynamicWidgetPageComponent, SettingsPanelBridge, RichTimelineItem } from '@praxisui/core';
5
5
  export { WidgetShellComponent } from '@praxisui/core';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { BehaviorSubject, Observable } from 'rxjs';
8
8
  import { FormGroup, FormControl, FormArray } from '@angular/forms';
9
9
  import { SettingsValueProvider } from '@praxisui/settings-panel';
10
- import { AgenticAuthoringPlanRequestContract, AgenticAuthoringQuickReplyContract, AgenticAuthoringPendingClarificationContract, AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringIntentResolutionRequestContract, AgenticAuthoringConversationMessageContract, PraxisAssistantShellMessage, PraxisAssistantShellQuickReply, PraxisAssistantShellAttachment, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantShellState, PraxisAssistantShellContextItem } from '@praxisui/ai';
10
+ import { AgenticAuthoringPlanRequestContract, AgenticAuthoringCandidateContract, AiJsonValue, AgenticAuthoringQuickReplyContract, AgenticAuthoringPendingClarificationContract, AiContextHintsContract, AiJsonObject, AgenticAuthoringComponentCapabilitiesResultContract, AgenticAuthoringComponentCapabilityCatalogContract, AgenticAuthoringComponentCapabilityContract, AgenticAuthoringComponentFieldAliasContract, AgenticAuthoringComponentCapabilityExampleContract, AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringIntentResolutionRequestContract, AgenticAuthoringConversationMessageContract, AgenticAuthoringResourceCandidatesRequestContract, AgenticAuthoringResourceCandidatesResultContract, AgenticAuthoringTurnStreamStartResponseContract, AgenticAuthoringTurnStreamEnvelopeContract, PraxisAssistantShellMessage, PraxisAssistantShellQuickReply, PraxisAssistantShellAttachment, PraxisAssistantShellLayout, PraxisAssistantSessionSnapshot, PraxisAssistantShellLabels, PraxisAssistantShellAction, PraxisAssistantShellState, PraxisAssistantShellContextItem } from '@praxisui/ai';
11
11
 
12
12
  declare const PLACEHOLDER = 1;
13
13
 
@@ -40,6 +40,8 @@ declare class FloatingToolbarComponent {
40
40
  visible: boolean;
41
41
  canUndo: boolean;
42
42
  canRedo: boolean;
43
+ showSave: boolean;
44
+ showPreview: boolean;
43
45
  add: EventEmitter<void>;
44
46
  undo: EventEmitter<void>;
45
47
  redo: EventEmitter<void>;
@@ -47,30 +49,56 @@ declare class FloatingToolbarComponent {
47
49
  preview: EventEmitter<void>;
48
50
  save: EventEmitter<void>;
49
51
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingToolbarComponent, never>;
50
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingToolbarComponent, "praxis-floating-toolbar", never, { "visible": { "alias": "visible"; "required": false; }; "canUndo": { "alias": "canUndo"; "required": false; }; "canRedo": { "alias": "canRedo"; "required": false; }; }, { "add": "add"; "undo": "undo"; "redo": "redo"; "settings": "settings"; "preview": "preview"; "save": "save"; }, never, ["[pdx-toolbar-extra]"], true, never>;
52
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingToolbarComponent, "praxis-floating-toolbar", never, { "visible": { "alias": "visible"; "required": false; }; "canUndo": { "alias": "canUndo"; "required": false; }; "canRedo": { "alias": "canRedo"; "required": false; }; "showSave": { "alias": "showSave"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; }, { "add": "add"; "undo": "undo"; "redo": "redo"; "settings": "settings"; "preview": "preview"; "save": "save"; }, never, ["[pdx-toolbar-extra]"], true, never>;
51
53
  }
52
54
 
55
+ interface ComponentPaletteSelection {
56
+ componentId: string;
57
+ presetId?: string;
58
+ inputs?: Record<string, unknown>;
59
+ }
53
60
  interface ComponentPaletteData {
54
61
  title?: string;
55
62
  allowedWidgetIds?: string[];
56
63
  allowedWidgetTags?: string[];
57
64
  predicate?: (m: ComponentDocMeta) => boolean;
58
65
  }
66
+ interface ComponentPaletteEntry {
67
+ key: string;
68
+ componentId: string;
69
+ presetId?: string;
70
+ title: string;
71
+ description: string;
72
+ icon: string;
73
+ badges: ComponentPaletteBadge[];
74
+ searchText: string;
75
+ inputs?: Record<string, unknown>;
76
+ }
77
+ interface ComponentPaletteBadge {
78
+ label: string;
79
+ icon: string;
80
+ tone: 'ready' | 'info' | 'warning' | 'neutral';
81
+ description: string;
82
+ }
59
83
  declare class ComponentPaletteDialogComponent implements OnInit {
60
84
  private dialogRef;
61
85
  private registry;
62
86
  data?: ComponentPaletteData | undefined;
63
- query: string;
87
+ query: _angular_core.WritableSignal<string>;
64
88
  private all;
65
- filtered: _angular_core.Signal<ComponentDocMeta[]>;
89
+ filtered: _angular_core.Signal<ComponentPaletteEntry[]>;
66
90
  density: _angular_core.Signal<"roomy" | "dense" | "normal">;
67
- constructor(dialogRef: MatDialogRef<ComponentPaletteDialogComponent, string>, registry: ComponentMetadataRegistry, data?: ComponentPaletteData | undefined);
91
+ constructor(dialogRef: MatDialogRef<ComponentPaletteDialogComponent, ComponentPaletteSelection>, registry: ComponentMetadataRegistry, data?: ComponentPaletteData | undefined);
68
92
  ngOnInit(): void;
69
- select(id: string): void;
70
- trackById: (_: number, m: ComponentDocMeta) => string;
71
- getPreview(m: ComponentDocMeta): string;
93
+ select(entry: ComponentPaletteEntry): void;
94
+ trackById: (_: number, entry: ComponentPaletteEntry) => string;
95
+ getPreview(entry: ComponentPaletteEntry): string;
72
96
  private _adjustSizeEffect;
73
97
  private applyFilters;
98
+ private buildEntries;
99
+ private buildBadges;
100
+ private buildBadgeSearchText;
101
+ private hasDataSourceInputs;
74
102
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ComponentPaletteDialogComponent, never>;
75
103
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComponentPaletteDialogComponent, "praxis-component-palette-dialog", never, {}, {}, never, never, true, never>;
76
104
  }
@@ -207,6 +235,539 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
207
235
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<WidgetShellEditorComponent, "praxis-widget-shell-editor", never, {}, {}, never, never, true, never>;
208
236
  }
209
237
 
238
+ type ConnectionEditorPortKind = 'output' | 'input' | 'state';
239
+ interface ConnectionEditorPort {
240
+ id: string;
241
+ nodeId: string;
242
+ label: string;
243
+ kind: ConnectionEditorPortKind;
244
+ endpoint: EndpointRef;
245
+ nestedPath?: ComponentPortPathSegment[];
246
+ }
247
+ interface ConnectionEditorNode {
248
+ id: string;
249
+ title: string;
250
+ subtitle: string;
251
+ icon?: string;
252
+ x: number;
253
+ y: number;
254
+ rotationDegrees?: number;
255
+ portOrder?: string[];
256
+ outputs: ConnectionEditorPort[];
257
+ inputs: ConnectionEditorPort[];
258
+ states: ConnectionEditorPort[];
259
+ }
260
+ type ConnectionEditorDiagnosticSeverity = 'error' | 'warning';
261
+ type ConnectionEditorDiagnosticCode = 'endpoint-widget-missing' | 'endpoint-unresolved' | 'endpoint-not-declared' | 'nested-path-terminal-missing' | 'nested-path-not-declared' | 'state-path-not-declared';
262
+ interface ConnectionEditorDiagnostic {
263
+ code: ConnectionEditorDiagnosticCode;
264
+ severity: ConnectionEditorDiagnosticSeverity;
265
+ endpoint: 'from' | 'to';
266
+ }
267
+ interface ConnectionEditorConnection {
268
+ id: string;
269
+ fromNode: string | null;
270
+ toNode: string | null;
271
+ fromLabel: string;
272
+ toLabel: string;
273
+ fromPort: ConnectionEditorPort | null;
274
+ toPort: ConnectionEditorPort | null;
275
+ intent: LinkIntent;
276
+ link: CompositionLink;
277
+ diagnostics: ConnectionEditorDiagnostic[];
278
+ }
279
+ interface ConnectionEditorGraph {
280
+ nodes: ConnectionEditorNode[];
281
+ connections: ConnectionEditorConnection[];
282
+ portById: Map<string, ConnectionEditorPort>;
283
+ portByEndpointKey: Map<string, ConnectionEditorPort>;
284
+ connectionToLink: Map<string, CompositionLink>;
285
+ diagnostics: ConnectionEditorDiagnostic[];
286
+ }
287
+ type ConnectionEditorSuggestionReason = 'row-selection-to-id' | 'state-to-input' | 'compatible-port';
288
+ interface ConnectionEditorSuggestion {
289
+ id: string;
290
+ source: ConnectionEditorPort;
291
+ target: ConnectionEditorPort;
292
+ sourceNodeTitle: string;
293
+ targetNodeTitle: string;
294
+ intent: LinkIntent;
295
+ reason: ConnectionEditorSuggestionReason;
296
+ score: number;
297
+ }
298
+
299
+ type ConnectionEditorTracePhase = 'emit' | 'condition' | 'transform' | 'deliver' | 'write' | 'read' | 'blocked';
300
+ interface ConnectionEditorTraceStep {
301
+ id: string;
302
+ order: number;
303
+ connectionId: string;
304
+ phase: ConnectionEditorTracePhase;
305
+ fromLabel: string;
306
+ toLabel: string;
307
+ intent: string;
308
+ blocked: boolean;
309
+ }
310
+
311
+ interface ConnectionsViewerNode {
312
+ widgetId: string;
313
+ componentType: string;
314
+ incomingCount: number;
315
+ outgoingCount: number;
316
+ }
317
+ interface ConnectionsViewerEdge {
318
+ id: string;
319
+ fromKind: CompositionLink['from']['kind'];
320
+ fromWidgetId: string | null;
321
+ fromEndpointId: string | null;
322
+ fromNestedPath: ComponentPortPathSegment[] | null;
323
+ fromPort: string | null;
324
+ toKind: CompositionLink['to']['kind'];
325
+ toWidgetId: string | null;
326
+ toEndpointId: string | null;
327
+ toNestedPath: ComponentPortPathSegment[] | null;
328
+ toPort: string | null;
329
+ toStatePath: string | null;
330
+ intent: CompositionLink['intent'];
331
+ hasCondition: boolean;
332
+ hasTransform: boolean;
333
+ hasPolicy: boolean;
334
+ hasDiagnostics: boolean;
335
+ diagnosticReasons: string[];
336
+ link: CompositionLink;
337
+ }
338
+ interface ConnectionsViewerModel {
339
+ nodes: ConnectionsViewerNode[];
340
+ edges: ConnectionsViewerEdge[];
341
+ totalLinks: number;
342
+ conditionLinks: number;
343
+ transformLinks: number;
344
+ policyLinks: number;
345
+ diagnosticLinks: number;
346
+ }
347
+
348
+ interface ConnectionEditorPoint {
349
+ x: number;
350
+ y: number;
351
+ }
352
+ interface ConnectionEditorSegmentGeometry {
353
+ port: ConnectionEditorPort;
354
+ path: string;
355
+ anchor: ConnectionEditorPoint;
356
+ label: ConnectionEditorPoint;
357
+ icon: ConnectionEditorPoint;
358
+ normalAngle: number;
359
+ color: string;
360
+ }
361
+
362
+ type ConnectionEditorPortOrderState = Record<string, string[]>;
363
+
364
+ type ConnectionsEditorFilter = 'all' | 'condition' | 'transform' | 'policy' | 'diagnostic';
365
+ type ConnectionEditorFlowMode = 'all' | 'data' | 'event' | 'capability' | 'simulation';
366
+ type ConnectionEditorDockTab = 'json' | 'links' | 'derived' | 'export';
367
+ type ConnectionEditorConditionPreset = 'source-present' | 'source-id-present';
368
+ type ConnectionEditorPolicyPreset = 'stable-delivery' | 'skip-missing';
369
+ interface DragState {
370
+ port: ConnectionEditorPort;
371
+ source: ConnectionEditorPoint;
372
+ pointer: ConnectionEditorPoint;
373
+ candidate: ConnectionEditorPort | null;
374
+ }
375
+ interface PendingSegmentState {
376
+ port: ConnectionEditorPort;
377
+ nodeId: string;
378
+ start: ConnectionEditorPoint;
379
+ source: ConnectionEditorPoint;
380
+ }
381
+ interface InvalidDropFeedbackState {
382
+ id: number;
383
+ source: ConnectionEditorPort;
384
+ target: ConnectionEditorPort | null;
385
+ point: ConnectionEditorPoint;
386
+ }
387
+ interface PanState {
388
+ startClientX: number;
389
+ startClientY: number;
390
+ originX: number;
391
+ originY: number;
392
+ }
393
+ interface MinimapPanState {
394
+ pointerId: number;
395
+ }
396
+ interface RotationState {
397
+ nodeId: string;
398
+ startAngle: number;
399
+ startRotation: number;
400
+ }
401
+ interface NodeDragState {
402
+ nodeId: string;
403
+ start: ConnectionEditorPoint;
404
+ originOffset: ConnectionEditorPoint;
405
+ moved: boolean;
406
+ }
407
+ interface ViewportState {
408
+ x: number;
409
+ y: number;
410
+ scale: number;
411
+ }
412
+ interface ConnectionEditorBounds {
413
+ x: number;
414
+ y: number;
415
+ width: number;
416
+ height: number;
417
+ }
418
+ interface ConnectionEditorTooltipPosition {
419
+ x: number;
420
+ y: number;
421
+ }
422
+ interface ConnectionEditorHistoryEntry {
423
+ before: WidgetPageDefinition;
424
+ after: WidgetPageDefinition;
425
+ selectedBefore: string | null;
426
+ selectedAfter: string | null;
427
+ }
428
+ interface ConnectionEditorDockTabDefinition {
429
+ id: ConnectionEditorDockTab;
430
+ label: string;
431
+ glyph: string;
432
+ }
433
+ declare class ConnectionEditorComponent {
434
+ readonly stateNodeId = "__page_state__";
435
+ readonly nodeViewBox = "0 0 168 168";
436
+ readonly canvasViewBox = "0 0 900 540";
437
+ readonly nodeHaloPaths: string[];
438
+ private readonly i18n;
439
+ private readonly hostElement;
440
+ readonly open: _angular_core.InputSignal<boolean>;
441
+ readonly page: _angular_core.InputSignal<WidgetPageDefinition | null | undefined>;
442
+ readonly pageChange: _angular_core.OutputEmitterRef<WidgetPageDefinition>;
443
+ readonly focusWidget: _angular_core.OutputEmitterRef<string>;
444
+ readonly openPageSettings: _angular_core.OutputEmitterRef<void>;
445
+ readonly activeMode: _angular_core.WritableSignal<ConnectionEditorFlowMode>;
446
+ readonly activeFilter: _angular_core.WritableSignal<ConnectionsEditorFilter>;
447
+ readonly selectedWidgetId: _angular_core.WritableSignal<string | null>;
448
+ readonly selectedLinkId: _angular_core.WritableSignal<string | null>;
449
+ readonly recentLinkId: _angular_core.WritableSignal<string | null>;
450
+ readonly hoveredLinkId: _angular_core.WritableSignal<string | null>;
451
+ readonly expandedNodeId: _angular_core.WritableSignal<string | null>;
452
+ readonly activeDockTab: _angular_core.WritableSignal<ConnectionEditorDockTab>;
453
+ readonly dockCollapsed: _angular_core.WritableSignal<boolean>;
454
+ readonly traceEnabled: _angular_core.WritableSignal<boolean>;
455
+ readonly traceStepIndex: _angular_core.WritableSignal<number>;
456
+ readonly traceSourceNodeId: _angular_core.WritableSignal<string | null>;
457
+ readonly selectedPort: _angular_core.WritableSignal<ConnectionEditorPort | null>;
458
+ readonly pendingSegmentState: _angular_core.WritableSignal<PendingSegmentState | null>;
459
+ readonly dragState: _angular_core.WritableSignal<DragState | null>;
460
+ readonly nodeDragState: _angular_core.WritableSignal<NodeDragState | null>;
461
+ readonly invalidDropFeedback: _angular_core.WritableSignal<InvalidDropFeedbackState | null>;
462
+ readonly panState: _angular_core.WritableSignal<PanState | null>;
463
+ readonly minimapPanState: _angular_core.WritableSignal<MinimapPanState | null>;
464
+ readonly rotationState: _angular_core.WritableSignal<RotationState | null>;
465
+ readonly viewport: _angular_core.WritableSignal<ViewportState>;
466
+ readonly portOrder: _angular_core.WritableSignal<ConnectionEditorPortOrderState>;
467
+ readonly nodeRotations: _angular_core.WritableSignal<Record<string, number>>;
468
+ readonly nodeOffsets: _angular_core.WritableSignal<Record<string, ConnectionEditorPoint>>;
469
+ readonly undoStack: _angular_core.WritableSignal<ConnectionEditorHistoryEntry[]>;
470
+ readonly redoStack: _angular_core.WritableSignal<ConnectionEditorHistoryEntry[]>;
471
+ private invalidDropFeedbackId;
472
+ private invalidDropFeedbackTimer;
473
+ private recentLinkFeedbackTimer;
474
+ private minimapPointerCaptureTarget;
475
+ private suppressedNodeClickId;
476
+ private readonly fitViewportOnOpen;
477
+ readonly filters: ({
478
+ id: "all";
479
+ label: string;
480
+ } | {
481
+ id: "condition";
482
+ label: string;
483
+ } | {
484
+ id: "transform";
485
+ label: string;
486
+ } | {
487
+ id: "policy";
488
+ label: string;
489
+ } | {
490
+ id: "diagnostic";
491
+ label: string;
492
+ })[];
493
+ readonly flowModes: ({
494
+ id: "all";
495
+ label: string;
496
+ glyph: string;
497
+ } | {
498
+ id: "data";
499
+ label: string;
500
+ glyph: string;
501
+ } | {
502
+ id: "event";
503
+ label: string;
504
+ glyph: string;
505
+ } | {
506
+ id: "capability";
507
+ label: string;
508
+ glyph: string;
509
+ } | {
510
+ id: "simulation";
511
+ label: string;
512
+ glyph: string;
513
+ })[];
514
+ readonly dockTabs: ({
515
+ id: "json";
516
+ label: string;
517
+ glyph: string;
518
+ } | {
519
+ id: "links";
520
+ label: string;
521
+ glyph: string;
522
+ } | {
523
+ id: "derived";
524
+ label: string;
525
+ glyph: string;
526
+ } | {
527
+ id: "export";
528
+ label: string;
529
+ glyph: string;
530
+ })[];
531
+ readonly model: _angular_core.Signal<ConnectionsViewerModel>;
532
+ readonly selectedNode: _angular_core.Signal<ConnectionsViewerNode | null>;
533
+ readonly visibleEdges: _angular_core.Signal<ConnectionsViewerEdge[]>;
534
+ readonly selectedEdge: _angular_core.Signal<ConnectionsViewerEdge | null>;
535
+ readonly editorGraph: _angular_core.Signal<ConnectionEditorGraph>;
536
+ readonly editorNodes: _angular_core.Signal<ConnectionEditorNode[]>;
537
+ readonly navigationBounds: _angular_core.Signal<ConnectionEditorBounds>;
538
+ readonly minimapViewBox: _angular_core.Signal<string>;
539
+ readonly editorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
540
+ readonly canvasEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
541
+ readonly visibleEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
542
+ readonly modeMatchedConnectionIds: _angular_core.Signal<Set<string>>;
543
+ readonly modeMatchedNodeIds: _angular_core.Signal<Set<string>>;
544
+ readonly modeMatchedPortIds: _angular_core.Signal<Set<string>>;
545
+ readonly smartSuggestions: _angular_core.Signal<ConnectionEditorSuggestion[]>;
546
+ readonly traceSteps: _angular_core.Signal<ConnectionEditorTraceStep[]>;
547
+ readonly activeTraceStepIndex: _angular_core.Signal<number>;
548
+ readonly traceActiveStep: _angular_core.Signal<ConnectionEditorTraceStep>;
549
+ readonly tracedConnectionIds: _angular_core.Signal<Set<string>>;
550
+ readonly traceProgressPercent: _angular_core.Signal<number>;
551
+ readonly traceProgressLabel: _angular_core.Signal<string>;
552
+ readonly traceSourceNodeIds: _angular_core.Signal<Set<string>>;
553
+ readonly traceReactingNodeIds: _angular_core.Signal<Set<string>>;
554
+ readonly focusedConnectionNodeIds: _angular_core.Signal<Set<string>>;
555
+ readonly focusedConnectionPortIds: _angular_core.Signal<Set<string>>;
556
+ readonly diagnosticConnectionIds: _angular_core.Signal<Set<string>>;
557
+ readonly diagnosticLinkCount: _angular_core.Signal<number>;
558
+ readonly selectedEditorNode: _angular_core.Signal<ConnectionEditorNode | null>;
559
+ readonly selectedConnection: _angular_core.Signal<ConnectionEditorConnection | null>;
560
+ readonly connectionTooltip: _angular_core.Signal<ConnectionEditorConnection | null>;
561
+ readonly canvasInteractionActive: _angular_core.Signal<boolean>;
562
+ readonly visibleConnectionTooltip: _angular_core.Signal<ConnectionEditorConnection | null>;
563
+ readonly visibleExpandedNodeId: _angular_core.Signal<string | null>;
564
+ readonly canUndo: _angular_core.Signal<boolean>;
565
+ readonly canRedo: _angular_core.Signal<boolean>;
566
+ readonly hasVisualPortOrder: _angular_core.Signal<boolean>;
567
+ readonly dragPreviewPath: _angular_core.Signal<string>;
568
+ readonly dragTargetPoint: _angular_core.Signal<ConnectionEditorPoint>;
569
+ readonly dragTipPosition: _angular_core.Signal<{
570
+ x: number;
571
+ y: number;
572
+ }>;
573
+ readonly invalidDropPosition: _angular_core.Signal<{
574
+ x: number;
575
+ y: number;
576
+ }>;
577
+ readonly invalidDropTipPosition: _angular_core.Signal<{
578
+ x: number;
579
+ y: number;
580
+ }>;
581
+ readonly dragEndpointText: _angular_core.Signal<string>;
582
+ readonly invalidDropEndpointText: _angular_core.Signal<string>;
583
+ readonly dragStatusText: _angular_core.Signal<string>;
584
+ readonly invalidDropStatusText: _angular_core.Signal<string>;
585
+ readonly viewportTransform: _angular_core.Signal<string>;
586
+ readonly minimapViewport: _angular_core.Signal<{
587
+ x: number;
588
+ y: number;
589
+ width: number;
590
+ height: number;
591
+ }>;
592
+ selectNode(nodeId: string): void;
593
+ selectSegment(port: ConnectionEditorPort, event: MouseEvent): void;
594
+ selectWidget(node: ConnectionsViewerNode): void;
595
+ selectLink(edge: ConnectionsViewerEdge): void;
596
+ selectConnection(connection: ConnectionEditorConnection): void;
597
+ jumpToConnection(connection: ConnectionEditorConnection, event: Event): void;
598
+ previewConnection(connection: ConnectionEditorConnection): void;
599
+ clearPreviewConnection(connection: ConnectionEditorConnection): void;
600
+ handleEditorKeydown(event: KeyboardEvent): void;
601
+ setFilter(filter: ConnectionsEditorFilter): void;
602
+ setMode(mode: ConnectionEditorFlowMode): void;
603
+ activeModeStatus(): string;
604
+ setDockTab(tab: ConnectionEditorDockTab): void;
605
+ handleDockTabKeydown(event: KeyboardEvent, tab: ConnectionEditorDockTab): void;
606
+ toggleDock(): void;
607
+ toggleTrace(event: Event): void;
608
+ selectTraceSource(nodeId: string | null, event: Event): void;
609
+ moveTraceStep(delta: -1 | 1, event: Event): void;
610
+ selectTraceStep(index: number, event: Event): void;
611
+ quickConnectSuggestion(suggestion: ConnectionEditorSuggestion, event: Event): void;
612
+ startDrag(port: ConnectionEditorPort, event: PointerEvent): void;
613
+ startSegmentDrag(port: ConnectionEditorPort, event: PointerEvent): void;
614
+ updatePendingSegment(event: PointerEvent): void;
615
+ updateDrag(event: PointerEvent): void;
616
+ startNodeDrag(nodeId: string, event: PointerEvent): void;
617
+ updateNodeDrag(event: PointerEvent): void;
618
+ stopNodeDrag(): void;
619
+ finishNodePointer(nodeId: string, event: PointerEvent): void;
620
+ closeFloatingPanelsOnOutsidePointerDown(event: PointerEvent): void;
621
+ previewDrop(target: ConnectionEditorPort): void;
622
+ clearPreviewDrop(target: ConnectionEditorPort): void;
623
+ completeDrag(target: ConnectionEditorPort, event: PointerEvent): void;
624
+ cancelDrag(event?: PointerEvent): void;
625
+ cancelPendingSegment(): void;
626
+ startPan(event: PointerEvent): void;
627
+ updatePan(event: PointerEvent): void;
628
+ stopPan(): void;
629
+ startMinimapPan(event: PointerEvent): void;
630
+ updateMinimapPan(event: PointerEvent): void;
631
+ stopMinimapPan(): void;
632
+ startNodeRotation(nodeId: string, event: PointerEvent): void;
633
+ updateRotation(event: PointerEvent): void;
634
+ stopRotation(): void;
635
+ zoomCanvas(event: WheelEvent): void;
636
+ zoomBy(delta: number, event: Event): void;
637
+ resetViewport(event?: Event): void;
638
+ autoArrange(event: Event): void;
639
+ reorganizeSlices(event: Event): void;
640
+ isCompatibleDrop(target: ConnectionEditorPort): boolean;
641
+ isCompatibilityPreview(target: ConnectionEditorPort): boolean;
642
+ isDropCandidate(target: ConnectionEditorPort): boolean;
643
+ isDragSource(port: ConnectionEditorPort): boolean;
644
+ isIncompatibleDrop(target: ConnectionEditorPort): boolean;
645
+ nodeHasCompatiblePreviewPort(node: ConnectionEditorNode): boolean;
646
+ isInvalidDropFeedbackTarget(target: ConnectionEditorPort): boolean;
647
+ removeLink(linkId: string): void;
648
+ undoHistory(event: Event): void;
649
+ redoHistory(event: Event): void;
650
+ enableTransform(connection: ConnectionEditorConnection, event: Event): void;
651
+ addTransformStep(connection: ConnectionEditorConnection, kind: TransformKind, event: Event): void;
652
+ removeTransformStep(connection: ConnectionEditorConnection, index: number, event: Event): void;
653
+ clearTransform(connection: ConnectionEditorConnection, event: Event): void;
654
+ applyConditionPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorConditionPreset, event: Event): void;
655
+ clearCondition(connection: ConnectionEditorConnection, event: Event): void;
656
+ applyPolicyPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorPolicyPreset, event: Event): void;
657
+ clearPolicy(connection: ConnectionEditorConnection, event: Event): void;
658
+ nodeSegments(node: ConnectionEditorNode): ConnectionEditorSegmentGeometry[];
659
+ nodeSvgRotation(node: ConnectionEditorNode): string | null;
660
+ segmentLabelTransform(segment: ConnectionEditorSegmentGeometry, node: ConnectionEditorNode): string;
661
+ nodeRotationHandleTransform(node: ConnectionEditorNode): string;
662
+ segmentDisplayLabel(label: string): string;
663
+ segmentKindGlyph(kind: ConnectionEditorPortKind): string;
664
+ nodeIcon(node: ConnectionEditorNode): string;
665
+ dockTabLabel(tab: ConnectionEditorDockTabDefinition): string;
666
+ dockTabId(tab: ConnectionEditorDockTab): string;
667
+ dockPanelId(tab: ConnectionEditorDockTab): string;
668
+ dockToggleLabel(): string;
669
+ segmentKindText(kind: ConnectionEditorPortKind): string;
670
+ connectionHasErrors(connection: ConnectionEditorConnection): boolean;
671
+ connectionHasWarnings(connection: ConnectionEditorConnection): boolean;
672
+ connectionHasPolicy(connection: ConnectionEditorConnection): boolean;
673
+ connectionMatchesMode(connection: ConnectionEditorConnection): boolean;
674
+ hasModeFocus(): boolean;
675
+ isModeDimmedConnection(connection: ConnectionEditorConnection): boolean;
676
+ isModeDimmedNode(node: ConnectionEditorNode): boolean;
677
+ isModeDimmedPort(port: ConnectionEditorPort): boolean;
678
+ edgeMatchesMode(edge: ConnectionsViewerEdge): boolean;
679
+ isNodeFocusedByConnection(node: ConnectionEditorNode): boolean;
680
+ isPortFocusedByConnection(port: ConnectionEditorPort): boolean;
681
+ isTracedConnection(connection: ConnectionEditorConnection): boolean;
682
+ isTraceSourceNode(node: ConnectionEditorNode): boolean;
683
+ isTraceReactingNode(node: ConnectionEditorNode): boolean;
684
+ traceNodeLabel(node: ConnectionEditorNode): string | null;
685
+ tracePhaseText(phase: ConnectionEditorTracePhase): string;
686
+ diagnosticSeverityLabel(diagnostic: ConnectionEditorDiagnostic): string;
687
+ diagnosticText(diagnostic: ConnectionEditorDiagnostic): string;
688
+ suggestionReasonText(reason: ConnectionEditorSuggestionReason): string;
689
+ transformKindText(kind: TransformKind): string;
690
+ expandedPorts(node: ConnectionEditorNode): ConnectionEditorPort[];
691
+ movePort(node: ConnectionEditorNode, port: ConnectionEditorPort, direction: -1 | 1, event: Event): void;
692
+ toggleSegments(node: ConnectionEditorNode, event: Event): void;
693
+ wirePath(connection: ConnectionEditorConnection): string;
694
+ wireSourcePoint(connection: ConnectionEditorConnection): {
695
+ x: number;
696
+ y: number;
697
+ } | null;
698
+ wireTargetPoint(connection: ConnectionEditorConnection): {
699
+ x: number;
700
+ y: number;
701
+ } | null;
702
+ wireRoutePoint(connection: ConnectionEditorConnection, key: 'sourceStub' | 'sourceControl' | 'targetControl' | 'targetStub' | 'midpoint'): {
703
+ x: number;
704
+ y: number;
705
+ } | null;
706
+ wireLabelTransform(connection: ConnectionEditorConnection, endpoint: 'source' | 'target'): string;
707
+ minimapWirePath(connection: ConnectionEditorConnection): string;
708
+ connectionTooltipPosition(connection: ConnectionEditorConnection): ConnectionEditorTooltipPosition;
709
+ connectionTooltipCalloutX(connection: ConnectionEditorConnection): number;
710
+ connectionTooltipKind(connection: ConnectionEditorConnection): string;
711
+ dockJson(): WidgetPageDefinition | null | undefined;
712
+ dockLinks(): unknown[];
713
+ dockDerived(): unknown;
714
+ dockExport(): unknown;
715
+ describeEdge(edge: ConnectionsViewerEdge): string;
716
+ edgeHasDiagnostics(edge: ConnectionsViewerEdge): boolean;
717
+ edgeDiagnostics(edge: ConnectionsViewerEdge): unknown[];
718
+ describeSource(edge: ConnectionsViewerEdge): string;
719
+ describeTarget(edge: ConnectionsViewerEdge): string;
720
+ tx(key: string, fallback: string): string;
721
+ private addLink;
722
+ private setConnectionTransform;
723
+ private setConnectionCondition;
724
+ private setConnectionPolicy;
725
+ private updateConnectionLink;
726
+ private commitPageChange;
727
+ private defaultTransformPipeline;
728
+ private createTransformStep;
729
+ private createConditionPreset;
730
+ private createPolicyPreset;
731
+ private applyNodeRotation;
732
+ private nodeRotationHandlePoint;
733
+ private applyNodeOffset;
734
+ private compatibilitySourcePort;
735
+ private intentMatchesMode;
736
+ private clonePage;
737
+ private pagesEqual;
738
+ private anchorForPort;
739
+ private showInvalidDropFeedback;
740
+ private clearInvalidDropFeedback;
741
+ private markRecentLink;
742
+ private clearPreviewConnectionState;
743
+ private shouldIgnoreEditorShortcut;
744
+ private scrollActiveModeIntoView;
745
+ private focusDockTab;
746
+ private portQualifiedLabel;
747
+ private stagePointFromEvent;
748
+ private rotationAngleForNode;
749
+ private snapDegrees;
750
+ private portIndexAtPoint;
751
+ private previewWirePath;
752
+ private formatPoint;
753
+ private labelPointBetween;
754
+ private connectionTooltipAnchor;
755
+ private applyZoom;
756
+ private centerViewportOnMinimapEvent;
757
+ private minimapPointFromEvent;
758
+ private fitViewportState;
759
+ private clampViewport;
760
+ private connectionEditorNavigationBounds;
761
+ private stageClientSize;
762
+ private stageRect;
763
+ private shouldIgnorePanTarget;
764
+ private shouldIgnoreNodeDragTarget;
765
+ private isFloatingPanelInteractionTarget;
766
+ private clamp;
767
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConnectionEditorComponent, never>;
768
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConnectionEditorComponent, "praxis-connection-editor", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "focusWidget": "focusWidget"; "openPageSettings": "openPageSettings"; }, never, never, true, never>;
769
+ }
770
+
210
771
  type EditorTabId$1 = 'canvas' | 'grouping' | 'devices' | 'context' | 'state';
211
772
  type DeviceKey = 'desktop' | 'tablet' | 'mobile';
212
773
  type GroupingNodeGroup$1 = FormGroup<{
@@ -545,6 +1106,64 @@ interface PageBuilderAgenticAuthoringOptions {
545
1106
  baseUrl?: string;
546
1107
  headersFactory?: () => Record<string, string | undefined>;
547
1108
  defaultHeaders?: Record<string, string>;
1109
+ createProjectKnowledgeChangeSet?: (request: DomainKnowledgeChangeSetRequest, options?: {
1110
+ headers?: Record<string, string> | undefined;
1111
+ }) => Observable<DomainKnowledgeChangeSet>;
1112
+ getProjectKnowledgeChangeSet?: (changeSetId: string, options?: {
1113
+ headers?: Record<string, string> | undefined;
1114
+ }) => Observable<DomainKnowledgeChangeSet>;
1115
+ getProjectKnowledgeChangeSetTimeline?: (changeSetId: string, options?: {
1116
+ headers?: Record<string, string> | undefined;
1117
+ }) => Observable<DomainKnowledgeChangeSetTimelineResponse>;
1118
+ listProjectKnowledgeChangeSets?: (filters: DomainKnowledgeChangeSetFilters, options?: {
1119
+ headers?: Record<string, string> | undefined;
1120
+ }) => Observable<DomainKnowledgeChangeSet[]>;
1121
+ validateProjectKnowledgeChangeSet?: (changeSetId: string, options?: {
1122
+ headers?: Record<string, string> | undefined;
1123
+ }) => Observable<DomainKnowledgeValidationResponse>;
1124
+ transitionProjectKnowledgeChangeSetStatus?: (changeSetId: string, request: DomainKnowledgeStatusTransitionRequest, options?: {
1125
+ headers?: Record<string, string> | undefined;
1126
+ }) => Observable<DomainKnowledgeChangeSet>;
1127
+ applyProjectKnowledgeChangeSet?: (changeSetId: string, options?: {
1128
+ headers?: Record<string, string> | undefined;
1129
+ }) => Observable<DomainKnowledgeChangeSet>;
1130
+ sharedRuleIntake?: (request: DomainRuleIntakeRequest, options?: {
1131
+ headers?: Record<string, string> | undefined;
1132
+ }) => Observable<DomainRuleIntakeResponse>;
1133
+ sharedRuleCreateDefinition?: (request: DomainRuleDefinitionRequest, options?: {
1134
+ headers?: Record<string, string> | undefined;
1135
+ }) => Observable<DomainRuleDefinition>;
1136
+ sharedRuleSimulate?: (request: DomainRuleSimulationRequest, options?: {
1137
+ headers?: Record<string, string> | undefined;
1138
+ }) => Observable<DomainRuleSimulationResponse>;
1139
+ sharedRuleTransitionDefinitionStatus?: (definitionId: string, request: DomainRuleStatusTransitionRequest, options?: {
1140
+ headers?: Record<string, string> | undefined;
1141
+ }) => Observable<DomainRuleDefinition>;
1142
+ sharedRulePublish?: (request: DomainRulePublicationRequest, options?: {
1143
+ headers?: Record<string, string> | undefined;
1144
+ }) => Observable<DomainRulePublicationResponse>;
1145
+ sharedRuleListMaterializations?: (filters: DomainRuleMaterializationFilters, options?: {
1146
+ headers?: Record<string, string> | undefined;
1147
+ }) => Observable<DomainRuleMaterialization[]>;
1148
+ sharedRuleGetDefinitionTimeline?: (definitionId: string, options?: {
1149
+ headers?: Record<string, string> | undefined;
1150
+ }) => Observable<DomainRuleTimelineResponse>;
1151
+ eventSourceFactory?: PageBuilderAgenticAuthoringEventSourceFactory;
1152
+ requestTimeoutMs?: number;
1153
+ streamStartTimeoutMs?: number;
1154
+ streamTurnTimeoutMs?: number;
1155
+ streamConnectionErrorGraceMs?: number;
1156
+ }
1157
+ interface PageBuilderAgenticAuthoringEventSource {
1158
+ onmessage: ((event: MessageEvent<string>) => void) | null;
1159
+ onerror: ((event: Event) => void) | null;
1160
+ addEventListener?(type: string, listener: (event: MessageEvent<string>) => void): void;
1161
+ close(): void;
1162
+ }
1163
+ type PageBuilderAgenticAuthoringEventSourceFactory = (url: string) => PageBuilderAgenticAuthoringEventSource;
1164
+ interface PageBuilderAgenticAuthoringTurnStreamConnectionError {
1165
+ readonly praxisAgenticTurnStreamConnectionError: true;
1166
+ readonly cause: unknown;
548
1167
  }
549
1168
  interface PageBuilderAgenticAuthoringPromptRequest extends Omit<AgenticAuthoringPlanRequestContract, 'currentPage' | 'intentResolution'> {
550
1169
  provider?: PageBuilderAgenticAuthoringProvider | null;
@@ -560,11 +1179,29 @@ interface PageBuilderAgenticAuthoringIntentResolutionRequest extends Omit<Agenti
560
1179
  componentCapabilities?: PageBuilderAgenticAuthoringComponentCapabilitiesResult | null;
561
1180
  attachmentSummaries?: PageBuilderAgenticAuthoringAttachmentSummary[];
562
1181
  }
1182
+ interface PageBuilderAgenticAuthoringTurnStreamRequest {
1183
+ userPrompt: string;
1184
+ targetApp?: string | null;
1185
+ targetComponentId?: string | null;
1186
+ currentRoute?: string | null;
1187
+ provider?: PageBuilderAgenticAuthoringProvider | null;
1188
+ model?: string | null;
1189
+ apiKey?: string | null;
1190
+ currentPage?: unknown;
1191
+ selectedWidgetKey?: string | null;
1192
+ sessionId?: string | null;
1193
+ clientTurnId?: string | null;
1194
+ conversationMessages?: PageBuilderAgenticAuthoringConversationMessage[];
1195
+ pendingClarification?: PageBuilderAgenticAuthoringPendingClarification | null;
1196
+ componentCapabilities?: PageBuilderAgenticAuthoringComponentCapabilitiesResult | null;
1197
+ attachmentSummaries?: PageBuilderAgenticAuthoringAttachmentSummary[];
1198
+ contextHints?: AiContextHintsContract | null;
1199
+ }
563
1200
  type PageBuilderAgenticAuthoringConversationMessage = AgenticAuthoringConversationMessageContract;
564
1201
  type PageBuilderAgenticAuthoringPendingClarification = AgenticAuthoringPendingClarificationContract;
565
1202
  type PageBuilderAgenticAuthoringQuickReply = AgenticAuthoringQuickReplyContract;
566
1203
  type PageBuilderAgenticAuthoringAttachmentSummary = AgenticAuthoringAttachmentSummaryContract;
567
- interface PageBuilderAgenticAuthoringCandidate {
1204
+ interface PageBuilderAgenticAuthoringCandidate extends AgenticAuthoringCandidateContract {
568
1205
  resourcePath: string;
569
1206
  operation: string;
570
1207
  schemaUrl: string;
@@ -573,6 +1210,19 @@ interface PageBuilderAgenticAuthoringCandidate {
573
1210
  score: number;
574
1211
  reason: string;
575
1212
  evidence: string[];
1213
+ [key: string]: AiJsonValue | undefined;
1214
+ }
1215
+ interface PageBuilderAgenticAuthoringResourceCandidatesRequest extends AgenticAuthoringResourceCandidatesRequestContract {
1216
+ }
1217
+ interface PageBuilderAgenticAuthoringResourceCandidatesResult extends Omit<AgenticAuthoringResourceCandidatesResultContract, 'candidates'> {
1218
+ valid: boolean;
1219
+ tool: string;
1220
+ retrievalQuery: string;
1221
+ artifactKind: string;
1222
+ assistantMessage?: string | null;
1223
+ candidates: PageBuilderAgenticAuthoringCandidate[];
1224
+ quickReplies?: PageBuilderAgenticAuthoringQuickReply[];
1225
+ warnings: string[];
576
1226
  }
577
1227
  interface PageBuilderAgenticAuthoringTarget {
578
1228
  widgetKey: string;
@@ -587,22 +1237,28 @@ interface PageBuilderAgenticAuthoringGateResult {
587
1237
  status: string;
588
1238
  messages: string[];
589
1239
  }
590
- interface PageBuilderAgenticAuthoringComponentFieldAlias {
1240
+ interface PageBuilderAgenticAuthoringComponentFieldAlias extends AgenticAuthoringComponentFieldAliasContract {
591
1241
  field: string;
592
1242
  aliases: string[];
593
1243
  }
594
- interface PageBuilderAgenticAuthoringComponentCapability {
1244
+ interface PageBuilderAgenticAuthoringComponentCapability extends Omit<AgenticAuthoringComponentCapabilityContract, 'fieldAliases' | 'examples'> {
595
1245
  id: string;
596
1246
  changeKind: string;
597
1247
  triggerTerms: string[];
598
1248
  fieldAliases: PageBuilderAgenticAuthoringComponentFieldAlias[];
1249
+ examples?: PageBuilderAgenticAuthoringComponentCapabilityExample[];
1250
+ }
1251
+ interface PageBuilderAgenticAuthoringComponentCapabilityExample extends AgenticAuthoringComponentCapabilityExampleContract {
1252
+ prompt: string;
1253
+ intent: string;
1254
+ configHints: string[];
599
1255
  }
600
- interface PageBuilderAgenticAuthoringComponentCapabilityCatalog {
1256
+ interface PageBuilderAgenticAuthoringComponentCapabilityCatalog extends Omit<AgenticAuthoringComponentCapabilityCatalogContract, 'capabilities'> {
601
1257
  componentId: string;
602
1258
  version: string;
603
1259
  capabilities: PageBuilderAgenticAuthoringComponentCapability[];
604
1260
  }
605
- interface PageBuilderAgenticAuthoringComponentCapabilitiesResult {
1261
+ interface PageBuilderAgenticAuthoringComponentCapabilitiesResult extends Omit<AgenticAuthoringComponentCapabilitiesResultContract, 'catalogs'> {
606
1262
  version: string;
607
1263
  catalogs: PageBuilderAgenticAuthoringComponentCapabilityCatalog[];
608
1264
  }
@@ -626,6 +1282,8 @@ interface PageBuilderAgenticAuthoringIntentResolutionResult {
626
1282
  warnings: string[];
627
1283
  failureCodes: string[];
628
1284
  currentPageSummary: unknown;
1285
+ contextHints?: AiContextHintsContract | null;
1286
+ llmDiagnostics?: AiJsonObject | null;
629
1287
  }
630
1288
  interface PageBuilderMinimalFormPlanResult {
631
1289
  valid: boolean;
@@ -648,6 +1306,25 @@ interface PageBuilderPreviewDiagnostics {
648
1306
  operationKind?: string;
649
1307
  changeKind?: string;
650
1308
  fieldScopeDecision?: string;
1309
+ projectKnowledgeAudit?: PageBuilderProjectKnowledgeAudit | null;
1310
+ }
1311
+ interface PageBuilderProjectKnowledgeAudit {
1312
+ schemaVersion?: string;
1313
+ source?: string;
1314
+ influenceCount?: number;
1315
+ citedCount?: number;
1316
+ uncitedCount?: number;
1317
+ citationPolicy?: string;
1318
+ entries?: Array<{
1319
+ knowledgeId?: string;
1320
+ conceptKey?: string;
1321
+ kind?: string;
1322
+ visibility?: string;
1323
+ influence?: string;
1324
+ sourceSummary?: string;
1325
+ cited?: boolean;
1326
+ sourceRefs?: string[];
1327
+ }>;
651
1328
  }
652
1329
  interface PageBuilderPreviewResult {
653
1330
  valid: boolean;
@@ -657,7 +1334,10 @@ interface PageBuilderPreviewResult {
657
1334
  uiCompositionPlan?: unknown;
658
1335
  compiledFormPatch: PageBuilderCompiledFormPatch;
659
1336
  diagnostics?: PageBuilderPreviewDiagnostics | null;
1337
+ assistantMessage?: string | null;
660
1338
  }
1339
+ type PageBuilderAgenticAuthoringTurnStreamStartResponse = AgenticAuthoringTurnStreamStartResponseContract;
1340
+ type PageBuilderAgenticAuthoringTurnStreamEvent = AgenticAuthoringTurnStreamEnvelopeContract;
661
1341
  interface PageBuilderApplyRequest {
662
1342
  compiledFormPatch: PageBuilderCompiledFormPatch;
663
1343
  componentId: string;
@@ -687,13 +1367,115 @@ declare class PageBuilderAgenticAuthoringService {
687
1367
  getComponentCapabilities(): Observable<PageBuilderAgenticAuthoringComponentCapabilitiesResult>;
688
1368
  previewPage(request: PageBuilderAgenticAuthoringPromptRequest): Observable<PageBuilderPreviewResult>;
689
1369
  resolveIntent(request: PageBuilderAgenticAuthoringIntentResolutionRequest): Observable<PageBuilderAgenticAuthoringIntentResolutionResult>;
1370
+ searchResourceCandidates(request: PageBuilderAgenticAuthoringResourceCandidatesRequest): Observable<PageBuilderAgenticAuthoringResourceCandidatesResult>;
1371
+ streamTurn(request: PageBuilderAgenticAuthoringTurnStreamRequest): Observable<PageBuilderAgenticAuthoringTurnStreamEvent>;
690
1372
  applyPage(request: PageBuilderApplyRequest): Observable<PageBuilderApplyResult>;
691
1373
  private buildHeaders;
1374
+ private connectTurnStream;
1375
+ private streamStartTimeoutMs;
1376
+ private streamTurnTimeoutMs;
1377
+ private requestTimeoutMs;
1378
+ private streamConnectionError;
1379
+ private buildStreamUrl;
1380
+ private buildStreamProbeUrl;
1381
+ private createEventSource;
1382
+ private probeTurnStreamEndpoint;
692
1383
  private formatEtag;
1384
+ private normalizeIntentResolutionResult;
1385
+ private normalizeStringList;
693
1386
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageBuilderAgenticAuthoringService, never>;
694
1387
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<PageBuilderAgenticAuthoringService>;
695
1388
  }
696
1389
 
1390
+ type UiCompositionPlanInputSource = 'event' | 'payload' | 'state' | 'context' | 'constant';
1391
+ type UiCompositionPlanComponentPortEndpoint = {
1392
+ kind: 'component-port';
1393
+ widget: string;
1394
+ port: string;
1395
+ direction: 'input' | 'output';
1396
+ nestedPath?: ComponentPortPathSegment[];
1397
+ };
1398
+ type UiCompositionPlanStateEndpoint = {
1399
+ kind: 'state';
1400
+ path: string;
1401
+ layer?: 'values' | 'derived' | 'transient';
1402
+ };
1403
+ type UiCompositionPlanGlobalActionEndpoint = {
1404
+ kind: 'global-action';
1405
+ actionId: string;
1406
+ payload?: unknown;
1407
+ payloadExpr?: string;
1408
+ meta?: Record<string, unknown>;
1409
+ };
1410
+ type UiCompositionPlanSourceEndpoint = UiCompositionPlanComponentPortEndpoint | UiCompositionPlanStateEndpoint;
1411
+ type UiCompositionPlanTargetEndpoint = UiCompositionPlanSourceEndpoint | UiCompositionPlanGlobalActionEndpoint;
1412
+ type UiCompositionPlanEndpoint = UiCompositionPlanTargetEndpoint;
1413
+ type UiCompositionPlanTransform = {
1414
+ kind: 'pick-path';
1415
+ id: string;
1416
+ path: string;
1417
+ inputSource?: UiCompositionPlanInputSource;
1418
+ } | {
1419
+ kind: 'constant';
1420
+ id: string;
1421
+ value: unknown;
1422
+ } | {
1423
+ kind: 'query-context';
1424
+ id: string;
1425
+ field: string;
1426
+ operator?: string;
1427
+ valueVar?: string;
1428
+ inputSource?: UiCompositionPlanInputSource;
1429
+ } | {
1430
+ kind: 'template';
1431
+ id: string;
1432
+ template: unknown;
1433
+ inputSource?: UiCompositionPlanInputSource;
1434
+ };
1435
+ interface UiCompositionPlanWidget {
1436
+ key: string;
1437
+ componentId: string;
1438
+ role?: string;
1439
+ inputs?: Record<string, unknown>;
1440
+ outputs?: Record<string, unknown>;
1441
+ bindingOrder?: string[];
1442
+ }
1443
+ interface UiCompositionPlanBinding {
1444
+ id: string;
1445
+ from: UiCompositionPlanSourceEndpoint;
1446
+ to: UiCompositionPlanTargetEndpoint;
1447
+ intent: CompositionLink['intent'];
1448
+ condition?: unknown;
1449
+ transform?: UiCompositionPlanTransform;
1450
+ policy?: CompositionLink['policy'];
1451
+ metadata?: Record<string, unknown>;
1452
+ }
1453
+ interface UiCompositionPlan {
1454
+ version: '1.0';
1455
+ kind: 'praxis.ui-composition-plan';
1456
+ layoutPreset?: string;
1457
+ canvas?: WidgetPageCanvasLayout;
1458
+ state?: WidgetPageStateInput;
1459
+ widgets: UiCompositionPlanWidget[];
1460
+ bindings?: UiCompositionPlanBinding[];
1461
+ }
1462
+ interface UiCompositionPlanDiagnostic {
1463
+ code: string;
1464
+ message: string;
1465
+ path?: string;
1466
+ }
1467
+ type UiCompositionPlanCompileResult = {
1468
+ valid: true;
1469
+ page: WidgetPageDefinition;
1470
+ diagnostics: UiCompositionPlanDiagnostic[];
1471
+ } | {
1472
+ valid: false;
1473
+ page: null;
1474
+ diagnostics: UiCompositionPlanDiagnostic[];
1475
+ };
1476
+ declare function compileUiCompositionPlan(plan: UiCompositionPlan): UiCompositionPlanCompileResult;
1477
+ declare function validateUiCompositionPlan(plan: UiCompositionPlan): UiCompositionPlanDiagnostic[];
1478
+
697
1479
  type LegacyLayoutOptions = {
698
1480
  cols?: number;
699
1481
  rowHeight?: number;
@@ -752,16 +1534,82 @@ declare const PAGE_BUILDER_WIDGET_AI_CATALOGS: InjectionToken<Record<string, AiC
752
1534
 
753
1535
  declare function providePageBuilderWidgetAiCatalogs(): Provider;
754
1536
 
1537
+ declare const PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST: ComponentAuthoringManifest;
1538
+
1539
+ type PageBuilderGovernedContinuationFamily = 'shared-rule' | 'project-knowledge';
1540
+ type PageBuilderGovernedContinuationActionKind = 'open_definition' | 'simulate' | 'approve' | 'reject' | 'publish' | 'materialize' | 'validate_enforcement' | 'create_knowledge_change_set' | 'validate_knowledge_change_set' | 'apply_knowledge_change_set' | 'open_timeline';
1541
+ type PageBuilderGovernedContinuationBlockedReason = 'busy' | 'missing_handoff' | 'missing_authoring_target' | 'missing_definition' | 'definition_already_available' | 'missing_materialization' | 'missing_project_knowledge_audit' | 'missing_project_knowledge_candidate' | 'change_set_already_available' | 'missing_change_set' | 'validation_required' | 'validation_already_valid' | 'approval_required' | 'already_applied' | 'timeline_unavailable' | 'timeline_contract_unwired';
1542
+ interface PageBuilderGovernedContinuationTarget {
1543
+ artifactType: 'domain-rule-definition' | 'domain-knowledge-change-set' | 'materialization' | 'timeline';
1544
+ id?: string | null;
1545
+ key?: string | null;
1546
+ resourceKey?: string | null;
1547
+ contextKey?: string | null;
1548
+ }
1549
+ interface PageBuilderGovernedContinuationAction {
1550
+ kind: PageBuilderGovernedContinuationActionKind;
1551
+ family: PageBuilderGovernedContinuationFamily;
1552
+ enabled: boolean;
1553
+ blockedReason?: PageBuilderGovernedContinuationBlockedReason;
1554
+ labelKey: string;
1555
+ labelFallback: string;
1556
+ descriptionKey: string;
1557
+ descriptionFallback: string;
1558
+ target?: PageBuilderGovernedContinuationTarget;
1559
+ }
1560
+
755
1561
  interface AgenticAuthoringQuickReply extends PraxisAssistantShellQuickReply {
756
- kind: 'confirm' | 'revise' | 'cancel' | 'suggestion';
1562
+ kind: string;
1563
+ }
1564
+ type SharedRuleCockpitAction = 'definition' | 'simulation' | 'approve' | 'activate' | 'publication' | 'materializations' | 'timeline' | 'enforcement';
1565
+ type ProjectKnowledgeCockpitAction = 'change-set' | 'validate' | 'approve' | 'reject' | 'apply' | 'readback';
1566
+ interface SharedRuleEnforcementSummary {
1567
+ status: 'ready' | 'waiting' | 'unavailable';
1568
+ targetLayers: string[];
1569
+ targetArtifacts: string[];
1570
+ projections: SharedRuleEnforcementProjection[];
1571
+ appliedCount: number;
1572
+ pendingCount: number;
1573
+ sourceHashes: string[];
1574
+ }
1575
+ interface SharedRuleEnforcementProjection {
1576
+ targetLayer: string;
1577
+ targetLayerLabel: string;
1578
+ status: 'ready' | 'waiting';
1579
+ targetArtifact: string;
1580
+ sourceHash: string | null;
1581
+ }
1582
+ interface PageBuilderAgenticAuthoringSharedRuleHandoff {
1583
+ endpoint: string;
1584
+ flowId: 'shared_rule_authoring';
1585
+ intakeEndpoint?: string | null;
1586
+ intakeId?: string | null;
1587
+ intakeStatus?: string | null;
1588
+ nextEndpoint?: string | null;
1589
+ ruleDefinitionId?: string | null;
1590
+ ruleKey?: string | null;
1591
+ recommendedRuleType?: string | null;
1592
+ targetLayer?: string | null;
1593
+ sourcePrompt: string;
1594
+ assistantMessage: string;
1595
+ resourcePath?: string | null;
1596
+ resourceKey?: string | null;
1597
+ contextKey?: string | null;
1598
+ routeGateStatus?: string | null;
1599
+ routeFailureCode?: string | null;
1600
+ routeDecisionSource?: string | null;
1601
+ previewDisposition?: string | null;
757
1602
  }
758
1603
  declare class DynamicPageBuilderComponent implements OnChanges {
759
1604
  private dialog;
760
1605
  private settingsPanel;
761
1606
  private readonly i18n;
1607
+ private readonly injector;
762
1608
  private readonly componentMetadata;
763
1609
  private readonly agenticAuthoring;
764
1610
  private readonly agenticTurnOrchestrator;
1611
+ private readonly assistantSessions;
1612
+ private readonly agenticAuthoringOptions;
765
1613
  runtime?: DynamicWidgetPageComponent;
766
1614
  page?: WidgetPageDefinition | string;
767
1615
  context?: Record<string, unknown> | null;
@@ -779,9 +1627,20 @@ declare class DynamicPageBuilderComponent implements OnChanges {
779
1627
  agenticAuthoringComponentId?: string;
780
1628
  agenticAuthoringScope: 'user' | 'tenant';
781
1629
  agenticAuthoringEtag?: string;
1630
+ agenticAuthoringIncludeLlmDiagnostics: boolean;
1631
+ agenticAuthoringEnableStreaming: boolean;
1632
+ agenticAuthoringContextHints?: Record<string, unknown> | null;
1633
+ showPageLifecycleActions: boolean;
1634
+ canDeleteSavedPage: boolean;
1635
+ pageLifecycleBusy: boolean;
1636
+ pageLifecycleResetRevision: number | string | null;
782
1637
  pageChange: EventEmitter<WidgetPageDefinition>;
783
1638
  agenticAuthoringApplied: EventEmitter<PageBuilderApplyResult>;
1639
+ agenticAuthoringSharedRuleHandoff: EventEmitter<PageBuilderAgenticAuthoringSharedRuleHandoff>;
1640
+ pageRestart: EventEmitter<void>;
1641
+ savedPageDeleteRequested: EventEmitter<void>;
784
1642
  readonly currentPage: _angular_core.WritableSignal<WidgetPageDefinition>;
1643
+ readonly hasPageWidgets: _angular_core.Signal<boolean>;
785
1644
  readonly connectionsViewerOpen: _angular_core.WritableSignal<boolean>;
786
1645
  readonly agenticAuthoringOpen: _angular_core.WritableSignal<boolean>;
787
1646
  readonly agenticAuthoringPrompt: _angular_core.WritableSignal<string>;
@@ -793,57 +1652,202 @@ declare class DynamicPageBuilderComponent implements OnChanges {
793
1652
  readonly agenticAuthoringConversation: _angular_core.WritableSignal<PraxisAssistantShellMessage[]>;
794
1653
  readonly agenticAuthoringQuickReplies: _angular_core.WritableSignal<AgenticAuthoringQuickReply[]>;
795
1654
  readonly agenticAuthoringAttachments: _angular_core.WritableSignal<PraxisAssistantShellAttachment[]>;
1655
+ readonly agenticAuthoringSharedRuleHandoffState: _angular_core.WritableSignal<PageBuilderAgenticAuthoringSharedRuleHandoff | null>;
1656
+ readonly sharedRuleCockpitBusyAction: _angular_core.WritableSignal<SharedRuleCockpitAction | null>;
1657
+ readonly sharedRuleCockpitError: _angular_core.WritableSignal<string>;
1658
+ readonly sharedRuleCockpitDefinition: _angular_core.WritableSignal<DomainRuleDefinition | null>;
1659
+ readonly sharedRuleCockpitSimulation: _angular_core.WritableSignal<DomainRuleSimulationResponse | null>;
1660
+ readonly sharedRuleCockpitTimeline: _angular_core.WritableSignal<DomainRuleTimelineResponse | null>;
1661
+ readonly sharedRuleCockpitPublication: _angular_core.WritableSignal<DomainRulePublicationResponse | null>;
1662
+ readonly sharedRuleCockpitMaterializations: _angular_core.WritableSignal<DomainRuleMaterialization[]>;
1663
+ readonly sharedRuleCockpitEnforcement: _angular_core.WritableSignal<SharedRuleEnforcementSummary | null>;
1664
+ readonly projectKnowledgeCockpitBusyAction: _angular_core.WritableSignal<ProjectKnowledgeCockpitAction | null>;
1665
+ readonly projectKnowledgeCockpitError: _angular_core.WritableSignal<string>;
1666
+ readonly projectKnowledgeCockpitChangeSet: _angular_core.WritableSignal<DomainKnowledgeChangeSet | null>;
1667
+ readonly projectKnowledgeCockpitValidation: _angular_core.WritableSignal<DomainKnowledgeValidationResponse | null>;
1668
+ readonly projectKnowledgeCockpitTimeline: _angular_core.WritableSignal<DomainKnowledgeChangeSetTimelineResponse | null>;
1669
+ readonly agenticAuthoringLlmDiagnostics: _angular_core.WritableSignal<Record<string, unknown> | null>;
1670
+ readonly agenticAuthoringLlmDiagnosticsCollapsed: _angular_core.WritableSignal<boolean>;
1671
+ readonly sharedRuleCockpitCollapsed: _angular_core.WritableSignal<boolean>;
1672
+ readonly projectKnowledgeCockpitCollapsed: _angular_core.WritableSignal<boolean>;
796
1673
  readonly agenticAuthoringEditingMessageId: _angular_core.WritableSignal<string | null>;
1674
+ readonly selectedWidgetKey: _angular_core.WritableSignal<string | null>;
1675
+ readonly agenticAuthoringWidgetContextKey: _angular_core.WritableSignal<string | null>;
797
1676
  readonly agenticAuthoringPanelLayout: _angular_core.WritableSignal<PraxisAssistantShellLayout>;
798
1677
  private previewMode;
799
1678
  private agenticComponentCapabilities?;
800
1679
  private agenticComponentCapabilitiesPromise?;
801
1680
  private agenticTurnController?;
1681
+ private sharedRuleHandoffRevision;
802
1682
  constructor(dialog: MatDialog, settingsPanel: SettingsPanelBridge | null);
803
1683
  ngOnChanges(changes: SimpleChanges): void;
804
1684
  showSettings(): boolean;
805
1685
  onRuntimePageChange(next: WidgetPageDefinition): void;
1686
+ onConnectionEditorPageChange(next: WidgetPageDefinition): void;
1687
+ onRuntimeWidgetSelectionChange(widgetKey: string | null): void;
806
1688
  togglePreview(): void;
1689
+ toggleAgenticAuthoringLlmDiagnostics(): void;
1690
+ toggleSharedRuleCockpit(): void;
1691
+ toggleProjectKnowledgeCockpit(): void;
807
1692
  toggleConnectionsViewer(): void;
808
1693
  onAddComponent(): void;
809
- addWidget(type: string): void;
1694
+ addWidget(selection: string | ComponentPaletteSelection): void;
810
1695
  openPageSettings(): void;
811
1696
  saveCurrentPage(): void;
812
1697
  applyConfigFromAdapter(config: PageBuilderConfig): void;
813
1698
  private createAdapterHost;
814
1699
  toggleAgenticAuthoring(): void;
1700
+ openAgenticAuthoring(): void;
1701
+ openAgenticAuthoringForWidget(widgetKey: string): void;
1702
+ openAgenticAuthoringFromSession(session: PraxisAssistantSessionSnapshot): void;
1703
+ minimizeAgenticAuthoring(): void;
1704
+ showAgenticAuthoringDock(): boolean;
1705
+ agenticAuthoringMinimized(): boolean;
1706
+ agenticAuthoringToggleLabel(): string;
1707
+ agenticAuthoringHeaderTitle(): string;
1708
+ agenticAuthoringHeaderSubtitle(): string;
1709
+ agenticAuthoringHeaderModeLabel(): string;
815
1710
  agenticAuthoringShellLabels(): Partial<PraxisAssistantShellLabels>;
1711
+ agenticAuthoringSubmitAction(): PraxisAssistantShellAction;
1712
+ agenticAuthoringDockIcon(): string;
1713
+ agenticAuthoringDockBadge(): string;
1714
+ agenticAuthoringDockSummary(): string;
816
1715
  agenticAuthoringShellState(): PraxisAssistantShellState;
1716
+ private hasAgenticAuthoringSession;
1717
+ private resetAgenticAuthoringSessionState;
1718
+ private syncAgenticAuthoringSession;
1719
+ private resolveAgenticAuthoringSessionId;
1720
+ private truncateAgenticDockText;
1721
+ agenticAuthoringProjectKnowledgeAudit(): PageBuilderProjectKnowledgeAudit | null;
1722
+ canRunProjectKnowledgeChangeSet(): boolean;
1723
+ sharedRuleGovernedContinuationActions(): PageBuilderGovernedContinuationAction[];
1724
+ projectKnowledgeGovernedContinuationActions(): PageBuilderGovernedContinuationAction[];
1725
+ trackGovernedContinuationAction(_index: number, action: PageBuilderGovernedContinuationAction): string;
1726
+ trackSharedRuleEnforcementProjection(index: number, projection: SharedRuleEnforcementProjection): string;
1727
+ governedContinuationActionTestId(action: PageBuilderGovernedContinuationAction): string;
1728
+ governedContinuationActionTooltip(action: PageBuilderGovernedContinuationAction): string;
1729
+ projectKnowledgeTimelineItems(): RichTimelineItem[];
1730
+ trackProjectKnowledgeTimelineItem(index: number, item: RichTimelineItem): string;
1731
+ runSharedRuleGovernedContinuationAction(action: PageBuilderGovernedContinuationAction): Promise<void>;
1732
+ runProjectKnowledgeGovernedContinuationAction(action: PageBuilderGovernedContinuationAction): Promise<void>;
817
1733
  agenticAuthoringContextItems(): PraxisAssistantShellContextItem[];
818
1734
  previewAgenticAuthoring(): Promise<void>;
819
1735
  submitAgenticQuickReply(reply: PraxisAssistantShellQuickReply): Promise<void>;
1736
+ private agenticQuickReplyVisiblePrompt;
1737
+ private agenticQuickReplySubmittedPrompt;
1738
+ private agenticQuickReplyClarificationConfirmationPrompt;
1739
+ private isHumanSafeResourceQuickReplyPrompt;
1740
+ private isGenericDataSourceQuickReplyPrompt;
1741
+ private isGenericGovernedConfirmationQuickReplyPrompt;
1742
+ private agenticQuickReplyGovernedConfirmationPrompt;
1743
+ private isResourceQuickReply;
1744
+ private isGovernedConfirmationQuickReply;
1745
+ private isConfirmationQuickReply;
1746
+ private hasResourceContextHint;
1747
+ private describeResourceContext;
820
1748
  attachAgenticContext(): void;
821
1749
  addAgenticAttachments(attachments: readonly PraxisAssistantShellAttachment[]): void;
822
1750
  removeAgenticAttachment(attachment: PraxisAssistantShellAttachment): void;
823
1751
  editAgenticMessage(message: PraxisAssistantShellMessage): void;
824
1752
  resendAgenticMessage(message: PraxisAssistantShellMessage): Promise<void>;
1753
+ retryAgenticAuthoring(): Promise<void>;
1754
+ cancelAgenticAuthoring(): Promise<void>;
825
1755
  persistAgenticAuthoring(): Promise<void>;
1756
+ ensureSharedRuleDefinition(): Promise<DomainRuleDefinition | null>;
1757
+ simulateSharedRule(): Promise<DomainRuleSimulationResponse | null>;
1758
+ transitionSharedRuleDefinition(status: 'approved' | 'active'): Promise<DomainRuleDefinition | null>;
1759
+ publishSharedRule(): Promise<DomainRulePublicationResponse | null>;
1760
+ openSharedRuleEnforcementValidation(): Promise<SharedRuleEnforcementSummary | null>;
1761
+ runProjectKnowledgeChangeSetLifecycle(): Promise<DomainKnowledgeChangeSet | null>;
1762
+ createProjectKnowledgeCockpitChangeSet(): Promise<DomainKnowledgeChangeSet | null>;
1763
+ validateProjectKnowledgeCockpitChangeSet(): Promise<DomainKnowledgeValidationResponse | null>;
1764
+ approveProjectKnowledgeCockpitChangeSet(): Promise<DomainKnowledgeChangeSet | null>;
1765
+ rejectProjectKnowledgeCockpitChangeSet(): Promise<DomainKnowledgeChangeSet | null>;
1766
+ applyProjectKnowledgeCockpitChangeSet(): Promise<DomainKnowledgeChangeSet | null>;
1767
+ private refreshSharedRuleTimeline;
1768
+ private resolveDomainRuleService;
1769
+ private resolveDomainKnowledgeService;
1770
+ private createProjectKnowledgeChangeSet;
1771
+ private getProjectKnowledgeChangeSet;
1772
+ private validateProjectKnowledgeChangeSet;
1773
+ private getProjectKnowledgeChangeSetTimeline;
1774
+ private transitionProjectKnowledgeChangeSetStatus;
1775
+ private applyProjectKnowledgeChangeSet;
1776
+ private refreshProjectKnowledgeTimeline;
1777
+ private createSharedRuleDefinition;
1778
+ private simulateSharedRuleDefinition;
1779
+ private transitionSharedRuleDefinitionStatus;
1780
+ private publishSharedRuleDefinition;
1781
+ private listSharedRuleMaterializations;
1782
+ private getSharedRuleDefinitionTimeline;
1783
+ private resolveSharedRuleDefinitionId;
1784
+ private runSharedRuleCockpitAction;
1785
+ private clearSharedRuleCockpitState;
1786
+ private runProjectKnowledgeCockpitAction;
1787
+ private clearProjectKnowledgeCockpitState;
1788
+ private resolveProjectKnowledgeEvidenceCandidate;
1789
+ private createProjectKnowledgeChangeSetRequest;
1790
+ private slugifyProjectKnowledgeKey;
1791
+ private governedContinuationActionDomKey;
1792
+ private updateSharedRuleHandoff;
1793
+ private promoteSharedRuleHandoffFromQuickReply;
1794
+ private resolveSharedRuleQuickReplyRuleType;
1795
+ private resolveSharedRuleQuickReplyTargetLayer;
1796
+ private resolveSharedRuleKey;
1797
+ private resolveSharedRuleResourceKey;
1798
+ private resolveSharedRuleContextKey;
1799
+ private deriveResourceKeyFromPath;
1800
+ private deriveContextKeyFromPath;
1801
+ private resolveSharedRuleType;
1802
+ private normalizeSharedRuleType;
1803
+ private inferSharedRuleTypeFromHumanIntent;
1804
+ private summarizeSharedRuleEnforcement;
1805
+ private isAppliedSharedRuleProjection;
1806
+ private formatSharedRuleTargetLayer;
826
1807
  private loadAgenticComponentCapabilities;
827
1808
  private ensureAgenticTurnController;
828
1809
  private applyAgenticPreviewLocally;
829
1810
  private applyAgenticTurnState;
1811
+ private primeSharedRuleHandoff;
1812
+ private resolveAgenticSharedRuleHandoff;
1813
+ private resolveAgenticSharedRuleAssistantMessage;
1814
+ private resolveSharedRuleHandoffRuleType;
1815
+ private sameSharedRuleHandoff;
1816
+ private sameSharedRuleHandoffIdentity;
1817
+ private enrichSharedRuleHandoffFromIntake;
1818
+ private resolveSharedRuleHeaders;
1819
+ private consumeAgenticTurn;
1820
+ agenticAuthoringDiagnosticsTop(): number;
1821
+ agenticAuthoringLlmDiagnosticsText(): string;
1822
+ private resolveAgenticLlmDiagnostics;
1823
+ private cloneAgenticContextHints;
1824
+ private resolveGovernedDomainContextSummary;
1825
+ private shouldShowGovernedDomainContext;
1826
+ private trimmedString;
1827
+ private toRecord;
830
1828
  private resolvePreviewCompiledFormPatch;
831
1829
  focusCanvasWidget(widgetKey: string): void;
832
1830
  private parsePage;
833
1831
  private clonePage;
1832
+ private clearSelectedWidgetIfMissing;
834
1833
  private defaultInputsFor;
835
1834
  private resolveAgenticComponentId;
836
1835
  private resolveSelectedWidgetKey;
1836
+ private resolveWidgetByKey;
1837
+ private resolveSelectedWidgetLabel;
1838
+ private describeSelectedWidgetContext;
1839
+ private resolveWidgetDisplayName;
837
1840
  private formatAgenticFailures;
838
1841
  private describeAgenticPreviewFailure;
839
1842
  private describeAgenticPreviewStatus;
1843
+ private isAgenticTableContractError;
840
1844
  private appendAgenticMessage;
841
1845
  private describeAgenticError;
842
1846
  private cloneValue;
843
1847
  tx(key: string, fallback: string): string;
844
1848
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicPageBuilderComponent, [null, { optional: true; }]>;
845
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageBuilderComponent, "praxis-dynamic-page-builder", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showSettingsButton": { "alias": "showSettingsButton"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "enableAgenticAuthoring": { "alias": "enableAgenticAuthoring"; "required": false; }; "agenticAuthoringProvider": { "alias": "agenticAuthoringProvider"; "required": false; }; "agenticAuthoringModel": { "alias": "agenticAuthoringModel"; "required": false; }; "agenticAuthoringApiKey": { "alias": "agenticAuthoringApiKey"; "required": false; }; "agenticAuthoringComponentId": { "alias": "agenticAuthoringComponentId"; "required": false; }; "agenticAuthoringScope": { "alias": "agenticAuthoringScope"; "required": false; }; "agenticAuthoringEtag": { "alias": "agenticAuthoringEtag"; "required": false; }; }, { "pageChange": "pageChange"; "agenticAuthoringApplied": "agenticAuthoringApplied"; }, never, never, true, never>;
1849
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageBuilderComponent, "praxis-dynamic-page-builder", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showSettingsButton": { "alias": "showSettingsButton"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "enableAgenticAuthoring": { "alias": "enableAgenticAuthoring"; "required": false; }; "agenticAuthoringProvider": { "alias": "agenticAuthoringProvider"; "required": false; }; "agenticAuthoringModel": { "alias": "agenticAuthoringModel"; "required": false; }; "agenticAuthoringApiKey": { "alias": "agenticAuthoringApiKey"; "required": false; }; "agenticAuthoringComponentId": { "alias": "agenticAuthoringComponentId"; "required": false; }; "agenticAuthoringScope": { "alias": "agenticAuthoringScope"; "required": false; }; "agenticAuthoringEtag": { "alias": "agenticAuthoringEtag"; "required": false; }; "agenticAuthoringIncludeLlmDiagnostics": { "alias": "agenticAuthoringIncludeLlmDiagnostics"; "required": false; }; "agenticAuthoringEnableStreaming": { "alias": "agenticAuthoringEnableStreaming"; "required": false; }; "agenticAuthoringContextHints": { "alias": "agenticAuthoringContextHints"; "required": false; }; "showPageLifecycleActions": { "alias": "showPageLifecycleActions"; "required": false; }; "canDeleteSavedPage": { "alias": "canDeleteSavedPage"; "required": false; }; "pageLifecycleBusy": { "alias": "pageLifecycleBusy"; "required": false; }; "pageLifecycleResetRevision": { "alias": "pageLifecycleResetRevision"; "required": false; }; }, { "pageChange": "pageChange"; "agenticAuthoringApplied": "agenticAuthoringApplied"; "agenticAuthoringSharedRuleHandoff": "agenticAuthoringSharedRuleHandoff"; "pageRestart": "pageRestart"; "savedPageDeleteRequested": "savedPageDeleteRequested"; }, never, never, true, never>;
846
1850
  }
847
1851
 
848
- export { ComponentPaletteDialogComponent, ConfirmDialogComponent, DynamicPageBuilderComponent, DynamicPageConfigEditorComponent, FloatingToolbarComponent, PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS, PAGE_BUILDER_AI_CAPABILITIES, PAGE_BUILDER_WIDGET_AI_CATALOGS, PLACEHOLDER, PageBuilderAgenticAuthoringService, PageConfigEditorComponent, TileToolbarComponent, WidgetShellEditorComponent, clearWidgetAiCatalogs, getPageAiCatalog, getWidgetAiCapabilities, providePageBuilderWidgetAiCatalogs, registerWidgetAiCatalog, registerWidgetAiCatalogs };
849
- export type { Capability, CapabilityCatalog, CapabilityCategory, ComponentPaletteData, ConfirmDialogData, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringTarget, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, ValueKind };
1852
+ export { ComponentPaletteDialogComponent, ConfirmDialogComponent, ConnectionEditorComponent, DynamicPageBuilderComponent, DynamicPageConfigEditorComponent, FloatingToolbarComponent, PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS, PAGE_BUILDER_AI_CAPABILITIES, PAGE_BUILDER_WIDGET_AI_CATALOGS, PLACEHOLDER, PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST, PageBuilderAgenticAuthoringService, PageConfigEditorComponent, TileToolbarComponent, WidgetShellEditorComponent, clearWidgetAiCatalogs, compileUiCompositionPlan, getPageAiCatalog, getWidgetAiCapabilities, providePageBuilderWidgetAiCatalogs, registerWidgetAiCatalog, registerWidgetAiCatalogs, validateUiCompositionPlan };
1853
+ export type { Capability, CapabilityCatalog, CapabilityCategory, ComponentPaletteData, ComponentPaletteSelection, ConfirmDialogData, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentCapabilityExample, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringEventSource, PageBuilderAgenticAuthoringEventSourceFactory, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringResourceCandidatesRequest, PageBuilderAgenticAuthoringResourceCandidatesResult, PageBuilderAgenticAuthoringSharedRuleHandoff, PageBuilderAgenticAuthoringTarget, PageBuilderAgenticAuthoringTurnStreamConnectionError, PageBuilderAgenticAuthoringTurnStreamEvent, PageBuilderAgenticAuthoringTurnStreamRequest, PageBuilderAgenticAuthoringTurnStreamStartResponse, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, PageBuilderProjectKnowledgeAudit, UiCompositionPlan, UiCompositionPlanBinding, UiCompositionPlanCompileResult, UiCompositionPlanComponentPortEndpoint, UiCompositionPlanDiagnostic, UiCompositionPlanEndpoint, UiCompositionPlanGlobalActionEndpoint, UiCompositionPlanInputSource, UiCompositionPlanSourceEndpoint, UiCompositionPlanStateEndpoint, UiCompositionPlanTargetEndpoint, UiCompositionPlanTransform, UiCompositionPlanWidget, ValueKind };